Created
January 19, 2019 02:11
-
-
Save egy1st/c4032099d572557f6f9ddc39f18d7714 to your computer and use it in GitHub Desktop.
Created on Cognitive Class Labs
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{ | |
"cells": [ | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"# The Business-Case Introduction" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"## What is this business-case going to answer and where?\n", | |
"\n", | |
"### The place:\n", | |
"Brooklyn, a USA Borough, in NEW York City.\n", | |
"\n", | |
"### The problem:\n", | |
"A stakeholder has restaurant in Brooklyn, he wants to expand his business by opening a new branch in the same borough. Where would he be recommended to open? \n", | |
"The stakeholder asked me to help him in finding the best place to open his new branch.\n", | |
"\n", | |
"The stakeholder made an initial investigation and provide me with 5 places in Broklyn to state his business\n", | |
"\n", | |
"The current place appears in red, while the investigated places appear in blue\n", | |
"\n", | |
"### The Dataset:\n", | |
"As a data analyst I got New York data from NYU spatial data repository and find that it has 5 boroughs:\n", | |
"\n", | |
"* Manhattan with 40 neighbors\n", | |
"* Bronx with 52 neighbors\n", | |
"* Staten with Island 63 neighbors\n", | |
"* Brooklyn with 70 neighbors\n", | |
"* Queens with 81 neighbors\n", | |
"\n", | |
"\n", | |
"### The Methodology:\n", | |
"I planned my task as following by dividing it into two main methods:\n", | |
"1. Get the top 100 venues that are in each distinct within a radius of 500 meters\n", | |
"2. Group venues by neighborhood and by taking the mean of the frequency of occurrence of each category\n", | |
"3. Retrieve each neighborhood along with the top 10 most common venues\n", | |
"4. Run k-means to cluster the neighborhood into 5 clusters.\n", | |
"5. make our decision based on generated clusters" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"## The Process:\n", | |
"We are going to work on \"New York\" state in USA\n", | |
"* First we will extract all Newyork neighbors usind data provided by NYU spatial data repository at https://geo.nyu.edu \n", | |
"* Second, We will use Foursquare API provided by https://developer.foursquare.com/ to retrieve all needed location, Borough, Categories, Rating, and Trending information\n", | |
"this is the main data we will use for cleaning, wrangling and put for further investigations\n", | |
"\n", | |
"* Thirdly, We will use skilearn library from python to analysis our data using proper machine learning algorithms. here we will use K-means, an algorithm best suits our case analysis and investigations.\n", | |
"\n", | |
"* Then we will use matplotlib library to visualize the investigated results on maps using Foluim library for python\n", | |
"\n", | |
"* Finally, we will put it all together in a simple way, such that stackholders can make their decision easily based on our data analysis investigation for this business case." | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"# Data Insight and Prepration" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 1, | |
"metadata": {}, | |
"outputs": [], | |
"source": [ | |
"# import pandas library to work with dataframe\n", | |
"import pandas as pd\n", | |
"import numpy as np\n", | |
"import matplotlib as mat" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 2, | |
"metadata": {}, | |
"outputs": [], | |
"source": [ | |
"# @hidden_cell\n", | |
"CLIENT_ID = '2UABPTQXVSFUWXVMSQYXON4FACFMLWPELLQFVBYK3S0TLBNV' # your Foursquare ID\n", | |
"CLIENT_SECRET = 'AFKQI22J5NIJ1JSMPU0ZJ2TGHMPAIT04BAPUUD1MOAOIYVLE' # your Foursquare Secret\n", | |
"VERSION = '20180604'" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 3, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"Requirement already satisfied: geopy in /home/jupyterlab/conda/lib/python3.6/site-packages (1.11.0)\n", | |
"Requirement already satisfied: folium in /home/jupyterlab/conda/lib/python3.6/site-packages (0.5.0)\n", | |
"Requirement already satisfied: branca in /home/jupyterlab/conda/lib/python3.6/site-packages (from folium) (0.3.1)\n", | |
"Requirement already satisfied: jinja2 in /home/jupyterlab/conda/lib/python3.6/site-packages (from folium) (2.10)\n", | |
"Requirement already satisfied: requests in /home/jupyterlab/conda/lib/python3.6/site-packages (from folium) (2.20.1)\n", | |
"Requirement already satisfied: six in /home/jupyterlab/conda/lib/python3.6/site-packages (from folium) (1.11.0)\n", | |
"Requirement already satisfied: MarkupSafe>=0.23 in /home/jupyterlab/conda/lib/python3.6/site-packages (from jinja2->folium) (1.1.0)\n", | |
"Requirement already satisfied: certifi>=2017.4.17 in /home/jupyterlab/conda/lib/python3.6/site-packages (from requests->folium) (2018.11.29)\n", | |
"Requirement already satisfied: chardet<3.1.0,>=3.0.2 in /home/jupyterlab/conda/lib/python3.6/site-packages (from requests->folium) (3.0.4)\n", | |
"Requirement already satisfied: urllib3<1.25,>=1.21.1 in /home/jupyterlab/conda/lib/python3.6/site-packages (from requests->folium) (1.23)\n", | |
"Requirement already satisfied: idna<2.8,>=2.5 in /home/jupyterlab/conda/lib/python3.6/site-packages (from requests->folium) (2.7)\n", | |
"Folium installed\n", | |
"Libraries imported.\n" | |
] | |
} | |
], | |
"source": [ | |
"#!conda install -c conda-forge geopy --yes \n", | |
"!pip install geopy \n", | |
"from geopy.geocoders import Nominatim # module to convert an address into latitude and longitude values\n", | |
"import requests # library to handle requests\n", | |
"\n", | |
"pd.set_option('display.max_columns', None)\n", | |
"pd.set_option('display.max_rows', None)\n", | |
"\n", | |
"import json # library to handle JSON files\n", | |
"\n", | |
"# libraries for displaying images\n", | |
"from IPython.display import Image \n", | |
"from IPython.core.display import HTML \n", | |
" \n", | |
"# tranforming json file into a pandas dataframe library\n", | |
"from pandas.io.json import json_normalize\n", | |
"\n", | |
"#!conda install -c conda-forge folium=0.5.0 --yes\n", | |
"!pip install folium\n", | |
"import folium # plotting library\n", | |
"\n", | |
"import matplotlib.pyplot as plt\n", | |
"import matplotlib.image as mpimg\n", | |
"\n", | |
"# Matplotlib and associated plotting modules\n", | |
"import matplotlib.cm as cm\n", | |
"import matplotlib.colors as colors\n", | |
"\n", | |
"# import k-means from clustering stage\n", | |
"from sklearn.cluster import KMeans\n", | |
"\n", | |
"\n", | |
"print('Folium installed')\n", | |
"print('Libraries imported.')" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 4, | |
"metadata": {}, | |
"outputs": [], | |
"source": [ | |
"# Function for creating map of any borough using latitude and longitude values\n", | |
"def print_map (my_data, zoom=11):\n", | |
" my_map = folium.Map(location=[latitude, longitude], zoom_start=zoom)\n", | |
" for lat, lng, label in zip(my_data['Latitude'], my_data['Longitude'], my_data['Neighborhood']):\n", | |
" label = folium.Popup(label, parse_html=True)\n", | |
" folium.CircleMarker(\n", | |
" [lat, lng],\n", | |
" radius=5,\n", | |
" popup=label,\n", | |
" color='blue',\n", | |
" fill=True,\n", | |
" fill_color='#3186cc',\n", | |
" fill_opacity=0.7,\n", | |
" parse_html=False).add_to(my_map)\n", | |
" return my_map" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 5, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"Data downloaded!\n" | |
] | |
} | |
], | |
"source": [ | |
"!wget -q -O 'newyork_data.json' https://geo.nyu.edu/download/file/nyu-2451-34572-geojson.json\n", | |
"print('Data downloaded!')" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 6, | |
"metadata": {}, | |
"outputs": [], | |
"source": [ | |
"with open('newyork_data.json') as json_data:\n", | |
" df_newyork = json.load(json_data)" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 7, | |
"metadata": {}, | |
"outputs": [], | |
"source": [ | |
"df_newyork = df_newyork['features']" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 8, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"{'type': 'Feature',\n", | |
" 'id': 'nyu_2451_34572.1',\n", | |
" 'geometry': {'type': 'Point',\n", | |
" 'coordinates': [-73.84720052054902, 40.89470517661]},\n", | |
" 'geometry_name': 'geom',\n", | |
" 'properties': {'name': 'Wakefield',\n", | |
" 'stacked': 1,\n", | |
" 'annoline1': 'Wakefield',\n", | |
" 'annoline2': None,\n", | |
" 'annoline3': None,\n", | |
" 'annoangle': 0.0,\n", | |
" 'borough': 'Bronx',\n", | |
" 'bbox': [-73.84720052054902,\n", | |
" 40.89470517661,\n", | |
" -73.84720052054902,\n", | |
" 40.89470517661]}}" | |
] | |
}, | |
"execution_count": 8, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"#let us have a look\n", | |
"df_newyork[0]" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 9, | |
"metadata": {}, | |
"outputs": [], | |
"source": [ | |
"# define the dataframe columns\n", | |
"column_names = ['Borough', 'Neighborhood', 'Latitude', 'Longitude'] \n", | |
"\n", | |
"# instantiate the dataframe\n", | |
"newyork_data = pd.DataFrame(columns=column_names)" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 10, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"306" | |
] | |
}, | |
"execution_count": 10, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"len(df_newyork)" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 11, | |
"metadata": {}, | |
"outputs": [], | |
"source": [ | |
"# let us populate it\n", | |
"for data in df_newyork:\n", | |
" borough = neighborhood_name = data['properties']['borough'] \n", | |
" neighborhood_name = data['properties']['name']\n", | |
" \n", | |
" neighborhood_latlon = data['geometry']['coordinates']\n", | |
" neighborhood_lat = neighborhood_latlon[1]\n", | |
" neighborhood_lon = neighborhood_latlon[0]\n", | |
" \n", | |
" newyork_data = newyork_data.append({'Borough': borough,\n", | |
" 'Neighborhood': neighborhood_name,\n", | |
" 'Latitude': neighborhood_lat,\n", | |
" 'Longitude': neighborhood_lon}, ignore_index=True)" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 12, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/html": [ | |
"<div>\n", | |
"<style scoped>\n", | |
" .dataframe tbody tr th:only-of-type {\n", | |
" vertical-align: middle;\n", | |
" }\n", | |
"\n", | |
" .dataframe tbody tr th {\n", | |
" vertical-align: top;\n", | |
" }\n", | |
"\n", | |
" .dataframe thead th {\n", | |
" text-align: right;\n", | |
" }\n", | |
"</style>\n", | |
"<table border=\"1\" class=\"dataframe\">\n", | |
" <thead>\n", | |
" <tr style=\"text-align: right;\">\n", | |
" <th></th>\n", | |
" <th>Borough</th>\n", | |
" <th>Neighborhood</th>\n", | |
" <th>Latitude</th>\n", | |
" <th>Longitude</th>\n", | |
" </tr>\n", | |
" </thead>\n", | |
" <tbody>\n", | |
" <tr>\n", | |
" <th>0</th>\n", | |
" <td>Bronx</td>\n", | |
" <td>Wakefield</td>\n", | |
" <td>40.894705</td>\n", | |
" <td>-73.847201</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>1</th>\n", | |
" <td>Bronx</td>\n", | |
" <td>Co-op City</td>\n", | |
" <td>40.874294</td>\n", | |
" <td>-73.829939</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>2</th>\n", | |
" <td>Bronx</td>\n", | |
" <td>Eastchester</td>\n", | |
" <td>40.887556</td>\n", | |
" <td>-73.827806</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>3</th>\n", | |
" <td>Bronx</td>\n", | |
" <td>Fieldston</td>\n", | |
" <td>40.895437</td>\n", | |
" <td>-73.905643</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>4</th>\n", | |
" <td>Bronx</td>\n", | |
" <td>Riverdale</td>\n", | |
" <td>40.890834</td>\n", | |
" <td>-73.912585</td>\n", | |
" </tr>\n", | |
" </tbody>\n", | |
"</table>\n", | |
"</div>" | |
], | |
"text/plain": [ | |
" Borough Neighborhood Latitude Longitude\n", | |
"0 Bronx Wakefield 40.894705 -73.847201\n", | |
"1 Bronx Co-op City 40.874294 -73.829939\n", | |
"2 Bronx Eastchester 40.887556 -73.827806\n", | |
"3 Bronx Fieldston 40.895437 -73.905643\n", | |
"4 Bronx Riverdale 40.890834 -73.912585" | |
] | |
}, | |
"execution_count": 12, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"newyork_data.head()" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 13, | |
"metadata": { | |
"slideshow": { | |
"slide_type": "-" | |
} | |
}, | |
"outputs": [ | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"The dataframe has 5 boroughs and 306 neighborhoods.\n" | |
] | |
}, | |
{ | |
"data": { | |
"text/html": [ | |
"<div>\n", | |
"<style scoped>\n", | |
" .dataframe tbody tr th:only-of-type {\n", | |
" vertical-align: middle;\n", | |
" }\n", | |
"\n", | |
" .dataframe tbody tr th {\n", | |
" vertical-align: top;\n", | |
" }\n", | |
"\n", | |
" .dataframe thead th {\n", | |
" text-align: right;\n", | |
" }\n", | |
"</style>\n", | |
"<table border=\"1\" class=\"dataframe\">\n", | |
" <thead>\n", | |
" <tr style=\"text-align: right;\">\n", | |
" <th></th>\n", | |
" <th>Neighborhood</th>\n", | |
" <th>Latitude</th>\n", | |
" <th>Longitude</th>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>Borough</th>\n", | |
" <th></th>\n", | |
" <th></th>\n", | |
" <th></th>\n", | |
" </tr>\n", | |
" </thead>\n", | |
" <tbody>\n", | |
" <tr>\n", | |
" <th>Bronx</th>\n", | |
" <td>52</td>\n", | |
" <td>52</td>\n", | |
" <td>52</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>Brooklyn</th>\n", | |
" <td>70</td>\n", | |
" <td>70</td>\n", | |
" <td>70</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>Manhattan</th>\n", | |
" <td>40</td>\n", | |
" <td>40</td>\n", | |
" <td>40</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>Queens</th>\n", | |
" <td>81</td>\n", | |
" <td>81</td>\n", | |
" <td>81</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>Staten Island</th>\n", | |
" <td>63</td>\n", | |
" <td>63</td>\n", | |
" <td>63</td>\n", | |
" </tr>\n", | |
" </tbody>\n", | |
"</table>\n", | |
"</div>" | |
], | |
"text/plain": [ | |
" Neighborhood Latitude Longitude\n", | |
"Borough \n", | |
"Bronx 52 52 52\n", | |
"Brooklyn 70 70 70\n", | |
"Manhattan 40 40 40\n", | |
"Queens 81 81 81\n", | |
"Staten Island 63 63 63" | |
] | |
}, | |
"execution_count": 13, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"print('The dataframe has {} boroughs and {} neighborhoods.'.format(\n", | |
" len(newyork_data['Borough'].unique()),\n", | |
" newyork_data.shape[0]\n", | |
" )\n", | |
")\n", | |
"\n", | |
"#how many neighborhood each borough has\n", | |
"df_groups = newyork_data.groupby (['Borough']).count()\n", | |
"df_groups" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 14, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"The geograpical coordinate of New York City are 40.7308619, -73.9871558.\n" | |
] | |
} | |
], | |
"source": [ | |
"# Use geopy library to get the latitude and longitude values of New York City.\n", | |
"address = 'New York City, NY'\n", | |
"geolocator = Nominatim()\n", | |
"location = geolocator.geocode(address)\n", | |
"latitude = location.latitude\n", | |
"longitude = location.longitude\n", | |
"print('The geograpical coordinate of New York City are {}, {}.'.format(latitude, longitude))\n" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 15, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/html": [ | |
"<div style=\"width:100%;\"><div style=\"position:relative;width:100%;height:0;padding-bottom:60%;\"><iframe src=\"data:text/html;charset=utf-8;base64,PCFET0NUWVBFIGh0bWw+CjxoZWFkPiAgICAKICAgIDxtZXRhIGh0dHAtZXF1aXY9ImNvbnRlbnQtdHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PVVURi04IiAvPgogICAgPHNjcmlwdD5MX1BSRUZFUl9DQU5WQVMgPSBmYWxzZTsgTF9OT19UT1VDSCA9IGZhbHNlOyBMX0RJU0FCTEVfM0QgPSBmYWxzZTs8L3NjcmlwdD4KICAgIDxzY3JpcHQgc3JjPSJodHRwczovL2Nkbi5qc2RlbGl2ci5uZXQvbnBtL2xlYWZsZXRAMS4yLjAvZGlzdC9sZWFmbGV0LmpzIj48L3NjcmlwdD4KICAgIDxzY3JpcHQgc3JjPSJodHRwczovL2FqYXguZ29vZ2xlYXBpcy5jb20vYWpheC9saWJzL2pxdWVyeS8xLjExLjEvanF1ZXJ5Lm1pbi5qcyI+PC9zY3JpcHQ+CiAgICA8c2NyaXB0IHNyYz0iaHR0cHM6Ly9tYXhjZG4uYm9vdHN0cmFwY2RuLmNvbS9ib290c3RyYXAvMy4yLjAvanMvYm9vdHN0cmFwLm1pbi5qcyI+PC9zY3JpcHQ+CiAgICA8c2NyaXB0IHNyYz0iaHR0cHM6Ly9jZG5qcy5jbG91ZGZsYXJlLmNvbS9hamF4L2xpYnMvTGVhZmxldC5hd2Vzb21lLW1hcmtlcnMvMi4wLjIvbGVhZmxldC5hd2Vzb21lLW1hcmtlcnMuanMiPjwvc2NyaXB0PgogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJodHRwczovL2Nkbi5qc2RlbGl2ci5uZXQvbnBtL2xlYWZsZXRAMS4yLjAvZGlzdC9sZWFmbGV0LmNzcyIvPgogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJodHRwczovL21heGNkbi5ib290c3RyYXBjZG4uY29tL2Jvb3RzdHJhcC8zLjIuMC9jc3MvYm9vdHN0cmFwLm1pbi5jc3MiLz4KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iaHR0cHM6Ly9tYXhjZG4uYm9vdHN0cmFwY2RuLmNvbS9ib290c3RyYXAvMy4yLjAvY3NzL2Jvb3RzdHJhcC10aGVtZS5taW4uY3NzIi8+CiAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Imh0dHBzOi8vbWF4Y2RuLmJvb3RzdHJhcGNkbi5jb20vZm9udC1hd2Vzb21lLzQuNi4zL2Nzcy9mb250LWF3ZXNvbWUubWluLmNzcyIvPgogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJodHRwczovL2NkbmpzLmNsb3VkZmxhcmUuY29tL2FqYXgvbGlicy9MZWFmbGV0LmF3ZXNvbWUtbWFya2Vycy8yLjAuMi9sZWFmbGV0LmF3ZXNvbWUtbWFya2Vycy5jc3MiLz4KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iaHR0cHM6Ly9yYXdnaXQuY29tL3B5dGhvbi12aXN1YWxpemF0aW9uL2ZvbGl1bS9tYXN0ZXIvZm9saXVtL3RlbXBsYXRlcy9sZWFmbGV0LmF3ZXNvbWUucm90YXRlLmNzcyIvPgogICAgPHN0eWxlPmh0bWwsIGJvZHkge3dpZHRoOiAxMDAlO2hlaWdodDogMTAwJTttYXJnaW46IDA7cGFkZGluZzogMDt9PC9zdHlsZT4KICAgIDxzdHlsZT4jbWFwIHtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtib3R0b206MDtyaWdodDowO2xlZnQ6MDt9PC9zdHlsZT4KICAgIAogICAgICAgICAgICA8c3R5bGU+ICNtYXBfZDUwMDQxNGYxNzc5NGE0YTgxNTY5NmJkZDVmODU4OWMgewogICAgICAgICAgICAgICAgcG9zaXRpb24gOiByZWxhdGl2ZTsKICAgICAgICAgICAgICAgIHdpZHRoIDogMTAwLjAlOwogICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDAuMCU7CiAgICAgICAgICAgICAgICBsZWZ0OiAwLjAlOwogICAgICAgICAgICAgICAgdG9wOiAwLjAlOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICA8L3N0eWxlPgogICAgICAgIAo8L2hlYWQ+Cjxib2R5PiAgICAKICAgIAogICAgICAgICAgICA8ZGl2IGNsYXNzPSJmb2xpdW0tbWFwIiBpZD0ibWFwX2Q1MDA0MTRmMTc3OTRhNGE4MTU2OTZiZGQ1Zjg1ODljIiA+PC9kaXY+CiAgICAgICAgCjwvYm9keT4KPHNjcmlwdD4gICAgCiAgICAKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGJvdW5kcyA9IG51bGw7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgdmFyIG1hcF9kNTAwNDE0ZjE3Nzk0YTRhODE1Njk2YmRkNWY4NTg5YyA9IEwubWFwKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ21hcF9kNTAwNDE0ZjE3Nzk0YTRhODE1Njk2YmRkNWY4NTg5YycsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7Y2VudGVyOiBbNDAuNzMwODYxOSwtNzMuOTg3MTU1OF0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB6b29tOiAxMCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1heEJvdW5kczogYm91bmRzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF5ZXJzOiBbXSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdvcmxkQ29weUp1bXA6IGZhbHNlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3JzOiBMLkNSUy5FUFNHMzg1NwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHRpbGVfbGF5ZXJfNDkxMjA1MDlhODBjNDRlMWJhMjE2ZDI1NGIwOGVhYzIgPSBMLnRpbGVMYXllcigKICAgICAgICAgICAgICAgICdodHRwczovL3tzfS50aWxlLm9wZW5zdHJlZXRtYXAub3JnL3t6fS97eH0ve3l9LnBuZycsCiAgICAgICAgICAgICAgICB7CiAgImF0dHJpYnV0aW9uIjogbnVsbCwKICAiZGV0ZWN0UmV0aW5hIjogZmFsc2UsCiAgIm1heFpvb20iOiAxOCwKICAibWluWm9vbSI6IDEsCiAgIm5vV3JhcCI6IGZhbHNlLAogICJzdWJkb21haW5zIjogImFiYyIKfQogICAgICAgICAgICAgICAgKS5hZGRUbyhtYXBfZDUwMDQxNGYxNzc5NGE0YTgxNTY5NmJkZDVmODU4OWMpOwogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBjaXJjbGVfbWFya2VyX2EzZWM2ZDczZTExYzQzYTBhZjU1NDgyMWYwYWFmMzZlID0gTC5jaXJjbGVNYXJrZXIoCiAgICAgICAgICAgICAgICBbNDAuODk0NzA1MTc2NjEsLTczLjg0NzIwMDUyMDU0OTAyXSwKICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogImJsdWUiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IHRydWUsCiAgImZpbGxDb2xvciI6ICIjMzE4NmNjIiwKICAiZmlsbE9wYWNpdHkiOiAwLjcsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJvcGFjaXR5IjogMS4wLAogICJyYWRpdXMiOiA1LAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAzCn0KICAgICAgICAgICAgICAgICkuYWRkVG8obWFwX2Q1MDA0MTRmMTc3OTRhNGE4MTU2OTZiZGQ1Zjg1ODljKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwXzIwOTA3MjZkOTM0ZjRkYmNhNDQxYTU5ZTNjOTIwZDEyID0gTC5wb3B1cCh7bWF4V2lkdGg6ICczMDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sXzk0MDk4Y2RkMTk2ODRlMzk4NDQ3OGZkN2QwZmE2YTU4ID0gJCgnPGRpdiBpZD0iaHRtbF85NDA5OGNkZDE5Njg0ZTM5ODQ0NzhmZDdkMGZhNmE1OCIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+V2FrZWZpZWxkPC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF8yMDkwNzI2ZDkzNGY0ZGJjYTQ0MWE1OWUzYzkyMGQxMi5zZXRDb250ZW50KGh0bWxfOTQwOThjZGQxOTY4NGUzOTg0NDc4ZmQ3ZDBmYTZhNTgpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIGNpcmNsZV9tYXJrZXJfYTNlYzZkNzNlMTFjNDNhMGFmNTU0ODIxZjBhYWYzNmUuYmluZFBvcHVwKHBvcHVwXzIwOTA3MjZkOTM0ZjRkYmNhNDQxYTU5ZTNjOTIwZDEyKTsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBjaXJjbGVfbWFya2VyXzZlNThlNmNkZDJlYTQ3NWU4MDNiNmI0MjUyMmJjNjgyID0gTC5jaXJjbGVNYXJrZXIoCiAgICAgICAgICAgICAgICBbNDAuODc0Mjk0MTkzMDMwMTIsLTczLjgyOTkzOTEwODEyMzk4XSwKICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogImJsdWUiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IHRydWUsCiAgImZpbGxDb2xvciI6ICIjMzE4NmNjIiwKICAiZmlsbE9wYWNpdHkiOiAwLjcsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJvcGFjaXR5IjogMS4wLAogICJyYWRpdXMiOiA1LAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAzCn0KICAgICAgICAgICAgICAgICkuYWRkVG8obWFwX2Q1MDA0MTRmMTc3OTRhNGE4MTU2OTZiZGQ1Zjg1ODljKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwXzJlNTQxZjI5Njc4ZjQ3YjNhZGE2NDk3YzFmYmJjODliID0gTC5wb3B1cCh7bWF4V2lkdGg6ICczMDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sXzhhNzQyYzNkYzQxNDRlN2ZhNDZlMDMwYWM5M2NiM2YwID0gJCgnPGRpdiBpZD0iaHRtbF84YTc0MmMzZGM0MTQ0ZTdmYTQ2ZTAzMGFjOTNjYjNmMCIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+Q28tb3AgQ2l0eTwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfMmU1NDFmMjk2NzhmNDdiM2FkYTY0OTdjMWZiYmM4OWIuc2V0Q29udGVudChodG1sXzhhNzQyYzNkYzQxNDRlN2ZhNDZlMDMwYWM5M2NiM2YwKTsKICAgICAgICAgICAgCgogICAgICAgICAgICBjaXJjbGVfbWFya2VyXzZlNThlNmNkZDJlYTQ3NWU4MDNiNmI0MjUyMmJjNjgyLmJpbmRQb3B1cChwb3B1cF8yZTU0MWYyOTY3OGY0N2IzYWRhNjQ5N2MxZmJiYzg5Yik7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgY2lyY2xlX21hcmtlcl9jNWU3OGVjNjY2NGM0ZjliYTkwMWQ0NzA2ZDg2ZTk3YSA9IEwuY2lyY2xlTWFya2VyKAogICAgICAgICAgICAgICAgWzQwLjg4NzU1NTY3NzM1MDc3NSwtNzMuODI3ODA2NDQ3MTY0MTJdLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiYmx1ZSIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogIiMzMTg2Y2MiLAogICJmaWxsT3BhY2l0eSI6IDAuNywKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDUsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKS5hZGRUbyhtYXBfZDUwMDQxNGYxNzc5NGE0YTgxNTY5NmJkZDVmODU4OWMpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfODU3MmIzNTVmYTgxNDY0Y2EwM2RiYWJhZWFmYzg4ZGIgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfZjZiZTIxNzZhNjVmNDViOWI3YmUzMGQzOGFmYWJkZTQgPSAkKCc8ZGl2IGlkPSJodG1sX2Y2YmUyMTc2YTY1ZjQ1YjliN2JlMzBkMzhhZmFiZGU0IiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij5FYXN0Y2hlc3RlcjwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfODU3MmIzNTVmYTgxNDY0Y2EwM2RiYWJhZWFmYzg4ZGIuc2V0Q29udGVudChodG1sX2Y2YmUyMTc2YTY1ZjQ1YjliN2JlMzBkMzhhZmFiZGU0KTsKICAgICAgICAgICAgCgogICAgICAgICAgICBjaXJjbGVfbWFya2VyX2M1ZTc4ZWM2NjY0YzRmOWJhOTAxZDQ3MDZkODZlOTdhLmJpbmRQb3B1cChwb3B1cF84NTcyYjM1NWZhODE0NjRjYTAzZGJhYmFlYWZjODhkYik7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgY2lyY2xlX21hcmtlcl9jYmVkOWE0NzZjYTQ0ODhhOTIwMjYyNTVhOWFiODA1ZSA9IEwuY2lyY2xlTWFya2VyKAogICAgICAgICAgICAgICAgWzQwLjg5NTQzNzQyNjkwMzgzLC03My45MDU2NDI1OTU5MTY4Ml0sCiAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICJibHVlIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiB0cnVlLAogICJmaWxsQ29sb3IiOiAiIzMxODZjYyIsCiAgImZpbGxPcGFjaXR5IjogMC43LAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAib3BhY2l0eSI6IDEuMCwKICAicmFkaXVzIjogNSwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9CiAgICAgICAgICAgICAgICApLmFkZFRvKG1hcF9kNTAwNDE0ZjE3Nzk0YTRhODE1Njk2YmRkNWY4NTg5Yyk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF8xNmM4Njg1OTQwMDc0YjJiOTc5MWY0YWFmOTdjMTI4YiA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF8yOWI3MmMwOGU3OTM0OWI5OTUxYWRiNWZhMThhNTkzZCA9ICQoJzxkaXYgaWQ9Imh0bWxfMjliNzJjMDhlNzkzNDliOTk1MWFkYjVmYTE4YTU5M2QiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPkZpZWxkc3RvbjwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfMTZjODY4NTk0MDA3NGIyYjk3OTFmNGFhZjk3YzEyOGIuc2V0Q29udGVudChodG1sXzI5YjcyYzA4ZTc5MzQ5Yjk5NTFhZGI1ZmExOGE1OTNkKTsKICAgICAgICAgICAgCgogICAgICAgICAgICBjaXJjbGVfbWFya2VyX2NiZWQ5YTQ3NmNhNDQ4OGE5MjAyNjI1NWE5YWI4MDVlLmJpbmRQb3B1cChwb3B1cF8xNmM4Njg1OTQwMDc0YjJiOTc5MWY0YWFmOTdjMTI4Yik7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgY2lyY2xlX21hcmtlcl8wMDhjZWY4YzJiOGY0NTViOGU0ZTUwOTljNDc4YjE2OCA9IEwuY2lyY2xlTWFya2VyKAogICAgICAgICAgICAgICAgWzQwLjg5MDgzNDQ5Mzg5MTMwNSwtNzMuOTEyNTg1NDYxMDg1N10sCiAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICJibHVlIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiB0cnVlLAogICJmaWxsQ29sb3IiOiAiIzMxODZjYyIsCiAgImZpbGxPcGFjaXR5IjogMC43LAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAib3BhY2l0eSI6IDEuMCwKICAicmFkaXVzIjogNSwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9CiAgICAgICAgICAgICAgICApLmFkZFRvKG1hcF9kNTAwNDE0ZjE3Nzk0YTRhODE1Njk2YmRkNWY4NTg5Yyk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF9hNjE2NjJkMmRhYzc0NWRhYjhkMDFjY2YzZjk0YTFhYiA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF85ZWYyMTA2ZWUxMGE0OTY0ODc0MzkzYmVhM2ExNzg5ZiA9ICQoJzxkaXYgaWQ9Imh0bWxfOWVmMjEwNmVlMTBhNDk2NDg3NDM5M2JlYTNhMTc4OWYiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPlJpdmVyZGFsZTwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfYTYxNjYyZDJkYWM3NDVkYWI4ZDAxY2NmM2Y5NGExYWIuc2V0Q29udGVudChodG1sXzllZjIxMDZlZTEwYTQ5NjQ4NzQzOTNiZWEzYTE3ODlmKTsKICAgICAgICAgICAgCgogICAgICAgICAgICBjaXJjbGVfbWFya2VyXzAwOGNlZjhjMmI4ZjQ1NWI4ZTRlNTA5OWM0NzhiMTY4LmJpbmRQb3B1cChwb3B1cF9hNjE2NjJkMmRhYzc0NWRhYjhkMDFjY2YzZjk0YTFhYik7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgY2lyY2xlX21hcmtlcl9lYTI2YzcyMThmOGU0YTAyOTk4OGQyNDdkNjRhMTc1ZSA9IEwuY2lyY2xlTWFya2VyKAogICAgICAgICAgICAgICAgWzQwLjg4MTY4NzM3MTIwNTIxLC03My45MDI4MTc5ODcyNDYwNF0sCiAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICJibHVlIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiB0cnVlLAogICJmaWxsQ29sb3IiOiAiIzMxODZjYyIsCiAgImZpbGxPcGFjaXR5IjogMC43LAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAib3BhY2l0eSI6IDEuMCwKICAicmFkaXVzIjogNSwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9CiAgICAgICAgICAgICAgICApLmFkZFRvKG1hcF9kNTAwNDE0ZjE3Nzk0YTRhODE1Njk2YmRkNWY4NTg5Yyk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF8yZmRmZDYzOWRmZDc0ZmNlOWI1OWIyZGZiYjU1NjE2MSA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF8xM2U2ZTc4YTkzMTc0NzkxYTNhY2FhMWRhZDUzNmE4YiA9ICQoJzxkaXYgaWQ9Imh0bWxfMTNlNmU3OGE5MzE3NDc5MWEzYWNhYTFkYWQ1MzZhOGIiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPktpbmdzYnJpZGdlPC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF8yZmRmZDYzOWRmZDc0ZmNlOWI1OWIyZGZiYjU1NjE2MS5zZXRDb250ZW50KGh0bWxfMTNlNmU3OGE5MzE3NDc5MWEzYWNhYTFkYWQ1MzZhOGIpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIGNpcmNsZV9tYXJrZXJfZWEyNmM3MjE4ZjhlNGEwMjk5ODhkMjQ3ZDY0YTE3NWUuYmluZFBvcHVwKHBvcHVwXzJmZGZkNjM5ZGZkNzRmY2U5YjU5YjJkZmJiNTU2MTYxKTsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBjaXJjbGVfbWFya2VyXzAxZGQyOTU5OWIzNzRkNTE5ZmMzMzg1MWQ1YzQ2Y2RiID0gTC5jaXJjbGVNYXJrZXIoCiAgICAgICAgICAgICAgICBbNDAuODc2NTUwNzc4Nzk5NjQsLTczLjkxMDY1OTY1ODYyOTgxXSwKICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogImJsdWUiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IHRydWUsCiAgImZpbGxDb2xvciI6ICIjMzE4NmNjIiwKICAiZmlsbE9wYWNpdHkiOiAwLjcsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJvcGFjaXR5IjogMS4wLAogICJyYWRpdXMiOiA1LAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAzCn0KICAgICAgICAgICAgICAgICkuYWRkVG8obWFwX2Q1MDA0MTRmMTc3OTRhNGE4MTU2OTZiZGQ1Zjg1ODljKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwXzg3NWUxODkzNmQ2MDQ4MmI5M2Q2NzVlOWYwMWQ4M2E3ID0gTC5wb3B1cCh7bWF4V2lkdGg6ICczMDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sXzExZTI2MmVkNjQ0YzRmMDBiYzdhZGE2Y2UzMGE2YWVkID0gJCgnPGRpdiBpZD0iaHRtbF8xMWUyNjJlZDY0NGM0ZjAwYmM3YWRhNmNlMzBhNmFlZCIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+TWFyYmxlIEhpbGw8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzg3NWUxODkzNmQ2MDQ4MmI5M2Q2NzVlOWYwMWQ4M2E3LnNldENvbnRlbnQoaHRtbF8xMWUyNjJlZDY0NGM0ZjAwYmM3YWRhNmNlMzBhNmFlZCk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl8wMWRkMjk1OTliMzc0ZDUxOWZjMzM4NTFkNWM0NmNkYi5iaW5kUG9wdXAocG9wdXBfODc1ZTE4OTM2ZDYwNDgyYjkzZDY3NWU5ZjAxZDgzYTcpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfNWY3ODYzMTc5OGU0NGE1N2IzNDg0M2RmNmVlNGRkNjcgPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MC44OTgyNzI2MTIxMzgwNSwtNzMuODY3MzE0OTY4MTQxNzZdLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiYmx1ZSIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogIiMzMTg2Y2MiLAogICJmaWxsT3BhY2l0eSI6IDAuNywKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDUsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKS5hZGRUbyhtYXBfZDUwMDQxNGYxNzc5NGE0YTgxNTY5NmJkZDVmODU4OWMpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfY2Q0N2RmMmE4NDA4NDgxMjg4M2IwY2M0YjhhOGEwMTUgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfZWI2OGE4MDJmNWY2NDA1YmJmOGY2OGYzNTRjMzUzZGQgPSAkKCc8ZGl2IGlkPSJodG1sX2ViNjhhODAyZjVmNjQwNWJiZjhmNjhmMzU0YzM1M2RkIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij5Xb29kbGF3bjwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfY2Q0N2RmMmE4NDA4NDgxMjg4M2IwY2M0YjhhOGEwMTUuc2V0Q29udGVudChodG1sX2ViNjhhODAyZjVmNjQwNWJiZjhmNjhmMzU0YzM1M2RkKTsKICAgICAgICAgICAgCgogICAgICAgICAgICBjaXJjbGVfbWFya2VyXzVmNzg2MzE3OThlNDRhNTdiMzQ4NDNkZjZlZTRkZDY3LmJpbmRQb3B1cChwb3B1cF9jZDQ3ZGYyYTg0MDg0ODEyODgzYjBjYzRiOGE4YTAxNSk7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgY2lyY2xlX21hcmtlcl9mZjg0MDVlNTNlZTk0YWFjYTExZjAxNzEzZDZlNjBkMSA9IEwuY2lyY2xlTWFya2VyKAogICAgICAgICAgICAgICAgWzQwLjg3NzIyNDE1NTk5NDQ2LC03My44NzkzOTA3Mzk1NjgxXSwKICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogImJsdWUiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IHRydWUsCiAgImZpbGxDb2xvciI6ICIjMzE4NmNjIiwKICAiZmlsbE9wYWNpdHkiOiAwLjcsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJvcGFjaXR5IjogMS4wLAogICJyYWRpdXMiOiA1LAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAzCn0KICAgICAgICAgICAgICAgICkuYWRkVG8obWFwX2Q1MDA0MTRmMTc3OTRhNGE4MTU2OTZiZGQ1Zjg1ODljKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwXzQ3ZjUwN2YxY2ZjNzQ4ZWVhZjRlMjI1ZGMyM2Q1MzQwID0gTC5wb3B1cCh7bWF4V2lkdGg6ICczMDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sX2JlMWYyMTdiODFhZDQ0ZjFhY2M2NzE0MGRiNWJmOTkzID0gJCgnPGRpdiBpZD0iaHRtbF9iZTFmMjE3YjgxYWQ0NGYxYWNjNjcxNDBkYjViZjk5MyIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+Tm9yd29vZDwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfNDdmNTA3ZjFjZmM3NDhlZWFmNGUyMjVkYzIzZDUzNDAuc2V0Q29udGVudChodG1sX2JlMWYyMTdiODFhZDQ0ZjFhY2M2NzE0MGRiNWJmOTkzKTsKICAgICAgICAgICAgCgogICAgICAgICAgICBjaXJjbGVfbWFya2VyX2ZmODQwNWU1M2VlOTRhYWNhMTFmMDE3MTNkNmU2MGQxLmJpbmRQb3B1cChwb3B1cF80N2Y1MDdmMWNmYzc0OGVlYWY0ZTIyNWRjMjNkNTM0MCk7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgY2lyY2xlX21hcmtlcl8xZWJhNDA3YWIyNWI0OTk0ODcyMDJlYTE3NjI0NDUxYyA9IEwuY2lyY2xlTWFya2VyKAogICAgICAgICAgICAgICAgWzQwLjg4MTAzODg3ODE5MjExLC03My44NTc0NDY0Mjk3NDIwN10sCiAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICJibHVlIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiB0cnVlLAogICJmaWxsQ29sb3IiOiAiIzMxODZjYyIsCiAgImZpbGxPcGFjaXR5IjogMC43LAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAib3BhY2l0eSI6IDEuMCwKICAicmFkaXVzIjogNSwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9CiAgICAgICAgICAgICAgICApLmFkZFRvKG1hcF9kNTAwNDE0ZjE3Nzk0YTRhODE1Njk2YmRkNWY4NTg5Yyk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF8wZDVlZWE2ODIyMWU0YWNmOWMxNzQ1NGNiODRlMjNkNCA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF9hNGE4OTdjOWY2NjQ0YTUwOGUyMjFmMGNmMDZhYjU4OCA9ICQoJzxkaXYgaWQ9Imh0bWxfYTRhODk3YzlmNjY0NGE1MDhlMjIxZjBjZjA2YWI1ODgiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPldpbGxpYW1zYnJpZGdlPC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF8wZDVlZWE2ODIyMWU0YWNmOWMxNzQ1NGNiODRlMjNkNC5zZXRDb250ZW50KGh0bWxfYTRhODk3YzlmNjY0NGE1MDhlMjIxZjBjZjA2YWI1ODgpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIGNpcmNsZV9tYXJrZXJfMWViYTQwN2FiMjViNDk5NDg3MjAyZWExNzYyNDQ1MWMuYmluZFBvcHVwKHBvcHVwXzBkNWVlYTY4MjIxZTRhY2Y5YzE3NDU0Y2I4NGUyM2Q0KTsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBjaXJjbGVfbWFya2VyX2IwYzA5ZjIzNzljNzQyMDg5NDBmMzEyNGEyYmVkZTM2ID0gTC5jaXJjbGVNYXJrZXIoCiAgICAgICAgICAgICAgICBbNDAuODY2ODU4MTA3MjUyNjk2LC03My44MzU3OTc1OTgwODExN10sCiAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICJibHVlIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiB0cnVlLAogICJmaWxsQ29sb3IiOiAiIzMxODZjYyIsCiAgImZpbGxPcGFjaXR5IjogMC43LAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAib3BhY2l0eSI6IDEuMCwKICAicmFkaXVzIjogNSwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9CiAgICAgICAgICAgICAgICApLmFkZFRvKG1hcF9kNTAwNDE0ZjE3Nzk0YTRhODE1Njk2YmRkNWY4NTg5Yyk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF82MTllY2RkZmNiNmI0NWVhOTNmYjAxZDA5NmJhNDdlZiA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF9jZDYyNTk3NDFlMzk0Yzc1OWRhMmRlZDE5ZWEzZjRjZiA9ICQoJzxkaXYgaWQ9Imh0bWxfY2Q2MjU5NzQxZTM5NGM3NTlkYTJkZWQxOWVhM2Y0Y2YiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPkJheWNoZXN0ZXI8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzYxOWVjZGRmY2I2YjQ1ZWE5M2ZiMDFkMDk2YmE0N2VmLnNldENvbnRlbnQoaHRtbF9jZDYyNTk3NDFlMzk0Yzc1OWRhMmRlZDE5ZWEzZjRjZik7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl9iMGMwOWYyMzc5Yzc0MjA4OTQwZjMxMjRhMmJlZGUzNi5iaW5kUG9wdXAocG9wdXBfNjE5ZWNkZGZjYjZiNDVlYTkzZmIwMWQwOTZiYTQ3ZWYpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfZTk5NzI2YTRmOTQxNGZlNGIyZjQyZjI2OWJmNzc5YWYgPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MC44NTc0MTM0OTgwODg2NSwtNzMuODU0NzU1NjQwMTc5OTldLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiYmx1ZSIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogIiMzMTg2Y2MiLAogICJmaWxsT3BhY2l0eSI6IDAuNywKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDUsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKS5hZGRUbyhtYXBfZDUwMDQxNGYxNzc5NGE0YTgxNTY5NmJkZDVmODU4OWMpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfZTgzYTljMDAyYTFjNDZhMjk2N2UyMDY4MmQzZjc1YjEgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfOTNmZTJiYjk3NTAzNDBmYzkwNDBmOTg2NWY4ZThkNDQgPSAkKCc8ZGl2IGlkPSJodG1sXzkzZmUyYmI5NzUwMzQwZmM5MDQwZjk4NjVmOGU4ZDQ0IiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij5QZWxoYW0gUGFya3dheTwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfZTgzYTljMDAyYTFjNDZhMjk2N2UyMDY4MmQzZjc1YjEuc2V0Q29udGVudChodG1sXzkzZmUyYmI5NzUwMzQwZmM5MDQwZjk4NjVmOGU4ZDQ0KTsKICAgICAgICAgICAgCgogICAgICAgICAgICBjaXJjbGVfbWFya2VyX2U5OTcyNmE0Zjk0MTRmZTRiMmY0MmYyNjliZjc3OWFmLmJpbmRQb3B1cChwb3B1cF9lODNhOWMwMDJhMWM0NmEyOTY3ZTIwNjgyZDNmNzViMSk7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgY2lyY2xlX21hcmtlcl81M2RhNjNlNzk2OGI0MDdiYjY1ZGJlNzgxN2Y3NzUwYiA9IEwuY2lyY2xlTWFya2VyKAogICAgICAgICAgICAgICAgWzQwLjg0NzI0NjcwNDkxODEzLC03My43ODY0ODg0NTI2NzQxM10sCiAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICJibHVlIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiB0cnVlLAogICJmaWxsQ29sb3IiOiAiIzMxODZjYyIsCiAgImZpbGxPcGFjaXR5IjogMC43LAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAib3BhY2l0eSI6IDEuMCwKICAicmFkaXVzIjogNSwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9CiAgICAgICAgICAgICAgICApLmFkZFRvKG1hcF9kNTAwNDE0ZjE3Nzk0YTRhODE1Njk2YmRkNWY4NTg5Yyk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF9jMmUwZWFjZjMyZWY0NGMyYWNjYmM1NzE4ZjQzZDUwZiA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF85YTA4MWIzZDI2Y2U0YjIxOWFiYzdlMTg5MTA2NTlhNSA9ICQoJzxkaXYgaWQ9Imh0bWxfOWEwODFiM2QyNmNlNGIyMTlhYmM3ZTE4OTEwNjU5YTUiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPkNpdHkgSXNsYW5kPC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF9jMmUwZWFjZjMyZWY0NGMyYWNjYmM1NzE4ZjQzZDUwZi5zZXRDb250ZW50KGh0bWxfOWEwODFiM2QyNmNlNGIyMTlhYmM3ZTE4OTEwNjU5YTUpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIGNpcmNsZV9tYXJrZXJfNTNkYTYzZTc5NjhiNDA3YmI2NWRiZTc4MTdmNzc1MGIuYmluZFBvcHVwKHBvcHVwX2MyZTBlYWNmMzJlZjQ0YzJhY2NiYzU3MThmNDNkNTBmKTsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBjaXJjbGVfbWFya2VyX2YxMGRlYzI1MWI5MzQ5OWU5Yzk0N2NhYmJhNTQ2ZTEwID0gTC5jaXJjbGVNYXJrZXIoCiAgICAgICAgICAgICAgICBbNDAuODcwMTg1MTY0OTc1MzI1LC03My44ODU1MTIxODQxOTEzXSwKICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogImJsdWUiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IHRydWUsCiAgImZpbGxDb2xvciI6ICIjMzE4NmNjIiwKICAiZmlsbE9wYWNpdHkiOiAwLjcsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJvcGFjaXR5IjogMS4wLAogICJyYWRpdXMiOiA1LAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAzCn0KICAgICAgICAgICAgICAgICkuYWRkVG8obWFwX2Q1MDA0MTRmMTc3OTRhNGE4MTU2OTZiZGQ1Zjg1ODljKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwXzYzMDhlOTQwYjA0NDQ1OTg5NWFkYmI4ZDBiNjNkMzU5ID0gTC5wb3B1cCh7bWF4V2lkdGg6ICczMDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sXzJmYjJiYzA5NTUwNjRiMGVhZTBhNjA0MjZhNmNhOGI3ID0gJCgnPGRpdiBpZD0iaHRtbF8yZmIyYmMwOTU1MDY0YjBlYWUwYTYwNDI2YTZjYThiNyIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+QmVkZm9yZCBQYXJrPC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF82MzA4ZTk0MGIwNDQ0NTk4OTVhZGJiOGQwYjYzZDM1OS5zZXRDb250ZW50KGh0bWxfMmZiMmJjMDk1NTA2NGIwZWFlMGE2MDQyNmE2Y2E4YjcpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIGNpcmNsZV9tYXJrZXJfZjEwZGVjMjUxYjkzNDk5ZTljOTQ3Y2FiYmE1NDZlMTAuYmluZFBvcHVwKHBvcHVwXzYzMDhlOTQwYjA0NDQ1OTg5NWFkYmI4ZDBiNjNkMzU5KTsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBjaXJjbGVfbWFya2VyXzZmMDI1ZmExZGFlZDQyYWY4OGYzNmI2ODBiOWRmMzJkID0gTC5jaXJjbGVNYXJrZXIoCiAgICAgICAgICAgICAgICBbNDAuODU1NzI3MDc3MTk2NjQsLTczLjkxMDQxNTk2MTkxMzFdLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiYmx1ZSIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogIiMzMTg2Y2MiLAogICJmaWxsT3BhY2l0eSI6IDAuNywKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDUsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKS5hZGRUbyhtYXBfZDUwMDQxNGYxNzc5NGE0YTgxNTY5NmJkZDVmODU4OWMpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfYzRmNWQ1YjU0YjY0NDdhYjk4N2UyMzQ2ZWViODU4ODIgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfMjQwYmJiMmJhNGFiNGUxNzk5OGE2NGU5YjlhNzg0MjIgPSAkKCc8ZGl2IGlkPSJodG1sXzI0MGJiYjJiYTRhYjRlMTc5OThhNjRlOWI5YTc4NDIyIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij5Vbml2ZXJzaXR5IEhlaWdodHM8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwX2M0ZjVkNWI1NGI2NDQ3YWI5ODdlMjM0NmVlYjg1ODgyLnNldENvbnRlbnQoaHRtbF8yNDBiYmIyYmE0YWI0ZTE3OTk4YTY0ZTliOWE3ODQyMik7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl82ZjAyNWZhMWRhZWQ0MmFmODhmMzZiNjgwYjlkZjMyZC5iaW5kUG9wdXAocG9wdXBfYzRmNWQ1YjU0YjY0NDdhYjk4N2UyMzQ2ZWViODU4ODIpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfZjIyYmExZDhmNzRmNDBlMTk0MmQ3ZmNmMDFhNzdhMDMgPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MC44NDc4OTc5MjYwNjI3MSwtNzMuOTE5NjcxNTkxMTk1NjVdLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiYmx1ZSIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogIiMzMTg2Y2MiLAogICJmaWxsT3BhY2l0eSI6IDAuNywKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDUsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKS5hZGRUbyhtYXBfZDUwMDQxNGYxNzc5NGE0YTgxNTY5NmJkZDVmODU4OWMpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfZTgyZTNmOGM1ZmNlNDgyMGE5OTk0Y2VjYWU3YjRmNTggPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfYTRjMDhlOWUwMGJkNDljNmI0YjI5MzBlM2JhMGM1OWMgPSAkKCc8ZGl2IGlkPSJodG1sX2E0YzA4ZTllMDBiZDQ5YzZiNGIyOTMwZTNiYTBjNTljIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij5Nb3JyaXMgSGVpZ2h0czwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfZTgyZTNmOGM1ZmNlNDgyMGE5OTk0Y2VjYWU3YjRmNTguc2V0Q29udGVudChodG1sX2E0YzA4ZTllMDBiZDQ5YzZiNGIyOTMwZTNiYTBjNTljKTsKICAgICAgICAgICAgCgogICAgICAgICAgICBjaXJjbGVfbWFya2VyX2YyMmJhMWQ4Zjc0ZjQwZTE5NDJkN2ZjZjAxYTc3YTAzLmJpbmRQb3B1cChwb3B1cF9lODJlM2Y4YzVmY2U0ODIwYTk5OTRjZWNhZTdiNGY1OCk7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgY2lyY2xlX21hcmtlcl9kZjhiYjQ0OGQ0Zjc0NDQ4YjMzNWUwOWUxYTgwZDMwZCA9IEwuY2lyY2xlTWFya2VyKAogICAgICAgICAgICAgICAgWzQwLjg2MDk5Njc5NjM4NjU0LC03My44OTY0MjY1NTk4MTYyM10sCiAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICJibHVlIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiB0cnVlLAogICJmaWxsQ29sb3IiOiAiIzMxODZjYyIsCiAgImZpbGxPcGFjaXR5IjogMC43LAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAib3BhY2l0eSI6IDEuMCwKICAicmFkaXVzIjogNSwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9CiAgICAgICAgICAgICAgICApLmFkZFRvKG1hcF9kNTAwNDE0ZjE3Nzk0YTRhODE1Njk2YmRkNWY4NTg5Yyk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF9iOGMzMTVhMGU2ZWY0ODIzYWM3ZGEyMTBiZDRkYWZmNCA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF9jYmYwZTczNWRlMTI0YTNmYWFmMjRhYjc2N2VlMzljZiA9ICQoJzxkaXYgaWQ9Imh0bWxfY2JmMGU3MzVkZTEyNGEzZmFhZjI0YWI3NjdlZTM5Y2YiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPkZvcmRoYW08L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwX2I4YzMxNWEwZTZlZjQ4MjNhYzdkYTIxMGJkNGRhZmY0LnNldENvbnRlbnQoaHRtbF9jYmYwZTczNWRlMTI0YTNmYWFmMjRhYjc2N2VlMzljZik7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl9kZjhiYjQ0OGQ0Zjc0NDQ4YjMzNWUwOWUxYTgwZDMwZC5iaW5kUG9wdXAocG9wdXBfYjhjMzE1YTBlNmVmNDgyM2FjN2RhMjEwYmQ0ZGFmZjQpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfMzNjNjlkODBiNWFjNDRkNzk0OTg5YWJjNGE0ZTg1Y2EgPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MC44NDI2OTYxNTc4NjA1MywtNzMuODg3MzU2MTc1MzIzMzhdLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiYmx1ZSIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogIiMzMTg2Y2MiLAogICJmaWxsT3BhY2l0eSI6IDAuNywKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDUsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKS5hZGRUbyhtYXBfZDUwMDQxNGYxNzc5NGE0YTgxNTY5NmJkZDVmODU4OWMpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfYzIyMmU5ODJiY2QyNDlkMGEzNzIxZmFjMTczYjI0ZGUgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfZTc2NDdlNWQ3ZDBlNGQ0Yzk5M2Y1MDM3YmU2YzU5ZDkgPSAkKCc8ZGl2IGlkPSJodG1sX2U3NjQ3ZTVkN2QwZTRkNGM5OTNmNTAzN2JlNmM1OWQ5IiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij5FYXN0IFRyZW1vbnQ8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwX2MyMjJlOTgyYmNkMjQ5ZDBhMzcyMWZhYzE3M2IyNGRlLnNldENvbnRlbnQoaHRtbF9lNzY0N2U1ZDdkMGU0ZDRjOTkzZjUwMzdiZTZjNTlkOSk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl8zM2M2OWQ4MGI1YWM0NGQ3OTQ5ODlhYmM0YTRlODVjYS5iaW5kUG9wdXAocG9wdXBfYzIyMmU5ODJiY2QyNDlkMGEzNzIxZmFjMTczYjI0ZGUpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfNWI4ZWVkMzhlMTY1NGYwY2I4YmU3MmIwYTdiZmNmZjYgPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MC44Mzk0NzUwNTY3MjY1MywtNzMuODc3NzQ0NzQ5MTA1NDVdLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiYmx1ZSIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogIiMzMTg2Y2MiLAogICJmaWxsT3BhY2l0eSI6IDAuNywKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDUsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKS5hZGRUbyhtYXBfZDUwMDQxNGYxNzc5NGE0YTgxNTY5NmJkZDVmODU4OWMpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfNGY4MmQyNjg1NTg1NGUyM2FkMTdjMjMzNGY5MmE4NjEgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfOGE1ZTQ1NThkOTEyNDRkNDk1NDk4YzJmNjRlYTFiMGQgPSAkKCc8ZGl2IGlkPSJodG1sXzhhNWU0NTU4ZDkxMjQ0ZDQ5NTQ5OGMyZjY0ZWExYjBkIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij5XZXN0IEZhcm1zPC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF80ZjgyZDI2ODU1ODU0ZTIzYWQxN2MyMzM0ZjkyYTg2MS5zZXRDb250ZW50KGh0bWxfOGE1ZTQ1NThkOTEyNDRkNDk1NDk4YzJmNjRlYTFiMGQpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIGNpcmNsZV9tYXJrZXJfNWI4ZWVkMzhlMTY1NGYwY2I4YmU3MmIwYTdiZmNmZjYuYmluZFBvcHVwKHBvcHVwXzRmODJkMjY4NTU4NTRlMjNhZDE3YzIzMzRmOTJhODYxKTsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBjaXJjbGVfbWFya2VyX2Y1N2VlOWFiMDU2MDQyM2U4MDc0OWNjZjhlNTdlYjBmID0gTC5jaXJjbGVNYXJrZXIoCiAgICAgICAgICAgICAgICBbNDAuODM2NjIzMDEwNzA2MDU2LC03My45MjYxMDIwOTM1ODEzXSwKICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogImJsdWUiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IHRydWUsCiAgImZpbGxDb2xvciI6ICIjMzE4NmNjIiwKICAiZmlsbE9wYWNpdHkiOiAwLjcsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJvcGFjaXR5IjogMS4wLAogICJyYWRpdXMiOiA1LAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAzCn0KICAgICAgICAgICAgICAgICkuYWRkVG8obWFwX2Q1MDA0MTRmMTc3OTRhNGE4MTU2OTZiZGQ1Zjg1ODljKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwXzM3NWVkZTE2NWYwNzQ3MGZiOGU1YmZjY2VhNTkwMmI4ID0gTC5wb3B1cCh7bWF4V2lkdGg6ICczMDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sXzU3MWI0ZmZhYjA0ODQyZTdiNzdjYWU2ODY4YTdmMzBmID0gJCgnPGRpdiBpZD0iaHRtbF81NzFiNGZmYWIwNDg0MmU3Yjc3Y2FlNjg2OGE3ZjMwZiIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+SGlnaCAgQnJpZGdlPC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF8zNzVlZGUxNjVmMDc0NzBmYjhlNWJmY2NlYTU5MDJiOC5zZXRDb250ZW50KGh0bWxfNTcxYjRmZmFiMDQ4NDJlN2I3N2NhZTY4NjhhN2YzMGYpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIGNpcmNsZV9tYXJrZXJfZjU3ZWU5YWIwNTYwNDIzZTgwNzQ5Y2NmOGU1N2ViMGYuYmluZFBvcHVwKHBvcHVwXzM3NWVkZTE2NWYwNzQ3MGZiOGU1YmZjY2VhNTkwMmI4KTsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBjaXJjbGVfbWFya2VyX2RhODE3NGI3YjNhMTRlYjI4MjM4NGEyZTAwYmE5OTAxID0gTC5jaXJjbGVNYXJrZXIoCiAgICAgICAgICAgICAgICBbNDAuODE5NzU0MzcwNTk0OTM2LC03My45MDk0MjE2MDc1NzQzNl0sCiAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICJibHVlIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiB0cnVlLAogICJmaWxsQ29sb3IiOiAiIzMxODZjYyIsCiAgImZpbGxPcGFjaXR5IjogMC43LAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAib3BhY2l0eSI6IDEuMCwKICAicmFkaXVzIjogNSwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9CiAgICAgICAgICAgICAgICApLmFkZFRvKG1hcF9kNTAwNDE0ZjE3Nzk0YTRhODE1Njk2YmRkNWY4NTg5Yyk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF9lZmM5NmQzYmU4ZDg0YmYxYWY0ZjhhNWFlMTJiYTM4YyA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF9lZTA1ZTZiOGRhMDI0ZTU3OTk0N2E0NTQ4YTAxZjhiYiA9ICQoJzxkaXYgaWQ9Imh0bWxfZWUwNWU2YjhkYTAyNGU1Nzk5NDdhNDU0OGEwMWY4YmIiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPk1lbHJvc2U8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwX2VmYzk2ZDNiZThkODRiZjFhZjRmOGE1YWUxMmJhMzhjLnNldENvbnRlbnQoaHRtbF9lZTA1ZTZiOGRhMDI0ZTU3OTk0N2E0NTQ4YTAxZjhiYik7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl9kYTgxNzRiN2IzYTE0ZWIyODIzODRhMmUwMGJhOTkwMS5iaW5kUG9wdXAocG9wdXBfZWZjOTZkM2JlOGQ4NGJmMWFmNGY4YTVhZTEyYmEzOGMpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfNTM2YmExOTdkNmU1NDVjZmExNjM2MTA1NGZiYTUyYTEgPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MC44MDYyMzg3NDkzNTE3NywtNzMuOTE2MDk5ODc0ODc1NzVdLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiYmx1ZSIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogIiMzMTg2Y2MiLAogICJmaWxsT3BhY2l0eSI6IDAuNywKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDUsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKS5hZGRUbyhtYXBfZDUwMDQxNGYxNzc5NGE0YTgxNTY5NmJkZDVmODU4OWMpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfNDdjN2JkYTkxYTQzNDNhNmE2MmIzZWEwZTU3NmMyYzUgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfYjA2NjhlOGNjMmNlNGE2MmFlZDk4NGM1Y2VlMjFkOGQgPSAkKCc8ZGl2IGlkPSJodG1sX2IwNjY4ZThjYzJjZTRhNjJhZWQ5ODRjNWNlZTIxZDhkIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij5Nb3R0IEhhdmVuPC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF80N2M3YmRhOTFhNDM0M2E2YTYyYjNlYTBlNTc2YzJjNS5zZXRDb250ZW50KGh0bWxfYjA2NjhlOGNjMmNlNGE2MmFlZDk4NGM1Y2VlMjFkOGQpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIGNpcmNsZV9tYXJrZXJfNTM2YmExOTdkNmU1NDVjZmExNjM2MTA1NGZiYTUyYTEuYmluZFBvcHVwKHBvcHVwXzQ3YzdiZGE5MWE0MzQzYTZhNjJiM2VhMGU1NzZjMmM1KTsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBjaXJjbGVfbWFya2VyX2ZiZDI5OTY5ZGNiNjQ1MDVhNGJiOGMyZTE5YTJmMWRlID0gTC5jaXJjbGVNYXJrZXIoCiAgICAgICAgICAgICAgICBbNDAuODAxNjYzNjI3NzU2MjA2LC03My45MTMyMjEzOTM4NjEzNV0sCiAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICJibHVlIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiB0cnVlLAogICJmaWxsQ29sb3IiOiAiIzMxODZjYyIsCiAgImZpbGxPcGFjaXR5IjogMC43LAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAib3BhY2l0eSI6IDEuMCwKICAicmFkaXVzIjogNSwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9CiAgICAgICAgICAgICAgICApLmFkZFRvKG1hcF9kNTAwNDE0ZjE3Nzk0YTRhODE1Njk2YmRkNWY4NTg5Yyk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF85NGE1ZjBiOTdlYTU0YjZhYjM2MGI3YjhlODdmMzY4NSA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF84MDBlMDVhMGRjY2U0ODYzYmMyMGVmN2Q3MTcwMjBkNCA9ICQoJzxkaXYgaWQ9Imh0bWxfODAwZTA1YTBkY2NlNDg2M2JjMjBlZjdkNzE3MDIwZDQiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPlBvcnQgTW9ycmlzPC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF85NGE1ZjBiOTdlYTU0YjZhYjM2MGI3YjhlODdmMzY4NS5zZXRDb250ZW50KGh0bWxfODAwZTA1YTBkY2NlNDg2M2JjMjBlZjdkNzE3MDIwZDQpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIGNpcmNsZV9tYXJrZXJfZmJkMjk5NjlkY2I2NDUwNWE0YmI4YzJlMTlhMmYxZGUuYmluZFBvcHVwKHBvcHVwXzk0YTVmMGI5N2VhNTRiNmFiMzYwYjdiOGU4N2YzNjg1KTsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBjaXJjbGVfbWFya2VyXzYyNjgxYjRiYzlhZjRjMzQ4NDBkYjRmZDUwMWEwZjM0ID0gTC5jaXJjbGVNYXJrZXIoCiAgICAgICAgICAgICAgICBbNDAuODE1MDk5MDQ1NDU4MjIsLTczLjg5NTc4ODIwMDk0NDZdLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiYmx1ZSIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogIiMzMTg2Y2MiLAogICJmaWxsT3BhY2l0eSI6IDAuNywKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDUsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKS5hZGRUbyhtYXBfZDUwMDQxNGYxNzc5NGE0YTgxNTY5NmJkZDVmODU4OWMpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfMDA0YzY1OTVhYTkyNGI3OTk1Zjg3ZjA4YWZmMDQ0NmYgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfZDQwNTExZGRiNGIzNDRiYWExNDA5Mzk3MjBlMDlkNDIgPSAkKCc8ZGl2IGlkPSJodG1sX2Q0MDUxMWRkYjRiMzQ0YmFhMTQwOTM5NzIwZTA5ZDQyIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij5Mb25nd29vZDwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfMDA0YzY1OTVhYTkyNGI3OTk1Zjg3ZjA4YWZmMDQ0NmYuc2V0Q29udGVudChodG1sX2Q0MDUxMWRkYjRiMzQ0YmFhMTQwOTM5NzIwZTA5ZDQyKTsKICAgICAgICAgICAgCgogICAgICAgICAgICBjaXJjbGVfbWFya2VyXzYyNjgxYjRiYzlhZjRjMzQ4NDBkYjRmZDUwMWEwZjM0LmJpbmRQb3B1cChwb3B1cF8wMDRjNjU5NWFhOTI0Yjc5OTVmODdmMDhhZmYwNDQ2Zik7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgY2lyY2xlX21hcmtlcl85MjQ0YjlmMDkwZjA0NjZjOGE2MjUxNmUwNmE1ZjYxYyA9IEwuY2lyY2xlTWFya2VyKAogICAgICAgICAgICAgICAgWzQwLjgwOTcyOTg3OTM4NzA5LC03My44ODMzMTUwNTk1NTI5MV0sCiAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICJibHVlIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiB0cnVlLAogICJmaWxsQ29sb3IiOiAiIzMxODZjYyIsCiAgImZpbGxPcGFjaXR5IjogMC43LAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAib3BhY2l0eSI6IDEuMCwKICAicmFkaXVzIjogNSwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9CiAgICAgICAgICAgICAgICApLmFkZFRvKG1hcF9kNTAwNDE0ZjE3Nzk0YTRhODE1Njk2YmRkNWY4NTg5Yyk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF81NDcwNjBjNzhjN2Q0YjYxODAxZDUxNDMxNzU3NzdkOSA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF85MmVhNzNiZDM2NTI0NzVmOGM5MDQ2MjNkZDRlN2U5OCA9ICQoJzxkaXYgaWQ9Imh0bWxfOTJlYTczYmQzNjUyNDc1ZjhjOTA0NjIzZGQ0ZTdlOTgiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPkh1bnRzIFBvaW50PC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF81NDcwNjBjNzhjN2Q0YjYxODAxZDUxNDMxNzU3NzdkOS5zZXRDb250ZW50KGh0bWxfOTJlYTczYmQzNjUyNDc1ZjhjOTA0NjIzZGQ0ZTdlOTgpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIGNpcmNsZV9tYXJrZXJfOTI0NGI5ZjA5MGYwNDY2YzhhNjI1MTZlMDZhNWY2MWMuYmluZFBvcHVwKHBvcHVwXzU0NzA2MGM3OGM3ZDRiNjE4MDFkNTE0MzE3NTc3N2Q5KTsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBjaXJjbGVfbWFya2VyX2M3MjE2MTllMzlmYjRhNGE5MjVhYzAwMTBhOTc3MGM2ID0gTC5jaXJjbGVNYXJrZXIoCiAgICAgICAgICAgICAgICBbNDAuODIzNTkxOTg1ODU1MzQsLTczLjkwMTUwNjQ4OTQzMDU5XSwKICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogImJsdWUiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IHRydWUsCiAgImZpbGxDb2xvciI6ICIjMzE4NmNjIiwKICAiZmlsbE9wYWNpdHkiOiAwLjcsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJvcGFjaXR5IjogMS4wLAogICJyYWRpdXMiOiA1LAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAzCn0KICAgICAgICAgICAgICAgICkuYWRkVG8obWFwX2Q1MDA0MTRmMTc3OTRhNGE4MTU2OTZiZGQ1Zjg1ODljKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwX2RjNTczNTg4ZDY3ZDRiMWNhZWQ3NWVkMTU2ODBkNTRlID0gTC5wb3B1cCh7bWF4V2lkdGg6ICczMDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sXzAwZWQ1MTU0MzAxYzQ1MTk5ODMzZDYzOGI4Yjc4NmUyID0gJCgnPGRpdiBpZD0iaHRtbF8wMGVkNTE1NDMwMWM0NTE5OTgzM2Q2MzhiOGI3ODZlMiIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+TW9ycmlzYW5pYTwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfZGM1NzM1ODhkNjdkNGIxY2FlZDc1ZWQxNTY4MGQ1NGUuc2V0Q29udGVudChodG1sXzAwZWQ1MTU0MzAxYzQ1MTk5ODMzZDYzOGI4Yjc4NmUyKTsKICAgICAgICAgICAgCgogICAgICAgICAgICBjaXJjbGVfbWFya2VyX2M3MjE2MTllMzlmYjRhNGE5MjVhYzAwMTBhOTc3MGM2LmJpbmRQb3B1cChwb3B1cF9kYzU3MzU4OGQ2N2Q0YjFjYWVkNzVlZDE1NjgwZDU0ZSk7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgY2lyY2xlX21hcmtlcl9iOTFiZTg4ZGViNGQ0ZTUzODQ4M2I3ZDRlZTY1ZjE3MCA9IEwuY2lyY2xlTWFya2VyKAogICAgICAgICAgICAgICAgWzQwLjgyMTAxMjE5NzkxNDAxNSwtNzMuODY1NzQ2MDk1NTQ5MjRdLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiYmx1ZSIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogIiMzMTg2Y2MiLAogICJmaWxsT3BhY2l0eSI6IDAuNywKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDUsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKS5hZGRUbyhtYXBfZDUwMDQxNGYxNzc5NGE0YTgxNTY5NmJkZDVmODU4OWMpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfMzhjNDBjM2QyMTNkNGQ2N2FjY2RiMDk4Y2FhMWU3ZDkgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfMWU1MmFmOWViZjRiNGUwZDk5MzM0YmM2ZmZiNGEyNGIgPSAkKCc8ZGl2IGlkPSJodG1sXzFlNTJhZjllYmY0YjRlMGQ5OTMzNGJjNmZmYjRhMjRiIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij5Tb3VuZHZpZXc8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzM4YzQwYzNkMjEzZDRkNjdhY2NkYjA5OGNhYTFlN2Q5LnNldENvbnRlbnQoaHRtbF8xZTUyYWY5ZWJmNGI0ZTBkOTkzMzRiYzZmZmI0YTI0Yik7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl9iOTFiZTg4ZGViNGQ0ZTUzODQ4M2I3ZDRlZTY1ZjE3MC5iaW5kUG9wdXAocG9wdXBfMzhjNDBjM2QyMTNkNGQ2N2FjY2RiMDk4Y2FhMWU3ZDkpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfYTUzNmE1Yjk0YmQyNGJlNGFkNDlhNjI5MWU4OWIwNDggPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MC44MDY1NTExMjAwMzU4OSwtNzMuODU0MTQ0MTYxODkyNjZdLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiYmx1ZSIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogIiMzMTg2Y2MiLAogICJmaWxsT3BhY2l0eSI6IDAuNywKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDUsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKS5hZGRUbyhtYXBfZDUwMDQxNGYxNzc5NGE0YTgxNTY5NmJkZDVmODU4OWMpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfZjFlNDBhMjAxMTc0NDQ0NDg0YzMwNzBhYjJlMzk2MDEgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfMTViNmU0YmJkN2ZjNDBiNGFhM2E1YjgxMGZmY2I3ZWIgPSAkKCc8ZGl2IGlkPSJodG1sXzE1YjZlNGJiZDdmYzQwYjRhYTNhNWI4MTBmZmNiN2ViIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij5DbGFzb24gUG9pbnQ8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwX2YxZTQwYTIwMTE3NDQ0NDQ4NGMzMDcwYWIyZTM5NjAxLnNldENvbnRlbnQoaHRtbF8xNWI2ZTRiYmQ3ZmM0MGI0YWEzYTViODEwZmZjYjdlYik7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl9hNTM2YTViOTRiZDI0YmU0YWQ0OWE2MjkxZTg5YjA0OC5iaW5kUG9wdXAocG9wdXBfZjFlNDBhMjAxMTc0NDQ0NDg0YzMwNzBhYjJlMzk2MDEpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfYmFlYWQ4YTNlODExNGM2YTkyNDlkYTVmNmJjNTE0OWMgPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MC44MTUxMDkyNTgwNDAwNSwtNzMuODE2MzUwMDIxNTg0NDFdLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiYmx1ZSIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogIiMzMTg2Y2MiLAogICJmaWxsT3BhY2l0eSI6IDAuNywKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDUsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKS5hZGRUbyhtYXBfZDUwMDQxNGYxNzc5NGE0YTgxNTY5NmJkZDVmODU4OWMpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfOWRjN2Y2NzZhY2EyNGQ5ZTlkYTBiMmNlYWE2YmQ2ZDcgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfZTlkYjcxMTM2NDllNDI5OWE2NGE3MDIyN2M5ZTIyZWMgPSAkKCc8ZGl2IGlkPSJodG1sX2U5ZGI3MTEzNjQ5ZTQyOTlhNjRhNzAyMjdjOWUyMmVjIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij5UaHJvZ3MgTmVjazwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfOWRjN2Y2NzZhY2EyNGQ5ZTlkYTBiMmNlYWE2YmQ2ZDcuc2V0Q29udGVudChodG1sX2U5ZGI3MTEzNjQ5ZTQyOTlhNjRhNzAyMjdjOWUyMmVjKTsKICAgICAgICAgICAgCgogICAgICAgICAgICBjaXJjbGVfbWFya2VyX2JhZWFkOGEzZTgxMTRjNmE5MjQ5ZGE1ZjZiYzUxNDljLmJpbmRQb3B1cChwb3B1cF85ZGM3ZjY3NmFjYTI0ZDllOWRhMGIyY2VhYTZiZDZkNyk7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgY2lyY2xlX21hcmtlcl83NjgxNjAzNzM5MmE0MDk3ODNjMzQxYmRkYTI4OGI3MSA9IEwuY2lyY2xlTWFya2VyKAogICAgICAgICAgICAgICAgWzQwLjg0NDI0NTkzNjk0NzM3NCwtNzMuODI0MDk5MjY3NTM4NV0sCiAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICJibHVlIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiB0cnVlLAogICJmaWxsQ29sb3IiOiAiIzMxODZjYyIsCiAgImZpbGxPcGFjaXR5IjogMC43LAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAib3BhY2l0eSI6IDEuMCwKICAicmFkaXVzIjogNSwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9CiAgICAgICAgICAgICAgICApLmFkZFRvKG1hcF9kNTAwNDE0ZjE3Nzk0YTRhODE1Njk2YmRkNWY4NTg5Yyk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF8yMDA3MWU1ZmI2OTc0M2RhYTUwODMzMzdlYTViNTY1ZiA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF9jYTk5MGUyZTVjMTQ0NjFmODg1ZjE5YTJjNjNmY2VhNSA9ICQoJzxkaXYgaWQ9Imh0bWxfY2E5OTBlMmU1YzE0NDYxZjg4NWYxOWEyYzYzZmNlYTUiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPkNvdW50cnkgQ2x1YjwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfMjAwNzFlNWZiNjk3NDNkYWE1MDgzMzM3ZWE1YjU2NWYuc2V0Q29udGVudChodG1sX2NhOTkwZTJlNWMxNDQ2MWY4ODVmMTlhMmM2M2ZjZWE1KTsKICAgICAgICAgICAgCgogICAgICAgICAgICBjaXJjbGVfbWFya2VyXzc2ODE2MDM3MzkyYTQwOTc4M2MzNDFiZGRhMjg4YjcxLmJpbmRQb3B1cChwb3B1cF8yMDA3MWU1ZmI2OTc0M2RhYTUwODMzMzdlYTViNTY1Zik7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgY2lyY2xlX21hcmtlcl9jMjNmYjg1OWZkODU0MGI0YTMxOTkzYmZlZTYxY2QyNyA9IEwuY2lyY2xlTWFya2VyKAogICAgICAgICAgICAgICAgWzQwLjgzNzkzNzgyMjI2NzI4NiwtNzMuODU2MDAzMTA1MzU3ODNdLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiYmx1ZSIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogIiMzMTg2Y2MiLAogICJmaWxsT3BhY2l0eSI6IDAuNywKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDUsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKS5hZGRUbyhtYXBfZDUwMDQxNGYxNzc5NGE0YTgxNTY5NmJkZDVmODU4OWMpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfMjg5YjNiNjU1YjAzNDgzNTgxNjkwMTljYzE2MjExZjggPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfODI5NGE2MmZjN2UyNDU4ZGEwMWY5YjkxYjg5NGExOTEgPSAkKCc8ZGl2IGlkPSJodG1sXzgyOTRhNjJmYzdlMjQ1OGRhMDFmOWI5MWI4OTRhMTkxIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij5QYXJrY2hlc3RlcjwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfMjg5YjNiNjU1YjAzNDgzNTgxNjkwMTljYzE2MjExZjguc2V0Q29udGVudChodG1sXzgyOTRhNjJmYzdlMjQ1OGRhMDFmOWI5MWI4OTRhMTkxKTsKICAgICAgICAgICAgCgogICAgICAgICAgICBjaXJjbGVfbWFya2VyX2MyM2ZiODU5ZmQ4NTQwYjRhMzE5OTNiZmVlNjFjZDI3LmJpbmRQb3B1cChwb3B1cF8yODliM2I2NTViMDM0ODM1ODE2OTAxOWNjMTYyMTFmOCk7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgY2lyY2xlX21hcmtlcl9mZTQ2NDI0ODFjMTA0NDNiYWM2YjNjOTc0ZDhlYjFlZiA9IEwuY2lyY2xlTWFya2VyKAogICAgICAgICAgICAgICAgWzQwLjg0MDYxOTQ5NjQzMjcsLTczLjg0MjE5NDA3NjA0NDQ0XSwKICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogImJsdWUiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IHRydWUsCiAgImZpbGxDb2xvciI6ICIjMzE4NmNjIiwKICAiZmlsbE9wYWNpdHkiOiAwLjcsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJvcGFjaXR5IjogMS4wLAogICJyYWRpdXMiOiA1LAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAzCn0KICAgICAgICAgICAgICAgICkuYWRkVG8obWFwX2Q1MDA0MTRmMTc3OTRhNGE4MTU2OTZiZGQ1Zjg1ODljKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwXzhlZGJmMzc0NzkwZjQ0N2RiZjUyZWI0YjBlM2FiODZlID0gTC5wb3B1cCh7bWF4V2lkdGg6ICczMDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sXzRkNzY4NGVkMzQ4YTRkYTViYmMyYjY3YzRhNzIxYzQ5ID0gJCgnPGRpdiBpZD0iaHRtbF80ZDc2ODRlZDM0OGE0ZGE1YmJjMmI2N2M0YTcyMWM0OSIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+V2VzdGNoZXN0ZXIgU3F1YXJlPC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF84ZWRiZjM3NDc5MGY0NDdkYmY1MmViNGIwZTNhYjg2ZS5zZXRDb250ZW50KGh0bWxfNGQ3Njg0ZWQzNDhhNGRhNWJiYzJiNjdjNGE3MjFjNDkpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIGNpcmNsZV9tYXJrZXJfZmU0NjQyNDgxYzEwNDQzYmFjNmIzYzk3NGQ4ZWIxZWYuYmluZFBvcHVwKHBvcHVwXzhlZGJmMzc0NzkwZjQ0N2RiZjUyZWI0YjBlM2FiODZlKTsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBjaXJjbGVfbWFya2VyXzYwNDQzN2I1ZDI4YTQxNzc5YmM2YWRhZjRjMTU5NDYyID0gTC5jaXJjbGVNYXJrZXIoCiAgICAgICAgICAgICAgICBbNDAuODQzNjA4NDcxMjQ3MTgsLTczLjg2NjI5OTE4MDc1NjFdLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiYmx1ZSIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogIiMzMTg2Y2MiLAogICJmaWxsT3BhY2l0eSI6IDAuNywKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDUsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKS5hZGRUbyhtYXBfZDUwMDQxNGYxNzc5NGE0YTgxNTY5NmJkZDVmODU4OWMpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfZjg4ZjBiNTBlNTIzNDM4MjljY2YyOWI5MzIyOTNkYWEgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfZWEzMjAxZWQ4MjUyNGI3OTk2YTkxNzM5MTUwOTYxMTMgPSAkKCc8ZGl2IGlkPSJodG1sX2VhMzIwMWVkODI1MjRiNzk5NmE5MTczOTE1MDk2MTEzIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij5WYW4gTmVzdDwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfZjg4ZjBiNTBlNTIzNDM4MjljY2YyOWI5MzIyOTNkYWEuc2V0Q29udGVudChodG1sX2VhMzIwMWVkODI1MjRiNzk5NmE5MTczOTE1MDk2MTEzKTsKICAgICAgICAgICAgCgogICAgICAgICAgICBjaXJjbGVfbWFya2VyXzYwNDQzN2I1ZDI4YTQxNzc5YmM2YWRhZjRjMTU5NDYyLmJpbmRQb3B1cChwb3B1cF9mODhmMGI1MGU1MjM0MzgyOWNjZjI5YjkzMjI5M2RhYSk7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgY2lyY2xlX21hcmtlcl81MjVkNjg4YmI0OWQ0MGQwOTQyYzQwZTdmYjc2Njc5NSA9IEwuY2lyY2xlTWFya2VyKAogICAgICAgICAgICAgICAgWzQwLjg0NzU0OTA2MzUzNjMzNCwtNzMuODUwNDAxNzgwMzA0MjFdLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiYmx1ZSIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogIiMzMTg2Y2MiLAogICJmaWxsT3BhY2l0eSI6IDAuNywKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDUsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKS5hZGRUbyhtYXBfZDUwMDQxNGYxNzc5NGE0YTgxNTY5NmJkZDVmODU4OWMpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfODBjNmMwYjQwNzk2NDk2MGI0MDEzNmY2MDczNDg2YzMgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfZTBhYzhjYzc0YjhkNDQ3ZjgwYjg3ZGNkNWFiNjBlYjggPSAkKCc8ZGl2IGlkPSJodG1sX2UwYWM4Y2M3NGI4ZDQ0N2Y4MGI4N2RjZDVhYjYwZWI4IiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij5Nb3JyaXMgUGFyazwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfODBjNmMwYjQwNzk2NDk2MGI0MDEzNmY2MDczNDg2YzMuc2V0Q29udGVudChodG1sX2UwYWM4Y2M3NGI4ZDQ0N2Y4MGI4N2RjZDVhYjYwZWI4KTsKICAgICAgICAgICAgCgogICAgICAgICAgICBjaXJjbGVfbWFya2VyXzUyNWQ2ODhiYjQ5ZDQwZDA5NDJjNDBlN2ZiNzY2Nzk1LmJpbmRQb3B1cChwb3B1cF84MGM2YzBiNDA3OTY0OTYwYjQwMTM2ZjYwNzM0ODZjMyk7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgY2lyY2xlX21hcmtlcl9iNjM5YzE4ZGY5ZTY0MzhmODFiYWRlMmJlOTZiZjRhNyA9IEwuY2lyY2xlTWFya2VyKAogICAgICAgICAgICAgICAgWzQwLjg1NzI3NzEwMDczODk1LC03My44ODg0NTE5NjEzNDgwNF0sCiAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICJibHVlIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiB0cnVlLAogICJmaWxsQ29sb3IiOiAiIzMxODZjYyIsCiAgImZpbGxPcGFjaXR5IjogMC43LAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAib3BhY2l0eSI6IDEuMCwKICAicmFkaXVzIjogNSwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9CiAgICAgICAgICAgICAgICApLmFkZFRvKG1hcF9kNTAwNDE0ZjE3Nzk0YTRhODE1Njk2YmRkNWY4NTg5Yyk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF9hZGExNTBjODRjZjM0YjIyYjVkZGY4ZmFmY2Q2NWVhZSA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF8xZjBhZjFmMjNhZDM0OGRkODBjZTkyYjY2YmY5NDY0YSA9ICQoJzxkaXYgaWQ9Imh0bWxfMWYwYWYxZjIzYWQzNDhkZDgwY2U5MmI2NmJmOTQ2NGEiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPkJlbG1vbnQ8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwX2FkYTE1MGM4NGNmMzRiMjJiNWRkZjhmYWZjZDY1ZWFlLnNldENvbnRlbnQoaHRtbF8xZjBhZjFmMjNhZDM0OGRkODBjZTkyYjY2YmY5NDY0YSk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl9iNjM5YzE4ZGY5ZTY0MzhmODFiYWRlMmJlOTZiZjRhNy5iaW5kUG9wdXAocG9wdXBfYWRhMTUwYzg0Y2YzNGIyMmI1ZGRmOGZhZmNkNjVlYWUpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfYTVkZjEyNjIyZjc3NGEwNzgzZDZjNDFjNjA2Y2ViNzUgPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MC44ODEzOTQ5NzcyNzA4NiwtNzMuOTE3MTkwNDgyMTAzOTNdLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiYmx1ZSIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogIiMzMTg2Y2MiLAogICJmaWxsT3BhY2l0eSI6IDAuNywKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDUsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKS5hZGRUbyhtYXBfZDUwMDQxNGYxNzc5NGE0YTgxNTY5NmJkZDVmODU4OWMpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfOGFkMjQ0OGYxMzBkNGI0YTliNTRjNTFmMTFiMzU0YzEgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfZjhiMDhhMDI0ZjRjNDExMmJkMWY4MjRkOTBlY2I0NzYgPSAkKCc8ZGl2IGlkPSJodG1sX2Y4YjA4YTAyNGY0YzQxMTJiZDFmODI0ZDkwZWNiNDc2IiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij5TcHV5dGVuIER1eXZpbDwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfOGFkMjQ0OGYxMzBkNGI0YTliNTRjNTFmMTFiMzU0YzEuc2V0Q29udGVudChodG1sX2Y4YjA4YTAyNGY0YzQxMTJiZDFmODI0ZDkwZWNiNDc2KTsKICAgICAgICAgICAgCgogICAgICAgICAgICBjaXJjbGVfbWFya2VyX2E1ZGYxMjYyMmY3NzRhMDc4M2Q2YzQxYzYwNmNlYjc1LmJpbmRQb3B1cChwb3B1cF84YWQyNDQ4ZjEzMGQ0YjRhOWI1NGM1MWYxMWIzNTRjMSk7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgY2lyY2xlX21hcmtlcl8xMDgxYjUyOWVhZGE0YzMzYTBiOGU1NTQ0MzFmZGVhNyA9IEwuY2lyY2xlTWFya2VyKAogICAgICAgICAgICAgICAgWzQwLjkwODU0MjgyOTUwNjY2LC03My45MDQ1MzA1NDkwODkyN10sCiAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICJibHVlIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiB0cnVlLAogICJmaWxsQ29sb3IiOiAiIzMxODZjYyIsCiAgImZpbGxPcGFjaXR5IjogMC43LAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAib3BhY2l0eSI6IDEuMCwKICAicmFkaXVzIjogNSwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9CiAgICAgICAgICAgICAgICApLmFkZFRvKG1hcF9kNTAwNDE0ZjE3Nzk0YTRhODE1Njk2YmRkNWY4NTg5Yyk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF8wNDVhMThhZmU4ZjY0MGU1OTAzMjQ5MzNmZjM1ZmVhMCA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF9jNmZhMTBkODdjYzY0MWU3YWJiYTFkNWQ5ZDZhM2NiNiA9ICQoJzxkaXYgaWQ9Imh0bWxfYzZmYTEwZDg3Y2M2NDFlN2FiYmExZDVkOWQ2YTNjYjYiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPk5vcnRoIFJpdmVyZGFsZTwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfMDQ1YTE4YWZlOGY2NDBlNTkwMzI0OTMzZmYzNWZlYTAuc2V0Q29udGVudChodG1sX2M2ZmExMGQ4N2NjNjQxZTdhYmJhMWQ1ZDlkNmEzY2I2KTsKICAgICAgICAgICAgCgogICAgICAgICAgICBjaXJjbGVfbWFya2VyXzEwODFiNTI5ZWFkYTRjMzNhMGI4ZTU1NDQzMWZkZWE3LmJpbmRQb3B1cChwb3B1cF8wNDVhMThhZmU4ZjY0MGU1OTAzMjQ5MzNmZjM1ZmVhMCk7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgY2lyY2xlX21hcmtlcl8yODAwYTk3ZmU3MWM0Yjc0YmQ2YWJjNmQzOWE1YTBlYyA9IEwuY2lyY2xlTWFya2VyKAogICAgICAgICAgICAgICAgWzQwLjg1MDY0MTQwOTQwMzM1LC03My44MzIwNzM3ODI0MDQ3XSwKICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogImJsdWUiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IHRydWUsCiAgImZpbGxDb2xvciI6ICIjMzE4NmNjIiwKICAiZmlsbE9wYWNpdHkiOiAwLjcsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJvcGFjaXR5IjogMS4wLAogICJyYWRpdXMiOiA1LAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAzCn0KICAgICAgICAgICAgICAgICkuYWRkVG8obWFwX2Q1MDA0MTRmMTc3OTRhNGE4MTU2OTZiZGQ1Zjg1ODljKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwXzE4NDk3NTI0MDY4MTQzZTFhZDMyOTljYzIwZWU0ZmRiID0gTC5wb3B1cCh7bWF4V2lkdGg6ICczMDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sX2JhNWViMTM0ZWFhZjQxZWM5MGFhMmNlMjJiMTk3MzhhID0gJCgnPGRpdiBpZD0iaHRtbF9iYTVlYjEzNGVhYWY0MWVjOTBhYTJjZTIyYjE5NzM4YSIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+UGVsaGFtIEJheTwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfMTg0OTc1MjQwNjgxNDNlMWFkMzI5OWNjMjBlZTRmZGIuc2V0Q29udGVudChodG1sX2JhNWViMTM0ZWFhZjQxZWM5MGFhMmNlMjJiMTk3MzhhKTsKICAgICAgICAgICAgCgogICAgICAgICAgICBjaXJjbGVfbWFya2VyXzI4MDBhOTdmZTcxYzRiNzRiZDZhYmM2ZDM5YTVhMGVjLmJpbmRQb3B1cChwb3B1cF8xODQ5NzUyNDA2ODE0M2UxYWQzMjk5Y2MyMGVlNGZkYik7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgY2lyY2xlX21hcmtlcl9hMmU5NmNhODc3OGY0YmM3YjkxOTczNmFlYTg1YWU0YiA9IEwuY2lyY2xlTWFya2VyKAogICAgICAgICAgICAgICAgWzQwLjgyNjU3OTUxNjg2OTIyLC03My44MjYyMDI3NTk5NDA3M10sCiAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICJibHVlIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiB0cnVlLAogICJmaWxsQ29sb3IiOiAiIzMxODZjYyIsCiAgImZpbGxPcGFjaXR5IjogMC43LAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAib3BhY2l0eSI6IDEuMCwKICAicmFkaXVzIjogNSwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9CiAgICAgICAgICAgICAgICApLmFkZFRvKG1hcF9kNTAwNDE0ZjE3Nzk0YTRhODE1Njk2YmRkNWY4NTg5Yyk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF9kMDU3YTM3NjI0NTg0MGYwYmQyYjBiNTk5ZDAzOWM4NCA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF8wYTFiMGE1Njc2YmE0NWJhOTRiYWM0NDVmZDY5OTZkOSA9ICQoJzxkaXYgaWQ9Imh0bWxfMGExYjBhNTY3NmJhNDViYTk0YmFjNDQ1ZmQ2OTk2ZDkiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPlNjaHV5bGVydmlsbGU8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwX2QwNTdhMzc2MjQ1ODQwZjBiZDJiMGI1OTlkMDM5Yzg0LnNldENvbnRlbnQoaHRtbF8wYTFiMGE1Njc2YmE0NWJhOTRiYWM0NDVmZDY5OTZkOSk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl9hMmU5NmNhODc3OGY0YmM3YjkxOTczNmFlYTg1YWU0Yi5iaW5kUG9wdXAocG9wdXBfZDA1N2EzNzYyNDU4NDBmMGJkMmIwYjU5OWQwMzljODQpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfZDQ3NDM1ZDBmNGY1NDYwNzk4MjhlNjk2ZmJhNGY3ZGMgPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MC44MjE5ODYxMTgxNjM0OTQsLTczLjgxMzg4NTE0NDI4NjE5XSwKICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogImJsdWUiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IHRydWUsCiAgImZpbGxDb2xvciI6ICIjMzE4NmNjIiwKICAiZmlsbE9wYWNpdHkiOiAwLjcsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJvcGFjaXR5IjogMS4wLAogICJyYWRpdXMiOiA1LAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAzCn0KICAgICAgICAgICAgICAgICkuYWRkVG8obWFwX2Q1MDA0MTRmMTc3OTRhNGE4MTU2OTZiZGQ1Zjg1ODljKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwXzY4ODk5OWMxOGNjYzQ0ZWE5YmY4MTg4YjVkOTljMWUwID0gTC5wb3B1cCh7bWF4V2lkdGg6ICczMDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sXzZlNjc3NTJhNjA5ZjRiYzRiYzY2OTkxMDI3ZTVhYWY1ID0gJCgnPGRpdiBpZD0iaHRtbF82ZTY3NzUyYTYwOWY0YmM0YmM2Njk5MTAyN2U1YWFmNSIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+RWRnZXdhdGVyIFBhcms8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzY4ODk5OWMxOGNjYzQ0ZWE5YmY4MTg4YjVkOTljMWUwLnNldENvbnRlbnQoaHRtbF82ZTY3NzUyYTYwOWY0YmM0YmM2Njk5MTAyN2U1YWFmNSk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl9kNDc0MzVkMGY0ZjU0NjA3OTgyOGU2OTZmYmE0ZjdkYy5iaW5kUG9wdXAocG9wdXBfNjg4OTk5YzE4Y2NjNDRlYTliZjgxODhiNWQ5OWMxZTApOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfMjVmMmIzZTFkNjg3NDI5YTgxZjljODdlNWY5ZmU4MzIgPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MC44MTkwMTQzNzY5ODgzMTQsLTczLjg0ODAyNzI5NTgyNzM1XSwKICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogImJsdWUiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IHRydWUsCiAgImZpbGxDb2xvciI6ICIjMzE4NmNjIiwKICAiZmlsbE9wYWNpdHkiOiAwLjcsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJvcGFjaXR5IjogMS4wLAogICJyYWRpdXMiOiA1LAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAzCn0KICAgICAgICAgICAgICAgICkuYWRkVG8obWFwX2Q1MDA0MTRmMTc3OTRhNGE4MTU2OTZiZGQ1Zjg1ODljKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwX2JjYjUzYjU0YzYxNjRmODViZTMxOThkZDBlNTMxNTU1ID0gTC5wb3B1cCh7bWF4V2lkdGg6ICczMDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sXzNkODQxNDI0NGRhYTQzYzA4NmUwNjZhOTE2Yzc2YTI2ID0gJCgnPGRpdiBpZD0iaHRtbF8zZDg0MTQyNDRkYWE0M2MwODZlMDY2YTkxNmM3NmEyNiIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+Q2FzdGxlIEhpbGw8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwX2JjYjUzYjU0YzYxNjRmODViZTMxOThkZDBlNTMxNTU1LnNldENvbnRlbnQoaHRtbF8zZDg0MTQyNDRkYWE0M2MwODZlMDY2YTkxNmM3NmEyNik7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl8yNWYyYjNlMWQ2ODc0MjlhODFmOWM4N2U1ZjlmZTgzMi5iaW5kUG9wdXAocG9wdXBfYmNiNTNiNTRjNjE2NGY4NWJlMzE5OGRkMGU1MzE1NTUpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfZmE3ODBkYTExMTgwNGY3OTg0ODNiOWEyNzY1NTc0ZTcgPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MC44NzEzNzA3ODE5MjM3MSwtNzMuODYzMzIzNjE2NTI3NzddLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiYmx1ZSIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogIiMzMTg2Y2MiLAogICJmaWxsT3BhY2l0eSI6IDAuNywKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDUsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKS5hZGRUbyhtYXBfZDUwMDQxNGYxNzc5NGE0YTgxNTY5NmJkZDVmODU4OWMpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfODVjMTM0MWNkNDZiNDEyZjlmOWM3NjZkMzhhNDQ0OWEgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfNjMwZDI0MWZlOTI0NGRiNGIyOTEyMGMwZDk5ODBkNmIgPSAkKCc8ZGl2IGlkPSJodG1sXzYzMGQyNDFmZTkyNDRkYjRiMjkxMjBjMGQ5OTgwZDZiIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij5PbGludmlsbGU8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzg1YzEzNDFjZDQ2YjQxMmY5ZjljNzY2ZDM4YTQ0NDlhLnNldENvbnRlbnQoaHRtbF82MzBkMjQxZmU5MjQ0ZGI0YjI5MTIwYzBkOTk4MGQ2Yik7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl9mYTc4MGRhMTExODA0Zjc5ODQ4M2I5YTI3NjU1NzRlNy5iaW5kUG9wdXAocG9wdXBfODVjMTM0MWNkNDZiNDEyZjlmOWM3NjZkMzhhNDQ0OWEpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfOTQ2N2U4N2YxNmU0NDU1NzgwYjM5MjhiZGJmODQ4ZDggPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MC44NjI5NjU2MjQ3Nzk5OCwtNzMuODQxNjExOTQ4MzEyMjNdLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiYmx1ZSIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogIiMzMTg2Y2MiLAogICJmaWxsT3BhY2l0eSI6IDAuNywKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDUsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKS5hZGRUbyhtYXBfZDUwMDQxNGYxNzc5NGE0YTgxNTY5NmJkZDVmODU4OWMpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfMTU4M2QwOTM1MmEyNDRkNDkzZWM1Y2Y3NDkzNjFkOTEgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfZjJmNWVmMjQxNmM1NGNiMmEzZThiMjc1MjRmMDYyMmEgPSAkKCc8ZGl2IGlkPSJodG1sX2YyZjVlZjI0MTZjNTRjYjJhM2U4YjI3NTI0ZjA2MjJhIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij5QZWxoYW0gR2FyZGVuczwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfMTU4M2QwOTM1MmEyNDRkNDkzZWM1Y2Y3NDkzNjFkOTEuc2V0Q29udGVudChodG1sX2YyZjVlZjI0MTZjNTRjYjJhM2U4YjI3NTI0ZjA2MjJhKTsKICAgICAgICAgICAgCgogICAgICAgICAgICBjaXJjbGVfbWFya2VyXzk0NjdlODdmMTZlNDQ1NTc4MGIzOTI4YmRiZjg0OGQ4LmJpbmRQb3B1cChwb3B1cF8xNTgzZDA5MzUyYTI0NGQ0OTNlYzVjZjc0OTM2MWQ5MSk7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgY2lyY2xlX21hcmtlcl9mYWY4Y2FhNzMzYjE0NDMzYmJkMTFhOTgwNzM4YTE5YyA9IEwuY2lyY2xlTWFya2VyKAogICAgICAgICAgICAgICAgWzQwLjgzNDI4MzgwNzMzODUxLC03My45MTU1ODk0MTc3MzQ0NF0sCiAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICJibHVlIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiB0cnVlLAogICJmaWxsQ29sb3IiOiAiIzMxODZjYyIsCiAgImZpbGxPcGFjaXR5IjogMC43LAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAib3BhY2l0eSI6IDEuMCwKICAicmFkaXVzIjogNSwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9CiAgICAgICAgICAgICAgICApLmFkZFRvKG1hcF9kNTAwNDE0ZjE3Nzk0YTRhODE1Njk2YmRkNWY4NTg5Yyk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF9lMDhkYWZkZTg0MzI0OWMxOTA0ZWVkZGVmY2RiMWQ2MyA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF9iODdkM2MyZDY3NDE0NTc1OWQ2OWRiNmQ5YWQ0YmY4NSA9ICQoJzxkaXYgaWQ9Imh0bWxfYjg3ZDNjMmQ2NzQxNDU3NTlkNjlkYjZkOWFkNGJmODUiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPkNvbmNvdXJzZTwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfZTA4ZGFmZGU4NDMyNDljMTkwNGVlZGRlZmNkYjFkNjMuc2V0Q29udGVudChodG1sX2I4N2QzYzJkNjc0MTQ1NzU5ZDY5ZGI2ZDlhZDRiZjg1KTsKICAgICAgICAgICAgCgogICAgICAgICAgICBjaXJjbGVfbWFya2VyX2ZhZjhjYWE3MzNiMTQ0MzNiYmQxMWE5ODA3MzhhMTljLmJpbmRQb3B1cChwb3B1cF9lMDhkYWZkZTg0MzI0OWMxOTA0ZWVkZGVmY2RiMWQ2Myk7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgY2lyY2xlX21hcmtlcl8zMjRmMWYyYWUzNmQ0MTRmOGIzMDViNzI2NmJmZTcyMCA9IEwuY2lyY2xlTWFya2VyKAogICAgICAgICAgICAgICAgWzQwLjgyOTc3NDI5Nzg3MTYxLC03My44NTA1MzUyNDQ1MTkzNV0sCiAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICJibHVlIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiB0cnVlLAogICJmaWxsQ29sb3IiOiAiIzMxODZjYyIsCiAgImZpbGxPcGFjaXR5IjogMC43LAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAib3BhY2l0eSI6IDEuMCwKICAicmFkaXVzIjogNSwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9CiAgICAgICAgICAgICAgICApLmFkZFRvKG1hcF9kNTAwNDE0ZjE3Nzk0YTRhODE1Njk2YmRkNWY4NTg5Yyk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF9lYjFhNmU1ZTc4Nzc0NmY4ODZjNzRjMjM3MmIxNDkwYSA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF8wZGVkZjc2OTBmNWQ0MTJmOWU1OGZkN2I3NzlmMDY2MyA9ICQoJzxkaXYgaWQ9Imh0bWxfMGRlZGY3NjkwZjVkNDEyZjllNThmZDdiNzc5ZjA2NjMiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPlVuaW9ucG9ydDwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfZWIxYTZlNWU3ODc3NDZmODg2Yzc0YzIzNzJiMTQ5MGEuc2V0Q29udGVudChodG1sXzBkZWRmNzY5MGY1ZDQxMmY5ZTU4ZmQ3Yjc3OWYwNjYzKTsKICAgICAgICAgICAgCgogICAgICAgICAgICBjaXJjbGVfbWFya2VyXzMyNGYxZjJhZTM2ZDQxNGY4YjMwNWI3MjY2YmZlNzIwLmJpbmRQb3B1cChwb3B1cF9lYjFhNmU1ZTc4Nzc0NmY4ODZjNzRjMjM3MmIxNDkwYSk7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgY2lyY2xlX21hcmtlcl83NDA1MmY0ZGZhYTA0Y2U1YTZkODJmMjFmZjRhMDFlNiA9IEwuY2lyY2xlTWFya2VyKAogICAgICAgICAgICAgICAgWzQwLjg4NDU2MTMwMzAzNzMyLC03My44NDgwODI3MTg3NzE2OF0sCiAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICJibHVlIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiB0cnVlLAogICJmaWxsQ29sb3IiOiAiIzMxODZjYyIsCiAgImZpbGxPcGFjaXR5IjogMC43LAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAib3BhY2l0eSI6IDEuMCwKICAicmFkaXVzIjogNSwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9CiAgICAgICAgICAgICAgICApLmFkZFRvKG1hcF9kNTAwNDE0ZjE3Nzk0YTRhODE1Njk2YmRkNWY4NTg5Yyk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF82MThlOWE0OGUzZmY0YzZhOGVkZWQ5MzdiMTNlNTFlYSA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF81NDI2YzVkOTdmNGQ0OWIwODk3MzkzNjY0MjU0MWZlMCA9ICQoJzxkaXYgaWQ9Imh0bWxfNTQyNmM1ZDk3ZjRkNDliMDg5NzM5MzY2NDI1NDFmZTAiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPkVkZW53YWxkPC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF82MThlOWE0OGUzZmY0YzZhOGVkZWQ5MzdiMTNlNTFlYS5zZXRDb250ZW50KGh0bWxfNTQyNmM1ZDk3ZjRkNDliMDg5NzM5MzY2NDI1NDFmZTApOwogICAgICAgICAgICAKCiAgICAgICAgICAgIGNpcmNsZV9tYXJrZXJfNzQwNTJmNGRmYWEwNGNlNWE2ZDgyZjIxZmY0YTAxZTYuYmluZFBvcHVwKHBvcHVwXzYxOGU5YTQ4ZTNmZjRjNmE4ZWRlZDkzN2IxM2U1MWVhKTsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBjaXJjbGVfbWFya2VyXzQ1ZDgyMjBhNDViYzQ4ZjI5ZWMxY2Y2MzU3OTYzMGI3ID0gTC5jaXJjbGVNYXJrZXIoCiAgICAgICAgICAgICAgICBbNDAuNjI1ODAxMDY1MDEwNjU2LC03NC4wMzA2MjA2OTM1MzgxM10sCiAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICJibHVlIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiB0cnVlLAogICJmaWxsQ29sb3IiOiAiIzMxODZjYyIsCiAgImZpbGxPcGFjaXR5IjogMC43LAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAib3BhY2l0eSI6IDEuMCwKICAicmFkaXVzIjogNSwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9CiAgICAgICAgICAgICAgICApLmFkZFRvKG1hcF9kNTAwNDE0ZjE3Nzk0YTRhODE1Njk2YmRkNWY4NTg5Yyk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF8zODBiY2UwMWFiMzU0MWM1OTQ5NDI2NTNjZTlmNjlkNCA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF8xYTM3OGFhMjdiZGE0ZjEwYjU1M2E0NThiOWE0YWZkYiA9ICQoJzxkaXYgaWQ9Imh0bWxfMWEzNzhhYTI3YmRhNGYxMGI1NTNhNDU4YjlhNGFmZGIiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPkJheSBSaWRnZTwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfMzgwYmNlMDFhYjM1NDFjNTk0OTQyNjUzY2U5ZjY5ZDQuc2V0Q29udGVudChodG1sXzFhMzc4YWEyN2JkYTRmMTBiNTUzYTQ1OGI5YTRhZmRiKTsKICAgICAgICAgICAgCgogICAgICAgICAgICBjaXJjbGVfbWFya2VyXzQ1ZDgyMjBhNDViYzQ4ZjI5ZWMxY2Y2MzU3OTYzMGI3LmJpbmRQb3B1cChwb3B1cF8zODBiY2UwMWFiMzU0MWM1OTQ5NDI2NTNjZTlmNjlkNCk7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgY2lyY2xlX21hcmtlcl9hYjBmMWVmOGMzMjY0MzllOWQxYzVjM2Y4NTNkNmIzMiA9IEwuY2lyY2xlTWFya2VyKAogICAgICAgICAgICAgICAgWzQwLjYxMTAwODkwMjAyMDQ0LC03My45OTUxNzk5ODM4MDcyOV0sCiAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICJibHVlIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiB0cnVlLAogICJmaWxsQ29sb3IiOiAiIzMxODZjYyIsCiAgImZpbGxPcGFjaXR5IjogMC43LAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAib3BhY2l0eSI6IDEuMCwKICAicmFkaXVzIjogNSwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9CiAgICAgICAgICAgICAgICApLmFkZFRvKG1hcF9kNTAwNDE0ZjE3Nzk0YTRhODE1Njk2YmRkNWY4NTg5Yyk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF8xM2EzNzM3MGUxZmM0MzNjYmU5N2ZkMTU0NGE1MTAwMSA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF8zYzdlZTJmMzY2NzY0YWQzYTc4MjA4ZmQ5NThmNmNhNyA9ICQoJzxkaXYgaWQ9Imh0bWxfM2M3ZWUyZjM2Njc2NGFkM2E3ODIwOGZkOTU4ZjZjYTciIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPkJlbnNvbmh1cnN0PC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF8xM2EzNzM3MGUxZmM0MzNjYmU5N2ZkMTU0NGE1MTAwMS5zZXRDb250ZW50KGh0bWxfM2M3ZWUyZjM2Njc2NGFkM2E3ODIwOGZkOTU4ZjZjYTcpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIGNpcmNsZV9tYXJrZXJfYWIwZjFlZjhjMzI2NDM5ZTlkMWM1YzNmODUzZDZiMzIuYmluZFBvcHVwKHBvcHVwXzEzYTM3MzcwZTFmYzQzM2NiZTk3ZmQxNTQ0YTUxMDAxKTsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBjaXJjbGVfbWFya2VyX2RjMjExMTUzMDMzMDQ4ODU5NTc5NjA2MGE4YmUwM2U4ID0gTC5jaXJjbGVNYXJrZXIoCiAgICAgICAgICAgICAgICBbNDAuNjQ1MTAyOTQ5MjU0MjksLTc0LjAxMDMxNjE4NTI3Nzg0XSwKICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogImJsdWUiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IHRydWUsCiAgImZpbGxDb2xvciI6ICIjMzE4NmNjIiwKICAiZmlsbE9wYWNpdHkiOiAwLjcsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJvcGFjaXR5IjogMS4wLAogICJyYWRpdXMiOiA1LAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAzCn0KICAgICAgICAgICAgICAgICkuYWRkVG8obWFwX2Q1MDA0MTRmMTc3OTRhNGE4MTU2OTZiZGQ1Zjg1ODljKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwXzY3YTE0YTYwZTcxMjRmZmI5ODZiMzQxZTViOGM3Njk5ID0gTC5wb3B1cCh7bWF4V2lkdGg6ICczMDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sX2VhZWE1NDRjN2U4MDQ3NTk5MzlkMmYzYzUyNDA5MmJlID0gJCgnPGRpdiBpZD0iaHRtbF9lYWVhNTQ0YzdlODA0NzU5OTM5ZDJmM2M1MjQwOTJiZSIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+U3Vuc2V0IFBhcms8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzY3YTE0YTYwZTcxMjRmZmI5ODZiMzQxZTViOGM3Njk5LnNldENvbnRlbnQoaHRtbF9lYWVhNTQ0YzdlODA0NzU5OTM5ZDJmM2M1MjQwOTJiZSk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl9kYzIxMTE1MzAzMzA0ODg1OTU3OTYwNjBhOGJlMDNlOC5iaW5kUG9wdXAocG9wdXBfNjdhMTRhNjBlNzEyNGZmYjk4NmIzNDFlNWI4Yzc2OTkpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfMTEyZGYzNmI3YTc5NGRiYjgzYTVhZjViNzRhNDFhMzEgPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MC43MzAyMDA5ODQ4NjQ3LC03My45NTQyNDA5MzEyNzM5M10sCiAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICJibHVlIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiB0cnVlLAogICJmaWxsQ29sb3IiOiAiIzMxODZjYyIsCiAgImZpbGxPcGFjaXR5IjogMC43LAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAib3BhY2l0eSI6IDEuMCwKICAicmFkaXVzIjogNSwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9CiAgICAgICAgICAgICAgICApLmFkZFRvKG1hcF9kNTAwNDE0ZjE3Nzk0YTRhODE1Njk2YmRkNWY4NTg5Yyk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF8xMjUxNDIzODU4MWY0MDZjYWI1ZDY3YTgxZDJjMjgzZSA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF8zNTk3ZDZjMmMwOTc0NjRlODUxZjY0ZTJhNmY2NDdkYiA9ICQoJzxkaXYgaWQ9Imh0bWxfMzU5N2Q2YzJjMDk3NDY0ZTg1MWY2NGUyYTZmNjQ3ZGIiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPkdyZWVucG9pbnQ8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzEyNTE0MjM4NTgxZjQwNmNhYjVkNjdhODFkMmMyODNlLnNldENvbnRlbnQoaHRtbF8zNTk3ZDZjMmMwOTc0NjRlODUxZjY0ZTJhNmY2NDdkYik7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl8xMTJkZjM2YjdhNzk0ZGJiODNhNWFmNWI3NGE0MWEzMS5iaW5kUG9wdXAocG9wdXBfMTI1MTQyMzg1ODFmNDA2Y2FiNWQ2N2E4MWQyYzI4M2UpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfMWY2OTU0OTE5MGY5NDRlNWJmMzBiZjZkNmI5MWRhZmIgPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MC41OTUyNjAwMTMwNjU5MywtNzMuOTczNDcwODc3MDg0NDVdLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiYmx1ZSIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogIiMzMTg2Y2MiLAogICJmaWxsT3BhY2l0eSI6IDAuNywKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDUsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKS5hZGRUbyhtYXBfZDUwMDQxNGYxNzc5NGE0YTgxNTY5NmJkZDVmODU4OWMpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfMDQzM2E4ODZjMTk0NGRjOGE1YjFjOWFhNDAwNTU3NmYgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfMTE0MzlkMmZmOWJjNGY0OWIxMGQ4ZGY5Mjk1ODIxZjQgPSAkKCc8ZGl2IGlkPSJodG1sXzExNDM5ZDJmZjliYzRmNDliMTBkOGRmOTI5NTgyMWY0IiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij5HcmF2ZXNlbmQ8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzA0MzNhODg2YzE5NDRkYzhhNWIxYzlhYTQwMDU1NzZmLnNldENvbnRlbnQoaHRtbF8xMTQzOWQyZmY5YmM0ZjQ5YjEwZDhkZjkyOTU4MjFmNCk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl8xZjY5NTQ5MTkwZjk0NGU1YmYzMGJmNmQ2YjkxZGFmYi5iaW5kUG9wdXAocG9wdXBfMDQzM2E4ODZjMTk0NGRjOGE1YjFjOWFhNDAwNTU3NmYpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfYWFmMDNmMTE5YjIwNDVkZWFiZWMzMzZlY2M3M2FhYzUgPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MC41NzY4MjUwNjU2NjYwNCwtNzMuOTY1MDk0NDg3ODUzMzZdLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiYmx1ZSIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogIiMzMTg2Y2MiLAogICJmaWxsT3BhY2l0eSI6IDAuNywKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDUsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKS5hZGRUbyhtYXBfZDUwMDQxNGYxNzc5NGE0YTgxNTY5NmJkZDVmODU4OWMpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfOGI5NzM4ZDExNGQ0NGE4MmFkMTlkZTkyZDNhN2JiYzEgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfYmI2MjI0MjA3MjBjNGUwY2I3M2IwZGZjMDBjYzE1ZGEgPSAkKCc8ZGl2IGlkPSJodG1sX2JiNjIyNDIwNzIwYzRlMGNiNzNiMGRmYzAwY2MxNWRhIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij5CcmlnaHRvbiBCZWFjaDwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfOGI5NzM4ZDExNGQ0NGE4MmFkMTlkZTkyZDNhN2JiYzEuc2V0Q29udGVudChodG1sX2JiNjIyNDIwNzIwYzRlMGNiNzNiMGRmYzAwY2MxNWRhKTsKICAgICAgICAgICAgCgogICAgICAgICAgICBjaXJjbGVfbWFya2VyX2FhZjAzZjExOWIyMDQ1ZGVhYmVjMzM2ZWNjNzNhYWM1LmJpbmRQb3B1cChwb3B1cF84Yjk3MzhkMTE0ZDQ0YTgyYWQxOWRlOTJkM2E3YmJjMSk7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgY2lyY2xlX21hcmtlcl9hNDIyZWQ5YmNjNWE0YWViYjk5NTA1NjQyYzczNWNjMCA9IEwuY2lyY2xlTWFya2VyKAogICAgICAgICAgICAgICAgWzQwLjU4Njg5MDEyNjc4Mzg0LC03My45NDMxODY0MDQ4Mjk3OV0sCiAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICJibHVlIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiB0cnVlLAogICJmaWxsQ29sb3IiOiAiIzMxODZjYyIsCiAgImZpbGxPcGFjaXR5IjogMC43LAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAib3BhY2l0eSI6IDEuMCwKICAicmFkaXVzIjogNSwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9CiAgICAgICAgICAgICAgICApLmFkZFRvKG1hcF9kNTAwNDE0ZjE3Nzk0YTRhODE1Njk2YmRkNWY4NTg5Yyk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF9jMjM2ZjAzYWJkZDk0YzBmODI0NmRjZmIxOTY4ODA5ZCA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF82NjEyN2YzYzEzZTA0NWY4YWY2YTE0N2QzMzU1ZWNmMyA9ICQoJzxkaXYgaWQ9Imh0bWxfNjYxMjdmM2MxM2UwNDVmOGFmNmExNDdkMzM1NWVjZjMiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPlNoZWVwc2hlYWQgQmF5PC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF9jMjM2ZjAzYWJkZDk0YzBmODI0NmRjZmIxOTY4ODA5ZC5zZXRDb250ZW50KGh0bWxfNjYxMjdmM2MxM2UwNDVmOGFmNmExNDdkMzM1NWVjZjMpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIGNpcmNsZV9tYXJrZXJfYTQyMmVkOWJjYzVhNGFlYmI5OTUwNTY0MmM3MzVjYzAuYmluZFBvcHVwKHBvcHVwX2MyMzZmMDNhYmRkOTRjMGY4MjQ2ZGNmYjE5Njg4MDlkKTsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBjaXJjbGVfbWFya2VyX2VhYzQxZmYwODU5OTQ0NWNhOGE3MGE2NGY1YzBmN2NiID0gTC5jaXJjbGVNYXJrZXIoCiAgICAgICAgICAgICAgICBbNDAuNjE0NDMyNTEzMzUwOTgsLTczLjk1NzQzODQwNTU5OTM5XSwKICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogImJsdWUiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IHRydWUsCiAgImZpbGxDb2xvciI6ICIjMzE4NmNjIiwKICAiZmlsbE9wYWNpdHkiOiAwLjcsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJvcGFjaXR5IjogMS4wLAogICJyYWRpdXMiOiA1LAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAzCn0KICAgICAgICAgICAgICAgICkuYWRkVG8obWFwX2Q1MDA0MTRmMTc3OTRhNGE4MTU2OTZiZGQ1Zjg1ODljKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwX2I2OTRhMzY2YzU1YTQ5MzZiMzA3NzhmNmYxMDNlY2NhID0gTC5wb3B1cCh7bWF4V2lkdGg6ICczMDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sXzQzMTM4ODFkOGFmYTQ2M2M4OWZjMTY0ZjFmYzc1YWQyID0gJCgnPGRpdiBpZD0iaHRtbF80MzEzODgxZDhhZmE0NjNjODlmYzE2NGYxZmM3NWFkMiIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+TWFuaGF0dGFuIFRlcnJhY2U8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwX2I2OTRhMzY2YzU1YTQ5MzZiMzA3NzhmNmYxMDNlY2NhLnNldENvbnRlbnQoaHRtbF80MzEzODgxZDhhZmE0NjNjODlmYzE2NGYxZmM3NWFkMik7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl9lYWM0MWZmMDg1OTk0NDVjYThhNzBhNjRmNWMwZjdjYi5iaW5kUG9wdXAocG9wdXBfYjY5NGEzNjZjNTVhNDkzNmIzMDc3OGY2ZjEwM2VjY2EpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfZWQ4MDNlNjdjYzNmNGQ5OTg5MTc2NTQ5NjRhNDkzZDQgPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MC42MzYzMjU4OTAyNjY3NywtNzMuOTU4NDAxMDY1MzM5MDNdLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiYmx1ZSIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogIiMzMTg2Y2MiLAogICJmaWxsT3BhY2l0eSI6IDAuNywKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDUsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKS5hZGRUbyhtYXBfZDUwMDQxNGYxNzc5NGE0YTgxNTY5NmJkZDVmODU4OWMpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfYTIzYTcyZDIyNDQwNDU5NWIxMzRkZTRkOWRlNTE4MmEgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfOTNiMDZlNmE3NGFlNDIzYjkwMzU5YmYyYjg1YWYxMzQgPSAkKCc8ZGl2IGlkPSJodG1sXzkzYjA2ZTZhNzRhZTQyM2I5MDM1OWJmMmI4NWFmMTM0IiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij5GbGF0YnVzaDwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfYTIzYTcyZDIyNDQwNDU5NWIxMzRkZTRkOWRlNTE4MmEuc2V0Q29udGVudChodG1sXzkzYjA2ZTZhNzRhZTQyM2I5MDM1OWJmMmI4NWFmMTM0KTsKICAgICAgICAgICAgCgogICAgICAgICAgICBjaXJjbGVfbWFya2VyX2VkODAzZTY3Y2MzZjRkOTk4OTE3NjU0OTY0YTQ5M2Q0LmJpbmRQb3B1cChwb3B1cF9hMjNhNzJkMjI0NDA0NTk1YjEzNGRlNGQ5ZGU1MTgyYSk7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgY2lyY2xlX21hcmtlcl9mMDE0Yzk4MjBjMWM0Mzc3OTljMDQwYWE5N2U1NWI5YyA9IEwuY2lyY2xlTWFya2VyKAogICAgICAgICAgICAgICAgWzQwLjY3MDgyOTE3Njk1Mjk0LC03My45NDMyOTExOTA3MzU4Ml0sCiAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICJibHVlIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiB0cnVlLAogICJmaWxsQ29sb3IiOiAiIzMxODZjYyIsCiAgImZpbGxPcGFjaXR5IjogMC43LAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAib3BhY2l0eSI6IDEuMCwKICAicmFkaXVzIjogNSwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9CiAgICAgICAgICAgICAgICApLmFkZFRvKG1hcF9kNTAwNDE0ZjE3Nzk0YTRhODE1Njk2YmRkNWY4NTg5Yyk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF8wYmEyYmNjMjdmNjQ0ZmMxOGZhZWQ5MDhkNmRlNzhiOSA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF8zNjAyOTI5ZTJlZTg0MjVkYWY0NGQzOWVhNDhjMjY4OCA9ICQoJzxkaXYgaWQ9Imh0bWxfMzYwMjkyOWUyZWU4NDI1ZGFmNDRkMzllYTQ4YzI2ODgiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPkNyb3duIEhlaWdodHM8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzBiYTJiY2MyN2Y2NDRmYzE4ZmFlZDkwOGQ2ZGU3OGI5LnNldENvbnRlbnQoaHRtbF8zNjAyOTI5ZTJlZTg0MjVkYWY0NGQzOWVhNDhjMjY4OCk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl9mMDE0Yzk4MjBjMWM0Mzc3OTljMDQwYWE5N2U1NWI5Yy5iaW5kUG9wdXAocG9wdXBfMGJhMmJjYzI3ZjY0NGZjMThmYWVkOTA4ZDZkZTc4YjkpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfY2ExMWVhZWE4ZTFhNGU1NGExNzU0ZGZkNDRlY2NjYWQgPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MC42NDE3MTc3NjY2ODk2MSwtNzMuOTM2MTAyNTYxODU4MzZdLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiYmx1ZSIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogIiMzMTg2Y2MiLAogICJmaWxsT3BhY2l0eSI6IDAuNywKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDUsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKS5hZGRUbyhtYXBfZDUwMDQxNGYxNzc5NGE0YTgxNTY5NmJkZDVmODU4OWMpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfYjI3YWE3ODRhYzZlNGJiYTlkODg2YWEyM2ViZmJmMzMgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfNmYzMGJjMzIwNGE5NGUyZGFiZDg1YzU5MTc2ZGMxYTUgPSAkKCc8ZGl2IGlkPSJodG1sXzZmMzBiYzMyMDRhOTRlMmRhYmQ4NWM1OTE3NmRjMWE1IiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij5FYXN0IEZsYXRidXNoPC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF9iMjdhYTc4NGFjNmU0YmJhOWQ4ODZhYTIzZWJmYmYzMy5zZXRDb250ZW50KGh0bWxfNmYzMGJjMzIwNGE5NGUyZGFiZDg1YzU5MTc2ZGMxYTUpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIGNpcmNsZV9tYXJrZXJfY2ExMWVhZWE4ZTFhNGU1NGExNzU0ZGZkNDRlY2NjYWQuYmluZFBvcHVwKHBvcHVwX2IyN2FhNzg0YWM2ZTRiYmE5ZDg4NmFhMjNlYmZiZjMzKTsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBjaXJjbGVfbWFya2VyX2NmNTA4YzUwNGMxYTQ5Mzg5MjI0N2U0Nzc2ZTJlOTM2ID0gTC5jaXJjbGVNYXJrZXIoCiAgICAgICAgICAgICAgICBbNDAuNjQyMzgxOTU4MDAzNTI2LC03My45ODA0MjExMDU1OTQ3NF0sCiAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICJibHVlIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiB0cnVlLAogICJmaWxsQ29sb3IiOiAiIzMxODZjYyIsCiAgImZpbGxPcGFjaXR5IjogMC43LAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAib3BhY2l0eSI6IDEuMCwKICAicmFkaXVzIjogNSwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9CiAgICAgICAgICAgICAgICApLmFkZFRvKG1hcF9kNTAwNDE0ZjE3Nzk0YTRhODE1Njk2YmRkNWY4NTg5Yyk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF8yOTM1NjJjOGU3ZDE0Nzc4YWIzYTg5ZDM0ZWJkOGQzMiA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF80NWRiYmQwOWQ5YTU0MWY2OTRlYmI3YmMyNzI1NDNiNiA9ICQoJzxkaXYgaWQ9Imh0bWxfNDVkYmJkMDlkOWE1NDFmNjk0ZWJiN2JjMjcyNTQzYjYiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPktlbnNpbmd0b248L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzI5MzU2MmM4ZTdkMTQ3NzhhYjNhODlkMzRlYmQ4ZDMyLnNldENvbnRlbnQoaHRtbF80NWRiYmQwOWQ5YTU0MWY2OTRlYmI3YmMyNzI1NDNiNik7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl9jZjUwOGM1MDRjMWE0OTM4OTIyNDdlNDc3NmUyZTkzNi5iaW5kUG9wdXAocG9wdXBfMjkzNTYyYzhlN2QxNDc3OGFiM2E4OWQzNGViZDhkMzIpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfOTBmNWI2ZjczZmY2NDZlNWE4YTllNTEzNTkwY2ZiYTggPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MC42NTY5NDU4MzU3NTEwNCwtNzMuOTgwMDczNDA0MzAxNzJdLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiYmx1ZSIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogIiMzMTg2Y2MiLAogICJmaWxsT3BhY2l0eSI6IDAuNywKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDUsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKS5hZGRUbyhtYXBfZDUwMDQxNGYxNzc5NGE0YTgxNTY5NmJkZDVmODU4OWMpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfZTE1MmRkZDczZGM2NDA0MWIyZjVjOTc1ODc3Yzg0Y2QgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfMjk0ZTUxOWUyNjUzNDUzNDgzZmE1OWE5NmEyNzg4YjEgPSAkKCc8ZGl2IGlkPSJodG1sXzI5NGU1MTllMjY1MzQ1MzQ4M2ZhNTlhOTZhMjc4OGIxIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij5XaW5kc29yIFRlcnJhY2U8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwX2UxNTJkZGQ3M2RjNjQwNDFiMmY1Yzk3NTg3N2M4NGNkLnNldENvbnRlbnQoaHRtbF8yOTRlNTE5ZTI2NTM0NTM0ODNmYTU5YTk2YTI3ODhiMSk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl85MGY1YjZmNzNmZjY0NmU1YThhOWU1MTM1OTBjZmJhOC5iaW5kUG9wdXAocG9wdXBfZTE1MmRkZDczZGM2NDA0MWIyZjVjOTc1ODc3Yzg0Y2QpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfYmVlYTdmYTE2ODZhNGM3MTlmNjJjNWRiZDc0ZjVkZDggPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MC42NzY4MjIyNjIyNTQ3MjQsLTczLjk2NDg1OTI0MjYyNjldLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiYmx1ZSIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogIiMzMTg2Y2MiLAogICJmaWxsT3BhY2l0eSI6IDAuNywKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDUsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKS5hZGRUbyhtYXBfZDUwMDQxNGYxNzc5NGE0YTgxNTY5NmJkZDVmODU4OWMpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfNjA4NDhmNDI2MTk4NGU0NDkzYTNmYThiZDI1YTJiZGIgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfOGFhNWNmMWNkYWIzNDQzNGI0MDMzMWU4ZTY2ZjdkNjYgPSAkKCc8ZGl2IGlkPSJodG1sXzhhYTVjZjFjZGFiMzQ0MzRiNDAzMzFlOGU2NmY3ZDY2IiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij5Qcm9zcGVjdCBIZWlnaHRzPC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF82MDg0OGY0MjYxOTg0ZTQ0OTNhM2ZhOGJkMjVhMmJkYi5zZXRDb250ZW50KGh0bWxfOGFhNWNmMWNkYWIzNDQzNGI0MDMzMWU4ZTY2ZjdkNjYpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIGNpcmNsZV9tYXJrZXJfYmVlYTdmYTE2ODZhNGM3MTlmNjJjNWRiZDc0ZjVkZDguYmluZFBvcHVwKHBvcHVwXzYwODQ4ZjQyNjE5ODRlNDQ5M2EzZmE4YmQyNWEyYmRiKTsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBjaXJjbGVfbWFya2VyXzkxNjFiOTZmYzdjZjRiYTM4NTkwMTZhN2I1NzAzMGUyID0gTC5jaXJjbGVNYXJrZXIoCiAgICAgICAgICAgICAgICBbNDAuNjYzOTQ5OTQzMzk3NTUsLTczLjkxMDIzNTM2MTc2NjA3XSwKICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogImJsdWUiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IHRydWUsCiAgImZpbGxDb2xvciI6ICIjMzE4NmNjIiwKICAiZmlsbE9wYWNpdHkiOiAwLjcsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJvcGFjaXR5IjogMS4wLAogICJyYWRpdXMiOiA1LAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAzCn0KICAgICAgICAgICAgICAgICkuYWRkVG8obWFwX2Q1MDA0MTRmMTc3OTRhNGE4MTU2OTZiZGQ1Zjg1ODljKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwXzgzY2JmZWE0NDI3MjQyNGU4MjkyZjE2YTQ3Mjk0ZmQ2ID0gTC5wb3B1cCh7bWF4V2lkdGg6ICczMDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sXzZiOWU1NTNhNzNmZjQ1YzU4ZDQ1ZTk5ZjY3MGU3NjFiID0gJCgnPGRpdiBpZD0iaHRtbF82YjllNTUzYTczZmY0NWM1OGQ0NWU5OWY2NzBlNzYxYiIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+QnJvd25zdmlsbGU8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzgzY2JmZWE0NDI3MjQyNGU4MjkyZjE2YTQ3Mjk0ZmQ2LnNldENvbnRlbnQoaHRtbF82YjllNTUzYTczZmY0NWM1OGQ0NWU5OWY2NzBlNzYxYik7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl85MTYxYjk2ZmM3Y2Y0YmEzODU5MDE2YTdiNTcwMzBlMi5iaW5kUG9wdXAocG9wdXBfODNjYmZlYTQ0MjcyNDI0ZTgyOTJmMTZhNDcyOTRmZDYpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfN2Y1OGJmZTMyN2E4NDc3MGJmZmJlMWViY2M1NTM4ZDggPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MC43MDcxNDQzOTM0NDI1MSwtNzMuOTU4MTE1MjkyMjA5MjddLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiYmx1ZSIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogIiMzMTg2Y2MiLAogICJmaWxsT3BhY2l0eSI6IDAuNywKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDUsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKS5hZGRUbyhtYXBfZDUwMDQxNGYxNzc5NGE0YTgxNTY5NmJkZDVmODU4OWMpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfYzc2ZGY3MDA3NjQ2NGZjYjlkZmQ2YzVmY2RiZTcxYTkgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfMmQxOGE0Mjg4ODQ0NDM3NWI5Yjg0NGIwNmVjNDM5Y2MgPSAkKCc8ZGl2IGlkPSJodG1sXzJkMThhNDI4ODg0NDQzNzViOWI4NDRiMDZlYzQzOWNjIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij5XaWxsaWFtc2J1cmc8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwX2M3NmRmNzAwNzY0NjRmY2I5ZGZkNmM1ZmNkYmU3MWE5LnNldENvbnRlbnQoaHRtbF8yZDE4YTQyODg4NDQ0Mzc1YjliODQ0YjA2ZWM0MzljYyk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl83ZjU4YmZlMzI3YTg0NzcwYmZmYmUxZWJjYzU1MzhkOC5iaW5kUG9wdXAocG9wdXBfYzc2ZGY3MDA3NjQ2NGZjYjlkZmQ2YzVmY2RiZTcxYTkpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfZGJiZmIyODQyNmUyNDBhZmE4YzU2ZmFjYThhZDI2ODIgPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MC42OTgxMTYxMTAxNzkwMSwtNzMuOTI1MjU3OTc0ODcwNDVdLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiYmx1ZSIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogIiMzMTg2Y2MiLAogICJmaWxsT3BhY2l0eSI6IDAuNywKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDUsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKS5hZGRUbyhtYXBfZDUwMDQxNGYxNzc5NGE0YTgxNTY5NmJkZDVmODU4OWMpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfOGYwZDZiNWZhZTUzNGMyNTlhMDkyMmRhNDY4YTU3ZTkgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfZDdhN2U1MDc2ZTFjNDU0NDkzOWU3YzU5MGU3ZTUwNjMgPSAkKCc8ZGl2IGlkPSJodG1sX2Q3YTdlNTA3NmUxYzQ1NDQ5MzllN2M1OTBlN2U1MDYzIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij5CdXNod2ljazwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfOGYwZDZiNWZhZTUzNGMyNTlhMDkyMmRhNDY4YTU3ZTkuc2V0Q29udGVudChodG1sX2Q3YTdlNTA3NmUxYzQ1NDQ5MzllN2M1OTBlN2U1MDYzKTsKICAgICAgICAgICAgCgogICAgICAgICAgICBjaXJjbGVfbWFya2VyX2RiYmZiMjg0MjZlMjQwYWZhOGM1NmZhY2E4YWQyNjgyLmJpbmRQb3B1cChwb3B1cF84ZjBkNmI1ZmFlNTM0YzI1OWEwOTIyZGE0NjhhNTdlOSk7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgY2lyY2xlX21hcmtlcl9mZDRlZjJmODRiMDU0NTVkODllYjZmNTdiMWEwNjE1MyA9IEwuY2lyY2xlTWFya2VyKAogICAgICAgICAgICAgICAgWzQwLjY4NzIzMTYwNzcyMDQ1NiwtNzMuOTQxNzg0ODg2OTAyOTddLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiYmx1ZSIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogIiMzMTg2Y2MiLAogICJmaWxsT3BhY2l0eSI6IDAuNywKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDUsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKS5hZGRUbyhtYXBfZDUwMDQxNGYxNzc5NGE0YTgxNTY5NmJkZDVmODU4OWMpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfYzY1ZGNhZGVhNTM5NDUyNTkzNjAxZDAzMDY0Mzk0YmYgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfMmFjNjNiYzQyM2U4NDZlMjhmYzdiYzY2NjVkOGQ2YmMgPSAkKCc8ZGl2IGlkPSJodG1sXzJhYzYzYmM0MjNlODQ2ZTI4ZmM3YmM2NjY1ZDhkNmJjIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij5CZWRmb3JkIFN0dXl2ZXNhbnQ8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwX2M2NWRjYWRlYTUzOTQ1MjU5MzYwMWQwMzA2NDM5NGJmLnNldENvbnRlbnQoaHRtbF8yYWM2M2JjNDIzZTg0NmUyOGZjN2JjNjY2NWQ4ZDZiYyk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl9mZDRlZjJmODRiMDU0NTVkODllYjZmNTdiMWEwNjE1My5iaW5kUG9wdXAocG9wdXBfYzY1ZGNhZGVhNTM5NDUyNTkzNjAxZDAzMDY0Mzk0YmYpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfODk1MGVjM2E0NmRjNDIwMmIyMGM1YjYwOTE2YzllNjYgPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MC42OTU4NjM3MjI3MjQwODQsLTczLjk5Mzc4MjI1NDk2NDI0XSwKICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogImJsdWUiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IHRydWUsCiAgImZpbGxDb2xvciI6ICIjMzE4NmNjIiwKICAiZmlsbE9wYWNpdHkiOiAwLjcsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJvcGFjaXR5IjogMS4wLAogICJyYWRpdXMiOiA1LAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAzCn0KICAgICAgICAgICAgICAgICkuYWRkVG8obWFwX2Q1MDA0MTRmMTc3OTRhNGE4MTU2OTZiZGQ1Zjg1ODljKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwX2RkZDg4ZTk0ZDk5MzRkMmNhZDAxZmUyMDY3ZmFkNWZiID0gTC5wb3B1cCh7bWF4V2lkdGg6ICczMDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sX2RlN2MwMzZmMmJhYzQzYTI5YzkzZWE0ZTAwY2VlNTc4ID0gJCgnPGRpdiBpZD0iaHRtbF9kZTdjMDM2ZjJiYWM0M2EyOWM5M2VhNGUwMGNlZTU3OCIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+QnJvb2tseW4gSGVpZ2h0czwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfZGRkODhlOTRkOTkzNGQyY2FkMDFmZTIwNjdmYWQ1ZmIuc2V0Q29udGVudChodG1sX2RlN2MwMzZmMmJhYzQzYTI5YzkzZWE0ZTAwY2VlNTc4KTsKICAgICAgICAgICAgCgogICAgICAgICAgICBjaXJjbGVfbWFya2VyXzg5NTBlYzNhNDZkYzQyMDJiMjBjNWI2MDkxNmM5ZTY2LmJpbmRQb3B1cChwb3B1cF9kZGQ4OGU5NGQ5OTM0ZDJjYWQwMWZlMjA2N2ZhZDVmYik7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgY2lyY2xlX21hcmtlcl9iM2E1NWI1ZTM3MTc0YjY5OTc3ODljZTNkZTg4MzZjZSA9IEwuY2lyY2xlTWFya2VyKAogICAgICAgICAgICAgICAgWzQwLjY4NzkxOTcyMjQ4NTU3NCwtNzMuOTk4NTYxMzkyMTg0NjNdLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiYmx1ZSIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogIiMzMTg2Y2MiLAogICJmaWxsT3BhY2l0eSI6IDAuNywKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDUsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKS5hZGRUbyhtYXBfZDUwMDQxNGYxNzc5NGE0YTgxNTY5NmJkZDVmODU4OWMpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfMGY4MzRmM2E2NWQ2NDUzZWI3NWUzMTdjYjhkYWY2ZGQgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfZDgyZTkyYjU1NzcwNDkxZWFkMTRkNzJjZWY2OGUyNzEgPSAkKCc8ZGl2IGlkPSJodG1sX2Q4MmU5MmI1NTc3MDQ5MWVhZDE0ZDcyY2VmNjhlMjcxIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij5Db2JibGUgSGlsbDwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfMGY4MzRmM2E2NWQ2NDUzZWI3NWUzMTdjYjhkYWY2ZGQuc2V0Q29udGVudChodG1sX2Q4MmU5MmI1NTc3MDQ5MWVhZDE0ZDcyY2VmNjhlMjcxKTsKICAgICAgICAgICAgCgogICAgICAgICAgICBjaXJjbGVfbWFya2VyX2IzYTU1YjVlMzcxNzRiNjk5Nzc4OWNlM2RlODgzNmNlLmJpbmRQb3B1cChwb3B1cF8wZjgzNGYzYTY1ZDY0NTNlYjc1ZTMxN2NiOGRhZjZkZCk7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgY2lyY2xlX21hcmtlcl8zNzA1YjZjMDAxNTg0ZjhlYmU4ZWJhYTNjY2JkMmNkYSA9IEwuY2lyY2xlTWFya2VyKAogICAgICAgICAgICAgICAgWzQwLjY4MDU0MDIzMTA3NjQ4NSwtNzMuOTk0NjUzNzI4MjgwMDZdLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiYmx1ZSIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogIiMzMTg2Y2MiLAogICJmaWxsT3BhY2l0eSI6IDAuNywKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDUsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKS5hZGRUbyhtYXBfZDUwMDQxNGYxNzc5NGE0YTgxNTY5NmJkZDVmODU4OWMpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfNzVlZWM4OTQ5NDRlNDU1NzkxMjA3YWI2MzY5OTBjYzggPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfYThkYjIxYjU4ZDE1NDc1MmFmY2RkZDgwZDJhNmJlYTIgPSAkKCc8ZGl2IGlkPSJodG1sX2E4ZGIyMWI1OGQxNTQ3NTJhZmNkZGQ4MGQyYTZiZWEyIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij5DYXJyb2xsIEdhcmRlbnM8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzc1ZWVjODk0OTQ0ZTQ1NTc5MTIwN2FiNjM2OTkwY2M4LnNldENvbnRlbnQoaHRtbF9hOGRiMjFiNThkMTU0NzUyYWZjZGRkODBkMmE2YmVhMik7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl8zNzA1YjZjMDAxNTg0ZjhlYmU4ZWJhYTNjY2JkMmNkYS5iaW5kUG9wdXAocG9wdXBfNzVlZWM4OTQ5NDRlNDU1NzkxMjA3YWI2MzY5OTBjYzgpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfNDEwNDE4NzZjMTBmNGNjMWJhODEyZjVmNzYxZjIxZTkgPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MC42NzYyNTMyMzAyNTA4ODYsLTc0LjAxMjc1ODk3NDczNTZdLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiYmx1ZSIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogIiMzMTg2Y2MiLAogICJmaWxsT3BhY2l0eSI6IDAuNywKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDUsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKS5hZGRUbyhtYXBfZDUwMDQxNGYxNzc5NGE0YTgxNTY5NmJkZDVmODU4OWMpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfNDg1MjM5Zjk2MTI1NDYyZjg0NzM3MDY5ODVmN2Q4NWEgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfYzI0MWEwYjVmZjY0NDhlYmI0NmIwZWQ2MmVjNWM4ZjUgPSAkKCc8ZGl2IGlkPSJodG1sX2MyNDFhMGI1ZmY2NDQ4ZWJiNDZiMGVkNjJlYzVjOGY1IiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij5SZWQgSG9vazwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfNDg1MjM5Zjk2MTI1NDYyZjg0NzM3MDY5ODVmN2Q4NWEuc2V0Q29udGVudChodG1sX2MyNDFhMGI1ZmY2NDQ4ZWJiNDZiMGVkNjJlYzVjOGY1KTsKICAgICAgICAgICAgCgogICAgICAgICAgICBjaXJjbGVfbWFya2VyXzQxMDQxODc2YzEwZjRjYzFiYTgxMmY1Zjc2MWYyMWU5LmJpbmRQb3B1cChwb3B1cF80ODUyMzlmOTYxMjU0NjJmODQ3MzcwNjk4NWY3ZDg1YSk7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgY2lyY2xlX21hcmtlcl84OWQ1MzI4OTZmNjI0YWY4YjFhZGVkNjQwNGI4MjdlZiA9IEwuY2lyY2xlTWFya2VyKAogICAgICAgICAgICAgICAgWzQwLjY3MzkzMTE0MzE4NzE1NCwtNzMuOTk0NDQwODcxNDUzMzldLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiYmx1ZSIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogIiMzMTg2Y2MiLAogICJmaWxsT3BhY2l0eSI6IDAuNywKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDUsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKS5hZGRUbyhtYXBfZDUwMDQxNGYxNzc5NGE0YTgxNTY5NmJkZDVmODU4OWMpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfZDhjOGVlZGE3MTFkNDU1MWFiMDI3YzI1NTAyM2FiZDYgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfNDExODBmODRiMzhmNDgzMjhkNmFmYTRhYWMzZmMzNWIgPSAkKCc8ZGl2IGlkPSJodG1sXzQxMTgwZjg0YjM4ZjQ4MzI4ZDZhZmE0YWFjM2ZjMzViIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij5Hb3dhbnVzPC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF9kOGM4ZWVkYTcxMWQ0NTUxYWIwMjdjMjU1MDIzYWJkNi5zZXRDb250ZW50KGh0bWxfNDExODBmODRiMzhmNDgzMjhkNmFmYTRhYWMzZmMzNWIpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIGNpcmNsZV9tYXJrZXJfODlkNTMyODk2ZjYyNGFmOGIxYWRlZDY0MDRiODI3ZWYuYmluZFBvcHVwKHBvcHVwX2Q4YzhlZWRhNzExZDQ1NTFhYjAyN2MyNTUwMjNhYmQ2KTsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBjaXJjbGVfbWFya2VyX2Q0ZDU1NmI0MDEyMjQxZDE5ZGQ5Mzk0OTA0NWM4YTNiID0gTC5jaXJjbGVNYXJrZXIoCiAgICAgICAgICAgICAgICBbNDAuNjg4NTI3MjYwMTg5NzcsLTczLjk3MjkwNTc0MzY5MDkyXSwKICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogImJsdWUiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IHRydWUsCiAgImZpbGxDb2xvciI6ICIjMzE4NmNjIiwKICAiZmlsbE9wYWNpdHkiOiAwLjcsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJvcGFjaXR5IjogMS4wLAogICJyYWRpdXMiOiA1LAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAzCn0KICAgICAgICAgICAgICAgICkuYWRkVG8obWFwX2Q1MDA0MTRmMTc3OTRhNGE4MTU2OTZiZGQ1Zjg1ODljKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwXzFmNGFkYTM2NjdmYjRmMzFiY2VhOWIzZjk3MjBlOTA2ID0gTC5wb3B1cCh7bWF4V2lkdGg6ICczMDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sXzM1NDQ1YjA0YmFhMzRhMmNiNmE4NGI5MWEzOGZiOThjID0gJCgnPGRpdiBpZD0iaHRtbF8zNTQ0NWIwNGJhYTM0YTJjYjZhODRiOTFhMzhmYjk4YyIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+Rm9ydCBHcmVlbmU8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzFmNGFkYTM2NjdmYjRmMzFiY2VhOWIzZjk3MjBlOTA2LnNldENvbnRlbnQoaHRtbF8zNTQ0NWIwNGJhYTM0YTJjYjZhODRiOTFhMzhmYjk4Yyk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl9kNGQ1NTZiNDAxMjI0MWQxOWRkOTM5NDkwNDVjOGEzYi5iaW5kUG9wdXAocG9wdXBfMWY0YWRhMzY2N2ZiNGYzMWJjZWE5YjNmOTcyMGU5MDYpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfN2JkZDllNzczZjZkNDgzNGI4YzY5OWIzMmRjYTZkZGYgPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MC42NzIzMjA1MjI2ODE5NywtNzMuOTc3MDUwMzAxODM5MjRdLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiYmx1ZSIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogIiMzMTg2Y2MiLAogICJmaWxsT3BhY2l0eSI6IDAuNywKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDUsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKS5hZGRUbyhtYXBfZDUwMDQxNGYxNzc5NGE0YTgxNTY5NmJkZDVmODU4OWMpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfMTQ3YTI3MTQ4ZmEzNDYxOGIzZWY5MGU4ZmYxOWU3YTAgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfMzYxNmQwNmU4ZTlmNGM5NWFiYzM1OGM1ODUzYjc3OTcgPSAkKCc8ZGl2IGlkPSJodG1sXzM2MTZkMDZlOGU5ZjRjOTVhYmMzNThjNTg1M2I3Nzk3IiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij5QYXJrIFNsb3BlPC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF8xNDdhMjcxNDhmYTM0NjE4YjNlZjkwZThmZjE5ZTdhMC5zZXRDb250ZW50KGh0bWxfMzYxNmQwNmU4ZTlmNGM5NWFiYzM1OGM1ODUzYjc3OTcpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIGNpcmNsZV9tYXJrZXJfN2JkZDllNzczZjZkNDgzNGI4YzY5OWIzMmRjYTZkZGYuYmluZFBvcHVwKHBvcHVwXzE0N2EyNzE0OGZhMzQ2MThiM2VmOTBlOGZmMTllN2EwKTsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBjaXJjbGVfbWFya2VyXzM5YmNiYzFlNDIwNjRkNDNhMWYyYzEyZmZkZjhmNTZjID0gTC5jaXJjbGVNYXJrZXIoCiAgICAgICAgICAgICAgICBbNDAuNjgyMzkxMDExNDQyMTEsLTczLjg3NjYxNTk2NDU3Mjk2XSwKICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogImJsdWUiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IHRydWUsCiAgImZpbGxDb2xvciI6ICIjMzE4NmNjIiwKICAiZmlsbE9wYWNpdHkiOiAwLjcsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJvcGFjaXR5IjogMS4wLAogICJyYWRpdXMiOiA1LAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAzCn0KICAgICAgICAgICAgICAgICkuYWRkVG8obWFwX2Q1MDA0MTRmMTc3OTRhNGE4MTU2OTZiZGQ1Zjg1ODljKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwXzRhNmVlNzViYzE4MTQzMGVhYWY0MmU1ZDJiOTk0MWQ2ID0gTC5wb3B1cCh7bWF4V2lkdGg6ICczMDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sXzQwZTU5OWJmZGM0NzQzZmZiOThkZjQ5YjQxNjc4ZTViID0gJCgnPGRpdiBpZD0iaHRtbF80MGU1OTliZmRjNDc0M2ZmYjk4ZGY0OWI0MTY3OGU1YiIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+Q3lwcmVzcyBIaWxsczwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfNGE2ZWU3NWJjMTgxNDMwZWFhZjQyZTVkMmI5OTQxZDYuc2V0Q29udGVudChodG1sXzQwZTU5OWJmZGM0NzQzZmZiOThkZjQ5YjQxNjc4ZTViKTsKICAgICAgICAgICAgCgogICAgICAgICAgICBjaXJjbGVfbWFya2VyXzM5YmNiYzFlNDIwNjRkNDNhMWYyYzEyZmZkZjhmNTZjLmJpbmRQb3B1cChwb3B1cF80YTZlZTc1YmMxODE0MzBlYWFmNDJlNWQyYjk5NDFkNik7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgY2lyY2xlX21hcmtlcl8wMGY4YjFhZmFjMDA0NDkyYmY2MTliYjc0ZGYzNjZkNSA9IEwuY2lyY2xlTWFya2VyKAogICAgICAgICAgICAgICAgWzQwLjY2OTkyNTcwMDg0NzA0NSwtNzMuODgwNjk4NjM5MTczNjZdLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiYmx1ZSIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogIiMzMTg2Y2MiLAogICJmaWxsT3BhY2l0eSI6IDAuNywKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDUsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKS5hZGRUbyhtYXBfZDUwMDQxNGYxNzc5NGE0YTgxNTY5NmJkZDVmODU4OWMpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfOTBmZTAzMjI0Y2I0NDNkY2JlNzBkYTAxY2U2YzRiZTkgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfZWRlNDkxZDg0NTBiNDI3ZjlmNWVmNGY3YjBhODAyZTAgPSAkKCc8ZGl2IGlkPSJodG1sX2VkZTQ5MWQ4NDUwYjQyN2Y5ZjVlZjRmN2IwYTgwMmUwIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij5FYXN0IE5ldyBZb3JrPC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF85MGZlMDMyMjRjYjQ0M2RjYmU3MGRhMDFjZTZjNGJlOS5zZXRDb250ZW50KGh0bWxfZWRlNDkxZDg0NTBiNDI3ZjlmNWVmNGY3YjBhODAyZTApOwogICAgICAgICAgICAKCiAgICAgICAgICAgIGNpcmNsZV9tYXJrZXJfMDBmOGIxYWZhYzAwNDQ5MmJmNjE5YmI3NGRmMzY2ZDUuYmluZFBvcHVwKHBvcHVwXzkwZmUwMzIyNGNiNDQzZGNiZTcwZGEwMWNlNmM0YmU5KTsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBjaXJjbGVfbWFya2VyX2M5N2UzMmQ0ZjNjNTQyNjg5MWFhZmMxYjIxZWY3NTJiID0gTC5jaXJjbGVNYXJrZXIoCiAgICAgICAgICAgICAgICBbNDAuNjQ3NTg5MDUyMzA4NzQsLTczLjg3OTM2OTcwMDQ1ODc1XSwKICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogImJsdWUiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IHRydWUsCiAgImZpbGxDb2xvciI6ICIjMzE4NmNjIiwKICAiZmlsbE9wYWNpdHkiOiAwLjcsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJvcGFjaXR5IjogMS4wLAogICJyYWRpdXMiOiA1LAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAzCn0KICAgICAgICAgICAgICAgICkuYWRkVG8obWFwX2Q1MDA0MTRmMTc3OTRhNGE4MTU2OTZiZGQ1Zjg1ODljKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwX2ZkOWY0OGE1YzFkNDQ1Yzg4MGI1YzFjYjY4NjhjMzkwID0gTC5wb3B1cCh7bWF4V2lkdGg6ICczMDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sXzU4YThiZTcyMzQ5MTQxZjQ5MGI1ZDVmNzA5NzBmNTFkID0gJCgnPGRpdiBpZD0iaHRtbF81OGE4YmU3MjM0OTE0MWY0OTBiNWQ1ZjcwOTcwZjUxZCIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+U3RhcnJldHQgQ2l0eTwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfZmQ5ZjQ4YTVjMWQ0NDVjODgwYjVjMWNiNjg2OGMzOTAuc2V0Q29udGVudChodG1sXzU4YThiZTcyMzQ5MTQxZjQ5MGI1ZDVmNzA5NzBmNTFkKTsKICAgICAgICAgICAgCgogICAgICAgICAgICBjaXJjbGVfbWFya2VyX2M5N2UzMmQ0ZjNjNTQyNjg5MWFhZmMxYjIxZWY3NTJiLmJpbmRQb3B1cChwb3B1cF9mZDlmNDhhNWMxZDQ0NWM4ODBiNWMxY2I2ODY4YzM5MCk7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgY2lyY2xlX21hcmtlcl9jNDgwZjFiZTY1YTA0ZDA5ODhiNDIzMDQ0NDA1MDczNCA9IEwuY2lyY2xlTWFya2VyKAogICAgICAgICAgICAgICAgWzQwLjYzNTU2NDMyNzk3NDI4LC03My45MDIwOTI2OTc3ODk2Nl0sCiAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICJibHVlIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiB0cnVlLAogICJmaWxsQ29sb3IiOiAiIzMxODZjYyIsCiAgImZpbGxPcGFjaXR5IjogMC43LAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAib3BhY2l0eSI6IDEuMCwKICAicmFkaXVzIjogNSwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9CiAgICAgICAgICAgICAgICApLmFkZFRvKG1hcF9kNTAwNDE0ZjE3Nzk0YTRhODE1Njk2YmRkNWY4NTg5Yyk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF84ZmZkNDc1ZjRjNmU0MmVmODViYzI5ZWE0ZTE4NTU1NCA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF8zMGZiNjhkNjUwZmM0M2M5YTJmMzg4Y2M0OTA1MDNlYyA9ICQoJzxkaXYgaWQ9Imh0bWxfMzBmYjY4ZDY1MGZjNDNjOWEyZjM4OGNjNDkwNTAzZWMiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPkNhbmFyc2llPC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF84ZmZkNDc1ZjRjNmU0MmVmODViYzI5ZWE0ZTE4NTU1NC5zZXRDb250ZW50KGh0bWxfMzBmYjY4ZDY1MGZjNDNjOWEyZjM4OGNjNDkwNTAzZWMpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIGNpcmNsZV9tYXJrZXJfYzQ4MGYxYmU2NWEwNGQwOTg4YjQyMzA0NDQwNTA3MzQuYmluZFBvcHVwKHBvcHVwXzhmZmQ0NzVmNGM2ZTQyZWY4NWJjMjllYTRlMTg1NTU0KTsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBjaXJjbGVfbWFya2VyX2JiZWQxZTUwYzIyYjRjMTdiNzdhMWNlMjQ2NWY2ZTUzID0gTC5jaXJjbGVNYXJrZXIoCiAgICAgICAgICAgICAgICBbNDAuNjMwNDQ2MDQzNzU3NDY2LC03My45MjkxMTMwMjY0NDY3NF0sCiAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICJibHVlIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiB0cnVlLAogICJmaWxsQ29sb3IiOiAiIzMxODZjYyIsCiAgImZpbGxPcGFjaXR5IjogMC43LAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAib3BhY2l0eSI6IDEuMCwKICAicmFkaXVzIjogNSwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9CiAgICAgICAgICAgICAgICApLmFkZFRvKG1hcF9kNTAwNDE0ZjE3Nzk0YTRhODE1Njk2YmRkNWY4NTg5Yyk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF80MmI3MWJiNDMyNzQ0MGU0OWM4OTMxYTY4OTU3YjgxOCA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF8zMjE3OTBkYTI0MWE0M2UwOTIzZTc3MmZmZGQxZTk1NSA9ICQoJzxkaXYgaWQ9Imh0bWxfMzIxNzkwZGEyNDFhNDNlMDkyM2U3NzJmZmRkMWU5NTUiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPkZsYXRsYW5kczwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfNDJiNzFiYjQzMjc0NDBlNDljODkzMWE2ODk1N2I4MTguc2V0Q29udGVudChodG1sXzMyMTc5MGRhMjQxYTQzZTA5MjNlNzcyZmZkZDFlOTU1KTsKICAgICAgICAgICAgCgogICAgICAgICAgICBjaXJjbGVfbWFya2VyX2JiZWQxZTUwYzIyYjRjMTdiNzdhMWNlMjQ2NWY2ZTUzLmJpbmRQb3B1cChwb3B1cF80MmI3MWJiNDMyNzQ0MGU0OWM4OTMxYTY4OTU3YjgxOCk7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgY2lyY2xlX21hcmtlcl81Mzk5ZTFiM2ExZWI0Zjg5OGFjMmI3MGU0MDMyMjVjNiA9IEwuY2lyY2xlTWFya2VyKAogICAgICAgICAgICAgICAgWzQwLjYwNjMzNjQyMTY4NTYyNiwtNzMuOTA4MTg1NzE3Nzc0MjNdLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiYmx1ZSIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogIiMzMTg2Y2MiLAogICJmaWxsT3BhY2l0eSI6IDAuNywKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDUsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKS5hZGRUbyhtYXBfZDUwMDQxNGYxNzc5NGE0YTgxNTY5NmJkZDVmODU4OWMpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfMGZjOTlhNzgzYzQxNGZjODg2YjRlYjUyYWNmNzdhZDQgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfNzNmNDA5MjhkMDM1NDM5ZGFkNmE2MWJjNTZiOGY0NDYgPSAkKCc8ZGl2IGlkPSJodG1sXzczZjQwOTI4ZDAzNTQzOWRhZDZhNjFiYzU2YjhmNDQ2IiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij5NaWxsIElzbGFuZDwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfMGZjOTlhNzgzYzQxNGZjODg2YjRlYjUyYWNmNzdhZDQuc2V0Q29udGVudChodG1sXzczZjQwOTI4ZDAzNTQzOWRhZDZhNjFiYzU2YjhmNDQ2KTsKICAgICAgICAgICAgCgogICAgICAgICAgICBjaXJjbGVfbWFya2VyXzUzOTllMWIzYTFlYjRmODk4YWMyYjcwZTQwMzIyNWM2LmJpbmRQb3B1cChwb3B1cF8wZmM5OWE3ODNjNDE0ZmM4ODZiNGViNTJhY2Y3N2FkNCk7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgY2lyY2xlX21hcmtlcl9iYjg5MzBmMjE1NWU0M2YwYTk3ZWU2ZjAyZGZjZTlhMiA9IEwuY2lyY2xlTWFya2VyKAogICAgICAgICAgICAgICAgWzQwLjU3NzkxMzUwMzA4NjU3LC03My45NDM1MzcyMjg5MTg4Nl0sCiAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICJibHVlIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiB0cnVlLAogICJmaWxsQ29sb3IiOiAiIzMxODZjYyIsCiAgImZpbGxPcGFjaXR5IjogMC43LAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAib3BhY2l0eSI6IDEuMCwKICAicmFkaXVzIjogNSwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9CiAgICAgICAgICAgICAgICApLmFkZFRvKG1hcF9kNTAwNDE0ZjE3Nzk0YTRhODE1Njk2YmRkNWY4NTg5Yyk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF8wZTUwMDg2MzY4ZTU0MmIyYTcxMTI0NDZhYzk3MjgzYyA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF9hY2YzZDllZjhhYjQ0ZGIwYWU1ZjE2N2Y5NjhkOWNiNSA9ICQoJzxkaXYgaWQ9Imh0bWxfYWNmM2Q5ZWY4YWI0NGRiMGFlNWYxNjdmOTY4ZDljYjUiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPk1hbmhhdHRhbiBCZWFjaDwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfMGU1MDA4NjM2OGU1NDJiMmE3MTEyNDQ2YWM5NzI4M2Muc2V0Q29udGVudChodG1sX2FjZjNkOWVmOGFiNDRkYjBhZTVmMTY3Zjk2OGQ5Y2I1KTsKICAgICAgICAgICAgCgogICAgICAgICAgICBjaXJjbGVfbWFya2VyX2JiODkzMGYyMTU1ZTQzZjBhOTdlZTZmMDJkZmNlOWEyLmJpbmRQb3B1cChwb3B1cF8wZTUwMDg2MzY4ZTU0MmIyYTcxMTI0NDZhYzk3MjgzYyk7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgY2lyY2xlX21hcmtlcl9iODg4Zjg5MzIzNTk0ZGFlOWIwYjBjNDkyYzJiZWRiYiA9IEwuY2lyY2xlTWFya2VyKAogICAgICAgICAgICAgICAgWzQwLjU3NDI5MjU2NDcxNjAxLC03My45ODg2ODI5NTgyMTYzN10sCiAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICJibHVlIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiB0cnVlLAogICJmaWxsQ29sb3IiOiAiIzMxODZjYyIsCiAgImZpbGxPcGFjaXR5IjogMC43LAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAib3BhY2l0eSI6IDEuMCwKICAicmFkaXVzIjogNSwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9CiAgICAgICAgICAgICAgICApLmFkZFRvKG1hcF9kNTAwNDE0ZjE3Nzk0YTRhODE1Njk2YmRkNWY4NTg5Yyk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF9jZWQ0MDVjNjY4NjI0NWY5YTVmYWM4OTkwMzZiYjFlZCA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF83N2UwYmMwNWUzYzE0NTZiYmU5YjU5NmQ3YzAxNDM4MyA9ICQoJzxkaXYgaWQ9Imh0bWxfNzdlMGJjMDVlM2MxNDU2YmJlOWI1OTZkN2MwMTQzODMiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPkNvbmV5IElzbGFuZDwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfY2VkNDA1YzY2ODYyNDVmOWE1ZmFjODk5MDM2YmIxZWQuc2V0Q29udGVudChodG1sXzc3ZTBiYzA1ZTNjMTQ1NmJiZTliNTk2ZDdjMDE0MzgzKTsKICAgICAgICAgICAgCgogICAgICAgICAgICBjaXJjbGVfbWFya2VyX2I4ODhmODkzMjM1OTRkYWU5YjBiMGM0OTJjMmJlZGJiLmJpbmRQb3B1cChwb3B1cF9jZWQ0MDVjNjY4NjI0NWY5YTVmYWM4OTkwMzZiYjFlZCk7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgY2lyY2xlX21hcmtlcl8wZThmYTFlNmMxODQ0ZTc3OTAwNWM2NDNjZjRkODczMyA9IEwuY2lyY2xlTWFya2VyKAogICAgICAgICAgICAgICAgWzQwLjU5OTUxODcwMjgyMjM4LC03My45OTg3NTIyMTQ0MzUxOV0sCiAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICJibHVlIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiB0cnVlLAogICJmaWxsQ29sb3IiOiAiIzMxODZjYyIsCiAgImZpbGxPcGFjaXR5IjogMC43LAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAib3BhY2l0eSI6IDEuMCwKICAicmFkaXVzIjogNSwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9CiAgICAgICAgICAgICAgICApLmFkZFRvKG1hcF9kNTAwNDE0ZjE3Nzk0YTRhODE1Njk2YmRkNWY4NTg5Yyk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF9lZTg3N2FjMjVjYjc0YzI2YWJkYjA5ZDczZTZlNmMyNSA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF80ZmQ3Mjk1NTBiNTg0MTU4YTY3NzQyNDc2YzI1MzQ5NiA9ICQoJzxkaXYgaWQ9Imh0bWxfNGZkNzI5NTUwYjU4NDE1OGE2Nzc0MjQ3NmMyNTM0OTYiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPkJhdGggQmVhY2g8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwX2VlODc3YWMyNWNiNzRjMjZhYmRiMDlkNzNlNmU2YzI1LnNldENvbnRlbnQoaHRtbF80ZmQ3Mjk1NTBiNTg0MTU4YTY3NzQyNDc2YzI1MzQ5Nik7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl8wZThmYTFlNmMxODQ0ZTc3OTAwNWM2NDNjZjRkODczMy5iaW5kUG9wdXAocG9wdXBfZWU4NzdhYzI1Y2I3NGMyNmFiZGIwOWQ3M2U2ZTZjMjUpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfMmMwMjEyM2IzY2M3NDQxNmI4ZjZlNGUzOTU0MzE0M2QgPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MC42MzMxMzA1MTI3NTgwMTUsLTczLjk5MDQ5ODIzMDQ0ODExXSwKICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogImJsdWUiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IHRydWUsCiAgImZpbGxDb2xvciI6ICIjMzE4NmNjIiwKICAiZmlsbE9wYWNpdHkiOiAwLjcsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJvcGFjaXR5IjogMS4wLAogICJyYWRpdXMiOiA1LAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAzCn0KICAgICAgICAgICAgICAgICkuYWRkVG8obWFwX2Q1MDA0MTRmMTc3OTRhNGE4MTU2OTZiZGQ1Zjg1ODljKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwXzc4ODQzZGU2Yjg1ZTQ4NWFhYjQxYTY5YWJiOTBjZTUzID0gTC5wb3B1cCh7bWF4V2lkdGg6ICczMDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sXzcwOTM0OTlkNWJhMzRkZjA4NDY5M2RhZWVmZmRlN2UxID0gJCgnPGRpdiBpZD0iaHRtbF83MDkzNDk5ZDViYTM0ZGYwODQ2OTNkYWVlZmZkZTdlMSIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+Qm9yb3VnaCBQYXJrPC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF83ODg0M2RlNmI4NWU0ODVhYWI0MWE2OWFiYjkwY2U1My5zZXRDb250ZW50KGh0bWxfNzA5MzQ5OWQ1YmEzNGRmMDg0NjkzZGFlZWZmZGU3ZTEpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIGNpcmNsZV9tYXJrZXJfMmMwMjEyM2IzY2M3NDQxNmI4ZjZlNGUzOTU0MzE0M2QuYmluZFBvcHVwKHBvcHVwXzc4ODQzZGU2Yjg1ZTQ4NWFhYjQxYTY5YWJiOTBjZTUzKTsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBjaXJjbGVfbWFya2VyX2NlMjE0ZWJmN2UyNzQyNDE4MDczZWEwNWU0MjQzYmNjID0gTC5jaXJjbGVNYXJrZXIoCiAgICAgICAgICAgICAgICBbNDAuNjE5MjE5NDU3NzIyNjM2LC03NC4wMTkzMTM3NTYzNjAyMl0sCiAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICJibHVlIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiB0cnVlLAogICJmaWxsQ29sb3IiOiAiIzMxODZjYyIsCiAgImZpbGxPcGFjaXR5IjogMC43LAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAib3BhY2l0eSI6IDEuMCwKICAicmFkaXVzIjogNSwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9CiAgICAgICAgICAgICAgICApLmFkZFRvKG1hcF9kNTAwNDE0ZjE3Nzk0YTRhODE1Njk2YmRkNWY4NTg5Yyk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF9jNTk1ZTYzM2Y5Zjc0ZjgyYmFjZWQ2NzA0MGMxOGVjNiA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF9jMWYyMWQ4YzQ1OTE0Y2FkYWZiNDExNzEzZWFjYzY0NiA9ICQoJzxkaXYgaWQ9Imh0bWxfYzFmMjFkOGM0NTkxNGNhZGFmYjQxMTcxM2VhY2M2NDYiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPkR5a2VyIEhlaWdodHM8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwX2M1OTVlNjMzZjlmNzRmODJiYWNlZDY3MDQwYzE4ZWM2LnNldENvbnRlbnQoaHRtbF9jMWYyMWQ4YzQ1OTE0Y2FkYWZiNDExNzEzZWFjYzY0Nik7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl9jZTIxNGViZjdlMjc0MjQxODA3M2VhMDVlNDI0M2JjYy5iaW5kUG9wdXAocG9wdXBfYzU5NWU2MzNmOWY3NGY4MmJhY2VkNjcwNDBjMThlYzYpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfZmU5ZDk0MzcwMWZhNGE4OGJiNDBmYTI3YzA5ZTVlYzIgPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MC41OTA4NDg0MzM5MDIwNDYsLTczLjkzMDEwMTcwNjkxMTk2XSwKICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogImJsdWUiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IHRydWUsCiAgImZpbGxDb2xvciI6ICIjMzE4NmNjIiwKICAiZmlsbE9wYWNpdHkiOiAwLjcsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJvcGFjaXR5IjogMS4wLAogICJyYWRpdXMiOiA1LAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAzCn0KICAgICAgICAgICAgICAgICkuYWRkVG8obWFwX2Q1MDA0MTRmMTc3OTRhNGE4MTU2OTZiZGQ1Zjg1ODljKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwX2U2YmQ2NmQzOTg2ODQzOTVhYTcwNTQ2YmFiZjY1MzU2ID0gTC5wb3B1cCh7bWF4V2lkdGg6ICczMDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sX2YyNDUyM2I4NTJhMTQ2OWQ5NWQwMGYxYmM4YTkyMzY5ID0gJCgnPGRpdiBpZD0iaHRtbF9mMjQ1MjNiODUyYTE0NjlkOTVkMDBmMWJjOGE5MjM2OSIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+R2Vycml0c2VuIEJlYWNoPC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF9lNmJkNjZkMzk4Njg0Mzk1YWE3MDU0NmJhYmY2NTM1Ni5zZXRDb250ZW50KGh0bWxfZjI0NTIzYjg1MmExNDY5ZDk1ZDAwZjFiYzhhOTIzNjkpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIGNpcmNsZV9tYXJrZXJfZmU5ZDk0MzcwMWZhNGE4OGJiNDBmYTI3YzA5ZTVlYzIuYmluZFBvcHVwKHBvcHVwX2U2YmQ2NmQzOTg2ODQzOTVhYTcwNTQ2YmFiZjY1MzU2KTsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBjaXJjbGVfbWFya2VyXzUyMzVhMjAxZTc2ZjRkZTc4OTE5MDNkNjRkZTQzODY1ID0gTC5jaXJjbGVNYXJrZXIoCiAgICAgICAgICAgICAgICBbNDAuNjA5NzQ3Nzc5ODk0NjA0LC03My45MzEzNDQwNDEwODQ5N10sCiAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICJibHVlIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiB0cnVlLAogICJmaWxsQ29sb3IiOiAiIzMxODZjYyIsCiAgImZpbGxPcGFjaXR5IjogMC43LAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAib3BhY2l0eSI6IDEuMCwKICAicmFkaXVzIjogNSwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9CiAgICAgICAgICAgICAgICApLmFkZFRvKG1hcF9kNTAwNDE0ZjE3Nzk0YTRhODE1Njk2YmRkNWY4NTg5Yyk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF8yOGRiMTllOThlNjM0Y2ExYmE1NDhmMWEyMGFmMzI0YyA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF84ZTRmMzQ0MzJjZmI0Njc1YTZkMjBmYmJhZmEwYWYzYiA9ICQoJzxkaXYgaWQ9Imh0bWxfOGU0ZjM0NDMyY2ZiNDY3NWE2ZDIwZmJiYWZhMGFmM2IiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPk1hcmluZSBQYXJrPC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF8yOGRiMTllOThlNjM0Y2ExYmE1NDhmMWEyMGFmMzI0Yy5zZXRDb250ZW50KGh0bWxfOGU0ZjM0NDMyY2ZiNDY3NWE2ZDIwZmJiYWZhMGFmM2IpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIGNpcmNsZV9tYXJrZXJfNTIzNWEyMDFlNzZmNGRlNzg5MTkwM2Q2NGRlNDM4NjUuYmluZFBvcHVwKHBvcHVwXzI4ZGIxOWU5OGU2MzRjYTFiYTU0OGYxYTIwYWYzMjRjKTsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBjaXJjbGVfbWFya2VyXzFkNDI1NmJmODQ1OTRmZDNhM2ZhNzdjYmZkMzQ1ODkyID0gTC5jaXJjbGVNYXJrZXIoCiAgICAgICAgICAgICAgICBbNDAuNjkzMjI5NDIxODgxNTA0LC03My45Njc4NDMwNjIxNjM2N10sCiAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICJibHVlIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiB0cnVlLAogICJmaWxsQ29sb3IiOiAiIzMxODZjYyIsCiAgImZpbGxPcGFjaXR5IjogMC43LAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAib3BhY2l0eSI6IDEuMCwKICAicmFkaXVzIjogNSwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9CiAgICAgICAgICAgICAgICApLmFkZFRvKG1hcF9kNTAwNDE0ZjE3Nzk0YTRhODE1Njk2YmRkNWY4NTg5Yyk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF81ZTY5YWU0N2IxMjk0NzFkOGJlNzViODcxN2Q2YjhmNiA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF9jNTkwNjUxZWUxZjg0Y2NjOWNjZWQ0YmZkZTlmY2ViNCA9ICQoJzxkaXYgaWQ9Imh0bWxfYzU5MDY1MWVlMWY4NGNjYzljY2VkNGJmZGU5ZmNlYjQiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPkNsaW50b24gSGlsbDwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfNWU2OWFlNDdiMTI5NDcxZDhiZTc1Yjg3MTdkNmI4ZjYuc2V0Q29udGVudChodG1sX2M1OTA2NTFlZTFmODRjY2M5Y2NlZDRiZmRlOWZjZWI0KTsKICAgICAgICAgICAgCgogICAgICAgICAgICBjaXJjbGVfbWFya2VyXzFkNDI1NmJmODQ1OTRmZDNhM2ZhNzdjYmZkMzQ1ODkyLmJpbmRQb3B1cChwb3B1cF81ZTY5YWU0N2IxMjk0NzFkOGJlNzViODcxN2Q2YjhmNik7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgY2lyY2xlX21hcmtlcl9kYTlkODFkMDcxYjg0YjdmYWVkYjQ3YWZjNjJiZDViOCA9IEwuY2lyY2xlTWFya2VyKAogICAgICAgICAgICAgICAgWzQwLjU3NjM3NTM3ODkwMjI0LC03NC4wMDc4NzMxMTIwMDI0XSwKICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogImJsdWUiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IHRydWUsCiAgImZpbGxDb2xvciI6ICIjMzE4NmNjIiwKICAiZmlsbE9wYWNpdHkiOiAwLjcsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJvcGFjaXR5IjogMS4wLAogICJyYWRpdXMiOiA1LAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAzCn0KICAgICAgICAgICAgICAgICkuYWRkVG8obWFwX2Q1MDA0MTRmMTc3OTRhNGE4MTU2OTZiZGQ1Zjg1ODljKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwXzYzY2FlMzhlNmNhNTRkOTRiYzk2NDc4NzJlNWIxM2Q5ID0gTC5wb3B1cCh7bWF4V2lkdGg6ICczMDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sX2MwOGQ5YjIzMzFiYjQ1NmRiOGNmN2VjYTBhZTI1MjBkID0gJCgnPGRpdiBpZD0iaHRtbF9jMDhkOWIyMzMxYmI0NTZkYjhjZjdlY2EwYWUyNTIwZCIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+U2VhIEdhdGU8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzYzY2FlMzhlNmNhNTRkOTRiYzk2NDc4NzJlNWIxM2Q5LnNldENvbnRlbnQoaHRtbF9jMDhkOWIyMzMxYmI0NTZkYjhjZjdlY2EwYWUyNTIwZCk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl9kYTlkODFkMDcxYjg0YjdmYWVkYjQ3YWZjNjJiZDViOC5iaW5kUG9wdXAocG9wdXBfNjNjYWUzOGU2Y2E1NGQ5NGJjOTY0Nzg3MmU1YjEzZDkpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfMGFlYjJkNWQzZmE4NGZlM2JlNmJlNDU4NzIwMTdkZmUgPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MC42OTA4NDQwMjEwOTgwMiwtNzMuOTgzNDYzMzc0MzEwOTldLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiYmx1ZSIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogIiMzMTg2Y2MiLAogICJmaWxsT3BhY2l0eSI6IDAuNywKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDUsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKS5hZGRUbyhtYXBfZDUwMDQxNGYxNzc5NGE0YTgxNTY5NmJkZDVmODU4OWMpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfZWY2MDNmODE0NWQyNDdmNGE3OTM4ZWJmMmEzMDJiNzMgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfYjJiOWM0MjE1Yzc0NDRhZTk2MmVmMzc3NTNlNjFmMmUgPSAkKCc8ZGl2IGlkPSJodG1sX2IyYjljNDIxNWM3NDQ0YWU5NjJlZjM3NzUzZTYxZjJlIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij5Eb3dudG93bjwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfZWY2MDNmODE0NWQyNDdmNGE3OTM4ZWJmMmEzMDJiNzMuc2V0Q29udGVudChodG1sX2IyYjljNDIxNWM3NDQ0YWU5NjJlZjM3NzUzZTYxZjJlKTsKICAgICAgICAgICAgCgogICAgICAgICAgICBjaXJjbGVfbWFya2VyXzBhZWIyZDVkM2ZhODRmZTNiZTZiZTQ1ODcyMDE3ZGZlLmJpbmRQb3B1cChwb3B1cF9lZjYwM2Y4MTQ1ZDI0N2Y0YTc5MzhlYmYyYTMwMmI3Myk7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgY2lyY2xlX21hcmtlcl8zMzg0NThlZTk3YzQ0OTBmOWE0MDU3MjliNGUyMjVhZiA9IEwuY2lyY2xlTWFya2VyKAogICAgICAgICAgICAgICAgWzQwLjY4NTY4MjkxMjA5MTQ0NCwtNzMuOTgzNzQ4MjQxMTU3OThdLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiYmx1ZSIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogIiMzMTg2Y2MiLAogICJmaWxsT3BhY2l0eSI6IDAuNywKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDUsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKS5hZGRUbyhtYXBfZDUwMDQxNGYxNzc5NGE0YTgxNTY5NmJkZDVmODU4OWMpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfMThkZWQxNTMzZDQyNDUxMWFjZWQ0ZjAxNWVlOGY4MmYgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfM2I1ZmE3NmE2NWI2NDFiMmJhYzgzOTY2ODRiZWQ5NWYgPSAkKCc8ZGl2IGlkPSJodG1sXzNiNWZhNzZhNjViNjQxYjJiYWM4Mzk2Njg0YmVkOTVmIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij5Cb2VydW0gSGlsbDwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfMThkZWQxNTMzZDQyNDUxMWFjZWQ0ZjAxNWVlOGY4MmYuc2V0Q29udGVudChodG1sXzNiNWZhNzZhNjViNjQxYjJiYWM4Mzk2Njg0YmVkOTVmKTsKICAgICAgICAgICAgCgogICAgICAgICAgICBjaXJjbGVfbWFya2VyXzMzODQ1OGVlOTdjNDQ5MGY5YTQwNTcyOWI0ZTIyNWFmLmJpbmRQb3B1cChwb3B1cF8xOGRlZDE1MzNkNDI0NTExYWNlZDRmMDE1ZWU4ZjgyZik7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgY2lyY2xlX21hcmtlcl8zYjA4N2U3N2JlYjk0MDc5YTAyMmMyZWZkMmJlNjk0OCA9IEwuY2lyY2xlTWFya2VyKAogICAgICAgICAgICAgICAgWzQwLjY1ODQyMDAxNzQ2OTgxNSwtNzMuOTU0ODk4NjcwNzc3MTNdLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiYmx1ZSIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogIiMzMTg2Y2MiLAogICJmaWxsT3BhY2l0eSI6IDAuNywKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDUsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKS5hZGRUbyhtYXBfZDUwMDQxNGYxNzc5NGE0YTgxNTY5NmJkZDVmODU4OWMpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfMmQ2YmNlYTYzZGJlNDIyYTkyZTQ2NjNiZjk2Njc5MGUgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfNzJkMTkxMmVjMzMzNDlmMTk5ZTUxNzkxNzhmYTM3YzMgPSAkKCc8ZGl2IGlkPSJodG1sXzcyZDE5MTJlYzMzMzQ5ZjE5OWU1MTc5MTc4ZmEzN2MzIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij5Qcm9zcGVjdCBMZWZmZXJ0cyBHYXJkZW5zPC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF8yZDZiY2VhNjNkYmU0MjJhOTJlNDY2M2JmOTY2NzkwZS5zZXRDb250ZW50KGh0bWxfNzJkMTkxMmVjMzMzNDlmMTk5ZTUxNzkxNzhmYTM3YzMpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIGNpcmNsZV9tYXJrZXJfM2IwODdlNzdiZWI5NDA3OWEwMjJjMmVmZDJiZTY5NDguYmluZFBvcHVwKHBvcHVwXzJkNmJjZWE2M2RiZTQyMmE5MmU0NjYzYmY5NjY3OTBlKTsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBjaXJjbGVfbWFya2VyX2YxZTE3MjIwYTRlZTRlMjk4NzY5MGNkY2I3MTcxNzk5ID0gTC5jaXJjbGVNYXJrZXIoCiAgICAgICAgICAgICAgICBbNDAuNjc4NDAyNTU0Nzk1MzU1LC03My45MTMwNjgzMTc4NzM5NV0sCiAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICJibHVlIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiB0cnVlLAogICJmaWxsQ29sb3IiOiAiIzMxODZjYyIsCiAgImZpbGxPcGFjaXR5IjogMC43LAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAib3BhY2l0eSI6IDEuMCwKICAicmFkaXVzIjogNSwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9CiAgICAgICAgICAgICAgICApLmFkZFRvKG1hcF9kNTAwNDE0ZjE3Nzk0YTRhODE1Njk2YmRkNWY4NTg5Yyk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF8zOWVhNmQ1YmI2NDk0YTM4YjY4OGNmOWE3MTEyZGU3MiA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF9hMTFmZGI4ZDMxZjk0MWIyYjNlMjc3ZmE0NTgxMTk3MyA9ICQoJzxkaXYgaWQ9Imh0bWxfYTExZmRiOGQzMWY5NDFiMmIzZTI3N2ZhNDU4MTE5NzMiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPk9jZWFuIEhpbGw8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzM5ZWE2ZDViYjY0OTRhMzhiNjg4Y2Y5YTcxMTJkZTcyLnNldENvbnRlbnQoaHRtbF9hMTFmZGI4ZDMxZjk0MWIyYjNlMjc3ZmE0NTgxMTk3Myk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl9mMWUxNzIyMGE0ZWU0ZTI5ODc2OTBjZGNiNzE3MTc5OS5iaW5kUG9wdXAocG9wdXBfMzllYTZkNWJiNjQ5NGEzOGI2ODhjZjlhNzExMmRlNzIpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfY2MxYTNkZTkyZWNmNDliZjlhODUyNWQzODhiODdmMmEgPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MC42Nzg1Njk5NTcyNzQ3OSwtNzMuODY3OTc1OTgwODEzMzRdLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiYmx1ZSIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogIiMzMTg2Y2MiLAogICJmaWxsT3BhY2l0eSI6IDAuNywKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDUsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKS5hZGRUbyhtYXBfZDUwMDQxNGYxNzc5NGE0YTgxNTY5NmJkZDVmODU4OWMpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfNTY2ZGRkM2ZmM2ZmNDRiOWIwYjQzZGI0ZDgyMTExOGIgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfN2FhNmE5YTBjZGFkNGM5MjhhMzgxZmFlZDAzNDkwODYgPSAkKCc8ZGl2IGlkPSJodG1sXzdhYTZhOWEwY2RhZDRjOTI4YTM4MWZhZWQwMzQ5MDg2IiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij5DaXR5IExpbmU8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzU2NmRkZDNmZjNmZjQ0YjliMGI0M2RiNGQ4MjExMThiLnNldENvbnRlbnQoaHRtbF83YWE2YTlhMGNkYWQ0YzkyOGEzODFmYWVkMDM0OTA4Nik7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl9jYzFhM2RlOTJlY2Y0OWJmOWE4NTI1ZDM4OGI4N2YyYS5iaW5kUG9wdXAocG9wdXBfNTY2ZGRkM2ZmM2ZmNDRiOWIwYjQzZGI0ZDgyMTExOGIpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfZTZlMDAxNmMwNmM3NDZjZDhhMjgyNTVmZDhjZGUyYTQgPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MC42MTUxNDk1NTA0NTMwOCwtNzMuODk4NTU2MzM2MzAzMTddLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiYmx1ZSIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogIiMzMTg2Y2MiLAogICJmaWxsT3BhY2l0eSI6IDAuNywKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDUsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKS5hZGRUbyhtYXBfZDUwMDQxNGYxNzc5NGE0YTgxNTY5NmJkZDVmODU4OWMpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfNmIyMzM3OTM4MGMzNDQ0NjgwZjhiZGNmYTliOTU3YmUgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfN2JjZjM5YjhjZDZjNGQ1YThkZDI2MDYzOTFhMmNjZWEgPSAkKCc8ZGl2IGlkPSJodG1sXzdiY2YzOWI4Y2Q2YzRkNWE4ZGQyNjA2MzkxYTJjY2VhIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij5CZXJnZW4gQmVhY2g8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzZiMjMzNzkzODBjMzQ0NDY4MGY4YmRjZmE5Yjk1N2JlLnNldENvbnRlbnQoaHRtbF83YmNmMzliOGNkNmM0ZDVhOGRkMjYwNjM5MWEyY2NlYSk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl9lNmUwMDE2YzA2Yzc0NmNkOGEyODI1NWZkOGNkZTJhNC5iaW5kUG9wdXAocG9wdXBfNmIyMzM3OTM4MGMzNDQ0NjgwZjhiZGNmYTliOTU3YmUpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfN2Q5MDZmYzIyN2JjNDJmMDk4NzJkNDU3YzQ2YjE5ZTggPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MC42MjU1OTU4OTg2OTg0MywtNzMuOTU3NTk1MjM0ODk4MzhdLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiYmx1ZSIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogIiMzMTg2Y2MiLAogICJmaWxsT3BhY2l0eSI6IDAuNywKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDUsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKS5hZGRUbyhtYXBfZDUwMDQxNGYxNzc5NGE0YTgxNTY5NmJkZDVmODU4OWMpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfYzc1ZDE5MDdlNjdlNDJmNzk4ZTYyYThmZjEwMGRhZDQgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfNDVhNTZkZjFhMzE4NDZlNzg4M2Q3NDk4NWU4MGE4YzQgPSAkKCc8ZGl2IGlkPSJodG1sXzQ1YTU2ZGYxYTMxODQ2ZTc4ODNkNzQ5ODVlODBhOGM0IiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij5NaWR3b29kPC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF9jNzVkMTkwN2U2N2U0MmY3OThlNjJhOGZmMTAwZGFkNC5zZXRDb250ZW50KGh0bWxfNDVhNTZkZjFhMzE4NDZlNzg4M2Q3NDk4NWU4MGE4YzQpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIGNpcmNsZV9tYXJrZXJfN2Q5MDZmYzIyN2JjNDJmMDk4NzJkNDU3YzQ2YjE5ZTguYmluZFBvcHVwKHBvcHVwX2M3NWQxOTA3ZTY3ZTQyZjc5OGU2MmE4ZmYxMDBkYWQ0KTsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBjaXJjbGVfbWFya2VyXzg4MDRmZjM0NjllMzRiYTFiYzA0YzM3OTk0ZWNiMTYzID0gTC5jaXJjbGVNYXJrZXIoCiAgICAgICAgICAgICAgICBbNDAuNjQ3MDA4NjAzMTg1MTg1LC03My45NjI2MTMxNjcxNjA0OF0sCiAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICJibHVlIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiB0cnVlLAogICJmaWxsQ29sb3IiOiAiIzMxODZjYyIsCiAgImZpbGxPcGFjaXR5IjogMC43LAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAib3BhY2l0eSI6IDEuMCwKICAicmFkaXVzIjogNSwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9CiAgICAgICAgICAgICAgICApLmFkZFRvKG1hcF9kNTAwNDE0ZjE3Nzk0YTRhODE1Njk2YmRkNWY4NTg5Yyk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF84MDY3N2RhNGYxMmE0YmU3YjEzNGU0OGU5OTM0Y2RmOSA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF81YmFkZmQwZGQ3Yzc0YjY3OTRkMGVmODNjNTQ1ODNmNCA9ICQoJzxkaXYgaWQ9Imh0bWxfNWJhZGZkMGRkN2M3NGI2Nzk0ZDBlZjgzYzU0NTgzZjQiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPlByb3NwZWN0IFBhcmsgU291dGg8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzgwNjc3ZGE0ZjEyYTRiZTdiMTM0ZTQ4ZTk5MzRjZGY5LnNldENvbnRlbnQoaHRtbF81YmFkZmQwZGQ3Yzc0YjY3OTRkMGVmODNjNTQ1ODNmNCk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl84ODA0ZmYzNDY5ZTM0YmExYmMwNGMzNzk5NGVjYjE2My5iaW5kUG9wdXAocG9wdXBfODA2NzdkYTRmMTJhNGJlN2IxMzRlNDhlOTkzNGNkZjkpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfYzhiODk5Y2VmNjUzNDkyNDg0MjA5ODg0N2EwYjRkZDggPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MC42MjM4NDUyNDQ3ODQxOSwtNzMuOTE2MDc0ODM5NTEzMjRdLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiYmx1ZSIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogIiMzMTg2Y2MiLAogICJmaWxsT3BhY2l0eSI6IDAuNywKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDUsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKS5hZGRUbyhtYXBfZDUwMDQxNGYxNzc5NGE0YTgxNTY5NmJkZDVmODU4OWMpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfYmZjZDMzNDVjMTJhNGQ2NzlkNmQzOWNhMGU2NzczZDAgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfY2NiYzk1OGU5Y2ViNGYyMGE1NGUxZWJkOWM5OTdlNWEgPSAkKCc8ZGl2IGlkPSJodG1sX2NjYmM5NThlOWNlYjRmMjBhNTRlMWViZDljOTk3ZTVhIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij5HZW9yZ2V0b3duPC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF9iZmNkMzM0NWMxMmE0ZDY3OWQ2ZDM5Y2EwZTY3NzNkMC5zZXRDb250ZW50KGh0bWxfY2NiYzk1OGU5Y2ViNGYyMGE1NGUxZWJkOWM5OTdlNWEpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIGNpcmNsZV9tYXJrZXJfYzhiODk5Y2VmNjUzNDkyNDg0MjA5ODg0N2EwYjRkZDguYmluZFBvcHVwKHBvcHVwX2JmY2QzMzQ1YzEyYTRkNjc5ZDZkMzljYTBlNjc3M2QwKTsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBjaXJjbGVfbWFya2VyXzQyZDYwMDg4MDY3MjRiODg4ZTU5ZjFkMGE4ZmNjNWMzID0gTC5jaXJjbGVNYXJrZXIoCiAgICAgICAgICAgICAgICBbNDAuNzA4NDkyNDEwNDE1NDgsLTczLjkzODg1ODE1MjY5MTk1XSwKICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogImJsdWUiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IHRydWUsCiAgImZpbGxDb2xvciI6ICIjMzE4NmNjIiwKICAiZmlsbE9wYWNpdHkiOiAwLjcsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJvcGFjaXR5IjogMS4wLAogICJyYWRpdXMiOiA1LAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAzCn0KICAgICAgICAgICAgICAgICkuYWRkVG8obWFwX2Q1MDA0MTRmMTc3OTRhNGE4MTU2OTZiZGQ1Zjg1ODljKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwXzU5NTBkZTMzYzZiNjQyOTY5ZjU2YTg3OTg1OTM0NmI0ID0gTC5wb3B1cCh7bWF4V2lkdGg6ICczMDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sX2E5ZGVjZDg2ZDRmNjQ1MzlhNTM0Y2M4MDMzNzc1ZDQ0ID0gJCgnPGRpdiBpZD0iaHRtbF9hOWRlY2Q4NmQ0ZjY0NTM5YTUzNGNjODAzMzc3NWQ0NCIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+RWFzdCBXaWxsaWFtc2J1cmc8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzU5NTBkZTMzYzZiNjQyOTY5ZjU2YTg3OTg1OTM0NmI0LnNldENvbnRlbnQoaHRtbF9hOWRlY2Q4NmQ0ZjY0NTM5YTUzNGNjODAzMzc3NWQ0NCk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl80MmQ2MDA4ODA2NzI0Yjg4OGU1OWYxZDBhOGZjYzVjMy5iaW5kUG9wdXAocG9wdXBfNTk1MGRlMzNjNmI2NDI5NjlmNTZhODc5ODU5MzQ2YjQpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfMDhlN2MzODk5MWM3NDQwOGFmOWFmYWJkNmRlOTU4MzMgPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MC43MTQ4MjI5MDY1MzIwMTQsLTczLjk1ODgwODU3NTg3NTgyXSwKICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogImJsdWUiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IHRydWUsCiAgImZpbGxDb2xvciI6ICIjMzE4NmNjIiwKICAiZmlsbE9wYWNpdHkiOiAwLjcsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJvcGFjaXR5IjogMS4wLAogICJyYWRpdXMiOiA1LAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAzCn0KICAgICAgICAgICAgICAgICkuYWRkVG8obWFwX2Q1MDA0MTRmMTc3OTRhNGE4MTU2OTZiZGQ1Zjg1ODljKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwX2Q2ZDE4YzM4MWUxNzQwYzJiNDMyMjBmMmU1MzZmMGUxID0gTC5wb3B1cCh7bWF4V2lkdGg6ICczMDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sXzc2ZjM2NjRhMDkwZjRlMzY4Yjk0MjNmMDg0NjdjMWYzID0gJCgnPGRpdiBpZD0iaHRtbF83NmYzNjY0YTA5MGY0ZTM2OGI5NDIzZjA4NDY3YzFmMyIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+Tm9ydGggU2lkZTwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfZDZkMThjMzgxZTE3NDBjMmI0MzIyMGYyZTUzNmYwZTEuc2V0Q29udGVudChodG1sXzc2ZjM2NjRhMDkwZjRlMzY4Yjk0MjNmMDg0NjdjMWYzKTsKICAgICAgICAgICAgCgogICAgICAgICAgICBjaXJjbGVfbWFya2VyXzA4ZTdjMzg5OTFjNzQ0MDhhZjlhZmFiZDZkZTk1ODMzLmJpbmRQb3B1cChwb3B1cF9kNmQxOGMzODFlMTc0MGMyYjQzMjIwZjJlNTM2ZjBlMSk7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgY2lyY2xlX21hcmtlcl8zODkyMTIyMjBkNjc0ODVhYTA2ODMwYjIxMTBmY2ZkNyA9IEwuY2lyY2xlTWFya2VyKAogICAgICAgICAgICAgICAgWzQwLjcxMDg2MTQ3MjY1MDY0LC03My45NTgwMDA5NTE1MzMzMV0sCiAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICJibHVlIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiB0cnVlLAogICJmaWxsQ29sb3IiOiAiIzMxODZjYyIsCiAgImZpbGxPcGFjaXR5IjogMC43LAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAib3BhY2l0eSI6IDEuMCwKICAicmFkaXVzIjogNSwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9CiAgICAgICAgICAgICAgICApLmFkZFRvKG1hcF9kNTAwNDE0ZjE3Nzk0YTRhODE1Njk2YmRkNWY4NTg5Yyk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF8xYWRhZTQzYWMyYmQ0ODI0Yjc0MWU1MTRjNzU0MDNlYiA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF9jNWZkNDBjNTUwNWM0ZDc5YjQ2ZTlhNjIxMDQ5ODFiZSA9ICQoJzxkaXYgaWQ9Imh0bWxfYzVmZDQwYzU1MDVjNGQ3OWI0NmU5YTYyMTA0OTgxYmUiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPlNvdXRoIFNpZGU8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzFhZGFlNDNhYzJiZDQ4MjRiNzQxZTUxNGM3NTQwM2ViLnNldENvbnRlbnQoaHRtbF9jNWZkNDBjNTUwNWM0ZDc5YjQ2ZTlhNjIxMDQ5ODFiZSk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl8zODkyMTIyMjBkNjc0ODVhYTA2ODMwYjIxMTBmY2ZkNy5iaW5kUG9wdXAocG9wdXBfMWFkYWU0M2FjMmJkNDgyNGI3NDFlNTE0Yzc1NDAzZWIpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfOGJmN2NjOWVjYzI3NDQxMDgzYWYzOTgyZDI0NmMxMDcgPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MC42MTMwNTk3NjY2Nzk0MiwtNzMuOTY4MzY2NzgwMzU1NDFdLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiYmx1ZSIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogIiMzMTg2Y2MiLAogICJmaWxsT3BhY2l0eSI6IDAuNywKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDUsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKS5hZGRUbyhtYXBfZDUwMDQxNGYxNzc5NGE0YTgxNTY5NmJkZDVmODU4OWMpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfZjkzOWIxMjVmNzUyNDJhN2FmYTJhZjI0NjIwYjBjZDEgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfZWQ2NzRjMmViOTNlNGI0M2I2MzM3MTgyMmE3YTc2MjQgPSAkKCc8ZGl2IGlkPSJodG1sX2VkNjc0YzJlYjkzZTRiNDNiNjMzNzE4MjJhN2E3NjI0IiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij5PY2VhbiBQYXJrd2F5PC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF9mOTM5YjEyNWY3NTI0MmE3YWZhMmFmMjQ2MjBiMGNkMS5zZXRDb250ZW50KGh0bWxfZWQ2NzRjMmViOTNlNGI0M2I2MzM3MTgyMmE3YTc2MjQpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIGNpcmNsZV9tYXJrZXJfOGJmN2NjOWVjYzI3NDQxMDgzYWYzOTgyZDI0NmMxMDcuYmluZFBvcHVwKHBvcHVwX2Y5MzliMTI1Zjc1MjQyYTdhZmEyYWYyNDYyMGIwY2QxKTsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBjaXJjbGVfbWFya2VyXzI3OWEyNzhhZjdmMTQ0MTI4YWMwOTZiZjA4ZmVlM2FlID0gTC5jaXJjbGVNYXJrZXIoCiAgICAgICAgICAgICAgICBbNDAuNjE0NzY4MTI2OTQyMjYsLTc0LjAzMTk3OTE0NTM3OTg0XSwKICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogImJsdWUiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IHRydWUsCiAgImZpbGxDb2xvciI6ICIjMzE4NmNjIiwKICAiZmlsbE9wYWNpdHkiOiAwLjcsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJvcGFjaXR5IjogMS4wLAogICJyYWRpdXMiOiA1LAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAzCn0KICAgICAgICAgICAgICAgICkuYWRkVG8obWFwX2Q1MDA0MTRmMTc3OTRhNGE4MTU2OTZiZGQ1Zjg1ODljKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwXzBmOWNjMmViY2FhZDQ3MzZiYTg4MGJiNjFiOTE4ZDhhID0gTC5wb3B1cCh7bWF4V2lkdGg6ICczMDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sX2JjYjRjMGU1NjQ2MjQ3NzdhODQwMjI3NjE3ZmU0MWFhID0gJCgnPGRpdiBpZD0iaHRtbF9iY2I0YzBlNTY0NjI0Nzc3YTg0MDIyNzYxN2ZlNDFhYSIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+Rm9ydCBIYW1pbHRvbjwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfMGY5Y2MyZWJjYWFkNDczNmJhODgwYmI2MWI5MThkOGEuc2V0Q29udGVudChodG1sX2JjYjRjMGU1NjQ2MjQ3NzdhODQwMjI3NjE3ZmU0MWFhKTsKICAgICAgICAgICAgCgogICAgICAgICAgICBjaXJjbGVfbWFya2VyXzI3OWEyNzhhZjdmMTQ0MTI4YWMwOTZiZjA4ZmVlM2FlLmJpbmRQb3B1cChwb3B1cF8wZjljYzJlYmNhYWQ0NzM2YmE4ODBiYjYxYjkxOGQ4YSk7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgY2lyY2xlX21hcmtlcl9lMDY3NDkwOTBhYTg0ZjJjYTg2MGI0M2JlYjQwMTMxNCA9IEwuY2lyY2xlTWFya2VyKAogICAgICAgICAgICAgICAgWzQwLjcxNTYxODQyMjMxNDMyLC03My45OTQyNzkzNjI1NTk3OF0sCiAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICJibHVlIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiB0cnVlLAogICJmaWxsQ29sb3IiOiAiIzMxODZjYyIsCiAgImZpbGxPcGFjaXR5IjogMC43LAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAib3BhY2l0eSI6IDEuMCwKICAicmFkaXVzIjogNSwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9CiAgICAgICAgICAgICAgICApLmFkZFRvKG1hcF9kNTAwNDE0ZjE3Nzk0YTRhODE1Njk2YmRkNWY4NTg5Yyk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF9jZTZiYmFhZTQ2MGU0Y2U4YjBjYWIxZmIwMGYzNmJlMSA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF83MjYzZTk0OTkyNTc0MDBjYTNjNGQ4NWI0MWI1YTYxZSA9ICQoJzxkaXYgaWQ9Imh0bWxfNzI2M2U5NDk5MjU3NDAwY2EzYzRkODViNDFiNWE2MWUiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPkNoaW5hdG93bjwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfY2U2YmJhYWU0NjBlNGNlOGIwY2FiMWZiMDBmMzZiZTEuc2V0Q29udGVudChodG1sXzcyNjNlOTQ5OTI1NzQwMGNhM2M0ZDg1YjQxYjVhNjFlKTsKICAgICAgICAgICAgCgogICAgICAgICAgICBjaXJjbGVfbWFya2VyX2UwNjc0OTA5MGFhODRmMmNhODYwYjQzYmViNDAxMzE0LmJpbmRQb3B1cChwb3B1cF9jZTZiYmFhZTQ2MGU0Y2U4YjBjYWIxZmIwMGYzNmJlMSk7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgY2lyY2xlX21hcmtlcl9mMjkzMThjZDZlYzU0ZDBkYjI0MjZkZWM0Mzg0MGY0OCA9IEwuY2lyY2xlTWFya2VyKAogICAgICAgICAgICAgICAgWzQwLjg1MTkwMjUyNTU1MzA1LC03My45MzY5MDAyNzk4NTIzNF0sCiAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICJibHVlIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiB0cnVlLAogICJmaWxsQ29sb3IiOiAiIzMxODZjYyIsCiAgImZpbGxPcGFjaXR5IjogMC43LAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAib3BhY2l0eSI6IDEuMCwKICAicmFkaXVzIjogNSwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9CiAgICAgICAgICAgICAgICApLmFkZFRvKG1hcF9kNTAwNDE0ZjE3Nzk0YTRhODE1Njk2YmRkNWY4NTg5Yyk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF85ZWJlZjVhYmNiN2M0NzhkYWViMzVlN2UzMmM5ZTc0YiA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF8zNjllOTA5ZmU5ZTQ0MmRjOGM0ZDk0OGIzMzUzNDU5YiA9ICQoJzxkaXYgaWQ9Imh0bWxfMzY5ZTkwOWZlOWU0NDJkYzhjNGQ5NDhiMzM1MzQ1OWIiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPldhc2hpbmd0b24gSGVpZ2h0czwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfOWViZWY1YWJjYjdjNDc4ZGFlYjM1ZTdlMzJjOWU3NGIuc2V0Q29udGVudChodG1sXzM2OWU5MDlmZTllNDQyZGM4YzRkOTQ4YjMzNTM0NTliKTsKICAgICAgICAgICAgCgogICAgICAgICAgICBjaXJjbGVfbWFya2VyX2YyOTMxOGNkNmVjNTRkMGRiMjQyNmRlYzQzODQwZjQ4LmJpbmRQb3B1cChwb3B1cF85ZWJlZjVhYmNiN2M0NzhkYWViMzVlN2UzMmM5ZTc0Yik7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgY2lyY2xlX21hcmtlcl8wNjA2MzAxZjZiZWE0MTc3ODhjMDg5Mjc5MDJlYThjZSA9IEwuY2lyY2xlTWFya2VyKAogICAgICAgICAgICAgICAgWzQwLjg2NzY4Mzk2NDQ5OTE1LC03My45MjEyMTA0MjIwMzg5N10sCiAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICJibHVlIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiB0cnVlLAogICJmaWxsQ29sb3IiOiAiIzMxODZjYyIsCiAgImZpbGxPcGFjaXR5IjogMC43LAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAib3BhY2l0eSI6IDEuMCwKICAicmFkaXVzIjogNSwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9CiAgICAgICAgICAgICAgICApLmFkZFRvKG1hcF9kNTAwNDE0ZjE3Nzk0YTRhODE1Njk2YmRkNWY4NTg5Yyk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF9lYjkxNTM3ODhkOTc0MGEzOTg0N2MwY2YzMGU4YTRlZSA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF81OTEwZDZmZmFmODQ0M2I4YTlhODI1Nzg1M2RhZTNiOCA9ICQoJzxkaXYgaWQ9Imh0bWxfNTkxMGQ2ZmZhZjg0NDNiOGE5YTgyNTc4NTNkYWUzYjgiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPklud29vZDwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfZWI5MTUzNzg4ZDk3NDBhMzk4NDdjMGNmMzBlOGE0ZWUuc2V0Q29udGVudChodG1sXzU5MTBkNmZmYWY4NDQzYjhhOWE4MjU3ODUzZGFlM2I4KTsKICAgICAgICAgICAgCgogICAgICAgICAgICBjaXJjbGVfbWFya2VyXzA2MDYzMDFmNmJlYTQxNzc4OGMwODkyNzkwMmVhOGNlLmJpbmRQb3B1cChwb3B1cF9lYjkxNTM3ODhkOTc0MGEzOTg0N2MwY2YzMGU4YTRlZSk7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgY2lyY2xlX21hcmtlcl8yODk1ZWZhYjIwZmY0OGFhYjFjYTRiNWViNjU0ZWU5MCA9IEwuY2lyY2xlTWFya2VyKAogICAgICAgICAgICAgICAgWzQwLjgyMzYwNDI4NDgxMTkzNSwtNzMuOTQ5Njg3OTE4ODMzNjZdLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiYmx1ZSIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogIiMzMTg2Y2MiLAogICJmaWxsT3BhY2l0eSI6IDAuNywKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDUsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKS5hZGRUbyhtYXBfZDUwMDQxNGYxNzc5NGE0YTgxNTY5NmJkZDVmODU4OWMpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfNzBkYTI0NWM3MGVkNGQ3ZGEyZjRiMGI1OTdhNDgxNjIgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfMGQyY2FmYmEyYTc0NGI5ODljOTEzMzhlOThmNmI1ZTYgPSAkKCc8ZGl2IGlkPSJodG1sXzBkMmNhZmJhMmE3NDRiOTg5YzkxMzM4ZTk4ZjZiNWU2IiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij5IYW1pbHRvbiBIZWlnaHRzPC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF83MGRhMjQ1YzcwZWQ0ZDdkYTJmNGIwYjU5N2E0ODE2Mi5zZXRDb250ZW50KGh0bWxfMGQyY2FmYmEyYTc0NGI5ODljOTEzMzhlOThmNmI1ZTYpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIGNpcmNsZV9tYXJrZXJfMjg5NWVmYWIyMGZmNDhhYWIxY2E0YjVlYjY1NGVlOTAuYmluZFBvcHVwKHBvcHVwXzcwZGEyNDVjNzBlZDRkN2RhMmY0YjBiNTk3YTQ4MTYyKTsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBjaXJjbGVfbWFya2VyXzBkNjEzZDRjZTFhZTRlMTNhYjU5MzVhYTY5ZmEwYzE1ID0gTC5jaXJjbGVNYXJrZXIoCiAgICAgICAgICAgICAgICBbNDAuODE2OTM0NDI5NDk3OCwtNzMuOTU3Mzg1MzkzNTE4OF0sCiAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICJibHVlIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiB0cnVlLAogICJmaWxsQ29sb3IiOiAiIzMxODZjYyIsCiAgImZpbGxPcGFjaXR5IjogMC43LAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAib3BhY2l0eSI6IDEuMCwKICAicmFkaXVzIjogNSwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9CiAgICAgICAgICAgICAgICApLmFkZFRvKG1hcF9kNTAwNDE0ZjE3Nzk0YTRhODE1Njk2YmRkNWY4NTg5Yyk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF9mNzBjZmFjZDc2Njc0OWYyOWU4NjIzYmQxZDAxMjRhMCA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF85MDkwMDBiMTA3OTE0MWEyYmE2ZDI3ODVlMTE1NjI1NiA9ICQoJzxkaXYgaWQ9Imh0bWxfOTA5MDAwYjEwNzkxNDFhMmJhNmQyNzg1ZTExNTYyNTYiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPk1hbmhhdHRhbnZpbGxlPC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF9mNzBjZmFjZDc2Njc0OWYyOWU4NjIzYmQxZDAxMjRhMC5zZXRDb250ZW50KGh0bWxfOTA5MDAwYjEwNzkxNDFhMmJhNmQyNzg1ZTExNTYyNTYpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIGNpcmNsZV9tYXJrZXJfMGQ2MTNkNGNlMWFlNGUxM2FiNTkzNWFhNjlmYTBjMTUuYmluZFBvcHVwKHBvcHVwX2Y3MGNmYWNkNzY2NzQ5ZjI5ZTg2MjNiZDFkMDEyNGEwKTsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBjaXJjbGVfbWFya2VyX2Y4NzZkYzQ0MjMyZjRhZGU5NzQ0MWQwYWUxNzdiYmQxID0gTC5jaXJjbGVNYXJrZXIoCiAgICAgICAgICAgICAgICBbNDAuODE1OTc2MDY3NDI0MTQsLTczLjk0MzIxMTEyNjAzOTA1XSwKICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogImJsdWUiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IHRydWUsCiAgImZpbGxDb2xvciI6ICIjMzE4NmNjIiwKICAiZmlsbE9wYWNpdHkiOiAwLjcsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJvcGFjaXR5IjogMS4wLAogICJyYWRpdXMiOiA1LAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAzCn0KICAgICAgICAgICAgICAgICkuYWRkVG8obWFwX2Q1MDA0MTRmMTc3OTRhNGE4MTU2OTZiZGQ1Zjg1ODljKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwXzMyMGRjZmRhMjM3ODQ5YzhhZDlmNjNkOWU3OGU2ZDRlID0gTC5wb3B1cCh7bWF4V2lkdGg6ICczMDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sXzQ0NDVmY2MxYzYxMTQzYWNhY2I3ZWE1ZTk5NzZmNTNkID0gJCgnPGRpdiBpZD0iaHRtbF80NDQ1ZmNjMWM2MTE0M2FjYWNiN2VhNWU5OTc2ZjUzZCIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+Q2VudHJhbCBIYXJsZW08L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzMyMGRjZmRhMjM3ODQ5YzhhZDlmNjNkOWU3OGU2ZDRlLnNldENvbnRlbnQoaHRtbF80NDQ1ZmNjMWM2MTE0M2FjYWNiN2VhNWU5OTc2ZjUzZCk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl9mODc2ZGM0NDIzMmY0YWRlOTc0NDFkMGFlMTc3YmJkMS5iaW5kUG9wdXAocG9wdXBfMzIwZGNmZGEyMzc4NDljOGFkOWY2M2Q5ZTc4ZTZkNGUpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfODljMTA2YmU5ZjViNDdkYTk2MjJmNGFjNzMwZjM0OTAgPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MC43OTIyNDk0NjY2MzAzMywtNzMuOTQ0MTgyMjMxNDg1MjRdLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiYmx1ZSIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogIiMzMTg2Y2MiLAogICJmaWxsT3BhY2l0eSI6IDAuNywKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDUsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKS5hZGRUbyhtYXBfZDUwMDQxNGYxNzc5NGE0YTgxNTY5NmJkZDVmODU4OWMpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfNjU0MGMwMzZkZTdkNDQ2YWFkYWI0MWIyOGVlZGZkZTEgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfNzA0Njc1MDc4OWNkNGM4YjlhZGM5OTc0YWE1ZjU5OWQgPSAkKCc8ZGl2IGlkPSJodG1sXzcwNDY3NTA3ODljZDRjOGI5YWRjOTk3NGFhNWY1OTlkIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij5FYXN0IEhhcmxlbTwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfNjU0MGMwMzZkZTdkNDQ2YWFkYWI0MWIyOGVlZGZkZTEuc2V0Q29udGVudChodG1sXzcwNDY3NTA3ODljZDRjOGI5YWRjOTk3NGFhNWY1OTlkKTsKICAgICAgICAgICAgCgogICAgICAgICAgICBjaXJjbGVfbWFya2VyXzg5YzEwNmJlOWY1YjQ3ZGE5NjIyZjRhYzczMGYzNDkwLmJpbmRQb3B1cChwb3B1cF82NTQwYzAzNmRlN2Q0NDZhYWRhYjQxYjI4ZWVkZmRlMSk7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgY2lyY2xlX21hcmtlcl9jOWZjMjUwMGVlMzI0Mzg1OWZjMWVlOTRjZTFjYTk4NSA9IEwuY2lyY2xlTWFya2VyKAogICAgICAgICAgICAgICAgWzQwLjc3NTYzODU3MzMwMTgwNSwtNzMuOTYwNTA3NjMxMzVdLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiYmx1ZSIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogIiMzMTg2Y2MiLAogICJmaWxsT3BhY2l0eSI6IDAuNywKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDUsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKS5hZGRUbyhtYXBfZDUwMDQxNGYxNzc5NGE0YTgxNTY5NmJkZDVmODU4OWMpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfOThmOTFmNzgzZTE5NDQzNjk5MDczMmUxZDc5NmQ0YzEgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfYzNjYzUxZmJiMjI4NDk4Y2FiNjczNWY4ZjFmOWMzNTggPSAkKCc8ZGl2IGlkPSJodG1sX2MzY2M1MWZiYjIyODQ5OGNhYjY3MzVmOGYxZjljMzU4IiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij5VcHBlciBFYXN0IFNpZGU8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzk4ZjkxZjc4M2UxOTQ0MzY5OTA3MzJlMWQ3OTZkNGMxLnNldENvbnRlbnQoaHRtbF9jM2NjNTFmYmIyMjg0OThjYWI2NzM1ZjhmMWY5YzM1OCk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl9jOWZjMjUwMGVlMzI0Mzg1OWZjMWVlOTRjZTFjYTk4NS5iaW5kUG9wdXAocG9wdXBfOThmOTFmNzgzZTE5NDQzNjk5MDczMmUxZDc5NmQ0YzEpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfYzY5YmRhNmM0YTU4NDlhYjk2ODBjMTU3YThlOGM4ZmUgPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MC43NzU5Mjk4NDk4ODQ4NzUsLTczLjk0NzExNzg0NDcxODI2XSwKICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogImJsdWUiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IHRydWUsCiAgImZpbGxDb2xvciI6ICIjMzE4NmNjIiwKICAiZmlsbE9wYWNpdHkiOiAwLjcsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJvcGFjaXR5IjogMS4wLAogICJyYWRpdXMiOiA1LAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAzCn0KICAgICAgICAgICAgICAgICkuYWRkVG8obWFwX2Q1MDA0MTRmMTc3OTRhNGE4MTU2OTZiZGQ1Zjg1ODljKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwX2FkMTg1NTY3YzQ0NzQ5NmQ5ZTI2MzFlYzliYjU2OGM2ID0gTC5wb3B1cCh7bWF4V2lkdGg6ICczMDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sXzk2YTZkNzg2MjJiMTRjNDRiYzFmZjBhMjY5ZjJhZDY1ID0gJCgnPGRpdiBpZD0iaHRtbF85NmE2ZDc4NjIyYjE0YzQ0YmMxZmYwYTI2OWYyYWQ2NSIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+WW9ya3ZpbGxlPC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF9hZDE4NTU2N2M0NDc0OTZkOWUyNjMxZWM5YmI1NjhjNi5zZXRDb250ZW50KGh0bWxfOTZhNmQ3ODYyMmIxNGM0NGJjMWZmMGEyNjlmMmFkNjUpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIGNpcmNsZV9tYXJrZXJfYzY5YmRhNmM0YTU4NDlhYjk2ODBjMTU3YThlOGM4ZmUuYmluZFBvcHVwKHBvcHVwX2FkMTg1NTY3YzQ0NzQ5NmQ5ZTI2MzFlYzliYjU2OGM2KTsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBjaXJjbGVfbWFya2VyX2JlOWQ3MDY1OTcxMjQ2OGE4YjQ2MzEzYmYxOGI2OGIwID0gTC5jaXJjbGVNYXJrZXIoCiAgICAgICAgICAgICAgICBbNDAuNzY4MTEyNjU4Mjg3MzMsLTczLjk1ODg1OTY4ODEzNzZdLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiYmx1ZSIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogIiMzMTg2Y2MiLAogICJmaWxsT3BhY2l0eSI6IDAuNywKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDUsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKS5hZGRUbyhtYXBfZDUwMDQxNGYxNzc5NGE0YTgxNTY5NmJkZDVmODU4OWMpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfMDI1NmUxZjE2YzNmNDZhYThjYmIyYmI2NDZjMjQ3MzUgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfMTczYmUyNTgzMTMyNGJhNjg4YTM0OTg5NTYxZTA3ZGYgPSAkKCc8ZGl2IGlkPSJodG1sXzE3M2JlMjU4MzEzMjRiYTY4OGEzNDk4OTU2MWUwN2RmIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij5MZW5veCBIaWxsPC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF8wMjU2ZTFmMTZjM2Y0NmFhOGNiYjJiYjY0NmMyNDczNS5zZXRDb250ZW50KGh0bWxfMTczYmUyNTgzMTMyNGJhNjg4YTM0OTg5NTYxZTA3ZGYpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIGNpcmNsZV9tYXJrZXJfYmU5ZDcwNjU5NzEyNDY4YThiNDYzMTNiZjE4YjY4YjAuYmluZFBvcHVwKHBvcHVwXzAyNTZlMWYxNmMzZjQ2YWE4Y2JiMmJiNjQ2YzI0NzM1KTsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBjaXJjbGVfbWFya2VyXzdmMGIxNjAzZDg5NzQyNjA5MTgwOWVhOWUzMzVkNDEzID0gTC5jaXJjbGVNYXJrZXIoCiAgICAgICAgICAgICAgICBbNDAuNzYyMTU5NjA1NzYyODMsLTczLjk0OTE2NzY5MjI3OTUzXSwKICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogImJsdWUiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IHRydWUsCiAgImZpbGxDb2xvciI6ICIjMzE4NmNjIiwKICAiZmlsbE9wYWNpdHkiOiAwLjcsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJvcGFjaXR5IjogMS4wLAogICJyYWRpdXMiOiA1LAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAzCn0KICAgICAgICAgICAgICAgICkuYWRkVG8obWFwX2Q1MDA0MTRmMTc3OTRhNGE4MTU2OTZiZGQ1Zjg1ODljKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwX2IzZDEzOTU4NWQ3NDQzZmQ4MGUxMDZjMGIzOTM3MTM2ID0gTC5wb3B1cCh7bWF4V2lkdGg6ICczMDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sX2JmYzI0YjRmMThhOTRlZmI4MDcxZTI4YTIyOWFiNzZiID0gJCgnPGRpdiBpZD0iaHRtbF9iZmMyNGI0ZjE4YTk0ZWZiODA3MWUyOGEyMjlhYjc2YiIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+Um9vc2V2ZWx0IElzbGFuZDwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfYjNkMTM5NTg1ZDc0NDNmZDgwZTEwNmMwYjM5MzcxMzYuc2V0Q29udGVudChodG1sX2JmYzI0YjRmMThhOTRlZmI4MDcxZTI4YTIyOWFiNzZiKTsKICAgICAgICAgICAgCgogICAgICAgICAgICBjaXJjbGVfbWFya2VyXzdmMGIxNjAzZDg5NzQyNjA5MTgwOWVhOWUzMzVkNDEzLmJpbmRQb3B1cChwb3B1cF9iM2QxMzk1ODVkNzQ0M2ZkODBlMTA2YzBiMzkzNzEzNik7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgY2lyY2xlX21hcmtlcl8zMjhkM2I2OGJiNGU0ZmYzODk3MDg5NWNlNjBhYTA2MiA9IEwuY2lyY2xlTWFya2VyKAogICAgICAgICAgICAgICAgWzQwLjc4NzY1Nzk5ODUzNDg1NCwtNzMuOTc3MDU5MjM2MzA2MDNdLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiYmx1ZSIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogIiMzMTg2Y2MiLAogICJmaWxsT3BhY2l0eSI6IDAuNywKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDUsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKS5hZGRUbyhtYXBfZDUwMDQxNGYxNzc5NGE0YTgxNTY5NmJkZDVmODU4OWMpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfMTllZDU3ZTVmYjAxNDc4YmFlOTFmOGY1NjI3YWFmODYgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfYzZlZDEwNTkxZDZkNDM4YmI1Yzk2NjNlZDcwNWU1ZGYgPSAkKCc8ZGl2IGlkPSJodG1sX2M2ZWQxMDU5MWQ2ZDQzOGJiNWM5NjYzZWQ3MDVlNWRmIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij5VcHBlciBXZXN0IFNpZGU8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzE5ZWQ1N2U1ZmIwMTQ3OGJhZTkxZjhmNTYyN2FhZjg2LnNldENvbnRlbnQoaHRtbF9jNmVkMTA1OTFkNmQ0MzhiYjVjOTY2M2VkNzA1ZTVkZik7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl8zMjhkM2I2OGJiNGU0ZmYzODk3MDg5NWNlNjBhYTA2Mi5iaW5kUG9wdXAocG9wdXBfMTllZDU3ZTVmYjAxNDc4YmFlOTFmOGY1NjI3YWFmODYpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfMDdiZGM5NThhOTBhNDllMzgxYWFjYTUyZjk0ZDk4MzYgPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MC43NzM1Mjg4ODk0MjE2NiwtNzMuOTg1MzM3NzcwMDEyNjJdLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiYmx1ZSIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogIiMzMTg2Y2MiLAogICJmaWxsT3BhY2l0eSI6IDAuNywKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDUsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKS5hZGRUbyhtYXBfZDUwMDQxNGYxNzc5NGE0YTgxNTY5NmJkZDVmODU4OWMpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfZmM2YTFjMWZiNzliNGY3MmJlZGU2MjI3NjdkNTljODYgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfMjhmMjhkZWJiNmJmNDY5OWE3Y2FhNzg4YjA0MWI2MmIgPSAkKCc8ZGl2IGlkPSJodG1sXzI4ZjI4ZGViYjZiZjQ2OTlhN2NhYTc4OGIwNDFiNjJiIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij5MaW5jb2xuIFNxdWFyZTwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfZmM2YTFjMWZiNzliNGY3MmJlZGU2MjI3NjdkNTljODYuc2V0Q29udGVudChodG1sXzI4ZjI4ZGViYjZiZjQ2OTlhN2NhYTc4OGIwNDFiNjJiKTsKICAgICAgICAgICAgCgogICAgICAgICAgICBjaXJjbGVfbWFya2VyXzA3YmRjOTU4YTkwYTQ5ZTM4MWFhY2E1MmY5NGQ5ODM2LmJpbmRQb3B1cChwb3B1cF9mYzZhMWMxZmI3OWI0ZjcyYmVkZTYyMjc2N2Q1OWM4Nik7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgY2lyY2xlX21hcmtlcl9hMmM0M2ViYjgwMmY0NGM1ODM5M2EyMDFiMTA2ZGNhNSA9IEwuY2lyY2xlTWFya2VyKAogICAgICAgICAgICAgICAgWzQwLjc1OTEwMDg5MTQ2MjEyLC03My45OTYxMTkzNjMwOTQ3OV0sCiAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICJibHVlIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiB0cnVlLAogICJmaWxsQ29sb3IiOiAiIzMxODZjYyIsCiAgImZpbGxPcGFjaXR5IjogMC43LAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAib3BhY2l0eSI6IDEuMCwKICAicmFkaXVzIjogNSwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9CiAgICAgICAgICAgICAgICApLmFkZFRvKG1hcF9kNTAwNDE0ZjE3Nzk0YTRhODE1Njk2YmRkNWY4NTg5Yyk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF8zNzMzMDBjMTQ1OGQ0N2JmODM3ZmU4ZDQ4MGRjNGZjYiA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF82NWY5OTcxOTMxOWI0ZGY4OGMwODQ5YjVjMGYxNmUwZiA9ICQoJzxkaXYgaWQ9Imh0bWxfNjVmOTk3MTkzMTliNGRmODhjMDg0OWI1YzBmMTZlMGYiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPkNsaW50b248L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzM3MzMwMGMxNDU4ZDQ3YmY4MzdmZThkNDgwZGM0ZmNiLnNldENvbnRlbnQoaHRtbF82NWY5OTcxOTMxOWI0ZGY4OGMwODQ5YjVjMGYxNmUwZik7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl9hMmM0M2ViYjgwMmY0NGM1ODM5M2EyMDFiMTA2ZGNhNS5iaW5kUG9wdXAocG9wdXBfMzczMzAwYzE0NThkNDdiZjgzN2ZlOGQ0ODBkYzRmY2IpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfOTIwNzY1ZWQ4MDVmNGI0MGI0ZjMwNWYzZjg2ZjdmNDkgPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MC43NTQ2OTExMDI3MDYyMywtNzMuOTgxNjY4ODI3MzAzMDRdLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiYmx1ZSIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogIiMzMTg2Y2MiLAogICJmaWxsT3BhY2l0eSI6IDAuNywKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDUsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKS5hZGRUbyhtYXBfZDUwMDQxNGYxNzc5NGE0YTgxNTY5NmJkZDVmODU4OWMpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfMmFjNWVmODc3ZDk2NDQ1N2FmZGQ0MWY0NDIwOGE1ZjMgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfYTQ0MWFkYTQ2YjE4NGI1NWIzNmM5NjQ5NmYxN2U0OTAgPSAkKCc8ZGl2IGlkPSJodG1sX2E0NDFhZGE0NmIxODRiNTViMzZjOTY0OTZmMTdlNDkwIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij5NaWR0b3duPC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF8yYWM1ZWY4NzdkOTY0NDU3YWZkZDQxZjQ0MjA4YTVmMy5zZXRDb250ZW50KGh0bWxfYTQ0MWFkYTQ2YjE4NGI1NWIzNmM5NjQ5NmYxN2U0OTApOwogICAgICAgICAgICAKCiAgICAgICAgICAgIGNpcmNsZV9tYXJrZXJfOTIwNzY1ZWQ4MDVmNGI0MGI0ZjMwNWYzZjg2ZjdmNDkuYmluZFBvcHVwKHBvcHVwXzJhYzVlZjg3N2Q5NjQ0NTdhZmRkNDFmNDQyMDhhNWYzKTsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBjaXJjbGVfbWFya2VyXzlmZDY0OWFjYjdiZjQ2NWM4NmE2MmY4NTM3NzE5NGU5ID0gTC5jaXJjbGVNYXJrZXIoCiAgICAgICAgICAgICAgICBbNDAuNzQ4MzAzMDc3MjUyMTc0LC03My45NzgzMzIwNzkyNDEyN10sCiAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICJibHVlIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiB0cnVlLAogICJmaWxsQ29sb3IiOiAiIzMxODZjYyIsCiAgImZpbGxPcGFjaXR5IjogMC43LAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAib3BhY2l0eSI6IDEuMCwKICAicmFkaXVzIjogNSwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9CiAgICAgICAgICAgICAgICApLmFkZFRvKG1hcF9kNTAwNDE0ZjE3Nzk0YTRhODE1Njk2YmRkNWY4NTg5Yyk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF85ZTgzYTJiZDBjNWI0Y2NmYTYyOTcxYjJmYWNkNjc0NSA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF83YTk0ODg1MjYyN2U0ZDlmOTU1MjNhMjBhYTA0ZmJhYiA9ICQoJzxkaXYgaWQ9Imh0bWxfN2E5NDg4NTI2MjdlNGQ5Zjk1NTIzYTIwYWEwNGZiYWIiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPk11cnJheSBIaWxsPC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF85ZTgzYTJiZDBjNWI0Y2NmYTYyOTcxYjJmYWNkNjc0NS5zZXRDb250ZW50KGh0bWxfN2E5NDg4NTI2MjdlNGQ5Zjk1NTIzYTIwYWEwNGZiYWIpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIGNpcmNsZV9tYXJrZXJfOWZkNjQ5YWNiN2JmNDY1Yzg2YTYyZjg1Mzc3MTk0ZTkuYmluZFBvcHVwKHBvcHVwXzllODNhMmJkMGM1YjRjY2ZhNjI5NzFiMmZhY2Q2NzQ1KTsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBjaXJjbGVfbWFya2VyXzkxNTBiYWZhZmVhYjQ0NDlhODZhNjdiNDYwYjI1OGIwID0gTC5jaXJjbGVNYXJrZXIoCiAgICAgICAgICAgICAgICBbNDAuNzQ0MDM0NzA2NzQ3OTc1LC03NC4wMDMxMTYzMzQ3MjgxM10sCiAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICJibHVlIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiB0cnVlLAogICJmaWxsQ29sb3IiOiAiIzMxODZjYyIsCiAgImZpbGxPcGFjaXR5IjogMC43LAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAib3BhY2l0eSI6IDEuMCwKICAicmFkaXVzIjogNSwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9CiAgICAgICAgICAgICAgICApLmFkZFRvKG1hcF9kNTAwNDE0ZjE3Nzk0YTRhODE1Njk2YmRkNWY4NTg5Yyk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF9hZGIzYzU0NzhmNjM0MDQ5ODYzNjNiMmM3NzZiNTFmOSA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF81NjcxZjBjOThlM2I0ZGM1YjE4MDYwYjQyNzhhMDNkZCA9ICQoJzxkaXYgaWQ9Imh0bWxfNTY3MWYwYzk4ZTNiNGRjNWIxODA2MGI0Mjc4YTAzZGQiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPkNoZWxzZWE8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwX2FkYjNjNTQ3OGY2MzQwNDk4NjM2M2IyYzc3NmI1MWY5LnNldENvbnRlbnQoaHRtbF81NjcxZjBjOThlM2I0ZGM1YjE4MDYwYjQyNzhhMDNkZCk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl85MTUwYmFmYWZlYWI0NDQ5YTg2YTY3YjQ2MGIyNThiMC5iaW5kUG9wdXAocG9wdXBfYWRiM2M1NDc4ZjYzNDA0OTg2MzYzYjJjNzc2YjUxZjkpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfYzU3MWVkZjIyOWY4NDlhM2IwNzJmN2UwZjhiYzMzMDkgPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MC43MjY5MzI4ODUzNjEyOCwtNzMuOTk5OTE0MDI5NDU5MDJdLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiYmx1ZSIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogIiMzMTg2Y2MiLAogICJmaWxsT3BhY2l0eSI6IDAuNywKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDUsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKS5hZGRUbyhtYXBfZDUwMDQxNGYxNzc5NGE0YTgxNTY5NmJkZDVmODU4OWMpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfNjM3ZGE1MWY2MGFhNGU5ZDlmN2U4MTY1OTE2NTQzZTkgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfYzQzMThmMTg3YWNiNGQ2Y2FlOTBjYWVkMGNiMzQ5MTUgPSAkKCc8ZGl2IGlkPSJodG1sX2M0MzE4ZjE4N2FjYjRkNmNhZTkwY2FlZDBjYjM0OTE1IiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij5HcmVlbndpY2ggVmlsbGFnZTwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfNjM3ZGE1MWY2MGFhNGU5ZDlmN2U4MTY1OTE2NTQzZTkuc2V0Q29udGVudChodG1sX2M0MzE4ZjE4N2FjYjRkNmNhZTkwY2FlZDBjYjM0OTE1KTsKICAgICAgICAgICAgCgogICAgICAgICAgICBjaXJjbGVfbWFya2VyX2M1NzFlZGYyMjlmODQ5YTNiMDcyZjdlMGY4YmMzMzA5LmJpbmRQb3B1cChwb3B1cF82MzdkYTUxZjYwYWE0ZTlkOWY3ZTgxNjU5MTY1NDNlOSk7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgY2lyY2xlX21hcmtlcl81MmU5N2NiM2QzZTc0MmE5ODUxOWY1OTFlM2Y1YjUxMCA9IEwuY2lyY2xlTWFya2VyKAogICAgICAgICAgICAgICAgWzQwLjcyNzg0Njc3NzI3MDI0NCwtNzMuOTgyMjI2MTY1MDY0MTZdLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiYmx1ZSIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogIiMzMTg2Y2MiLAogICJmaWxsT3BhY2l0eSI6IDAuNywKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDUsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKS5hZGRUbyhtYXBfZDUwMDQxNGYxNzc5NGE0YTgxNTY5NmJkZDVmODU4OWMpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfOTdjZTA0ODhlYzFkNDhiZmExNWM4NDQyZWJkNWMxMGEgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfMDY1MzRlMDVmYWRkNGNlODgyODc5ODQxMjlhNjIyZTEgPSAkKCc8ZGl2IGlkPSJodG1sXzA2NTM0ZTA1ZmFkZDRjZTg4Mjg3OTg0MTI5YTYyMmUxIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij5FYXN0IFZpbGxhZ2U8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzk3Y2UwNDg4ZWMxZDQ4YmZhMTVjODQ0MmViZDVjMTBhLnNldENvbnRlbnQoaHRtbF8wNjUzNGUwNWZhZGQ0Y2U4ODI4Nzk4NDEyOWE2MjJlMSk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl81MmU5N2NiM2QzZTc0MmE5ODUxOWY1OTFlM2Y1YjUxMC5iaW5kUG9wdXAocG9wdXBfOTdjZTA0ODhlYzFkNDhiZmExNWM4NDQyZWJkNWMxMGEpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfZTNhODlkZmI4ODVmNDc0MWE5ODlkMzk4NGZmYWJkMDIgPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MC43MTc4MDY3NDg5Mjc2NSwtNzMuOTgwODkwMzE5OTkyOTFdLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiYmx1ZSIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogIiMzMTg2Y2MiLAogICJmaWxsT3BhY2l0eSI6IDAuNywKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDUsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKS5hZGRUbyhtYXBfZDUwMDQxNGYxNzc5NGE0YTgxNTY5NmJkZDVmODU4OWMpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfY2NlNzg4NWI3MjFiNDFiMGJkM2JjNzFhODUzNTE5NmQgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfOGFiNDI4MmMyN2M1NGNiNWFjMDgwMzQ4ZGEzYzFiYmMgPSAkKCc8ZGl2IGlkPSJodG1sXzhhYjQyODJjMjdjNTRjYjVhYzA4MDM0OGRhM2MxYmJjIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij5Mb3dlciBFYXN0IFNpZGU8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwX2NjZTc4ODViNzIxYjQxYjBiZDNiYzcxYTg1MzUxOTZkLnNldENvbnRlbnQoaHRtbF84YWI0MjgyYzI3YzU0Y2I1YWMwODAzNDhkYTNjMWJiYyk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl9lM2E4OWRmYjg4NWY0NzQxYTk4OWQzOTg0ZmZhYmQwMi5iaW5kUG9wdXAocG9wdXBfY2NlNzg4NWI3MjFiNDFiMGJkM2JjNzFhODUzNTE5NmQpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfOGI1OTdiM2ZhNTNiNGZkOWIxYWI1NjZjNzJhZWY5ZTIgPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MC43MjE1MjE5Njc0NDMyMTYsLTc0LjAxMDY4MzI4NTU5MDg3XSwKICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogImJsdWUiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IHRydWUsCiAgImZpbGxDb2xvciI6ICIjMzE4NmNjIiwKICAiZmlsbE9wYWNpdHkiOiAwLjcsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJvcGFjaXR5IjogMS4wLAogICJyYWRpdXMiOiA1LAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAzCn0KICAgICAgICAgICAgICAgICkuYWRkVG8obWFwX2Q1MDA0MTRmMTc3OTRhNGE4MTU2OTZiZGQ1Zjg1ODljKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwX2RlY2MwODYzYjllOTRhYzBiYzkwZjY1ZmY0ZTMwNTU4ID0gTC5wb3B1cCh7bWF4V2lkdGg6ICczMDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sX2RmYjI5YjhkYjgxYzQ3YzJhYmYxNDk1ODM2NzM1NDY1ID0gJCgnPGRpdiBpZD0iaHRtbF9kZmIyOWI4ZGI4MWM0N2MyYWJmMTQ5NTgzNjczNTQ2NSIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+VHJpYmVjYTwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfZGVjYzA4NjNiOWU5NGFjMGJjOTBmNjVmZjRlMzA1NTguc2V0Q29udGVudChodG1sX2RmYjI5YjhkYjgxYzQ3YzJhYmYxNDk1ODM2NzM1NDY1KTsKICAgICAgICAgICAgCgogICAgICAgICAgICBjaXJjbGVfbWFya2VyXzhiNTk3YjNmYTUzYjRmZDliMWFiNTY2YzcyYWVmOWUyLmJpbmRQb3B1cChwb3B1cF9kZWNjMDg2M2I5ZTk0YWMwYmM5MGY2NWZmNGUzMDU1OCk7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgY2lyY2xlX21hcmtlcl9hNDZhZWU2ZTIwNjc0YTk5OTU1ODE3MzUxYTUyYTlmMyA9IEwuY2lyY2xlTWFya2VyKAogICAgICAgICAgICAgICAgWzQwLjcxOTMyMzc5Mzk1OTA3LC03My45OTczMDQ2NzIwODA3M10sCiAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICJibHVlIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiB0cnVlLAogICJmaWxsQ29sb3IiOiAiIzMxODZjYyIsCiAgImZpbGxPcGFjaXR5IjogMC43LAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAib3BhY2l0eSI6IDEuMCwKICAicmFkaXVzIjogNSwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9CiAgICAgICAgICAgICAgICApLmFkZFRvKG1hcF9kNTAwNDE0ZjE3Nzk0YTRhODE1Njk2YmRkNWY4NTg5Yyk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF81NjZkNTY5NDljYzI0NWM5YTYwNjJkOTcxZTE4YzI3MSA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF9kNTE3NTMyYzM3YTg0OWY2OGFmNGJmYjllOGIwYTdmYiA9ICQoJzxkaXYgaWQ9Imh0bWxfZDUxNzUzMmMzN2E4NDlmNjhhZjRiZmI5ZThiMGE3ZmIiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPkxpdHRsZSBJdGFseTwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfNTY2ZDU2OTQ5Y2MyNDVjOWE2MDYyZDk3MWUxOGMyNzEuc2V0Q29udGVudChodG1sX2Q1MTc1MzJjMzdhODQ5ZjY4YWY0YmZiOWU4YjBhN2ZiKTsKICAgICAgICAgICAgCgogICAgICAgICAgICBjaXJjbGVfbWFya2VyX2E0NmFlZTZlMjA2NzRhOTk5NTU4MTczNTFhNTJhOWYzLmJpbmRQb3B1cChwb3B1cF81NjZkNTY5NDljYzI0NWM5YTYwNjJkOTcxZTE4YzI3MSk7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgY2lyY2xlX21hcmtlcl8zNzBmNWQ0NWVkMTE0YzZjOTFlNjcwNzFhOTc5N2ZhYSA9IEwuY2lyY2xlTWFya2VyKAogICAgICAgICAgICAgICAgWzQwLjcyMjE4Mzg0MTMxNzk0LC03NC4wMDA2NTY2Njk1OTc1OV0sCiAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICJibHVlIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiB0cnVlLAogICJmaWxsQ29sb3IiOiAiIzMxODZjYyIsCiAgImZpbGxPcGFjaXR5IjogMC43LAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAib3BhY2l0eSI6IDEuMCwKICAicmFkaXVzIjogNSwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9CiAgICAgICAgICAgICAgICApLmFkZFRvKG1hcF9kNTAwNDE0ZjE3Nzk0YTRhODE1Njk2YmRkNWY4NTg5Yyk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF9lNWRhYzQzYjUxZDQ0MmM3ODZhNzIxMDUyYzllZTZmNyA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF8xMGU3MWM5MWJhYmM0MmY1OTRmMWYyMmRkZmYxYmViNSA9ICQoJzxkaXYgaWQ9Imh0bWxfMTBlNzFjOTFiYWJjNDJmNTk0ZjFmMjJkZGZmMWJlYjUiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPlNvaG88L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwX2U1ZGFjNDNiNTFkNDQyYzc4NmE3MjEwNTJjOWVlNmY3LnNldENvbnRlbnQoaHRtbF8xMGU3MWM5MWJhYmM0MmY1OTRmMWYyMmRkZmYxYmViNSk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl8zNzBmNWQ0NWVkMTE0YzZjOTFlNjcwNzFhOTc5N2ZhYS5iaW5kUG9wdXAocG9wdXBfZTVkYWM0M2I1MWQ0NDJjNzg2YTcyMTA1MmM5ZWU2ZjcpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfMmJkNmU2Nzk5ZWI4NGRkMjkxMDIzOWZmMjEzMDlhZGIgPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MC43MzQ0MzM5MzU3MjQzNCwtNzQuMDA2MTc5OTgxMjY4MTJdLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiYmx1ZSIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogIiMzMTg2Y2MiLAogICJmaWxsT3BhY2l0eSI6IDAuNywKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDUsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKS5hZGRUbyhtYXBfZDUwMDQxNGYxNzc5NGE0YTgxNTY5NmJkZDVmODU4OWMpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfYTJmYTc4MTRmYmI4NGY5ZmJlYTRmZmY3NzY3NGE3ZTAgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfMDM2M2M0OWFiNjVmNDE4ZDlhYzNhNjM0NjAyYzZkYWUgPSAkKCc8ZGl2IGlkPSJodG1sXzAzNjNjNDlhYjY1ZjQxOGQ5YWMzYTYzNDYwMmM2ZGFlIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij5XZXN0IFZpbGxhZ2U8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwX2EyZmE3ODE0ZmJiODRmOWZiZWE0ZmZmNzc2NzRhN2UwLnNldENvbnRlbnQoaHRtbF8wMzYzYzQ5YWI2NWY0MThkOWFjM2E2MzQ2MDJjNmRhZSk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl8yYmQ2ZTY3OTllYjg0ZGQyOTEwMjM5ZmYyMTMwOWFkYi5iaW5kUG9wdXAocG9wdXBfYTJmYTc4MTRmYmI4NGY5ZmJlYTRmZmY3NzY3NGE3ZTApOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfMDIwOWU2Y2Q3M2ZkNDIxM2JlOGUxZmUwOWVkMzIyYmIgPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MC43OTczMDcwNDE3MDI4NjUsLTczLjk2NDI4NjE3NzQwNjU1XSwKICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogImJsdWUiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IHRydWUsCiAgImZpbGxDb2xvciI6ICIjMzE4NmNjIiwKICAiZmlsbE9wYWNpdHkiOiAwLjcsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJvcGFjaXR5IjogMS4wLAogICJyYWRpdXMiOiA1LAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAzCn0KICAgICAgICAgICAgICAgICkuYWRkVG8obWFwX2Q1MDA0MTRmMTc3OTRhNGE4MTU2OTZiZGQ1Zjg1ODljKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwXzA4NjBhZjJiYWQzNTQyODA5ZjM2ZGE3NGRiZWU0NDAxID0gTC5wb3B1cCh7bWF4V2lkdGg6ICczMDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sXzk4YmMyMGYyNDI5ZDQ2ODI4NGY2MDMwOTAyN2U1M2E5ID0gJCgnPGRpdiBpZD0iaHRtbF85OGJjMjBmMjQyOWQ0NjgyODRmNjAzMDkwMjdlNTNhOSIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+TWFuaGF0dGFuIFZhbGxleTwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfMDg2MGFmMmJhZDM1NDI4MDlmMzZkYTc0ZGJlZTQ0MDEuc2V0Q29udGVudChodG1sXzk4YmMyMGYyNDI5ZDQ2ODI4NGY2MDMwOTAyN2U1M2E5KTsKICAgICAgICAgICAgCgogICAgICAgICAgICBjaXJjbGVfbWFya2VyXzAyMDllNmNkNzNmZDQyMTNiZThlMWZlMDllZDMyMmJiLmJpbmRQb3B1cChwb3B1cF8wODYwYWYyYmFkMzU0MjgwOWYzNmRhNzRkYmVlNDQwMSk7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgY2lyY2xlX21hcmtlcl9kYzJmNDFhZGQyYmQ0ZjdkYjM0ZmQzNWU4M2ZjZWRjNSA9IEwuY2lyY2xlTWFya2VyKAogICAgICAgICAgICAgICAgWzQwLjgwNzk5OTczODE2NTgyNiwtNzMuOTYzODk2Mjc5MDUzMzJdLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiYmx1ZSIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogIiMzMTg2Y2MiLAogICJmaWxsT3BhY2l0eSI6IDAuNywKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDUsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKS5hZGRUbyhtYXBfZDUwMDQxNGYxNzc5NGE0YTgxNTY5NmJkZDVmODU4OWMpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfZmY4NWM5ODQ4MWY2NGE4NmFmNGY4YmMwZjI3OWIyOGYgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfMDYwNGUxZTgxOWM3NDY2Yzk3YWNlY2IyMDFmZDkxMDEgPSAkKCc8ZGl2IGlkPSJodG1sXzA2MDRlMWU4MTljNzQ2NmM5N2FjZWNiMjAxZmQ5MTAxIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij5Nb3JuaW5nc2lkZSBIZWlnaHRzPC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF9mZjg1Yzk4NDgxZjY0YTg2YWY0ZjhiYzBmMjc5YjI4Zi5zZXRDb250ZW50KGh0bWxfMDYwNGUxZTgxOWM3NDY2Yzk3YWNlY2IyMDFmZDkxMDEpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIGNpcmNsZV9tYXJrZXJfZGMyZjQxYWRkMmJkNGY3ZGIzNGZkMzVlODNmY2VkYzUuYmluZFBvcHVwKHBvcHVwX2ZmODVjOTg0ODFmNjRhODZhZjRmOGJjMGYyNzliMjhmKTsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBjaXJjbGVfbWFya2VyXzViMTlhOTMwZmQxZjQwNWQ5MmNhZGFhNWFhNDIzOWMyID0gTC5jaXJjbGVNYXJrZXIoCiAgICAgICAgICAgICAgICBbNDAuNzM3MjA5ODMyNzE1LC03My45ODEzNzU5NDgzMzU0MV0sCiAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICJibHVlIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiB0cnVlLAogICJmaWxsQ29sb3IiOiAiIzMxODZjYyIsCiAgImZpbGxPcGFjaXR5IjogMC43LAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAib3BhY2l0eSI6IDEuMCwKICAicmFkaXVzIjogNSwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9CiAgICAgICAgICAgICAgICApLmFkZFRvKG1hcF9kNTAwNDE0ZjE3Nzk0YTRhODE1Njk2YmRkNWY4NTg5Yyk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF82YTkyNzg5NzM3ZDQ0YmQ2YWJmZDIxZGE1MmM2NWRiYiA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF9jMzkyN2ZhZTM5ZTg0NjY0YWE1MDRjNTE5MmQ4Y2Y3MSA9ICQoJzxkaXYgaWQ9Imh0bWxfYzM5MjdmYWUzOWU4NDY2NGFhNTA0YzUxOTJkOGNmNzEiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPkdyYW1lcmN5PC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF82YTkyNzg5NzM3ZDQ0YmQ2YWJmZDIxZGE1MmM2NWRiYi5zZXRDb250ZW50KGh0bWxfYzM5MjdmYWUzOWU4NDY2NGFhNTA0YzUxOTJkOGNmNzEpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIGNpcmNsZV9tYXJrZXJfNWIxOWE5MzBmZDFmNDA1ZDkyY2FkYWE1YWE0MjM5YzIuYmluZFBvcHVwKHBvcHVwXzZhOTI3ODk3MzdkNDRiZDZhYmZkMjFkYTUyYzY1ZGJiKTsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBjaXJjbGVfbWFya2VyX2Y0ZWZhODE1Y2U4YTQ2ZTM5Yzk1N2Q4NmMxMDUyOTNiID0gTC5jaXJjbGVNYXJrZXIoCiAgICAgICAgICAgICAgICBbNDAuNzExOTMxOTgzOTQ1NjUsLTc0LjAxNjg2OTMwNTA4NjE3XSwKICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogImJsdWUiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IHRydWUsCiAgImZpbGxDb2xvciI6ICIjMzE4NmNjIiwKICAiZmlsbE9wYWNpdHkiOiAwLjcsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJvcGFjaXR5IjogMS4wLAogICJyYWRpdXMiOiA1LAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAzCn0KICAgICAgICAgICAgICAgICkuYWRkVG8obWFwX2Q1MDA0MTRmMTc3OTRhNGE4MTU2OTZiZGQ1Zjg1ODljKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwXzNjNmNiZjUyOTgzNTRjOGU5OWQxNTMxOWYxM2MyYTA3ID0gTC5wb3B1cCh7bWF4V2lkdGg6ICczMDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sXzY2MjQzOTEzNjYyMjQ5ZjM4MGEzOWE3MGFhN2U1OTI4ID0gJCgnPGRpdiBpZD0iaHRtbF82NjI0MzkxMzY2MjI0OWYzODBhMzlhNzBhYTdlNTkyOCIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+QmF0dGVyeSBQYXJrIENpdHk8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzNjNmNiZjUyOTgzNTRjOGU5OWQxNTMxOWYxM2MyYTA3LnNldENvbnRlbnQoaHRtbF82NjI0MzkxMzY2MjI0OWYzODBhMzlhNzBhYTdlNTkyOCk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl9mNGVmYTgxNWNlOGE0NmUzOWM5NTdkODZjMTA1MjkzYi5iaW5kUG9wdXAocG9wdXBfM2M2Y2JmNTI5ODM1NGM4ZTk5ZDE1MzE5ZjEzYzJhMDcpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfOTMzZTYxZDdjODY1NDRlOTg2MDYxODRlOGU4YmM5MDQgPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MC43MDcxMDcxMDcyNzA0OCwtNzQuMDEwNjY1NDQ1MjEyN10sCiAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICJibHVlIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiB0cnVlLAogICJmaWxsQ29sb3IiOiAiIzMxODZjYyIsCiAgImZpbGxPcGFjaXR5IjogMC43LAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAib3BhY2l0eSI6IDEuMCwKICAicmFkaXVzIjogNSwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9CiAgICAgICAgICAgICAgICApLmFkZFRvKG1hcF9kNTAwNDE0ZjE3Nzk0YTRhODE1Njk2YmRkNWY4NTg5Yyk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF9hMzhhNjU3NDBlZTY0MjkzODYzNDQ3N2QxNGQ2Y2U5MyA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF9iN2ZmNGQwYjEzNWU0YTQyYjQ1ZTYwNDA4MmYwZTI4NSA9ICQoJzxkaXYgaWQ9Imh0bWxfYjdmZjRkMGIxMzVlNGE0MmI0NWU2MDQwODJmMGUyODUiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPkZpbmFuY2lhbCBEaXN0cmljdDwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfYTM4YTY1NzQwZWU2NDI5Mzg2MzQ0NzdkMTRkNmNlOTMuc2V0Q29udGVudChodG1sX2I3ZmY0ZDBiMTM1ZTRhNDJiNDVlNjA0MDgyZjBlMjg1KTsKICAgICAgICAgICAgCgogICAgICAgICAgICBjaXJjbGVfbWFya2VyXzkzM2U2MWQ3Yzg2NTQ0ZTk4NjA2MTg0ZThlOGJjOTA0LmJpbmRQb3B1cChwb3B1cF9hMzhhNjU3NDBlZTY0MjkzODYzNDQ3N2QxNGQ2Y2U5Myk7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgY2lyY2xlX21hcmtlcl83MWJiN2M1M2Q5ZTQ0MWFhOGM2YjIzMmQ4NTlmOWM3ZCA9IEwuY2lyY2xlTWFya2VyKAogICAgICAgICAgICAgICAgWzQwLjc2ODUwODU5MzM1NDkyLC03My45MTU2NTM3NDMwNDIzNF0sCiAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICJibHVlIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiB0cnVlLAogICJmaWxsQ29sb3IiOiAiIzMxODZjYyIsCiAgImZpbGxPcGFjaXR5IjogMC43LAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAib3BhY2l0eSI6IDEuMCwKICAicmFkaXVzIjogNSwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9CiAgICAgICAgICAgICAgICApLmFkZFRvKG1hcF9kNTAwNDE0ZjE3Nzk0YTRhODE1Njk2YmRkNWY4NTg5Yyk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF82YmY0NjRhMmY2NTk0NzVhOTFmYWUwNzZkZDU1OTVhZSA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF80NDVkOWVlMTBjOTA0N2VmYjc5ODBjNzM2OTc2ZGZiNSA9ICQoJzxkaXYgaWQ9Imh0bWxfNDQ1ZDllZTEwYzkwNDdlZmI3OTgwYzczNjk3NmRmYjUiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPkFzdG9yaWE8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzZiZjQ2NGEyZjY1OTQ3NWE5MWZhZTA3NmRkNTU5NWFlLnNldENvbnRlbnQoaHRtbF80NDVkOWVlMTBjOTA0N2VmYjc5ODBjNzM2OTc2ZGZiNSk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl83MWJiN2M1M2Q5ZTQ0MWFhOGM2YjIzMmQ4NTlmOWM3ZC5iaW5kUG9wdXAocG9wdXBfNmJmNDY0YTJmNjU5NDc1YTkxZmFlMDc2ZGQ1NTk1YWUpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfMzI3ZmVjMmFjMTQ2NGY1YmJhMDQ0YmYxMjBkMDJiYWEgPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MC43NDYzNDkwODg2MDIyMiwtNzMuOTAxODQxNjY4MzgyODRdLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiYmx1ZSIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogIiMzMTg2Y2MiLAogICJmaWxsT3BhY2l0eSI6IDAuNywKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDUsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKS5hZGRUbyhtYXBfZDUwMDQxNGYxNzc5NGE0YTgxNTY5NmJkZDVmODU4OWMpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfOTAyYzI4YjBiOTAzNDdhZGJlZTRjNjJiNDYwMDk4NDYgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfNDU5YTBiMGEyMjJmNGRhMGExYWUxYWY2Y2UxMjhiMDYgPSAkKCc8ZGl2IGlkPSJodG1sXzQ1OWEwYjBhMjIyZjRkYTBhMWFlMWFmNmNlMTI4YjA2IiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij5Xb29kc2lkZTwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfOTAyYzI4YjBiOTAzNDdhZGJlZTRjNjJiNDYwMDk4NDYuc2V0Q29udGVudChodG1sXzQ1OWEwYjBhMjIyZjRkYTBhMWFlMWFmNmNlMTI4YjA2KTsKICAgICAgICAgICAgCgogICAgICAgICAgICBjaXJjbGVfbWFya2VyXzMyN2ZlYzJhYzE0NjRmNWJiYTA0NGJmMTIwZDAyYmFhLmJpbmRQb3B1cChwb3B1cF85MDJjMjhiMGI5MDM0N2FkYmVlNGM2MmI0NjAwOTg0Nik7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgY2lyY2xlX21hcmtlcl81MTk0NjliNDlhZTQ0NmZmOTkyMTVlYTBkOGI4MGE4YSA9IEwuY2lyY2xlTWFya2VyKAogICAgICAgICAgICAgICAgWzQwLjc1MTk4MTM4MDA3MzY3LC03My44ODI4MjEwOTE2NDM2NV0sCiAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICJibHVlIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiB0cnVlLAogICJmaWxsQ29sb3IiOiAiIzMxODZjYyIsCiAgImZpbGxPcGFjaXR5IjogMC43LAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAib3BhY2l0eSI6IDEuMCwKICAicmFkaXVzIjogNSwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9CiAgICAgICAgICAgICAgICApLmFkZFRvKG1hcF9kNTAwNDE0ZjE3Nzk0YTRhODE1Njk2YmRkNWY4NTg5Yyk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF8zYWIwNjFkNzg4NmY0MTViOTUxNWVkNjg2MTAxNTVmYyA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF81ZGM2OGViZjUzNTM0OTA3YTFkMGI0MjIxNGRlZmFhOCA9ICQoJzxkaXYgaWQ9Imh0bWxfNWRjNjhlYmY1MzUzNDkwN2ExZDBiNDIyMTRkZWZhYTgiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPkphY2tzb24gSGVpZ2h0czwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfM2FiMDYxZDc4ODZmNDE1Yjk1MTVlZDY4NjEwMTU1ZmMuc2V0Q29udGVudChodG1sXzVkYzY4ZWJmNTM1MzQ5MDdhMWQwYjQyMjE0ZGVmYWE4KTsKICAgICAgICAgICAgCgogICAgICAgICAgICBjaXJjbGVfbWFya2VyXzUxOTQ2OWI0OWFlNDQ2ZmY5OTIxNWVhMGQ4YjgwYThhLmJpbmRQb3B1cChwb3B1cF8zYWIwNjFkNzg4NmY0MTViOTUxNWVkNjg2MTAxNTVmYyk7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgY2lyY2xlX21hcmtlcl85Zjk4YWM1YjdhMDQ0Y2U5OTk5N2I0N2ZlNDJiZjQ5OSA9IEwuY2lyY2xlTWFya2VyKAogICAgICAgICAgICAgICAgWzQwLjc0NDA0ODUwNTEyMjAyNCwtNzMuODgxNjU2MjIyODgzODhdLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiYmx1ZSIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogIiMzMTg2Y2MiLAogICJmaWxsT3BhY2l0eSI6IDAuNywKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDUsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKS5hZGRUbyhtYXBfZDUwMDQxNGYxNzc5NGE0YTgxNTY5NmJkZDVmODU4OWMpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfYjQ4YjcxMDYwNWJlNGRlNzlkZTk0NDkyZTQ2N2EyZjEgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfYzg5MDkwODllNGUyNDVkNmJjZGUzZjhmOTdlOTgyNzkgPSAkKCc8ZGl2IGlkPSJodG1sX2M4OTA5MDg5ZTRlMjQ1ZDZiY2RlM2Y4Zjk3ZTk4Mjc5IiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij5FbG1odXJzdDwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfYjQ4YjcxMDYwNWJlNGRlNzlkZTk0NDkyZTQ2N2EyZjEuc2V0Q29udGVudChodG1sX2M4OTA5MDg5ZTRlMjQ1ZDZiY2RlM2Y4Zjk3ZTk4Mjc5KTsKICAgICAgICAgICAgCgogICAgICAgICAgICBjaXJjbGVfbWFya2VyXzlmOThhYzViN2EwNDRjZTk5OTk3YjQ3ZmU0MmJmNDk5LmJpbmRQb3B1cChwb3B1cF9iNDhiNzEwNjA1YmU0ZGU3OWRlOTQ0OTJlNDY3YTJmMSk7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgY2lyY2xlX21hcmtlcl84Y2I1ZGI3ODIwN2Q0OTA2YTQwOTRiMDczYjYxMWI3NiA9IEwuY2lyY2xlTWFya2VyKAogICAgICAgICAgICAgICAgWzQwLjY1NDIyNTI3NzM4NDg3LC03My44MzgxMzc2NDYwMDI4XSwKICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogImJsdWUiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IHRydWUsCiAgImZpbGxDb2xvciI6ICIjMzE4NmNjIiwKICAiZmlsbE9wYWNpdHkiOiAwLjcsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJvcGFjaXR5IjogMS4wLAogICJyYWRpdXMiOiA1LAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAzCn0KICAgICAgICAgICAgICAgICkuYWRkVG8obWFwX2Q1MDA0MTRmMTc3OTRhNGE4MTU2OTZiZGQ1Zjg1ODljKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwXzQ1M2Y5NWQyMDQwNzRhMGZhNmFiNjUzNDQ1ZjYwM2E1ID0gTC5wb3B1cCh7bWF4V2lkdGg6ICczMDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sX2Q1NDZmMmU2YzIyODRiMmQ5M2ZkNGEwNzI5YmQ2OTYwID0gJCgnPGRpdiBpZD0iaHRtbF9kNTQ2ZjJlNmMyMjg0YjJkOTNmZDRhMDcyOWJkNjk2MCIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+SG93YXJkIEJlYWNoPC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF80NTNmOTVkMjA0MDc0YTBmYTZhYjY1MzQ0NWY2MDNhNS5zZXRDb250ZW50KGh0bWxfZDU0NmYyZTZjMjI4NGIyZDkzZmQ0YTA3MjliZDY5NjApOwogICAgICAgICAgICAKCiAgICAgICAgICAgIGNpcmNsZV9tYXJrZXJfOGNiNWRiNzgyMDdkNDkwNmE0MDk0YjA3M2I2MTFiNzYuYmluZFBvcHVwKHBvcHVwXzQ1M2Y5NWQyMDQwNzRhMGZhNmFiNjUzNDQ1ZjYwM2E1KTsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBjaXJjbGVfbWFya2VyXzU0NDI0Y2IwOTJlZjRkOTQ4MzU0NDM1MWU5ODUyNGEzID0gTC5jaXJjbGVNYXJrZXIoCiAgICAgICAgICAgICAgICBbNDAuNzQyMzgxNzUwMTU2NjcsLTczLjg1NjgyNDk3MzQ1MjU4XSwKICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogImJsdWUiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IHRydWUsCiAgImZpbGxDb2xvciI6ICIjMzE4NmNjIiwKICAiZmlsbE9wYWNpdHkiOiAwLjcsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJvcGFjaXR5IjogMS4wLAogICJyYWRpdXMiOiA1LAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAzCn0KICAgICAgICAgICAgICAgICkuYWRkVG8obWFwX2Q1MDA0MTRmMTc3OTRhNGE4MTU2OTZiZGQ1Zjg1ODljKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwXzJhYTM0MTRjYjdjNTQwNmRiNzhiM2M4MmQ5ZjZjMTI5ID0gTC5wb3B1cCh7bWF4V2lkdGg6ICczMDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sX2EyYzk0NTk5MTNjOTQ2NTQ4MGFjMGM0YWY4OGFmYzQ1ID0gJCgnPGRpdiBpZD0iaHRtbF9hMmM5NDU5OTEzYzk0NjU0ODBhYzBjNGFmODhhZmM0NSIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+Q29yb25hPC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF8yYWEzNDE0Y2I3YzU0MDZkYjc4YjNjODJkOWY2YzEyOS5zZXRDb250ZW50KGh0bWxfYTJjOTQ1OTkxM2M5NDY1NDgwYWMwYzRhZjg4YWZjNDUpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIGNpcmNsZV9tYXJrZXJfNTQ0MjRjYjA5MmVmNGQ5NDgzNTQ0MzUxZTk4NTI0YTMuYmluZFBvcHVwKHBvcHVwXzJhYTM0MTRjYjdjNTQwNmRiNzhiM2M4MmQ5ZjZjMTI5KTsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBjaXJjbGVfbWFya2VyX2M4ZWVlMmUzNDM4MzRlY2I5MzU4YmUzZmUxZDc3ZjJkID0gTC5jaXJjbGVNYXJrZXIoCiAgICAgICAgICAgICAgICBbNDAuNzI1MjYzNzgyMTY1MDMsLTczLjg0NDQ3NTAwNzg4OTgzXSwKICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogImJsdWUiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IHRydWUsCiAgImZpbGxDb2xvciI6ICIjMzE4NmNjIiwKICAiZmlsbE9wYWNpdHkiOiAwLjcsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJvcGFjaXR5IjogMS4wLAogICJyYWRpdXMiOiA1LAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAzCn0KICAgICAgICAgICAgICAgICkuYWRkVG8obWFwX2Q1MDA0MTRmMTc3OTRhNGE4MTU2OTZiZGQ1Zjg1ODljKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwXzNiNmZjYTQ5MDhmODQ4OTc4ODA4MDUyYzY3NGVmMjU5ID0gTC5wb3B1cCh7bWF4V2lkdGg6ICczMDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sXzFjM2Q1NGUwZWEwOTQ1NDRiODU0ZGVmMjQwOGY2YTc1ID0gJCgnPGRpdiBpZD0iaHRtbF8xYzNkNTRlMGVhMDk0NTQ0Yjg1NGRlZjI0MDhmNmE3NSIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+Rm9yZXN0IEhpbGxzPC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF8zYjZmY2E0OTA4Zjg0ODk3ODgwODA1MmM2NzRlZjI1OS5zZXRDb250ZW50KGh0bWxfMWMzZDU0ZTBlYTA5NDU0NGI4NTRkZWYyNDA4ZjZhNzUpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIGNpcmNsZV9tYXJrZXJfYzhlZWUyZTM0MzgzNGVjYjkzNThiZTNmZTFkNzdmMmQuYmluZFBvcHVwKHBvcHVwXzNiNmZjYTQ5MDhmODQ4OTc4ODA4MDUyYzY3NGVmMjU5KTsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBjaXJjbGVfbWFya2VyXzNlMjRiODcxNTI0MDQyYTFiZDA4MWRmOWI2ODI1YmE2ID0gTC5jaXJjbGVNYXJrZXIoCiAgICAgICAgICAgICAgICBbNDAuNzA1MTc5MDM1NDE0OCwtNzMuODI5ODE5MDU4MjU3MDNdLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiYmx1ZSIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogIiMzMTg2Y2MiLAogICJmaWxsT3BhY2l0eSI6IDAuNywKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDUsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKS5hZGRUbyhtYXBfZDUwMDQxNGYxNzc5NGE0YTgxNTY5NmJkZDVmODU4OWMpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfODZjNTk4M2IxN2RlNGMzOGE5MWUwMmMzNTE3ZjRmMmQgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfNTM1OTNmZWM3YWY1NDIxN2JiYjhmZDhjYjA3MDI4MTEgPSAkKCc8ZGl2IGlkPSJodG1sXzUzNTkzZmVjN2FmNTQyMTdiYmI4ZmQ4Y2IwNzAyODExIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij5LZXcgR2FyZGVuczwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfODZjNTk4M2IxN2RlNGMzOGE5MWUwMmMzNTE3ZjRmMmQuc2V0Q29udGVudChodG1sXzUzNTkzZmVjN2FmNTQyMTdiYmI4ZmQ4Y2IwNzAyODExKTsKICAgICAgICAgICAgCgogICAgICAgICAgICBjaXJjbGVfbWFya2VyXzNlMjRiODcxNTI0MDQyYTFiZDA4MWRmOWI2ODI1YmE2LmJpbmRQb3B1cChwb3B1cF84NmM1OTgzYjE3ZGU0YzM4YTkxZTAyYzM1MTdmNGYyZCk7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgY2lyY2xlX21hcmtlcl9hYTAzNjIzYTU5ZGE0NDBiODc0NjI0OThkNWU4NzQzOSA9IEwuY2lyY2xlTWFya2VyKAogICAgICAgICAgICAgICAgWzQwLjY5Nzk0NzMxNDcxNzYzLC03My44MzE4MzMyMTQ0Njg4N10sCiAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICJibHVlIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiB0cnVlLAogICJmaWxsQ29sb3IiOiAiIzMxODZjYyIsCiAgImZpbGxPcGFjaXR5IjogMC43LAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAib3BhY2l0eSI6IDEuMCwKICAicmFkaXVzIjogNSwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9CiAgICAgICAgICAgICAgICApLmFkZFRvKG1hcF9kNTAwNDE0ZjE3Nzk0YTRhODE1Njk2YmRkNWY4NTg5Yyk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF81OGRjN2U5MmM1ZjQ0OTUxOTk1ODRlYjI3MGE5NjBmYSA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF9iY2FmZTExNmNiMjg0YjhhYmQ2YTI2ODM4YTkyMTRkMSA9ICQoJzxkaXYgaWQ9Imh0bWxfYmNhZmUxMTZjYjI4NGI4YWJkNmEyNjgzOGE5MjE0ZDEiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPlJpY2htb25kIEhpbGw8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzU4ZGM3ZTkyYzVmNDQ5NTE5OTU4NGViMjcwYTk2MGZhLnNldENvbnRlbnQoaHRtbF9iY2FmZTExNmNiMjg0YjhhYmQ2YTI2ODM4YTkyMTRkMSk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl9hYTAzNjIzYTU5ZGE0NDBiODc0NjI0OThkNWU4NzQzOS5iaW5kUG9wdXAocG9wdXBfNThkYzdlOTJjNWY0NDk1MTk5NTg0ZWIyNzBhOTYwZmEpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfNWM0Yzc0NjI2OWM0NGVmYThhY2E5OTIwMDUxMmU4ZjQgPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MC43NjQ0NTQxOTY5Nzg0NiwtNzMuODMxNzczMDAzMjk1ODJdLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiYmx1ZSIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogIiMzMTg2Y2MiLAogICJmaWxsT3BhY2l0eSI6IDAuNywKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDUsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKS5hZGRUbyhtYXBfZDUwMDQxNGYxNzc5NGE0YTgxNTY5NmJkZDVmODU4OWMpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfZjhkMGNlYzhiMzhmNDI0OWFlMzNmZjJkZjdhY2VjM2UgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfMGJiN2NlZDM1NjRkNGJmZDljOGRhYTgxMmQ5NzhmYjMgPSAkKCc8ZGl2IGlkPSJodG1sXzBiYjdjZWQzNTY0ZDRiZmQ5YzhkYWE4MTJkOTc4ZmIzIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij5GbHVzaGluZzwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfZjhkMGNlYzhiMzhmNDI0OWFlMzNmZjJkZjdhY2VjM2Uuc2V0Q29udGVudChodG1sXzBiYjdjZWQzNTY0ZDRiZmQ5YzhkYWE4MTJkOTc4ZmIzKTsKICAgICAgICAgICAgCgogICAgICAgICAgICBjaXJjbGVfbWFya2VyXzVjNGM3NDYyNjljNDRlZmE4YWNhOTkyMDA1MTJlOGY0LmJpbmRQb3B1cChwb3B1cF9mOGQwY2VjOGIzOGY0MjQ5YWUzM2ZmMmRmN2FjZWMzZSk7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgY2lyY2xlX21hcmtlcl8yY2UyYzFhYjBkM2M0ZDc4OGI0ZTZkNWU0ZTg5Y2QxZSA9IEwuY2lyY2xlTWFya2VyKAogICAgICAgICAgICAgICAgWzQwLjc1MDIxNzM0NjEwNTI4LC03My45MzkyMDIyMzkxNTUwNV0sCiAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICJibHVlIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiB0cnVlLAogICJmaWxsQ29sb3IiOiAiIzMxODZjYyIsCiAgImZpbGxPcGFjaXR5IjogMC43LAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAib3BhY2l0eSI6IDEuMCwKICAicmFkaXVzIjogNSwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9CiAgICAgICAgICAgICAgICApLmFkZFRvKG1hcF9kNTAwNDE0ZjE3Nzk0YTRhODE1Njk2YmRkNWY4NTg5Yyk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF84YjdlZDRjOThiMjM0YzQzYTQ0ZjdkYzY1MzI0ZWZhOSA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF9kYTJkMzM2YjVkZTM0NGZkOGQyNzg1ZDJiZDYwNzY5MiA9ICQoJzxkaXYgaWQ9Imh0bWxfZGEyZDMzNmI1ZGUzNDRmZDhkMjc4NWQyYmQ2MDc2OTIiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPkxvbmcgSXNsYW5kIENpdHk8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzhiN2VkNGM5OGIyMzRjNDNhNDRmN2RjNjUzMjRlZmE5LnNldENvbnRlbnQoaHRtbF9kYTJkMzM2YjVkZTM0NGZkOGQyNzg1ZDJiZDYwNzY5Mik7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl8yY2UyYzFhYjBkM2M0ZDc4OGI0ZTZkNWU0ZTg5Y2QxZS5iaW5kUG9wdXAocG9wdXBfOGI3ZWQ0Yzk4YjIzNGM0M2E0NGY3ZGM2NTMyNGVmYTkpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfMTlhMGQzNmY5NDU3NGE2ZWI5NzcwNThlZTdmYzkxZDEgPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MC43NDAxNzYyODM1MTkyNCwtNzMuOTI2OTE2MTc1NjE1NzddLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiYmx1ZSIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogIiMzMTg2Y2MiLAogICJmaWxsT3BhY2l0eSI6IDAuNywKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDUsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKS5hZGRUbyhtYXBfZDUwMDQxNGYxNzc5NGE0YTgxNTY5NmJkZDVmODU4OWMpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfZDRhMjQ1OTk3OGFkNDI2MjgxZDBhZGNlMDgxMmIxMzQgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfYjQwYjMwMDMyYWIzNDc1NWJiYjg1ZTgyNDUwYzkxMjUgPSAkKCc8ZGl2IGlkPSJodG1sX2I0MGIzMDAzMmFiMzQ3NTViYmI4NWU4MjQ1MGM5MTI1IiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij5TdW5ueXNpZGU8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwX2Q0YTI0NTk5NzhhZDQyNjI4MWQwYWRjZTA4MTJiMTM0LnNldENvbnRlbnQoaHRtbF9iNDBiMzAwMzJhYjM0NzU1YmJiODVlODI0NTBjOTEyNSk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl8xOWEwZDM2Zjk0NTc0YTZlYjk3NzA1OGVlN2ZjOTFkMS5iaW5kUG9wdXAocG9wdXBfZDRhMjQ1OTk3OGFkNDI2MjgxZDBhZGNlMDgxMmIxMzQpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfYjcwM2FlYzBkNGY2NGVkZTg2NGZlNzQxNjRlYWZmMjcgPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MC43NjQwNzMyMzg4MzA5MSwtNzMuODY3MDQxNDc2NTg3NzJdLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiYmx1ZSIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogIiMzMTg2Y2MiLAogICJmaWxsT3BhY2l0eSI6IDAuNywKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDUsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKS5hZGRUbyhtYXBfZDUwMDQxNGYxNzc5NGE0YTgxNTY5NmJkZDVmODU4OWMpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfZTU3ZmQzNmY5NjE1NDcwZjk3YzBjMDhkNDQzYjkyNmUgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfMjlmNDlhMzU4MmEzNDkzMzk4ZGFlNWU0NjY3ZmFiYzggPSAkKCc8ZGl2IGlkPSJodG1sXzI5ZjQ5YTM1ODJhMzQ5MzM5OGRhZTVlNDY2N2ZhYmM4IiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij5FYXN0IEVsbWh1cnN0PC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF9lNTdmZDM2Zjk2MTU0NzBmOTdjMGMwOGQ0NDNiOTI2ZS5zZXRDb250ZW50KGh0bWxfMjlmNDlhMzU4MmEzNDkzMzk4ZGFlNWU0NjY3ZmFiYzgpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIGNpcmNsZV9tYXJrZXJfYjcwM2FlYzBkNGY2NGVkZTg2NGZlNzQxNjRlYWZmMjcuYmluZFBvcHVwKHBvcHVwX2U1N2ZkMzZmOTYxNTQ3MGY5N2MwYzA4ZDQ0M2I5MjZlKTsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBjaXJjbGVfbWFya2VyXzgzNDdhYjczZTVkYjQwMDlhZWNlNTNmMDYxYWEwMTE1ID0gTC5jaXJjbGVNYXJrZXIoCiAgICAgICAgICAgICAgICBbNDAuNzI1NDI3Mzc0MDkzNjA2LC03My44OTYyMTcxMzYyNjg1OV0sCiAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICJibHVlIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiB0cnVlLAogICJmaWxsQ29sb3IiOiAiIzMxODZjYyIsCiAgImZpbGxPcGFjaXR5IjogMC43LAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAib3BhY2l0eSI6IDEuMCwKICAicmFkaXVzIjogNSwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9CiAgICAgICAgICAgICAgICApLmFkZFRvKG1hcF9kNTAwNDE0ZjE3Nzk0YTRhODE1Njk2YmRkNWY4NTg5Yyk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF82MWMxYzJhMWY3YzY0ODBlYjQwODBkZGFjNTc0NTVlOSA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF85YTUzYTk2NWQ5Mzg0YWExYTRjY2Y4NDYxMDI1Yjg2NSA9ICQoJzxkaXYgaWQ9Imh0bWxfOWE1M2E5NjVkOTM4NGFhMWE0Y2NmODQ2MTAyNWI4NjUiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPk1hc3BldGg8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzYxYzFjMmExZjdjNjQ4MGViNDA4MGRkYWM1NzQ1NWU5LnNldENvbnRlbnQoaHRtbF85YTUzYTk2NWQ5Mzg0YWExYTRjY2Y4NDYxMDI1Yjg2NSk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl84MzQ3YWI3M2U1ZGI0MDA5YWVjZTUzZjA2MWFhMDExNS5iaW5kUG9wdXAocG9wdXBfNjFjMWMyYTFmN2M2NDgwZWI0MDgwZGRhYzU3NDU1ZTkpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfMzMyOGNhYjIwYzIwNDViYjk1ZDQ5ODE0ZWM5MGVkZWIgPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MC43MDgzMjMxNTYxMzg1OCwtNzMuOTAxNDM1MTc1NTk1ODldLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiYmx1ZSIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogIiMzMTg2Y2MiLAogICJmaWxsT3BhY2l0eSI6IDAuNywKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDUsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKS5hZGRUbyhtYXBfZDUwMDQxNGYxNzc5NGE0YTgxNTY5NmJkZDVmODU4OWMpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfM2FmZjViN2JkOGE1NDgyYTk3YTY0ZGI2NmZhYWM0M2YgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfYjdjYmUyMzU4NjQ3NDQwNzgwNzA3NDNkMzQ1ZDEyYjQgPSAkKCc8ZGl2IGlkPSJodG1sX2I3Y2JlMjM1ODY0NzQ0MDc4MDcwNzQzZDM0NWQxMmI0IiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij5SaWRnZXdvb2Q8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzNhZmY1YjdiZDhhNTQ4MmE5N2E2NGRiNjZmYWFjNDNmLnNldENvbnRlbnQoaHRtbF9iN2NiZTIzNTg2NDc0NDA3ODA3MDc0M2QzNDVkMTJiNCk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl8zMzI4Y2FiMjBjMjA0NWJiOTVkNDk4MTRlYzkwZWRlYi5iaW5kUG9wdXAocG9wdXBfM2FmZjViN2JkOGE1NDgyYTk3YTY0ZGI2NmZhYWM0M2YpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfNjU2NWU1NDc3YWYyNGQxMmI3MmNhNGE1ZjFlNmQ4YjYgPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MC43MDI3NjI0Mjk2NzgzOCwtNzMuODcwNzQxNjc0MzU2MDVdLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiYmx1ZSIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogIiMzMTg2Y2MiLAogICJmaWxsT3BhY2l0eSI6IDAuNywKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDUsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKS5hZGRUbyhtYXBfZDUwMDQxNGYxNzc5NGE0YTgxNTY5NmJkZDVmODU4OWMpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfYTEwNWJjYzcwZDAzNGI3YTgyZjUyNTcwMDc1MmQ1ZGUgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfMDU1OGMwZTY3M2ZkNDVlYjk5ZDAzN2FkYzRlMjMyZGQgPSAkKCc8ZGl2IGlkPSJodG1sXzA1NThjMGU2NzNmZDQ1ZWI5OWQwMzdhZGM0ZTIzMmRkIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij5HbGVuZGFsZTwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfYTEwNWJjYzcwZDAzNGI3YTgyZjUyNTcwMDc1MmQ1ZGUuc2V0Q29udGVudChodG1sXzA1NThjMGU2NzNmZDQ1ZWI5OWQwMzdhZGM0ZTIzMmRkKTsKICAgICAgICAgICAgCgogICAgICAgICAgICBjaXJjbGVfbWFya2VyXzY1NjVlNTQ3N2FmMjRkMTJiNzJjYTRhNWYxZTZkOGI2LmJpbmRQb3B1cChwb3B1cF9hMTA1YmNjNzBkMDM0YjdhODJmNTI1NzAwNzUyZDVkZSk7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgY2lyY2xlX21hcmtlcl82MDUzNjljMGMxYTE0ZDhlYWI4OTZjYTU3MWEzNjFkZCA9IEwuY2lyY2xlTWFya2VyKAogICAgICAgICAgICAgICAgWzQwLjcyODk3NDA5NDgwNzM1LC03My44NTc4MjY4NjkwNTM3XSwKICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogImJsdWUiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IHRydWUsCiAgImZpbGxDb2xvciI6ICIjMzE4NmNjIiwKICAiZmlsbE9wYWNpdHkiOiAwLjcsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJvcGFjaXR5IjogMS4wLAogICJyYWRpdXMiOiA1LAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAzCn0KICAgICAgICAgICAgICAgICkuYWRkVG8obWFwX2Q1MDA0MTRmMTc3OTRhNGE4MTU2OTZiZGQ1Zjg1ODljKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwXzdkMmE1OGIzNGQ3MzQ1OGNhNDEzMzMwZDYyYTc4MTJlID0gTC5wb3B1cCh7bWF4V2lkdGg6ICczMDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sX2QzMThiN2IxZmI5MzQ5MGJhYjhhZDJmNmY2NGFjZjk3ID0gJCgnPGRpdiBpZD0iaHRtbF9kMzE4YjdiMWZiOTM0OTBiYWI4YWQyZjZmNjRhY2Y5NyIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+UmVnbyBQYXJrPC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF83ZDJhNThiMzRkNzM0NThjYTQxMzMzMGQ2MmE3ODEyZS5zZXRDb250ZW50KGh0bWxfZDMxOGI3YjFmYjkzNDkwYmFiOGFkMmY2ZjY0YWNmOTcpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIGNpcmNsZV9tYXJrZXJfNjA1MzY5YzBjMWExNGQ4ZWFiODk2Y2E1NzFhMzYxZGQuYmluZFBvcHVwKHBvcHVwXzdkMmE1OGIzNGQ3MzQ1OGNhNDEzMzMwZDYyYTc4MTJlKTsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBjaXJjbGVfbWFya2VyXzI2YTAyOGUyMGY1MzRkYTRiODZmYjhkZWQwMzViN2FmID0gTC5jaXJjbGVNYXJrZXIoCiAgICAgICAgICAgICAgICBbNDAuNjg5ODg2ODc5MTU3ODksLTczLjg1ODExMDQ2NTU0MzJdLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiYmx1ZSIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogIiMzMTg2Y2MiLAogICJmaWxsT3BhY2l0eSI6IDAuNywKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDUsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKS5hZGRUbyhtYXBfZDUwMDQxNGYxNzc5NGE0YTgxNTY5NmJkZDVmODU4OWMpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfZDQ0NTQ4MDc4NDE0NDFkMDhmMDA0YjEyM2VjMDg5ZTEgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfNTAzOWQ3YzUyZWM5NDM4MzkyZjUxZDk2NzRkMDJiYWYgPSAkKCc8ZGl2IGlkPSJodG1sXzUwMzlkN2M1MmVjOTQzODM5MmY1MWQ5Njc0ZDAyYmFmIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij5Xb29kaGF2ZW48L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwX2Q0NDU0ODA3ODQxNDQxZDA4ZjAwNGIxMjNlYzA4OWUxLnNldENvbnRlbnQoaHRtbF81MDM5ZDdjNTJlYzk0MzgzOTJmNTFkOTY3NGQwMmJhZik7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl8yNmEwMjhlMjBmNTM0ZGE0Yjg2ZmI4ZGVkMDM1YjdhZi5iaW5kUG9wdXAocG9wdXBfZDQ0NTQ4MDc4NDE0NDFkMDhmMDA0YjEyM2VjMDg5ZTEpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfYjYwODkyMjc0ODVlNDZkNjg0ZTExMDE1YTc5ZTAwYjMgPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MC42ODA3MDg0NjgyNjU0MTUsLTczLjg0MzIwMjY2MTczNDQ3XSwKICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogImJsdWUiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IHRydWUsCiAgImZpbGxDb2xvciI6ICIjMzE4NmNjIiwKICAiZmlsbE9wYWNpdHkiOiAwLjcsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJvcGFjaXR5IjogMS4wLAogICJyYWRpdXMiOiA1LAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAzCn0KICAgICAgICAgICAgICAgICkuYWRkVG8obWFwX2Q1MDA0MTRmMTc3OTRhNGE4MTU2OTZiZGQ1Zjg1ODljKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwX2VjODhjMDE2MWE2YzQ3YjZhMjE2YmQ1NzI2MzI4NzViID0gTC5wb3B1cCh7bWF4V2lkdGg6ICczMDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sX2M5NzJmM2EyZWZkYTQxNjc5MjM4YzJlNDRhMzM0ZDVhID0gJCgnPGRpdiBpZD0iaHRtbF9jOTcyZjNhMmVmZGE0MTY3OTIzOGMyZTQ0YTMzNGQ1YSIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+T3pvbmUgUGFyazwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfZWM4OGMwMTYxYTZjNDdiNmEyMTZiZDU3MjYzMjg3NWIuc2V0Q29udGVudChodG1sX2M5NzJmM2EyZWZkYTQxNjc5MjM4YzJlNDRhMzM0ZDVhKTsKICAgICAgICAgICAgCgogICAgICAgICAgICBjaXJjbGVfbWFya2VyX2I2MDg5MjI3NDg1ZTQ2ZDY4NGUxMTAxNWE3OWUwMGIzLmJpbmRQb3B1cChwb3B1cF9lYzg4YzAxNjFhNmM0N2I2YTIxNmJkNTcyNjMyODc1Yik7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgY2lyY2xlX21hcmtlcl81MmRhYTAxOTM2Yzk0NDE3OThmY2ZjMDI1YTE1NWNlOCA9IEwuY2lyY2xlTWFya2VyKAogICAgICAgICAgICAgICAgWzQwLjY2ODU0OTU3NzY3MTk1LC03My44MDk4NjQ3ODY0OTA0MV0sCiAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICJibHVlIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiB0cnVlLAogICJmaWxsQ29sb3IiOiAiIzMxODZjYyIsCiAgImZpbGxPcGFjaXR5IjogMC43LAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAib3BhY2l0eSI6IDEuMCwKICAicmFkaXVzIjogNSwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9CiAgICAgICAgICAgICAgICApLmFkZFRvKG1hcF9kNTAwNDE0ZjE3Nzk0YTRhODE1Njk2YmRkNWY4NTg5Yyk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF85NTk4NjQzYTlhZjQ0OTAwODY1MDdlODFlNTVmNjYwNiA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF85NTU4MTFjNzgxZDU0MTk2YWMyNWViNDI5ZmRlZTM5ZSA9ICQoJzxkaXYgaWQ9Imh0bWxfOTU1ODExYzc4MWQ1NDE5NmFjMjVlYjQyOWZkZWUzOWUiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPlNvdXRoIE96b25lIFBhcms8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzk1OTg2NDNhOWFmNDQ5MDA4NjUwN2U4MWU1NWY2NjA2LnNldENvbnRlbnQoaHRtbF85NTU4MTFjNzgxZDU0MTk2YWMyNWViNDI5ZmRlZTM5ZSk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl81MmRhYTAxOTM2Yzk0NDE3OThmY2ZjMDI1YTE1NWNlOC5iaW5kUG9wdXAocG9wdXBfOTU5ODY0M2E5YWY0NDkwMDg2NTA3ZTgxZTU1ZjY2MDYpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfZGU3NWU5MjYzMGYwNDRjMWI2MzFjNWZlZWEzM2JhN2IgPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MC43ODQ5MDI3NDkyNjAyMDUsLTczLjg0MzA0NTI4ODk2MTI1XSwKICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogImJsdWUiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IHRydWUsCiAgImZpbGxDb2xvciI6ICIjMzE4NmNjIiwKICAiZmlsbE9wYWNpdHkiOiAwLjcsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJvcGFjaXR5IjogMS4wLAogICJyYWRpdXMiOiA1LAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAzCn0KICAgICAgICAgICAgICAgICkuYWRkVG8obWFwX2Q1MDA0MTRmMTc3OTRhNGE4MTU2OTZiZGQ1Zjg1ODljKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwX2I0N2E3NmZjNGU4ZDQ5NDNiYTQwZjFmMTA5Mzg0NTVkID0gTC5wb3B1cCh7bWF4V2lkdGg6ICczMDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sXzI5ZmE4ZjA1ZmQ4ZDQ1OTlhZWU5OWJlODBkZTZmMjExID0gJCgnPGRpdiBpZD0iaHRtbF8yOWZhOGYwNWZkOGQ0NTk5YWVlOTliZTgwZGU2ZjIxMSIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+Q29sbGVnZSBQb2ludDwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfYjQ3YTc2ZmM0ZThkNDk0M2JhNDBmMWYxMDkzODQ1NWQuc2V0Q29udGVudChodG1sXzI5ZmE4ZjA1ZmQ4ZDQ1OTlhZWU5OWJlODBkZTZmMjExKTsKICAgICAgICAgICAgCgogICAgICAgICAgICBjaXJjbGVfbWFya2VyX2RlNzVlOTI2MzBmMDQ0YzFiNjMxYzVmZWVhMzNiYTdiLmJpbmRQb3B1cChwb3B1cF9iNDdhNzZmYzRlOGQ0OTQzYmE0MGYxZjEwOTM4NDU1ZCk7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgY2lyY2xlX21hcmtlcl8wMTI0MzVlZDcxOTY0OThmOGQyNzAwYjBmNWZhZGYxZiA9IEwuY2lyY2xlTWFya2VyKAogICAgICAgICAgICAgICAgWzQwLjc4MTI5MDc2NjAyNjk0LC03My44MTQyMDIxNjYxMDg2M10sCiAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICJibHVlIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiB0cnVlLAogICJmaWxsQ29sb3IiOiAiIzMxODZjYyIsCiAgImZpbGxPcGFjaXR5IjogMC43LAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAib3BhY2l0eSI6IDEuMCwKICAicmFkaXVzIjogNSwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9CiAgICAgICAgICAgICAgICApLmFkZFRvKG1hcF9kNTAwNDE0ZjE3Nzk0YTRhODE1Njk2YmRkNWY4NTg5Yyk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF9lMTU3YzY1YTdiMWY0YmY3YjgyMmRjYjQ3NGMxN2UwNCA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF8wYTc1NDlhYzJhNzc0YzRmYmY3MWFiMjY3OGE4ZjczOCA9ICQoJzxkaXYgaWQ9Imh0bWxfMGE3NTQ5YWMyYTc3NGM0ZmJmNzFhYjI2NzhhOGY3MzgiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPldoaXRlc3RvbmU8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwX2UxNTdjNjVhN2IxZjRiZjdiODIyZGNiNDc0YzE3ZTA0LnNldENvbnRlbnQoaHRtbF8wYTc1NDlhYzJhNzc0YzRmYmY3MWFiMjY3OGE4ZjczOCk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl8wMTI0MzVlZDcxOTY0OThmOGQyNzAwYjBmNWZhZGYxZi5iaW5kUG9wdXAocG9wdXBfZTE1N2M2NWE3YjFmNGJmN2I4MjJkY2I0NzRjMTdlMDQpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfZGU3NzI5NDZmYWYzNGZkZWE2YTkwNzYxZWNhMGMyMmMgPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MC43NjYwNDA2MzI4MTA2NCwtNzMuNzc0MjczNjMwNjg2N10sCiAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICJibHVlIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiB0cnVlLAogICJmaWxsQ29sb3IiOiAiIzMxODZjYyIsCiAgImZpbGxPcGFjaXR5IjogMC43LAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAib3BhY2l0eSI6IDEuMCwKICAicmFkaXVzIjogNSwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9CiAgICAgICAgICAgICAgICApLmFkZFRvKG1hcF9kNTAwNDE0ZjE3Nzk0YTRhODE1Njk2YmRkNWY4NTg5Yyk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF9iN2ZjYjBjNjViMDc0YWIzYWRmZmJiNzBjOTA2MDIxMSA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF85YjVlMzUxNzMzN2I0MzU0YjdlMGEzZjVkY2QzYzExMCA9ICQoJzxkaXYgaWQ9Imh0bWxfOWI1ZTM1MTczMzdiNDM1NGI3ZTBhM2Y1ZGNkM2MxMTAiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPkJheXNpZGU8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwX2I3ZmNiMGM2NWIwNzRhYjNhZGZmYmI3MGM5MDYwMjExLnNldENvbnRlbnQoaHRtbF85YjVlMzUxNzMzN2I0MzU0YjdlMGEzZjVkY2QzYzExMCk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl9kZTc3Mjk0NmZhZjM0ZmRlYTZhOTA3NjFlY2EwYzIyYy5iaW5kUG9wdXAocG9wdXBfYjdmY2IwYzY1YjA3NGFiM2FkZmZiYjcwYzkwNjAyMTEpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfNWM5NWZmMDY5MmRlNDZiMzhmOThhOTUzZjFmZjgyZTQgPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MC43NjE3Mjk1NDkwMzI2MiwtNzMuNzkxNzYyNDM3MjgwNjFdLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiYmx1ZSIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogIiMzMTg2Y2MiLAogICJmaWxsT3BhY2l0eSI6IDAuNywKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDUsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKS5hZGRUbyhtYXBfZDUwMDQxNGYxNzc5NGE0YTgxNTY5NmJkZDVmODU4OWMpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfNjQxOTAzYmU0NWVlNDQxNzg1MDUwMzhlYTRjODY5ZDkgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfYTYyZGNmYWVmZDk5NDJlNjgyNjlhYTViNDI2NDI4MzIgPSAkKCc8ZGl2IGlkPSJodG1sX2E2MmRjZmFlZmQ5OTQyZTY4MjY5YWE1YjQyNjQyODMyIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij5BdWJ1cm5kYWxlPC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF82NDE5MDNiZTQ1ZWU0NDE3ODUwNTAzOGVhNGM4NjlkOS5zZXRDb250ZW50KGh0bWxfYTYyZGNmYWVmZDk5NDJlNjgyNjlhYTViNDI2NDI4MzIpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIGNpcmNsZV9tYXJrZXJfNWM5NWZmMDY5MmRlNDZiMzhmOThhOTUzZjFmZjgyZTQuYmluZFBvcHVwKHBvcHVwXzY0MTkwM2JlNDVlZTQ0MTc4NTA1MDM4ZWE0Yzg2OWQ5KTsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBjaXJjbGVfbWFya2VyXzg4NjczZmEwZTE0MzQ3ZjNiNjkxYWNlN2NmMmYyMWQ4ID0gTC5jaXJjbGVNYXJrZXIoCiAgICAgICAgICAgICAgICBbNDAuNzcwODI2MTkyODI2NywtNzMuNzM4ODk3NzU1ODA3NF0sCiAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICJibHVlIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiB0cnVlLAogICJmaWxsQ29sb3IiOiAiIzMxODZjYyIsCiAgImZpbGxPcGFjaXR5IjogMC43LAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAib3BhY2l0eSI6IDEuMCwKICAicmFkaXVzIjogNSwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9CiAgICAgICAgICAgICAgICApLmFkZFRvKG1hcF9kNTAwNDE0ZjE3Nzk0YTRhODE1Njk2YmRkNWY4NTg5Yyk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF80ZmEwMjIxZmJlYzE0ZjBkYTY4MGZjMTJmZjg5MjdmYyA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF9kMWZkOTM3OGU3NDE0YzQxOTAzYmFjMzUzYjZlYzMxNiA9ICQoJzxkaXYgaWQ9Imh0bWxfZDFmZDkzNzhlNzQxNGM0MTkwM2JhYzM1M2I2ZWMzMTYiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPkxpdHRsZSBOZWNrPC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF80ZmEwMjIxZmJlYzE0ZjBkYTY4MGZjMTJmZjg5MjdmYy5zZXRDb250ZW50KGh0bWxfZDFmZDkzNzhlNzQxNGM0MTkwM2JhYzM1M2I2ZWMzMTYpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIGNpcmNsZV9tYXJrZXJfODg2NzNmYTBlMTQzNDdmM2I2OTFhY2U3Y2YyZjIxZDguYmluZFBvcHVwKHBvcHVwXzRmYTAyMjFmYmVjMTRmMGRhNjgwZmMxMmZmODkyN2ZjKTsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBjaXJjbGVfbWFya2VyXzBlYWMwOTBhZTUyYjQyOTY4NjhiMmM4OWY1MjQ5MjAxID0gTC5jaXJjbGVNYXJrZXIoCiAgICAgICAgICAgICAgICBbNDAuNzY2ODQ2MDk3OTA3NjMsLTczLjc0MjQ5ODIwNzI3MzNdLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiYmx1ZSIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogIiMzMTg2Y2MiLAogICJmaWxsT3BhY2l0eSI6IDAuNywKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDUsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKS5hZGRUbyhtYXBfZDUwMDQxNGYxNzc5NGE0YTgxNTY5NmJkZDVmODU4OWMpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfMTNjMmI2NTU1ZWNiNGI4NDgxNzA4MzFjODE0NTdlMWEgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfYzBjYmRjYWE5YzlhNGIzM2EzM2FmOTY3YjlmYmYzNmUgPSAkKCc8ZGl2IGlkPSJodG1sX2MwY2JkY2FhOWM5YTRiMzNhMzNhZjk2N2I5ZmJmMzZlIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij5Eb3VnbGFzdG9uPC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF8xM2MyYjY1NTVlY2I0Yjg0ODE3MDgzMWM4MTQ1N2UxYS5zZXRDb250ZW50KGh0bWxfYzBjYmRjYWE5YzlhNGIzM2EzM2FmOTY3YjlmYmYzNmUpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIGNpcmNsZV9tYXJrZXJfMGVhYzA5MGFlNTJiNDI5Njg2OGIyYzg5ZjUyNDkyMDEuYmluZFBvcHVwKHBvcHVwXzEzYzJiNjU1NWVjYjRiODQ4MTcwODMxYzgxNDU3ZTFhKTsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBjaXJjbGVfbWFya2VyX2RkYjBhNDUzYzM5ODQ1NGM5ZmM2ZjQyM2Y1NWVmNGFkID0gTC5jaXJjbGVNYXJrZXIoCiAgICAgICAgICAgICAgICBbNDAuNzQ5NDQwNzk5NzQzMzIsLTczLjcxNTQ4MTE4OTk5MTQ1XSwKICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogImJsdWUiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IHRydWUsCiAgImZpbGxDb2xvciI6ICIjMzE4NmNjIiwKICAiZmlsbE9wYWNpdHkiOiAwLjcsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJvcGFjaXR5IjogMS4wLAogICJyYWRpdXMiOiA1LAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAzCn0KICAgICAgICAgICAgICAgICkuYWRkVG8obWFwX2Q1MDA0MTRmMTc3OTRhNGE4MTU2OTZiZGQ1Zjg1ODljKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwXzA5ZmQ2MGY4OTA5NzRkYjhiMDIzYTMwYjhlNDAxNWYwID0gTC5wb3B1cCh7bWF4V2lkdGg6ICczMDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sX2ZjNDhmMThjYzA5ZTQ0OWRhYTRhZDZmYjA0Zjk0NDdhID0gJCgnPGRpdiBpZD0iaHRtbF9mYzQ4ZjE4Y2MwOWU0NDlkYWE0YWQ2ZmIwNGY5NDQ3YSIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+R2xlbiBPYWtzPC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF8wOWZkNjBmODkwOTc0ZGI4YjAyM2EzMGI4ZTQwMTVmMC5zZXRDb250ZW50KGh0bWxfZmM0OGYxOGNjMDllNDQ5ZGFhNGFkNmZiMDRmOTQ0N2EpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIGNpcmNsZV9tYXJrZXJfZGRiMGE0NTNjMzk4NDU0YzlmYzZmNDIzZjU1ZWY0YWQuYmluZFBvcHVwKHBvcHVwXzA5ZmQ2MGY4OTA5NzRkYjhiMDIzYTMwYjhlNDAxNWYwKTsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBjaXJjbGVfbWFya2VyX2E2MzgxMGQ2MWZmNDRlMzBiYTBkODFlZmZjZjZiMTE3ID0gTC5jaXJjbGVNYXJrZXIoCiAgICAgICAgICAgICAgICBbNDAuNzI4NTczMTgxNzY2NzUsLTczLjcyMDEyODE0ODI2OTAzXSwKICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogImJsdWUiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IHRydWUsCiAgImZpbGxDb2xvciI6ICIjMzE4NmNjIiwKICAiZmlsbE9wYWNpdHkiOiAwLjcsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJvcGFjaXR5IjogMS4wLAogICJyYWRpdXMiOiA1LAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAzCn0KICAgICAgICAgICAgICAgICkuYWRkVG8obWFwX2Q1MDA0MTRmMTc3OTRhNGE4MTU2OTZiZGQ1Zjg1ODljKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwXzY5M2Q1ZTg1ZTI0MjQ2MjJiMmI3YzUzNzhlOTkwMjYxID0gTC5wb3B1cCh7bWF4V2lkdGg6ICczMDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sX2IyYzBjNzUzN2JhYTQ0NGE5YmMzZjAyY2I5ZDBiMDEwID0gJCgnPGRpdiBpZD0iaHRtbF9iMmMwYzc1MzdiYWE0NDRhOWJjM2YwMmNiOWQwYjAxMCIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+QmVsbGVyb3NlPC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF82OTNkNWU4NWUyNDI0NjIyYjJiN2M1Mzc4ZTk5MDI2MS5zZXRDb250ZW50KGh0bWxfYjJjMGM3NTM3YmFhNDQ0YTliYzNmMDJjYjlkMGIwMTApOwogICAgICAgICAgICAKCiAgICAgICAgICAgIGNpcmNsZV9tYXJrZXJfYTYzODEwZDYxZmY0NGUzMGJhMGQ4MWVmZmNmNmIxMTcuYmluZFBvcHVwKHBvcHVwXzY5M2Q1ZTg1ZTI0MjQ2MjJiMmI3YzUzNzhlOTkwMjYxKTsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBjaXJjbGVfbWFya2VyXzE0OTgyNGJlNzE5ZjQyNjg5OTY2ZGRjMTk5ZTM3ZTk1ID0gTC5jaXJjbGVNYXJrZXIoCiAgICAgICAgICAgICAgICBbNDAuNzIyNTc4MjQ0MjI4MDQ2LC03My44MjA4Nzc2NDkzMzU2Nl0sCiAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICJibHVlIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiB0cnVlLAogICJmaWxsQ29sb3IiOiAiIzMxODZjYyIsCiAgImZpbGxPcGFjaXR5IjogMC43LAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAib3BhY2l0eSI6IDEuMCwKICAicmFkaXVzIjogNSwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9CiAgICAgICAgICAgICAgICApLmFkZFRvKG1hcF9kNTAwNDE0ZjE3Nzk0YTRhODE1Njk2YmRkNWY4NTg5Yyk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF81MDIxNzNlZWVmZjE0YzY3YjhlZDQyNzhjMzJjYzEyYiA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF9iMzk4NzBiYjNlYTk0MDVlOGE3ZGMxNDZhYjI3YTI1NiA9ICQoJzxkaXYgaWQ9Imh0bWxfYjM5ODcwYmIzZWE5NDA1ZThhN2RjMTQ2YWIyN2EyNTYiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPktldyBHYXJkZW5zIEhpbGxzPC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF81MDIxNzNlZWVmZjE0YzY3YjhlZDQyNzhjMzJjYzEyYi5zZXRDb250ZW50KGh0bWxfYjM5ODcwYmIzZWE5NDA1ZThhN2RjMTQ2YWIyN2EyNTYpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIGNpcmNsZV9tYXJrZXJfMTQ5ODI0YmU3MTlmNDI2ODk5NjZkZGMxOTllMzdlOTUuYmluZFBvcHVwKHBvcHVwXzUwMjE3M2VlZWZmMTRjNjdiOGVkNDI3OGMzMmNjMTJiKTsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBjaXJjbGVfbWFya2VyXzNkZGJmY2EwMTUyZTQ2MDE5YzBhMTc0YzAwNmE2MjRlID0gTC5jaXJjbGVNYXJrZXIoCiAgICAgICAgICAgICAgICBbNDAuNzM0Mzk0NDY1MzMxMywtNzMuNzgyNzEzMzcwMDMyNjRdLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiYmx1ZSIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogIiMzMTg2Y2MiLAogICJmaWxsT3BhY2l0eSI6IDAuNywKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDUsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKS5hZGRUbyhtYXBfZDUwMDQxNGYxNzc5NGE0YTgxNTY5NmJkZDVmODU4OWMpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfNGY1MTg0ZjM2MTUwNGRiZjliNzJjOGY3OWVjNDdmZGMgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfOTAwM2M2MDZiNzYxNDgyNWFlZTMyNTZiZjg1MjMzNzIgPSAkKCc8ZGl2IGlkPSJodG1sXzkwMDNjNjA2Yjc2MTQ4MjVhZWUzMjU2YmY4NTIzMzcyIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij5GcmVzaCBNZWFkb3dzPC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF80ZjUxODRmMzYxNTA0ZGJmOWI3MmM4Zjc5ZWM0N2ZkYy5zZXRDb250ZW50KGh0bWxfOTAwM2M2MDZiNzYxNDgyNWFlZTMyNTZiZjg1MjMzNzIpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIGNpcmNsZV9tYXJrZXJfM2RkYmZjYTAxNTJlNDYwMTljMGExNzRjMDA2YTYyNGUuYmluZFBvcHVwKHBvcHVwXzRmNTE4NGYzNjE1MDRkYmY5YjcyYzhmNzllYzQ3ZmRjKTsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBjaXJjbGVfbWFya2VyXzRjNDFmODc1N2Q0NDQwZmQ4ZDg1MjZkNGZhMjM3YzYzID0gTC5jaXJjbGVNYXJrZXIoCiAgICAgICAgICAgICAgICBbNDAuNzEwOTM1NDcyNTIyNzEsLTczLjgxMTc0ODIyNDU4NjM0XSwKICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogImJsdWUiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IHRydWUsCiAgImZpbGxDb2xvciI6ICIjMzE4NmNjIiwKICAiZmlsbE9wYWNpdHkiOiAwLjcsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJvcGFjaXR5IjogMS4wLAogICJyYWRpdXMiOiA1LAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAzCn0KICAgICAgICAgICAgICAgICkuYWRkVG8obWFwX2Q1MDA0MTRmMTc3OTRhNGE4MTU2OTZiZGQ1Zjg1ODljKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwX2EzN2JmNDg5ZmI2MDQwNWQ5MGZmYTE2ZjljYWE3MmZlID0gTC5wb3B1cCh7bWF4V2lkdGg6ICczMDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sX2QzNjI2OTI4NjQ3ZTRmOWJhOWI5Y2ZlODIzMDNmNThiID0gJCgnPGRpdiBpZD0iaHRtbF9kMzYyNjkyODY0N2U0ZjliYTliOWNmZTgyMzAzZjU4YiIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+QnJpYXJ3b29kPC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF9hMzdiZjQ4OWZiNjA0MDVkOTBmZmExNmY5Y2FhNzJmZS5zZXRDb250ZW50KGh0bWxfZDM2MjY5Mjg2NDdlNGY5YmE5YjljZmU4MjMwM2Y1OGIpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIGNpcmNsZV9tYXJrZXJfNGM0MWY4NzU3ZDQ0NDBmZDhkODUyNmQ0ZmEyMzdjNjMuYmluZFBvcHVwKHBvcHVwX2EzN2JmNDg5ZmI2MDQwNWQ5MGZmYTE2ZjljYWE3MmZlKTsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBjaXJjbGVfbWFya2VyXzliOGRiMjhlMjk1NTRiNWM5M2Q3MzU4ZmU5NmEyODZjID0gTC5jaXJjbGVNYXJrZXIoCiAgICAgICAgICAgICAgICBbNDAuNzA0NjU3MzYwNjg3MTcsLTczLjc5NjkwMTY1ODg4Mjg5XSwKICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogImJsdWUiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IHRydWUsCiAgImZpbGxDb2xvciI6ICIjMzE4NmNjIiwKICAiZmlsbE9wYWNpdHkiOiAwLjcsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJvcGFjaXR5IjogMS4wLAogICJyYWRpdXMiOiA1LAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAzCn0KICAgICAgICAgICAgICAgICkuYWRkVG8obWFwX2Q1MDA0MTRmMTc3OTRhNGE4MTU2OTZiZGQ1Zjg1ODljKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwXzYyMWUzM2FmNzNhMzQ1Mjc4OWYzY2I4NmVjYzM4N2NhID0gTC5wb3B1cCh7bWF4V2lkdGg6ICczMDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sXzg2Njk3ZjQ0ODEzYTQ2MDdiNzQwMGRmYzU1Y2YxOWZiID0gJCgnPGRpdiBpZD0iaHRtbF84NjY5N2Y0NDgxM2E0NjA3Yjc0MDBkZmM1NWNmMTlmYiIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+SmFtYWljYSBDZW50ZXI8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzYyMWUzM2FmNzNhMzQ1Mjc4OWYzY2I4NmVjYzM4N2NhLnNldENvbnRlbnQoaHRtbF84NjY5N2Y0NDgxM2E0NjA3Yjc0MDBkZmM1NWNmMTlmYik7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl85YjhkYjI4ZTI5NTU0YjVjOTNkNzM1OGZlOTZhMjg2Yy5iaW5kUG9wdXAocG9wdXBfNjIxZTMzYWY3M2EzNDUyNzg5ZjNjYjg2ZWNjMzg3Y2EpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfZGFkNGUxNGVkMmVhNDUxZGE5YjY5NjdhYjJkZDE4YWUgPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MC43NDU2MTg1NzE0MTg1NSwtNzMuNzU0OTQ5NzYyMzQzMzJdLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiYmx1ZSIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogIiMzMTg2Y2MiLAogICJmaWxsT3BhY2l0eSI6IDAuNywKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDUsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKS5hZGRUbyhtYXBfZDUwMDQxNGYxNzc5NGE0YTgxNTY5NmJkZDVmODU4OWMpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfOTJiMGM3OTcxMjFjNDhkNGE3ODFiMzIxM2M5NTMzMmEgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfZWNhNDIyMGVlMzQyNDZhNWE3OGI1NzJjOTliNGQ2N2MgPSAkKCc8ZGl2IGlkPSJodG1sX2VjYTQyMjBlZTM0MjQ2YTVhNzhiNTcyYzk5YjRkNjdjIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij5PYWtsYW5kIEdhcmRlbnM8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzkyYjBjNzk3MTIxYzQ4ZDRhNzgxYjMyMTNjOTUzMzJhLnNldENvbnRlbnQoaHRtbF9lY2E0MjIwZWUzNDI0NmE1YTc4YjU3MmM5OWI0ZDY3Yyk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl9kYWQ0ZTE0ZWQyZWE0NTFkYTliNjk2N2FiMmRkMThhZS5iaW5kUG9wdXAocG9wdXBfOTJiMGM3OTcxMjFjNDhkNGE3ODFiMzIxM2M5NTMzMmEpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfOWE3YzlkNmIxYmNiNGZiZDkwYjgzMzY1NzQzMjI1ZWQgPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MC43MTg4OTMwOTIxNjczNTYsLTczLjczODcxNDg0NTc4NDI0XSwKICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogImJsdWUiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IHRydWUsCiAgImZpbGxDb2xvciI6ICIjMzE4NmNjIiwKICAiZmlsbE9wYWNpdHkiOiAwLjcsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJvcGFjaXR5IjogMS4wLAogICJyYWRpdXMiOiA1LAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAzCn0KICAgICAgICAgICAgICAgICkuYWRkVG8obWFwX2Q1MDA0MTRmMTc3OTRhNGE4MTU2OTZiZGQ1Zjg1ODljKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwX2EwYmMyNjRkNTdjZDQxNjQ5ZGNkZWJjYmEyNDY0ZWEzID0gTC5wb3B1cCh7bWF4V2lkdGg6ICczMDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sX2U0MmZlNGUwNGMwZjQ2OTFhOTEzNzgwMjU2NDNmOTZjID0gJCgnPGRpdiBpZD0iaHRtbF9lNDJmZTRlMDRjMGY0NjkxYTkxMzc4MDI1NjQzZjk2YyIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+UXVlZW5zIFZpbGxhZ2U8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwX2EwYmMyNjRkNTdjZDQxNjQ5ZGNkZWJjYmEyNDY0ZWEzLnNldENvbnRlbnQoaHRtbF9lNDJmZTRlMDRjMGY0NjkxYTkxMzc4MDI1NjQzZjk2Yyk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl85YTdjOWQ2YjFiY2I0ZmJkOTBiODMzNjU3NDMyMjVlZC5iaW5kUG9wdXAocG9wdXBfYTBiYzI2NGQ1N2NkNDE2NDlkY2RlYmNiYTI0NjRlYTMpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfZjYxNjIxMmI4ZTc3NDZlNmE1NTZjMWZhMzgxODNjMDUgPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MC43MTEyNDM0NDE5MTkwNCwtNzMuNzU5MjUwMDkzMzU1OTRdLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiYmx1ZSIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogIiMzMTg2Y2MiLAogICJmaWxsT3BhY2l0eSI6IDAuNywKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDUsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKS5hZGRUbyhtYXBfZDUwMDQxNGYxNzc5NGE0YTgxNTY5NmJkZDVmODU4OWMpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfZDE5ZjM5Y2U4MmIxNGNhMjg3MDlhYjdjZDc0MzE4YTMgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfY2ZkOTFiYTQ2MjZhNGY5MTk4N2Q3ODFiYmNjNWJjNDAgPSAkKCc8ZGl2IGlkPSJodG1sX2NmZDkxYmE0NjI2YTRmOTE5ODdkNzgxYmJjYzViYzQwIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij5Ib2xsaXM8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwX2QxOWYzOWNlODJiMTRjYTI4NzA5YWI3Y2Q3NDMxOGEzLnNldENvbnRlbnQoaHRtbF9jZmQ5MWJhNDYyNmE0ZjkxOTg3ZDc4MWJiY2M1YmM0MCk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl9mNjE2MjEyYjhlNzc0NmU2YTU1NmMxZmEzODE4M2MwNS5iaW5kUG9wdXAocG9wdXBfZDE5ZjM5Y2U4MmIxNGNhMjg3MDlhYjdjZDc0MzE4YTMpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfNDE1ZGNlZTlkMjM5NDgxNjg3OWFiNThjNjVjMTc5NDMgPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MC42OTY5MTEyNTM3ODk4ODUsLTczLjc5MDQyNjEzMTM1NTRdLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiYmx1ZSIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogIiMzMTg2Y2MiLAogICJmaWxsT3BhY2l0eSI6IDAuNywKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDUsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKS5hZGRUbyhtYXBfZDUwMDQxNGYxNzc5NGE0YTgxNTY5NmJkZDVmODU4OWMpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfOGEyMmJjOWMxMjBjNDg1ZGI0OTFkYmE2NjdlNGQzYWUgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfZThmOTJlNzRiY2MxNDljZTg1MmM3ZGQyZGU5NjUxMmUgPSAkKCc8ZGl2IGlkPSJodG1sX2U4ZjkyZTc0YmNjMTQ5Y2U4NTJjN2RkMmRlOTY1MTJlIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij5Tb3V0aCBKYW1haWNhPC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF84YTIyYmM5YzEyMGM0ODVkYjQ5MWRiYTY2N2U0ZDNhZS5zZXRDb250ZW50KGh0bWxfZThmOTJlNzRiY2MxNDljZTg1MmM3ZGQyZGU5NjUxMmUpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIGNpcmNsZV9tYXJrZXJfNDE1ZGNlZTlkMjM5NDgxNjg3OWFiNThjNjVjMTc5NDMuYmluZFBvcHVwKHBvcHVwXzhhMjJiYzljMTIwYzQ4NWRiNDkxZGJhNjY3ZTRkM2FlKTsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBjaXJjbGVfbWFya2VyXzI0MjAyMjZmNTk2ZDQyYWRhZGM3MmU4ODJiZmVjMmQ3ID0gTC5jaXJjbGVNYXJrZXIoCiAgICAgICAgICAgICAgICBbNDAuNjk0NDQ1Mzg1MjIzNTksLTczLjc1ODY3NjAzNzI3NzE3XSwKICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogImJsdWUiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IHRydWUsCiAgImZpbGxDb2xvciI6ICIjMzE4NmNjIiwKICAiZmlsbE9wYWNpdHkiOiAwLjcsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJvcGFjaXR5IjogMS4wLAogICJyYWRpdXMiOiA1LAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAzCn0KICAgICAgICAgICAgICAgICkuYWRkVG8obWFwX2Q1MDA0MTRmMTc3OTRhNGE4MTU2OTZiZGQ1Zjg1ODljKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwXzJjMWEwMDRkN2RlMjQyMGZiOGZlODgxMGM3MmNjZDJjID0gTC5wb3B1cCh7bWF4V2lkdGg6ICczMDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sXzFkNzhkZmRiMjRlZjRkZDA5YzgxN2E2ZDFmNTliYWM3ID0gJCgnPGRpdiBpZD0iaHRtbF8xZDc4ZGZkYjI0ZWY0ZGQwOWM4MTdhNmQxZjU5YmFjNyIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+U3QuIEFsYmFuczwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfMmMxYTAwNGQ3ZGUyNDIwZmI4ZmU4ODEwYzcyY2NkMmMuc2V0Q29udGVudChodG1sXzFkNzhkZmRiMjRlZjRkZDA5YzgxN2E2ZDFmNTliYWM3KTsKICAgICAgICAgICAgCgogICAgICAgICAgICBjaXJjbGVfbWFya2VyXzI0MjAyMjZmNTk2ZDQyYWRhZGM3MmU4ODJiZmVjMmQ3LmJpbmRQb3B1cChwb3B1cF8yYzFhMDA0ZDdkZTI0MjBmYjhmZTg4MTBjNzJjY2QyYyk7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgY2lyY2xlX21hcmtlcl9kY2E0NzZlOTFkZGY0Zjk4OTY0YjA0N2YzY2VmN2Y0NiA9IEwuY2lyY2xlTWFya2VyKAogICAgICAgICAgICAgICAgWzQwLjY3NTIxMTM5NTkxNzMzLC03My43NzI1ODc4NzYyMDkwNl0sCiAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICJibHVlIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiB0cnVlLAogICJmaWxsQ29sb3IiOiAiIzMxODZjYyIsCiAgImZpbGxPcGFjaXR5IjogMC43LAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAib3BhY2l0eSI6IDEuMCwKICAicmFkaXVzIjogNSwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9CiAgICAgICAgICAgICAgICApLmFkZFRvKG1hcF9kNTAwNDE0ZjE3Nzk0YTRhODE1Njk2YmRkNWY4NTg5Yyk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF81YTUwMjA1OThjNjI0ZjFmYWNmZGFjNzVlYWI4Nzc1NSA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF9iNjNhYjcwOTI1MTA0NDg2YWMxOWU0MzM5ZjYwZWQxNCA9ICQoJzxkaXYgaWQ9Imh0bWxfYjYzYWI3MDkyNTEwNDQ4NmFjMTllNDMzOWY2MGVkMTQiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPlJvY2hkYWxlPC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF81YTUwMjA1OThjNjI0ZjFmYWNmZGFjNzVlYWI4Nzc1NS5zZXRDb250ZW50KGh0bWxfYjYzYWI3MDkyNTEwNDQ4NmFjMTllNDMzOWY2MGVkMTQpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIGNpcmNsZV9tYXJrZXJfZGNhNDc2ZTkxZGRmNGY5ODk2NGIwNDdmM2NlZjdmNDYuYmluZFBvcHVwKHBvcHVwXzVhNTAyMDU5OGM2MjRmMWZhY2ZkYWM3NWVhYjg3NzU1KTsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBjaXJjbGVfbWFya2VyX2U5MjkxNWJiNTk0ZjQ3NmVhNjBmZjdhYWI4YThiNDZlID0gTC5jaXJjbGVNYXJrZXIoCiAgICAgICAgICAgICAgICBbNDAuNjY2MjMwNDkwMzY4NTg0LC03My43NjA0MjA5MjY4MjI4N10sCiAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICJibHVlIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiB0cnVlLAogICJmaWxsQ29sb3IiOiAiIzMxODZjYyIsCiAgImZpbGxPcGFjaXR5IjogMC43LAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAib3BhY2l0eSI6IDEuMCwKICAicmFkaXVzIjogNSwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9CiAgICAgICAgICAgICAgICApLmFkZFRvKG1hcF9kNTAwNDE0ZjE3Nzk0YTRhODE1Njk2YmRkNWY4NTg5Yyk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF9lNjZiMWQ4Mzg5YWI0NzRiODgwMjIzMjJiNmVlNTRiMyA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF80Yjc0Y2M1ZDg3OGQ0ZTFhYjA2ZTI3MjAyM2UzNDM0NSA9ICQoJzxkaXYgaWQ9Imh0bWxfNGI3NGNjNWQ4NzhkNGUxYWIwNmUyNzIwMjNlMzQzNDUiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPlNwcmluZ2ZpZWxkIEdhcmRlbnM8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwX2U2NmIxZDgzODlhYjQ3NGI4ODAyMjMyMmI2ZWU1NGIzLnNldENvbnRlbnQoaHRtbF80Yjc0Y2M1ZDg3OGQ0ZTFhYjA2ZTI3MjAyM2UzNDM0NSk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl9lOTI5MTViYjU5NGY0NzZlYTYwZmY3YWFiOGE4YjQ2ZS5iaW5kUG9wdXAocG9wdXBfZTY2YjFkODM4OWFiNDc0Yjg4MDIyMzIyYjZlZTU0YjMpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfZGE5ZTBjYjdkYzgwNGZmNTlkMzI0OWNiNjY3ZjBlNDMgPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MC42OTI3NzQ2MzkxNjA4NDUsLTczLjczNTI2ODczNzA4MDI2XSwKICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogImJsdWUiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IHRydWUsCiAgImZpbGxDb2xvciI6ICIjMzE4NmNjIiwKICAiZmlsbE9wYWNpdHkiOiAwLjcsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJvcGFjaXR5IjogMS4wLAogICJyYWRpdXMiOiA1LAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAzCn0KICAgICAgICAgICAgICAgICkuYWRkVG8obWFwX2Q1MDA0MTRmMTc3OTRhNGE4MTU2OTZiZGQ1Zjg1ODljKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwXzZhMDA2MTI5ZDgzZTQ4YzBhMTQ0OTRhZDk1Y2JiY2QzID0gTC5wb3B1cCh7bWF4V2lkdGg6ICczMDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sXzdiZjA4YTk4MTA0NTQ2ZTNhOWM0ZTNlOTMzMzU1YmUyID0gJCgnPGRpdiBpZD0iaHRtbF83YmYwOGE5ODEwNDU0NmUzYTljNGUzZTkzMzM1NWJlMiIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+Q2FtYnJpYSBIZWlnaHRzPC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF82YTAwNjEyOWQ4M2U0OGMwYTE0NDk0YWQ5NWNiYmNkMy5zZXRDb250ZW50KGh0bWxfN2JmMDhhOTgxMDQ1NDZlM2E5YzRlM2U5MzMzNTViZTIpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIGNpcmNsZV9tYXJrZXJfZGE5ZTBjYjdkYzgwNGZmNTlkMzI0OWNiNjY3ZjBlNDMuYmluZFBvcHVwKHBvcHVwXzZhMDA2MTI5ZDgzZTQ4YzBhMTQ0OTRhZDk1Y2JiY2QzKTsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBjaXJjbGVfbWFya2VyX2RjNmE0ZWMyNjI0NzRhZTg5YmJlNDM2N2ZlOGQyMzYxID0gTC5jaXJjbGVNYXJrZXIoCiAgICAgICAgICAgICAgICBbNDAuNjU5ODE2NDMzNDI4MDg0LC03My43MzUyNjA3OTQyODI3OF0sCiAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICJibHVlIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiB0cnVlLAogICJmaWxsQ29sb3IiOiAiIzMxODZjYyIsCiAgImZpbGxPcGFjaXR5IjogMC43LAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAib3BhY2l0eSI6IDEuMCwKICAicmFkaXVzIjogNSwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9CiAgICAgICAgICAgICAgICApLmFkZFRvKG1hcF9kNTAwNDE0ZjE3Nzk0YTRhODE1Njk2YmRkNWY4NTg5Yyk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF85MTNkZThhOWE5ZGE0MGJjODI2NTk1YWE3ZmUyZTM0MyA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF81ZDYzYzVmMzc0Y2E0NWM5OTg1YzQwNzcyMGU1YjUyYSA9ICQoJzxkaXYgaWQ9Imh0bWxfNWQ2M2M1ZjM3NGNhNDVjOTk4NWM0MDc3MjBlNWI1MmEiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPlJvc2VkYWxlPC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF85MTNkZThhOWE5ZGE0MGJjODI2NTk1YWE3ZmUyZTM0My5zZXRDb250ZW50KGh0bWxfNWQ2M2M1ZjM3NGNhNDVjOTk4NWM0MDc3MjBlNWI1MmEpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIGNpcmNsZV9tYXJrZXJfZGM2YTRlYzI2MjQ3NGFlODliYmU0MzY3ZmU4ZDIzNjEuYmluZFBvcHVwKHBvcHVwXzkxM2RlOGE5YTlkYTQwYmM4MjY1OTVhYTdmZTJlMzQzKTsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBjaXJjbGVfbWFya2VyXzlhZGU5OTVhNWFkODQ4OGE4MjNjNmNkMTcxNzBkNjA3ID0gTC5jaXJjbGVNYXJrZXIoCiAgICAgICAgICAgICAgICBbNDAuNjAzMTM0NDMyNTAwODk0LC03My43NTQ5Nzk2ODA0Mzg3Ml0sCiAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICJibHVlIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiB0cnVlLAogICJmaWxsQ29sb3IiOiAiIzMxODZjYyIsCiAgImZpbGxPcGFjaXR5IjogMC43LAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAib3BhY2l0eSI6IDEuMCwKICAicmFkaXVzIjogNSwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9CiAgICAgICAgICAgICAgICApLmFkZFRvKG1hcF9kNTAwNDE0ZjE3Nzk0YTRhODE1Njk2YmRkNWY4NTg5Yyk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF83NWZjMTNkYTBlY2Q0ZGUxODZmMzU3ZjZmNjIwZGM1NyA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF84NjYwM2RiMWJhZmI0MDlhOWIyNmFlNDY5N2FhOGQ4OCA9ICQoJzxkaXYgaWQ9Imh0bWxfODY2MDNkYjFiYWZiNDA5YTliMjZhZTQ2OTdhYThkODgiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPkZhciBSb2NrYXdheTwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfNzVmYzEzZGEwZWNkNGRlMTg2ZjM1N2Y2ZjYyMGRjNTcuc2V0Q29udGVudChodG1sXzg2NjAzZGIxYmFmYjQwOWE5YjI2YWU0Njk3YWE4ZDg4KTsKICAgICAgICAgICAgCgogICAgICAgICAgICBjaXJjbGVfbWFya2VyXzlhZGU5OTVhNWFkODQ4OGE4MjNjNmNkMTcxNzBkNjA3LmJpbmRQb3B1cChwb3B1cF83NWZjMTNkYTBlY2Q0ZGUxODZmMzU3ZjZmNjIwZGM1Nyk7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgY2lyY2xlX21hcmtlcl83OGNkNzFmNGY5YmM0NTg3OTA3MjA1YTE5YTFlMjRlOSA9IEwuY2lyY2xlTWFya2VyKAogICAgICAgICAgICAgICAgWzQwLjYwMzAyNjU4MzUxMjM4LC03My44MjAwNTQ4OTExMDMyXSwKICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogImJsdWUiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IHRydWUsCiAgImZpbGxDb2xvciI6ICIjMzE4NmNjIiwKICAiZmlsbE9wYWNpdHkiOiAwLjcsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJvcGFjaXR5IjogMS4wLAogICJyYWRpdXMiOiA1LAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAzCn0KICAgICAgICAgICAgICAgICkuYWRkVG8obWFwX2Q1MDA0MTRmMTc3OTRhNGE4MTU2OTZiZGQ1Zjg1ODljKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwX2Q1NWQyMmRjYzE5YzQ4ZTZhNjAxZDQxYjY2ODIyZWRlID0gTC5wb3B1cCh7bWF4V2lkdGg6ICczMDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sXzE5OWQ5YTk1MWM5MTRhODNiODA5MmM0MDA0Njk3ZjFlID0gJCgnPGRpdiBpZD0iaHRtbF8xOTlkOWE5NTFjOTE0YTgzYjgwOTJjNDAwNDY5N2YxZSIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+QnJvYWQgQ2hhbm5lbDwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfZDU1ZDIyZGNjMTljNDhlNmE2MDFkNDFiNjY4MjJlZGUuc2V0Q29udGVudChodG1sXzE5OWQ5YTk1MWM5MTRhODNiODA5MmM0MDA0Njk3ZjFlKTsKICAgICAgICAgICAgCgogICAgICAgICAgICBjaXJjbGVfbWFya2VyXzc4Y2Q3MWY0ZjliYzQ1ODc5MDcyMDVhMTlhMWUyNGU5LmJpbmRQb3B1cChwb3B1cF9kNTVkMjJkY2MxOWM0OGU2YTYwMWQ0MWI2NjgyMmVkZSk7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgY2lyY2xlX21hcmtlcl8xYTQ5NmVhY2NiMTM0OTQwOTUxOWQyMWFmYTdlM2Y5OSA9IEwuY2lyY2xlTWFya2VyKAogICAgICAgICAgICAgICAgWzQwLjU1NzQwMTI4ODQ1NDUyLC03My45MjU1MTE5Njk5NDE2OF0sCiAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICJibHVlIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiB0cnVlLAogICJmaWxsQ29sb3IiOiAiIzMxODZjYyIsCiAgImZpbGxPcGFjaXR5IjogMC43LAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAib3BhY2l0eSI6IDEuMCwKICAicmFkaXVzIjogNSwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9CiAgICAgICAgICAgICAgICApLmFkZFRvKG1hcF9kNTAwNDE0ZjE3Nzk0YTRhODE1Njk2YmRkNWY4NTg5Yyk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF80N2NlMWFiOThkM2M0OTVhYTkwMzRhZDA4MjYwNmEyYyA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF8zMjk5NGI3MjcyMGQ0ZTUzYjJmNjM5ZWM0OTI3Mzk3YiA9ICQoJzxkaXYgaWQ9Imh0bWxfMzI5OTRiNzI3MjBkNGU1M2IyZjYzOWVjNDkyNzM5N2IiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPkJyZWV6eSBQb2ludDwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfNDdjZTFhYjk4ZDNjNDk1YWE5MDM0YWQwODI2MDZhMmMuc2V0Q29udGVudChodG1sXzMyOTk0YjcyNzIwZDRlNTNiMmY2MzllYzQ5MjczOTdiKTsKICAgICAgICAgICAgCgogICAgICAgICAgICBjaXJjbGVfbWFya2VyXzFhNDk2ZWFjY2IxMzQ5NDA5NTE5ZDIxYWZhN2UzZjk5LmJpbmRQb3B1cChwb3B1cF80N2NlMWFiOThkM2M0OTVhYTkwMzRhZDA4MjYwNmEyYyk7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgY2lyY2xlX21hcmtlcl9kMzMyYmRlZjYzNjQ0OTYyYWFkYmQzZGI5ZjIwMGQ5YyA9IEwuY2lyY2xlTWFya2VyKAogICAgICAgICAgICAgICAgWzQwLjc3NTkyMzAxNTY0Mjg5NiwtNzMuOTAyMjg5NjAzOTE2NzNdLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiYmx1ZSIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogIiMzMTg2Y2MiLAogICJmaWxsT3BhY2l0eSI6IDAuNywKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDUsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKS5hZGRUbyhtYXBfZDUwMDQxNGYxNzc5NGE0YTgxNTY5NmJkZDVmODU4OWMpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfN2I2NWRhOWZlNjFhNDc4YTkzZTc4ZTc5NGJlY2YxYjIgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfYjlhMWZhOWZhYTA5NDQ4YzgwNDY2MTQwMGZlMzhiNjggPSAkKCc8ZGl2IGlkPSJodG1sX2I5YTFmYTlmYWEwOTQ0OGM4MDQ2NjE0MDBmZTM4YjY4IiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij5TdGVpbndheTwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfN2I2NWRhOWZlNjFhNDc4YTkzZTc4ZTc5NGJlY2YxYjIuc2V0Q29udGVudChodG1sX2I5YTFmYTlmYWEwOTQ0OGM4MDQ2NjE0MDBmZTM4YjY4KTsKICAgICAgICAgICAgCgogICAgICAgICAgICBjaXJjbGVfbWFya2VyX2QzMzJiZGVmNjM2NDQ5NjJhYWRiZDNkYjlmMjAwZDljLmJpbmRQb3B1cChwb3B1cF83YjY1ZGE5ZmU2MWE0NzhhOTNlNzhlNzk0YmVjZjFiMik7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgY2lyY2xlX21hcmtlcl8yZmJjYjQ1YjBhOTQ0ZGM5YTA0YzcyOGNlMWNhY2VhMyA9IEwuY2lyY2xlTWFya2VyKAogICAgICAgICAgICAgICAgWzQwLjc5Mjc4MTQwMzYwMDQ4LC03My44MDQzNjQ1MTcyMDk4OF0sCiAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICJibHVlIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiB0cnVlLAogICJmaWxsQ29sb3IiOiAiIzMxODZjYyIsCiAgImZpbGxPcGFjaXR5IjogMC43LAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAib3BhY2l0eSI6IDEuMCwKICAicmFkaXVzIjogNSwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9CiAgICAgICAgICAgICAgICApLmFkZFRvKG1hcF9kNTAwNDE0ZjE3Nzk0YTRhODE1Njk2YmRkNWY4NTg5Yyk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF9jZGM5MGQzMGU4OGE0NzFmOTBiMTFjODI0ZWY4Y2I2MiA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF84NGRmOTgxNjkyYjc0MGE5OTk2ZTBlM2VjYzNjOTVjMyA9ICQoJzxkaXYgaWQ9Imh0bWxfODRkZjk4MTY5MmI3NDBhOTk5NmUwZTNlY2MzYzk1YzMiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPkJlZWNoaHVyc3Q8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwX2NkYzkwZDMwZTg4YTQ3MWY5MGIxMWM4MjRlZjhjYjYyLnNldENvbnRlbnQoaHRtbF84NGRmOTgxNjkyYjc0MGE5OTk2ZTBlM2VjYzNjOTVjMyk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl8yZmJjYjQ1YjBhOTQ0ZGM5YTA0YzcyOGNlMWNhY2VhMy5iaW5kUG9wdXAocG9wdXBfY2RjOTBkMzBlODhhNDcxZjkwYjExYzgyNGVmOGNiNjIpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfMTUyOTc0MjMwMTdlNGRkNzhkNDMwZjFjMjAwYWE4MDUgPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MC43ODI4NDI4MDYyNDU1NTQsLTczLjc3NjgwMjIyNjIxNThdLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiYmx1ZSIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogIiMzMTg2Y2MiLAogICJmaWxsT3BhY2l0eSI6IDAuNywKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDUsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKS5hZGRUbyhtYXBfZDUwMDQxNGYxNzc5NGE0YTgxNTY5NmJkZDVmODU4OWMpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfOGExM2QwYWRkY2ZkNGY0YmExNmNkMTM1YzIyYzNjMjkgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfZWU2YTBlYTY1MmE1NDdiMjhmZmIyNjMzZmY3MWNlZTMgPSAkKCc8ZGl2IGlkPSJodG1sX2VlNmEwZWE2NTJhNTQ3YjI4ZmZiMjYzM2ZmNzFjZWUzIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij5CYXkgVGVycmFjZTwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfOGExM2QwYWRkY2ZkNGY0YmExNmNkMTM1YzIyYzNjMjkuc2V0Q29udGVudChodG1sX2VlNmEwZWE2NTJhNTQ3YjI4ZmZiMjYzM2ZmNzFjZWUzKTsKICAgICAgICAgICAgCgogICAgICAgICAgICBjaXJjbGVfbWFya2VyXzE1Mjk3NDIzMDE3ZTRkZDc4ZDQzMGYxYzIwMGFhODA1LmJpbmRQb3B1cChwb3B1cF84YTEzZDBhZGRjZmQ0ZjRiYTE2Y2QxMzVjMjJjM2MyOSk7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgY2lyY2xlX21hcmtlcl85ZDUzZTM0OWM2NjU0NDY0YTQ2Y2VlZDU3YjRhMmMzZCA9IEwuY2lyY2xlTWFya2VyKAogICAgICAgICAgICAgICAgWzQwLjU5NTY0MTgwNzM2ODQ5NCwtNzMuNzc2MTMyODIzOTE3MDVdLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiYmx1ZSIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogIiMzMTg2Y2MiLAogICJmaWxsT3BhY2l0eSI6IDAuNywKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDUsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKS5hZGRUbyhtYXBfZDUwMDQxNGYxNzc5NGE0YTgxNTY5NmJkZDVmODU4OWMpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfMTA2M2NlYzRmOTAxNDRiOWExMmQ2ZTA5NTEwYjhmNWUgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfNWQ5NTEyMzI2MmJiNGFiYTg5YzIwNjQ2OGQxOTdjODYgPSAkKCc8ZGl2IGlkPSJodG1sXzVkOTUxMjMyNjJiYjRhYmE4OWMyMDY0NjhkMTk3Yzg2IiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij5FZGdlbWVyZTwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfMTA2M2NlYzRmOTAxNDRiOWExMmQ2ZTA5NTEwYjhmNWUuc2V0Q29udGVudChodG1sXzVkOTUxMjMyNjJiYjRhYmE4OWMyMDY0NjhkMTk3Yzg2KTsKICAgICAgICAgICAgCgogICAgICAgICAgICBjaXJjbGVfbWFya2VyXzlkNTNlMzQ5YzY2NTQ0NjRhNDZjZWVkNTdiNGEyYzNkLmJpbmRQb3B1cChwb3B1cF8xMDYzY2VjNGY5MDE0NGI5YTEyZDZlMDk1MTBiOGY1ZSk7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgY2lyY2xlX21hcmtlcl80ZTE2OTBjMjQ5Mzk0OTExYWRjYjE1NDA1NjgxOGFiZCA9IEwuY2lyY2xlTWFya2VyKAogICAgICAgICAgICAgICAgWzQwLjU4OTE0Mzk0MzcyOTcxLC03My43OTE5OTIzMzEzNjk0M10sCiAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICJibHVlIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiB0cnVlLAogICJmaWxsQ29sb3IiOiAiIzMxODZjYyIsCiAgImZpbGxPcGFjaXR5IjogMC43LAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAib3BhY2l0eSI6IDEuMCwKICAicmFkaXVzIjogNSwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9CiAgICAgICAgICAgICAgICApLmFkZFRvKG1hcF9kNTAwNDE0ZjE3Nzk0YTRhODE1Njk2YmRkNWY4NTg5Yyk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF9hYmM4MTMyNTA4YjQ0NTZmYTRmMWU3MjNkZWZjZGNlZSA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF85MjdkNWZhOTVkZTY0NmJmOGEwMWNkZWJjMTMwYmIzNSA9ICQoJzxkaXYgaWQ9Imh0bWxfOTI3ZDVmYTk1ZGU2NDZiZjhhMDFjZGViYzEzMGJiMzUiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPkFydmVybmU8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwX2FiYzgxMzI1MDhiNDQ1NmZhNGYxZTcyM2RlZmNkY2VlLnNldENvbnRlbnQoaHRtbF85MjdkNWZhOTVkZTY0NmJmOGEwMWNkZWJjMTMwYmIzNSk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl80ZTE2OTBjMjQ5Mzk0OTExYWRjYjE1NDA1NjgxOGFiZC5iaW5kUG9wdXAocG9wdXBfYWJjODEzMjUwOGI0NDU2ZmE0ZjFlNzIzZGVmY2RjZWUpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfM2Y5MDVmNzE4MGFmNDk3ZDg3OWQ0OTA5ZGJjYWIxM2IgPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MC41ODI4MDE2OTY4NDU1ODYsLTczLjgyMjM2MTIxMDg4NzUxXSwKICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogImJsdWUiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IHRydWUsCiAgImZpbGxDb2xvciI6ICIjMzE4NmNjIiwKICAiZmlsbE9wYWNpdHkiOiAwLjcsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJvcGFjaXR5IjogMS4wLAogICJyYWRpdXMiOiA1LAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAzCn0KICAgICAgICAgICAgICAgICkuYWRkVG8obWFwX2Q1MDA0MTRmMTc3OTRhNGE4MTU2OTZiZGQ1Zjg1ODljKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwXzBiNmY2NWM1MjBkYzRhMGI5ZjkzNjIwYzE2ZmRiMjVmID0gTC5wb3B1cCh7bWF4V2lkdGg6ICczMDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sXzY3ZTIxZjljMDNiZTRiMWZiNmU4MDllNDI2MGI1YjFmID0gJCgnPGRpdiBpZD0iaHRtbF82N2UyMWY5YzAzYmU0YjFmYjZlODA5ZTQyNjBiNWIxZiIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+Um9ja2F3YXkgQmVhY2g8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzBiNmY2NWM1MjBkYzRhMGI5ZjkzNjIwYzE2ZmRiMjVmLnNldENvbnRlbnQoaHRtbF82N2UyMWY5YzAzYmU0YjFmYjZlODA5ZTQyNjBiNWIxZik7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl8zZjkwNWY3MTgwYWY0OTdkODc5ZDQ5MDlkYmNhYjEzYi5iaW5kUG9wdXAocG9wdXBfMGI2ZjY1YzUyMGRjNGEwYjlmOTM2MjBjMTZmZGIyNWYpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfOTFiOWM5ZGNmNDdhNGNmM2EwZDY4YjNjYTUwNGE1ODggPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MC41NzIwMzY3MzAyMTcwMTUsLTczLjg1NzU0NjcyNDEwODI3XSwKICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogImJsdWUiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IHRydWUsCiAgImZpbGxDb2xvciI6ICIjMzE4NmNjIiwKICAiZmlsbE9wYWNpdHkiOiAwLjcsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJvcGFjaXR5IjogMS4wLAogICJyYWRpdXMiOiA1LAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAzCn0KICAgICAgICAgICAgICAgICkuYWRkVG8obWFwX2Q1MDA0MTRmMTc3OTRhNGE4MTU2OTZiZGQ1Zjg1ODljKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwX2RmNDVhZDY5MzVkNzQ0Zjg5YTFjZTIxYWM4NWNjMzkyID0gTC5wb3B1cCh7bWF4V2lkdGg6ICczMDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sX2MxYjkxNzQ4N2Y2ZDRlOGVhYzcxMjhlZjQyMDEyNGMwID0gJCgnPGRpdiBpZD0iaHRtbF9jMWI5MTc0ODdmNmQ0ZThlYWM3MTI4ZWY0MjAxMjRjMCIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+TmVwb25zaXQ8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwX2RmNDVhZDY5MzVkNzQ0Zjg5YTFjZTIxYWM4NWNjMzkyLnNldENvbnRlbnQoaHRtbF9jMWI5MTc0ODdmNmQ0ZThlYWM3MTI4ZWY0MjAxMjRjMCk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl85MWI5YzlkY2Y0N2E0Y2YzYTBkNjhiM2NhNTA0YTU4OC5iaW5kUG9wdXAocG9wdXBfZGY0NWFkNjkzNWQ3NDRmODlhMWNlMjFhYzg1Y2MzOTIpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfMWQ4OGU1YzQ5MjE5NDAxNDliZjczZDhiZWViMTRkMjIgPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MC43NjQxMjYxMjI2MTQwNjYsLTczLjgxMjc2MjY5MTM1ODY2XSwKICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogImJsdWUiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IHRydWUsCiAgImZpbGxDb2xvciI6ICIjMzE4NmNjIiwKICAiZmlsbE9wYWNpdHkiOiAwLjcsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJvcGFjaXR5IjogMS4wLAogICJyYWRpdXMiOiA1LAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAzCn0KICAgICAgICAgICAgICAgICkuYWRkVG8obWFwX2Q1MDA0MTRmMTc3OTRhNGE4MTU2OTZiZGQ1Zjg1ODljKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwXzYxODA4MTQxZGE5ZTQyY2ZiZGViNTliNGMyZTRiNzI4ID0gTC5wb3B1cCh7bWF4V2lkdGg6ICczMDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sXzg1MWRhNTMyZjY2NzQwNTg4YWRiMzA5NzliYjRkNTk4ID0gJCgnPGRpdiBpZD0iaHRtbF84NTFkYTUzMmY2Njc0MDU4OGFkYjMwOTc5YmI0ZDU5OCIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+TXVycmF5IEhpbGw8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzYxODA4MTQxZGE5ZTQyY2ZiZGViNTliNGMyZTRiNzI4LnNldENvbnRlbnQoaHRtbF84NTFkYTUzMmY2Njc0MDU4OGFkYjMwOTc5YmI0ZDU5OCk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl8xZDg4ZTVjNDkyMTk0MDE0OWJmNzNkOGJlZWIxNGQyMi5iaW5kUG9wdXAocG9wdXBfNjE4MDgxNDFkYTllNDJjZmJkZWI1OWI0YzJlNGI3MjgpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfZWRhMjEwM2FkZGE3NGY2OTk0ODRiODhlYzExYjFlOTAgPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MC43NDEzNzg0MjE5NDU0MzQsLTczLjcwODg0NzA1ODg5MjQ2XSwKICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogImJsdWUiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IHRydWUsCiAgImZpbGxDb2xvciI6ICIjMzE4NmNjIiwKICAiZmlsbE9wYWNpdHkiOiAwLjcsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJvcGFjaXR5IjogMS4wLAogICJyYWRpdXMiOiA1LAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAzCn0KICAgICAgICAgICAgICAgICkuYWRkVG8obWFwX2Q1MDA0MTRmMTc3OTRhNGE4MTU2OTZiZGQ1Zjg1ODljKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwXzA0OWUwODkzNWMxMjQwMjlhZWIzNWNkYmQ3MDhjOTBkID0gTC5wb3B1cCh7bWF4V2lkdGg6ICczMDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sXzRlZjU2NGIzOGI1NzRmMWE5N2VjZDk4Yjk0MGViMWY0ID0gJCgnPGRpdiBpZD0iaHRtbF80ZWY1NjRiMzhiNTc0ZjFhOTdlY2Q5OGI5NDBlYjFmNCIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+RmxvcmFsIFBhcms8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzA0OWUwODkzNWMxMjQwMjlhZWIzNWNkYmQ3MDhjOTBkLnNldENvbnRlbnQoaHRtbF80ZWY1NjRiMzhiNTc0ZjFhOTdlY2Q5OGI5NDBlYjFmNCk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl9lZGEyMTAzYWRkYTc0ZjY5OTQ4NGI4OGVjMTFiMWU5MC5iaW5kUG9wdXAocG9wdXBfMDQ5ZTA4OTM1YzEyNDAyOWFlYjM1Y2RiZDcwOGM5MGQpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfMjJkMTIxMDY4OTU5NGUzMzlmMWM5YWQ5YzU4NTEyNWEgPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MC43MjA5NTcyMDc2NDQ0LC03My43NjcxNDE2NjcxNDcyOV0sCiAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICJibHVlIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiB0cnVlLAogICJmaWxsQ29sb3IiOiAiIzMxODZjYyIsCiAgImZpbGxPcGFjaXR5IjogMC43LAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAib3BhY2l0eSI6IDEuMCwKICAicmFkaXVzIjogNSwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9CiAgICAgICAgICAgICAgICApLmFkZFRvKG1hcF9kNTAwNDE0ZjE3Nzk0YTRhODE1Njk2YmRkNWY4NTg5Yyk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF83YjE5ZTkyZmQ4NjI0ZWRjOTA4ZDY0YjRlNzIwZGNlYyA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF8zNmFlZjc5ODIxYmY0MDE5YjM3YmI4MjIwZTFlYTA2ZSA9ICQoJzxkaXYgaWQ9Imh0bWxfMzZhZWY3OTgyMWJmNDAxOWIzN2JiODIyMGUxZWEwNmUiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPkhvbGxpc3dvb2Q8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzdiMTllOTJmZDg2MjRlZGM5MDhkNjRiNGU3MjBkY2VjLnNldENvbnRlbnQoaHRtbF8zNmFlZjc5ODIxYmY0MDE5YjM3YmI4MjIwZTFlYTA2ZSk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl8yMmQxMjEwNjg5NTk0ZTMzOWYxYzlhZDljNTg1MTI1YS5iaW5kUG9wdXAocG9wdXBfN2IxOWU5MmZkODYyNGVkYzkwOGQ2NGI0ZTcyMGRjZWMpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfODBkOWRlNDlmMGI3NDNjZTk0ZGFlODdiNGMzZGU4ZTQgPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MC43MTY4MDQ4MzAxNDYxMywtNzMuNzg3MjI2OTY5MzY2Nl0sCiAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICJibHVlIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiB0cnVlLAogICJmaWxsQ29sb3IiOiAiIzMxODZjYyIsCiAgImZpbGxPcGFjaXR5IjogMC43LAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAib3BhY2l0eSI6IDEuMCwKICAicmFkaXVzIjogNSwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9CiAgICAgICAgICAgICAgICApLmFkZFRvKG1hcF9kNTAwNDE0ZjE3Nzk0YTRhODE1Njk2YmRkNWY4NTg5Yyk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF9hMDkxYTFjNDgwNTE0MWI1ODUzZjQ4ZTg1MWVmZWU5ZSA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF8yODJkNzJkNTNjMTk0MmYyYTBmOTcxNzc2YmQxMzQ3MyA9ICQoJzxkaXYgaWQ9Imh0bWxfMjgyZDcyZDUzYzE5NDJmMmEwZjk3MTc3NmJkMTM0NzMiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPkphbWFpY2EgRXN0YXRlczwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfYTA5MWExYzQ4MDUxNDFiNTg1M2Y0OGU4NTFlZmVlOWUuc2V0Q29udGVudChodG1sXzI4MmQ3MmQ1M2MxOTQyZjJhMGY5NzE3NzZiZDEzNDczKTsKICAgICAgICAgICAgCgogICAgICAgICAgICBjaXJjbGVfbWFya2VyXzgwZDlkZTQ5ZjBiNzQzY2U5NGRhZTg3YjRjM2RlOGU0LmJpbmRQb3B1cChwb3B1cF9hMDkxYTFjNDgwNTE0MWI1ODUzZjQ4ZTg1MWVmZWU5ZSk7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgY2lyY2xlX21hcmtlcl82YWVlZGIyMDlmNmM0MDcyYWY4NTI5MDMzYTI4NzAxNSA9IEwuY2lyY2xlTWFya2VyKAogICAgICAgICAgICAgICAgWzQwLjc0NDU3MjMwOTI4NjcsLTczLjgyNTgwOTE1MTEwNTU5XSwKICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogImJsdWUiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IHRydWUsCiAgImZpbGxDb2xvciI6ICIjMzE4NmNjIiwKICAiZmlsbE9wYWNpdHkiOiAwLjcsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJvcGFjaXR5IjogMS4wLAogICJyYWRpdXMiOiA1LAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAzCn0KICAgICAgICAgICAgICAgICkuYWRkVG8obWFwX2Q1MDA0MTRmMTc3OTRhNGE4MTU2OTZiZGQ1Zjg1ODljKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwX2FkZTc4ZGM2YThlOTRkNzU4YTVjZGU5OWU3ZjllNGE4ID0gTC5wb3B1cCh7bWF4V2lkdGg6ICczMDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sXzhlMWI4YjhkODVlNDRhNWNhZTVlMmRkZGI2YTNkNjgyID0gJCgnPGRpdiBpZD0iaHRtbF84ZTFiOGI4ZDg1ZTQ0YTVjYWU1ZTJkZGRiNmEzZDY4MiIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+UXVlZW5zYm9ybyBIaWxsPC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF9hZGU3OGRjNmE4ZTk0ZDc1OGE1Y2RlOTllN2Y5ZTRhOC5zZXRDb250ZW50KGh0bWxfOGUxYjhiOGQ4NWU0NGE1Y2FlNWUyZGRkYjZhM2Q2ODIpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIGNpcmNsZV9tYXJrZXJfNmFlZWRiMjA5ZjZjNDA3MmFmODUyOTAzM2EyODcwMTUuYmluZFBvcHVwKHBvcHVwX2FkZTc4ZGM2YThlOTRkNzU4YTVjZGU5OWU3ZjllNGE4KTsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBjaXJjbGVfbWFya2VyXzdjZWU3YzU5MWNkNjQ5Y2M4Zjk5MWZhZDM3NmQ3MWY2ID0gTC5jaXJjbGVNYXJrZXIoCiAgICAgICAgICAgICAgICBbNDAuNzIzODI0OTAxODI5MjA0LC03My43OTc2MDMwMDkxMjY3Ml0sCiAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICJibHVlIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiB0cnVlLAogICJmaWxsQ29sb3IiOiAiIzMxODZjYyIsCiAgImZpbGxPcGFjaXR5IjogMC43LAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAib3BhY2l0eSI6IDEuMCwKICAicmFkaXVzIjogNSwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9CiAgICAgICAgICAgICAgICApLmFkZFRvKG1hcF9kNTAwNDE0ZjE3Nzk0YTRhODE1Njk2YmRkNWY4NTg5Yyk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF83MDAxMzI4MWZlOGU0MDE1OTQ5ZmIxMmIzMTA4YmY4YiA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF8zYWQ5ZmU3NmFjZmM0MmY5YjI5ZDlmODljMTYwYjJkNyA9ICQoJzxkaXYgaWQ9Imh0bWxfM2FkOWZlNzZhY2ZjNDJmOWIyOWQ5Zjg5YzE2MGIyZDciIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPkhpbGxjcmVzdDwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfNzAwMTMyODFmZThlNDAxNTk0OWZiMTJiMzEwOGJmOGIuc2V0Q29udGVudChodG1sXzNhZDlmZTc2YWNmYzQyZjliMjlkOWY4OWMxNjBiMmQ3KTsKICAgICAgICAgICAgCgogICAgICAgICAgICBjaXJjbGVfbWFya2VyXzdjZWU3YzU5MWNkNjQ5Y2M4Zjk5MWZhZDM3NmQ3MWY2LmJpbmRQb3B1cChwb3B1cF83MDAxMzI4MWZlOGU0MDE1OTQ5ZmIxMmIzMTA4YmY4Yik7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgY2lyY2xlX21hcmtlcl80ODRjY2M1MWJkZTg0OWZjYjViYmYwZGI1YTliMDM5ZSA9IEwuY2lyY2xlTWFya2VyKAogICAgICAgICAgICAgICAgWzQwLjc2MTcwNDUyNjA1NDE0NiwtNzMuOTMxNTc1MDYwNzI4NzhdLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiYmx1ZSIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogIiMzMTg2Y2MiLAogICJmaWxsT3BhY2l0eSI6IDAuNywKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDUsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKS5hZGRUbyhtYXBfZDUwMDQxNGYxNzc5NGE0YTgxNTY5NmJkZDVmODU4OWMpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfZGE1NDc3YmIwYjc2NGZlMWI0MzYwMmQyYjQ1OTgyNzcgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfNmQzOGI4Zjk4YjZlNDY2ZWE3MDBiOWM2Nzk2ODE0OWUgPSAkKCc8ZGl2IGlkPSJodG1sXzZkMzhiOGY5OGI2ZTQ2NmVhNzAwYjljNjc5NjgxNDllIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij5SYXZlbnN3b29kPC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF9kYTU0NzdiYjBiNzY0ZmUxYjQzNjAyZDJiNDU5ODI3Ny5zZXRDb250ZW50KGh0bWxfNmQzOGI4Zjk4YjZlNDY2ZWE3MDBiOWM2Nzk2ODE0OWUpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIGNpcmNsZV9tYXJrZXJfNDg0Y2NjNTFiZGU4NDlmY2I1YmJmMGRiNWE5YjAzOWUuYmluZFBvcHVwKHBvcHVwX2RhNTQ3N2JiMGI3NjRmZTFiNDM2MDJkMmI0NTk4Mjc3KTsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBjaXJjbGVfbWFya2VyX2U1YzU4NzZmMWYzOTQyNzk4ODc3MDNiZGU5MjhkMzdkID0gTC5jaXJjbGVNYXJrZXIoCiAgICAgICAgICAgICAgICBbNDAuNjYzOTE4NDE5MjUxMzksLTczLjg0OTYzNzgyNDAyNDQxXSwKICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogImJsdWUiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IHRydWUsCiAgImZpbGxDb2xvciI6ICIjMzE4NmNjIiwKICAiZmlsbE9wYWNpdHkiOiAwLjcsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJvcGFjaXR5IjogMS4wLAogICJyYWRpdXMiOiA1LAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAzCn0KICAgICAgICAgICAgICAgICkuYWRkVG8obWFwX2Q1MDA0MTRmMTc3OTRhNGE4MTU2OTZiZGQ1Zjg1ODljKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwXzA5MzM5MDVkZDc4YzQxMDliNDI5M2EzZTcyYjczZWI5ID0gTC5wb3B1cCh7bWF4V2lkdGg6ICczMDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sXzBjNGU5NDEyYzM4ZjQxOTE5YTc1OTUxNTBjMjllZWI1ID0gJCgnPGRpdiBpZD0iaHRtbF8wYzRlOTQxMmMzOGY0MTkxOWE3NTk1MTUwYzI5ZWViNSIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+TGluZGVud29vZDwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfMDkzMzkwNWRkNzhjNDEwOWI0MjkzYTNlNzJiNzNlYjkuc2V0Q29udGVudChodG1sXzBjNGU5NDEyYzM4ZjQxOTE5YTc1OTUxNTBjMjllZWI1KTsKICAgICAgICAgICAgCgogICAgICAgICAgICBjaXJjbGVfbWFya2VyX2U1YzU4NzZmMWYzOTQyNzk4ODc3MDNiZGU5MjhkMzdkLmJpbmRQb3B1cChwb3B1cF8wOTMzOTA1ZGQ3OGM0MTA5YjQyOTNhM2U3MmI3M2ViOSk7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgY2lyY2xlX21hcmtlcl9kZGIwZjkzZTFlZTQ0Nzk2YTFlOTRmMjdiZjBkOWQ1MiA9IEwuY2lyY2xlTWFya2VyKAogICAgICAgICAgICAgICAgWzQwLjY2Nzg4Mzg5NjYwMjQ3LC03My43NDAyNTYwNzk4OTgyMl0sCiAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICJibHVlIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiB0cnVlLAogICJmaWxsQ29sb3IiOiAiIzMxODZjYyIsCiAgImZpbGxPcGFjaXR5IjogMC43LAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAib3BhY2l0eSI6IDEuMCwKICAicmFkaXVzIjogNSwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9CiAgICAgICAgICAgICAgICApLmFkZFRvKG1hcF9kNTAwNDE0ZjE3Nzk0YTRhODE1Njk2YmRkNWY4NTg5Yyk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF9jMGU1OGE0YjZmODg0Mjg0YjFhY2YwMWEyYmJlZDA1NiA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF8zOWIwN2NmNjhkNWM0YTNiOGI0ODg3M2ZlYTlmMDRjMSA9ICQoJzxkaXYgaWQ9Imh0bWxfMzliMDdjZjY4ZDVjNGEzYjhiNDg4NzNmZWE5ZjA0YzEiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPkxhdXJlbHRvbjwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfYzBlNThhNGI2Zjg4NDI4NGIxYWNmMDFhMmJiZWQwNTYuc2V0Q29udGVudChodG1sXzM5YjA3Y2Y2OGQ1YzRhM2I4YjQ4ODczZmVhOWYwNGMxKTsKICAgICAgICAgICAgCgogICAgICAgICAgICBjaXJjbGVfbWFya2VyX2RkYjBmOTNlMWVlNDQ3OTZhMWU5NGYyN2JmMGQ5ZDUyLmJpbmRQb3B1cChwb3B1cF9jMGU1OGE0YjZmODg0Mjg0YjFhY2YwMWEyYmJlZDA1Nik7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgY2lyY2xlX21hcmtlcl9kZjJlNmVkNjZhY2Y0M2UyYmVhYWI3NTNiMDFlN2Y0MSA9IEwuY2lyY2xlTWFya2VyKAogICAgICAgICAgICAgICAgWzQwLjczNjA3NDU3MDgzMDc5NSwtNzMuODYyNTI0NzE0MTM3NF0sCiAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICJibHVlIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiB0cnVlLAogICJmaWxsQ29sb3IiOiAiIzMxODZjYyIsCiAgImZpbGxPcGFjaXR5IjogMC43LAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAib3BhY2l0eSI6IDEuMCwKICAicmFkaXVzIjogNSwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9CiAgICAgICAgICAgICAgICApLmFkZFRvKG1hcF9kNTAwNDE0ZjE3Nzk0YTRhODE1Njk2YmRkNWY4NTg5Yyk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF9jNWM0MzdkZGUwMDY0M2U2YjAyMTEzZGRmYmU0ZDFmYSA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF8zYTkwNTI4M2VmNTg0MGFkYjI2MzM3MTk0MjE2ODg0OCA9ICQoJzxkaXYgaWQ9Imh0bWxfM2E5MDUyODNlZjU4NDBhZGIyNjMzNzE5NDIxNjg4NDgiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPkxlZnJhayBDaXR5PC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF9jNWM0MzdkZGUwMDY0M2U2YjAyMTEzZGRmYmU0ZDFmYS5zZXRDb250ZW50KGh0bWxfM2E5MDUyODNlZjU4NDBhZGIyNjMzNzE5NDIxNjg4NDgpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIGNpcmNsZV9tYXJrZXJfZGYyZTZlZDY2YWNmNDNlMmJlYWFiNzUzYjAxZTdmNDEuYmluZFBvcHVwKHBvcHVwX2M1YzQzN2RkZTAwNjQzZTZiMDIxMTNkZGZiZTRkMWZhKTsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBjaXJjbGVfbWFya2VyXzQyZjY4NmRmN2UwZDRlYWVhOTgxYWViNjg5Yzc5M2Q3ID0gTC5jaXJjbGVNYXJrZXIoCiAgICAgICAgICAgICAgICBbNDAuNTc2MTU1NTY1NDMxMDksLTczLjg1NDAxNzUwMzkyNTJdLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiYmx1ZSIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogIiMzMTg2Y2MiLAogICJmaWxsT3BhY2l0eSI6IDAuNywKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDUsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKS5hZGRUbyhtYXBfZDUwMDQxNGYxNzc5NGE0YTgxNTY5NmJkZDVmODU4OWMpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfYWI1Mzg0YmM0MDQzNGUyMThiYjcyNWFjZDk0ODg1ZjAgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfODQ0ZTRlNzg0MDIwNGUzYWFjYzg0MTIwMjhkNGQ4ZWIgPSAkKCc8ZGl2IGlkPSJodG1sXzg0NGU0ZTc4NDAyMDRlM2FhY2M4NDEyMDI4ZDRkOGViIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij5CZWxsZSBIYXJib3I8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwX2FiNTM4NGJjNDA0MzRlMjE4YmI3MjVhY2Q5NDg4NWYwLnNldENvbnRlbnQoaHRtbF84NDRlNGU3ODQwMjA0ZTNhYWNjODQxMjAyOGQ0ZDhlYik7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl80MmY2ODZkZjdlMGQ0ZWFlYTk4MWFlYjY4OWM3OTNkNy5iaW5kUG9wdXAocG9wdXBfYWI1Mzg0YmM0MDQzNGUyMThiYjcyNWFjZDk0ODg1ZjApOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfMTQwMzY0NGVkNmM1NDViY2E3MDAwNDYwZmYyMjY3OTAgPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MC41ODAzNDI5NTY0NjEzMSwtNzMuODQxNTMzNzAyMjYxODZdLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiYmx1ZSIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogIiMzMTg2Y2MiLAogICJmaWxsT3BhY2l0eSI6IDAuNywKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDUsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKS5hZGRUbyhtYXBfZDUwMDQxNGYxNzc5NGE0YTgxNTY5NmJkZDVmODU4OWMpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfMTIxNDAzNThjOGU5NGRjMTgzNzI0YjU1N2ZhMDIzYTUgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfN2RkZTc3M2E5NDAyNGQyYWJhZDdlM2NkMjJmMDQ0MGYgPSAkKCc8ZGl2IGlkPSJodG1sXzdkZGU3NzNhOTQwMjRkMmFiYWQ3ZTNjZDIyZjA0NDBmIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij5Sb2NrYXdheSBQYXJrPC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF8xMjE0MDM1OGM4ZTk0ZGMxODM3MjRiNTU3ZmEwMjNhNS5zZXRDb250ZW50KGh0bWxfN2RkZTc3M2E5NDAyNGQyYWJhZDdlM2NkMjJmMDQ0MGYpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIGNpcmNsZV9tYXJrZXJfMTQwMzY0NGVkNmM1NDViY2E3MDAwNDYwZmYyMjY3OTAuYmluZFBvcHVwKHBvcHVwXzEyMTQwMzU4YzhlOTRkYzE4MzcyNGI1NTdmYTAyM2E1KTsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBjaXJjbGVfbWFya2VyXzVjYmIxODg1NDBhYTQ0NWQ5ZDBlMzRjM2E5N2ZmZjY1ID0gTC5jaXJjbGVNYXJrZXIoCiAgICAgICAgICAgICAgICBbNDAuNTk3NzEwNjE1NjU3NjgsLTczLjc5NjY0NzUwODQ0MDQ3XSwKICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogImJsdWUiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IHRydWUsCiAgImZpbGxDb2xvciI6ICIjMzE4NmNjIiwKICAiZmlsbE9wYWNpdHkiOiAwLjcsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJvcGFjaXR5IjogMS4wLAogICJyYWRpdXMiOiA1LAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAzCn0KICAgICAgICAgICAgICAgICkuYWRkVG8obWFwX2Q1MDA0MTRmMTc3OTRhNGE4MTU2OTZiZGQ1Zjg1ODljKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwX2E0YzMzODMyZWQ3ZjQ0N2ZiYjdlYjQ1NzEzNmRmOWRmID0gTC5wb3B1cCh7bWF4V2lkdGg6ICczMDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sXzNlMTZlNWY0NzY5ZTRkOWM4ZTk0ZGJjNWJhYzMwNzU4ID0gJCgnPGRpdiBpZD0iaHRtbF8zZTE2ZTVmNDc2OWU0ZDljOGU5NGRiYzViYWMzMDc1OCIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+U29tZXJ2aWxsZTwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfYTRjMzM4MzJlZDdmNDQ3ZmJiN2ViNDU3MTM2ZGY5ZGYuc2V0Q29udGVudChodG1sXzNlMTZlNWY0NzY5ZTRkOWM4ZTk0ZGJjNWJhYzMwNzU4KTsKICAgICAgICAgICAgCgogICAgICAgICAgICBjaXJjbGVfbWFya2VyXzVjYmIxODg1NDBhYTQ0NWQ5ZDBlMzRjM2E5N2ZmZjY1LmJpbmRQb3B1cChwb3B1cF9hNGMzMzgzMmVkN2Y0NDdmYmI3ZWI0NTcxMzZkZjlkZik7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgY2lyY2xlX21hcmtlcl83NTM0Y2VlMzVhNjc0YjJhODZhMjJkMWE0ZDZmYjdjMyA9IEwuY2lyY2xlTWFya2VyKAogICAgICAgICAgICAgICAgWzQwLjY2MDAwMzIyNzMzNjEzLC03My43NTE3NTMxMDczMTE1M10sCiAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICJibHVlIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiB0cnVlLAogICJmaWxsQ29sb3IiOiAiIzMxODZjYyIsCiAgImZpbGxPcGFjaXR5IjogMC43LAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAib3BhY2l0eSI6IDEuMCwKICAicmFkaXVzIjogNSwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9CiAgICAgICAgICAgICAgICApLmFkZFRvKG1hcF9kNTAwNDE0ZjE3Nzk0YTRhODE1Njk2YmRkNWY4NTg5Yyk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF9hYjE3YjU0OGI4MGM0NzlmYTUyNGJkZThmODdhMTdlNCA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF85Y2QzODU5YWUzYTM0NWYzYWFkOWE0ODU4MjQ2ZDFlYyA9ICQoJzxkaXYgaWQ9Imh0bWxfOWNkMzg1OWFlM2EzNDVmM2FhZDlhNDg1ODI0NmQxZWMiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPkJyb29rdmlsbGU8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwX2FiMTdiNTQ4YjgwYzQ3OWZhNTI0YmRlOGY4N2ExN2U0LnNldENvbnRlbnQoaHRtbF85Y2QzODU5YWUzYTM0NWYzYWFkOWE0ODU4MjQ2ZDFlYyk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl83NTM0Y2VlMzVhNjc0YjJhODZhMjJkMWE0ZDZmYjdjMy5iaW5kUG9wdXAocG9wdXBfYWIxN2I1NDhiODBjNDc5ZmE1MjRiZGU4Zjg3YTE3ZTQpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfYTAzZmU5NjZjOTkyNGZjMWEwZWMxNjcwMDM5NTMzNWEgPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MC43MzMwMTQwNDAyNzgzNCwtNzMuNzM4ODkxOTg5MTI0ODFdLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiYmx1ZSIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogIiMzMTg2Y2MiLAogICJmaWxsT3BhY2l0eSI6IDAuNywKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDUsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKS5hZGRUbyhtYXBfZDUwMDQxNGYxNzc5NGE0YTgxNTY5NmJkZDVmODU4OWMpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfODcxMTUzNjhkOWE2NDFjMDk3YWVlOTFlOTc2YWNhYjMgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfMzI4Njk1NTI1Njc5NGQ4ZWI5Y2JkZTQwZmRiZTE0MTUgPSAkKCc8ZGl2IGlkPSJodG1sXzMyODY5NTUyNTY3OTRkOGViOWNiZGU0MGZkYmUxNDE1IiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij5CZWxsYWlyZTwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfODcxMTUzNjhkOWE2NDFjMDk3YWVlOTFlOTc2YWNhYjMuc2V0Q29udGVudChodG1sXzMyODY5NTUyNTY3OTRkOGViOWNiZGU0MGZkYmUxNDE1KTsKICAgICAgICAgICAgCgogICAgICAgICAgICBjaXJjbGVfbWFya2VyX2EwM2ZlOTY2Yzk5MjRmYzFhMGVjMTY3MDAzOTUzMzVhLmJpbmRQb3B1cChwb3B1cF84NzExNTM2OGQ5YTY0MWMwOTdhZWU5MWU5NzZhY2FiMyk7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgY2lyY2xlX21hcmtlcl9hNjNhNTYyNTI3ZDI0MTk5YWU0Y2FkYWIxMjg1ZTZkMiA9IEwuY2lyY2xlTWFya2VyKAogICAgICAgICAgICAgICAgWzQwLjc1NDA3MDk5OTA0ODksLTczLjg1NzUxNzkwNjc2NDQ3XSwKICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogImJsdWUiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IHRydWUsCiAgImZpbGxDb2xvciI6ICIjMzE4NmNjIiwKICAiZmlsbE9wYWNpdHkiOiAwLjcsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJvcGFjaXR5IjogMS4wLAogICJyYWRpdXMiOiA1LAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAzCn0KICAgICAgICAgICAgICAgICkuYWRkVG8obWFwX2Q1MDA0MTRmMTc3OTRhNGE4MTU2OTZiZGQ1Zjg1ODljKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwXzViNzdmYTNlZmVhMzQwMjBiZDU0NTZhYTQ0OTM5ZThmID0gTC5wb3B1cCh7bWF4V2lkdGg6ICczMDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sX2I0ZDVjODEwN2UzNjQxODU5YWQ1OWJjOTQwYTA0Y2ViID0gJCgnPGRpdiBpZD0iaHRtbF9iNGQ1YzgxMDdlMzY0MTg1OWFkNTliYzk0MGEwNGNlYiIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+Tm9ydGggQ29yb25hPC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF81Yjc3ZmEzZWZlYTM0MDIwYmQ1NDU2YWE0NDkzOWU4Zi5zZXRDb250ZW50KGh0bWxfYjRkNWM4MTA3ZTM2NDE4NTlhZDU5YmM5NDBhMDRjZWIpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIGNpcmNsZV9tYXJrZXJfYTYzYTU2MjUyN2QyNDE5OWFlNGNhZGFiMTI4NWU2ZDIuYmluZFBvcHVwKHBvcHVwXzViNzdmYTNlZmVhMzQwMjBiZDU0NTZhYTQ0OTM5ZThmKTsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBjaXJjbGVfbWFya2VyXzYxNGUzOTY0N2IwZDQ0MjhiNGFlMTQ2MmRkNDRkMTk5ID0gTC5jaXJjbGVNYXJrZXIoCiAgICAgICAgICAgICAgICBbNDAuNzE0NjExMDgxNTExNywtNzMuODQxMDIyMTEyMzQwMV0sCiAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICJibHVlIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiB0cnVlLAogICJmaWxsQ29sb3IiOiAiIzMxODZjYyIsCiAgImZpbGxPcGFjaXR5IjogMC43LAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAib3BhY2l0eSI6IDEuMCwKICAicmFkaXVzIjogNSwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9CiAgICAgICAgICAgICAgICApLmFkZFRvKG1hcF9kNTAwNDE0ZjE3Nzk0YTRhODE1Njk2YmRkNWY4NTg5Yyk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF80M2JhMTVmOWJiMzU0MTczYWUyMzFhNzA2NDI3M2E4NiA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF9mZmIxNzI4MjVkNjM0YzU3ODUyZTg4MDMxOThiOGZiZSA9ICQoJzxkaXYgaWQ9Imh0bWxfZmZiMTcyODI1ZDYzNGM1Nzg1MmU4ODAzMTk4YjhmYmUiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPkZvcmVzdCBIaWxscyBHYXJkZW5zPC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF80M2JhMTVmOWJiMzU0MTczYWUyMzFhNzA2NDI3M2E4Ni5zZXRDb250ZW50KGh0bWxfZmZiMTcyODI1ZDYzNGM1Nzg1MmU4ODAzMTk4YjhmYmUpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIGNpcmNsZV9tYXJrZXJfNjE0ZTM5NjQ3YjBkNDQyOGI0YWUxNDYyZGQ0NGQxOTkuYmluZFBvcHVwKHBvcHVwXzQzYmExNWY5YmIzNTQxNzNhZTIzMWE3MDY0MjczYTg2KTsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBjaXJjbGVfbWFya2VyXzYwZjNjODZkOTJlYjQ3ZWNhYzMxY2ViY2E1MmU0ZTNlID0gTC5jaXJjbGVNYXJrZXIoCiAgICAgICAgICAgICAgICBbNDAuNjQ0OTgxNTcxMDA0NCwtNzQuMDc5MzUzMTI1MTI3OTddLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiYmx1ZSIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogIiMzMTg2Y2MiLAogICJmaWxsT3BhY2l0eSI6IDAuNywKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDUsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKS5hZGRUbyhtYXBfZDUwMDQxNGYxNzc5NGE0YTgxNTY5NmJkZDVmODU4OWMpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfMjkyMWJkNzllMDY2NDJhMjk3OTc3NmQzNGNhMjViYjUgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfN2U1ODg2NGYzY2Q5NDc0NTk5OTQ1ZWU3MjZhMzBkYjMgPSAkKCc8ZGl2IGlkPSJodG1sXzdlNTg4NjRmM2NkOTQ3NDU5OTk0NWVlNzI2YTMwZGIzIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij5TdC4gR2VvcmdlPC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF8yOTIxYmQ3OWUwNjY0MmEyOTc5Nzc2ZDM0Y2EyNWJiNS5zZXRDb250ZW50KGh0bWxfN2U1ODg2NGYzY2Q5NDc0NTk5OTQ1ZWU3MjZhMzBkYjMpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIGNpcmNsZV9tYXJrZXJfNjBmM2M4NmQ5MmViNDdlY2FjMzFjZWJjYTUyZTRlM2UuYmluZFBvcHVwKHBvcHVwXzI5MjFiZDc5ZTA2NjQyYTI5Nzk3NzZkMzRjYTI1YmI1KTsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBjaXJjbGVfbWFya2VyXzI5NDJkMmYzNGVjODQ3NmM4MGRjYzg2MzI5MzA5MTNlID0gTC5jaXJjbGVNYXJrZXIoCiAgICAgICAgICAgICAgICBbNDAuNjQwNjE0NTU5MTM1MTEsLTc0LjA4NzAxNjUwNTE2NjI1XSwKICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogImJsdWUiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IHRydWUsCiAgImZpbGxDb2xvciI6ICIjMzE4NmNjIiwKICAiZmlsbE9wYWNpdHkiOiAwLjcsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJvcGFjaXR5IjogMS4wLAogICJyYWRpdXMiOiA1LAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAzCn0KICAgICAgICAgICAgICAgICkuYWRkVG8obWFwX2Q1MDA0MTRmMTc3OTRhNGE4MTU2OTZiZGQ1Zjg1ODljKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwXzUwOWRmNDFkZmFmMjRkZjhiZjQ5NjNiMzlmYzkwZWJmID0gTC5wb3B1cCh7bWF4V2lkdGg6ICczMDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sX2Q1MzhjZDkwMzljMTRjNjk4ZWJjYjA3MWU4MGI5ZjE4ID0gJCgnPGRpdiBpZD0iaHRtbF9kNTM4Y2Q5MDM5YzE0YzY5OGViY2IwNzFlODBiOWYxOCIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+TmV3IEJyaWdodG9uPC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF81MDlkZjQxZGZhZjI0ZGY4YmY0OTYzYjM5ZmM5MGViZi5zZXRDb250ZW50KGh0bWxfZDUzOGNkOTAzOWMxNGM2OThlYmNiMDcxZTgwYjlmMTgpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIGNpcmNsZV9tYXJrZXJfMjk0MmQyZjM0ZWM4NDc2YzgwZGNjODYzMjkzMDkxM2UuYmluZFBvcHVwKHBvcHVwXzUwOWRmNDFkZmFmMjRkZjhiZjQ5NjNiMzlmYzkwZWJmKTsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBjaXJjbGVfbWFya2VyX2QzOGFmMGNlMDQ2YzQ4NjFhOGZmN2M2YWFkOWMwYzE4ID0gTC5jaXJjbGVNYXJrZXIoCiAgICAgICAgICAgICAgICBbNDAuNjI2OTI3NjI1MzgxNzYsLTc0LjA3NzkwMTkyNjYwMDY2XSwKICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogImJsdWUiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IHRydWUsCiAgImZpbGxDb2xvciI6ICIjMzE4NmNjIiwKICAiZmlsbE9wYWNpdHkiOiAwLjcsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJvcGFjaXR5IjogMS4wLAogICJyYWRpdXMiOiA1LAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAzCn0KICAgICAgICAgICAgICAgICkuYWRkVG8obWFwX2Q1MDA0MTRmMTc3OTRhNGE4MTU2OTZiZGQ1Zjg1ODljKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwXzlmYzNjNTM0NGIyNDRlNTBhODI1NmJmNDQzODljZDU0ID0gTC5wb3B1cCh7bWF4V2lkdGg6ICczMDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sX2Q1Y2YyMGM0ODI0OTQ0Mjg5MDQzZjZjZWI4MTA2MGRlID0gJCgnPGRpdiBpZD0iaHRtbF9kNWNmMjBjNDgyNDk0NDI4OTA0M2Y2Y2ViODEwNjBkZSIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+U3RhcGxldG9uPC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF85ZmMzYzUzNDRiMjQ0ZTUwYTgyNTZiZjQ0Mzg5Y2Q1NC5zZXRDb250ZW50KGh0bWxfZDVjZjIwYzQ4MjQ5NDQyODkwNDNmNmNlYjgxMDYwZGUpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIGNpcmNsZV9tYXJrZXJfZDM4YWYwY2UwNDZjNDg2MWE4ZmY3YzZhYWQ5YzBjMTguYmluZFBvcHVwKHBvcHVwXzlmYzNjNTM0NGIyNDRlNTBhODI1NmJmNDQzODljZDU0KTsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBjaXJjbGVfbWFya2VyXzQ3YzQ0YjNjYzkxMDQ0MGNiZDg3NTUxMTZjNTU5MTRhID0gTC5jaXJjbGVNYXJrZXIoCiAgICAgICAgICAgICAgICBbNDAuNjE1MzA0OTQ2NTI3NjEsLTc0LjA2OTgwNTI2NzE2MTQxXSwKICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogImJsdWUiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IHRydWUsCiAgImZpbGxDb2xvciI6ICIjMzE4NmNjIiwKICAiZmlsbE9wYWNpdHkiOiAwLjcsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJvcGFjaXR5IjogMS4wLAogICJyYWRpdXMiOiA1LAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAzCn0KICAgICAgICAgICAgICAgICkuYWRkVG8obWFwX2Q1MDA0MTRmMTc3OTRhNGE4MTU2OTZiZGQ1Zjg1ODljKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwXzkzODFmNGExYWI5YjRiODQ5MjU3MDhlZDU4NjA4NzdmID0gTC5wb3B1cCh7bWF4V2lkdGg6ICczMDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sXzYwZTZiZmNkOWEzODQ5YWQ4MTE5NmFiZWU2ZjVmZjAwID0gJCgnPGRpdiBpZD0iaHRtbF82MGU2YmZjZDlhMzg0OWFkODExOTZhYmVlNmY1ZmYwMCIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+Um9zZWJhbms8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzkzODFmNGExYWI5YjRiODQ5MjU3MDhlZDU4NjA4NzdmLnNldENvbnRlbnQoaHRtbF82MGU2YmZjZDlhMzg0OWFkODExOTZhYmVlNmY1ZmYwMCk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl80N2M0NGIzY2M5MTA0NDBjYmQ4NzU1MTE2YzU1OTE0YS5iaW5kUG9wdXAocG9wdXBfOTM4MWY0YTFhYjliNGI4NDkyNTcwOGVkNTg2MDg3N2YpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfYTI3MDMxZmYyMDRhNDg0N2FkMDAwNTVlNWYxNDA2YzIgPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MC42MzE4Nzg5MjY1NDYwNywtNzQuMTA3MTgxNzgyNjU2MV0sCiAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICJibHVlIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiB0cnVlLAogICJmaWxsQ29sb3IiOiAiIzMxODZjYyIsCiAgImZpbGxPcGFjaXR5IjogMC43LAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAib3BhY2l0eSI6IDEuMCwKICAicmFkaXVzIjogNSwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9CiAgICAgICAgICAgICAgICApLmFkZFRvKG1hcF9kNTAwNDE0ZjE3Nzk0YTRhODE1Njk2YmRkNWY4NTg5Yyk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF84MzgxOWU4OTcwNWM0ODI1YTJlODQ2OGI0Yzk4MWRiOSA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF8xOTQyM2EyNTEzMDY0NjcwYTQ1ZDc1YjdkZTI5YmFmMCA9ICQoJzxkaXYgaWQ9Imh0bWxfMTk0MjNhMjUxMzA2NDY3MGE0NWQ3NWI3ZGUyOWJhZjAiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPldlc3QgQnJpZ2h0b248L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzgzODE5ZTg5NzA1YzQ4MjVhMmU4NDY4YjRjOTgxZGI5LnNldENvbnRlbnQoaHRtbF8xOTQyM2EyNTEzMDY0NjcwYTQ1ZDc1YjdkZTI5YmFmMCk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl9hMjcwMzFmZjIwNGE0ODQ3YWQwMDA1NWU1ZjE0MDZjMi5iaW5kUG9wdXAocG9wdXBfODM4MTllODk3MDVjNDgyNWEyZTg0NjhiNGM5ODFkYjkpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfNzc1OTBiNjg0YzZhNDMwNTg1NmUyZWI2NThlZWFkNWYgPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MC42MjQxODQ3OTEzMTMwMDYsLTc0LjA4NzI0ODE5OTgzNzI5XSwKICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogImJsdWUiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IHRydWUsCiAgImZpbGxDb2xvciI6ICIjMzE4NmNjIiwKICAiZmlsbE9wYWNpdHkiOiAwLjcsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJvcGFjaXR5IjogMS4wLAogICJyYWRpdXMiOiA1LAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAzCn0KICAgICAgICAgICAgICAgICkuYWRkVG8obWFwX2Q1MDA0MTRmMTc3OTRhNGE4MTU2OTZiZGQ1Zjg1ODljKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwX2Q1Mzk4N2EwN2Y2MTRlYWU5MWUwMjViMzc4YmZkOWUxID0gTC5wb3B1cCh7bWF4V2lkdGg6ICczMDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sXzA1MmE3YTdlOGY3NzQ5YmJiOThjMTVmYzMwY2JjMmI0ID0gJCgnPGRpdiBpZD0iaHRtbF8wNTJhN2E3ZThmNzc0OWJiYjk4YzE1ZmMzMGNiYzJiNCIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+R3J5bWVzIEhpbGw8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwX2Q1Mzk4N2EwN2Y2MTRlYWU5MWUwMjViMzc4YmZkOWUxLnNldENvbnRlbnQoaHRtbF8wNTJhN2E3ZThmNzc0OWJiYjk4YzE1ZmMzMGNiYzJiNCk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl83NzU5MGI2ODRjNmE0MzA1ODU2ZTJlYjY1OGVlYWQ1Zi5iaW5kUG9wdXAocG9wdXBfZDUzOTg3YTA3ZjYxNGVhZTkxZTAyNWIzNzhiZmQ5ZTEpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfMWMwZmExMGI1OGU3NGJjZDk3ZTVhYzI4YWE5NTdiOWMgPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MC41OTcwNjg1MTgxNDY3MywtNzQuMTExMzI4ODE4MDA4OF0sCiAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICJibHVlIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiB0cnVlLAogICJmaWxsQ29sb3IiOiAiIzMxODZjYyIsCiAgImZpbGxPcGFjaXR5IjogMC43LAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAib3BhY2l0eSI6IDEuMCwKICAicmFkaXVzIjogNSwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9CiAgICAgICAgICAgICAgICApLmFkZFRvKG1hcF9kNTAwNDE0ZjE3Nzk0YTRhODE1Njk2YmRkNWY4NTg5Yyk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF8xOWI2NzkwNjc4MmY0YzUzYjEzNTJlOTdhYTk2YjIzNCA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF82OTJjOTk1NDAwMGI0MTEwODA1OWYyYTQ1Nzg2M2E2NyA9ICQoJzxkaXYgaWQ9Imh0bWxfNjkyYzk5NTQwMDBiNDExMDgwNTlmMmE0NTc4NjNhNjciIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPlRvZHQgSGlsbDwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfMTliNjc5MDY3ODJmNGM1M2IxMzUyZTk3YWE5NmIyMzQuc2V0Q29udGVudChodG1sXzY5MmM5OTU0MDAwYjQxMTA4MDU5ZjJhNDU3ODYzYTY3KTsKICAgICAgICAgICAgCgogICAgICAgICAgICBjaXJjbGVfbWFya2VyXzFjMGZhMTBiNThlNzRiY2Q5N2U1YWMyOGFhOTU3YjljLmJpbmRQb3B1cChwb3B1cF8xOWI2NzkwNjc4MmY0YzUzYjEzNTJlOTdhYTk2YjIzNCk7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgY2lyY2xlX21hcmtlcl9iNWRkODE3Mzg5MDQ0NWY5ODdiOWFhNzZlNWYyZDZmZSA9IEwuY2lyY2xlTWFya2VyKAogICAgICAgICAgICAgICAgWzQwLjU4MDI0NzQxMzUwOTU2LC03NC4wNzk1NTI5MjUzOTgyXSwKICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogImJsdWUiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IHRydWUsCiAgImZpbGxDb2xvciI6ICIjMzE4NmNjIiwKICAiZmlsbE9wYWNpdHkiOiAwLjcsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJvcGFjaXR5IjogMS4wLAogICJyYWRpdXMiOiA1LAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAzCn0KICAgICAgICAgICAgICAgICkuYWRkVG8obWFwX2Q1MDA0MTRmMTc3OTRhNGE4MTU2OTZiZGQ1Zjg1ODljKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwXzBjMDMwZWUyMzJjZTQ0MDBiODNmN2M5NzY4YWIzNTRiID0gTC5wb3B1cCh7bWF4V2lkdGg6ICczMDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sXzY4NGJjMGVjNzE2MzQzNWU5YzRiYTc4MjNkZTUzODlhID0gJCgnPGRpdiBpZD0iaHRtbF82ODRiYzBlYzcxNjM0MzVlOWM0YmE3ODIzZGU1Mzg5YSIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+U291dGggQmVhY2g8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzBjMDMwZWUyMzJjZTQ0MDBiODNmN2M5NzY4YWIzNTRiLnNldENvbnRlbnQoaHRtbF82ODRiYzBlYzcxNjM0MzVlOWM0YmE3ODIzZGU1Mzg5YSk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl9iNWRkODE3Mzg5MDQ0NWY5ODdiOWFhNzZlNWYyZDZmZS5iaW5kUG9wdXAocG9wdXBfMGMwMzBlZTIzMmNlNDQwMGI4M2Y3Yzk3NjhhYjM1NGIpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfZTc2MTRhYmRhMjE5NDMyM2I2MGQ2ODQzZjQzM2ZlN2QgPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MC42MzM2NjkzMDU1NDM2NSwtNzQuMTI5NDM0MjY3OTcwMDhdLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiYmx1ZSIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogIiMzMTg2Y2MiLAogICJmaWxsT3BhY2l0eSI6IDAuNywKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDUsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKS5hZGRUbyhtYXBfZDUwMDQxNGYxNzc5NGE0YTgxNTY5NmJkZDVmODU4OWMpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfZTUxMWYyZTY0MDQ3NDFmYzgwMDgzZTYyZGRlZWZjZWEgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfMWExYjkwYTQ4MWQ0NDBmMzllZjAzNDNkNjM3Y2VmMDQgPSAkKCc8ZGl2IGlkPSJodG1sXzFhMWI5MGE0ODFkNDQwZjM5ZWYwMzQzZDYzN2NlZjA0IiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij5Qb3J0IFJpY2htb25kPC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF9lNTExZjJlNjQwNDc0MWZjODAwODNlNjJkZGVlZmNlYS5zZXRDb250ZW50KGh0bWxfMWExYjkwYTQ4MWQ0NDBmMzllZjAzNDNkNjM3Y2VmMDQpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIGNpcmNsZV9tYXJrZXJfZTc2MTRhYmRhMjE5NDMyM2I2MGQ2ODQzZjQzM2ZlN2QuYmluZFBvcHVwKHBvcHVwX2U1MTFmMmU2NDA0NzQxZmM4MDA4M2U2MmRkZWVmY2VhKTsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBjaXJjbGVfbWFya2VyXzU1MGI5ZjRhMDRmODQ2MTlhNmYxNDgyOGJkMDViNGI0ID0gTC5jaXJjbGVNYXJrZXIoCiAgICAgICAgICAgICAgICBbNDAuNjMyNTQ2MzkwNDgxMTI0LC03NC4xNTAwODUzNzA0Njk4MV0sCiAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICJibHVlIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiB0cnVlLAogICJmaWxsQ29sb3IiOiAiIzMxODZjYyIsCiAgImZpbGxPcGFjaXR5IjogMC43LAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAib3BhY2l0eSI6IDEuMCwKICAicmFkaXVzIjogNSwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9CiAgICAgICAgICAgICAgICApLmFkZFRvKG1hcF9kNTAwNDE0ZjE3Nzk0YTRhODE1Njk2YmRkNWY4NTg5Yyk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF9jNzk4NTFiYjNiZWQ0ZGVlOGU3YTRlYWNkMDBiMjNlZiA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF8wMTljODQyNDI3Mjk0NjYwOTFhZDg5NjdjNzc4Njg2YiA9ICQoJzxkaXYgaWQ9Imh0bWxfMDE5Yzg0MjQyNzI5NDY2MDkxYWQ4OTY3Yzc3ODY4NmIiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPk1hcmluZXImIzM5O3MgSGFyYm9yPC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF9jNzk4NTFiYjNiZWQ0ZGVlOGU3YTRlYWNkMDBiMjNlZi5zZXRDb250ZW50KGh0bWxfMDE5Yzg0MjQyNzI5NDY2MDkxYWQ4OTY3Yzc3ODY4NmIpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIGNpcmNsZV9tYXJrZXJfNTUwYjlmNGEwNGY4NDYxOWE2ZjE0ODI4YmQwNWI0YjQuYmluZFBvcHVwKHBvcHVwX2M3OTg1MWJiM2JlZDRkZWU4ZTdhNGVhY2QwMGIyM2VmKTsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBjaXJjbGVfbWFya2VyX2UxY2NlZTJkNzE5ODRjNWFiMTE4ZmI0NjUzOWUwNWRkID0gTC5jaXJjbGVNYXJrZXIoCiAgICAgICAgICAgICAgICBbNDAuNjM5NjgyOTc4NDU1NDIsLTc0LjE3NDY0NTMyOTkzNTQyXSwKICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogImJsdWUiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IHRydWUsCiAgImZpbGxDb2xvciI6ICIjMzE4NmNjIiwKICAiZmlsbE9wYWNpdHkiOiAwLjcsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJvcGFjaXR5IjogMS4wLAogICJyYWRpdXMiOiA1LAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAzCn0KICAgICAgICAgICAgICAgICkuYWRkVG8obWFwX2Q1MDA0MTRmMTc3OTRhNGE4MTU2OTZiZGQ1Zjg1ODljKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwX2UxMWVmM2YzZDg1YTQ0MzA4OTc0Zjg5Yzk1ZjcyYzZhID0gTC5wb3B1cCh7bWF4V2lkdGg6ICczMDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sXzZkZmRiMzdhMTBmMzRmNzQ4NTU3ZGZmZGMxMjlhYzUwID0gJCgnPGRpdiBpZD0iaHRtbF82ZGZkYjM3YTEwZjM0Zjc0ODU1N2RmZmRjMTI5YWM1MCIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+UG9ydCBJdm9yeTwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfZTExZWYzZjNkODVhNDQzMDg5NzRmODljOTVmNzJjNmEuc2V0Q29udGVudChodG1sXzZkZmRiMzdhMTBmMzRmNzQ4NTU3ZGZmZGMxMjlhYzUwKTsKICAgICAgICAgICAgCgogICAgICAgICAgICBjaXJjbGVfbWFya2VyX2UxY2NlZTJkNzE5ODRjNWFiMTE4ZmI0NjUzOWUwNWRkLmJpbmRQb3B1cChwb3B1cF9lMTFlZjNmM2Q4NWE0NDMwODk3NGY4OWM5NWY3MmM2YSk7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgY2lyY2xlX21hcmtlcl9lZjAxYTBkM2Y5MGE0NmQ1ODVlOWE4Zjc3YjQwY2ZhNCA9IEwuY2lyY2xlTWFya2VyKAogICAgICAgICAgICAgICAgWzQwLjYxMzMzNTkzNzY2NzQyLC03NC4xMTkxODA1ODUzNDg0Ml0sCiAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICJibHVlIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiB0cnVlLAogICJmaWxsQ29sb3IiOiAiIzMxODZjYyIsCiAgImZpbGxPcGFjaXR5IjogMC43LAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAib3BhY2l0eSI6IDEuMCwKICAicmFkaXVzIjogNSwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9CiAgICAgICAgICAgICAgICApLmFkZFRvKG1hcF9kNTAwNDE0ZjE3Nzk0YTRhODE1Njk2YmRkNWY4NTg5Yyk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF9kYTYyZjg3ZDVhOTI0NzMyODkzZjQ3NTExOTUxM2UwOCA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF9hNGMzYjU2MjA3MjQ0ZGZmYTViNjkzMWIyNGRjZGQ3YiA9ICQoJzxkaXYgaWQ9Imh0bWxfYTRjM2I1NjIwNzI0NGRmZmE1YjY5MzFiMjRkY2RkN2IiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPkNhc3RsZXRvbiBDb3JuZXJzPC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF9kYTYyZjg3ZDVhOTI0NzMyODkzZjQ3NTExOTUxM2UwOC5zZXRDb250ZW50KGh0bWxfYTRjM2I1NjIwNzI0NGRmZmE1YjY5MzFiMjRkY2RkN2IpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIGNpcmNsZV9tYXJrZXJfZWYwMWEwZDNmOTBhNDZkNTg1ZTlhOGY3N2I0MGNmYTQuYmluZFBvcHVwKHBvcHVwX2RhNjJmODdkNWE5MjQ3MzI4OTNmNDc1MTE5NTEzZTA4KTsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBjaXJjbGVfbWFya2VyXzFiODllOTcyZjliMjRjOTg5NjMxZTU4MjM3ZTUzYzNlID0gTC5jaXJjbGVNYXJrZXIoCiAgICAgICAgICAgICAgICBbNDAuNTk0MjUyMzc5MTYxNjk1LC03NC4xNjQ5NjAzMTMyOTgyN10sCiAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICJibHVlIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiB0cnVlLAogICJmaWxsQ29sb3IiOiAiIzMxODZjYyIsCiAgImZpbGxPcGFjaXR5IjogMC43LAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAib3BhY2l0eSI6IDEuMCwKICAicmFkaXVzIjogNSwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9CiAgICAgICAgICAgICAgICApLmFkZFRvKG1hcF9kNTAwNDE0ZjE3Nzk0YTRhODE1Njk2YmRkNWY4NTg5Yyk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF85MzE0ZmY0NjI5ZWY0NTVlOGViNDIyNzMyYTM4OTJhNCA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF81N2ZhNTllYTU0MjY0ZWQyOGJjZjllMjU1YmEwNzkxOSA9ICQoJzxkaXYgaWQ9Imh0bWxfNTdmYTU5ZWE1NDI2NGVkMjhiY2Y5ZTI1NWJhMDc5MTkiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPk5ldyBTcHJpbmd2aWxsZTwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfOTMxNGZmNDYyOWVmNDU1ZThlYjQyMjczMmEzODkyYTQuc2V0Q29udGVudChodG1sXzU3ZmE1OWVhNTQyNjRlZDI4YmNmOWUyNTViYTA3OTE5KTsKICAgICAgICAgICAgCgogICAgICAgICAgICBjaXJjbGVfbWFya2VyXzFiODllOTcyZjliMjRjOTg5NjMxZTU4MjM3ZTUzYzNlLmJpbmRQb3B1cChwb3B1cF85MzE0ZmY0NjI5ZWY0NTVlOGViNDIyNzMyYTM4OTJhNCk7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgY2lyY2xlX21hcmtlcl8wNjg4ZmQ4Y2NmZTY0YWY2YjMzYTJiOWIxYjM0NjQ4YiA9IEwuY2lyY2xlTWFya2VyKAogICAgICAgICAgICAgICAgWzQwLjU4NjMxMzc1MTAzMjgxLC03NC4xOTA3MzcxNzUzODExNl0sCiAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICJibHVlIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiB0cnVlLAogICJmaWxsQ29sb3IiOiAiIzMxODZjYyIsCiAgImZpbGxPcGFjaXR5IjogMC43LAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAib3BhY2l0eSI6IDEuMCwKICAicmFkaXVzIjogNSwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9CiAgICAgICAgICAgICAgICApLmFkZFRvKG1hcF9kNTAwNDE0ZjE3Nzk0YTRhODE1Njk2YmRkNWY4NTg5Yyk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF81ODI3NDc5M2ZlMjg0OGE4OWRjNmU3MzUxMTdmNTliNSA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF9hNmUwODI1YmRkOTI0MzQ2YjM2ZmY3ZDlkOGFlOGViMyA9ICQoJzxkaXYgaWQ9Imh0bWxfYTZlMDgyNWJkZDkyNDM0NmIzNmZmN2Q5ZDhhZThlYjMiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPlRyYXZpczwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfNTgyNzQ3OTNmZTI4NDhhODlkYzZlNzM1MTE3ZjU5YjUuc2V0Q29udGVudChodG1sX2E2ZTA4MjViZGQ5MjQzNDZiMzZmZjdkOWQ4YWU4ZWIzKTsKICAgICAgICAgICAgCgogICAgICAgICAgICBjaXJjbGVfbWFya2VyXzA2ODhmZDhjY2ZlNjRhZjZiMzNhMmI5YjFiMzQ2NDhiLmJpbmRQb3B1cChwb3B1cF81ODI3NDc5M2ZlMjg0OGE4OWRjNmU3MzUxMTdmNTliNSk7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgY2lyY2xlX21hcmtlcl9mMTIzMWY5YjdlNTY0NDk4ODZiOGE4MGU1Y2MwY2UwMSA9IEwuY2lyY2xlTWFya2VyKAogICAgICAgICAgICAgICAgWzQwLjU3MjU3MjMxODIwNjMyLC03NC4xMTY0Nzk0MzYwNjM4XSwKICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogImJsdWUiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IHRydWUsCiAgImZpbGxDb2xvciI6ICIjMzE4NmNjIiwKICAiZmlsbE9wYWNpdHkiOiAwLjcsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJvcGFjaXR5IjogMS4wLAogICJyYWRpdXMiOiA1LAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAzCn0KICAgICAgICAgICAgICAgICkuYWRkVG8obWFwX2Q1MDA0MTRmMTc3OTRhNGE4MTU2OTZiZGQ1Zjg1ODljKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwX2IwN2NiOWFmOGJhYjQzNTE5M2RkODM3YmZiMTE5ZWU0ID0gTC5wb3B1cCh7bWF4V2lkdGg6ICczMDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sX2QwOGU1MzJhZDc4MDQ1NmFhNjA0MzhkYTg5OTYzMDcwID0gJCgnPGRpdiBpZD0iaHRtbF9kMDhlNTMyYWQ3ODA0NTZhYTYwNDM4ZGE4OTk2MzA3MCIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+TmV3IERvcnA8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwX2IwN2NiOWFmOGJhYjQzNTE5M2RkODM3YmZiMTE5ZWU0LnNldENvbnRlbnQoaHRtbF9kMDhlNTMyYWQ3ODA0NTZhYTYwNDM4ZGE4OTk2MzA3MCk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl9mMTIzMWY5YjdlNTY0NDk4ODZiOGE4MGU1Y2MwY2UwMS5iaW5kUG9wdXAocG9wdXBfYjA3Y2I5YWY4YmFiNDM1MTkzZGQ4MzdiZmIxMTllZTQpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfMTVmMThkMmY1YzgzNDRjMTk0ZTY4NzE4MzJkN2YwNzIgPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MC41NTg0NjIyNDMyODg4LC03NC4xMjE1NjU5Mzc3MTg5Nl0sCiAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICJibHVlIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiB0cnVlLAogICJmaWxsQ29sb3IiOiAiIzMxODZjYyIsCiAgImZpbGxPcGFjaXR5IjogMC43LAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAib3BhY2l0eSI6IDEuMCwKICAicmFkaXVzIjogNSwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9CiAgICAgICAgICAgICAgICApLmFkZFRvKG1hcF9kNTAwNDE0ZjE3Nzk0YTRhODE1Njk2YmRkNWY4NTg5Yyk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF9kMTNhMTIwZDMzNzk0NGZiOWQ3Y2MzNDA3OTNiMDQzNiA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF9mNzM2NmVmZWZkZWY0OGVhYTBhMGQzYWE4ZGQxNWI2OSA9ICQoJzxkaXYgaWQ9Imh0bWxfZjczNjZlZmVmZGVmNDhlYWEwYTBkM2FhOGRkMTViNjkiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPk9ha3dvb2Q8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwX2QxM2ExMjBkMzM3OTQ0ZmI5ZDdjYzM0MDc5M2IwNDM2LnNldENvbnRlbnQoaHRtbF9mNzM2NmVmZWZkZWY0OGVhYTBhMGQzYWE4ZGQxNWI2OSk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl8xNWYxOGQyZjVjODM0NGMxOTRlNjg3MTgzMmQ3ZjA3Mi5iaW5kUG9wdXAocG9wdXBfZDEzYTEyMGQzMzc5NDRmYjlkN2NjMzQwNzkzYjA0MzYpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfN2NkMGNjNjE4ZWMyNGNjZTliYTdlNGUxMjQ3YmNhZTMgPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MC41NDk0ODAyMjg3MTM2MDUsLTc0LjE0OTMyMzgxNDkwOTkyXSwKICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogImJsdWUiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IHRydWUsCiAgImZpbGxDb2xvciI6ICIjMzE4NmNjIiwKICAiZmlsbE9wYWNpdHkiOiAwLjcsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJvcGFjaXR5IjogMS4wLAogICJyYWRpdXMiOiA1LAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAzCn0KICAgICAgICAgICAgICAgICkuYWRkVG8obWFwX2Q1MDA0MTRmMTc3OTRhNGE4MTU2OTZiZGQ1Zjg1ODljKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwX2YzOTJjMGFmNTczNzQ1ZjliMTc5MjgwNGJkNDg1OTI5ID0gTC5wb3B1cCh7bWF4V2lkdGg6ICczMDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sXzljNzg4NjJkOGZmNTQyZjU4NzJlYjNjMGQxN2ExZjA2ID0gJCgnPGRpdiBpZD0iaHRtbF85Yzc4ODYyZDhmZjU0MmY1ODcyZWIzYzBkMTdhMWYwNiIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+R3JlYXQgS2lsbHM8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwX2YzOTJjMGFmNTczNzQ1ZjliMTc5MjgwNGJkNDg1OTI5LnNldENvbnRlbnQoaHRtbF85Yzc4ODYyZDhmZjU0MmY1ODcyZWIzYzBkMTdhMWYwNik7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl83Y2QwY2M2MThlYzI0Y2NlOWJhN2U0ZTEyNDdiY2FlMy5iaW5kUG9wdXAocG9wdXBfZjM5MmMwYWY1NzM3NDVmOWIxNzkyODA0YmQ0ODU5MjkpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfZmVmMWRiNWIxYzQxNGQ5MGExZTk2NjcyNDdkODhmNGMgPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MC41NDIyMzA3NDc0NTA3NDUsLTc0LjE2NDMzMDgwNDE5MzZdLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiYmx1ZSIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogIiMzMTg2Y2MiLAogICJmaWxsT3BhY2l0eSI6IDAuNywKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDUsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKS5hZGRUbyhtYXBfZDUwMDQxNGYxNzc5NGE0YTgxNTY5NmJkZDVmODU4OWMpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfMzJkODZiM2JhZWY5NDI1MDkyYWI5YWJiNjIwMDQxZGQgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfZmRlMTU1NTJlMzM2NDQ4MGJhOWI3MWU1Y2M0Njk4Y2QgPSAkKCc8ZGl2IGlkPSJodG1sX2ZkZTE1NTUyZTMzNjQ0ODBiYTliNzFlNWNjNDY5OGNkIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij5FbHRpbmd2aWxsZTwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfMzJkODZiM2JhZWY5NDI1MDkyYWI5YWJiNjIwMDQxZGQuc2V0Q29udGVudChodG1sX2ZkZTE1NTUyZTMzNjQ0ODBiYTliNzFlNWNjNDY5OGNkKTsKICAgICAgICAgICAgCgogICAgICAgICAgICBjaXJjbGVfbWFya2VyX2ZlZjFkYjViMWM0MTRkOTBhMWU5NjY3MjQ3ZDg4ZjRjLmJpbmRQb3B1cChwb3B1cF8zMmQ4NmIzYmFlZjk0MjUwOTJhYjlhYmI2MjAwNDFkZCk7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgY2lyY2xlX21hcmtlcl85MmE2MDk3NDA4NDk0YTc0ODA3M2I4NTU0ZDI1YTdmOSA9IEwuY2lyY2xlTWFya2VyKAogICAgICAgICAgICAgICAgWzQwLjUzODExNDE3NDc0NTA3LC03NC4xNzg1NDg2NjE2NTg3OF0sCiAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICJibHVlIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiB0cnVlLAogICJmaWxsQ29sb3IiOiAiIzMxODZjYyIsCiAgImZpbGxPcGFjaXR5IjogMC43LAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAib3BhY2l0eSI6IDEuMCwKICAicmFkaXVzIjogNSwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9CiAgICAgICAgICAgICAgICApLmFkZFRvKG1hcF9kNTAwNDE0ZjE3Nzk0YTRhODE1Njk2YmRkNWY4NTg5Yyk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF82YjMwNmFkYzY0YTk0ODk1YTkzMzZhMmRjNGEzZDExNyA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF9iYjUxZjZmNWVhZWM0NzU5YWE4NzA4MTY0MGVlMDhiNyA9ICQoJzxkaXYgaWQ9Imh0bWxfYmI1MWY2ZjVlYWVjNDc1OWFhODcwODE2NDBlZTA4YjciIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPkFubmFkYWxlPC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF82YjMwNmFkYzY0YTk0ODk1YTkzMzZhMmRjNGEzZDExNy5zZXRDb250ZW50KGh0bWxfYmI1MWY2ZjVlYWVjNDc1OWFhODcwODE2NDBlZTA4YjcpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIGNpcmNsZV9tYXJrZXJfOTJhNjA5NzQwODQ5NGE3NDgwNzNiODU1NGQyNWE3ZjkuYmluZFBvcHVwKHBvcHVwXzZiMzA2YWRjNjRhOTQ4OTVhOTMzNmEyZGM0YTNkMTE3KTsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBjaXJjbGVfbWFya2VyXzBiZjg2MGZhOGExMTQyNjM4M2VhNjRkZGYxZmM1ZjQ4ID0gTC5jaXJjbGVNYXJrZXIoCiAgICAgICAgICAgICAgICBbNDAuNTQxOTY3NjIyODg4NzU1LC03NC4yMDUyNDU4MjQ4MDMyNl0sCiAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICJibHVlIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiB0cnVlLAogICJmaWxsQ29sb3IiOiAiIzMxODZjYyIsCiAgImZpbGxPcGFjaXR5IjogMC43LAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAib3BhY2l0eSI6IDEuMCwKICAicmFkaXVzIjogNSwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9CiAgICAgICAgICAgICAgICApLmFkZFRvKG1hcF9kNTAwNDE0ZjE3Nzk0YTRhODE1Njk2YmRkNWY4NTg5Yyk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF9kYTRhNzIwZDRkMDM0MDNiYTY0NTU1MGE2YzBlYjg3YSA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF8yMjMzZTY2ZTMxNTU0ZjkzOWUxMmUzODc3Y2MxZDNjNSA9ICQoJzxkaXYgaWQ9Imh0bWxfMjIzM2U2NmUzMTU1NGY5MzllMTJlMzg3N2NjMWQzYzUiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPldvb2Ryb3c8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwX2RhNGE3MjBkNGQwMzQwM2JhNjQ1NTUwYTZjMGViODdhLnNldENvbnRlbnQoaHRtbF8yMjMzZTY2ZTMxNTU0ZjkzOWUxMmUzODc3Y2MxZDNjNSk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl8wYmY4NjBmYThhMTE0MjYzODNlYTY0ZGRmMWZjNWY0OC5iaW5kUG9wdXAocG9wdXBfZGE0YTcyMGQ0ZDAzNDAzYmE2NDU1NTBhNmMwZWI4N2EpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfZDlhZjEwNjA3NzAxNGFmNWFjNjgwYWE0OGFkMjkxMzUgPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MC41MDUzMzM3NjExNTY0MiwtNzQuMjQ2NTY5MzQyMzUyODNdLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiYmx1ZSIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogIiMzMTg2Y2MiLAogICJmaWxsT3BhY2l0eSI6IDAuNywKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDUsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKS5hZGRUbyhtYXBfZDUwMDQxNGYxNzc5NGE0YTgxNTY5NmJkZDVmODU4OWMpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfYjY4ODVjZDdjOWQwNDllYmFlZTg2N2UwOTA1ZTY3OTMgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfY2QxOWNmOWFlODM5NGUwNWJlZjAzMGNiMDIyZDkyNWIgPSAkKCc8ZGl2IGlkPSJodG1sX2NkMTljZjlhZTgzOTRlMDViZWYwMzBjYjAyMmQ5MjViIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij5Ub3R0ZW52aWxsZTwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfYjY4ODVjZDdjOWQwNDllYmFlZTg2N2UwOTA1ZTY3OTMuc2V0Q29udGVudChodG1sX2NkMTljZjlhZTgzOTRlMDViZWYwMzBjYjAyMmQ5MjViKTsKICAgICAgICAgICAgCgogICAgICAgICAgICBjaXJjbGVfbWFya2VyX2Q5YWYxMDYwNzcwMTRhZjVhYzY4MGFhNDhhZDI5MTM1LmJpbmRQb3B1cChwb3B1cF9iNjg4NWNkN2M5ZDA0OWViYWVlODY3ZTA5MDVlNjc5Myk7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgY2lyY2xlX21hcmtlcl82NDNhMmFjNDgyZTE0ODA4OGVkNDZjOGEyOTEyNmY4ZSA9IEwuY2lyY2xlTWFya2VyKAogICAgICAgICAgICAgICAgWzQwLjYzNzMxNjA2NzExMDMyNiwtNzQuMDgwNTUzNTE3OTAxMTVdLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiYmx1ZSIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogIiMzMTg2Y2MiLAogICJmaWxsT3BhY2l0eSI6IDAuNywKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDUsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKS5hZGRUbyhtYXBfZDUwMDQxNGYxNzc5NGE0YTgxNTY5NmJkZDVmODU4OWMpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfOGViNDc1OTBlNTM3NDg4MWFkYWNjNjdhNWFkYzM1OTcgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfOTVmZTQwZDIyZGQ3NDkwZGFhMWJmYzJhM2RlNDRhOTAgPSAkKCc8ZGl2IGlkPSJodG1sXzk1ZmU0MGQyMmRkNzQ5MGRhYTFiZmMyYTNkZTQ0YTkwIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij5Ub21wa2luc3ZpbGxlPC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF84ZWI0NzU5MGU1Mzc0ODgxYWRhY2M2N2E1YWRjMzU5Ny5zZXRDb250ZW50KGh0bWxfOTVmZTQwZDIyZGQ3NDkwZGFhMWJmYzJhM2RlNDRhOTApOwogICAgICAgICAgICAKCiAgICAgICAgICAgIGNpcmNsZV9tYXJrZXJfNjQzYTJhYzQ4MmUxNDgwODhlZDQ2YzhhMjkxMjZmOGUuYmluZFBvcHVwKHBvcHVwXzhlYjQ3NTkwZTUzNzQ4ODFhZGFjYzY3YTVhZGMzNTk3KTsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBjaXJjbGVfbWFya2VyX2Y5MzVkZjU2NmNiYzQwYjZhNDA4ODc1MjA4YTEzNTQxID0gTC5jaXJjbGVNYXJrZXIoCiAgICAgICAgICAgICAgICBbNDAuNjE5MTkzMTA3OTI2NzYsLTc0LjA5NjI5MDI5MjM1NDU4XSwKICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogImJsdWUiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IHRydWUsCiAgImZpbGxDb2xvciI6ICIjMzE4NmNjIiwKICAiZmlsbE9wYWNpdHkiOiAwLjcsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJvcGFjaXR5IjogMS4wLAogICJyYWRpdXMiOiA1LAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAzCn0KICAgICAgICAgICAgICAgICkuYWRkVG8obWFwX2Q1MDA0MTRmMTc3OTRhNGE4MTU2OTZiZGQ1Zjg1ODljKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwX2NkMjVmOGEwOWYyNTQ0NzRiOTZlMzgyYTYwNDNhNjg5ID0gTC5wb3B1cCh7bWF4V2lkdGg6ICczMDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sXzEwODRjZjJhOTJlMDQyNzJiNjZmOTczZjA0YTc3ZWNiID0gJCgnPGRpdiBpZD0iaHRtbF8xMDg0Y2YyYTkyZTA0MjcyYjY2Zjk3M2YwNGE3N2VjYiIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+U2lsdmVyIExha2U8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwX2NkMjVmOGEwOWYyNTQ0NzRiOTZlMzgyYTYwNDNhNjg5LnNldENvbnRlbnQoaHRtbF8xMDg0Y2YyYTkyZTA0MjcyYjY2Zjk3M2YwNGE3N2VjYik7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl9mOTM1ZGY1NjZjYmM0MGI2YTQwODg3NTIwOGExMzU0MS5iaW5kUG9wdXAocG9wdXBfY2QyNWY4YTA5ZjI1NDQ3NGI5NmUzODJhNjA0M2E2ODkpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfMDc2MWZkYjQzMjM1NDhmNWI5ZWFmNDA4YWIyNGI3N2YgPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MC42MTI3NjAxNTc1NjQ4OSwtNzQuMDk3MTI1NTIxNzg1M10sCiAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICJibHVlIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiB0cnVlLAogICJmaWxsQ29sb3IiOiAiIzMxODZjYyIsCiAgImZpbGxPcGFjaXR5IjogMC43LAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAib3BhY2l0eSI6IDEuMCwKICAicmFkaXVzIjogNSwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9CiAgICAgICAgICAgICAgICApLmFkZFRvKG1hcF9kNTAwNDE0ZjE3Nzk0YTRhODE1Njk2YmRkNWY4NTg5Yyk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF8zNTE2NGIxYjRiYjM0NDJiYjdhMjQ2MzBhNTQ0NDUwMSA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF8yODkwYjMzZDFhNWI0MmIxOGMwZmQ0MDQ3NTZkZGI1ZSA9ICQoJzxkaXYgaWQ9Imh0bWxfMjg5MGIzM2QxYTViNDJiMThjMGZkNDA0NzU2ZGRiNWUiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPlN1bm55c2lkZTwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfMzUxNjRiMWI0YmIzNDQyYmI3YTI0NjMwYTU0NDQ1MDEuc2V0Q29udGVudChodG1sXzI4OTBiMzNkMWE1YjQyYjE4YzBmZDQwNDc1NmRkYjVlKTsKICAgICAgICAgICAgCgogICAgICAgICAgICBjaXJjbGVfbWFya2VyXzA3NjFmZGI0MzIzNTQ4ZjViOWVhZjQwOGFiMjRiNzdmLmJpbmRQb3B1cChwb3B1cF8zNTE2NGIxYjRiYjM0NDJiYjdhMjQ2MzBhNTQ0NDUwMSk7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgY2lyY2xlX21hcmtlcl84OTFhODY2MTVhZTM0Y2FlYTVkZTg2MjE1NGUyYzdlMCA9IEwuY2lyY2xlTWFya2VyKAogICAgICAgICAgICAgICAgWzQwLjY0MzY3NTE4MzM0MDk3NCwtNzMuOTYxMDEzMTI0NjY3NzldLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiYmx1ZSIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogIiMzMTg2Y2MiLAogICJmaWxsT3BhY2l0eSI6IDAuNywKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDUsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKS5hZGRUbyhtYXBfZDUwMDQxNGYxNzc5NGE0YTgxNTY5NmJkZDVmODU4OWMpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfN2U4N2JmNjhhMzZmNDcxOWJmOWU3ZjA3OGQyOWQ3MjYgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfMmY1ZGNhZjA5OTlmNDVjODgwZTc1NTI3OTk1ZWQ5MjEgPSAkKCc8ZGl2IGlkPSJodG1sXzJmNWRjYWYwOTk5ZjQ1Yzg4MGU3NTUyNzk5NWVkOTIxIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij5EaXRtYXMgUGFyazwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfN2U4N2JmNjhhMzZmNDcxOWJmOWU3ZjA3OGQyOWQ3MjYuc2V0Q29udGVudChodG1sXzJmNWRjYWYwOTk5ZjQ1Yzg4MGU3NTUyNzk5NWVkOTIxKTsKICAgICAgICAgICAgCgogICAgICAgICAgICBjaXJjbGVfbWFya2VyXzg5MWE4NjYxNWFlMzRjYWVhNWRlODYyMTU0ZTJjN2UwLmJpbmRQb3B1cChwb3B1cF83ZTg3YmY2OGEzNmY0NzE5YmY5ZTdmMDc4ZDI5ZDcyNik7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgY2lyY2xlX21hcmtlcl9lMzcxYmRlOTJlMWU0NDViOTRmZThiMGViNzVhY2VjNiA9IEwuY2lyY2xlTWFya2VyKAogICAgICAgICAgICAgICAgWzQwLjY2MDk0NjU2MTg4MTExLC03My45MzcxODY4MDU1OTMxNF0sCiAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICJibHVlIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiB0cnVlLAogICJmaWxsQ29sb3IiOiAiIzMxODZjYyIsCiAgImZpbGxPcGFjaXR5IjogMC43LAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAib3BhY2l0eSI6IDEuMCwKICAicmFkaXVzIjogNSwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9CiAgICAgICAgICAgICAgICApLmFkZFRvKG1hcF9kNTAwNDE0ZjE3Nzk0YTRhODE1Njk2YmRkNWY4NTg5Yyk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF81YmFhMjY0MTYxYjE0NmIyYjkwNmFjZDlmOGNhNDNlZSA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF83ZTU4ZDU1OGE5OTU0YzRlOWJhMWI5ZWJjNDBlZGI5ZiA9ICQoJzxkaXYgaWQ9Imh0bWxfN2U1OGQ1NThhOTk1NGM0ZTliYTFiOWViYzQwZWRiOWYiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPldpbmdhdGU8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzViYWEyNjQxNjFiMTQ2YjJiOTA2YWNkOWY4Y2E0M2VlLnNldENvbnRlbnQoaHRtbF83ZTU4ZDU1OGE5OTU0YzRlOWJhMWI5ZWJjNDBlZGI5Zik7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl9lMzcxYmRlOTJlMWU0NDViOTRmZThiMGViNzVhY2VjNi5iaW5kUG9wdXAocG9wdXBfNWJhYTI2NDE2MWIxNDZiMmI5MDZhY2Q5ZjhjYTQzZWUpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfZmQyNGY0Nzg5MDA3NDZmNGIyOTI0YzEwODI2YzhiNTYgPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MC42NTU1NzIzMTMyODA3NjQsLTczLjkyNjg4MjEyNjE2OTU1XSwKICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogImJsdWUiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IHRydWUsCiAgImZpbGxDb2xvciI6ICIjMzE4NmNjIiwKICAiZmlsbE9wYWNpdHkiOiAwLjcsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJvcGFjaXR5IjogMS4wLAogICJyYWRpdXMiOiA1LAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAzCn0KICAgICAgICAgICAgICAgICkuYWRkVG8obWFwX2Q1MDA0MTRmMTc3OTRhNGE4MTU2OTZiZGQ1Zjg1ODljKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwX2U3ODUyMGI5YWMzYzQ3ZDJiZWNkNDQyYjhmODA5NmVlID0gTC5wb3B1cCh7bWF4V2lkdGg6ICczMDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sXzZmOTI1NTA2NDFjMTQ2ZmY4M2QwZmU5ODM3MmMxOTk5ID0gJCgnPGRpdiBpZD0iaHRtbF82ZjkyNTUwNjQxYzE0NmZmODNkMGZlOTgzNzJjMTk5OSIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+UnVnYnk8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwX2U3ODUyMGI5YWMzYzQ3ZDJiZWNkNDQyYjhmODA5NmVlLnNldENvbnRlbnQoaHRtbF82ZjkyNTUwNjQxYzE0NmZmODNkMGZlOTgzNzJjMTk5OSk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl9mZDI0ZjQ3ODkwMDc0NmY0YjI5MjRjMTA4MjZjOGI1Ni5iaW5kUG9wdXAocG9wdXBfZTc4NTIwYjlhYzNjNDdkMmJlY2Q0NDJiOGY4MDk2ZWUpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfOTJmOWRmYzNhYTk0NGM2M2EzOTMzNmIyODg1Mzc1ZTkgPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MC42MDkxOTA0NDQzNDU1OCwtNzQuMDgwMTU3MzQ5MzYyOTZdLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiYmx1ZSIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogIiMzMTg2Y2MiLAogICJmaWxsT3BhY2l0eSI6IDAuNywKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDUsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKS5hZGRUbyhtYXBfZDUwMDQxNGYxNzc5NGE0YTgxNTY5NmJkZDVmODU4OWMpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfNmEyYTU1Y2ZiNTFjNDNiMTk1NGJlMzM5YTY2ZTcxYjQgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfOWJmYTM2MzY2ZGEwNGRjZDlhN2RjZjZjNWE1ZjAyZjkgPSAkKCc8ZGl2IGlkPSJodG1sXzliZmEzNjM2NmRhMDRkY2Q5YTdkY2Y2YzVhNWYwMmY5IiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij5QYXJrIEhpbGw8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzZhMmE1NWNmYjUxYzQzYjE5NTRiZTMzOWE2NmU3MWI0LnNldENvbnRlbnQoaHRtbF85YmZhMzYzNjZkYTA0ZGNkOWE3ZGNmNmM1YTVmMDJmOSk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl85MmY5ZGZjM2FhOTQ0YzYzYTM5MzM2YjI4ODUzNzVlOS5iaW5kUG9wdXAocG9wdXBfNmEyYTU1Y2ZiNTFjNDNiMTk1NGJlMzM5YTY2ZTcxYjQpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfZTU5N2NkMTI4MDZjNDEyZDk3M2RhMzllODhhNjI5MjUgPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MC42MjEwOTA0NzI3NTQwOSwtNzQuMTMzMDQxNDM5NTE3MDRdLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiYmx1ZSIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogIiMzMTg2Y2MiLAogICJmaWxsT3BhY2l0eSI6IDAuNywKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDUsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKS5hZGRUbyhtYXBfZDUwMDQxNGYxNzc5NGE0YTgxNTY5NmJkZDVmODU4OWMpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfZmNiODlmMTJmNzY3NDM3MmIwYzg1NmJkN2NkYmE5OWMgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfYjM4YTBjM2IwY2QzNDA2ZGFhMTZkMGU4OWVhNGY2NzAgPSAkKCc8ZGl2IGlkPSJodG1sX2IzOGEwYzNiMGNkMzQwNmRhYTE2ZDBlODllYTRmNjcwIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij5XZXN0ZXJsZWlnaDwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfZmNiODlmMTJmNzY3NDM3MmIwYzg1NmJkN2NkYmE5OWMuc2V0Q29udGVudChodG1sX2IzOGEwYzNiMGNkMzQwNmRhYTE2ZDBlODllYTRmNjcwKTsKICAgICAgICAgICAgCgogICAgICAgICAgICBjaXJjbGVfbWFya2VyX2U1OTdjZDEyODA2YzQxMmQ5NzNkYTM5ZTg4YTYyOTI1LmJpbmRQb3B1cChwb3B1cF9mY2I4OWYxMmY3Njc0MzcyYjBjODU2YmQ3Y2RiYTk5Yyk7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgY2lyY2xlX21hcmtlcl9kOTc2ZWVmNGFkNTM0MjY5OTc0YTFlMmI3NWM0NzgxNyA9IEwuY2lyY2xlTWFya2VyKAogICAgICAgICAgICAgICAgWzQwLjYyMDE3MTUxMjIzMTg4NCwtNzQuMTUzMTUyNDYzODc3NjJdLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiYmx1ZSIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogIiMzMTg2Y2MiLAogICJmaWxsT3BhY2l0eSI6IDAuNywKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDUsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKS5hZGRUbyhtYXBfZDUwMDQxNGYxNzc5NGE0YTgxNTY5NmJkZDVmODU4OWMpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfNzFlMzI0YjBmNGI2NDBkYWIzYThkYmM4NWMxM2U4ZjMgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfNmY3MjIwYTBhYzg5NGY0NDlmMjhkNTQ0NDJkMjBjYTcgPSAkKCc8ZGl2IGlkPSJodG1sXzZmNzIyMGEwYWM4OTRmNDQ5ZjI4ZDU0NDQyZDIwY2E3IiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij5HcmFuaXRldmlsbGU8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzcxZTMyNGIwZjRiNjQwZGFiM2E4ZGJjODVjMTNlOGYzLnNldENvbnRlbnQoaHRtbF82ZjcyMjBhMGFjODk0ZjQ0OWYyOGQ1NDQ0MmQyMGNhNyk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl9kOTc2ZWVmNGFkNTM0MjY5OTc0YTFlMmI3NWM0NzgxNy5iaW5kUG9wdXAocG9wdXBfNzFlMzI0YjBmNGI2NDBkYWIzYThkYmM4NWMxM2U4ZjMpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfYmNlMWFiNTYwNjBhNDNkOTkxNjllMGJkNDNkOTgwNTMgPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MC42MzUzMjUwOTkxMTQ5MiwtNzQuMTY1MTA0MjAyNDExMjRdLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiYmx1ZSIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogIiMzMTg2Y2MiLAogICJmaWxsT3BhY2l0eSI6IDAuNywKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDUsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKS5hZGRUbyhtYXBfZDUwMDQxNGYxNzc5NGE0YTgxNTY5NmJkZDVmODU4OWMpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfMzM5MWI4NzhiNTE1NGI2Mjg3N2NmMDcwZTAzZTM5ZmYgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfYjExZGY3MWY4YTdjNDcyZWEzYzJlODgxNDE0MmU2YjkgPSAkKCc8ZGl2IGlkPSJodG1sX2IxMWRmNzFmOGE3YzQ3MmVhM2MyZTg4MTQxNDJlNmI5IiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij5Bcmxpbmd0b248L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzMzOTFiODc4YjUxNTRiNjI4NzdjZjA3MGUwM2UzOWZmLnNldENvbnRlbnQoaHRtbF9iMTFkZjcxZjhhN2M0NzJlYTNjMmU4ODE0MTQyZTZiOSk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl9iY2UxYWI1NjA2MGE0M2Q5OTE2OWUwYmQ0M2Q5ODA1My5iaW5kUG9wdXAocG9wdXBfMzM5MWI4NzhiNTE1NGI2Mjg3N2NmMDcwZTAzZTM5ZmYpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfMTM4MzRiOWUzNDAyNDU3N2EwYzI2OGI2NzcyOTU1ZTggPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MC41OTYzMTI1NzEyNzY3MzQsLTc0LjA2NzEyMzYzMjI1NTc0XSwKICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogImJsdWUiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IHRydWUsCiAgImZpbGxDb2xvciI6ICIjMzE4NmNjIiwKICAiZmlsbE9wYWNpdHkiOiAwLjcsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJvcGFjaXR5IjogMS4wLAogICJyYWRpdXMiOiA1LAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAzCn0KICAgICAgICAgICAgICAgICkuYWRkVG8obWFwX2Q1MDA0MTRmMTc3OTRhNGE4MTU2OTZiZGQ1Zjg1ODljKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwXzJlODBjMTI5MDA4ZDQyNThhNDk2MmNmODczODRmZGJkID0gTC5wb3B1cCh7bWF4V2lkdGg6ICczMDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sXzMyM2FhOTU0ZjAzZDQ0MmI5MzI5NjM1YTE5M2YzMTM3ID0gJCgnPGRpdiBpZD0iaHRtbF8zMjNhYTk1NGYwM2Q0NDJiOTMyOTYzNWExOTNmMzEzNyIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+QXJyb2NoYXI8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzJlODBjMTI5MDA4ZDQyNThhNDk2MmNmODczODRmZGJkLnNldENvbnRlbnQoaHRtbF8zMjNhYTk1NGYwM2Q0NDJiOTMyOTYzNWExOTNmMzEzNyk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl8xMzgzNGI5ZTM0MDI0NTc3YTBjMjY4YjY3NzI5NTVlOC5iaW5kUG9wdXAocG9wdXBfMmU4MGMxMjkwMDhkNDI1OGE0OTYyY2Y4NzM4NGZkYmQpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfMmI3ODI5NjgwZjMwNDkzZGE4YWE5Y2VjMmMxM2UwZGIgPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MC41OTgyNjgzNTk1OTk5MSwtNzQuMDc2Njc0MzYyNzkwNV0sCiAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICJibHVlIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiB0cnVlLAogICJmaWxsQ29sb3IiOiAiIzMxODZjYyIsCiAgImZpbGxPcGFjaXR5IjogMC43LAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAib3BhY2l0eSI6IDEuMCwKICAicmFkaXVzIjogNSwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9CiAgICAgICAgICAgICAgICApLmFkZFRvKG1hcF9kNTAwNDE0ZjE3Nzk0YTRhODE1Njk2YmRkNWY4NTg5Yyk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF9jMGE1M2JiMTM4YWI0MTczYjMzYjBjNDk1NTk4MGNkYyA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF85MDljZjc3NjI0ZTA0ZTcyODQ5MjE5YzAzZDlkZWE1YiA9ICQoJzxkaXYgaWQ9Imh0bWxfOTA5Y2Y3NzYyNGUwNGU3Mjg0OTIxOWMwM2Q5ZGVhNWIiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPkdyYXNtZXJlPC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF9jMGE1M2JiMTM4YWI0MTczYjMzYjBjNDk1NTk4MGNkYy5zZXRDb250ZW50KGh0bWxfOTA5Y2Y3NzYyNGUwNGU3Mjg0OTIxOWMwM2Q5ZGVhNWIpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIGNpcmNsZV9tYXJrZXJfMmI3ODI5NjgwZjMwNDkzZGE4YWE5Y2VjMmMxM2UwZGIuYmluZFBvcHVwKHBvcHVwX2MwYTUzYmIxMzhhYjQxNzNiMzNiMGM0OTU1OTgwY2RjKTsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBjaXJjbGVfbWFya2VyX2Q2OWJjYjhlYWRlYjQxMDliNzM1ZGYwMDU4YjViNzA4ID0gTC5jaXJjbGVNYXJrZXIoCiAgICAgICAgICAgICAgICBbNDAuNTk2MzI4OTEzNzk1MTMsLTc0LjA4NzUxMTE4MDA1NTc4XSwKICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogImJsdWUiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IHRydWUsCiAgImZpbGxDb2xvciI6ICIjMzE4NmNjIiwKICAiZmlsbE9wYWNpdHkiOiAwLjcsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJvcGFjaXR5IjogMS4wLAogICJyYWRpdXMiOiA1LAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAzCn0KICAgICAgICAgICAgICAgICkuYWRkVG8obWFwX2Q1MDA0MTRmMTc3OTRhNGE4MTU2OTZiZGQ1Zjg1ODljKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwXzlkMGY3NDUyYTMyNzQ5N2NiNTM1NTE0YzdlODEwMGE0ID0gTC5wb3B1cCh7bWF4V2lkdGg6ICczMDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sXzQ0Yzc5NGMxMzJhNzQ3ZThhMTcxNTQ0ZTlmOTI2ODQ0ID0gJCgnPGRpdiBpZD0iaHRtbF80NGM3OTRjMTMyYTc0N2U4YTE3MTU0NGU5ZjkyNjg0NCIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+T2xkIFRvd248L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzlkMGY3NDUyYTMyNzQ5N2NiNTM1NTE0YzdlODEwMGE0LnNldENvbnRlbnQoaHRtbF80NGM3OTRjMTMyYTc0N2U4YTE3MTU0NGU5ZjkyNjg0NCk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl9kNjliY2I4ZWFkZWI0MTA5YjczNWRmMDA1OGI1YjcwOC5iaW5kUG9wdXAocG9wdXBfOWQwZjc0NTJhMzI3NDk3Y2I1MzU1MTRjN2U4MTAwYTQpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfN2MzZTUyODA3NGI5NGFjODk4M2U0ZjYzMDYwMGRhYmIgPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MC41ODg2NzI5NDgxOTkyNzUsLTc0LjA5NjM5OTA1MzEyNTIxXSwKICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogImJsdWUiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IHRydWUsCiAgImZpbGxDb2xvciI6ICIjMzE4NmNjIiwKICAiZmlsbE9wYWNpdHkiOiAwLjcsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJvcGFjaXR5IjogMS4wLAogICJyYWRpdXMiOiA1LAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAzCn0KICAgICAgICAgICAgICAgICkuYWRkVG8obWFwX2Q1MDA0MTRmMTc3OTRhNGE4MTU2OTZiZGQ1Zjg1ODljKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwX2FhZDNlNDlkZWRlYjQ4NDk5YWQwYTU5M2YxZTBjYjlhID0gTC5wb3B1cCh7bWF4V2lkdGg6ICczMDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sX2Y1ZGE1NTBjYWQ5ZjRmYzE4YjZmMjIyNTgzYTI4NWFlID0gJCgnPGRpdiBpZD0iaHRtbF9mNWRhNTUwY2FkOWY0ZmMxOGI2ZjIyMjU4M2EyODVhZSIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+RG9uZ2FuIEhpbGxzPC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF9hYWQzZTQ5ZGVkZWI0ODQ5OWFkMGE1OTNmMWUwY2I5YS5zZXRDb250ZW50KGh0bWxfZjVkYTU1MGNhZDlmNGZjMThiNmYyMjI1ODNhMjg1YWUpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIGNpcmNsZV9tYXJrZXJfN2MzZTUyODA3NGI5NGFjODk4M2U0ZjYzMDYwMGRhYmIuYmluZFBvcHVwKHBvcHVwX2FhZDNlNDlkZWRlYjQ4NDk5YWQwYTU5M2YxZTBjYjlhKTsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBjaXJjbGVfbWFya2VyXzVlYTFkNzY2MmZhMjQ3Y2NiNmE0Y2VlNGIzN2RkYmY5ID0gTC5jaXJjbGVNYXJrZXIoCiAgICAgICAgICAgICAgICBbNDAuNTczNTI2OTA1NzQyODMsLTc0LjA5MzQ4MjY2MzAzNTkxXSwKICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogImJsdWUiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IHRydWUsCiAgImZpbGxDb2xvciI6ICIjMzE4NmNjIiwKICAiZmlsbE9wYWNpdHkiOiAwLjcsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJvcGFjaXR5IjogMS4wLAogICJyYWRpdXMiOiA1LAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAzCn0KICAgICAgICAgICAgICAgICkuYWRkVG8obWFwX2Q1MDA0MTRmMTc3OTRhNGE4MTU2OTZiZGQ1Zjg1ODljKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwX2U4NWM3YjgxMjM5NzQ2YzA4OWQzNDY0YzI4YTZjMzYxID0gTC5wb3B1cCh7bWF4V2lkdGg6ICczMDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sXzgxODhmMTBmZmEzMTQ1ODZhY2E1MjdkMTExMjFkMTkzID0gJCgnPGRpdiBpZD0iaHRtbF84MTg4ZjEwZmZhMzE0NTg2YWNhNTI3ZDExMTIxZDE5MyIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+TWlkbGFuZCBCZWFjaDwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfZTg1YzdiODEyMzk3NDZjMDg5ZDM0NjRjMjhhNmMzNjEuc2V0Q29udGVudChodG1sXzgxODhmMTBmZmEzMTQ1ODZhY2E1MjdkMTExMjFkMTkzKTsKICAgICAgICAgICAgCgogICAgICAgICAgICBjaXJjbGVfbWFya2VyXzVlYTFkNzY2MmZhMjQ3Y2NiNmE0Y2VlNGIzN2RkYmY5LmJpbmRQb3B1cChwb3B1cF9lODVjN2I4MTIzOTc0NmMwODlkMzQ2NGMyOGE2YzM2MSk7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgY2lyY2xlX21hcmtlcl9lNzZkY2YxMDY0ZTA0NDU2OTcyODEwNTNiMDM1NDhhMiA9IEwuY2lyY2xlTWFya2VyKAogICAgICAgICAgICAgICAgWzQwLjU3NjIxNTU4NzExNzg4LC03NC4xMDU4NTU5ODU0NTQzNF0sCiAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICJibHVlIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiB0cnVlLAogICJmaWxsQ29sb3IiOiAiIzMxODZjYyIsCiAgImZpbGxPcGFjaXR5IjogMC43LAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAib3BhY2l0eSI6IDEuMCwKICAicmFkaXVzIjogNSwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9CiAgICAgICAgICAgICAgICApLmFkZFRvKG1hcF9kNTAwNDE0ZjE3Nzk0YTRhODE1Njk2YmRkNWY4NTg5Yyk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF82ZGIxZmRlZTg4MTk0M2FlODhjYzUzYWIyOTdkMTVhMyA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF85MDQzNWNmMjI3MTk0NmJlOTE5YjJjM2FmZGY2Y2YwNyA9ICQoJzxkaXYgaWQ9Imh0bWxfOTA0MzVjZjIyNzE5NDZiZTkxOWIyYzNhZmRmNmNmMDciIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPkdyYW50IENpdHk8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzZkYjFmZGVlODgxOTQzYWU4OGNjNTNhYjI5N2QxNWEzLnNldENvbnRlbnQoaHRtbF85MDQzNWNmMjI3MTk0NmJlOTE5YjJjM2FmZGY2Y2YwNyk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl9lNzZkY2YxMDY0ZTA0NDU2OTcyODEwNTNiMDM1NDhhMi5iaW5kUG9wdXAocG9wdXBfNmRiMWZkZWU4ODE5NDNhZTg4Y2M1M2FiMjk3ZDE1YTMpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfNjA1NmI2YzBlMWRkNDY5NmE1MDZjYjhhNmJjZGQ1N2MgPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MC41NjQyNTU0OTMwNzMzNSwtNzQuMTA0MzI3MDc0NjkxMjRdLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiYmx1ZSIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogIiMzMTg2Y2MiLAogICJmaWxsT3BhY2l0eSI6IDAuNywKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDUsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKS5hZGRUbyhtYXBfZDUwMDQxNGYxNzc5NGE0YTgxNTY5NmJkZDVmODU4OWMpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfNmFjYTJhZjNjZTU2NGQ3MTlhN2EyY2IxYjRlMmI1NmEgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfM2Q3ZDkyNTllMzJlNDJjYjk4MmJjMTZlNjdkMDU0MjMgPSAkKCc8ZGl2IGlkPSJodG1sXzNkN2Q5MjU5ZTMyZTQyY2I5ODJiYzE2ZTY3ZDA1NDIzIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij5OZXcgRG9ycCBCZWFjaDwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfNmFjYTJhZjNjZTU2NGQ3MTlhN2EyY2IxYjRlMmI1NmEuc2V0Q29udGVudChodG1sXzNkN2Q5MjU5ZTMyZTQyY2I5ODJiYzE2ZTY3ZDA1NDIzKTsKICAgICAgICAgICAgCgogICAgICAgICAgICBjaXJjbGVfbWFya2VyXzYwNTZiNmMwZTFkZDQ2OTZhNTA2Y2I4YTZiY2RkNTdjLmJpbmRQb3B1cChwb3B1cF82YWNhMmFmM2NlNTY0ZDcxOWE3YTJjYjFiNGUyYjU2YSk7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgY2lyY2xlX21hcmtlcl8wMWZjYzJhOGJlODQ0YTFjOTMyZTc4MGRjZTM0ODcwYSA9IEwuY2lyY2xlTWFya2VyKAogICAgICAgICAgICAgICAgWzQwLjU1Mzk4ODAwODU4NDYyLC03NC4xMzkxNjYyMjE3NTc2OF0sCiAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICJibHVlIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiB0cnVlLAogICJmaWxsQ29sb3IiOiAiIzMxODZjYyIsCiAgImZpbGxPcGFjaXR5IjogMC43LAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAib3BhY2l0eSI6IDEuMCwKICAicmFkaXVzIjogNSwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9CiAgICAgICAgICAgICAgICApLmFkZFRvKG1hcF9kNTAwNDE0ZjE3Nzk0YTRhODE1Njk2YmRkNWY4NTg5Yyk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF9mY2NjZDM3YmQ2N2Y0ZGMyOWE1NjExYzE0YWNlODA2MyA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF80ZTBlM2U3Mjg5ZGY0MWYwODRmNDAzNjJmNWEwMWYzZiA9ICQoJzxkaXYgaWQ9Imh0bWxfNGUwZTNlNzI4OWRmNDFmMDg0ZjQwMzYyZjVhMDFmM2YiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPkJheSBUZXJyYWNlPC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF9mY2NjZDM3YmQ2N2Y0ZGMyOWE1NjExYzE0YWNlODA2My5zZXRDb250ZW50KGh0bWxfNGUwZTNlNzI4OWRmNDFmMDg0ZjQwMzYyZjVhMDFmM2YpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIGNpcmNsZV9tYXJrZXJfMDFmY2MyYThiZTg0NGExYzkzMmU3ODBkY2UzNDg3MGEuYmluZFBvcHVwKHBvcHVwX2ZjY2NkMzdiZDY3ZjRkYzI5YTU2MTFjMTRhY2U4MDYzKTsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBjaXJjbGVfbWFya2VyXzcwNTZiOGRhNDNkNzQ2MzM4NDhkNDQ3M2UyNjQ3ZTYzID0gTC5jaXJjbGVNYXJrZXIoCiAgICAgICAgICAgICAgICBbNDAuNTMxOTExOTIwNDg5NjA1LC03NC4xOTE3NDEwNTc0NzgxNF0sCiAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICJibHVlIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiB0cnVlLAogICJmaWxsQ29sb3IiOiAiIzMxODZjYyIsCiAgImZpbGxPcGFjaXR5IjogMC43LAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAib3BhY2l0eSI6IDEuMCwKICAicmFkaXVzIjogNSwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9CiAgICAgICAgICAgICAgICApLmFkZFRvKG1hcF9kNTAwNDE0ZjE3Nzk0YTRhODE1Njk2YmRkNWY4NTg5Yyk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF8zYzZiNDkyYzAyOTc0Y2JkYjE0MWM2M2Q1ZDE2ODIxMSA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF80N2EzMWYyOTAwNTI0MDU5OTU0YWE3ZTM1Zjc1OGRlNCA9ICQoJzxkaXYgaWQ9Imh0bWxfNDdhMzFmMjkwMDUyNDA1OTk1NGFhN2UzNWY3NThkZTQiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPkh1Z3Vlbm90PC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF8zYzZiNDkyYzAyOTc0Y2JkYjE0MWM2M2Q1ZDE2ODIxMS5zZXRDb250ZW50KGh0bWxfNDdhMzFmMjkwMDUyNDA1OTk1NGFhN2UzNWY3NThkZTQpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIGNpcmNsZV9tYXJrZXJfNzA1NmI4ZGE0M2Q3NDYzMzg0OGQ0NDczZTI2NDdlNjMuYmluZFBvcHVwKHBvcHVwXzNjNmI0OTJjMDI5NzRjYmRiMTQxYzYzZDVkMTY4MjExKTsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBjaXJjbGVfbWFya2VyX2RkNjI2YzU2ZTY2ODRkYTU4N2YwMjFlZDBlYmQxYjU3ID0gTC5jaXJjbGVNYXJrZXIoCiAgICAgICAgICAgICAgICBbNDAuNTI0Njk5Mzc2MTE4MTM2LC03NC4yMTk4MzEwNjYxNjc3N10sCiAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICJibHVlIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiB0cnVlLAogICJmaWxsQ29sb3IiOiAiIzMxODZjYyIsCiAgImZpbGxPcGFjaXR5IjogMC43LAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAib3BhY2l0eSI6IDEuMCwKICAicmFkaXVzIjogNSwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9CiAgICAgICAgICAgICAgICApLmFkZFRvKG1hcF9kNTAwNDE0ZjE3Nzk0YTRhODE1Njk2YmRkNWY4NTg5Yyk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF8zNmFmYjMyNjAxMjY0YzkxYmY0YzEyNDk2MTEwMDU0YyA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF8yMGRjNTE0OTI4ZjM0NmU3YWQ2ZjgyYjY5NDRkMGE2OSA9ICQoJzxkaXYgaWQ9Imh0bWxfMjBkYzUxNDkyOGYzNDZlN2FkNmY4MmI2OTQ0ZDBhNjkiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPlBsZWFzYW50IFBsYWluczwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfMzZhZmIzMjYwMTI2NGM5MWJmNGMxMjQ5NjExMDA1NGMuc2V0Q29udGVudChodG1sXzIwZGM1MTQ5MjhmMzQ2ZTdhZDZmODJiNjk0NGQwYTY5KTsKICAgICAgICAgICAgCgogICAgICAgICAgICBjaXJjbGVfbWFya2VyX2RkNjI2YzU2ZTY2ODRkYTU4N2YwMjFlZDBlYmQxYjU3LmJpbmRQb3B1cChwb3B1cF8zNmFmYjMyNjAxMjY0YzkxYmY0YzEyNDk2MTEwMDU0Yyk7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgY2lyY2xlX21hcmtlcl82MTcyNWUwYzUyMTM0NjVkOTZiMjYzNmEzZjdlMzExMyA9IEwuY2lyY2xlTWFya2VyKAogICAgICAgICAgICAgICAgWzQwLjUwNjA4MTY1MzQ2MzA1LC03NC4yMjk1MDM1MDI2MDAyN10sCiAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICJibHVlIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiB0cnVlLAogICJmaWxsQ29sb3IiOiAiIzMxODZjYyIsCiAgImZpbGxPcGFjaXR5IjogMC43LAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAib3BhY2l0eSI6IDEuMCwKICAicmFkaXVzIjogNSwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9CiAgICAgICAgICAgICAgICApLmFkZFRvKG1hcF9kNTAwNDE0ZjE3Nzk0YTRhODE1Njk2YmRkNWY4NTg5Yyk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF84Zjg2NDkxMGZkODQ0N2VjYTMzODkxN2NhYWRjMWU3ZSA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF9iZGMxZDA4YzQ0MGE0ODE2YTRmZTg0Mjk0Yjg1ZWIxMSA9ICQoJzxkaXYgaWQ9Imh0bWxfYmRjMWQwOGM0NDBhNDgxNmE0ZmU4NDI5NGI4NWViMTEiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPkJ1dGxlciBNYW5vcjwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfOGY4NjQ5MTBmZDg0NDdlY2EzMzg5MTdjYWFkYzFlN2Uuc2V0Q29udGVudChodG1sX2JkYzFkMDhjNDQwYTQ4MTZhNGZlODQyOTRiODVlYjExKTsKICAgICAgICAgICAgCgogICAgICAgICAgICBjaXJjbGVfbWFya2VyXzYxNzI1ZTBjNTIxMzQ2NWQ5NmIyNjM2YTNmN2UzMTEzLmJpbmRQb3B1cChwb3B1cF84Zjg2NDkxMGZkODQ0N2VjYTMzODkxN2NhYWRjMWU3ZSk7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgY2lyY2xlX21hcmtlcl85OTY5M2E3NzI2YjI0ODcyOTk2MDBkMGRiYmZmNzZlMyA9IEwuY2lyY2xlTWFya2VyKAogICAgICAgICAgICAgICAgWzQwLjUzMDUzMTQ4MjgzMzE0LC03NC4yMzIxNTc3NTg5NjUyNl0sCiAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICJibHVlIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiB0cnVlLAogICJmaWxsQ29sb3IiOiAiIzMxODZjYyIsCiAgImZpbGxPcGFjaXR5IjogMC43LAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAib3BhY2l0eSI6IDEuMCwKICAicmFkaXVzIjogNSwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9CiAgICAgICAgICAgICAgICApLmFkZFRvKG1hcF9kNTAwNDE0ZjE3Nzk0YTRhODE1Njk2YmRkNWY4NTg5Yyk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF9hNzdiNWIwMTQ2MDA0ODI0YmRkZDJiOGU3OTYwNjAxNCA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF8zOTI4Y2M2OTFhMmE0ZDQyYWE4YzhiMTU0OTViMTJiZiA9ICQoJzxkaXYgaWQ9Imh0bWxfMzkyOGNjNjkxYTJhNGQ0MmFhOGM4YjE1NDk1YjEyYmYiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPkNoYXJsZXN0b248L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwX2E3N2I1YjAxNDYwMDQ4MjRiZGRkMmI4ZTc5NjA2MDE0LnNldENvbnRlbnQoaHRtbF8zOTI4Y2M2OTFhMmE0ZDQyYWE4YzhiMTU0OTViMTJiZik7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl85OTY5M2E3NzI2YjI0ODcyOTk2MDBkMGRiYmZmNzZlMy5iaW5kUG9wdXAocG9wdXBfYTc3YjViMDE0NjAwNDgyNGJkZGQyYjhlNzk2MDYwMTQpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfOTQxMTZjOTgyMjkwNGJhNTgzOGMyMDg4YWQ1ZWM5ZjggPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MC41NDk0MDQwMDY1MDA3MiwtNzQuMjE1NzI4NTExMTM5NTJdLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiYmx1ZSIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogIiMzMTg2Y2MiLAogICJmaWxsT3BhY2l0eSI6IDAuNywKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDUsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKS5hZGRUbyhtYXBfZDUwMDQxNGYxNzc5NGE0YTgxNTY5NmJkZDVmODU4OWMpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfMGYyOTViOGU3YmEzNGJkNDllNjE1ZmZmYjk0ZDlkZDYgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfYWMwNzU3ZDllYTZkNDg3MGFiNjU1N2Y4NDYzYTdhMGYgPSAkKCc8ZGl2IGlkPSJodG1sX2FjMDc1N2Q5ZWE2ZDQ4NzBhYjY1NTdmODQ2M2E3YTBmIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij5Sb3NzdmlsbGU8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzBmMjk1YjhlN2JhMzRiZDQ5ZTYxNWZmZmI5NGQ5ZGQ2LnNldENvbnRlbnQoaHRtbF9hYzA3NTdkOWVhNmQ0ODcwYWI2NTU3Zjg0NjNhN2EwZik7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl85NDExNmM5ODIyOTA0YmE1ODM4YzIwODhhZDVlYzlmOC5iaW5kUG9wdXAocG9wdXBfMGYyOTViOGU3YmEzNGJkNDllNjE1ZmZmYjk0ZDlkZDYpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfMDhmZmVkZGQzNDQ4NDA5NDhmNGI5ODJhYzc4ODFlZTcgPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MC41NDkyODU4MjI3ODMyMSwtNzQuMTg1ODg2NzQ1ODM4OTNdLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiYmx1ZSIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogIiMzMTg2Y2MiLAogICJmaWxsT3BhY2l0eSI6IDAuNywKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDUsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKS5hZGRUbyhtYXBfZDUwMDQxNGYxNzc5NGE0YTgxNTY5NmJkZDVmODU4OWMpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfNDUzMmNiMTg1NjY4NGNjMWJhNmQ3MzIwOWZkMDFkZWUgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfODM0NWVjYzhmZDk3NGE1MmI4ODY4ZGIwYjcwZjQ0MzkgPSAkKCc8ZGl2IGlkPSJodG1sXzgzNDVlY2M4ZmQ5NzRhNTJiODg2OGRiMGI3MGY0NDM5IiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij5BcmRlbiBIZWlnaHRzPC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF80NTMyY2IxODU2Njg0Y2MxYmE2ZDczMjA5ZmQwMWRlZS5zZXRDb250ZW50KGh0bWxfODM0NWVjYzhmZDk3NGE1MmI4ODY4ZGIwYjcwZjQ0MzkpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIGNpcmNsZV9tYXJrZXJfMDhmZmVkZGQzNDQ4NDA5NDhmNGI5ODJhYzc4ODFlZTcuYmluZFBvcHVwKHBvcHVwXzQ1MzJjYjE4NTY2ODRjYzFiYTZkNzMyMDlmZDAxZGVlKTsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBjaXJjbGVfbWFya2VyXzhmYzg3ZTA3OGQ3MzQ0NDdhNWMzMzIxZWIyOTdiYmFiID0gTC5jaXJjbGVNYXJrZXIoCiAgICAgICAgICAgICAgICBbNDAuNTU1Mjk1MjM2MTczMTk0LC03NC4xNzA3OTQxNDc4NjA5Ml0sCiAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICJibHVlIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiB0cnVlLAogICJmaWxsQ29sb3IiOiAiIzMxODZjYyIsCiAgImZpbGxPcGFjaXR5IjogMC43LAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAib3BhY2l0eSI6IDEuMCwKICAicmFkaXVzIjogNSwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9CiAgICAgICAgICAgICAgICApLmFkZFRvKG1hcF9kNTAwNDE0ZjE3Nzk0YTRhODE1Njk2YmRkNWY4NTg5Yyk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF8zYjMyNGI0MzI2Y2E0YTRhYWNiOGVlYTMyMWY5ZDlmYyA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF8yZjgxNzg4ZDliNTk0MDE2ODAxZjNlZDgwZmVkMmJiOCA9ICQoJzxkaXYgaWQ9Imh0bWxfMmY4MTc4OGQ5YjU5NDAxNjgwMWYzZWQ4MGZlZDJiYjgiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPkdyZWVucmlkZ2U8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzNiMzI0YjQzMjZjYTRhNGFhY2I4ZWVhMzIxZjlkOWZjLnNldENvbnRlbnQoaHRtbF8yZjgxNzg4ZDliNTk0MDE2ODAxZjNlZDgwZmVkMmJiOCk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl84ZmM4N2UwNzhkNzM0NDQ3YTVjMzMyMWViMjk3YmJhYi5iaW5kUG9wdXAocG9wdXBfM2IzMjRiNDMyNmNhNGE0YWFjYjhlZWEzMjFmOWQ5ZmMpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfM2I3Y2Q5ODk5NzUxNGU4MTk5MTk5M2JkNDEwMjE5NmEgPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MC41ODkxMzg5NDg3NTI4MSwtNzQuMTU5MDIyMDgxNTY2MDFdLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiYmx1ZSIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogIiMzMTg2Y2MiLAogICJmaWxsT3BhY2l0eSI6IDAuNywKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDUsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKS5hZGRUbyhtYXBfZDUwMDQxNGYxNzc5NGE0YTgxNTY5NmJkZDVmODU4OWMpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfNWFlYWUzZmRlMThjNDkxY2EwZWVmNmY2YTJlODAwMDEgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfNWExYWIyMTg2Yzc4NDk2Yzg0NThmNzMxYTc4ZWJiOTkgPSAkKCc8ZGl2IGlkPSJodG1sXzVhMWFiMjE4NmM3ODQ5NmM4NDU4ZjczMWE3OGViYjk5IiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij5IZWFydGxhbmQgVmlsbGFnZTwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfNWFlYWUzZmRlMThjNDkxY2EwZWVmNmY2YTJlODAwMDEuc2V0Q29udGVudChodG1sXzVhMWFiMjE4NmM3ODQ5NmM4NDU4ZjczMWE3OGViYjk5KTsKICAgICAgICAgICAgCgogICAgICAgICAgICBjaXJjbGVfbWFya2VyXzNiN2NkOTg5OTc1MTRlODE5OTE5OTNiZDQxMDIxOTZhLmJpbmRQb3B1cChwb3B1cF81YWVhZTNmZGUxOGM0OTFjYTBlZWY2ZjZhMmU4MDAwMSk7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgY2lyY2xlX21hcmtlcl8zZTJmMTA3OTM1NjQ0N2Y1YTVhODIyMWY1MWFlYTgzMSA9IEwuY2lyY2xlTWFya2VyKAogICAgICAgICAgICAgICAgWzQwLjU5NDcyNjAyNzQ2Mjk1LC03NC4xODk1NjA0NTUxOTY5XSwKICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogImJsdWUiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IHRydWUsCiAgImZpbGxDb2xvciI6ICIjMzE4NmNjIiwKICAiZmlsbE9wYWNpdHkiOiAwLjcsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJvcGFjaXR5IjogMS4wLAogICJyYWRpdXMiOiA1LAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAzCn0KICAgICAgICAgICAgICAgICkuYWRkVG8obWFwX2Q1MDA0MTRmMTc3OTRhNGE4MTU2OTZiZGQ1Zjg1ODljKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwX2U4NDQzMjc4YzcyNTQ0MDVhZjI4MTEzMjM0MzIyMjE2ID0gTC5wb3B1cCh7bWF4V2lkdGg6ICczMDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sX2M2N2VmOGZiNWE2MDQ3YWE4ZGEyYTQ2NTU4YTUyOWFkID0gJCgnPGRpdiBpZD0iaHRtbF9jNjdlZjhmYjVhNjA0N2FhOGRhMmE0NjU1OGE1MjlhZCIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+Q2hlbHNlYTwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfZTg0NDMyNzhjNzI1NDQwNWFmMjgxMTMyMzQzMjIyMTYuc2V0Q29udGVudChodG1sX2M2N2VmOGZiNWE2MDQ3YWE4ZGEyYTQ2NTU4YTUyOWFkKTsKICAgICAgICAgICAgCgogICAgICAgICAgICBjaXJjbGVfbWFya2VyXzNlMmYxMDc5MzU2NDQ3ZjVhNWE4MjIxZjUxYWVhODMxLmJpbmRQb3B1cChwb3B1cF9lODQ0MzI3OGM3MjU0NDA1YWYyODExMzIzNDMyMjIxNik7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgY2lyY2xlX21hcmtlcl84ODgwMDZmMmY2MDA0MTIzODNmMzBmZDA5ODdhMDA5YSA9IEwuY2lyY2xlTWFya2VyKAogICAgICAgICAgICAgICAgWzQwLjYwNTc3ODY4NDUyMzU4LC03NC4xODcyNTYzODM4MTU2N10sCiAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICJibHVlIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiB0cnVlLAogICJmaWxsQ29sb3IiOiAiIzMxODZjYyIsCiAgImZpbGxPcGFjaXR5IjogMC43LAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAib3BhY2l0eSI6IDEuMCwKICAicmFkaXVzIjogNSwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9CiAgICAgICAgICAgICAgICApLmFkZFRvKG1hcF9kNTAwNDE0ZjE3Nzk0YTRhODE1Njk2YmRkNWY4NTg5Yyk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF84NThiMzVhYzdmYzY0NGNkODY4ZTA2NDI5Y2NmMTMwNiA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF80MGRjNDMxNTAzMDM0ZTc4OTk2MWU3MDllODQ3NDQxNSA9ICQoJzxkaXYgaWQ9Imh0bWxfNDBkYzQzMTUwMzAzNGU3ODk5NjFlNzA5ZTg0NzQ0MTUiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPkJsb29tZmllbGQ8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzg1OGIzNWFjN2ZjNjQ0Y2Q4NjhlMDY0MjljY2YxMzA2LnNldENvbnRlbnQoaHRtbF80MGRjNDMxNTAzMDM0ZTc4OTk2MWU3MDllODQ3NDQxNSk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl84ODgwMDZmMmY2MDA0MTIzODNmMzBmZDA5ODdhMDA5YS5iaW5kUG9wdXAocG9wdXBfODU4YjM1YWM3ZmM2NDRjZDg2OGUwNjQyOWNjZjEzMDYpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfNjViNjIyMGY0NzllNDI2YTg4YjI0NTc2NzY4NTYxMmMgPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MC42MDk1OTE4MDA0MjAzLC03NC4xNTk0MDk0ODY1NzEyMl0sCiAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICJibHVlIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiB0cnVlLAogICJmaWxsQ29sb3IiOiAiIzMxODZjYyIsCiAgImZpbGxPcGFjaXR5IjogMC43LAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAib3BhY2l0eSI6IDEuMCwKICAicmFkaXVzIjogNSwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9CiAgICAgICAgICAgICAgICApLmFkZFRvKG1hcF9kNTAwNDE0ZjE3Nzk0YTRhODE1Njk2YmRkNWY4NTg5Yyk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF8wYTgwYzVlNWU4Nzg0MTY0ODViNjNkYWQwMjdiNGNjMSA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF8xYWFlYTMyMDkxYmY0ZjFlOTE1OTdmN2MyM2VkMjU2NCA9ICQoJzxkaXYgaWQ9Imh0bWxfMWFhZWEzMjA5MWJmNGYxZTkxNTk3ZjdjMjNlZDI1NjQiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPkJ1bGxzIEhlYWQ8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzBhODBjNWU1ZTg3ODQxNjQ4NWI2M2RhZDAyN2I0Y2MxLnNldENvbnRlbnQoaHRtbF8xYWFlYTMyMDkxYmY0ZjFlOTE1OTdmN2MyM2VkMjU2NCk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl82NWI2MjIwZjQ3OWU0MjZhODhiMjQ1NzY3Njg1NjEyYy5iaW5kUG9wdXAocG9wdXBfMGE4MGM1ZTVlODc4NDE2NDg1YjYzZGFkMDI3YjRjYzEpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfYWQ5ZjQwYWVlYTk2NGY4ZWE1YWZkM2Y2MjNkYmNlODMgPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MC43ODI2ODI1NjcxMjU3LC03My45NTMyNTY0NjgzNzExMl0sCiAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICJibHVlIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiB0cnVlLAogICJmaWxsQ29sb3IiOiAiIzMxODZjYyIsCiAgImZpbGxPcGFjaXR5IjogMC43LAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAib3BhY2l0eSI6IDEuMCwKICAicmFkaXVzIjogNSwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9CiAgICAgICAgICAgICAgICApLmFkZFRvKG1hcF9kNTAwNDE0ZjE3Nzk0YTRhODE1Njk2YmRkNWY4NTg5Yyk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF9lMjQyZmFlZDAxNGI0NjkyOWZmODM2YzMxZjBmZTcxNCA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF8wMWI0MjdlYzViNmY0YmMwOWQ0NDJkNmY3OTMxNzk1YyA9ICQoJzxkaXYgaWQ9Imh0bWxfMDFiNDI3ZWM1YjZmNGJjMDlkNDQyZDZmNzkzMTc5NWMiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPkNhcm5lZ2llIEhpbGw8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwX2UyNDJmYWVkMDE0YjQ2OTI5ZmY4MzZjMzFmMGZlNzE0LnNldENvbnRlbnQoaHRtbF8wMWI0MjdlYzViNmY0YmMwOWQ0NDJkNmY3OTMxNzk1Yyk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl9hZDlmNDBhZWVhOTY0ZjhlYTVhZmQzZjYyM2RiY2U4My5iaW5kUG9wdXAocG9wdXBfZTI0MmZhZWQwMTRiNDY5MjlmZjgzNmMzMWYwZmU3MTQpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfNmY4NzczOWI0ZjY4NGUwZTkxMTdjMjNmNjQyY2ZiODYgPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MC43MjMyNTkwMTg4NTc2OCwtNzMuOTg4NDMzNjgwMjM1OTddLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiYmx1ZSIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogIiMzMTg2Y2MiLAogICJmaWxsT3BhY2l0eSI6IDAuNywKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDUsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKS5hZGRUbyhtYXBfZDUwMDQxNGYxNzc5NGE0YTgxNTY5NmJkZDVmODU4OWMpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfYWY5ZWQ1YTYxODZjNDc5NzlkYjFjNDk3MmY4OGU5MjQgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfYTM1Njc5YzNjN2Q1NGRhZWJiNDBlZmNjMmZkMjRhYTEgPSAkKCc8ZGl2IGlkPSJodG1sX2EzNTY3OWMzYzdkNTRkYWViYjQwZWZjYzJmZDI0YWExIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij5Ob2hvPC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF9hZjllZDVhNjE4NmM0Nzk3OWRiMWM0OTcyZjg4ZTkyNC5zZXRDb250ZW50KGh0bWxfYTM1Njc5YzNjN2Q1NGRhZWJiNDBlZmNjMmZkMjRhYTEpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIGNpcmNsZV9tYXJrZXJfNmY4NzczOWI0ZjY4NGUwZTkxMTdjMjNmNjQyY2ZiODYuYmluZFBvcHVwKHBvcHVwX2FmOWVkNWE2MTg2YzQ3OTc5ZGIxYzQ5NzJmODhlOTI0KTsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBjaXJjbGVfbWFya2VyXzc4OTZiMjM5MzdlMTQ3ZDViZmI5MmRkMzYwZDBiZTgzID0gTC5jaXJjbGVNYXJrZXIoCiAgICAgICAgICAgICAgICBbNDAuNzE1MjI4OTIwNDYyODIsLTc0LjAwNTQxNTI5ODczMzU1XSwKICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogImJsdWUiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IHRydWUsCiAgImZpbGxDb2xvciI6ICIjMzE4NmNjIiwKICAiZmlsbE9wYWNpdHkiOiAwLjcsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJvcGFjaXR5IjogMS4wLAogICJyYWRpdXMiOiA1LAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAzCn0KICAgICAgICAgICAgICAgICkuYWRkVG8obWFwX2Q1MDA0MTRmMTc3OTRhNGE4MTU2OTZiZGQ1Zjg1ODljKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwX2ViMmU5ZTcyZDIzNTRhNjRhNjc4MzgyOTA4ZmQyY2Y0ID0gTC5wb3B1cCh7bWF4V2lkdGg6ICczMDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sX2E3YTNjZTAzMmMwNTRlZDNiMTFhZWJmMGYzZWMxNDQzID0gJCgnPGRpdiBpZD0iaHRtbF9hN2EzY2UwMzJjMDU0ZWQzYjExYWViZjBmM2VjMTQ0MyIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+Q2l2aWMgQ2VudGVyPC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF9lYjJlOWU3MmQyMzU0YTY0YTY3ODM4MjkwOGZkMmNmNC5zZXRDb250ZW50KGh0bWxfYTdhM2NlMDMyYzA1NGVkM2IxMWFlYmYwZjNlYzE0NDMpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIGNpcmNsZV9tYXJrZXJfNzg5NmIyMzkzN2UxNDdkNWJmYjkyZGQzNjBkMGJlODMuYmluZFBvcHVwKHBvcHVwX2ViMmU5ZTcyZDIzNTRhNjRhNjc4MzgyOTA4ZmQyY2Y0KTsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBjaXJjbGVfbWFya2VyX2E2Y2QxMzcxMWNlZTQwNjdiMjllMjFjOTA4M2I1M2Y0ID0gTC5jaXJjbGVNYXJrZXIoCiAgICAgICAgICAgICAgICBbNDAuNzQ4NTA5NjY0MzEyMiwtNzMuOTg4NzEzMTMyODUyNDddLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiYmx1ZSIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogIiMzMTg2Y2MiLAogICJmaWxsT3BhY2l0eSI6IDAuNywKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDUsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKS5hZGRUbyhtYXBfZDUwMDQxNGYxNzc5NGE0YTgxNTY5NmJkZDVmODU4OWMpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfMTU0Mzg4ZGYxZDNjNDRkODk3NjI4Yjg3YzM0MDVjNDcgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfODIxNGIxOTRlZGY1NDUwNmFiZGU1ZjY0NDkwNzRkOTYgPSAkKCc8ZGl2IGlkPSJodG1sXzgyMTRiMTk0ZWRmNTQ1MDZhYmRlNWY2NDQ5MDc0ZDk2IiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij5NaWR0b3duIFNvdXRoPC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF8xNTQzODhkZjFkM2M0NGQ4OTc2MjhiODdjMzQwNWM0Ny5zZXRDb250ZW50KGh0bWxfODIxNGIxOTRlZGY1NDUwNmFiZGU1ZjY0NDkwNzRkOTYpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIGNpcmNsZV9tYXJrZXJfYTZjZDEzNzExY2VlNDA2N2IyOWUyMWM5MDgzYjUzZjQuYmluZFBvcHVwKHBvcHVwXzE1NDM4OGRmMWQzYzQ0ZDg5NzYyOGI4N2MzNDA1YzQ3KTsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBjaXJjbGVfbWFya2VyXzg1ZGVhNmUyYzIwMzQyOTliZDk1NjY1MzEyOGRmZTJhID0gTC5jaXJjbGVNYXJrZXIoCiAgICAgICAgICAgICAgICBbNDAuNTY5NjA1OTQyNzU1MDUsLTc0LjEzNDA1NzI5ODYyNTddLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiYmx1ZSIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogIiMzMTg2Y2MiLAogICJmaWxsT3BhY2l0eSI6IDAuNywKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDUsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKS5hZGRUbyhtYXBfZDUwMDQxNGYxNzc5NGE0YTgxNTY5NmJkZDVmODU4OWMpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfZWNmNGRkM2M5MTQxNGJiOWEwN2FlMTBlMGM0ZjIzNTAgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfZTBkZGYyY2MyZTcwNDEzOTg5MDlkNGZkMGFiOWJhMjAgPSAkKCc8ZGl2IGlkPSJodG1sX2UwZGRmMmNjMmU3MDQxMzk4OTA5ZDRmZDBhYjliYTIwIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij5SaWNobW9uZCBUb3duPC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF9lY2Y0ZGQzYzkxNDE0YmI5YTA3YWUxMGUwYzRmMjM1MC5zZXRDb250ZW50KGh0bWxfZTBkZGYyY2MyZTcwNDEzOTg5MDlkNGZkMGFiOWJhMjApOwogICAgICAgICAgICAKCiAgICAgICAgICAgIGNpcmNsZV9tYXJrZXJfODVkZWE2ZTJjMjAzNDI5OWJkOTU2NjUzMTI4ZGZlMmEuYmluZFBvcHVwKHBvcHVwX2VjZjRkZDNjOTE0MTRiYjlhMDdhZTEwZTBjNGYyMzUwKTsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBjaXJjbGVfbWFya2VyXzIzMmI3ZDFkYmQ0YTRhNmFiOGI2NWE2YmUzMTE2YmEwID0gTC5jaXJjbGVNYXJrZXIoCiAgICAgICAgICAgICAgICBbNDAuNjA5NzE5MzQwNzkyODQsLTc0LjA2NjY3NzY2MDYxNzcxXSwKICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogImJsdWUiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IHRydWUsCiAgImZpbGxDb2xvciI6ICIjMzE4NmNjIiwKICAiZmlsbE9wYWNpdHkiOiAwLjcsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJvcGFjaXR5IjogMS4wLAogICJyYWRpdXMiOiA1LAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAzCn0KICAgICAgICAgICAgICAgICkuYWRkVG8obWFwX2Q1MDA0MTRmMTc3OTRhNGE4MTU2OTZiZGQ1Zjg1ODljKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwXzAzMjJhOGZiNmY3MDRlYWZiYjY2NDI3ZDM3NmFiMzYwID0gTC5wb3B1cCh7bWF4V2lkdGg6ICczMDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sXzA0NTk4Yzg3OWIwNzQzNGZiNjlkZWMyOTdlNmJlODFiID0gJCgnPGRpdiBpZD0iaHRtbF8wNDU5OGM4NzliMDc0MzRmYjY5ZGVjMjk3ZTZiZTgxYiIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+U2hvcmUgQWNyZXM8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzAzMjJhOGZiNmY3MDRlYWZiYjY2NDI3ZDM3NmFiMzYwLnNldENvbnRlbnQoaHRtbF8wNDU5OGM4NzliMDc0MzRmYjY5ZGVjMjk3ZTZiZTgxYik7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl8yMzJiN2QxZGJkNGE0YTZhYjhiNjVhNmJlMzExNmJhMC5iaW5kUG9wdXAocG9wdXBfMDMyMmE4ZmI2ZjcwNGVhZmJiNjY0MjdkMzc2YWIzNjApOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfYTFlZWVjMzczNTVlNDA2ZjhkNDE3ZjY3N2M2OTY3NjkgPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MC42MTkxNzg0NTIwMjg0MywtNzQuMDcyNjQyNDQ1NDg0XSwKICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogImJsdWUiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IHRydWUsCiAgImZpbGxDb2xvciI6ICIjMzE4NmNjIiwKICAiZmlsbE9wYWNpdHkiOiAwLjcsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJvcGFjaXR5IjogMS4wLAogICJyYWRpdXMiOiA1LAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAzCn0KICAgICAgICAgICAgICAgICkuYWRkVG8obWFwX2Q1MDA0MTRmMTc3OTRhNGE4MTU2OTZiZGQ1Zjg1ODljKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwXzE5ZWY5ZDM1YWVjNDRhZmVhNzQyYThiZGJkZDQ5NGI3ID0gTC5wb3B1cCh7bWF4V2lkdGg6ICczMDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sX2QwOTRlOTg1ZTI4MDQ5MjU5OTZlZTc4NzVlNTg1NzRmID0gJCgnPGRpdiBpZD0iaHRtbF9kMDk0ZTk4NWUyODA0OTI1OTk2ZWU3ODc1ZTU4NTc0ZiIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+Q2xpZnRvbjwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfMTllZjlkMzVhZWM0NGFmZWE3NDJhOGJkYmRkNDk0Yjcuc2V0Q29udGVudChodG1sX2QwOTRlOTg1ZTI4MDQ5MjU5OTZlZTc4NzVlNTg1NzRmKTsKICAgICAgICAgICAgCgogICAgICAgICAgICBjaXJjbGVfbWFya2VyX2ExZWVlYzM3MzU1ZTQwNmY4ZDQxN2Y2NzdjNjk2NzY5LmJpbmRQb3B1cChwb3B1cF8xOWVmOWQzNWFlYzQ0YWZlYTc0MmE4YmRiZGQ0OTRiNyk7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgY2lyY2xlX21hcmtlcl8yNDAzMzI5ZWNlMzI0MjZjOWExY2RkOTRmZDZkNzFjNiA9IEwuY2lyY2xlTWFya2VyKAogICAgICAgICAgICAgICAgWzQwLjYwNDQ3MzE4OTY4NzksLTc0LjA4NDAyMzY0NzQwMzU4XSwKICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogImJsdWUiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IHRydWUsCiAgImZpbGxDb2xvciI6ICIjMzE4NmNjIiwKICAiZmlsbE9wYWNpdHkiOiAwLjcsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJvcGFjaXR5IjogMS4wLAogICJyYWRpdXMiOiA1LAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAzCn0KICAgICAgICAgICAgICAgICkuYWRkVG8obWFwX2Q1MDA0MTRmMTc3OTRhNGE4MTU2OTZiZGQ1Zjg1ODljKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwXzcyOGZlYTkwYzE2NTQ0MWE4NGUyMjNkMGNhMWNhYTg3ID0gTC5wb3B1cCh7bWF4V2lkdGg6ICczMDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sXzAyNzY5ZjY1OGZkODQ5Y2U5MDM4YjQ4YWU0YTI4NWIwID0gJCgnPGRpdiBpZD0iaHRtbF8wMjc2OWY2NThmZDg0OWNlOTAzOGI0OGFlNGEyODViMCIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+Q29uY29yZDwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfNzI4ZmVhOTBjMTY1NDQxYTg0ZTIyM2QwY2ExY2FhODcuc2V0Q29udGVudChodG1sXzAyNzY5ZjY1OGZkODQ5Y2U5MDM4YjQ4YWU0YTI4NWIwKTsKICAgICAgICAgICAgCgogICAgICAgICAgICBjaXJjbGVfbWFya2VyXzI0MDMzMjllY2UzMjQyNmM5YTFjZGQ5NGZkNmQ3MWM2LmJpbmRQb3B1cChwb3B1cF83MjhmZWE5MGMxNjU0NDFhODRlMjIzZDBjYTFjYWE4Nyk7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgY2lyY2xlX21hcmtlcl8zMTc4Y2UzMzNlYTA0MDQ1OTdmNWJlZTE0ZmFiZGEyNSA9IEwuY2lyY2xlTWFya2VyKAogICAgICAgICAgICAgICAgWzQwLjYwNjc5NDM5NDgwMSwtNzQuMDk3NzYyMDY5NzI1MjJdLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiYmx1ZSIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogIiMzMTg2Y2MiLAogICJmaWxsT3BhY2l0eSI6IDAuNywKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDUsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKS5hZGRUbyhtYXBfZDUwMDQxNGYxNzc5NGE0YTgxNTY5NmJkZDVmODU4OWMpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfZDk4MzUxYzIxZTkyNDRlZGE2ZGUxZTRiODVhYTllNDkgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfZjA1ZmZjOTQwMWU3NDM5MWE5NzVhMTE0NzY0NmJlYjUgPSAkKCc8ZGl2IGlkPSJodG1sX2YwNWZmYzk0MDFlNzQzOTFhOTc1YTExNDc2NDZiZWI1IiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij5FbWVyc29uIEhpbGw8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwX2Q5ODM1MWMyMWU5MjQ0ZWRhNmRlMWU0Yjg1YWE5ZTQ5LnNldENvbnRlbnQoaHRtbF9mMDVmZmM5NDAxZTc0MzkxYTk3NWExMTQ3NjQ2YmViNSk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl8zMTc4Y2UzMzNlYTA0MDQ1OTdmNWJlZTE0ZmFiZGEyNS5iaW5kUG9wdXAocG9wdXBfZDk4MzUxYzIxZTkyNDRlZGE2ZGUxZTRiODVhYTllNDkpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfNDI3ZjA3MzgxZjI3NDdlMjk5ZGQzMmUyNTEyYWE4ZmQgPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MC42MzU2MzAwMDY4MTE1MSwtNzQuMDk4MDUwNjIzNzM4ODddLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiYmx1ZSIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogIiMzMTg2Y2MiLAogICJmaWxsT3BhY2l0eSI6IDAuNywKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDUsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKS5hZGRUbyhtYXBfZDUwMDQxNGYxNzc5NGE0YTgxNTY5NmJkZDVmODU4OWMpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfZjJhNDNiYTI2MTEwNGE0OTlmZGNmZDA1ODM2NDY2NTcgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfZGU2MDkyZDhkMzAwNDNhMGIxZGIzM2QzNWVlZjg5MzEgPSAkKCc8ZGl2IGlkPSJodG1sX2RlNjA5MmQ4ZDMwMDQzYTBiMWRiMzNkMzVlZWY4OTMxIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij5SYW5kYWxsIE1hbm9yPC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF9mMmE0M2JhMjYxMTA0YTQ5OWZkY2ZkMDU4MzY0NjY1Ny5zZXRDb250ZW50KGh0bWxfZGU2MDkyZDhkMzAwNDNhMGIxZGIzM2QzNWVlZjg5MzEpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIGNpcmNsZV9tYXJrZXJfNDI3ZjA3MzgxZjI3NDdlMjk5ZGQzMmUyNTEyYWE4ZmQuYmluZFBvcHVwKHBvcHVwX2YyYTQzYmEyNjExMDRhNDk5ZmRjZmQwNTgzNjQ2NjU3KTsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBjaXJjbGVfbWFya2VyXzUxMTBlODFlZDJjZDRlMjk4MTg1OWIxMWU3YzNiOGVkID0gTC5jaXJjbGVNYXJrZXIoCiAgICAgICAgICAgICAgICBbNDAuNjM4NDMyODM3OTQ3OTUsLTc0LjE4NjIyMzMxNzQ5ODIzXSwKICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogImJsdWUiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IHRydWUsCiAgImZpbGxDb2xvciI6ICIjMzE4NmNjIiwKICAiZmlsbE9wYWNpdHkiOiAwLjcsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJvcGFjaXR5IjogMS4wLAogICJyYWRpdXMiOiA1LAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAzCn0KICAgICAgICAgICAgICAgICkuYWRkVG8obWFwX2Q1MDA0MTRmMTc3OTRhNGE4MTU2OTZiZGQ1Zjg1ODljKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwX2E1Y2RiYjViNGM4ZDQ5MThiNDlmYjk2ZTE3ZjkxY2UyID0gTC5wb3B1cCh7bWF4V2lkdGg6ICczMDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sXzdmZmE1NzllMjQzODQ2NmFhYzI5YjYxOTIwNGY4OWI2ID0gJCgnPGRpdiBpZD0iaHRtbF83ZmZhNTc5ZTI0Mzg0NjZhYWMyOWI2MTkyMDRmODliNiIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+SG93bGFuZCBIb29rPC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF9hNWNkYmI1YjRjOGQ0OTE4YjQ5ZmI5NmUxN2Y5MWNlMi5zZXRDb250ZW50KGh0bWxfN2ZmYTU3OWUyNDM4NDY2YWFjMjliNjE5MjA0Zjg5YjYpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIGNpcmNsZV9tYXJrZXJfNTExMGU4MWVkMmNkNGUyOTgxODU5YjExZTdjM2I4ZWQuYmluZFBvcHVwKHBvcHVwX2E1Y2RiYjViNGM4ZDQ5MThiNDlmYjk2ZTE3ZjkxY2UyKTsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBjaXJjbGVfbWFya2VyXzRhMTJkODQyMDk3ZTQyNWJhZGVlYTY3NzFjZjc3N2U0ID0gTC5jaXJjbGVNYXJrZXIoCiAgICAgICAgICAgICAgICBbNDAuNjMwMTQ2NzQxMTkzODI2LC03NC4xNDE4MTY3ODk2ODg5XSwKICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogImJsdWUiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IHRydWUsCiAgImZpbGxDb2xvciI6ICIjMzE4NmNjIiwKICAiZmlsbE9wYWNpdHkiOiAwLjcsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJvcGFjaXR5IjogMS4wLAogICJyYWRpdXMiOiA1LAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAzCn0KICAgICAgICAgICAgICAgICkuYWRkVG8obWFwX2Q1MDA0MTRmMTc3OTRhNGE4MTU2OTZiZGQ1Zjg1ODljKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwXzdlNTU1YzAzNDZlNzRmNWE5YTA3M2ZlMmFlOGE2MWUyID0gTC5wb3B1cCh7bWF4V2lkdGg6ICczMDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sX2Q4OGQ5YzhmMzgxNDRkMWJiMDM3YTdiMThjNzg0MGM4ID0gJCgnPGRpdiBpZD0iaHRtbF9kODhkOWM4ZjM4MTQ0ZDFiYjAzN2E3YjE4Yzc4NDBjOCIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+RWxtIFBhcms8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzdlNTU1YzAzNDZlNzRmNWE5YTA3M2ZlMmFlOGE2MWUyLnNldENvbnRlbnQoaHRtbF9kODhkOWM4ZjM4MTQ0ZDFiYjAzN2E3YjE4Yzc4NDBjOCk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl80YTEyZDg0MjA5N2U0MjViYWRlZWE2NzcxY2Y3NzdlNC5iaW5kUG9wdXAocG9wdXBfN2U1NTVjMDM0NmU3NGY1YTlhMDczZmUyYWU4YTYxZTIpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfNWNlODQ0MDkwNzRlNGQyNWJjMzc4MjE2OGQ4MmQ4OTUgPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MC42NTIxMTc0NTE3OTM0OTQsLTczLjkxNjY1MzMxOTc4MDQ4XSwKICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogImJsdWUiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IHRydWUsCiAgImZpbGxDb2xvciI6ICIjMzE4NmNjIiwKICAiZmlsbE9wYWNpdHkiOiAwLjcsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJvcGFjaXR5IjogMS4wLAogICJyYWRpdXMiOiA1LAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAzCn0KICAgICAgICAgICAgICAgICkuYWRkVG8obWFwX2Q1MDA0MTRmMTc3OTRhNGE4MTU2OTZiZGQ1Zjg1ODljKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwXzJjZWNjYWU1MzhlNTRjM2VhZjAzMmRlOTI4Y2Y2ZTRjID0gTC5wb3B1cCh7bWF4V2lkdGg6ICczMDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sXzhhMDViZDc5NjAwZjRjMzNhZGZiMTBiMDVmYzE1ODY3ID0gJCgnPGRpdiBpZD0iaHRtbF84YTA1YmQ3OTYwMGY0YzMzYWRmYjEwYjA1ZmMxNTg2NyIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+UmVtc2VuIFZpbGxhZ2U8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzJjZWNjYWU1MzhlNTRjM2VhZjAzMmRlOTI4Y2Y2ZTRjLnNldENvbnRlbnQoaHRtbF84YTA1YmQ3OTYwMGY0YzMzYWRmYjEwYjA1ZmMxNTg2Nyk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl81Y2U4NDQwOTA3NGU0ZDI1YmMzNzgyMTY4ZDgyZDg5NS5iaW5kUG9wdXAocG9wdXBfMmNlY2NhZTUzOGU1NGMzZWFmMDMyZGU5MjhjZjZlNGMpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfYTgxNmI2ZTRhM2E3NGY0ZmFjZTczMTc5MzljM2VlOTIgPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MC42NjI3NDQyNzk2OTY2LC03My44ODUxMTc3NjM3OTI5Ml0sCiAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICJibHVlIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiB0cnVlLAogICJmaWxsQ29sb3IiOiAiIzMxODZjYyIsCiAgImZpbGxPcGFjaXR5IjogMC43LAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAib3BhY2l0eSI6IDEuMCwKICAicmFkaXVzIjogNSwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9CiAgICAgICAgICAgICAgICApLmFkZFRvKG1hcF9kNTAwNDE0ZjE3Nzk0YTRhODE1Njk2YmRkNWY4NTg5Yyk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF80ZTgwNWJjMTA1ZTE0Y2VjYjA2ZTg2ODc1ZmFlOTAxYyA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF9hZTFmNjFhYWE4ZGY0NWIyOGNhNGRkNzExOTJjM2U3MiA9ICQoJzxkaXYgaWQ9Imh0bWxfYWUxZjYxYWFhOGRmNDViMjhjYTRkZDcxMTkyYzNlNzIiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPk5ldyBMb3RzPC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF80ZTgwNWJjMTA1ZTE0Y2VjYjA2ZTg2ODc1ZmFlOTAxYy5zZXRDb250ZW50KGh0bWxfYWUxZjYxYWFhOGRmNDViMjhjYTRkZDcxMTkyYzNlNzIpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIGNpcmNsZV9tYXJrZXJfYTgxNmI2ZTRhM2E3NGY0ZmFjZTczMTc5MzljM2VlOTIuYmluZFBvcHVwKHBvcHVwXzRlODA1YmMxMDVlMTRjZWNiMDZlODY4NzVmYWU5MDFjKTsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBjaXJjbGVfbWFya2VyX2RmNjZiZDMxNjBmNTQyMzdhOWJiYWVhMzZmNmZmOGFmID0gTC5jaXJjbGVNYXJrZXIoCiAgICAgICAgICAgICAgICBbNDAuNjMxMzE3NTUwMzk2NjcsLTczLjkwMjMzNDc0Mjk1ODM2XSwKICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogImJsdWUiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IHRydWUsCiAgImZpbGxDb2xvciI6ICIjMzE4NmNjIiwKICAiZmlsbE9wYWNpdHkiOiAwLjcsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJvcGFjaXR5IjogMS4wLAogICJyYWRpdXMiOiA1LAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAzCn0KICAgICAgICAgICAgICAgICkuYWRkVG8obWFwX2Q1MDA0MTRmMTc3OTRhNGE4MTU2OTZiZGQ1Zjg1ODljKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwX2M3ZTczYzQxNjA4YTQ0ZTRhYTUxY2QwZmU2OWRmZjNmID0gTC5wb3B1cCh7bWF4V2lkdGg6ICczMDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sX2ZlNjVjM2ExN2JjNzQzMDlhNmVkYTg1NTczNWJmNmM4ID0gJCgnPGRpdiBpZD0iaHRtbF9mZTY1YzNhMTdiYzc0MzA5YTZlZGE4NTU3MzViZjZjOCIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+UGFlcmRlZ2F0IEJhc2luPC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF9jN2U3M2M0MTYwOGE0NGU0YWE1MWNkMGZlNjlkZmYzZi5zZXRDb250ZW50KGh0bWxfZmU2NWMzYTE3YmM3NDMwOWE2ZWRhODU1NzM1YmY2YzgpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIGNpcmNsZV9tYXJrZXJfZGY2NmJkMzE2MGY1NDIzN2E5YmJhZWEzNmY2ZmY4YWYuYmluZFBvcHVwKHBvcHVwX2M3ZTczYzQxNjA4YTQ0ZTRhYTUxY2QwZmU2OWRmZjNmKTsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBjaXJjbGVfbWFya2VyX2QxZGY1YjcxOTViZjRlYWY4YjRmNDcyMGE5ZTUzNGM1ID0gTC5jaXJjbGVNYXJrZXIoCiAgICAgICAgICAgICAgICBbNDAuNjE1OTc0MjM5NjIzMzYsLTczLjkxNTE1MzkxNTUwNDA0XSwKICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogImJsdWUiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IHRydWUsCiAgImZpbGxDb2xvciI6ICIjMzE4NmNjIiwKICAiZmlsbE9wYWNpdHkiOiAwLjcsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJvcGFjaXR5IjogMS4wLAogICJyYWRpdXMiOiA1LAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAzCn0KICAgICAgICAgICAgICAgICkuYWRkVG8obWFwX2Q1MDA0MTRmMTc3OTRhNGE4MTU2OTZiZGQ1Zjg1ODljKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwXzZlMzI4Y2YzOWYxNTRjMTliYTFkOTdmMmEzNTRjZTg4ID0gTC5wb3B1cCh7bWF4V2lkdGg6ICczMDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sXzkwMWU4NTA1ZjA1MzRhMDdiNWM3ZDFlMjRhNGNkM2FjID0gJCgnPGRpdiBpZD0iaHRtbF85MDFlODUwNWYwNTM0YTA3YjVjN2QxZTI0YTRjZDNhYyIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+TWlsbCBCYXNpbjwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfNmUzMjhjZjM5ZjE1NGMxOWJhMWQ5N2YyYTM1NGNlODguc2V0Q29udGVudChodG1sXzkwMWU4NTA1ZjA1MzRhMDdiNWM3ZDFlMjRhNGNkM2FjKTsKICAgICAgICAgICAgCgogICAgICAgICAgICBjaXJjbGVfbWFya2VyX2QxZGY1YjcxOTViZjRlYWY4YjRmNDcyMGE5ZTUzNGM1LmJpbmRQb3B1cChwb3B1cF82ZTMyOGNmMzlmMTU0YzE5YmExZDk3ZjJhMzU0Y2U4OCk7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgY2lyY2xlX21hcmtlcl82ZmVkMTZlOTEyOTQ0NmE2YjI1MTVkM2FjYWJlYjlkYSA9IEwuY2lyY2xlTWFya2VyKAogICAgICAgICAgICAgICAgWzQwLjcxMTQ1OTY0MzcwNDgyLC03My43OTY0NjQ2MjA4MTU5M10sCiAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICJibHVlIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiB0cnVlLAogICJmaWxsQ29sb3IiOiAiIzMxODZjYyIsCiAgImZpbGxPcGFjaXR5IjogMC43LAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAib3BhY2l0eSI6IDEuMCwKICAicmFkaXVzIjogNSwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9CiAgICAgICAgICAgICAgICApLmFkZFRvKG1hcF9kNTAwNDE0ZjE3Nzk0YTRhODE1Njk2YmRkNWY4NTg5Yyk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF9mMTAxZDZlYjM1MzY0N2JiYjllYWVjM2UwZDRlZTE4OCA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF9lODEwYzI4YWYxYWY0ZTcxOGIxNDExMWNkM2MzNzMzZCA9ICQoJzxkaXYgaWQ9Imh0bWxfZTgxMGMyOGFmMWFmNGU3MThiMTQxMTFjZDNjMzczM2QiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPkphbWFpY2EgSGlsbHM8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwX2YxMDFkNmViMzUzNjQ3YmJiOWVhZWMzZTBkNGVlMTg4LnNldENvbnRlbnQoaHRtbF9lODEwYzI4YWYxYWY0ZTcxOGIxNDExMWNkM2MzNzMzZCk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl82ZmVkMTZlOTEyOTQ0NmE2YjI1MTVkM2FjYWJlYjlkYS5iaW5kUG9wdXAocG9wdXBfZjEwMWQ2ZWIzNTM2NDdiYmI5ZWFlYzNlMGQ0ZWUxODgpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfY2I1NjE4YWZhYjlmNDU5MDgwZTViMWIyMWY4NmU2MzUgPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MC43MzM1MDAyNTQyOTc1NywtNzMuNzk2NzE2NzgwMjgzNDldLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiYmx1ZSIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogIiMzMTg2Y2MiLAogICJmaWxsT3BhY2l0eSI6IDAuNywKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDUsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKS5hZGRUbyhtYXBfZDUwMDQxNGYxNzc5NGE0YTgxNTY5NmJkZDVmODU4OWMpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfYmMzMWU4NjdiNzE2NGQwYjkzMDMwZWI3ZDU0ZjNjZmIgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfNzc2MTMzZjFmNzdlNDFiMmFhNTE0ODE5MWUzNjFiMGEgPSAkKCc8ZGl2IGlkPSJodG1sXzc3NjEzM2YxZjc3ZTQxYjJhYTUxNDgxOTFlMzYxYjBhIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij5VdG9waWE8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwX2JjMzFlODY3YjcxNjRkMGI5MzAzMGViN2Q1NGYzY2ZiLnNldENvbnRlbnQoaHRtbF83NzYxMzNmMWY3N2U0MWIyYWE1MTQ4MTkxZTM2MWIwYSk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl9jYjU2MThhZmFiOWY0NTkwODBlNWIxYjIxZjg2ZTYzNS5iaW5kUG9wdXAocG9wdXBfYmMzMWU4NjdiNzE2NGQwYjkzMDMwZWI3ZDU0ZjNjZmIpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfNzdkN2U2YzI1M2M5NGUyZmIyZjJlMmQ5OGY4MjBjYzcgPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MC43MzQ5MzYxODA3NTQ3OCwtNzMuODA0ODYxMjAwNDA1MzddLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiYmx1ZSIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogIiMzMTg2Y2MiLAogICJmaWxsT3BhY2l0eSI6IDAuNywKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDUsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKS5hZGRUbyhtYXBfZDUwMDQxNGYxNzc5NGE0YTgxNTY5NmJkZDVmODU4OWMpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfMjI4ZDY5NTUyYWE4NDk3NjhkNjRkOGIzMTRkYmNmNTMgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfYjUyZTNlMzA2ZTZkNDY5MTgxZmE2MzcyNjYzMDM3N2MgPSAkKCc8ZGl2IGlkPSJodG1sX2I1MmUzZTMwNmU2ZDQ2OTE4MWZhNjM3MjY2MzAzNzdjIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij5Qb21vbm9rPC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF8yMjhkNjk1NTJhYTg0OTc2OGQ2NGQ4YjMxNGRiY2Y1My5zZXRDb250ZW50KGh0bWxfYjUyZTNlMzA2ZTZkNDY5MTgxZmE2MzcyNjYzMDM3N2MpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIGNpcmNsZV9tYXJrZXJfNzdkN2U2YzI1M2M5NGUyZmIyZjJlMmQ5OGY4MjBjYzcuYmluZFBvcHVwKHBvcHVwXzIyOGQ2OTU1MmFhODQ5NzY4ZDY0ZDhiMzE0ZGJjZjUzKTsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBjaXJjbGVfbWFya2VyXzZlODhiNjdlMDRkMjRiNzM5YzZhZGY5NTJiM2Q0NmU1ID0gTC5jaXJjbGVNYXJrZXIoCiAgICAgICAgICAgICAgICBbNDAuNzcwMzE3MzkyOTk4MiwtNzMuODk0Njc5OTYyNzA1NzRdLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiYmx1ZSIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogIiMzMTg2Y2MiLAogICJmaWxsT3BhY2l0eSI6IDAuNywKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDUsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKS5hZGRUbyhtYXBfZDUwMDQxNGYxNzc5NGE0YTgxNTY5NmJkZDVmODU4OWMpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfNzU4YjU5M2IwOTNhNDMxNmJhYjViNGI3ZjNjMjhhOWEgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfNzU2NmJiODJjMTRhNGJmYTkzZjY1NmRmYTU3YWViZmEgPSAkKCc8ZGl2IGlkPSJodG1sXzc1NjZiYjgyYzE0YTRiZmE5M2Y2NTZkZmE1N2FlYmZhIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij5Bc3RvcmlhIEhlaWdodHM8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzc1OGI1OTNiMDkzYTQzMTZiYWI1YjRiN2YzYzI4YTlhLnNldENvbnRlbnQoaHRtbF83NTY2YmI4MmMxNGE0YmZhOTNmNjU2ZGZhNTdhZWJmYSk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl82ZTg4YjY3ZTA0ZDI0YjczOWM2YWRmOTUyYjNkNDZlNS5iaW5kUG9wdXAocG9wdXBfNzU4YjU5M2IwOTNhNDMxNmJhYjViNGI3ZjNjMjhhOWEpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfMDcwMTA2M2UxNDc5NDdhZTg4NjdlNDQwODE5ODFmNzUgPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MC44MzE0MjgzNDE2MTU0OCwtNzMuOTAxMTk5MDMzODc2NjddLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiYmx1ZSIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogIiMzMTg2Y2MiLAogICJmaWxsT3BhY2l0eSI6IDAuNywKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDUsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKS5hZGRUbyhtYXBfZDUwMDQxNGYxNzc5NGE0YTgxNTY5NmJkZDVmODU4OWMpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfMjY5YjRiMDYxNjcyNGQxNWE3N2JiMmFmZDE2ZjljZTAgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfMDI0M2ZiYTU3MzM4NDExN2FiYzA0YzU2NGI2OTRlNDAgPSAkKCc8ZGl2IGlkPSJodG1sXzAyNDNmYmE1NzMzODQxMTdhYmMwNGM1NjRiNjk0ZTQwIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij5DbGFyZW1vbnQgVmlsbGFnZTwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfMjY5YjRiMDYxNjcyNGQxNWE3N2JiMmFmZDE2ZjljZTAuc2V0Q29udGVudChodG1sXzAyNDNmYmE1NzMzODQxMTdhYmMwNGM1NjRiNjk0ZTQwKTsKICAgICAgICAgICAgCgogICAgICAgICAgICBjaXJjbGVfbWFya2VyXzA3MDEwNjNlMTQ3OTQ3YWU4ODY3ZTQ0MDgxOTgxZjc1LmJpbmRQb3B1cChwb3B1cF8yNjliNGIwNjE2NzI0ZDE1YTc3YmIyYWZkMTZmOWNlMCk7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgY2lyY2xlX21hcmtlcl9iZWI3ZGE3NmI5NjA0NWNmOWZiOWExMjQ2YTgzOTk2MCA9IEwuY2lyY2xlTWFya2VyKAogICAgICAgICAgICAgICAgWzQwLjgyNDc4MDQ5MDg0MjkwNSwtNzMuOTE1ODQ2NTI3NTkwMDldLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiYmx1ZSIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogIiMzMTg2Y2MiLAogICJmaWxsT3BhY2l0eSI6IDAuNywKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDUsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKS5hZGRUbyhtYXBfZDUwMDQxNGYxNzc5NGE0YTgxNTY5NmJkZDVmODU4OWMpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfZTk5MmRkMGMyOTM4NDcyYTk4ZjFlMzE0ZThkMzQwZDQgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfNWExNDNjMzcxYzgzNGM4Nzg4YjNiYzEyNTUzMTM2OGEgPSAkKCc8ZGl2IGlkPSJodG1sXzVhMTQzYzM3MWM4MzRjODc4OGIzYmMxMjU1MzEzNjhhIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij5Db25jb3Vyc2UgVmlsbGFnZTwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfZTk5MmRkMGMyOTM4NDcyYTk4ZjFlMzE0ZThkMzQwZDQuc2V0Q29udGVudChodG1sXzVhMTQzYzM3MWM4MzRjODc4OGIzYmMxMjU1MzEzNjhhKTsKICAgICAgICAgICAgCgogICAgICAgICAgICBjaXJjbGVfbWFya2VyX2JlYjdkYTc2Yjk2MDQ1Y2Y5ZmI5YTEyNDZhODM5OTYwLmJpbmRQb3B1cChwb3B1cF9lOTkyZGQwYzI5Mzg0NzJhOThmMWUzMTRlOGQzNDBkNCk7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgY2lyY2xlX21hcmtlcl84MGJmYzQ0YjcyYjI0YTc0YWJiYzlmZDBmZjI1MmE1ZCA9IEwuY2lyY2xlTWFya2VyKAogICAgICAgICAgICAgICAgWzQwLjg0MzgyNjE3NjcxNjU0LC03My45MTY1NTU1MTk2NDQxOV0sCiAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICJibHVlIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiB0cnVlLAogICJmaWxsQ29sb3IiOiAiIzMxODZjYyIsCiAgImZpbGxPcGFjaXR5IjogMC43LAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAib3BhY2l0eSI6IDEuMCwKICAicmFkaXVzIjogNSwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9CiAgICAgICAgICAgICAgICApLmFkZFRvKG1hcF9kNTAwNDE0ZjE3Nzk0YTRhODE1Njk2YmRkNWY4NTg5Yyk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF82MzM0NzZiNGVhZWQ0N2E0ODE5OTkxNWVjOTQ3YzFjNiA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF8yMWZkNGE3ZGQzYmE0NThiOGQ5YjZkNGI4YTgwZThlNCA9ICQoJzxkaXYgaWQ9Imh0bWxfMjFmZDRhN2RkM2JhNDU4YjhkOWI2ZDRiOGE4MGU4ZTQiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPk1vdW50IEVkZW48L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzYzMzQ3NmI0ZWFlZDQ3YTQ4MTk5OTE1ZWM5NDdjMWM2LnNldENvbnRlbnQoaHRtbF8yMWZkNGE3ZGQzYmE0NThiOGQ5YjZkNGI4YTgwZThlNCk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl84MGJmYzQ0YjcyYjI0YTc0YWJiYzlmZDBmZjI1MmE1ZC5iaW5kUG9wdXAocG9wdXBfNjMzNDc2YjRlYWVkNDdhNDgxOTk5MTVlYzk0N2MxYzYpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfZWY4MDNlZjQwMTVlNDMxOWEyMDE2NzJkZTMwZTQzM2YgPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MC44NDg4NDE2MDcyNDY2NSwtNzMuOTA4Mjk5MzA4ODE5ODhdLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiYmx1ZSIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogIiMzMTg2Y2MiLAogICJmaWxsT3BhY2l0eSI6IDAuNywKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDUsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKS5hZGRUbyhtYXBfZDUwMDQxNGYxNzc5NGE0YTgxNTY5NmJkZDVmODU4OWMpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfODM5ZTA3MTI1YzNiNDk1YjlkYWYxZjQ0OTNhOGUzYjAgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfNjYzN2JmNjI2YjZkNDlmOWI1ZDEwNzIwMTljYThlY2YgPSAkKCc8ZGl2IGlkPSJodG1sXzY2MzdiZjYyNmI2ZDQ5ZjliNWQxMDcyMDE5Y2E4ZWNmIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij5Nb3VudCBIb3BlPC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF84MzllMDcxMjVjM2I0OTViOWRhZjFmNDQ5M2E4ZTNiMC5zZXRDb250ZW50KGh0bWxfNjYzN2JmNjI2YjZkNDlmOWI1ZDEwNzIwMTljYThlY2YpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIGNpcmNsZV9tYXJrZXJfZWY4MDNlZjQwMTVlNDMxOWEyMDE2NzJkZTMwZTQzM2YuYmluZFBvcHVwKHBvcHVwXzgzOWUwNzEyNWMzYjQ5NWI5ZGFmMWY0NDkzYThlM2IwKTsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBjaXJjbGVfbWFya2VyX2NhNzYyYzQ2N2NhNTQ3MDNhMjA0NWE5ZGQzOThmMzNlID0gTC5jaXJjbGVNYXJrZXIoCiAgICAgICAgICAgICAgICBbNDAuNzYwMjgwMzMxMzEzNzQsLTczLjk2MzU1NjE0MDk0MzAzXSwKICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogImJsdWUiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IHRydWUsCiAgImZpbGxDb2xvciI6ICIjMzE4NmNjIiwKICAiZmlsbE9wYWNpdHkiOiAwLjcsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJvcGFjaXR5IjogMS4wLAogICJyYWRpdXMiOiA1LAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAzCn0KICAgICAgICAgICAgICAgICkuYWRkVG8obWFwX2Q1MDA0MTRmMTc3OTRhNGE4MTU2OTZiZGQ1Zjg1ODljKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwXzMwYWNmMDBjYjk3MzQ5ZWFiYzk0ODY1NGE1YzdmMDEyID0gTC5wb3B1cCh7bWF4V2lkdGg6ICczMDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sX2MzYmU1MDNlNmJmMDQzZWFhZGVkNzhhMmNhNmRlZTc4ID0gJCgnPGRpdiBpZD0iaHRtbF9jM2JlNTAzZTZiZjA0M2VhYWRlZDc4YTJjYTZkZWU3OCIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+U3V0dG9uIFBsYWNlPC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF8zMGFjZjAwY2I5NzM0OWVhYmM5NDg2NTRhNWM3ZjAxMi5zZXRDb250ZW50KGh0bWxfYzNiZTUwM2U2YmYwNDNlYWFkZWQ3OGEyY2E2ZGVlNzgpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIGNpcmNsZV9tYXJrZXJfY2E3NjJjNDY3Y2E1NDcwM2EyMDQ1YTlkZDM5OGYzM2UuYmluZFBvcHVwKHBvcHVwXzMwYWNmMDBjYjk3MzQ5ZWFiYzk0ODY1NGE1YzdmMDEyKTsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBjaXJjbGVfbWFya2VyXzc1YTQ0ODZmNzEzZDQ0Mjg4ODkyMWI5NDczZmFkMTUzID0gTC5jaXJjbGVNYXJrZXIoCiAgICAgICAgICAgICAgICBbNDAuNzQzNDE0MDkwMDczNTM2LC03My45NTM4Njc4MjEzMDc0NV0sCiAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICJibHVlIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiB0cnVlLAogICJmaWxsQ29sb3IiOiAiIzMxODZjYyIsCiAgImZpbGxPcGFjaXR5IjogMC43LAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAib3BhY2l0eSI6IDEuMCwKICAicmFkaXVzIjogNSwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9CiAgICAgICAgICAgICAgICApLmFkZFRvKG1hcF9kNTAwNDE0ZjE3Nzk0YTRhODE1Njk2YmRkNWY4NTg5Yyk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF9jNzJlOWYxZDA4OGY0YmZkYTU0YjJkYjFlMzM0MDAwOSA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF82ZWZjNTdkZjY0NDQ0NjI2OThiNzJjNTcyNmQ3OWU3NCA9ICQoJzxkaXYgaWQ9Imh0bWxfNmVmYzU3ZGY2NDQ0NDYyNjk4YjcyYzU3MjZkNzllNzQiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPkh1bnRlcnMgUG9pbnQ8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwX2M3MmU5ZjFkMDg4ZjRiZmRhNTRiMmRiMWUzMzQwMDA5LnNldENvbnRlbnQoaHRtbF82ZWZjNTdkZjY0NDQ0NjI2OThiNzJjNTcyNmQ3OWU3NCk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl83NWE0NDg2ZjcxM2Q0NDI4ODg5MjFiOTQ3M2ZhZDE1My5iaW5kUG9wdXAocG9wdXBfYzcyZTlmMWQwODhmNGJmZGE1NGIyZGIxZTMzNDAwMDkpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfYjI2ZWFiZjQxNmI3NGFhNmIwZjRjZDk3NmIxN2YwNzggPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MC43NTIwNDIzNjk1MDcyMiwtNzMuOTY3NzA4MjQ1ODE4MzRdLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiYmx1ZSIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogIiMzMTg2Y2MiLAogICJmaWxsT3BhY2l0eSI6IDAuNywKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDUsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKS5hZGRUbyhtYXBfZDUwMDQxNGYxNzc5NGE0YTgxNTY5NmJkZDVmODU4OWMpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfNDU0OGM4MTNhNGEzNDkxMGEwNGY0MDc5YTRlMmQ1YTkgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfYmYwMjAxNmI3NjIxNDNiYmJjNTNjNDE5OGM4MTFkYzEgPSAkKCc8ZGl2IGlkPSJodG1sX2JmMDIwMTZiNzYyMTQzYmJiYzUzYzQxOThjODExZGMxIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij5UdXJ0bGUgQmF5PC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF80NTQ4YzgxM2E0YTM0OTEwYTA0ZjQwNzlhNGUyZDVhOS5zZXRDb250ZW50KGh0bWxfYmYwMjAxNmI3NjIxNDNiYmJjNTNjNDE5OGM4MTFkYzEpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIGNpcmNsZV9tYXJrZXJfYjI2ZWFiZjQxNmI3NGFhNmIwZjRjZDk3NmIxN2YwNzguYmluZFBvcHVwKHBvcHVwXzQ1NDhjODEzYTRhMzQ5MTBhMDRmNDA3OWE0ZTJkNWE5KTsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBjaXJjbGVfbWFya2VyXzVkMTBkN2U3ZDlkZDQwYjFhMjRhYmM1M2IxZGUxOGZlID0gTC5jaXJjbGVNYXJrZXIoCiAgICAgICAgICAgICAgICBbNDAuNzQ2OTE3NDEwNzQwMTk1LC03My45NzEyMTkyODcyMjI2NV0sCiAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICJibHVlIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiB0cnVlLAogICJmaWxsQ29sb3IiOiAiIzMxODZjYyIsCiAgImZpbGxPcGFjaXR5IjogMC43LAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAib3BhY2l0eSI6IDEuMCwKICAicmFkaXVzIjogNSwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9CiAgICAgICAgICAgICAgICApLmFkZFRvKG1hcF9kNTAwNDE0ZjE3Nzk0YTRhODE1Njk2YmRkNWY4NTg5Yyk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF85YjJiYTJkYzlmOTY0MTYwOGNmODdiMjQ5YTIxNGY5NCA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF8wMTBjODUyNTQ2ZjA0ZDk1OWE5MDc0ODQyMzEwNjA5OSA9ICQoJzxkaXYgaWQ9Imh0bWxfMDEwYzg1MjU0NmYwNGQ5NTlhOTA3NDg0MjMxMDYwOTkiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPlR1ZG9yIENpdHk8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzliMmJhMmRjOWY5NjQxNjA4Y2Y4N2IyNDlhMjE0Zjk0LnNldENvbnRlbnQoaHRtbF8wMTBjODUyNTQ2ZjA0ZDk1OWE5MDc0ODQyMzEwNjA5OSk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl81ZDEwZDdlN2Q5ZGQ0MGIxYTI0YWJjNTNiMWRlMThmZS5iaW5kUG9wdXAocG9wdXBfOWIyYmEyZGM5Zjk2NDE2MDhjZjg3YjI0OWEyMTRmOTQpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfYzdiMDdlZThiMzI4NDBkYTliMWMzNzQxZjBmMmMwMTMgPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MC43MzA5OTk1NTQ3NzA2MSwtNzMuOTc0MDUxNzA0NjkyMDNdLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiYmx1ZSIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogIiMzMTg2Y2MiLAogICJmaWxsT3BhY2l0eSI6IDAuNywKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDUsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKS5hZGRUbyhtYXBfZDUwMDQxNGYxNzc5NGE0YTgxNTY5NmJkZDVmODU4OWMpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfYTkxYWJmZDExM2YwNDZkNTk1M2U2NjBjOWE1YjY2NjQgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfZjdhMjc5Y2ZkMzQ4NDk0OGE0ZTJiMjI3N2Q0M2NiNTUgPSAkKCc8ZGl2IGlkPSJodG1sX2Y3YTI3OWNmZDM0ODQ5NDhhNGUyYjIyNzdkNDNjYjU1IiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij5TdHV5dmVzYW50IFRvd248L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwX2E5MWFiZmQxMTNmMDQ2ZDU5NTNlNjYwYzlhNWI2NjY0LnNldENvbnRlbnQoaHRtbF9mN2EyNzljZmQzNDg0OTQ4YTRlMmIyMjc3ZDQzY2I1NSk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl9jN2IwN2VlOGIzMjg0MGRhOWIxYzM3NDFmMGYyYzAxMy5iaW5kUG9wdXAocG9wdXBfYTkxYWJmZDExM2YwNDZkNTk1M2U2NjBjOWE1YjY2NjQpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfMWRkZTY0OWYxMjEzNDY2Nzg5MThjMTczYTk4ODA5Y2YgPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MC43Mzk2NzMwNDc2Mzg0MjYsLTczLjk5MDk0NzEwNTI4MjZdLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiYmx1ZSIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogIiMzMTg2Y2MiLAogICJmaWxsT3BhY2l0eSI6IDAuNywKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDUsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKS5hZGRUbyhtYXBfZDUwMDQxNGYxNzc5NGE0YTgxNTY5NmJkZDVmODU4OWMpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfZTg1ODdhNGZhNTNhNDlhYTg5ZjY4OTg3OTk4YzliMzQgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfMGM0ZGQ4NjExZjFhNGEzOGIxMmJjOGQzMjc2NzIzYmEgPSAkKCc8ZGl2IGlkPSJodG1sXzBjNGRkODYxMWYxYTRhMzhiMTJiYzhkMzI3NjcyM2JhIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij5GbGF0aXJvbjwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfZTg1ODdhNGZhNTNhNDlhYTg5ZjY4OTg3OTk4YzliMzQuc2V0Q29udGVudChodG1sXzBjNGRkODYxMWYxYTRhMzhiMTJiYzhkMzI3NjcyM2JhKTsKICAgICAgICAgICAgCgogICAgICAgICAgICBjaXJjbGVfbWFya2VyXzFkZGU2NDlmMTIxMzQ2Njc4OTE4YzE3M2E5ODgwOWNmLmJpbmRQb3B1cChwb3B1cF9lODU4N2E0ZmE1M2E0OWFhODlmNjg5ODc5OThjOWIzNCk7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgY2lyY2xlX21hcmtlcl8yNjQ4OGM2ZDcxMzA0OGExYmE3ZmQ2YzM5ODM3ZWM4ZSA9IEwuY2lyY2xlTWFya2VyKAogICAgICAgICAgICAgICAgWzQwLjc0NTY1MTgwNjA4MDc2LC03My45MTgxOTI4NjQzMTY4Ml0sCiAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICJibHVlIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiB0cnVlLAogICJmaWxsQ29sb3IiOiAiIzMxODZjYyIsCiAgImZpbGxPcGFjaXR5IjogMC43LAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAib3BhY2l0eSI6IDEuMCwKICAicmFkaXVzIjogNSwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9CiAgICAgICAgICAgICAgICApLmFkZFRvKG1hcF9kNTAwNDE0ZjE3Nzk0YTRhODE1Njk2YmRkNWY4NTg5Yyk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF9jZGM0MWEyZDI4NWY0ZDgwOTUzYTM2ODIwMTI3YThlYyA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF82MjgwNmIwMjc4ZTQ0ZWI4OTA2MjU3OGJjYjVlMzhkYiA9ICQoJzxkaXYgaWQ9Imh0bWxfNjI4MDZiMDI3OGU0NGViODkwNjI1NzhiY2I1ZTM4ZGIiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPlN1bm55c2lkZSBHYXJkZW5zPC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF9jZGM0MWEyZDI4NWY0ZDgwOTUzYTM2ODIwMTI3YThlYy5zZXRDb250ZW50KGh0bWxfNjI4MDZiMDI3OGU0NGViODkwNjI1NzhiY2I1ZTM4ZGIpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIGNpcmNsZV9tYXJrZXJfMjY0ODhjNmQ3MTMwNDhhMWJhN2ZkNmMzOTgzN2VjOGUuYmluZFBvcHVwKHBvcHVwX2NkYzQxYTJkMjg1ZjRkODA5NTNhMzY4MjAxMjdhOGVjKTsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBjaXJjbGVfbWFya2VyX2M3YTAyZTUwNGU3ZTQyODlhNGM1NzIwODFjMTE5NWI0ID0gTC5jaXJjbGVNYXJrZXIoCiAgICAgICAgICAgICAgICBbNDAuNzM3MjUwNzE2OTQ0OTcsLTczLjkzMjQ0MjM1MjYwMTc4XSwKICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogImJsdWUiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IHRydWUsCiAgImZpbGxDb2xvciI6ICIjMzE4NmNjIiwKICAiZmlsbE9wYWNpdHkiOiAwLjcsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJvcGFjaXR5IjogMS4wLAogICJyYWRpdXMiOiA1LAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAzCn0KICAgICAgICAgICAgICAgICkuYWRkVG8obWFwX2Q1MDA0MTRmMTc3OTRhNGE4MTU2OTZiZGQ1Zjg1ODljKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwXzk5YzI5MDA0MjdmNDRmMWM5MTM3NGZkZjZhNjY0NTc1ID0gTC5wb3B1cCh7bWF4V2lkdGg6ICczMDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sXzNjZWI0ZDZjMDgyYTQ0NDFhYzcyMjI3ZmU5MTE3MzRlID0gJCgnPGRpdiBpZD0iaHRtbF8zY2ViNGQ2YzA4MmE0NDQxYWM3MjIyN2ZlOTExNzM0ZSIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+Qmxpc3N2aWxsZTwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfOTljMjkwMDQyN2Y0NGYxYzkxMzc0ZmRmNmE2NjQ1NzUuc2V0Q29udGVudChodG1sXzNjZWI0ZDZjMDgyYTQ0NDFhYzcyMjI3ZmU5MTE3MzRlKTsKICAgICAgICAgICAgCgogICAgICAgICAgICBjaXJjbGVfbWFya2VyX2M3YTAyZTUwNGU3ZTQyODlhNGM1NzIwODFjMTE5NWI0LmJpbmRQb3B1cChwb3B1cF85OWMyOTAwNDI3ZjQ0ZjFjOTEzNzRmZGY2YTY2NDU3NSk7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgY2lyY2xlX21hcmtlcl84Yjk0YzM4MWZiYmQ0YWY1YjczOGY3ZDE4YzUzMzZkNCA9IEwuY2lyY2xlTWFya2VyKAogICAgICAgICAgICAgICAgWzQwLjcwMzI4MTA5MDkzMDE0LC03My45OTU1MDc1MTg4ODQxNV0sCiAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICJibHVlIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiB0cnVlLAogICJmaWxsQ29sb3IiOiAiIzMxODZjYyIsCiAgImZpbGxPcGFjaXR5IjogMC43LAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAib3BhY2l0eSI6IDEuMCwKICAicmFkaXVzIjogNSwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9CiAgICAgICAgICAgICAgICApLmFkZFRvKG1hcF9kNTAwNDE0ZjE3Nzk0YTRhODE1Njk2YmRkNWY4NTg5Yyk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF85MTVjYjlmNjBmNWY0YjJlYjI2YTI5YTg4YmZmNzM5ZiA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF9hMzM4NGIxYmMzZDY0YTJjODUxNWRlNjllYjVjZGVhZSA9ICQoJzxkaXYgaWQ9Imh0bWxfYTMzODRiMWJjM2Q2NGEyYzg1MTVkZTY5ZWI1Y2RlYWUiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPkZ1bHRvbiBGZXJyeTwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfOTE1Y2I5ZjYwZjVmNGIyZWIyNmEyOWE4OGJmZjczOWYuc2V0Q29udGVudChodG1sX2EzMzg0YjFiYzNkNjRhMmM4NTE1ZGU2OWViNWNkZWFlKTsKICAgICAgICAgICAgCgogICAgICAgICAgICBjaXJjbGVfbWFya2VyXzhiOTRjMzgxZmJiZDRhZjViNzM4ZjdkMThjNTMzNmQ0LmJpbmRQb3B1cChwb3B1cF85MTVjYjlmNjBmNWY0YjJlYjI2YTI5YTg4YmZmNzM5Zik7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgY2lyY2xlX21hcmtlcl9lYWQwZTM4Y2ZiZTA0NDBhOGMyNDE1YzA1NmU3ZTExMyA9IEwuY2lyY2xlTWFya2VyKAogICAgICAgICAgICAgICAgWzQwLjcwMzMyMTQ5ODgyODc0LC03My45ODExMTYwMzU5MjM5M10sCiAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICJibHVlIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiB0cnVlLAogICJmaWxsQ29sb3IiOiAiIzMxODZjYyIsCiAgImZpbGxPcGFjaXR5IjogMC43LAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAib3BhY2l0eSI6IDEuMCwKICAicmFkaXVzIjogNSwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9CiAgICAgICAgICAgICAgICApLmFkZFRvKG1hcF9kNTAwNDE0ZjE3Nzk0YTRhODE1Njk2YmRkNWY4NTg5Yyk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF9hYjJiNjc5YzNkODE0MWNhYjg5NTU3OTIxOTlkMzk4NCA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF8xNDMxMjU2NWQ1MjQ0YjE4YWFiZjgzZmI0YzAyMzQxZiA9ICQoJzxkaXYgaWQ9Imh0bWxfMTQzMTI1NjVkNTI0NGIxOGFhYmY4M2ZiNGMwMjM0MWYiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPlZpbmVnYXIgSGlsbDwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfYWIyYjY3OWMzZDgxNDFjYWI4OTU1NzkyMTk5ZDM5ODQuc2V0Q29udGVudChodG1sXzE0MzEyNTY1ZDUyNDRiMThhYWJmODNmYjRjMDIzNDFmKTsKICAgICAgICAgICAgCgogICAgICAgICAgICBjaXJjbGVfbWFya2VyX2VhZDBlMzhjZmJlMDQ0MGE4YzI0MTVjMDU2ZTdlMTEzLmJpbmRQb3B1cChwb3B1cF9hYjJiNjc5YzNkODE0MWNhYjg5NTU3OTIxOTlkMzk4NCk7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgY2lyY2xlX21hcmtlcl9hZmRiZWFkYTVlMDI0YWI0YWRkNGJlOTYxZmE5MzI0NSA9IEwuY2lyY2xlTWFya2VyKAogICAgICAgICAgICAgICAgWzQwLjY3NTAzOTg2NTAzMjM3LC03My45MzA1MzEwODgxNzMzOF0sCiAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICJibHVlIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiB0cnVlLAogICJmaWxsQ29sb3IiOiAiIzMxODZjYyIsCiAgImZpbGxPcGFjaXR5IjogMC43LAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAib3BhY2l0eSI6IDEuMCwKICAicmFkaXVzIjogNSwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9CiAgICAgICAgICAgICAgICApLmFkZFRvKG1hcF9kNTAwNDE0ZjE3Nzk0YTRhODE1Njk2YmRkNWY4NTg5Yyk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF80ZjhlYmFmMzEyMTI0ZmRiOTJkYzFjMDNmYjRjNDJjYiA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF9lNTBmYzdiNDAzMWI0YmVmOWZjNjA0YWVhYTkxZTllMSA9ICQoJzxkaXYgaWQ9Imh0bWxfZTUwZmM3YjQwMzFiNGJlZjlmYzYwNGFlYWE5MWU5ZTEiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPldlZWtzdmlsbGU8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzRmOGViYWYzMTIxMjRmZGI5MmRjMWMwM2ZiNGM0MmNiLnNldENvbnRlbnQoaHRtbF9lNTBmYzdiNDAzMWI0YmVmOWZjNjA0YWVhYTkxZTllMSk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl9hZmRiZWFkYTVlMDI0YWI0YWRkNGJlOTYxZmE5MzI0NS5iaW5kUG9wdXAocG9wdXBfNGY4ZWJhZjMxMjEyNGZkYjkyZGMxYzAzZmI0YzQyY2IpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfMDBiZWE3NjI5M2M0NGUzNWE5MDIyOGQxMWEyZjRhNWEgPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MC42Nzc4NjEwNDc2OTUzMSwtNzMuOTAzMzE2ODQ4NTI1OTldLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiYmx1ZSIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogIiMzMTg2Y2MiLAogICJmaWxsT3BhY2l0eSI6IDAuNywKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDUsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKS5hZGRUbyhtYXBfZDUwMDQxNGYxNzc5NGE0YTgxNTY5NmJkZDVmODU4OWMpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfZTQ4MWViZGE4ZDI1NGFiMzk4NmNkOTRhYzA1MDhkZTEgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfNmNiODBkOWI2OGMzNGVlZDhhYTk0NjgyYTNiNzMxMzcgPSAkKCc8ZGl2IGlkPSJodG1sXzZjYjgwZDliNjhjMzRlZWQ4YWE5NDY4MmEzYjczMTM3IiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij5Ccm9hZHdheSBKdW5jdGlvbjwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfZTQ4MWViZGE4ZDI1NGFiMzk4NmNkOTRhYzA1MDhkZTEuc2V0Q29udGVudChodG1sXzZjYjgwZDliNjhjMzRlZWQ4YWE5NDY4MmEzYjczMTM3KTsKICAgICAgICAgICAgCgogICAgICAgICAgICBjaXJjbGVfbWFya2VyXzAwYmVhNzYyOTNjNDRlMzVhOTAyMjhkMTFhMmY0YTVhLmJpbmRQb3B1cChwb3B1cF9lNDgxZWJkYThkMjU0YWIzOTg2Y2Q5NGFjMDUwOGRlMSk7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgY2lyY2xlX21hcmtlcl9hMTc1ZjBhNTI3YTg0MWU1YmM1MjQ1NzA0NjhkNThmNyA9IEwuY2lyY2xlTWFya2VyKAogICAgICAgICAgICAgICAgWzQwLjcwMzE3NjMyODIyNjkyLC03My45ODg3NTI4MDc0NTA0XSwKICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogImJsdWUiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IHRydWUsCiAgImZpbGxDb2xvciI6ICIjMzE4NmNjIiwKICAiZmlsbE9wYWNpdHkiOiAwLjcsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJvcGFjaXR5IjogMS4wLAogICJyYWRpdXMiOiA1LAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAzCn0KICAgICAgICAgICAgICAgICkuYWRkVG8obWFwX2Q1MDA0MTRmMTc3OTRhNGE4MTU2OTZiZGQ1Zjg1ODljKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwXzUwODUxMTJmODQyMTRlNmViYjQwOGU5NGU3YmNiZDcxID0gTC5wb3B1cCh7bWF4V2lkdGg6ICczMDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sXzg5MjczMmQxNjlkNTQ4OTliZTc3NjNlNjllZjA3MzE3ID0gJCgnPGRpdiBpZD0iaHRtbF84OTI3MzJkMTY5ZDU0ODk5YmU3NzYzZTY5ZWYwNzMxNyIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+RHVtYm88L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzUwODUxMTJmODQyMTRlNmViYjQwOGU5NGU3YmNiZDcxLnNldENvbnRlbnQoaHRtbF84OTI3MzJkMTY5ZDU0ODk5YmU3NzYzZTY5ZWYwNzMxNyk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl9hMTc1ZjBhNTI3YTg0MWU1YmM1MjQ1NzA0NjhkNThmNy5iaW5kUG9wdXAocG9wdXBfNTA4NTExMmY4NDIxNGU2ZWJiNDA4ZTk0ZTdiY2JkNzEpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfN2ZiMjQyNzBlZDhjNDNlM2E5NGNmOGQwOGQxNjRjODUgPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MC42MDE4MDk1NzYzMTQ0NCwtNzQuMTIwNTkzOTk3MTgwMDFdLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiYmx1ZSIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogIiMzMTg2Y2MiLAogICJmaWxsT3BhY2l0eSI6IDAuNywKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDUsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKS5hZGRUbyhtYXBfZDUwMDQxNGYxNzc5NGE0YTgxNTY5NmJkZDVmODU4OWMpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfY2I1M2ZkMGQ3OWU0NDdmMzgyNzI0MTQ4Y2ZiODcxYTMgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfODlkMWVlYWNkMmUwNDg1MmJhZTY3YTM2OGFkYjM4OGMgPSAkKCc8ZGl2IGlkPSJodG1sXzg5ZDFlZWFjZDJlMDQ4NTJiYWU2N2EzNjhhZGIzODhjIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij5NYW5vciBIZWlnaHRzPC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF9jYjUzZmQwZDc5ZTQ0N2YzODI3MjQxNDhjZmI4NzFhMy5zZXRDb250ZW50KGh0bWxfODlkMWVlYWNkMmUwNDg1MmJhZTY3YTM2OGFkYjM4OGMpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIGNpcmNsZV9tYXJrZXJfN2ZiMjQyNzBlZDhjNDNlM2E5NGNmOGQwOGQxNjRjODUuYmluZFBvcHVwKHBvcHVwX2NiNTNmZDBkNzllNDQ3ZjM4MjcyNDE0OGNmYjg3MWEzKTsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBjaXJjbGVfbWFya2VyXzFjYmE0OWEwNGQxNDRlMjQ5MmJlMjljZDNhZTdkMmJhID0gTC5jaXJjbGVNYXJrZXIoCiAgICAgICAgICAgICAgICBbNDAuNjAzNzA2OTI2MjczNzEsLTc0LjEzMjA4NDQ3NDg0Mjk4XSwKICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogImJsdWUiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IHRydWUsCiAgImZpbGxDb2xvciI6ICIjMzE4NmNjIiwKICAiZmlsbE9wYWNpdHkiOiAwLjcsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJvcGFjaXR5IjogMS4wLAogICJyYWRpdXMiOiA1LAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAzCn0KICAgICAgICAgICAgICAgICkuYWRkVG8obWFwX2Q1MDA0MTRmMTc3OTRhNGE4MTU2OTZiZGQ1Zjg1ODljKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwX2U2YjM0MDE5YjYwNTQyZDY5ZDc3YjMwZDE1MTI3ZTM4ID0gTC5wb3B1cCh7bWF4V2lkdGg6ICczMDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sXzRjZjAyODA5OTMyYzRiOWNhMzhjMzU3ODNlNTg3ZmE1ID0gJCgnPGRpdiBpZD0iaHRtbF80Y2YwMjgwOTkzMmM0YjljYTM4YzM1NzgzZTU4N2ZhNSIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+V2lsbG93YnJvb2s8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwX2U2YjM0MDE5YjYwNTQyZDY5ZDc3YjMwZDE1MTI3ZTM4LnNldENvbnRlbnQoaHRtbF80Y2YwMjgwOTkzMmM0YjljYTM4YzM1NzgzZTU4N2ZhNSk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl8xY2JhNDlhMDRkMTQ0ZTI0OTJiZTI5Y2QzYWU3ZDJiYS5iaW5kUG9wdXAocG9wdXBfZTZiMzQwMTliNjA1NDJkNjlkNzdiMzBkMTUxMjdlMzgpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfZWI3ZTA1NDMzMWJmNDYxZjgzZmEyZTg2YzI2YzE1OTkgPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MC41NDExMzk5MjIwOTE3NjYsLTc0LjIxNzc2NjM2MDY4NTY3XSwKICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogImJsdWUiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IHRydWUsCiAgImZpbGxDb2xvciI6ICIjMzE4NmNjIiwKICAiZmlsbE9wYWNpdHkiOiAwLjcsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJvcGFjaXR5IjogMS4wLAogICJyYWRpdXMiOiA1LAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAzCn0KICAgICAgICAgICAgICAgICkuYWRkVG8obWFwX2Q1MDA0MTRmMTc3OTRhNGE4MTU2OTZiZGQ1Zjg1ODljKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwXzVkYTViYTdlMjVmMzQwZjhhMDRhNWI3MzZiM2MxZTFjID0gTC5wb3B1cCh7bWF4V2lkdGg6ICczMDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sX2FlMmU3N2YzZGYxOTQ2YzFiOTlmNWZiNzQ4YTk4ZWIzID0gJCgnPGRpdiBpZD0iaHRtbF9hZTJlNzdmM2RmMTk0NmMxYjk5ZjVmYjc0OGE5OGViMyIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+U2FuZHkgR3JvdW5kPC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF81ZGE1YmE3ZTI1ZjM0MGY4YTA0YTViNzM2YjNjMWUxYy5zZXRDb250ZW50KGh0bWxfYWUyZTc3ZjNkZjE5NDZjMWI5OWY1ZmI3NDhhOThlYjMpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIGNpcmNsZV9tYXJrZXJfZWI3ZTA1NDMzMWJmNDYxZjgzZmEyZTg2YzI2YzE1OTkuYmluZFBvcHVwKHBvcHVwXzVkYTViYTdlMjVmMzQwZjhhMDRhNWI3MzZiM2MxZTFjKTsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBjaXJjbGVfbWFya2VyXzEyMjM5YzM3NDZmZTRjNDFhYTIyYzdkYTlhYjIxMWEyID0gTC5jaXJjbGVNYXJrZXIoCiAgICAgICAgICAgICAgICBbNDAuNTc5MTE4NzQyOTYxMjE0LC03NC4xMjcyNzI0MDYwNDk0Nl0sCiAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICJibHVlIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiB0cnVlLAogICJmaWxsQ29sb3IiOiAiIzMxODZjYyIsCiAgImZpbGxPcGFjaXR5IjogMC43LAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAib3BhY2l0eSI6IDEuMCwKICAicmFkaXVzIjogNSwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9CiAgICAgICAgICAgICAgICApLmFkZFRvKG1hcF9kNTAwNDE0ZjE3Nzk0YTRhODE1Njk2YmRkNWY4NTg5Yyk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF9jM2I5ZmFmMTE0Yjc0NGU2YTk1NGUwOTVmMDU5OThjNSA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF84OWM4N2RkZGI1MGQ0ZWU5ODQ4N2I5MDI1NTM0MDBiNiA9ICQoJzxkaXYgaWQ9Imh0bWxfODljODdkZGRiNTBkNGVlOTg0ODdiOTAyNTUzNDAwYjYiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPkVnYmVydHZpbGxlPC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF9jM2I5ZmFmMTE0Yjc0NGU2YTk1NGUwOTVmMDU5OThjNS5zZXRDb250ZW50KGh0bWxfODljODdkZGRiNTBkNGVlOTg0ODdiOTAyNTUzNDAwYjYpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIGNpcmNsZV9tYXJrZXJfMTIyMzljMzc0NmZlNGM0MWFhMjJjN2RhOWFiMjExYTIuYmluZFBvcHVwKHBvcHVwX2MzYjlmYWYxMTRiNzQ0ZTZhOTU0ZTA5NWYwNTk5OGM1KTsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBjaXJjbGVfbWFya2VyXzgyMzIwZmQxOWE2NjRmYjViOGIzYzMyMzJlMGFkZTdiID0gTC5jaXJjbGVNYXJrZXIoCiAgICAgICAgICAgICAgICBbNDAuNTY3Mzc1ODg5NTcwMzIsLTczLjg5MjEzNzYwMjMyODIyXSwKICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogImJsdWUiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IHRydWUsCiAgImZpbGxDb2xvciI6ICIjMzE4NmNjIiwKICAiZmlsbE9wYWNpdHkiOiAwLjcsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJvcGFjaXR5IjogMS4wLAogICJyYWRpdXMiOiA1LAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAzCn0KICAgICAgICAgICAgICAgICkuYWRkVG8obWFwX2Q1MDA0MTRmMTc3OTRhNGE4MTU2OTZiZGQ1Zjg1ODljKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwX2RlMWEwOGE3ZTIyMDQ4YjQ4NGQ2YWUwZmMxZTQyYjlmID0gTC5wb3B1cCh7bWF4V2lkdGg6ICczMDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sX2Q2MDVjZTYwNDRhNjRmMjBiZDY3NDUzMDg3NzBkZTgyID0gJCgnPGRpdiBpZD0iaHRtbF9kNjA1Y2U2MDQ0YTY0ZjIwYmQ2NzQ1MzA4NzcwZGU4MiIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+Um94YnVyeTwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfZGUxYTA4YTdlMjIwNDhiNDg0ZDZhZTBmYzFlNDJiOWYuc2V0Q29udGVudChodG1sX2Q2MDVjZTYwNDRhNjRmMjBiZDY3NDUzMDg3NzBkZTgyKTsKICAgICAgICAgICAgCgogICAgICAgICAgICBjaXJjbGVfbWFya2VyXzgyMzIwZmQxOWE2NjRmYjViOGIzYzMyMzJlMGFkZTdiLmJpbmRQb3B1cChwb3B1cF9kZTFhMDhhN2UyMjA0OGI0ODRkNmFlMGZjMWU0MmI5Zik7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgY2lyY2xlX21hcmtlcl9iYjYxOGNjOWJlZjA0NDgxOTE2ODYzNzFjZTVmMGY3NCA9IEwuY2lyY2xlTWFya2VyKAogICAgICAgICAgICAgICAgWzQwLjU5ODUyNTA5NTEzNzI1NSwtNzMuOTU5MTg0NTk0Mjg3MDJdLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiYmx1ZSIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogIiMzMTg2Y2MiLAogICJmaWxsT3BhY2l0eSI6IDAuNywKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDUsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKS5hZGRUbyhtYXBfZDUwMDQxNGYxNzc5NGE0YTgxNTY5NmJkZDVmODU4OWMpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfM2U1ZjA4ZjlhMDYzNGViMDliNjcyOTdhOTNkNzM1ODYgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfZTFkYWJjZmE0MTFmNGUyN2EyMmVlNjVlZTQyN2YyNWYgPSAkKCc8ZGl2IGlkPSJodG1sX2UxZGFiY2ZhNDExZjRlMjdhMjJlZTY1ZWU0MjdmMjVmIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij5Ib21lY3Jlc3Q8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzNlNWYwOGY5YTA2MzRlYjA5YjY3Mjk3YTkzZDczNTg2LnNldENvbnRlbnQoaHRtbF9lMWRhYmNmYTQxMWY0ZTI3YTIyZWU2NWVlNDI3ZjI1Zik7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl9iYjYxOGNjOWJlZjA0NDgxOTE2ODYzNzFjZTVmMGY3NC5iaW5kUG9wdXAocG9wdXBfM2U1ZjA4ZjlhMDYzNGViMDliNjcyOTdhOTNkNzM1ODYpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfODUyYjkxMzk2YWFkNGVlMzgyYzQ0MjUzNWNhZTViYzMgPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MC43MTY0MTQ1MTExNTgxODUsLTczLjg4MTE0MzE5MjAwNjA0XSwKICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogImJsdWUiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IHRydWUsCiAgImZpbGxDb2xvciI6ICIjMzE4NmNjIiwKICAiZmlsbE9wYWNpdHkiOiAwLjcsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJvcGFjaXR5IjogMS4wLAogICJyYWRpdXMiOiA1LAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAzCn0KICAgICAgICAgICAgICAgICkuYWRkVG8obWFwX2Q1MDA0MTRmMTc3OTRhNGE4MTU2OTZiZGQ1Zjg1ODljKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwXzJlMzVjZjM2MDA3NjRhMTdiMTY0MmYwNzg4N2YyODJiID0gTC5wb3B1cCh7bWF4V2lkdGg6ICczMDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sX2FhYTc0NGY5NTc0NzRkNWM5MzFkNWMwZDY3MjMwNTU2ID0gJCgnPGRpdiBpZD0iaHRtbF9hYWE3NDRmOTU3NDc0ZDVjOTMxZDVjMGQ2NzIzMDU1NiIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+TWlkZGxlIFZpbGxhZ2U8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzJlMzVjZjM2MDA3NjRhMTdiMTY0MmYwNzg4N2YyODJiLnNldENvbnRlbnQoaHRtbF9hYWE3NDRmOTU3NDc0ZDVjOTMxZDVjMGQ2NzIzMDU1Nik7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl84NTJiOTEzOTZhYWQ0ZWUzODJjNDQyNTM1Y2FlNWJjMy5iaW5kUG9wdXAocG9wdXBfMmUzNWNmMzYwMDc2NGExN2IxNjQyZjA3ODg3ZjI4MmIpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfODI2YjY4NjBkNjAyNGI2NWJmYmU0MDE5NTFjNjk2N2QgPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MC41MjYyNjQwNjczNDgxMiwtNzQuMjAxNTI1NTY0NTc2NThdLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiYmx1ZSIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogIiMzMTg2Y2MiLAogICJmaWxsT3BhY2l0eSI6IDAuNywKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDUsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKS5hZGRUbyhtYXBfZDUwMDQxNGYxNzc5NGE0YTgxNTY5NmJkZDVmODU4OWMpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfN2EyMWFiN2RiOTQ4NDU0YjlkY2I5MGM1ODY1NjM5NWEgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfYzE2MzkwYzFlNDc5NDExYmIzYmIxOWNkOTVjNjg4ZGUgPSAkKCc8ZGl2IGlkPSJodG1sX2MxNjM5MGMxZTQ3OTQxMWJiM2JiMTljZDk1YzY4OGRlIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij5QcmluY2UmIzM5O3MgQmF5PC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF83YTIxYWI3ZGI5NDg0NTRiOWRjYjkwYzU4NjU2Mzk1YS5zZXRDb250ZW50KGh0bWxfYzE2MzkwYzFlNDc5NDExYmIzYmIxOWNkOTVjNjg4ZGUpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIGNpcmNsZV9tYXJrZXJfODI2YjY4NjBkNjAyNGI2NWJmYmU0MDE5NTFjNjk2N2QuYmluZFBvcHVwKHBvcHVwXzdhMjFhYjdkYjk0ODQ1NGI5ZGNiOTBjNTg2NTYzOTVhKTsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBjaXJjbGVfbWFya2VyX2JjMmQyMmNmZWQ0MjQ4NmI5YzI2NjU2NDI5N2NjOTZlID0gTC5jaXJjbGVNYXJrZXIoCiAgICAgICAgICAgICAgICBbNDAuNTc2NTA2MjkzNzk0ODksLTc0LjEzNzkyNjYzNzcxNTY4XSwKICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogImJsdWUiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IHRydWUsCiAgImZpbGxDb2xvciI6ICIjMzE4NmNjIiwKICAiZmlsbE9wYWNpdHkiOiAwLjcsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJvcGFjaXR5IjogMS4wLAogICJyYWRpdXMiOiA1LAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAzCn0KICAgICAgICAgICAgICAgICkuYWRkVG8obWFwX2Q1MDA0MTRmMTc3OTRhNGE4MTU2OTZiZGQ1Zjg1ODljKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwXzNhMDg5OWZmMWJmZTRlNTg5Y2FmYzViZDkzOGYyYTA0ID0gTC5wb3B1cCh7bWF4V2lkdGg6ICczMDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sX2M2NWY1ZDE4OTQ3NDQyYzg4ZjdkMTdkNjBmN2Y1MGEwID0gJCgnPGRpdiBpZD0iaHRtbF9jNjVmNWQxODk0NzQ0MmM4OGY3ZDE3ZDYwZjdmNTBhMCIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+TGlnaHRob3VzZSBIaWxsPC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF8zYTA4OTlmZjFiZmU0ZTU4OWNhZmM1YmQ5MzhmMmEwNC5zZXRDb250ZW50KGh0bWxfYzY1ZjVkMTg5NDc0NDJjODhmN2QxN2Q2MGY3ZjUwYTApOwogICAgICAgICAgICAKCiAgICAgICAgICAgIGNpcmNsZV9tYXJrZXJfYmMyZDIyY2ZlZDQyNDg2YjljMjY2NTY0Mjk3Y2M5NmUuYmluZFBvcHVwKHBvcHVwXzNhMDg5OWZmMWJmZTRlNTg5Y2FmYzViZDkzOGYyYTA0KTsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBjaXJjbGVfbWFya2VyXzRhNjdkY2MwYmQyYzRiNjVhZWVlZDViYTM3NjE1NzYwID0gTC5jaXJjbGVNYXJrZXIoCiAgICAgICAgICAgICAgICBbNDAuNTE5NTQxNDU3NDg5MDksLTc0LjIyOTU3MDgwNjI2OTQxXSwKICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogImJsdWUiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IHRydWUsCiAgImZpbGxDb2xvciI6ICIjMzE4NmNjIiwKICAiZmlsbE9wYWNpdHkiOiAwLjcsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJvcGFjaXR5IjogMS4wLAogICJyYWRpdXMiOiA1LAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAzCn0KICAgICAgICAgICAgICAgICkuYWRkVG8obWFwX2Q1MDA0MTRmMTc3OTRhNGE4MTU2OTZiZGQ1Zjg1ODljKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwX2I1YzBiNzViYjE0YTQ3ZGI4NmIwMmI2NDI5Y2E1ZDJjID0gTC5wb3B1cCh7bWF4V2lkdGg6ICczMDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sXzIwMzg5MGUzMTE4MTRlMDdiZTU2YzI5ZDkyZWFjMzI2ID0gJCgnPGRpdiBpZD0iaHRtbF8yMDM4OTBlMzExODE0ZTA3YmU1NmMyOWQ5MmVhYzMyNiIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+UmljaG1vbmQgVmFsbGV5PC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF9iNWMwYjc1YmIxNGE0N2RiODZiMDJiNjQyOWNhNWQyYy5zZXRDb250ZW50KGh0bWxfMjAzODkwZTMxMTgxNGUwN2JlNTZjMjlkOTJlYWMzMjYpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIGNpcmNsZV9tYXJrZXJfNGE2N2RjYzBiZDJjNGI2NWFlZWVkNWJhMzc2MTU3NjAuYmluZFBvcHVwKHBvcHVwX2I1YzBiNzViYjE0YTQ3ZGI4NmIwMmI2NDI5Y2E1ZDJjKTsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBjaXJjbGVfbWFya2VyXzg0ZTg3MzhlYTQ1MTQ3NTc5YTE5ODNlZmFiNTI0YzQyID0gTC5jaXJjbGVNYXJrZXIoCiAgICAgICAgICAgICAgICBbNDAuNzkwNjAxNTU2NzAxNDgsLTczLjgyNjY3NzU3MTM4NjQxXSwKICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogImJsdWUiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IHRydWUsCiAgImZpbGxDb2xvciI6ICIjMzE4NmNjIiwKICAiZmlsbE9wYWNpdHkiOiAwLjcsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJvcGFjaXR5IjogMS4wLAogICJyYWRpdXMiOiA1LAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAzCn0KICAgICAgICAgICAgICAgICkuYWRkVG8obWFwX2Q1MDA0MTRmMTc3OTRhNGE4MTU2OTZiZGQ1Zjg1ODljKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwXzIyOWM0MzMyMTc1ODQ5NzBiNjRlY2RmMjBiNDVkM2JkID0gTC5wb3B1cCh7bWF4V2lkdGg6ICczMDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sXzBjYThkYTM4NjBhMjRkNDI5YTAxYzQwZmJlOWJmMjllID0gJCgnPGRpdiBpZD0iaHRtbF8wY2E4ZGEzODYwYTI0ZDQyOWEwMWM0MGZiZTliZjI5ZSIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+TWFsYmE8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzIyOWM0MzMyMTc1ODQ5NzBiNjRlY2RmMjBiNDVkM2JkLnNldENvbnRlbnQoaHRtbF8wY2E4ZGEzODYwYTI0ZDQyOWEwMWM0MGZiZTliZjI5ZSk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl84NGU4NzM4ZWE0NTE0NzU3OWExOTgzZWZhYjUyNGM0Mi5iaW5kUG9wdXAocG9wdXBfMjI5YzQzMzIxNzU4NDk3MGI2NGVjZGYyMGI0NWQzYmQpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfMGM5OWI2ZDU5NjhiNGFmMDk0NjRiNDlhMGVjYWE0ZWUgPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MC42ODE5OTg5MzQ1MTczLC03My44OTAzNDU3MDk4NzJdLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiYmx1ZSIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogIiMzMTg2Y2MiLAogICJmaWxsT3BhY2l0eSI6IDAuNywKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDUsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKS5hZGRUbyhtYXBfZDUwMDQxNGYxNzc5NGE0YTgxNTY5NmJkZDVmODU4OWMpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfM2QxYTg4OGM1MTcxNDMzMGE1MmY3OWE0Zjg0MGM5ODMgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfNzUyY2IwNmI2ODVjNGZkYWExNmE3ZTQyZjY4M2FkNzcgPSAkKCc8ZGl2IGlkPSJodG1sXzc1MmNiMDZiNjg1YzRmZGFhMTZhN2U0MmY2ODNhZDc3IiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij5IaWdobGFuZCBQYXJrPC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF8zZDFhODg4YzUxNzE0MzMwYTUyZjc5YTRmODQwYzk4My5zZXRDb250ZW50KGh0bWxfNzUyY2IwNmI2ODVjNGZkYWExNmE3ZTQyZjY4M2FkNzcpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIGNpcmNsZV9tYXJrZXJfMGM5OWI2ZDU5NjhiNGFmMDk0NjRiNDlhMGVjYWE0ZWUuYmluZFBvcHVwKHBvcHVwXzNkMWE4ODhjNTE3MTQzMzBhNTJmNzlhNGY4NDBjOTgzKTsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBjaXJjbGVfbWFya2VyXzI1MWFmMzlmZTUyNDQ4Nzk4YjM1NTNmMTJjNzFkOTBhID0gTC5jaXJjbGVNYXJrZXIoCiAgICAgICAgICAgICAgICBbNDAuNjA5Mzc3NzAxMTM3NjYsLTczLjk0ODQxNTE1MzI4ODkzXSwKICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogImJsdWUiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IHRydWUsCiAgImZpbGxDb2xvciI6ICIjMzE4NmNjIiwKICAiZmlsbE9wYWNpdHkiOiAwLjcsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJvcGFjaXR5IjogMS4wLAogICJyYWRpdXMiOiA1LAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAzCn0KICAgICAgICAgICAgICAgICkuYWRkVG8obWFwX2Q1MDA0MTRmMTc3OTRhNGE4MTU2OTZiZGQ1Zjg1ODljKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwXzZhMTYzNjYxZmQxZjRjODJiYTI1NjY1MTI1NmM5ZTdmID0gTC5wb3B1cCh7bWF4V2lkdGg6ICczMDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sXzEyNTg0M2U1MGE3MjQ3Zjk4M2Y3OTBlZWQyYzlmZjI5ID0gJCgnPGRpdiBpZD0iaHRtbF8xMjU4NDNlNTBhNzI0N2Y5ODNmNzkwZWVkMmM5ZmYyOSIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+TWFkaXNvbjwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfNmExNjM2NjFmZDFmNGM4MmJhMjU2NjUxMjU2YzllN2Yuc2V0Q29udGVudChodG1sXzEyNTg0M2U1MGE3MjQ3Zjk4M2Y3OTBlZWQyYzlmZjI5KTsKICAgICAgICAgICAgCgogICAgICAgICAgICBjaXJjbGVfbWFya2VyXzI1MWFmMzlmZTUyNDQ4Nzk4YjM1NTNmMTJjNzFkOTBhLmJpbmRQb3B1cChwb3B1cF82YTE2MzY2MWZkMWY0YzgyYmEyNTY2NTEyNTZjOWU3Zik7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgY2lyY2xlX21hcmtlcl8zY2M5MDUyM2U5NDY0MDhkOTRjOWVjZmNhMTllZGE1ZSA9IEwuY2lyY2xlTWFya2VyKAogICAgICAgICAgICAgICAgWzQwLjg1MjcyMjk3NjMzMDE3LC03My44NjE3MjU3NzU1NTExNV0sCiAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICJibHVlIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiB0cnVlLAogICJmaWxsQ29sb3IiOiAiIzMxODZjYyIsCiAgImZpbGxPcGFjaXR5IjogMC43LAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAib3BhY2l0eSI6IDEuMCwKICAicmFkaXVzIjogNSwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9CiAgICAgICAgICAgICAgICApLmFkZFRvKG1hcF9kNTAwNDE0ZjE3Nzk0YTRhODE1Njk2YmRkNWY4NTg5Yyk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF83NDkzZDEzODkzYWU0ODE0YjQ0YWNhZTU5NjdmODUwZiA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF9mYWQzYzQwYWU4YjI0NDM5YTZhNTk5YmJkMjVmOWQ4NSA9ICQoJzxkaXYgaWQ9Imh0bWxfZmFkM2M0MGFlOGIyNDQzOWE2YTU5OWJiZDI1ZjlkODUiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPkJyb254ZGFsZTwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfNzQ5M2QxMzg5M2FlNDgxNGI0NGFjYWU1OTY3Zjg1MGYuc2V0Q29udGVudChodG1sX2ZhZDNjNDBhZThiMjQ0MzlhNmE1OTliYmQyNWY5ZDg1KTsKICAgICAgICAgICAgCgogICAgICAgICAgICBjaXJjbGVfbWFya2VyXzNjYzkwNTIzZTk0NjQwOGQ5NGM5ZWNmY2ExOWVkYTVlLmJpbmRQb3B1cChwb3B1cF83NDkzZDEzODkzYWU0ODE0YjQ0YWNhZTU5NjdmODUwZik7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgY2lyY2xlX21hcmtlcl9mZDdkNjk4ZDc4MTk0ZDUwYmY1OWQzYzZiODVhOTFmNyA9IEwuY2lyY2xlTWFya2VyKAogICAgICAgICAgICAgICAgWzQwLjg2NTc4Nzg3ODAyOTgyLC03My44NTkzMTg2MzIyMTY0N10sCiAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICJibHVlIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiB0cnVlLAogICJmaWxsQ29sb3IiOiAiIzMxODZjYyIsCiAgImZpbGxPcGFjaXR5IjogMC43LAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAib3BhY2l0eSI6IDEuMCwKICAicmFkaXVzIjogNSwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9CiAgICAgICAgICAgICAgICApLmFkZFRvKG1hcF9kNTAwNDE0ZjE3Nzk0YTRhODE1Njk2YmRkNWY4NTg5Yyk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF9hNTJjMjRiOTg0ZWE0NzE2YjY0NTMyZmRlNWExYTI0NyA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF9mOTYwM2ZiNjA2YWI0ODMwYjE2ODY3NzNmOTFjOWZlMCA9ICQoJzxkaXYgaWQ9Imh0bWxfZjk2MDNmYjYwNmFiNDgzMGIxNjg2NzczZjkxYzlmZTAiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPkFsbGVydG9uPC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF9hNTJjMjRiOTg0ZWE0NzE2YjY0NTMyZmRlNWExYTI0Ny5zZXRDb250ZW50KGh0bWxfZjk2MDNmYjYwNmFiNDgzMGIxNjg2NzczZjkxYzlmZTApOwogICAgICAgICAgICAKCiAgICAgICAgICAgIGNpcmNsZV9tYXJrZXJfZmQ3ZDY5OGQ3ODE5NGQ1MGJmNTlkM2M2Yjg1YTkxZjcuYmluZFBvcHVwKHBvcHVwX2E1MmMyNGI5ODRlYTQ3MTZiNjQ1MzJmZGU1YTFhMjQ3KTsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBjaXJjbGVfbWFya2VyXzQ4ZTg2ZTRmNjI2NzRjY2ZiY2NhNmE2MTdiZDRmNWU0ID0gTC5jaXJjbGVNYXJrZXIoCiAgICAgICAgICAgICAgICBbNDAuODcwMzkyMzkxNDE0NywtNzMuOTAxNTIyNjQ1MTMxNDRdLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiYmx1ZSIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogIiMzMTg2Y2MiLAogICJmaWxsT3BhY2l0eSI6IDAuNywKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDUsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKS5hZGRUbyhtYXBfZDUwMDQxNGYxNzc5NGE0YTgxNTY5NmJkZDVmODU4OWMpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfNzc4NmY0ZWFlZGFjNDY3ZWEyYWQ5ZjUwMmUzMDFiNmYgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfOWRhNzg5MTBhMDY1NGRmNzhmNjgzNGQxZjE1N2U3NGMgPSAkKCc8ZGl2IGlkPSJodG1sXzlkYTc4OTEwYTA2NTRkZjc4ZjY4MzRkMWYxNTdlNzRjIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij5LaW5nc2JyaWRnZSBIZWlnaHRzPC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF83Nzg2ZjRlYWVkYWM0NjdlYTJhZDlmNTAyZTMwMWI2Zi5zZXRDb250ZW50KGh0bWxfOWRhNzg5MTBhMDY1NGRmNzhmNjgzNGQxZjE1N2U3NGMpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIGNpcmNsZV9tYXJrZXJfNDhlODZlNGY2MjY3NGNjZmJjY2E2YTYxN2JkNGY1ZTQuYmluZFBvcHVwKHBvcHVwXzc3ODZmNGVhZWRhYzQ2N2VhMmFkOWY1MDJlMzAxYjZmKTsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBjaXJjbGVfbWFya2VyX2Y1M2RjMjlkNjkyODQ0NjJhMmUwYWE0MTcxNjA5NGRiID0gTC5jaXJjbGVNYXJrZXIoCiAgICAgICAgICAgICAgICBbNDAuNjQ2OTI2MDY2NTg1NzksLTczLjk0ODE3NzA5OTIwMTg0XSwKICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogImJsdWUiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IHRydWUsCiAgImZpbGxDb2xvciI6ICIjMzE4NmNjIiwKICAiZmlsbE9wYWNpdHkiOiAwLjcsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJvcGFjaXR5IjogMS4wLAogICJyYWRpdXMiOiA1LAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAzCn0KICAgICAgICAgICAgICAgICkuYWRkVG8obWFwX2Q1MDA0MTRmMTc3OTRhNGE4MTU2OTZiZGQ1Zjg1ODljKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwXzJjNzMzNGU5Y2NkZDQ2M2M5NThmZGVlZGUyYmM4NGM3ID0gTC5wb3B1cCh7bWF4V2lkdGg6ICczMDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sXzBmYzZjNWIzM2Q5ODQxNjI5ODMwNzVlM2MxN2M4MmM5ID0gJCgnPGRpdiBpZD0iaHRtbF8wZmM2YzViMzNkOTg0MTYyOTgzMDc1ZTNjMTdjODJjOSIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+RXJhc211czwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfMmM3MzM0ZTljY2RkNDYzYzk1OGZkZWVkZTJiYzg0Yzcuc2V0Q29udGVudChodG1sXzBmYzZjNWIzM2Q5ODQxNjI5ODMwNzVlM2MxN2M4MmM5KTsKICAgICAgICAgICAgCgogICAgICAgICAgICBjaXJjbGVfbWFya2VyX2Y1M2RjMjlkNjkyODQ0NjJhMmUwYWE0MTcxNjA5NGRiLmJpbmRQb3B1cChwb3B1cF8yYzczMzRlOWNjZGQ0NjNjOTU4ZmRlZWRlMmJjODRjNyk7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgY2lyY2xlX21hcmtlcl8zNjc1Yzg1NGJlZjQ0M2RkOThkYzRjNmY5YzE3YzFhYSA9IEwuY2lyY2xlTWFya2VyKAogICAgICAgICAgICAgICAgWzQwLjc1NjY1ODA4MjI3NTE5LC03NC4wMDAxMTEzNjIwMjYzN10sCiAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICJibHVlIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiB0cnVlLAogICJmaWxsQ29sb3IiOiAiIzMxODZjYyIsCiAgImZpbGxPcGFjaXR5IjogMC43LAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAib3BhY2l0eSI6IDEuMCwKICAicmFkaXVzIjogNSwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9CiAgICAgICAgICAgICAgICApLmFkZFRvKG1hcF9kNTAwNDE0ZjE3Nzk0YTRhODE1Njk2YmRkNWY4NTg5Yyk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF9kNDlhZmYzNjkwYjQ0YWViYmIwNWY3Mzg3YzRlZjc3ZCA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF85NzM3MTYwYzA0MDI0NDBhYmRmMjU1ODA5MTVmODNlMyA9ICQoJzxkaXYgaWQ9Imh0bWxfOTczNzE2MGMwNDAyNDQwYWJkZjI1NTgwOTE1ZjgzZTMiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPkh1ZHNvbiBZYXJkczwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfZDQ5YWZmMzY5MGI0NGFlYmJiMDVmNzM4N2M0ZWY3N2Quc2V0Q29udGVudChodG1sXzk3MzcxNjBjMDQwMjQ0MGFiZGYyNTU4MDkxNWY4M2UzKTsKICAgICAgICAgICAgCgogICAgICAgICAgICBjaXJjbGVfbWFya2VyXzM2NzVjODU0YmVmNDQzZGQ5OGRjNGM2ZjljMTdjMWFhLmJpbmRQb3B1cChwb3B1cF9kNDlhZmYzNjkwYjQ0YWViYmIwNWY3Mzg3YzRlZjc3ZCk7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgY2lyY2xlX21hcmtlcl83ZWI1YWE3NmU3OGY0NmNhODkzZWFkZGM0MDllOTk2ZiA9IEwuY2lyY2xlTWFya2VyKAogICAgICAgICAgICAgICAgWzQwLjU4NzMzNzc0MDE4NzQxLC03My44MDU1MzAwMjk2ODcxOF0sCiAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICJibHVlIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiB0cnVlLAogICJmaWxsQ29sb3IiOiAiIzMxODZjYyIsCiAgImZpbGxPcGFjaXR5IjogMC43LAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAib3BhY2l0eSI6IDEuMCwKICAicmFkaXVzIjogNSwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9CiAgICAgICAgICAgICAgICApLmFkZFRvKG1hcF9kNTAwNDE0ZjE3Nzk0YTRhODE1Njk2YmRkNWY4NTg5Yyk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF9hNWNhM2FiMjRlNDY0ZDI1YmMzZDMzZjQwZmY3NzUyOCA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF8xYWJmZGQ3NDc3NTk0OTJjOGEzMDFjMTk1NTRhYjViOSA9ICQoJzxkaXYgaWQ9Imh0bWxfMWFiZmRkNzQ3NzU5NDkyYzhhMzAxYzE5NTU0YWI1YjkiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPkhhbW1lbHM8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwX2E1Y2EzYWIyNGU0NjRkMjViYzNkMzNmNDBmZjc3NTI4LnNldENvbnRlbnQoaHRtbF8xYWJmZGQ3NDc3NTk0OTJjOGEzMDFjMTk1NTRhYjViOSk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl83ZWI1YWE3NmU3OGY0NmNhODkzZWFkZGM0MDllOTk2Zi5iaW5kUG9wdXAocG9wdXBfYTVjYTNhYjI0ZTQ2NGQyNWJjM2QzM2Y0MGZmNzc1MjgpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfMzQ2ZjcwY2ZkYTA2NDI5YThiNWZmYzllNjkwNzgyYmQgPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MC42MTEzMjE2OTEyODM4MzQsLTczLjc2NTk2NzgxNDQ1NjI3XSwKICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogImJsdWUiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IHRydWUsCiAgImZpbGxDb2xvciI6ICIjMzE4NmNjIiwKICAiZmlsbE9wYWNpdHkiOiAwLjcsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJvcGFjaXR5IjogMS4wLAogICJyYWRpdXMiOiA1LAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAzCn0KICAgICAgICAgICAgICAgICkuYWRkVG8obWFwX2Q1MDA0MTRmMTc3OTRhNGE4MTU2OTZiZGQ1Zjg1ODljKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwXzhiOTM3OWFhOTJlZDRhYTY4NTA2MWE4MDI2MTg0MDlkID0gTC5wb3B1cCh7bWF4V2lkdGg6ICczMDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sX2ZlNTM5M2Q2OGY3MjQ3ZDI4YjFlZGQyYTg1YWMwMTlmID0gJCgnPGRpdiBpZD0iaHRtbF9mZTUzOTNkNjhmNzI0N2QyOGIxZWRkMmE4NWFjMDE5ZiIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+QmF5c3dhdGVyPC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF84YjkzNzlhYTkyZWQ0YWE2ODUwNjFhODAyNjE4NDA5ZC5zZXRDb250ZW50KGh0bWxfZmU1MzkzZDY4ZjcyNDdkMjhiMWVkZDJhODVhYzAxOWYpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIGNpcmNsZV9tYXJrZXJfMzQ2ZjcwY2ZkYTA2NDI5YThiNWZmYzllNjkwNzgyYmQuYmluZFBvcHVwKHBvcHVwXzhiOTM3OWFhOTJlZDRhYTY4NTA2MWE4MDI2MTg0MDlkKTsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBjaXJjbGVfbWFya2VyXzczNzkxYTU3NGVmZjRmODRhNzg1NDRhYjhmM2VmMGIzID0gTC5jaXJjbGVNYXJrZXIoCiAgICAgICAgICAgICAgICBbNDAuNzU2MDkxMjk3MDk0NzA2LC03My45NDU2MzA3MDMzNDA5MV0sCiAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICJibHVlIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiB0cnVlLAogICJmaWxsQ29sb3IiOiAiIzMxODZjYyIsCiAgImZpbGxPcGFjaXR5IjogMC43LAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAib3BhY2l0eSI6IDEuMCwKICAicmFkaXVzIjogNSwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9CiAgICAgICAgICAgICAgICApLmFkZFRvKG1hcF9kNTAwNDE0ZjE3Nzk0YTRhODE1Njk2YmRkNWY4NTg5Yyk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF9lMGJlZTUwYzZlNWE0NjI3YTAyMzc1MmFiNjA4ZjNmYiA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF9lNWIxMmVlZDZjODE0ZjMxYTA4MDQwMDRhMjNkMDZkNSA9ICQoJzxkaXYgaWQ9Imh0bWxfZTViMTJlZWQ2YzgxNGYzMWEwODA0MDA0YTIzZDA2ZDUiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPlF1ZWVuc2JyaWRnZTwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfZTBiZWU1MGM2ZTVhNDYyN2EwMjM3NTJhYjYwOGYzZmIuc2V0Q29udGVudChodG1sX2U1YjEyZWVkNmM4MTRmMzFhMDgwNDAwNGEyM2QwNmQ1KTsKICAgICAgICAgICAgCgogICAgICAgICAgICBjaXJjbGVfbWFya2VyXzczNzkxYTU3NGVmZjRmODRhNzg1NDRhYjhmM2VmMGIzLmJpbmRQb3B1cChwb3B1cF9lMGJlZTUwYzZlNWE0NjI3YTAyMzc1MmFiNjA4ZjNmYik7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgY2lyY2xlX21hcmtlcl82YmYwN2RlYjI0M2I0ODk0YjE0YmM2ODdmNDA2YTAzOSA9IEwuY2lyY2xlTWFya2VyKAogICAgICAgICAgICAgICAgWzQwLjYxNzMxMDc5MjUyOTgzLC03NC4wODE3Mzk5MjIxMTk2Ml0sCiAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICJibHVlIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiB0cnVlLAogICJmaWxsQ29sb3IiOiAiIzMxODZjYyIsCiAgImZpbGxPcGFjaXR5IjogMC43LAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAib3BhY2l0eSI6IDEuMCwKICAicmFkaXVzIjogNSwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9CiAgICAgICAgICAgICAgICApLmFkZFRvKG1hcF9kNTAwNDE0ZjE3Nzk0YTRhODE1Njk2YmRkNWY4NTg5Yyk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF84MDAyMTZhMDBmOGY0MTk3OGIxODQwMGU3ZjM4MDc5ZiA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF85OGQ0NDQ3Yzk1ZGI0N2I5OWMyYWI2ODQ4NWI4ODlhMSA9ICQoJzxkaXYgaWQ9Imh0bWxfOThkNDQ0N2M5NWRiNDdiOTljMmFiNjg0ODViODg5YTEiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPkZveCBIaWxsczwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfODAwMjE2YTAwZjhmNDE5NzhiMTg0MDBlN2YzODA3OWYuc2V0Q29udGVudChodG1sXzk4ZDQ0NDdjOTVkYjQ3Yjk5YzJhYjY4NDg1Yjg4OWExKTsKICAgICAgICAgICAgCgogICAgICAgICAgICBjaXJjbGVfbWFya2VyXzZiZjA3ZGViMjQzYjQ4OTRiMTRiYzY4N2Y0MDZhMDM5LmJpbmRQb3B1cChwb3B1cF84MDAyMTZhMDBmOGY0MTk3OGIxODQwMGU3ZjM4MDc5Zik7CgogICAgICAgICAgICAKICAgICAgICAKPC9zY3JpcHQ+\" style=\"position:absolute;width:100%;height:100%;left:0;top:0;border:none !important;\" allowfullscreen webkitallowfullscreen mozallowfullscreen></iframe></div></div>" | |
], | |
"text/plain": [ | |
"<folium.folium.Map at 0x7f0d4f9a2048>" | |
] | |
}, | |
"execution_count": 15, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"# create map of New York using latitude and longitude values\n", | |
"print_map (newyork_data, zoom=10)" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 16, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"<matplotlib.image.AxesImage at 0x7f0d4dc8bb70>" | |
] | |
}, | |
"execution_count": 16, | |
"metadata": {}, | |
"output_type": "execute_result" | |
}, | |
{ | |
"data": { | |
"image/png": "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\n", | |
"text/plain": [ | |
"<Figure size 432x288 with 1 Axes>" | |
] | |
}, | |
"metadata": { | |
"needs_background": "light" | |
}, | |
"output_type": "display_data" | |
} | |
], | |
"source": [ | |
"# a little tweak to show maps as images in github\n", | |
"plt.imshow(mpimg.imread('newyork.jpg'))" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 18, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/html": [ | |
"<div>\n", | |
"<style scoped>\n", | |
" .dataframe tbody tr th:only-of-type {\n", | |
" vertical-align: middle;\n", | |
" }\n", | |
"\n", | |
" .dataframe tbody tr th {\n", | |
" vertical-align: top;\n", | |
" }\n", | |
"\n", | |
" .dataframe thead th {\n", | |
" text-align: right;\n", | |
" }\n", | |
"</style>\n", | |
"<table border=\"1\" class=\"dataframe\">\n", | |
" <thead>\n", | |
" <tr style=\"text-align: right;\">\n", | |
" <th></th>\n", | |
" <th>Borough</th>\n", | |
" <th>Neighborhood</th>\n", | |
" <th>Latitude</th>\n", | |
" <th>Longitude</th>\n", | |
" </tr>\n", | |
" </thead>\n", | |
" <tbody>\n", | |
" <tr>\n", | |
" <th>0</th>\n", | |
" <td>Brooklyn</td>\n", | |
" <td>Bay Ridge</td>\n", | |
" <td>40.625801</td>\n", | |
" <td>-74.030621</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>1</th>\n", | |
" <td>Brooklyn</td>\n", | |
" <td>Bensonhurst</td>\n", | |
" <td>40.611009</td>\n", | |
" <td>-73.995180</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>2</th>\n", | |
" <td>Brooklyn</td>\n", | |
" <td>Sunset Park</td>\n", | |
" <td>40.645103</td>\n", | |
" <td>-74.010316</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>3</th>\n", | |
" <td>Brooklyn</td>\n", | |
" <td>Greenpoint</td>\n", | |
" <td>40.730201</td>\n", | |
" <td>-73.954241</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>4</th>\n", | |
" <td>Brooklyn</td>\n", | |
" <td>Gravesend</td>\n", | |
" <td>40.595260</td>\n", | |
" <td>-73.973471</td>\n", | |
" </tr>\n", | |
" </tbody>\n", | |
"</table>\n", | |
"</div>" | |
], | |
"text/plain": [ | |
" Borough Neighborhood Latitude Longitude\n", | |
"0 Brooklyn Bay Ridge 40.625801 -74.030621\n", | |
"1 Brooklyn Bensonhurst 40.611009 -73.995180\n", | |
"2 Brooklyn Sunset Park 40.645103 -74.010316\n", | |
"3 Brooklyn Greenpoint 40.730201 -73.954241\n", | |
"4 Brooklyn Gravesend 40.595260 -73.973471" | |
] | |
}, | |
"execution_count": 18, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"brooklyn_data = newyork_data[newyork_data['Borough'] == 'Brooklyn'].reset_index(drop=True)\n", | |
"brooklyn_data.head()\n" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 19, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/html": [ | |
"<div style=\"width:100%;\"><div style=\"position:relative;width:100%;height:0;padding-bottom:60%;\"><iframe src=\"data:text/html;charset=utf-8;base64,PCFET0NUWVBFIGh0bWw+CjxoZWFkPiAgICAKICAgIDxtZXRhIGh0dHAtZXF1aXY9ImNvbnRlbnQtdHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PVVURi04IiAvPgogICAgPHNjcmlwdD5MX1BSRUZFUl9DQU5WQVMgPSBmYWxzZTsgTF9OT19UT1VDSCA9IGZhbHNlOyBMX0RJU0FCTEVfM0QgPSBmYWxzZTs8L3NjcmlwdD4KICAgIDxzY3JpcHQgc3JjPSJodHRwczovL2Nkbi5qc2RlbGl2ci5uZXQvbnBtL2xlYWZsZXRAMS4yLjAvZGlzdC9sZWFmbGV0LmpzIj48L3NjcmlwdD4KICAgIDxzY3JpcHQgc3JjPSJodHRwczovL2FqYXguZ29vZ2xlYXBpcy5jb20vYWpheC9saWJzL2pxdWVyeS8xLjExLjEvanF1ZXJ5Lm1pbi5qcyI+PC9zY3JpcHQ+CiAgICA8c2NyaXB0IHNyYz0iaHR0cHM6Ly9tYXhjZG4uYm9vdHN0cmFwY2RuLmNvbS9ib290c3RyYXAvMy4yLjAvanMvYm9vdHN0cmFwLm1pbi5qcyI+PC9zY3JpcHQ+CiAgICA8c2NyaXB0IHNyYz0iaHR0cHM6Ly9jZG5qcy5jbG91ZGZsYXJlLmNvbS9hamF4L2xpYnMvTGVhZmxldC5hd2Vzb21lLW1hcmtlcnMvMi4wLjIvbGVhZmxldC5hd2Vzb21lLW1hcmtlcnMuanMiPjwvc2NyaXB0PgogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJodHRwczovL2Nkbi5qc2RlbGl2ci5uZXQvbnBtL2xlYWZsZXRAMS4yLjAvZGlzdC9sZWFmbGV0LmNzcyIvPgogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJodHRwczovL21heGNkbi5ib290c3RyYXBjZG4uY29tL2Jvb3RzdHJhcC8zLjIuMC9jc3MvYm9vdHN0cmFwLm1pbi5jc3MiLz4KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iaHR0cHM6Ly9tYXhjZG4uYm9vdHN0cmFwY2RuLmNvbS9ib290c3RyYXAvMy4yLjAvY3NzL2Jvb3RzdHJhcC10aGVtZS5taW4uY3NzIi8+CiAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Imh0dHBzOi8vbWF4Y2RuLmJvb3RzdHJhcGNkbi5jb20vZm9udC1hd2Vzb21lLzQuNi4zL2Nzcy9mb250LWF3ZXNvbWUubWluLmNzcyIvPgogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJodHRwczovL2NkbmpzLmNsb3VkZmxhcmUuY29tL2FqYXgvbGlicy9MZWFmbGV0LmF3ZXNvbWUtbWFya2Vycy8yLjAuMi9sZWFmbGV0LmF3ZXNvbWUtbWFya2Vycy5jc3MiLz4KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iaHR0cHM6Ly9yYXdnaXQuY29tL3B5dGhvbi12aXN1YWxpemF0aW9uL2ZvbGl1bS9tYXN0ZXIvZm9saXVtL3RlbXBsYXRlcy9sZWFmbGV0LmF3ZXNvbWUucm90YXRlLmNzcyIvPgogICAgPHN0eWxlPmh0bWwsIGJvZHkge3dpZHRoOiAxMDAlO2hlaWdodDogMTAwJTttYXJnaW46IDA7cGFkZGluZzogMDt9PC9zdHlsZT4KICAgIDxzdHlsZT4jbWFwIHtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtib3R0b206MDtyaWdodDowO2xlZnQ6MDt9PC9zdHlsZT4KICAgIAogICAgICAgICAgICA8c3R5bGU+ICNtYXBfNDJkMmZlMGUyNWZlNDBjMjhkMjI5ZDRlOTIwMDQ2MTcgewogICAgICAgICAgICAgICAgcG9zaXRpb24gOiByZWxhdGl2ZTsKICAgICAgICAgICAgICAgIHdpZHRoIDogMTAwLjAlOwogICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDAuMCU7CiAgICAgICAgICAgICAgICBsZWZ0OiAwLjAlOwogICAgICAgICAgICAgICAgdG9wOiAwLjAlOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICA8L3N0eWxlPgogICAgICAgIAo8L2hlYWQ+Cjxib2R5PiAgICAKICAgIAogICAgICAgICAgICA8ZGl2IGNsYXNzPSJmb2xpdW0tbWFwIiBpZD0ibWFwXzQyZDJmZTBlMjVmZTQwYzI4ZDIyOWQ0ZTkyMDA0NjE3IiA+PC9kaXY+CiAgICAgICAgCjwvYm9keT4KPHNjcmlwdD4gICAgCiAgICAKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGJvdW5kcyA9IG51bGw7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgdmFyIG1hcF80MmQyZmUwZTI1ZmU0MGMyOGQyMjlkNGU5MjAwNDYxNyA9IEwubWFwKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ21hcF80MmQyZmUwZTI1ZmU0MGMyOGQyMjlkNGU5MjAwNDYxNycsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7Y2VudGVyOiBbNDAuNzMwODYxOSwtNzMuOTg3MTU1OF0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB6b29tOiAxMCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1heEJvdW5kczogYm91bmRzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF5ZXJzOiBbXSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdvcmxkQ29weUp1bXA6IGZhbHNlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3JzOiBMLkNSUy5FUFNHMzg1NwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHRpbGVfbGF5ZXJfZWQ1ZDJmZWM5MDZlNDIxOTgxOTg3ODYwOGMzMzY1ZGQgPSBMLnRpbGVMYXllcigKICAgICAgICAgICAgICAgICdodHRwczovL3tzfS50aWxlLm9wZW5zdHJlZXRtYXAub3JnL3t6fS97eH0ve3l9LnBuZycsCiAgICAgICAgICAgICAgICB7CiAgImF0dHJpYnV0aW9uIjogbnVsbCwKICAiZGV0ZWN0UmV0aW5hIjogZmFsc2UsCiAgIm1heFpvb20iOiAxOCwKICAibWluWm9vbSI6IDEsCiAgIm5vV3JhcCI6IGZhbHNlLAogICJzdWJkb21haW5zIjogImFiYyIKfQogICAgICAgICAgICAgICAgKS5hZGRUbyhtYXBfNDJkMmZlMGUyNWZlNDBjMjhkMjI5ZDRlOTIwMDQ2MTcpOwogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBjaXJjbGVfbWFya2VyXzFiZjNhNWNlOWUyZDQyZTdhODk4OWJmNzQzNGM5ZmE5ID0gTC5jaXJjbGVNYXJrZXIoCiAgICAgICAgICAgICAgICBbNDAuNjI1ODAxMDY1MDEwNjU2LC03NC4wMzA2MjA2OTM1MzgxM10sCiAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICJibHVlIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiB0cnVlLAogICJmaWxsQ29sb3IiOiAiIzMxODZjYyIsCiAgImZpbGxPcGFjaXR5IjogMC43LAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAib3BhY2l0eSI6IDEuMCwKICAicmFkaXVzIjogNSwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9CiAgICAgICAgICAgICAgICApLmFkZFRvKG1hcF80MmQyZmUwZTI1ZmU0MGMyOGQyMjlkNGU5MjAwNDYxNyk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF84ODE2NTBhNTdlY2I0NGIyYWVhN2Q1MDVkMTRjOTBmNSA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF81NjJhNGYwODJhNjQ0YjU2YWE3YjkwODVjZGU2Y2I3ZCA9ICQoJzxkaXYgaWQ9Imh0bWxfNTYyYTRmMDgyYTY0NGI1NmFhN2I5MDg1Y2RlNmNiN2QiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPkJheSBSaWRnZTwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfODgxNjUwYTU3ZWNiNDRiMmFlYTdkNTA1ZDE0YzkwZjUuc2V0Q29udGVudChodG1sXzU2MmE0ZjA4MmE2NDRiNTZhYTdiOTA4NWNkZTZjYjdkKTsKICAgICAgICAgICAgCgogICAgICAgICAgICBjaXJjbGVfbWFya2VyXzFiZjNhNWNlOWUyZDQyZTdhODk4OWJmNzQzNGM5ZmE5LmJpbmRQb3B1cChwb3B1cF84ODE2NTBhNTdlY2I0NGIyYWVhN2Q1MDVkMTRjOTBmNSk7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgY2lyY2xlX21hcmtlcl80MzA5YjZjMGJiY2I0MDUwOWE5MTc2MzQ3ZTFiZjI0MyA9IEwuY2lyY2xlTWFya2VyKAogICAgICAgICAgICAgICAgWzQwLjYxMTAwODkwMjAyMDQ0LC03My45OTUxNzk5ODM4MDcyOV0sCiAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICJibHVlIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiB0cnVlLAogICJmaWxsQ29sb3IiOiAiIzMxODZjYyIsCiAgImZpbGxPcGFjaXR5IjogMC43LAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAib3BhY2l0eSI6IDEuMCwKICAicmFkaXVzIjogNSwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9CiAgICAgICAgICAgICAgICApLmFkZFRvKG1hcF80MmQyZmUwZTI1ZmU0MGMyOGQyMjlkNGU5MjAwNDYxNyk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF9kYTA0NTM0MGQ2MDc0YmQ1ODU2NTZmMDY2OGFiMmM4NyA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF85NTA2ZDE1M2UwZjk0MjcyOTBiMWU1YjNiYzk5YWJkYiA9ICQoJzxkaXYgaWQ9Imh0bWxfOTUwNmQxNTNlMGY5NDI3MjkwYjFlNWIzYmM5OWFiZGIiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPkJlbnNvbmh1cnN0PC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF9kYTA0NTM0MGQ2MDc0YmQ1ODU2NTZmMDY2OGFiMmM4Ny5zZXRDb250ZW50KGh0bWxfOTUwNmQxNTNlMGY5NDI3MjkwYjFlNWIzYmM5OWFiZGIpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIGNpcmNsZV9tYXJrZXJfNDMwOWI2YzBiYmNiNDA1MDlhOTE3NjM0N2UxYmYyNDMuYmluZFBvcHVwKHBvcHVwX2RhMDQ1MzQwZDYwNzRiZDU4NTY1NmYwNjY4YWIyYzg3KTsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBjaXJjbGVfbWFya2VyXzNkYjU0YzNjZmUyNzQwNzhiOGI4ZDQxOTI4OGI1ODg2ID0gTC5jaXJjbGVNYXJrZXIoCiAgICAgICAgICAgICAgICBbNDAuNjQ1MTAyOTQ5MjU0MjksLTc0LjAxMDMxNjE4NTI3Nzg0XSwKICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogImJsdWUiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IHRydWUsCiAgImZpbGxDb2xvciI6ICIjMzE4NmNjIiwKICAiZmlsbE9wYWNpdHkiOiAwLjcsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJvcGFjaXR5IjogMS4wLAogICJyYWRpdXMiOiA1LAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAzCn0KICAgICAgICAgICAgICAgICkuYWRkVG8obWFwXzQyZDJmZTBlMjVmZTQwYzI4ZDIyOWQ0ZTkyMDA0NjE3KTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwX2I5MzcwYjU0NTM1NjQ1ZTE4NmZkNWFmNWVmNjhiNTUwID0gTC5wb3B1cCh7bWF4V2lkdGg6ICczMDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sX2M4YTkzOTdiM2U3ODQzZDhiNjI5NWE4MjUzOWFkZTNkID0gJCgnPGRpdiBpZD0iaHRtbF9jOGE5Mzk3YjNlNzg0M2Q4YjYyOTVhODI1MzlhZGUzZCIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+U3Vuc2V0IFBhcms8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwX2I5MzcwYjU0NTM1NjQ1ZTE4NmZkNWFmNWVmNjhiNTUwLnNldENvbnRlbnQoaHRtbF9jOGE5Mzk3YjNlNzg0M2Q4YjYyOTVhODI1MzlhZGUzZCk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl8zZGI1NGMzY2ZlMjc0MDc4YjhiOGQ0MTkyODhiNTg4Ni5iaW5kUG9wdXAocG9wdXBfYjkzNzBiNTQ1MzU2NDVlMTg2ZmQ1YWY1ZWY2OGI1NTApOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfOTJmMjY5Zjc0ZmY2NGEzMTk1NDdjOTIxNjAxZjAzZTEgPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MC43MzAyMDA5ODQ4NjQ3LC03My45NTQyNDA5MzEyNzM5M10sCiAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICJibHVlIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiB0cnVlLAogICJmaWxsQ29sb3IiOiAiIzMxODZjYyIsCiAgImZpbGxPcGFjaXR5IjogMC43LAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAib3BhY2l0eSI6IDEuMCwKICAicmFkaXVzIjogNSwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9CiAgICAgICAgICAgICAgICApLmFkZFRvKG1hcF80MmQyZmUwZTI1ZmU0MGMyOGQyMjlkNGU5MjAwNDYxNyk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF83ZDVkOTViNjA3NDU0MzA3OWQ4ZGY1MzFlNjcyODA2YiA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF83ZTU2ZjIyMDFjZjk0ZmQ0YTBjNGE1MjgwN2MxYzY3MSA9ICQoJzxkaXYgaWQ9Imh0bWxfN2U1NmYyMjAxY2Y5NGZkNGEwYzRhNTI4MDdjMWM2NzEiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPkdyZWVucG9pbnQ8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzdkNWQ5NWI2MDc0NTQzMDc5ZDhkZjUzMWU2NzI4MDZiLnNldENvbnRlbnQoaHRtbF83ZTU2ZjIyMDFjZjk0ZmQ0YTBjNGE1MjgwN2MxYzY3MSk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl85MmYyNjlmNzRmZjY0YTMxOTU0N2M5MjE2MDFmMDNlMS5iaW5kUG9wdXAocG9wdXBfN2Q1ZDk1YjYwNzQ1NDMwNzlkOGRmNTMxZTY3MjgwNmIpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfYjI1MzYwMDkxODAxNGQ3MzhiM2E3OTlhODJmZDYzZmEgPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MC41OTUyNjAwMTMwNjU5MywtNzMuOTczNDcwODc3MDg0NDVdLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiYmx1ZSIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogIiMzMTg2Y2MiLAogICJmaWxsT3BhY2l0eSI6IDAuNywKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDUsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKS5hZGRUbyhtYXBfNDJkMmZlMGUyNWZlNDBjMjhkMjI5ZDRlOTIwMDQ2MTcpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfYzI1MjZiODdlNjk2NGIxODhiOWQ3NTc2NTllYTA2ZGEgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfMmE2YzY4MTRkOWJjNDkzOGFmYThiMzczZWRmYWZiMTAgPSAkKCc8ZGl2IGlkPSJodG1sXzJhNmM2ODE0ZDliYzQ5MzhhZmE4YjM3M2VkZmFmYjEwIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij5HcmF2ZXNlbmQ8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwX2MyNTI2Yjg3ZTY5NjRiMTg4YjlkNzU3NjU5ZWEwNmRhLnNldENvbnRlbnQoaHRtbF8yYTZjNjgxNGQ5YmM0OTM4YWZhOGIzNzNlZGZhZmIxMCk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl9iMjUzNjAwOTE4MDE0ZDczOGIzYTc5OWE4MmZkNjNmYS5iaW5kUG9wdXAocG9wdXBfYzI1MjZiODdlNjk2NGIxODhiOWQ3NTc2NTllYTA2ZGEpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfYzI3NDg5MmM3YmQ4NDhiY2FmNGFmNWQwMDRhZmNkNDggPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MC41NzY4MjUwNjU2NjYwNCwtNzMuOTY1MDk0NDg3ODUzMzZdLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiYmx1ZSIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogIiMzMTg2Y2MiLAogICJmaWxsT3BhY2l0eSI6IDAuNywKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDUsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKS5hZGRUbyhtYXBfNDJkMmZlMGUyNWZlNDBjMjhkMjI5ZDRlOTIwMDQ2MTcpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfNWZkN2I2MGEzZTJmNDZkZGI1NWQ2NzY5ZjBjNWE5NmEgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfNWM5NDhhNTBjYTA2NGNiZGFjOTdlYjliMjQ2YTc4MzAgPSAkKCc8ZGl2IGlkPSJodG1sXzVjOTQ4YTUwY2EwNjRjYmRhYzk3ZWI5YjI0NmE3ODMwIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij5CcmlnaHRvbiBCZWFjaDwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfNWZkN2I2MGEzZTJmNDZkZGI1NWQ2NzY5ZjBjNWE5NmEuc2V0Q29udGVudChodG1sXzVjOTQ4YTUwY2EwNjRjYmRhYzk3ZWI5YjI0NmE3ODMwKTsKICAgICAgICAgICAgCgogICAgICAgICAgICBjaXJjbGVfbWFya2VyX2MyNzQ4OTJjN2JkODQ4YmNhZjRhZjVkMDA0YWZjZDQ4LmJpbmRQb3B1cChwb3B1cF81ZmQ3YjYwYTNlMmY0NmRkYjU1ZDY3NjlmMGM1YTk2YSk7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgY2lyY2xlX21hcmtlcl8yOTcxNjNmMGIwMmE0MzFhOTA2MjdiMzliYWE4ZmIxYyA9IEwuY2lyY2xlTWFya2VyKAogICAgICAgICAgICAgICAgWzQwLjU4Njg5MDEyNjc4Mzg0LC03My45NDMxODY0MDQ4Mjk3OV0sCiAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICJibHVlIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiB0cnVlLAogICJmaWxsQ29sb3IiOiAiIzMxODZjYyIsCiAgImZpbGxPcGFjaXR5IjogMC43LAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAib3BhY2l0eSI6IDEuMCwKICAicmFkaXVzIjogNSwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9CiAgICAgICAgICAgICAgICApLmFkZFRvKG1hcF80MmQyZmUwZTI1ZmU0MGMyOGQyMjlkNGU5MjAwNDYxNyk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF9lZmIwMzI0YWFhYjc0NDdlOGRhMjNhZTVlYzBiOGY0MSA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF8xMWUyYWZmZDUwZWQ0NzY1OGZkN2NhZjJlNzU4NzRlNiA9ICQoJzxkaXYgaWQ9Imh0bWxfMTFlMmFmZmQ1MGVkNDc2NThmZDdjYWYyZTc1ODc0ZTYiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPlNoZWVwc2hlYWQgQmF5PC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF9lZmIwMzI0YWFhYjc0NDdlOGRhMjNhZTVlYzBiOGY0MS5zZXRDb250ZW50KGh0bWxfMTFlMmFmZmQ1MGVkNDc2NThmZDdjYWYyZTc1ODc0ZTYpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIGNpcmNsZV9tYXJrZXJfMjk3MTYzZjBiMDJhNDMxYTkwNjI3YjM5YmFhOGZiMWMuYmluZFBvcHVwKHBvcHVwX2VmYjAzMjRhYWFiNzQ0N2U4ZGEyM2FlNWVjMGI4ZjQxKTsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBjaXJjbGVfbWFya2VyXzU0NTc5MmFkNzEwNDQ5MTc4ZTEwZDdjYjdmZjNhZTY5ID0gTC5jaXJjbGVNYXJrZXIoCiAgICAgICAgICAgICAgICBbNDAuNjE0NDMyNTEzMzUwOTgsLTczLjk1NzQzODQwNTU5OTM5XSwKICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogImJsdWUiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IHRydWUsCiAgImZpbGxDb2xvciI6ICIjMzE4NmNjIiwKICAiZmlsbE9wYWNpdHkiOiAwLjcsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJvcGFjaXR5IjogMS4wLAogICJyYWRpdXMiOiA1LAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAzCn0KICAgICAgICAgICAgICAgICkuYWRkVG8obWFwXzQyZDJmZTBlMjVmZTQwYzI4ZDIyOWQ0ZTkyMDA0NjE3KTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwX2ExNmZiMDU1MTI0ODRlY2NiNDRlYTI0ODQ2N2QwNzdlID0gTC5wb3B1cCh7bWF4V2lkdGg6ICczMDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sXzA3OWZlNDAyY2JlYjRiOGI5OWU4OTIzMmZiYzcyNjM0ID0gJCgnPGRpdiBpZD0iaHRtbF8wNzlmZTQwMmNiZWI0YjhiOTllODkyMzJmYmM3MjYzNCIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+TWFuaGF0dGFuIFRlcnJhY2U8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwX2ExNmZiMDU1MTI0ODRlY2NiNDRlYTI0ODQ2N2QwNzdlLnNldENvbnRlbnQoaHRtbF8wNzlmZTQwMmNiZWI0YjhiOTllODkyMzJmYmM3MjYzNCk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl81NDU3OTJhZDcxMDQ0OTE3OGUxMGQ3Y2I3ZmYzYWU2OS5iaW5kUG9wdXAocG9wdXBfYTE2ZmIwNTUxMjQ4NGVjY2I0NGVhMjQ4NDY3ZDA3N2UpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfNjJjODUxNDY4NzFkNGY3ZmFhM2IyZmViMTZiN2EyYzcgPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MC42MzYzMjU4OTAyNjY3NywtNzMuOTU4NDAxMDY1MzM5MDNdLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiYmx1ZSIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogIiMzMTg2Y2MiLAogICJmaWxsT3BhY2l0eSI6IDAuNywKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDUsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKS5hZGRUbyhtYXBfNDJkMmZlMGUyNWZlNDBjMjhkMjI5ZDRlOTIwMDQ2MTcpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfMTcyN2JjODA5OGRmNDFkMmFlYTUwMDM0YTE1MDE2YzQgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfZThjY2NkYzA4NWU0NDFkYmI5MTU3YzVlM2JlMjY2MjYgPSAkKCc8ZGl2IGlkPSJodG1sX2U4Y2NjZGMwODVlNDQxZGJiOTE1N2M1ZTNiZTI2NjI2IiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij5GbGF0YnVzaDwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfMTcyN2JjODA5OGRmNDFkMmFlYTUwMDM0YTE1MDE2YzQuc2V0Q29udGVudChodG1sX2U4Y2NjZGMwODVlNDQxZGJiOTE1N2M1ZTNiZTI2NjI2KTsKICAgICAgICAgICAgCgogICAgICAgICAgICBjaXJjbGVfbWFya2VyXzYyYzg1MTQ2ODcxZDRmN2ZhYTNiMmZlYjE2YjdhMmM3LmJpbmRQb3B1cChwb3B1cF8xNzI3YmM4MDk4ZGY0MWQyYWVhNTAwMzRhMTUwMTZjNCk7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgY2lyY2xlX21hcmtlcl9kNWYyNjNiZTdjN2U0YWE1YjdlODQyZjQ2ZDMxYzg1ZSA9IEwuY2lyY2xlTWFya2VyKAogICAgICAgICAgICAgICAgWzQwLjY3MDgyOTE3Njk1Mjk0LC03My45NDMyOTExOTA3MzU4Ml0sCiAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICJibHVlIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiB0cnVlLAogICJmaWxsQ29sb3IiOiAiIzMxODZjYyIsCiAgImZpbGxPcGFjaXR5IjogMC43LAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAib3BhY2l0eSI6IDEuMCwKICAicmFkaXVzIjogNSwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9CiAgICAgICAgICAgICAgICApLmFkZFRvKG1hcF80MmQyZmUwZTI1ZmU0MGMyOGQyMjlkNGU5MjAwNDYxNyk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF9iNzA0MTY3YTZmMzM0ZWEzYjUwOTIzYTg1YTMyOTQ1ZiA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF8yMmU1ZDNmYWE3MWY0N2RhYTZkYTQ5MjRiNjQ3YjYxMyA9ICQoJzxkaXYgaWQ9Imh0bWxfMjJlNWQzZmFhNzFmNDdkYWE2ZGE0OTI0YjY0N2I2MTMiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPkNyb3duIEhlaWdodHM8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwX2I3MDQxNjdhNmYzMzRlYTNiNTA5MjNhODVhMzI5NDVmLnNldENvbnRlbnQoaHRtbF8yMmU1ZDNmYWE3MWY0N2RhYTZkYTQ5MjRiNjQ3YjYxMyk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl9kNWYyNjNiZTdjN2U0YWE1YjdlODQyZjQ2ZDMxYzg1ZS5iaW5kUG9wdXAocG9wdXBfYjcwNDE2N2E2ZjMzNGVhM2I1MDkyM2E4NWEzMjk0NWYpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfMmQ4MTlmMzA5NjRiNDk5OTg0MmFiZmIyY2EwNzIwMjYgPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MC42NDE3MTc3NjY2ODk2MSwtNzMuOTM2MTAyNTYxODU4MzZdLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiYmx1ZSIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogIiMzMTg2Y2MiLAogICJmaWxsT3BhY2l0eSI6IDAuNywKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDUsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKS5hZGRUbyhtYXBfNDJkMmZlMGUyNWZlNDBjMjhkMjI5ZDRlOTIwMDQ2MTcpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfNmVjMGNkNDQ0NDA1NDAwNWFkOTQxOTc1NjBkMTI0OTUgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfMTAzOTZkMzVmZjQ3NDA0Yzk3ZDg5OTA3NWRiYzc1MmMgPSAkKCc8ZGl2IGlkPSJodG1sXzEwMzk2ZDM1ZmY0NzQwNGM5N2Q4OTkwNzVkYmM3NTJjIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij5FYXN0IEZsYXRidXNoPC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF82ZWMwY2Q0NDQ0MDU0MDA1YWQ5NDE5NzU2MGQxMjQ5NS5zZXRDb250ZW50KGh0bWxfMTAzOTZkMzVmZjQ3NDA0Yzk3ZDg5OTA3NWRiYzc1MmMpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIGNpcmNsZV9tYXJrZXJfMmQ4MTlmMzA5NjRiNDk5OTg0MmFiZmIyY2EwNzIwMjYuYmluZFBvcHVwKHBvcHVwXzZlYzBjZDQ0NDQwNTQwMDVhZDk0MTk3NTYwZDEyNDk1KTsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBjaXJjbGVfbWFya2VyXzgwMTRjNDgxZjZjMzQ5YTU4MDg1OGMzMTljMzA4NmMxID0gTC5jaXJjbGVNYXJrZXIoCiAgICAgICAgICAgICAgICBbNDAuNjQyMzgxOTU4MDAzNTI2LC03My45ODA0MjExMDU1OTQ3NF0sCiAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICJibHVlIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiB0cnVlLAogICJmaWxsQ29sb3IiOiAiIzMxODZjYyIsCiAgImZpbGxPcGFjaXR5IjogMC43LAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAib3BhY2l0eSI6IDEuMCwKICAicmFkaXVzIjogNSwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9CiAgICAgICAgICAgICAgICApLmFkZFRvKG1hcF80MmQyZmUwZTI1ZmU0MGMyOGQyMjlkNGU5MjAwNDYxNyk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF8wYzI4ZDJlNGRjZTY0YjYzYWM5ZDVhNDcxNWM2Mjk4MiA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF9jNjNjYTc5YTM3ZTg0Mzc5OWM5NmRmMjhlODZkZTgxMiA9ICQoJzxkaXYgaWQ9Imh0bWxfYzYzY2E3OWEzN2U4NDM3OTljOTZkZjI4ZTg2ZGU4MTIiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPktlbnNpbmd0b248L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzBjMjhkMmU0ZGNlNjRiNjNhYzlkNWE0NzE1YzYyOTgyLnNldENvbnRlbnQoaHRtbF9jNjNjYTc5YTM3ZTg0Mzc5OWM5NmRmMjhlODZkZTgxMik7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl84MDE0YzQ4MWY2YzM0OWE1ODA4NThjMzE5YzMwODZjMS5iaW5kUG9wdXAocG9wdXBfMGMyOGQyZTRkY2U2NGI2M2FjOWQ1YTQ3MTVjNjI5ODIpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfYTI4OWVkNGM5YzZlNDRjNTliM2YwYmU0NzIxNjE5YTQgPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MC42NTY5NDU4MzU3NTEwNCwtNzMuOTgwMDczNDA0MzAxNzJdLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiYmx1ZSIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogIiMzMTg2Y2MiLAogICJmaWxsT3BhY2l0eSI6IDAuNywKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDUsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKS5hZGRUbyhtYXBfNDJkMmZlMGUyNWZlNDBjMjhkMjI5ZDRlOTIwMDQ2MTcpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfMGIxOWNkMjFiODIwNDBlM2E3NjEzNDg2YzIzYzVmN2UgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfZTBjNjM4YjAyNmNlNGRkNjk4ZjA0MzMwMzQ5YjEyMWMgPSAkKCc8ZGl2IGlkPSJodG1sX2UwYzYzOGIwMjZjZTRkZDY5OGYwNDMzMDM0OWIxMjFjIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij5XaW5kc29yIFRlcnJhY2U8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzBiMTljZDIxYjgyMDQwZTNhNzYxMzQ4NmMyM2M1ZjdlLnNldENvbnRlbnQoaHRtbF9lMGM2MzhiMDI2Y2U0ZGQ2OThmMDQzMzAzNDliMTIxYyk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl9hMjg5ZWQ0YzljNmU0NGM1OWIzZjBiZTQ3MjE2MTlhNC5iaW5kUG9wdXAocG9wdXBfMGIxOWNkMjFiODIwNDBlM2E3NjEzNDg2YzIzYzVmN2UpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfNzI3YmI5MDFmM2I1NDg1YmI2YmY2MmQ5ODk4ZWFjYWMgPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MC42NzY4MjIyNjIyNTQ3MjQsLTczLjk2NDg1OTI0MjYyNjldLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiYmx1ZSIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogIiMzMTg2Y2MiLAogICJmaWxsT3BhY2l0eSI6IDAuNywKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDUsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKS5hZGRUbyhtYXBfNDJkMmZlMGUyNWZlNDBjMjhkMjI5ZDRlOTIwMDQ2MTcpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfZGJlMjU0ZDU1NDBiNGI0Y2JjN2JmOTYyMTI1OTQ0YzggPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfM2Y4ZDU5NzNmOWIyNGI1Mjg5MjQ1NjVkNDliMzgzNmMgPSAkKCc8ZGl2IGlkPSJodG1sXzNmOGQ1OTczZjliMjRiNTI4OTI0NTY1ZDQ5YjM4MzZjIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij5Qcm9zcGVjdCBIZWlnaHRzPC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF9kYmUyNTRkNTU0MGI0YjRjYmM3YmY5NjIxMjU5NDRjOC5zZXRDb250ZW50KGh0bWxfM2Y4ZDU5NzNmOWIyNGI1Mjg5MjQ1NjVkNDliMzgzNmMpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIGNpcmNsZV9tYXJrZXJfNzI3YmI5MDFmM2I1NDg1YmI2YmY2MmQ5ODk4ZWFjYWMuYmluZFBvcHVwKHBvcHVwX2RiZTI1NGQ1NTQwYjRiNGNiYzdiZjk2MjEyNTk0NGM4KTsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBjaXJjbGVfbWFya2VyXzY5NzFjMjkzZjI0NjQ0Njk5NWUwOTI2MzdkYmEyNDY0ID0gTC5jaXJjbGVNYXJrZXIoCiAgICAgICAgICAgICAgICBbNDAuNjYzOTQ5OTQzMzk3NTUsLTczLjkxMDIzNTM2MTc2NjA3XSwKICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogImJsdWUiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IHRydWUsCiAgImZpbGxDb2xvciI6ICIjMzE4NmNjIiwKICAiZmlsbE9wYWNpdHkiOiAwLjcsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJvcGFjaXR5IjogMS4wLAogICJyYWRpdXMiOiA1LAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAzCn0KICAgICAgICAgICAgICAgICkuYWRkVG8obWFwXzQyZDJmZTBlMjVmZTQwYzI4ZDIyOWQ0ZTkyMDA0NjE3KTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwX2I3YjIxNjE3YTI0NDQwYTA5NGMwYjhhNDI4ZTE0M2U4ID0gTC5wb3B1cCh7bWF4V2lkdGg6ICczMDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sXzRiZWI4MTA3YzViOTQwYTRhODNjYjVlOWE0MjQ2MzcwID0gJCgnPGRpdiBpZD0iaHRtbF80YmViODEwN2M1Yjk0MGE0YTgzY2I1ZTlhNDI0NjM3MCIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+QnJvd25zdmlsbGU8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwX2I3YjIxNjE3YTI0NDQwYTA5NGMwYjhhNDI4ZTE0M2U4LnNldENvbnRlbnQoaHRtbF80YmViODEwN2M1Yjk0MGE0YTgzY2I1ZTlhNDI0NjM3MCk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl82OTcxYzI5M2YyNDY0NDY5OTVlMDkyNjM3ZGJhMjQ2NC5iaW5kUG9wdXAocG9wdXBfYjdiMjE2MTdhMjQ0NDBhMDk0YzBiOGE0MjhlMTQzZTgpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfYzYyOTgzZDJkZTgxNDQwNGI4NjEyZjQyMTI5ZjBjNmIgPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MC43MDcxNDQzOTM0NDI1MSwtNzMuOTU4MTE1MjkyMjA5MjddLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiYmx1ZSIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogIiMzMTg2Y2MiLAogICJmaWxsT3BhY2l0eSI6IDAuNywKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDUsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKS5hZGRUbyhtYXBfNDJkMmZlMGUyNWZlNDBjMjhkMjI5ZDRlOTIwMDQ2MTcpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfNGEwMmZjOTQ1ZWY0NDUwNjg0ZTM1Y2FkNDYxOTBkZDcgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfYWJkNjc0ZWJjOTZmNGYwOGI3MzljN2QxN2FiOGIyNzUgPSAkKCc8ZGl2IGlkPSJodG1sX2FiZDY3NGViYzk2ZjRmMDhiNzM5YzdkMTdhYjhiMjc1IiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij5XaWxsaWFtc2J1cmc8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzRhMDJmYzk0NWVmNDQ1MDY4NGUzNWNhZDQ2MTkwZGQ3LnNldENvbnRlbnQoaHRtbF9hYmQ2NzRlYmM5NmY0ZjA4YjczOWM3ZDE3YWI4YjI3NSk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl9jNjI5ODNkMmRlODE0NDA0Yjg2MTJmNDIxMjlmMGM2Yi5iaW5kUG9wdXAocG9wdXBfNGEwMmZjOTQ1ZWY0NDUwNjg0ZTM1Y2FkNDYxOTBkZDcpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfNjhhMzBlNjEzZDAzNDE5YTg3NGYzYTc4YzMwNGJiNGMgPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MC42OTgxMTYxMTAxNzkwMSwtNzMuOTI1MjU3OTc0ODcwNDVdLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiYmx1ZSIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogIiMzMTg2Y2MiLAogICJmaWxsT3BhY2l0eSI6IDAuNywKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDUsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKS5hZGRUbyhtYXBfNDJkMmZlMGUyNWZlNDBjMjhkMjI5ZDRlOTIwMDQ2MTcpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfMjNmYjI4NmJkZDRkNGM4ZWI3YmU0MTEwZmMzNTYyZTAgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfMjNiOTdlN2YwMDEyNDQyNmEwYjVkM2JkMWJjMGZhZmMgPSAkKCc8ZGl2IGlkPSJodG1sXzIzYjk3ZTdmMDAxMjQ0MjZhMGI1ZDNiZDFiYzBmYWZjIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij5CdXNod2ljazwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfMjNmYjI4NmJkZDRkNGM4ZWI3YmU0MTEwZmMzNTYyZTAuc2V0Q29udGVudChodG1sXzIzYjk3ZTdmMDAxMjQ0MjZhMGI1ZDNiZDFiYzBmYWZjKTsKICAgICAgICAgICAgCgogICAgICAgICAgICBjaXJjbGVfbWFya2VyXzY4YTMwZTYxM2QwMzQxOWE4NzRmM2E3OGMzMDRiYjRjLmJpbmRQb3B1cChwb3B1cF8yM2ZiMjg2YmRkNGQ0YzhlYjdiZTQxMTBmYzM1NjJlMCk7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgY2lyY2xlX21hcmtlcl9mNjg3NWViYmM0NTU0ODE3ODFmMzE0ZTk2ZTJlZjc5ZiA9IEwuY2lyY2xlTWFya2VyKAogICAgICAgICAgICAgICAgWzQwLjY4NzIzMTYwNzcyMDQ1NiwtNzMuOTQxNzg0ODg2OTAyOTddLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiYmx1ZSIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogIiMzMTg2Y2MiLAogICJmaWxsT3BhY2l0eSI6IDAuNywKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDUsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKS5hZGRUbyhtYXBfNDJkMmZlMGUyNWZlNDBjMjhkMjI5ZDRlOTIwMDQ2MTcpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfMTMyMWRiYjdmMjVhNGU3YTk4ZmUzOWRjNmFlYWMwZmMgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfNWJkZjNkNjFiMGI4NDA1Mjk2Zjg0N2RlYTAwMmY1NTQgPSAkKCc8ZGl2IGlkPSJodG1sXzViZGYzZDYxYjBiODQwNTI5NmY4NDdkZWEwMDJmNTU0IiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij5CZWRmb3JkIFN0dXl2ZXNhbnQ8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzEzMjFkYmI3ZjI1YTRlN2E5OGZlMzlkYzZhZWFjMGZjLnNldENvbnRlbnQoaHRtbF81YmRmM2Q2MWIwYjg0MDUyOTZmODQ3ZGVhMDAyZjU1NCk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl9mNjg3NWViYmM0NTU0ODE3ODFmMzE0ZTk2ZTJlZjc5Zi5iaW5kUG9wdXAocG9wdXBfMTMyMWRiYjdmMjVhNGU3YTk4ZmUzOWRjNmFlYWMwZmMpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfMDQ2ZjE4ZjNiOGFjNDU5NWEzODFjYjdkODU0NjUyYzkgPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MC42OTU4NjM3MjI3MjQwODQsLTczLjk5Mzc4MjI1NDk2NDI0XSwKICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogImJsdWUiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IHRydWUsCiAgImZpbGxDb2xvciI6ICIjMzE4NmNjIiwKICAiZmlsbE9wYWNpdHkiOiAwLjcsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJvcGFjaXR5IjogMS4wLAogICJyYWRpdXMiOiA1LAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAzCn0KICAgICAgICAgICAgICAgICkuYWRkVG8obWFwXzQyZDJmZTBlMjVmZTQwYzI4ZDIyOWQ0ZTkyMDA0NjE3KTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwXzA5ZWVhMWQ4YzkzYzQxNjdiOTRlZTllMTZkMzZjOTgzID0gTC5wb3B1cCh7bWF4V2lkdGg6ICczMDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sXzcyMGNhMTUzZjdiNDRlNGRhZmM3OGJiZTQ4MjgwM2QwID0gJCgnPGRpdiBpZD0iaHRtbF83MjBjYTE1M2Y3YjQ0ZTRkYWZjNzhiYmU0ODI4MDNkMCIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+QnJvb2tseW4gSGVpZ2h0czwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfMDllZWExZDhjOTNjNDE2N2I5NGVlOWUxNmQzNmM5ODMuc2V0Q29udGVudChodG1sXzcyMGNhMTUzZjdiNDRlNGRhZmM3OGJiZTQ4MjgwM2QwKTsKICAgICAgICAgICAgCgogICAgICAgICAgICBjaXJjbGVfbWFya2VyXzA0NmYxOGYzYjhhYzQ1OTVhMzgxY2I3ZDg1NDY1MmM5LmJpbmRQb3B1cChwb3B1cF8wOWVlYTFkOGM5M2M0MTY3Yjk0ZWU5ZTE2ZDM2Yzk4Myk7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgY2lyY2xlX21hcmtlcl8wNDI0ZjIzMGZiMTc0NmExOTM1MjQwNTMwNzNlODU2MSA9IEwuY2lyY2xlTWFya2VyKAogICAgICAgICAgICAgICAgWzQwLjY4NzkxOTcyMjQ4NTU3NCwtNzMuOTk4NTYxMzkyMTg0NjNdLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiYmx1ZSIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogIiMzMTg2Y2MiLAogICJmaWxsT3BhY2l0eSI6IDAuNywKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDUsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKS5hZGRUbyhtYXBfNDJkMmZlMGUyNWZlNDBjMjhkMjI5ZDRlOTIwMDQ2MTcpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfNmE2MTVhMDQ0YjI5NDA2Y2E4ZWYwMWFiN2NhMmVhZDEgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfODA1MjQ3YWEwMTQxNGQ2ZDk0ZDJhYjc0N2JjYTcyYTQgPSAkKCc8ZGl2IGlkPSJodG1sXzgwNTI0N2FhMDE0MTRkNmQ5NGQyYWI3NDdiY2E3MmE0IiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij5Db2JibGUgSGlsbDwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfNmE2MTVhMDQ0YjI5NDA2Y2E4ZWYwMWFiN2NhMmVhZDEuc2V0Q29udGVudChodG1sXzgwNTI0N2FhMDE0MTRkNmQ5NGQyYWI3NDdiY2E3MmE0KTsKICAgICAgICAgICAgCgogICAgICAgICAgICBjaXJjbGVfbWFya2VyXzA0MjRmMjMwZmIxNzQ2YTE5MzUyNDA1MzA3M2U4NTYxLmJpbmRQb3B1cChwb3B1cF82YTYxNWEwNDRiMjk0MDZjYThlZjAxYWI3Y2EyZWFkMSk7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgY2lyY2xlX21hcmtlcl82NTA4N2RhOTYzMTI0YjgzYmViZWFlY2VhMTJlZmVjMyA9IEwuY2lyY2xlTWFya2VyKAogICAgICAgICAgICAgICAgWzQwLjY4MDU0MDIzMTA3NjQ4NSwtNzMuOTk0NjUzNzI4MjgwMDZdLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiYmx1ZSIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogIiMzMTg2Y2MiLAogICJmaWxsT3BhY2l0eSI6IDAuNywKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDUsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKS5hZGRUbyhtYXBfNDJkMmZlMGUyNWZlNDBjMjhkMjI5ZDRlOTIwMDQ2MTcpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfZDBjNWM1OWRmYzIyNGNhOTkyMjBhNzU0MjM5ODA2ZTAgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfY2Y0NThiNjkyMjE2NDI0NTk0ZGY2N2Q2NWIzMThiNmQgPSAkKCc8ZGl2IGlkPSJodG1sX2NmNDU4YjY5MjIxNjQyNDU5NGRmNjdkNjViMzE4YjZkIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij5DYXJyb2xsIEdhcmRlbnM8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwX2QwYzVjNTlkZmMyMjRjYTk5MjIwYTc1NDIzOTgwNmUwLnNldENvbnRlbnQoaHRtbF9jZjQ1OGI2OTIyMTY0MjQ1OTRkZjY3ZDY1YjMxOGI2ZCk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl82NTA4N2RhOTYzMTI0YjgzYmViZWFlY2VhMTJlZmVjMy5iaW5kUG9wdXAocG9wdXBfZDBjNWM1OWRmYzIyNGNhOTkyMjBhNzU0MjM5ODA2ZTApOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfNjE1MWNjMTcyZDI2NDU2ZjlhYmZhNmFmNTU1NjIyYjMgPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MC42NzYyNTMyMzAyNTA4ODYsLTc0LjAxMjc1ODk3NDczNTZdLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiYmx1ZSIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogIiMzMTg2Y2MiLAogICJmaWxsT3BhY2l0eSI6IDAuNywKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDUsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKS5hZGRUbyhtYXBfNDJkMmZlMGUyNWZlNDBjMjhkMjI5ZDRlOTIwMDQ2MTcpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfMWM4NmJlYTc1YWFhNDk1Zjg1MGI1NGFmMGViOTgyNzAgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfNmNkODM3OGIyZGQ4NGExNjlhOWQzNTRmNzAzNGNkMDIgPSAkKCc8ZGl2IGlkPSJodG1sXzZjZDgzNzhiMmRkODRhMTY5YTlkMzU0ZjcwMzRjZDAyIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij5SZWQgSG9vazwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfMWM4NmJlYTc1YWFhNDk1Zjg1MGI1NGFmMGViOTgyNzAuc2V0Q29udGVudChodG1sXzZjZDgzNzhiMmRkODRhMTY5YTlkMzU0ZjcwMzRjZDAyKTsKICAgICAgICAgICAgCgogICAgICAgICAgICBjaXJjbGVfbWFya2VyXzYxNTFjYzE3MmQyNjQ1NmY5YWJmYTZhZjU1NTYyMmIzLmJpbmRQb3B1cChwb3B1cF8xYzg2YmVhNzVhYWE0OTVmODUwYjU0YWYwZWI5ODI3MCk7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgY2lyY2xlX21hcmtlcl80YzM3MjQ5NTU5NmE0OTdjYTY1NDg5OGViMmE0NGNkOCA9IEwuY2lyY2xlTWFya2VyKAogICAgICAgICAgICAgICAgWzQwLjY3MzkzMTE0MzE4NzE1NCwtNzMuOTk0NDQwODcxNDUzMzldLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiYmx1ZSIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogIiMzMTg2Y2MiLAogICJmaWxsT3BhY2l0eSI6IDAuNywKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDUsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKS5hZGRUbyhtYXBfNDJkMmZlMGUyNWZlNDBjMjhkMjI5ZDRlOTIwMDQ2MTcpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfNDI3ZGYwZmU3ZGNkNGU2NWIzOGFjNDMxYjdkYmExNjEgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfMmY4NzM4NDU5YzI1NDdkZmE4ZTFmYTM5MjQ2Y2FmNzMgPSAkKCc8ZGl2IGlkPSJodG1sXzJmODczODQ1OWMyNTQ3ZGZhOGUxZmEzOTI0NmNhZjczIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij5Hb3dhbnVzPC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF80MjdkZjBmZTdkY2Q0ZTY1YjM4YWM0MzFiN2RiYTE2MS5zZXRDb250ZW50KGh0bWxfMmY4NzM4NDU5YzI1NDdkZmE4ZTFmYTM5MjQ2Y2FmNzMpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIGNpcmNsZV9tYXJrZXJfNGMzNzI0OTU1OTZhNDk3Y2E2NTQ4OThlYjJhNDRjZDguYmluZFBvcHVwKHBvcHVwXzQyN2RmMGZlN2RjZDRlNjViMzhhYzQzMWI3ZGJhMTYxKTsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBjaXJjbGVfbWFya2VyX2NlZGMyZWI1NDJhZjQzNDdiODc4OTU1OGY4OTAwZDlhID0gTC5jaXJjbGVNYXJrZXIoCiAgICAgICAgICAgICAgICBbNDAuNjg4NTI3MjYwMTg5NzcsLTczLjk3MjkwNTc0MzY5MDkyXSwKICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogImJsdWUiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IHRydWUsCiAgImZpbGxDb2xvciI6ICIjMzE4NmNjIiwKICAiZmlsbE9wYWNpdHkiOiAwLjcsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJvcGFjaXR5IjogMS4wLAogICJyYWRpdXMiOiA1LAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAzCn0KICAgICAgICAgICAgICAgICkuYWRkVG8obWFwXzQyZDJmZTBlMjVmZTQwYzI4ZDIyOWQ0ZTkyMDA0NjE3KTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwXzYwODhiZjk4MjRjMjQ3N2ViMjBjZGY2NTQyNmYzMjhjID0gTC5wb3B1cCh7bWF4V2lkdGg6ICczMDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sXzkxYjliNmU5MzY4ZDRiYWU4MjMyY2NmOTNmYmY0MmFmID0gJCgnPGRpdiBpZD0iaHRtbF85MWI5YjZlOTM2OGQ0YmFlODIzMmNjZjkzZmJmNDJhZiIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+Rm9ydCBHcmVlbmU8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzYwODhiZjk4MjRjMjQ3N2ViMjBjZGY2NTQyNmYzMjhjLnNldENvbnRlbnQoaHRtbF85MWI5YjZlOTM2OGQ0YmFlODIzMmNjZjkzZmJmNDJhZik7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl9jZWRjMmViNTQyYWY0MzQ3Yjg3ODk1NThmODkwMGQ5YS5iaW5kUG9wdXAocG9wdXBfNjA4OGJmOTgyNGMyNDc3ZWIyMGNkZjY1NDI2ZjMyOGMpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfYTkyODlkMTI5M2U1NGQyOWJmM2UzM2UwYTgyZDFhMDMgPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MC42NzIzMjA1MjI2ODE5NywtNzMuOTc3MDUwMzAxODM5MjRdLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiYmx1ZSIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogIiMzMTg2Y2MiLAogICJmaWxsT3BhY2l0eSI6IDAuNywKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDUsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKS5hZGRUbyhtYXBfNDJkMmZlMGUyNWZlNDBjMjhkMjI5ZDRlOTIwMDQ2MTcpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfYWJhMTZmNTY0ZmE5NDMyOGI0MjE5YjhiZDExMGY2MDEgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfMDM5MDNhZDMyOGNhNDM2NTk4NjQ0ZWQ4N2FlYTc1ZWQgPSAkKCc8ZGl2IGlkPSJodG1sXzAzOTAzYWQzMjhjYTQzNjU5ODY0NGVkODdhZWE3NWVkIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij5QYXJrIFNsb3BlPC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF9hYmExNmY1NjRmYTk0MzI4YjQyMTliOGJkMTEwZjYwMS5zZXRDb250ZW50KGh0bWxfMDM5MDNhZDMyOGNhNDM2NTk4NjQ0ZWQ4N2FlYTc1ZWQpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIGNpcmNsZV9tYXJrZXJfYTkyODlkMTI5M2U1NGQyOWJmM2UzM2UwYTgyZDFhMDMuYmluZFBvcHVwKHBvcHVwX2FiYTE2ZjU2NGZhOTQzMjhiNDIxOWI4YmQxMTBmNjAxKTsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBjaXJjbGVfbWFya2VyXzIyMmJmMjg4MTBiNzQ2MzNhNGM4MGE3MzZlZGQzOTQwID0gTC5jaXJjbGVNYXJrZXIoCiAgICAgICAgICAgICAgICBbNDAuNjgyMzkxMDExNDQyMTEsLTczLjg3NjYxNTk2NDU3Mjk2XSwKICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogImJsdWUiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IHRydWUsCiAgImZpbGxDb2xvciI6ICIjMzE4NmNjIiwKICAiZmlsbE9wYWNpdHkiOiAwLjcsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJvcGFjaXR5IjogMS4wLAogICJyYWRpdXMiOiA1LAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAzCn0KICAgICAgICAgICAgICAgICkuYWRkVG8obWFwXzQyZDJmZTBlMjVmZTQwYzI4ZDIyOWQ0ZTkyMDA0NjE3KTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwX2Y2Njg1NjJjMGI5ZDQ0OTA5OWJlZmFiNDA0Zjc3ODVjID0gTC5wb3B1cCh7bWF4V2lkdGg6ICczMDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sXzA1NzBlZDMyMDQxNjQ3NTU4YjQ5MTQ3Mzk0ODIyYTdiID0gJCgnPGRpdiBpZD0iaHRtbF8wNTcwZWQzMjA0MTY0NzU1OGI0OTE0NzM5NDgyMmE3YiIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+Q3lwcmVzcyBIaWxsczwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfZjY2ODU2MmMwYjlkNDQ5MDk5YmVmYWI0MDRmNzc4NWMuc2V0Q29udGVudChodG1sXzA1NzBlZDMyMDQxNjQ3NTU4YjQ5MTQ3Mzk0ODIyYTdiKTsKICAgICAgICAgICAgCgogICAgICAgICAgICBjaXJjbGVfbWFya2VyXzIyMmJmMjg4MTBiNzQ2MzNhNGM4MGE3MzZlZGQzOTQwLmJpbmRQb3B1cChwb3B1cF9mNjY4NTYyYzBiOWQ0NDkwOTliZWZhYjQwNGY3Nzg1Yyk7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgY2lyY2xlX21hcmtlcl81YTg1NTBmZDljZmQ0MWNlYTRlMDk5OGEzMDcwMGJiOSA9IEwuY2lyY2xlTWFya2VyKAogICAgICAgICAgICAgICAgWzQwLjY2OTkyNTcwMDg0NzA0NSwtNzMuODgwNjk4NjM5MTczNjZdLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiYmx1ZSIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogIiMzMTg2Y2MiLAogICJmaWxsT3BhY2l0eSI6IDAuNywKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDUsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKS5hZGRUbyhtYXBfNDJkMmZlMGUyNWZlNDBjMjhkMjI5ZDRlOTIwMDQ2MTcpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfYzE2ZmRlYjIxMzc0NGMwYTk0MjU5ODY0YzBkZGM5YzIgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfNjgzMTMzYTRkOTY4NDE4ZThlNDM2ZjMzODhkZGVmZWQgPSAkKCc8ZGl2IGlkPSJodG1sXzY4MzEzM2E0ZDk2ODQxOGU4ZTQzNmYzMzg4ZGRlZmVkIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij5FYXN0IE5ldyBZb3JrPC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF9jMTZmZGViMjEzNzQ0YzBhOTQyNTk4NjRjMGRkYzljMi5zZXRDb250ZW50KGh0bWxfNjgzMTMzYTRkOTY4NDE4ZThlNDM2ZjMzODhkZGVmZWQpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIGNpcmNsZV9tYXJrZXJfNWE4NTUwZmQ5Y2ZkNDFjZWE0ZTA5OThhMzA3MDBiYjkuYmluZFBvcHVwKHBvcHVwX2MxNmZkZWIyMTM3NDRjMGE5NDI1OTg2NGMwZGRjOWMyKTsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBjaXJjbGVfbWFya2VyXzE2MmU5YzE0YmY5MjQzYjg4NjdjN2U0ZjVmOGRhOWQyID0gTC5jaXJjbGVNYXJrZXIoCiAgICAgICAgICAgICAgICBbNDAuNjQ3NTg5MDUyMzA4NzQsLTczLjg3OTM2OTcwMDQ1ODc1XSwKICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogImJsdWUiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IHRydWUsCiAgImZpbGxDb2xvciI6ICIjMzE4NmNjIiwKICAiZmlsbE9wYWNpdHkiOiAwLjcsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJvcGFjaXR5IjogMS4wLAogICJyYWRpdXMiOiA1LAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAzCn0KICAgICAgICAgICAgICAgICkuYWRkVG8obWFwXzQyZDJmZTBlMjVmZTQwYzI4ZDIyOWQ0ZTkyMDA0NjE3KTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwX2EzYTA2MmM1N2FlMzQzNWFiZTE1MDRlNGY4MzFkY2NkID0gTC5wb3B1cCh7bWF4V2lkdGg6ICczMDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sXzQ2NjZlMzE4ZGE4ZDRkMDlhMDY5ZTljMzBmMzI0Mzg4ID0gJCgnPGRpdiBpZD0iaHRtbF80NjY2ZTMxOGRhOGQ0ZDA5YTA2OWU5YzMwZjMyNDM4OCIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+U3RhcnJldHQgQ2l0eTwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfYTNhMDYyYzU3YWUzNDM1YWJlMTUwNGU0ZjgzMWRjY2Quc2V0Q29udGVudChodG1sXzQ2NjZlMzE4ZGE4ZDRkMDlhMDY5ZTljMzBmMzI0Mzg4KTsKICAgICAgICAgICAgCgogICAgICAgICAgICBjaXJjbGVfbWFya2VyXzE2MmU5YzE0YmY5MjQzYjg4NjdjN2U0ZjVmOGRhOWQyLmJpbmRQb3B1cChwb3B1cF9hM2EwNjJjNTdhZTM0MzVhYmUxNTA0ZTRmODMxZGNjZCk7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgY2lyY2xlX21hcmtlcl84NjVlMTg1NzAwM2U0NDk0OGIxZjQxMWVjNTdlNjI1OCA9IEwuY2lyY2xlTWFya2VyKAogICAgICAgICAgICAgICAgWzQwLjYzNTU2NDMyNzk3NDI4LC03My45MDIwOTI2OTc3ODk2Nl0sCiAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICJibHVlIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiB0cnVlLAogICJmaWxsQ29sb3IiOiAiIzMxODZjYyIsCiAgImZpbGxPcGFjaXR5IjogMC43LAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAib3BhY2l0eSI6IDEuMCwKICAicmFkaXVzIjogNSwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9CiAgICAgICAgICAgICAgICApLmFkZFRvKG1hcF80MmQyZmUwZTI1ZmU0MGMyOGQyMjlkNGU5MjAwNDYxNyk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF9lNTcyNzM0Y2Y3ZDM0MGJkYjUzNWY4NDA2NDdhMjFkNiA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF81Y2QzZGYzNTRjYmY0MWU2OWU4ODA2OTFkM2ZkYzgwZSA9ICQoJzxkaXYgaWQ9Imh0bWxfNWNkM2RmMzU0Y2JmNDFlNjllODgwNjkxZDNmZGM4MGUiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPkNhbmFyc2llPC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF9lNTcyNzM0Y2Y3ZDM0MGJkYjUzNWY4NDA2NDdhMjFkNi5zZXRDb250ZW50KGh0bWxfNWNkM2RmMzU0Y2JmNDFlNjllODgwNjkxZDNmZGM4MGUpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIGNpcmNsZV9tYXJrZXJfODY1ZTE4NTcwMDNlNDQ5NDhiMWY0MTFlYzU3ZTYyNTguYmluZFBvcHVwKHBvcHVwX2U1NzI3MzRjZjdkMzQwYmRiNTM1Zjg0MDY0N2EyMWQ2KTsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBjaXJjbGVfbWFya2VyX2RmMjJiMjBmZGMzYjQ4YWU5MWY4Y2U0NjIwOGRhNjA0ID0gTC5jaXJjbGVNYXJrZXIoCiAgICAgICAgICAgICAgICBbNDAuNjMwNDQ2MDQzNzU3NDY2LC03My45MjkxMTMwMjY0NDY3NF0sCiAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICJibHVlIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiB0cnVlLAogICJmaWxsQ29sb3IiOiAiIzMxODZjYyIsCiAgImZpbGxPcGFjaXR5IjogMC43LAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAib3BhY2l0eSI6IDEuMCwKICAicmFkaXVzIjogNSwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9CiAgICAgICAgICAgICAgICApLmFkZFRvKG1hcF80MmQyZmUwZTI1ZmU0MGMyOGQyMjlkNGU5MjAwNDYxNyk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF84OWE0ZTYyN2VhYzQ0NWYxODI4YTAxNmVhODFjMjA5OSA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF8yNDAyNjQ5MTVlY2E0OTMxOTgwNWI1ZmY2OTllNWQ2NyA9ICQoJzxkaXYgaWQ9Imh0bWxfMjQwMjY0OTE1ZWNhNDkzMTk4MDViNWZmNjk5ZTVkNjciIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPkZsYXRsYW5kczwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfODlhNGU2MjdlYWM0NDVmMTgyOGEwMTZlYTgxYzIwOTkuc2V0Q29udGVudChodG1sXzI0MDI2NDkxNWVjYTQ5MzE5ODA1YjVmZjY5OWU1ZDY3KTsKICAgICAgICAgICAgCgogICAgICAgICAgICBjaXJjbGVfbWFya2VyX2RmMjJiMjBmZGMzYjQ4YWU5MWY4Y2U0NjIwOGRhNjA0LmJpbmRQb3B1cChwb3B1cF84OWE0ZTYyN2VhYzQ0NWYxODI4YTAxNmVhODFjMjA5OSk7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgY2lyY2xlX21hcmtlcl9lMzRiNzNmZTBiMDA0NDY5OGMwYjliZTljZDE5ZjBkYiA9IEwuY2lyY2xlTWFya2VyKAogICAgICAgICAgICAgICAgWzQwLjYwNjMzNjQyMTY4NTYyNiwtNzMuOTA4MTg1NzE3Nzc0MjNdLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiYmx1ZSIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogIiMzMTg2Y2MiLAogICJmaWxsT3BhY2l0eSI6IDAuNywKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDUsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKS5hZGRUbyhtYXBfNDJkMmZlMGUyNWZlNDBjMjhkMjI5ZDRlOTIwMDQ2MTcpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfMjY3OTg5MTYyOTE5NDZkMTg5NDhlM2I1OGYwNjg1NjkgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfZmY3ZDliYThhMDhlNDQzMDk2ZTA0YzdmNDkyMDk2ODAgPSAkKCc8ZGl2IGlkPSJodG1sX2ZmN2Q5YmE4YTA4ZTQ0MzA5NmUwNGM3ZjQ5MjA5NjgwIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij5NaWxsIElzbGFuZDwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfMjY3OTg5MTYyOTE5NDZkMTg5NDhlM2I1OGYwNjg1Njkuc2V0Q29udGVudChodG1sX2ZmN2Q5YmE4YTA4ZTQ0MzA5NmUwNGM3ZjQ5MjA5NjgwKTsKICAgICAgICAgICAgCgogICAgICAgICAgICBjaXJjbGVfbWFya2VyX2UzNGI3M2ZlMGIwMDQ0Njk4YzBiOWJlOWNkMTlmMGRiLmJpbmRQb3B1cChwb3B1cF8yNjc5ODkxNjI5MTk0NmQxODk0OGUzYjU4ZjA2ODU2OSk7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgY2lyY2xlX21hcmtlcl9kMTRhNWM0ZWNlMGY0M2Q2OTViMjA3ZGZmMzU0NmExNyA9IEwuY2lyY2xlTWFya2VyKAogICAgICAgICAgICAgICAgWzQwLjU3NzkxMzUwMzA4NjU3LC03My45NDM1MzcyMjg5MTg4Nl0sCiAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICJibHVlIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiB0cnVlLAogICJmaWxsQ29sb3IiOiAiIzMxODZjYyIsCiAgImZpbGxPcGFjaXR5IjogMC43LAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAib3BhY2l0eSI6IDEuMCwKICAicmFkaXVzIjogNSwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9CiAgICAgICAgICAgICAgICApLmFkZFRvKG1hcF80MmQyZmUwZTI1ZmU0MGMyOGQyMjlkNGU5MjAwNDYxNyk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF84Y2VmZmY3MzNkYjk0YTIzOTIzYjUzMmE0ZmFhMTJkMiA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF8xYTZjZmM2NjkwYjE0NmYwODI1NTM0MWFlZDUxMjZjNyA9ICQoJzxkaXYgaWQ9Imh0bWxfMWE2Y2ZjNjY5MGIxNDZmMDgyNTUzNDFhZWQ1MTI2YzciIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPk1hbmhhdHRhbiBCZWFjaDwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfOGNlZmZmNzMzZGI5NGEyMzkyM2I1MzJhNGZhYTEyZDIuc2V0Q29udGVudChodG1sXzFhNmNmYzY2OTBiMTQ2ZjA4MjU1MzQxYWVkNTEyNmM3KTsKICAgICAgICAgICAgCgogICAgICAgICAgICBjaXJjbGVfbWFya2VyX2QxNGE1YzRlY2UwZjQzZDY5NWIyMDdkZmYzNTQ2YTE3LmJpbmRQb3B1cChwb3B1cF84Y2VmZmY3MzNkYjk0YTIzOTIzYjUzMmE0ZmFhMTJkMik7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgY2lyY2xlX21hcmtlcl81ZjgzMmQ0MmEwY2M0MDcyYTc2MmM3MzFlOTJkMDcyZSA9IEwuY2lyY2xlTWFya2VyKAogICAgICAgICAgICAgICAgWzQwLjU3NDI5MjU2NDcxNjAxLC03My45ODg2ODI5NTgyMTYzN10sCiAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICJibHVlIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiB0cnVlLAogICJmaWxsQ29sb3IiOiAiIzMxODZjYyIsCiAgImZpbGxPcGFjaXR5IjogMC43LAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAib3BhY2l0eSI6IDEuMCwKICAicmFkaXVzIjogNSwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9CiAgICAgICAgICAgICAgICApLmFkZFRvKG1hcF80MmQyZmUwZTI1ZmU0MGMyOGQyMjlkNGU5MjAwNDYxNyk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF9mMzkyYzRhZDFmNGE0NGMzODM2MjgyMjg1ZGI4Y2Y1MSA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF85MzZiZGNlNzA1MjI0ZmE4ODg1ZjhiYjJiOWJiNDYzMiA9ICQoJzxkaXYgaWQ9Imh0bWxfOTM2YmRjZTcwNTIyNGZhODg4NWY4YmIyYjliYjQ2MzIiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPkNvbmV5IElzbGFuZDwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfZjM5MmM0YWQxZjRhNDRjMzgzNjI4MjI4NWRiOGNmNTEuc2V0Q29udGVudChodG1sXzkzNmJkY2U3MDUyMjRmYTg4ODVmOGJiMmI5YmI0NjMyKTsKICAgICAgICAgICAgCgogICAgICAgICAgICBjaXJjbGVfbWFya2VyXzVmODMyZDQyYTBjYzQwNzJhNzYyYzczMWU5MmQwNzJlLmJpbmRQb3B1cChwb3B1cF9mMzkyYzRhZDFmNGE0NGMzODM2MjgyMjg1ZGI4Y2Y1MSk7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgY2lyY2xlX21hcmtlcl85N2I1OTcyNmJhZmE0ZDlmOWM5ZjlkYzMwYjk3NjUzNiA9IEwuY2lyY2xlTWFya2VyKAogICAgICAgICAgICAgICAgWzQwLjU5OTUxODcwMjgyMjM4LC03My45OTg3NTIyMTQ0MzUxOV0sCiAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICJibHVlIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiB0cnVlLAogICJmaWxsQ29sb3IiOiAiIzMxODZjYyIsCiAgImZpbGxPcGFjaXR5IjogMC43LAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAib3BhY2l0eSI6IDEuMCwKICAicmFkaXVzIjogNSwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9CiAgICAgICAgICAgICAgICApLmFkZFRvKG1hcF80MmQyZmUwZTI1ZmU0MGMyOGQyMjlkNGU5MjAwNDYxNyk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF8zOWYyOThlOTUzYmM0MjE0YTM2YzEzMDhmYjhhODExZiA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF8zMmJlMmQwYjBjNDc0NjVjYmIzMGJiMjUwODBmZjg0OCA9ICQoJzxkaXYgaWQ9Imh0bWxfMzJiZTJkMGIwYzQ3NDY1Y2JiMzBiYjI1MDgwZmY4NDgiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPkJhdGggQmVhY2g8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzM5ZjI5OGU5NTNiYzQyMTRhMzZjMTMwOGZiOGE4MTFmLnNldENvbnRlbnQoaHRtbF8zMmJlMmQwYjBjNDc0NjVjYmIzMGJiMjUwODBmZjg0OCk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl85N2I1OTcyNmJhZmE0ZDlmOWM5ZjlkYzMwYjk3NjUzNi5iaW5kUG9wdXAocG9wdXBfMzlmMjk4ZTk1M2JjNDIxNGEzNmMxMzA4ZmI4YTgxMWYpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfZTBlYzc3YjQxOWY3NGJiZjg0ODZlYmJmMjJlMWM2NzIgPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MC42MzMxMzA1MTI3NTgwMTUsLTczLjk5MDQ5ODIzMDQ0ODExXSwKICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogImJsdWUiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IHRydWUsCiAgImZpbGxDb2xvciI6ICIjMzE4NmNjIiwKICAiZmlsbE9wYWNpdHkiOiAwLjcsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJvcGFjaXR5IjogMS4wLAogICJyYWRpdXMiOiA1LAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAzCn0KICAgICAgICAgICAgICAgICkuYWRkVG8obWFwXzQyZDJmZTBlMjVmZTQwYzI4ZDIyOWQ0ZTkyMDA0NjE3KTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwX2Q0MjQzNzViNDc2ZTQwZDdiOGM2Y2VlMzM0Y2IxMzllID0gTC5wb3B1cCh7bWF4V2lkdGg6ICczMDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sXzIzNWQwNGY2ZTk1YzQxNDk5MmM3MDQ0NTI1NmQwZDI3ID0gJCgnPGRpdiBpZD0iaHRtbF8yMzVkMDRmNmU5NWM0MTQ5OTJjNzA0NDUyNTZkMGQyNyIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+Qm9yb3VnaCBQYXJrPC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF9kNDI0Mzc1YjQ3NmU0MGQ3YjhjNmNlZTMzNGNiMTM5ZS5zZXRDb250ZW50KGh0bWxfMjM1ZDA0ZjZlOTVjNDE0OTkyYzcwNDQ1MjU2ZDBkMjcpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIGNpcmNsZV9tYXJrZXJfZTBlYzc3YjQxOWY3NGJiZjg0ODZlYmJmMjJlMWM2NzIuYmluZFBvcHVwKHBvcHVwX2Q0MjQzNzViNDc2ZTQwZDdiOGM2Y2VlMzM0Y2IxMzllKTsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBjaXJjbGVfbWFya2VyX2IxMTE1Yzc4ZDhhNDQ2YjRhMWUxMzZlZmVjZTgzYmExID0gTC5jaXJjbGVNYXJrZXIoCiAgICAgICAgICAgICAgICBbNDAuNjE5MjE5NDU3NzIyNjM2LC03NC4wMTkzMTM3NTYzNjAyMl0sCiAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICJibHVlIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiB0cnVlLAogICJmaWxsQ29sb3IiOiAiIzMxODZjYyIsCiAgImZpbGxPcGFjaXR5IjogMC43LAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAib3BhY2l0eSI6IDEuMCwKICAicmFkaXVzIjogNSwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9CiAgICAgICAgICAgICAgICApLmFkZFRvKG1hcF80MmQyZmUwZTI1ZmU0MGMyOGQyMjlkNGU5MjAwNDYxNyk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF85MDNjNTBlODk0ZTE0YThjOGQ4Y2Y4YTZkNTEyMDcxOCA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF84ZmIzYmJiMzNhYTE0MDA3ODUyZTlmZDAyMzNjZTI2MiA9ICQoJzxkaXYgaWQ9Imh0bWxfOGZiM2JiYjMzYWExNDAwNzg1MmU5ZmQwMjMzY2UyNjIiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPkR5a2VyIEhlaWdodHM8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzkwM2M1MGU4OTRlMTRhOGM4ZDhjZjhhNmQ1MTIwNzE4LnNldENvbnRlbnQoaHRtbF84ZmIzYmJiMzNhYTE0MDA3ODUyZTlmZDAyMzNjZTI2Mik7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl9iMTExNWM3OGQ4YTQ0NmI0YTFlMTM2ZWZlY2U4M2JhMS5iaW5kUG9wdXAocG9wdXBfOTAzYzUwZTg5NGUxNGE4YzhkOGNmOGE2ZDUxMjA3MTgpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfZWZiMTk3NTk1YjZiNDU4OTk1OWZmZTkzNjk0ODI5ZjIgPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MC41OTA4NDg0MzM5MDIwNDYsLTczLjkzMDEwMTcwNjkxMTk2XSwKICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogImJsdWUiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IHRydWUsCiAgImZpbGxDb2xvciI6ICIjMzE4NmNjIiwKICAiZmlsbE9wYWNpdHkiOiAwLjcsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJvcGFjaXR5IjogMS4wLAogICJyYWRpdXMiOiA1LAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAzCn0KICAgICAgICAgICAgICAgICkuYWRkVG8obWFwXzQyZDJmZTBlMjVmZTQwYzI4ZDIyOWQ0ZTkyMDA0NjE3KTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwXzQ5YjhlNTNmN2JiNTRkYTI4ZGI4ZjZlNzljNDg4ODJkID0gTC5wb3B1cCh7bWF4V2lkdGg6ICczMDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sXzY0NmExNzQ4Y2NlZDQzYTFhY2M2OWY3MTcxMzFkMjk4ID0gJCgnPGRpdiBpZD0iaHRtbF82NDZhMTc0OGNjZWQ0M2ExYWNjNjlmNzE3MTMxZDI5OCIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+R2Vycml0c2VuIEJlYWNoPC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF80OWI4ZTUzZjdiYjU0ZGEyOGRiOGY2ZTc5YzQ4ODgyZC5zZXRDb250ZW50KGh0bWxfNjQ2YTE3NDhjY2VkNDNhMWFjYzY5ZjcxNzEzMWQyOTgpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIGNpcmNsZV9tYXJrZXJfZWZiMTk3NTk1YjZiNDU4OTk1OWZmZTkzNjk0ODI5ZjIuYmluZFBvcHVwKHBvcHVwXzQ5YjhlNTNmN2JiNTRkYTI4ZGI4ZjZlNzljNDg4ODJkKTsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBjaXJjbGVfbWFya2VyX2ZmZTY4OWRmYWQ4NzQxZWU4NTE5NjJkNzUzYjU4MGI5ID0gTC5jaXJjbGVNYXJrZXIoCiAgICAgICAgICAgICAgICBbNDAuNjA5NzQ3Nzc5ODk0NjA0LC03My45MzEzNDQwNDEwODQ5N10sCiAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICJibHVlIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiB0cnVlLAogICJmaWxsQ29sb3IiOiAiIzMxODZjYyIsCiAgImZpbGxPcGFjaXR5IjogMC43LAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAib3BhY2l0eSI6IDEuMCwKICAicmFkaXVzIjogNSwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9CiAgICAgICAgICAgICAgICApLmFkZFRvKG1hcF80MmQyZmUwZTI1ZmU0MGMyOGQyMjlkNGU5MjAwNDYxNyk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF8zMWExNzc2MTM5YjU0NjYzOGVjZDhmYTQ5ZWUzYTBiYiA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF85Y2E5MGU1ZmNiZjM0ZDkxOTU1YWNhNDRiYWJmN2Y3NCA9ICQoJzxkaXYgaWQ9Imh0bWxfOWNhOTBlNWZjYmYzNGQ5MTk1NWFjYTQ0YmFiZjdmNzQiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPk1hcmluZSBQYXJrPC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF8zMWExNzc2MTM5YjU0NjYzOGVjZDhmYTQ5ZWUzYTBiYi5zZXRDb250ZW50KGh0bWxfOWNhOTBlNWZjYmYzNGQ5MTk1NWFjYTQ0YmFiZjdmNzQpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIGNpcmNsZV9tYXJrZXJfZmZlNjg5ZGZhZDg3NDFlZTg1MTk2MmQ3NTNiNTgwYjkuYmluZFBvcHVwKHBvcHVwXzMxYTE3NzYxMzliNTQ2NjM4ZWNkOGZhNDllZTNhMGJiKTsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBjaXJjbGVfbWFya2VyX2JlNWRjNzJkMzc0ZTQ3OTM5OGJmZDJhNTQ5ZmIzYjNkID0gTC5jaXJjbGVNYXJrZXIoCiAgICAgICAgICAgICAgICBbNDAuNjkzMjI5NDIxODgxNTA0LC03My45Njc4NDMwNjIxNjM2N10sCiAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICJibHVlIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiB0cnVlLAogICJmaWxsQ29sb3IiOiAiIzMxODZjYyIsCiAgImZpbGxPcGFjaXR5IjogMC43LAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAib3BhY2l0eSI6IDEuMCwKICAicmFkaXVzIjogNSwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9CiAgICAgICAgICAgICAgICApLmFkZFRvKG1hcF80MmQyZmUwZTI1ZmU0MGMyOGQyMjlkNGU5MjAwNDYxNyk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF85ODViZTc4YzIwNDg0OWM4OTExNmM0ZDVlZGFhZWNiNCA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF83YzZhZWNlYzk3ODQ0ZTg3OTFmODc1YmUzODQyYmY5NiA9ICQoJzxkaXYgaWQ9Imh0bWxfN2M2YWVjZWM5Nzg0NGU4NzkxZjg3NWJlMzg0MmJmOTYiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPkNsaW50b24gSGlsbDwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfOTg1YmU3OGMyMDQ4NDljODkxMTZjNGQ1ZWRhYWVjYjQuc2V0Q29udGVudChodG1sXzdjNmFlY2VjOTc4NDRlODc5MWY4NzViZTM4NDJiZjk2KTsKICAgICAgICAgICAgCgogICAgICAgICAgICBjaXJjbGVfbWFya2VyX2JlNWRjNzJkMzc0ZTQ3OTM5OGJmZDJhNTQ5ZmIzYjNkLmJpbmRQb3B1cChwb3B1cF85ODViZTc4YzIwNDg0OWM4OTExNmM0ZDVlZGFhZWNiNCk7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgY2lyY2xlX21hcmtlcl84YWRjMmY3MDZiZjQ0NDQ4YWVlYjRkN2FkNzU2YmI0MiA9IEwuY2lyY2xlTWFya2VyKAogICAgICAgICAgICAgICAgWzQwLjU3NjM3NTM3ODkwMjI0LC03NC4wMDc4NzMxMTIwMDI0XSwKICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogImJsdWUiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IHRydWUsCiAgImZpbGxDb2xvciI6ICIjMzE4NmNjIiwKICAiZmlsbE9wYWNpdHkiOiAwLjcsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJvcGFjaXR5IjogMS4wLAogICJyYWRpdXMiOiA1LAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAzCn0KICAgICAgICAgICAgICAgICkuYWRkVG8obWFwXzQyZDJmZTBlMjVmZTQwYzI4ZDIyOWQ0ZTkyMDA0NjE3KTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwXzcxODg1Yzg0MmJhZjQ4MjM4ZTU2M2EzM2FjZDNjNDlhID0gTC5wb3B1cCh7bWF4V2lkdGg6ICczMDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sXzMwMjFmYjg4YzM3MDRiYmY4MzBkZmFjNzNmMDc0MWJkID0gJCgnPGRpdiBpZD0iaHRtbF8zMDIxZmI4OGMzNzA0YmJmODMwZGZhYzczZjA3NDFiZCIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+U2VhIEdhdGU8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzcxODg1Yzg0MmJhZjQ4MjM4ZTU2M2EzM2FjZDNjNDlhLnNldENvbnRlbnQoaHRtbF8zMDIxZmI4OGMzNzA0YmJmODMwZGZhYzczZjA3NDFiZCk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl84YWRjMmY3MDZiZjQ0NDQ4YWVlYjRkN2FkNzU2YmI0Mi5iaW5kUG9wdXAocG9wdXBfNzE4ODVjODQyYmFmNDgyMzhlNTYzYTMzYWNkM2M0OWEpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfNzFkNmM1YWFiN2M5NDdiZGJlNmM1MjIyZTg4N2Q1MDEgPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MC42OTA4NDQwMjEwOTgwMiwtNzMuOTgzNDYzMzc0MzEwOTldLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiYmx1ZSIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogIiMzMTg2Y2MiLAogICJmaWxsT3BhY2l0eSI6IDAuNywKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDUsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKS5hZGRUbyhtYXBfNDJkMmZlMGUyNWZlNDBjMjhkMjI5ZDRlOTIwMDQ2MTcpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfMWNlZjM3YWRhNWQxNDRhYTliMDU0ZTJlYjQzYTY0NDkgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfYzI4OGJmNDVlNDI2NGJhYmI5ZmNkMDI5Y2M3N2E0OGUgPSAkKCc8ZGl2IGlkPSJodG1sX2MyODhiZjQ1ZTQyNjRiYWJiOWZjZDAyOWNjNzdhNDhlIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij5Eb3dudG93bjwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfMWNlZjM3YWRhNWQxNDRhYTliMDU0ZTJlYjQzYTY0NDkuc2V0Q29udGVudChodG1sX2MyODhiZjQ1ZTQyNjRiYWJiOWZjZDAyOWNjNzdhNDhlKTsKICAgICAgICAgICAgCgogICAgICAgICAgICBjaXJjbGVfbWFya2VyXzcxZDZjNWFhYjdjOTQ3YmRiZTZjNTIyMmU4ODdkNTAxLmJpbmRQb3B1cChwb3B1cF8xY2VmMzdhZGE1ZDE0NGFhOWIwNTRlMmViNDNhNjQ0OSk7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgY2lyY2xlX21hcmtlcl85OWQ4MzkwNTI4MTU0Yzk3YWIzZDIxMzhmMWRiY2I0YyA9IEwuY2lyY2xlTWFya2VyKAogICAgICAgICAgICAgICAgWzQwLjY4NTY4MjkxMjA5MTQ0NCwtNzMuOTgzNzQ4MjQxMTU3OThdLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiYmx1ZSIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogIiMzMTg2Y2MiLAogICJmaWxsT3BhY2l0eSI6IDAuNywKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDUsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKS5hZGRUbyhtYXBfNDJkMmZlMGUyNWZlNDBjMjhkMjI5ZDRlOTIwMDQ2MTcpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfZmVjMmM2ZjZkMGQwNDA2MmE2MjEwMzRhMzc3MTAzZTIgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfZDA4MTRhZDg3MTRjNDgzNWEyMTBmNTUwZjUzZDUyNTQgPSAkKCc8ZGl2IGlkPSJodG1sX2QwODE0YWQ4NzE0YzQ4MzVhMjEwZjU1MGY1M2Q1MjU0IiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij5Cb2VydW0gSGlsbDwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfZmVjMmM2ZjZkMGQwNDA2MmE2MjEwMzRhMzc3MTAzZTIuc2V0Q29udGVudChodG1sX2QwODE0YWQ4NzE0YzQ4MzVhMjEwZjU1MGY1M2Q1MjU0KTsKICAgICAgICAgICAgCgogICAgICAgICAgICBjaXJjbGVfbWFya2VyXzk5ZDgzOTA1MjgxNTRjOTdhYjNkMjEzOGYxZGJjYjRjLmJpbmRQb3B1cChwb3B1cF9mZWMyYzZmNmQwZDA0MDYyYTYyMTAzNGEzNzcxMDNlMik7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgY2lyY2xlX21hcmtlcl82MTZiNDNlMGE0Zjc0YTdiYWFjMzRkYTY1MGEwODVmMSA9IEwuY2lyY2xlTWFya2VyKAogICAgICAgICAgICAgICAgWzQwLjY1ODQyMDAxNzQ2OTgxNSwtNzMuOTU0ODk4NjcwNzc3MTNdLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiYmx1ZSIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogIiMzMTg2Y2MiLAogICJmaWxsT3BhY2l0eSI6IDAuNywKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDUsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKS5hZGRUbyhtYXBfNDJkMmZlMGUyNWZlNDBjMjhkMjI5ZDRlOTIwMDQ2MTcpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfYzE0ZjI1NjYzMWNmNDZmYjg1ZWIwMjdhMTMzYzdmN2IgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfYTdkNGQ3ODE5NjMzNGFmYmEyNzg1ZGZhMjg3NWE1ZjQgPSAkKCc8ZGl2IGlkPSJodG1sX2E3ZDRkNzgxOTYzMzRhZmJhMjc4NWRmYTI4NzVhNWY0IiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij5Qcm9zcGVjdCBMZWZmZXJ0cyBHYXJkZW5zPC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF9jMTRmMjU2NjMxY2Y0NmZiODVlYjAyN2ExMzNjN2Y3Yi5zZXRDb250ZW50KGh0bWxfYTdkNGQ3ODE5NjMzNGFmYmEyNzg1ZGZhMjg3NWE1ZjQpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIGNpcmNsZV9tYXJrZXJfNjE2YjQzZTBhNGY3NGE3YmFhYzM0ZGE2NTBhMDg1ZjEuYmluZFBvcHVwKHBvcHVwX2MxNGYyNTY2MzFjZjQ2ZmI4NWViMDI3YTEzM2M3ZjdiKTsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBjaXJjbGVfbWFya2VyXzhhNjEwNzJkNjQ1NDRjZGFiZjNkNDM2OWU3NGMyM2EyID0gTC5jaXJjbGVNYXJrZXIoCiAgICAgICAgICAgICAgICBbNDAuNjc4NDAyNTU0Nzk1MzU1LC03My45MTMwNjgzMTc4NzM5NV0sCiAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICJibHVlIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiB0cnVlLAogICJmaWxsQ29sb3IiOiAiIzMxODZjYyIsCiAgImZpbGxPcGFjaXR5IjogMC43LAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAib3BhY2l0eSI6IDEuMCwKICAicmFkaXVzIjogNSwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9CiAgICAgICAgICAgICAgICApLmFkZFRvKG1hcF80MmQyZmUwZTI1ZmU0MGMyOGQyMjlkNGU5MjAwNDYxNyk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF8wOTNhNzk4OGU1ZDg0YWZiYWIyMTVlODgzNTE2YWI0OCA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF83MDk0NzIwNTM3YjI0OGNlODAwMDRlZDFiYWY5NTk0YiA9ICQoJzxkaXYgaWQ9Imh0bWxfNzA5NDcyMDUzN2IyNDhjZTgwMDA0ZWQxYmFmOTU5NGIiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPk9jZWFuIEhpbGw8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzA5M2E3OTg4ZTVkODRhZmJhYjIxNWU4ODM1MTZhYjQ4LnNldENvbnRlbnQoaHRtbF83MDk0NzIwNTM3YjI0OGNlODAwMDRlZDFiYWY5NTk0Yik7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl84YTYxMDcyZDY0NTQ0Y2RhYmYzZDQzNjllNzRjMjNhMi5iaW5kUG9wdXAocG9wdXBfMDkzYTc5ODhlNWQ4NGFmYmFiMjE1ZTg4MzUxNmFiNDgpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfMTlkNTVmZDk1OTlmNGE1ZDk2NjgxYzkwNjU0ODAxNzUgPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MC42Nzg1Njk5NTcyNzQ3OSwtNzMuODY3OTc1OTgwODEzMzRdLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiYmx1ZSIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogIiMzMTg2Y2MiLAogICJmaWxsT3BhY2l0eSI6IDAuNywKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDUsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKS5hZGRUbyhtYXBfNDJkMmZlMGUyNWZlNDBjMjhkMjI5ZDRlOTIwMDQ2MTcpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfMzBlMTkwNDk1MjI1NDM2MDg3Zjc0NmVkMzg2NDBjZTQgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfYmUxMTE3MWRjMDFiNGMyMTlhYWIxYWI3ZGMxNTkxMjQgPSAkKCc8ZGl2IGlkPSJodG1sX2JlMTExNzFkYzAxYjRjMjE5YWFiMWFiN2RjMTU5MTI0IiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij5DaXR5IExpbmU8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzMwZTE5MDQ5NTIyNTQzNjA4N2Y3NDZlZDM4NjQwY2U0LnNldENvbnRlbnQoaHRtbF9iZTExMTcxZGMwMWI0YzIxOWFhYjFhYjdkYzE1OTEyNCk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl8xOWQ1NWZkOTU5OWY0YTVkOTY2ODFjOTA2NTQ4MDE3NS5iaW5kUG9wdXAocG9wdXBfMzBlMTkwNDk1MjI1NDM2MDg3Zjc0NmVkMzg2NDBjZTQpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfNDQzMDQzZmQzMzRjNDhjY2JlZTk2YTYxNDFlNzFkMTMgPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MC42MTUxNDk1NTA0NTMwOCwtNzMuODk4NTU2MzM2MzAzMTddLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiYmx1ZSIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogIiMzMTg2Y2MiLAogICJmaWxsT3BhY2l0eSI6IDAuNywKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDUsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKS5hZGRUbyhtYXBfNDJkMmZlMGUyNWZlNDBjMjhkMjI5ZDRlOTIwMDQ2MTcpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfMWZjMTk5Y2Y5NGI0NGRhOTlmNjdmMGJhZjhlOTcxNDcgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfYzUyMWVlYWQ4YjFmNDQyYmFiOWViOWVkODM4NGNkNDcgPSAkKCc8ZGl2IGlkPSJodG1sX2M1MjFlZWFkOGIxZjQ0MmJhYjllYjllZDgzODRjZDQ3IiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij5CZXJnZW4gQmVhY2g8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzFmYzE5OWNmOTRiNDRkYTk5ZjY3ZjBiYWY4ZTk3MTQ3LnNldENvbnRlbnQoaHRtbF9jNTIxZWVhZDhiMWY0NDJiYWI5ZWI5ZWQ4Mzg0Y2Q0Nyk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl80NDMwNDNmZDMzNGM0OGNjYmVlOTZhNjE0MWU3MWQxMy5iaW5kUG9wdXAocG9wdXBfMWZjMTk5Y2Y5NGI0NGRhOTlmNjdmMGJhZjhlOTcxNDcpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfODg4ZjBjOWY5YWEwNDEyZjllN2E0MGYyMGU5ODk0MzIgPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MC42MjU1OTU4OTg2OTg0MywtNzMuOTU3NTk1MjM0ODk4MzhdLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiYmx1ZSIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogIiMzMTg2Y2MiLAogICJmaWxsT3BhY2l0eSI6IDAuNywKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDUsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKS5hZGRUbyhtYXBfNDJkMmZlMGUyNWZlNDBjMjhkMjI5ZDRlOTIwMDQ2MTcpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfMTMxYTJmNDFkNmViNGU3NjhkNTBjNmE2NGYyY2RlYTcgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfYTc0ZDZkMjdjZjMyNGUzMDg2MGM3ZmU4NmY4ODg4NmEgPSAkKCc8ZGl2IGlkPSJodG1sX2E3NGQ2ZDI3Y2YzMjRlMzA4NjBjN2ZlODZmODg4ODZhIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij5NaWR3b29kPC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF8xMzFhMmY0MWQ2ZWI0ZTc2OGQ1MGM2YTY0ZjJjZGVhNy5zZXRDb250ZW50KGh0bWxfYTc0ZDZkMjdjZjMyNGUzMDg2MGM3ZmU4NmY4ODg4NmEpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIGNpcmNsZV9tYXJrZXJfODg4ZjBjOWY5YWEwNDEyZjllN2E0MGYyMGU5ODk0MzIuYmluZFBvcHVwKHBvcHVwXzEzMWEyZjQxZDZlYjRlNzY4ZDUwYzZhNjRmMmNkZWE3KTsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBjaXJjbGVfbWFya2VyXzNmYjdmZmQzN2NlYjQ1OWZhNzA0ZDczMTVkNWM0YjViID0gTC5jaXJjbGVNYXJrZXIoCiAgICAgICAgICAgICAgICBbNDAuNjQ3MDA4NjAzMTg1MTg1LC03My45NjI2MTMxNjcxNjA0OF0sCiAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICJibHVlIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiB0cnVlLAogICJmaWxsQ29sb3IiOiAiIzMxODZjYyIsCiAgImZpbGxPcGFjaXR5IjogMC43LAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAib3BhY2l0eSI6IDEuMCwKICAicmFkaXVzIjogNSwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9CiAgICAgICAgICAgICAgICApLmFkZFRvKG1hcF80MmQyZmUwZTI1ZmU0MGMyOGQyMjlkNGU5MjAwNDYxNyk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF8wZjkxOWNlZDhiNTQ0M2VlYjE2OWVmNWQyZmU2NzQ1NiA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF8zNDM1ODQ0ZGI4ZDA0OTgzODRlYjVhNTM0MTM2OTkzMiA9ICQoJzxkaXYgaWQ9Imh0bWxfMzQzNTg0NGRiOGQwNDk4Mzg0ZWI1YTUzNDEzNjk5MzIiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPlByb3NwZWN0IFBhcmsgU291dGg8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzBmOTE5Y2VkOGI1NDQzZWViMTY5ZWY1ZDJmZTY3NDU2LnNldENvbnRlbnQoaHRtbF8zNDM1ODQ0ZGI4ZDA0OTgzODRlYjVhNTM0MTM2OTkzMik7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl8zZmI3ZmZkMzdjZWI0NTlmYTcwNGQ3MzE1ZDVjNGI1Yi5iaW5kUG9wdXAocG9wdXBfMGY5MTljZWQ4YjU0NDNlZWIxNjllZjVkMmZlNjc0NTYpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfOTJlMTE4ZWIwNGQwNGFiZDg0ZGM5NThmNjdlN2NhNDMgPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MC42MjM4NDUyNDQ3ODQxOSwtNzMuOTE2MDc0ODM5NTEzMjRdLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiYmx1ZSIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogIiMzMTg2Y2MiLAogICJmaWxsT3BhY2l0eSI6IDAuNywKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDUsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKS5hZGRUbyhtYXBfNDJkMmZlMGUyNWZlNDBjMjhkMjI5ZDRlOTIwMDQ2MTcpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfN2YwZTExZWEyNGI3NGU5YmEzM2EyNWE5MTE3MjVhZDIgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfYTFmY2YyMThhODBkNDA5Y2FjM2ZjZjVjNmI1YWEzYjYgPSAkKCc8ZGl2IGlkPSJodG1sX2ExZmNmMjE4YTgwZDQwOWNhYzNmY2Y1YzZiNWFhM2I2IiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij5HZW9yZ2V0b3duPC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF83ZjBlMTFlYTI0Yjc0ZTliYTMzYTI1YTkxMTcyNWFkMi5zZXRDb250ZW50KGh0bWxfYTFmY2YyMThhODBkNDA5Y2FjM2ZjZjVjNmI1YWEzYjYpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIGNpcmNsZV9tYXJrZXJfOTJlMTE4ZWIwNGQwNGFiZDg0ZGM5NThmNjdlN2NhNDMuYmluZFBvcHVwKHBvcHVwXzdmMGUxMWVhMjRiNzRlOWJhMzNhMjVhOTExNzI1YWQyKTsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBjaXJjbGVfbWFya2VyXzVmMGI1MTNiMDk2YTQ3ZDFhZDljNmRhMjdmNDEyODdiID0gTC5jaXJjbGVNYXJrZXIoCiAgICAgICAgICAgICAgICBbNDAuNzA4NDkyNDEwNDE1NDgsLTczLjkzODg1ODE1MjY5MTk1XSwKICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogImJsdWUiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IHRydWUsCiAgImZpbGxDb2xvciI6ICIjMzE4NmNjIiwKICAiZmlsbE9wYWNpdHkiOiAwLjcsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJvcGFjaXR5IjogMS4wLAogICJyYWRpdXMiOiA1LAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAzCn0KICAgICAgICAgICAgICAgICkuYWRkVG8obWFwXzQyZDJmZTBlMjVmZTQwYzI4ZDIyOWQ0ZTkyMDA0NjE3KTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwXzUzMTNjNDkyZGUyODQ5NWE5ZWNmZDA3MWVkNjg5OTk5ID0gTC5wb3B1cCh7bWF4V2lkdGg6ICczMDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sXzQ4MDRhOGZjOGViODRlYzg5OGRhMTBhYmJjMTA1ZDU1ID0gJCgnPGRpdiBpZD0iaHRtbF80ODA0YThmYzhlYjg0ZWM4OThkYTEwYWJiYzEwNWQ1NSIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+RWFzdCBXaWxsaWFtc2J1cmc8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzUzMTNjNDkyZGUyODQ5NWE5ZWNmZDA3MWVkNjg5OTk5LnNldENvbnRlbnQoaHRtbF80ODA0YThmYzhlYjg0ZWM4OThkYTEwYWJiYzEwNWQ1NSk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl81ZjBiNTEzYjA5NmE0N2QxYWQ5YzZkYTI3ZjQxMjg3Yi5iaW5kUG9wdXAocG9wdXBfNTMxM2M0OTJkZTI4NDk1YTllY2ZkMDcxZWQ2ODk5OTkpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfMjFjM2FmZTFjYTk0NDE3NmFmY2FhODY0Mzk3N2Y2NGQgPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MC43MTQ4MjI5MDY1MzIwMTQsLTczLjk1ODgwODU3NTg3NTgyXSwKICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogImJsdWUiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IHRydWUsCiAgImZpbGxDb2xvciI6ICIjMzE4NmNjIiwKICAiZmlsbE9wYWNpdHkiOiAwLjcsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJvcGFjaXR5IjogMS4wLAogICJyYWRpdXMiOiA1LAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAzCn0KICAgICAgICAgICAgICAgICkuYWRkVG8obWFwXzQyZDJmZTBlMjVmZTQwYzI4ZDIyOWQ0ZTkyMDA0NjE3KTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwX2MyOWY0MWNhZTRjZTRmOTZhN2M5NzIzZTk1NjI5MTkwID0gTC5wb3B1cCh7bWF4V2lkdGg6ICczMDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sX2IzMTYyZjMzZDgzYzRmODhiM2EwYWU3ZTlmNjdmZjkxID0gJCgnPGRpdiBpZD0iaHRtbF9iMzE2MmYzM2Q4M2M0Zjg4YjNhMGFlN2U5ZjY3ZmY5MSIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+Tm9ydGggU2lkZTwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfYzI5ZjQxY2FlNGNlNGY5NmE3Yzk3MjNlOTU2MjkxOTAuc2V0Q29udGVudChodG1sX2IzMTYyZjMzZDgzYzRmODhiM2EwYWU3ZTlmNjdmZjkxKTsKICAgICAgICAgICAgCgogICAgICAgICAgICBjaXJjbGVfbWFya2VyXzIxYzNhZmUxY2E5NDQxNzZhZmNhYTg2NDM5NzdmNjRkLmJpbmRQb3B1cChwb3B1cF9jMjlmNDFjYWU0Y2U0Zjk2YTdjOTcyM2U5NTYyOTE5MCk7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgY2lyY2xlX21hcmtlcl9lOTIzZTA2OTZkMTY0Y2VjOGU0ZGU4MmRkNTZiODlhYiA9IEwuY2lyY2xlTWFya2VyKAogICAgICAgICAgICAgICAgWzQwLjcxMDg2MTQ3MjY1MDY0LC03My45NTgwMDA5NTE1MzMzMV0sCiAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICJibHVlIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiB0cnVlLAogICJmaWxsQ29sb3IiOiAiIzMxODZjYyIsCiAgImZpbGxPcGFjaXR5IjogMC43LAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAib3BhY2l0eSI6IDEuMCwKICAicmFkaXVzIjogNSwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9CiAgICAgICAgICAgICAgICApLmFkZFRvKG1hcF80MmQyZmUwZTI1ZmU0MGMyOGQyMjlkNGU5MjAwNDYxNyk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF9kYWMxZWRlMTlhMWQ0ZWY5ODRmM2M4Y2U4MzI3MDE3NyA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF9kZGQyNGJhMDlmMmQ0NjgyODc5NmNiOGQyOTNkZmI3NyA9ICQoJzxkaXYgaWQ9Imh0bWxfZGRkMjRiYTA5ZjJkNDY4Mjg3OTZjYjhkMjkzZGZiNzciIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPlNvdXRoIFNpZGU8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwX2RhYzFlZGUxOWExZDRlZjk4NGYzYzhjZTgzMjcwMTc3LnNldENvbnRlbnQoaHRtbF9kZGQyNGJhMDlmMmQ0NjgyODc5NmNiOGQyOTNkZmI3Nyk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl9lOTIzZTA2OTZkMTY0Y2VjOGU0ZGU4MmRkNTZiODlhYi5iaW5kUG9wdXAocG9wdXBfZGFjMWVkZTE5YTFkNGVmOTg0ZjNjOGNlODMyNzAxNzcpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfMjAwZWQ0ODQzNGVjNDAwNzllNGQ0YzlhZDVhNzQzZTIgPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MC42MTMwNTk3NjY2Nzk0MiwtNzMuOTY4MzY2NzgwMzU1NDFdLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiYmx1ZSIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogIiMzMTg2Y2MiLAogICJmaWxsT3BhY2l0eSI6IDAuNywKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDUsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKS5hZGRUbyhtYXBfNDJkMmZlMGUyNWZlNDBjMjhkMjI5ZDRlOTIwMDQ2MTcpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfNDZkNWE0ZjkxZmFhNDM2OTg0MDNmMTVkYzUyYzI1NTIgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfMTU0MjQzYTkyYzg4NGY5ZmI4MTc2Njg0NzNlZDUzODIgPSAkKCc8ZGl2IGlkPSJodG1sXzE1NDI0M2E5MmM4ODRmOWZiODE3NjY4NDczZWQ1MzgyIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij5PY2VhbiBQYXJrd2F5PC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF80NmQ1YTRmOTFmYWE0MzY5ODQwM2YxNWRjNTJjMjU1Mi5zZXRDb250ZW50KGh0bWxfMTU0MjQzYTkyYzg4NGY5ZmI4MTc2Njg0NzNlZDUzODIpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIGNpcmNsZV9tYXJrZXJfMjAwZWQ0ODQzNGVjNDAwNzllNGQ0YzlhZDVhNzQzZTIuYmluZFBvcHVwKHBvcHVwXzQ2ZDVhNGY5MWZhYTQzNjk4NDAzZjE1ZGM1MmMyNTUyKTsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBjaXJjbGVfbWFya2VyXzg4ZjE5YzJjNTE3YzQzMjk5MWQ1MTkyOTVkYjkyOTNiID0gTC5jaXJjbGVNYXJrZXIoCiAgICAgICAgICAgICAgICBbNDAuNjE0NzY4MTI2OTQyMjYsLTc0LjAzMTk3OTE0NTM3OTg0XSwKICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogImJsdWUiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IHRydWUsCiAgImZpbGxDb2xvciI6ICIjMzE4NmNjIiwKICAiZmlsbE9wYWNpdHkiOiAwLjcsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJvcGFjaXR5IjogMS4wLAogICJyYWRpdXMiOiA1LAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAzCn0KICAgICAgICAgICAgICAgICkuYWRkVG8obWFwXzQyZDJmZTBlMjVmZTQwYzI4ZDIyOWQ0ZTkyMDA0NjE3KTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwXzJhYjE5Y2Y1NGMyNTRjZDVhZGQ4NzBiZTVmZjRmY2M3ID0gTC5wb3B1cCh7bWF4V2lkdGg6ICczMDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sXzMzOGU2ZjY0ZDFmYTQxZTNiOWM5ZDQ1NjJhMTE1NTBhID0gJCgnPGRpdiBpZD0iaHRtbF8zMzhlNmY2NGQxZmE0MWUzYjljOWQ0NTYyYTExNTUwYSIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+Rm9ydCBIYW1pbHRvbjwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfMmFiMTljZjU0YzI1NGNkNWFkZDg3MGJlNWZmNGZjYzcuc2V0Q29udGVudChodG1sXzMzOGU2ZjY0ZDFmYTQxZTNiOWM5ZDQ1NjJhMTE1NTBhKTsKICAgICAgICAgICAgCgogICAgICAgICAgICBjaXJjbGVfbWFya2VyXzg4ZjE5YzJjNTE3YzQzMjk5MWQ1MTkyOTVkYjkyOTNiLmJpbmRQb3B1cChwb3B1cF8yYWIxOWNmNTRjMjU0Y2Q1YWRkODcwYmU1ZmY0ZmNjNyk7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgY2lyY2xlX21hcmtlcl85ZTI2ZjkzNTVjMzY0Nzg1OWNjMmIzMmU4NGJkMTdjYSA9IEwuY2lyY2xlTWFya2VyKAogICAgICAgICAgICAgICAgWzQwLjY0MzY3NTE4MzM0MDk3NCwtNzMuOTYxMDEzMTI0NjY3NzldLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiYmx1ZSIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogIiMzMTg2Y2MiLAogICJmaWxsT3BhY2l0eSI6IDAuNywKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDUsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKS5hZGRUbyhtYXBfNDJkMmZlMGUyNWZlNDBjMjhkMjI5ZDRlOTIwMDQ2MTcpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfMmE4MTkyYzEwNzFhNDg0MTg1MDM0N2JjN2Q4OGE1ZWUgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfNTBhMjI1NDZhOTMwNDBmZGJhZGYxNDcxMTc3ZTAyYmQgPSAkKCc8ZGl2IGlkPSJodG1sXzUwYTIyNTQ2YTkzMDQwZmRiYWRmMTQ3MTE3N2UwMmJkIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij5EaXRtYXMgUGFyazwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfMmE4MTkyYzEwNzFhNDg0MTg1MDM0N2JjN2Q4OGE1ZWUuc2V0Q29udGVudChodG1sXzUwYTIyNTQ2YTkzMDQwZmRiYWRmMTQ3MTE3N2UwMmJkKTsKICAgICAgICAgICAgCgogICAgICAgICAgICBjaXJjbGVfbWFya2VyXzllMjZmOTM1NWMzNjQ3ODU5Y2MyYjMyZTg0YmQxN2NhLmJpbmRQb3B1cChwb3B1cF8yYTgxOTJjMTA3MWE0ODQxODUwMzQ3YmM3ZDg4YTVlZSk7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgY2lyY2xlX21hcmtlcl9mZWQ4N2NkNTQyNDc0OTkzYjY4MGM5Mzk4NDA3ODIxOSA9IEwuY2lyY2xlTWFya2VyKAogICAgICAgICAgICAgICAgWzQwLjY2MDk0NjU2MTg4MTExLC03My45MzcxODY4MDU1OTMxNF0sCiAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICJibHVlIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiB0cnVlLAogICJmaWxsQ29sb3IiOiAiIzMxODZjYyIsCiAgImZpbGxPcGFjaXR5IjogMC43LAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAib3BhY2l0eSI6IDEuMCwKICAicmFkaXVzIjogNSwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9CiAgICAgICAgICAgICAgICApLmFkZFRvKG1hcF80MmQyZmUwZTI1ZmU0MGMyOGQyMjlkNGU5MjAwNDYxNyk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF85Zjk3ODU2Y2Q3ZWU0NWMzYjVkZjMyNzJmZTY4MTNiNSA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF9mZjYyZTg0ZmVkY2U0ZWFjYWM4NzhmN2M2NWNiYmM3ZSA9ICQoJzxkaXYgaWQ9Imh0bWxfZmY2MmU4NGZlZGNlNGVhY2FjODc4ZjdjNjVjYmJjN2UiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPldpbmdhdGU8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzlmOTc4NTZjZDdlZTQ1YzNiNWRmMzI3MmZlNjgxM2I1LnNldENvbnRlbnQoaHRtbF9mZjYyZTg0ZmVkY2U0ZWFjYWM4NzhmN2M2NWNiYmM3ZSk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl9mZWQ4N2NkNTQyNDc0OTkzYjY4MGM5Mzk4NDA3ODIxOS5iaW5kUG9wdXAocG9wdXBfOWY5Nzg1NmNkN2VlNDVjM2I1ZGYzMjcyZmU2ODEzYjUpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfZjEyNTM5MDUwMTc2NDU0YTkzNzEwNDZkNjBjMmUzMDUgPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MC42NTU1NzIzMTMyODA3NjQsLTczLjkyNjg4MjEyNjE2OTU1XSwKICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogImJsdWUiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IHRydWUsCiAgImZpbGxDb2xvciI6ICIjMzE4NmNjIiwKICAiZmlsbE9wYWNpdHkiOiAwLjcsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJvcGFjaXR5IjogMS4wLAogICJyYWRpdXMiOiA1LAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAzCn0KICAgICAgICAgICAgICAgICkuYWRkVG8obWFwXzQyZDJmZTBlMjVmZTQwYzI4ZDIyOWQ0ZTkyMDA0NjE3KTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwX2EzZWNkZDYxNThjZjRkZTViODkyMWE2OTg2ODJhMTllID0gTC5wb3B1cCh7bWF4V2lkdGg6ICczMDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sXzZiY2ZmYzRkZmRmODRhNWVhNWRhYTJlNjk4OTg3OGFiID0gJCgnPGRpdiBpZD0iaHRtbF82YmNmZmM0ZGZkZjg0YTVlYTVkYWEyZTY5ODk4NzhhYiIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+UnVnYnk8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwX2EzZWNkZDYxNThjZjRkZTViODkyMWE2OTg2ODJhMTllLnNldENvbnRlbnQoaHRtbF82YmNmZmM0ZGZkZjg0YTVlYTVkYWEyZTY5ODk4NzhhYik7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl9mMTI1MzkwNTAxNzY0NTRhOTM3MTA0NmQ2MGMyZTMwNS5iaW5kUG9wdXAocG9wdXBfYTNlY2RkNjE1OGNmNGRlNWI4OTIxYTY5ODY4MmExOWUpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfMmI5YzQ5ZDY3OTQ5NGJiMTgzYzI1ZDgwYjJhZDhiN2QgPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MC42NTIxMTc0NTE3OTM0OTQsLTczLjkxNjY1MzMxOTc4MDQ4XSwKICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogImJsdWUiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IHRydWUsCiAgImZpbGxDb2xvciI6ICIjMzE4NmNjIiwKICAiZmlsbE9wYWNpdHkiOiAwLjcsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJvcGFjaXR5IjogMS4wLAogICJyYWRpdXMiOiA1LAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAzCn0KICAgICAgICAgICAgICAgICkuYWRkVG8obWFwXzQyZDJmZTBlMjVmZTQwYzI4ZDIyOWQ0ZTkyMDA0NjE3KTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwX2NmZTc1M2I4MjAzYzQ4MjA5OTM0OTU3YTE5NjVlOTUzID0gTC5wb3B1cCh7bWF4V2lkdGg6ICczMDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sXzI3MjI2OWUwOWRhMDQ0MTI5MDYyMWQzNTZjYjVhZTY4ID0gJCgnPGRpdiBpZD0iaHRtbF8yNzIyNjllMDlkYTA0NDEyOTA2MjFkMzU2Y2I1YWU2OCIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+UmVtc2VuIFZpbGxhZ2U8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwX2NmZTc1M2I4MjAzYzQ4MjA5OTM0OTU3YTE5NjVlOTUzLnNldENvbnRlbnQoaHRtbF8yNzIyNjllMDlkYTA0NDEyOTA2MjFkMzU2Y2I1YWU2OCk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl8yYjljNDlkNjc5NDk0YmIxODNjMjVkODBiMmFkOGI3ZC5iaW5kUG9wdXAocG9wdXBfY2ZlNzUzYjgyMDNjNDgyMDk5MzQ5NTdhMTk2NWU5NTMpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfMmQ1YjM2ODRmNWQ1NGU0MThmYTZlNzI3MmU4MGMzNmQgPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MC42NjI3NDQyNzk2OTY2LC03My44ODUxMTc3NjM3OTI5Ml0sCiAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICJibHVlIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiB0cnVlLAogICJmaWxsQ29sb3IiOiAiIzMxODZjYyIsCiAgImZpbGxPcGFjaXR5IjogMC43LAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAib3BhY2l0eSI6IDEuMCwKICAicmFkaXVzIjogNSwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9CiAgICAgICAgICAgICAgICApLmFkZFRvKG1hcF80MmQyZmUwZTI1ZmU0MGMyOGQyMjlkNGU5MjAwNDYxNyk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF8xZWFhMWIzNzNiYTc0ZjQ3YjllMzQ2MDY4NTRmYTQ3YiA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF81MmZkNzgzMmExZTI0NmU3ODAwYzg1MWUzNjk2YmJiNiA9ICQoJzxkaXYgaWQ9Imh0bWxfNTJmZDc4MzJhMWUyNDZlNzgwMGM4NTFlMzY5NmJiYjYiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPk5ldyBMb3RzPC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF8xZWFhMWIzNzNiYTc0ZjQ3YjllMzQ2MDY4NTRmYTQ3Yi5zZXRDb250ZW50KGh0bWxfNTJmZDc4MzJhMWUyNDZlNzgwMGM4NTFlMzY5NmJiYjYpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIGNpcmNsZV9tYXJrZXJfMmQ1YjM2ODRmNWQ1NGU0MThmYTZlNzI3MmU4MGMzNmQuYmluZFBvcHVwKHBvcHVwXzFlYWExYjM3M2JhNzRmNDdiOWUzNDYwNjg1NGZhNDdiKTsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBjaXJjbGVfbWFya2VyXzc3MjFjYjg4ZGUzMjQ5NmZiNGVlZTY1MDRlNTAyOWJlID0gTC5jaXJjbGVNYXJrZXIoCiAgICAgICAgICAgICAgICBbNDAuNjMxMzE3NTUwMzk2NjcsLTczLjkwMjMzNDc0Mjk1ODM2XSwKICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogImJsdWUiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IHRydWUsCiAgImZpbGxDb2xvciI6ICIjMzE4NmNjIiwKICAiZmlsbE9wYWNpdHkiOiAwLjcsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJvcGFjaXR5IjogMS4wLAogICJyYWRpdXMiOiA1LAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAzCn0KICAgICAgICAgICAgICAgICkuYWRkVG8obWFwXzQyZDJmZTBlMjVmZTQwYzI4ZDIyOWQ0ZTkyMDA0NjE3KTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwXzE0ODk1NDQ4YzYxZDQwYTFiNDc1NTQ2YmI4Mjg3YTBjID0gTC5wb3B1cCh7bWF4V2lkdGg6ICczMDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sX2U4MTdmYTlhNzE3YTQzOWM4MGFmYjMwYzgxMGY1M2MyID0gJCgnPGRpdiBpZD0iaHRtbF9lODE3ZmE5YTcxN2E0MzljODBhZmIzMGM4MTBmNTNjMiIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+UGFlcmRlZ2F0IEJhc2luPC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF8xNDg5NTQ0OGM2MWQ0MGExYjQ3NTU0NmJiODI4N2EwYy5zZXRDb250ZW50KGh0bWxfZTgxN2ZhOWE3MTdhNDM5YzgwYWZiMzBjODEwZjUzYzIpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIGNpcmNsZV9tYXJrZXJfNzcyMWNiODhkZTMyNDk2ZmI0ZWVlNjUwNGU1MDI5YmUuYmluZFBvcHVwKHBvcHVwXzE0ODk1NDQ4YzYxZDQwYTFiNDc1NTQ2YmI4Mjg3YTBjKTsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBjaXJjbGVfbWFya2VyXzk0ZWE3Mzg1ZDE0ODQxZGZiN2QxZjk2Y2QwOGZlNDNiID0gTC5jaXJjbGVNYXJrZXIoCiAgICAgICAgICAgICAgICBbNDAuNjE1OTc0MjM5NjIzMzYsLTczLjkxNTE1MzkxNTUwNDA0XSwKICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogImJsdWUiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IHRydWUsCiAgImZpbGxDb2xvciI6ICIjMzE4NmNjIiwKICAiZmlsbE9wYWNpdHkiOiAwLjcsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJvcGFjaXR5IjogMS4wLAogICJyYWRpdXMiOiA1LAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAzCn0KICAgICAgICAgICAgICAgICkuYWRkVG8obWFwXzQyZDJmZTBlMjVmZTQwYzI4ZDIyOWQ0ZTkyMDA0NjE3KTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwXzk5OWQ5MzQ4NDQwZDRjN2I5YTIxNDc4Zjc1YWJjZjZiID0gTC5wb3B1cCh7bWF4V2lkdGg6ICczMDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sXzZhZTg3MDI0MmJmNzRiN2U5N2Q2M2Y3NmFlZTYwZThjID0gJCgnPGRpdiBpZD0iaHRtbF82YWU4NzAyNDJiZjc0YjdlOTdkNjNmNzZhZWU2MGU4YyIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+TWlsbCBCYXNpbjwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfOTk5ZDkzNDg0NDBkNGM3YjlhMjE0NzhmNzVhYmNmNmIuc2V0Q29udGVudChodG1sXzZhZTg3MDI0MmJmNzRiN2U5N2Q2M2Y3NmFlZTYwZThjKTsKICAgICAgICAgICAgCgogICAgICAgICAgICBjaXJjbGVfbWFya2VyXzk0ZWE3Mzg1ZDE0ODQxZGZiN2QxZjk2Y2QwOGZlNDNiLmJpbmRQb3B1cChwb3B1cF85OTlkOTM0ODQ0MGQ0YzdiOWEyMTQ3OGY3NWFiY2Y2Yik7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgY2lyY2xlX21hcmtlcl8zNjdjMDliMWUwZTM0M2QzYTZhMmZiMTI4Mjg5ODc4ZSA9IEwuY2lyY2xlTWFya2VyKAogICAgICAgICAgICAgICAgWzQwLjcwMzI4MTA5MDkzMDE0LC03My45OTU1MDc1MTg4ODQxNV0sCiAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICJibHVlIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiB0cnVlLAogICJmaWxsQ29sb3IiOiAiIzMxODZjYyIsCiAgImZpbGxPcGFjaXR5IjogMC43LAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAib3BhY2l0eSI6IDEuMCwKICAicmFkaXVzIjogNSwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9CiAgICAgICAgICAgICAgICApLmFkZFRvKG1hcF80MmQyZmUwZTI1ZmU0MGMyOGQyMjlkNGU5MjAwNDYxNyk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF85N2Y4MmVhYWVlNjI0MmU4ODk4N2Y4NTljZjcyZjIxZCA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF84ZTUxMGM2NDkwZTk0ODU1ODViNjNlMDIzNDZjMDE1ZCA9ICQoJzxkaXYgaWQ9Imh0bWxfOGU1MTBjNjQ5MGU5NDg1NTg1YjYzZTAyMzQ2YzAxNWQiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPkZ1bHRvbiBGZXJyeTwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfOTdmODJlYWFlZTYyNDJlODg5ODdmODU5Y2Y3MmYyMWQuc2V0Q29udGVudChodG1sXzhlNTEwYzY0OTBlOTQ4NTU4NWI2M2UwMjM0NmMwMTVkKTsKICAgICAgICAgICAgCgogICAgICAgICAgICBjaXJjbGVfbWFya2VyXzM2N2MwOWIxZTBlMzQzZDNhNmEyZmIxMjgyODk4NzhlLmJpbmRQb3B1cChwb3B1cF85N2Y4MmVhYWVlNjI0MmU4ODk4N2Y4NTljZjcyZjIxZCk7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgY2lyY2xlX21hcmtlcl8yNzlhMjU3ODhiNjQ0MzRhOWMzZmNlZGZlN2MyODBlYiA9IEwuY2lyY2xlTWFya2VyKAogICAgICAgICAgICAgICAgWzQwLjcwMzMyMTQ5ODgyODc0LC03My45ODExMTYwMzU5MjM5M10sCiAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICJibHVlIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiB0cnVlLAogICJmaWxsQ29sb3IiOiAiIzMxODZjYyIsCiAgImZpbGxPcGFjaXR5IjogMC43LAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAib3BhY2l0eSI6IDEuMCwKICAicmFkaXVzIjogNSwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9CiAgICAgICAgICAgICAgICApLmFkZFRvKG1hcF80MmQyZmUwZTI1ZmU0MGMyOGQyMjlkNGU5MjAwNDYxNyk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF8yNjZmZmY4Mjk1YjQ0NGM3YmZjZTVlZDE3NTNjNDIxZSA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF9kYjI5NjMzMTdhNzM0NDMzYTg0ZGM2YTk1ZDIwODVmNyA9ICQoJzxkaXYgaWQ9Imh0bWxfZGIyOTYzMzE3YTczNDQzM2E4NGRjNmE5NWQyMDg1ZjciIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPlZpbmVnYXIgSGlsbDwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfMjY2ZmZmODI5NWI0NDRjN2JmY2U1ZWQxNzUzYzQyMWUuc2V0Q29udGVudChodG1sX2RiMjk2MzMxN2E3MzQ0MzNhODRkYzZhOTVkMjA4NWY3KTsKICAgICAgICAgICAgCgogICAgICAgICAgICBjaXJjbGVfbWFya2VyXzI3OWEyNTc4OGI2NDQzNGE5YzNmY2VkZmU3YzI4MGViLmJpbmRQb3B1cChwb3B1cF8yNjZmZmY4Mjk1YjQ0NGM3YmZjZTVlZDE3NTNjNDIxZSk7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgY2lyY2xlX21hcmtlcl8xOWMxNjNlOWY2ZjA0ZDNiYWJjZTY3NTBlNDgxMjlhNCA9IEwuY2lyY2xlTWFya2VyKAogICAgICAgICAgICAgICAgWzQwLjY3NTAzOTg2NTAzMjM3LC03My45MzA1MzEwODgxNzMzOF0sCiAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICJibHVlIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiB0cnVlLAogICJmaWxsQ29sb3IiOiAiIzMxODZjYyIsCiAgImZpbGxPcGFjaXR5IjogMC43LAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAib3BhY2l0eSI6IDEuMCwKICAicmFkaXVzIjogNSwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9CiAgICAgICAgICAgICAgICApLmFkZFRvKG1hcF80MmQyZmUwZTI1ZmU0MGMyOGQyMjlkNGU5MjAwNDYxNyk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF9kNDdkNTkyNWE1NGM0MjExYWEyNzRmYjdkYzNiZmUxMyA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF9kODNiZGRlMjlkYTA0NGFiODI2MjdmOGVlZWE1NWRiZCA9ICQoJzxkaXYgaWQ9Imh0bWxfZDgzYmRkZTI5ZGEwNDRhYjgyNjI3ZjhlZWVhNTVkYmQiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPldlZWtzdmlsbGU8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwX2Q0N2Q1OTI1YTU0YzQyMTFhYTI3NGZiN2RjM2JmZTEzLnNldENvbnRlbnQoaHRtbF9kODNiZGRlMjlkYTA0NGFiODI2MjdmOGVlZWE1NWRiZCk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl8xOWMxNjNlOWY2ZjA0ZDNiYWJjZTY3NTBlNDgxMjlhNC5iaW5kUG9wdXAocG9wdXBfZDQ3ZDU5MjVhNTRjNDIxMWFhMjc0ZmI3ZGMzYmZlMTMpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfYmNlZjFiZTZlMGZkNGE1Mjk0YzVlMjEwNWYyZjc4MjggPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MC42Nzc4NjEwNDc2OTUzMSwtNzMuOTAzMzE2ODQ4NTI1OTldLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiYmx1ZSIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogIiMzMTg2Y2MiLAogICJmaWxsT3BhY2l0eSI6IDAuNywKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDUsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKS5hZGRUbyhtYXBfNDJkMmZlMGUyNWZlNDBjMjhkMjI5ZDRlOTIwMDQ2MTcpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfODVkYjM4MDA4MjQyNDJkNGI1ZGE1ZjNjY2UxM2E0NDIgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfOTY5NzVkZThlODc2NGRiNzg3OTJiNGY4MTdlODZiYTcgPSAkKCc8ZGl2IGlkPSJodG1sXzk2OTc1ZGU4ZTg3NjRkYjc4NzkyYjRmODE3ZTg2YmE3IiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij5Ccm9hZHdheSBKdW5jdGlvbjwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfODVkYjM4MDA4MjQyNDJkNGI1ZGE1ZjNjY2UxM2E0NDIuc2V0Q29udGVudChodG1sXzk2OTc1ZGU4ZTg3NjRkYjc4NzkyYjRmODE3ZTg2YmE3KTsKICAgICAgICAgICAgCgogICAgICAgICAgICBjaXJjbGVfbWFya2VyX2JjZWYxYmU2ZTBmZDRhNTI5NGM1ZTIxMDVmMmY3ODI4LmJpbmRQb3B1cChwb3B1cF84NWRiMzgwMDgyNDI0MmQ0YjVkYTVmM2NjZTEzYTQ0Mik7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgY2lyY2xlX21hcmtlcl9lNDJhMWFmMTAxZjk0MDE4YjE5MzAwZmU1Y2Y3ODQ2ZSA9IEwuY2lyY2xlTWFya2VyKAogICAgICAgICAgICAgICAgWzQwLjcwMzE3NjMyODIyNjkyLC03My45ODg3NTI4MDc0NTA0XSwKICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogImJsdWUiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IHRydWUsCiAgImZpbGxDb2xvciI6ICIjMzE4NmNjIiwKICAiZmlsbE9wYWNpdHkiOiAwLjcsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJvcGFjaXR5IjogMS4wLAogICJyYWRpdXMiOiA1LAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAzCn0KICAgICAgICAgICAgICAgICkuYWRkVG8obWFwXzQyZDJmZTBlMjVmZTQwYzI4ZDIyOWQ0ZTkyMDA0NjE3KTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwXzZjNTUzMGY3ZDc0MDQ0ODhhZmJkMDVmODE3NjAwMTlkID0gTC5wb3B1cCh7bWF4V2lkdGg6ICczMDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sXzQ1NDM1ZGU2NmQxMjQ1MDI5ODY4YmFiY2Q5YzZjYjY3ID0gJCgnPGRpdiBpZD0iaHRtbF80NTQzNWRlNjZkMTI0NTAyOTg2OGJhYmNkOWM2Y2I2NyIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+RHVtYm88L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzZjNTUzMGY3ZDc0MDQ0ODhhZmJkMDVmODE3NjAwMTlkLnNldENvbnRlbnQoaHRtbF80NTQzNWRlNjZkMTI0NTAyOTg2OGJhYmNkOWM2Y2I2Nyk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl9lNDJhMWFmMTAxZjk0MDE4YjE5MzAwZmU1Y2Y3ODQ2ZS5iaW5kUG9wdXAocG9wdXBfNmM1NTMwZjdkNzQwNDQ4OGFmYmQwNWY4MTc2MDAxOWQpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfYWViMzAxZGY2YTBlNDYyZmI4NGRmYTZiZTRmZmU2NGMgPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MC41OTg1MjUwOTUxMzcyNTUsLTczLjk1OTE4NDU5NDI4NzAyXSwKICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogImJsdWUiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IHRydWUsCiAgImZpbGxDb2xvciI6ICIjMzE4NmNjIiwKICAiZmlsbE9wYWNpdHkiOiAwLjcsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJvcGFjaXR5IjogMS4wLAogICJyYWRpdXMiOiA1LAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAzCn0KICAgICAgICAgICAgICAgICkuYWRkVG8obWFwXzQyZDJmZTBlMjVmZTQwYzI4ZDIyOWQ0ZTkyMDA0NjE3KTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwXzBkYTRjOGJkN2M2NjRjMjg4NWRhYjQxZDg4OGEzNWMwID0gTC5wb3B1cCh7bWF4V2lkdGg6ICczMDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sX2RiOWQ5OTYwMDJlZTQ4YzBhYWMyMTI4NzY4ZjY3ZWY4ID0gJCgnPGRpdiBpZD0iaHRtbF9kYjlkOTk2MDAyZWU0OGMwYWFjMjEyODc2OGY2N2VmOCIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+SG9tZWNyZXN0PC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF8wZGE0YzhiZDdjNjY0YzI4ODVkYWI0MWQ4ODhhMzVjMC5zZXRDb250ZW50KGh0bWxfZGI5ZDk5NjAwMmVlNDhjMGFhYzIxMjg3NjhmNjdlZjgpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIGNpcmNsZV9tYXJrZXJfYWViMzAxZGY2YTBlNDYyZmI4NGRmYTZiZTRmZmU2NGMuYmluZFBvcHVwKHBvcHVwXzBkYTRjOGJkN2M2NjRjMjg4NWRhYjQxZDg4OGEzNWMwKTsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBjaXJjbGVfbWFya2VyX2JlNDAxNGY4ZDE1YzQxOTRhZDhjOGU4YmM4ZGY2MDA5ID0gTC5jaXJjbGVNYXJrZXIoCiAgICAgICAgICAgICAgICBbNDAuNjgxOTk4OTM0NTE3MywtNzMuODkwMzQ1NzA5ODcyXSwKICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogImJsdWUiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IHRydWUsCiAgImZpbGxDb2xvciI6ICIjMzE4NmNjIiwKICAiZmlsbE9wYWNpdHkiOiAwLjcsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJvcGFjaXR5IjogMS4wLAogICJyYWRpdXMiOiA1LAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAzCn0KICAgICAgICAgICAgICAgICkuYWRkVG8obWFwXzQyZDJmZTBlMjVmZTQwYzI4ZDIyOWQ0ZTkyMDA0NjE3KTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwXzg0MTdlNjE5ODQ3ZDRmODdhZmQwZTk2Nzc1MGJhN2EzID0gTC5wb3B1cCh7bWF4V2lkdGg6ICczMDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sXzY3OTdhNGRmOGJiNTQwMDY4ODUzNDUwMzEwNjY5YjMzID0gJCgnPGRpdiBpZD0iaHRtbF82Nzk3YTRkZjhiYjU0MDA2ODg1MzQ1MDMxMDY2OWIzMyIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+SGlnaGxhbmQgUGFyazwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfODQxN2U2MTk4NDdkNGY4N2FmZDBlOTY3NzUwYmE3YTMuc2V0Q29udGVudChodG1sXzY3OTdhNGRmOGJiNTQwMDY4ODUzNDUwMzEwNjY5YjMzKTsKICAgICAgICAgICAgCgogICAgICAgICAgICBjaXJjbGVfbWFya2VyX2JlNDAxNGY4ZDE1YzQxOTRhZDhjOGU4YmM4ZGY2MDA5LmJpbmRQb3B1cChwb3B1cF84NDE3ZTYxOTg0N2Q0Zjg3YWZkMGU5Njc3NTBiYTdhMyk7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgY2lyY2xlX21hcmtlcl81MGJjMGQwOTVmZTQ0MjNkOGM5ZWYzNzJkMmZlZjAyMiA9IEwuY2lyY2xlTWFya2VyKAogICAgICAgICAgICAgICAgWzQwLjYwOTM3NzcwMTEzNzY2LC03My45NDg0MTUxNTMyODg5M10sCiAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICJibHVlIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiB0cnVlLAogICJmaWxsQ29sb3IiOiAiIzMxODZjYyIsCiAgImZpbGxPcGFjaXR5IjogMC43LAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAib3BhY2l0eSI6IDEuMCwKICAicmFkaXVzIjogNSwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9CiAgICAgICAgICAgICAgICApLmFkZFRvKG1hcF80MmQyZmUwZTI1ZmU0MGMyOGQyMjlkNGU5MjAwNDYxNyk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF81NTQwMjM3MzBkMjA0M2M5YWFjMzVkZDJhYjdjYzg3MSA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF9iMmYzMmE4MzQ2YTg0MTU4YTBlNjU3OTEwYjY5OTU0YyA9ICQoJzxkaXYgaWQ9Imh0bWxfYjJmMzJhODM0NmE4NDE1OGEwZTY1NzkxMGI2OTk1NGMiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPk1hZGlzb248L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzU1NDAyMzczMGQyMDQzYzlhYWMzNWRkMmFiN2NjODcxLnNldENvbnRlbnQoaHRtbF9iMmYzMmE4MzQ2YTg0MTU4YTBlNjU3OTEwYjY5OTU0Yyk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl81MGJjMGQwOTVmZTQ0MjNkOGM5ZWYzNzJkMmZlZjAyMi5iaW5kUG9wdXAocG9wdXBfNTU0MDIzNzMwZDIwNDNjOWFhYzM1ZGQyYWI3Y2M4NzEpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfYzUyYTg3ODExMjY2NDAwNjg3ZTRkYjkyMDAxZjY1Y2UgPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MC42NDY5MjYwNjY1ODU3OSwtNzMuOTQ4MTc3MDk5MjAxODRdLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiYmx1ZSIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogIiMzMTg2Y2MiLAogICJmaWxsT3BhY2l0eSI6IDAuNywKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDUsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKS5hZGRUbyhtYXBfNDJkMmZlMGUyNWZlNDBjMjhkMjI5ZDRlOTIwMDQ2MTcpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfNDM0MWU0MjNjODI3NDM0N2E2MjJmM2I4YWRhY2VhNGIgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfNmRkZDdmNjAyYzMxNDlkZDg5NDczNjViMzJlYjQ5NWYgPSAkKCc8ZGl2IGlkPSJodG1sXzZkZGQ3ZjYwMmMzMTQ5ZGQ4OTQ3MzY1YjMyZWI0OTVmIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij5FcmFzbXVzPC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF80MzQxZTQyM2M4Mjc0MzQ3YTYyMmYzYjhhZGFjZWE0Yi5zZXRDb250ZW50KGh0bWxfNmRkZDdmNjAyYzMxNDlkZDg5NDczNjViMzJlYjQ5NWYpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIGNpcmNsZV9tYXJrZXJfYzUyYTg3ODExMjY2NDAwNjg3ZTRkYjkyMDAxZjY1Y2UuYmluZFBvcHVwKHBvcHVwXzQzNDFlNDIzYzgyNzQzNDdhNjIyZjNiOGFkYWNlYTRiKTsKCiAgICAgICAgICAgIAogICAgICAgIAo8L3NjcmlwdD4=\" style=\"position:absolute;width:100%;height:100%;left:0;top:0;border:none !important;\" allowfullscreen webkitallowfullscreen mozallowfullscreen></iframe></div></div>" | |
], | |
"text/plain": [ | |
"<folium.folium.Map at 0x7f0d4dbd7a90>" | |
] | |
}, | |
"execution_count": 19, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"# create map of Manhattan using latitude and longitude values \n", | |
"print_map (brooklyn_data, zoom=10) \n" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 20, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"<matplotlib.image.AxesImage at 0x7f0d4da6abe0>" | |
] | |
}, | |
"execution_count": 20, | |
"metadata": {}, | |
"output_type": "execute_result" | |
}, | |
{ | |
"data": { | |
"image/png": "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 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment