Data labeling
This notebook shows how to conduct data labeling and content analysis using EDSL, an open-source library for simulating surveys, experiments and other research with AI agents and large language models.
Using a dataset of mock customer service tickets as an example, we demonstrate how to:
Import data into EDSL
Create questions about the data
Design an AI agent to answer the questions
Select a language model to generate responses
Analyze results as a formatted dataset
This workflow can be visualized as follows:
Technical setup
Before running the code below please ensure that you have completed setup:
Create a Coop account and activate remote inference OR store your own API Keys for language models that you want to use.
Our Starter Tutorial also provides examples of EDSL basic components.
Selecting data for review
First we identify some data for review. Data can be created using the EDSL tools or imported from other sources. For purposes of this demo we import a set of hypothetical customer tickets for a transportation app:
[1]:
tickets = [
"I just realized I left my phone in the car on my last ride. Can you help me get it back?",
"I'm unhappy with my recent experience. The driver was very rude and unprofessional.",
"I was charged more than the estimated fare for my trip yesterday. Can you explain why?",
"The car seat provided was not properly installed, and I felt my child was at risk. Please ensure driver training.",
"My driver took a longer route than necessary, resulting in a higher fare. I request a fare adjustment.",
"I had a great experience with my driver today! Very friendly and efficient service.",
"I'm concerned about the vehicle's cleanliness. It was not up to the standard I expect.",
"The app keeps crashing every time I try to book a ride. Please fix this issue.",
"My driver was exceptional - safe driving, polite, and the car was spotless. Kudos!",
"I felt unsafe during my ride due to the driver's erratic behavior. This needs to be addressed immediately.",
"The driver refused to follow my preferred route, which is shorter. I'm not satisfied with the service.",
"Impressed with the quick response to my ride request and the driver's professionalism.",
"I was charged for a ride I never took. Please refund me as soon as possible.",
"The promo code I tried to use didn't work. Can you assist with this?",
"There was a suspicious smell in the car, and I'm worried about hygiene standards.",
"My driver was very considerate, especially helping me with my luggage. Appreciate the great service!",
"The app's GPS seems inaccurate. It directed the driver to the wrong pick-up location.",
"I want to compliment my driver's excellent navigation and time management during rush hour.",
"The vehicle didn't match the description in the app. It was confusing and concerning.",
"I faced an issue with payment processing after my last ride. Can you look into this?",
]
Constructing questions about the data
Next we create some questions about the data. EDSL provides a variety of question types that we can choose from based on the form of the response that we want to get back from the model (multiple choice, free text, checkbox, linear scale, etc.). Learn more about question types.
Note that we use a {{ placeholder }}
in each question text in order to parameterize the questions with the individual ticket contents in the next step:
[2]:
from edsl import (
QuestionMultipleChoice,
QuestionCheckBox,
QuestionFreeText,
QuestionList,
QuestionYesNo,
QuestionLinearScale,
)
[3]:
question_issues = QuestionCheckBox(
question_name="issues",
question_text="Check all of the issues mentioned in this ticket: {{ ticket }}",
question_options=[
"safety",
"cleanliness",
"driver performance",
"GPS/route",
"lost item",
"other",
],
)
[4]:
question_primary_issue = QuestionFreeText(
question_name="primary_issue",
question_text="What is the primary issue in this ticket? Ticket: {{ ticket }}",
)
[5]:
question_accident = QuestionMultipleChoice(
question_name="accident",
question_text="If the primary issue in this ticket is safety, was there an accident where someone was hurt? Ticket: {{ ticket }}",
question_options=["Yes", "No", "Not applicable"],
)
[6]:
question_sentiment = QuestionMultipleChoice(
question_name="sentiment",
question_text="What is the sentiment of this ticket? Ticket: {{ ticket }}",
question_options=[
"Very positive",
"Somewhat positive",
"Neutral",
"Somewhat negative",
"Very negative",
],
)
[7]:
question_refund = QuestionYesNo(
question_name="refund",
question_text="Does the customer ask for a refund in this ticket? Ticket: {{ ticket }}",
)
[8]:
question_priority = QuestionLinearScale(
question_name="priority",
question_text="On a scale from 0 to 5, what is the priority level of this ticket? Ticket: {{ ticket }}",
question_options=[0, 1, 2, 3, 4, 5],
option_labels={0: "Lowest", 5: "Highest"},
)
Building a survey
We combine the questions into a survey in order to administer them together:
[9]:
from edsl import Survey
survey = Survey(
questions=[
question_issues,
question_primary_issue,
question_accident,
question_sentiment,
question_refund,
question_priority,
]
)
Survey questions are administered asynchronously by default. Learn more about adding conditional logic and memory to your survey.
We can review our questions in a readable format, or export them as a survey to use with human respondents or at other survey platforms:
[10]:
survey
[10]:
Survey # questions: 6; question_name list: ['issues', 'primary_issue', 'accident', 'sentiment', 'refund', 'priority'];
option_labels | question_text | question_options | question_type | use_code | question_name | |
---|---|---|---|---|---|---|
0 | nan | Check all of the issues mentioned in this ticket: {{ ticket }} | ['safety', 'cleanliness', 'driver performance', 'GPS/route', 'lost item', 'other'] | checkbox | True | issues |
1 | nan | What is the primary issue in this ticket? Ticket: {{ ticket }} | nan | free_text | nan | primary_issue |
2 | nan | If the primary issue in this ticket is safety, was there an accident where someone was hurt? Ticket: {{ ticket }} | ['Yes', 'No', 'Not applicable'] | multiple_choice | nan | accident |
3 | nan | What is the sentiment of this ticket? Ticket: {{ ticket }} | ['Very positive', 'Somewhat positive', 'Neutral', 'Somewhat negative', 'Very negative'] | multiple_choice | nan | sentiment |
4 | nan | Does the customer ask for a refund in this ticket? Ticket: {{ ticket }} | ['No', 'Yes'] | yes_no | nan | refund |
5 | {0: 'Lowest', 5: 'Highest'} | On a scale from 0 to 5, what is the priority level of this ticket? Ticket: {{ ticket }} | [0, 1, 2, 3, 4, 5] | linear_scale | nan | priority |
Designing AI agents
A key feature of EDSL is the ability to create personas for AI agents that the language models are prompted to use in generating responses to the questions. This is done by passing a dictionary of traits to Agent objects:
[11]:
from edsl import Agent
agent = Agent(
traits={
"persona": "You are an expert customer service agent.",
"years_experience": 15,
}
)
agent
[11]:
key | value | |
---|---|---|
0 | traits:persona | You are an expert customer service agent. |
1 | traits:years_experience | 15 |
Selecting language models
EDSL allows us to select the language models to use in generating results. To see all available models:
[12]:
from edsl import Model
Model.available()
/Users/a16174/edsl/edsl/inference_services/AvailableModelFetcher.py:139: UserWarning: No models found for service ollama
warnings.warn(f"No models found for service {service_name}")
[12]:
Model Name | Service Name | |
---|---|---|
0 | test | test |
1 | claude-3-5-sonnet-20240620 | anthropic |
2 | claude-3-opus-20240229 | anthropic |
3 | claude-3-sonnet-20240229 | anthropic |
4 | claude-3-haiku-20240307 | anthropic |
5 | amazon.titan-text-express-v1 | bedrock |
6 | amazon.titan-text-lite-v1 | bedrock |
7 | anthropic.claude-3-5-sonnet-20240620-v1:0 | bedrock |
8 | anthropic.claude-3-haiku-20240307-v1:0 | bedrock |
9 | anthropic.claude-3-opus-20240229-v1:0 | bedrock |
10 | anthropic.claude-3-sonnet-20240229-v1:0 | bedrock |
11 | anthropic.claude-instant-v1 | bedrock |
12 | anthropic.claude-v2 | bedrock |
13 | anthropic.claude-v2:1 | bedrock |
14 | cohere.command-light-text-v14 | bedrock |
15 | cohere.command-r-plus-v1:0 | bedrock |
16 | cohere.command-r-v1:0 | bedrock |
17 | cohere.command-text-v14 | bedrock |
18 | meta.llama3-1-405b-instruct-v1:0 | bedrock |
19 | meta.llama3-1-70b-instruct-v1:0 | bedrock |
20 | meta.llama3-1-8b-instruct-v1:0 | bedrock |
21 | meta.llama3-70b-instruct-v1:0 | bedrock |
22 | meta.llama3-8b-instruct-v1:0 | bedrock |
23 | mistral.mistral-7b-instruct-v0:2 | bedrock |
24 | mistral.mistral-large-2402-v1:0 | bedrock |
25 | mistral.mixtral-8x7b-instruct-v0:1 | bedrock |
26 | gemini-1.0-pro | |
27 | gemini-1.5-flash | |
28 | gemini-1.5-pro | |
29 | gemini-pro | |
30 | meta-llama/Meta-Llama-3.1-8B-Instruct-Turbo | together |
31 | mistralai/Mixtral-8x22B-Instruct-v0.1 | together |
32 | meta-llama/Meta-Llama-3.1-70B-Instruct-Turbo | together |
33 | meta-llama/Meta-Llama-3.1-405B-Instruct-Turbo | together |
34 | Gryphe/MythoMax-L2-13b-Lite | together |
35 | Salesforce/Llama-Rank-V1 | together |
36 | meta-llama/Meta-Llama-Guard-3-8B | together |
37 | meta-llama/Meta-Llama-3-70B-Instruct-Turbo | together |
38 | meta-llama/Meta-Llama-3-70B-Instruct-Lite | together |
39 | meta-llama/Meta-Llama-3-8B-Instruct-Lite | together |
40 | meta-llama/Meta-Llama-3-8B-Instruct-Turbo | together |
41 | meta-llama/Llama-3-70b-chat-hf | together |
42 | meta-llama/Llama-3-8b-chat-hf | together |
43 | Qwen/Qwen2-72B-Instruct | together |
44 | google/gemma-2-27b-it | together |
45 | google/gemma-2-9b-it | together |
46 | mistralai/Mistral-7B-Instruct-v0.3 | together |
47 | Qwen/Qwen1.5-110B-Chat | together |
48 | meta-llama/LlamaGuard-2-8b | together |
49 | microsoft/WizardLM-2-8x22B | together |
50 | togethercomputer/StripedHyena-Nous-7B | together |
51 | databricks/dbrx-instruct | together |
52 | deepseek-ai/deepseek-llm-67b-chat | together |
53 | google/gemma-2b-it | together |
54 | mistralai/Mistral-7B-Instruct-v0.2 | together |
55 | mistralai/Mixtral-8x7B-Instruct-v0.1 | together |
56 | mistralai/Mixtral-8x7B-v0.1 | together |
57 | Qwen/Qwen1.5-72B-Chat | together |
58 | NousResearch/Nous-Hermes-2-Yi-34B | together |
59 | Meta-Llama/Llama-Guard-7b | together |
60 | NousResearch/Nous-Hermes-2-Mixtral-8x7B-DPO | together |
61 | mistralai/Mistral-7B-Instruct-v0.1 | together |
62 | mistralai/Mistral-7B-v0.1 | together |
63 | meta-llama/Llama-2-13b-chat-hf | together |
64 | meta-llama/Llama-2-7b-chat-hf | together |
65 | meta-llama/Llama-2-70b-hf | together |
66 | codellama/CodeLlama-34b-Instruct-hf | together |
67 | upstage/SOLAR-10.7B-Instruct-v1.0 | together |
68 | togethercomputer/m2-bert-80M-32k-retrieval | together |
69 | togethercomputer/m2-bert-80M-8k-retrieval | together |
70 | togethercomputer/m2-bert-80M-2k-retrieval | together |
71 | WhereIsAI/UAE-Large-V1 | together |
72 | BAAI/bge-large-en-v1.5 | together |
73 | BAAI/bge-base-en-v1.5 | together |
74 | Gryphe/MythoMax-L2-13b | together |
75 | cursor/Llama-3-8b-hf | together |
76 | azure:gpt-4o | azure |
77 | azure:gpt-4o-mini | azure |
78 | gemma-7b-it | groq |
79 | gemma2-9b-it | groq |
80 | llama-3.1-70b-versatile | groq |
81 | llama-3.1-8b-instant | groq |
82 | llama-guard-3-8b | groq |
83 | llama3-70b-8192 | groq |
84 | llama3-8b-8192 | groq |
85 | llama3-groq-70b-8192-tool-use-preview | groq |
86 | llama3-groq-8b-8192-tool-use-preview | groq |
87 | mixtral-8x7b-32768 | groq |
88 | Austism/chronos-hermes-13b-v2 | deep_infra |
89 | Gryphe/MythoMax-L2-13b | deep_infra |
90 | Qwen/Qwen2-72B-Instruct | deep_infra |
91 | Qwen/Qwen2-7B-Instruct | deep_infra |
92 | Qwen/Qwen2.5-72B-Instruct | deep_infra |
93 | Sao10K/L3-70B-Euryale-v2.1 | deep_infra |
94 | Sao10K/L3.1-70B-Euryale-v2.2 | deep_infra |
95 | google/gemma-2-27b-it | deep_infra |
96 | google/gemma-2-9b-it | deep_infra |
97 | lizpreciatior/lzlv_70b_fp16_hf | deep_infra |
98 | meta-llama/Meta-Llama-3-70B-Instruct | deep_infra |
99 | meta-llama/Meta-Llama-3-8B-Instruct | deep_infra |
100 | meta-llama/Meta-Llama-3.1-405B-Instruct | deep_infra |
101 | meta-llama/Meta-Llama-3.1-70B-Instruct | deep_infra |
102 | meta-llama/Meta-Llama-3.1-8B-Instruct | deep_infra |
103 | mistralai/Mistral-7B-Instruct-v0.3 | deep_infra |
104 | microsoft/Phi-3-medium-4k-instruct | deep_infra |
105 | microsoft/WizardLM-2-7B | deep_infra |
106 | microsoft/WizardLM-2-8x22B | deep_infra |
107 | mistralai/Mistral-Nemo-Instruct-2407 | deep_infra |
108 | mistralai/Mixtral-8x7B-Instruct-v0.1 | deep_infra |
109 | openbmb/MiniCPM-Llama3-V-2_5 | deep_infra |
110 | openchat/openchat_3.5 | deep_infra |
111 | gpt-4o-realtime-preview | openai |
112 | gpt-4o-realtime-preview-2024-10-01 | openai |
113 | o1-mini-2024-09-12 | openai |
114 | gpt-4-1106-preview | openai |
115 | gpt-3.5-turbo-16k | openai |
116 | gpt-4-0125-preview | openai |
117 | gpt-4-turbo-preview | openai |
118 | omni-moderation-latest | openai |
119 | gpt-4o-2024-05-13 | openai |
120 | omni-moderation-2024-09-26 | openai |
121 | chatgpt-4o-latest | openai |
122 | gpt-4 | openai |
123 | gpt-4-0613 | openai |
124 | gpt-4o | openai |
125 | gpt-4o-2024-08-06 | openai |
126 | o1-mini | openai |
127 | gpt-3.5-turbo | openai |
128 | gpt-3.5-turbo-0125 | openai |
129 | o1-preview | openai |
130 | o1-preview-2024-09-12 | openai |
131 | gpt-4-turbo | openai |
132 | gpt-4-turbo-2024-04-09 | openai |
133 | gpt-3.5-turbo-1106 | openai |
134 | gpt-4o-mini-2024-07-18 | openai |
135 | gpt-4o-audio-preview | openai |
136 | gpt-4o-audio-preview-2024-10-01 | openai |
137 | gpt-4o-mini | openai |
138 | gpt-4o-realtime-preview-2024-12-17 | openai |
139 | gpt-4o-mini-realtime-preview | openai |
140 | gpt-4o-mini-realtime-preview-2024-12-17 | openai |
141 | gpt-4o-2024-11-20 | openai |
142 | gpt-4o-audio-preview-2024-12-17 | openai |
143 | gpt-4o-mini-audio-preview | openai |
144 | gpt-4o-mini-audio-preview-2024-12-17 | openai |
145 | curie:ft-emeritus-2022-12-01-14-49-45 | openai |
146 | curie:ft-emeritus-2022-12-01-16-40-12 | openai |
147 | curie:ft-emeritus-2022-11-30-12-58-24 | openai |
148 | davinci:ft-emeritus-2022-11-30-14-57-33 | openai |
149 | curie:ft-emeritus-2022-12-01-01-51-20 | openai |
150 | curie:ft-emeritus-2022-12-01-01-04-36 | openai |
151 | curie:ft-emeritus-2022-12-01-15-42-25 | openai |
152 | curie:ft-emeritus-2022-12-01-15-29-32 | openai |
153 | curie:ft-emeritus-2022-12-01-15-52-24 | openai |
154 | curie:ft-emeritus-2022-12-01-14-28-00 | openai |
155 | curie:ft-emeritus-2022-12-01-14-16-46 | openai |
156 | llama-3.1-sonar-huge-128k-online | perplexity |
157 | llama-3.1-sonar-large-128k-online | perplexity |
158 | llama-3.1-sonar-small-128k-online | perplexity |
159 | codestral-2405 | mistral |
160 | mistral-embed | mistral |
161 | mistral-large-2407 | mistral |
162 | mistral-medium-latest | mistral |
163 | mistral-small-2409 | mistral |
164 | mistral-small-latest | mistral |
165 | open-mistral-7b | mistral |
166 | open-mistral-nemo-2407 | mistral |
167 | open-mixtral-8x22b | mistral |
168 | open-mixtral-8x7b | mistral |
169 | pixtral-12b-2409 | mistral |
Here we select GPT 4o (if no model is specified, the default model is used – run Model()
to verify the current default model):
[13]:
model = Model("gpt-4o")
model
[13]:
key | value | |
---|---|---|
0 | model | gpt-4o |
1 | parameters:temperature | 0.500000 |
2 | parameters:max_tokens | 1000 |
3 | parameters:top_p | 1 |
4 | parameters:frequency_penalty | 0 |
5 | parameters:presence_penalty | 0 |
6 | parameters:logprobs | False |
7 | parameters:top_logprobs | 3 |
Adding data to the questions
We add the contents of each ticket into each question as an independent “scenario” for review. This allows us to create versions of the questions for each job post and deliver them to the model all at once:
[14]:
from edsl import ScenarioList
scenarios = ScenarioList.from_list("ticket", tickets)
scenarios
[14]:
ScenarioList scenarios: 20; keys: ['ticket'];
ticket | |
---|---|
0 | I just realized I left my phone in the car on my last ride. Can you help me get it back? |
1 | I'm unhappy with my recent experience. The driver was very rude and unprofessional. |
2 | I was charged more than the estimated fare for my trip yesterday. Can you explain why? |
3 | The car seat provided was not properly installed, and I felt my child was at risk. Please ensure driver training. |
4 | My driver took a longer route than necessary, resulting in a higher fare. I request a fare adjustment. |
5 | I had a great experience with my driver today! Very friendly and efficient service. |
6 | I'm concerned about the vehicle's cleanliness. It was not up to the standard I expect. |
7 | The app keeps crashing every time I try to book a ride. Please fix this issue. |
8 | My driver was exceptional - safe driving, polite, and the car was spotless. Kudos! |
9 | I felt unsafe during my ride due to the driver's erratic behavior. This needs to be addressed immediately. |
10 | The driver refused to follow my preferred route, which is shorter. I'm not satisfied with the service. |
11 | Impressed with the quick response to my ride request and the driver's professionalism. |
12 | I was charged for a ride I never took. Please refund me as soon as possible. |
13 | The promo code I tried to use didn't work. Can you assist with this? |
14 | There was a suspicious smell in the car, and I'm worried about hygiene standards. |
15 | My driver was very considerate, especially helping me with my luggage. Appreciate the great service! |
16 | The app's GPS seems inaccurate. It directed the driver to the wrong pick-up location. |
17 | I want to compliment my driver's excellent navigation and time management during rush hour. |
18 | The vehicle didn't match the description in the app. It was confusing and concerning. |
19 | I faced an issue with payment processing after my last ride. Can you look into this? |
Running the survey
We run the survey by adding the scenarios, agent and model with the by()
method and then calling the run()
method:
[15]:
results = survey.by(scenarios).by(agent).by(model).run()
Job UUID | 89894324-ea41-4619-b77b-d98bee3d986b |
Progress Bar URL | https://www.expectedparrot.com/home/remote-job-progress/89894324-ea41-4619-b77b-d98bee3d986b |
Error Report URL | None |
Results UUID | 7aa62007-54b7-41a9-a769-81bed1013949 |
Results URL | None |
This generates a formatted dataset of Results
that includes information about all the components, including the prompts and responses. We can see a list of all the components:
[16]:
results.columns
[16]:
0 | |
---|---|
0 | agent.agent_instruction |
1 | agent.agent_name |
2 | agent.persona |
3 | agent.years_experience |
4 | answer.accident |
5 | answer.issues |
6 | answer.primary_issue |
7 | answer.priority |
8 | answer.refund |
9 | answer.sentiment |
10 | comment.accident_comment |
11 | comment.issues_comment |
12 | comment.primary_issue_comment |
13 | comment.priority_comment |
14 | comment.refund_comment |
15 | comment.sentiment_comment |
16 | generated_tokens.accident_generated_tokens |
17 | generated_tokens.issues_generated_tokens |
18 | generated_tokens.primary_issue_generated_tokens |
19 | generated_tokens.priority_generated_tokens |
20 | generated_tokens.refund_generated_tokens |
21 | generated_tokens.sentiment_generated_tokens |
22 | iteration.iteration |
23 | model.frequency_penalty |
24 | model.logprobs |
25 | model.max_tokens |
26 | model.model |
27 | model.presence_penalty |
28 | model.temperature |
29 | model.top_logprobs |
30 | model.top_p |
31 | prompt.accident_system_prompt |
32 | prompt.accident_user_prompt |
33 | prompt.issues_system_prompt |
34 | prompt.issues_user_prompt |
35 | prompt.primary_issue_system_prompt |
36 | prompt.primary_issue_user_prompt |
37 | prompt.priority_system_prompt |
38 | prompt.priority_user_prompt |
39 | prompt.refund_system_prompt |
40 | prompt.refund_user_prompt |
41 | prompt.sentiment_system_prompt |
42 | prompt.sentiment_user_prompt |
43 | question_options.accident_question_options |
44 | question_options.issues_question_options |
45 | question_options.primary_issue_question_options |
46 | question_options.priority_question_options |
47 | question_options.refund_question_options |
48 | question_options.sentiment_question_options |
49 | question_text.accident_question_text |
50 | question_text.issues_question_text |
51 | question_text.primary_issue_question_text |
52 | question_text.priority_question_text |
53 | question_text.refund_question_text |
54 | question_text.sentiment_question_text |
55 | question_type.accident_question_type |
56 | question_type.issues_question_type |
57 | question_type.primary_issue_question_type |
58 | question_type.priority_question_type |
59 | question_type.refund_question_type |
60 | question_type.sentiment_question_type |
61 | raw_model_response.accident_cost |
62 | raw_model_response.accident_one_usd_buys |
63 | raw_model_response.accident_raw_model_response |
64 | raw_model_response.issues_cost |
65 | raw_model_response.issues_one_usd_buys |
66 | raw_model_response.issues_raw_model_response |
67 | raw_model_response.primary_issue_cost |
68 | raw_model_response.primary_issue_one_usd_buys |
69 | raw_model_response.primary_issue_raw_model_response |
70 | raw_model_response.priority_cost |
71 | raw_model_response.priority_one_usd_buys |
72 | raw_model_response.priority_raw_model_response |
73 | raw_model_response.refund_cost |
74 | raw_model_response.refund_one_usd_buys |
75 | raw_model_response.refund_raw_model_response |
76 | raw_model_response.sentiment_cost |
77 | raw_model_response.sentiment_one_usd_buys |
78 | raw_model_response.sentiment_raw_model_response |
79 | scenario.ticket |
Analyzing results
EDSL comes with built-in methods for analyzing results. Here we filter, sort, select and print components in a table:
[17]:
(
results
.filter("priority in [4, 5]")
.sort_by("issues", "sentiment")
.select("ticket", "issues", "primary_issue", "accident", "sentiment", "refund", "priority")
)
[17]:
scenario.ticket | answer.issues | answer.primary_issue | answer.accident | answer.sentiment | answer.refund | answer.priority | |
---|---|---|---|---|---|---|---|
0 | The app's GPS seems inaccurate. It directed the driver to the wrong pick-up location. | ['GPS/route'] | The primary issue in this ticket is the inaccuracy of the app's GPS, which resulted in directing the driver to the wrong pick-up location. This can lead to delays and inconvenience for both the driver and the customer, so it's important to address the GPS functionality to ensure it provides accurate directions. | No | Somewhat negative | No | 4 |
1 | The app keeps crashing every time I try to book a ride. Please fix this issue. | ['other'] | The primary issue in this ticket is that the app crashes whenever the user attempts to book a ride. The user is requesting a fix for this problem. | Not applicable | Somewhat negative | No | 5 |
2 | The car seat provided was not properly installed, and I felt my child was at risk. Please ensure driver training. | ['safety', 'driver performance'] | The primary issue in this ticket is the improper installation of the car seat provided by the driver, which made the customer feel that their child's safety was at risk. The customer is requesting that drivers receive additional training to ensure proper car seat installation in the future. | No | Very negative | No | 5 |
3 | I felt unsafe during my ride due to the driver's erratic behavior. This needs to be addressed immediately. | ['safety', 'driver performance'] | The primary issue in this ticket is the customer's feeling of being unsafe due to the driver's erratic behavior. This is a serious concern that requires immediate attention to ensure the safety of passengers and to address any potential misconduct by the driver. | Not applicable | Very negative | No | 5 |
We can apply some lables to our table:
[18]:
(
results.select(
"ticket",
"issues",
"primary_issue",
"accident",
"sentiment",
"refund",
"priority",
).print(
pretty_labels={
"scenario.ticket": "Ticket",
"answer.issues": "Issues",
"answer.primary_issue": "Primary issue",
"answer.accident": "Accident",
"answer.sentiment": "Sentiment",
"answer.refund": "Refund request",
"answer.priority": "Priority",
}
)
)
[18]:
Ticket | Issues | Primary issue | Accident | Sentiment | Refund request | Priority | |
---|---|---|---|---|---|---|---|
0 | I just realized I left my phone in the car on my last ride. Can you help me get it back? | ['lost item'] | The primary issue in this ticket is that the customer left their phone in a car during their last ride and needs assistance in retrieving it. | Not applicable | Somewhat negative | No | 3 |
1 | I'm unhappy with my recent experience. The driver was very rude and unprofessional. | ['driver performance'] | The primary issue in this ticket is the customer's dissatisfaction with the behavior of the driver, who was described as rude and unprofessional. Addressing this concern involves acknowledging the customer's experience, apologizing for the inconvenience, and taking appropriate steps to ensure such behavior is not repeated in the future. | No | Very negative | No | 3 |
2 | I was charged more than the estimated fare for my trip yesterday. Can you explain why? | ['other'] | The primary issue in this ticket is that the customer was charged more than the estimated fare for their trip and is seeking an explanation for the discrepancy. | Not applicable | Somewhat negative | No | 3 |
3 | The car seat provided was not properly installed, and I felt my child was at risk. Please ensure driver training. | ['safety', 'driver performance'] | The primary issue in this ticket is the improper installation of the car seat provided by the driver, which made the customer feel that their child's safety was at risk. The customer is requesting that drivers receive additional training to ensure proper car seat installation in the future. | No | Very negative | No | 5 |
4 | My driver took a longer route than necessary, resulting in a higher fare. I request a fare adjustment. | ['driver performance', 'GPS/route'] | The primary issue in this ticket is that the customer believes the driver took a longer route than necessary, which led to a higher fare. The customer is requesting an adjustment to the fare to reflect what they believe should have been the correct amount. | No | Somewhat negative | No | 2 |
5 | I had a great experience with my driver today! Very friendly and efficient service. | ['driver performance'] | It seems there is no issue in this ticket. Instead, it appears to be positive feedback about a great experience with the driver. It's always wonderful to receive compliments about friendly and efficient service! | Not applicable | Very positive | No | 0 |
6 | I'm concerned about the vehicle's cleanliness. It was not up to the standard I expect. | ['cleanliness'] | The primary issue in this ticket is the customer's concern about the cleanliness of the vehicle. They feel that the vehicle was not cleaned to the standard they expect. Addressing this issue would involve ensuring the vehicle is thoroughly cleaned and possibly offering an apology or compensation to the customer for their inconvenience. | No | Somewhat negative | No | 2 |
7 | The app keeps crashing every time I try to book a ride. Please fix this issue. | ['other'] | The primary issue in this ticket is that the app crashes whenever the user attempts to book a ride. The user is requesting a fix for this problem. | Not applicable | Somewhat negative | No | 5 |
8 | My driver was exceptional - safe driving, polite, and the car was spotless. Kudos! | ['safety', 'cleanliness', 'driver performance'] | The primary issue in this ticket is not a complaint or problem, but rather positive feedback. The customer is expressing satisfaction with their driver, highlighting the driver's safe driving, politeness, and the cleanliness of the car. This is a commendation rather than an issue. | Not applicable | Very positive | No | 0 |
9 | I felt unsafe during my ride due to the driver's erratic behavior. This needs to be addressed immediately. | ['safety', 'driver performance'] | The primary issue in this ticket is the customer's feeling of being unsafe due to the driver's erratic behavior. This is a serious concern that requires immediate attention to ensure the safety of passengers and to address any potential misconduct by the driver. | Not applicable | Very negative | No | 5 |
10 | The driver refused to follow my preferred route, which is shorter. I'm not satisfied with the service. | ['driver performance', 'GPS/route'] | The primary issue in this ticket is that the driver did not follow the customer's preferred route, which the customer believes is shorter, leading to dissatisfaction with the service. As an expert customer service agent, I would address the customer's concern by acknowledging their frustration, explaining any possible reasons for the driver's decision (such as traffic conditions or company policy), and offering a resolution or compensation if appropriate. | No | Very negative | No | 2 |
11 | Impressed with the quick response to my ride request and the driver's professionalism. | ['driver performance', 'other'] | Based on the content of the ticket, it appears that there is no issue being reported. Instead, the ticket contains positive feedback regarding the quick response to a ride request and the professionalism of the driver. This is a commendation rather than a complaint or issue that needs resolution. | Not applicable | Very positive | No | 0 |
12 | I was charged for a ride I never took. Please refund me as soon as possible. | ['other'] | The primary issue in this ticket is an incorrect charge for a ride that the customer claims they did not take. The customer is requesting a refund for this charge. | Not applicable | Somewhat negative | Yes | 3 |
13 | The promo code I tried to use didn't work. Can you assist with this? | ['other'] | The primary issue in this ticket is that the customer is experiencing difficulty with a promo code that did not work as expected. The customer is seeking assistance to resolve this issue. | Not applicable | Somewhat negative | No | 2 |
14 | There was a suspicious smell in the car, and I'm worried about hygiene standards. | ['cleanliness', 'other'] | The primary issue in this ticket is the customer's concern about a suspicious smell in the car, which is raising worries about the hygiene standards of the vehicle. Addressing this issue would likely involve investigating the source of the smell and ensuring that the vehicle meets cleanliness and hygiene standards. | No | Somewhat negative | No | 3 |
15 | My driver was very considerate, especially helping me with my luggage. Appreciate the great service! | ['driver performance'] | The primary issue in this ticket is actually not an issue at all. It appears to be a positive feedback or compliment regarding the driver's considerate behavior and assistance with luggage. It's always great to receive such positive comments about the service provided! | No | Very positive | No | 0 |
16 | The app's GPS seems inaccurate. It directed the driver to the wrong pick-up location. | ['GPS/route'] | The primary issue in this ticket is the inaccuracy of the app's GPS, which resulted in directing the driver to the wrong pick-up location. This can lead to delays and inconvenience for both the driver and the customer, so it's important to address the GPS functionality to ensure it provides accurate directions. | No | Somewhat negative | No | 4 |
17 | I want to compliment my driver's excellent navigation and time management during rush hour. | ['driver performance', 'GPS/route'] | The primary issue in this ticket is not a problem or complaint, but rather a compliment. The customer is expressing appreciation for their driver's excellent navigation and time management skills during rush hour. | Not applicable | Very positive | No | 1 |
18 | The vehicle didn't match the description in the app. It was confusing and concerning. | ['other'] | The primary issue in this ticket is that the vehicle provided did not match the description given in the app. This discrepancy caused confusion and concern for the customer. It's important to address this by verifying the accuracy of vehicle descriptions in the app to ensure they align with what is actually provided, thereby enhancing customer trust and satisfaction. | No | Somewhat negative | No | 3 |
19 | I faced an issue with payment processing after my last ride. Can you look into this? | ['other'] | The primary issue in this ticket is a problem with payment processing after the customer's last ride. The customer is requesting assistance to investigate and resolve the payment issue. | Not applicable | Neutral | No | 3 |
EDSL also comes with methods for accessing results as a dataframe or SQL table:
[19]:
df = (
results
.select(
"issues",
"primary_issue",
"accident",
"sentiment",
"refund",
"priority"
)
.to_pandas(remove_prefix=True)
)
df
[19]:
issues | primary_issue | accident | sentiment | refund | priority | |
---|---|---|---|---|---|---|
0 | ['lost item'] | The primary issue in this ticket is that the c... | Not applicable | Somewhat negative | No | 3 |
1 | ['driver performance'] | The primary issue in this ticket is the custom... | No | Very negative | No | 3 |
2 | ['other'] | The primary issue in this ticket is that the c... | Not applicable | Somewhat negative | No | 3 |
3 | ['safety', 'driver performance'] | The primary issue in this ticket is the improp... | No | Very negative | No | 5 |
4 | ['driver performance', 'GPS/route'] | The primary issue in this ticket is that the c... | No | Somewhat negative | No | 2 |
5 | ['driver performance'] | It seems there is no issue in this ticket. Ins... | Not applicable | Very positive | No | 0 |
6 | ['cleanliness'] | The primary issue in this ticket is the custom... | No | Somewhat negative | No | 2 |
7 | ['other'] | The primary issue in this ticket is that the a... | Not applicable | Somewhat negative | No | 5 |
8 | ['safety', 'cleanliness', 'driver performance'] | The primary issue in this ticket is not a comp... | Not applicable | Very positive | No | 0 |
9 | ['safety', 'driver performance'] | The primary issue in this ticket is the custom... | Not applicable | Very negative | No | 5 |
10 | ['driver performance', 'GPS/route'] | The primary issue in this ticket is that the d... | No | Very negative | No | 2 |
11 | ['driver performance', 'other'] | Based on the content of the ticket, it appears... | Not applicable | Very positive | No | 0 |
12 | ['other'] | The primary issue in this ticket is an incorre... | Not applicable | Somewhat negative | Yes | 3 |
13 | ['other'] | The primary issue in this ticket is that the c... | Not applicable | Somewhat negative | No | 2 |
14 | ['cleanliness', 'other'] | The primary issue in this ticket is the custom... | No | Somewhat negative | No | 3 |
15 | ['driver performance'] | The primary issue in this ticket is actually n... | No | Very positive | No | 0 |
16 | ['GPS/route'] | The primary issue in this ticket is the inaccu... | No | Somewhat negative | No | 4 |
17 | ['driver performance', 'GPS/route'] | The primary issue in this ticket is not a prob... | Not applicable | Very positive | No | 1 |
18 | ['other'] | The primary issue in this ticket is that the v... | No | Somewhat negative | No | 3 |
19 | ['other'] | The primary issue in this ticket is a problem ... | Not applicable | Neutral | No | 3 |
We can also access results as a SQL table:
[20]:
results.sql("""
select ticket, issues, primary_issue, accident, sentiment, refund, priority
from self
""")
[20]:
ticket | issues | primary_issue | accident | sentiment | refund | priority | |
---|---|---|---|---|---|---|---|
0 | I just realized I left my phone in the car on my last ride. Can you help me get it back? | ['lost item'] | The primary issue in this ticket is that the customer left their phone in a car during their last ride and needs assistance in retrieving it. | Not applicable | Somewhat negative | No | 3 |
1 | I'm unhappy with my recent experience. The driver was very rude and unprofessional. | ['driver performance'] | The primary issue in this ticket is the customer's dissatisfaction with the behavior of the driver, who was described as rude and unprofessional. Addressing this concern involves acknowledging the customer's experience, apologizing for the inconvenience, and taking appropriate steps to ensure such behavior is not repeated in the future. | No | Very negative | No | 3 |
2 | I was charged more than the estimated fare for my trip yesterday. Can you explain why? | ['other'] | The primary issue in this ticket is that the customer was charged more than the estimated fare for their trip and is seeking an explanation for the discrepancy. | Not applicable | Somewhat negative | No | 3 |
3 | The car seat provided was not properly installed, and I felt my child was at risk. Please ensure driver training. | ['safety', 'driver performance'] | The primary issue in this ticket is the improper installation of the car seat provided by the driver, which made the customer feel that their child's safety was at risk. The customer is requesting that drivers receive additional training to ensure proper car seat installation in the future. | No | Very negative | No | 5 |
4 | My driver took a longer route than necessary, resulting in a higher fare. I request a fare adjustment. | ['driver performance', 'GPS/route'] | The primary issue in this ticket is that the customer believes the driver took a longer route than necessary, which led to a higher fare. The customer is requesting an adjustment to the fare to reflect what they believe should have been the correct amount. | No | Somewhat negative | No | 2 |
5 | I had a great experience with my driver today! Very friendly and efficient service. | ['driver performance'] | It seems there is no issue in this ticket. Instead, it appears to be positive feedback about a great experience with the driver. It's always wonderful to receive compliments about friendly and efficient service! | Not applicable | Very positive | No | 0 |
6 | I'm concerned about the vehicle's cleanliness. It was not up to the standard I expect. | ['cleanliness'] | The primary issue in this ticket is the customer's concern about the cleanliness of the vehicle. They feel that the vehicle was not cleaned to the standard they expect. Addressing this issue would involve ensuring the vehicle is thoroughly cleaned and possibly offering an apology or compensation to the customer for their inconvenience. | No | Somewhat negative | No | 2 |
7 | The app keeps crashing every time I try to book a ride. Please fix this issue. | ['other'] | The primary issue in this ticket is that the app crashes whenever the user attempts to book a ride. The user is requesting a fix for this problem. | Not applicable | Somewhat negative | No | 5 |
8 | My driver was exceptional - safe driving, polite, and the car was spotless. Kudos! | ['safety', 'cleanliness', 'driver performance'] | The primary issue in this ticket is not a complaint or problem, but rather positive feedback. The customer is expressing satisfaction with their driver, highlighting the driver's safe driving, politeness, and the cleanliness of the car. This is a commendation rather than an issue. | Not applicable | Very positive | No | 0 |
9 | I felt unsafe during my ride due to the driver's erratic behavior. This needs to be addressed immediately. | ['safety', 'driver performance'] | The primary issue in this ticket is the customer's feeling of being unsafe due to the driver's erratic behavior. This is a serious concern that requires immediate attention to ensure the safety of passengers and to address any potential misconduct by the driver. | Not applicable | Very negative | No | 5 |
10 | The driver refused to follow my preferred route, which is shorter. I'm not satisfied with the service. | ['driver performance', 'GPS/route'] | The primary issue in this ticket is that the driver did not follow the customer's preferred route, which the customer believes is shorter, leading to dissatisfaction with the service. As an expert customer service agent, I would address the customer's concern by acknowledging their frustration, explaining any possible reasons for the driver's decision (such as traffic conditions or company policy), and offering a resolution or compensation if appropriate. | No | Very negative | No | 2 |
11 | Impressed with the quick response to my ride request and the driver's professionalism. | ['driver performance', 'other'] | Based on the content of the ticket, it appears that there is no issue being reported. Instead, the ticket contains positive feedback regarding the quick response to a ride request and the professionalism of the driver. This is a commendation rather than a complaint or issue that needs resolution. | Not applicable | Very positive | No | 0 |
12 | I was charged for a ride I never took. Please refund me as soon as possible. | ['other'] | The primary issue in this ticket is an incorrect charge for a ride that the customer claims they did not take. The customer is requesting a refund for this charge. | Not applicable | Somewhat negative | Yes | 3 |
13 | The promo code I tried to use didn't work. Can you assist with this? | ['other'] | The primary issue in this ticket is that the customer is experiencing difficulty with a promo code that did not work as expected. The customer is seeking assistance to resolve this issue. | Not applicable | Somewhat negative | No | 2 |
14 | There was a suspicious smell in the car, and I'm worried about hygiene standards. | ['cleanliness', 'other'] | The primary issue in this ticket is the customer's concern about a suspicious smell in the car, which is raising worries about the hygiene standards of the vehicle. Addressing this issue would likely involve investigating the source of the smell and ensuring that the vehicle meets cleanliness and hygiene standards. | No | Somewhat negative | No | 3 |
15 | My driver was very considerate, especially helping me with my luggage. Appreciate the great service! | ['driver performance'] | The primary issue in this ticket is actually not an issue at all. It appears to be a positive feedback or compliment regarding the driver's considerate behavior and assistance with luggage. It's always great to receive such positive comments about the service provided! | No | Very positive | No | 0 |
16 | The app's GPS seems inaccurate. It directed the driver to the wrong pick-up location. | ['GPS/route'] | The primary issue in this ticket is the inaccuracy of the app's GPS, which resulted in directing the driver to the wrong pick-up location. This can lead to delays and inconvenience for both the driver and the customer, so it's important to address the GPS functionality to ensure it provides accurate directions. | No | Somewhat negative | No | 4 |
17 | I want to compliment my driver's excellent navigation and time management during rush hour. | ['driver performance', 'GPS/route'] | The primary issue in this ticket is not a problem or complaint, but rather a compliment. The customer is expressing appreciation for their driver's excellent navigation and time management skills during rush hour. | Not applicable | Very positive | No | 1 |
18 | The vehicle didn't match the description in the app. It was confusing and concerning. | ['other'] | The primary issue in this ticket is that the vehicle provided did not match the description given in the app. This discrepancy caused confusion and concern for the customer. It's important to address this by verifying the accuracy of vehicle descriptions in the app to ensure they align with what is actually provided, thereby enhancing customer trust and satisfaction. | No | Somewhat negative | No | 3 |
19 | I faced an issue with payment processing after my last ride. Can you look into this? | ['other'] | The primary issue in this ticket is a problem with payment processing after the customer's last ride. The customer is requesting assistance to investigate and resolve the payment issue. | Not applicable | Neutral | No | 3 |
To export results to a CSV file:
[21]:
results.to_csv("data_labeling_example.csv")
[21]:
key | value | |
---|---|---|
0 | path | data_labeling_example.csv |
1 | base64_string | YW5zd2VyLmFjY2lkZW50LGFuc3dlci5zZW50aW1lbnQsYW5zd2VyLnJlZnVuZCxhbnN3ZXIucHJpbWFyeV9pc3N1ZSxhbnN3ZXIucHJpb3JpdHksYW5zd2VyLmlzc3VlcyxzY2VuYXJpby50aWNrZXQsYWdlbnQucGVyc29uYSxhZ2VudC5hZ2VudF9uYW1lLGFnZW50LnllYXJzX2V4cGVyaWVuY2UsYWdlbnQuYWdlbnRfaW5zdHJ1Y3Rpb24sbW9kZWwuZnJlcXVlbmN5X3BlbmFsdHksbW9kZWwudG9wX3AsbW9kZWwucHJlc2VuY2VfcGVuYWx0eSxtb2RlbC5tb2RlbCxtb2RlbC50ZW1wZXJhdHVyZSxtb2RlbC5sb2dwcm9icyxtb2RlbC5tYXhfdG9rZW5zLG1vZGVsLnRvcF9sb2dwcm9icyxwcm9tcHQucHJpbWFyeV9pc3N1ZV91c2VyX3Byb21wdCxwcm9tcHQuYWNjaWRlbnRfc3lzdGVtX3Byb21wdCxwcm9tcHQucHJpb3JpdHlfc3lzdGVtX3Byb21wdCxwcm9tcHQuaXNzdWVzX3VzZXJfcHJvbXB0LHByb21wdC5wcmlvcml0eV91c2VyX3Byb21wdCxwcm9tcHQuc2VudGltZW50X3N5c3RlbV9wcm9tcHQscHJvbXB0LnJlZnVuZF9zeXN0ZW1fcHJvbXB0LHByb21wdC5pc3N1ZXNfc3lzdGVtX3Byb21wdCxwcm9tcHQuc2VudGltZW50X3VzZXJfcHJvbXB0LHByb21wdC5yZWZ1bmRfdXNlcl9wcm9tcHQscHJvbXB0LnByaW1hcnlfaXNzdWVfc3lzdGVtX3Byb21wdCxwcm9tcHQuYWNjaWRlbnRfdXNlcl9wcm9tcHQscmF3X21vZGVsX3Jlc3BvbnNlLnNlbnRpbWVudF9jb3N0LHJhd19tb2RlbF9yZXNwb25zZS5hY2NpZGVudF9yYXdfbW9kZWxfcmVzcG9uc2UscmF3X21vZGVsX3Jlc3BvbnNlLnNlbnRpbWVudF9yYXdfbW9kZWxfcmVzcG9uc2UscmF3X21vZGVsX3Jlc3BvbnNlLnNlbnRpbWVudF9vbmVfdXNkX2J1eXMscmF3X21vZGVsX3Jlc3BvbnNlLnJlZnVuZF9vbmVfdXNkX2J1eXMscmF3X21vZGVsX3Jlc3BvbnNlLmlzc3Vlc19yYXdfbW9kZWxfcmVzcG9uc2UscmF3X21vZGVsX3Jlc3BvbnNlLnByaW9yaXR5X2Nvc3QscmF3X21vZGVsX3Jlc3BvbnNlLmFjY2lkZW50X29uZV91c2RfYnV5cyxyYXdfbW9kZWxfcmVzcG9uc2UucmVmdW5kX2Nvc3QscmF3X21vZGVsX3Jlc3BvbnNlLmlzc3Vlc19jb3N0LHJhd19tb2RlbF9yZXNwb25zZS5wcmltYXJ5X2lzc3VlX3Jhd19tb2RlbF9yZXNwb25zZSxyYXdfbW9kZWxfcmVzcG9uc2UucHJpbWFyeV9pc3N1ZV9jb3N0LHJhd19tb2RlbF9yZXNwb25zZS5wcmltYXJ5X2lzc3VlX29uZV91c2RfYnV5cyxyYXdfbW9kZWxfcmVzcG9uc2UucHJpb3JpdHlfcmF3X21vZGVsX3Jlc3BvbnNlLHJhd19tb2RlbF9yZXNwb25zZS5pc3N1ZXNfb25lX3VzZF9idXlzLHJhd19tb2RlbF9yZXNwb25zZS5wcmlvcml0eV9vbmVfdXNkX2J1eXMscmF3X21vZGVsX3Jlc3BvbnNlLmFjY2lkZW50X2Nvc3QscmF3X21vZGVsX3Jlc3BvbnNlLnJlZnVuZF9yYXdfbW9kZWxfcmVzcG9uc2UsaXRlcmF0aW9uLml0ZXJhdGlvbixxdWVzdGlvbl90ZXh0LnJlZnVuZF9xdWVzdGlvbl90ZXh0LHF1ZXN0aW9uX3RleHQuYWNjaWRlbnRfcXVlc3Rpb25fdGV4dCxxdWVzdGlvbl90ZXh0LnByaW1hcnlfaXNzdWVfcXVlc3Rpb25fdGV4dCxxdWVzdGlvbl90ZXh0Lmlzc3Vlc19xdWVzdGlvbl90ZXh0LHF1ZXN0aW9uX3RleHQucHJpb3JpdHlfcXVlc3Rpb25fdGV4dCxxdWVzdGlvbl90ZXh0LnNlbnRpbWVudF9xdWVzdGlvbl90ZXh0LHF1ZXN0aW9uX29wdGlvbnMuaXNzdWVzX3F1ZXN0aW9uX29wdGlvbnMscXVlc3Rpb25fb3B0aW9ucy5zZW50aW1lbnRfcXVlc3Rpb25fb3B0aW9ucyxxdWVzdGlvbl9vcHRpb25zLnByaW1hcnlfaXNzdWVfcXVlc3Rpb25fb3B0aW9ucyxxdWVzdGlvbl9vcHRpb25zLnJlZnVuZF9xdWVzdGlvbl9vcHRpb25zLHF1ZXN0aW9uX29wdGlvbnMuYWNjaWRlbnRfcXVlc3Rpb25fb3B0aW9ucyxxdWVzdGlvbl9vcHRpb25zLnByaW9yaXR5X3F1ZXN0aW9uX29wdGlvbnMscXVlc3Rpb25fdHlwZS5wcmlvcml0eV9xdWVzdGlvbl90eXBlLHF1ZXN0aW9uX3R5cGUuYWNjaWRlbnRfcXVlc3Rpb25fdHlwZSxxdWVzdGlvbl90eXBlLnNlbnRpbWVudF9xdWVzdGlvbl90eXBlLHF1ZXN0aW9uX3R5cGUucmVmdW5kX3F1ZXN0aW9uX3R5cGUscXVlc3Rpb25fdHlwZS5wcmltYXJ5X2lzc3VlX3F1ZXN0aW9uX3R5cGUscXVlc3Rpb25fdHlwZS5pc3N1ZXNfcXVlc3Rpb25fdHlwZSxjb21tZW50LnByaW1hcnlfaXNzdWVfY29tbWVudCxjb21tZW50LnJlZnVuZF9jb21tZW50LGNvbW1lbnQucHJpb3JpdHlfY29tbWVudCxjb21tZW50Lmlzc3Vlc19jb21tZW50LGNvbW1lbnQuc2VudGltZW50X2NvbW1lbnQsY29tbWVudC5hY2NpZGVudF9jb21tZW50LGdlbmVyYXRlZF90b2tlbnMuc2VudGltZW50X2dlbmVyYXRlZF90b2tlbnMsZ2VuZXJhdGVkX3Rva2Vucy5pc3N1ZXNfZ2VuZXJhdGVkX3Rva2VucyxnZW5lcmF0ZWRfdG9rZW5zLnJlZnVuZF9nZW5lcmF0ZWRfdG9rZW5zLGdlbmVyYXRlZF90b2tlbnMucHJpbWFyeV9pc3N1ZV9nZW5lcmF0ZWRfdG9rZW5zLGdlbmVyYXRlZF90b2tlbnMuYWNjaWRlbnRfZ2VuZXJhdGVkX3Rva2VucyxnZW5lcmF0ZWRfdG9rZW5zLnByaW9yaXR5X2dlbmVyYXRlZF90b2tlbnMNCk5vdCBhcHBsaWNhYmxlLFNvbWV3aGF0IG5lZ2F0aXZlLE5vLFRoZSBwcmltYXJ5IGlzc3VlIGluIHRoaXMgdGlja2V0IGlzIHRoYXQgdGhlIGN1c3RvbWVyIGxlZnQgdGhlaXIgcGhvbmUgaW4gYSBjYXIgZHVyaW5nIHRoZWlyIGxhc3QgcmlkZSBhbmQgbmVlZHMgYXNzaXN0YW5jZSBpbiByZXRyaWV2aW5nIGl0LiwzLFsnbG9zdCBpdGVtJ10sSSBqdXN0IHJlYWxpemVkIEkgbGVmdCBteSBwaG9uZSBpbiB0aGUgY2FyIG9uIG15IGxhc3QgcmlkZS4gQ2FuIHlvdSBoZWxwIG1lIGdldCBpdCBiYWNrPyxZb3UgYXJlIGFuIGV4cGVydCBjdXN0b21lciBzZXJ2aWNlIGFnZW50LixBZ2VudF8wLDE1LFlvdSBhcmUgYW5zd2VyaW5nIHF1ZXN0aW9ucyBhcyBpZiB5b3Ugd2VyZSBhIGh1bWFuLiBEbyBub3QgYnJlYWsgY2hhcmFjdGVyLiwwLDEsMCxncHQtNG8sMC41LEZhbHNlLDEwMDAsMyxXaGF0IGlzIHRoZSBwcmltYXJ5IGlzc3VlIGluIHRoaXMgdGlja2V0PyBUaWNrZXQ6IEkganVzdCByZWFsaXplZCBJIGxlZnQgbXkgcGhvbmUgaW4gdGhlIGNhciBvbiBteSBsYXN0IHJpZGUuIENhbiB5b3UgaGVscCBtZSBnZXQgaXQgYmFjaz8sIllvdSBhcmUgYW5zd2VyaW5nIHF1ZXN0aW9ucyBhcyBpZiB5b3Ugd2VyZSBhIGh1bWFuLiBEbyBub3QgYnJlYWsgY2hhcmFjdGVyLiBZb3VyIHRyYWl0czogeydwZXJzb25hJzogJ1lvdSBhcmUgYW4gZXhwZXJ0IGN1c3RvbWVyIHNlcnZpY2UgYWdlbnQuJywgJ3llYXJzX2V4cGVyaWVuY2UnOiAxNX0iLCJZb3UgYXJlIGFuc3dlcmluZyBxdWVzdGlvbnMgYXMgaWYgeW91IHdlcmUgYSBodW1hbi4gRG8gbm90IGJyZWFrIGNoYXJhY3Rlci4gWW91ciB0cmFpdHM6IHsncGVyc29uYSc6ICdZb3UgYXJlIGFuIGV4cGVydCBjdXN0b21lciBzZXJ2aWNlIGFnZW50LicsICd5ZWFyc19leHBlcmllbmNlJzogMTV9IiwiQ2hlY2sgYWxsIG9mIHRoZSBpc3N1ZXMgbWVudGlvbmVkIGluIHRoaXMgdGlja2V0OiBJIGp1c3QgcmVhbGl6ZWQgSSBsZWZ0IG15IHBob25lIGluIHRoZSBjYXIgb24gbXkgbGFzdCByaWRlLiBDYW4geW91IGhlbHAgbWUgZ2V0IGl0IGJhY2s/CgogICAgCjA6IHNhZmV0eQogICAgCjE6IGNsZWFubGluZXNzCiAgICAKMjogZHJpdmVyIHBlcmZvcm1hbmNlCiAgICAKMzogR1BTL3JvdXRlCiAgICAKNDogbG9zdCBpdGVtCiAgICAKNTogb3RoZXIKICAgIAoKCgoKCgpQbGVhc2UgcmVzcG9uZCBvbmx5IHdpdGggYSBjb21tYS1zZXBhcmF0ZWQgbGlzdCBvZiB0aGUgY29kZSBvZiB0aGUgb3B0aW9ucyB0aGF0IGFwcGx5LCB3aXRoIHNxdWFyZSBicmFja2V0cy4gRS5nLiwgWzAsIDEsIDNdCgoKQWZ0ZXIgdGhlIGFuc3dlciwgeW91IGNhbiBwdXQgYSBjb21tZW50IGV4cGxhaW5pbmcgeW91ciBjaG9pY2Ugb24gdGhlIG5leHQgbGluZS4iLCJPbiBhIHNjYWxlIGZyb20gMCB0byA1LCB3aGF0IGlzIHRoZSBwcmlvcml0eSBsZXZlbCBvZiB0aGlzIHRpY2tldD8gVGlja2V0OiBJIGp1c3QgcmVhbGl6ZWQgSSBsZWZ0IG15IHBob25lIGluIHRoZSBjYXIgb24gbXkgbGFzdCByaWRlLiBDYW4geW91IGhlbHAgbWUgZ2V0IGl0IGJhY2s/CgowIDogTG93ZXN0CgoxIDogCgoyIDogCgozIDogCgo0IDogCgo1IDogSGlnaGVzdAoKT25seSAxIG9wdGlvbiBtYXkgYmUgc2VsZWN0ZWQuCgpSZXNwb25kIG9ubHkgd2l0aCB0aGUgY29kZSBjb3JyZXNwb25kaW5nIHRvIG9uZSBvZiB0aGUgb3B0aW9ucy4gRS5nLiwgIiIxIiIgb3IgIiI1IiIgYnkgaXRzZWxmLgoKQWZ0ZXIgdGhlIGFuc3dlciwgeW91IGNhbiBwdXQgYSBjb21tZW50IGV4cGxhaW5pbmcgd2h5IHlvdSBjaG9zZSB0aGF0IG9wdGlvbiBvbiB0aGUgbmV4dCBsaW5lLiIsIllvdSBhcmUgYW5zd2VyaW5nIHF1ZXN0aW9ucyBhcyBpZiB5b3Ugd2VyZSBhIGh1bWFuLiBEbyBub3QgYnJlYWsgY2hhcmFjdGVyLiBZb3VyIHRyYWl0czogeydwZXJzb25hJzogJ1lvdSBhcmUgYW4gZXhwZXJ0IGN1c3RvbWVyIHNlcnZpY2UgYWdlbnQuJywgJ3llYXJzX2V4cGVyaWVuY2UnOiAxNX0iLCJZb3UgYXJlIGFuc3dlcmluZyBxdWVzdGlvbnMgYXMgaWYgeW91IHdlcmUgYSBodW1hbi4gRG8gbm90IGJyZWFrIGNoYXJhY3Rlci4gWW91ciB0cmFpdHM6IHsncGVyc29uYSc6ICdZb3UgYXJlIGFuIGV4cGVydCBjdXN0b21lciBzZXJ2aWNlIGFnZW50LicsICd5ZWFyc19leHBlcmllbmNlJzogMTV9IiwiWW91IGFyZSBhbnN3ZXJpbmcgcXVlc3Rpb25zIGFzIGlmIHlvdSB3ZXJlIGEgaHVtYW4uIERvIG5vdCBicmVhayBjaGFyYWN0ZXIuIFlvdXIgdHJhaXRzOiB7J3BlcnNvbmEnOiAnWW91IGFyZSBhbiBleHBlcnQgY3VzdG9tZXIgc2VydmljZSBhZ2VudC4nLCAneWVhcnNfZXhwZXJpZW5jZSc6IDE1fSIsIgpXaGF0IGlzIHRoZSBzZW50aW1lbnQgb2YgdGhpcyB0aWNrZXQ/IFRpY2tldDogSSBqdXN0IHJlYWxpemVkIEkgbGVmdCBteSBwaG9uZSBpbiB0aGUgY2FyIG9uIG15IGxhc3QgcmlkZS4gQ2FuIHlvdSBoZWxwIG1lIGdldCBpdCBiYWNrPwoKICAgIApWZXJ5IHBvc2l0aXZlCiAgICAKU29tZXdoYXQgcG9zaXRpdmUKICAgIApOZXV0cmFsCiAgICAKU29tZXdoYXQgbmVnYXRpdmUKICAgIApWZXJ5IG5lZ2F0aXZlCiAgICAKCk9ubHkgMSBvcHRpb24gbWF5IGJlIHNlbGVjdGVkLgoKUmVzcG9uZCBvbmx5IHdpdGggYSBzdHJpbmcgY29ycmVzcG9uZGluZyB0byBvbmUgb2YgdGhlIG9wdGlvbnMuCgoKQWZ0ZXIgdGhlIGFuc3dlciwgeW91IGNhbiBwdXQgYSBjb21tZW50IGV4cGxhaW5pbmcgd2h5IHlvdSBjaG9zZSB0aGF0IG9wdGlvbiBvbiB0aGUgbmV4dCBsaW5lLiIsIgpEb2VzIHRoZSBjdXN0b21lciBhc2sgZm9yIGEgcmVmdW5kIGluIHRoaXMgdGlja2V0PyBUaWNrZXQ6IEkganVzdCByZWFsaXplZCBJIGxlZnQgbXkgcGhvbmUgaW4gdGhlIGNhciBvbiBteSBsYXN0IHJpZGUuIENhbiB5b3UgaGVscCBtZSBnZXQgaXQgYmFjaz8KCiAgICAKTm8KICAgIApZZXMKICAgIAoKT25seSAxIG9wdGlvbiBtYXkgYmUgc2VsZWN0ZWQuClBsZWFzZSByZXNwb25kIHdpdGgganVzdCB5b3VyIGFuc3dlci4gCgoKQWZ0ZXIgdGhlIGFuc3dlciwgeW91IGNhbiBwdXQgYSBjb21tZW50IGV4cGxhaW5pbmcgeW91ciByZXNwb25zZS4iLCJZb3UgYXJlIGFuc3dlcmluZyBxdWVzdGlvbnMgYXMgaWYgeW91IHdlcmUgYSBodW1hbi4gRG8gbm90IGJyZWFrIGNoYXJhY3Rlci4gWW91ciB0cmFpdHM6IHsncGVyc29uYSc6ICdZb3UgYXJlIGFuIGV4cGVydCBjdXN0b21lciBzZXJ2aWNlIGFnZW50LicsICd5ZWFyc19leHBlcmllbmNlJzogMTV9IiwiCklmIHRoZSBwcmltYXJ5IGlzc3VlIGluIHRoaXMgdGlja2V0IGlzIHNhZmV0eSwgd2FzIHRoZXJlIGFuIGFjY2lkZW50IHdoZXJlIHNvbWVvbmUgd2FzIGh1cnQ/IFRpY2tldDogSSBqdXN0IHJlYWxpemVkIEkgbGVmdCBteSBwaG9uZSBpbiB0aGUgY2FyIG9uIG15IGxhc3QgcmlkZS4gQ2FuIHlvdSBoZWxwIG1lIGdldCBpdCBiYWNrPwoKICAgIApZZXMKICAgIApObwogICAgCk5vdCBhcHBsaWNhYmxlCiAgICAKCk9ubHkgMSBvcHRpb24gbWF5IGJlIHNlbGVjdGVkLgoKUmVzcG9uZCBvbmx5IHdpdGggYSBzdHJpbmcgY29ycmVzcG9uZGluZyB0byBvbmUgb2YgdGhlIG9wdGlvbnMuCgoKQWZ0ZXIgdGhlIGFuc3dlciwgeW91IGNhbiBwdXQgYSBjb21tZW50IGV4cGxhaW5pbmcgd2h5IHlvdSBjaG9zZSB0aGF0IG9wdGlvbiBvbiB0aGUgbmV4dCBsaW5lLiIsMC4wMDA2NTI1LCJ7J2lkJzogJ2NoYXRjbXBsLUFlT0xDMDdWcmJHckZ1aHF0NDlyZzN3U0xwU3dOJywgJ2Nob2ljZXMnOiBbeydmaW5pc2hfcmVhc29uJzogJ3N0b3AnLCAnaW5kZXgnOiAwLCAnbG9ncHJvYnMnOiBOb25lLCAnbWVzc2FnZSc6IHsnY29udGVudCc6ICdOb3QgYXBwbGljYWJsZSAgXG5UaGUgaXNzdWUgZGVzY3JpYmVkIGluIHRoZSB0aWNrZXQgaXMgYWJvdXQgYSBsb3N0IHBob25lLCBub3QgYW4gYWNjaWRlbnQgb3Igc2FmZXR5IGNvbmNlcm4uJywgJ3JlZnVzYWwnOiBOb25lLCAncm9sZSc6ICdhc3Npc3RhbnQnLCAnYXVkaW8nOiBOb25lLCAnZnVuY3Rpb25fY2FsbCc6IE5vbmUsICd0b29sX2NhbGxzJzogTm9uZX19XSwgJ2NyZWF0ZWQnOiAxNzM0MTkwMDUwLCAnbW9kZWwnOiAnZ3B0LTRvLTIwMjQtMDgtMDYnLCAnb2JqZWN0JzogJ2NoYXQuY29tcGxldGlvbicsICdzZXJ2aWNlX3RpZXInOiBOb25lLCAnc3lzdGVtX2ZpbmdlcnByaW50JzogJ2ZwXzlmYWJhOWYwMzgnLCAndXNhZ2UnOiB7J2NvbXBsZXRpb25fdG9rZW5zJzogMjIsICdwcm9tcHRfdG9rZW5zJzogMTQzLCAndG90YWxfdG9rZW5zJzogMTY1LCAnY29tcGxldGlvbl90b2tlbnNfZGV0YWlscyc6IHsnYWNjZXB0ZWRfcHJlZGljdGlvbl90b2tlbnMnOiAwLCAnYXVkaW9fdG9rZW5zJzogMCwgJ3JlYXNvbmluZ190b2tlbnMnOiAwLCAncmVqZWN0ZWRfcHJlZGljdGlvbl90b2tlbnMnOiAwfSwgJ3Byb21wdF90b2tlbnNfZGV0YWlscyc6IHsnYXVkaW9fdG9rZW5zJzogMCwgJ2NhY2hlZF90b2tlbnMnOiAwfX19IiwieydpZCc6ICdjaGF0Y21wbC1BZU9MQ0lLUWEwbzVRWU5kUEhpVlRET0xxVXhaRycsICdjaG9pY2VzJzogW3snZmluaXNoX3JlYXNvbic6ICdzdG9wJywgJ2luZGV4JzogMCwgJ2xvZ3Byb2JzJzogTm9uZSwgJ21lc3NhZ2UnOiB7J2NvbnRlbnQnOiAnU29tZXdoYXQgbmVnYXRpdmUgIFxuVGhlIHNlbnRpbWVudCBpcyBzb21ld2hhdCBuZWdhdGl2ZSBiZWNhdXNlIHRoZSBjdXN0b21lciBpcyBleHBlcmllbmNpbmcgYSBwcm9ibGVtIG9yIGluY29udmVuaWVuY2UgYnkgbG9zaW5nIHRoZWlyIHBob25lIGFuZCBpcyBzZWVraW5nIGFzc2lzdGFuY2UgdG8gcmVzb2x2ZSBpdC4nLCAncmVmdXNhbCc6IE5vbmUsICdyb2xlJzogJ2Fzc2lzdGFudCcsICdhdWRpbyc6IE5vbmUsICdmdW5jdGlvbl9jYWxsJzogTm9uZSwgJ3Rvb2xfY2FsbHMnOiBOb25lfX1dLCAnY3JlYXRlZCc6IDE3MzQxOTAwNTAsICdtb2RlbCc6ICdncHQtNG8tMjAyNC0wOC0wNicsICdvYmplY3QnOiAnY2hhdC5jb21wbGV0aW9uJywgJ3NlcnZpY2VfdGllcic6IE5vbmUsICdzeXN0ZW1fZmluZ2VycHJpbnQnOiAnZnBfYTc5ZDhkYWMxZicsICd1c2FnZSc6IHsnY29tcGxldGlvbl90b2tlbnMnOiAzMCwgJ3Byb21wdF90b2tlbnMnOiAxNDEsICd0b3RhbF90b2tlbnMnOiAxNzEsICdjb21wbGV0aW9uX3Rva2Vuc19kZXRhaWxzJzogeydhY2NlcHRlZF9wcmVkaWN0aW9uX3Rva2Vucyc6IDAsICdhdWRpb190b2tlbnMnOiAwLCAncmVhc29uaW5nX3Rva2Vucyc6IDAsICdyZWplY3RlZF9wcmVkaWN0aW9uX3Rva2Vucyc6IDB9LCAncHJvbXB0X3Rva2Vuc19kZXRhaWxzJzogeydhdWRpb190b2tlbnMnOiAwLCAnY2FjaGVkX3Rva2Vucyc6IDB9fX0iLDE1MzIuNTY3MDQ5ODA4NDI5MSwyMDMwLjQ1Njg1Mjc5MTg3ODIsInsnaWQnOiAnY2hhdGNtcGwtQWVPTENrWEpMcTUxWmlNTmFqNTBFeUs2alhYa3knLCAnY2hvaWNlcyc6IFt7J2ZpbmlzaF9yZWFzb24nOiAnc3RvcCcsICdpbmRleCc6IDAsICdsb2dwcm9icyc6IE5vbmUsICdtZXNzYWdlJzogeydjb250ZW50JzogJ1s0XSAgXG5UaGUgaXNzdWUgbWVudGlvbmVkIGluIHRoZSB0aWNrZXQgaXMgcmVsYXRlZCB0byBhIGxvc3QgaXRlbSwgc3BlY2lmaWNhbGx5IGEgcGhvbmUgbGVmdCBpbiB0aGUgY2FyLicsICdyZWZ1c2FsJzogTm9uZSwgJ3JvbGUnOiAnYXNzaXN0YW50JywgJ2F1ZGlvJzogTm9uZSwgJ2Z1bmN0aW9uX2NhbGwnOiBOb25lLCAndG9vbF9jYWxscyc6IE5vbmV9fV0sICdjcmVhdGVkJzogMTczNDE5MDA1MCwgJ21vZGVsJzogJ2dwdC00by0yMDI0LTA4LTA2JywgJ29iamVjdCc6ICdjaGF0LmNvbXBsZXRpb24nLCAnc2VydmljZV90aWVyJzogTm9uZSwgJ3N5c3RlbV9maW5nZXJwcmludCc6ICdmcF9mNzg1ZWI1ZjQ3JywgJ3VzYWdlJzogeydjb21wbGV0aW9uX3Rva2Vucyc6IDI1LCAncHJvbXB0X3Rva2Vucyc6IDE2NCwgJ3RvdGFsX3Rva2Vucyc6IDE4OSwgJ2NvbXBsZXRpb25fdG9rZW5zX2RldGFpbHMnOiB7J2FjY2VwdGVkX3ByZWRpY3Rpb25fdG9rZW5zJzogMCwgJ2F1ZGlvX3Rva2Vucyc6IDAsICdyZWFzb25pbmdfdG9rZW5zJzogMCwgJ3JlamVjdGVkX3ByZWRpY3Rpb25fdG9rZW5zJzogMH0sICdwcm9tcHRfdG9rZW5zX2RldGFpbHMnOiB7J2F1ZGlvX3Rva2Vucyc6IDAsICdjYWNoZWRfdG9rZW5zJzogMH19fSIsMC4wMDA3ODc1LDE3MzEuNjAxNzMxNjAxNzMxNywwLjAwMDQ5MjUsMC4wMDA2NiwieydpZCc6ICdjaGF0Y21wbC1BZU9MQ3hRSHlBRWY4b3FpWG4zUTV1VnpPYlRIRScsICdjaG9pY2VzJzogW3snZmluaXNoX3JlYXNvbic6ICdzdG9wJywgJ2luZGV4JzogMCwgJ2xvZ3Byb2JzJzogTm9uZSwgJ21lc3NhZ2UnOiB7J2NvbnRlbnQnOiAnVGhlIHByaW1hcnkgaXNzdWUgaW4gdGhpcyB0aWNrZXQgaXMgdGhhdCB0aGUgY3VzdG9tZXIgbGVmdCB0aGVpciBwaG9uZSBpbiBhIGNhciBkdXJpbmcgdGhlaXIgbGFzdCByaWRlIGFuZCBuZWVkcyBhc3Npc3RhbmNlIGluIHJldHJpZXZpbmcgaXQuJywgJ3JlZnVzYWwnOiBOb25lLCAncm9sZSc6ICdhc3Npc3RhbnQnLCAnYXVkaW8nOiBOb25lLCAnZnVuY3Rpb25fY2FsbCc6IE5vbmUsICd0b29sX2NhbGxzJzogTm9uZX19XSwgJ2NyZWF0ZWQnOiAxNzM0MTkwMDUwLCAnbW9kZWwnOiAnZ3B0LTRvLTIwMjQtMDgtMDYnLCAnb2JqZWN0JzogJ2NoYXQuY29tcGxldGlvbicsICdzZXJ2aWNlX3RpZXInOiBOb25lLCAnc3lzdGVtX2ZpbmdlcnByaW50JzogJ2ZwX2E3OWQ4ZGFjMWYnLCAndXNhZ2UnOiB7J2NvbXBsZXRpb25fdG9rZW5zJzogMjcsICdwcm9tcHRfdG9rZW5zJzogODQsICd0b3RhbF90b2tlbnMnOiAxMTEsICdjb21wbGV0aW9uX3Rva2Vuc19kZXRhaWxzJzogeydhY2NlcHRlZF9wcmVkaWN0aW9uX3Rva2Vucyc6IDAsICdhdWRpb190b2tlbnMnOiAwLCAncmVhc29uaW5nX3Rva2Vucyc6IDAsICdyZWplY3RlZF9wcmVkaWN0aW9uX3Rva2Vucyc6IDB9LCAncHJvbXB0X3Rva2Vuc19kZXRhaWxzJzogeydhdWRpb190b2tlbnMnOiAwLCAnY2FjaGVkX3Rva2Vucyc6IDB9fX0iLDAuMDAwNDgsMjA4My4zMzMzMzMzMzMzMzM1LCJ7J2lkJzogJ2NoYXRjbXBsLUFlT0xDRjFNUER1dXE3OXE5T2VPRzNGMFVkWWpVJywgJ2Nob2ljZXMnOiBbeydmaW5pc2hfcmVhc29uJzogJ3N0b3AnLCAnaW5kZXgnOiAwLCAnbG9ncHJvYnMnOiBOb25lLCAnbWVzc2FnZSc6IHsnY29udGVudCc6ICczICBcblRoaXMgc2l0dWF0aW9uIGlzIHVyZ2VudCBiZWNhdXNlIHRoZSBjdXN0b21lciBuZWVkcyB0aGVpciBwaG9uZSBiYWNrLCBidXQgaXQgaXMgbm90IGFuIGVtZXJnZW5jeSBvciBsaWZlLXRocmVhdGVuaW5nIHNpdHVhdGlvbi4gSXQgcmVxdWlyZXMgcHJvbXB0IGF0dGVudGlvbiB0byBmYWNpbGl0YXRlIHRoZSByZWNvdmVyeSBvZiB0aGUgcGhvbmUuJywgJ3JlZnVzYWwnOiBOb25lLCAncm9sZSc6ICdhc3Npc3RhbnQnLCAnYXVkaW8nOiBOb25lLCAnZnVuY3Rpb25fY2FsbCc6IE5vbmUsICd0b29sX2NhbGxzJzogTm9uZX19XSwgJ2NyZWF0ZWQnOiAxNzM0MTkwMDUwLCAnbW9kZWwnOiAnZ3B0LTRvLTIwMjQtMDgtMDYnLCAnb2JqZWN0JzogJ2NoYXQuY29tcGxldGlvbicsICdzZXJ2aWNlX3RpZXInOiBOb25lLCAnc3lzdGVtX2ZpbmdlcnByaW50JzogJ2ZwX2E3OWQ4ZGFjMWYnLCAndXNhZ2UnOiB7J2NvbXBsZXRpb25fdG9rZW5zJzogMzcsICdwcm9tcHRfdG9rZW5zJzogMTY3LCAndG90YWxfdG9rZW5zJzogMjA0LCAnY29tcGxldGlvbl90b2tlbnNfZGV0YWlscyc6IHsnYWNjZXB0ZWRfcHJlZGljdGlvbl90b2tlbnMnOiAwLCAnYXVkaW9fdG9rZW5zJzogMCwgJ3JlYXNvbmluZ190b2tlbnMnOiAwLCAncmVqZWN0ZWRfcHJlZGljdGlvbl90b2tlbnMnOiAwfSwgJ3Byb21wdF90b2tlbnNfZGV0YWlscyc6IHsnYXVkaW9fdG9rZW5zJzogMCwgJ2NhY2hlZF90b2tlbnMnOiAwfX19IiwxNTE1LjE1MTUxNTE1MTUxNTIsMTI2OS44NDEyNjk4NDEyNjk5LDAuMDAwNTc3NSwieydpZCc6ICdjaGF0Y21wbC1BZU9MQzhsYjdOaUZyRUIwbzNuRTc5YVZyY2lFWicsICdjaG9pY2VzJzogW3snZmluaXNoX3JlYXNvbic6ICdzdG9wJywgJ2luZGV4JzogMCwgJ2xvZ3Byb2JzJzogTm9uZSwgJ21lc3NhZ2UnOiB7J2NvbnRlbnQnOiAnTm9cblxuVGhlIHRpY2tldCBpcyByZXF1ZXN0aW5nIGFzc2lzdGFuY2UgaW4gcmV0cmlldmluZyBhIGxvc3QgaXRlbSwgbm90IGFza2luZyBmb3IgYSByZWZ1bmQuJywgJ3JlZnVzYWwnOiBOb25lLCAncm9sZSc6ICdhc3Npc3RhbnQnLCAnYXVkaW8nOiBOb25lLCAnZnVuY3Rpb25fY2FsbCc6IE5vbmUsICd0b29sX2NhbGxzJzogTm9uZX19XSwgJ2NyZWF0ZWQnOiAxNzM0MTkwMDUwLCAnbW9kZWwnOiAnZ3B0LTRvLTIwMjQtMDgtMDYnLCAnb2JqZWN0JzogJ2NoYXQuY29tcGxldGlvbicsICdzZXJ2aWNlX3RpZXInOiBOb25lLCAnc3lzdGVtX2ZpbmdlcnByaW50JzogJ2ZwXzlmYWJhOWYwMzgnLCAndXNhZ2UnOiB7J2NvbXBsZXRpb25fdG9rZW5zJzogMTksICdwcm9tcHRfdG9rZW5zJzogMTIxLCAndG90YWxfdG9rZW5zJzogMTQwLCAnY29tcGxldGlvbl90b2tlbnNfZGV0YWlscyc6IHsnYWNjZXB0ZWRfcHJlZGljdGlvbl90b2tlbnMnOiAwLCAnYXVkaW9fdG9rZW5zJzogMCwgJ3JlYXNvbmluZ190b2tlbnMnOiAwLCAncmVqZWN0ZWRfcHJlZGljdGlvbl90b2tlbnMnOiAwfSwgJ3Byb21wdF90b2tlbnNfZGV0YWlscyc6IHsnYXVkaW9fdG9rZW5zJzogMCwgJ2NhY2hlZF90b2tlbnMnOiAwfX19IiwwLERvZXMgdGhlIGN1c3RvbWVyIGFzayBmb3IgYSByZWZ1bmQgaW4gdGhpcyB0aWNrZXQ/IFRpY2tldDoge3sgdGlja2V0IH19LCJJZiB0aGUgcHJpbWFyeSBpc3N1ZSBpbiB0aGlzIHRpY2tldCBpcyBzYWZldHksIHdhcyB0aGVyZSBhbiBhY2NpZGVudCB3aGVyZSBzb21lb25lIHdhcyBodXJ0PyBUaWNrZXQ6IHt7IHRpY2tldCB9fSIsV2hhdCBpcyB0aGUgcHJpbWFyeSBpc3N1ZSBpbiB0aGlzIHRpY2tldD8gVGlja2V0OiB7eyB0aWNrZXQgfX0sQ2hlY2sgYWxsIG9mIHRoZSBpc3N1ZXMgbWVudGlvbmVkIGluIHRoaXMgdGlja2V0OiB7eyB0aWNrZXQgfX0sIk9uIGEgc2NhbGUgZnJvbSAwIHRvIDUsIHdoYXQgaXMgdGhlIHByaW9yaXR5IGxldmVsIG9mIHRoaXMgdGlja2V0PyBUaWNrZXQ6IHt7IHRpY2tldCB9fSIsV2hhdCBpcyB0aGUgc2VudGltZW50IG9mIHRoaXMgdGlja2V0PyBUaWNrZXQ6IHt7IHRpY2tldCB9fSwiWydzYWZldHknLCAnY2xlYW5saW5lc3MnLCAnZHJpdmVyIHBlcmZvcm1hbmNlJywgJ0dQUy9yb3V0ZScsICdsb3N0IGl0ZW0nLCAnb3RoZXInXSIsIlsnVmVyeSBwb3NpdGl2ZScsICdTb21ld2hhdCBwb3NpdGl2ZScsICdOZXV0cmFsJywgJ1NvbWV3aGF0IG5lZ2F0aXZlJywgJ1ZlcnkgbmVnYXRpdmUnXSIsLCJbJ05vJywgJ1llcyddIiwiWydZZXMnLCAnTm8nLCAnTm90IGFwcGxpY2FibGUnXSIsIlswLCAxLCAyLCAzLCA0LCA1XSIsbGluZWFyX3NjYWxlLG11bHRpcGxlX2Nob2ljZSxtdWx0aXBsZV9jaG9pY2UseWVzX25vLGZyZWVfdGV4dCxjaGVja2JveCwsIlRoZSB0aWNrZXQgaXMgcmVxdWVzdGluZyBhc3Npc3RhbmNlIGluIHJldHJpZXZpbmcgYSBsb3N0IGl0ZW0sIG5vdCBhc2tpbmcgZm9yIGEgcmVmdW5kLiIsIlRoaXMgc2l0dWF0aW9uIGlzIHVyZ2VudCBiZWNhdXNlIHRoZSBjdXN0b21lciBuZWVkcyB0aGVpciBwaG9uZSBiYWNrLCBidXQgaXQgaXMgbm90IGFuIGVtZXJnZW5jeSBvciBsaWZlLXRocmVhdGVuaW5nIHNpdHVhdGlvbi4gSXQgcmVxdWlyZXMgcHJvbXB0IGF0dGVudGlvbiB0byBmYWNpbGl0YXRlIHRoZSByZWNvdmVyeSBvZiB0aGUgcGhvbmUuIiwiVGhlIGlzc3VlIG1lbnRpb25lZCBpbiB0aGUgdGlja2V0IGlzIHJlbGF0ZWQgdG8gYSBsb3N0IGl0ZW0sIHNwZWNpZmljYWxseSBhIHBob25lIGxlZnQgaW4gdGhlIGNhci4iLFRoZSBzZW50aW1lbnQgaXMgc29tZXdoYXQgbmVnYXRpdmUgYmVjYXVzZSB0aGUgY3VzdG9tZXIgaXMgZXhwZXJpZW5jaW5nIGEgcHJvYmxlbSBvciBpbmNvbnZlbmllbmNlIGJ5IGxvc2luZyB0aGVpciBwaG9uZSBhbmQgaXMgc2Vla2luZyBhc3Npc3RhbmNlIHRvIHJlc29sdmUgaXQuLCJUaGUgaXNzdWUgZGVzY3JpYmVkIGluIHRoZSB0aWNrZXQgaXMgYWJvdXQgYSBsb3N0IHBob25lLCBub3QgYW4gYWNjaWRlbnQgb3Igc2FmZXR5IGNvbmNlcm4uIiwiU29tZXdoYXQgbmVnYXRpdmUgIApUaGUgc2VudGltZW50IGlzIHNvbWV3aGF0IG5lZ2F0aXZlIGJlY2F1c2UgdGhlIGN1c3RvbWVyIGlzIGV4cGVyaWVuY2luZyBhIHByb2JsZW0gb3IgaW5jb252ZW5pZW5jZSBieSBsb3NpbmcgdGhlaXIgcGhvbmUgYW5kIGlzIHNlZWtpbmcgYXNzaXN0YW5jZSB0byByZXNvbHZlIGl0LiIsIls0XSAgClRoZSBpc3N1ZSBtZW50aW9uZWQgaW4gdGhlIHRpY2tldCBpcyByZWxhdGVkIHRvIGEgbG9zdCBpdGVtLCBzcGVjaWZpY2FsbHkgYSBwaG9uZSBsZWZ0IGluIHRoZSBjYXIuIiwiTm8KClRoZSB0aWNrZXQgaXMgcmVxdWVzdGluZyBhc3Npc3RhbmNlIGluIHJldHJpZXZpbmcgYSBsb3N0IGl0ZW0sIG5vdCBhc2tpbmcgZm9yIGEgcmVmdW5kLiIsVGhlIHByaW1hcnkgaXNzdWUgaW4gdGhpcyB0aWNrZXQgaXMgdGhhdCB0aGUgY3VzdG9tZXIgbGVmdCB0aGVpciBwaG9uZSBpbiBhIGNhciBkdXJpbmcgdGhlaXIgbGFzdCByaWRlIGFuZCBuZWVkcyBhc3Npc3RhbmNlIGluIHJldHJpZXZpbmcgaXQuLCJOb3QgYXBwbGljYWJsZSAgClRoZSBpc3N1ZSBkZXNjcmliZWQgaW4gdGhlIHRpY2tldCBpcyBhYm91dCBhIGxvc3QgcGhvbmUsIG5vdCBhbiBhY2NpZGVudCBvciBzYWZldHkgY29uY2Vybi4iLCIzICAKVGhpcyBzaXR1YXRpb24gaXMgdXJnZW50IGJlY2F1c2UgdGhlIGN1c3RvbWVyIG5lZWRzIHRoZWlyIHBob25lIGJhY2ssIGJ1dCBpdCBpcyBub3QgYW4gZW1lcmdlbmN5IG9yIGxpZmUtdGhyZWF0ZW5pbmcgc2l0dWF0aW9uLiBJdCByZXF1aXJlcyBwcm9tcHQgYXR0ZW50aW9uIHRvIGZhY2lsaXRhdGUgdGhlIHJlY292ZXJ5IG9mIHRoZSBwaG9uZS4iDQpObyxWZXJ5IG5lZ2F0aXZlLE5vLCJUaGUgcHJpbWFyeSBpc3N1ZSBpbiB0aGlzIHRpY2tldCBpcyB0aGUgY3VzdG9tZXIncyBkaXNzYXRpc2ZhY3Rpb24gd2l0aCB0aGUgYmVoYXZpb3Igb2YgdGhlIGRyaXZlciwgd2hvIHdhcyBkZXNjcmliZWQgYXMgcnVkZSBhbmQgdW5wcm9mZXNzaW9uYWwuIEFkZHJlc3NpbmcgdGhpcyBjb25jZXJuIGludm9sdmVzIGFja25vd2xlZGdpbmcgdGhlIGN1c3RvbWVyJ3MgZXhwZXJpZW5jZSwgYXBvbG9naXppbmcgZm9yIHRoZSBpbmNvbnZlbmllbmNlLCBhbmQgdGFraW5nIGFwcHJvcHJpYXRlIHN0ZXBzIHRvIGVuc3VyZSBzdWNoIGJlaGF2aW9yIGlzIG5vdCByZXBlYXRlZCBpbiB0aGUgZnV0dXJlLiIsMyxbJ2RyaXZlciBwZXJmb3JtYW5jZSddLEknbSB1bmhhcHB5IHdpdGggbXkgcmVjZW50IGV4cGVyaWVuY2UuIFRoZSBkcml2ZXIgd2FzIHZlcnkgcnVkZSBhbmQgdW5wcm9mZXNzaW9uYWwuLFlvdSBhcmUgYW4gZXhwZXJ0IGN1c3RvbWVyIHNlcnZpY2UgYWdlbnQuLEFnZW50XzEsMTUsWW91IGFyZSBhbnN3ZXJpbmcgcXVlc3Rpb25zIGFzIGlmIHlvdSB3ZXJlIGEgaHVtYW4uIERvIG5vdCBicmVhayBjaGFyYWN0ZXIuLDAsMSwwLGdwdC00bywwLjUsRmFsc2UsMTAwMCwzLFdoYXQgaXMgdGhlIHByaW1hcnkgaXNzdWUgaW4gdGhpcyB0aWNrZXQ/IFRpY2tldDogSSdtIHVuaGFwcHkgd2l0aCBteSByZWNlbnQgZXhwZXJpZW5jZS4gVGhlIGRyaXZlciB3YXMgdmVyeSBydWRlIGFuZCB1bnByb2Zlc3Npb25hbC4sIllvdSBhcmUgYW5zd2VyaW5nIHF1ZXN0aW9ucyBhcyBpZiB5b3Ugd2VyZSBhIGh1bWFuLiBEbyBub3QgYnJlYWsgY2hhcmFjdGVyLiBZb3VyIHRyYWl0czogeydwZXJzb25hJzogJ1lvdSBhcmUgYW4gZXhwZXJ0IGN1c3RvbWVyIHNlcnZpY2UgYWdlbnQuJywgJ3llYXJzX2V4cGVyaWVuY2UnOiAxNX0iLCJZb3UgYXJlIGFuc3dlcmluZyBxdWVzdGlvbnMgYXMgaWYgeW91IHdlcmUgYSBodW1hbi4gRG8gbm90IGJyZWFrIGNoYXJhY3Rlci4gWW91ciB0cmFpdHM6IHsncGVyc29uYSc6ICdZb3UgYXJlIGFuIGV4cGVydCBjdXN0b21lciBzZXJ2aWNlIGFnZW50LicsICd5ZWFyc19leHBlcmllbmNlJzogMTV9IiwiQ2hlY2sgYWxsIG9mIHRoZSBpc3N1ZXMgbWVudGlvbmVkIGluIHRoaXMgdGlja2V0OiBJJ20gdW5oYXBweSB3aXRoIG15IHJlY2VudCBleHBlcmllbmNlLiBUaGUgZHJpdmVyIHdhcyB2ZXJ5IHJ1ZGUgYW5kIHVucHJvZmVzc2lvbmFsLgoKICAgIAowOiBzYWZldHkKICAgIAoxOiBjbGVhbmxpbmVzcwogICAgCjI6IGRyaXZlciBwZXJmb3JtYW5jZQogICAgCjM6IEdQUy9yb3V0ZQogICAgCjQ6IGxvc3QgaXRlbQogICAgCjU6IG90aGVyCiAgICAKCgoKCgoKUGxlYXNlIHJlc3BvbmQgb25seSB3aXRoIGEgY29tbWEtc2VwYXJhdGVkIGxpc3Qgb2YgdGhlIGNvZGUgb2YgdGhlIG9wdGlvbnMgdGhhdCBhcHBseSwgd2l0aCBzcXVhcmUgYnJhY2tldHMuIEUuZy4sIFswLCAxLCAzXQoKCkFmdGVyIHRoZSBhbnN3ZXIsIHlvdSBjYW4gcHV0IGEgY29tbWVudCBleHBsYWluaW5nIHlvdXIgY2hvaWNlIG9uIHRoZSBuZXh0IGxpbmUuIiwiT24gYSBzY2FsZSBmcm9tIDAgdG8gNSwgd2hhdCBpcyB0aGUgcHJpb3JpdHkgbGV2ZWwgb2YgdGhpcyB0aWNrZXQ/IFRpY2tldDogSSdtIHVuaGFwcHkgd2l0aCBteSByZWNlbnQgZXhwZXJpZW5jZS4gVGhlIGRyaXZlciB3YXMgdmVyeSBydWRlIGFuZCB1bnByb2Zlc3Npb25hbC4KCjAgOiBMb3dlc3QKCjEgOiAKCjIgOiAKCjMgOiAKCjQgOiAKCjUgOiBIaWdoZXN0CgpPbmx5IDEgb3B0aW9uIG1heSBiZSBzZWxlY3RlZC4KClJlc3BvbmQgb25seSB3aXRoIHRoZSBjb2RlIGNvcnJlc3BvbmRpbmcgdG8gb25lIG9mIHRoZSBvcHRpb25zLiBFLmcuLCAiIjEiIiBvciAiIjUiIiBieSBpdHNlbGYuCgpBZnRlciB0aGUgYW5zd2VyLCB5b3UgY2FuIHB1dCBhIGNvbW1lbnQgZXhwbGFpbmluZyB3aHkgeW91IGNob3NlIHRoYXQgb3B0aW9uIG9uIHRoZSBuZXh0IGxpbmUuIiwiWW91IGFyZSBhbnN3ZXJpbmcgcXVlc3Rpb25zIGFzIGlmIHlvdSB3ZXJlIGEgaHVtYW4uIERvIG5vdCBicmVhayBjaGFyYWN0ZXIuIFlvdXIgdHJhaXRzOiB7J3BlcnNvbmEnOiAnWW91IGFyZSBhbiBleHBlcnQgY3VzdG9tZXIgc2VydmljZSBhZ2VudC4nLCAneWVhcnNfZXhwZXJpZW5jZSc6IDE1fSIsIllvdSBhcmUgYW5zd2VyaW5nIHF1ZXN0aW9ucyBhcyBpZiB5b3Ugd2VyZSBhIGh1bWFuLiBEbyBub3QgYnJlYWsgY2hhcmFjdGVyLiBZb3VyIHRyYWl0czogeydwZXJzb25hJzogJ1lvdSBhcmUgYW4gZXhwZXJ0IGN1c3RvbWVyIHNlcnZpY2UgYWdlbnQuJywgJ3llYXJzX2V4cGVyaWVuY2UnOiAxNX0iLCJZb3UgYXJlIGFuc3dlcmluZyBxdWVzdGlvbnMgYXMgaWYgeW91IHdlcmUgYSBodW1hbi4gRG8gbm90IGJyZWFrIGNoYXJhY3Rlci4gWW91ciB0cmFpdHM6IHsncGVyc29uYSc6ICdZb3UgYXJlIGFuIGV4cGVydCBjdXN0b21lciBzZXJ2aWNlIGFnZW50LicsICd5ZWFyc19leHBlcmllbmNlJzogMTV9IiwiCldoYXQgaXMgdGhlIHNlbnRpbWVudCBvZiB0aGlzIHRpY2tldD8gVGlja2V0OiBJJ20gdW5oYXBweSB3aXRoIG15IHJlY2VudCBleHBlcmllbmNlLiBUaGUgZHJpdmVyIHdhcyB2ZXJ5IHJ1ZGUgYW5kIHVucHJvZmVzc2lvbmFsLgoKICAgIApWZXJ5IHBvc2l0aXZlCiAgICAKU29tZXdoYXQgcG9zaXRpdmUKICAgIApOZXV0cmFsCiAgICAKU29tZXdoYXQgbmVnYXRpdmUKICAgIApWZXJ5IG5lZ2F0aXZlCiAgICAKCk9ubHkgMSBvcHRpb24gbWF5IGJlIHNlbGVjdGVkLgoKUmVzcG9uZCBvbmx5IHdpdGggYSBzdHJpbmcgY29ycmVzcG9uZGluZyB0byBvbmUgb2YgdGhlIG9wdGlvbnMuCgoKQWZ0ZXIgdGhlIGFuc3dlciwgeW91IGNhbiBwdXQgYSBjb21tZW50IGV4cGxhaW5pbmcgd2h5IHlvdSBjaG9zZSB0aGF0IG9wdGlvbiBvbiB0aGUgbmV4dCBsaW5lLiIsIgpEb2VzIHRoZSBjdXN0b21lciBhc2sgZm9yIGEgcmVmdW5kIGluIHRoaXMgdGlja2V0PyBUaWNrZXQ6IEknbSB1bmhhcHB5IHdpdGggbXkgcmVjZW50IGV4cGVyaWVuY2UuIFRoZSBkcml2ZXIgd2FzIHZlcnkgcnVkZSBhbmQgdW5wcm9mZXNzaW9uYWwuCgogICAgCk5vCiAgICAKWWVzCiAgICAKCk9ubHkgMSBvcHRpb24gbWF5IGJlIHNlbGVjdGVkLgpQbGVhc2UgcmVzcG9uZCB3aXRoIGp1c3QgeW91ciBhbnN3ZXIuIAoKCkFmdGVyIHRoZSBhbnN3ZXIsIHlvdSBjYW4gcHV0IGEgY29tbWVudCBleHBsYWluaW5nIHlvdXIgcmVzcG9uc2UuIiwiWW91IGFyZSBhbnN3ZXJpbmcgcXVlc3Rpb25zIGFzIGlmIHlvdSB3ZXJlIGEgaHVtYW4uIERvIG5vdCBicmVhayBjaGFyYWN0ZXIuIFlvdXIgdHJhaXRzOiB7J3BlcnNvbmEnOiAnWW91IGFyZSBhbiBleHBlcnQgY3VzdG9tZXIgc2VydmljZSBhZ2VudC4nLCAneWVhcnNfZXhwZXJpZW5jZSc6IDE1fSIsIgpJZiB0aGUgcHJpbWFyeSBpc3N1ZSBpbiB0aGlzIHRpY2tldCBpcyBzYWZldHksIHdhcyB0aGVyZSBhbiBhY2NpZGVudCB3aGVyZSBzb21lb25lIHdhcyBodXJ0PyBUaWNrZXQ6IEknbSB1bmhhcHB5IHdpdGggbXkgcmVjZW50IGV4cGVyaWVuY2UuIFRoZSBkcml2ZXIgd2FzIHZlcnkgcnVkZSBhbmQgdW5wcm9mZXNzaW9uYWwuCgogICAgClllcwogICAgCk5vCiAgICAKTm90IGFwcGxpY2FibGUKICAgIAoKT25seSAxIG9wdGlvbiBtYXkgYmUgc2VsZWN0ZWQuCgpSZXNwb25kIG9ubHkgd2l0aCBhIHN0cmluZyBjb3JyZXNwb25kaW5nIHRvIG9uZSBvZiB0aGUgb3B0aW9ucy4KCgpBZnRlciB0aGUgYW5zd2VyLCB5b3UgY2FuIHB1dCBhIGNvbW1lbnQgZXhwbGFpbmluZyB3aHkgeW91IGNob3NlIHRoYXQgb3B0aW9uIG9uIHRoZSBuZXh0IGxpbmUuIiwwLjAwMDU4NSwieydpZCc6ICdjaGF0Y21wbC1BZU9MQ21pTG9OckxFNzU4YWxBalZIYjh2alU5SycsICdjaG9pY2VzJzogW3snZmluaXNoX3JlYXNvbic6ICdzdG9wJywgJ2luZGV4JzogMCwgJ2xvZ3Byb2JzJzogTm9uZSwgJ21lc3NhZ2UnOiB7J2NvbnRlbnQnOiAnTm8gIFxuVGhlIHRpY2tldCBtZW50aW9ucyBydWRlbmVzcyBhbmQgdW5wcm9mZXNzaW9uYWwgYmVoYXZpb3IgYnV0IGRvZXMgbm90IGluZGljYXRlIHRoYXQgYW4gYWNjaWRlbnQgb2NjdXJyZWQgb3IgdGhhdCBzb21lb25lIHdhcyBodXJ0LicsICdyZWZ1c2FsJzogTm9uZSwgJ3JvbGUnOiAnYXNzaXN0YW50JywgJ2F1ZGlvJzogTm9uZSwgJ2Z1bmN0aW9uX2NhbGwnOiBOb25lLCAndG9vbF9jYWxscyc6IE5vbmV9fV0sICdjcmVhdGVkJzogMTczNDE5MDA1MCwgJ21vZGVsJzogJ2dwdC00by0yMDI0LTA4LTA2JywgJ29iamVjdCc6ICdjaGF0LmNvbXBsZXRpb24nLCAnc2VydmljZV90aWVyJzogTm9uZSwgJ3N5c3RlbV9maW5nZXJwcmludCc6ICdmcF9hNzlkOGRhYzFmJywgJ3VzYWdlJzogeydjb21wbGV0aW9uX3Rva2Vucyc6IDI2LCAncHJvbXB0X3Rva2Vucyc6IDEzNiwgJ3RvdGFsX3Rva2Vucyc6IDE2MiwgJ2NvbXBsZXRpb25fdG9rZW5zX2RldGFpbHMnOiB7J2FjY2VwdGVkX3ByZWRpY3Rpb25fdG9rZW5zJzogMCwgJ2F1ZGlvX3Rva2Vucyc6IDAsICdyZWFzb25pbmdfdG9rZW5zJzogMCwgJ3JlamVjdGVkX3ByZWRpY3Rpb25fdG9rZW5zJzogMH0sICdwcm9tcHRfdG9rZW5zX2RldGFpbHMnOiB7J2F1ZGlvX3Rva2Vucyc6IDAsICdjYWNoZWRfdG9rZW5zJzogMH19fSIsInsnaWQnOiAnY2hhdGNtcGwtQWVPTEN6THhlbG1NRlZtM3dZaEtpN1BjYjU5UkYnLCAnY2hvaWNlcyc6IFt7J2ZpbmlzaF9yZWFzb24nOiAnc3RvcCcsICdpbmRleCc6IDAsICdsb2dwcm9icyc6IE5vbmUsICdtZXNzYWdlJzogeydjb250ZW50JzogJ1ZlcnkgbmVnYXRpdmVcblxuVGhlIHRpY2tldCBleHByZXNzZXMgZGlzc2F0aXNmYWN0aW9uIGFuZCBkZXNjcmliZXMgdGhlIGRyaXZlciBhcyAiInZlcnkgcnVkZSBhbmQgdW5wcm9mZXNzaW9uYWwsIiIgaW5kaWNhdGluZyBhIHN0cm9uZyBuZWdhdGl2ZSBzZW50aW1lbnQuJywgJ3JlZnVzYWwnOiBOb25lLCAncm9sZSc6ICdhc3Npc3RhbnQnLCAnYXVkaW8nOiBOb25lLCAnZnVuY3Rpb25fY2FsbCc6IE5vbmUsICd0b29sX2NhbGxzJzogTm9uZX19XSwgJ2NyZWF0ZWQnOiAxNzM0MTkwMDUwLCAnbW9kZWwnOiAnZ3B0LTRvLTIwMjQtMDgtMDYnLCAnb2JqZWN0JzogJ2NoYXQuY29tcGxldGlvbicsICdzZXJ2aWNlX3RpZXInOiBOb25lLCAnc3lzdGVtX2ZpbmdlcnByaW50JzogJ2ZwX2E3OWQ4ZGFjMWYnLCAndXNhZ2UnOiB7J2NvbXBsZXRpb25fdG9rZW5zJzogMjUsICdwcm9tcHRfdG9rZW5zJzogMTM0LCAndG90YWxfdG9rZW5zJzogMTU5LCAnY29tcGxldGlvbl90b2tlbnNfZGV0YWlscyc6IHsnYWNjZXB0ZWRfcHJlZGljdGlvbl90b2tlbnMnOiAwLCAnYXVkaW9fdG9rZW5zJzogMCwgJ3JlYXNvbmluZ190b2tlbnMnOiAwLCAncmVqZWN0ZWRfcHJlZGljdGlvbl90b2tlbnMnOiAwfSwgJ3Byb21wdF90b2tlbnNfZGV0YWlscyc6IHsnYXVkaW9fdG9rZW5zJzogMCwgJ2NhY2hlZF90b2tlbnMnOiAwfX19IiwxNzA5LjQwMTcwOTQwMTcwOTIsMTYyNi4wMTYyNjAxNjI2MDE2LCJ7J2lkJzogJ2NoYXRjbXBsLUFlT0xDTXY3YlZYWURiaGt2WnFLeHNOTXdVeTZNJywgJ2Nob2ljZXMnOiBbeydmaW5pc2hfcmVhc29uJzogJ3N0b3AnLCAnaW5kZXgnOiAwLCAnbG9ncHJvYnMnOiBOb25lLCAnbWVzc2FnZSc6IHsnY29udGVudCc6ICdbMl0gIFxuVGhlIGlzc3VlIG1lbnRpb25lZCBpbiB0aGUgdGlja2V0IGlzIHJlbGF0ZWQgdG8gIiJkcml2ZXIgcGVyZm9ybWFuY2UiIiBhcyB0aGUgY3VzdG9tZXIgZGVzY3JpYmVzIHRoZSBkcml2ZXIgYXMgcnVkZSBhbmQgdW5wcm9mZXNzaW9uYWwuJywgJ3JlZnVzYWwnOiBOb25lLCAncm9sZSc6ICdhc3Npc3RhbnQnLCAnYXVkaW8nOiBOb25lLCAnZnVuY3Rpb25fY2FsbCc6IE5vbmUsICd0b29sX2NhbGxzJzogTm9uZX19XSwgJ2NyZWF0ZWQnOiAxNzM0MTkwMDUwLCAnbW9kZWwnOiAnZ3B0LTRvLTIwMjQtMDgtMDYnLCAnb2JqZWN0JzogJ2NoYXQuY29tcGxldGlvbicsICdzZXJ2aWNlX3RpZXInOiBOb25lLCAnc3lzdGVtX2ZpbmdlcnByaW50JzogJ2ZwXzlmYWJhOWYwMzgnLCAndXNhZ2UnOiB7J2NvbXBsZXRpb25fdG9rZW5zJzogMjksICdwcm9tcHRfdG9rZW5zJzogMTU3LCAndG90YWxfdG9rZW5zJzogMTg2LCAnY29tcGxldGlvbl90b2tlbnNfZGV0YWlscyc6IHsnYWNjZXB0ZWRfcHJlZGljdGlvbl90b2tlbnMnOiAwLCAnYXVkaW9fdG9rZW5zJzogMCwgJ3JlYXNvbmluZ190b2tlbnMnOiAwLCAncmVqZWN0ZWRfcHJlZGljdGlvbl90b2tlbnMnOiAwfSwgJ3Byb21wdF90b2tlbnNfZGV0YWlscyc6IHsnYXVkaW9fdG9rZW5zJzogMCwgJ2NhY2hlZF90b2tlbnMnOiAwfX19IiwwLjAwMDcxLDE2NjYuNjY2NjY2NjY2NjY2NSwwLjAwMDYxNSwwLjAwMDY4MjUsInsnaWQnOiAnY2hhdGNtcGwtQWVPTEN4dnFTajNFSHRiVXBUUTI5WVU2dklSYWInLCAnY2hvaWNlcyc6IFt7J2ZpbmlzaF9yZWFzb24nOiAnc3RvcCcsICdpbmRleCc6IDAsICdsb2dwcm9icyc6IE5vbmUsICdtZXNzYWdlJzogeydjb250ZW50JzogIiJUaGUgcHJpbWFyeSBpc3N1ZSBpbiB0aGlzIHRpY2tldCBpcyB0aGUgY3VzdG9tZXIncyBkaXNzYXRpc2ZhY3Rpb24gd2l0aCB0aGUgYmVoYXZpb3Igb2YgdGhlIGRyaXZlciwgd2hvIHdhcyBkZXNjcmliZWQgYXMgcnVkZSBhbmQgdW5wcm9mZXNzaW9uYWwuIEFkZHJlc3NpbmcgdGhpcyBjb25jZXJuIGludm9sdmVzIGFja25vd2xlZGdpbmcgdGhlIGN1c3RvbWVyJ3MgZXhwZXJpZW5jZSwgYXBvbG9naXppbmcgZm9yIHRoZSBpbmNvbnZlbmllbmNlLCBhbmQgdGFraW5nIGFwcHJvcHJpYXRlIHN0ZXBzIHRvIGVuc3VyZSBzdWNoIGJlaGF2aW9yIGlzIG5vdCByZXBlYXRlZCBpbiB0aGUgZnV0dXJlLiIiLCAncmVmdXNhbCc6IE5vbmUsICdyb2xlJzogJ2Fzc2lzdGFudCcsICdhdWRpbyc6IE5vbmUsICdmdW5jdGlvbl9jYWxsJzogTm9uZSwgJ3Rvb2xfY2FsbHMnOiBOb25lfX1dLCAnY3JlYXRlZCc6IDE3MzQxOTAwNTAsICdtb2RlbCc6ICdncHQtNG8tMjAyNC0wOC0wNicsICdvYmplY3QnOiAnY2hhdC5jb21wbGV0aW9uJywgJ3NlcnZpY2VfdGllcic6IE5vbmUsICdzeXN0ZW1fZmluZ2VycHJpbnQnOiAnZnBfYTc5ZDhkYWMxZicsICd1c2FnZSc6IHsnY29tcGxldGlvbl90b2tlbnMnOiA1NywgJ3Byb21wdF90b2tlbnMnOiA3NywgJ3RvdGFsX3Rva2Vucyc6IDEzNCwgJ2NvbXBsZXRpb25fdG9rZW5zX2RldGFpbHMnOiB7J2FjY2VwdGVkX3ByZWRpY3Rpb25fdG9rZW5zJzogMCwgJ2F1ZGlvX3Rva2Vucyc6IDAsICdyZWFzb25pbmdfdG9rZW5zJzogMCwgJ3JlamVjdGVkX3ByZWRpY3Rpb25fdG9rZW5zJzogMH0sICdwcm9tcHRfdG9rZW5zX2RldGFpbHMnOiB7J2F1ZGlvX3Rva2Vucyc6IDAsICdjYWNoZWRfdG9rZW5zJzogMH19fSIsMC4wMDA3NjI0OTk5OTk5OTk5OTk5LDEzMTEuNDc1NDA5ODM2MDY1NiwieydpZCc6ICdjaGF0Y21wbC1BZU9MRE94b2pHMlVhUkIzTDR3Wndvekd3cGI3dicsICdjaG9pY2VzJzogW3snZmluaXNoX3JlYXNvbic6ICdzdG9wJywgJ2luZGV4JzogMCwgJ2xvZ3Byb2JzJzogTm9uZSwgJ21lc3NhZ2UnOiB7J2NvbnRlbnQnOiAnMyAgXG5DdXN0b21lciBkaXNzYXRpc2ZhY3Rpb24gZHVlIHRvIHJ1ZGVuZXNzIGFuZCB1bnByb2Zlc3Npb25hbGlzbSBpcyBpbXBvcnRhbnQgdG8gYWRkcmVzcyBwcm9tcHRseSwgYnV0IGl0IG1heSBub3QgYmUgYXMgdXJnZW50IGFzIHNhZmV0eS1yZWxhdGVkIGlzc3Vlcy4nLCAncmVmdXNhbCc6IE5vbmUsICdyb2xlJzogJ2Fzc2lzdGFudCcsICdhdWRpbyc6IE5vbmUsICdmdW5jdGlvbl9jYWxsJzogTm9uZSwgJ3Rvb2xfY2FsbHMnOiBOb25lfX1dLCAnY3JlYXRlZCc6IDE3MzQxOTAwNTEsICdtb2RlbCc6ICdncHQtNG8tMjAyNC0wOC0wNicsICdvYmplY3QnOiAnY2hhdC5jb21wbGV0aW9uJywgJ3NlcnZpY2VfdGllcic6IE5vbmUsICdzeXN0ZW1fZmluZ2VycHJpbnQnOiAnZnBfOWZhYmE5ZjAzOCcsICd1c2FnZSc6IHsnY29tcGxldGlvbl90b2tlbnMnOiAzMSwgJ3Byb21wdF90b2tlbnMnOiAxNjAsICd0b3RhbF90b2tlbnMnOiAxOTEsICdjb21wbGV0aW9uX3Rva2Vuc19kZXRhaWxzJzogeydhY2NlcHRlZF9wcmVkaWN0aW9uX3Rva2Vucyc6IDAsICdhdWRpb190b2tlbnMnOiAwLCAncmVhc29uaW5nX3Rva2Vucyc6IDAsICdyZWplY3RlZF9wcmVkaWN0aW9uX3Rva2Vucyc6IDB9LCAncHJvbXB0X3Rva2Vuc19kZXRhaWxzJzogeydhdWRpb190b2tlbnMnOiAwLCAnY2FjaGVkX3Rva2Vucyc6IDB9fX0iLDE0NjUuMjAxNDY1MjAxNDY1MiwxNDA4LjQ1MDcwNDIyNTM1MjIsMC4wMDA2MDAwMDAwMDAwMDAwMDAxLCJ7J2lkJzogJ2NoYXRjbXBsLUFlT0xDTVhidlZDdGxqUHJMaE9LSGVmc01RNmJ5JywgJ2Nob2ljZXMnOiBbeydmaW5pc2hfcmVhc29uJzogJ3N0b3AnLCAnaW5kZXgnOiAwLCAnbG9ncHJvYnMnOiBOb25lLCAnbWVzc2FnZSc6IHsnY29udGVudCc6ICdOb1xuXG5UaGUgdGlja2V0IGRvZXMgbm90IGV4cGxpY2l0bHkgbWVudGlvbiBhIHJlcXVlc3QgZm9yIGEgcmVmdW5kLiBUaGUgY3VzdG9tZXIgaXMgZXhwcmVzc2luZyBkaXNzYXRpc2ZhY3Rpb24gd2l0aCB0aGUgZXhwZXJpZW5jZSwgYnV0IHRoZXJlIGlzIG5vIGRpcmVjdCByZXF1ZXN0IGZvciBhIHJlZnVuZC4nLCAncmVmdXNhbCc6IE5vbmUsICdyb2xlJzogJ2Fzc2lzdGFudCcsICdhdWRpbyc6IE5vbmUsICdmdW5jdGlvbl9jYWxsJzogTm9uZSwgJ3Rvb2xfY2FsbHMnOiBOb25lfX1dLCAnY3JlYXRlZCc6IDE3MzQxOTAwNTAsICdtb2RlbCc6ICdncHQtNG8tMjAyNC0wOC0wNicsICdvYmplY3QnOiAnY2hhdC5jb21wbGV0aW9uJywgJ3NlcnZpY2VfdGllcic6IE5vbmUsICdzeXN0ZW1fZmluZ2VycHJpbnQnOiAnZnBfOWZhYmE5ZjAzOCcsICd1c2FnZSc6IHsnY29tcGxldGlvbl90b2tlbnMnOiAzMywgJ3Byb21wdF90b2tlbnMnOiAxMTQsICd0b3RhbF90b2tlbnMnOiAxNDcsICdjb21wbGV0aW9uX3Rva2Vuc19kZXRhaWxzJzogeydhY2NlcHRlZF9wcmVkaWN0aW9uX3Rva2Vucyc6IDAsICdhdWRpb190b2tlbnMnOiAwLCAncmVhc29uaW5nX3Rva2Vucyc6IDAsICdyZWplY3RlZF9wcmVkaWN0aW9uX3Rva2Vucyc6IDB9LCAncHJvbXB0X3Rva2Vuc19kZXRhaWxzJzogeydhdWRpb190b2tlbnMnOiAwLCAnY2FjaGVkX3Rva2Vucyc6IDB9fX0iLDAsRG9lcyB0aGUgY3VzdG9tZXIgYXNrIGZvciBhIHJlZnVuZCBpbiB0aGlzIHRpY2tldD8gVGlja2V0OiB7eyB0aWNrZXQgfX0sIklmIHRoZSBwcmltYXJ5IGlzc3VlIGluIHRoaXMgdGlja2V0IGlzIHNhZmV0eSwgd2FzIHRoZXJlIGFuIGFjY2lkZW50IHdoZXJlIHNvbWVvbmUgd2FzIGh1cnQ/IFRpY2tldDoge3sgdGlja2V0IH19IixXaGF0IGlzIHRoZSBwcmltYXJ5IGlzc3VlIGluIHRoaXMgdGlja2V0PyBUaWNrZXQ6IHt7IHRpY2tldCB9fSxDaGVjayBhbGwgb2YgdGhlIGlzc3VlcyBtZW50aW9uZWQgaW4gdGhpcyB0aWNrZXQ6IHt7IHRpY2tldCB9fSwiT24gYSBzY2FsZSBmcm9tIDAgdG8gNSwgd2hhdCBpcyB0aGUgcHJpb3JpdHkgbGV2ZWwgb2YgdGhpcyB0aWNrZXQ/IFRpY2tldDoge3sgdGlja2V0IH19IixXaGF0IGlzIHRoZSBzZW50aW1lbnQgb2YgdGhpcyB0aWNrZXQ/IFRpY2tldDoge3sgdGlja2V0IH19LCJbJ3NhZmV0eScsICdjbGVhbmxpbmVzcycsICdkcml2ZXIgcGVyZm9ybWFuY2UnLCAnR1BTL3JvdXRlJywgJ2xvc3QgaXRlbScsICdvdGhlciddIiwiWydWZXJ5IHBvc2l0aXZlJywgJ1NvbWV3aGF0IHBvc2l0aXZlJywgJ05ldXRyYWwnLCAnU29tZXdoYXQgbmVnYXRpdmUnLCAnVmVyeSBuZWdhdGl2ZSddIiwsIlsnTm8nLCAnWWVzJ10iLCJbJ1llcycsICdObycsICdOb3QgYXBwbGljYWJsZSddIiwiWzAsIDEsIDIsIDMsIDQsIDVdIixsaW5lYXJfc2NhbGUsbXVsdGlwbGVfY2hvaWNlLG11bHRpcGxlX2Nob2ljZSx5ZXNfbm8sZnJlZV90ZXh0LGNoZWNrYm94LCwiVGhlIHRpY2tldCBkb2VzIG5vdCBleHBsaWNpdGx5IG1lbnRpb24gYSByZXF1ZXN0IGZvciBhIHJlZnVuZC4gVGhlIGN1c3RvbWVyIGlzIGV4cHJlc3NpbmcgZGlzc2F0aXNmYWN0aW9uIHdpdGggdGhlIGV4cGVyaWVuY2UsIGJ1dCB0aGVyZSBpcyBubyBkaXJlY3QgcmVxdWVzdCBmb3IgYSByZWZ1bmQuIiwiQ3VzdG9tZXIgZGlzc2F0aXNmYWN0aW9uIGR1ZSB0byBydWRlbmVzcyBhbmQgdW5wcm9mZXNzaW9uYWxpc20gaXMgaW1wb3J0YW50IHRvIGFkZHJlc3MgcHJvbXB0bHksIGJ1dCBpdCBtYXkgbm90IGJlIGFzIHVyZ2VudCBhcyBzYWZldHktcmVsYXRlZCBpc3N1ZXMuIiwiVGhlIGlzc3VlIG1lbnRpb25lZCBpbiB0aGUgdGlja2V0IGlzIHJlbGF0ZWQgdG8gIiJkcml2ZXIgcGVyZm9ybWFuY2UiIiBhcyB0aGUgY3VzdG9tZXIgZGVzY3JpYmVzIHRoZSBkcml2ZXIgYXMgcnVkZSBhbmQgdW5wcm9mZXNzaW9uYWwuIiwiVGhlIHRpY2tldCBleHByZXNzZXMgZGlzc2F0aXNmYWN0aW9uIGFuZCBkZXNjcmliZXMgdGhlIGRyaXZlciBhcyAiInZlcnkgcnVkZSBhbmQgdW5wcm9mZXNzaW9uYWwsIiIgaW5kaWNhdGluZyBhIHN0cm9uZyBuZWdhdGl2ZSBzZW50aW1lbnQuIixUaGUgdGlja2V0IG1lbnRpb25zIHJ1ZGVuZXNzIGFuZCB1bnByb2Zlc3Npb25hbCBiZWhhdmlvciBidXQgZG9lcyBub3QgaW5kaWNhdGUgdGhhdCBhbiBhY2NpZGVudCBvY2N1cnJlZCBvciB0aGF0IHNvbWVvbmUgd2FzIGh1cnQuLCJWZXJ5IG5lZ2F0aXZlCgpUaGUgdGlja2V0IGV4cHJlc3NlcyBkaXNzYXRpc2ZhY3Rpb24gYW5kIGRlc2NyaWJlcyB0aGUgZHJpdmVyIGFzICIidmVyeSBydWRlIGFuZCB1bnByb2Zlc3Npb25hbCwiIiBpbmRpY2F0aW5nIGEgc3Ryb25nIG5lZ2F0aXZlIHNlbnRpbWVudC4iLCJbMl0gIApUaGUgaXNzdWUgbWVudGlvbmVkIGluIHRoZSB0aWNrZXQgaXMgcmVsYXRlZCB0byAiImRyaXZlciBwZXJmb3JtYW5jZSIiIGFzIHRoZSBjdXN0b21lciBkZXNjcmliZXMgdGhlIGRyaXZlciBhcyBydWRlIGFuZCB1bnByb2Zlc3Npb25hbC4iLCJObwoKVGhlIHRpY2tldCBkb2VzIG5vdCBleHBsaWNpdGx5IG1lbnRpb24gYSByZXF1ZXN0IGZvciBhIHJlZnVuZC4gVGhlIGN1c3RvbWVyIGlzIGV4cHJlc3NpbmcgZGlzc2F0aXNmYWN0aW9uIHdpdGggdGhlIGV4cGVyaWVuY2UsIGJ1dCB0aGVyZSBpcyBubyBkaXJlY3QgcmVxdWVzdCBmb3IgYSByZWZ1bmQuIiwiVGhlIHByaW1hcnkgaXNzdWUgaW4gdGhpcyB0aWNrZXQgaXMgdGhlIGN1c3RvbWVyJ3MgZGlzc2F0aXNmYWN0aW9uIHdpdGggdGhlIGJlaGF2aW9yIG9mIHRoZSBkcml2ZXIsIHdobyB3YXMgZGVzY3JpYmVkIGFzIHJ1ZGUgYW5kIHVucHJvZmVzc2lvbmFsLiBBZGRyZXNzaW5nIHRoaXMgY29uY2VybiBpbnZvbHZlcyBhY2tub3dsZWRnaW5nIHRoZSBjdXN0b21lcidzIGV4cGVyaWVuY2UsIGFwb2xvZ2l6aW5nIGZvciB0aGUgaW5jb252ZW5pZW5jZSwgYW5kIHRha2luZyBhcHByb3ByaWF0ZSBzdGVwcyB0byBlbnN1cmUgc3VjaCBiZWhhdmlvciBpcyBub3QgcmVwZWF0ZWQgaW4gdGhlIGZ1dHVyZS4iLCJObyAgClRoZSB0aWNrZXQgbWVudGlvbnMgcnVkZW5lc3MgYW5kIHVucHJvZmVzc2lvbmFsIGJlaGF2aW9yIGJ1dCBkb2VzIG5vdCBpbmRpY2F0ZSB0aGF0IGFuIGFjY2lkZW50IG9jY3VycmVkIG9yIHRoYXQgc29tZW9uZSB3YXMgaHVydC4iLCIzICAKQ3VzdG9tZXIgZGlzc2F0aXNmYWN0aW9uIGR1ZSB0byBydWRlbmVzcyBhbmQgdW5wcm9mZXNzaW9uYWxpc20gaXMgaW1wb3J0YW50IHRvIGFkZHJlc3MgcHJvbXB0bHksIGJ1dCBpdCBtYXkgbm90IGJlIGFzIHVyZ2VudCBhcyBzYWZldHktcmVsYXRlZCBpc3N1ZXMuIg0KTm90IGFwcGxpY2FibGUsU29tZXdoYXQgbmVnYXRpdmUsTm8sVGhlIHByaW1hcnkgaXNzdWUgaW4gdGhpcyB0aWNrZXQgaXMgdGhhdCB0aGUgY3VzdG9tZXIgd2FzIGNoYXJnZWQgbW9yZSB0aGFuIHRoZSBlc3RpbWF0ZWQgZmFyZSBmb3IgdGhlaXIgdHJpcCBhbmQgaXMgc2Vla2luZyBhbiBleHBsYW5hdGlvbiBmb3IgdGhlIGRpc2NyZXBhbmN5LiwzLFsnb3RoZXInXSxJIHdhcyBjaGFyZ2VkIG1vcmUgdGhhbiB0aGUgZXN0aW1hdGVkIGZhcmUgZm9yIG15IHRyaXAgeWVzdGVyZGF5LiBDYW4geW91IGV4cGxhaW4gd2h5PyxZb3UgYXJlIGFuIGV4cGVydCBjdXN0b21lciBzZXJ2aWNlIGFnZW50LixBZ2VudF8yLDE1LFlvdSBhcmUgYW5zd2VyaW5nIHF1ZXN0aW9ucyBhcyBpZiB5b3Ugd2VyZSBhIGh1bWFuLiBEbyBub3QgYnJlYWsgY2hhcmFjdGVyLiwwLDEsMCxncHQtNG8sMC41LEZhbHNlLDEwMDAsMyxXaGF0IGlzIHRoZSBwcmltYXJ5IGlzc3VlIGluIHRoaXMgdGlja2V0PyBUaWNrZXQ6IEkgd2FzIGNoYXJnZWQgbW9yZSB0aGFuIHRoZSBlc3RpbWF0ZWQgZmFyZSBmb3IgbXkgdHJpcCB5ZXN0ZXJkYXkuIENhbiB5b3UgZXhwbGFpbiB3aHk/LCJZb3UgYXJlIGFuc3dlcmluZyBxdWVzdGlvbnMgYXMgaWYgeW91IHdlcmUgYSBodW1hbi4gRG8gbm90IGJyZWFrIGNoYXJhY3Rlci4gWW91ciB0cmFpdHM6IHsncGVyc29uYSc6ICdZb3UgYXJlIGFuIGV4cGVydCBjdXN0b21lciBzZXJ2aWNlIGFnZW50LicsICd5ZWFyc19leHBlcmllbmNlJzogMTV9IiwiWW91IGFyZSBhbnN3ZXJpbmcgcXVlc3Rpb25zIGFzIGlmIHlvdSB3ZXJlIGEgaHVtYW4uIERvIG5vdCBicmVhayBjaGFyYWN0ZXIuIFlvdXIgdHJhaXRzOiB7J3BlcnNvbmEnOiAnWW91IGFyZSBhbiBleHBlcnQgY3VzdG9tZXIgc2VydmljZSBhZ2VudC4nLCAneWVhcnNfZXhwZXJpZW5jZSc6IDE1fSIsIkNoZWNrIGFsbCBvZiB0aGUgaXNzdWVzIG1lbnRpb25lZCBpbiB0aGlzIHRpY2tldDogSSB3YXMgY2hhcmdlZCBtb3JlIHRoYW4gdGhlIGVzdGltYXRlZCBmYXJlIGZvciBteSB0cmlwIHllc3RlcmRheS4gQ2FuIHlvdSBleHBsYWluIHdoeT8KCiAgICAKMDogc2FmZXR5CiAgICAKMTogY2xlYW5saW5lc3MKICAgIAoyOiBkcml2ZXIgcGVyZm9ybWFuY2UKICAgIAozOiBHUFMvcm91dGUKICAgIAo0OiBsb3N0IGl0ZW0KICAgIAo1OiBvdGhlcgogICAgCgoKCgoKClBsZWFzZSByZXNwb25kIG9ubHkgd2l0aCBhIGNvbW1hLXNlcGFyYXRlZCBsaXN0IG9mIHRoZSBjb2RlIG9mIHRoZSBvcHRpb25zIHRoYXQgYXBwbHksIHdpdGggc3F1YXJlIGJyYWNrZXRzLiBFLmcuLCBbMCwgMSwgM10KCgpBZnRlciB0aGUgYW5zd2VyLCB5b3UgY2FuIHB1dCBhIGNvbW1lbnQgZXhwbGFpbmluZyB5b3VyIGNob2ljZSBvbiB0aGUgbmV4dCBsaW5lLiIsIk9uIGEgc2NhbGUgZnJvbSAwIHRvIDUsIHdoYXQgaXMgdGhlIHByaW9yaXR5IGxldmVsIG9mIHRoaXMgdGlja2V0PyBUaWNrZXQ6IEkgd2FzIGNoYXJnZWQgbW9yZSB0aGFuIHRoZSBlc3RpbWF0ZWQgZmFyZSBmb3IgbXkgdHJpcCB5ZXN0ZXJkYXkuIENhbiB5b3UgZXhwbGFpbiB3aHk/CgowIDogTG93ZXN0CgoxIDogCgoyIDogCgozIDogCgo0IDogCgo1IDogSGlnaGVzdAoKT25seSAxIG9wdGlvbiBtYXkgYmUgc2VsZWN0ZWQuCgpSZXNwb25kIG9ubHkgd2l0aCB0aGUgY29kZSBjb3JyZXNwb25kaW5nIHRvIG9uZSBvZiB0aGUgb3B0aW9ucy4gRS5nLiwgIiIxIiIgb3IgIiI1IiIgYnkgaXRzZWxmLgoKQWZ0ZXIgdGhlIGFuc3dlciwgeW91IGNhbiBwdXQgYSBjb21tZW50IGV4cGxhaW5pbmcgd2h5IHlvdSBjaG9zZSB0aGF0IG9wdGlvbiBvbiB0aGUgbmV4dCBsaW5lLiIsIllvdSBhcmUgYW5zd2VyaW5nIHF1ZXN0aW9ucyBhcyBpZiB5b3Ugd2VyZSBhIGh1bWFuLiBEbyBub3QgYnJlYWsgY2hhcmFjdGVyLiBZb3VyIHRyYWl0czogeydwZXJzb25hJzogJ1lvdSBhcmUgYW4gZXhwZXJ0IGN1c3RvbWVyIHNlcnZpY2UgYWdlbnQuJywgJ3llYXJzX2V4cGVyaWVuY2UnOiAxNX0iLCJZb3UgYXJlIGFuc3dlcmluZyBxdWVzdGlvbnMgYXMgaWYgeW91IHdlcmUgYSBodW1hbi4gRG8gbm90IGJyZWFrIGNoYXJhY3Rlci4gWW91ciB0cmFpdHM6IHsncGVyc29uYSc6ICdZb3UgYXJlIGFuIGV4cGVydCBjdXN0b21lciBzZXJ2aWNlIGFnZW50LicsICd5ZWFyc19leHBlcmllbmNlJzogMTV9IiwiWW91IGFyZSBhbnN3ZXJpbmcgcXVlc3Rpb25zIGFzIGlmIHlvdSB3ZXJlIGEgaHVtYW4uIERvIG5vdCBicmVhayBjaGFyYWN0ZXIuIFlvdXIgdHJhaXRzOiB7J3BlcnNvbmEnOiAnWW91IGFyZSBhbiBleHBlcnQgY3VzdG9tZXIgc2VydmljZSBhZ2VudC4nLCAneWVhcnNfZXhwZXJpZW5jZSc6IDE1fSIsIgpXaGF0IGlzIHRoZSBzZW50aW1lbnQgb2YgdGhpcyB0aWNrZXQ/IFRpY2tldDogSSB3YXMgY2hhcmdlZCBtb3JlIHRoYW4gdGhlIGVzdGltYXRlZCBmYXJlIGZvciBteSB0cmlwIHllc3RlcmRheS4gQ2FuIHlvdSBleHBsYWluIHdoeT8KCiAgICAKVmVyeSBwb3NpdGl2ZQogICAgClNvbWV3aGF0IHBvc2l0aXZlCiAgICAKTmV1dHJhbAogICAgClNvbWV3aGF0IG5lZ2F0aXZlCiAgICAKVmVyeSBuZWdhdGl2ZQogICAgCgpPbmx5IDEgb3B0aW9uIG1heSBiZSBzZWxlY3RlZC4KClJlc3BvbmQgb25seSB3aXRoIGEgc3RyaW5nIGNvcnJlc3BvbmRpbmcgdG8gb25lIG9mIHRoZSBvcHRpb25zLgoKCkFmdGVyIHRoZSBhbnN3ZXIsIHlvdSBjYW4gcHV0IGEgY29tbWVudCBleHBsYWluaW5nIHdoeSB5b3UgY2hvc2UgdGhhdCBvcHRpb24gb24gdGhlIG5leHQgbGluZS4iLCIKRG9lcyB0aGUgY3VzdG9tZXIgYXNrIGZvciBhIHJlZnVuZCBpbiB0aGlzIHRpY2tldD8gVGlja2V0OiBJIHdhcyBjaGFyZ2VkIG1vcmUgdGhhbiB0aGUgZXN0aW1hdGVkIGZhcmUgZm9yIG15IHRyaXAgeWVzdGVyZGF5LiBDYW4geW91IGV4cGxhaW4gd2h5PwoKICAgIApObwogICAgClllcwogICAgCgpPbmx5IDEgb3B0aW9uIG1heSBiZSBzZWxlY3RlZC4KUGxlYXNlIHJlc3BvbmQgd2l0aCBqdXN0IHlvdXIgYW5zd2VyLiAKCgpBZnRlciB0aGUgYW5zd2VyLCB5b3UgY2FuIHB1dCBhIGNvbW1lbnQgZXhwbGFpbmluZyB5b3VyIHJlc3BvbnNlLiIsIllvdSBhcmUgYW5zd2VyaW5nIHF1ZXN0aW9ucyBhcyBpZiB5b3Ugd2VyZSBhIGh1bWFuLiBEbyBub3QgYnJlYWsgY2hhcmFjdGVyLiBZb3VyIHRyYWl0czogeydwZXJzb25hJzogJ1lvdSBhcmUgYW4gZXhwZXJ0IGN1c3RvbWVyIHNlcnZpY2UgYWdlbnQuJywgJ3llYXJzX2V4cGVyaWVuY2UnOiAxNX0iLCIKSWYgdGhlIHByaW1hcnkgaXNzdWUgaW4gdGhpcyB0aWNrZXQgaXMgc2FmZXR5LCB3YXMgdGhlcmUgYW4gYWNjaWRlbnQgd2hlcmUgc29tZW9uZSB3YXMgaHVydD8gVGlja2V0OiBJIHdhcyBjaGFyZ2VkIG1vcmUgdGhhbiB0aGUgZXN0aW1hdGVkIGZhcmUgZm9yIG15IHRyaXAgeWVzdGVyZGF5LiBDYW4geW91IGV4cGxhaW4gd2h5PwoKICAgIApZZXMKICAgIApObwogICAgCk5vdCBhcHBsaWNhYmxlCiAgICAKCk9ubHkgMSBvcHRpb24gbWF5IGJlIHNlbGVjdGVkLgoKUmVzcG9uZCBvbmx5IHdpdGggYSBzdHJpbmcgY29ycmVzcG9uZGluZyB0byBvbmUgb2YgdGhlIG9wdGlvbnMuCgoKQWZ0ZXIgdGhlIGFuc3dlciwgeW91IGNhbiBwdXQgYSBjb21tZW50IGV4cGxhaW5pbmcgd2h5IHlvdSBjaG9zZSB0aGF0IG9wdGlvbiBvbiB0aGUgbmV4dCBsaW5lLiIsMC4wMDA1OCwieydpZCc6ICdjaGF0Y21wbC1BZU9MQ3p0eEMzbWhIQVM5VWpLNVI3amxmYUVJVCcsICdjaG9pY2VzJzogW3snZmluaXNoX3JlYXNvbic6ICdzdG9wJywgJ2luZGV4JzogMCwgJ2xvZ3Byb2JzJzogTm9uZSwgJ21lc3NhZ2UnOiB7J2NvbnRlbnQnOiAnTm90IGFwcGxpY2FibGVcblxuVGhlIHRpY2tldCBpcyBhYm91dCBhIGZhcmUgZGlzY3JlcGFuY3ksIG5vdCBhIHNhZmV0eSBpc3N1ZSBvciBhY2NpZGVudC4nLCAncmVmdXNhbCc6IE5vbmUsICdyb2xlJzogJ2Fzc2lzdGFudCcsICdhdWRpbyc6IE5vbmUsICdmdW5jdGlvbl9jYWxsJzogTm9uZSwgJ3Rvb2xfY2FsbHMnOiBOb25lfX1dLCAnY3JlYXRlZCc6IDE3MzQxOTAwNTAsICdtb2RlbCc6ICdncHQtNG8tMjAyNC0wOC0wNicsICdvYmplY3QnOiAnY2hhdC5jb21wbGV0aW9uJywgJ3NlcnZpY2VfdGllcic6IE5vbmUsICdzeXN0ZW1fZmluZ2VycHJpbnQnOiAnZnBfOWZhYmE5ZjAzOCcsICd1c2FnZSc6IHsnY29tcGxldGlvbl90b2tlbnMnOiAxOCwgJ3Byb21wdF90b2tlbnMnOiAxMzgsICd0b3RhbF90b2tlbnMnOiAxNTYsICdjb21wbGV0aW9uX3Rva2Vuc19kZXRhaWxzJzogeydhY2NlcHRlZF9wcmVkaWN0aW9uX3Rva2Vucyc6IDAsICdhdWRpb190b2tlbnMnOiAwLCAncmVhc29uaW5nX3Rva2Vucyc6IDAsICdyZWplY3RlZF9wcmVkaWN0aW9uX3Rva2Vucyc6IDB9LCAncHJvbXB0X3Rva2Vuc19kZXRhaWxzJzogeydhdWRpb190b2tlbnMnOiAwLCAnY2FjaGVkX3Rva2Vucyc6IDB9fX0iLCJ7J2lkJzogJ2NoYXRjbXBsLUFlT0xDQ2hCUFM0OTlxSk9NRjQ0bFEzMm8yRWJpJywgJ2Nob2ljZXMnOiBbeydmaW5pc2hfcmVhc29uJzogJ3N0b3AnLCAnaW5kZXgnOiAwLCAnbG9ncHJvYnMnOiBOb25lLCAnbWVzc2FnZSc6IHsnY29udGVudCc6ICdTb21ld2hhdCBuZWdhdGl2ZSAgXG5UaGUgY3VzdG9tZXIgaXMgZXhwcmVzc2luZyBkaXNzYXRpc2ZhY3Rpb24gZHVlIHRvIGJlaW5nIGNoYXJnZWQgbW9yZSB0aGFuIGV4cGVjdGVkLCB3aGljaCBpbmRpY2F0ZXMgYSBzb21ld2hhdCBuZWdhdGl2ZSBzZW50aW1lbnQuJywgJ3JlZnVzYWwnOiBOb25lLCAncm9sZSc6ICdhc3Npc3RhbnQnLCAnYXVkaW8nOiBOb25lLCAnZnVuY3Rpb25fY2FsbCc6IE5vbmUsICd0b29sX2NhbGxzJzogTm9uZX19XSwgJ2NyZWF0ZWQnOiAxNzM0MTkwMDUwLCAnbW9kZWwnOiAnZ3B0LTRvLTIwMjQtMDgtMDYnLCAnb2JqZWN0JzogJ2NoYXQuY29tcGxldGlvbicsICdzZXJ2aWNlX3RpZXInOiBOb25lLCAnc3lzdGVtX2ZpbmdlcnByaW50JzogJ2ZwX2E3OWQ4ZGFjMWYnLCAndXNhZ2UnOiB7J2NvbXBsZXRpb25fdG9rZW5zJzogMjQsICdwcm9tcHRfdG9rZW5zJzogMTM2LCAndG90YWxfdG9rZW5zJzogMTYwLCAnY29tcGxldGlvbl90b2tlbnNfZGV0YWlscyc6IHsnYWNjZXB0ZWRfcHJlZGljdGlvbl90b2tlbnMnOiAwLCAnYXVkaW9fdG9rZW5zJzogMCwgJ3JlYXNvbmluZ190b2tlbnMnOiAwLCAncmVqZWN0ZWRfcHJlZGljdGlvbl90b2tlbnMnOiAwfSwgJ3Byb21wdF90b2tlbnNfZGV0YWlscyc6IHsnYXVkaW9fdG9rZW5zJzogMCwgJ2NhY2hlZF90b2tlbnMnOiAwfX19IiwxNzI0LjEzNzkzMTAzNDQ4MjgsMjA0MC44MTYzMjY1MzA2MTIzLCJ7J2lkJzogJ2NoYXRjbXBsLUFlT0xDMjN2TVZVNkdmNjJZaHBEN2ZiaEZIMDRKJywgJ2Nob2ljZXMnOiBbeydmaW5pc2hfcmVhc29uJzogJ3N0b3AnLCAnaW5kZXgnOiAwLCAnbG9ncHJvYnMnOiBOb25lLCAnbWVzc2FnZSc6IHsnY29udGVudCc6ICdbNV0gIFxuVGhlIGlzc3VlIG1lbnRpb25lZCBpbiB0aGUgdGlja2V0IGlzIHJlbGF0ZWQgdG8gYmVpbmcgY2hhcmdlZCBtb3JlIHRoYW4gdGhlIGVzdGltYXRlZCBmYXJlLCB3aGljaCBmYWxscyB1bmRlciB0aGUgIiJvdGhlciIiIGNhdGVnb3J5LicsICdyZWZ1c2FsJzogTm9uZSwgJ3JvbGUnOiAnYXNzaXN0YW50JywgJ2F1ZGlvJzogTm9uZSwgJ2Z1bmN0aW9uX2NhbGwnOiBOb25lLCAndG9vbF9jYWxscyc6IE5vbmV9fV0sICdjcmVhdGVkJzogMTczNDE5MDA1MCwgJ21vZGVsJzogJ2dwdC00by0yMDI0LTA4LTA2JywgJ29iamVjdCc6ICdjaGF0LmNvbXBsZXRpb24nLCAnc2VydmljZV90aWVyJzogTm9uZSwgJ3N5c3RlbV9maW5nZXJwcmludCc6ICdmcF9hNzlkOGRhYzFmJywgJ3VzYWdlJzogeydjb21wbGV0aW9uX3Rva2Vucyc6IDMwLCAncHJvbXB0X3Rva2Vucyc6IDE1OSwgJ3RvdGFsX3Rva2Vucyc6IDE4OSwgJ2NvbXBsZXRpb25fdG9rZW5zX2RldGFpbHMnOiB7J2FjY2VwdGVkX3ByZWRpY3Rpb25fdG9rZW5zJzogMCwgJ2F1ZGlvX3Rva2Vucyc6IDAsICdyZWFzb25pbmdfdG9rZW5zJzogMCwgJ3JlamVjdGVkX3ByZWRpY3Rpb25fdG9rZW5zJzogMH0sICdwcm9tcHRfdG9rZW5zX2RldGFpbHMnOiB7J2F1ZGlvX3Rva2Vucyc6IDAsICdjYWNoZWRfdG9rZW5zJzogMH19fSIsMC4wMDA3MzUsMTkwNC43NjE5MDQ3NjE5MDQ4LDAuMDAwNDksMC4wMDA2OTc1LCJ7J2lkJzogJ2NoYXRjbXBsLUFlT0xDczZTUWNQWkRLSEdPbncxbDRPWmMxUmRHJywgJ2Nob2ljZXMnOiBbeydmaW5pc2hfcmVhc29uJzogJ3N0b3AnLCAnaW5kZXgnOiAwLCAnbG9ncHJvYnMnOiBOb25lLCAnbWVzc2FnZSc6IHsnY29udGVudCc6ICdUaGUgcHJpbWFyeSBpc3N1ZSBpbiB0aGlzIHRpY2tldCBpcyB0aGF0IHRoZSBjdXN0b21lciB3YXMgY2hhcmdlZCBtb3JlIHRoYW4gdGhlIGVzdGltYXRlZCBmYXJlIGZvciB0aGVpciB0cmlwIGFuZCBpcyBzZWVraW5nIGFuIGV4cGxhbmF0aW9uIGZvciB0aGUgZGlzY3JlcGFuY3kuJywgJ3JlZnVzYWwnOiBOb25lLCAncm9sZSc6ICdhc3Npc3RhbnQnLCAnYXVkaW8nOiBOb25lLCAnZnVuY3Rpb25fY2FsbCc6IE5vbmUsICd0b29sX2NhbGxzJzogTm9uZX19XSwgJ2NyZWF0ZWQnOiAxNzM0MTkwMDUwLCAnbW9kZWwnOiAnZ3B0LTRvLTIwMjQtMDgtMDYnLCAnb2JqZWN0JzogJ2NoYXQuY29tcGxldGlvbicsICdzZXJ2aWNlX3RpZXInOiBOb25lLCAnc3lzdGVtX2ZpbmdlcnByaW50JzogJ2ZwX2E3OWQ4ZGFjMWYnLCAndXNhZ2UnOiB7J2NvbXBsZXRpb25fdG9rZW5zJzogMjksICdwcm9tcHRfdG9rZW5zJzogNzksICd0b3RhbF90b2tlbnMnOiAxMDgsICdjb21wbGV0aW9uX3Rva2Vuc19kZXRhaWxzJzogeydhY2NlcHRlZF9wcmVkaWN0aW9uX3Rva2Vucyc6IDAsICdhdWRpb190b2tlbnMnOiAwLCAncmVhc29uaW5nX3Rva2Vucyc6IDAsICdyZWplY3RlZF9wcmVkaWN0aW9uX3Rva2Vucyc6IDB9LCAncHJvbXB0X3Rva2Vuc19kZXRhaWxzJzogeydhdWRpb190b2tlbnMnOiAwLCAnY2FjaGVkX3Rva2Vucyc6IDB9fX0iLDAuMDAwNDg3NSwyMDUxLjI4MjA1MTI4MjA1MTMsInsnaWQnOiAnY2hhdGNtcGwtQWVPTENqc3RIVnV5NE9TVUZaV0NOSnhGZFc0aG4nLCAnY2hvaWNlcyc6IFt7J2ZpbmlzaF9yZWFzb24nOiAnc3RvcCcsICdpbmRleCc6IDAsICdsb2dwcm9icyc6IE5vbmUsICdtZXNzYWdlJzogeydjb250ZW50JzogJzMgIFxuVGhpcyB0aWNrZXQgaW52b2x2ZXMgYSBiaWxsaW5nIGlzc3VlLCB3aGljaCBpcyBpbXBvcnRhbnQgdG8gcmVzb2x2ZSBwcm9tcHRseSB0byBtYWludGFpbiBjdXN0b21lciB0cnVzdCBhbmQgc2F0aXNmYWN0aW9uLCBidXQgaXQgaXMgbm90IGFuIGVtZXJnZW5jeSBvciBjcml0aWNhbCB0ZWNobmljYWwgZmFpbHVyZS4nLCAncmVmdXNhbCc6IE5vbmUsICdyb2xlJzogJ2Fzc2lzdGFudCcsICdhdWRpbyc6IE5vbmUsICdmdW5jdGlvbl9jYWxsJzogTm9uZSwgJ3Rvb2xfY2FsbHMnOiBOb25lfX1dLCAnY3JlYXRlZCc6IDE3MzQxOTAwNTAsICdtb2RlbCc6ICdncHQtNG8tMjAyNC0wOC0wNicsICdvYmplY3QnOiAnY2hhdC5jb21wbGV0aW9uJywgJ3NlcnZpY2VfdGllcic6IE5vbmUsICdzeXN0ZW1fZmluZ2VycHJpbnQnOiAnZnBfYTc5ZDhkYWMxZicsICd1c2FnZSc6IHsnY29tcGxldGlvbl90b2tlbnMnOiAzMywgJ3Byb21wdF90b2tlbnMnOiAxNjIsICd0b3RhbF90b2tlbnMnOiAxOTUsICdjb21wbGV0aW9uX3Rva2Vuc19kZXRhaWxzJzogeydhY2NlcHRlZF9wcmVkaWN0aW9uX3Rva2Vucyc6IDAsICdhdWRpb190b2tlbnMnOiAwLCAncmVhc29uaW5nX3Rva2Vucyc6IDAsICdyZWplY3RlZF9wcmVkaWN0aW9uX3Rva2Vucyc6IDB9LCAncHJvbXB0X3Rva2Vuc19kZXRhaWxzJzogeydhdWRpb190b2tlbnMnOiAwLCAnY2FjaGVkX3Rva2Vucyc6IDB9fX0iLDE0MzMuNjkxNzU2MjcyNDAxNiwxMzYwLjU0NDIxNzY4NzA3NSwwLjAwMDUyNSwieydpZCc6ICdjaGF0Y21wbC1BZU9MQ2t1OG9yVzJ4eVNROTJSNkRmNnE2Ynd3SScsICdjaG9pY2VzJzogW3snZmluaXNoX3JlYXNvbic6ICdzdG9wJywgJ2luZGV4JzogMCwgJ2xvZ3Byb2JzJzogTm9uZSwgJ21lc3NhZ2UnOiB7J2NvbnRlbnQnOiAnTm9cblxuVGhlIGN1c3RvbWVyIGlzIGFza2luZyBmb3IgYW4gZXhwbGFuYXRpb24gcmVnYXJkaW5nIHRoZSBjaGFyZ2UgZGlzY3JlcGFuY3ksIG5vdCBkaXJlY3RseSByZXF1ZXN0aW5nIGEgcmVmdW5kLicsICdyZWZ1c2FsJzogTm9uZSwgJ3JvbGUnOiAnYXNzaXN0YW50JywgJ2F1ZGlvJzogTm9uZSwgJ2Z1bmN0aW9uX2NhbGwnOiBOb25lLCAndG9vbF9jYWxscyc6IE5vbmV9fV0sICdjcmVhdGVkJzogMTczNDE5MDA1MCwgJ21vZGVsJzogJ2dwdC00by0yMDI0LTA4LTA2JywgJ29iamVjdCc6ICdjaGF0LmNvbXBsZXRpb24nLCAnc2VydmljZV90aWVyJzogTm9uZSwgJ3N5c3RlbV9maW5nZXJwcmludCc6ICdmcF9hNzlkOGRhYzFmJywgJ3VzYWdlJzogeydjb21wbGV0aW9uX3Rva2Vucyc6IDIwLCAncHJvbXB0X3Rva2Vucyc6IDExNiwgJ3RvdGFsX3Rva2Vucyc6IDEzNiwgJ2NvbXBsZXRpb25fdG9rZW5zX2RldGFpbHMnOiB7J2FjY2VwdGVkX3ByZWRpY3Rpb25fdG9rZW5zJzogMCwgJ2F1ZGlvX3Rva2Vucyc6IDAsICdyZWFzb25pbmdfdG9rZW5zJzogMCwgJ3JlamVjdGVkX3ByZWRpY3Rpb25fdG9rZW5zJzogMH0sICdwcm9tcHRfdG9rZW5zX2RldGFpbHMnOiB7J2F1ZGlvX3Rva2Vucyc6IDAsICdjYWNoZWRfdG9rZW5zJzogMH19fSIsMCxEb2VzIHRoZSBjdXN0b21lciBhc2sgZm9yIGEgcmVmdW5kIGluIHRoaXMgdGlja2V0PyBUaWNrZXQ6IHt7IHRpY2tldCB9fSwiSWYgdGhlIHByaW1hcnkgaXNzdWUgaW4gdGhpcyB0aWNrZXQgaXMgc2FmZXR5LCB3YXMgdGhlcmUgYW4gYWNjaWRlbnQgd2hlcmUgc29tZW9uZSB3YXMgaHVydD8gVGlja2V0OiB7eyB0aWNrZXQgfX0iLFdoYXQgaXMgdGhlIHByaW1hcnkgaXNzdWUgaW4gdGhpcyB0aWNrZXQ/IFRpY2tldDoge3sgdGlja2V0IH19LENoZWNrIGFsbCBvZiB0aGUgaXNzdWVzIG1lbnRpb25lZCBpbiB0aGlzIHRpY2tldDoge3sgdGlja2V0IH19LCJPbiBhIHNjYWxlIGZyb20gMCB0byA1LCB3aGF0IGlzIHRoZSBwcmlvcml0eSBsZXZlbCBvZiB0aGlzIHRpY2tldD8gVGlja2V0OiB7eyB0aWNrZXQgfX0iLFdoYXQgaXMgdGhlIHNlbnRpbWVudCBvZiB0aGlzIHRpY2tldD8gVGlja2V0OiB7eyB0aWNrZXQgfX0sIlsnc2FmZXR5JywgJ2NsZWFubGluZXNzJywgJ2RyaXZlciBwZXJmb3JtYW5jZScsICdHUFMvcm91dGUnLCAnbG9zdCBpdGVtJywgJ290aGVyJ10iLCJbJ1ZlcnkgcG9zaXRpdmUnLCAnU29tZXdoYXQgcG9zaXRpdmUnLCAnTmV1dHJhbCcsICdTb21ld2hhdCBuZWdhdGl2ZScsICdWZXJ5IG5lZ2F0aXZlJ10iLCwiWydObycsICdZZXMnXSIsIlsnWWVzJywgJ05vJywgJ05vdCBhcHBsaWNhYmxlJ10iLCJbMCwgMSwgMiwgMywgNCwgNV0iLGxpbmVhcl9zY2FsZSxtdWx0aXBsZV9jaG9pY2UsbXVsdGlwbGVfY2hvaWNlLHllc19ubyxmcmVlX3RleHQsY2hlY2tib3gsLCJUaGUgY3VzdG9tZXIgaXMgYXNraW5nIGZvciBhbiBleHBsYW5hdGlvbiByZWdhcmRpbmcgdGhlIGNoYXJnZSBkaXNjcmVwYW5jeSwgbm90IGRpcmVjdGx5IHJlcXVlc3RpbmcgYSByZWZ1bmQuIiwiVGhpcyB0aWNrZXQgaW52b2x2ZXMgYSBiaWxsaW5nIGlzc3VlLCB3aGljaCBpcyBpbXBvcnRhbnQgdG8gcmVzb2x2ZSBwcm9tcHRseSB0byBtYWludGFpbiBjdXN0b21lciB0cnVzdCBhbmQgc2F0aXNmYWN0aW9uLCBidXQgaXQgaXMgbm90IGFuIGVtZXJnZW5jeSBvciBjcml0aWNhbCB0ZWNobmljYWwgZmFpbHVyZS4iLCJUaGUgaXNzdWUgbWVudGlvbmVkIGluIHRoZSB0aWNrZXQgaXMgcmVsYXRlZCB0byBiZWluZyBjaGFyZ2VkIG1vcmUgdGhhbiB0aGUgZXN0aW1hdGVkIGZhcmUsIHdoaWNoIGZhbGxzIHVuZGVyIHRoZSAiIm90aGVyIiIgY2F0ZWdvcnkuIiwiVGhlIGN1c3RvbWVyIGlzIGV4cHJlc3NpbmcgZGlzc2F0aXNmYWN0aW9uIGR1ZSB0byBiZWluZyBjaGFyZ2VkIG1vcmUgdGhhbiBleHBlY3RlZCwgd2hpY2ggaW5kaWNhdGVzIGEgc29tZXdoYXQgbmVnYXRpdmUgc2VudGltZW50LiIsIlRoZSB0aWNrZXQgaXMgYWJvdXQgYSBmYXJlIGRpc2NyZXBhbmN5LCBub3QgYSBzYWZldHkgaXNzdWUgb3IgYWNjaWRlbnQuIiwiU29tZXdoYXQgbmVnYXRpdmUgIApUaGUgY3VzdG9tZXIgaXMgZXhwcmVzc2luZyBkaXNzYXRpc2ZhY3Rpb24gZHVlIHRvIGJlaW5nIGNoYXJnZWQgbW9yZSB0aGFuIGV4cGVjdGVkLCB3aGljaCBpbmRpY2F0ZXMgYSBzb21ld2hhdCBuZWdhdGl2ZSBzZW50aW1lbnQuIiwiWzVdICAKVGhlIGlzc3VlIG1lbnRpb25lZCBpbiB0aGUgdGlja2V0IGlzIHJlbGF0ZWQgdG8gYmVpbmcgY2hhcmdlZCBtb3JlIHRoYW4gdGhlIGVzdGltYXRlZCBmYXJlLCB3aGljaCBmYWxscyB1bmRlciB0aGUgIiJvdGhlciIiIGNhdGVnb3J5LiIsIk5vCgpUaGUgY3VzdG9tZXIgaXMgYXNraW5nIGZvciBhbiBleHBsYW5hdGlvbiByZWdhcmRpbmcgdGhlIGNoYXJnZSBkaXNjcmVwYW5jeSwgbm90IGRpcmVjdGx5IHJlcXVlc3RpbmcgYSByZWZ1bmQuIixUaGUgcHJpbWFyeSBpc3N1ZSBpbiB0aGlzIHRpY2tldCBpcyB0aGF0IHRoZSBjdXN0b21lciB3YXMgY2hhcmdlZCBtb3JlIHRoYW4gdGhlIGVzdGltYXRlZCBmYXJlIGZvciB0aGVpciB0cmlwIGFuZCBpcyBzZWVraW5nIGFuIGV4cGxhbmF0aW9uIGZvciB0aGUgZGlzY3JlcGFuY3kuLCJOb3QgYXBwbGljYWJsZQoKVGhlIHRpY2tldCBpcyBhYm91dCBhIGZhcmUgZGlzY3JlcGFuY3ksIG5vdCBhIHNhZmV0eSBpc3N1ZSBvciBhY2NpZGVudC4iLCIzICAKVGhpcyB0aWNrZXQgaW52b2x2ZXMgYSBiaWxsaW5nIGlzc3VlLCB3aGljaCBpcyBpbXBvcnRhbnQgdG8gcmVzb2x2ZSBwcm9tcHRseSB0byBtYWludGFpbiBjdXN0b21lciB0cnVzdCBhbmQgc2F0aXNmYWN0aW9uLCBidXQgaXQgaXMgbm90IGFuIGVtZXJnZW5jeSBvciBjcml0aWNhbCB0ZWNobmljYWwgZmFpbHVyZS4iDQpObyxWZXJ5IG5lZ2F0aXZlLE5vLCJUaGUgcHJpbWFyeSBpc3N1ZSBpbiB0aGlzIHRpY2tldCBpcyB0aGUgaW1wcm9wZXIgaW5zdGFsbGF0aW9uIG9mIHRoZSBjYXIgc2VhdCBwcm92aWRlZCBieSB0aGUgZHJpdmVyLCB3aGljaCBtYWRlIHRoZSBjdXN0b21lciBmZWVsIHRoYXQgdGhlaXIgY2hpbGQncyBzYWZldHkgd2FzIGF0IHJpc2suIFRoZSBjdXN0b21lciBpcyByZXF1ZXN0aW5nIHRoYXQgZHJpdmVycyByZWNlaXZlIGFkZGl0aW9uYWwgdHJhaW5pbmcgdG8gZW5zdXJlIHByb3BlciBjYXIgc2VhdCBpbnN0YWxsYXRpb24gaW4gdGhlIGZ1dHVyZS4iLDUsIlsnc2FmZXR5JywgJ2RyaXZlciBwZXJmb3JtYW5jZSddIiwiVGhlIGNhciBzZWF0IHByb3ZpZGVkIHdhcyBub3QgcHJvcGVybHkgaW5zdGFsbGVkLCBhbmQgSSBmZWx0IG15IGNoaWxkIHdhcyBhdCByaXNrLiBQbGVhc2UgZW5zdXJlIGRyaXZlciB0cmFpbmluZy4iLFlvdSBhcmUgYW4gZXhwZXJ0IGN1c3RvbWVyIHNlcnZpY2UgYWdlbnQuLEFnZW50XzMsMTUsWW91IGFyZSBhbnN3ZXJpbmcgcXVlc3Rpb25zIGFzIGlmIHlvdSB3ZXJlIGEgaHVtYW4uIERvIG5vdCBicmVhayBjaGFyYWN0ZXIuLDAsMSwwLGdwdC00bywwLjUsRmFsc2UsMTAwMCwzLCJXaGF0IGlzIHRoZSBwcmltYXJ5IGlzc3VlIGluIHRoaXMgdGlja2V0PyBUaWNrZXQ6IFRoZSBjYXIgc2VhdCBwcm92aWRlZCB3YXMgbm90IHByb3Blcmx5IGluc3RhbGxlZCwgYW5kIEkgZmVsdCBteSBjaGlsZCB3YXMgYXQgcmlzay4gUGxlYXNlIGVuc3VyZSBkcml2ZXIgdHJhaW5pbmcuIiwiWW91IGFyZSBhbnN3ZXJpbmcgcXVlc3Rpb25zIGFzIGlmIHlvdSB3ZXJlIGEgaHVtYW4uIERvIG5vdCBicmVhayBjaGFyYWN0ZXIuIFlvdXIgdHJhaXRzOiB7J3BlcnNvbmEnOiAnWW91IGFyZSBhbiBleHBlcnQgY3VzdG9tZXIgc2VydmljZSBhZ2VudC4nLCAneWVhcnNfZXhwZXJpZW5jZSc6IDE1fSIsIllvdSBhcmUgYW5zd2VyaW5nIHF1ZXN0aW9ucyBhcyBpZiB5b3Ugd2VyZSBhIGh1bWFuLiBEbyBub3QgYnJlYWsgY2hhcmFjdGVyLiBZb3VyIHRyYWl0czogeydwZXJzb25hJzogJ1lvdSBhcmUgYW4gZXhwZXJ0IGN1c3RvbWVyIHNlcnZpY2UgYWdlbnQuJywgJ3llYXJzX2V4cGVyaWVuY2UnOiAxNX0iLCJDaGVjayBhbGwgb2YgdGhlIGlzc3VlcyBtZW50aW9uZWQgaW4gdGhpcyB0aWNrZXQ6IFRoZSBjYXIgc2VhdCBwcm92aWRlZCB3YXMgbm90IHByb3Blcmx5IGluc3RhbGxlZCwgYW5kIEkgZmVsdCBteSBjaGlsZCB3YXMgYXQgcmlzay4gUGxlYXNlIGVuc3VyZSBkcml2ZXIgdHJhaW5pbmcuCgogICAgCjA6IHNhZmV0eQogICAgCjE6IGNsZWFubGluZXNzCiAgICAKMjogZHJpdmVyIHBlcmZvcm1hbmNlCiAgICAKMzogR1BTL3JvdXRlCiAgICAKNDogbG9zdCBpdGVtCiAgICAKNTogb3RoZXIKICAgIAoKCgoKCgpQbGVhc2UgcmVzcG9uZCBvbmx5IHdpdGggYSBjb21tYS1zZXBhcmF0ZWQgbGlzdCBvZiB0aGUgY29kZSBvZiB0aGUgb3B0aW9ucyB0aGF0IGFwcGx5LCB3aXRoIHNxdWFyZSBicmFja2V0cy4gRS5nLiwgWzAsIDEsIDNdCgoKQWZ0ZXIgdGhlIGFuc3dlciwgeW91IGNhbiBwdXQgYSBjb21tZW50IGV4cGxhaW5pbmcgeW91ciBjaG9pY2Ugb24gdGhlIG5leHQgbGluZS4iLCJPbiBhIHNjYWxlIGZyb20gMCB0byA1LCB3aGF0IGlzIHRoZSBwcmlvcml0eSBsZXZlbCBvZiB0aGlzIHRpY2tldD8gVGlja2V0OiBUaGUgY2FyIHNlYXQgcHJvdmlkZWQgd2FzIG5vdCBwcm9wZXJseSBpbnN0YWxsZWQsIGFuZCBJIGZlbHQgbXkgY2hpbGQgd2FzIGF0IHJpc2suIFBsZWFzZSBlbnN1cmUgZHJpdmVyIHRyYWluaW5nLgoKMCA6IExvd2VzdAoKMSA6IAoKMiA6IAoKMyA6IAoKNCA6IAoKNSA6IEhpZ2hlc3QKCk9ubHkgMSBvcHRpb24gbWF5IGJlIHNlbGVjdGVkLgoKUmVzcG9uZCBvbmx5IHdpdGggdGhlIGNvZGUgY29ycmVzcG9uZGluZyB0byBvbmUgb2YgdGhlIG9wdGlvbnMuIEUuZy4sICIiMSIiIG9yICIiNSIiIGJ5IGl0c2VsZi4KCkFmdGVyIHRoZSBhbnN3ZXIsIHlvdSBjYW4gcHV0IGEgY29tbWVudCBleHBsYWluaW5nIHdoeSB5b3UgY2hvc2UgdGhhdCBvcHRpb24gb24gdGhlIG5leHQgbGluZS4iLCJZb3UgYXJlIGFuc3dlcmluZyBxdWVzdGlvbnMgYXMgaWYgeW91IHdlcmUgYSBodW1hbi4gRG8gbm90IGJyZWFrIGNoYXJhY3Rlci4gWW91ciB0cmFpdHM6IHsncGVyc29uYSc6ICdZb3UgYXJlIGFuIGV4cGVydCBjdXN0b21lciBzZXJ2aWNlIGFnZW50LicsICd5ZWFyc19leHBlcmllbmNlJzogMTV9IiwiWW91IGFyZSBhbnN3ZXJpbmcgcXVlc3Rpb25zIGFzIGlmIHlvdSB3ZXJlIGEgaHVtYW4uIERvIG5vdCBicmVhayBjaGFyYWN0ZXIuIFlvdXIgdHJhaXRzOiB7J3BlcnNvbmEnOiAnWW91IGFyZSBhbiBleHBlcnQgY3VzdG9tZXIgc2VydmljZSBhZ2VudC4nLCAneWVhcnNfZXhwZXJpZW5jZSc6IDE1fSIsIllvdSBhcmUgYW5zd2VyaW5nIHF1ZXN0aW9ucyBhcyBpZiB5b3Ugd2VyZSBhIGh1bWFuLiBEbyBub3QgYnJlYWsgY2hhcmFjdGVyLiBZb3VyIHRyYWl0czogeydwZXJzb25hJzogJ1lvdSBhcmUgYW4gZXhwZXJ0IGN1c3RvbWVyIHNlcnZpY2UgYWdlbnQuJywgJ3llYXJzX2V4cGVyaWVuY2UnOiAxNX0iLCIKV2hhdCBpcyB0aGUgc2VudGltZW50IG9mIHRoaXMgdGlja2V0PyBUaWNrZXQ6IFRoZSBjYXIgc2VhdCBwcm92aWRlZCB3YXMgbm90IHByb3Blcmx5IGluc3RhbGxlZCwgYW5kIEkgZmVsdCBteSBjaGlsZCB3YXMgYXQgcmlzay4gUGxlYXNlIGVuc3VyZSBkcml2ZXIgdHJhaW5pbmcuCgogICAgClZlcnkgcG9zaXRpdmUKICAgIApTb21ld2hhdCBwb3NpdGl2ZQogICAgCk5ldXRyYWwKICAgIApTb21ld2hhdCBuZWdhdGl2ZQogICAgClZlcnkgbmVnYXRpdmUKICAgIAoKT25seSAxIG9wdGlvbiBtYXkgYmUgc2VsZWN0ZWQuCgpSZXNwb25kIG9ubHkgd2l0aCBhIHN0cmluZyBjb3JyZXNwb25kaW5nIHRvIG9uZSBvZiB0aGUgb3B0aW9ucy4KCgpBZnRlciB0aGUgYW5zd2VyLCB5b3UgY2FuIHB1dCBhIGNvbW1lbnQgZXhwbGFpbmluZyB3aHkgeW91IGNob3NlIHRoYXQgb3B0aW9uIG9uIHRoZSBuZXh0IGxpbmUuIiwiCkRvZXMgdGhlIGN1c3RvbWVyIGFzayBmb3IgYSByZWZ1bmQgaW4gdGhpcyB0aWNrZXQ/IFRpY2tldDogVGhlIGNhciBzZWF0IHByb3ZpZGVkIHdhcyBub3QgcHJvcGVybHkgaW5zdGFsbGVkLCBhbmQgSSBmZWx0IG15IGNoaWxkIHdhcyBhdCByaXNrLiBQbGVhc2UgZW5zdXJlIGRyaXZlciB0cmFpbmluZy4KCiAgICAKTm8KICAgIApZZXMKICAgIAoKT25seSAxIG9wdGlvbiBtYXkgYmUgc2VsZWN0ZWQuClBsZWFzZSByZXNwb25kIHdpdGgganVzdCB5b3VyIGFuc3dlci4gCgoKQWZ0ZXIgdGhlIGFuc3dlciwgeW91IGNhbiBwdXQgYSBjb21tZW50IGV4cGxhaW5pbmcgeW91ciByZXNwb25zZS4iLCJZb3UgYXJlIGFuc3dlcmluZyBxdWVzdGlvbnMgYXMgaWYgeW91IHdlcmUgYSBodW1hbi4gRG8gbm90IGJyZWFrIGNoYXJhY3Rlci4gWW91ciB0cmFpdHM6IHsncGVyc29uYSc6ICdZb3UgYXJlIGFuIGV4cGVydCBjdXN0b21lciBzZXJ2aWNlIGFnZW50LicsICd5ZWFyc19leHBlcmllbmNlJzogMTV9IiwiCklmIHRoZSBwcmltYXJ5IGlzc3VlIGluIHRoaXMgdGlja2V0IGlzIHNhZmV0eSwgd2FzIHRoZXJlIGFuIGFjY2lkZW50IHdoZXJlIHNvbWVvbmUgd2FzIGh1cnQ/IFRpY2tldDogVGhlIGNhciBzZWF0IHByb3ZpZGVkIHdhcyBub3QgcHJvcGVybHkgaW5zdGFsbGVkLCBhbmQgSSBmZWx0IG15IGNoaWxkIHdhcyBhdCByaXNrLiBQbGVhc2UgZW5zdXJlIGRyaXZlciB0cmFpbmluZy4KCiAgICAKWWVzCiAgICAKTm8KICAgIApOb3QgYXBwbGljYWJsZQogICAgCgpPbmx5IDEgb3B0aW9uIG1heSBiZSBzZWxlY3RlZC4KClJlc3BvbmQgb25seSB3aXRoIGEgc3RyaW5nIGNvcnJlc3BvbmRpbmcgdG8gb25lIG9mIHRoZSBvcHRpb25zLgoKCkFmdGVyIHRoZSBhbnN3ZXIsIHlvdSBjYW4gcHV0IGEgY29tbWVudCBleHBsYWluaW5nIHdoeSB5b3UgY2hvc2UgdGhhdCBvcHRpb24gb24gdGhlIG5leHQgbGluZS4iLDAuMDAwNTkyNSwieydpZCc6ICdjaGF0Y21wbC1BZU9MQ2h1bVo3b3pyMmI0cGxEeUZCV2RqakVwSicsICdjaG9pY2VzJzogW3snZmluaXNoX3JlYXNvbic6ICdzdG9wJywgJ2luZGV4JzogMCwgJ2xvZ3Byb2JzJzogTm9uZSwgJ21lc3NhZ2UnOiB7J2NvbnRlbnQnOiAnTm8gIFxuVGhlcmUgaXMgbm8gbWVudGlvbiBvZiBhbiBhY3R1YWwgYWNjaWRlbnQgb3IgaW5qdXJ5IG9jY3VycmluZywgb25seSBhIGNvbmNlcm4gYWJvdXQgcG90ZW50aWFsIHJpc2sgZHVlIHRvIGltcHJvcGVyIGluc3RhbGxhdGlvbi4nLCAncmVmdXNhbCc6IE5vbmUsICdyb2xlJzogJ2Fzc2lzdGFudCcsICdhdWRpbyc6IE5vbmUsICdmdW5jdGlvbl9jYWxsJzogTm9uZSwgJ3Rvb2xfY2FsbHMnOiBOb25lfX1dLCAnY3JlYXRlZCc6IDE3MzQxOTAwNTAsICdtb2RlbCc6ICdncHQtNG8tMjAyNC0wOC0wNicsICdvYmplY3QnOiAnY2hhdC5jb21wbGV0aW9uJywgJ3NlcnZpY2VfdGllcic6IE5vbmUsICdzeXN0ZW1fZmluZ2VycHJpbnQnOiAnZnBfYTc5ZDhkYWMxZicsICd1c2FnZSc6IHsnY29tcGxldGlvbl90b2tlbnMnOiAyNSwgJ3Byb21wdF90b2tlbnMnOiAxNDMsICd0b3RhbF90b2tlbnMnOiAxNjgsICdjb21wbGV0aW9uX3Rva2Vuc19kZXRhaWxzJzogeydhY2NlcHRlZF9wcmVkaWN0aW9uX3Rva2Vucyc6IDAsICdhdWRpb190b2tlbnMnOiAwLCAncmVhc29uaW5nX3Rva2Vucyc6IDAsICdyZWplY3RlZF9wcmVkaWN0aW9uX3Rva2Vucyc6IDB9LCAncHJvbXB0X3Rva2Vuc19kZXRhaWxzJzogeydhdWRpb190b2tlbnMnOiAwLCAnY2FjaGVkX3Rva2Vucyc6IDB9fX0iLCJ7J2lkJzogJ2NoYXRjbXBsLUFlT0xDbVhDMUZqQlRWWmZrMEhTdXc3WGo5MXY0JywgJ2Nob2ljZXMnOiBbeydmaW5pc2hfcmVhc29uJzogJ3N0b3AnLCAnaW5kZXgnOiAwLCAnbG9ncHJvYnMnOiBOb25lLCAnbWVzc2FnZSc6IHsnY29udGVudCc6ICdWZXJ5IG5lZ2F0aXZlICBcblRoZSB0aWNrZXQgZXhwcmVzc2VzIGEgc2VyaW91cyBjb25jZXJuIGFib3V0IHNhZmV0eSBhbmQgaW1wbGllcyBkaXNzYXRpc2ZhY3Rpb24gd2l0aCB0aGUgc2VydmljZSwgaW5kaWNhdGluZyBhIHZlcnkgbmVnYXRpdmUgc2VudGltZW50LicsICdyZWZ1c2FsJzogTm9uZSwgJ3JvbGUnOiAnYXNzaXN0YW50JywgJ2F1ZGlvJzogTm9uZSwgJ2Z1bmN0aW9uX2NhbGwnOiBOb25lLCAndG9vbF9jYWxscyc6IE5vbmV9fV0sICdjcmVhdGVkJzogMTczNDE5MDA1MCwgJ21vZGVsJzogJ2dwdC00by0yMDI0LTA4LTA2JywgJ29iamVjdCc6ICdjaGF0LmNvbXBsZXRpb24nLCAnc2VydmljZV90aWVyJzogTm9uZSwgJ3N5c3RlbV9maW5nZXJwcmludCc6ICdmcF9hNzlkOGRhYzFmJywgJ3VzYWdlJzogeydjb21wbGV0aW9uX3Rva2Vucyc6IDI0LCAncHJvbXB0X3Rva2Vucyc6IDE0MSwgJ3RvdGFsX3Rva2Vucyc6IDE2NSwgJ2NvbXBsZXRpb25fdG9rZW5zX2RldGFpbHMnOiB7J2FjY2VwdGVkX3ByZWRpY3Rpb25fdG9rZW5zJzogMCwgJ2F1ZGlvX3Rva2Vucyc6IDAsICdyZWFzb25pbmdfdG9rZW5zJzogMCwgJ3JlamVjdGVkX3ByZWRpY3Rpb25fdG9rZW5zJzogMH0sICdwcm9tcHRfdG9rZW5zX2RldGFpbHMnOiB7J2F1ZGlvX3Rva2Vucyc6IDAsICdjYWNoZWRfdG9rZW5zJzogMH19fSIsMTY4Ny43NjM3MTMwODAxNjg2LDE1ODEuMDI3NjY3OTg0MTg5NywieydpZCc6ICdjaGF0Y21wbC1BZU9MQ0Q3WERIM29TbXhBRnZrdEN6WmFDUGk4bCcsICdjaG9pY2VzJzogW3snZmluaXNoX3JlYXNvbic6ICdzdG9wJywgJ2luZGV4JzogMCwgJ2xvZ3Byb2JzJzogTm9uZSwgJ21lc3NhZ2UnOiB7J2NvbnRlbnQnOiAnWzAsIDJdXG5cblRoZSBpc3N1ZXMgbWVudGlvbmVkIGFyZSByZWxhdGVkIHRvIHNhZmV0eSAoMCkgYmVjYXVzZSB0aGUgY2FyIHNlYXQgd2FzIG5vdCBwcm9wZXJseSBpbnN0YWxsZWQsIGFuZCBkcml2ZXIgcGVyZm9ybWFuY2UgKDIpIGJlY2F1c2UgdGhlIGRyaXZlciBtaWdodCBuZWVkIGZ1cnRoZXIgdHJhaW5pbmcgdG8gZW5zdXJlIHByb3BlciBpbnN0YWxsYXRpb24uJywgJ3JlZnVzYWwnOiBOb25lLCAncm9sZSc6ICdhc3Npc3RhbnQnLCAnYXVkaW8nOiBOb25lLCAnZnVuY3Rpb25fY2FsbCc6IE5vbmUsICd0b29sX2NhbGxzJzogTm9uZX19XSwgJ2NyZWF0ZWQnOiAxNzM0MTkwMDUwLCAnbW9kZWwnOiAnZ3B0LTRvLTIwMjQtMDgtMDYnLCAnb2JqZWN0JzogJ2NoYXQuY29tcGxldGlvbicsICdzZXJ2aWNlX3RpZXInOiBOb25lLCAnc3lzdGVtX2ZpbmdlcnByaW50JzogJ2ZwX2E3OWQ4ZGFjMWYnLCAndXNhZ2UnOiB7J2NvbXBsZXRpb25fdG9rZW5zJzogNDMsICdwcm9tcHRfdG9rZW5zJzogMTY0LCAndG90YWxfdG9rZW5zJzogMjA3LCAnY29tcGxldGlvbl90b2tlbnNfZGV0YWlscyc6IHsnYWNjZXB0ZWRfcHJlZGljdGlvbl90b2tlbnMnOiAwLCAnYXVkaW9fdG9rZW5zJzogMCwgJ3JlYXNvbmluZ190b2tlbnMnOiAwLCAncmVqZWN0ZWRfcHJlZGljdGlvbl90b2tlbnMnOiAwfSwgJ3Byb21wdF90b2tlbnNfZGV0YWlscyc6IHsnYXVkaW9fdG9rZW5zJzogMCwgJ2NhY2hlZF90b2tlbnMnOiAwfX19IiwwLjAwMDc5NzUsMTY0Ni4wOTA1MzQ5Nzk0MjM5LDAuMDAwNjMyNSwwLjAwMDg0LCJ7J2lkJzogJ2NoYXRjbXBsLUFlT0xDcHhZaDM5R1p0eVpkZWdHOUZiWGNzTGt1JywgJ2Nob2ljZXMnOiBbeydmaW5pc2hfcmVhc29uJzogJ3N0b3AnLCAnaW5kZXgnOiAwLCAnbG9ncHJvYnMnOiBOb25lLCAnbWVzc2FnZSc6IHsnY29udGVudCc6ICIiVGhlIHByaW1hcnkgaXNzdWUgaW4gdGhpcyB0aWNrZXQgaXMgdGhlIGltcHJvcGVyIGluc3RhbGxhdGlvbiBvZiB0aGUgY2FyIHNlYXQgcHJvdmlkZWQgYnkgdGhlIGRyaXZlciwgd2hpY2ggbWFkZSB0aGUgY3VzdG9tZXIgZmVlbCB0aGF0IHRoZWlyIGNoaWxkJ3Mgc2FmZXR5IHdhcyBhdCByaXNrLiBUaGUgY3VzdG9tZXIgaXMgcmVxdWVzdGluZyB0aGF0IGRyaXZlcnMgcmVjZWl2ZSBhZGRpdGlvbmFsIHRyYWluaW5nIHRvIGVuc3VyZSBwcm9wZXIgY2FyIHNlYXQgaW5zdGFsbGF0aW9uIGluIHRoZSBmdXR1cmUuIiIsICdyZWZ1c2FsJzogTm9uZSwgJ3JvbGUnOiAnYXNzaXN0YW50JywgJ2F1ZGlvJzogTm9uZSwgJ2Z1bmN0aW9uX2NhbGwnOiBOb25lLCAndG9vbF9jYWxscyc6IE5vbmV9fV0sICdjcmVhdGVkJzogMTczNDE5MDA1MCwgJ21vZGVsJzogJ2dwdC00by0yMDI0LTA4LTA2JywgJ29iamVjdCc6ICdjaGF0LmNvbXBsZXRpb24nLCAnc2VydmljZV90aWVyJzogTm9uZSwgJ3N5c3RlbV9maW5nZXJwcmludCc6ICdmcF9hNzlkOGRhYzFmJywgJ3VzYWdlJzogeydjb21wbGV0aW9uX3Rva2Vucyc6IDUxLCAncHJvbXB0X3Rva2Vucyc6IDg0LCAndG90YWxfdG9rZW5zJzogMTM1LCAnY29tcGxldGlvbl90b2tlbnNfZGV0YWlscyc6IHsnYWNjZXB0ZWRfcHJlZGljdGlvbl90b2tlbnMnOiAwLCAnYXVkaW9fdG9rZW5zJzogMCwgJ3JlYXNvbmluZ190b2tlbnMnOiAwLCAncmVqZWN0ZWRfcHJlZGljdGlvbl90b2tlbnMnOiAwfSwgJ3Byb21wdF90b2tlbnNfZGV0YWlscyc6IHsnYXVkaW9fdG9rZW5zJzogMCwgJ2NhY2hlZF90b2tlbnMnOiAwfX19IiwwLjAwMDcyLDEzODguODg4ODg4ODg4ODg5LCJ7J2lkJzogJ2NoYXRjbXBsLUFlT0xDNDNWenprYXptTkZvRkF3aXlsM3RVQ0pYJywgJ2Nob2ljZXMnOiBbeydmaW5pc2hfcmVhc29uJzogJ3N0b3AnLCAnaW5kZXgnOiAwLCAnbG9ncHJvYnMnOiBOb25lLCAnbWVzc2FnZSc6IHsnY29udGVudCc6ICc1ICBcblRoZSBzYWZldHkgb2YgYSBjaGlsZCBpcyBvZiB1dG1vc3QgaW1wb3J0YW5jZSwgYW5kIGltcHJvcGVyIGluc3RhbGxhdGlvbiBvZiBhIGNhciBzZWF0IHBvc2VzIGEgc2lnbmlmaWNhbnQgcmlzay4gVGhpcyBpc3N1ZSByZXF1aXJlcyBpbW1lZGlhdGUgYXR0ZW50aW9uIHRvIGVuc3VyZSBkcml2ZXIgdHJhaW5pbmcgYW5kIHByZXZlbnQgcG90ZW50aWFsIGhhcm0uJywgJ3JlZnVzYWwnOiBOb25lLCAncm9sZSc6ICdhc3Npc3RhbnQnLCAnYXVkaW8nOiBOb25lLCAnZnVuY3Rpb25fY2FsbCc6IE5vbmUsICd0b29sX2NhbGxzJzogTm9uZX19XSwgJ2NyZWF0ZWQnOiAxNzM0MTkwMDUwLCAnbW9kZWwnOiAnZ3B0LTRvLTIwMjQtMDgtMDYnLCAnb2JqZWN0JzogJ2NoYXQuY29tcGxldGlvbicsICdzZXJ2aWNlX3RpZXInOiBOb25lLCAnc3lzdGVtX2ZpbmdlcnByaW50JzogJ2ZwX2E3OWQ4ZGFjMWYnLCAndXNhZ2UnOiB7J2NvbXBsZXRpb25fdG9rZW5zJzogMzgsICdwcm9tcHRfdG9rZW5zJzogMTY3LCAndG90YWxfdG9rZW5zJzogMjA1LCAnY29tcGxldGlvbl90b2tlbnNfZGV0YWlscyc6IHsnYWNjZXB0ZWRfcHJlZGljdGlvbl90b2tlbnMnOiAwLCAnYXVkaW9fdG9rZW5zJzogMCwgJ3JlYXNvbmluZ190b2tlbnMnOiAwLCAncmVqZWN0ZWRfcHJlZGljdGlvbl90b2tlbnMnOiAwfSwgJ3Byb21wdF90b2tlbnNfZGV0YWlscyc6IHsnYXVkaW9fdG9rZW5zJzogMCwgJ2NhY2hlZF90b2tlbnMnOiAwfX19IiwxMTkwLjQ3NjE5MDQ3NjE5MDQsMTI1My45MTg0OTUyOTc4MDU1LDAuMDAwNjA3NSwieydpZCc6ICdjaGF0Y21wbC1BZU9MQ2NnRTlOVmRmSTEzT1ZyMEN3UWx1YlJnVicsICdjaG9pY2VzJzogW3snZmluaXNoX3JlYXNvbic6ICdzdG9wJywgJ2luZGV4JzogMCwgJ2xvZ3Byb2JzJzogTm9uZSwgJ21lc3NhZ2UnOiB7J2NvbnRlbnQnOiAnTm9cblxuVGhlIGN1c3RvbWVyIGlzIGV4cHJlc3NpbmcgYSBjb25jZXJuIGFib3V0IHRoZSBpbnN0YWxsYXRpb24gb2YgdGhlIGNhciBzZWF0IGFuZCByZXF1ZXN0aW5nIGRyaXZlciB0cmFpbmluZywgYnV0IHRoZXkgYXJlIG5vdCBleHBsaWNpdGx5IGFza2luZyBmb3IgYSByZWZ1bmQgaW4gdGhpcyB0aWNrZXQuJywgJ3JlZnVzYWwnOiBOb25lLCAncm9sZSc6ICdhc3Npc3RhbnQnLCAnYXVkaW8nOiBOb25lLCAnZnVuY3Rpb25fY2FsbCc6IE5vbmUsICd0b29sX2NhbGxzJzogTm9uZX19XSwgJ2NyZWF0ZWQnOiAxNzM0MTkwMDUwLCAnbW9kZWwnOiAnZ3B0LTRvLTIwMjQtMDgtMDYnLCAnb2JqZWN0JzogJ2NoYXQuY29tcGxldGlvbicsICdzZXJ2aWNlX3RpZXInOiBOb25lLCAnc3lzdGVtX2ZpbmdlcnByaW50JzogJ2ZwXzkwMzU0NjI4ZjInLCAndXNhZ2UnOiB7J2NvbXBsZXRpb25fdG9rZW5zJzogMzMsICdwcm9tcHRfdG9rZW5zJzogMTIxLCAndG90YWxfdG9rZW5zJzogMTU0LCAnY29tcGxldGlvbl90b2tlbnNfZGV0YWlscyc6IHsnYWNjZXB0ZWRfcHJlZGljdGlvbl90b2tlbnMnOiAwLCAnYXVkaW9fdG9rZW5zJzogMCwgJ3JlYXNvbmluZ190b2tlbnMnOiAwLCAncmVqZWN0ZWRfcHJlZGljdGlvbl90b2tlbnMnOiAwfSwgJ3Byb21wdF90b2tlbnNfZGV0YWlscyc6IHsnYXVkaW9fdG9rZW5zJzogMCwgJ2NhY2hlZF90b2tlbnMnOiAwfX19IiwwLERvZXMgdGhlIGN1c3RvbWVyIGFzayBmb3IgYSByZWZ1bmQgaW4gdGhpcyB0aWNrZXQ/IFRpY2tldDoge3sgdGlja2V0IH19LCJJZiB0aGUgcHJpbWFyeSBpc3N1ZSBpbiB0aGlzIHRpY2tldCBpcyBzYWZldHksIHdhcyB0aGVyZSBhbiBhY2NpZGVudCB3aGVyZSBzb21lb25lIHdhcyBodXJ0PyBUaWNrZXQ6IHt7IHRpY2tldCB9fSIsV2hhdCBpcyB0aGUgcHJpbWFyeSBpc3N1ZSBpbiB0aGlzIHRpY2tldD8gVGlja2V0OiB7eyB0aWNrZXQgfX0sQ2hlY2sgYWxsIG9mIHRoZSBpc3N1ZXMgbWVudGlvbmVkIGluIHRoaXMgdGlja2V0OiB7eyB0aWNrZXQgfX0sIk9uIGEgc2NhbGUgZnJvbSAwIHRvIDUsIHdoYXQgaXMgdGhlIHByaW9yaXR5IGxldmVsIG9mIHRoaXMgdGlja2V0PyBUaWNrZXQ6IHt7IHRpY2tldCB9fSIsV2hhdCBpcyB0aGUgc2VudGltZW50IG9mIHRoaXMgdGlja2V0PyBUaWNrZXQ6IHt7IHRpY2tldCB9fSwiWydzYWZldHknLCAnY2xlYW5saW5lc3MnLCAnZHJpdmVyIHBlcmZvcm1hbmNlJywgJ0dQUy9yb3V0ZScsICdsb3N0IGl0ZW0nLCAnb3RoZXInXSIsIlsnVmVyeSBwb3NpdGl2ZScsICdTb21ld2hhdCBwb3NpdGl2ZScsICdOZXV0cmFsJywgJ1NvbWV3aGF0IG5lZ2F0aXZlJywgJ1ZlcnkgbmVnYXRpdmUnXSIsLCJbJ05vJywgJ1llcyddIiwiWydZZXMnLCAnTm8nLCAnTm90IGFwcGxpY2FibGUnXSIsIlswLCAxLCAyLCAzLCA0LCA1XSIsbGluZWFyX3NjYWxlLG11bHRpcGxlX2Nob2ljZSxtdWx0aXBsZV9jaG9pY2UseWVzX25vLGZyZWVfdGV4dCxjaGVja2JveCwsIlRoZSBjdXN0b21lciBpcyBleHByZXNzaW5nIGEgY29uY2VybiBhYm91dCB0aGUgaW5zdGFsbGF0aW9uIG9mIHRoZSBjYXIgc2VhdCBhbmQgcmVxdWVzdGluZyBkcml2ZXIgdHJhaW5pbmcsIGJ1dCB0aGV5IGFyZSBub3QgZXhwbGljaXRseSBhc2tpbmcgZm9yIGEgcmVmdW5kIGluIHRoaXMgdGlja2V0LiIsIlRoZSBzYWZldHkgb2YgYSBjaGlsZCBpcyBvZiB1dG1vc3QgaW1wb3J0YW5jZSwgYW5kIGltcHJvcGVyIGluc3RhbGxhdGlvbiBvZiBhIGNhciBzZWF0IHBvc2VzIGEgc2lnbmlmaWNhbnQgcmlzay4gVGhpcyBpc3N1ZSByZXF1aXJlcyBpbW1lZGlhdGUgYXR0ZW50aW9uIHRvIGVuc3VyZSBkcml2ZXIgdHJhaW5pbmcgYW5kIHByZXZlbnQgcG90ZW50aWFsIGhhcm0uIiwiVGhlIGlzc3VlcyBtZW50aW9uZWQgYXJlIHJlbGF0ZWQgdG8gc2FmZXR5ICgwKSBiZWNhdXNlIHRoZSBjYXIgc2VhdCB3YXMgbm90IHByb3Blcmx5IGluc3RhbGxlZCwgYW5kIGRyaXZlciBwZXJmb3JtYW5jZSAoMikgYmVjYXVzZSB0aGUgZHJpdmVyIG1pZ2h0IG5lZWQgZnVydGhlciB0cmFpbmluZyB0byBlbnN1cmUgcHJvcGVyIGluc3RhbGxhdGlvbi4iLCJUaGUgdGlja2V0IGV4cHJlc3NlcyBhIHNlcmlvdXMgY29uY2VybiBhYm91dCBzYWZldHkgYW5kIGltcGxpZXMgZGlzc2F0aXNmYWN0aW9uIHdpdGggdGhlIHNlcnZpY2UsIGluZGljYXRpbmcgYSB2ZXJ5IG5lZ2F0aXZlIHNlbnRpbWVudC4iLCJUaGVyZSBpcyBubyBtZW50aW9uIG9mIGFuIGFjdHVhbCBhY2NpZGVudCBvciBpbmp1cnkgb2NjdXJyaW5nLCBvbmx5IGEgY29uY2VybiBhYm91dCBwb3RlbnRpYWwgcmlzayBkdWUgdG8gaW1wcm9wZXIgaW5zdGFsbGF0aW9uLiIsIlZlcnkgbmVnYXRpdmUgIApUaGUgdGlja2V0IGV4cHJlc3NlcyBhIHNlcmlvdXMgY29uY2VybiBhYm91dCBzYWZldHkgYW5kIGltcGxpZXMgZGlzc2F0aXNmYWN0aW9uIHdpdGggdGhlIHNlcnZpY2UsIGluZGljYXRpbmcgYSB2ZXJ5IG5lZ2F0aXZlIHNlbnRpbWVudC4iLCJbMCwgMl0KClRoZSBpc3N1ZXMgbWVudGlvbmVkIGFyZSByZWxhdGVkIHRvIHNhZmV0eSAoMCkgYmVjYXVzZSB0aGUgY2FyIHNlYXQgd2FzIG5vdCBwcm9wZXJseSBpbnN0YWxsZWQsIGFuZCBkcml2ZXIgcGVyZm9ybWFuY2UgKDIpIGJlY2F1c2UgdGhlIGRyaXZlciBtaWdodCBuZWVkIGZ1cnRoZXIgdHJhaW5pbmcgdG8gZW5zdXJlIHByb3BlciBpbnN0YWxsYXRpb24uIiwiTm8KClRoZSBjdXN0b21lciBpcyBleHByZXNzaW5nIGEgY29uY2VybiBhYm91dCB0aGUgaW5zdGFsbGF0aW9uIG9mIHRoZSBjYXIgc2VhdCBhbmQgcmVxdWVzdGluZyBkcml2ZXIgdHJhaW5pbmcsIGJ1dCB0aGV5IGFyZSBub3QgZXhwbGljaXRseSBhc2tpbmcgZm9yIGEgcmVmdW5kIGluIHRoaXMgdGlja2V0LiIsIlRoZSBwcmltYXJ5IGlzc3VlIGluIHRoaXMgdGlja2V0IGlzIHRoZSBpbXByb3BlciBpbnN0YWxsYXRpb24gb2YgdGhlIGNhciBzZWF0IHByb3ZpZGVkIGJ5IHRoZSBkcml2ZXIsIHdoaWNoIG1hZGUgdGhlIGN1c3RvbWVyIGZlZWwgdGhhdCB0aGVpciBjaGlsZCdzIHNhZmV0eSB3YXMgYXQgcmlzay4gVGhlIGN1c3RvbWVyIGlzIHJlcXVlc3RpbmcgdGhhdCBkcml2ZXJzIHJlY2VpdmUgYWRkaXRpb25hbCB0cmFpbmluZyB0byBlbnN1cmUgcHJvcGVyIGNhciBzZWF0IGluc3RhbGxhdGlvbiBpbiB0aGUgZnV0dXJlLiIsIk5vICAKVGhlcmUgaXMgbm8gbWVudGlvbiBvZiBhbiBhY3R1YWwgYWNjaWRlbnQgb3IgaW5qdXJ5IG9jY3VycmluZywgb25seSBhIGNvbmNlcm4gYWJvdXQgcG90ZW50aWFsIHJpc2sgZHVlIHRvIGltcHJvcGVyIGluc3RhbGxhdGlvbi4iLCI1ICAKVGhlIHNhZmV0eSBvZiBhIGNoaWxkIGlzIG9mIHV0bW9zdCBpbXBvcnRhbmNlLCBhbmQgaW1wcm9wZXIgaW5zdGFsbGF0aW9uIG9mIGEgY2FyIHNlYXQgcG9zZXMgYSBzaWduaWZpY2FudCByaXNrLiBUaGlzIGlzc3VlIHJlcXVpcmVzIGltbWVkaWF0ZSBhdHRlbnRpb24gdG8gZW5zdXJlIGRyaXZlciB0cmFpbmluZyBhbmQgcHJldmVudCBwb3RlbnRpYWwgaGFybS4iDQpObyxTb21ld2hhdCBuZWdhdGl2ZSxObywiVGhlIHByaW1hcnkgaXNzdWUgaW4gdGhpcyB0aWNrZXQgaXMgdGhhdCB0aGUgY3VzdG9tZXIgYmVsaWV2ZXMgdGhlIGRyaXZlciB0b29rIGEgbG9uZ2VyIHJvdXRlIHRoYW4gbmVjZXNzYXJ5LCB3aGljaCBsZWQgdG8gYSBoaWdoZXIgZmFyZS4gVGhlIGN1c3RvbWVyIGlzIHJlcXVlc3RpbmcgYW4gYWRqdXN0bWVudCB0byB0aGUgZmFyZSB0byByZWZsZWN0IHdoYXQgdGhleSBiZWxpZXZlIHNob3VsZCBoYXZlIGJlZW4gdGhlIGNvcnJlY3QgYW1vdW50LiIsMiwiWydkcml2ZXIgcGVyZm9ybWFuY2UnLCAnR1BTL3JvdXRlJ10iLCJNeSBkcml2ZXIgdG9vayBhIGxvbmdlciByb3V0ZSB0aGFuIG5lY2Vzc2FyeSwgcmVzdWx0aW5nIGluIGEgaGlnaGVyIGZhcmUuIEkgcmVxdWVzdCBhIGZhcmUgYWRqdXN0bWVudC4iLFlvdSBhcmUgYW4gZXhwZXJ0IGN1c3RvbWVyIHNlcnZpY2UgYWdlbnQuLEFnZW50XzQsMTUsWW91IGFyZSBhbnN3ZXJpbmcgcXVlc3Rpb25zIGFzIGlmIHlvdSB3ZXJlIGEgaHVtYW4uIERvIG5vdCBicmVhayBjaGFyYWN0ZXIuLDAsMSwwLGdwdC00bywwLjUsRmFsc2UsMTAwMCwzLCJXaGF0IGlzIHRoZSBwcmltYXJ5IGlzc3VlIGluIHRoaXMgdGlja2V0PyBUaWNrZXQ6IE15IGRyaXZlciB0b29rIGEgbG9uZ2VyIHJvdXRlIHRoYW4gbmVjZXNzYXJ5LCByZXN1bHRpbmcgaW4gYSBoaWdoZXIgZmFyZS4gSSByZXF1ZXN0IGEgZmFyZSBhZGp1c3RtZW50LiIsIllvdSBhcmUgYW5zd2VyaW5nIHF1ZXN0aW9ucyBhcyBpZiB5b3Ugd2VyZSBhIGh1bWFuLiBEbyBub3QgYnJlYWsgY2hhcmFjdGVyLiBZb3VyIHRyYWl0czogeydwZXJzb25hJzogJ1lvdSBhcmUgYW4gZXhwZXJ0IGN1c3RvbWVyIHNlcnZpY2UgYWdlbnQuJywgJ3llYXJzX2V4cGVyaWVuY2UnOiAxNX0iLCJZb3UgYXJlIGFuc3dlcmluZyBxdWVzdGlvbnMgYXMgaWYgeW91IHdlcmUgYSBodW1hbi4gRG8gbm90IGJyZWFrIGNoYXJhY3Rlci4gWW91ciB0cmFpdHM6IHsncGVyc29uYSc6ICdZb3UgYXJlIGFuIGV4cGVydCBjdXN0b21lciBzZXJ2aWNlIGFnZW50LicsICd5ZWFyc19leHBlcmllbmNlJzogMTV9IiwiQ2hlY2sgYWxsIG9mIHRoZSBpc3N1ZXMgbWVudGlvbmVkIGluIHRoaXMgdGlja2V0OiBNeSBkcml2ZXIgdG9vayBhIGxvbmdlciByb3V0ZSB0aGFuIG5lY2Vzc2FyeSwgcmVzdWx0aW5nIGluIGEgaGlnaGVyIGZhcmUuIEkgcmVxdWVzdCBhIGZhcmUgYWRqdXN0bWVudC4KCiAgICAKMDogc2FmZXR5CiAgICAKMTogY2xlYW5saW5lc3MKICAgIAoyOiBkcml2ZXIgcGVyZm9ybWFuY2UKICAgIAozOiBHUFMvcm91dGUKICAgIAo0OiBsb3N0IGl0ZW0KICAgIAo1OiBvdGhlcgogICAgCgoKCgoKClBsZWFzZSByZXNwb25kIG9ubHkgd2l0aCBhIGNvbW1hLXNlcGFyYXRlZCBsaXN0IG9mIHRoZSBjb2RlIG9mIHRoZSBvcHRpb25zIHRoYXQgYXBwbHksIHdpdGggc3F1YXJlIGJyYWNrZXRzLiBFLmcuLCBbMCwgMSwgM10KCgpBZnRlciB0aGUgYW5zd2VyLCB5b3UgY2FuIHB1dCBhIGNvbW1lbnQgZXhwbGFpbmluZyB5b3VyIGNob2ljZSBvbiB0aGUgbmV4dCBsaW5lLiIsIk9uIGEgc2NhbGUgZnJvbSAwIHRvIDUsIHdoYXQgaXMgdGhlIHByaW9yaXR5IGxldmVsIG9mIHRoaXMgdGlja2V0PyBUaWNrZXQ6IE15IGRyaXZlciB0b29rIGEgbG9uZ2VyIHJvdXRlIHRoYW4gbmVjZXNzYXJ5LCByZXN1bHRpbmcgaW4gYSBoaWdoZXIgZmFyZS4gSSByZXF1ZXN0IGEgZmFyZSBhZGp1c3RtZW50LgoKMCA6IExvd2VzdAoKMSA6IAoKMiA6IAoKMyA6IAoKNCA6IAoKNSA6IEhpZ2hlc3QKCk9ubHkgMSBvcHRpb24gbWF5IGJlIHNlbGVjdGVkLgoKUmVzcG9uZCBvbmx5IHdpdGggdGhlIGNvZGUgY29ycmVzcG9uZGluZyB0byBvbmUgb2YgdGhlIG9wdGlvbnMuIEUuZy4sICIiMSIiIG9yICIiNSIiIGJ5IGl0c2VsZi4KCkFmdGVyIHRoZSBhbnN3ZXIsIHlvdSBjYW4gcHV0IGEgY29tbWVudCBleHBsYWluaW5nIHdoeSB5b3UgY2hvc2UgdGhhdCBvcHRpb24gb24gdGhlIG5leHQgbGluZS4iLCJZb3UgYXJlIGFuc3dlcmluZyBxdWVzdGlvbnMgYXMgaWYgeW91IHdlcmUgYSBodW1hbi4gRG8gbm90IGJyZWFrIGNoYXJhY3Rlci4gWW91ciB0cmFpdHM6IHsncGVyc29uYSc6ICdZb3UgYXJlIGFuIGV4cGVydCBjdXN0b21lciBzZXJ2aWNlIGFnZW50LicsICd5ZWFyc19leHBlcmllbmNlJzogMTV9IiwiWW91IGFyZSBhbnN3ZXJpbmcgcXVlc3Rpb25zIGFzIGlmIHlvdSB3ZXJlIGEgaHVtYW4uIERvIG5vdCBicmVhayBjaGFyYWN0ZXIuIFlvdXIgdHJhaXRzOiB7J3BlcnNvbmEnOiAnWW91IGFyZSBhbiBleHBlcnQgY3VzdG9tZXIgc2VydmljZSBhZ2VudC4nLCAneWVhcnNfZXhwZXJpZW5jZSc6IDE1fSIsIllvdSBhcmUgYW5zd2VyaW5nIHF1ZXN0aW9ucyBhcyBpZiB5b3Ugd2VyZSBhIGh1bWFuLiBEbyBub3QgYnJlYWsgY2hhcmFjdGVyLiBZb3VyIHRyYWl0czogeydwZXJzb25hJzogJ1lvdSBhcmUgYW4gZXhwZXJ0IGN1c3RvbWVyIHNlcnZpY2UgYWdlbnQuJywgJ3llYXJzX2V4cGVyaWVuY2UnOiAxNX0iLCIKV2hhdCBpcyB0aGUgc2VudGltZW50IG9mIHRoaXMgdGlja2V0PyBUaWNrZXQ6IE15IGRyaXZlciB0b29rIGEgbG9uZ2VyIHJvdXRlIHRoYW4gbmVjZXNzYXJ5LCByZXN1bHRpbmcgaW4gYSBoaWdoZXIgZmFyZS4gSSByZXF1ZXN0IGEgZmFyZSBhZGp1c3RtZW50LgoKICAgIApWZXJ5IHBvc2l0aXZlCiAgICAKU29tZXdoYXQgcG9zaXRpdmUKICAgIApOZXV0cmFsCiAgICAKU29tZXdoYXQgbmVnYXRpdmUKICAgIApWZXJ5IG5lZ2F0aXZlCiAgICAKCk9ubHkgMSBvcHRpb24gbWF5IGJlIHNlbGVjdGVkLgoKUmVzcG9uZCBvbmx5IHdpdGggYSBzdHJpbmcgY29ycmVzcG9uZGluZyB0byBvbmUgb2YgdGhlIG9wdGlvbnMuCgoKQWZ0ZXIgdGhlIGFuc3dlciwgeW91IGNhbiBwdXQgYSBjb21tZW50IGV4cGxhaW5pbmcgd2h5IHlvdSBjaG9zZSB0aGF0IG9wdGlvbiBvbiB0aGUgbmV4dCBsaW5lLiIsIgpEb2VzIHRoZSBjdXN0b21lciBhc2sgZm9yIGEgcmVmdW5kIGluIHRoaXMgdGlja2V0PyBUaWNrZXQ6IE15IGRyaXZlciB0b29rIGEgbG9uZ2VyIHJvdXRlIHRoYW4gbmVjZXNzYXJ5LCByZXN1bHRpbmcgaW4gYSBoaWdoZXIgZmFyZS4gSSByZXF1ZXN0IGEgZmFyZSBhZGp1c3RtZW50LgoKICAgIApObwogICAgClllcwogICAgCgpPbmx5IDEgb3B0aW9uIG1heSBiZSBzZWxlY3RlZC4KUGxlYXNlIHJlc3BvbmQgd2l0aCBqdXN0IHlvdXIgYW5zd2VyLiAKCgpBZnRlciB0aGUgYW5zd2VyLCB5b3UgY2FuIHB1dCBhIGNvbW1lbnQgZXhwbGFpbmluZyB5b3VyIHJlc3BvbnNlLiIsIllvdSBhcmUgYW5zd2VyaW5nIHF1ZXN0aW9ucyBhcyBpZiB5b3Ugd2VyZSBhIGh1bWFuLiBEbyBub3QgYnJlYWsgY2hhcmFjdGVyLiBZb3VyIHRyYWl0czogeydwZXJzb25hJzogJ1lvdSBhcmUgYW4gZXhwZXJ0IGN1c3RvbWVyIHNlcnZpY2UgYWdlbnQuJywgJ3llYXJzX2V4cGVyaWVuY2UnOiAxNX0iLCIKSWYgdGhlIHByaW1hcnkgaXNzdWUgaW4gdGhpcyB0aWNrZXQgaXMgc2FmZXR5LCB3YXMgdGhlcmUgYW4gYWNjaWRlbnQgd2hlcmUgc29tZW9uZSB3YXMgaHVydD8gVGlja2V0OiBNeSBkcml2ZXIgdG9vayBhIGxvbmdlciByb3V0ZSB0aGFuIG5lY2Vzc2FyeSwgcmVzdWx0aW5nIGluIGEgaGlnaGVyIGZhcmUuIEkgcmVxdWVzdCBhIGZhcmUgYWRqdXN0bWVudC4KCiAgICAKWWVzCiAgICAKTm8KICAgIApOb3QgYXBwbGljYWJsZQogICAgCgpPbmx5IDEgb3B0aW9uIG1heSBiZSBzZWxlY3RlZC4KClJlc3BvbmQgb25seSB3aXRoIGEgc3RyaW5nIGNvcnJlc3BvbmRpbmcgdG8gb25lIG9mIHRoZSBvcHRpb25zLgoKCkFmdGVyIHRoZSBhbnN3ZXIsIHlvdSBjYW4gcHV0IGEgY29tbWVudCBleHBsYWluaW5nIHdoeSB5b3UgY2hvc2UgdGhhdCBvcHRpb24gb24gdGhlIG5leHQgbGluZS4iLDAuMDAwNjk3NSwieydpZCc6ICdjaGF0Y21wbC1BZU9MQ0tjRzFxSmlJcFpBdUJSOXMyNFpzU0xUSycsICdjaG9pY2VzJzogW3snZmluaXNoX3JlYXNvbic6ICdzdG9wJywgJ2luZGV4JzogMCwgJ2xvZ3Byb2JzJzogTm9uZSwgJ21lc3NhZ2UnOiB7J2NvbnRlbnQnOiAnTm8gIFxuVGhlIHRpY2tldCBkb2VzIG5vdCBtZW50aW9uIGFueSBhY2NpZGVudCBvciBpbmp1cnksIHNvIHRoZSBpc3N1ZSBpcyBub3QgcmVsYXRlZCB0byBzYWZldHkuJywgJ3JlZnVzYWwnOiBOb25lLCAncm9sZSc6ICdhc3Npc3RhbnQnLCAnYXVkaW8nOiBOb25lLCAnZnVuY3Rpb25fY2FsbCc6IE5vbmUsICd0b29sX2NhbGxzJzogTm9uZX19XSwgJ2NyZWF0ZWQnOiAxNzM0MTkwMDUwLCAnbW9kZWwnOiAnZ3B0LTRvLTIwMjQtMDgtMDYnLCAnb2JqZWN0JzogJ2NoYXQuY29tcGxldGlvbicsICdzZXJ2aWNlX3RpZXInOiBOb25lLCAnc3lzdGVtX2ZpbmdlcnByaW50JzogJ2ZwXzlmYWJhOWYwMzgnLCAndXNhZ2UnOiB7J2NvbXBsZXRpb25fdG9rZW5zJzogMjEsICdwcm9tcHRfdG9rZW5zJzogMTQxLCAndG90YWxfdG9rZW5zJzogMTYyLCAnY29tcGxldGlvbl90b2tlbnNfZGV0YWlscyc6IHsnYWNjZXB0ZWRfcHJlZGljdGlvbl90b2tlbnMnOiAwLCAnYXVkaW9fdG9rZW5zJzogMCwgJ3JlYXNvbmluZ190b2tlbnMnOiAwLCAncmVqZWN0ZWRfcHJlZGljdGlvbl90b2tlbnMnOiAwfSwgJ3Byb21wdF90b2tlbnNfZGV0YWlscyc6IHsnYXVkaW9fdG9rZW5zJzogMCwgJ2NhY2hlZF90b2tlbnMnOiAwfX19IiwieydpZCc6ICdjaGF0Y21wbC1BZU9MQ3NpeWNscXpudmlxZ2FDWWtCejMzVDRUUycsICdjaG9pY2VzJzogW3snZmluaXNoX3JlYXNvbic6ICdzdG9wJywgJ2luZGV4JzogMCwgJ2xvZ3Byb2JzJzogTm9uZSwgJ21lc3NhZ2UnOiB7J2NvbnRlbnQnOiAnU29tZXdoYXQgbmVnYXRpdmUgIFxuVGhlIGN1c3RvbWVyIGlzIGV4cHJlc3NpbmcgZGlzc2F0aXNmYWN0aW9uIHdpdGggdGhlIHNlcnZpY2UgZHVlIHRvIHRoZSBsb25nZXIgcm91dGUgdGFrZW4gYnkgdGhlIGRyaXZlciwgcmVzdWx0aW5nIGluIGEgaGlnaGVyIGZhcmUsIGFuZCBpcyByZXF1ZXN0aW5nIGEgZmFyZSBhZGp1c3RtZW50LicsICdyZWZ1c2FsJzogTm9uZSwgJ3JvbGUnOiAnYXNzaXN0YW50JywgJ2F1ZGlvJzogTm9uZSwgJ2Z1bmN0aW9uX2NhbGwnOiBOb25lLCAndG9vbF9jYWxscyc6IE5vbmV9fV0sICdjcmVhdGVkJzogMTczNDE5MDA1MCwgJ21vZGVsJzogJ2dwdC00by0yMDI0LTA4LTA2JywgJ29iamVjdCc6ICdjaGF0LmNvbXBsZXRpb24nLCAnc2VydmljZV90aWVyJzogTm9uZSwgJ3N5c3RlbV9maW5nZXJwcmludCc6ICdmcF85ZmFiYTlmMDM4JywgJ3VzYWdlJzogeydjb21wbGV0aW9uX3Rva2Vucyc6IDM1LCAncHJvbXB0X3Rva2Vucyc6IDEzOSwgJ3RvdGFsX3Rva2Vucyc6IDE3NCwgJ2NvbXBsZXRpb25fdG9rZW5zX2RldGFpbHMnOiB7J2FjY2VwdGVkX3ByZWRpY3Rpb25fdG9rZW5zJzogMCwgJ2F1ZGlvX3Rva2Vucyc6IDAsICdyZWFzb25pbmdfdG9rZW5zJzogMCwgJ3JlamVjdGVkX3ByZWRpY3Rpb25fdG9rZW5zJzogMH0sICdwcm9tcHRfdG9rZW5zX2RldGFpbHMnOiB7J2F1ZGlvX3Rva2Vucyc6IDAsICdjYWNoZWRfdG9rZW5zJzogMH19fSIsMTQzMy42OTE3NTYyNzI0MDE2LDEzMjAuMTMyMDEzMjAxMzIsInsnaWQnOiAnY2hhdGNtcGwtQWVPTEN2MmNYZmR3YnM5Z2xrSXVDQ3RTREt3N1AnLCAnY2hvaWNlcyc6IFt7J2ZpbmlzaF9yZWFzb24nOiAnc3RvcCcsICdpbmRleCc6IDAsICdsb2dwcm9icyc6IE5vbmUsICdtZXNzYWdlJzogeydjb250ZW50JzogJ1syLCAzXVxuXG5UaGUgaXNzdWVzIG1lbnRpb25lZCBpbiB0aGUgdGlja2V0IHJlbGF0ZSB0byBkcml2ZXIgcGVyZm9ybWFuY2UsIGFzIHRha2luZyBhIGxvbmdlciByb3V0ZSB0aGFuIG5lY2Vzc2FyeSBpbmRpY2F0ZXMgYSBwb3RlbnRpYWwgaXNzdWUgd2l0aCBob3cgdGhlIGRyaXZlciBjb25kdWN0ZWQgdGhlIHRyaXAuIEFkZGl0aW9uYWxseSwgaXQgaW52b2x2ZXMgR1BTL3JvdXRlIGlzc3VlcywgYXMgdGhlIGNvbXBsYWludCBpcyBzcGVjaWZpY2FsbHkgYWJvdXQgdGhlIHJvdXRlIHRha2VuLicsICdyZWZ1c2FsJzogTm9uZSwgJ3JvbGUnOiAnYXNzaXN0YW50JywgJ2F1ZGlvJzogTm9uZSwgJ2Z1bmN0aW9uX2NhbGwnOiBOb25lLCAndG9vbF9jYWxscyc6IE5vbmV9fV0sICdjcmVhdGVkJzogMTczNDE5MDA1MCwgJ21vZGVsJzogJ2dwdC00by0yMDI0LTA4LTA2JywgJ29iamVjdCc6ICdjaGF0LmNvbXBsZXRpb24nLCAnc2VydmljZV90aWVyJzogTm9uZSwgJ3N5c3RlbV9maW5nZXJwcmludCc6ICdmcF9hNzlkOGRhYzFmJywgJ3VzYWdlJzogeydjb21wbGV0aW9uX3Rva2Vucyc6IDU1LCAncHJvbXB0X3Rva2Vucyc6IDE2MiwgJ3RvdGFsX3Rva2Vucyc6IDIxNywgJ2NvbXBsZXRpb25fdG9rZW5zX2RldGFpbHMnOiB7J2FjY2VwdGVkX3ByZWRpY3Rpb25fdG9rZW5zJzogMCwgJ2F1ZGlvX3Rva2Vucyc6IDAsICdyZWFzb25pbmdfdG9rZW5zJzogMCwgJ3JlamVjdGVkX3ByZWRpY3Rpb25fdG9rZW5zJzogMH0sICdwcm9tcHRfdG9rZW5zX2RldGFpbHMnOiB7J2F1ZGlvX3Rva2Vucyc6IDAsICdjYWNoZWRfdG9rZW5zJzogMH19fSIsMC4wMDA3ODI1LDE3NzcuNzc3Nzc3Nzc3Nzc3NiwwLjAwMDc1NzUsMC4wMDA5NTUsInsnaWQnOiAnY2hhdGNtcGwtQWVPTENrYU9OVkZhNzdERDdLVFY3dTM1eWhOY0UnLCAnY2hvaWNlcyc6IFt7J2ZpbmlzaF9yZWFzb24nOiAnc3RvcCcsICdpbmRleCc6IDAsICdsb2dwcm9icyc6IE5vbmUsICdtZXNzYWdlJzogeydjb250ZW50JzogJ1RoZSBwcmltYXJ5IGlzc3VlIGluIHRoaXMgdGlja2V0IGlzIHRoYXQgdGhlIGN1c3RvbWVyIGJlbGlldmVzIHRoZSBkcml2ZXIgdG9vayBhIGxvbmdlciByb3V0ZSB0aGFuIG5lY2Vzc2FyeSwgd2hpY2ggbGVkIHRvIGEgaGlnaGVyIGZhcmUuIFRoZSBjdXN0b21lciBpcyByZXF1ZXN0aW5nIGFuIGFkanVzdG1lbnQgdG8gdGhlIGZhcmUgdG8gcmVmbGVjdCB3aGF0IHRoZXkgYmVsaWV2ZSBzaG91bGQgaGF2ZSBiZWVuIHRoZSBjb3JyZWN0IGFtb3VudC4nLCAncmVmdXNhbCc6IE5vbmUsICdyb2xlJzogJ2Fzc2lzdGFudCcsICdhdWRpbyc6IE5vbmUsICdmdW5jdGlvbl9jYWxsJzogTm9uZSwgJ3Rvb2xfY2FsbHMnOiBOb25lfX1dLCAnY3JlYXRlZCc6IDE3MzQxOTAwNTAsICdtb2RlbCc6ICdncHQtNG8tMjAyNC0wOC0wNicsICdvYmplY3QnOiAnY2hhdC5jb21wbGV0aW9uJywgJ3NlcnZpY2VfdGllcic6IE5vbmUsICdzeXN0ZW1fZmluZ2VycHJpbnQnOiAnZnBfYTM0YjI3MjdkNicsICd1c2FnZSc6IHsnY29tcGxldGlvbl90b2tlbnMnOiA0OCwgJ3Byb21wdF90b2tlbnMnOiA4MiwgJ3RvdGFsX3Rva2Vucyc6IDEzMCwgJ2NvbXBsZXRpb25fdG9rZW5zX2RldGFpbHMnOiB7J2FjY2VwdGVkX3ByZWRpY3Rpb25fdG9rZW5zJzogMCwgJ2F1ZGlvX3Rva2Vucyc6IDAsICdyZWFzb25pbmdfdG9rZW5zJzogMCwgJ3JlamVjdGVkX3ByZWRpY3Rpb25fdG9rZW5zJzogMH0sICdwcm9tcHRfdG9rZW5zX2RldGFpbHMnOiB7J2F1ZGlvX3Rva2Vucyc6IDAsICdjYWNoZWRfdG9rZW5zJzogMH19fSIsMC4wMDA2ODUwMDAwMDAwMDAwMDAxLDE0NTkuODU0MDE0NTk4NTQsInsnaWQnOiAnY2hhdGNtcGwtQWVPTENBbXZKaFdIbUxGcWlldWdCSXlsRXB6b0wnLCAnY2hvaWNlcyc6IFt7J2ZpbmlzaF9yZWFzb24nOiAnc3RvcCcsICdpbmRleCc6IDAsICdsb2dwcm9icyc6IE5vbmUsICdtZXNzYWdlJzogeydjb250ZW50JzogJzIgIFxuVGhpcyBpc3N1ZSBpcyBpbXBvcnRhbnQgYmVjYXVzZSBpdCBpbnZvbHZlcyBhIGZpbmFuY2lhbCBkaXNjcmVwYW5jeSBmb3IgdGhlIGN1c3RvbWVyLCBidXQgaXQgZG9lcyBub3QgcG9zZSBhbiBpbW1lZGlhdGUgc2FmZXR5IG9yIHNlcnZpY2UgY29udGludWl0eSBjb25jZXJuLCBzbyBpdCBpcyBub3QgdGhlIGhpZ2hlc3QgcHJpb3JpdHkuJywgJ3JlZnVzYWwnOiBOb25lLCAncm9sZSc6ICdhc3Npc3RhbnQnLCAnYXVkaW8nOiBOb25lLCAnZnVuY3Rpb25fY2FsbCc6IE5vbmUsICd0b29sX2NhbGxzJzogTm9uZX19XSwgJ2NyZWF0ZWQnOiAxNzM0MTkwMDUwLCAnbW9kZWwnOiAnZ3B0LTRvLTIwMjQtMDgtMDYnLCAnb2JqZWN0JzogJ2NoYXQuY29tcGxldGlvbicsICdzZXJ2aWNlX3RpZXInOiBOb25lLCAnc3lzdGVtX2ZpbmdlcnByaW50JzogJ2ZwXzlmYWJhOWYwMzgnLCAndXNhZ2UnOiB7J2NvbXBsZXRpb25fdG9rZW5zJzogMzcsICdwcm9tcHRfdG9rZW5zJzogMTY1LCAndG90YWxfdG9rZW5zJzogMjAyLCAnY29tcGxldGlvbl90b2tlbnNfZGV0YWlscyc6IHsnYWNjZXB0ZWRfcHJlZGljdGlvbl90b2tlbnMnOiAwLCAnYXVkaW9fdG9rZW5zJzogMCwgJ3JlYXNvbmluZ190b2tlbnMnOiAwLCAncmVqZWN0ZWRfcHJlZGljdGlvbl90b2tlbnMnOiAwfSwgJ3Byb21wdF90b2tlbnNfZGV0YWlscyc6IHsnYXVkaW9fdG9rZW5zJzogMCwgJ2NhY2hlZF90b2tlbnMnOiAwfX19IiwxMDQ3LjEyMDQxODg0ODE2NzQsMTI3Ny45NTUyNzE1NjU0OTUyLDAuMDAwNTYyNTAwMDAwMDAwMDAwMSwieydpZCc6ICdjaGF0Y21wbC1BZU9MQ083OE43ZGxnV1NjZEJnNzJwa3dMN0Q2NycsICdjaG9pY2VzJzogW3snZmluaXNoX3JlYXNvbic6ICdzdG9wJywgJ2luZGV4JzogMCwgJ2xvZ3Byb2JzJzogTm9uZSwgJ21lc3NhZ2UnOiB7J2NvbnRlbnQnOiAnTm9cblxuVGhlIGN1c3RvbWVyIGlzIHJlcXVlc3RpbmcgYSBmYXJlIGFkanVzdG1lbnQsIHdoaWNoIGlzIGRpZmZlcmVudCBmcm9tIGFza2luZyBmb3IgYSByZWZ1bmQuIEEgZmFyZSBhZGp1c3RtZW50IHR5cGljYWxseSBtZWFucyB0aGV5IHdhbnQgdGhlIGZhcmUgY29ycmVjdGVkIHRvIHdoYXQgaXQgc2hvdWxkIGhhdmUgYmVlbiwgcmF0aGVyIHRoYW4gYSBmdWxsIHJlZnVuZCBvZiB0aGUgZmFyZSBwYWlkLicsICdyZWZ1c2FsJzogTm9uZSwgJ3JvbGUnOiAnYXNzaXN0YW50JywgJ2F1ZGlvJzogTm9uZSwgJ2Z1bmN0aW9uX2NhbGwnOiBOb25lLCAndG9vbF9jYWxscyc6IE5vbmV9fV0sICdjcmVhdGVkJzogMTczNDE5MDA1MCwgJ21vZGVsJzogJ2dwdC00by0yMDI0LTA4LTA2JywgJ29iamVjdCc6ICdjaGF0LmNvbXBsZXRpb24nLCAnc2VydmljZV90aWVyJzogTm9uZSwgJ3N5c3RlbV9maW5nZXJwcmludCc6ICdmcF9hNzlkOGRhYzFmJywgJ3VzYWdlJzogeydjb21wbGV0aW9uX3Rva2Vucyc6IDQ2LCAncHJvbXB0X3Rva2Vucyc6IDExOSwgJ3RvdGFsX3Rva2Vucyc6IDE2NSwgJ2NvbXBsZXRpb25fdG9rZW5zX2RldGFpbHMnOiB7J2FjY2VwdGVkX3ByZWRpY3Rpb25fdG9rZW5zJzogMCwgJ2F1ZGlvX3Rva2Vucyc6IDAsICdyZWFzb25pbmdfdG9rZW5zJzogMCwgJ3JlamVjdGVkX3ByZWRpY3Rpb25fdG9rZW5zJzogMH0sICdwcm9tcHRfdG9rZW5zX2RldGFpbHMnOiB7J2F1ZGlvX3Rva2Vucyc6IDAsICdjYWNoZWRfdG9rZW5zJzogMH19fSIsMCxEb2VzIHRoZSBjdXN0b21lciBhc2sgZm9yIGEgcmVmdW5kIGluIHRoaXMgdGlja2V0PyBUaWNrZXQ6IHt7IHRpY2tldCB9fSwiSWYgdGhlIHByaW1hcnkgaXNzdWUgaW4gdGhpcyB0aWNrZXQgaXMgc2FmZXR5LCB3YXMgdGhlcmUgYW4gYWNjaWRlbnQgd2hlcmUgc29tZW9uZSB3YXMgaHVydD8gVGlja2V0OiB7eyB0aWNrZXQgfX0iLFdoYXQgaXMgdGhlIHByaW1hcnkgaXNzdWUgaW4gdGhpcyB0aWNrZXQ/IFRpY2tldDoge3sgdGlja2V0IH19LENoZWNrIGFsbCBvZiB0aGUgaXNzdWVzIG1lbnRpb25lZCBpbiB0aGlzIHRpY2tldDoge3sgdGlja2V0IH19LCJPbiBhIHNjYWxlIGZyb20gMCB0byA1LCB3aGF0IGlzIHRoZSBwcmlvcml0eSBsZXZlbCBvZiB0aGlzIHRpY2tldD8gVGlja2V0OiB7eyB0aWNrZXQgfX0iLFdoYXQgaXMgdGhlIHNlbnRpbWVudCBvZiB0aGlzIHRpY2tldD8gVGlja2V0OiB7eyB0aWNrZXQgfX0sIlsnc2FmZXR5JywgJ2NsZWFubGluZXNzJywgJ2RyaXZlciBwZXJmb3JtYW5jZScsICdHUFMvcm91dGUnLCAnbG9zdCBpdGVtJywgJ290aGVyJ10iLCJbJ1ZlcnkgcG9zaXRpdmUnLCAnU29tZXdoYXQgcG9zaXRpdmUnLCAnTmV1dHJhbCcsICdTb21ld2hhdCBuZWdhdGl2ZScsICdWZXJ5IG5lZ2F0aXZlJ10iLCwiWydObycsICdZZXMnXSIsIlsnWWVzJywgJ05vJywgJ05vdCBhcHBsaWNhYmxlJ10iLCJbMCwgMSwgMiwgMywgNCwgNV0iLGxpbmVhcl9zY2FsZSxtdWx0aXBsZV9jaG9pY2UsbXVsdGlwbGVfY2hvaWNlLHllc19ubyxmcmVlX3RleHQsY2hlY2tib3gsLCJUaGUgY3VzdG9tZXIgaXMgcmVxdWVzdGluZyBhIGZhcmUgYWRqdXN0bWVudCwgd2hpY2ggaXMgZGlmZmVyZW50IGZyb20gYXNraW5nIGZvciBhIHJlZnVuZC4gQSBmYXJlIGFkanVzdG1lbnQgdHlwaWNhbGx5IG1lYW5zIHRoZXkgd2FudCB0aGUgZmFyZSBjb3JyZWN0ZWQgdG8gd2hhdCBpdCBzaG91bGQgaGF2ZSBiZWVuLCByYXRoZXIgdGhhbiBhIGZ1bGwgcmVmdW5kIG9mIHRoZSBmYXJlIHBhaWQuIiwiVGhpcyBpc3N1ZSBpcyBpbXBvcnRhbnQgYmVjYXVzZSBpdCBpbnZvbHZlcyBhIGZpbmFuY2lhbCBkaXNjcmVwYW5jeSBmb3IgdGhlIGN1c3RvbWVyLCBidXQgaXQgZG9lcyBub3QgcG9zZSBhbiBpbW1lZGlhdGUgc2FmZXR5IG9yIHNlcnZpY2UgY29udGludWl0eSBjb25jZXJuLCBzbyBpdCBpcyBub3QgdGhlIGhpZ2hlc3QgcHJpb3JpdHkuIiwiVGhlIGlzc3VlcyBtZW50aW9uZWQgaW4gdGhlIHRpY2tldCByZWxhdGUgdG8gZHJpdmVyIHBlcmZvcm1hbmNlLCBhcyB0YWtpbmcgYSBsb25nZXIgcm91dGUgdGhhbiBuZWNlc3NhcnkgaW5kaWNhdGVzIGEgcG90ZW50aWFsIGlzc3VlIHdpdGggaG93IHRoZSBkcml2ZXIgY29uZHVjdGVkIHRoZSB0cmlwLiBBZGRpdGlvbmFsbHksIGl0IGludm9sdmVzIEdQUy9yb3V0ZSBpc3N1ZXMsIGFzIHRoZSBjb21wbGFpbnQgaXMgc3BlY2lmaWNhbGx5IGFib3V0IHRoZSByb3V0ZSB0YWtlbi4iLCJUaGUgY3VzdG9tZXIgaXMgZXhwcmVzc2luZyBkaXNzYXRpc2ZhY3Rpb24gd2l0aCB0aGUgc2VydmljZSBkdWUgdG8gdGhlIGxvbmdlciByb3V0ZSB0YWtlbiBieSB0aGUgZHJpdmVyLCByZXN1bHRpbmcgaW4gYSBoaWdoZXIgZmFyZSwgYW5kIGlzIHJlcXVlc3RpbmcgYSBmYXJlIGFkanVzdG1lbnQuIiwiVGhlIHRpY2tldCBkb2VzIG5vdCBtZW50aW9uIGFueSBhY2NpZGVudCBvciBpbmp1cnksIHNvIHRoZSBpc3N1ZSBpcyBub3QgcmVsYXRlZCB0byBzYWZldHkuIiwiU29tZXdoYXQgbmVnYXRpdmUgIApUaGUgY3VzdG9tZXIgaXMgZXhwcmVzc2luZyBkaXNzYXRpc2ZhY3Rpb24gd2l0aCB0aGUgc2VydmljZSBkdWUgdG8gdGhlIGxvbmdlciByb3V0ZSB0YWtlbiBieSB0aGUgZHJpdmVyLCByZXN1bHRpbmcgaW4gYSBoaWdoZXIgZmFyZSwgYW5kIGlzIHJlcXVlc3RpbmcgYSBmYXJlIGFkanVzdG1lbnQuIiwiWzIsIDNdCgpUaGUgaXNzdWVzIG1lbnRpb25lZCBpbiB0aGUgdGlja2V0IHJlbGF0ZSB0byBkcml2ZXIgcGVyZm9ybWFuY2UsIGFzIHRha2luZyBhIGxvbmdlciByb3V0ZSB0aGFuIG5lY2Vzc2FyeSBpbmRpY2F0ZXMgYSBwb3RlbnRpYWwgaXNzdWUgd2l0aCBob3cgdGhlIGRyaXZlciBjb25kdWN0ZWQgdGhlIHRyaXAuIEFkZGl0aW9uYWxseSwgaXQgaW52b2x2ZXMgR1BTL3JvdXRlIGlzc3VlcywgYXMgdGhlIGNvbXBsYWludCBpcyBzcGVjaWZpY2FsbHkgYWJvdXQgdGhlIHJvdXRlIHRha2VuLiIsIk5vCgpUaGUgY3VzdG9tZXIgaXMgcmVxdWVzdGluZyBhIGZhcmUgYWRqdXN0bWVudCwgd2hpY2ggaXMgZGlmZmVyZW50IGZyb20gYXNraW5nIGZvciBhIHJlZnVuZC4gQSBmYXJlIGFkanVzdG1lbnQgdHlwaWNhbGx5IG1lYW5zIHRoZXkgd2FudCB0aGUgZmFyZSBjb3JyZWN0ZWQgdG8gd2hhdCBpdCBzaG91bGQgaGF2ZSBiZWVuLCByYXRoZXIgdGhhbiBhIGZ1bGwgcmVmdW5kIG9mIHRoZSBmYXJlIHBhaWQuIiwiVGhlIHByaW1hcnkgaXNzdWUgaW4gdGhpcyB0aWNrZXQgaXMgdGhhdCB0aGUgY3VzdG9tZXIgYmVsaWV2ZXMgdGhlIGRyaXZlciB0b29rIGEgbG9uZ2VyIHJvdXRlIHRoYW4gbmVjZXNzYXJ5LCB3aGljaCBsZWQgdG8gYSBoaWdoZXIgZmFyZS4gVGhlIGN1c3RvbWVyIGlzIHJlcXVlc3RpbmcgYW4gYWRqdXN0bWVudCB0byB0aGUgZmFyZSB0byByZWZsZWN0IHdoYXQgdGhleSBiZWxpZXZlIHNob3VsZCBoYXZlIGJlZW4gdGhlIGNvcnJlY3QgYW1vdW50LiIsIk5vICAKVGhlIHRpY2tldCBkb2VzIG5vdCBtZW50aW9uIGFueSBhY2NpZGVudCBvciBpbmp1cnksIHNvIHRoZSBpc3N1ZSBpcyBub3QgcmVsYXRlZCB0byBzYWZldHkuIiwiMiAgClRoaXMgaXNzdWUgaXMgaW1wb3J0YW50IGJlY2F1c2UgaXQgaW52b2x2ZXMgYSBmaW5hbmNpYWwgZGlzY3JlcGFuY3kgZm9yIHRoZSBjdXN0b21lciwgYnV0IGl0IGRvZXMgbm90IHBvc2UgYW4gaW1tZWRpYXRlIHNhZmV0eSBvciBzZXJ2aWNlIGNvbnRpbnVpdHkgY29uY2Vybiwgc28gaXQgaXMgbm90IHRoZSBoaWdoZXN0IHByaW9yaXR5LiINCk5vdCBhcHBsaWNhYmxlLFZlcnkgcG9zaXRpdmUsTm8sIkl0IHNlZW1zIHRoZXJlIGlzIG5vIGlzc3VlIGluIHRoaXMgdGlja2V0LiBJbnN0ZWFkLCBpdCBhcHBlYXJzIHRvIGJlIHBvc2l0aXZlIGZlZWRiYWNrIGFib3V0IGEgZ3JlYXQgZXhwZXJpZW5jZSB3aXRoIHRoZSBkcml2ZXIuIEl0J3MgYWx3YXlzIHdvbmRlcmZ1bCB0byByZWNlaXZlIGNvbXBsaW1lbnRzIGFib3V0IGZyaWVuZGx5IGFuZCBlZmZpY2llbnQgc2VydmljZSEiLDAsWydkcml2ZXIgcGVyZm9ybWFuY2UnXSxJIGhhZCBhIGdyZWF0IGV4cGVyaWVuY2Ugd2l0aCBteSBkcml2ZXIgdG9kYXkhIFZlcnkgZnJpZW5kbHkgYW5kIGVmZmljaWVudCBzZXJ2aWNlLixZb3UgYXJlIGFuIGV4cGVydCBjdXN0b21lciBzZXJ2aWNlIGFnZW50LixBZ2VudF81LDE1LFlvdSBhcmUgYW5zd2VyaW5nIHF1ZXN0aW9ucyBhcyBpZiB5b3Ugd2VyZSBhIGh1bWFuLiBEbyBub3QgYnJlYWsgY2hhcmFjdGVyLiwwLDEsMCxncHQtNG8sMC41LEZhbHNlLDEwMDAsMyxXaGF0IGlzIHRoZSBwcmltYXJ5IGlzc3VlIGluIHRoaXMgdGlja2V0PyBUaWNrZXQ6IEkgaGFkIGEgZ3JlYXQgZXhwZXJpZW5jZSB3aXRoIG15IGRyaXZlciB0b2RheSEgVmVyeSBmcmllbmRseSBhbmQgZWZmaWNpZW50IHNlcnZpY2UuLCJZb3UgYXJlIGFuc3dlcmluZyBxdWVzdGlvbnMgYXMgaWYgeW91IHdlcmUgYSBodW1hbi4gRG8gbm90IGJyZWFrIGNoYXJhY3Rlci4gWW91ciB0cmFpdHM6IHsncGVyc29uYSc6ICdZb3UgYXJlIGFuIGV4cGVydCBjdXN0b21lciBzZXJ2aWNlIGFnZW50LicsICd5ZWFyc19leHBlcmllbmNlJzogMTV9IiwiWW91IGFyZSBhbnN3ZXJpbmcgcXVlc3Rpb25zIGFzIGlmIHlvdSB3ZXJlIGEgaHVtYW4uIERvIG5vdCBicmVhayBjaGFyYWN0ZXIuIFlvdXIgdHJhaXRzOiB7J3BlcnNvbmEnOiAnWW91IGFyZSBhbiBleHBlcnQgY3VzdG9tZXIgc2VydmljZSBhZ2VudC4nLCAneWVhcnNfZXhwZXJpZW5jZSc6IDE1fSIsIkNoZWNrIGFsbCBvZiB0aGUgaXNzdWVzIG1lbnRpb25lZCBpbiB0aGlzIHRpY2tldDogSSBoYWQgYSBncmVhdCBleHBlcmllbmNlIHdpdGggbXkgZHJpdmVyIHRvZGF5ISBWZXJ5IGZyaWVuZGx5IGFuZCBlZmZpY2llbnQgc2VydmljZS4KCiAgICAKMDogc2FmZXR5CiAgICAKMTogY2xlYW5saW5lc3MKICAgIAoyOiBkcml2ZXIgcGVyZm9ybWFuY2UKICAgIAozOiBHUFMvcm91dGUKICAgIAo0OiBsb3N0IGl0ZW0KICAgIAo1OiBvdGhlcgogICAgCgoKCgoKClBsZWFzZSByZXNwb25kIG9ubHkgd2l0aCBhIGNvbW1hLXNlcGFyYXRlZCBsaXN0IG9mIHRoZSBjb2RlIG9mIHRoZSBvcHRpb25zIHRoYXQgYXBwbHksIHdpdGggc3F1YXJlIGJyYWNrZXRzLiBFLmcuLCBbMCwgMSwgM10KCgpBZnRlciB0aGUgYW5zd2VyLCB5b3UgY2FuIHB1dCBhIGNvbW1lbnQgZXhwbGFpbmluZyB5b3VyIGNob2ljZSBvbiB0aGUgbmV4dCBsaW5lLiIsIk9uIGEgc2NhbGUgZnJvbSAwIHRvIDUsIHdoYXQgaXMgdGhlIHByaW9yaXR5IGxldmVsIG9mIHRoaXMgdGlja2V0PyBUaWNrZXQ6IEkgaGFkIGEgZ3JlYXQgZXhwZXJpZW5jZSB3aXRoIG15IGRyaXZlciB0b2RheSEgVmVyeSBmcmllbmRseSBhbmQgZWZmaWNpZW50IHNlcnZpY2UuCgowIDogTG93ZXN0CgoxIDogCgoyIDogCgozIDogCgo0IDogCgo1IDogSGlnaGVzdAoKT25seSAxIG9wdGlvbiBtYXkgYmUgc2VsZWN0ZWQuCgpSZXNwb25kIG9ubHkgd2l0aCB0aGUgY29kZSBjb3JyZXNwb25kaW5nIHRvIG9uZSBvZiB0aGUgb3B0aW9ucy4gRS5nLiwgIiIxIiIgb3IgIiI1IiIgYnkgaXRzZWxmLgoKQWZ0ZXIgdGhlIGFuc3dlciwgeW91IGNhbiBwdXQgYSBjb21tZW50IGV4cGxhaW5pbmcgd2h5IHlvdSBjaG9zZSB0aGF0IG9wdGlvbiBvbiB0aGUgbmV4dCBsaW5lLiIsIllvdSBhcmUgYW5zd2VyaW5nIHF1ZXN0aW9ucyBhcyBpZiB5b3Ugd2VyZSBhIGh1bWFuLiBEbyBub3QgYnJlYWsgY2hhcmFjdGVyLiBZb3VyIHRyYWl0czogeydwZXJzb25hJzogJ1lvdSBhcmUgYW4gZXhwZXJ0IGN1c3RvbWVyIHNlcnZpY2UgYWdlbnQuJywgJ3llYXJzX2V4cGVyaWVuY2UnOiAxNX0iLCJZb3UgYXJlIGFuc3dlcmluZyBxdWVzdGlvbnMgYXMgaWYgeW91IHdlcmUgYSBodW1hbi4gRG8gbm90IGJyZWFrIGNoYXJhY3Rlci4gWW91ciB0cmFpdHM6IHsncGVyc29uYSc6ICdZb3UgYXJlIGFuIGV4cGVydCBjdXN0b21lciBzZXJ2aWNlIGFnZW50LicsICd5ZWFyc19leHBlcmllbmNlJzogMTV9IiwiWW91IGFyZSBhbnN3ZXJpbmcgcXVlc3Rpb25zIGFzIGlmIHlvdSB3ZXJlIGEgaHVtYW4uIERvIG5vdCBicmVhayBjaGFyYWN0ZXIuIFlvdXIgdHJhaXRzOiB7J3BlcnNvbmEnOiAnWW91IGFyZSBhbiBleHBlcnQgY3VzdG9tZXIgc2VydmljZSBhZ2VudC4nLCAneWVhcnNfZXhwZXJpZW5jZSc6IDE1fSIsIgpXaGF0IGlzIHRoZSBzZW50aW1lbnQgb2YgdGhpcyB0aWNrZXQ/IFRpY2tldDogSSBoYWQgYSBncmVhdCBleHBlcmllbmNlIHdpdGggbXkgZHJpdmVyIHRvZGF5ISBWZXJ5IGZyaWVuZGx5IGFuZCBlZmZpY2llbnQgc2VydmljZS4KCiAgICAKVmVyeSBwb3NpdGl2ZQogICAgClNvbWV3aGF0IHBvc2l0aXZlCiAgICAKTmV1dHJhbAogICAgClNvbWV3aGF0IG5lZ2F0aXZlCiAgICAKVmVyeSBuZWdhdGl2ZQogICAgCgpPbmx5IDEgb3B0aW9uIG1heSBiZSBzZWxlY3RlZC4KClJlc3BvbmQgb25seSB3aXRoIGEgc3RyaW5nIGNvcnJlc3BvbmRpbmcgdG8gb25lIG9mIHRoZSBvcHRpb25zLgoKCkFmdGVyIHRoZSBhbnN3ZXIsIHlvdSBjYW4gcHV0IGEgY29tbWVudCBleHBsYWluaW5nIHdoeSB5b3UgY2hvc2UgdGhhdCBvcHRpb24gb24gdGhlIG5leHQgbGluZS4iLCIKRG9lcyB0aGUgY3VzdG9tZXIgYXNrIGZvciBhIHJlZnVuZCBpbiB0aGlzIHRpY2tldD8gVGlja2V0OiBJIGhhZCBhIGdyZWF0IGV4cGVyaWVuY2Ugd2l0aCBteSBkcml2ZXIgdG9kYXkhIFZlcnkgZnJpZW5kbHkgYW5kIGVmZmljaWVudCBzZXJ2aWNlLgoKICAgIApObwogICAgClllcwogICAgCgpPbmx5IDEgb3B0aW9uIG1heSBiZSBzZWxlY3RlZC4KUGxlYXNlIHJlc3BvbmQgd2l0aCBqdXN0IHlvdXIgYW5zd2VyLiAKCgpBZnRlciB0aGUgYW5zd2VyLCB5b3UgY2FuIHB1dCBhIGNvbW1lbnQgZXhwbGFpbmluZyB5b3VyIHJlc3BvbnNlLiIsIllvdSBhcmUgYW5zd2VyaW5nIHF1ZXN0aW9ucyBhcyBpZiB5b3Ugd2VyZSBhIGh1bWFuLiBEbyBub3QgYnJlYWsgY2hhcmFjdGVyLiBZb3VyIHRyYWl0czogeydwZXJzb25hJzogJ1lvdSBhcmUgYW4gZXhwZXJ0IGN1c3RvbWVyIHNlcnZpY2UgYWdlbnQuJywgJ3llYXJzX2V4cGVyaWVuY2UnOiAxNX0iLCIKSWYgdGhlIHByaW1hcnkgaXNzdWUgaW4gdGhpcyB0aWNrZXQgaXMgc2FmZXR5LCB3YXMgdGhlcmUgYW4gYWNjaWRlbnQgd2hlcmUgc29tZW9uZSB3YXMgaHVydD8gVGlja2V0OiBJIGhhZCBhIGdyZWF0IGV4cGVyaWVuY2Ugd2l0aCBteSBkcml2ZXIgdG9kYXkhIFZlcnkgZnJpZW5kbHkgYW5kIGVmZmljaWVudCBzZXJ2aWNlLgoKICAgIApZZXMKICAgIApObwogICAgCk5vdCBhcHBsaWNhYmxlCiAgICAKCk9ubHkgMSBvcHRpb24gbWF5IGJlIHNlbGVjdGVkLgoKUmVzcG9uZCBvbmx5IHdpdGggYSBzdHJpbmcgY29ycmVzcG9uZGluZyB0byBvbmUgb2YgdGhlIG9wdGlvbnMuCgoKQWZ0ZXIgdGhlIGFuc3dlciwgeW91IGNhbiBwdXQgYSBjb21tZW50IGV4cGxhaW5pbmcgd2h5IHlvdSBjaG9zZSB0aGF0IG9wdGlvbiBvbiB0aGUgbmV4dCBsaW5lLiIsMC4wMDA1NDUsInsnaWQnOiAnY2hhdGNtcGwtQWVPTEM5ckJkZ2NBVGpXRXR5T05WVERHSURKVjknLCAnY2hvaWNlcyc6IFt7J2ZpbmlzaF9yZWFzb24nOiAnc3RvcCcsICdpbmRleCc6IDAsICdsb2dwcm9icyc6IE5vbmUsICdtZXNzYWdlJzogeydjb250ZW50JzogJ05vdCBhcHBsaWNhYmxlXG5cblRoZSB0aWNrZXQgaXMgZm9jdXNlZCBvbiBhIHBvc2l0aXZlIGV4cGVyaWVuY2Ugd2l0aCB0aGUgZHJpdmVyLCBpbmRpY2F0aW5nIG5vIHNhZmV0eSBpc3N1ZSBvciBhY2NpZGVudCBvY2N1cnJlZC4nLCAncmVmdXNhbCc6IE5vbmUsICdyb2xlJzogJ2Fzc2lzdGFudCcsICdhdWRpbyc6IE5vbmUsICdmdW5jdGlvbl9jYWxsJzogTm9uZSwgJ3Rvb2xfY2FsbHMnOiBOb25lfX1dLCAnY3JlYXRlZCc6IDE3MzQxOTAwNTAsICdtb2RlbCc6ICdncHQtNG8tMjAyNC0wOC0wNicsICdvYmplY3QnOiAnY2hhdC5jb21wbGV0aW9uJywgJ3NlcnZpY2VfdGllcic6IE5vbmUsICdzeXN0ZW1fZmluZ2VycHJpbnQnOiAnZnBfYTc5ZDhkYWMxZicsICd1c2FnZSc6IHsnY29tcGxldGlvbl90b2tlbnMnOiAyMywgJ3Byb21wdF90b2tlbnMnOiAxMzYsICd0b3RhbF90b2tlbnMnOiAxNTksICdjb21wbGV0aW9uX3Rva2Vuc19kZXRhaWxzJzogeydhY2NlcHRlZF9wcmVkaWN0aW9uX3Rva2Vucyc6IDAsICdhdWRpb190b2tlbnMnOiAwLCAncmVhc29uaW5nX3Rva2Vucyc6IDAsICdyZWplY3RlZF9wcmVkaWN0aW9uX3Rva2Vucyc6IDB9LCAncHJvbXB0X3Rva2Vuc19kZXRhaWxzJzogeydhdWRpb190b2tlbnMnOiAwLCAnY2FjaGVkX3Rva2Vucyc6IDB9fX0iLCJ7J2lkJzogJ2NoYXRjbXBsLUFlT0xDS0NZUlZpZ1I0cHZZd21mSEVDUzF6QjlNJywgJ2Nob2ljZXMnOiBbeydmaW5pc2hfcmVhc29uJzogJ3N0b3AnLCAnaW5kZXgnOiAwLCAnbG9ncHJvYnMnOiBOb25lLCAnbWVzc2FnZSc6IHsnY29udGVudCc6ICIiVmVyeSBwb3NpdGl2ZSAgXG5UaGUgdGlja2V0IGV4cHJlc3NlcyBzYXRpc2ZhY3Rpb24gYW5kIGhpZ2hsaWdodHMgdGhlIGRyaXZlcidzIGZyaWVuZGxpbmVzcyBhbmQgZWZmaWNpZW5jeSwgaW5kaWNhdGluZyBhIHZlcnkgcG9zaXRpdmUgc2VudGltZW50LiIiLCAncmVmdXNhbCc6IE5vbmUsICdyb2xlJzogJ2Fzc2lzdGFudCcsICdhdWRpbyc6IE5vbmUsICdmdW5jdGlvbl9jYWxsJzogTm9uZSwgJ3Rvb2xfY2FsbHMnOiBOb25lfX1dLCAnY3JlYXRlZCc6IDE3MzQxOTAwNTAsICdtb2RlbCc6ICdncHQtNG8tMjAyNC0wOC0wNicsICdvYmplY3QnOiAnY2hhdC5jb21wbGV0aW9uJywgJ3NlcnZpY2VfdGllcic6IE5vbmUsICdzeXN0ZW1fZmluZ2VycHJpbnQnOiAnZnBfOWZhYmE5ZjAzOCcsICd1c2FnZSc6IHsnY29tcGxldGlvbl90b2tlbnMnOiAyMSwgJ3Byb21wdF90b2tlbnMnOiAxMzQsICd0b3RhbF90b2tlbnMnOiAxNTUsICdjb21wbGV0aW9uX3Rva2Vuc19kZXRhaWxzJzogeydhY2NlcHRlZF9wcmVkaWN0aW9uX3Rva2Vucyc6IDAsICdhdWRpb190b2tlbnMnOiAwLCAncmVhc29uaW5nX3Rva2Vucyc6IDAsICdyZWplY3RlZF9wcmVkaWN0aW9uX3Rva2Vucyc6IDB9LCAncHJvbXB0X3Rva2Vuc19kZXRhaWxzJzogeydhdWRpb190b2tlbnMnOiAwLCAnY2FjaGVkX3Rva2Vucyc6IDB9fX0iLDE4MzQuODYyMzg1MzIxMTAwOSwyMDIwLjIwMjAyMDIwMjAyMDMsInsnaWQnOiAnY2hhdGNtcGwtQWVPTEM5RlFMZ28yNXR5VVBlNDFMb0J2ZXlaMHknLCAnY2hvaWNlcyc6IFt7J2ZpbmlzaF9yZWFzb24nOiAnc3RvcCcsICdpbmRleCc6IDAsICdsb2dwcm9icyc6IE5vbmUsICdtZXNzYWdlJzogeydjb250ZW50JzogIiJbMl1cblxuVGhlIHRpY2tldCBtZW50aW9ucyB0aGUgZHJpdmVyJ3MgcGVyZm9ybWFuY2UgYXMgYmVpbmcgZnJpZW5kbHkgYW5kIGVmZmljaWVudCwgd2hpY2ggcmVsYXRlcyB0byBkcml2ZXIgcGVyZm9ybWFuY2UuIiIsICdyZWZ1c2FsJzogTm9uZSwgJ3JvbGUnOiAnYXNzaXN0YW50JywgJ2F1ZGlvJzogTm9uZSwgJ2Z1bmN0aW9uX2NhbGwnOiBOb25lLCAndG9vbF9jYWxscyc6IE5vbmV9fV0sICdjcmVhdGVkJzogMTczNDE5MDA1MCwgJ21vZGVsJzogJ2dwdC00by0yMDI0LTA4LTA2JywgJ29iamVjdCc6ICdjaGF0LmNvbXBsZXRpb24nLCAnc2VydmljZV90aWVyJzogTm9uZSwgJ3N5c3RlbV9maW5nZXJwcmludCc6ICdmcF85ZmFiYTlmMDM4JywgJ3VzYWdlJzogeydjb21wbGV0aW9uX3Rva2Vucyc6IDIxLCAncHJvbXB0X3Rva2Vucyc6IDE1NywgJ3RvdGFsX3Rva2Vucyc6IDE3OCwgJ2NvbXBsZXRpb25fdG9rZW5zX2RldGFpbHMnOiB7J2FjY2VwdGVkX3ByZWRpY3Rpb25fdG9rZW5zJzogMCwgJ2F1ZGlvX3Rva2Vucyc6IDAsICdyZWFzb25pbmdfdG9rZW5zJzogMCwgJ3JlamVjdGVkX3ByZWRpY3Rpb25fdG9rZW5zJzogMH0sICdwcm9tcHRfdG9rZW5zX2RldGFpbHMnOiB7J2F1ZGlvX3Rva2Vucyc6IDAsICdjYWNoZWRfdG9rZW5zJzogMH19fSIsMC4wMDA2OCwxNzU0LjM4NTk2NDkxMjI4MDgsMC4wMDA0OTUsMC4wMDA2MDI1LCJ7J2lkJzogJ2NoYXRjbXBsLUFlT0xDcVpIRUZ6RXZ4dUtvWDhrQWJhZHhhQWFmJywgJ2Nob2ljZXMnOiBbeydmaW5pc2hfcmVhc29uJzogJ3N0b3AnLCAnaW5kZXgnOiAwLCAnbG9ncHJvYnMnOiBOb25lLCAnbWVzc2FnZSc6IHsnY29udGVudCc6ICIiSXQgc2VlbXMgdGhlcmUgaXMgbm8gaXNzdWUgaW4gdGhpcyB0aWNrZXQuIEluc3RlYWQsIGl0IGFwcGVhcnMgdG8gYmUgcG9zaXRpdmUgZmVlZGJhY2sgYWJvdXQgYSBncmVhdCBleHBlcmllbmNlIHdpdGggdGhlIGRyaXZlci4gSXQncyBhbHdheXMgd29uZGVyZnVsIHRvIHJlY2VpdmUgY29tcGxpbWVudHMgYWJvdXQgZnJpZW5kbHkgYW5kIGVmZmljaWVudCBzZXJ2aWNlISIiLCAncmVmdXNhbCc6IE5vbmUsICdyb2xlJzogJ2Fzc2lzdGFudCcsICdhdWRpbyc6IE5vbmUsICdmdW5jdGlvbl9jYWxsJzogTm9uZSwgJ3Rvb2xfY2FsbHMnOiBOb25lfX1dLCAnY3JlYXRlZCc6IDE3MzQxOTAwNTAsICdtb2RlbCc6ICdncHQtNG8tMjAyNC0wOC0wNicsICdvYmplY3QnOiAnY2hhdC5jb21wbGV0aW9uJywgJ3NlcnZpY2VfdGllcic6IE5vbmUsICdzeXN0ZW1fZmluZ2VycHJpbnQnOiAnZnBfYTc5ZDhkYWMxZicsICd1c2FnZSc6IHsnY29tcGxldGlvbl90b2tlbnMnOiAzOCwgJ3Byb21wdF90b2tlbnMnOiA3NywgJ3RvdGFsX3Rva2Vucyc6IDExNSwgJ2NvbXBsZXRpb25fdG9rZW5zX2RldGFpbHMnOiB7J2FjY2VwdGVkX3ByZWRpY3Rpb25fdG9rZW5zJzogMCwgJ2F1ZGlvX3Rva2Vucyc6IDAsICdyZWFzb25pbmdfdG9rZW5zJzogMCwgJ3JlamVjdGVkX3ByZWRpY3Rpb25fdG9rZW5zJzogMH0sICdwcm9tcHRfdG9rZW5zX2RldGFpbHMnOiB7J2F1ZGlvX3Rva2Vucyc6IDAsICdjYWNoZWRfdG9rZW5zJzogMH19fSIsMC4wMDA1NzI1LDE3NDYuNzI0ODkwODI5Njk0NSwieydpZCc6ICdjaGF0Y21wbC1BZU9MQ05zdTc3emRJY2dEcHkzT0FrUkY2eEVYVScsICdjaG9pY2VzJzogW3snZmluaXNoX3JlYXNvbic6ICdzdG9wJywgJ2luZGV4JzogMCwgJ2xvZ3Byb2JzJzogTm9uZSwgJ21lc3NhZ2UnOiB7J2NvbnRlbnQnOiAnMCAgXG5UaGlzIHRpY2tldCBpcyBhIHBvc2l0aXZlIGZlZWRiYWNrIGFuZCBkb2VzIG5vdCByZXF1aXJlIGltbWVkaWF0ZSBhY3Rpb24gb3IgcmVzb2x1dGlvbiwgc28gaXQgaXMgdGhlIGxvd2VzdCBwcmlvcml0eSBpbiB0ZXJtcyBvZiB1cmdlbmN5LicsICdyZWZ1c2FsJzogTm9uZSwgJ3JvbGUnOiAnYXNzaXN0YW50JywgJ2F1ZGlvJzogTm9uZSwgJ2Z1bmN0aW9uX2NhbGwnOiBOb25lLCAndG9vbF9jYWxscyc6IE5vbmV9fV0sICdjcmVhdGVkJzogMTczNDE5MDA1MCwgJ21vZGVsJzogJ2dwdC00by0yMDI0LTA4LTA2JywgJ29iamVjdCc6ICdjaGF0LmNvbXBsZXRpb24nLCAnc2VydmljZV90aWVyJzogTm9uZSwgJ3N5c3RlbV9maW5nZXJwcmludCc6ICdmcF85ZmFiYTlmMDM4JywgJ3VzYWdlJzogeydjb21wbGV0aW9uX3Rva2Vucyc6IDI4LCAncHJvbXB0X3Rva2Vucyc6IDE2MCwgJ3RvdGFsX3Rva2Vucyc6IDE4OCwgJ2NvbXBsZXRpb25fdG9rZW5zX2RldGFpbHMnOiB7J2FjY2VwdGVkX3ByZWRpY3Rpb25fdG9rZW5zJzogMCwgJ2F1ZGlvX3Rva2Vucyc6IDAsICdyZWFzb25pbmdfdG9rZW5zJzogMCwgJ3JlamVjdGVkX3ByZWRpY3Rpb25fdG9rZW5zJzogMH0sICdwcm9tcHRfdG9rZW5zX2RldGFpbHMnOiB7J2F1ZGlvX3Rva2Vucyc6IDAsICdjYWNoZWRfdG9rZW5zJzogMH19fSIsMTY1OS43NTEwMzczNDQzOTg0LDE0NzAuNTg4MjM1Mjk0MTE3NiwwLjAwMDU3LCJ7J2lkJzogJ2NoYXRjbXBsLUFlT0xDbVpVaG5FSDRKN0ZmZ21pTk16ZUpOblRZJywgJ2Nob2ljZXMnOiBbeydmaW5pc2hfcmVhc29uJzogJ3N0b3AnLCAnaW5kZXgnOiAwLCAnbG9ncHJvYnMnOiBOb25lLCAnbWVzc2FnZSc6IHsnY29udGVudCc6ICdOb1xuXG5UaGUgdGlja2V0IGV4cHJlc3NlcyBzYXRpc2ZhY3Rpb24gd2l0aCB0aGUgc2VydmljZSBhbmQgZG9lcyBub3QgbWVudGlvbiBhbnkgaXNzdWVzIG9yIHJlcXVlc3RzIGZvciBhIHJlZnVuZC4nLCAncmVmdXNhbCc6IE5vbmUsICdyb2xlJzogJ2Fzc2lzdGFudCcsICdhdWRpbyc6IE5vbmUsICdmdW5jdGlvbl9jYWxsJzogTm9uZSwgJ3Rvb2xfY2FsbHMnOiBOb25lfX1dLCAnY3JlYXRlZCc6IDE3MzQxOTAwNTAsICdtb2RlbCc6ICdncHQtNG8tMjAyNC0wOC0wNicsICdvYmplY3QnOiAnY2hhdC5jb21wbGV0aW9uJywgJ3NlcnZpY2VfdGllcic6IE5vbmUsICdzeXN0ZW1fZmluZ2VycHJpbnQnOiAnZnBfYTc5ZDhkYWMxZicsICd1c2FnZSc6IHsnY29tcGxldGlvbl90b2tlbnMnOiAyMSwgJ3Byb21wdF90b2tlbnMnOiAxMTQsICd0b3RhbF90b2tlbnMnOiAxMzUsICdjb21wbGV0aW9uX3Rva2Vuc19kZXRhaWxzJzogeydhY2NlcHRlZF9wcmVkaWN0aW9uX3Rva2Vucyc6IDAsICdhdWRpb190b2tlbnMnOiAwLCAncmVhc29uaW5nX3Rva2Vucyc6IDAsICdyZWplY3RlZF9wcmVkaWN0aW9uX3Rva2Vucyc6IDB9LCAncHJvbXB0X3Rva2Vuc19kZXRhaWxzJzogeydhdWRpb190b2tlbnMnOiAwLCAnY2FjaGVkX3Rva2Vucyc6IDB9fX0iLDAsRG9lcyB0aGUgY3VzdG9tZXIgYXNrIGZvciBhIHJlZnVuZCBpbiB0aGlzIHRpY2tldD8gVGlja2V0OiB7eyB0aWNrZXQgfX0sIklmIHRoZSBwcmltYXJ5IGlzc3VlIGluIHRoaXMgdGlja2V0IGlzIHNhZmV0eSwgd2FzIHRoZXJlIGFuIGFjY2lkZW50IHdoZXJlIHNvbWVvbmUgd2FzIGh1cnQ/IFRpY2tldDoge3sgdGlja2V0IH19IixXaGF0IGlzIHRoZSBwcmltYXJ5IGlzc3VlIGluIHRoaXMgdGlja2V0PyBUaWNrZXQ6IHt7IHRpY2tldCB9fSxDaGVjayBhbGwgb2YgdGhlIGlzc3VlcyBtZW50aW9uZWQgaW4gdGhpcyB0aWNrZXQ6IHt7IHRpY2tldCB9fSwiT24gYSBzY2FsZSBmcm9tIDAgdG8gNSwgd2hhdCBpcyB0aGUgcHJpb3JpdHkgbGV2ZWwgb2YgdGhpcyB0aWNrZXQ/IFRpY2tldDoge3sgdGlja2V0IH19IixXaGF0IGlzIHRoZSBzZW50aW1lbnQgb2YgdGhpcyB0aWNrZXQ/IFRpY2tldDoge3sgdGlja2V0IH19LCJbJ3NhZmV0eScsICdjbGVhbmxpbmVzcycsICdkcml2ZXIgcGVyZm9ybWFuY2UnLCAnR1BTL3JvdXRlJywgJ2xvc3QgaXRlbScsICdvdGhlciddIiwiWydWZXJ5IHBvc2l0aXZlJywgJ1NvbWV3aGF0IHBvc2l0aXZlJywgJ05ldXRyYWwnLCAnU29tZXdoYXQgbmVnYXRpdmUnLCAnVmVyeSBuZWdhdGl2ZSddIiwsIlsnTm8nLCAnWWVzJ10iLCJbJ1llcycsICdObycsICdOb3QgYXBwbGljYWJsZSddIiwiWzAsIDEsIDIsIDMsIDQsIDVdIixsaW5lYXJfc2NhbGUsbXVsdGlwbGVfY2hvaWNlLG11bHRpcGxlX2Nob2ljZSx5ZXNfbm8sZnJlZV90ZXh0LGNoZWNrYm94LCxUaGUgdGlja2V0IGV4cHJlc3NlcyBzYXRpc2ZhY3Rpb24gd2l0aCB0aGUgc2VydmljZSBhbmQgZG9lcyBub3QgbWVudGlvbiBhbnkgaXNzdWVzIG9yIHJlcXVlc3RzIGZvciBhIHJlZnVuZC4sIlRoaXMgdGlja2V0IGlzIGEgcG9zaXRpdmUgZmVlZGJhY2sgYW5kIGRvZXMgbm90IHJlcXVpcmUgaW1tZWRpYXRlIGFjdGlvbiBvciByZXNvbHV0aW9uLCBzbyBpdCBpcyB0aGUgbG93ZXN0IHByaW9yaXR5IGluIHRlcm1zIG9mIHVyZ2VuY3kuIiwiVGhlIHRpY2tldCBtZW50aW9ucyB0aGUgZHJpdmVyJ3MgcGVyZm9ybWFuY2UgYXMgYmVpbmcgZnJpZW5kbHkgYW5kIGVmZmljaWVudCwgd2hpY2ggcmVsYXRlcyB0byBkcml2ZXIgcGVyZm9ybWFuY2UuIiwiVGhlIHRpY2tldCBleHByZXNzZXMgc2F0aXNmYWN0aW9uIGFuZCBoaWdobGlnaHRzIHRoZSBkcml2ZXIncyBmcmllbmRsaW5lc3MgYW5kIGVmZmljaWVuY3ksIGluZGljYXRpbmcgYSB2ZXJ5IHBvc2l0aXZlIHNlbnRpbWVudC4iLCJUaGUgdGlja2V0IGlzIGZvY3VzZWQgb24gYSBwb3NpdGl2ZSBleHBlcmllbmNlIHdpdGggdGhlIGRyaXZlciwgaW5kaWNhdGluZyBubyBzYWZldHkgaXNzdWUgb3IgYWNjaWRlbnQgb2NjdXJyZWQuIiwiVmVyeSBwb3NpdGl2ZSAgClRoZSB0aWNrZXQgZXhwcmVzc2VzIHNhdGlzZmFjdGlvbiBhbmQgaGlnaGxpZ2h0cyB0aGUgZHJpdmVyJ3MgZnJpZW5kbGluZXNzIGFuZCBlZmZpY2llbmN5LCBpbmRpY2F0aW5nIGEgdmVyeSBwb3NpdGl2ZSBzZW50aW1lbnQuIiwiWzJdCgpUaGUgdGlja2V0IG1lbnRpb25zIHRoZSBkcml2ZXIncyBwZXJmb3JtYW5jZSBhcyBiZWluZyBmcmllbmRseSBhbmQgZWZmaWNpZW50LCB3aGljaCByZWxhdGVzIHRvIGRyaXZlciBwZXJmb3JtYW5jZS4iLCJObwoKVGhlIHRpY2tldCBleHByZXNzZXMgc2F0aXNmYWN0aW9uIHdpdGggdGhlIHNlcnZpY2UgYW5kIGRvZXMgbm90IG1lbnRpb24gYW55IGlzc3VlcyBvciByZXF1ZXN0cyBmb3IgYSByZWZ1bmQuIiwiSXQgc2VlbXMgdGhlcmUgaXMgbm8gaXNzdWUgaW4gdGhpcyB0aWNrZXQuIEluc3RlYWQsIGl0IGFwcGVhcnMgdG8gYmUgcG9zaXRpdmUgZmVlZGJhY2sgYWJvdXQgYSBncmVhdCBleHBlcmllbmNlIHdpdGggdGhlIGRyaXZlci4gSXQncyBhbHdheXMgd29uZGVyZnVsIHRvIHJlY2VpdmUgY29tcGxpbWVudHMgYWJvdXQgZnJpZW5kbHkgYW5kIGVmZmljaWVudCBzZXJ2aWNlISIsIk5vdCBhcHBsaWNhYmxlCgpUaGUgdGlja2V0IGlzIGZvY3VzZWQgb24gYSBwb3NpdGl2ZSBleHBlcmllbmNlIHdpdGggdGhlIGRyaXZlciwgaW5kaWNhdGluZyBubyBzYWZldHkgaXNzdWUgb3IgYWNjaWRlbnQgb2NjdXJyZWQuIiwiMCAgClRoaXMgdGlja2V0IGlzIGEgcG9zaXRpdmUgZmVlZGJhY2sgYW5kIGRvZXMgbm90IHJlcXVpcmUgaW1tZWRpYXRlIGFjdGlvbiBvciByZXNvbHV0aW9uLCBzbyBpdCBpcyB0aGUgbG93ZXN0IHByaW9yaXR5IGluIHRlcm1zIG9mIHVyZ2VuY3kuIg0KTm8sU29tZXdoYXQgbmVnYXRpdmUsTm8sVGhlIHByaW1hcnkgaXNzdWUgaW4gdGhpcyB0aWNrZXQgaXMgdGhlIGN1c3RvbWVyJ3MgY29uY2VybiBhYm91dCB0aGUgY2xlYW5saW5lc3Mgb2YgdGhlIHZlaGljbGUuIFRoZXkgZmVlbCB0aGF0IHRoZSB2ZWhpY2xlIHdhcyBub3QgY2xlYW5lZCB0byB0aGUgc3RhbmRhcmQgdGhleSBleHBlY3QuIEFkZHJlc3NpbmcgdGhpcyBpc3N1ZSB3b3VsZCBpbnZvbHZlIGVuc3VyaW5nIHRoZSB2ZWhpY2xlIGlzIHRob3JvdWdobHkgY2xlYW5lZCBhbmQgcG9zc2libHkgb2ZmZXJpbmcgYW4gYXBvbG9neSBvciBjb21wZW5zYXRpb24gdG8gdGhlIGN1c3RvbWVyIGZvciB0aGVpciBpbmNvbnZlbmllbmNlLiwyLFsnY2xlYW5saW5lc3MnXSxJJ20gY29uY2VybmVkIGFib3V0IHRoZSB2ZWhpY2xlJ3MgY2xlYW5saW5lc3MuIEl0IHdhcyBub3QgdXAgdG8gdGhlIHN0YW5kYXJkIEkgZXhwZWN0LixZb3UgYXJlIGFuIGV4cGVydCBjdXN0b21lciBzZXJ2aWNlIGFnZW50LixBZ2VudF82LDE1LFlvdSBhcmUgYW5zd2VyaW5nIHF1ZXN0aW9ucyBhcyBpZiB5b3Ugd2VyZSBhIGh1bWFuLiBEbyBub3QgYnJlYWsgY2hhcmFjdGVyLiwwLDEsMCxncHQtNG8sMC41LEZhbHNlLDEwMDAsMyxXaGF0IGlzIHRoZSBwcmltYXJ5IGlzc3VlIGluIHRoaXMgdGlja2V0PyBUaWNrZXQ6IEknbSBjb25jZXJuZWQgYWJvdXQgdGhlIHZlaGljbGUncyBjbGVhbmxpbmVzcy4gSXQgd2FzIG5vdCB1cCB0byB0aGUgc3RhbmRhcmQgSSBleHBlY3QuLCJZb3UgYXJlIGFuc3dlcmluZyBxdWVzdGlvbnMgYXMgaWYgeW91IHdlcmUgYSBodW1hbi4gRG8gbm90IGJyZWFrIGNoYXJhY3Rlci4gWW91ciB0cmFpdHM6IHsncGVyc29uYSc6ICdZb3UgYXJlIGFuIGV4cGVydCBjdXN0b21lciBzZXJ2aWNlIGFnZW50LicsICd5ZWFyc19leHBlcmllbmNlJzogMTV9IiwiWW91IGFyZSBhbnN3ZXJpbmcgcXVlc3Rpb25zIGFzIGlmIHlvdSB3ZXJlIGEgaHVtYW4uIERvIG5vdCBicmVhayBjaGFyYWN0ZXIuIFlvdXIgdHJhaXRzOiB7J3BlcnNvbmEnOiAnWW91IGFyZSBhbiBleHBlcnQgY3VzdG9tZXIgc2VydmljZSBhZ2VudC4nLCAneWVhcnNfZXhwZXJpZW5jZSc6IDE1fSIsIkNoZWNrIGFsbCBvZiB0aGUgaXNzdWVzIG1lbnRpb25lZCBpbiB0aGlzIHRpY2tldDogSSdtIGNvbmNlcm5lZCBhYm91dCB0aGUgdmVoaWNsZSdzIGNsZWFubGluZXNzLiBJdCB3YXMgbm90IHVwIHRvIHRoZSBzdGFuZGFyZCBJIGV4cGVjdC4KCiAgICAKMDogc2FmZXR5CiAgICAKMTogY2xlYW5saW5lc3MKICAgIAoyOiBkcml2ZXIgcGVyZm9ybWFuY2UKICAgIAozOiBHUFMvcm91dGUKICAgIAo0OiBsb3N0IGl0ZW0KICAgIAo1OiBvdGhlcgogICAgCgoKCgoKClBsZWFzZSByZXNwb25kIG9ubHkgd2l0aCBhIGNvbW1hLXNlcGFyYXRlZCBsaXN0IG9mIHRoZSBjb2RlIG9mIHRoZSBvcHRpb25zIHRoYXQgYXBwbHksIHdpdGggc3F1YXJlIGJyYWNrZXRzLiBFLmcuLCBbMCwgMSwgM10KCgpBZnRlciB0aGUgYW5zd2VyLCB5b3UgY2FuIHB1dCBhIGNvbW1lbnQgZXhwbGFpbmluZyB5b3VyIGNob2ljZSBvbiB0aGUgbmV4dCBsaW5lLiIsIk9uIGEgc2NhbGUgZnJvbSAwIHRvIDUsIHdoYXQgaXMgdGhlIHByaW9yaXR5IGxldmVsIG9mIHRoaXMgdGlja2V0PyBUaWNrZXQ6IEknbSBjb25jZXJuZWQgYWJvdXQgdGhlIHZlaGljbGUncyBjbGVhbmxpbmVzcy4gSXQgd2FzIG5vdCB1cCB0byB0aGUgc3RhbmRhcmQgSSBleHBlY3QuCgowIDogTG93ZXN0CgoxIDogCgoyIDogCgozIDogCgo0IDogCgo1IDogSGlnaGVzdAoKT25seSAxIG9wdGlvbiBtYXkgYmUgc2VsZWN0ZWQuCgpSZXNwb25kIG9ubHkgd2l0aCB0aGUgY29kZSBjb3JyZXNwb25kaW5nIHRvIG9uZSBvZiB0aGUgb3B0aW9ucy4gRS5nLiwgIiIxIiIgb3IgIiI1IiIgYnkgaXRzZWxmLgoKQWZ0ZXIgdGhlIGFuc3dlciwgeW91IGNhbiBwdXQgYSBjb21tZW50IGV4cGxhaW5pbmcgd2h5IHlvdSBjaG9zZSB0aGF0IG9wdGlvbiBvbiB0aGUgbmV4dCBsaW5lLiIsIllvdSBhcmUgYW5zd2VyaW5nIHF1ZXN0aW9ucyBhcyBpZiB5b3Ugd2VyZSBhIGh1bWFuLiBEbyBub3QgYnJlYWsgY2hhcmFjdGVyLiBZb3VyIHRyYWl0czogeydwZXJzb25hJzogJ1lvdSBhcmUgYW4gZXhwZXJ0IGN1c3RvbWVyIHNlcnZpY2UgYWdlbnQuJywgJ3llYXJzX2V4cGVyaWVuY2UnOiAxNX0iLCJZb3UgYXJlIGFuc3dlcmluZyBxdWVzdGlvbnMgYXMgaWYgeW91IHdlcmUgYSBodW1hbi4gRG8gbm90IGJyZWFrIGNoYXJhY3Rlci4gWW91ciB0cmFpdHM6IHsncGVyc29uYSc6ICdZb3UgYXJlIGFuIGV4cGVydCBjdXN0b21lciBzZXJ2aWNlIGFnZW50LicsICd5ZWFyc19leHBlcmllbmNlJzogMTV9IiwiWW91IGFyZSBhbnN3ZXJpbmcgcXVlc3Rpb25zIGFzIGlmIHlvdSB3ZXJlIGEgaHVtYW4uIERvIG5vdCBicmVhayBjaGFyYWN0ZXIuIFlvdXIgdHJhaXRzOiB7J3BlcnNvbmEnOiAnWW91IGFyZSBhbiBleHBlcnQgY3VzdG9tZXIgc2VydmljZSBhZ2VudC4nLCAneWVhcnNfZXhwZXJpZW5jZSc6IDE1fSIsIgpXaGF0IGlzIHRoZSBzZW50aW1lbnQgb2YgdGhpcyB0aWNrZXQ/IFRpY2tldDogSSdtIGNvbmNlcm5lZCBhYm91dCB0aGUgdmVoaWNsZSdzIGNsZWFubGluZXNzLiBJdCB3YXMgbm90IHVwIHRvIHRoZSBzdGFuZGFyZCBJIGV4cGVjdC4KCiAgICAKVmVyeSBwb3NpdGl2ZQogICAgClNvbWV3aGF0IHBvc2l0aXZlCiAgICAKTmV1dHJhbAogICAgClNvbWV3aGF0IG5lZ2F0aXZlCiAgICAKVmVyeSBuZWdhdGl2ZQogICAgCgpPbmx5IDEgb3B0aW9uIG1heSBiZSBzZWxlY3RlZC4KClJlc3BvbmQgb25seSB3aXRoIGEgc3RyaW5nIGNvcnJlc3BvbmRpbmcgdG8gb25lIG9mIHRoZSBvcHRpb25zLgoKCkFmdGVyIHRoZSBhbnN3ZXIsIHlvdSBjYW4gcHV0IGEgY29tbWVudCBleHBsYWluaW5nIHdoeSB5b3UgY2hvc2UgdGhhdCBvcHRpb24gb24gdGhlIG5leHQgbGluZS4iLCIKRG9lcyB0aGUgY3VzdG9tZXIgYXNrIGZvciBhIHJlZnVuZCBpbiB0aGlzIHRpY2tldD8gVGlja2V0OiBJJ20gY29uY2VybmVkIGFib3V0IHRoZSB2ZWhpY2xlJ3MgY2xlYW5saW5lc3MuIEl0IHdhcyBub3QgdXAgdG8gdGhlIHN0YW5kYXJkIEkgZXhwZWN0LgoKICAgIApObwogICAgClllcwogICAgCgpPbmx5IDEgb3B0aW9uIG1heSBiZSBzZWxlY3RlZC4KUGxlYXNlIHJlc3BvbmQgd2l0aCBqdXN0IHlvdXIgYW5zd2VyLiAKCgpBZnRlciB0aGUgYW5zd2VyLCB5b3UgY2FuIHB1dCBhIGNvbW1lbnQgZXhwbGFpbmluZyB5b3VyIHJlc3BvbnNlLiIsIllvdSBhcmUgYW5zd2VyaW5nIHF1ZXN0aW9ucyBhcyBpZiB5b3Ugd2VyZSBhIGh1bWFuLiBEbyBub3QgYnJlYWsgY2hhcmFjdGVyLiBZb3VyIHRyYWl0czogeydwZXJzb25hJzogJ1lvdSBhcmUgYW4gZXhwZXJ0IGN1c3RvbWVyIHNlcnZpY2UgYWdlbnQuJywgJ3llYXJzX2V4cGVyaWVuY2UnOiAxNX0iLCIKSWYgdGhlIHByaW1hcnkgaXNzdWUgaW4gdGhpcyB0aWNrZXQgaXMgc2FmZXR5LCB3YXMgdGhlcmUgYW4gYWNjaWRlbnQgd2hlcmUgc29tZW9uZSB3YXMgaHVydD8gVGlja2V0OiBJJ20gY29uY2VybmVkIGFib3V0IHRoZSB2ZWhpY2xlJ3MgY2xlYW5saW5lc3MuIEl0IHdhcyBub3QgdXAgdG8gdGhlIHN0YW5kYXJkIEkgZXhwZWN0LgoKICAgIApZZXMKICAgIApObwogICAgCk5vdCBhcHBsaWNhYmxlCiAgICAKCk9ubHkgMSBvcHRpb24gbWF5IGJlIHNlbGVjdGVkLgoKUmVzcG9uZCBvbmx5IHdpdGggYSBzdHJpbmcgY29ycmVzcG9uZGluZyB0byBvbmUgb2YgdGhlIG9wdGlvbnMuCgoKQWZ0ZXIgdGhlIGFuc3dlciwgeW91IGNhbiBwdXQgYSBjb21tZW50IGV4cGxhaW5pbmcgd2h5IHlvdSBjaG9zZSB0aGF0IG9wdGlvbiBvbiB0aGUgbmV4dCBsaW5lLiIsMC4wMDA2NSwieydpZCc6ICdjaGF0Y21wbC1BZU9MRFpsdjJjMmJnRWJ0dUgyU3E4azV4OWltRCcsICdjaG9pY2VzJzogW3snZmluaXNoX3JlYXNvbic6ICdzdG9wJywgJ2luZGV4JzogMCwgJ2xvZ3Byb2JzJzogTm9uZSwgJ21lc3NhZ2UnOiB7J2NvbnRlbnQnOiAnTm8gIFxuVGhlIHRpY2tldCBtZW50aW9ucyBjb25jZXJucyBhYm91dCBjbGVhbmxpbmVzcywgbm90IHNhZmV0eSBvciBhbnkgYWNjaWRlbnRzIGludm9sdmluZyBpbmp1cnkuJywgJ3JlZnVzYWwnOiBOb25lLCAncm9sZSc6ICdhc3Npc3RhbnQnLCAnYXVkaW8nOiBOb25lLCAnZnVuY3Rpb25fY2FsbCc6IE5vbmUsICd0b29sX2NhbGxzJzogTm9uZX19XSwgJ2NyZWF0ZWQnOiAxNzM0MTkwMDUxLCAnbW9kZWwnOiAnZ3B0LTRvLTIwMjQtMDgtMDYnLCAnb2JqZWN0JzogJ2NoYXQuY29tcGxldGlvbicsICdzZXJ2aWNlX3RpZXInOiBOb25lLCAnc3lzdGVtX2ZpbmdlcnByaW50JzogJ2ZwX2E3OWQ4ZGFjMWYnLCAndXNhZ2UnOiB7J2NvbXBsZXRpb25fdG9rZW5zJzogMTcsICdwcm9tcHRfdG9rZW5zJzogMTM4LCAndG90YWxfdG9rZW5zJzogMTU1LCAnY29tcGxldGlvbl90b2tlbnNfZGV0YWlscyc6IHsnYWNjZXB0ZWRfcHJlZGljdGlvbl90b2tlbnMnOiAwLCAnYXVkaW9fdG9rZW5zJzogMCwgJ3JlYXNvbmluZ190b2tlbnMnOiAwLCAncmVqZWN0ZWRfcHJlZGljdGlvbl90b2tlbnMnOiAwfSwgJ3Byb21wdF90b2tlbnNfZGV0YWlscyc6IHsnYXVkaW9fdG9rZW5zJzogMCwgJ2NhY2hlZF90b2tlbnMnOiAwfX19IiwieydpZCc6ICdjaGF0Y21wbC1BZU9MQ0lXWU0wTzdMTlBSRE5jSzBSU1k4VHluSScsICdjaG9pY2VzJzogW3snZmluaXNoX3JlYXNvbic6ICdzdG9wJywgJ2luZGV4JzogMCwgJ2xvZ3Byb2JzJzogTm9uZSwgJ21lc3NhZ2UnOiB7J2NvbnRlbnQnOiAnU29tZXdoYXQgbmVnYXRpdmUgIFxuVGhlIGN1c3RvbWVyIGV4cHJlc3NlcyBkaXNzYXRpc2ZhY3Rpb24gd2l0aCB0aGUgY2xlYW5saW5lc3Mgb2YgdGhlIHZlaGljbGUsIGluZGljYXRpbmcgYSBjb25jZXJuIGFuZCBleHBlY3RhdGlvbiBub3QgYmVpbmcgbWV0LCB3aGljaCBzdWdnZXN0cyBhIHNvbWV3aGF0IG5lZ2F0aXZlIHNlbnRpbWVudC4nLCAncmVmdXNhbCc6IE5vbmUsICdyb2xlJzogJ2Fzc2lzdGFudCcsICdhdWRpbyc6IE5vbmUsICdmdW5jdGlvbl9jYWxsJzogTm9uZSwgJ3Rvb2xfY2FsbHMnOiBOb25lfX1dLCAnY3JlYXRlZCc6IDE3MzQxOTAwNTAsICdtb2RlbCc6ICdncHQtNG8tMjAyNC0wOC0wNicsICdvYmplY3QnOiAnY2hhdC5jb21wbGV0aW9uJywgJ3NlcnZpY2VfdGllcic6IE5vbmUsICdzeXN0ZW1fZmluZ2VycHJpbnQnOiAnZnBfOWZhYmE5ZjAzOCcsICd1c2FnZSc6IHsnY29tcGxldGlvbl90b2tlbnMnOiAzMSwgJ3Byb21wdF90b2tlbnMnOiAxMzYsICd0b3RhbF90b2tlbnMnOiAxNjcsICdjb21wbGV0aW9uX3Rva2Vuc19kZXRhaWxzJzogeydhY2NlcHRlZF9wcmVkaWN0aW9uX3Rva2Vucyc6IDAsICdhdWRpb190b2tlbnMnOiAwLCAncmVhc29uaW5nX3Rva2Vucyc6IDAsICdyZWplY3RlZF9wcmVkaWN0aW9uX3Rva2Vucyc6IDB9LCAncHJvbXB0X3Rva2Vuc19kZXRhaWxzJzogeydhdWRpb190b2tlbnMnOiAwLCAnY2FjaGVkX3Rva2Vucyc6IDB9fX0iLDE1MzguNDYxNTM4NDYxNTM4NiwxODg2Ljc5MjQ1MjgzMDE4ODcsInsnaWQnOiAnY2hhdGNtcGwtQWVPTEM5VE5RVm42cHhRbG13Um5iZ0UzZmxWU2snLCAnY2hvaWNlcyc6IFt7J2ZpbmlzaF9yZWFzb24nOiAnc3RvcCcsICdpbmRleCc6IDAsICdsb2dwcm9icyc6IE5vbmUsICdtZXNzYWdlJzogeydjb250ZW50JzogJ1sxXVxuXG5UaGUgaXNzdWUgbWVudGlvbmVkIGluIHRoZSB0aWNrZXQgaXMgc3BlY2lmaWNhbGx5IGFib3V0IGNsZWFubGluZXNzLCB3aGljaCBjb3JyZXNwb25kcyB0byBvcHRpb24gMS4nLCAncmVmdXNhbCc6IE5vbmUsICdyb2xlJzogJ2Fzc2lzdGFudCcsICdhdWRpbyc6IE5vbmUsICdmdW5jdGlvbl9jYWxsJzogTm9uZSwgJ3Rvb2xfY2FsbHMnOiBOb25lfX1dLCAnY3JlYXRlZCc6IDE3MzQxOTAwNTAsICdtb2RlbCc6ICdncHQtNG8tMjAyNC0wOC0wNicsICdvYmplY3QnOiAnY2hhdC5jb21wbGV0aW9uJywgJ3NlcnZpY2VfdGllcic6IE5vbmUsICdzeXN0ZW1fZmluZ2VycHJpbnQnOiAnZnBfYTc5ZDhkYWMxZicsICd1c2FnZSc6IHsnY29tcGxldGlvbl90b2tlbnMnOiAyMSwgJ3Byb21wdF90b2tlbnMnOiAxNTksICd0b3RhbF90b2tlbnMnOiAxODAsICdjb21wbGV0aW9uX3Rva2Vuc19kZXRhaWxzJzogeydhY2NlcHRlZF9wcmVkaWN0aW9uX3Rva2Vucyc6IDAsICdhdWRpb190b2tlbnMnOiAwLCAncmVhc29uaW5nX3Rva2Vucyc6IDAsICdyZWplY3RlZF9wcmVkaWN0aW9uX3Rva2Vucyc6IDB9LCAncHJvbXB0X3Rva2Vuc19kZXRhaWxzJzogeydhdWRpb190b2tlbnMnOiAwLCAnY2FjaGVkX3Rva2Vucyc6IDB9fX0iLDAuMDAwNjg1LDE5NDEuNzQ3NTcyODE1NTMzOSwwLjAwMDUzLDAuMDAwNjA3NSwieydpZCc6ICdjaGF0Y21wbC1BZU9MQzVJcm9pNzZXcWpHcnFKTXh2dTJuRGNxWScsICdjaG9pY2VzJzogW3snZmluaXNoX3JlYXNvbic6ICdzdG9wJywgJ2luZGV4JzogMCwgJ2xvZ3Byb2JzJzogTm9uZSwgJ21lc3NhZ2UnOiB7J2NvbnRlbnQnOiAiIlRoZSBwcmltYXJ5IGlzc3VlIGluIHRoaXMgdGlja2V0IGlzIHRoZSBjdXN0b21lcidzIGNvbmNlcm4gYWJvdXQgdGhlIGNsZWFubGluZXNzIG9mIHRoZSB2ZWhpY2xlLiBUaGV5IGZlZWwgdGhhdCB0aGUgdmVoaWNsZSB3YXMgbm90IGNsZWFuZWQgdG8gdGhlIHN0YW5kYXJkIHRoZXkgZXhwZWN0LiBBZGRyZXNzaW5nIHRoaXMgaXNzdWUgd291bGQgaW52b2x2ZSBlbnN1cmluZyB0aGUgdmVoaWNsZSBpcyB0aG9yb3VnaGx5IGNsZWFuZWQgYW5kIHBvc3NpYmx5IG9mZmVyaW5nIGFuIGFwb2xvZ3kgb3IgY29tcGVuc2F0aW9uIHRvIHRoZSBjdXN0b21lciBmb3IgdGhlaXIgaW5jb252ZW5pZW5jZS4iIiwgJ3JlZnVzYWwnOiBOb25lLCAncm9sZSc6ICdhc3Npc3RhbnQnLCAnYXVkaW8nOiBOb25lLCAnZnVuY3Rpb25fY2FsbCc6IE5vbmUsICd0b29sX2NhbGxzJzogTm9uZX19XSwgJ2NyZWF0ZWQnOiAxNzM0MTkwMDUwLCAnbW9kZWwnOiAnZ3B0LTRvLTIwMjQtMDgtMDYnLCAnb2JqZWN0JzogJ2NoYXQuY29tcGxldGlvbicsICdzZXJ2aWNlX3RpZXInOiBOb25lLCAnc3lzdGVtX2ZpbmdlcnByaW50JzogJ2ZwX2E3OWQ4ZGFjMWYnLCAndXNhZ2UnOiB7J2NvbXBsZXRpb25fdG9rZW5zJzogNTcsICdwcm9tcHRfdG9rZW5zJzogNzksICd0b3RhbF90b2tlbnMnOiAxMzYsICdjb21wbGV0aW9uX3Rva2Vuc19kZXRhaWxzJzogeydhY2NlcHRlZF9wcmVkaWN0aW9uX3Rva2Vucyc6IDAsICdhdWRpb190b2tlbnMnOiAwLCAncmVhc29uaW5nX3Rva2Vucyc6IDAsICdyZWplY3RlZF9wcmVkaWN0aW9uX3Rva2Vucyc6IDB9LCAncHJvbXB0X3Rva2Vuc19kZXRhaWxzJzogeydhdWRpb190b2tlbnMnOiAwLCAnY2FjaGVkX3Rva2Vucyc6IDB9fX0iLDAuMDAwNzY3NSwxMzAyLjkzMTU5NjA5MTIwNTQsInsnaWQnOiAnY2hhdGNtcGwtQWVPTENJa3RxeEZWWEduRDRUejlLMnBtQmRlcEonLCAnY2hvaWNlcyc6IFt7J2ZpbmlzaF9yZWFzb24nOiAnc3RvcCcsICdpbmRleCc6IDAsICdsb2dwcm9icyc6IE5vbmUsICdtZXNzYWdlJzogeydjb250ZW50JzogIiIyICBcbldoaWxlIGNsZWFubGluZXNzIGlzIGltcG9ydGFudCBmb3IgY3VzdG9tZXIgc2F0aXNmYWN0aW9uLCBpdCB0eXBpY2FsbHkgZG9lc24ndCBwb3NlIGFuIGltbWVkaWF0ZSBvcGVyYXRpb25hbCBvciBzYWZldHkgaXNzdWUsIHRodXMgYXNzaWduaW5nIGEgbW9kZXJhdGUgcHJpb3JpdHkgbGV2ZWwuIiIsICdyZWZ1c2FsJzogTm9uZSwgJ3JvbGUnOiAnYXNzaXN0YW50JywgJ2F1ZGlvJzogTm9uZSwgJ2Z1bmN0aW9uX2NhbGwnOiBOb25lLCAndG9vbF9jYWxscyc6IE5vbmV9fV0sICdjcmVhdGVkJzogMTczNDE5MDA1MCwgJ21vZGVsJzogJ2dwdC00by0yMDI0LTA4LTA2JywgJ29iamVjdCc6ICdjaGF0LmNvbXBsZXRpb24nLCAnc2VydmljZV90aWVyJzogTm9uZSwgJ3N5c3RlbV9maW5nZXJwcmludCc6ICdmcF9hNzlkOGRhYzFmJywgJ3VzYWdlJzogeydjb21wbGV0aW9uX3Rva2Vucyc6IDI4LCAncHJvbXB0X3Rva2Vucyc6IDE2MiwgJ3RvdGFsX3Rva2Vucyc6IDE5MCwgJ2NvbXBsZXRpb25fdG9rZW5zX2RldGFpbHMnOiB7J2FjY2VwdGVkX3ByZWRpY3Rpb25fdG9rZW5zJzogMCwgJ2F1ZGlvX3Rva2Vucyc6IDAsICdyZWFzb25pbmdfdG9rZW5zJzogMCwgJ3JlamVjdGVkX3ByZWRpY3Rpb25fdG9rZW5zJzogMH0sICdwcm9tcHRfdG9rZW5zX2RldGFpbHMnOiB7J2F1ZGlvX3Rva2Vucyc6IDAsICdjYWNoZWRfdG9rZW5zJzogMH19fSIsMTY0Ni4wOTA1MzQ5Nzk0MjM5LDE0NTkuODU0MDE0NTk4NTQwMywwLjAwMDUxNSwieydpZCc6ICdjaGF0Y21wbC1BZU9MRGNDYVdGN25CVE5NOEFlYXRjalgydmNzVCcsICdjaG9pY2VzJzogW3snZmluaXNoX3JlYXNvbic6ICdzdG9wJywgJ2luZGV4JzogMCwgJ2xvZ3Byb2JzJzogTm9uZSwgJ21lc3NhZ2UnOiB7J2NvbnRlbnQnOiAiIk5vXG5cblRoZSBjdXN0b21lciBleHByZXNzZXMgYSBjb25jZXJuIGFib3V0IHRoZSB2ZWhpY2xlJ3MgY2xlYW5saW5lc3MgYnV0IGRvZXMgbm90IGV4cGxpY2l0bHkgYXNrIGZvciBhIHJlZnVuZCBpbiB0aGUgdGlja2V0LiIiLCAncmVmdXNhbCc6IE5vbmUsICdyb2xlJzogJ2Fzc2lzdGFudCcsICdhdWRpbyc6IE5vbmUsICdmdW5jdGlvbl9jYWxsJzogTm9uZSwgJ3Rvb2xfY2FsbHMnOiBOb25lfX1dLCAnY3JlYXRlZCc6IDE3MzQxOTAwNTEsICdtb2RlbCc6ICdncHQtNG8tMjAyNC0wOC0wNicsICdvYmplY3QnOiAnY2hhdC5jb21wbGV0aW9uJywgJ3NlcnZpY2VfdGllcic6IE5vbmUsICdzeXN0ZW1fZmluZ2VycHJpbnQnOiAnZnBfYTc5ZDhkYWMxZicsICd1c2FnZSc6IHsnY29tcGxldGlvbl90b2tlbnMnOiAyNCwgJ3Byb21wdF90b2tlbnMnOiAxMTYsICd0b3RhbF90b2tlbnMnOiAxNDAsICdjb21wbGV0aW9uX3Rva2Vuc19kZXRhaWxzJzogeydhY2NlcHRlZF9wcmVkaWN0aW9uX3Rva2Vucyc6IDAsICdhdWRpb190b2tlbnMnOiAwLCAncmVhc29uaW5nX3Rva2Vucyc6IDAsICdyZWplY3RlZF9wcmVkaWN0aW9uX3Rva2Vucyc6IDB9LCAncHJvbXB0X3Rva2Vuc19kZXRhaWxzJzogeydhdWRpb190b2tlbnMnOiAwLCAnY2FjaGVkX3Rva2Vucyc6IDB9fX0iLDAsRG9lcyB0aGUgY3VzdG9tZXIgYXNrIGZvciBhIHJlZnVuZCBpbiB0aGlzIHRpY2tldD8gVGlja2V0OiB7eyB0aWNrZXQgfX0sIklmIHRoZSBwcmltYXJ5IGlzc3VlIGluIHRoaXMgdGlja2V0IGlzIHNhZmV0eSwgd2FzIHRoZXJlIGFuIGFjY2lkZW50IHdoZXJlIHNvbWVvbmUgd2FzIGh1cnQ/IFRpY2tldDoge3sgdGlja2V0IH19IixXaGF0IGlzIHRoZSBwcmltYXJ5IGlzc3VlIGluIHRoaXMgdGlja2V0PyBUaWNrZXQ6IHt7IHRpY2tldCB9fSxDaGVjayBhbGwgb2YgdGhlIGlzc3VlcyBtZW50aW9uZWQgaW4gdGhpcyB0aWNrZXQ6IHt7IHRpY2tldCB9fSwiT24gYSBzY2FsZSBmcm9tIDAgdG8gNSwgd2hhdCBpcyB0aGUgcHJpb3JpdHkgbGV2ZWwgb2YgdGhpcyB0aWNrZXQ/IFRpY2tldDoge3sgdGlja2V0IH19IixXaGF0IGlzIHRoZSBzZW50aW1lbnQgb2YgdGhpcyB0aWNrZXQ/IFRpY2tldDoge3sgdGlja2V0IH19LCJbJ3NhZmV0eScsICdjbGVhbmxpbmVzcycsICdkcml2ZXIgcGVyZm9ybWFuY2UnLCAnR1BTL3JvdXRlJywgJ2xvc3QgaXRlbScsICdvdGhlciddIiwiWydWZXJ5IHBvc2l0aXZlJywgJ1NvbWV3aGF0IHBvc2l0aXZlJywgJ05ldXRyYWwnLCAnU29tZXdoYXQgbmVnYXRpdmUnLCAnVmVyeSBuZWdhdGl2ZSddIiwsIlsnTm8nLCAnWWVzJ10iLCJbJ1llcycsICdObycsICdOb3QgYXBwbGljYWJsZSddIiwiWzAsIDEsIDIsIDMsIDQsIDVdIixsaW5lYXJfc2NhbGUsbXVsdGlwbGVfY2hvaWNlLG11bHRpcGxlX2Nob2ljZSx5ZXNfbm8sZnJlZV90ZXh0LGNoZWNrYm94LCxUaGUgY3VzdG9tZXIgZXhwcmVzc2VzIGEgY29uY2VybiBhYm91dCB0aGUgdmVoaWNsZSdzIGNsZWFubGluZXNzIGJ1dCBkb2VzIG5vdCBleHBsaWNpdGx5IGFzayBmb3IgYSByZWZ1bmQgaW4gdGhlIHRpY2tldC4sIldoaWxlIGNsZWFubGluZXNzIGlzIGltcG9ydGFudCBmb3IgY3VzdG9tZXIgc2F0aXNmYWN0aW9uLCBpdCB0eXBpY2FsbHkgZG9lc24ndCBwb3NlIGFuIGltbWVkaWF0ZSBvcGVyYXRpb25hbCBvciBzYWZldHkgaXNzdWUsIHRodXMgYXNzaWduaW5nIGEgbW9kZXJhdGUgcHJpb3JpdHkgbGV2ZWwuIiwiVGhlIGlzc3VlIG1lbnRpb25lZCBpbiB0aGUgdGlja2V0IGlzIHNwZWNpZmljYWxseSBhYm91dCBjbGVhbmxpbmVzcywgd2hpY2ggY29ycmVzcG9uZHMgdG8gb3B0aW9uIDEuIiwiVGhlIGN1c3RvbWVyIGV4cHJlc3NlcyBkaXNzYXRpc2ZhY3Rpb24gd2l0aCB0aGUgY2xlYW5saW5lc3Mgb2YgdGhlIHZlaGljbGUsIGluZGljYXRpbmcgYSBjb25jZXJuIGFuZCBleHBlY3RhdGlvbiBub3QgYmVpbmcgbWV0LCB3aGljaCBzdWdnZXN0cyBhIHNvbWV3aGF0IG5lZ2F0aXZlIHNlbnRpbWVudC4iLCJUaGUgdGlja2V0IG1lbnRpb25zIGNvbmNlcm5zIGFib3V0IGNsZWFubGluZXNzLCBub3Qgc2FmZXR5IG9yIGFueSBhY2NpZGVudHMgaW52b2x2aW5nIGluanVyeS4iLCJTb21ld2hhdCBuZWdhdGl2ZSAgClRoZSBjdXN0b21lciBleHByZXNzZXMgZGlzc2F0aXNmYWN0aW9uIHdpdGggdGhlIGNsZWFubGluZXNzIG9mIHRoZSB2ZWhpY2xlLCBpbmRpY2F0aW5nIGEgY29uY2VybiBhbmQgZXhwZWN0YXRpb24gbm90IGJlaW5nIG1ldCwgd2hpY2ggc3VnZ2VzdHMgYSBzb21ld2hhdCBuZWdhdGl2ZSBzZW50aW1lbnQuIiwiWzFdCgpUaGUgaXNzdWUgbWVudGlvbmVkIGluIHRoZSB0aWNrZXQgaXMgc3BlY2lmaWNhbGx5IGFib3V0IGNsZWFubGluZXNzLCB3aGljaCBjb3JyZXNwb25kcyB0byBvcHRpb24gMS4iLCJObwoKVGhlIGN1c3RvbWVyIGV4cHJlc3NlcyBhIGNvbmNlcm4gYWJvdXQgdGhlIHZlaGljbGUncyBjbGVhbmxpbmVzcyBidXQgZG9lcyBub3QgZXhwbGljaXRseSBhc2sgZm9yIGEgcmVmdW5kIGluIHRoZSB0aWNrZXQuIixUaGUgcHJpbWFyeSBpc3N1ZSBpbiB0aGlzIHRpY2tldCBpcyB0aGUgY3VzdG9tZXIncyBjb25jZXJuIGFib3V0IHRoZSBjbGVhbmxpbmVzcyBvZiB0aGUgdmVoaWNsZS4gVGhleSBmZWVsIHRoYXQgdGhlIHZlaGljbGUgd2FzIG5vdCBjbGVhbmVkIHRvIHRoZSBzdGFuZGFyZCB0aGV5IGV4cGVjdC4gQWRkcmVzc2luZyB0aGlzIGlzc3VlIHdvdWxkIGludm9sdmUgZW5zdXJpbmcgdGhlIHZlaGljbGUgaXMgdGhvcm91Z2hseSBjbGVhbmVkIGFuZCBwb3NzaWJseSBvZmZlcmluZyBhbiBhcG9sb2d5IG9yIGNvbXBlbnNhdGlvbiB0byB0aGUgY3VzdG9tZXIgZm9yIHRoZWlyIGluY29udmVuaWVuY2UuLCJObyAgClRoZSB0aWNrZXQgbWVudGlvbnMgY29uY2VybnMgYWJvdXQgY2xlYW5saW5lc3MsIG5vdCBzYWZldHkgb3IgYW55IGFjY2lkZW50cyBpbnZvbHZpbmcgaW5qdXJ5LiIsIjIgIApXaGlsZSBjbGVhbmxpbmVzcyBpcyBpbXBvcnRhbnQgZm9yIGN1c3RvbWVyIHNhdGlzZmFjdGlvbiwgaXQgdHlwaWNhbGx5IGRvZXNuJ3QgcG9zZSBhbiBpbW1lZGlhdGUgb3BlcmF0aW9uYWwgb3Igc2FmZXR5IGlzc3VlLCB0aHVzIGFzc2lnbmluZyBhIG1vZGVyYXRlIHByaW9yaXR5IGxldmVsLiINCk5vdCBhcHBsaWNhYmxlLFNvbWV3aGF0IG5lZ2F0aXZlLE5vLFRoZSBwcmltYXJ5IGlzc3VlIGluIHRoaXMgdGlja2V0IGlzIHRoYXQgdGhlIGFwcCBjcmFzaGVzIHdoZW5ldmVyIHRoZSB1c2VyIGF0dGVtcHRzIHRvIGJvb2sgYSByaWRlLiBUaGUgdXNlciBpcyByZXF1ZXN0aW5nIGEgZml4IGZvciB0aGlzIHByb2JsZW0uLDUsWydvdGhlciddLFRoZSBhcHAga2VlcHMgY3Jhc2hpbmcgZXZlcnkgdGltZSBJIHRyeSB0byBib29rIGEgcmlkZS4gUGxlYXNlIGZpeCB0aGlzIGlzc3VlLixZb3UgYXJlIGFuIGV4cGVydCBjdXN0b21lciBzZXJ2aWNlIGFnZW50LixBZ2VudF83LDE1LFlvdSBhcmUgYW5zd2VyaW5nIHF1ZXN0aW9ucyBhcyBpZiB5b3Ugd2VyZSBhIGh1bWFuLiBEbyBub3QgYnJlYWsgY2hhcmFjdGVyLiwwLDEsMCxncHQtNG8sMC41LEZhbHNlLDEwMDAsMyxXaGF0IGlzIHRoZSBwcmltYXJ5IGlzc3VlIGluIHRoaXMgdGlja2V0PyBUaWNrZXQ6IFRoZSBhcHAga2VlcHMgY3Jhc2hpbmcgZXZlcnkgdGltZSBJIHRyeSB0byBib29rIGEgcmlkZS4gUGxlYXNlIGZpeCB0aGlzIGlzc3VlLiwiWW91IGFyZSBhbnN3ZXJpbmcgcXVlc3Rpb25zIGFzIGlmIHlvdSB3ZXJlIGEgaHVtYW4uIERvIG5vdCBicmVhayBjaGFyYWN0ZXIuIFlvdXIgdHJhaXRzOiB7J3BlcnNvbmEnOiAnWW91IGFyZSBhbiBleHBlcnQgY3VzdG9tZXIgc2VydmljZSBhZ2VudC4nLCAneWVhcnNfZXhwZXJpZW5jZSc6IDE1fSIsIllvdSBhcmUgYW5zd2VyaW5nIHF1ZXN0aW9ucyBhcyBpZiB5b3Ugd2VyZSBhIGh1bWFuLiBEbyBub3QgYnJlYWsgY2hhcmFjdGVyLiBZb3VyIHRyYWl0czogeydwZXJzb25hJzogJ1lvdSBhcmUgYW4gZXhwZXJ0IGN1c3RvbWVyIHNlcnZpY2UgYWdlbnQuJywgJ3llYXJzX2V4cGVyaWVuY2UnOiAxNX0iLCJDaGVjayBhbGwgb2YgdGhlIGlzc3VlcyBtZW50aW9uZWQgaW4gdGhpcyB0aWNrZXQ6IFRoZSBhcHAga2VlcHMgY3Jhc2hpbmcgZXZlcnkgdGltZSBJIHRyeSB0byBib29rIGEgcmlkZS4gUGxlYXNlIGZpeCB0aGlzIGlzc3VlLgoKICAgIAowOiBzYWZldHkKICAgIAoxOiBjbGVhbmxpbmVzcwogICAgCjI6IGRyaXZlciBwZXJmb3JtYW5jZQogICAgCjM6IEdQUy9yb3V0ZQogICAgCjQ6IGxvc3QgaXRlbQogICAgCjU6IG90aGVyCiAgICAKCgoKCgoKUGxlYXNlIHJlc3BvbmQgb25seSB3aXRoIGEgY29tbWEtc2VwYXJhdGVkIGxpc3Qgb2YgdGhlIGNvZGUgb2YgdGhlIG9wdGlvbnMgdGhhdCBhcHBseSwgd2l0aCBzcXVhcmUgYnJhY2tldHMuIEUuZy4sIFswLCAxLCAzXQoKCkFmdGVyIHRoZSBhbnN3ZXIsIHlvdSBjYW4gcHV0IGEgY29tbWVudCBleHBsYWluaW5nIHlvdXIgY2hvaWNlIG9uIHRoZSBuZXh0IGxpbmUuIiwiT24gYSBzY2FsZSBmcm9tIDAgdG8gNSwgd2hhdCBpcyB0aGUgcHJpb3JpdHkgbGV2ZWwgb2YgdGhpcyB0aWNrZXQ/IFRpY2tldDogVGhlIGFwcCBrZWVwcyBjcmFzaGluZyBldmVyeSB0aW1lIEkgdHJ5IHRvIGJvb2sgYSByaWRlLiBQbGVhc2UgZml4IHRoaXMgaXNzdWUuCgowIDogTG93ZXN0CgoxIDogCgoyIDogCgozIDogCgo0IDogCgo1IDogSGlnaGVzdAoKT25seSAxIG9wdGlvbiBtYXkgYmUgc2VsZWN0ZWQuCgpSZXNwb25kIG9ubHkgd2l0aCB0aGUgY29kZSBjb3JyZXNwb25kaW5nIHRvIG9uZSBvZiB0aGUgb3B0aW9ucy4gRS5nLiwgIiIxIiIgb3IgIiI1IiIgYnkgaXRzZWxmLgoKQWZ0ZXIgdGhlIGFuc3dlciwgeW91IGNhbiBwdXQgYSBjb21tZW50IGV4cGxhaW5pbmcgd2h5IHlvdSBjaG9zZSB0aGF0IG9wdGlvbiBvbiB0aGUgbmV4dCBsaW5lLiIsIllvdSBhcmUgYW5zd2VyaW5nIHF1ZXN0aW9ucyBhcyBpZiB5b3Ugd2VyZSBhIGh1bWFuLiBEbyBub3QgYnJlYWsgY2hhcmFjdGVyLiBZb3VyIHRyYWl0czogeydwZXJzb25hJzogJ1lvdSBhcmUgYW4gZXhwZXJ0IGN1c3RvbWVyIHNlcnZpY2UgYWdlbnQuJywgJ3llYXJzX2V4cGVyaWVuY2UnOiAxNX0iLCJZb3UgYXJlIGFuc3dlcmluZyBxdWVzdGlvbnMgYXMgaWYgeW91IHdlcmUgYSBodW1hbi4gRG8gbm90IGJyZWFrIGNoYXJhY3Rlci4gWW91ciB0cmFpdHM6IHsncGVyc29uYSc6ICdZb3UgYXJlIGFuIGV4cGVydCBjdXN0b21lciBzZXJ2aWNlIGFnZW50LicsICd5ZWFyc19leHBlcmllbmNlJzogMTV9IiwiWW91IGFyZSBhbnN3ZXJpbmcgcXVlc3Rpb25zIGFzIGlmIHlvdSB3ZXJlIGEgaHVtYW4uIERvIG5vdCBicmVhayBjaGFyYWN0ZXIuIFlvdXIgdHJhaXRzOiB7J3BlcnNvbmEnOiAnWW91IGFyZSBhbiBleHBlcnQgY3VzdG9tZXIgc2VydmljZSBhZ2VudC4nLCAneWVhcnNfZXhwZXJpZW5jZSc6IDE1fSIsIgpXaGF0IGlzIHRoZSBzZW50aW1lbnQgb2YgdGhpcyB0aWNrZXQ/IFRpY2tldDogVGhlIGFwcCBrZWVwcyBjcmFzaGluZyBldmVyeSB0aW1lIEkgdHJ5IHRvIGJvb2sgYSByaWRlLiBQbGVhc2UgZml4IHRoaXMgaXNzdWUuCgogICAgClZlcnkgcG9zaXRpdmUKICAgIApTb21ld2hhdCBwb3NpdGl2ZQogICAgCk5ldXRyYWwKICAgIApTb21ld2hhdCBuZWdhdGl2ZQogICAgClZlcnkgbmVnYXRpdmUKICAgIAoKT25seSAxIG9wdGlvbiBtYXkgYmUgc2VsZWN0ZWQuCgpSZXNwb25kIG9ubHkgd2l0aCBhIHN0cmluZyBjb3JyZXNwb25kaW5nIHRvIG9uZSBvZiB0aGUgb3B0aW9ucy4KCgpBZnRlciB0aGUgYW5zd2VyLCB5b3UgY2FuIHB1dCBhIGNvbW1lbnQgZXhwbGFpbmluZyB3aHkgeW91IGNob3NlIHRoYXQgb3B0aW9uIG9uIHRoZSBuZXh0IGxpbmUuIiwiCkRvZXMgdGhlIGN1c3RvbWVyIGFzayBmb3IgYSByZWZ1bmQgaW4gdGhpcyB0aWNrZXQ/IFRpY2tldDogVGhlIGFwcCBrZWVwcyBjcmFzaGluZyBldmVyeSB0aW1lIEkgdHJ5IHRvIGJvb2sgYSByaWRlLiBQbGVhc2UgZml4IHRoaXMgaXNzdWUuCgogICAgCk5vCiAgICAKWWVzCiAgICAKCk9ubHkgMSBvcHRpb24gbWF5IGJlIHNlbGVjdGVkLgpQbGVhc2UgcmVzcG9uZCB3aXRoIGp1c3QgeW91ciBhbnN3ZXIuIAoKCkFmdGVyIHRoZSBhbnN3ZXIsIHlvdSBjYW4gcHV0IGEgY29tbWVudCBleHBsYWluaW5nIHlvdXIgcmVzcG9uc2UuIiwiWW91IGFyZSBhbnN3ZXJpbmcgcXVlc3Rpb25zIGFzIGlmIHlvdSB3ZXJlIGEgaHVtYW4uIERvIG5vdCBicmVhayBjaGFyYWN0ZXIuIFlvdXIgdHJhaXRzOiB7J3BlcnNvbmEnOiAnWW91IGFyZSBhbiBleHBlcnQgY3VzdG9tZXIgc2VydmljZSBhZ2VudC4nLCAneWVhcnNfZXhwZXJpZW5jZSc6IDE1fSIsIgpJZiB0aGUgcHJpbWFyeSBpc3N1ZSBpbiB0aGlzIHRpY2tldCBpcyBzYWZldHksIHdhcyB0aGVyZSBhbiBhY2NpZGVudCB3aGVyZSBzb21lb25lIHdhcyBodXJ0PyBUaWNrZXQ6IFRoZSBhcHAga2VlcHMgY3Jhc2hpbmcgZXZlcnkgdGltZSBJIHRyeSB0byBib29rIGEgcmlkZS4gUGxlYXNlIGZpeCB0aGlzIGlzc3VlLgoKICAgIApZZXMKICAgIApObwogICAgCk5vdCBhcHBsaWNhYmxlCiAgICAKCk9ubHkgMSBvcHRpb24gbWF5IGJlIHNlbGVjdGVkLgoKUmVzcG9uZCBvbmx5IHdpdGggYSBzdHJpbmcgY29ycmVzcG9uZGluZyB0byBvbmUgb2YgdGhlIG9wdGlvbnMuCgoKQWZ0ZXIgdGhlIGFuc3dlciwgeW91IGNhbiBwdXQgYSBjb21tZW50IGV4cGxhaW5pbmcgd2h5IHlvdSBjaG9zZSB0aGF0IG9wdGlvbiBvbiB0aGUgbmV4dCBsaW5lLiIsMC4wMDA3MywieydpZCc6ICdjaGF0Y21wbC1BZU9MQ0xUR0NaYnFKVHYyajJZZDdXSW40cXlQdCcsICdjaG9pY2VzJzogW3snZmluaXNoX3JlYXNvbic6ICdzdG9wJywgJ2luZGV4JzogMCwgJ2xvZ3Byb2JzJzogTm9uZSwgJ21lc3NhZ2UnOiB7J2NvbnRlbnQnOiAnTm90IGFwcGxpY2FibGVcblxuVGhlIHRpY2tldCBkb2VzIG5vdCBtZW50aW9uIGFueSBhY2NpZGVudCBvciBpbmp1cnksIG9ubHkgYW4gYXBwIGZ1bmN0aW9uYWxpdHkgaXNzdWUuJywgJ3JlZnVzYWwnOiBOb25lLCAncm9sZSc6ICdhc3Npc3RhbnQnLCAnYXVkaW8nOiBOb25lLCAnZnVuY3Rpb25fY2FsbCc6IE5vbmUsICd0b29sX2NhbGxzJzogTm9uZX19XSwgJ2NyZWF0ZWQnOiAxNzM0MTkwMDUwLCAnbW9kZWwnOiAnZ3B0LTRvLTIwMjQtMDgtMDYnLCAnb2JqZWN0JzogJ2NoYXQuY29tcGxldGlvbicsICdzZXJ2aWNlX3RpZXInOiBOb25lLCAnc3lzdGVtX2ZpbmdlcnByaW50JzogJ2ZwXzlmYWJhOWYwMzgnLCAndXNhZ2UnOiB7J2NvbXBsZXRpb25fdG9rZW5zJzogMTksICdwcm9tcHRfdG9rZW5zJzogMTM4LCAndG90YWxfdG9rZW5zJzogMTU3LCAnY29tcGxldGlvbl90b2tlbnNfZGV0YWlscyc6IHsnYWNjZXB0ZWRfcHJlZGljdGlvbl90b2tlbnMnOiAwLCAnYXVkaW9fdG9rZW5zJzogMCwgJ3JlYXNvbmluZ190b2tlbnMnOiAwLCAncmVqZWN0ZWRfcHJlZGljdGlvbl90b2tlbnMnOiAwfSwgJ3Byb21wdF90b2tlbnNfZGV0YWlscyc6IHsnYXVkaW9fdG9rZW5zJzogMCwgJ2NhY2hlZF90b2tlbnMnOiAwfX19IiwieydpZCc6ICdjaGF0Y21wbC1BZU9MQzhoVk1xaUVDT3lZY0RRdzU2T084V2lGZycsICdjaG9pY2VzJzogW3snZmluaXNoX3JlYXNvbic6ICdzdG9wJywgJ2luZGV4JzogMCwgJ2xvZ3Byb2JzJzogTm9uZSwgJ21lc3NhZ2UnOiB7J2NvbnRlbnQnOiAnU29tZXdoYXQgbmVnYXRpdmVcblxuVGhlIHNlbnRpbWVudCBpcyBzb21ld2hhdCBuZWdhdGl2ZSBiZWNhdXNlIHRoZSBjdXN0b21lciBpcyBleHBlcmllbmNpbmcgZnJ1c3RyYXRpb24gd2l0aCB0aGUgYXBwIGNyYXNoaW5nLCBidXQgdGhleSBhcmUgc3RpbGwgcG9saXRlbHkgYXNraW5nIGZvciB0aGUgaXNzdWUgdG8gYmUgZml4ZWQgcmF0aGVyIHRoYW4gZXhwcmVzc2luZyBhbmdlciBvciBkaXNzYXRpc2ZhY3Rpb24uJywgJ3JlZnVzYWwnOiBOb25lLCAncm9sZSc6ICdhc3Npc3RhbnQnLCAnYXVkaW8nOiBOb25lLCAnZnVuY3Rpb25fY2FsbCc6IE5vbmUsICd0b29sX2NhbGxzJzogTm9uZX19XSwgJ2NyZWF0ZWQnOiAxNzM0MTkwMDUwLCAnbW9kZWwnOiAnZ3B0LTRvLTIwMjQtMDgtMDYnLCAnb2JqZWN0JzogJ2NoYXQuY29tcGxldGlvbicsICdzZXJ2aWNlX3RpZXInOiBOb25lLCAnc3lzdGVtX2ZpbmdlcnByaW50JzogJ2ZwX2E3OWQ4ZGFjMWYnLCAndXNhZ2UnOiB7J2NvbXBsZXRpb25fdG9rZW5zJzogMzksICdwcm9tcHRfdG9rZW5zJzogMTM2LCAndG90YWxfdG9rZW5zJzogMTc1LCAnY29tcGxldGlvbl90b2tlbnNfZGV0YWlscyc6IHsnYWNjZXB0ZWRfcHJlZGljdGlvbl90b2tlbnMnOiAwLCAnYXVkaW9fdG9rZW5zJzogMCwgJ3JlYXNvbmluZ190b2tlbnMnOiAwLCAncmVqZWN0ZWRfcHJlZGljdGlvbl90b2tlbnMnOiAwfSwgJ3Byb21wdF90b2tlbnNfZGV0YWlscyc6IHsnYXVkaW9fdG9rZW5zJzogMCwgJ2NhY2hlZF90b2tlbnMnOiAwfX19IiwxMzY5Ljg2MzAxMzY5ODYzMDMsMjE3My45MTMwNDM0NzgyNjEsInsnaWQnOiAnY2hhdGNtcGwtQWVPTENldmc1Nkk4blBpdlFxd01VbnlzYXR5ekQnLCAnY2hvaWNlcyc6IFt7J2ZpbmlzaF9yZWFzb24nOiAnc3RvcCcsICdpbmRleCc6IDAsICdsb2dwcm9icyc6IE5vbmUsICdtZXNzYWdlJzogeydjb250ZW50JzogJ1s1XSAgXG5UaGUgaXNzdWUgbWVudGlvbmVkIGluIHRoZSB0aWNrZXQgaXMgcmVsYXRlZCB0byB0aGUgYXBwIGNyYXNoaW5nLCB3aGljaCBmaXRzIHVuZGVyICIib3RoZXIiIiBhcyBpdCBkb2VzblwndCByZWxhdGUgdG8gdGhlIHNwZWNpZmljIGNhdGVnb3JpZXMgbGlrZSBzYWZldHksIGNsZWFubGluZXNzLCBkcml2ZXIgcGVyZm9ybWFuY2UsIEdQUy9yb3V0ZSwgb3IgbG9zdCBpdGVtLicsICdyZWZ1c2FsJzogTm9uZSwgJ3JvbGUnOiAnYXNzaXN0YW50JywgJ2F1ZGlvJzogTm9uZSwgJ2Z1bmN0aW9uX2NhbGwnOiBOb25lLCAndG9vbF9jYWxscyc6IE5vbmV9fV0sICdjcmVhdGVkJzogMTczNDE5MDA1MCwgJ21vZGVsJzogJ2dwdC00by0yMDI0LTA4LTA2JywgJ29iamVjdCc6ICdjaGF0LmNvbXBsZXRpb24nLCAnc2VydmljZV90aWVyJzogTm9uZSwgJ3N5c3RlbV9maW5nZXJwcmludCc6ICdmcF85ZmFiYTlmMDM4JywgJ3VzYWdlJzogeydjb21wbGV0aW9uX3Rva2Vucyc6IDQ3LCAncHJvbXB0X3Rva2Vucyc6IDE1OSwgJ3RvdGFsX3Rva2Vucyc6IDIwNiwgJ2NvbXBsZXRpb25fdG9rZW5zX2RldGFpbHMnOiB7J2FjY2VwdGVkX3ByZWRpY3Rpb25fdG9rZW5zJzogMCwgJ2F1ZGlvX3Rva2Vucyc6IDAsICdyZWFzb25pbmdfdG9rZW5zJzogMCwgJ3JlamVjdGVkX3ByZWRpY3Rpb25fdG9rZW5zJzogMH0sICdwcm9tcHRfdG9rZW5zX2RldGFpbHMnOiB7J2F1ZGlvX3Rva2Vucyc6IDAsICdjYWNoZWRfdG9rZW5zJzogMH19fSIsMC4wMDA3MzUsMTg2OS4xNTg4Nzg1MDQ2NzI5LDAuMDAwNDYsMC4wMDA4Njc1LCJ7J2lkJzogJ2NoYXRjbXBsLUFlT0xEZ0VFd0NPWG03VFJVQWt1bE9ESnBISkt6JywgJ2Nob2ljZXMnOiBbeydmaW5pc2hfcmVhc29uJzogJ3N0b3AnLCAnaW5kZXgnOiAwLCAnbG9ncHJvYnMnOiBOb25lLCAnbWVzc2FnZSc6IHsnY29udGVudCc6ICdUaGUgcHJpbWFyeSBpc3N1ZSBpbiB0aGlzIHRpY2tldCBpcyB0aGF0IHRoZSBhcHAgY3Jhc2hlcyB3aGVuZXZlciB0aGUgdXNlciBhdHRlbXB0cyB0byBib29rIGEgcmlkZS4gVGhlIHVzZXIgaXMgcmVxdWVzdGluZyBhIGZpeCBmb3IgdGhpcyBwcm9ibGVtLicsICdyZWZ1c2FsJzogTm9uZSwgJ3JvbGUnOiAnYXNzaXN0YW50JywgJ2F1ZGlvJzogTm9uZSwgJ2Z1bmN0aW9uX2NhbGwnOiBOb25lLCAndG9vbF9jYWxscyc6IE5vbmV9fV0sICdjcmVhdGVkJzogMTczNDE5MDA1MSwgJ21vZGVsJzogJ2dwdC00by0yMDI0LTA4LTA2JywgJ29iamVjdCc6ICdjaGF0LmNvbXBsZXRpb24nLCAnc2VydmljZV90aWVyJzogTm9uZSwgJ3N5c3RlbV9maW5nZXJwcmludCc6ICdmcF9hMzRiMjcyN2Q2JywgJ3VzYWdlJzogeydjb21wbGV0aW9uX3Rva2Vucyc6IDMwLCAncHJvbXB0X3Rva2Vucyc6IDc5LCAndG90YWxfdG9rZW5zJzogMTA5LCAnY29tcGxldGlvbl90b2tlbnNfZGV0YWlscyc6IHsnYWNjZXB0ZWRfcHJlZGljdGlvbl90b2tlbnMnOiAwLCAnYXVkaW9fdG9rZW5zJzogMCwgJ3JlYXNvbmluZ190b2tlbnMnOiAwLCAncmVqZWN0ZWRfcHJlZGljdGlvbl90b2tlbnMnOiAwfSwgJ3Byb21wdF90b2tlbnNfZGV0YWlscyc6IHsnYXVkaW9fdG9rZW5zJzogMCwgJ2NhY2hlZF90b2tlbnMnOiAwfX19IiwwLjAwMDQ5NzUsMjAxMC4wNTAyNTEyNTYyODE0LCJ7J2lkJzogJ2NoYXRjbXBsLUFlT0xDTmVQSjdDWEFXSVdyVUpJVWZ0M3Y0RUg1JywgJ2Nob2ljZXMnOiBbeydmaW5pc2hfcmVhc29uJzogJ3N0b3AnLCAnaW5kZXgnOiAwLCAnbG9ncHJvYnMnOiBOb25lLCAnbWVzc2FnZSc6IHsnY29udGVudCc6ICc1ICBcblRoaXMgaXNzdWUgZGlyZWN0bHkgYWZmZWN0cyB0aGUgY29yZSBmdW5jdGlvbmFsaXR5IG9mIHRoZSBhcHAsIHByZXZlbnRpbmcgdXNlcnMgZnJvbSBib29raW5nIHJpZGVzLCB3aGljaCBpcyBsaWtlbHkgdG8gcmVzdWx0IGluIHNpZ25pZmljYW50IHVzZXIgZGlzc2F0aXNmYWN0aW9uIGFuZCBwb3RlbnRpYWwgcmV2ZW51ZSBsb3NzLicsICdyZWZ1c2FsJzogTm9uZSwgJ3JvbGUnOiAnYXNzaXN0YW50JywgJ2F1ZGlvJzogTm9uZSwgJ2Z1bmN0aW9uX2NhbGwnOiBOb25lLCAndG9vbF9jYWxscyc6IE5vbmV9fV0sICdjcmVhdGVkJzogMTczNDE5MDA1MCwgJ21vZGVsJzogJ2dwdC00by0yMDI0LTA4LTA2JywgJ29iamVjdCc6ICdjaGF0LmNvbXBsZXRpb24nLCAnc2VydmljZV90aWVyJzogTm9uZSwgJ3N5c3RlbV9maW5nZXJwcmludCc6ICdmcF9mNzg1ZWI1ZjQ3JywgJ3VzYWdlJzogeydjb21wbGV0aW9uX3Rva2Vucyc6IDMzLCAncHJvbXB0X3Rva2Vucyc6IDE2MiwgJ3RvdGFsX3Rva2Vucyc6IDE5NSwgJ2NvbXBsZXRpb25fdG9rZW5zX2RldGFpbHMnOiB7J2FjY2VwdGVkX3ByZWRpY3Rpb25fdG9rZW5zJzogMCwgJ2F1ZGlvX3Rva2Vucyc6IDAsICdyZWFzb25pbmdfdG9rZW5zJzogMCwgJ3JlamVjdGVkX3ByZWRpY3Rpb25fdG9rZW5zJzogMH0sICdwcm9tcHRfdG9rZW5zX2RldGFpbHMnOiB7J2F1ZGlvX3Rva2Vucyc6IDAsICdjYWNoZWRfdG9rZW5zJzogMH19fSIsMTE1Mi43Mzc3NTIxNjEzODMyLDEzNjAuNTQ0MjE3Njg3MDc1LDAuMDAwNTM1LCJ7J2lkJzogJ2NoYXRjbXBsLUFlT0xDak5LMWZOOXpFdXNpV3Z1Y3JmRVg0dkVFJywgJ2Nob2ljZXMnOiBbeydmaW5pc2hfcmVhc29uJzogJ3N0b3AnLCAnaW5kZXgnOiAwLCAnbG9ncHJvYnMnOiBOb25lLCAnbWVzc2FnZSc6IHsnY29udGVudCc6ICdOb1xuXG5UaGUgY3VzdG9tZXIgaXMgcmVxdWVzdGluZyBhIGZpeCBmb3IgdGhlIGFwcCBpc3N1ZSwgbm90IGEgcmVmdW5kLicsICdyZWZ1c2FsJzogTm9uZSwgJ3JvbGUnOiAnYXNzaXN0YW50JywgJ2F1ZGlvJzogTm9uZSwgJ2Z1bmN0aW9uX2NhbGwnOiBOb25lLCAndG9vbF9jYWxscyc6IE5vbmV9fV0sICdjcmVhdGVkJzogMTczNDE5MDA1MCwgJ21vZGVsJzogJ2dwdC00by0yMDI0LTA4LTA2JywgJ29iamVjdCc6ICdjaGF0LmNvbXBsZXRpb24nLCAnc2VydmljZV90aWVyJzogTm9uZSwgJ3N5c3RlbV9maW5nZXJwcmludCc6ICdmcF85ZmFiYTlmMDM4JywgJ3VzYWdlJzogeydjb21wbGV0aW9uX3Rva2Vucyc6IDE3LCAncHJvbXB0X3Rva2Vucyc6IDExNiwgJ3RvdGFsX3Rva2Vucyc6IDEzMywgJ2NvbXBsZXRpb25fdG9rZW5zX2RldGFpbHMnOiB7J2FjY2VwdGVkX3ByZWRpY3Rpb25fdG9rZW5zJzogMCwgJ2F1ZGlvX3Rva2Vucyc6IDAsICdyZWFzb25pbmdfdG9rZW5zJzogMCwgJ3JlamVjdGVkX3ByZWRpY3Rpb25fdG9rZW5zJzogMH0sICdwcm9tcHRfdG9rZW5zX2RldGFpbHMnOiB7J2F1ZGlvX3Rva2Vucyc6IDAsICdjYWNoZWRfdG9rZW5zJzogMH19fSIsMCxEb2VzIHRoZSBjdXN0b21lciBhc2sgZm9yIGEgcmVmdW5kIGluIHRoaXMgdGlja2V0PyBUaWNrZXQ6IHt7IHRpY2tldCB9fSwiSWYgdGhlIHByaW1hcnkgaXNzdWUgaW4gdGhpcyB0aWNrZXQgaXMgc2FmZXR5LCB3YXMgdGhlcmUgYW4gYWNjaWRlbnQgd2hlcmUgc29tZW9uZSB3YXMgaHVydD8gVGlja2V0OiB7eyB0aWNrZXQgfX0iLFdoYXQgaXMgdGhlIHByaW1hcnkgaXNzdWUgaW4gdGhpcyB0aWNrZXQ/IFRpY2tldDoge3sgdGlja2V0IH19LENoZWNrIGFsbCBvZiB0aGUgaXNzdWVzIG1lbnRpb25lZCBpbiB0aGlzIHRpY2tldDoge3sgdGlja2V0IH19LCJPbiBhIHNjYWxlIGZyb20gMCB0byA1LCB3aGF0IGlzIHRoZSBwcmlvcml0eSBsZXZlbCBvZiB0aGlzIHRpY2tldD8gVGlja2V0OiB7eyB0aWNrZXQgfX0iLFdoYXQgaXMgdGhlIHNlbnRpbWVudCBvZiB0aGlzIHRpY2tldD8gVGlja2V0OiB7eyB0aWNrZXQgfX0sIlsnc2FmZXR5JywgJ2NsZWFubGluZXNzJywgJ2RyaXZlciBwZXJmb3JtYW5jZScsICdHUFMvcm91dGUnLCAnbG9zdCBpdGVtJywgJ290aGVyJ10iLCJbJ1ZlcnkgcG9zaXRpdmUnLCAnU29tZXdoYXQgcG9zaXRpdmUnLCAnTmV1dHJhbCcsICdTb21ld2hhdCBuZWdhdGl2ZScsICdWZXJ5IG5lZ2F0aXZlJ10iLCwiWydObycsICdZZXMnXSIsIlsnWWVzJywgJ05vJywgJ05vdCBhcHBsaWNhYmxlJ10iLCJbMCwgMSwgMiwgMywgNCwgNV0iLGxpbmVhcl9zY2FsZSxtdWx0aXBsZV9jaG9pY2UsbXVsdGlwbGVfY2hvaWNlLHllc19ubyxmcmVlX3RleHQsY2hlY2tib3gsLCJUaGUgY3VzdG9tZXIgaXMgcmVxdWVzdGluZyBhIGZpeCBmb3IgdGhlIGFwcCBpc3N1ZSwgbm90IGEgcmVmdW5kLiIsIlRoaXMgaXNzdWUgZGlyZWN0bHkgYWZmZWN0cyB0aGUgY29yZSBmdW5jdGlvbmFsaXR5IG9mIHRoZSBhcHAsIHByZXZlbnRpbmcgdXNlcnMgZnJvbSBib29raW5nIHJpZGVzLCB3aGljaCBpcyBsaWtlbHkgdG8gcmVzdWx0IGluIHNpZ25pZmljYW50IHVzZXIgZGlzc2F0aXNmYWN0aW9uIGFuZCBwb3RlbnRpYWwgcmV2ZW51ZSBsb3NzLiIsIlRoZSBpc3N1ZSBtZW50aW9uZWQgaW4gdGhlIHRpY2tldCBpcyByZWxhdGVkIHRvIHRoZSBhcHAgY3Jhc2hpbmcsIHdoaWNoIGZpdHMgdW5kZXIgIiJvdGhlciIiIGFzIGl0IGRvZXNuJ3QgcmVsYXRlIHRvIHRoZSBzcGVjaWZpYyBjYXRlZ29yaWVzIGxpa2Ugc2FmZXR5LCBjbGVhbmxpbmVzcywgZHJpdmVyIHBlcmZvcm1hbmNlLCBHUFMvcm91dGUsIG9yIGxvc3QgaXRlbS4iLCJUaGUgc2VudGltZW50IGlzIHNvbWV3aGF0IG5lZ2F0aXZlIGJlY2F1c2UgdGhlIGN1c3RvbWVyIGlzIGV4cGVyaWVuY2luZyBmcnVzdHJhdGlvbiB3aXRoIHRoZSBhcHAgY3Jhc2hpbmcsIGJ1dCB0aGV5IGFyZSBzdGlsbCBwb2xpdGVseSBhc2tpbmcgZm9yIHRoZSBpc3N1ZSB0byBiZSBmaXhlZCByYXRoZXIgdGhhbiBleHByZXNzaW5nIGFuZ2VyIG9yIGRpc3NhdGlzZmFjdGlvbi4iLCJUaGUgdGlja2V0IGRvZXMgbm90IG1lbnRpb24gYW55IGFjY2lkZW50IG9yIGluanVyeSwgb25seSBhbiBhcHAgZnVuY3Rpb25hbGl0eSBpc3N1ZS4iLCJTb21ld2hhdCBuZWdhdGl2ZQoKVGhlIHNlbnRpbWVudCBpcyBzb21ld2hhdCBuZWdhdGl2ZSBiZWNhdXNlIHRoZSBjdXN0b21lciBpcyBleHBlcmllbmNpbmcgZnJ1c3RyYXRpb24gd2l0aCB0aGUgYXBwIGNyYXNoaW5nLCBidXQgdGhleSBhcmUgc3RpbGwgcG9saXRlbHkgYXNraW5nIGZvciB0aGUgaXNzdWUgdG8gYmUgZml4ZWQgcmF0aGVyIHRoYW4gZXhwcmVzc2luZyBhbmdlciBvciBkaXNzYXRpc2ZhY3Rpb24uIiwiWzVdICAKVGhlIGlzc3VlIG1lbnRpb25lZCBpbiB0aGUgdGlja2V0IGlzIHJlbGF0ZWQgdG8gdGhlIGFwcCBjcmFzaGluZywgd2hpY2ggZml0cyB1bmRlciAiIm90aGVyIiIgYXMgaXQgZG9lc24ndCByZWxhdGUgdG8gdGhlIHNwZWNpZmljIGNhdGVnb3JpZXMgbGlrZSBzYWZldHksIGNsZWFubGluZXNzLCBkcml2ZXIgcGVyZm9ybWFuY2UsIEdQUy9yb3V0ZSwgb3IgbG9zdCBpdGVtLiIsIk5vCgpUaGUgY3VzdG9tZXIgaXMgcmVxdWVzdGluZyBhIGZpeCBmb3IgdGhlIGFwcCBpc3N1ZSwgbm90IGEgcmVmdW5kLiIsVGhlIHByaW1hcnkgaXNzdWUgaW4gdGhpcyB0aWNrZXQgaXMgdGhhdCB0aGUgYXBwIGNyYXNoZXMgd2hlbmV2ZXIgdGhlIHVzZXIgYXR0ZW1wdHMgdG8gYm9vayBhIHJpZGUuIFRoZSB1c2VyIGlzIHJlcXVlc3RpbmcgYSBmaXggZm9yIHRoaXMgcHJvYmxlbS4sIk5vdCBhcHBsaWNhYmxlCgpUaGUgdGlja2V0IGRvZXMgbm90IG1lbnRpb24gYW55IGFjY2lkZW50IG9yIGluanVyeSwgb25seSBhbiBhcHAgZnVuY3Rpb25hbGl0eSBpc3N1ZS4iLCI1ICAKVGhpcyBpc3N1ZSBkaXJlY3RseSBhZmZlY3RzIHRoZSBjb3JlIGZ1bmN0aW9uYWxpdHkgb2YgdGhlIGFwcCwgcHJldmVudGluZyB1c2VycyBmcm9tIGJvb2tpbmcgcmlkZXMsIHdoaWNoIGlzIGxpa2VseSB0byByZXN1bHQgaW4gc2lnbmlmaWNhbnQgdXNlciBkaXNzYXRpc2ZhY3Rpb24gYW5kIHBvdGVudGlhbCByZXZlbnVlIGxvc3MuIg0KTm90IGFwcGxpY2FibGUsVmVyeSBwb3NpdGl2ZSxObywiVGhlIHByaW1hcnkgaXNzdWUgaW4gdGhpcyB0aWNrZXQgaXMgbm90IGEgY29tcGxhaW50IG9yIHByb2JsZW0sIGJ1dCByYXRoZXIgcG9zaXRpdmUgZmVlZGJhY2suIFRoZSBjdXN0b21lciBpcyBleHByZXNzaW5nIHNhdGlzZmFjdGlvbiB3aXRoIHRoZWlyIGRyaXZlciwgaGlnaGxpZ2h0aW5nIHRoZSBkcml2ZXIncyBzYWZlIGRyaXZpbmcsIHBvbGl0ZW5lc3MsIGFuZCB0aGUgY2xlYW5saW5lc3Mgb2YgdGhlIGNhci4gVGhpcyBpcyBhIGNvbW1lbmRhdGlvbiByYXRoZXIgdGhhbiBhbiBpc3N1ZS4iLDAsIlsnc2FmZXR5JywgJ2NsZWFubGluZXNzJywgJ2RyaXZlciBwZXJmb3JtYW5jZSddIiwiTXkgZHJpdmVyIHdhcyBleGNlcHRpb25hbCAtIHNhZmUgZHJpdmluZywgcG9saXRlLCBhbmQgdGhlIGNhciB3YXMgc3BvdGxlc3MuIEt1ZG9zISIsWW91IGFyZSBhbiBleHBlcnQgY3VzdG9tZXIgc2VydmljZSBhZ2VudC4sQWdlbnRfOCwxNSxZb3UgYXJlIGFuc3dlcmluZyBxdWVzdGlvbnMgYXMgaWYgeW91IHdlcmUgYSBodW1hbi4gRG8gbm90IGJyZWFrIGNoYXJhY3Rlci4sMCwxLDAsZ3B0LTRvLDAuNSxGYWxzZSwxMDAwLDMsIldoYXQgaXMgdGhlIHByaW1hcnkgaXNzdWUgaW4gdGhpcyB0aWNrZXQ/IFRpY2tldDogTXkgZHJpdmVyIHdhcyBleGNlcHRpb25hbCAtIHNhZmUgZHJpdmluZywgcG9saXRlLCBhbmQgdGhlIGNhciB3YXMgc3BvdGxlc3MuIEt1ZG9zISIsIllvdSBhcmUgYW5zd2VyaW5nIHF1ZXN0aW9ucyBhcyBpZiB5b3Ugd2VyZSBhIGh1bWFuLiBEbyBub3QgYnJlYWsgY2hhcmFjdGVyLiBZb3VyIHRyYWl0czogeydwZXJzb25hJzogJ1lvdSBhcmUgYW4gZXhwZXJ0IGN1c3RvbWVyIHNlcnZpY2UgYWdlbnQuJywgJ3llYXJzX2V4cGVyaWVuY2UnOiAxNX0iLCJZb3UgYXJlIGFuc3dlcmluZyBxdWVzdGlvbnMgYXMgaWYgeW91IHdlcmUgYSBodW1hbi4gRG8gbm90IGJyZWFrIGNoYXJhY3Rlci4gWW91ciB0cmFpdHM6IHsncGVyc29uYSc6ICdZb3UgYXJlIGFuIGV4cGVydCBjdXN0b21lciBzZXJ2aWNlIGFnZW50LicsICd5ZWFyc19leHBlcmllbmNlJzogMTV9IiwiQ2hlY2sgYWxsIG9mIHRoZSBpc3N1ZXMgbWVudGlvbmVkIGluIHRoaXMgdGlja2V0OiBNeSBkcml2ZXIgd2FzIGV4Y2VwdGlvbmFsIC0gc2FmZSBkcml2aW5nLCBwb2xpdGUsIGFuZCB0aGUgY2FyIHdhcyBzcG90bGVzcy4gS3Vkb3MhCgogICAgCjA6IHNhZmV0eQogICAgCjE6IGNsZWFubGluZXNzCiAgICAKMjogZHJpdmVyIHBlcmZvcm1hbmNlCiAgICAKMzogR1BTL3JvdXRlCiAgICAKNDogbG9zdCBpdGVtCiAgICAKNTogb3RoZXIKICAgIAoKCgoKCgpQbGVhc2UgcmVzcG9uZCBvbmx5IHdpdGggYSBjb21tYS1zZXBhcmF0ZWQgbGlzdCBvZiB0aGUgY29kZSBvZiB0aGUgb3B0aW9ucyB0aGF0IGFwcGx5LCB3aXRoIHNxdWFyZSBicmFja2V0cy4gRS5nLiwgWzAsIDEsIDNdCgoKQWZ0ZXIgdGhlIGFuc3dlciwgeW91IGNhbiBwdXQgYSBjb21tZW50IGV4cGxhaW5pbmcgeW91ciBjaG9pY2Ugb24gdGhlIG5leHQgbGluZS4iLCJPbiBhIHNjYWxlIGZyb20gMCB0byA1LCB3aGF0IGlzIHRoZSBwcmlvcml0eSBsZXZlbCBvZiB0aGlzIHRpY2tldD8gVGlja2V0OiBNeSBkcml2ZXIgd2FzIGV4Y2VwdGlvbmFsIC0gc2FmZSBkcml2aW5nLCBwb2xpdGUsIGFuZCB0aGUgY2FyIHdhcyBzcG90bGVzcy4gS3Vkb3MhCgowIDogTG93ZXN0CgoxIDogCgoyIDogCgozIDogCgo0IDogCgo1IDogSGlnaGVzdAoKT25seSAxIG9wdGlvbiBtYXkgYmUgc2VsZWN0ZWQuCgpSZXNwb25kIG9ubHkgd2l0aCB0aGUgY29kZSBjb3JyZXNwb25kaW5nIHRvIG9uZSBvZiB0aGUgb3B0aW9ucy4gRS5nLiwgIiIxIiIgb3IgIiI1IiIgYnkgaXRzZWxmLgoKQWZ0ZXIgdGhlIGFuc3dlciwgeW91IGNhbiBwdXQgYSBjb21tZW50IGV4cGxhaW5pbmcgd2h5IHlvdSBjaG9zZSB0aGF0IG9wdGlvbiBvbiB0aGUgbmV4dCBsaW5lLiIsIllvdSBhcmUgYW5zd2VyaW5nIHF1ZXN0aW9ucyBhcyBpZiB5b3Ugd2VyZSBhIGh1bWFuLiBEbyBub3QgYnJlYWsgY2hhcmFjdGVyLiBZb3VyIHRyYWl0czogeydwZXJzb25hJzogJ1lvdSBhcmUgYW4gZXhwZXJ0IGN1c3RvbWVyIHNlcnZpY2UgYWdlbnQuJywgJ3llYXJzX2V4cGVyaWVuY2UnOiAxNX0iLCJZb3UgYXJlIGFuc3dlcmluZyBxdWVzdGlvbnMgYXMgaWYgeW91IHdlcmUgYSBodW1hbi4gRG8gbm90IGJyZWFrIGNoYXJhY3Rlci4gWW91ciB0cmFpdHM6IHsncGVyc29uYSc6ICdZb3UgYXJlIGFuIGV4cGVydCBjdXN0b21lciBzZXJ2aWNlIGFnZW50LicsICd5ZWFyc19leHBlcmllbmNlJzogMTV9IiwiWW91IGFyZSBhbnN3ZXJpbmcgcXVlc3Rpb25zIGFzIGlmIHlvdSB3ZXJlIGEgaHVtYW4uIERvIG5vdCBicmVhayBjaGFyYWN0ZXIuIFlvdXIgdHJhaXRzOiB7J3BlcnNvbmEnOiAnWW91IGFyZSBhbiBleHBlcnQgY3VzdG9tZXIgc2VydmljZSBhZ2VudC4nLCAneWVhcnNfZXhwZXJpZW5jZSc6IDE1fSIsIgpXaGF0IGlzIHRoZSBzZW50aW1lbnQgb2YgdGhpcyB0aWNrZXQ/IFRpY2tldDogTXkgZHJpdmVyIHdhcyBleGNlcHRpb25hbCAtIHNhZmUgZHJpdmluZywgcG9saXRlLCBhbmQgdGhlIGNhciB3YXMgc3BvdGxlc3MuIEt1ZG9zIQoKICAgIApWZXJ5IHBvc2l0aXZlCiAgICAKU29tZXdoYXQgcG9zaXRpdmUKICAgIApOZXV0cmFsCiAgICAKU29tZXdoYXQgbmVnYXRpdmUKICAgIApWZXJ5IG5lZ2F0aXZlCiAgICAKCk9ubHkgMSBvcHRpb24gbWF5IGJlIHNlbGVjdGVkLgoKUmVzcG9uZCBvbmx5IHdpdGggYSBzdHJpbmcgY29ycmVzcG9uZGluZyB0byBvbmUgb2YgdGhlIG9wdGlvbnMuCgoKQWZ0ZXIgdGhlIGFuc3dlciwgeW91IGNhbiBwdXQgYSBjb21tZW50IGV4cGxhaW5pbmcgd2h5IHlvdSBjaG9zZSB0aGF0IG9wdGlvbiBvbiB0aGUgbmV4dCBsaW5lLiIsIgpEb2VzIHRoZSBjdXN0b21lciBhc2sgZm9yIGEgcmVmdW5kIGluIHRoaXMgdGlja2V0PyBUaWNrZXQ6IE15IGRyaXZlciB3YXMgZXhjZXB0aW9uYWwgLSBzYWZlIGRyaXZpbmcsIHBvbGl0ZSwgYW5kIHRoZSBjYXIgd2FzIHNwb3RsZXNzLiBLdWRvcyEKCiAgICAKTm8KICAgIApZZXMKICAgIAoKT25seSAxIG9wdGlvbiBtYXkgYmUgc2VsZWN0ZWQuClBsZWFzZSByZXNwb25kIHdpdGgganVzdCB5b3VyIGFuc3dlci4gCgoKQWZ0ZXIgdGhlIGFuc3dlciwgeW91IGNhbiBwdXQgYSBjb21tZW50IGV4cGxhaW5pbmcgeW91ciByZXNwb25zZS4iLCJZb3UgYXJlIGFuc3dlcmluZyBxdWVzdGlvbnMgYXMgaWYgeW91IHdlcmUgYSBodW1hbi4gRG8gbm90IGJyZWFrIGNoYXJhY3Rlci4gWW91ciB0cmFpdHM6IHsncGVyc29uYSc6ICdZb3UgYXJlIGFuIGV4cGVydCBjdXN0b21lciBzZXJ2aWNlIGFnZW50LicsICd5ZWFyc19leHBlcmllbmNlJzogMTV9IiwiCklmIHRoZSBwcmltYXJ5IGlzc3VlIGluIHRoaXMgdGlja2V0IGlzIHNhZmV0eSwgd2FzIHRoZXJlIGFuIGFjY2lkZW50IHdoZXJlIHNvbWVvbmUgd2FzIGh1cnQ/IFRpY2tldDogTXkgZHJpdmVyIHdhcyBleGNlcHRpb25hbCAtIHNhZmUgZHJpdmluZywgcG9saXRlLCBhbmQgdGhlIGNhciB3YXMgc3BvdGxlc3MuIEt1ZG9zIQoKICAgIApZZXMKICAgIApObwogICAgCk5vdCBhcHBsaWNhYmxlCiAgICAKCk9ubHkgMSBvcHRpb24gbWF5IGJlIHNlbGVjdGVkLgoKUmVzcG9uZCBvbmx5IHdpdGggYSBzdHJpbmcgY29ycmVzcG9uZGluZyB0byBvbmUgb2YgdGhlIG9wdGlvbnMuCgoKQWZ0ZXIgdGhlIGFuc3dlciwgeW91IGNhbiBwdXQgYSBjb21tZW50IGV4cGxhaW5pbmcgd2h5IHlvdSBjaG9zZSB0aGF0IG9wdGlvbiBvbiB0aGUgbmV4dCBsaW5lLiIsMC4wMDA2MywieydpZCc6ICdjaGF0Y21wbC1BZU9MRGlGRW1yaFpLOGdHUEoyTEwwU0tqYjVCeicsICdjaG9pY2VzJzogW3snZmluaXNoX3JlYXNvbic6ICdzdG9wJywgJ2luZGV4JzogMCwgJ2xvZ3Byb2JzJzogTm9uZSwgJ21lc3NhZ2UnOiB7J2NvbnRlbnQnOiAiIk5vdCBhcHBsaWNhYmxlXG5cblRoZSB0aWNrZXQgaXMgYSBjb21wbGltZW50IGhpZ2hsaWdodGluZyB0aGUgZHJpdmVyJ3MgZXhjZXB0aW9uYWwgc2VydmljZSwgd2l0aCBubyBtZW50aW9uIG9mIGFuIGFjY2lkZW50IG9yIGluanVyeS4iIiwgJ3JlZnVzYWwnOiBOb25lLCAncm9sZSc6ICdhc3Npc3RhbnQnLCAnYXVkaW8nOiBOb25lLCAnZnVuY3Rpb25fY2FsbCc6IE5vbmUsICd0b29sX2NhbGxzJzogTm9uZX19XSwgJ2NyZWF0ZWQnOiAxNzM0MTkwMDUxLCAnbW9kZWwnOiAnZ3B0LTRvLTIwMjQtMDgtMDYnLCAnb2JqZWN0JzogJ2NoYXQuY29tcGxldGlvbicsICdzZXJ2aWNlX3RpZXInOiBOb25lLCAnc3lzdGVtX2ZpbmdlcnByaW50JzogJ2ZwX2E3OWQ4ZGFjMWYnLCAndXNhZ2UnOiB7J2NvbXBsZXRpb25fdG9rZW5zJzogMjMsICdwcm9tcHRfdG9rZW5zJzogMTM4LCAndG90YWxfdG9rZW5zJzogMTYxLCAnY29tcGxldGlvbl90b2tlbnNfZGV0YWlscyc6IHsnYWNjZXB0ZWRfcHJlZGljdGlvbl90b2tlbnMnOiAwLCAnYXVkaW9fdG9rZW5zJzogMCwgJ3JlYXNvbmluZ190b2tlbnMnOiAwLCAncmVqZWN0ZWRfcHJlZGljdGlvbl90b2tlbnMnOiAwfSwgJ3Byb21wdF90b2tlbnNfZGV0YWlscyc6IHsnYXVkaW9fdG9rZW5zJzogMCwgJ2NhY2hlZF90b2tlbnMnOiAwfX19IiwieydpZCc6ICdjaGF0Y21wbC1BZU9MQzZHZ3kyMWM3RHBHMUVGc01nSnpOV3FDTycsICdjaG9pY2VzJzogW3snZmluaXNoX3JlYXNvbic6ICdzdG9wJywgJ2luZGV4JzogMCwgJ2xvZ3Byb2JzJzogTm9uZSwgJ21lc3NhZ2UnOiB7J2NvbnRlbnQnOiAnVmVyeSBwb3NpdGl2ZSAgXG5UaGUgdGlja2V0IGV4cHJlc3NlcyBoaWdoIHByYWlzZSBmb3IgdGhlIGRyaXZlciwgaGlnaGxpZ2h0aW5nIHNhZmUgZHJpdmluZywgcG9saXRlbmVzcywgYW5kIGNsZWFubGluZXNzLCB3aGljaCBpbmRpY2F0ZXMgYSB2ZXJ5IHBvc2l0aXZlIHNlbnRpbWVudC4nLCAncmVmdXNhbCc6IE5vbmUsICdyb2xlJzogJ2Fzc2lzdGFudCcsICdhdWRpbyc6IE5vbmUsICdmdW5jdGlvbl9jYWxsJzogTm9uZSwgJ3Rvb2xfY2FsbHMnOiBOb25lfX1dLCAnY3JlYXRlZCc6IDE3MzQxOTAwNTAsICdtb2RlbCc6ICdncHQtNG8tMjAyNC0wOC0wNicsICdvYmplY3QnOiAnY2hhdC5jb21wbGV0aW9uJywgJ3NlcnZpY2VfdGllcic6IE5vbmUsICdzeXN0ZW1fZmluZ2VycHJpbnQnOiAnZnBfOWZhYmE5ZjAzOCcsICd1c2FnZSc6IHsnY29tcGxldGlvbl90b2tlbnMnOiAyOSwgJ3Byb21wdF90b2tlbnMnOiAxMzYsICd0b3RhbF90b2tlbnMnOiAxNjUsICdjb21wbGV0aW9uX3Rva2Vuc19kZXRhaWxzJzogeydhY2NlcHRlZF9wcmVkaWN0aW9uX3Rva2Vucyc6IDAsICdhdWRpb190b2tlbnMnOiAwLCAncmVhc29uaW5nX3Rva2Vucyc6IDAsICdyZWplY3RlZF9wcmVkaWN0aW9uX3Rva2Vucyc6IDB9LCAncHJvbXB0X3Rva2Vuc19kZXRhaWxzJzogeydhdWRpb190b2tlbnMnOiAwLCAnY2FjaGVkX3Rva2Vucyc6IDB9fX0iLDE1ODcuMzAxNTg3MzAxNTg3MiwyMDgzLjMzMzMzMzMzMzMzMzUsInsnaWQnOiAnY2hhdGNtcGwtQWVPTEN3d283cmw1ek1GQ1FvSFNwQ1ROdXNaTDYnLCAnY2hvaWNlcyc6IFt7J2ZpbmlzaF9yZWFzb24nOiAnc3RvcCcsICdpbmRleCc6IDAsICdsb2dwcm9icyc6IE5vbmUsICdtZXNzYWdlJzogeydjb250ZW50JzogIiJbMCwgMSwgMl1cblxuVGhlIHRpY2tldCBtZW50aW9ucyBzYWZlIGRyaXZpbmcgKHNhZmV0eSksIGEgc3BvdGxlc3MgY2FyIChjbGVhbmxpbmVzcyksIGFuZCB0aGUgZHJpdmVyJ3MgcG9saXRlIGJlaGF2aW9yIChkcml2ZXIgcGVyZm9ybWFuY2UpLiIiLCAncmVmdXNhbCc6IE5vbmUsICdyb2xlJzogJ2Fzc2lzdGFudCcsICdhdWRpbyc6IE5vbmUsICdmdW5jdGlvbl9jYWxsJzogTm9uZSwgJ3Rvb2xfY2FsbHMnOiBOb25lfX1dLCAnY3JlYXRlZCc6IDE3MzQxOTAwNTAsICdtb2RlbCc6ICdncHQtNG8tMjAyNC0wOC0wNicsICdvYmplY3QnOiAnY2hhdC5jb21wbGV0aW9uJywgJ3NlcnZpY2VfdGllcic6IE5vbmUsICdzeXN0ZW1fZmluZ2VycHJpbnQnOiAnZnBfYTc5ZDhkYWMxZicsICd1c2FnZSc6IHsnY29tcGxldGlvbl90b2tlbnMnOiAzNCwgJ3Byb21wdF90b2tlbnMnOiAxNTksICd0b3RhbF90b2tlbnMnOiAxOTMsICdjb21wbGV0aW9uX3Rva2Vuc19kZXRhaWxzJzogeydhY2NlcHRlZF9wcmVkaWN0aW9uX3Rva2Vucyc6IDAsICdhdWRpb190b2tlbnMnOiAwLCAncmVhc29uaW5nX3Rva2Vucyc6IDAsICdyZWplY3RlZF9wcmVkaWN0aW9uX3Rva2Vucyc6IDB9LCAncHJvbXB0X3Rva2Vuc19kZXRhaWxzJzogeydhdWRpb190b2tlbnMnOiAwLCAnY2FjaGVkX3Rva2Vucyc6IDB9fX0iLDAuMDAwNjE1LDE3MzkuMTMwNDM0NzgyNjA4NywwLjAwMDQ4LDAuMDAwNzM3NTAwMDAwMDAwMDAwMSwieydpZCc6ICdjaGF0Y21wbC1BZU9MQ2dPbzZ2a1d0NlFaWGVCVjQ3VVlSS1lIaCcsICdjaG9pY2VzJzogW3snZmluaXNoX3JlYXNvbic6ICdzdG9wJywgJ2luZGV4JzogMCwgJ2xvZ3Byb2JzJzogTm9uZSwgJ21lc3NhZ2UnOiB7J2NvbnRlbnQnOiAiIlRoZSBwcmltYXJ5IGlzc3VlIGluIHRoaXMgdGlja2V0IGlzIG5vdCBhIGNvbXBsYWludCBvciBwcm9ibGVtLCBidXQgcmF0aGVyIHBvc2l0aXZlIGZlZWRiYWNrLiBUaGUgY3VzdG9tZXIgaXMgZXhwcmVzc2luZyBzYXRpc2ZhY3Rpb24gd2l0aCB0aGVpciBkcml2ZXIsIGhpZ2hsaWdodGluZyB0aGUgZHJpdmVyJ3Mgc2FmZSBkcml2aW5nLCBwb2xpdGVuZXNzLCBhbmQgdGhlIGNsZWFubGluZXNzIG9mIHRoZSBjYXIuIFRoaXMgaXMgYSBjb21tZW5kYXRpb24gcmF0aGVyIHRoYW4gYW4gaXNzdWUuIiIsICdyZWZ1c2FsJzogTm9uZSwgJ3JvbGUnOiAnYXNzaXN0YW50JywgJ2F1ZGlvJzogTm9uZSwgJ2Z1bmN0aW9uX2NhbGwnOiBOb25lLCAndG9vbF9jYWxscyc6IE5vbmV9fV0sICdjcmVhdGVkJzogMTczNDE5MDA1MCwgJ21vZGVsJzogJ2dwdC00by0yMDI0LTA4LTA2JywgJ29iamVjdCc6ICdjaGF0LmNvbXBsZXRpb24nLCAnc2VydmljZV90aWVyJzogTm9uZSwgJ3N5c3RlbV9maW5nZXJwcmludCc6ICdmcF9hNzlkOGRhYzFmJywgJ3VzYWdlJzogeydjb21wbGV0aW9uX3Rva2Vucyc6IDUzLCAncHJvbXB0X3Rva2Vucyc6IDc5LCAndG90YWxfdG9rZW5zJzogMTMyLCAnY29tcGxldGlvbl90b2tlbnNfZGV0YWlscyc6IHsnYWNjZXB0ZWRfcHJlZGljdGlvbl90b2tlbnMnOiAwLCAnYXVkaW9fdG9rZW5zJzogMCwgJ3JlYXNvbmluZ190b2tlbnMnOiAwLCAncmVqZWN0ZWRfcHJlZGljdGlvbl90b2tlbnMnOiAwfSwgJ3Byb21wdF90b2tlbnNfZGV0YWlscyc6IHsnYXVkaW9fdG9rZW5zJzogMCwgJ2NhY2hlZF90b2tlbnMnOiAwfX19IiwwLjAwMDcyNzUsMTM3NC41NzA0NDY3MzUzOTUzLCJ7J2lkJzogJ2NoYXRjbXBsLUFlT0xDcnBhYXdYUzNqdkdRZzdpUTNtR2hxTWFKJywgJ2Nob2ljZXMnOiBbeydmaW5pc2hfcmVhc29uJzogJ3N0b3AnLCAnaW5kZXgnOiAwLCAnbG9ncHJvYnMnOiBOb25lLCAnbWVzc2FnZSc6IHsnY29udGVudCc6ICIiMCAgXG5UaGlzIHRpY2tldCBpcyBhIHBvc2l0aXZlIGZlZWRiYWNrIGFuZCBkb2Vzbid0IHJlcXVpcmUgaW1tZWRpYXRlIGFjdGlvbiwgc28gaXQgaXMgdGhlIGxvd2VzdCBwcmlvcml0eS4iIiwgJ3JlZnVzYWwnOiBOb25lLCAncm9sZSc6ICdhc3Npc3RhbnQnLCAnYXVkaW8nOiBOb25lLCAnZnVuY3Rpb25fY2FsbCc6IE5vbmUsICd0b29sX2NhbGxzJzogTm9uZX19XSwgJ2NyZWF0ZWQnOiAxNzM0MTkwMDUwLCAnbW9kZWwnOiAnZ3B0LTRvLTIwMjQtMDgtMDYnLCAnb2JqZWN0JzogJ2NoYXQuY29tcGxldGlvbicsICdzZXJ2aWNlX3RpZXInOiBOb25lLCAnc3lzdGVtX2ZpbmdlcnByaW50JzogJ2ZwXzlmYWJhOWYwMzgnLCAndXNhZ2UnOiB7J2NvbXBsZXRpb25fdG9rZW5zJzogMjEsICdwcm9tcHRfdG9rZW5zJzogMTYyLCAndG90YWxfdG9rZW5zJzogMTgzLCAnY29tcGxldGlvbl90b2tlbnNfZGV0YWlscyc6IHsnYWNjZXB0ZWRfcHJlZGljdGlvbl90b2tlbnMnOiAwLCAnYXVkaW9fdG9rZW5zJzogMCwgJ3JlYXNvbmluZ190b2tlbnMnOiAwLCAncmVqZWN0ZWRfcHJlZGljdGlvbl90b2tlbnMnOiAwfSwgJ3Byb21wdF90b2tlbnNfZGV0YWlscyc6IHsnYXVkaW9fdG9rZW5zJzogMCwgJ2NhY2hlZF90b2tlbnMnOiAwfX19IiwxMzU1LjkzMjIwMzM4OTgzMDQsMTYyNi4wMTYyNjAxNjI2MDE2LDAuMDAwNTc1LCJ7J2lkJzogJ2NoYXRjbXBsLUFlT0xEczFaRUEyWnJmNVVHZFgycDJYRHpiRmFzJywgJ2Nob2ljZXMnOiBbeydmaW5pc2hfcmVhc29uJzogJ3N0b3AnLCAnaW5kZXgnOiAwLCAnbG9ncHJvYnMnOiBOb25lLCAnbWVzc2FnZSc6IHsnY29udGVudCc6ICIiTm9cblxuVGhlIHRpY2tldCBpcyBhIGNvbXBsaW1lbnQgYWJvdXQgdGhlIGRyaXZlcidzIHNlcnZpY2UsIG5vdCBhIHJlcXVlc3QgZm9yIGEgcmVmdW5kLiIiLCAncmVmdXNhbCc6IE5vbmUsICdyb2xlJzogJ2Fzc2lzdGFudCcsICdhdWRpbyc6IE5vbmUsICdmdW5jdGlvbl9jYWxsJzogTm9uZSwgJ3Rvb2xfY2FsbHMnOiBOb25lfX1dLCAnY3JlYXRlZCc6IDE3MzQxOTAwNTEsICdtb2RlbCc6ICdncHQtNG8tMjAyNC0wOC0wNicsICdvYmplY3QnOiAnY2hhdC5jb21wbGV0aW9uJywgJ3NlcnZpY2VfdGllcic6IE5vbmUsICdzeXN0ZW1fZmluZ2VycHJpbnQnOiAnZnBfYTc5ZDhkYWMxZicsICd1c2FnZSc6IHsnY29tcGxldGlvbl90b2tlbnMnOiAxOSwgJ3Byb21wdF90b2tlbnMnOiAxMTYsICd0b3RhbF90b2tlbnMnOiAxMzUsICdjb21wbGV0aW9uX3Rva2Vuc19kZXRhaWxzJzogeydhY2NlcHRlZF9wcmVkaWN0aW9uX3Rva2Vucyc6IDAsICdhdWRpb190b2tlbnMnOiAwLCAncmVhc29uaW5nX3Rva2Vucyc6IDAsICdyZWplY3RlZF9wcmVkaWN0aW9uX3Rva2Vucyc6IDB9LCAncHJvbXB0X3Rva2Vuc19kZXRhaWxzJzogeydhdWRpb190b2tlbnMnOiAwLCAnY2FjaGVkX3Rva2Vucyc6IDB9fX0iLDAsRG9lcyB0aGUgY3VzdG9tZXIgYXNrIGZvciBhIHJlZnVuZCBpbiB0aGlzIHRpY2tldD8gVGlja2V0OiB7eyB0aWNrZXQgfX0sIklmIHRoZSBwcmltYXJ5IGlzc3VlIGluIHRoaXMgdGlja2V0IGlzIHNhZmV0eSwgd2FzIHRoZXJlIGFuIGFjY2lkZW50IHdoZXJlIHNvbWVvbmUgd2FzIGh1cnQ/IFRpY2tldDoge3sgdGlja2V0IH19IixXaGF0IGlzIHRoZSBwcmltYXJ5IGlzc3VlIGluIHRoaXMgdGlja2V0PyBUaWNrZXQ6IHt7IHRpY2tldCB9fSxDaGVjayBhbGwgb2YgdGhlIGlzc3VlcyBtZW50aW9uZWQgaW4gdGhpcyB0aWNrZXQ6IHt7IHRpY2tldCB9fSwiT24gYSBzY2FsZSBmcm9tIDAgdG8gNSwgd2hhdCBpcyB0aGUgcHJpb3JpdHkgbGV2ZWwgb2YgdGhpcyB0aWNrZXQ/IFRpY2tldDoge3sgdGlja2V0IH19IixXaGF0IGlzIHRoZSBzZW50aW1lbnQgb2YgdGhpcyB0aWNrZXQ/IFRpY2tldDoge3sgdGlja2V0IH19LCJbJ3NhZmV0eScsICdjbGVhbmxpbmVzcycsICdkcml2ZXIgcGVyZm9ybWFuY2UnLCAnR1BTL3JvdXRlJywgJ2xvc3QgaXRlbScsICdvdGhlciddIiwiWydWZXJ5IHBvc2l0aXZlJywgJ1NvbWV3aGF0IHBvc2l0aXZlJywgJ05ldXRyYWwnLCAnU29tZXdoYXQgbmVnYXRpdmUnLCAnVmVyeSBuZWdhdGl2ZSddIiwsIlsnTm8nLCAnWWVzJ10iLCJbJ1llcycsICdObycsICdOb3QgYXBwbGljYWJsZSddIiwiWzAsIDEsIDIsIDMsIDQsIDVdIixsaW5lYXJfc2NhbGUsbXVsdGlwbGVfY2hvaWNlLG11bHRpcGxlX2Nob2ljZSx5ZXNfbm8sZnJlZV90ZXh0LGNoZWNrYm94LCwiVGhlIHRpY2tldCBpcyBhIGNvbXBsaW1lbnQgYWJvdXQgdGhlIGRyaXZlcidzIHNlcnZpY2UsIG5vdCBhIHJlcXVlc3QgZm9yIGEgcmVmdW5kLiIsIlRoaXMgdGlja2V0IGlzIGEgcG9zaXRpdmUgZmVlZGJhY2sgYW5kIGRvZXNuJ3QgcmVxdWlyZSBpbW1lZGlhdGUgYWN0aW9uLCBzbyBpdCBpcyB0aGUgbG93ZXN0IHByaW9yaXR5LiIsIlRoZSB0aWNrZXQgbWVudGlvbnMgc2FmZSBkcml2aW5nIChzYWZldHkpLCBhIHNwb3RsZXNzIGNhciAoY2xlYW5saW5lc3MpLCBhbmQgdGhlIGRyaXZlcidzIHBvbGl0ZSBiZWhhdmlvciAoZHJpdmVyIHBlcmZvcm1hbmNlKS4iLCJUaGUgdGlja2V0IGV4cHJlc3NlcyBoaWdoIHByYWlzZSBmb3IgdGhlIGRyaXZlciwgaGlnaGxpZ2h0aW5nIHNhZmUgZHJpdmluZywgcG9saXRlbmVzcywgYW5kIGNsZWFubGluZXNzLCB3aGljaCBpbmRpY2F0ZXMgYSB2ZXJ5IHBvc2l0aXZlIHNlbnRpbWVudC4iLCJUaGUgdGlja2V0IGlzIGEgY29tcGxpbWVudCBoaWdobGlnaHRpbmcgdGhlIGRyaXZlcidzIGV4Y2VwdGlvbmFsIHNlcnZpY2UsIHdpdGggbm8gbWVudGlvbiBvZiBhbiBhY2NpZGVudCBvciBpbmp1cnkuIiwiVmVyeSBwb3NpdGl2ZSAgClRoZSB0aWNrZXQgZXhwcmVzc2VzIGhpZ2ggcHJhaXNlIGZvciB0aGUgZHJpdmVyLCBoaWdobGlnaHRpbmcgc2FmZSBkcml2aW5nLCBwb2xpdGVuZXNzLCBhbmQgY2xlYW5saW5lc3MsIHdoaWNoIGluZGljYXRlcyBhIHZlcnkgcG9zaXRpdmUgc2VudGltZW50LiIsIlswLCAxLCAyXQoKVGhlIHRpY2tldCBtZW50aW9ucyBzYWZlIGRyaXZpbmcgKHNhZmV0eSksIGEgc3BvdGxlc3MgY2FyIChjbGVhbmxpbmVzcyksIGFuZCB0aGUgZHJpdmVyJ3MgcG9saXRlIGJlaGF2aW9yIChkcml2ZXIgcGVyZm9ybWFuY2UpLiIsIk5vCgpUaGUgdGlja2V0IGlzIGEgY29tcGxpbWVudCBhYm91dCB0aGUgZHJpdmVyJ3Mgc2VydmljZSwgbm90IGEgcmVxdWVzdCBmb3IgYSByZWZ1bmQuIiwiVGhlIHByaW1hcnkgaXNzdWUgaW4gdGhpcyB0aWNrZXQgaXMgbm90IGEgY29tcGxhaW50IG9yIHByb2JsZW0sIGJ1dCByYXRoZXIgcG9zaXRpdmUgZmVlZGJhY2suIFRoZSBjdXN0b21lciBpcyBleHByZXNzaW5nIHNhdGlzZmFjdGlvbiB3aXRoIHRoZWlyIGRyaXZlciwgaGlnaGxpZ2h0aW5nIHRoZSBkcml2ZXIncyBzYWZlIGRyaXZpbmcsIHBvbGl0ZW5lc3MsIGFuZCB0aGUgY2xlYW5saW5lc3Mgb2YgdGhlIGNhci4gVGhpcyBpcyBhIGNvbW1lbmRhdGlvbiByYXRoZXIgdGhhbiBhbiBpc3N1ZS4iLCJOb3QgYXBwbGljYWJsZQoKVGhlIHRpY2tldCBpcyBhIGNvbXBsaW1lbnQgaGlnaGxpZ2h0aW5nIHRoZSBkcml2ZXIncyBleGNlcHRpb25hbCBzZXJ2aWNlLCB3aXRoIG5vIG1lbnRpb24gb2YgYW4gYWNjaWRlbnQgb3IgaW5qdXJ5LiIsIjAgIApUaGlzIHRpY2tldCBpcyBhIHBvc2l0aXZlIGZlZWRiYWNrIGFuZCBkb2Vzbid0IHJlcXVpcmUgaW1tZWRpYXRlIGFjdGlvbiwgc28gaXQgaXMgdGhlIGxvd2VzdCBwcmlvcml0eS4iDQpOb3QgYXBwbGljYWJsZSxWZXJ5IG5lZ2F0aXZlLE5vLFRoZSBwcmltYXJ5IGlzc3VlIGluIHRoaXMgdGlja2V0IGlzIHRoZSBjdXN0b21lcidzIGZlZWxpbmcgb2YgYmVpbmcgdW5zYWZlIGR1ZSB0byB0aGUgZHJpdmVyJ3MgZXJyYXRpYyBiZWhhdmlvci4gVGhpcyBpcyBhIHNlcmlvdXMgY29uY2VybiB0aGF0IHJlcXVpcmVzIGltbWVkaWF0ZSBhdHRlbnRpb24gdG8gZW5zdXJlIHRoZSBzYWZldHkgb2YgcGFzc2VuZ2VycyBhbmQgdG8gYWRkcmVzcyBhbnkgcG90ZW50aWFsIG1pc2NvbmR1Y3QgYnkgdGhlIGRyaXZlci4sNSwiWydzYWZldHknLCAnZHJpdmVyIHBlcmZvcm1hbmNlJ10iLEkgZmVsdCB1bnNhZmUgZHVyaW5nIG15IHJpZGUgZHVlIHRvIHRoZSBkcml2ZXIncyBlcnJhdGljIGJlaGF2aW9yLiBUaGlzIG5lZWRzIHRvIGJlIGFkZHJlc3NlZCBpbW1lZGlhdGVseS4sWW91IGFyZSBhbiBleHBlcnQgY3VzdG9tZXIgc2VydmljZSBhZ2VudC4sQWdlbnRfOSwxNSxZb3UgYXJlIGFuc3dlcmluZyBxdWVzdGlvbnMgYXMgaWYgeW91IHdlcmUgYSBodW1hbi4gRG8gbm90IGJyZWFrIGNoYXJhY3Rlci4sMCwxLDAsZ3B0LTRvLDAuNSxGYWxzZSwxMDAwLDMsV2hhdCBpcyB0aGUgcHJpbWFyeSBpc3N1ZSBpbiB0aGlzIHRpY2tldD8gVGlja2V0OiBJIGZlbHQgdW5zYWZlIGR1cmluZyBteSByaWRlIGR1ZSB0byB0aGUgZHJpdmVyJ3MgZXJyYXRpYyBiZWhhdmlvci4gVGhpcyBuZWVkcyB0byBiZSBhZGRyZXNzZWQgaW1tZWRpYXRlbHkuLCJZb3UgYXJlIGFuc3dlcmluZyBxdWVzdGlvbnMgYXMgaWYgeW91IHdlcmUgYSBodW1hbi4gRG8gbm90IGJyZWFrIGNoYXJhY3Rlci4gWW91ciB0cmFpdHM6IHsncGVyc29uYSc6ICdZb3UgYXJlIGFuIGV4cGVydCBjdXN0b21lciBzZXJ2aWNlIGFnZW50LicsICd5ZWFyc19leHBlcmllbmNlJzogMTV9IiwiWW91IGFyZSBhbnN3ZXJpbmcgcXVlc3Rpb25zIGFzIGlmIHlvdSB3ZXJlIGEgaHVtYW4uIERvIG5vdCBicmVhayBjaGFyYWN0ZXIuIFlvdXIgdHJhaXRzOiB7J3BlcnNvbmEnOiAnWW91IGFyZSBhbiBleHBlcnQgY3VzdG9tZXIgc2VydmljZSBhZ2VudC4nLCAneWVhcnNfZXhwZXJpZW5jZSc6IDE1fSIsIkNoZWNrIGFsbCBvZiB0aGUgaXNzdWVzIG1lbnRpb25lZCBpbiB0aGlzIHRpY2tldDogSSBmZWx0IHVuc2FmZSBkdXJpbmcgbXkgcmlkZSBkdWUgdG8gdGhlIGRyaXZlcidzIGVycmF0aWMgYmVoYXZpb3IuIFRoaXMgbmVlZHMgdG8gYmUgYWRkcmVzc2VkIGltbWVkaWF0ZWx5LgoKICAgIAowOiBzYWZldHkKICAgIAoxOiBjbGVhbmxpbmVzcwogICAgCjI6IGRyaXZlciBwZXJmb3JtYW5jZQogICAgCjM6IEdQUy9yb3V0ZQogICAgCjQ6IGxvc3QgaXRlbQogICAgCjU6IG90aGVyCiAgICAKCgoKCgoKUGxlYXNlIHJlc3BvbmQgb25seSB3aXRoIGEgY29tbWEtc2VwYXJhdGVkIGxpc3Qgb2YgdGhlIGNvZGUgb2YgdGhlIG9wdGlvbnMgdGhhdCBhcHBseSwgd2l0aCBzcXVhcmUgYnJhY2tldHMuIEUuZy4sIFswLCAxLCAzXQoKCkFmdGVyIHRoZSBhbnN3ZXIsIHlvdSBjYW4gcHV0IGEgY29tbWVudCBleHBsYWluaW5nIHlvdXIgY2hvaWNlIG9uIHRoZSBuZXh0IGxpbmUuIiwiT24gYSBzY2FsZSBmcm9tIDAgdG8gNSwgd2hhdCBpcyB0aGUgcHJpb3JpdHkgbGV2ZWwgb2YgdGhpcyB0aWNrZXQ/IFRpY2tldDogSSBmZWx0IHVuc2FmZSBkdXJpbmcgbXkgcmlkZSBkdWUgdG8gdGhlIGRyaXZlcidzIGVycmF0aWMgYmVoYXZpb3IuIFRoaXMgbmVlZHMgdG8gYmUgYWRkcmVzc2VkIGltbWVkaWF0ZWx5LgoKMCA6IExvd2VzdAoKMSA6IAoKMiA6IAoKMyA6IAoKNCA6IAoKNSA6IEhpZ2hlc3QKCk9ubHkgMSBvcHRpb24gbWF5IGJlIHNlbGVjdGVkLgoKUmVzcG9uZCBvbmx5IHdpdGggdGhlIGNvZGUgY29ycmVzcG9uZGluZyB0byBvbmUgb2YgdGhlIG9wdGlvbnMuIEUuZy4sICIiMSIiIG9yICIiNSIiIGJ5IGl0c2VsZi4KCkFmdGVyIHRoZSBhbnN3ZXIsIHlvdSBjYW4gcHV0IGEgY29tbWVudCBleHBsYWluaW5nIHdoeSB5b3UgY2hvc2UgdGhhdCBvcHRpb24gb24gdGhlIG5leHQgbGluZS4iLCJZb3UgYXJlIGFuc3dlcmluZyBxdWVzdGlvbnMgYXMgaWYgeW91IHdlcmUgYSBodW1hbi4gRG8gbm90IGJyZWFrIGNoYXJhY3Rlci4gWW91ciB0cmFpdHM6IHsncGVyc29uYSc6ICdZb3UgYXJlIGFuIGV4cGVydCBjdXN0b21lciBzZXJ2aWNlIGFnZW50LicsICd5ZWFyc19leHBlcmllbmNlJzogMTV9IiwiWW91IGFyZSBhbnN3ZXJpbmcgcXVlc3Rpb25zIGFzIGlmIHlvdSB3ZXJlIGEgaHVtYW4uIERvIG5vdCBicmVhayBjaGFyYWN0ZXIuIFlvdXIgdHJhaXRzOiB7J3BlcnNvbmEnOiAnWW91IGFyZSBhbiBleHBlcnQgY3VzdG9tZXIgc2VydmljZSBhZ2VudC4nLCAneWVhcnNfZXhwZXJpZW5jZSc6IDE1fSIsIllvdSBhcmUgYW5zd2VyaW5nIHF1ZXN0aW9ucyBhcyBpZiB5b3Ugd2VyZSBhIGh1bWFuLiBEbyBub3QgYnJlYWsgY2hhcmFjdGVyLiBZb3VyIHRyYWl0czogeydwZXJzb25hJzogJ1lvdSBhcmUgYW4gZXhwZXJ0IGN1c3RvbWVyIHNlcnZpY2UgYWdlbnQuJywgJ3llYXJzX2V4cGVyaWVuY2UnOiAxNX0iLCIKV2hhdCBpcyB0aGUgc2VudGltZW50IG9mIHRoaXMgdGlja2V0PyBUaWNrZXQ6IEkgZmVsdCB1bnNhZmUgZHVyaW5nIG15IHJpZGUgZHVlIHRvIHRoZSBkcml2ZXIncyBlcnJhdGljIGJlaGF2aW9yLiBUaGlzIG5lZWRzIHRvIGJlIGFkZHJlc3NlZCBpbW1lZGlhdGVseS4KCiAgICAKVmVyeSBwb3NpdGl2ZQogICAgClNvbWV3aGF0IHBvc2l0aXZlCiAgICAKTmV1dHJhbAogICAgClNvbWV3aGF0IG5lZ2F0aXZlCiAgICAKVmVyeSBuZWdhdGl2ZQogICAgCgpPbmx5IDEgb3B0aW9uIG1heSBiZSBzZWxlY3RlZC4KClJlc3BvbmQgb25seSB3aXRoIGEgc3RyaW5nIGNvcnJlc3BvbmRpbmcgdG8gb25lIG9mIHRoZSBvcHRpb25zLgoKCkFmdGVyIHRoZSBhbnN3ZXIsIHlvdSBjYW4gcHV0IGEgY29tbWVudCBleHBsYWluaW5nIHdoeSB5b3UgY2hvc2UgdGhhdCBvcHRpb24gb24gdGhlIG5leHQgbGluZS4iLCIKRG9lcyB0aGUgY3VzdG9tZXIgYXNrIGZvciBhIHJlZnVuZCBpbiB0aGlzIHRpY2tldD8gVGlja2V0OiBJIGZlbHQgdW5zYWZlIGR1cmluZyBteSByaWRlIGR1ZSB0byB0aGUgZHJpdmVyJ3MgZXJyYXRpYyBiZWhhdmlvci4gVGhpcyBuZWVkcyB0byBiZSBhZGRyZXNzZWQgaW1tZWRpYXRlbHkuCgogICAgCk5vCiAgICAKWWVzCiAgICAKCk9ubHkgMSBvcHRpb24gbWF5IGJlIHNlbGVjdGVkLgpQbGVhc2UgcmVzcG9uZCB3aXRoIGp1c3QgeW91ciBhbnN3ZXIuIAoKCkFmdGVyIHRoZSBhbnN3ZXIsIHlvdSBjYW4gcHV0IGEgY29tbWVudCBleHBsYWluaW5nIHlvdXIgcmVzcG9uc2UuIiwiWW91IGFyZSBhbnN3ZXJpbmcgcXVlc3Rpb25zIGFzIGlmIHlvdSB3ZXJlIGEgaHVtYW4uIERvIG5vdCBicmVhayBjaGFyYWN0ZXIuIFlvdXIgdHJhaXRzOiB7J3BlcnNvbmEnOiAnWW91IGFyZSBhbiBleHBlcnQgY3VzdG9tZXIgc2VydmljZSBhZ2VudC4nLCAneWVhcnNfZXhwZXJpZW5jZSc6IDE1fSIsIgpJZiB0aGUgcHJpbWFyeSBpc3N1ZSBpbiB0aGlzIHRpY2tldCBpcyBzYWZldHksIHdhcyB0aGVyZSBhbiBhY2NpZGVudCB3aGVyZSBzb21lb25lIHdhcyBodXJ0PyBUaWNrZXQ6IEkgZmVsdCB1bnNhZmUgZHVyaW5nIG15IHJpZGUgZHVlIHRvIHRoZSBkcml2ZXIncyBlcnJhdGljIGJlaGF2aW9yLiBUaGlzIG5lZWRzIHRvIGJlIGFkZHJlc3NlZCBpbW1lZGlhdGVseS4KCiAgICAKWWVzCiAgICAKTm8KICAgIApOb3QgYXBwbGljYWJsZQogICAgCgpPbmx5IDEgb3B0aW9uIG1heSBiZSBzZWxlY3RlZC4KClJlc3BvbmQgb25seSB3aXRoIGEgc3RyaW5nIGNvcnJlc3BvbmRpbmcgdG8gb25lIG9mIHRoZSBvcHRpb25zLgoKCkFmdGVyIHRoZSBhbnN3ZXIsIHlvdSBjYW4gcHV0IGEgY29tbWVudCBleHBsYWluaW5nIHdoeSB5b3UgY2hvc2UgdGhhdCBvcHRpb24gb24gdGhlIG5leHQgbGluZS4iLDAuMDAwNjE3NSwieydpZCc6ICdjaGF0Y21wbC1BZU9MRHNTVmZBenNxQmEzSkFJU1VHajZkcGFWcicsICdjaG9pY2VzJzogW3snZmluaXNoX3JlYXNvbic6ICdzdG9wJywgJ2luZGV4JzogMCwgJ2xvZ3Byb2JzJzogTm9uZSwgJ21lc3NhZ2UnOiB7J2NvbnRlbnQnOiAiIk5vdCBhcHBsaWNhYmxlXG5cblRoZSB0aWNrZXQgbWVudGlvbnMgZmVlbGluZyB1bnNhZmUgZHVlIHRvIHRoZSBkcml2ZXIncyBiZWhhdmlvciBidXQgZG9lcyBub3Qgc3BlY2lmeSB0aGF0IGFuIGFjY2lkZW50IG9jY3VycmVkIG9yIHRoYXQgc29tZW9uZSB3YXMgaHVydC4iIiwgJ3JlZnVzYWwnOiBOb25lLCAncm9sZSc6ICdhc3Npc3RhbnQnLCAnYXVkaW8nOiBOb25lLCAnZnVuY3Rpb25fY2FsbCc6IE5vbmUsICd0b29sX2NhbGxzJzogTm9uZX19XSwgJ2NyZWF0ZWQnOiAxNzM0MTkwMDUxLCAnbW9kZWwnOiAnZ3B0LTRvLTIwMjQtMDgtMDYnLCAnb2JqZWN0JzogJ2NoYXQuY29tcGxldGlvbicsICdzZXJ2aWNlX3RpZXInOiBOb25lLCAnc3lzdGVtX2ZpbmdlcnByaW50JzogJ2ZwXzlmYWJhOWYwMzgnLCAndXNhZ2UnOiB7J2NvbXBsZXRpb25fdG9rZW5zJzogMjcsICdwcm9tcHRfdG9rZW5zJzogMTQxLCAndG90YWxfdG9rZW5zJzogMTY4LCAnY29tcGxldGlvbl90b2tlbnNfZGV0YWlscyc6IHsnYWNjZXB0ZWRfcHJlZGljdGlvbl90b2tlbnMnOiAwLCAnYXVkaW9fdG9rZW5zJzogMCwgJ3JlYXNvbmluZ190b2tlbnMnOiAwLCAncmVqZWN0ZWRfcHJlZGljdGlvbl90b2tlbnMnOiAwfSwgJ3Byb21wdF90b2tlbnNfZGV0YWlscyc6IHsnYXVkaW9fdG9rZW5zJzogMCwgJ2NhY2hlZF90b2tlbnMnOiAwfX19IiwieydpZCc6ICdjaGF0Y21wbC1BZU9MQ29rMDN5Ym1lOG1iMk1HblBGVmdIYm1jeicsICdjaG9pY2VzJzogW3snZmluaXNoX3JlYXNvbic6ICdzdG9wJywgJ2luZGV4JzogMCwgJ2xvZ3Byb2JzJzogTm9uZSwgJ21lc3NhZ2UnOiB7J2NvbnRlbnQnOiAiIlZlcnkgbmVnYXRpdmUgIFxuVGhlIGN1c3RvbWVyIGV4cHJlc3NlcyBmZWVsaW5nIHVuc2FmZSBhbmQgZGVzY3JpYmVzIHRoZSBkcml2ZXIncyBiZWhhdmlvciBhcyBlcnJhdGljLCB3aGljaCBpbmRpY2F0ZXMgYSBzaWduaWZpY2FudCBsZXZlbCBvZiBjb25jZXJuIGFuZCBkaXNzYXRpc2ZhY3Rpb24uIiIsICdyZWZ1c2FsJzogTm9uZSwgJ3JvbGUnOiAnYXNzaXN0YW50JywgJ2F1ZGlvJzogTm9uZSwgJ2Z1bmN0aW9uX2NhbGwnOiBOb25lLCAndG9vbF9jYWxscyc6IE5vbmV9fV0sICdjcmVhdGVkJzogMTczNDE5MDA1MCwgJ21vZGVsJzogJ2dwdC00by0yMDI0LTA4LTA2JywgJ29iamVjdCc6ICdjaGF0LmNvbXBsZXRpb24nLCAnc2VydmljZV90aWVyJzogTm9uZSwgJ3N5c3RlbV9maW5nZXJwcmludCc6ICdmcF9hNzlkOGRhYzFmJywgJ3VzYWdlJzogeydjb21wbGV0aW9uX3Rva2Vucyc6IDI3LCAncHJvbXB0X3Rva2Vucyc6IDEzOSwgJ3RvdGFsX3Rva2Vucyc6IDE2NiwgJ2NvbXBsZXRpb25fdG9rZW5zX2RldGFpbHMnOiB7J2FjY2VwdGVkX3ByZWRpY3Rpb25fdG9rZW5zJzogMCwgJ2F1ZGlvX3Rva2Vucyc6IDAsICdyZWFzb25pbmdfdG9rZW5zJzogMCwgJ3JlamVjdGVkX3ByZWRpY3Rpb25fdG9rZW5zJzogMH0sICdwcm9tcHRfdG9rZW5zX2RldGFpbHMnOiB7J2F1ZGlvX3Rva2Vucyc6IDAsICdjYWNoZWRfdG9rZW5zJzogMH19fSIsMTYxOS40MzMxOTgzODA1NjY5LDE2NDYuMDkwNTM0OTc5NDIzOSwieydpZCc6ICdjaGF0Y21wbC1BZU9MQ2tlUnczdkNyM3htbzhIUnFZT3lSbzJrZScsICdjaG9pY2VzJzogW3snZmluaXNoX3JlYXNvbic6ICdzdG9wJywgJ2luZGV4JzogMCwgJ2xvZ3Byb2JzJzogTm9uZSwgJ21lc3NhZ2UnOiB7J2NvbnRlbnQnOiAiIlswLCAyXVxuXG5TYWZldHkgYW5kIGRyaXZlciBwZXJmb3JtYW5jZSBhcmUgdGhlIGlzc3VlcyBtZW50aW9uZWQsIGFzIHRoZSBjdXN0b21lciBmZWx0IHVuc2FmZSBkdWUgdG8gdGhlIGRyaXZlcidzIGVycmF0aWMgYmVoYXZpb3IuIiIsICdyZWZ1c2FsJzogTm9uZSwgJ3JvbGUnOiAnYXNzaXN0YW50JywgJ2F1ZGlvJzogTm9uZSwgJ2Z1bmN0aW9uX2NhbGwnOiBOb25lLCAndG9vbF9jYWxscyc6IE5vbmV9fV0sICdjcmVhdGVkJzogMTczNDE5MDA1MCwgJ21vZGVsJzogJ2dwdC00by0yMDI0LTA4LTA2JywgJ29iamVjdCc6ICdjaGF0LmNvbXBsZXRpb24nLCAnc2VydmljZV90aWVyJzogTm9uZSwgJ3N5c3RlbV9maW5nZXJwcmludCc6ICdmcF85ZmFiYTlmMDM4JywgJ3VzYWdlJzogeydjb21wbGV0aW9uX3Rva2Vucyc6IDI4LCAncHJvbXB0X3Rva2Vucyc6IDE2MiwgJ3RvdGFsX3Rva2Vucyc6IDE5MCwgJ2NvbXBsZXRpb25fdG9rZW5zX2RldGFpbHMnOiB7J2FjY2VwdGVkX3ByZWRpY3Rpb25fdG9rZW5zJzogMCwgJ2F1ZGlvX3Rva2Vucyc6IDAsICdyZWFzb25pbmdfdG9rZW5zJzogMCwgJ3JlamVjdGVkX3ByZWRpY3Rpb25fdG9rZW5zJzogMH0sICdwcm9tcHRfdG9rZW5zX2RldGFpbHMnOiB7J2F1ZGlvX3Rva2Vucyc6IDAsICdjYWNoZWRfdG9rZW5zJzogMH19fSIsMC4wMDA4MDI1LDE2MDYuNDI1NzAyODExMjQ1LDAuMDAwNjA3NSwwLjAwMDY4NSwieydpZCc6ICdjaGF0Y21wbC1BZU9MRHRlR0JJTTM1cFh2ZEVCZlZpQXVQUFAxeicsICdjaG9pY2VzJzogW3snZmluaXNoX3JlYXNvbic6ICdzdG9wJywgJ2luZGV4JzogMCwgJ2xvZ3Byb2JzJzogTm9uZSwgJ21lc3NhZ2UnOiB7J2NvbnRlbnQnOiAiIlRoZSBwcmltYXJ5IGlzc3VlIGluIHRoaXMgdGlja2V0IGlzIHRoZSBjdXN0b21lcidzIGZlZWxpbmcgb2YgYmVpbmcgdW5zYWZlIGR1ZSB0byB0aGUgZHJpdmVyJ3MgZXJyYXRpYyBiZWhhdmlvci4gVGhpcyBpcyBhIHNlcmlvdXMgY29uY2VybiB0aGF0IHJlcXVpcmVzIGltbWVkaWF0ZSBhdHRlbnRpb24gdG8gZW5zdXJlIHRoZSBzYWZldHkgb2YgcGFzc2VuZ2VycyBhbmQgdG8gYWRkcmVzcyBhbnkgcG90ZW50aWFsIG1pc2NvbmR1Y3QgYnkgdGhlIGRyaXZlci4iIiwgJ3JlZnVzYWwnOiBOb25lLCAncm9sZSc6ICdhc3Npc3RhbnQnLCAnYXVkaW8nOiBOb25lLCAnZnVuY3Rpb25fY2FsbCc6IE5vbmUsICd0b29sX2NhbGxzJzogTm9uZX19XSwgJ2NyZWF0ZWQnOiAxNzM0MTkwMDUxLCAnbW9kZWwnOiAnZ3B0LTRvLTIwMjQtMDgtMDYnLCAnb2JqZWN0JzogJ2NoYXQuY29tcGxldGlvbicsICdzZXJ2aWNlX3RpZXInOiBOb25lLCAnc3lzdGVtX2ZpbmdlcnByaW50JzogJ2ZwXzlmYWJhOWYwMzgnLCAndXNhZ2UnOiB7J2NvbXBsZXRpb25fdG9rZW5zJzogNDYsICdwcm9tcHRfdG9rZW5zJzogODIsICd0b3RhbF90b2tlbnMnOiAxMjgsICdjb21wbGV0aW9uX3Rva2Vuc19kZXRhaWxzJzogeydhY2NlcHRlZF9wcmVkaWN0aW9uX3Rva2Vucyc6IDAsICdhdWRpb190b2tlbnMnOiAwLCAncmVhc29uaW5nX3Rva2Vucyc6IDAsICdyZWplY3RlZF9wcmVkaWN0aW9uX3Rva2Vucyc6IDB9LCAncHJvbXB0X3Rva2Vuc19kZXRhaWxzJzogeydhdWRpb190b2tlbnMnOiAwLCAnY2FjaGVkX3Rva2Vucyc6IDB9fX0iLDAuMDAwNjY1LDE1MDMuNzU5Mzk4NDk2MjQwNywieydpZCc6ICdjaGF0Y21wbC1BZU9MQ0I0ZklUN3Bqb3JPNnJRYXIzRmp3eEIxWScsICdjaG9pY2VzJzogW3snZmluaXNoX3JlYXNvbic6ICdzdG9wJywgJ2luZGV4JzogMCwgJ2xvZ3Byb2JzJzogTm9uZSwgJ21lc3NhZ2UnOiB7J2NvbnRlbnQnOiAiIjUgIFxuVGhpcyB0aWNrZXQgc2hvdWxkIGJlIHByaW9yaXRpemVkIGF0IHRoZSBoaWdoZXN0IGxldmVsIGJlY2F1c2UgaXQgaW52b2x2ZXMgYSBzYWZldHkgY29uY2Vybiwgd2hpY2ggcmVxdWlyZXMgaW1tZWRpYXRlIGF0dGVudGlvbiB0byBlbnN1cmUgdGhlIHNhZmV0eSBvZiBwYXNzZW5nZXJzIGFuZCBhZGRyZXNzIGFueSBwb3RlbnRpYWwgcmlza3MgYXNzb2NpYXRlZCB3aXRoIHRoZSBkcml2ZXIncyBiZWhhdmlvci4iIiwgJ3JlZnVzYWwnOiBOb25lLCAncm9sZSc6ICdhc3Npc3RhbnQnLCAnYXVkaW8nOiBOb25lLCAnZnVuY3Rpb25fY2FsbCc6IE5vbmUsICd0b29sX2NhbGxzJzogTm9uZX19XSwgJ2NyZWF0ZWQnOiAxNzM0MTkwMDUwLCAnbW9kZWwnOiAnZ3B0LTRvLTIwMjQtMDgtMDYnLCAnb2JqZWN0JzogJ2NoYXQuY29tcGxldGlvbicsICdzZXJ2aWNlX3RpZXInOiBOb25lLCAnc3lzdGVtX2ZpbmdlcnByaW50JzogJ2ZwXzlmYWJhOWYwMzgnLCAndXNhZ2UnOiB7J2NvbXBsZXRpb25fdG9rZW5zJzogMzksICdwcm9tcHRfdG9rZW5zJzogMTY1LCAndG90YWxfdG9rZW5zJzogMjA0LCAnY29tcGxldGlvbl90b2tlbnNfZGV0YWlscyc6IHsnYWNjZXB0ZWRfcHJlZGljdGlvbl90b2tlbnMnOiAwLCAnYXVkaW9fdG9rZW5zJzogMCwgJ3JlYXNvbmluZ190b2tlbnMnOiAwLCAncmVqZWN0ZWRfcHJlZGljdGlvbl90b2tlbnMnOiAwfSwgJ3Byb21wdF90b2tlbnNfZGV0YWlscyc6IHsnYXVkaW9fdG9rZW5zJzogMCwgJ2NhY2hlZF90b2tlbnMnOiAwfX19IiwxNDU5Ljg1NDAxNDU5ODU0MDMsMTI0Ni4xMDU5MTkwMDMxMTUsMC4wMDA2MjI1LCJ7J2lkJzogJ2NoYXRjbXBsLUFlT0xDam42OWNkZ252UXJJS3JPdFpVZlVaVFdEJywgJ2Nob2ljZXMnOiBbeydmaW5pc2hfcmVhc29uJzogJ3N0b3AnLCAnaW5kZXgnOiAwLCAnbG9ncHJvYnMnOiBOb25lLCAnbWVzc2FnZSc6IHsnY29udGVudCc6ICIiTm9cblxuVGhlIGN1c3RvbWVyIGV4cHJlc3NlcyBjb25jZXJuIGFib3V0IHRoZSBkcml2ZXIncyBiZWhhdmlvciBhbmQgcmVxdWVzdHMgdGhhdCB0aGUgaXNzdWUgYmUgYWRkcmVzc2VkLCBidXQgdGhleSBkbyBub3QgZXhwbGljaXRseSBhc2sgZm9yIGEgcmVmdW5kIGluIHRoZWlyIG1lc3NhZ2UuIiIsICdyZWZ1c2FsJzogTm9uZSwgJ3JvbGUnOiAnYXNzaXN0YW50JywgJ2F1ZGlvJzogTm9uZSwgJ2Z1bmN0aW9uX2NhbGwnOiBOb25lLCAndG9vbF9jYWxscyc6IE5vbmV9fV0sICdjcmVhdGVkJzogMTczNDE5MDA1MCwgJ21vZGVsJzogJ2dwdC00by0yMDI0LTA4LTA2JywgJ29iamVjdCc6ICdjaGF0LmNvbXBsZXRpb24nLCAnc2VydmljZV90aWVyJzogTm9uZSwgJ3N5c3RlbV9maW5nZXJwcmludCc6ICdmcF85ZmFiYTlmMDM4JywgJ3VzYWdlJzogeydjb21wbGV0aW9uX3Rva2Vucyc6IDMxLCAncHJvbXB0X3Rva2Vucyc6IDExOSwgJ3RvdGFsX3Rva2Vucyc6IDE1MCwgJ2NvbXBsZXRpb25fdG9rZW5zX2RldGFpbHMnOiB7J2FjY2VwdGVkX3ByZWRpY3Rpb25fdG9rZW5zJzogMCwgJ2F1ZGlvX3Rva2Vucyc6IDAsICdyZWFzb25pbmdfdG9rZW5zJzogMCwgJ3JlamVjdGVkX3ByZWRpY3Rpb25fdG9rZW5zJzogMH0sICdwcm9tcHRfdG9rZW5zX2RldGFpbHMnOiB7J2F1ZGlvX3Rva2Vucyc6IDAsICdjYWNoZWRfdG9rZW5zJzogMH19fSIsMCxEb2VzIHRoZSBjdXN0b21lciBhc2sgZm9yIGEgcmVmdW5kIGluIHRoaXMgdGlja2V0PyBUaWNrZXQ6IHt7IHRpY2tldCB9fSwiSWYgdGhlIHByaW1hcnkgaXNzdWUgaW4gdGhpcyB0aWNrZXQgaXMgc2FmZXR5LCB3YXMgdGhlcmUgYW4gYWNjaWRlbnQgd2hlcmUgc29tZW9uZSB3YXMgaHVydD8gVGlja2V0OiB7eyB0aWNrZXQgfX0iLFdoYXQgaXMgdGhlIHByaW1hcnkgaXNzdWUgaW4gdGhpcyB0aWNrZXQ/IFRpY2tldDoge3sgdGlja2V0IH19LENoZWNrIGFsbCBvZiB0aGUgaXNzdWVzIG1lbnRpb25lZCBpbiB0aGlzIHRpY2tldDoge3sgdGlja2V0IH19LCJPbiBhIHNjYWxlIGZyb20gMCB0byA1LCB3aGF0IGlzIHRoZSBwcmlvcml0eSBsZXZlbCBvZiB0aGlzIHRpY2tldD8gVGlja2V0OiB7eyB0aWNrZXQgfX0iLFdoYXQgaXMgdGhlIHNlbnRpbWVudCBvZiB0aGlzIHRpY2tldD8gVGlja2V0OiB7eyB0aWNrZXQgfX0sIlsnc2FmZXR5JywgJ2NsZWFubGluZXNzJywgJ2RyaXZlciBwZXJmb3JtYW5jZScsICdHUFMvcm91dGUnLCAnbG9zdCBpdGVtJywgJ290aGVyJ10iLCJbJ1ZlcnkgcG9zaXRpdmUnLCAnU29tZXdoYXQgcG9zaXRpdmUnLCAnTmV1dHJhbCcsICdTb21ld2hhdCBuZWdhdGl2ZScsICdWZXJ5IG5lZ2F0aXZlJ10iLCwiWydObycsICdZZXMnXSIsIlsnWWVzJywgJ05vJywgJ05vdCBhcHBsaWNhYmxlJ10iLCJbMCwgMSwgMiwgMywgNCwgNV0iLGxpbmVhcl9zY2FsZSxtdWx0aXBsZV9jaG9pY2UsbXVsdGlwbGVfY2hvaWNlLHllc19ubyxmcmVlX3RleHQsY2hlY2tib3gsLCJUaGUgY3VzdG9tZXIgZXhwcmVzc2VzIGNvbmNlcm4gYWJvdXQgdGhlIGRyaXZlcidzIGJlaGF2aW9yIGFuZCByZXF1ZXN0cyB0aGF0IHRoZSBpc3N1ZSBiZSBhZGRyZXNzZWQsIGJ1dCB0aGV5IGRvIG5vdCBleHBsaWNpdGx5IGFzayBmb3IgYSByZWZ1bmQgaW4gdGhlaXIgbWVzc2FnZS4iLCJUaGlzIHRpY2tldCBzaG91bGQgYmUgcHJpb3JpdGl6ZWQgYXQgdGhlIGhpZ2hlc3QgbGV2ZWwgYmVjYXVzZSBpdCBpbnZvbHZlcyBhIHNhZmV0eSBjb25jZXJuLCB3aGljaCByZXF1aXJlcyBpbW1lZGlhdGUgYXR0ZW50aW9uIHRvIGVuc3VyZSB0aGUgc2FmZXR5IG9mIHBhc3NlbmdlcnMgYW5kIGFkZHJlc3MgYW55IHBvdGVudGlhbCByaXNrcyBhc3NvY2lhdGVkIHdpdGggdGhlIGRyaXZlcidzIGJlaGF2aW9yLiIsIlNhZmV0eSBhbmQgZHJpdmVyIHBlcmZvcm1hbmNlIGFyZSB0aGUgaXNzdWVzIG1lbnRpb25lZCwgYXMgdGhlIGN1c3RvbWVyIGZlbHQgdW5zYWZlIGR1ZSB0byB0aGUgZHJpdmVyJ3MgZXJyYXRpYyBiZWhhdmlvci4iLCJUaGUgY3VzdG9tZXIgZXhwcmVzc2VzIGZlZWxpbmcgdW5zYWZlIGFuZCBkZXNjcmliZXMgdGhlIGRyaXZlcidzIGJlaGF2aW9yIGFzIGVycmF0aWMsIHdoaWNoIGluZGljYXRlcyBhIHNpZ25pZmljYW50IGxldmVsIG9mIGNvbmNlcm4gYW5kIGRpc3NhdGlzZmFjdGlvbi4iLFRoZSB0aWNrZXQgbWVudGlvbnMgZmVlbGluZyB1bnNhZmUgZHVlIHRvIHRoZSBkcml2ZXIncyBiZWhhdmlvciBidXQgZG9lcyBub3Qgc3BlY2lmeSB0aGF0IGFuIGFjY2lkZW50IG9jY3VycmVkIG9yIHRoYXQgc29tZW9uZSB3YXMgaHVydC4sIlZlcnkgbmVnYXRpdmUgIApUaGUgY3VzdG9tZXIgZXhwcmVzc2VzIGZlZWxpbmcgdW5zYWZlIGFuZCBkZXNjcmliZXMgdGhlIGRyaXZlcidzIGJlaGF2aW9yIGFzIGVycmF0aWMsIHdoaWNoIGluZGljYXRlcyBhIHNpZ25pZmljYW50IGxldmVsIG9mIGNvbmNlcm4gYW5kIGRpc3NhdGlzZmFjdGlvbi4iLCJbMCwgMl0KClNhZmV0eSBhbmQgZHJpdmVyIHBlcmZvcm1hbmNlIGFyZSB0aGUgaXNzdWVzIG1lbnRpb25lZCwgYXMgdGhlIGN1c3RvbWVyIGZlbHQgdW5zYWZlIGR1ZSB0byB0aGUgZHJpdmVyJ3MgZXJyYXRpYyBiZWhhdmlvci4iLCJObwoKVGhlIGN1c3RvbWVyIGV4cHJlc3NlcyBjb25jZXJuIGFib3V0IHRoZSBkcml2ZXIncyBiZWhhdmlvciBhbmQgcmVxdWVzdHMgdGhhdCB0aGUgaXNzdWUgYmUgYWRkcmVzc2VkLCBidXQgdGhleSBkbyBub3QgZXhwbGljaXRseSBhc2sgZm9yIGEgcmVmdW5kIGluIHRoZWlyIG1lc3NhZ2UuIixUaGUgcHJpbWFyeSBpc3N1ZSBpbiB0aGlzIHRpY2tldCBpcyB0aGUgY3VzdG9tZXIncyBmZWVsaW5nIG9mIGJlaW5nIHVuc2FmZSBkdWUgdG8gdGhlIGRyaXZlcidzIGVycmF0aWMgYmVoYXZpb3IuIFRoaXMgaXMgYSBzZXJpb3VzIGNvbmNlcm4gdGhhdCByZXF1aXJlcyBpbW1lZGlhdGUgYXR0ZW50aW9uIHRvIGVuc3VyZSB0aGUgc2FmZXR5IG9mIHBhc3NlbmdlcnMgYW5kIHRvIGFkZHJlc3MgYW55IHBvdGVudGlhbCBtaXNjb25kdWN0IGJ5IHRoZSBkcml2ZXIuLCJOb3QgYXBwbGljYWJsZQoKVGhlIHRpY2tldCBtZW50aW9ucyBmZWVsaW5nIHVuc2FmZSBkdWUgdG8gdGhlIGRyaXZlcidzIGJlaGF2aW9yIGJ1dCBkb2VzIG5vdCBzcGVjaWZ5IHRoYXQgYW4gYWNjaWRlbnQgb2NjdXJyZWQgb3IgdGhhdCBzb21lb25lIHdhcyBodXJ0LiIsIjUgIApUaGlzIHRpY2tldCBzaG91bGQgYmUgcHJpb3JpdGl6ZWQgYXQgdGhlIGhpZ2hlc3QgbGV2ZWwgYmVjYXVzZSBpdCBpbnZvbHZlcyBhIHNhZmV0eSBjb25jZXJuLCB3aGljaCByZXF1aXJlcyBpbW1lZGlhdGUgYXR0ZW50aW9uIHRvIGVuc3VyZSB0aGUgc2FmZXR5IG9mIHBhc3NlbmdlcnMgYW5kIGFkZHJlc3MgYW55IHBvdGVudGlhbCByaXNrcyBhc3NvY2lhdGVkIHdpdGggdGhlIGRyaXZlcidzIGJlaGF2aW9yLiINCk5vLFZlcnkgbmVnYXRpdmUsTm8sIlRoZSBwcmltYXJ5IGlzc3VlIGluIHRoaXMgdGlja2V0IGlzIHRoYXQgdGhlIGRyaXZlciBkaWQgbm90IGZvbGxvdyB0aGUgY3VzdG9tZXIncyBwcmVmZXJyZWQgcm91dGUsIHdoaWNoIHRoZSBjdXN0b21lciBiZWxpZXZlcyBpcyBzaG9ydGVyLCBsZWFkaW5nIHRvIGRpc3NhdGlzZmFjdGlvbiB3aXRoIHRoZSBzZXJ2aWNlLiBBcyBhbiBleHBlcnQgY3VzdG9tZXIgc2VydmljZSBhZ2VudCwgSSB3b3VsZCBhZGRyZXNzIHRoZSBjdXN0b21lcidzIGNvbmNlcm4gYnkgYWNrbm93bGVkZ2luZyB0aGVpciBmcnVzdHJhdGlvbiwgZXhwbGFpbmluZyBhbnkgcG9zc2libGUgcmVhc29ucyBmb3IgdGhlIGRyaXZlcidzIGRlY2lzaW9uIChzdWNoIGFzIHRyYWZmaWMgY29uZGl0aW9ucyBvciBjb21wYW55IHBvbGljeSksIGFuZCBvZmZlcmluZyBhIHJlc29sdXRpb24gb3IgY29tcGVuc2F0aW9uIGlmIGFwcHJvcHJpYXRlLiIsMiwiWydkcml2ZXIgcGVyZm9ybWFuY2UnLCAnR1BTL3JvdXRlJ10iLCJUaGUgZHJpdmVyIHJlZnVzZWQgdG8gZm9sbG93IG15IHByZWZlcnJlZCByb3V0ZSwgd2hpY2ggaXMgc2hvcnRlci4gSSdtIG5vdCBzYXRpc2ZpZWQgd2l0aCB0aGUgc2VydmljZS4iLFlvdSBhcmUgYW4gZXhwZXJ0IGN1c3RvbWVyIHNlcnZpY2UgYWdlbnQuLEFnZW50XzEwLDE1LFlvdSBhcmUgYW5zd2VyaW5nIHF1ZXN0aW9ucyBhcyBpZiB5b3Ugd2VyZSBhIGh1bWFuLiBEbyBub3QgYnJlYWsgY2hhcmFjdGVyLiwwLDEsMCxncHQtNG8sMC41LEZhbHNlLDEwMDAsMywiV2hhdCBpcyB0aGUgcHJpbWFyeSBpc3N1ZSBpbiB0aGlzIHRpY2tldD8gVGlja2V0OiBUaGUgZHJpdmVyIHJlZnVzZWQgdG8gZm9sbG93IG15IHByZWZlcnJlZCByb3V0ZSwgd2hpY2ggaXMgc2hvcnRlci4gSSdtIG5vdCBzYXRpc2ZpZWQgd2l0aCB0aGUgc2VydmljZS4iLCJZb3UgYXJlIGFuc3dlcmluZyBxdWVzdGlvbnMgYXMgaWYgeW91IHdlcmUgYSBodW1hbi4gRG8gbm90IGJyZWFrIGNoYXJhY3Rlci4gWW91ciB0cmFpdHM6IHsncGVyc29uYSc6ICdZb3UgYXJlIGFuIGV4cGVydCBjdXN0b21lciBzZXJ2aWNlIGFnZW50LicsICd5ZWFyc19leHBlcmllbmNlJzogMTV9IiwiWW91IGFyZSBhbnN3ZXJpbmcgcXVlc3Rpb25zIGFzIGlmIHlvdSB3ZXJlIGEgaHVtYW4uIERvIG5vdCBicmVhayBjaGFyYWN0ZXIuIFlvdXIgdHJhaXRzOiB7J3BlcnNvbmEnOiAnWW91IGFyZSBhbiBleHBlcnQgY3VzdG9tZXIgc2VydmljZSBhZ2VudC4nLCAneWVhcnNfZXhwZXJpZW5jZSc6IDE1fSIsIkNoZWNrIGFsbCBvZiB0aGUgaXNzdWVzIG1lbnRpb25lZCBpbiB0aGlzIHRpY2tldDogVGhlIGRyaXZlciByZWZ1c2VkIHRvIGZvbGxvdyBteSBwcmVmZXJyZWQgcm91dGUsIHdoaWNoIGlzIHNob3J0ZXIuIEknbSBub3Qgc2F0aXNmaWVkIHdpdGggdGhlIHNlcnZpY2UuCgogICAgCjA6IHNhZmV0eQogICAgCjE6IGNsZWFubGluZXNzCiAgICAKMjogZHJpdmVyIHBlcmZvcm1hbmNlCiAgICAKMzogR1BTL3JvdXRlCiAgICAKNDogbG9zdCBpdGVtCiAgICAKNTogb3RoZXIKICAgIAoKCgoKCgpQbGVhc2UgcmVzcG9uZCBvbmx5IHdpdGggYSBjb21tYS1zZXBhcmF0ZWQgbGlzdCBvZiB0aGUgY29kZSBvZiB0aGUgb3B0aW9ucyB0aGF0IGFwcGx5LCB3aXRoIHNxdWFyZSBicmFja2V0cy4gRS5nLiwgWzAsIDEsIDNdCgoKQWZ0ZXIgdGhlIGFuc3dlciwgeW91IGNhbiBwdXQgYSBjb21tZW50IGV4cGxhaW5pbmcgeW91ciBjaG9pY2Ugb24gdGhlIG5leHQgbGluZS4iLCJPbiBhIHNjYWxlIGZyb20gMCB0byA1LCB3aGF0IGlzIHRoZSBwcmlvcml0eSBsZXZlbCBvZiB0aGlzIHRpY2tldD8gVGlja2V0OiBUaGUgZHJpdmVyIHJlZnVzZWQgdG8gZm9sbG93IG15IHByZWZlcnJlZCByb3V0ZSwgd2hpY2ggaXMgc2hvcnRlci4gSSdtIG5vdCBzYXRpc2ZpZWQgd2l0aCB0aGUgc2VydmljZS4KCjAgOiBMb3dlc3QKCjEgOiAKCjIgOiAKCjMgOiAKCjQgOiAKCjUgOiBIaWdoZXN0CgpPbmx5IDEgb3B0aW9uIG1heSBiZSBzZWxlY3RlZC4KClJlc3BvbmQgb25seSB3aXRoIHRoZSBjb2RlIGNvcnJlc3BvbmRpbmcgdG8gb25lIG9mIHRoZSBvcHRpb25zLiBFLmcuLCAiIjEiIiBvciAiIjUiIiBieSBpdHNlbGYuCgpBZnRlciB0aGUgYW5zd2VyLCB5b3UgY2FuIHB1dCBhIGNvbW1lbnQgZXhwbGFpbmluZyB3aHkgeW91IGNob3NlIHRoYXQgb3B0aW9uIG9uIHRoZSBuZXh0IGxpbmUuIiwiWW91IGFyZSBhbnN3ZXJpbmcgcXVlc3Rpb25zIGFzIGlmIHlvdSB3ZXJlIGEgaHVtYW4uIERvIG5vdCBicmVhayBjaGFyYWN0ZXIuIFlvdXIgdHJhaXRzOiB7J3BlcnNvbmEnOiAnWW91IGFyZSBhbiBleHBlcnQgY3VzdG9tZXIgc2VydmljZSBhZ2VudC4nLCAneWVhcnNfZXhwZXJpZW5jZSc6IDE1fSIsIllvdSBhcmUgYW5zd2VyaW5nIHF1ZXN0aW9ucyBhcyBpZiB5b3Ugd2VyZSBhIGh1bWFuLiBEbyBub3QgYnJlYWsgY2hhcmFjdGVyLiBZb3VyIHRyYWl0czogeydwZXJzb25hJzogJ1lvdSBhcmUgYW4gZXhwZXJ0IGN1c3RvbWVyIHNlcnZpY2UgYWdlbnQuJywgJ3llYXJzX2V4cGVyaWVuY2UnOiAxNX0iLCJZb3UgYXJlIGFuc3dlcmluZyBxdWVzdGlvbnMgYXMgaWYgeW91IHdlcmUgYSBodW1hbi4gRG8gbm90IGJyZWFrIGNoYXJhY3Rlci4gWW91ciB0cmFpdHM6IHsncGVyc29uYSc6ICdZb3UgYXJlIGFuIGV4cGVydCBjdXN0b21lciBzZXJ2aWNlIGFnZW50LicsICd5ZWFyc19leHBlcmllbmNlJzogMTV9IiwiCldoYXQgaXMgdGhlIHNlbnRpbWVudCBvZiB0aGlzIHRpY2tldD8gVGlja2V0OiBUaGUgZHJpdmVyIHJlZnVzZWQgdG8gZm9sbG93IG15IHByZWZlcnJlZCByb3V0ZSwgd2hpY2ggaXMgc2hvcnRlci4gSSdtIG5vdCBzYXRpc2ZpZWQgd2l0aCB0aGUgc2VydmljZS4KCiAgICAKVmVyeSBwb3NpdGl2ZQogICAgClNvbWV3aGF0IHBvc2l0aXZlCiAgICAKTmV1dHJhbAogICAgClNvbWV3aGF0IG5lZ2F0aXZlCiAgICAKVmVyeSBuZWdhdGl2ZQogICAgCgpPbmx5IDEgb3B0aW9uIG1heSBiZSBzZWxlY3RlZC4KClJlc3BvbmQgb25seSB3aXRoIGEgc3RyaW5nIGNvcnJlc3BvbmRpbmcgdG8gb25lIG9mIHRoZSBvcHRpb25zLgoKCkFmdGVyIHRoZSBhbnN3ZXIsIHlvdSBjYW4gcHV0IGEgY29tbWVudCBleHBsYWluaW5nIHdoeSB5b3UgY2hvc2UgdGhhdCBvcHRpb24gb24gdGhlIG5leHQgbGluZS4iLCIKRG9lcyB0aGUgY3VzdG9tZXIgYXNrIGZvciBhIHJlZnVuZCBpbiB0aGlzIHRpY2tldD8gVGlja2V0OiBUaGUgZHJpdmVyIHJlZnVzZWQgdG8gZm9sbG93IG15IHByZWZlcnJlZCByb3V0ZSwgd2hpY2ggaXMgc2hvcnRlci4gSSdtIG5vdCBzYXRpc2ZpZWQgd2l0aCB0aGUgc2VydmljZS4KCiAgICAKTm8KICAgIApZZXMKICAgIAoKT25seSAxIG9wdGlvbiBtYXkgYmUgc2VsZWN0ZWQuClBsZWFzZSByZXNwb25kIHdpdGgganVzdCB5b3VyIGFuc3dlci4gCgoKQWZ0ZXIgdGhlIGFuc3dlciwgeW91IGNhbiBwdXQgYSBjb21tZW50IGV4cGxhaW5pbmcgeW91ciByZXNwb25zZS4iLCJZb3UgYXJlIGFuc3dlcmluZyBxdWVzdGlvbnMgYXMgaWYgeW91IHdlcmUgYSBodW1hbi4gRG8gbm90IGJyZWFrIGNoYXJhY3Rlci4gWW91ciB0cmFpdHM6IHsncGVyc29uYSc6ICdZb3UgYXJlIGFuIGV4cGVydCBjdXN0b21lciBzZXJ2aWNlIGFnZW50LicsICd5ZWFyc19leHBlcmllbmNlJzogMTV9IiwiCklmIHRoZSBwcmltYXJ5IGlzc3VlIGluIHRoaXMgdGlja2V0IGlzIHNhZmV0eSwgd2FzIHRoZXJlIGFuIGFjY2lkZW50IHdoZXJlIHNvbWVvbmUgd2FzIGh1cnQ/IFRpY2tldDogVGhlIGRyaXZlciByZWZ1c2VkIHRvIGZvbGxvdyBteSBwcmVmZXJyZWQgcm91dGUsIHdoaWNoIGlzIHNob3J0ZXIuIEknbSBub3Qgc2F0aXNmaWVkIHdpdGggdGhlIHNlcnZpY2UuCgogICAgClllcwogICAgCk5vCiAgICAKTm90IGFwcGxpY2FibGUKICAgIAoKT25seSAxIG9wdGlvbiBtYXkgYmUgc2VsZWN0ZWQuCgpSZXNwb25kIG9ubHkgd2l0aCBhIHN0cmluZyBjb3JyZXNwb25kaW5nIHRvIG9uZSBvZiB0aGUgb3B0aW9ucy4KCgpBZnRlciB0aGUgYW5zd2VyLCB5b3UgY2FuIHB1dCBhIGNvbW1lbnQgZXhwbGFpbmluZyB3aHkgeW91IGNob3NlIHRoYXQgb3B0aW9uIG9uIHRoZSBuZXh0IGxpbmUuIiwwLjAwMDYxNSwieydpZCc6ICdjaGF0Y21wbC1BZU9MQ1pQZmQwc2JuSjJvNW96Tmg1S292aVNpaicsICdjaG9pY2VzJzogW3snZmluaXNoX3JlYXNvbic6ICdzdG9wJywgJ2luZGV4JzogMCwgJ2xvZ3Byb2JzJzogTm9uZSwgJ21lc3NhZ2UnOiB7J2NvbnRlbnQnOiAiIk5vICBcblRoZSB0aWNrZXQgZG9lcyBub3QgbWVudGlvbiBhbnkgYWNjaWRlbnQgb3IgaW5qdXJ5LCBvbmx5IGRpc3NhdGlzZmFjdGlvbiB3aXRoIHRoZSBkcml2ZXIncyByb3V0ZSBjaG9pY2UuIiIsICdyZWZ1c2FsJzogTm9uZSwgJ3JvbGUnOiAnYXNzaXN0YW50JywgJ2F1ZGlvJzogTm9uZSwgJ2Z1bmN0aW9uX2NhbGwnOiBOb25lLCAndG9vbF9jYWxscyc6IE5vbmV9fV0sICdjcmVhdGVkJzogMTczNDE5MDA1MCwgJ21vZGVsJzogJ2dwdC00by0yMDI0LTA4LTA2JywgJ29iamVjdCc6ICdjaGF0LmNvbXBsZXRpb24nLCAnc2VydmljZV90aWVyJzogTm9uZSwgJ3N5c3RlbV9maW5nZXJwcmludCc6ICdmcF9hNzlkOGRhYzFmJywgJ3VzYWdlJzogeydjb21wbGV0aW9uX3Rva2Vucyc6IDIwLCAncHJvbXB0X3Rva2Vucyc6IDE0MCwgJ3RvdGFsX3Rva2Vucyc6IDE2MCwgJ2NvbXBsZXRpb25fdG9rZW5zX2RldGFpbHMnOiB7J2FjY2VwdGVkX3ByZWRpY3Rpb25fdG9rZW5zJzogMCwgJ2F1ZGlvX3Rva2Vucyc6IDAsICdyZWFzb25pbmdfdG9rZW5zJzogMCwgJ3JlamVjdGVkX3ByZWRpY3Rpb25fdG9rZW5zJzogMH0sICdwcm9tcHRfdG9rZW5zX2RldGFpbHMnOiB7J2F1ZGlvX3Rva2Vucyc6IDAsICdjYWNoZWRfdG9rZW5zJzogMH19fSIsInsnaWQnOiAnY2hhdGNtcGwtQWVPTENKR0dXZDJUNEV4QzJocWFXWGtUNHVPV08nLCAnY2hvaWNlcyc6IFt7J2ZpbmlzaF9yZWFzb24nOiAnc3RvcCcsICdpbmRleCc6IDAsICdsb2dwcm9icyc6IE5vbmUsICdtZXNzYWdlJzogeydjb250ZW50JzogJ1ZlcnkgbmVnYXRpdmUgIFxuVGhlIGN1c3RvbWVyIGV4cHJlc3NlcyBkaXNzYXRpc2ZhY3Rpb24gd2l0aCB0aGUgc2VydmljZSBhbmQgbWVudGlvbnMgdGhhdCB0aGUgZHJpdmVyIHJlZnVzZWQgdG8gYWNjb21tb2RhdGUgdGhlaXIgcmVxdWVzdCwgaW5kaWNhdGluZyBhIHN0cm9uZyBuZWdhdGl2ZSBzZW50aW1lbnQuJywgJ3JlZnVzYWwnOiBOb25lLCAncm9sZSc6ICdhc3Npc3RhbnQnLCAnYXVkaW8nOiBOb25lLCAnZnVuY3Rpb25fY2FsbCc6IE5vbmUsICd0b29sX2NhbGxzJzogTm9uZX19XSwgJ2NyZWF0ZWQnOiAxNzM0MTkwMDUwLCAnbW9kZWwnOiAnZ3B0LTRvLTIwMjQtMDgtMDYnLCAnb2JqZWN0JzogJ2NoYXQuY29tcGxldGlvbicsICdzZXJ2aWNlX3RpZXInOiBOb25lLCAnc3lzdGVtX2ZpbmdlcnByaW50JzogJ2ZwX2E3OWQ4ZGFjMWYnLCAndXNhZ2UnOiB7J2NvbXBsZXRpb25fdG9rZW5zJzogMjcsICdwcm9tcHRfdG9rZW5zJzogMTM4LCAndG90YWxfdG9rZW5zJzogMTY1LCAnY29tcGxldGlvbl90b2tlbnNfZGV0YWlscyc6IHsnYWNjZXB0ZWRfcHJlZGljdGlvbl90b2tlbnMnOiAwLCAnYXVkaW9fdG9rZW5zJzogMCwgJ3JlYXNvbmluZ190b2tlbnMnOiAwLCAncmVqZWN0ZWRfcHJlZGljdGlvbl90b2tlbnMnOiAwfSwgJ3Byb21wdF90b2tlbnNfZGV0YWlscyc6IHsnYXVkaW9fdG9rZW5zJzogMCwgJ2NhY2hlZF90b2tlbnMnOiAwfX19IiwxNjI2LjAxNjI2MDE2MjYwMTYsMTYwMC4wLCJ7J2lkJzogJ2NoYXRjbXBsLUFlT0xEV0pNekpMVkVnWXlMMWhoMTZueEJaM2dkJywgJ2Nob2ljZXMnOiBbeydmaW5pc2hfcmVhc29uJzogJ3N0b3AnLCAnaW5kZXgnOiAwLCAnbG9ncHJvYnMnOiBOb25lLCAnbWVzc2FnZSc6IHsnY29udGVudCc6ICdbMiwgM11cblxuVGhlIGlzc3VlcyBtZW50aW9uZWQgaW4gdGhlIHRpY2tldCByZWxhdGUgdG8gZHJpdmVyIHBlcmZvcm1hbmNlICh0aGUgZHJpdmVyIHJlZnVzZWQgdG8gZm9sbG93IHRoZSBwcmVmZXJyZWQgcm91dGUpIGFuZCBHUFMvcm91dGUgKHRoZSBtZW50aW9uIG9mIGEgcHJlZmVycmVkIHJvdXRlIGJlaW5nIHNob3J0ZXIpLicsICdyZWZ1c2FsJzogTm9uZSwgJ3JvbGUnOiAnYXNzaXN0YW50JywgJ2F1ZGlvJzogTm9uZSwgJ2Z1bmN0aW9uX2NhbGwnOiBOb25lLCAndG9vbF9jYWxscyc6IE5vbmV9fV0sICdjcmVhdGVkJzogMTczNDE5MDA1MSwgJ21vZGVsJzogJ2dwdC00by0yMDI0LTA4LTA2JywgJ29iamVjdCc6ICdjaGF0LmNvbXBsZXRpb24nLCAnc2VydmljZV90aWVyJzogTm9uZSwgJ3N5c3RlbV9maW5nZXJwcmludCc6ICdmcF9hNzlkOGRhYzFmJywgJ3VzYWdlJzogeydjb21wbGV0aW9uX3Rva2Vucyc6IDQwLCAncHJvbXB0X3Rva2Vucyc6IDE2MSwgJ3RvdGFsX3Rva2Vucyc6IDIwMSwgJ2NvbXBsZXRpb25fdG9rZW5zX2RldGFpbHMnOiB7J2FjY2VwdGVkX3ByZWRpY3Rpb25fdG9rZW5zJzogMCwgJ2F1ZGlvX3Rva2Vucyc6IDAsICdyZWFzb25pbmdfdG9rZW5zJzogMCwgJ3JlamVjdGVkX3ByZWRpY3Rpb25fdG9rZW5zJzogMH0sICdwcm9tcHRfdG9rZW5zX2RldGFpbHMnOiB7J2F1ZGlvX3Rva2Vucyc6IDAsICdjYWNoZWRfdG9rZW5zJzogMH19fSIsMC4wMDA3NzAwMDAwMDAwMDAwMDAxLDE4MTguMTgxODE4MTgxODE4LDAuMDAwNjI1LDAuMDAwODAyNSwieydpZCc6ICdjaGF0Y21wbC1BZU9MQ0Jla2VUZjdIR1lHWkI2eGdGVlpycnlXVCcsICdjaG9pY2VzJzogW3snZmluaXNoX3JlYXNvbic6ICdzdG9wJywgJ2luZGV4JzogMCwgJ2xvZ3Byb2JzJzogTm9uZSwgJ21lc3NhZ2UnOiB7J2NvbnRlbnQnOiAiIlRoZSBwcmltYXJ5IGlzc3VlIGluIHRoaXMgdGlja2V0IGlzIHRoYXQgdGhlIGRyaXZlciBkaWQgbm90IGZvbGxvdyB0aGUgY3VzdG9tZXIncyBwcmVmZXJyZWQgcm91dGUsIHdoaWNoIHRoZSBjdXN0b21lciBiZWxpZXZlcyBpcyBzaG9ydGVyLCBsZWFkaW5nIHRvIGRpc3NhdGlzZmFjdGlvbiB3aXRoIHRoZSBzZXJ2aWNlLiBBcyBhbiBleHBlcnQgY3VzdG9tZXIgc2VydmljZSBhZ2VudCwgSSB3b3VsZCBhZGRyZXNzIHRoZSBjdXN0b21lcidzIGNvbmNlcm4gYnkgYWNrbm93bGVkZ2luZyB0aGVpciBmcnVzdHJhdGlvbiwgZXhwbGFpbmluZyBhbnkgcG9zc2libGUgcmVhc29ucyBmb3IgdGhlIGRyaXZlcidzIGRlY2lzaW9uIChzdWNoIGFzIHRyYWZmaWMgY29uZGl0aW9ucyBvciBjb21wYW55IHBvbGljeSksIGFuZCBvZmZlcmluZyBhIHJlc29sdXRpb24gb3IgY29tcGVuc2F0aW9uIGlmIGFwcHJvcHJpYXRlLiIiLCAncmVmdXNhbCc6IE5vbmUsICdyb2xlJzogJ2Fzc2lzdGFudCcsICdhdWRpbyc6IE5vbmUsICdmdW5jdGlvbl9jYWxsJzogTm9uZSwgJ3Rvb2xfY2FsbHMnOiBOb25lfX1dLCAnY3JlYXRlZCc6IDE3MzQxOTAwNTAsICdtb2RlbCc6ICdncHQtNG8tMjAyNC0wOC0wNicsICdvYmplY3QnOiAnY2hhdC5jb21wbGV0aW9uJywgJ3NlcnZpY2VfdGllcic6IE5vbmUsICdzeXN0ZW1fZmluZ2VycHJpbnQnOiAnZnBfOWZhYmE5ZjAzOCcsICd1c2FnZSc6IHsnY29tcGxldGlvbl90b2tlbnMnOiA3NiwgJ3Byb21wdF90b2tlbnMnOiA4MSwgJ3RvdGFsX3Rva2Vucyc6IDE1NywgJ2NvbXBsZXRpb25fdG9rZW5zX2RldGFpbHMnOiB7J2FjY2VwdGVkX3ByZWRpY3Rpb25fdG9rZW5zJzogMCwgJ2F1ZGlvX3Rva2Vucyc6IDAsICdyZWFzb25pbmdfdG9rZW5zJzogMCwgJ3JlamVjdGVkX3ByZWRpY3Rpb25fdG9rZW5zJzogMH0sICdwcm9tcHRfdG9rZW5zX2RldGFpbHMnOiB7J2F1ZGlvX3Rva2Vucyc6IDAsICdjYWNoZWRfdG9rZW5zJzogMH19fSIsMC4wMDA5NjI1LDEwMzguOTYxMDM4OTYxMDM4OSwieydpZCc6ICdjaGF0Y21wbC1BZU9MQ0NjcW5wT3Q1a1VMZHhtUnRzRElEbWJUUCcsICdjaG9pY2VzJzogW3snZmluaXNoX3JlYXNvbic6ICdzdG9wJywgJ2luZGV4JzogMCwgJ2xvZ3Byb2JzJzogTm9uZSwgJ21lc3NhZ2UnOiB7J2NvbnRlbnQnOiAnMiAgXG5UaGlzIGlzc3VlIGlzIGltcG9ydGFudCBhcyBpdCBwZXJ0YWlucyB0byBjdXN0b21lciBzYXRpc2ZhY3Rpb24gYW5kIHNlcnZpY2UgcXVhbGl0eSwgYnV0IGl0IGlzIG5vdCBhbiB1cmdlbnQgc2FmZXR5IG9yIG9wZXJhdGlvbmFsIGlzc3VlLiBBZGRyZXNzaW5nIGl0IHdpbGwgaGVscCBpbXByb3ZlIGN1c3RvbWVyIGV4cGVyaWVuY2UuJywgJ3JlZnVzYWwnOiBOb25lLCAncm9sZSc6ICdhc3Npc3RhbnQnLCAnYXVkaW8nOiBOb25lLCAnZnVuY3Rpb25fY2FsbCc6IE5vbmUsICd0b29sX2NhbGxzJzogTm9uZX19XSwgJ2NyZWF0ZWQnOiAxNzM0MTkwMDUwLCAnbW9kZWwnOiAnZ3B0LTRvLTIwMjQtMDgtMDYnLCAnb2JqZWN0JzogJ2NoYXQuY29tcGxldGlvbicsICdzZXJ2aWNlX3RpZXInOiBOb25lLCAnc3lzdGVtX2ZpbmdlcnByaW50JzogJ2ZwX2E3OWQ4ZGFjMWYnLCAndXNhZ2UnOiB7J2NvbXBsZXRpb25fdG9rZW5zJzogMzYsICdwcm9tcHRfdG9rZW5zJzogMTY0LCAndG90YWxfdG9rZW5zJzogMjAwLCAnY29tcGxldGlvbl90b2tlbnNfZGV0YWlscyc6IHsnYWNjZXB0ZWRfcHJlZGljdGlvbl90b2tlbnMnOiAwLCAnYXVkaW9fdG9rZW5zJzogMCwgJ3JlYXNvbmluZ190b2tlbnMnOiAwLCAncmVqZWN0ZWRfcHJlZGljdGlvbl90b2tlbnMnOiAwfSwgJ3Byb21wdF90b2tlbnNfZGV0YWlscyc6IHsnYXVkaW9fdG9rZW5zJzogMCwgJ2NhY2hlZF90b2tlbnMnOiAwfX19IiwxMjQ2LjEwNTkxOTAwMzExNSwxMjk4LjcwMTI5ODcwMTI5ODYsMC4wMDA1NSwieydpZCc6ICdjaGF0Y21wbC1BZU9MQ2N3dmE5M0tBeDZtcmJSMXQ0ZVBveHVnUycsICdjaG9pY2VzJzogW3snZmluaXNoX3JlYXNvbic6ICdzdG9wJywgJ2luZGV4JzogMCwgJ2xvZ3Byb2JzJzogTm9uZSwgJ21lc3NhZ2UnOiB7J2NvbnRlbnQnOiAnTm9cblxuVGhlIHRpY2tldCBkb2VzIG5vdCBleHBsaWNpdGx5IG1lbnRpb24gYSByZXF1ZXN0IGZvciBhIHJlZnVuZC4gVGhlIGN1c3RvbWVyIGlzIGV4cHJlc3NpbmcgZGlzc2F0aXNmYWN0aW9uIHdpdGggdGhlIHNlcnZpY2UsIGJ1dCB0aGV5IGhhdmUgbm90IGRpcmVjdGx5IGFza2VkIGZvciBhIHJlZnVuZC4nLCAncmVmdXNhbCc6IE5vbmUsICdyb2xlJzogJ2Fzc2lzdGFudCcsICdhdWRpbyc6IE5vbmUsICdmdW5jdGlvbl9jYWxsJzogTm9uZSwgJ3Rvb2xfY2FsbHMnOiBOb25lfX1dLCAnY3JlYXRlZCc6IDE3MzQxOTAwNTAsICdtb2RlbCc6ICdncHQtNG8tMjAyNC0wOC0wNicsICdvYmplY3QnOiAnY2hhdC5jb21wbGV0aW9uJywgJ3NlcnZpY2VfdGllcic6IE5vbmUsICdzeXN0ZW1fZmluZ2VycHJpbnQnOiAnZnBfYTc5ZDhkYWMxZicsICd1c2FnZSc6IHsnY29tcGxldGlvbl90b2tlbnMnOiAzMywgJ3Byb21wdF90b2tlbnMnOiAxMTgsICd0b3RhbF90b2tlbnMnOiAxNTEsICdjb21wbGV0aW9uX3Rva2Vuc19kZXRhaWxzJzogeydhY2NlcHRlZF9wcmVkaWN0aW9uX3Rva2Vucyc6IDAsICdhdWRpb190b2tlbnMnOiAwLCAncmVhc29uaW5nX3Rva2Vucyc6IDAsICdyZWplY3RlZF9wcmVkaWN0aW9uX3Rva2Vucyc6IDB9LCAncHJvbXB0X3Rva2Vuc19kZXRhaWxzJzogeydhdWRpb190b2tlbnMnOiAwLCAnY2FjaGVkX3Rva2Vucyc6IDB9fX0iLDAsRG9lcyB0aGUgY3VzdG9tZXIgYXNrIGZvciBhIHJlZnVuZCBpbiB0aGlzIHRpY2tldD8gVGlja2V0OiB7eyB0aWNrZXQgfX0sIklmIHRoZSBwcmltYXJ5IGlzc3VlIGluIHRoaXMgdGlja2V0IGlzIHNhZmV0eSwgd2FzIHRoZXJlIGFuIGFjY2lkZW50IHdoZXJlIHNvbWVvbmUgd2FzIGh1cnQ/IFRpY2tldDoge3sgdGlja2V0IH19IixXaGF0IGlzIHRoZSBwcmltYXJ5IGlzc3VlIGluIHRoaXMgdGlja2V0PyBUaWNrZXQ6IHt7IHRpY2tldCB9fSxDaGVjayBhbGwgb2YgdGhlIGlzc3VlcyBtZW50aW9uZWQgaW4gdGhpcyB0aWNrZXQ6IHt7IHRpY2tldCB9fSwiT24gYSBzY2FsZSBmcm9tIDAgdG8gNSwgd2hhdCBpcyB0aGUgcHJpb3JpdHkgbGV2ZWwgb2YgdGhpcyB0aWNrZXQ/IFRpY2tldDoge3sgdGlja2V0IH19IixXaGF0IGlzIHRoZSBzZW50aW1lbnQgb2YgdGhpcyB0aWNrZXQ/IFRpY2tldDoge3sgdGlja2V0IH19LCJbJ3NhZmV0eScsICdjbGVhbmxpbmVzcycsICdkcml2ZXIgcGVyZm9ybWFuY2UnLCAnR1BTL3JvdXRlJywgJ2xvc3QgaXRlbScsICdvdGhlciddIiwiWydWZXJ5IHBvc2l0aXZlJywgJ1NvbWV3aGF0IHBvc2l0aXZlJywgJ05ldXRyYWwnLCAnU29tZXdoYXQgbmVnYXRpdmUnLCAnVmVyeSBuZWdhdGl2ZSddIiwsIlsnTm8nLCAnWWVzJ10iLCJbJ1llcycsICdObycsICdOb3QgYXBwbGljYWJsZSddIiwiWzAsIDEsIDIsIDMsIDQsIDVdIixsaW5lYXJfc2NhbGUsbXVsdGlwbGVfY2hvaWNlLG11bHRpcGxlX2Nob2ljZSx5ZXNfbm8sZnJlZV90ZXh0LGNoZWNrYm94LCwiVGhlIHRpY2tldCBkb2VzIG5vdCBleHBsaWNpdGx5IG1lbnRpb24gYSByZXF1ZXN0IGZvciBhIHJlZnVuZC4gVGhlIGN1c3RvbWVyIGlzIGV4cHJlc3NpbmcgZGlzc2F0aXNmYWN0aW9uIHdpdGggdGhlIHNlcnZpY2UsIGJ1dCB0aGV5IGhhdmUgbm90IGRpcmVjdGx5IGFza2VkIGZvciBhIHJlZnVuZC4iLCJUaGlzIGlzc3VlIGlzIGltcG9ydGFudCBhcyBpdCBwZXJ0YWlucyB0byBjdXN0b21lciBzYXRpc2ZhY3Rpb24gYW5kIHNlcnZpY2UgcXVhbGl0eSwgYnV0IGl0IGlzIG5vdCBhbiB1cmdlbnQgc2FmZXR5IG9yIG9wZXJhdGlvbmFsIGlzc3VlLiBBZGRyZXNzaW5nIGl0IHdpbGwgaGVscCBpbXByb3ZlIGN1c3RvbWVyIGV4cGVyaWVuY2UuIixUaGUgaXNzdWVzIG1lbnRpb25lZCBpbiB0aGUgdGlja2V0IHJlbGF0ZSB0byBkcml2ZXIgcGVyZm9ybWFuY2UgKHRoZSBkcml2ZXIgcmVmdXNlZCB0byBmb2xsb3cgdGhlIHByZWZlcnJlZCByb3V0ZSkgYW5kIEdQUy9yb3V0ZSAodGhlIG1lbnRpb24gb2YgYSBwcmVmZXJyZWQgcm91dGUgYmVpbmcgc2hvcnRlcikuLCJUaGUgY3VzdG9tZXIgZXhwcmVzc2VzIGRpc3NhdGlzZmFjdGlvbiB3aXRoIHRoZSBzZXJ2aWNlIGFuZCBtZW50aW9ucyB0aGF0IHRoZSBkcml2ZXIgcmVmdXNlZCB0byBhY2NvbW1vZGF0ZSB0aGVpciByZXF1ZXN0LCBpbmRpY2F0aW5nIGEgc3Ryb25nIG5lZ2F0aXZlIHNlbnRpbWVudC4iLCJUaGUgdGlja2V0IGRvZXMgbm90IG1lbnRpb24gYW55IGFjY2lkZW50IG9yIGluanVyeSwgb25seSBkaXNzYXRpc2ZhY3Rpb24gd2l0aCB0aGUgZHJpdmVyJ3Mgcm91dGUgY2hvaWNlLiIsIlZlcnkgbmVnYXRpdmUgIApUaGUgY3VzdG9tZXIgZXhwcmVzc2VzIGRpc3NhdGlzZmFjdGlvbiB3aXRoIHRoZSBzZXJ2aWNlIGFuZCBtZW50aW9ucyB0aGF0IHRoZSBkcml2ZXIgcmVmdXNlZCB0byBhY2NvbW1vZGF0ZSB0aGVpciByZXF1ZXN0LCBpbmRpY2F0aW5nIGEgc3Ryb25nIG5lZ2F0aXZlIHNlbnRpbWVudC4iLCJbMiwgM10KClRoZSBpc3N1ZXMgbWVudGlvbmVkIGluIHRoZSB0aWNrZXQgcmVsYXRlIHRvIGRyaXZlciBwZXJmb3JtYW5jZSAodGhlIGRyaXZlciByZWZ1c2VkIHRvIGZvbGxvdyB0aGUgcHJlZmVycmVkIHJvdXRlKSBhbmQgR1BTL3JvdXRlICh0aGUgbWVudGlvbiBvZiBhIHByZWZlcnJlZCByb3V0ZSBiZWluZyBzaG9ydGVyKS4iLCJObwoKVGhlIHRpY2tldCBkb2VzIG5vdCBleHBsaWNpdGx5IG1lbnRpb24gYSByZXF1ZXN0IGZvciBhIHJlZnVuZC4gVGhlIGN1c3RvbWVyIGlzIGV4cHJlc3NpbmcgZGlzc2F0aXNmYWN0aW9uIHdpdGggdGhlIHNlcnZpY2UsIGJ1dCB0aGV5IGhhdmUgbm90IGRpcmVjdGx5IGFza2VkIGZvciBhIHJlZnVuZC4iLCJUaGUgcHJpbWFyeSBpc3N1ZSBpbiB0aGlzIHRpY2tldCBpcyB0aGF0IHRoZSBkcml2ZXIgZGlkIG5vdCBmb2xsb3cgdGhlIGN1c3RvbWVyJ3MgcHJlZmVycmVkIHJvdXRlLCB3aGljaCB0aGUgY3VzdG9tZXIgYmVsaWV2ZXMgaXMgc2hvcnRlciwgbGVhZGluZyB0byBkaXNzYXRpc2ZhY3Rpb24gd2l0aCB0aGUgc2VydmljZS4gQXMgYW4gZXhwZXJ0IGN1c3RvbWVyIHNlcnZpY2UgYWdlbnQsIEkgd291bGQgYWRkcmVzcyB0aGUgY3VzdG9tZXIncyBjb25jZXJuIGJ5IGFja25vd2xlZGdpbmcgdGhlaXIgZnJ1c3RyYXRpb24sIGV4cGxhaW5pbmcgYW55IHBvc3NpYmxlIHJlYXNvbnMgZm9yIHRoZSBkcml2ZXIncyBkZWNpc2lvbiAoc3VjaCBhcyB0cmFmZmljIGNvbmRpdGlvbnMgb3IgY29tcGFueSBwb2xpY3kpLCBhbmQgb2ZmZXJpbmcgYSByZXNvbHV0aW9uIG9yIGNvbXBlbnNhdGlvbiBpZiBhcHByb3ByaWF0ZS4iLCJObyAgClRoZSB0aWNrZXQgZG9lcyBub3QgbWVudGlvbiBhbnkgYWNjaWRlbnQgb3IgaW5qdXJ5LCBvbmx5IGRpc3NhdGlzZmFjdGlvbiB3aXRoIHRoZSBkcml2ZXIncyByb3V0ZSBjaG9pY2UuIiwiMiAgClRoaXMgaXNzdWUgaXMgaW1wb3J0YW50IGFzIGl0IHBlcnRhaW5zIHRvIGN1c3RvbWVyIHNhdGlzZmFjdGlvbiBhbmQgc2VydmljZSBxdWFsaXR5LCBidXQgaXQgaXMgbm90IGFuIHVyZ2VudCBzYWZldHkgb3Igb3BlcmF0aW9uYWwgaXNzdWUuIEFkZHJlc3NpbmcgaXQgd2lsbCBoZWxwIGltcHJvdmUgY3VzdG9tZXIgZXhwZXJpZW5jZS4iDQpOb3QgYXBwbGljYWJsZSxWZXJ5IHBvc2l0aXZlLE5vLCJCYXNlZCBvbiB0aGUgY29udGVudCBvZiB0aGUgdGlja2V0LCBpdCBhcHBlYXJzIHRoYXQgdGhlcmUgaXMgbm8gaXNzdWUgYmVpbmcgcmVwb3J0ZWQuIEluc3RlYWQsIHRoZSB0aWNrZXQgY29udGFpbnMgcG9zaXRpdmUgZmVlZGJhY2sgcmVnYXJkaW5nIHRoZSBxdWljayByZXNwb25zZSB0byBhIHJpZGUgcmVxdWVzdCBhbmQgdGhlIHByb2Zlc3Npb25hbGlzbSBvZiB0aGUgZHJpdmVyLiBUaGlzIGlzIGEgY29tbWVuZGF0aW9uIHJhdGhlciB0aGFuIGEgY29tcGxhaW50IG9yIGlzc3VlIHRoYXQgbmVlZHMgcmVzb2x1dGlvbi4iLDAsIlsnZHJpdmVyIHBlcmZvcm1hbmNlJywgJ290aGVyJ10iLEltcHJlc3NlZCB3aXRoIHRoZSBxdWljayByZXNwb25zZSB0byBteSByaWRlIHJlcXVlc3QgYW5kIHRoZSBkcml2ZXIncyBwcm9mZXNzaW9uYWxpc20uLFlvdSBhcmUgYW4gZXhwZXJ0IGN1c3RvbWVyIHNlcnZpY2UgYWdlbnQuLEFnZW50XzExLDE1LFlvdSBhcmUgYW5zd2VyaW5nIHF1ZXN0aW9ucyBhcyBpZiB5b3Ugd2VyZSBhIGh1bWFuLiBEbyBub3QgYnJlYWsgY2hhcmFjdGVyLiwwLDEsMCxncHQtNG8sMC41LEZhbHNlLDEwMDAsMyxXaGF0IGlzIHRoZSBwcmltYXJ5IGlzc3VlIGluIHRoaXMgdGlja2V0PyBUaWNrZXQ6IEltcHJlc3NlZCB3aXRoIHRoZSBxdWljayByZXNwb25zZSB0byBteSByaWRlIHJlcXVlc3QgYW5kIHRoZSBkcml2ZXIncyBwcm9mZXNzaW9uYWxpc20uLCJZb3UgYXJlIGFuc3dlcmluZyBxdWVzdGlvbnMgYXMgaWYgeW91IHdlcmUgYSBodW1hbi4gRG8gbm90IGJyZWFrIGNoYXJhY3Rlci4gWW91ciB0cmFpdHM6IHsncGVyc29uYSc6ICdZb3UgYXJlIGFuIGV4cGVydCBjdXN0b21lciBzZXJ2aWNlIGFnZW50LicsICd5ZWFyc19leHBlcmllbmNlJzogMTV9IiwiWW91IGFyZSBhbnN3ZXJpbmcgcXVlc3Rpb25zIGFzIGlmIHlvdSB3ZXJlIGEgaHVtYW4uIERvIG5vdCBicmVhayBjaGFyYWN0ZXIuIFlvdXIgdHJhaXRzOiB7J3BlcnNvbmEnOiAnWW91IGFyZSBhbiBleHBlcnQgY3VzdG9tZXIgc2VydmljZSBhZ2VudC4nLCAneWVhcnNfZXhwZXJpZW5jZSc6IDE1fSIsIkNoZWNrIGFsbCBvZiB0aGUgaXNzdWVzIG1lbnRpb25lZCBpbiB0aGlzIHRpY2tldDogSW1wcmVzc2VkIHdpdGggdGhlIHF1aWNrIHJlc3BvbnNlIHRvIG15IHJpZGUgcmVxdWVzdCBhbmQgdGhlIGRyaXZlcidzIHByb2Zlc3Npb25hbGlzbS4KCiAgICAKMDogc2FmZXR5CiAgICAKMTogY2xlYW5saW5lc3MKICAgIAoyOiBkcml2ZXIgcGVyZm9ybWFuY2UKICAgIAozOiBHUFMvcm91dGUKICAgIAo0OiBsb3N0IGl0ZW0KICAgIAo1OiBvdGhlcgogICAgCgoKCgoKClBsZWFzZSByZXNwb25kIG9ubHkgd2l0aCBhIGNvbW1hLXNlcGFyYXRlZCBsaXN0IG9mIHRoZSBjb2RlIG9mIHRoZSBvcHRpb25zIHRoYXQgYXBwbHksIHdpdGggc3F1YXJlIGJyYWNrZXRzLiBFLmcuLCBbMCwgMSwgM10KCgpBZnRlciB0aGUgYW5zd2VyLCB5b3UgY2FuIHB1dCBhIGNvbW1lbnQgZXhwbGFpbmluZyB5b3VyIGNob2ljZSBvbiB0aGUgbmV4dCBsaW5lLiIsIk9uIGEgc2NhbGUgZnJvbSAwIHRvIDUsIHdoYXQgaXMgdGhlIHByaW9yaXR5IGxldmVsIG9mIHRoaXMgdGlja2V0PyBUaWNrZXQ6IEltcHJlc3NlZCB3aXRoIHRoZSBxdWljayByZXNwb25zZSB0byBteSByaWRlIHJlcXVlc3QgYW5kIHRoZSBkcml2ZXIncyBwcm9mZXNzaW9uYWxpc20uCgowIDogTG93ZXN0CgoxIDogCgoyIDogCgozIDogCgo0IDogCgo1IDogSGlnaGVzdAoKT25seSAxIG9wdGlvbiBtYXkgYmUgc2VsZWN0ZWQuCgpSZXNwb25kIG9ubHkgd2l0aCB0aGUgY29kZSBjb3JyZXNwb25kaW5nIHRvIG9uZSBvZiB0aGUgb3B0aW9ucy4gRS5nLiwgIiIxIiIgb3IgIiI1IiIgYnkgaXRzZWxmLgoKQWZ0ZXIgdGhlIGFuc3dlciwgeW91IGNhbiBwdXQgYSBjb21tZW50IGV4cGxhaW5pbmcgd2h5IHlvdSBjaG9zZSB0aGF0IG9wdGlvbiBvbiB0aGUgbmV4dCBsaW5lLiIsIllvdSBhcmUgYW5zd2VyaW5nIHF1ZXN0aW9ucyBhcyBpZiB5b3Ugd2VyZSBhIGh1bWFuLiBEbyBub3QgYnJlYWsgY2hhcmFjdGVyLiBZb3VyIHRyYWl0czogeydwZXJzb25hJzogJ1lvdSBhcmUgYW4gZXhwZXJ0IGN1c3RvbWVyIHNlcnZpY2UgYWdlbnQuJywgJ3llYXJzX2V4cGVyaWVuY2UnOiAxNX0iLCJZb3UgYXJlIGFuc3dlcmluZyBxdWVzdGlvbnMgYXMgaWYgeW91IHdlcmUgYSBodW1hbi4gRG8gbm90IGJyZWFrIGNoYXJhY3Rlci4gWW91ciB0cmFpdHM6IHsncGVyc29uYSc6ICdZb3UgYXJlIGFuIGV4cGVydCBjdXN0b21lciBzZXJ2aWNlIGFnZW50LicsICd5ZWFyc19leHBlcmllbmNlJzogMTV9IiwiWW91IGFyZSBhbnN3ZXJpbmcgcXVlc3Rpb25zIGFzIGlmIHlvdSB3ZXJlIGEgaHVtYW4uIERvIG5vdCBicmVhayBjaGFyYWN0ZXIuIFlvdXIgdHJhaXRzOiB7J3BlcnNvbmEnOiAnWW91IGFyZSBhbiBleHBlcnQgY3VzdG9tZXIgc2VydmljZSBhZ2VudC4nLCAneWVhcnNfZXhwZXJpZW5jZSc6IDE1fSIsIgpXaGF0IGlzIHRoZSBzZW50aW1lbnQgb2YgdGhpcyB0aWNrZXQ/IFRpY2tldDogSW1wcmVzc2VkIHdpdGggdGhlIHF1aWNrIHJlc3BvbnNlIHRvIG15IHJpZGUgcmVxdWVzdCBhbmQgdGhlIGRyaXZlcidzIHByb2Zlc3Npb25hbGlzbS4KCiAgICAKVmVyeSBwb3NpdGl2ZQogICAgClNvbWV3aGF0IHBvc2l0aXZlCiAgICAKTmV1dHJhbAogICAgClNvbWV3aGF0IG5lZ2F0aXZlCiAgICAKVmVyeSBuZWdhdGl2ZQogICAgCgpPbmx5IDEgb3B0aW9uIG1heSBiZSBzZWxlY3RlZC4KClJlc3BvbmQgb25seSB3aXRoIGEgc3RyaW5nIGNvcnJlc3BvbmRpbmcgdG8gb25lIG9mIHRoZSBvcHRpb25zLgoKCkFmdGVyIHRoZSBhbnN3ZXIsIHlvdSBjYW4gcHV0IGEgY29tbWVudCBleHBsYWluaW5nIHdoeSB5b3UgY2hvc2UgdGhhdCBvcHRpb24gb24gdGhlIG5leHQgbGluZS4iLCIKRG9lcyB0aGUgY3VzdG9tZXIgYXNrIGZvciBhIHJlZnVuZCBpbiB0aGlzIHRpY2tldD8gVGlja2V0OiBJbXByZXNzZWQgd2l0aCB0aGUgcXVpY2sgcmVzcG9uc2UgdG8gbXkgcmlkZSByZXF1ZXN0IGFuZCB0aGUgZHJpdmVyJ3MgcHJvZmVzc2lvbmFsaXNtLgoKICAgIApObwogICAgClllcwogICAgCgpPbmx5IDEgb3B0aW9uIG1heSBiZSBzZWxlY3RlZC4KUGxlYXNlIHJlc3BvbmQgd2l0aCBqdXN0IHlvdXIgYW5zd2VyLiAKCgpBZnRlciB0aGUgYW5zd2VyLCB5b3UgY2FuIHB1dCBhIGNvbW1lbnQgZXhwbGFpbmluZyB5b3VyIHJlc3BvbnNlLiIsIllvdSBhcmUgYW5zd2VyaW5nIHF1ZXN0aW9ucyBhcyBpZiB5b3Ugd2VyZSBhIGh1bWFuLiBEbyBub3QgYnJlYWsgY2hhcmFjdGVyLiBZb3VyIHRyYWl0czogeydwZXJzb25hJzogJ1lvdSBhcmUgYW4gZXhwZXJ0IGN1c3RvbWVyIHNlcnZpY2UgYWdlbnQuJywgJ3llYXJzX2V4cGVyaWVuY2UnOiAxNX0iLCIKSWYgdGhlIHByaW1hcnkgaXNzdWUgaW4gdGhpcyB0aWNrZXQgaXMgc2FmZXR5LCB3YXMgdGhlcmUgYW4gYWNjaWRlbnQgd2hlcmUgc29tZW9uZSB3YXMgaHVydD8gVGlja2V0OiBJbXByZXNzZWQgd2l0aCB0aGUgcXVpY2sgcmVzcG9uc2UgdG8gbXkgcmlkZSByZXF1ZXN0IGFuZCB0aGUgZHJpdmVyJ3MgcHJvZmVzc2lvbmFsaXNtLgoKICAgIApZZXMKICAgIApObwogICAgCk5vdCBhcHBsaWNhYmxlCiAgICAKCk9ubHkgMSBvcHRpb24gbWF5IGJlIHNlbGVjdGVkLgoKUmVzcG9uZCBvbmx5IHdpdGggYSBzdHJpbmcgY29ycmVzcG9uZGluZyB0byBvbmUgb2YgdGhlIG9wdGlvbnMuCgoKQWZ0ZXIgdGhlIGFuc3dlciwgeW91IGNhbiBwdXQgYSBjb21tZW50IGV4cGxhaW5pbmcgd2h5IHlvdSBjaG9zZSB0aGF0IG9wdGlvbiBvbiB0aGUgbmV4dCBsaW5lLiIsMC4wMDA1ODI1LCJ7J2lkJzogJ2NoYXRjbXBsLUFlT0xDTFVXOW82SUdJMEpXVG5KeG9IV1BPUVMxJywgJ2Nob2ljZXMnOiBbeydmaW5pc2hfcmVhc29uJzogJ3N0b3AnLCAnaW5kZXgnOiAwLCAnbG9ncHJvYnMnOiBOb25lLCAnbWVzc2FnZSc6IHsnY29udGVudCc6ICIiTm90IGFwcGxpY2FibGVcblxuVGhlIHRpY2tldCBkb2VzIG5vdCBpbmRpY2F0ZSBhbnkgc2FmZXR5IGlzc3VlIG9yIGFjY2lkZW50OyBpdCBwcmFpc2VzIHRoZSBkcml2ZXIncyBwcm9mZXNzaW9uYWxpc20gYW5kIHRoZSBxdWljayByZXNwb25zZSB0byB0aGUgcmlkZSByZXF1ZXN0LiIiLCAncmVmdXNhbCc6IE5vbmUsICdyb2xlJzogJ2Fzc2lzdGFudCcsICdhdWRpbyc6IE5vbmUsICdmdW5jdGlvbl9jYWxsJzogTm9uZSwgJ3Rvb2xfY2FsbHMnOiBOb25lfX1dLCAnY3JlYXRlZCc6IDE3MzQxOTAwNTAsICdtb2RlbCc6ICdncHQtNG8tMjAyNC0wOC0wNicsICdvYmplY3QnOiAnY2hhdC5jb21wbGV0aW9uJywgJ3NlcnZpY2VfdGllcic6IE5vbmUsICdzeXN0ZW1fZmluZ2VycHJpbnQnOiAnZnBfYTc5ZDhkYWMxZicsICd1c2FnZSc6IHsnY29tcGxldGlvbl90b2tlbnMnOiAyOCwgJ3Byb21wdF90b2tlbnMnOiAxMzUsICd0b3RhbF90b2tlbnMnOiAxNjMsICdjb21wbGV0aW9uX3Rva2Vuc19kZXRhaWxzJzogeydhY2NlcHRlZF9wcmVkaWN0aW9uX3Rva2Vucyc6IDAsICdhdWRpb190b2tlbnMnOiAwLCAncmVhc29uaW5nX3Rva2Vucyc6IDAsICdyZWplY3RlZF9wcmVkaWN0aW9uX3Rva2Vucyc6IDB9LCAncHJvbXB0X3Rva2Vuc19kZXRhaWxzJzogeydhdWRpb190b2tlbnMnOiAwLCAnY2FjaGVkX3Rva2Vucyc6IDB9fX0iLCJ7J2lkJzogJ2NoYXRjbXBsLUFlT0xDUlN1VUlLV3FOb29uNGM3aUhkRjE0TmRjJywgJ2Nob2ljZXMnOiBbeydmaW5pc2hfcmVhc29uJzogJ3N0b3AnLCAnaW5kZXgnOiAwLCAnbG9ncHJvYnMnOiBOb25lLCAnbWVzc2FnZSc6IHsnY29udGVudCc6ICdWZXJ5IHBvc2l0aXZlXG5cblRoZSB0aWNrZXQgZXhwcmVzc2VzIHNhdGlzZmFjdGlvbiB3aXRoIGJvdGggdGhlIHF1aWNrIHJlc3BvbnNlIGFuZCB0aGUgcHJvZmVzc2lvbmFsaXNtIG9mIHRoZSBkcml2ZXIsIGluZGljYXRpbmcgYSB2ZXJ5IHBvc2l0aXZlIHNlbnRpbWVudC4nLCAncmVmdXNhbCc6IE5vbmUsICdyb2xlJzogJ2Fzc2lzdGFudCcsICdhdWRpbyc6IE5vbmUsICdmdW5jdGlvbl9jYWxsJzogTm9uZSwgJ3Rvb2xfY2FsbHMnOiBOb25lfX1dLCAnY3JlYXRlZCc6IDE3MzQxOTAwNTAsICdtb2RlbCc6ICdncHQtNG8tMjAyNC0wOC0wNicsICdvYmplY3QnOiAnY2hhdC5jb21wbGV0aW9uJywgJ3NlcnZpY2VfdGllcic6IE5vbmUsICdzeXN0ZW1fZmluZ2VycHJpbnQnOiAnZnBfYTc5ZDhkYWMxZicsICd1c2FnZSc6IHsnY29tcGxldGlvbl90b2tlbnMnOiAyNSwgJ3Byb21wdF90b2tlbnMnOiAxMzMsICd0b3RhbF90b2tlbnMnOiAxNTgsICdjb21wbGV0aW9uX3Rva2Vuc19kZXRhaWxzJzogeydhY2NlcHRlZF9wcmVkaWN0aW9uX3Rva2Vucyc6IDAsICdhdWRpb190b2tlbnMnOiAwLCAncmVhc29uaW5nX3Rva2Vucyc6IDAsICdyZWplY3RlZF9wcmVkaWN0aW9uX3Rva2Vucyc6IDB9LCAncHJvbXB0X3Rva2Vuc19kZXRhaWxzJzogeydhdWRpb190b2tlbnMnOiAwLCAnY2FjaGVkX3Rva2Vucyc6IDB9fX0iLDE3MTYuNzM4MTk3NDI0ODkyNiwxNjU5Ljc1MTAzNzM0NDM5ODQsInsnaWQnOiAnY2hhdGNtcGwtQWVPTERpbXZnNEVFeHVIa0QySm55SDVUMGV1QXUnLCAnY2hvaWNlcyc6IFt7J2ZpbmlzaF9yZWFzb24nOiAnc3RvcCcsICdpbmRleCc6IDAsICdsb2dwcm9icyc6IE5vbmUsICdtZXNzYWdlJzogeydjb250ZW50JzogJ1syLCA1XSAgXG5UaGUgdGlja2V0IG1lbnRpb25zIHRoZSBkcml2ZXJcJ3MgcHJvZmVzc2lvbmFsaXNtLCB3aGljaCByZWxhdGVzIHRvIGRyaXZlciBwZXJmb3JtYW5jZS4gIiJPdGhlciIiIGlzIHNlbGVjdGVkIGZvciB0aGUgcXVpY2sgcmVzcG9uc2UgdG8gdGhlIHJpZGUgcmVxdWVzdCwgYXMgaXQgZG9lc25cJ3QgZml0IHRoZSBvdGhlciBjYXRlZ29yaWVzLicsICdyZWZ1c2FsJzogTm9uZSwgJ3JvbGUnOiAnYXNzaXN0YW50JywgJ2F1ZGlvJzogTm9uZSwgJ2Z1bmN0aW9uX2NhbGwnOiBOb25lLCAndG9vbF9jYWxscyc6IE5vbmV9fV0sICdjcmVhdGVkJzogMTczNDE5MDA1MSwgJ21vZGVsJzogJ2dwdC00by0yMDI0LTA4LTA2JywgJ29iamVjdCc6ICdjaGF0LmNvbXBsZXRpb24nLCAnc2VydmljZV90aWVyJzogTm9uZSwgJ3N5c3RlbV9maW5nZXJwcmludCc6ICdmcF85ZmFiYTlmMDM4JywgJ3VzYWdlJzogeydjb21wbGV0aW9uX3Rva2Vucyc6IDQyLCAncHJvbXB0X3Rva2Vucyc6IDE1NiwgJ3RvdGFsX3Rva2Vucyc6IDE5OCwgJ2NvbXBsZXRpb25fdG9rZW5zX2RldGFpbHMnOiB7J2FjY2VwdGVkX3ByZWRpY3Rpb25fdG9rZW5zJzogMCwgJ2F1ZGlvX3Rva2Vucyc6IDAsICdyZWFzb25pbmdfdG9rZW5zJzogMCwgJ3JlamVjdGVkX3ByZWRpY3Rpb25fdG9rZW5zJzogMH0sICdwcm9tcHRfdG9rZW5zX2RldGFpbHMnOiB7J2F1ZGlvX3Rva2Vucyc6IDAsICdjYWNoZWRfdG9rZW5zJzogMH19fSIsMC4wMDA2Mzc1LDE2MTkuNDMzMTk4MzgwNTY2OSwwLjAwMDYwMjUsMC4wMDA4MSwieydpZCc6ICdjaGF0Y21wbC1BZU9MQ0xzY1hGRHZ0bTdJeVcxMkJCMjg2N3RKZScsICdjaG9pY2VzJzogW3snZmluaXNoX3JlYXNvbic6ICdzdG9wJywgJ2luZGV4JzogMCwgJ2xvZ3Byb2JzJzogTm9uZSwgJ21lc3NhZ2UnOiB7J2NvbnRlbnQnOiAnQmFzZWQgb24gdGhlIGNvbnRlbnQgb2YgdGhlIHRpY2tldCwgaXQgYXBwZWFycyB0aGF0IHRoZXJlIGlzIG5vIGlzc3VlIGJlaW5nIHJlcG9ydGVkLiBJbnN0ZWFkLCB0aGUgdGlja2V0IGNvbnRhaW5zIHBvc2l0aXZlIGZlZWRiYWNrIHJlZ2FyZGluZyB0aGUgcXVpY2sgcmVzcG9uc2UgdG8gYSByaWRlIHJlcXVlc3QgYW5kIHRoZSBwcm9mZXNzaW9uYWxpc20gb2YgdGhlIGRyaXZlci4gVGhpcyBpcyBhIGNvbW1lbmRhdGlvbiByYXRoZXIgdGhhbiBhIGNvbXBsYWludCBvciBpc3N1ZSB0aGF0IG5lZWRzIHJlc29sdXRpb24uJywgJ3JlZnVzYWwnOiBOb25lLCAncm9sZSc6ICdhc3Npc3RhbnQnLCAnYXVkaW8nOiBOb25lLCAnZnVuY3Rpb25fY2FsbCc6IE5vbmUsICd0b29sX2NhbGxzJzogTm9uZX19XSwgJ2NyZWF0ZWQnOiAxNzM0MTkwMDUwLCAnbW9kZWwnOiAnZ3B0LTRvLTIwMjQtMDgtMDYnLCAnb2JqZWN0JzogJ2NoYXQuY29tcGxldGlvbicsICdzZXJ2aWNlX3RpZXInOiBOb25lLCAnc3lzdGVtX2ZpbmdlcnByaW50JzogJ2ZwXzlmYWJhOWYwMzgnLCAndXNhZ2UnOiB7J2NvbXBsZXRpb25fdG9rZW5zJzogNTUsICdwcm9tcHRfdG9rZW5zJzogNzYsICd0b3RhbF90b2tlbnMnOiAxMzEsICdjb21wbGV0aW9uX3Rva2Vuc19kZXRhaWxzJzogeydhY2NlcHRlZF9wcmVkaWN0aW9uX3Rva2Vucyc6IDAsICdhdWRpb190b2tlbnMnOiAwLCAncmVhc29uaW5nX3Rva2Vucyc6IDAsICdyZWplY3RlZF9wcmVkaWN0aW9uX3Rva2Vucyc6IDB9LCAncHJvbXB0X3Rva2Vuc19kZXRhaWxzJzogeydhdWRpb190b2tlbnMnOiAwLCAnY2FjaGVkX3Rva2Vucyc6IDB9fX0iLDAuMDAwNzQsMTM1MS4zNTEzNTEzNTEzNTE1LCJ7J2lkJzogJ2NoYXRjbXBsLUFlT0xDc2VEMHNhb2tjS1hYMzNNZ0loRHhhbDFCJywgJ2Nob2ljZXMnOiBbeydmaW5pc2hfcmVhc29uJzogJ3N0b3AnLCAnaW5kZXgnOiAwLCAnbG9ncHJvYnMnOiBOb25lLCAnbWVzc2FnZSc6IHsnY29udGVudCc6ICcwICBcblRoaXMgdGlja2V0IHJlZmxlY3RzIHBvc2l0aXZlIGZlZWRiYWNrIGFuZCBkb2VzIG5vdCBpbmRpY2F0ZSBhbiBpc3N1ZSByZXF1aXJpbmcgcmVzb2x1dGlvbiwgc28gaXQgaGFzIHRoZSBsb3dlc3QgcHJpb3JpdHkgbGV2ZWwuJywgJ3JlZnVzYWwnOiBOb25lLCAncm9sZSc6ICdhc3Npc3RhbnQnLCAnYXVkaW8nOiBOb25lLCAnZnVuY3Rpb25fY2FsbCc6IE5vbmUsICd0b29sX2NhbGxzJzogTm9uZX19XSwgJ2NyZWF0ZWQnOiAxNzM0MTkwMDUwLCAnbW9kZWwnOiAnZ3B0LTRvLTIwMjQtMDgtMDYnLCAnb2JqZWN0JzogJ2NoYXQuY29tcGxldGlvbicsICdzZXJ2aWNlX3RpZXInOiBOb25lLCAnc3lzdGVtX2ZpbmdlcnByaW50JzogJ2ZwX2E3OWQ4ZGFjMWYnLCAndXNhZ2UnOiB7J2NvbXBsZXRpb25fdG9rZW5zJzogMjQsICdwcm9tcHRfdG9rZW5zJzogMTU5LCAndG90YWxfdG9rZW5zJzogMTgzLCAnY29tcGxldGlvbl90b2tlbnNfZGV0YWlscyc6IHsnYWNjZXB0ZWRfcHJlZGljdGlvbl90b2tlbnMnOiAwLCAnYXVkaW9fdG9rZW5zJzogMCwgJ3JlYXNvbmluZ190b2tlbnMnOiAwLCAncmVqZWN0ZWRfcHJlZGljdGlvbl90b2tlbnMnOiAwfSwgJ3Byb21wdF90b2tlbnNfZGV0YWlscyc6IHsnYXVkaW9fdG9rZW5zJzogMCwgJ2NhY2hlZF90b2tlbnMnOiAwfX19IiwxMjM0LjU2NzkwMTIzNDU2OCwxNTY4LjYyNzQ1MDk4MDM5MiwwLjAwMDYxNzUsInsnaWQnOiAnY2hhdGNtcGwtQWVPTEM3MkdBTUVLbEVtV0JhejJYb0xJN0dhVHonLCAnY2hvaWNlcyc6IFt7J2ZpbmlzaF9yZWFzb24nOiAnc3RvcCcsICdpbmRleCc6IDAsICdsb2dwcm9icyc6IE5vbmUsICdtZXNzYWdlJzogeydjb250ZW50JzogIiJOb1xuXG5UaGUgdGlja2V0IGV4cHJlc3NlcyBzYXRpc2ZhY3Rpb24gd2l0aCB0aGUgc2VydmljZSwgc3BlY2lmaWNhbGx5IG1lbnRpb25pbmcgdGhlIHF1aWNrIHJlc3BvbnNlIGFuZCB0aGUgZHJpdmVyJ3MgcHJvZmVzc2lvbmFsaXNtLiBUaGVyZSBpcyBubyBpbmRpY2F0aW9uIHRoYXQgdGhlIGN1c3RvbWVyIGlzIHNlZWtpbmcgYSByZWZ1bmQuIiIsICdyZWZ1c2FsJzogTm9uZSwgJ3JvbGUnOiAnYXNzaXN0YW50JywgJ2F1ZGlvJzogTm9uZSwgJ2Z1bmN0aW9uX2NhbGwnOiBOb25lLCAndG9vbF9jYWxscyc6IE5vbmV9fV0sICdjcmVhdGVkJzogMTczNDE5MDA1MCwgJ21vZGVsJzogJ2dwdC00by0yMDI0LTA4LTA2JywgJ29iamVjdCc6ICdjaGF0LmNvbXBsZXRpb24nLCAnc2VydmljZV90aWVyJzogTm9uZSwgJ3N5c3RlbV9maW5nZXJwcmludCc6ICdmcF85ZmFiYTlmMDM4JywgJ3VzYWdlJzogeydjb21wbGV0aW9uX3Rva2Vucyc6IDMyLCAncHJvbXB0X3Rva2Vucyc6IDExMywgJ3RvdGFsX3Rva2Vucyc6IDE0NSwgJ2NvbXBsZXRpb25fdG9rZW5zX2RldGFpbHMnOiB7J2FjY2VwdGVkX3ByZWRpY3Rpb25fdG9rZW5zJzogMCwgJ2F1ZGlvX3Rva2Vucyc6IDAsICdyZWFzb25pbmdfdG9rZW5zJzogMCwgJ3JlamVjdGVkX3ByZWRpY3Rpb25fdG9rZW5zJzogMH0sICdwcm9tcHRfdG9rZW5zX2RldGFpbHMnOiB7J2F1ZGlvX3Rva2Vucyc6IDAsICdjYWNoZWRfdG9rZW5zJzogMH19fSIsMCxEb2VzIHRoZSBjdXN0b21lciBhc2sgZm9yIGEgcmVmdW5kIGluIHRoaXMgdGlja2V0PyBUaWNrZXQ6IHt7IHRpY2tldCB9fSwiSWYgdGhlIHByaW1hcnkgaXNzdWUgaW4gdGhpcyB0aWNrZXQgaXMgc2FmZXR5LCB3YXMgdGhlcmUgYW4gYWNjaWRlbnQgd2hlcmUgc29tZW9uZSB3YXMgaHVydD8gVGlja2V0OiB7eyB0aWNrZXQgfX0iLFdoYXQgaXMgdGhlIHByaW1hcnkgaXNzdWUgaW4gdGhpcyB0aWNrZXQ/IFRpY2tldDoge3sgdGlja2V0IH19LENoZWNrIGFsbCBvZiB0aGUgaXNzdWVzIG1lbnRpb25lZCBpbiB0aGlzIHRpY2tldDoge3sgdGlja2V0IH19LCJPbiBhIHNjYWxlIGZyb20gMCB0byA1LCB3aGF0IGlzIHRoZSBwcmlvcml0eSBsZXZlbCBvZiB0aGlzIHRpY2tldD8gVGlja2V0OiB7eyB0aWNrZXQgfX0iLFdoYXQgaXMgdGhlIHNlbnRpbWVudCBvZiB0aGlzIHRpY2tldD8gVGlja2V0OiB7eyB0aWNrZXQgfX0sIlsnc2FmZXR5JywgJ2NsZWFubGluZXNzJywgJ2RyaXZlciBwZXJmb3JtYW5jZScsICdHUFMvcm91dGUnLCAnbG9zdCBpdGVtJywgJ290aGVyJ10iLCJbJ1ZlcnkgcG9zaXRpdmUnLCAnU29tZXdoYXQgcG9zaXRpdmUnLCAnTmV1dHJhbCcsICdTb21ld2hhdCBuZWdhdGl2ZScsICdWZXJ5IG5lZ2F0aXZlJ10iLCwiWydObycsICdZZXMnXSIsIlsnWWVzJywgJ05vJywgJ05vdCBhcHBsaWNhYmxlJ10iLCJbMCwgMSwgMiwgMywgNCwgNV0iLGxpbmVhcl9zY2FsZSxtdWx0aXBsZV9jaG9pY2UsbXVsdGlwbGVfY2hvaWNlLHllc19ubyxmcmVlX3RleHQsY2hlY2tib3gsLCJUaGUgdGlja2V0IGV4cHJlc3NlcyBzYXRpc2ZhY3Rpb24gd2l0aCB0aGUgc2VydmljZSwgc3BlY2lmaWNhbGx5IG1lbnRpb25pbmcgdGhlIHF1aWNrIHJlc3BvbnNlIGFuZCB0aGUgZHJpdmVyJ3MgcHJvZmVzc2lvbmFsaXNtLiBUaGVyZSBpcyBubyBpbmRpY2F0aW9uIHRoYXQgdGhlIGN1c3RvbWVyIGlzIHNlZWtpbmcgYSByZWZ1bmQuIiwiVGhpcyB0aWNrZXQgcmVmbGVjdHMgcG9zaXRpdmUgZmVlZGJhY2sgYW5kIGRvZXMgbm90IGluZGljYXRlIGFuIGlzc3VlIHJlcXVpcmluZyByZXNvbHV0aW9uLCBzbyBpdCBoYXMgdGhlIGxvd2VzdCBwcmlvcml0eSBsZXZlbC4iLCJUaGUgdGlja2V0IG1lbnRpb25zIHRoZSBkcml2ZXIncyBwcm9mZXNzaW9uYWxpc20sIHdoaWNoIHJlbGF0ZXMgdG8gZHJpdmVyIHBlcmZvcm1hbmNlLiAiIk90aGVyIiIgaXMgc2VsZWN0ZWQgZm9yIHRoZSBxdWljayByZXNwb25zZSB0byB0aGUgcmlkZSByZXF1ZXN0LCBhcyBpdCBkb2Vzbid0IGZpdCB0aGUgb3RoZXIgY2F0ZWdvcmllcy4iLCJUaGUgdGlja2V0IGV4cHJlc3NlcyBzYXRpc2ZhY3Rpb24gd2l0aCBib3RoIHRoZSBxdWljayByZXNwb25zZSBhbmQgdGhlIHByb2Zlc3Npb25hbGlzbSBvZiB0aGUgZHJpdmVyLCBpbmRpY2F0aW5nIGEgdmVyeSBwb3NpdGl2ZSBzZW50aW1lbnQuIixUaGUgdGlja2V0IGRvZXMgbm90IGluZGljYXRlIGFueSBzYWZldHkgaXNzdWUgb3IgYWNjaWRlbnQ7IGl0IHByYWlzZXMgdGhlIGRyaXZlcidzIHByb2Zlc3Npb25hbGlzbSBhbmQgdGhlIHF1aWNrIHJlc3BvbnNlIHRvIHRoZSByaWRlIHJlcXVlc3QuLCJWZXJ5IHBvc2l0aXZlCgpUaGUgdGlja2V0IGV4cHJlc3NlcyBzYXRpc2ZhY3Rpb24gd2l0aCBib3RoIHRoZSBxdWljayByZXNwb25zZSBhbmQgdGhlIHByb2Zlc3Npb25hbGlzbSBvZiB0aGUgZHJpdmVyLCBpbmRpY2F0aW5nIGEgdmVyeSBwb3NpdGl2ZSBzZW50aW1lbnQuIiwiWzIsIDVdICAKVGhlIHRpY2tldCBtZW50aW9ucyB0aGUgZHJpdmVyJ3MgcHJvZmVzc2lvbmFsaXNtLCB3aGljaCByZWxhdGVzIHRvIGRyaXZlciBwZXJmb3JtYW5jZS4gIiJPdGhlciIiIGlzIHNlbGVjdGVkIGZvciB0aGUgcXVpY2sgcmVzcG9uc2UgdG8gdGhlIHJpZGUgcmVxdWVzdCwgYXMgaXQgZG9lc24ndCBmaXQgdGhlIG90aGVyIGNhdGVnb3JpZXMuIiwiTm8KClRoZSB0aWNrZXQgZXhwcmVzc2VzIHNhdGlzZmFjdGlvbiB3aXRoIHRoZSBzZXJ2aWNlLCBzcGVjaWZpY2FsbHkgbWVudGlvbmluZyB0aGUgcXVpY2sgcmVzcG9uc2UgYW5kIHRoZSBkcml2ZXIncyBwcm9mZXNzaW9uYWxpc20uIFRoZXJlIGlzIG5vIGluZGljYXRpb24gdGhhdCB0aGUgY3VzdG9tZXIgaXMgc2Vla2luZyBhIHJlZnVuZC4iLCJCYXNlZCBvbiB0aGUgY29udGVudCBvZiB0aGUgdGlja2V0LCBpdCBhcHBlYXJzIHRoYXQgdGhlcmUgaXMgbm8gaXNzdWUgYmVpbmcgcmVwb3J0ZWQuIEluc3RlYWQsIHRoZSB0aWNrZXQgY29udGFpbnMgcG9zaXRpdmUgZmVlZGJhY2sgcmVnYXJkaW5nIHRoZSBxdWljayByZXNwb25zZSB0byBhIHJpZGUgcmVxdWVzdCBhbmQgdGhlIHByb2Zlc3Npb25hbGlzbSBvZiB0aGUgZHJpdmVyLiBUaGlzIGlzIGEgY29tbWVuZGF0aW9uIHJhdGhlciB0aGFuIGEgY29tcGxhaW50IG9yIGlzc3VlIHRoYXQgbmVlZHMgcmVzb2x1dGlvbi4iLCJOb3QgYXBwbGljYWJsZQoKVGhlIHRpY2tldCBkb2VzIG5vdCBpbmRpY2F0ZSBhbnkgc2FmZXR5IGlzc3VlIG9yIGFjY2lkZW50OyBpdCBwcmFpc2VzIHRoZSBkcml2ZXIncyBwcm9mZXNzaW9uYWxpc20gYW5kIHRoZSBxdWljayByZXNwb25zZSB0byB0aGUgcmlkZSByZXF1ZXN0LiIsIjAgIApUaGlzIHRpY2tldCByZWZsZWN0cyBwb3NpdGl2ZSBmZWVkYmFjayBhbmQgZG9lcyBub3QgaW5kaWNhdGUgYW4gaXNzdWUgcmVxdWlyaW5nIHJlc29sdXRpb24sIHNvIGl0IGhhcyB0aGUgbG93ZXN0IHByaW9yaXR5IGxldmVsLiINCk5vdCBhcHBsaWNhYmxlLFNvbWV3aGF0IG5lZ2F0aXZlLFllcyxUaGUgcHJpbWFyeSBpc3N1ZSBpbiB0aGlzIHRpY2tldCBpcyBhbiBpbmNvcnJlY3QgY2hhcmdlIGZvciBhIHJpZGUgdGhhdCB0aGUgY3VzdG9tZXIgY2xhaW1zIHRoZXkgZGlkIG5vdCB0YWtlLiBUaGUgY3VzdG9tZXIgaXMgcmVxdWVzdGluZyBhIHJlZnVuZCBmb3IgdGhpcyBjaGFyZ2UuLDMsWydvdGhlciddLEkgd2FzIGNoYXJnZWQgZm9yIGEgcmlkZSBJIG5ldmVyIHRvb2suIFBsZWFzZSByZWZ1bmQgbWUgYXMgc29vbiBhcyBwb3NzaWJsZS4sWW91IGFyZSBhbiBleHBlcnQgY3VzdG9tZXIgc2VydmljZSBhZ2VudC4sQWdlbnRfMTIsMTUsWW91IGFyZSBhbnN3ZXJpbmcgcXVlc3Rpb25zIGFzIGlmIHlvdSB3ZXJlIGEgaHVtYW4uIERvIG5vdCBicmVhayBjaGFyYWN0ZXIuLDAsMSwwLGdwdC00bywwLjUsRmFsc2UsMTAwMCwzLFdoYXQgaXMgdGhlIHByaW1hcnkgaXNzdWUgaW4gdGhpcyB0aWNrZXQ/IFRpY2tldDogSSB3YXMgY2hhcmdlZCBmb3IgYSByaWRlIEkgbmV2ZXIgdG9vay4gUGxlYXNlIHJlZnVuZCBtZSBhcyBzb29uIGFzIHBvc3NpYmxlLiwiWW91IGFyZSBhbnN3ZXJpbmcgcXVlc3Rpb25zIGFzIGlmIHlvdSB3ZXJlIGEgaHVtYW4uIERvIG5vdCBicmVhayBjaGFyYWN0ZXIuIFlvdXIgdHJhaXRzOiB7J3BlcnNvbmEnOiAnWW91IGFyZSBhbiBleHBlcnQgY3VzdG9tZXIgc2VydmljZSBhZ2VudC4nLCAneWVhcnNfZXhwZXJpZW5jZSc6IDE1fSIsIllvdSBhcmUgYW5zd2VyaW5nIHF1ZXN0aW9ucyBhcyBpZiB5b3Ugd2VyZSBhIGh1bWFuLiBEbyBub3QgYnJlYWsgY2hhcmFjdGVyLiBZb3VyIHRyYWl0czogeydwZXJzb25hJzogJ1lvdSBhcmUgYW4gZXhwZXJ0IGN1c3RvbWVyIHNlcnZpY2UgYWdlbnQuJywgJ3llYXJzX2V4cGVyaWVuY2UnOiAxNX0iLCJDaGVjayBhbGwgb2YgdGhlIGlzc3VlcyBtZW50aW9uZWQgaW4gdGhpcyB0aWNrZXQ6IEkgd2FzIGNoYXJnZWQgZm9yIGEgcmlkZSBJIG5ldmVyIHRvb2suIFBsZWFzZSByZWZ1bmQgbWUgYXMgc29vbiBhcyBwb3NzaWJsZS4KCiAgICAKMDogc2FmZXR5CiAgICAKMTogY2xlYW5saW5lc3MKICAgIAoyOiBkcml2ZXIgcGVyZm9ybWFuY2UKICAgIAozOiBHUFMvcm91dGUKICAgIAo0OiBsb3N0IGl0ZW0KICAgIAo1OiBvdGhlcgogICAgCgoKCgoKClBsZWFzZSByZXNwb25kIG9ubHkgd2l0aCBhIGNvbW1hLXNlcGFyYXRlZCBsaXN0IG9mIHRoZSBjb2RlIG9mIHRoZSBvcHRpb25zIHRoYXQgYXBwbHksIHdpdGggc3F1YXJlIGJyYWNrZXRzLiBFLmcuLCBbMCwgMSwgM10KCgpBZnRlciB0aGUgYW5zd2VyLCB5b3UgY2FuIHB1dCBhIGNvbW1lbnQgZXhwbGFpbmluZyB5b3VyIGNob2ljZSBvbiB0aGUgbmV4dCBsaW5lLiIsIk9uIGEgc2NhbGUgZnJvbSAwIHRvIDUsIHdoYXQgaXMgdGhlIHByaW9yaXR5IGxldmVsIG9mIHRoaXMgdGlja2V0PyBUaWNrZXQ6IEkgd2FzIGNoYXJnZWQgZm9yIGEgcmlkZSBJIG5ldmVyIHRvb2suIFBsZWFzZSByZWZ1bmQgbWUgYXMgc29vbiBhcyBwb3NzaWJsZS4KCjAgOiBMb3dlc3QKCjEgOiAKCjIgOiAKCjMgOiAKCjQgOiAKCjUgOiBIaWdoZXN0CgpPbmx5IDEgb3B0aW9uIG1heSBiZSBzZWxlY3RlZC4KClJlc3BvbmQgb25seSB3aXRoIHRoZSBjb2RlIGNvcnJlc3BvbmRpbmcgdG8gb25lIG9mIHRoZSBvcHRpb25zLiBFLmcuLCAiIjEiIiBvciAiIjUiIiBieSBpdHNlbGYuCgpBZnRlciB0aGUgYW5zd2VyLCB5b3UgY2FuIHB1dCBhIGNvbW1lbnQgZXhwbGFpbmluZyB3aHkgeW91IGNob3NlIHRoYXQgb3B0aW9uIG9uIHRoZSBuZXh0IGxpbmUuIiwiWW91IGFyZSBhbnN3ZXJpbmcgcXVlc3Rpb25zIGFzIGlmIHlvdSB3ZXJlIGEgaHVtYW4uIERvIG5vdCBicmVhayBjaGFyYWN0ZXIuIFlvdXIgdHJhaXRzOiB7J3BlcnNvbmEnOiAnWW91IGFyZSBhbiBleHBlcnQgY3VzdG9tZXIgc2VydmljZSBhZ2VudC4nLCAneWVhcnNfZXhwZXJpZW5jZSc6IDE1fSIsIllvdSBhcmUgYW5zd2VyaW5nIHF1ZXN0aW9ucyBhcyBpZiB5b3Ugd2VyZSBhIGh1bWFuLiBEbyBub3QgYnJlYWsgY2hhcmFjdGVyLiBZb3VyIHRyYWl0czogeydwZXJzb25hJzogJ1lvdSBhcmUgYW4gZXhwZXJ0IGN1c3RvbWVyIHNlcnZpY2UgYWdlbnQuJywgJ3llYXJzX2V4cGVyaWVuY2UnOiAxNX0iLCJZb3UgYXJlIGFuc3dlcmluZyBxdWVzdGlvbnMgYXMgaWYgeW91IHdlcmUgYSBodW1hbi4gRG8gbm90IGJyZWFrIGNoYXJhY3Rlci4gWW91ciB0cmFpdHM6IHsncGVyc29uYSc6ICdZb3UgYXJlIGFuIGV4cGVydCBjdXN0b21lciBzZXJ2aWNlIGFnZW50LicsICd5ZWFyc19leHBlcmllbmNlJzogMTV9IiwiCldoYXQgaXMgdGhlIHNlbnRpbWVudCBvZiB0aGlzIHRpY2tldD8gVGlja2V0OiBJIHdhcyBjaGFyZ2VkIGZvciBhIHJpZGUgSSBuZXZlciB0b29rLiBQbGVhc2UgcmVmdW5kIG1lIGFzIHNvb24gYXMgcG9zc2libGUuCgogICAgClZlcnkgcG9zaXRpdmUKICAgIApTb21ld2hhdCBwb3NpdGl2ZQogICAgCk5ldXRyYWwKICAgIApTb21ld2hhdCBuZWdhdGl2ZQogICAgClZlcnkgbmVnYXRpdmUKICAgIAoKT25seSAxIG9wdGlvbiBtYXkgYmUgc2VsZWN0ZWQuCgpSZXNwb25kIG9ubHkgd2l0aCBhIHN0cmluZyBjb3JyZXNwb25kaW5nIHRvIG9uZSBvZiB0aGUgb3B0aW9ucy4KCgpBZnRlciB0aGUgYW5zd2VyLCB5b3UgY2FuIHB1dCBhIGNvbW1lbnQgZXhwbGFpbmluZyB3aHkgeW91IGNob3NlIHRoYXQgb3B0aW9uIG9uIHRoZSBuZXh0IGxpbmUuIiwiCkRvZXMgdGhlIGN1c3RvbWVyIGFzayBmb3IgYSByZWZ1bmQgaW4gdGhpcyB0aWNrZXQ/IFRpY2tldDogSSB3YXMgY2hhcmdlZCBmb3IgYSByaWRlIEkgbmV2ZXIgdG9vay4gUGxlYXNlIHJlZnVuZCBtZSBhcyBzb29uIGFzIHBvc3NpYmxlLgoKICAgIApObwogICAgClllcwogICAgCgpPbmx5IDEgb3B0aW9uIG1heSBiZSBzZWxlY3RlZC4KUGxlYXNlIHJlc3BvbmQgd2l0aCBqdXN0IHlvdXIgYW5zd2VyLiAKCgpBZnRlciB0aGUgYW5zd2VyLCB5b3UgY2FuIHB1dCBhIGNvbW1lbnQgZXhwbGFpbmluZyB5b3VyIHJlc3BvbnNlLiIsIllvdSBhcmUgYW5zd2VyaW5nIHF1ZXN0aW9ucyBhcyBpZiB5b3Ugd2VyZSBhIGh1bWFuLiBEbyBub3QgYnJlYWsgY2hhcmFjdGVyLiBZb3VyIHRyYWl0czogeydwZXJzb25hJzogJ1lvdSBhcmUgYW4gZXhwZXJ0IGN1c3RvbWVyIHNlcnZpY2UgYWdlbnQuJywgJ3llYXJzX2V4cGVyaWVuY2UnOiAxNX0iLCIKSWYgdGhlIHByaW1hcnkgaXNzdWUgaW4gdGhpcyB0aWNrZXQgaXMgc2FmZXR5LCB3YXMgdGhlcmUgYW4gYWNjaWRlbnQgd2hlcmUgc29tZW9uZSB3YXMgaHVydD8gVGlja2V0OiBJIHdhcyBjaGFyZ2VkIGZvciBhIHJpZGUgSSBuZXZlciB0b29rLiBQbGVhc2UgcmVmdW5kIG1lIGFzIHNvb24gYXMgcG9zc2libGUuCgogICAgClllcwogICAgCk5vCiAgICAKTm90IGFwcGxpY2FibGUKICAgIAoKT25seSAxIG9wdGlvbiBtYXkgYmUgc2VsZWN0ZWQuCgpSZXNwb25kIG9ubHkgd2l0aCBhIHN0cmluZyBjb3JyZXNwb25kaW5nIHRvIG9uZSBvZiB0aGUgb3B0aW9ucy4KCgpBZnRlciB0aGUgYW5zd2VyLCB5b3UgY2FuIHB1dCBhIGNvbW1lbnQgZXhwbGFpbmluZyB3aHkgeW91IGNob3NlIHRoYXQgb3B0aW9uIG9uIHRoZSBuZXh0IGxpbmUuIiwwLjAwMDU2MDAwMDAwMDAwMDAwMDEsInsnaWQnOiAnY2hhdGNtcGwtQWVPTEN0eUNrUlJGdU5nOVBwZURXT1UzOFdOMXInLCAnY2hvaWNlcyc6IFt7J2ZpbmlzaF9yZWFzb24nOiAnc3RvcCcsICdpbmRleCc6IDAsICdsb2dwcm9icyc6IE5vbmUsICdtZXNzYWdlJzogeydjb250ZW50JzogJ05vdCBhcHBsaWNhYmxlXG5cblRoZSB0aWNrZXQgaXMgYWJvdXQgYSBiaWxsaW5nIGlzc3VlLCBub3QgYSBzYWZldHkgY29uY2Vybi4nLCAncmVmdXNhbCc6IE5vbmUsICdyb2xlJzogJ2Fzc2lzdGFudCcsICdhdWRpbyc6IE5vbmUsICdmdW5jdGlvbl9jYWxsJzogTm9uZSwgJ3Rvb2xfY2FsbHMnOiBOb25lfX1dLCAnY3JlYXRlZCc6IDE3MzQxOTAwNTAsICdtb2RlbCc6ICdncHQtNG8tMjAyNC0wOC0wNicsICdvYmplY3QnOiAnY2hhdC5jb21wbGV0aW9uJywgJ3NlcnZpY2VfdGllcic6IE5vbmUsICdzeXN0ZW1fZmluZ2VycHJpbnQnOiAnZnBfYTc5ZDhkYWMxZicsICd1c2FnZSc6IHsnY29tcGxldGlvbl90b2tlbnMnOiAxNiwgJ3Byb21wdF90b2tlbnMnOiAxMzgsICd0b3RhbF90b2tlbnMnOiAxNTQsICdjb21wbGV0aW9uX3Rva2Vuc19kZXRhaWxzJzogeydhY2NlcHRlZF9wcmVkaWN0aW9uX3Rva2Vucyc6IDAsICdhdWRpb190b2tlbnMnOiAwLCAncmVhc29uaW5nX3Rva2Vucyc6IDAsICdyZWplY3RlZF9wcmVkaWN0aW9uX3Rva2Vucyc6IDB9LCAncHJvbXB0X3Rva2Vuc19kZXRhaWxzJzogeydhdWRpb190b2tlbnMnOiAwLCAnY2FjaGVkX3Rva2Vucyc6IDB9fX0iLCJ7J2lkJzogJ2NoYXRjbXBsLUFlT0xDbnpFSGd1YmRzaWI0WG9YalRFc1pzUUpwJywgJ2Nob2ljZXMnOiBbeydmaW5pc2hfcmVhc29uJzogJ3N0b3AnLCAnaW5kZXgnOiAwLCAnbG9ncHJvYnMnOiBOb25lLCAnbWVzc2FnZSc6IHsnY29udGVudCc6ICdTb21ld2hhdCBuZWdhdGl2ZVxuXG5UaGUgdGlja2V0IGV4cHJlc3NlcyBkaXNzYXRpc2ZhY3Rpb24gYW5kIHVyZ2VuY3kgZHVlIHRvIGFuIGluY29ycmVjdCBjaGFyZ2UsIGluZGljYXRpbmcgYSBzb21ld2hhdCBuZWdhdGl2ZSBzZW50aW1lbnQuJywgJ3JlZnVzYWwnOiBOb25lLCAncm9sZSc6ICdhc3Npc3RhbnQnLCAnYXVkaW8nOiBOb25lLCAnZnVuY3Rpb25fY2FsbCc6IE5vbmUsICd0b29sX2NhbGxzJzogTm9uZX19XSwgJ2NyZWF0ZWQnOiAxNzM0MTkwMDUwLCAnbW9kZWwnOiAnZ3B0LTRvLTIwMjQtMDgtMDYnLCAnb2JqZWN0JzogJ2NoYXQuY29tcGxldGlvbicsICdzZXJ2aWNlX3RpZXInOiBOb25lLCAnc3lzdGVtX2ZpbmdlcnByaW50JzogJ2ZwXzlmYWJhOWYwMzgnLCAndXNhZ2UnOiB7J2NvbXBsZXRpb25fdG9rZW5zJzogMjIsICdwcm9tcHRfdG9rZW5zJzogMTM2LCAndG90YWxfdG9rZW5zJzogMTU4LCAnY29tcGxldGlvbl90b2tlbnNfZGV0YWlscyc6IHsnYWNjZXB0ZWRfcHJlZGljdGlvbl90b2tlbnMnOiAwLCAnYXVkaW9fdG9rZW5zJzogMCwgJ3JlYXNvbmluZ190b2tlbnMnOiAwLCAncmVqZWN0ZWRfcHJlZGljdGlvbl90b2tlbnMnOiAwfSwgJ3Byb21wdF90b2tlbnNfZGV0YWlscyc6IHsnYXVkaW9fdG9rZW5zJzogMCwgJ2NhY2hlZF90b2tlbnMnOiAwfX19IiwxNzg1LjcxNDI4NTcxNDI4NTYsMjA0MC44MTYzMjY1MzA2MTIzLCJ7J2lkJzogJ2NoYXRjbXBsLUFlT0xDR3FKMlR2cWdtdnVMdGZVWmxkcENqWHdnJywgJ2Nob2ljZXMnOiBbeydmaW5pc2hfcmVhc29uJzogJ3N0b3AnLCAnaW5kZXgnOiAwLCAnbG9ncHJvYnMnOiBOb25lLCAnbWVzc2FnZSc6IHsnY29udGVudCc6ICdbNV0gIFxuVGhlIGlzc3VlIG1lbnRpb25lZCBpbiB0aGUgdGlja2V0IGlzIHJlbGF0ZWQgdG8gYSBjaGFyZ2UgZm9yIGEgcmlkZSB0aGF0IHdhcyBub3QgdGFrZW4sIHdoaWNoIGRvZXNuXCd0IGZpdCBpbnRvIHRoZSBwcmVkZWZpbmVkIGNhdGVnb3JpZXMgZXhjZXB0IGZvciAiIm90aGVyLiIiJywgJ3JlZnVzYWwnOiBOb25lLCAncm9sZSc6ICdhc3Npc3RhbnQnLCAnYXVkaW8nOiBOb25lLCAnZnVuY3Rpb25fY2FsbCc6IE5vbmUsICd0b29sX2NhbGxzJzogTm9uZX19XSwgJ2NyZWF0ZWQnOiAxNzM0MTkwMDUwLCAnbW9kZWwnOiAnZ3B0LTRvLTIwMjQtMDgtMDYnLCAnb2JqZWN0JzogJ2NoYXQuY29tcGxldGlvbicsICdzZXJ2aWNlX3RpZXInOiBOb25lLCAnc3lzdGVtX2ZpbmdlcnByaW50JzogJ2ZwX2E3OWQ4ZGFjMWYnLCAndXNhZ2UnOiB7J2NvbXBsZXRpb25fdG9rZW5zJzogMzUsICdwcm9tcHRfdG9rZW5zJzogMTU5LCAndG90YWxfdG9rZW5zJzogMTk0LCAnY29tcGxldGlvbl90b2tlbnNfZGV0YWlscyc6IHsnYWNjZXB0ZWRfcHJlZGljdGlvbl90b2tlbnMnOiAwLCAnYXVkaW9fdG9rZW5zJzogMCwgJ3JlYXNvbmluZ190b2tlbnMnOiAwLCAncmVqZWN0ZWRfcHJlZGljdGlvbl90b2tlbnMnOiAwfSwgJ3Byb21wdF90b2tlbnNfZGV0YWlscyc6IHsnYXVkaW9fdG9rZW5zJzogMCwgJ2NhY2hlZF90b2tlbnMnOiAwfX19IiwwLjAwMDgwNDk5OTk5OTk5OTk5OTksMTk4MC4xOTgwMTk4MDE5OCwwLjAwMDQ5LDAuMDAwNzQ3NSwieydpZCc6ICdjaGF0Y21wbC1BZU9MQzdKRGJQYUZqcVNiMG5kNVVhTFFoV1p4dScsICdjaG9pY2VzJzogW3snZmluaXNoX3JlYXNvbic6ICdzdG9wJywgJ2luZGV4JzogMCwgJ2xvZ3Byb2JzJzogTm9uZSwgJ21lc3NhZ2UnOiB7J2NvbnRlbnQnOiAnVGhlIHByaW1hcnkgaXNzdWUgaW4gdGhpcyB0aWNrZXQgaXMgYW4gaW5jb3JyZWN0IGNoYXJnZSBmb3IgYSByaWRlIHRoYXQgdGhlIGN1c3RvbWVyIGNsYWltcyB0aGV5IGRpZCBub3QgdGFrZS4gVGhlIGN1c3RvbWVyIGlzIHJlcXVlc3RpbmcgYSByZWZ1bmQgZm9yIHRoaXMgY2hhcmdlLicsICdyZWZ1c2FsJzogTm9uZSwgJ3JvbGUnOiAnYXNzaXN0YW50JywgJ2F1ZGlvJzogTm9uZSwgJ2Z1bmN0aW9uX2NhbGwnOiBOb25lLCAndG9vbF9jYWxscyc6IE5vbmV9fV0sICdjcmVhdGVkJzogMTczNDE5MDA1MCwgJ21vZGVsJzogJ2dwdC00by0yMDI0LTA4LTA2JywgJ29iamVjdCc6ICdjaGF0LmNvbXBsZXRpb24nLCAnc2VydmljZV90aWVyJzogTm9uZSwgJ3N5c3RlbV9maW5nZXJwcmludCc6ICdmcF85ZmFiYTlmMDM4JywgJ3VzYWdlJzogeydjb21wbGV0aW9uX3Rva2Vucyc6IDMyLCAncHJvbXB0X3Rva2Vucyc6IDc5LCAndG90YWxfdG9rZW5zJzogMTExLCAnY29tcGxldGlvbl90b2tlbnNfZGV0YWlscyc6IHsnYWNjZXB0ZWRfcHJlZGljdGlvbl90b2tlbnMnOiAwLCAnYXVkaW9fdG9rZW5zJzogMCwgJ3JlYXNvbmluZ190b2tlbnMnOiAwLCAncmVqZWN0ZWRfcHJlZGljdGlvbl90b2tlbnMnOiAwfSwgJ3Byb21wdF90b2tlbnNfZGV0YWlscyc6IHsnYXVkaW9fdG9rZW5zJzogMCwgJ2NhY2hlZF90b2tlbnMnOiAwfX19IiwwLjAwMDUxNzUwMDAwMDAwMDAwMDEsMTkzMi4zNjcxNDk3NTg0NTQsInsnaWQnOiAnY2hhdGNtcGwtQWVPTEMxMmpaa01zeG40UTlSbGg3cnFZT0tLbDgnLCAnY2hvaWNlcyc6IFt7J2ZpbmlzaF9yZWFzb24nOiAnc3RvcCcsICdpbmRleCc6IDAsICdsb2dwcm9icyc6IE5vbmUsICdtZXNzYWdlJzogeydjb250ZW50JzogJzMgIFxuVGhpcyBzaXR1YXRpb24gaW52b2x2ZXMgYSBmaW5hbmNpYWwgZGlzY3JlcGFuY3ksIHdoaWNoIGlzIGltcG9ydGFudCB0byByZXNvbHZlIHByb21wdGx5IHRvIG1haW50YWluIGN1c3RvbWVyIHRydXN0IGFuZCBzYXRpc2ZhY3Rpb24sIGJ1dCBpdCBkb2VzIG5vdCBpbnZvbHZlIGltbWVkaWF0ZSBzYWZldHkgb3Igc2VjdXJpdHkgY29uY2VybnMsIHdoaWNoIHdvdWxkIHdhcnJhbnQgYSBoaWdoZXIgcHJpb3JpdHkuJywgJ3JlZnVzYWwnOiBOb25lLCAncm9sZSc6ICdhc3Npc3RhbnQnLCAnYXVkaW8nOiBOb25lLCAnZnVuY3Rpb25fY2FsbCc6IE5vbmUsICd0b29sX2NhbGxzJzogTm9uZX19XSwgJ2NyZWF0ZWQnOiAxNzM0MTkwMDUwLCAnbW9kZWwnOiAnZ3B0LTRvLTIwMjQtMDgtMDYnLCAnb2JqZWN0JzogJ2NoYXQuY29tcGxldGlvbicsICdzZXJ2aWNlX3RpZXInOiBOb25lLCAnc3lzdGVtX2ZpbmdlcnByaW50JzogJ2ZwX2EzNGIyNzI3ZDYnLCAndXNhZ2UnOiB7J2NvbXBsZXRpb25fdG9rZW5zJzogNDAsICdwcm9tcHRfdG9rZW5zJzogMTYyLCAndG90YWxfdG9rZW5zJzogMjAyLCAnY29tcGxldGlvbl90b2tlbnNfZGV0YWlscyc6IHsnYWNjZXB0ZWRfcHJlZGljdGlvbl90b2tlbnMnOiAwLCAnYXVkaW9fdG9rZW5zJzogMCwgJ3JlYXNvbmluZ190b2tlbnMnOiAwLCAncmVqZWN0ZWRfcHJlZGljdGlvbl90b2tlbnMnOiAwfSwgJ3Byb21wdF90b2tlbnNfZGV0YWlscyc6IHsnYXVkaW9fdG9rZW5zJzogMCwgJ2NhY2hlZF90b2tlbnMnOiAwfX19IiwxMzM3Ljc5MjY0MjE0MDQ2ODIsMTI0Mi4yMzYwMjQ4NDQ3MjA1LDAuMDAwNTA1LCJ7J2lkJzogJ2NoYXRjbXBsLUFlT0xDYXVyRTJBTUlsVUJaUXUzcERvNXlnZUNIJywgJ2Nob2ljZXMnOiBbeydmaW5pc2hfcmVhc29uJzogJ3N0b3AnLCAnaW5kZXgnOiAwLCAnbG9ncHJvYnMnOiBOb25lLCAnbWVzc2FnZSc6IHsnY29udGVudCc6ICdZZXNcblxuVGhlIGN1c3RvbWVyIGV4cGxpY2l0bHkgcmVxdWVzdHMgYSByZWZ1bmQgYnkgc3RhdGluZywgIiJQbGVhc2UgcmVmdW5kIG1lIGFzIHNvb24gYXMgcG9zc2libGUuIiInLCAncmVmdXNhbCc6IE5vbmUsICdyb2xlJzogJ2Fzc2lzdGFudCcsICdhdWRpbyc6IE5vbmUsICdmdW5jdGlvbl9jYWxsJzogTm9uZSwgJ3Rvb2xfY2FsbHMnOiBOb25lfX1dLCAnY3JlYXRlZCc6IDE3MzQxOTAwNTAsICdtb2RlbCc6ICdncHQtNG8tMjAyNC0wOC0wNicsICdvYmplY3QnOiAnY2hhdC5jb21wbGV0aW9uJywgJ3NlcnZpY2VfdGllcic6IE5vbmUsICdzeXN0ZW1fZmluZ2VycHJpbnQnOiAnZnBfOWZhYmE5ZjAzOCcsICd1c2FnZSc6IHsnY29tcGxldGlvbl90b2tlbnMnOiAyMCwgJ3Byb21wdF90b2tlbnMnOiAxMTYsICd0b3RhbF90b2tlbnMnOiAxMzYsICdjb21wbGV0aW9uX3Rva2Vuc19kZXRhaWxzJzogeydhY2NlcHRlZF9wcmVkaWN0aW9uX3Rva2Vucyc6IDAsICdhdWRpb190b2tlbnMnOiAwLCAncmVhc29uaW5nX3Rva2Vucyc6IDAsICdyZWplY3RlZF9wcmVkaWN0aW9uX3Rva2Vucyc6IDB9LCAncHJvbXB0X3Rva2Vuc19kZXRhaWxzJzogeydhdWRpb190b2tlbnMnOiAwLCAnY2FjaGVkX3Rva2Vucyc6IDB9fX0iLDAsRG9lcyB0aGUgY3VzdG9tZXIgYXNrIGZvciBhIHJlZnVuZCBpbiB0aGlzIHRpY2tldD8gVGlja2V0OiB7eyB0aWNrZXQgfX0sIklmIHRoZSBwcmltYXJ5IGlzc3VlIGluIHRoaXMgdGlja2V0IGlzIHNhZmV0eSwgd2FzIHRoZXJlIGFuIGFjY2lkZW50IHdoZXJlIHNvbWVvbmUgd2FzIGh1cnQ/IFRpY2tldDoge3sgdGlja2V0IH19IixXaGF0IGlzIHRoZSBwcmltYXJ5IGlzc3VlIGluIHRoaXMgdGlja2V0PyBUaWNrZXQ6IHt7IHRpY2tldCB9fSxDaGVjayBhbGwgb2YgdGhlIGlzc3VlcyBtZW50aW9uZWQgaW4gdGhpcyB0aWNrZXQ6IHt7IHRpY2tldCB9fSwiT24gYSBzY2FsZSBmcm9tIDAgdG8gNSwgd2hhdCBpcyB0aGUgcHJpb3JpdHkgbGV2ZWwgb2YgdGhpcyB0aWNrZXQ/IFRpY2tldDoge3sgdGlja2V0IH19IixXaGF0IGlzIHRoZSBzZW50aW1lbnQgb2YgdGhpcyB0aWNrZXQ/IFRpY2tldDoge3sgdGlja2V0IH19LCJbJ3NhZmV0eScsICdjbGVhbmxpbmVzcycsICdkcml2ZXIgcGVyZm9ybWFuY2UnLCAnR1BTL3JvdXRlJywgJ2xvc3QgaXRlbScsICdvdGhlciddIiwiWydWZXJ5IHBvc2l0aXZlJywgJ1NvbWV3aGF0IHBvc2l0aXZlJywgJ05ldXRyYWwnLCAnU29tZXdoYXQgbmVnYXRpdmUnLCAnVmVyeSBuZWdhdGl2ZSddIiwsIlsnTm8nLCAnWWVzJ10iLCJbJ1llcycsICdObycsICdOb3QgYXBwbGljYWJsZSddIiwiWzAsIDEsIDIsIDMsIDQsIDVdIixsaW5lYXJfc2NhbGUsbXVsdGlwbGVfY2hvaWNlLG11bHRpcGxlX2Nob2ljZSx5ZXNfbm8sZnJlZV90ZXh0LGNoZWNrYm94LCwiVGhlIGN1c3RvbWVyIGV4cGxpY2l0bHkgcmVxdWVzdHMgYSByZWZ1bmQgYnkgc3RhdGluZywgIiJQbGVhc2UgcmVmdW5kIG1lIGFzIHNvb24gYXMgcG9zc2libGUuIiIiLCJUaGlzIHNpdHVhdGlvbiBpbnZvbHZlcyBhIGZpbmFuY2lhbCBkaXNjcmVwYW5jeSwgd2hpY2ggaXMgaW1wb3J0YW50IHRvIHJlc29sdmUgcHJvbXB0bHkgdG8gbWFpbnRhaW4gY3VzdG9tZXIgdHJ1c3QgYW5kIHNhdGlzZmFjdGlvbiwgYnV0IGl0IGRvZXMgbm90IGludm9sdmUgaW1tZWRpYXRlIHNhZmV0eSBvciBzZWN1cml0eSBjb25jZXJucywgd2hpY2ggd291bGQgd2FycmFudCBhIGhpZ2hlciBwcmlvcml0eS4iLCJUaGUgaXNzdWUgbWVudGlvbmVkIGluIHRoZSB0aWNrZXQgaXMgcmVsYXRlZCB0byBhIGNoYXJnZSBmb3IgYSByaWRlIHRoYXQgd2FzIG5vdCB0YWtlbiwgd2hpY2ggZG9lc24ndCBmaXQgaW50byB0aGUgcHJlZGVmaW5lZCBjYXRlZ29yaWVzIGV4Y2VwdCBmb3IgIiJvdGhlci4iIiIsIlRoZSB0aWNrZXQgZXhwcmVzc2VzIGRpc3NhdGlzZmFjdGlvbiBhbmQgdXJnZW5jeSBkdWUgdG8gYW4gaW5jb3JyZWN0IGNoYXJnZSwgaW5kaWNhdGluZyBhIHNvbWV3aGF0IG5lZ2F0aXZlIHNlbnRpbWVudC4iLCJUaGUgdGlja2V0IGlzIGFib3V0IGEgYmlsbGluZyBpc3N1ZSwgbm90IGEgc2FmZXR5IGNvbmNlcm4uIiwiU29tZXdoYXQgbmVnYXRpdmUKClRoZSB0aWNrZXQgZXhwcmVzc2VzIGRpc3NhdGlzZmFjdGlvbiBhbmQgdXJnZW5jeSBkdWUgdG8gYW4gaW5jb3JyZWN0IGNoYXJnZSwgaW5kaWNhdGluZyBhIHNvbWV3aGF0IG5lZ2F0aXZlIHNlbnRpbWVudC4iLCJbNV0gIApUaGUgaXNzdWUgbWVudGlvbmVkIGluIHRoZSB0aWNrZXQgaXMgcmVsYXRlZCB0byBhIGNoYXJnZSBmb3IgYSByaWRlIHRoYXQgd2FzIG5vdCB0YWtlbiwgd2hpY2ggZG9lc24ndCBmaXQgaW50byB0aGUgcHJlZGVmaW5lZCBjYXRlZ29yaWVzIGV4Y2VwdCBmb3IgIiJvdGhlci4iIiIsIlllcwoKVGhlIGN1c3RvbWVyIGV4cGxpY2l0bHkgcmVxdWVzdHMgYSByZWZ1bmQgYnkgc3RhdGluZywgIiJQbGVhc2UgcmVmdW5kIG1lIGFzIHNvb24gYXMgcG9zc2libGUuIiIiLFRoZSBwcmltYXJ5IGlzc3VlIGluIHRoaXMgdGlja2V0IGlzIGFuIGluY29ycmVjdCBjaGFyZ2UgZm9yIGEgcmlkZSB0aGF0IHRoZSBjdXN0b21lciBjbGFpbXMgdGhleSBkaWQgbm90IHRha2UuIFRoZSBjdXN0b21lciBpcyByZXF1ZXN0aW5nIGEgcmVmdW5kIGZvciB0aGlzIGNoYXJnZS4sIk5vdCBhcHBsaWNhYmxlCgpUaGUgdGlja2V0IGlzIGFib3V0IGEgYmlsbGluZyBpc3N1ZSwgbm90IGEgc2FmZXR5IGNvbmNlcm4uIiwiMyAgClRoaXMgc2l0dWF0aW9uIGludm9sdmVzIGEgZmluYW5jaWFsIGRpc2NyZXBhbmN5LCB3aGljaCBpcyBpbXBvcnRhbnQgdG8gcmVzb2x2ZSBwcm9tcHRseSB0byBtYWludGFpbiBjdXN0b21lciB0cnVzdCBhbmQgc2F0aXNmYWN0aW9uLCBidXQgaXQgZG9lcyBub3QgaW52b2x2ZSBpbW1lZGlhdGUgc2FmZXR5IG9yIHNlY3VyaXR5IGNvbmNlcm5zLCB3aGljaCB3b3VsZCB3YXJyYW50IGEgaGlnaGVyIHByaW9yaXR5LiINCk5vdCBhcHBsaWNhYmxlLFNvbWV3aGF0IG5lZ2F0aXZlLE5vLFRoZSBwcmltYXJ5IGlzc3VlIGluIHRoaXMgdGlja2V0IGlzIHRoYXQgdGhlIGN1c3RvbWVyIGlzIGV4cGVyaWVuY2luZyBkaWZmaWN1bHR5IHdpdGggYSBwcm9tbyBjb2RlIHRoYXQgZGlkIG5vdCB3b3JrIGFzIGV4cGVjdGVkLiBUaGUgY3VzdG9tZXIgaXMgc2Vla2luZyBhc3Npc3RhbmNlIHRvIHJlc29sdmUgdGhpcyBpc3N1ZS4sMixbJ290aGVyJ10sVGhlIHByb21vIGNvZGUgSSB0cmllZCB0byB1c2UgZGlkbid0IHdvcmsuIENhbiB5b3UgYXNzaXN0IHdpdGggdGhpcz8sWW91IGFyZSBhbiBleHBlcnQgY3VzdG9tZXIgc2VydmljZSBhZ2VudC4sQWdlbnRfMTMsMTUsWW91IGFyZSBhbnN3ZXJpbmcgcXVlc3Rpb25zIGFzIGlmIHlvdSB3ZXJlIGEgaHVtYW4uIERvIG5vdCBicmVhayBjaGFyYWN0ZXIuLDAsMSwwLGdwdC00bywwLjUsRmFsc2UsMTAwMCwzLFdoYXQgaXMgdGhlIHByaW1hcnkgaXNzdWUgaW4gdGhpcyB0aWNrZXQ/IFRpY2tldDogVGhlIHByb21vIGNvZGUgSSB0cmllZCB0byB1c2UgZGlkbid0IHdvcmsuIENhbiB5b3UgYXNzaXN0IHdpdGggdGhpcz8sIllvdSBhcmUgYW5zd2VyaW5nIHF1ZXN0aW9ucyBhcyBpZiB5b3Ugd2VyZSBhIGh1bWFuLiBEbyBub3QgYnJlYWsgY2hhcmFjdGVyLiBZb3VyIHRyYWl0czogeydwZXJzb25hJzogJ1lvdSBhcmUgYW4gZXhwZXJ0IGN1c3RvbWVyIHNlcnZpY2UgYWdlbnQuJywgJ3llYXJzX2V4cGVyaWVuY2UnOiAxNX0iLCJZb3UgYXJlIGFuc3dlcmluZyBxdWVzdGlvbnMgYXMgaWYgeW91IHdlcmUgYSBodW1hbi4gRG8gbm90IGJyZWFrIGNoYXJhY3Rlci4gWW91ciB0cmFpdHM6IHsncGVyc29uYSc6ICdZb3UgYXJlIGFuIGV4cGVydCBjdXN0b21lciBzZXJ2aWNlIGFnZW50LicsICd5ZWFyc19leHBlcmllbmNlJzogMTV9IiwiQ2hlY2sgYWxsIG9mIHRoZSBpc3N1ZXMgbWVudGlvbmVkIGluIHRoaXMgdGlja2V0OiBUaGUgcHJvbW8gY29kZSBJIHRyaWVkIHRvIHVzZSBkaWRuJ3Qgd29yay4gQ2FuIHlvdSBhc3Npc3Qgd2l0aCB0aGlzPwoKICAgIAowOiBzYWZldHkKICAgIAoxOiBjbGVhbmxpbmVzcwogICAgCjI6IGRyaXZlciBwZXJmb3JtYW5jZQogICAgCjM6IEdQUy9yb3V0ZQogICAgCjQ6IGxvc3QgaXRlbQogICAgCjU6IG90aGVyCiAgICAKCgoKCgoKUGxlYXNlIHJlc3BvbmQgb25seSB3aXRoIGEgY29tbWEtc2VwYXJhdGVkIGxpc3Qgb2YgdGhlIGNvZGUgb2YgdGhlIG9wdGlvbnMgdGhhdCBhcHBseSwgd2l0aCBzcXVhcmUgYnJhY2tldHMuIEUuZy4sIFswLCAxLCAzXQoKCkFmdGVyIHRoZSBhbnN3ZXIsIHlvdSBjYW4gcHV0IGEgY29tbWVudCBleHBsYWluaW5nIHlvdXIgY2hvaWNlIG9uIHRoZSBuZXh0IGxpbmUuIiwiT24gYSBzY2FsZSBmcm9tIDAgdG8gNSwgd2hhdCBpcyB0aGUgcHJpb3JpdHkgbGV2ZWwgb2YgdGhpcyB0aWNrZXQ/IFRpY2tldDogVGhlIHByb21vIGNvZGUgSSB0cmllZCB0byB1c2UgZGlkbid0IHdvcmsuIENhbiB5b3UgYXNzaXN0IHdpdGggdGhpcz8KCjAgOiBMb3dlc3QKCjEgOiAKCjIgOiAKCjMgOiAKCjQgOiAKCjUgOiBIaWdoZXN0CgpPbmx5IDEgb3B0aW9uIG1heSBiZSBzZWxlY3RlZC4KClJlc3BvbmQgb25seSB3aXRoIHRoZSBjb2RlIGNvcnJlc3BvbmRpbmcgdG8gb25lIG9mIHRoZSBvcHRpb25zLiBFLmcuLCAiIjEiIiBvciAiIjUiIiBieSBpdHNlbGYuCgpBZnRlciB0aGUgYW5zd2VyLCB5b3UgY2FuIHB1dCBhIGNvbW1lbnQgZXhwbGFpbmluZyB3aHkgeW91IGNob3NlIHRoYXQgb3B0aW9uIG9uIHRoZSBuZXh0IGxpbmUuIiwiWW91IGFyZSBhbnN3ZXJpbmcgcXVlc3Rpb25zIGFzIGlmIHlvdSB3ZXJlIGEgaHVtYW4uIERvIG5vdCBicmVhayBjaGFyYWN0ZXIuIFlvdXIgdHJhaXRzOiB7J3BlcnNvbmEnOiAnWW91IGFyZSBhbiBleHBlcnQgY3VzdG9tZXIgc2VydmljZSBhZ2VudC4nLCAneWVhcnNfZXhwZXJpZW5jZSc6IDE1fSIsIllvdSBhcmUgYW5zd2VyaW5nIHF1ZXN0aW9ucyBhcyBpZiB5b3Ugd2VyZSBhIGh1bWFuLiBEbyBub3QgYnJlYWsgY2hhcmFjdGVyLiBZb3VyIHRyYWl0czogeydwZXJzb25hJzogJ1lvdSBhcmUgYW4gZXhwZXJ0IGN1c3RvbWVyIHNlcnZpY2UgYWdlbnQuJywgJ3llYXJzX2V4cGVyaWVuY2UnOiAxNX0iLCJZb3UgYXJlIGFuc3dlcmluZyBxdWVzdGlvbnMgYXMgaWYgeW91IHdlcmUgYSBodW1hbi4gRG8gbm90IGJyZWFrIGNoYXJhY3Rlci4gWW91ciB0cmFpdHM6IHsncGVyc29uYSc6ICdZb3UgYXJlIGFuIGV4cGVydCBjdXN0b21lciBzZXJ2aWNlIGFnZW50LicsICd5ZWFyc19leHBlcmllbmNlJzogMTV9IiwiCldoYXQgaXMgdGhlIHNlbnRpbWVudCBvZiB0aGlzIHRpY2tldD8gVGlja2V0OiBUaGUgcHJvbW8gY29kZSBJIHRyaWVkIHRvIHVzZSBkaWRuJ3Qgd29yay4gQ2FuIHlvdSBhc3Npc3Qgd2l0aCB0aGlzPwoKICAgIApWZXJ5IHBvc2l0aXZlCiAgICAKU29tZXdoYXQgcG9zaXRpdmUKICAgIApOZXV0cmFsCiAgICAKU29tZXdoYXQgbmVnYXRpdmUKICAgIApWZXJ5IG5lZ2F0aXZlCiAgICAKCk9ubHkgMSBvcHRpb24gbWF5IGJlIHNlbGVjdGVkLgoKUmVzcG9uZCBvbmx5IHdpdGggYSBzdHJpbmcgY29ycmVzcG9uZGluZyB0byBvbmUgb2YgdGhlIG9wdGlvbnMuCgoKQWZ0ZXIgdGhlIGFuc3dlciwgeW91IGNhbiBwdXQgYSBjb21tZW50IGV4cGxhaW5pbmcgd2h5IHlvdSBjaG9zZSB0aGF0IG9wdGlvbiBvbiB0aGUgbmV4dCBsaW5lLiIsIgpEb2VzIHRoZSBjdXN0b21lciBhc2sgZm9yIGEgcmVmdW5kIGluIHRoaXMgdGlja2V0PyBUaWNrZXQ6IFRoZSBwcm9tbyBjb2RlIEkgdHJpZWQgdG8gdXNlIGRpZG4ndCB3b3JrLiBDYW4geW91IGFzc2lzdCB3aXRoIHRoaXM/CgogICAgCk5vCiAgICAKWWVzCiAgICAKCk9ubHkgMSBvcHRpb24gbWF5IGJlIHNlbGVjdGVkLgpQbGVhc2UgcmVzcG9uZCB3aXRoIGp1c3QgeW91ciBhbnN3ZXIuIAoKCkFmdGVyIHRoZSBhbnN3ZXIsIHlvdSBjYW4gcHV0IGEgY29tbWVudCBleHBsYWluaW5nIHlvdXIgcmVzcG9uc2UuIiwiWW91IGFyZSBhbnN3ZXJpbmcgcXVlc3Rpb25zIGFzIGlmIHlvdSB3ZXJlIGEgaHVtYW4uIERvIG5vdCBicmVhayBjaGFyYWN0ZXIuIFlvdXIgdHJhaXRzOiB7J3BlcnNvbmEnOiAnWW91IGFyZSBhbiBleHBlcnQgY3VzdG9tZXIgc2VydmljZSBhZ2VudC4nLCAneWVhcnNfZXhwZXJpZW5jZSc6IDE1fSIsIgpJZiB0aGUgcHJpbWFyeSBpc3N1ZSBpbiB0aGlzIHRpY2tldCBpcyBzYWZldHksIHdhcyB0aGVyZSBhbiBhY2NpZGVudCB3aGVyZSBzb21lb25lIHdhcyBodXJ0PyBUaWNrZXQ6IFRoZSBwcm9tbyBjb2RlIEkgdHJpZWQgdG8gdXNlIGRpZG4ndCB3b3JrLiBDYW4geW91IGFzc2lzdCB3aXRoIHRoaXM/CgogICAgClllcwogICAgCk5vCiAgICAKTm90IGFwcGxpY2FibGUKICAgIAoKT25seSAxIG9wdGlvbiBtYXkgYmUgc2VsZWN0ZWQuCgpSZXNwb25kIG9ubHkgd2l0aCBhIHN0cmluZyBjb3JyZXNwb25kaW5nIHRvIG9uZSBvZiB0aGUgb3B0aW9ucy4KCgpBZnRlciB0aGUgYW5zd2VyLCB5b3UgY2FuIHB1dCBhIGNvbW1lbnQgZXhwbGFpbmluZyB3aHkgeW91IGNob3NlIHRoYXQgb3B0aW9uIG9uIHRoZSBuZXh0IGxpbmUuIiwwLjAwMDY4NTAwMDAwMDAwMDAwMDEsInsnaWQnOiAnY2hhdGNtcGwtQWVPTERlYVdzbW56b3RXaFcxRUFHeWJMTVhncE4nLCAnY2hvaWNlcyc6IFt7J2ZpbmlzaF9yZWFzb24nOiAnc3RvcCcsICdpbmRleCc6IDAsICdsb2dwcm9icyc6IE5vbmUsICdtZXNzYWdlJzogeydjb250ZW50JzogIiJOb3QgYXBwbGljYWJsZSAgXG5UaGUgdGlja2V0IGlzIHJlbGF0ZWQgdG8gYSBwcm9tbyBjb2RlIGlzc3VlLCB3aGljaCBkb2Vzbid0IHBlcnRhaW4gdG8gc2FmZXR5IG9yIGFjY2lkZW50cy4iIiwgJ3JlZnVzYWwnOiBOb25lLCAncm9sZSc6ICdhc3Npc3RhbnQnLCAnYXVkaW8nOiBOb25lLCAnZnVuY3Rpb25fY2FsbCc6IE5vbmUsICd0b29sX2NhbGxzJzogTm9uZX19XSwgJ2NyZWF0ZWQnOiAxNzM0MTkwMDUxLCAnbW9kZWwnOiAnZ3B0LTRvLTIwMjQtMDgtMDYnLCAnb2JqZWN0JzogJ2NoYXQuY29tcGxldGlvbicsICdzZXJ2aWNlX3RpZXInOiBOb25lLCAnc3lzdGVtX2ZpbmdlcnByaW50JzogJ2ZwXzlmYWJhOWYwMzgnLCAndXNhZ2UnOiB7J2NvbXBsZXRpb25fdG9rZW5zJzogMjIsICdwcm9tcHRfdG9rZW5zJzogMTM2LCAndG90YWxfdG9rZW5zJzogMTU4LCAnY29tcGxldGlvbl90b2tlbnNfZGV0YWlscyc6IHsnYWNjZXB0ZWRfcHJlZGljdGlvbl90b2tlbnMnOiAwLCAnYXVkaW9fdG9rZW5zJzogMCwgJ3JlYXNvbmluZ190b2tlbnMnOiAwLCAncmVqZWN0ZWRfcHJlZGljdGlvbl90b2tlbnMnOiAwfSwgJ3Byb21wdF90b2tlbnNfZGV0YWlscyc6IHsnYXVkaW9fdG9rZW5zJzogMCwgJ2NhY2hlZF90b2tlbnMnOiAwfX19IiwieydpZCc6ICdjaGF0Y21wbC1BZU9MQ0hJYlppbkxwSVFNU0ZLZXFQWTVxWkpnbScsICdjaG9pY2VzJzogW3snZmluaXNoX3JlYXNvbic6ICdzdG9wJywgJ2luZGV4JzogMCwgJ2xvZ3Byb2JzJzogTm9uZSwgJ21lc3NhZ2UnOiB7J2NvbnRlbnQnOiAnU29tZXdoYXQgbmVnYXRpdmVcblxuVGhlIHNlbnRpbWVudCBpcyAiInNvbWV3aGF0IG5lZ2F0aXZlIiIgYmVjYXVzZSB0aGUgY3VzdG9tZXIgaXMgZXhwcmVzc2luZyBkaXNzYXRpc2ZhY3Rpb24gZHVlIHRvIHRoZSBwcm9tbyBjb2RlIG5vdCB3b3JraW5nLCBidXQgdGhleSBhcmUgc3RpbGwgcG9saXRlbHkgYXNraW5nIGZvciBhc3Npc3RhbmNlLicsICdyZWZ1c2FsJzogTm9uZSwgJ3JvbGUnOiAnYXNzaXN0YW50JywgJ2F1ZGlvJzogTm9uZSwgJ2Z1bmN0aW9uX2NhbGwnOiBOb25lLCAndG9vbF9jYWxscyc6IE5vbmV9fV0sICdjcmVhdGVkJzogMTczNDE5MDA1MCwgJ21vZGVsJzogJ2dwdC00by0yMDI0LTA4LTA2JywgJ29iamVjdCc6ICdjaGF0LmNvbXBsZXRpb24nLCAnc2VydmljZV90aWVyJzogTm9uZSwgJ3N5c3RlbV9maW5nZXJwcmludCc6ICdmcF85ZmFiYTlmMDM4JywgJ3VzYWdlJzogeydjb21wbGV0aW9uX3Rva2Vucyc6IDM1LCAncHJvbXB0X3Rva2Vucyc6IDEzNCwgJ3RvdGFsX3Rva2Vucyc6IDE2OSwgJ2NvbXBsZXRpb25fdG9rZW5zX2RldGFpbHMnOiB7J2FjY2VwdGVkX3ByZWRpY3Rpb25fdG9rZW5zJzogMCwgJ2F1ZGlvX3Rva2Vucyc6IDAsICdyZWFzb25pbmdfdG9rZW5zJzogMCwgJ3JlamVjdGVkX3ByZWRpY3Rpb25fdG9rZW5zJzogMH0sICdwcm9tcHRfdG9rZW5zX2RldGFpbHMnOiB7J2F1ZGlvX3Rva2Vucyc6IDAsICdjYWNoZWRfdG9rZW5zJzogMH19fSIsMTQ1OS44NTQwMTQ1OTg1NCwxOTA0Ljc2MTkwNDc2MTkwNDgsInsnaWQnOiAnY2hhdGNtcGwtQWVPTENQSUVNMlNzZ0FYMnhScDRhbDNvNGY1UTQnLCAnY2hvaWNlcyc6IFt7J2ZpbmlzaF9yZWFzb24nOiAnc3RvcCcsICdpbmRleCc6IDAsICdsb2dwcm9icyc6IE5vbmUsICdtZXNzYWdlJzogeydjb250ZW50JzogJ1s1XSAgXG5UaGUgaXNzdWUgbWVudGlvbmVkIGluIHRoZSB0aWNrZXQgaXMgcmVsYXRlZCB0byBhIHByb21vIGNvZGUgbm90IHdvcmtpbmcsIHdoaWNoIGZhbGxzIHVuZGVyIHRoZSAiIm90aGVyIiIgY2F0ZWdvcnkuJywgJ3JlZnVzYWwnOiBOb25lLCAncm9sZSc6ICdhc3Npc3RhbnQnLCAnYXVkaW8nOiBOb25lLCAnZnVuY3Rpb25fY2FsbCc6IE5vbmUsICd0b29sX2NhbGxzJzogTm9uZX19XSwgJ2NyZWF0ZWQnOiAxNzM0MTkwMDUwLCAnbW9kZWwnOiAnZ3B0LTRvLTIwMjQtMDgtMDYnLCAnb2JqZWN0JzogJ2NoYXQuY29tcGxldGlvbicsICdzZXJ2aWNlX3RpZXInOiBOb25lLCAnc3lzdGVtX2ZpbmdlcnByaW50JzogJ2ZwX2E3OWQ4ZGFjMWYnLCAndXNhZ2UnOiB7J2NvbXBsZXRpb25fdG9rZW5zJzogMjgsICdwcm9tcHRfdG9rZW5zJzogMTU3LCAndG90YWxfdG9rZW5zJzogMTg1LCAnY29tcGxldGlvbl90b2tlbnNfZGV0YWlscyc6IHsnYWNjZXB0ZWRfcHJlZGljdGlvbl90b2tlbnMnOiAwLCAnYXVkaW9fdG9rZW5zJzogMCwgJ3JlYXNvbmluZ190b2tlbnMnOiAwLCAncmVqZWN0ZWRfcHJlZGljdGlvbl90b2tlbnMnOiAwfSwgJ3Byb21wdF90b2tlbnNfZGV0YWlscyc6IHsnYXVkaW9fdG9rZW5zJzogMCwgJ2NhY2hlZF90b2tlbnMnOiAwfX19IiwwLjAwMDc4MDAwMDAwMDAwMDAwMDEsMTc4NS43MTQyODU3MTQyODU2LDAuMDAwNTI1LDAuMDAwNjcyNDk5OTk5OTk5OTk5OSwieydpZCc6ICdjaGF0Y21wbC1BZU9MRGhmVkM1MVNFVlk4UE9CYUdwa3Znd1JKMycsICdjaG9pY2VzJzogW3snZmluaXNoX3JlYXNvbic6ICdzdG9wJywgJ2luZGV4JzogMCwgJ2xvZ3Byb2JzJzogTm9uZSwgJ21lc3NhZ2UnOiB7J2NvbnRlbnQnOiAnVGhlIHByaW1hcnkgaXNzdWUgaW4gdGhpcyB0aWNrZXQgaXMgdGhhdCB0aGUgY3VzdG9tZXIgaXMgZXhwZXJpZW5jaW5nIGRpZmZpY3VsdHkgd2l0aCBhIHByb21vIGNvZGUgdGhhdCBkaWQgbm90IHdvcmsgYXMgZXhwZWN0ZWQuIFRoZSBjdXN0b21lciBpcyBzZWVraW5nIGFzc2lzdGFuY2UgdG8gcmVzb2x2ZSB0aGlzIGlzc3VlLicsICdyZWZ1c2FsJzogTm9uZSwgJ3JvbGUnOiAnYXNzaXN0YW50JywgJ2F1ZGlvJzogTm9uZSwgJ2Z1bmN0aW9uX2NhbGwnOiBOb25lLCAndG9vbF9jYWxscyc6IE5vbmV9fV0sICdjcmVhdGVkJzogMTczNDE5MDA1MSwgJ21vZGVsJzogJ2dwdC00by0yMDI0LTA4LTA2JywgJ29iamVjdCc6ICdjaGF0LmNvbXBsZXRpb24nLCAnc2VydmljZV90aWVyJzogTm9uZSwgJ3N5c3RlbV9maW5nZXJwcmludCc6ICdmcF9hNzlkOGRhYzFmJywgJ3VzYWdlJzogeydjb21wbGV0aW9uX3Rva2Vucyc6IDM0LCAncHJvbXB0X3Rva2Vucyc6IDc3LCAndG90YWxfdG9rZW5zJzogMTExLCAnY29tcGxldGlvbl90b2tlbnNfZGV0YWlscyc6IHsnYWNjZXB0ZWRfcHJlZGljdGlvbl90b2tlbnMnOiAwLCAnYXVkaW9fdG9rZW5zJzogMCwgJ3JlYXNvbmluZ190b2tlbnMnOiAwLCAncmVqZWN0ZWRfcHJlZGljdGlvbl90b2tlbnMnOiAwfSwgJ3Byb21wdF90b2tlbnNfZGV0YWlscyc6IHsnYXVkaW9fdG9rZW5zJzogMCwgJ2NhY2hlZF90b2tlbnMnOiAwfX19IiwwLjAwMDUzMjUsMTg3Ny45MzQyNzIzMDA0Njk1LCJ7J2lkJzogJ2NoYXRjbXBsLUFlT0xDT1lCdVkxcFMyRXJiaDZFamlMeFhxSkhnJywgJ2Nob2ljZXMnOiBbeydmaW5pc2hfcmVhc29uJzogJ3N0b3AnLCAnaW5kZXgnOiAwLCAnbG9ncHJvYnMnOiBOb25lLCAnbWVzc2FnZSc6IHsnY29udGVudCc6ICIiMiAgXG5UaGlzIGlzc3VlIGFmZmVjdHMgdGhlIGN1c3RvbWVyJ3MgYWJpbGl0eSB0byBjb21wbGV0ZSBhIHB1cmNoYXNlLCBidXQgaXQgaXMgbm90IGEgc3lzdGVtLXdpZGUgb3V0YWdlIG9yIGEgY3JpdGljYWwgZmFpbHVyZS4gSXQgaXMgaW1wb3J0YW50IHRvIHJlc29sdmUgaXQgcHJvbXB0bHkgdG8gZW5zdXJlIGN1c3RvbWVyIHNhdGlzZmFjdGlvbi4iIiwgJ3JlZnVzYWwnOiBOb25lLCAncm9sZSc6ICdhc3Npc3RhbnQnLCAnYXVkaW8nOiBOb25lLCAnZnVuY3Rpb25fY2FsbCc6IE5vbmUsICd0b29sX2NhbGxzJzogTm9uZX19XSwgJ2NyZWF0ZWQnOiAxNzM0MTkwMDUwLCAnbW9kZWwnOiAnZ3B0LTRvLTIwMjQtMDgtMDYnLCAnb2JqZWN0JzogJ2NoYXQuY29tcGxldGlvbicsICdzZXJ2aWNlX3RpZXInOiBOb25lLCAnc3lzdGVtX2ZpbmdlcnByaW50JzogJ2ZwX2E3OWQ4ZGFjMWYnLCAndXNhZ2UnOiB7J2NvbXBsZXRpb25fdG9rZW5zJzogMzgsICdwcm9tcHRfdG9rZW5zJzogMTYwLCAndG90YWxfdG9rZW5zJzogMTk4LCAnY29tcGxldGlvbl90b2tlbnNfZGV0YWlscyc6IHsnYWNjZXB0ZWRfcHJlZGljdGlvbl90b2tlbnMnOiAwLCAnYXVkaW9fdG9rZW5zJzogMCwgJ3JlYXNvbmluZ190b2tlbnMnOiAwLCAncmVqZWN0ZWRfcHJlZGljdGlvbl90b2tlbnMnOiAwfSwgJ3Byb21wdF90b2tlbnNfZGV0YWlscyc6IHsnYXVkaW9fdG9rZW5zJzogMCwgJ2NhY2hlZF90b2tlbnMnOiAwfX19IiwxNDg2Ljk4ODg0NzU4MzY0MzMsMTI4Mi4wNTEyODIwNTEyODIsMC4wMDA1NjAwMDAwMDAwMDAwMDAxLCJ7J2lkJzogJ2NoYXRjbXBsLUFlT0xDQ2huQzVKbXEwcWptM1djNFdPZllMM1pWJywgJ2Nob2ljZXMnOiBbeydmaW5pc2hfcmVhc29uJzogJ3N0b3AnLCAnaW5kZXgnOiAwLCAnbG9ncHJvYnMnOiBOb25lLCAnbWVzc2FnZSc6IHsnY29udGVudCc6ICdOb1xuXG5UaGUgdGlja2V0IGRvZXMgbm90IG1lbnRpb24gYSByZXF1ZXN0IGZvciBhIHJlZnVuZDsgaXQgc2ltcGx5IGFza3MgZm9yIGFzc2lzdGFuY2Ugd2l0aCBhIHByb21vIGNvZGUgaXNzdWUuJywgJ3JlZnVzYWwnOiBOb25lLCAncm9sZSc6ICdhc3Npc3RhbnQnLCAnYXVkaW8nOiBOb25lLCAnZnVuY3Rpb25fY2FsbCc6IE5vbmUsICd0b29sX2NhbGxzJzogTm9uZX19XSwgJ2NyZWF0ZWQnOiAxNzM0MTkwMDUwLCAnbW9kZWwnOiAnZ3B0LTRvLTIwMjQtMDgtMDYnLCAnb2JqZWN0JzogJ2NoYXQuY29tcGxldGlvbicsICdzZXJ2aWNlX3RpZXInOiBOb25lLCAnc3lzdGVtX2ZpbmdlcnByaW50JzogJ2ZwX2E3OWQ4ZGFjMWYnLCAndXNhZ2UnOiB7J2NvbXBsZXRpb25fdG9rZW5zJzogMjQsICdwcm9tcHRfdG9rZW5zJzogMTE0LCAndG90YWxfdG9rZW5zJzogMTM4LCAnY29tcGxldGlvbl90b2tlbnNfZGV0YWlscyc6IHsnYWNjZXB0ZWRfcHJlZGljdGlvbl90b2tlbnMnOiAwLCAnYXVkaW9fdG9rZW5zJzogMCwgJ3JlYXNvbmluZ190b2tlbnMnOiAwLCAncmVqZWN0ZWRfcHJlZGljdGlvbl90b2tlbnMnOiAwfSwgJ3Byb21wdF90b2tlbnNfZGV0YWlscyc6IHsnYXVkaW9fdG9rZW5zJzogMCwgJ2NhY2hlZF90b2tlbnMnOiAwfX19IiwwLERvZXMgdGhlIGN1c3RvbWVyIGFzayBmb3IgYSByZWZ1bmQgaW4gdGhpcyB0aWNrZXQ/IFRpY2tldDoge3sgdGlja2V0IH19LCJJZiB0aGUgcHJpbWFyeSBpc3N1ZSBpbiB0aGlzIHRpY2tldCBpcyBzYWZldHksIHdhcyB0aGVyZSBhbiBhY2NpZGVudCB3aGVyZSBzb21lb25lIHdhcyBodXJ0PyBUaWNrZXQ6IHt7IHRpY2tldCB9fSIsV2hhdCBpcyB0aGUgcHJpbWFyeSBpc3N1ZSBpbiB0aGlzIHRpY2tldD8gVGlja2V0OiB7eyB0aWNrZXQgfX0sQ2hlY2sgYWxsIG9mIHRoZSBpc3N1ZXMgbWVudGlvbmVkIGluIHRoaXMgdGlja2V0OiB7eyB0aWNrZXQgfX0sIk9uIGEgc2NhbGUgZnJvbSAwIHRvIDUsIHdoYXQgaXMgdGhlIHByaW9yaXR5IGxldmVsIG9mIHRoaXMgdGlja2V0PyBUaWNrZXQ6IHt7IHRpY2tldCB9fSIsV2hhdCBpcyB0aGUgc2VudGltZW50IG9mIHRoaXMgdGlja2V0PyBUaWNrZXQ6IHt7IHRpY2tldCB9fSwiWydzYWZldHknLCAnY2xlYW5saW5lc3MnLCAnZHJpdmVyIHBlcmZvcm1hbmNlJywgJ0dQUy9yb3V0ZScsICdsb3N0IGl0ZW0nLCAnb3RoZXInXSIsIlsnVmVyeSBwb3NpdGl2ZScsICdTb21ld2hhdCBwb3NpdGl2ZScsICdOZXV0cmFsJywgJ1NvbWV3aGF0IG5lZ2F0aXZlJywgJ1ZlcnkgbmVnYXRpdmUnXSIsLCJbJ05vJywgJ1llcyddIiwiWydZZXMnLCAnTm8nLCAnTm90IGFwcGxpY2FibGUnXSIsIlswLCAxLCAyLCAzLCA0LCA1XSIsbGluZWFyX3NjYWxlLG11bHRpcGxlX2Nob2ljZSxtdWx0aXBsZV9jaG9pY2UseWVzX25vLGZyZWVfdGV4dCxjaGVja2JveCwsVGhlIHRpY2tldCBkb2VzIG5vdCBtZW50aW9uIGEgcmVxdWVzdCBmb3IgYSByZWZ1bmQ7IGl0IHNpbXBseSBhc2tzIGZvciBhc3Npc3RhbmNlIHdpdGggYSBwcm9tbyBjb2RlIGlzc3VlLiwiVGhpcyBpc3N1ZSBhZmZlY3RzIHRoZSBjdXN0b21lcidzIGFiaWxpdHkgdG8gY29tcGxldGUgYSBwdXJjaGFzZSwgYnV0IGl0IGlzIG5vdCBhIHN5c3RlbS13aWRlIG91dGFnZSBvciBhIGNyaXRpY2FsIGZhaWx1cmUuIEl0IGlzIGltcG9ydGFudCB0byByZXNvbHZlIGl0IHByb21wdGx5IHRvIGVuc3VyZSBjdXN0b21lciBzYXRpc2ZhY3Rpb24uIiwiVGhlIGlzc3VlIG1lbnRpb25lZCBpbiB0aGUgdGlja2V0IGlzIHJlbGF0ZWQgdG8gYSBwcm9tbyBjb2RlIG5vdCB3b3JraW5nLCB3aGljaCBmYWxscyB1bmRlciB0aGUgIiJvdGhlciIiIGNhdGVnb3J5LiIsIlRoZSBzZW50aW1lbnQgaXMgIiJzb21ld2hhdCBuZWdhdGl2ZSIiIGJlY2F1c2UgdGhlIGN1c3RvbWVyIGlzIGV4cHJlc3NpbmcgZGlzc2F0aXNmYWN0aW9uIGR1ZSB0byB0aGUgcHJvbW8gY29kZSBub3Qgd29ya2luZywgYnV0IHRoZXkgYXJlIHN0aWxsIHBvbGl0ZWx5IGFza2luZyBmb3IgYXNzaXN0YW5jZS4iLCJUaGUgdGlja2V0IGlzIHJlbGF0ZWQgdG8gYSBwcm9tbyBjb2RlIGlzc3VlLCB3aGljaCBkb2Vzbid0IHBlcnRhaW4gdG8gc2FmZXR5IG9yIGFjY2lkZW50cy4iLCJTb21ld2hhdCBuZWdhdGl2ZQoKVGhlIHNlbnRpbWVudCBpcyAiInNvbWV3aGF0IG5lZ2F0aXZlIiIgYmVjYXVzZSB0aGUgY3VzdG9tZXIgaXMgZXhwcmVzc2luZyBkaXNzYXRpc2ZhY3Rpb24gZHVlIHRvIHRoZSBwcm9tbyBjb2RlIG5vdCB3b3JraW5nLCBidXQgdGhleSBhcmUgc3RpbGwgcG9saXRlbHkgYXNraW5nIGZvciBhc3Npc3RhbmNlLiIsIls1XSAgClRoZSBpc3N1ZSBtZW50aW9uZWQgaW4gdGhlIHRpY2tldCBpcyByZWxhdGVkIHRvIGEgcHJvbW8gY29kZSBub3Qgd29ya2luZywgd2hpY2ggZmFsbHMgdW5kZXIgdGhlICIib3RoZXIiIiBjYXRlZ29yeS4iLCJObwoKVGhlIHRpY2tldCBkb2VzIG5vdCBtZW50aW9uIGEgcmVxdWVzdCBmb3IgYSByZWZ1bmQ7IGl0IHNpbXBseSBhc2tzIGZvciBhc3Npc3RhbmNlIHdpdGggYSBwcm9tbyBjb2RlIGlzc3VlLiIsVGhlIHByaW1hcnkgaXNzdWUgaW4gdGhpcyB0aWNrZXQgaXMgdGhhdCB0aGUgY3VzdG9tZXIgaXMgZXhwZXJpZW5jaW5nIGRpZmZpY3VsdHkgd2l0aCBhIHByb21vIGNvZGUgdGhhdCBkaWQgbm90IHdvcmsgYXMgZXhwZWN0ZWQuIFRoZSBjdXN0b21lciBpcyBzZWVraW5nIGFzc2lzdGFuY2UgdG8gcmVzb2x2ZSB0aGlzIGlzc3VlLiwiTm90IGFwcGxpY2FibGUgIApUaGUgdGlja2V0IGlzIHJlbGF0ZWQgdG8gYSBwcm9tbyBjb2RlIGlzc3VlLCB3aGljaCBkb2Vzbid0IHBlcnRhaW4gdG8gc2FmZXR5IG9yIGFjY2lkZW50cy4iLCIyICAKVGhpcyBpc3N1ZSBhZmZlY3RzIHRoZSBjdXN0b21lcidzIGFiaWxpdHkgdG8gY29tcGxldGUgYSBwdXJjaGFzZSwgYnV0IGl0IGlzIG5vdCBhIHN5c3RlbS13aWRlIG91dGFnZSBvciBhIGNyaXRpY2FsIGZhaWx1cmUuIEl0IGlzIGltcG9ydGFudCB0byByZXNvbHZlIGl0IHByb21wdGx5IHRvIGVuc3VyZSBjdXN0b21lciBzYXRpc2ZhY3Rpb24uIg0KTm8sU29tZXdoYXQgbmVnYXRpdmUsTm8sIlRoZSBwcmltYXJ5IGlzc3VlIGluIHRoaXMgdGlja2V0IGlzIHRoZSBjdXN0b21lcidzIGNvbmNlcm4gYWJvdXQgYSBzdXNwaWNpb3VzIHNtZWxsIGluIHRoZSBjYXIsIHdoaWNoIGlzIHJhaXNpbmcgd29ycmllcyBhYm91dCB0aGUgaHlnaWVuZSBzdGFuZGFyZHMgb2YgdGhlIHZlaGljbGUuIEFkZHJlc3NpbmcgdGhpcyBpc3N1ZSB3b3VsZCBsaWtlbHkgaW52b2x2ZSBpbnZlc3RpZ2F0aW5nIHRoZSBzb3VyY2Ugb2YgdGhlIHNtZWxsIGFuZCBlbnN1cmluZyB0aGF0IHRoZSB2ZWhpY2xlIG1lZXRzIGNsZWFubGluZXNzIGFuZCBoeWdpZW5lIHN0YW5kYXJkcy4iLDMsIlsnY2xlYW5saW5lc3MnLCAnb3RoZXInXSIsIlRoZXJlIHdhcyBhIHN1c3BpY2lvdXMgc21lbGwgaW4gdGhlIGNhciwgYW5kIEknbSB3b3JyaWVkIGFib3V0IGh5Z2llbmUgc3RhbmRhcmRzLiIsWW91IGFyZSBhbiBleHBlcnQgY3VzdG9tZXIgc2VydmljZSBhZ2VudC4sQWdlbnRfMTQsMTUsWW91IGFyZSBhbnN3ZXJpbmcgcXVlc3Rpb25zIGFzIGlmIHlvdSB3ZXJlIGEgaHVtYW4uIERvIG5vdCBicmVhayBjaGFyYWN0ZXIuLDAsMSwwLGdwdC00bywwLjUsRmFsc2UsMTAwMCwzLCJXaGF0IGlzIHRoZSBwcmltYXJ5IGlzc3VlIGluIHRoaXMgdGlja2V0PyBUaWNrZXQ6IFRoZXJlIHdhcyBhIHN1c3BpY2lvdXMgc21lbGwgaW4gdGhlIGNhciwgYW5kIEknbSB3b3JyaWVkIGFib3V0IGh5Z2llbmUgc3RhbmRhcmRzLiIsIllvdSBhcmUgYW5zd2VyaW5nIHF1ZXN0aW9ucyBhcyBpZiB5b3Ugd2VyZSBhIGh1bWFuLiBEbyBub3QgYnJlYWsgY2hhcmFjdGVyLiBZb3VyIHRyYWl0czogeydwZXJzb25hJzogJ1lvdSBhcmUgYW4gZXhwZXJ0IGN1c3RvbWVyIHNlcnZpY2UgYWdlbnQuJywgJ3llYXJzX2V4cGVyaWVuY2UnOiAxNX0iLCJZb3UgYXJlIGFuc3dlcmluZyBxdWVzdGlvbnMgYXMgaWYgeW91IHdlcmUgYSBodW1hbi4gRG8gbm90IGJyZWFrIGNoYXJhY3Rlci4gWW91ciB0cmFpdHM6IHsncGVyc29uYSc6ICdZb3UgYXJlIGFuIGV4cGVydCBjdXN0b21lciBzZXJ2aWNlIGFnZW50LicsICd5ZWFyc19leHBlcmllbmNlJzogMTV9IiwiQ2hlY2sgYWxsIG9mIHRoZSBpc3N1ZXMgbWVudGlvbmVkIGluIHRoaXMgdGlja2V0OiBUaGVyZSB3YXMgYSBzdXNwaWNpb3VzIHNtZWxsIGluIHRoZSBjYXIsIGFuZCBJJ20gd29ycmllZCBhYm91dCBoeWdpZW5lIHN0YW5kYXJkcy4KCiAgICAKMDogc2FmZXR5CiAgICAKMTogY2xlYW5saW5lc3MKICAgIAoyOiBkcml2ZXIgcGVyZm9ybWFuY2UKICAgIAozOiBHUFMvcm91dGUKICAgIAo0OiBsb3N0IGl0ZW0KICAgIAo1OiBvdGhlcgogICAgCgoKCgoKClBsZWFzZSByZXNwb25kIG9ubHkgd2l0aCBhIGNvbW1hLXNlcGFyYXRlZCBsaXN0IG9mIHRoZSBjb2RlIG9mIHRoZSBvcHRpb25zIHRoYXQgYXBwbHksIHdpdGggc3F1YXJlIGJyYWNrZXRzLiBFLmcuLCBbMCwgMSwgM10KCgpBZnRlciB0aGUgYW5zd2VyLCB5b3UgY2FuIHB1dCBhIGNvbW1lbnQgZXhwbGFpbmluZyB5b3VyIGNob2ljZSBvbiB0aGUgbmV4dCBsaW5lLiIsIk9uIGEgc2NhbGUgZnJvbSAwIHRvIDUsIHdoYXQgaXMgdGhlIHByaW9yaXR5IGxldmVsIG9mIHRoaXMgdGlja2V0PyBUaWNrZXQ6IFRoZXJlIHdhcyBhIHN1c3BpY2lvdXMgc21lbGwgaW4gdGhlIGNhciwgYW5kIEknbSB3b3JyaWVkIGFib3V0IGh5Z2llbmUgc3RhbmRhcmRzLgoKMCA6IExvd2VzdAoKMSA6IAoKMiA6IAoKMyA6IAoKNCA6IAoKNSA6IEhpZ2hlc3QKCk9ubHkgMSBvcHRpb24gbWF5IGJlIHNlbGVjdGVkLgoKUmVzcG9uZCBvbmx5IHdpdGggdGhlIGNvZGUgY29ycmVzcG9uZGluZyB0byBvbmUgb2YgdGhlIG9wdGlvbnMuIEUuZy4sICIiMSIiIG9yICIiNSIiIGJ5IGl0c2VsZi4KCkFmdGVyIHRoZSBhbnN3ZXIsIHlvdSBjYW4gcHV0IGEgY29tbWVudCBleHBsYWluaW5nIHdoeSB5b3UgY2hvc2UgdGhhdCBvcHRpb24gb24gdGhlIG5leHQgbGluZS4iLCJZb3UgYXJlIGFuc3dlcmluZyBxdWVzdGlvbnMgYXMgaWYgeW91IHdlcmUgYSBodW1hbi4gRG8gbm90IGJyZWFrIGNoYXJhY3Rlci4gWW91ciB0cmFpdHM6IHsncGVyc29uYSc6ICdZb3UgYXJlIGFuIGV4cGVydCBjdXN0b21lciBzZXJ2aWNlIGFnZW50LicsICd5ZWFyc19leHBlcmllbmNlJzogMTV9IiwiWW91IGFyZSBhbnN3ZXJpbmcgcXVlc3Rpb25zIGFzIGlmIHlvdSB3ZXJlIGEgaHVtYW4uIERvIG5vdCBicmVhayBjaGFyYWN0ZXIuIFlvdXIgdHJhaXRzOiB7J3BlcnNvbmEnOiAnWW91IGFyZSBhbiBleHBlcnQgY3VzdG9tZXIgc2VydmljZSBhZ2VudC4nLCAneWVhcnNfZXhwZXJpZW5jZSc6IDE1fSIsIllvdSBhcmUgYW5zd2VyaW5nIHF1ZXN0aW9ucyBhcyBpZiB5b3Ugd2VyZSBhIGh1bWFuLiBEbyBub3QgYnJlYWsgY2hhcmFjdGVyLiBZb3VyIHRyYWl0czogeydwZXJzb25hJzogJ1lvdSBhcmUgYW4gZXhwZXJ0IGN1c3RvbWVyIHNlcnZpY2UgYWdlbnQuJywgJ3llYXJzX2V4cGVyaWVuY2UnOiAxNX0iLCIKV2hhdCBpcyB0aGUgc2VudGltZW50IG9mIHRoaXMgdGlja2V0PyBUaWNrZXQ6IFRoZXJlIHdhcyBhIHN1c3BpY2lvdXMgc21lbGwgaW4gdGhlIGNhciwgYW5kIEknbSB3b3JyaWVkIGFib3V0IGh5Z2llbmUgc3RhbmRhcmRzLgoKICAgIApWZXJ5IHBvc2l0aXZlCiAgICAKU29tZXdoYXQgcG9zaXRpdmUKICAgIApOZXV0cmFsCiAgICAKU29tZXdoYXQgbmVnYXRpdmUKICAgIApWZXJ5IG5lZ2F0aXZlCiAgICAKCk9ubHkgMSBvcHRpb24gbWF5IGJlIHNlbGVjdGVkLgoKUmVzcG9uZCBvbmx5IHdpdGggYSBzdHJpbmcgY29ycmVzcG9uZGluZyB0byBvbmUgb2YgdGhlIG9wdGlvbnMuCgoKQWZ0ZXIgdGhlIGFuc3dlciwgeW91IGNhbiBwdXQgYSBjb21tZW50IGV4cGxhaW5pbmcgd2h5IHlvdSBjaG9zZSB0aGF0IG9wdGlvbiBvbiB0aGUgbmV4dCBsaW5lLiIsIgpEb2VzIHRoZSBjdXN0b21lciBhc2sgZm9yIGEgcmVmdW5kIGluIHRoaXMgdGlja2V0PyBUaWNrZXQ6IFRoZXJlIHdhcyBhIHN1c3BpY2lvdXMgc21lbGwgaW4gdGhlIGNhciwgYW5kIEknbSB3b3JyaWVkIGFib3V0IGh5Z2llbmUgc3RhbmRhcmRzLgoKICAgIApObwogICAgClllcwogICAgCgpPbmx5IDEgb3B0aW9uIG1heSBiZSBzZWxlY3RlZC4KUGxlYXNlIHJlc3BvbmQgd2l0aCBqdXN0IHlvdXIgYW5zd2VyLiAKCgpBZnRlciB0aGUgYW5zd2VyLCB5b3UgY2FuIHB1dCBhIGNvbW1lbnQgZXhwbGFpbmluZyB5b3VyIHJlc3BvbnNlLiIsIllvdSBhcmUgYW5zd2VyaW5nIHF1ZXN0aW9ucyBhcyBpZiB5b3Ugd2VyZSBhIGh1bWFuLiBEbyBub3QgYnJlYWsgY2hhcmFjdGVyLiBZb3VyIHRyYWl0czogeydwZXJzb25hJzogJ1lvdSBhcmUgYW4gZXhwZXJ0IGN1c3RvbWVyIHNlcnZpY2UgYWdlbnQuJywgJ3llYXJzX2V4cGVyaWVuY2UnOiAxNX0iLCIKSWYgdGhlIHByaW1hcnkgaXNzdWUgaW4gdGhpcyB0aWNrZXQgaXMgc2FmZXR5LCB3YXMgdGhlcmUgYW4gYWNjaWRlbnQgd2hlcmUgc29tZW9uZSB3YXMgaHVydD8gVGlja2V0OiBUaGVyZSB3YXMgYSBzdXNwaWNpb3VzIHNtZWxsIGluIHRoZSBjYXIsIGFuZCBJJ20gd29ycmllZCBhYm91dCBoeWdpZW5lIHN0YW5kYXJkcy4KCiAgICAKWWVzCiAgICAKTm8KICAgIApOb3QgYXBwbGljYWJsZQogICAgCgpPbmx5IDEgb3B0aW9uIG1heSBiZSBzZWxlY3RlZC4KClJlc3BvbmQgb25seSB3aXRoIGEgc3RyaW5nIGNvcnJlc3BvbmRpbmcgdG8gb25lIG9mIHRoZSBvcHRpb25zLgoKCkFmdGVyIHRoZSBhbnN3ZXIsIHlvdSBjYW4gcHV0IGEgY29tbWVudCBleHBsYWluaW5nIHdoeSB5b3UgY2hvc2UgdGhhdCBvcHRpb24gb24gdGhlIG5leHQgbGluZS4iLDAuMDAwNTY1LCJ7J2lkJzogJ2NoYXRjbXBsLUFlT0xDUDlFQkVoS1U4aEZ1Q2dWSFZGczFRZlpuJywgJ2Nob2ljZXMnOiBbeydmaW5pc2hfcmVhc29uJzogJ3N0b3AnLCAnaW5kZXgnOiAwLCAnbG9ncHJvYnMnOiBOb25lLCAnbWVzc2FnZSc6IHsnY29udGVudCc6ICdObyAgXG5UaGUgdGlja2V0IGRlc2NyaWJlcyBhIGNvbmNlcm4gYWJvdXQgYSBzdXNwaWNpb3VzIHNtZWxsLCB3aGljaCByZWxhdGVzIHRvIGh5Z2llbmUgc3RhbmRhcmRzIHJhdGhlciB0aGFuIGEgc2FmZXR5IGluY2lkZW50IHdoZXJlIHNvbWVvbmUgd2FzIGh1cnQuJywgJ3JlZnVzYWwnOiBOb25lLCAncm9sZSc6ICdhc3Npc3RhbnQnLCAnYXVkaW8nOiBOb25lLCAnZnVuY3Rpb25fY2FsbCc6IE5vbmUsICd0b29sX2NhbGxzJzogTm9uZX19XSwgJ2NyZWF0ZWQnOiAxNzM0MTkwMDUwLCAnbW9kZWwnOiAnZ3B0LTRvLTIwMjQtMDgtMDYnLCAnb2JqZWN0JzogJ2NoYXQuY29tcGxldGlvbicsICdzZXJ2aWNlX3RpZXInOiBOb25lLCAnc3lzdGVtX2ZpbmdlcnByaW50JzogJ2ZwXzlmYWJhOWYwMzgnLCAndXNhZ2UnOiB7J2NvbXBsZXRpb25fdG9rZW5zJzogMjcsICdwcm9tcHRfdG9rZW5zJzogMTM2LCAndG90YWxfdG9rZW5zJzogMTYzLCAnY29tcGxldGlvbl90b2tlbnNfZGV0YWlscyc6IHsnYWNjZXB0ZWRfcHJlZGljdGlvbl90b2tlbnMnOiAwLCAnYXVkaW9fdG9rZW5zJzogMCwgJ3JlYXNvbmluZ190b2tlbnMnOiAwLCAncmVqZWN0ZWRfcHJlZGljdGlvbl90b2tlbnMnOiAwfSwgJ3Byb21wdF90b2tlbnNfZGV0YWlscyc6IHsnYXVkaW9fdG9rZW5zJzogMCwgJ2NhY2hlZF90b2tlbnMnOiAwfX19IiwieydpZCc6ICdjaGF0Y21wbC1BZU9MQ1JHU0FzaWp5SUFYMVB6RUM3MGI5U0lxYScsICdjaG9pY2VzJzogW3snZmluaXNoX3JlYXNvbic6ICdzdG9wJywgJ2luZGV4JzogMCwgJ2xvZ3Byb2JzJzogTm9uZSwgJ21lc3NhZ2UnOiB7J2NvbnRlbnQnOiAnU29tZXdoYXQgbmVnYXRpdmUgIFxuVGhlIHRpY2tldCBleHByZXNzZXMgY29uY2VybiBhbmQgZGlzc2F0aXNmYWN0aW9uIGFib3V0IGEgc3VzcGljaW91cyBzbWVsbCwgaW5kaWNhdGluZyBhIG5lZ2F0aXZlIGV4cGVyaWVuY2UgcmVnYXJkaW5nIGh5Z2llbmUgc3RhbmRhcmRzLicsICdyZWZ1c2FsJzogTm9uZSwgJ3JvbGUnOiAnYXNzaXN0YW50JywgJ2F1ZGlvJzogTm9uZSwgJ2Z1bmN0aW9uX2NhbGwnOiBOb25lLCAndG9vbF9jYWxscyc6IE5vbmV9fV0sICdjcmVhdGVkJzogMTczNDE5MDA1MCwgJ21vZGVsJzogJ2dwdC00by0yMDI0LTA4LTA2JywgJ29iamVjdCc6ICdjaGF0LmNvbXBsZXRpb24nLCAnc2VydmljZV90aWVyJzogTm9uZSwgJ3N5c3RlbV9maW5nZXJwcmludCc6ICdmcF9hNzlkOGRhYzFmJywgJ3VzYWdlJzogeydjb21wbGV0aW9uX3Rva2Vucyc6IDIzLCAncHJvbXB0X3Rva2Vucyc6IDEzNCwgJ3RvdGFsX3Rva2Vucyc6IDE1NywgJ2NvbXBsZXRpb25fdG9rZW5zX2RldGFpbHMnOiB7J2FjY2VwdGVkX3ByZWRpY3Rpb25fdG9rZW5zJzogMCwgJ2F1ZGlvX3Rva2Vucyc6IDAsICdyZWFzb25pbmdfdG9rZW5zJzogMCwgJ3JlamVjdGVkX3ByZWRpY3Rpb25fdG9rZW5zJzogMH0sICdwcm9tcHRfdG9rZW5zX2RldGFpbHMnOiB7J2F1ZGlvX3Rva2Vucyc6IDAsICdjYWNoZWRfdG9rZW5zJzogMH19fSIsMTc2OS45MTE1MDQ0MjQ3NzksMTkwNC43NjE5MDQ3NjE5MDQ4LCJ7J2lkJzogJ2NoYXRjbXBsLUFlT0xDbjB3M1ZnakRpb2Z4NkJ0ZjlNTnFmTHNhJywgJ2Nob2ljZXMnOiBbeydmaW5pc2hfcmVhc29uJzogJ3N0b3AnLCAnaW5kZXgnOiAwLCAnbG9ncHJvYnMnOiBOb25lLCAnbWVzc2FnZSc6IHsnY29udGVudCc6ICIiWzEsIDVdICBcblRoZSBpc3N1ZSBvZiBhIHN1c3BpY2lvdXMgc21lbGwgaW4gdGhlIGNhciByZWxhdGVzIHRvIGNsZWFubGluZXNzLCBhbmQgdGhlIGNvbmNlcm4gYWJvdXQgaHlnaWVuZSBzdGFuZGFyZHMgY291bGQgYmUgY2F0ZWdvcml6ZWQgYXMgJ290aGVyJyBzaW5jZSBpdCBtaWdodCBlbmNvbXBhc3MgYnJvYWRlciBpc3N1ZXMgbm90IGV4cGxpY2l0bHkgbGlzdGVkLiIiLCAncmVmdXNhbCc6IE5vbmUsICdyb2xlJzogJ2Fzc2lzdGFudCcsICdhdWRpbyc6IE5vbmUsICdmdW5jdGlvbl9jYWxsJzogTm9uZSwgJ3Rvb2xfY2FsbHMnOiBOb25lfX1dLCAnY3JlYXRlZCc6IDE3MzQxOTAwNTAsICdtb2RlbCc6ICdncHQtNG8tMjAyNC0wOC0wNicsICdvYmplY3QnOiAnY2hhdC5jb21wbGV0aW9uJywgJ3NlcnZpY2VfdGllcic6IE5vbmUsICdzeXN0ZW1fZmluZ2VycHJpbnQnOiAnZnBfYTc5ZDhkYWMxZicsICd1c2FnZSc6IHsnY29tcGxldGlvbl90b2tlbnMnOiA0MywgJ3Byb21wdF90b2tlbnMnOiAxNTcsICd0b3RhbF90b2tlbnMnOiAyMDAsICdjb21wbGV0aW9uX3Rva2Vuc19kZXRhaWxzJzogeydhY2NlcHRlZF9wcmVkaWN0aW9uX3Rva2Vucyc6IDAsICdhdWRpb190b2tlbnMnOiAwLCAncmVhc29uaW5nX3Rva2Vucyc6IDAsICdyZWplY3RlZF9wcmVkaWN0aW9uX3Rva2Vucyc6IDB9LCAncHJvbXB0X3Rva2Vuc19kZXRhaWxzJzogeydhdWRpb190b2tlbnMnOiAwLCAnY2FjaGVkX3Rva2Vucyc6IDB9fX0iLDAuMDAwNzMsMTYzOS4zNDQyNjIyOTUwODE4LDAuMDAwNTI1LDAuMDAwODIyNSwieydpZCc6ICdjaGF0Y21wbC1BZU9MQ2JmWGc4QzRobHBSN0pCN2hheTZpaVluSCcsICdjaG9pY2VzJzogW3snZmluaXNoX3JlYXNvbic6ICdzdG9wJywgJ2luZGV4JzogMCwgJ2xvZ3Byb2JzJzogTm9uZSwgJ21lc3NhZ2UnOiB7J2NvbnRlbnQnOiAiIlRoZSBwcmltYXJ5IGlzc3VlIGluIHRoaXMgdGlja2V0IGlzIHRoZSBjdXN0b21lcidzIGNvbmNlcm4gYWJvdXQgYSBzdXNwaWNpb3VzIHNtZWxsIGluIHRoZSBjYXIsIHdoaWNoIGlzIHJhaXNpbmcgd29ycmllcyBhYm91dCB0aGUgaHlnaWVuZSBzdGFuZGFyZHMgb2YgdGhlIHZlaGljbGUuIEFkZHJlc3NpbmcgdGhpcyBpc3N1ZSB3b3VsZCBsaWtlbHkgaW52b2x2ZSBpbnZlc3RpZ2F0aW5nIHRoZSBzb3VyY2Ugb2YgdGhlIHNtZWxsIGFuZCBlbnN1cmluZyB0aGF0IHRoZSB2ZWhpY2xlIG1lZXRzIGNsZWFubGluZXNzIGFuZCBoeWdpZW5lIHN0YW5kYXJkcy4iIiwgJ3JlZnVzYWwnOiBOb25lLCAncm9sZSc6ICdhc3Npc3RhbnQnLCAnYXVkaW8nOiBOb25lLCAnZnVuY3Rpb25fY2FsbCc6IE5vbmUsICd0b29sX2NhbGxzJzogTm9uZX19XSwgJ2NyZWF0ZWQnOiAxNzM0MTkwMDUwLCAnbW9kZWwnOiAnZ3B0LTRvLTIwMjQtMDgtMDYnLCAnb2JqZWN0JzogJ2NoYXQuY29tcGxldGlvbicsICdzZXJ2aWNlX3RpZXInOiBOb25lLCAnc3lzdGVtX2ZpbmdlcnByaW50JzogJ2ZwXzlmYWJhOWYwMzgnLCAndXNhZ2UnOiB7J2NvbXBsZXRpb25fdG9rZW5zJzogNTQsICdwcm9tcHRfdG9rZW5zJzogNzcsICd0b3RhbF90b2tlbnMnOiAxMzEsICdjb21wbGV0aW9uX3Rva2Vuc19kZXRhaWxzJzogeydhY2NlcHRlZF9wcmVkaWN0aW9uX3Rva2Vucyc6IDAsICdhdWRpb190b2tlbnMnOiAwLCAncmVhc29uaW5nX3Rva2Vucyc6IDAsICdyZWplY3RlZF9wcmVkaWN0aW9uX3Rva2Vucyc6IDB9LCAncHJvbXB0X3Rva2Vuc19kZXRhaWxzJzogeydhdWRpb190b2tlbnMnOiAwLCAnY2FjaGVkX3Rva2Vucyc6IDB9fX0iLDAuMDAwNzMyNSwxMzY1LjE4NzcxMzMxMDU4MDIsInsnaWQnOiAnY2hhdGNtcGwtQWVPTENOVGlYV3JmYUt6aHdPczlNckt0bFNKT08nLCAnY2hvaWNlcyc6IFt7J2ZpbmlzaF9yZWFzb24nOiAnc3RvcCcsICdpbmRleCc6IDAsICdsb2dwcm9icyc6IE5vbmUsICdtZXNzYWdlJzogeydjb250ZW50JzogJzMgIFxuVGhpcyBpc3N1ZSBpcyBpbXBvcnRhbnQgYmVjYXVzZSBpdCBjb25jZXJucyBoeWdpZW5lIGFuZCBjdXN0b21lciBjb21mb3J0LCBidXQgaXQgaXMgbm90IGFuIGltbWVkaWF0ZSBzYWZldHkgdGhyZWF0LiBJdCBzaG91bGQgYmUgYWRkcmVzc2VkIHByb21wdGx5IHRvIG1haW50YWluIHNlcnZpY2UgcXVhbGl0eS4nLCAncmVmdXNhbCc6IE5vbmUsICdyb2xlJzogJ2Fzc2lzdGFudCcsICdhdWRpbyc6IE5vbmUsICdmdW5jdGlvbl9jYWxsJzogTm9uZSwgJ3Rvb2xfY2FsbHMnOiBOb25lfX1dLCAnY3JlYXRlZCc6IDE3MzQxOTAwNTAsICdtb2RlbCc6ICdncHQtNG8tMjAyNC0wOC0wNicsICdvYmplY3QnOiAnY2hhdC5jb21wbGV0aW9uJywgJ3NlcnZpY2VfdGllcic6IE5vbmUsICdzeXN0ZW1fZmluZ2VycHJpbnQnOiAnZnBfZjc4NWViNWY0NycsICd1c2FnZSc6IHsnY29tcGxldGlvbl90b2tlbnMnOiAzMywgJ3Byb21wdF90b2tlbnMnOiAxNjAsICd0b3RhbF90b2tlbnMnOiAxOTMsICdjb21wbGV0aW9uX3Rva2Vuc19kZXRhaWxzJzogeydhY2NlcHRlZF9wcmVkaWN0aW9uX3Rva2Vucyc6IDAsICdhdWRpb190b2tlbnMnOiAwLCAncmVhc29uaW5nX3Rva2Vucyc6IDAsICdyZWplY3RlZF9wcmVkaWN0aW9uX3Rva2Vucyc6IDB9LCAncHJvbXB0X3Rva2Vuc19kZXRhaWxzJzogeydhdWRpb190b2tlbnMnOiAwLCAnY2FjaGVkX3Rva2Vucyc6IDB9fX0iLDEyMTUuODA1NDcxMTI0NjIsMTM2OS44NjMwMTM2OTg2MzAzLDAuMDAwNjEwMDAwMDAwMDAwMDAwMSwieydpZCc6ICdjaGF0Y21wbC1BZU9MRE9CeEVhUXBRbDNxNkg2Rk9yVU1SNHV0MicsICdjaG9pY2VzJzogW3snZmluaXNoX3JlYXNvbic6ICdzdG9wJywgJ2luZGV4JzogMCwgJ2xvZ3Byb2JzJzogTm9uZSwgJ21lc3NhZ2UnOiB7J2NvbnRlbnQnOiAnTm9cblxuVGhlIGN1c3RvbWVyIGV4cHJlc3NlcyBjb25jZXJuIGFib3V0IHRoZSBoeWdpZW5lIHN0YW5kYXJkcyBkdWUgdG8gYSBzdXNwaWNpb3VzIHNtZWxsIGJ1dCBkb2VzIG5vdCBleHBsaWNpdGx5IGFzayBmb3IgYSByZWZ1bmQuJywgJ3JlZnVzYWwnOiBOb25lLCAncm9sZSc6ICdhc3Npc3RhbnQnLCAnYXVkaW8nOiBOb25lLCAnZnVuY3Rpb25fY2FsbCc6IE5vbmUsICd0b29sX2NhbGxzJzogTm9uZX19XSwgJ2NyZWF0ZWQnOiAxNzM0MTkwMDUxLCAnbW9kZWwnOiAnZ3B0LTRvLTIwMjQtMDgtMDYnLCAnb2JqZWN0JzogJ2NoYXQuY29tcGxldGlvbicsICdzZXJ2aWNlX3RpZXInOiBOb25lLCAnc3lzdGVtX2ZpbmdlcnByaW50JzogJ2ZwX2Y3ODVlYjVmNDcnLCAndXNhZ2UnOiB7J2NvbXBsZXRpb25fdG9rZW5zJzogMjQsICdwcm9tcHRfdG9rZW5zJzogMTE0LCAndG90YWxfdG9rZW5zJzogMTM4LCAnY29tcGxldGlvbl90b2tlbnNfZGV0YWlscyc6IHsnYWNjZXB0ZWRfcHJlZGljdGlvbl90b2tlbnMnOiAwLCAnYXVkaW9fdG9rZW5zJzogMCwgJ3JlYXNvbmluZ190b2tlbnMnOiAwLCAncmVqZWN0ZWRfcHJlZGljdGlvbl90b2tlbnMnOiAwfSwgJ3Byb21wdF90b2tlbnNfZGV0YWlscyc6IHsnYXVkaW9fdG9rZW5zJzogMCwgJ2NhY2hlZF90b2tlbnMnOiAwfX19IiwwLERvZXMgdGhlIGN1c3RvbWVyIGFzayBmb3IgYSByZWZ1bmQgaW4gdGhpcyB0aWNrZXQ/IFRpY2tldDoge3sgdGlja2V0IH19LCJJZiB0aGUgcHJpbWFyeSBpc3N1ZSBpbiB0aGlzIHRpY2tldCBpcyBzYWZldHksIHdhcyB0aGVyZSBhbiBhY2NpZGVudCB3aGVyZSBzb21lb25lIHdhcyBodXJ0PyBUaWNrZXQ6IHt7IHRpY2tldCB9fSIsV2hhdCBpcyB0aGUgcHJpbWFyeSBpc3N1ZSBpbiB0aGlzIHRpY2tldD8gVGlja2V0OiB7eyB0aWNrZXQgfX0sQ2hlY2sgYWxsIG9mIHRoZSBpc3N1ZXMgbWVudGlvbmVkIGluIHRoaXMgdGlja2V0OiB7eyB0aWNrZXQgfX0sIk9uIGEgc2NhbGUgZnJvbSAwIHRvIDUsIHdoYXQgaXMgdGhlIHByaW9yaXR5IGxldmVsIG9mIHRoaXMgdGlja2V0PyBUaWNrZXQ6IHt7IHRpY2tldCB9fSIsV2hhdCBpcyB0aGUgc2VudGltZW50IG9mIHRoaXMgdGlja2V0PyBUaWNrZXQ6IHt7IHRpY2tldCB9fSwiWydzYWZldHknLCAnY2xlYW5saW5lc3MnLCAnZHJpdmVyIHBlcmZvcm1hbmNlJywgJ0dQUy9yb3V0ZScsICdsb3N0IGl0ZW0nLCAnb3RoZXInXSIsIlsnVmVyeSBwb3NpdGl2ZScsICdTb21ld2hhdCBwb3NpdGl2ZScsICdOZXV0cmFsJywgJ1NvbWV3aGF0IG5lZ2F0aXZlJywgJ1ZlcnkgbmVnYXRpdmUnXSIsLCJbJ05vJywgJ1llcyddIiwiWydZZXMnLCAnTm8nLCAnTm90IGFwcGxpY2FibGUnXSIsIlswLCAxLCAyLCAzLCA0LCA1XSIsbGluZWFyX3NjYWxlLG11bHRpcGxlX2Nob2ljZSxtdWx0aXBsZV9jaG9pY2UseWVzX25vLGZyZWVfdGV4dCxjaGVja2JveCwsVGhlIGN1c3RvbWVyIGV4cHJlc3NlcyBjb25jZXJuIGFib3V0IHRoZSBoeWdpZW5lIHN0YW5kYXJkcyBkdWUgdG8gYSBzdXNwaWNpb3VzIHNtZWxsIGJ1dCBkb2VzIG5vdCBleHBsaWNpdGx5IGFzayBmb3IgYSByZWZ1bmQuLCJUaGlzIGlzc3VlIGlzIGltcG9ydGFudCBiZWNhdXNlIGl0IGNvbmNlcm5zIGh5Z2llbmUgYW5kIGN1c3RvbWVyIGNvbWZvcnQsIGJ1dCBpdCBpcyBub3QgYW4gaW1tZWRpYXRlIHNhZmV0eSB0aHJlYXQuIEl0IHNob3VsZCBiZSBhZGRyZXNzZWQgcHJvbXB0bHkgdG8gbWFpbnRhaW4gc2VydmljZSBxdWFsaXR5LiIsIlRoZSBpc3N1ZSBvZiBhIHN1c3BpY2lvdXMgc21lbGwgaW4gdGhlIGNhciByZWxhdGVzIHRvIGNsZWFubGluZXNzLCBhbmQgdGhlIGNvbmNlcm4gYWJvdXQgaHlnaWVuZSBzdGFuZGFyZHMgY291bGQgYmUgY2F0ZWdvcml6ZWQgYXMgJ290aGVyJyBzaW5jZSBpdCBtaWdodCBlbmNvbXBhc3MgYnJvYWRlciBpc3N1ZXMgbm90IGV4cGxpY2l0bHkgbGlzdGVkLiIsIlRoZSB0aWNrZXQgZXhwcmVzc2VzIGNvbmNlcm4gYW5kIGRpc3NhdGlzZmFjdGlvbiBhYm91dCBhIHN1c3BpY2lvdXMgc21lbGwsIGluZGljYXRpbmcgYSBuZWdhdGl2ZSBleHBlcmllbmNlIHJlZ2FyZGluZyBoeWdpZW5lIHN0YW5kYXJkcy4iLCJUaGUgdGlja2V0IGRlc2NyaWJlcyBhIGNvbmNlcm4gYWJvdXQgYSBzdXNwaWNpb3VzIHNtZWxsLCB3aGljaCByZWxhdGVzIHRvIGh5Z2llbmUgc3RhbmRhcmRzIHJhdGhlciB0aGFuIGEgc2FmZXR5IGluY2lkZW50IHdoZXJlIHNvbWVvbmUgd2FzIGh1cnQuIiwiU29tZXdoYXQgbmVnYXRpdmUgIApUaGUgdGlja2V0IGV4cHJlc3NlcyBjb25jZXJuIGFuZCBkaXNzYXRpc2ZhY3Rpb24gYWJvdXQgYSBzdXNwaWNpb3VzIHNtZWxsLCBpbmRpY2F0aW5nIGEgbmVnYXRpdmUgZXhwZXJpZW5jZSByZWdhcmRpbmcgaHlnaWVuZSBzdGFuZGFyZHMuIiwiWzEsIDVdICAKVGhlIGlzc3VlIG9mIGEgc3VzcGljaW91cyBzbWVsbCBpbiB0aGUgY2FyIHJlbGF0ZXMgdG8gY2xlYW5saW5lc3MsIGFuZCB0aGUgY29uY2VybiBhYm91dCBoeWdpZW5lIHN0YW5kYXJkcyBjb3VsZCBiZSBjYXRlZ29yaXplZCBhcyAnb3RoZXInIHNpbmNlIGl0IG1pZ2h0IGVuY29tcGFzcyBicm9hZGVyIGlzc3VlcyBub3QgZXhwbGljaXRseSBsaXN0ZWQuIiwiTm8KClRoZSBjdXN0b21lciBleHByZXNzZXMgY29uY2VybiBhYm91dCB0aGUgaHlnaWVuZSBzdGFuZGFyZHMgZHVlIHRvIGEgc3VzcGljaW91cyBzbWVsbCBidXQgZG9lcyBub3QgZXhwbGljaXRseSBhc2sgZm9yIGEgcmVmdW5kLiIsIlRoZSBwcmltYXJ5IGlzc3VlIGluIHRoaXMgdGlja2V0IGlzIHRoZSBjdXN0b21lcidzIGNvbmNlcm4gYWJvdXQgYSBzdXNwaWNpb3VzIHNtZWxsIGluIHRoZSBjYXIsIHdoaWNoIGlzIHJhaXNpbmcgd29ycmllcyBhYm91dCB0aGUgaHlnaWVuZSBzdGFuZGFyZHMgb2YgdGhlIHZlaGljbGUuIEFkZHJlc3NpbmcgdGhpcyBpc3N1ZSB3b3VsZCBsaWtlbHkgaW52b2x2ZSBpbnZlc3RpZ2F0aW5nIHRoZSBzb3VyY2Ugb2YgdGhlIHNtZWxsIGFuZCBlbnN1cmluZyB0aGF0IHRoZSB2ZWhpY2xlIG1lZXRzIGNsZWFubGluZXNzIGFuZCBoeWdpZW5lIHN0YW5kYXJkcy4iLCJObyAgClRoZSB0aWNrZXQgZGVzY3JpYmVzIGEgY29uY2VybiBhYm91dCBhIHN1c3BpY2lvdXMgc21lbGwsIHdoaWNoIHJlbGF0ZXMgdG8gaHlnaWVuZSBzdGFuZGFyZHMgcmF0aGVyIHRoYW4gYSBzYWZldHkgaW5jaWRlbnQgd2hlcmUgc29tZW9uZSB3YXMgaHVydC4iLCIzICAKVGhpcyBpc3N1ZSBpcyBpbXBvcnRhbnQgYmVjYXVzZSBpdCBjb25jZXJucyBoeWdpZW5lIGFuZCBjdXN0b21lciBjb21mb3J0LCBidXQgaXQgaXMgbm90IGFuIGltbWVkaWF0ZSBzYWZldHkgdGhyZWF0LiBJdCBzaG91bGQgYmUgYWRkcmVzc2VkIHByb21wdGx5IHRvIG1haW50YWluIHNlcnZpY2UgcXVhbGl0eS4iDQpObyxWZXJ5IHBvc2l0aXZlLE5vLFRoZSBwcmltYXJ5IGlzc3VlIGluIHRoaXMgdGlja2V0IGlzIGFjdHVhbGx5IG5vdCBhbiBpc3N1ZSBhdCBhbGwuIEl0IGFwcGVhcnMgdG8gYmUgYSBwb3NpdGl2ZSBmZWVkYmFjayBvciBjb21wbGltZW50IHJlZ2FyZGluZyB0aGUgZHJpdmVyJ3MgY29uc2lkZXJhdGUgYmVoYXZpb3IgYW5kIGFzc2lzdGFuY2Ugd2l0aCBsdWdnYWdlLiBJdCdzIGFsd2F5cyBncmVhdCB0byByZWNlaXZlIHN1Y2ggcG9zaXRpdmUgY29tbWVudHMgYWJvdXQgdGhlIHNlcnZpY2UgcHJvdmlkZWQhLDAsWydkcml2ZXIgcGVyZm9ybWFuY2UnXSwiTXkgZHJpdmVyIHdhcyB2ZXJ5IGNvbnNpZGVyYXRlLCBlc3BlY2lhbGx5IGhlbHBpbmcgbWUgd2l0aCBteSBsdWdnYWdlLiBBcHByZWNpYXRlIHRoZSBncmVhdCBzZXJ2aWNlISIsWW91IGFyZSBhbiBleHBlcnQgY3VzdG9tZXIgc2VydmljZSBhZ2VudC4sQWdlbnRfMTUsMTUsWW91IGFyZSBhbnN3ZXJpbmcgcXVlc3Rpb25zIGFzIGlmIHlvdSB3ZXJlIGEgaHVtYW4uIERvIG5vdCBicmVhayBjaGFyYWN0ZXIuLDAsMSwwLGdwdC00bywwLjUsRmFsc2UsMTAwMCwzLCJXaGF0IGlzIHRoZSBwcmltYXJ5IGlzc3VlIGluIHRoaXMgdGlja2V0PyBUaWNrZXQ6IE15IGRyaXZlciB3YXMgdmVyeSBjb25zaWRlcmF0ZSwgZXNwZWNpYWxseSBoZWxwaW5nIG1lIHdpdGggbXkgbHVnZ2FnZS4gQXBwcmVjaWF0ZSB0aGUgZ3JlYXQgc2VydmljZSEiLCJZb3UgYXJlIGFuc3dlcmluZyBxdWVzdGlvbnMgYXMgaWYgeW91IHdlcmUgYSBodW1hbi4gRG8gbm90IGJyZWFrIGNoYXJhY3Rlci4gWW91ciB0cmFpdHM6IHsncGVyc29uYSc6ICdZb3UgYXJlIGFuIGV4cGVydCBjdXN0b21lciBzZXJ2aWNlIGFnZW50LicsICd5ZWFyc19leHBlcmllbmNlJzogMTV9IiwiWW91IGFyZSBhbnN3ZXJpbmcgcXVlc3Rpb25zIGFzIGlmIHlvdSB3ZXJlIGEgaHVtYW4uIERvIG5vdCBicmVhayBjaGFyYWN0ZXIuIFlvdXIgdHJhaXRzOiB7J3BlcnNvbmEnOiAnWW91IGFyZSBhbiBleHBlcnQgY3VzdG9tZXIgc2VydmljZSBhZ2VudC4nLCAneWVhcnNfZXhwZXJpZW5jZSc6IDE1fSIsIkNoZWNrIGFsbCBvZiB0aGUgaXNzdWVzIG1lbnRpb25lZCBpbiB0aGlzIHRpY2tldDogTXkgZHJpdmVyIHdhcyB2ZXJ5IGNvbnNpZGVyYXRlLCBlc3BlY2lhbGx5IGhlbHBpbmcgbWUgd2l0aCBteSBsdWdnYWdlLiBBcHByZWNpYXRlIHRoZSBncmVhdCBzZXJ2aWNlIQoKICAgIAowOiBzYWZldHkKICAgIAoxOiBjbGVhbmxpbmVzcwogICAgCjI6IGRyaXZlciBwZXJmb3JtYW5jZQogICAgCjM6IEdQUy9yb3V0ZQogICAgCjQ6IGxvc3QgaXRlbQogICAgCjU6IG90aGVyCiAgICAKCgoKCgoKUGxlYXNlIHJlc3BvbmQgb25seSB3aXRoIGEgY29tbWEtc2VwYXJhdGVkIGxpc3Qgb2YgdGhlIGNvZGUgb2YgdGhlIG9wdGlvbnMgdGhhdCBhcHBseSwgd2l0aCBzcXVhcmUgYnJhY2tldHMuIEUuZy4sIFswLCAxLCAzXQoKCkFmdGVyIHRoZSBhbnN3ZXIsIHlvdSBjYW4gcHV0IGEgY29tbWVudCBleHBsYWluaW5nIHlvdXIgY2hvaWNlIG9uIHRoZSBuZXh0IGxpbmUuIiwiT24gYSBzY2FsZSBmcm9tIDAgdG8gNSwgd2hhdCBpcyB0aGUgcHJpb3JpdHkgbGV2ZWwgb2YgdGhpcyB0aWNrZXQ/IFRpY2tldDogTXkgZHJpdmVyIHdhcyB2ZXJ5IGNvbnNpZGVyYXRlLCBlc3BlY2lhbGx5IGhlbHBpbmcgbWUgd2l0aCBteSBsdWdnYWdlLiBBcHByZWNpYXRlIHRoZSBncmVhdCBzZXJ2aWNlIQoKMCA6IExvd2VzdAoKMSA6IAoKMiA6IAoKMyA6IAoKNCA6IAoKNSA6IEhpZ2hlc3QKCk9ubHkgMSBvcHRpb24gbWF5IGJlIHNlbGVjdGVkLgoKUmVzcG9uZCBvbmx5IHdpdGggdGhlIGNvZGUgY29ycmVzcG9uZGluZyB0byBvbmUgb2YgdGhlIG9wdGlvbnMuIEUuZy4sICIiMSIiIG9yICIiNSIiIGJ5IGl0c2VsZi4KCkFmdGVyIHRoZSBhbnN3ZXIsIHlvdSBjYW4gcHV0IGEgY29tbWVudCBleHBsYWluaW5nIHdoeSB5b3UgY2hvc2UgdGhhdCBvcHRpb24gb24gdGhlIG5leHQgbGluZS4iLCJZb3UgYXJlIGFuc3dlcmluZyBxdWVzdGlvbnMgYXMgaWYgeW91IHdlcmUgYSBodW1hbi4gRG8gbm90IGJyZWFrIGNoYXJhY3Rlci4gWW91ciB0cmFpdHM6IHsncGVyc29uYSc6ICdZb3UgYXJlIGFuIGV4cGVydCBjdXN0b21lciBzZXJ2aWNlIGFnZW50LicsICd5ZWFyc19leHBlcmllbmNlJzogMTV9IiwiWW91IGFyZSBhbnN3ZXJpbmcgcXVlc3Rpb25zIGFzIGlmIHlvdSB3ZXJlIGEgaHVtYW4uIERvIG5vdCBicmVhayBjaGFyYWN0ZXIuIFlvdXIgdHJhaXRzOiB7J3BlcnNvbmEnOiAnWW91IGFyZSBhbiBleHBlcnQgY3VzdG9tZXIgc2VydmljZSBhZ2VudC4nLCAneWVhcnNfZXhwZXJpZW5jZSc6IDE1fSIsIllvdSBhcmUgYW5zd2VyaW5nIHF1ZXN0aW9ucyBhcyBpZiB5b3Ugd2VyZSBhIGh1bWFuLiBEbyBub3QgYnJlYWsgY2hhcmFjdGVyLiBZb3VyIHRyYWl0czogeydwZXJzb25hJzogJ1lvdSBhcmUgYW4gZXhwZXJ0IGN1c3RvbWVyIHNlcnZpY2UgYWdlbnQuJywgJ3llYXJzX2V4cGVyaWVuY2UnOiAxNX0iLCIKV2hhdCBpcyB0aGUgc2VudGltZW50IG9mIHRoaXMgdGlja2V0PyBUaWNrZXQ6IE15IGRyaXZlciB3YXMgdmVyeSBjb25zaWRlcmF0ZSwgZXNwZWNpYWxseSBoZWxwaW5nIG1lIHdpdGggbXkgbHVnZ2FnZS4gQXBwcmVjaWF0ZSB0aGUgZ3JlYXQgc2VydmljZSEKCiAgICAKVmVyeSBwb3NpdGl2ZQogICAgClNvbWV3aGF0IHBvc2l0aXZlCiAgICAKTmV1dHJhbAogICAgClNvbWV3aGF0IG5lZ2F0aXZlCiAgICAKVmVyeSBuZWdhdGl2ZQogICAgCgpPbmx5IDEgb3B0aW9uIG1heSBiZSBzZWxlY3RlZC4KClJlc3BvbmQgb25seSB3aXRoIGEgc3RyaW5nIGNvcnJlc3BvbmRpbmcgdG8gb25lIG9mIHRoZSBvcHRpb25zLgoKCkFmdGVyIHRoZSBhbnN3ZXIsIHlvdSBjYW4gcHV0IGEgY29tbWVudCBleHBsYWluaW5nIHdoeSB5b3UgY2hvc2UgdGhhdCBvcHRpb24gb24gdGhlIG5leHQgbGluZS4iLCIKRG9lcyB0aGUgY3VzdG9tZXIgYXNrIGZvciBhIHJlZnVuZCBpbiB0aGlzIHRpY2tldD8gVGlja2V0OiBNeSBkcml2ZXIgd2FzIHZlcnkgY29uc2lkZXJhdGUsIGVzcGVjaWFsbHkgaGVscGluZyBtZSB3aXRoIG15IGx1Z2dhZ2UuIEFwcHJlY2lhdGUgdGhlIGdyZWF0IHNlcnZpY2UhCgogICAgCk5vCiAgICAKWWVzCiAgICAKCk9ubHkgMSBvcHRpb24gbWF5IGJlIHNlbGVjdGVkLgpQbGVhc2UgcmVzcG9uZCB3aXRoIGp1c3QgeW91ciBhbnN3ZXIuIAoKCkFmdGVyIHRoZSBhbnN3ZXIsIHlvdSBjYW4gcHV0IGEgY29tbWVudCBleHBsYWluaW5nIHlvdXIgcmVzcG9uc2UuIiwiWW91IGFyZSBhbnN3ZXJpbmcgcXVlc3Rpb25zIGFzIGlmIHlvdSB3ZXJlIGEgaHVtYW4uIERvIG5vdCBicmVhayBjaGFyYWN0ZXIuIFlvdXIgdHJhaXRzOiB7J3BlcnNvbmEnOiAnWW91IGFyZSBhbiBleHBlcnQgY3VzdG9tZXIgc2VydmljZSBhZ2VudC4nLCAneWVhcnNfZXhwZXJpZW5jZSc6IDE1fSIsIgpJZiB0aGUgcHJpbWFyeSBpc3N1ZSBpbiB0aGlzIHRpY2tldCBpcyBzYWZldHksIHdhcyB0aGVyZSBhbiBhY2NpZGVudCB3aGVyZSBzb21lb25lIHdhcyBodXJ0PyBUaWNrZXQ6IE15IGRyaXZlciB3YXMgdmVyeSBjb25zaWRlcmF0ZSwgZXNwZWNpYWxseSBoZWxwaW5nIG1lIHdpdGggbXkgbHVnZ2FnZS4gQXBwcmVjaWF0ZSB0aGUgZ3JlYXQgc2VydmljZSEKCiAgICAKWWVzCiAgICAKTm8KICAgIApOb3QgYXBwbGljYWJsZQogICAgCgpPbmx5IDEgb3B0aW9uIG1heSBiZSBzZWxlY3RlZC4KClJlc3BvbmQgb25seSB3aXRoIGEgc3RyaW5nIGNvcnJlc3BvbmRpbmcgdG8gb25lIG9mIHRoZSBvcHRpb25zLgoKCkFmdGVyIHRoZSBhbnN3ZXIsIHlvdSBjYW4gcHV0IGEgY29tbWVudCBleHBsYWluaW5nIHdoeSB5b3UgY2hvc2UgdGhhdCBvcHRpb24gb24gdGhlIG5leHQgbGluZS4iLDAuMDAwNTQsInsnaWQnOiAnY2hhdGNtcGwtQWVPTENKemxyeFExdm1ndjJLU2ZWMkFwajM4M0UnLCAnY2hvaWNlcyc6IFt7J2ZpbmlzaF9yZWFzb24nOiAnc3RvcCcsICdpbmRleCc6IDAsICdsb2dwcm9icyc6IE5vbmUsICdtZXNzYWdlJzogeydjb250ZW50JzogIiJObyAgXG5UaGUgdGlja2V0IGRvZXMgbm90IG1lbnRpb24gYW55IGFjY2lkZW50IG9yIGluanVyeTsgaXQgcHJhaXNlcyB0aGUgZHJpdmVyJ3MgaGVscGZ1bG5lc3MuIiIsICdyZWZ1c2FsJzogTm9uZSwgJ3JvbGUnOiAnYXNzaXN0YW50JywgJ2F1ZGlvJzogTm9uZSwgJ2Z1bmN0aW9uX2NhbGwnOiBOb25lLCAndG9vbF9jYWxscyc6IE5vbmV9fV0sICdjcmVhdGVkJzogMTczNDE5MDA1MCwgJ21vZGVsJzogJ2dwdC00by0yMDI0LTA4LTA2JywgJ29iamVjdCc6ICdjaGF0LmNvbXBsZXRpb24nLCAnc2VydmljZV90aWVyJzogTm9uZSwgJ3N5c3RlbV9maW5nZXJwcmludCc6ICdmcF9hNzlkOGRhYzFmJywgJ3VzYWdlJzogeydjb21wbGV0aW9uX3Rva2Vucyc6IDE5LCAncHJvbXB0X3Rva2Vucyc6IDEzOCwgJ3RvdGFsX3Rva2Vucyc6IDE1NywgJ2NvbXBsZXRpb25fdG9rZW5zX2RldGFpbHMnOiB7J2FjY2VwdGVkX3ByZWRpY3Rpb25fdG9rZW5zJzogMCwgJ2F1ZGlvX3Rva2Vucyc6IDAsICdyZWFzb25pbmdfdG9rZW5zJzogMCwgJ3JlamVjdGVkX3ByZWRpY3Rpb25fdG9rZW5zJzogMH0sICdwcm9tcHRfdG9rZW5zX2RldGFpbHMnOiB7J2F1ZGlvX3Rva2Vucyc6IDAsICdjYWNoZWRfdG9rZW5zJzogMH19fSIsInsnaWQnOiAnY2hhdGNtcGwtQWVPTEN6NkNtMEdPMkZOTWNwRjAzb3dDM1dQa1QnLCAnY2hvaWNlcyc6IFt7J2ZpbmlzaF9yZWFzb24nOiAnc3RvcCcsICdpbmRleCc6IDAsICdsb2dwcm9icyc6IE5vbmUsICdtZXNzYWdlJzogeydjb250ZW50JzogIiJWZXJ5IHBvc2l0aXZlICBcblRoZSB0aWNrZXQgZXhwcmVzc2VzIGFwcHJlY2lhdGlvbiBhbmQgaGlnaGxpZ2h0cyB0aGUgZHJpdmVyJ3MgY29uc2lkZXJhdGUgYmVoYXZpb3IsIGluZGljYXRpbmcgYSB2ZXJ5IHBvc2l0aXZlIHNlbnRpbWVudC4iIiwgJ3JlZnVzYWwnOiBOb25lLCAncm9sZSc6ICdhc3Npc3RhbnQnLCAnYXVkaW8nOiBOb25lLCAnZnVuY3Rpb25fY2FsbCc6IE5vbmUsICd0b29sX2NhbGxzJzogTm9uZX19XSwgJ2NyZWF0ZWQnOiAxNzM0MTkwMDUwLCAnbW9kZWwnOiAnZ3B0LTRvLTIwMjQtMDgtMDYnLCAnb2JqZWN0JzogJ2NoYXQuY29tcGxldGlvbicsICdzZXJ2aWNlX3RpZXInOiBOb25lLCAnc3lzdGVtX2ZpbmdlcnByaW50JzogJ2ZwX2E3OWQ4ZGFjMWYnLCAndXNhZ2UnOiB7J2NvbXBsZXRpb25fdG9rZW5zJzogMjAsICdwcm9tcHRfdG9rZW5zJzogMTM2LCAndG90YWxfdG9rZW5zJzogMTU2LCAnY29tcGxldGlvbl90b2tlbnNfZGV0YWlscyc6IHsnYWNjZXB0ZWRfcHJlZGljdGlvbl90b2tlbnMnOiAwLCAnYXVkaW9fdG9rZW5zJzogMCwgJ3JlYXNvbmluZ190b2tlbnMnOiAwLCAncmVqZWN0ZWRfcHJlZGljdGlvbl90b2tlbnMnOiAwfSwgJ3Byb21wdF90b2tlbnNfZGV0YWlscyc6IHsnYXVkaW9fdG9rZW5zJzogMCwgJ2NhY2hlZF90b2tlbnMnOiAwfX19IiwxODUxLjg1MTg1MTg1MTg1MTcsMTkyMy4wNzY5MjMwNzY5MjI5LCJ7J2lkJzogJ2NoYXRjbXBsLUFlT0xDa0h5R21GVjBBMXJwVFFHZFlLUUZ1dmJaJywgJ2Nob2ljZXMnOiBbeydmaW5pc2hfcmVhc29uJzogJ3N0b3AnLCAnaW5kZXgnOiAwLCAnbG9ncHJvYnMnOiBOb25lLCAnbWVzc2FnZSc6IHsnY29udGVudCc6ICIiWzJdICBcblRoZSB0aWNrZXQgbWVudGlvbnMgdGhlIGRyaXZlcidzIGNvbnNpZGVyYXRlIGJlaGF2aW9yIGFuZCBhc3Npc3RhbmNlIHdpdGggbHVnZ2FnZSwgd2hpY2ggcmVsYXRlcyB0byBkcml2ZXIgcGVyZm9ybWFuY2UuIiIsICdyZWZ1c2FsJzogTm9uZSwgJ3JvbGUnOiAnYXNzaXN0YW50JywgJ2F1ZGlvJzogTm9uZSwgJ2Z1bmN0aW9uX2NhbGwnOiBOb25lLCAndG9vbF9jYWxscyc6IE5vbmV9fV0sICdjcmVhdGVkJzogMTczNDE5MDA1MCwgJ21vZGVsJzogJ2dwdC00by0yMDI0LTA4LTA2JywgJ29iamVjdCc6ICdjaGF0LmNvbXBsZXRpb24nLCAnc2VydmljZV90aWVyJzogTm9uZSwgJ3N5c3RlbV9maW5nZXJwcmludCc6ICdmcF9hNzlkOGRhYzFmJywgJ3VzYWdlJzogeydjb21wbGV0aW9uX3Rva2Vucyc6IDIyLCAncHJvbXB0X3Rva2Vucyc6IDE1OSwgJ3RvdGFsX3Rva2Vucyc6IDE4MSwgJ2NvbXBsZXRpb25fdG9rZW5zX2RldGFpbHMnOiB7J2FjY2VwdGVkX3ByZWRpY3Rpb25fdG9rZW5zJzogMCwgJ2F1ZGlvX3Rva2Vucyc6IDAsICdyZWFzb25pbmdfdG9rZW5zJzogMCwgJ3JlamVjdGVkX3ByZWRpY3Rpb25fdG9rZW5zJzogMH0sICdwcm9tcHRfdG9rZW5zX2RldGFpbHMnOiB7J2F1ZGlvX3Rva2Vucyc6IDAsICdjYWNoZWRfdG9rZW5zJzogMH19fSIsMC4wMDA1NzUsMTg2OS4xNTg4Nzg1MDQ2NzI5LDAuMDAwNTIwMDAwMDAwMDAwMDAwMSwwLjAwMDYxNzUsInsnaWQnOiAnY2hhdGNtcGwtQWVPTENnbHd0aUVCV3RmYTd1M2hseXh4bWVTOHEnLCAnY2hvaWNlcyc6IFt7J2ZpbmlzaF9yZWFzb24nOiAnc3RvcCcsICdpbmRleCc6IDAsICdsb2dwcm9icyc6IE5vbmUsICdtZXNzYWdlJzogeydjb250ZW50JzogIiJUaGUgcHJpbWFyeSBpc3N1ZSBpbiB0aGlzIHRpY2tldCBpcyBhY3R1YWxseSBub3QgYW4gaXNzdWUgYXQgYWxsLiBJdCBhcHBlYXJzIHRvIGJlIGEgcG9zaXRpdmUgZmVlZGJhY2sgb3IgY29tcGxpbWVudCByZWdhcmRpbmcgdGhlIGRyaXZlcidzIGNvbnNpZGVyYXRlIGJlaGF2aW9yIGFuZCBhc3Npc3RhbmNlIHdpdGggbHVnZ2FnZS4gSXQncyBhbHdheXMgZ3JlYXQgdG8gcmVjZWl2ZSBzdWNoIHBvc2l0aXZlIGNvbW1lbnRzIGFib3V0IHRoZSBzZXJ2aWNlIHByb3ZpZGVkISIiLCAncmVmdXNhbCc6IE5vbmUsICdyb2xlJzogJ2Fzc2lzdGFudCcsICdhdWRpbyc6IE5vbmUsICdmdW5jdGlvbl9jYWxsJzogTm9uZSwgJ3Rvb2xfY2FsbHMnOiBOb25lfX1dLCAnY3JlYXRlZCc6IDE3MzQxOTAwNTAsICdtb2RlbCc6ICdncHQtNG8tMjAyNC0wOC0wNicsICdvYmplY3QnOiAnY2hhdC5jb21wbGV0aW9uJywgJ3NlcnZpY2VfdGllcic6IE5vbmUsICdzeXN0ZW1fZmluZ2VycHJpbnQnOiAnZnBfOWZhYmE5ZjAzOCcsICd1c2FnZSc6IHsnY29tcGxldGlvbl90b2tlbnMnOiA0NiwgJ3Byb21wdF90b2tlbnMnOiA3OSwgJ3RvdGFsX3Rva2Vucyc6IDEyNSwgJ2NvbXBsZXRpb25fdG9rZW5zX2RldGFpbHMnOiB7J2FjY2VwdGVkX3ByZWRpY3Rpb25fdG9rZW5zJzogMCwgJ2F1ZGlvX3Rva2Vucyc6IDAsICdyZWFzb25pbmdfdG9rZW5zJzogMCwgJ3JlamVjdGVkX3ByZWRpY3Rpb25fdG9rZW5zJzogMH0sICdwcm9tcHRfdG9rZW5zX2RldGFpbHMnOiB7J2F1ZGlvX3Rva2Vucyc6IDAsICdjYWNoZWRfdG9rZW5zJzogMH19fSIsMC4wMDA2NTc1LDE1MjAuOTEyNTQ3NTI4NTE3LCJ7J2lkJzogJ2NoYXRjbXBsLUFlT0xDdjhZc0lMenRncUxCYWpmdk5vUlFhM1djJywgJ2Nob2ljZXMnOiBbeydmaW5pc2hfcmVhc29uJzogJ3N0b3AnLCAnaW5kZXgnOiAwLCAnbG9ncHJvYnMnOiBOb25lLCAnbWVzc2FnZSc6IHsnY29udGVudCc6ICcwICBcblRoaXMgdGlja2V0IGlzIGEgcG9zaXRpdmUgZmVlZGJhY2sgYW5kIGRvZXMgbm90IHJlcXVpcmUgdXJnZW50IGF0dGVudGlvbiBvciByZXNvbHV0aW9uLicsICdyZWZ1c2FsJzogTm9uZSwgJ3JvbGUnOiAnYXNzaXN0YW50JywgJ2F1ZGlvJzogTm9uZSwgJ2Z1bmN0aW9uX2NhbGwnOiBOb25lLCAndG9vbF9jYWxscyc6IE5vbmV9fV0sICdjcmVhdGVkJzogMTczNDE5MDA1MCwgJ21vZGVsJzogJ2dwdC00by0yMDI0LTA4LTA2JywgJ29iamVjdCc6ICdjaGF0LmNvbXBsZXRpb24nLCAnc2VydmljZV90aWVyJzogTm9uZSwgJ3N5c3RlbV9maW5nZXJwcmludCc6ICdmcF9hNzlkOGRhYzFmJywgJ3VzYWdlJzogeydjb21wbGV0aW9uX3Rva2Vucyc6IDE3LCAncHJvbXB0X3Rva2Vucyc6IDE2MiwgJ3RvdGFsX3Rva2Vucyc6IDE3OSwgJ2NvbXBsZXRpb25fdG9rZW5zX2RldGFpbHMnOiB7J2FjY2VwdGVkX3ByZWRpY3Rpb25fdG9rZW5zJzogMCwgJ2F1ZGlvX3Rva2Vucyc6IDAsICdyZWFzb25pbmdfdG9rZW5zJzogMCwgJ3JlamVjdGVkX3ByZWRpY3Rpb25fdG9rZW5zJzogMH0sICdwcm9tcHRfdG9rZW5zX2RldGFpbHMnOiB7J2F1ZGlvX3Rva2Vucyc6IDAsICdjYWNoZWRfdG9rZW5zJzogMH19fSIsMTYxOS40MzMxOTgzODA1NjY5LDE3MzkuMTMwNDM0NzgyNjA4NywwLjAwMDUzNSwieydpZCc6ICdjaGF0Y21wbC1BZU9MQ3ExS2g5dkJlcU9PeU1lWUptWUhud0V4dycsICdjaG9pY2VzJzogW3snZmluaXNoX3JlYXNvbic6ICdzdG9wJywgJ2luZGV4JzogMCwgJ2xvZ3Byb2JzJzogTm9uZSwgJ21lc3NhZ2UnOiB7J2NvbnRlbnQnOiAiIk5vXG5cblRoZSBjdXN0b21lciBpcyBleHByZXNzaW5nIGFwcHJlY2lhdGlvbiBmb3IgdGhlIGRyaXZlcidzIHNlcnZpY2UgYW5kIGRvZXMgbm90IG1lbnRpb24gYW55IGRpc3NhdGlzZmFjdGlvbiBvciByZXF1ZXN0IGZvciBhIHJlZnVuZC4iIiwgJ3JlZnVzYWwnOiBOb25lLCAncm9sZSc6ICdhc3Npc3RhbnQnLCAnYXVkaW8nOiBOb25lLCAnZnVuY3Rpb25fY2FsbCc6IE5vbmUsICd0b29sX2NhbGxzJzogTm9uZX19XSwgJ2NyZWF0ZWQnOiAxNzM0MTkwMDUwLCAnbW9kZWwnOiAnZ3B0LTRvLTIwMjQtMDgtMDYnLCAnb2JqZWN0JzogJ2NoYXQuY29tcGxldGlvbicsICdzZXJ2aWNlX3RpZXInOiBOb25lLCAnc3lzdGVtX2ZpbmdlcnByaW50JzogJ2ZwXzlmYWJhOWYwMzgnLCAndXNhZ2UnOiB7J2NvbXBsZXRpb25fdG9rZW5zJzogMjMsICdwcm9tcHRfdG9rZW5zJzogMTE2LCAndG90YWxfdG9rZW5zJzogMTM5LCAnY29tcGxldGlvbl90b2tlbnNfZGV0YWlscyc6IHsnYWNjZXB0ZWRfcHJlZGljdGlvbl90b2tlbnMnOiAwLCAnYXVkaW9fdG9rZW5zJzogMCwgJ3JlYXNvbmluZ190b2tlbnMnOiAwLCAncmVqZWN0ZWRfcHJlZGljdGlvbl90b2tlbnMnOiAwfSwgJ3Byb21wdF90b2tlbnNfZGV0YWlscyc6IHsnYXVkaW9fdG9rZW5zJzogMCwgJ2NhY2hlZF90b2tlbnMnOiAwfX19IiwwLERvZXMgdGhlIGN1c3RvbWVyIGFzayBmb3IgYSByZWZ1bmQgaW4gdGhpcyB0aWNrZXQ/IFRpY2tldDoge3sgdGlja2V0IH19LCJJZiB0aGUgcHJpbWFyeSBpc3N1ZSBpbiB0aGlzIHRpY2tldCBpcyBzYWZldHksIHdhcyB0aGVyZSBhbiBhY2NpZGVudCB3aGVyZSBzb21lb25lIHdhcyBodXJ0PyBUaWNrZXQ6IHt7IHRpY2tldCB9fSIsV2hhdCBpcyB0aGUgcHJpbWFyeSBpc3N1ZSBpbiB0aGlzIHRpY2tldD8gVGlja2V0OiB7eyB0aWNrZXQgfX0sQ2hlY2sgYWxsIG9mIHRoZSBpc3N1ZXMgbWVudGlvbmVkIGluIHRoaXMgdGlja2V0OiB7eyB0aWNrZXQgfX0sIk9uIGEgc2NhbGUgZnJvbSAwIHRvIDUsIHdoYXQgaXMgdGhlIHByaW9yaXR5IGxldmVsIG9mIHRoaXMgdGlja2V0PyBUaWNrZXQ6IHt7IHRpY2tldCB9fSIsV2hhdCBpcyB0aGUgc2VudGltZW50IG9mIHRoaXMgdGlja2V0PyBUaWNrZXQ6IHt7IHRpY2tldCB9fSwiWydzYWZldHknLCAnY2xlYW5saW5lc3MnLCAnZHJpdmVyIHBlcmZvcm1hbmNlJywgJ0dQUy9yb3V0ZScsICdsb3N0IGl0ZW0nLCAnb3RoZXInXSIsIlsnVmVyeSBwb3NpdGl2ZScsICdTb21ld2hhdCBwb3NpdGl2ZScsICdOZXV0cmFsJywgJ1NvbWV3aGF0IG5lZ2F0aXZlJywgJ1ZlcnkgbmVnYXRpdmUnXSIsLCJbJ05vJywgJ1llcyddIiwiWydZZXMnLCAnTm8nLCAnTm90IGFwcGxpY2FibGUnXSIsIlswLCAxLCAyLCAzLCA0LCA1XSIsbGluZWFyX3NjYWxlLG11bHRpcGxlX2Nob2ljZSxtdWx0aXBsZV9jaG9pY2UseWVzX25vLGZyZWVfdGV4dCxjaGVja2JveCwsVGhlIGN1c3RvbWVyIGlzIGV4cHJlc3NpbmcgYXBwcmVjaWF0aW9uIGZvciB0aGUgZHJpdmVyJ3Mgc2VydmljZSBhbmQgZG9lcyBub3QgbWVudGlvbiBhbnkgZGlzc2F0aXNmYWN0aW9uIG9yIHJlcXVlc3QgZm9yIGEgcmVmdW5kLixUaGlzIHRpY2tldCBpcyBhIHBvc2l0aXZlIGZlZWRiYWNrIGFuZCBkb2VzIG5vdCByZXF1aXJlIHVyZ2VudCBhdHRlbnRpb24gb3IgcmVzb2x1dGlvbi4sIlRoZSB0aWNrZXQgbWVudGlvbnMgdGhlIGRyaXZlcidzIGNvbnNpZGVyYXRlIGJlaGF2aW9yIGFuZCBhc3Npc3RhbmNlIHdpdGggbHVnZ2FnZSwgd2hpY2ggcmVsYXRlcyB0byBkcml2ZXIgcGVyZm9ybWFuY2UuIiwiVGhlIHRpY2tldCBleHByZXNzZXMgYXBwcmVjaWF0aW9uIGFuZCBoaWdobGlnaHRzIHRoZSBkcml2ZXIncyBjb25zaWRlcmF0ZSBiZWhhdmlvciwgaW5kaWNhdGluZyBhIHZlcnkgcG9zaXRpdmUgc2VudGltZW50LiIsVGhlIHRpY2tldCBkb2VzIG5vdCBtZW50aW9uIGFueSBhY2NpZGVudCBvciBpbmp1cnk7IGl0IHByYWlzZXMgdGhlIGRyaXZlcidzIGhlbHBmdWxuZXNzLiwiVmVyeSBwb3NpdGl2ZSAgClRoZSB0aWNrZXQgZXhwcmVzc2VzIGFwcHJlY2lhdGlvbiBhbmQgaGlnaGxpZ2h0cyB0aGUgZHJpdmVyJ3MgY29uc2lkZXJhdGUgYmVoYXZpb3IsIGluZGljYXRpbmcgYSB2ZXJ5IHBvc2l0aXZlIHNlbnRpbWVudC4iLCJbMl0gIApUaGUgdGlja2V0IG1lbnRpb25zIHRoZSBkcml2ZXIncyBjb25zaWRlcmF0ZSBiZWhhdmlvciBhbmQgYXNzaXN0YW5jZSB3aXRoIGx1Z2dhZ2UsIHdoaWNoIHJlbGF0ZXMgdG8gZHJpdmVyIHBlcmZvcm1hbmNlLiIsIk5vCgpUaGUgY3VzdG9tZXIgaXMgZXhwcmVzc2luZyBhcHByZWNpYXRpb24gZm9yIHRoZSBkcml2ZXIncyBzZXJ2aWNlIGFuZCBkb2VzIG5vdCBtZW50aW9uIGFueSBkaXNzYXRpc2ZhY3Rpb24gb3IgcmVxdWVzdCBmb3IgYSByZWZ1bmQuIixUaGUgcHJpbWFyeSBpc3N1ZSBpbiB0aGlzIHRpY2tldCBpcyBhY3R1YWxseSBub3QgYW4gaXNzdWUgYXQgYWxsLiBJdCBhcHBlYXJzIHRvIGJlIGEgcG9zaXRpdmUgZmVlZGJhY2sgb3IgY29tcGxpbWVudCByZWdhcmRpbmcgdGhlIGRyaXZlcidzIGNvbnNpZGVyYXRlIGJlaGF2aW9yIGFuZCBhc3Npc3RhbmNlIHdpdGggbHVnZ2FnZS4gSXQncyBhbHdheXMgZ3JlYXQgdG8gcmVjZWl2ZSBzdWNoIHBvc2l0aXZlIGNvbW1lbnRzIGFib3V0IHRoZSBzZXJ2aWNlIHByb3ZpZGVkISwiTm8gIApUaGUgdGlja2V0IGRvZXMgbm90IG1lbnRpb24gYW55IGFjY2lkZW50IG9yIGluanVyeTsgaXQgcHJhaXNlcyB0aGUgZHJpdmVyJ3MgaGVscGZ1bG5lc3MuIiwiMCAgClRoaXMgdGlja2V0IGlzIGEgcG9zaXRpdmUgZmVlZGJhY2sgYW5kIGRvZXMgbm90IHJlcXVpcmUgdXJnZW50IGF0dGVudGlvbiBvciByZXNvbHV0aW9uLiINCk5vLFNvbWV3aGF0IG5lZ2F0aXZlLE5vLCJUaGUgcHJpbWFyeSBpc3N1ZSBpbiB0aGlzIHRpY2tldCBpcyB0aGUgaW5hY2N1cmFjeSBvZiB0aGUgYXBwJ3MgR1BTLCB3aGljaCByZXN1bHRlZCBpbiBkaXJlY3RpbmcgdGhlIGRyaXZlciB0byB0aGUgd3JvbmcgcGljay11cCBsb2NhdGlvbi4gVGhpcyBjYW4gbGVhZCB0byBkZWxheXMgYW5kIGluY29udmVuaWVuY2UgZm9yIGJvdGggdGhlIGRyaXZlciBhbmQgdGhlIGN1c3RvbWVyLCBzbyBpdCdzIGltcG9ydGFudCB0byBhZGRyZXNzIHRoZSBHUFMgZnVuY3Rpb25hbGl0eSB0byBlbnN1cmUgaXQgcHJvdmlkZXMgYWNjdXJhdGUgZGlyZWN0aW9ucy4iLDQsWydHUFMvcm91dGUnXSxUaGUgYXBwJ3MgR1BTIHNlZW1zIGluYWNjdXJhdGUuIEl0IGRpcmVjdGVkIHRoZSBkcml2ZXIgdG8gdGhlIHdyb25nIHBpY2stdXAgbG9jYXRpb24uLFlvdSBhcmUgYW4gZXhwZXJ0IGN1c3RvbWVyIHNlcnZpY2UgYWdlbnQuLEFnZW50XzE2LDE1LFlvdSBhcmUgYW5zd2VyaW5nIHF1ZXN0aW9ucyBhcyBpZiB5b3Ugd2VyZSBhIGh1bWFuLiBEbyBub3QgYnJlYWsgY2hhcmFjdGVyLiwwLDEsMCxncHQtNG8sMC41LEZhbHNlLDEwMDAsMyxXaGF0IGlzIHRoZSBwcmltYXJ5IGlzc3VlIGluIHRoaXMgdGlja2V0PyBUaWNrZXQ6IFRoZSBhcHAncyBHUFMgc2VlbXMgaW5hY2N1cmF0ZS4gSXQgZGlyZWN0ZWQgdGhlIGRyaXZlciB0byB0aGUgd3JvbmcgcGljay11cCBsb2NhdGlvbi4sIllvdSBhcmUgYW5zd2VyaW5nIHF1ZXN0aW9ucyBhcyBpZiB5b3Ugd2VyZSBhIGh1bWFuLiBEbyBub3QgYnJlYWsgY2hhcmFjdGVyLiBZb3VyIHRyYWl0czogeydwZXJzb25hJzogJ1lvdSBhcmUgYW4gZXhwZXJ0IGN1c3RvbWVyIHNlcnZpY2UgYWdlbnQuJywgJ3llYXJzX2V4cGVyaWVuY2UnOiAxNX0iLCJZb3UgYXJlIGFuc3dlcmluZyBxdWVzdGlvbnMgYXMgaWYgeW91IHdlcmUgYSBodW1hbi4gRG8gbm90IGJyZWFrIGNoYXJhY3Rlci4gWW91ciB0cmFpdHM6IHsncGVyc29uYSc6ICdZb3UgYXJlIGFuIGV4cGVydCBjdXN0b21lciBzZXJ2aWNlIGFnZW50LicsICd5ZWFyc19leHBlcmllbmNlJzogMTV9IiwiQ2hlY2sgYWxsIG9mIHRoZSBpc3N1ZXMgbWVudGlvbmVkIGluIHRoaXMgdGlja2V0OiBUaGUgYXBwJ3MgR1BTIHNlZW1zIGluYWNjdXJhdGUuIEl0IGRpcmVjdGVkIHRoZSBkcml2ZXIgdG8gdGhlIHdyb25nIHBpY2stdXAgbG9jYXRpb24uCgogICAgCjA6IHNhZmV0eQogICAgCjE6IGNsZWFubGluZXNzCiAgICAKMjogZHJpdmVyIHBlcmZvcm1hbmNlCiAgICAKMzogR1BTL3JvdXRlCiAgICAKNDogbG9zdCBpdGVtCiAgICAKNTogb3RoZXIKICAgIAoKCgoKCgpQbGVhc2UgcmVzcG9uZCBvbmx5IHdpdGggYSBjb21tYS1zZXBhcmF0ZWQgbGlzdCBvZiB0aGUgY29kZSBvZiB0aGUgb3B0aW9ucyB0aGF0IGFwcGx5LCB3aXRoIHNxdWFyZSBicmFja2V0cy4gRS5nLiwgWzAsIDEsIDNdCgoKQWZ0ZXIgdGhlIGFuc3dlciwgeW91IGNhbiBwdXQgYSBjb21tZW50IGV4cGxhaW5pbmcgeW91ciBjaG9pY2Ugb24gdGhlIG5leHQgbGluZS4iLCJPbiBhIHNjYWxlIGZyb20gMCB0byA1LCB3aGF0IGlzIHRoZSBwcmlvcml0eSBsZXZlbCBvZiB0aGlzIHRpY2tldD8gVGlja2V0OiBUaGUgYXBwJ3MgR1BTIHNlZW1zIGluYWNjdXJhdGUuIEl0IGRpcmVjdGVkIHRoZSBkcml2ZXIgdG8gdGhlIHdyb25nIHBpY2stdXAgbG9jYXRpb24uCgowIDogTG93ZXN0CgoxIDogCgoyIDogCgozIDogCgo0IDogCgo1IDogSGlnaGVzdAoKT25seSAxIG9wdGlvbiBtYXkgYmUgc2VsZWN0ZWQuCgpSZXNwb25kIG9ubHkgd2l0aCB0aGUgY29kZSBjb3JyZXNwb25kaW5nIHRvIG9uZSBvZiB0aGUgb3B0aW9ucy4gRS5nLiwgIiIxIiIgb3IgIiI1IiIgYnkgaXRzZWxmLgoKQWZ0ZXIgdGhlIGFuc3dlciwgeW91IGNhbiBwdXQgYSBjb21tZW50IGV4cGxhaW5pbmcgd2h5IHlvdSBjaG9zZSB0aGF0IG9wdGlvbiBvbiB0aGUgbmV4dCBsaW5lLiIsIllvdSBhcmUgYW5zd2VyaW5nIHF1ZXN0aW9ucyBhcyBpZiB5b3Ugd2VyZSBhIGh1bWFuLiBEbyBub3QgYnJlYWsgY2hhcmFjdGVyLiBZb3VyIHRyYWl0czogeydwZXJzb25hJzogJ1lvdSBhcmUgYW4gZXhwZXJ0IGN1c3RvbWVyIHNlcnZpY2UgYWdlbnQuJywgJ3llYXJzX2V4cGVyaWVuY2UnOiAxNX0iLCJZb3UgYXJlIGFuc3dlcmluZyBxdWVzdGlvbnMgYXMgaWYgeW91IHdlcmUgYSBodW1hbi4gRG8gbm90IGJyZWFrIGNoYXJhY3Rlci4gWW91ciB0cmFpdHM6IHsncGVyc29uYSc6ICdZb3UgYXJlIGFuIGV4cGVydCBjdXN0b21lciBzZXJ2aWNlIGFnZW50LicsICd5ZWFyc19leHBlcmllbmNlJzogMTV9IiwiWW91IGFyZSBhbnN3ZXJpbmcgcXVlc3Rpb25zIGFzIGlmIHlvdSB3ZXJlIGEgaHVtYW4uIERvIG5vdCBicmVhayBjaGFyYWN0ZXIuIFlvdXIgdHJhaXRzOiB7J3BlcnNvbmEnOiAnWW91IGFyZSBhbiBleHBlcnQgY3VzdG9tZXIgc2VydmljZSBhZ2VudC4nLCAneWVhcnNfZXhwZXJpZW5jZSc6IDE1fSIsIgpXaGF0IGlzIHRoZSBzZW50aW1lbnQgb2YgdGhpcyB0aWNrZXQ/IFRpY2tldDogVGhlIGFwcCdzIEdQUyBzZWVtcyBpbmFjY3VyYXRlLiBJdCBkaXJlY3RlZCB0aGUgZHJpdmVyIHRvIHRoZSB3cm9uZyBwaWNrLXVwIGxvY2F0aW9uLgoKICAgIApWZXJ5IHBvc2l0aXZlCiAgICAKU29tZXdoYXQgcG9zaXRpdmUKICAgIApOZXV0cmFsCiAgICAKU29tZXdoYXQgbmVnYXRpdmUKICAgIApWZXJ5IG5lZ2F0aXZlCiAgICAKCk9ubHkgMSBvcHRpb24gbWF5IGJlIHNlbGVjdGVkLgoKUmVzcG9uZCBvbmx5IHdpdGggYSBzdHJpbmcgY29ycmVzcG9uZGluZyB0byBvbmUgb2YgdGhlIG9wdGlvbnMuCgoKQWZ0ZXIgdGhlIGFuc3dlciwgeW91IGNhbiBwdXQgYSBjb21tZW50IGV4cGxhaW5pbmcgd2h5IHlvdSBjaG9zZSB0aGF0IG9wdGlvbiBvbiB0aGUgbmV4dCBsaW5lLiIsIgpEb2VzIHRoZSBjdXN0b21lciBhc2sgZm9yIGEgcmVmdW5kIGluIHRoaXMgdGlja2V0PyBUaWNrZXQ6IFRoZSBhcHAncyBHUFMgc2VlbXMgaW5hY2N1cmF0ZS4gSXQgZGlyZWN0ZWQgdGhlIGRyaXZlciB0byB0aGUgd3JvbmcgcGljay11cCBsb2NhdGlvbi4KCiAgICAKTm8KICAgIApZZXMKICAgIAoKT25seSAxIG9wdGlvbiBtYXkgYmUgc2VsZWN0ZWQuClBsZWFzZSByZXNwb25kIHdpdGgganVzdCB5b3VyIGFuc3dlci4gCgoKQWZ0ZXIgdGhlIGFuc3dlciwgeW91IGNhbiBwdXQgYSBjb21tZW50IGV4cGxhaW5pbmcgeW91ciByZXNwb25zZS4iLCJZb3UgYXJlIGFuc3dlcmluZyBxdWVzdGlvbnMgYXMgaWYgeW91IHdlcmUgYSBodW1hbi4gRG8gbm90IGJyZWFrIGNoYXJhY3Rlci4gWW91ciB0cmFpdHM6IHsncGVyc29uYSc6ICdZb3UgYXJlIGFuIGV4cGVydCBjdXN0b21lciBzZXJ2aWNlIGFnZW50LicsICd5ZWFyc19leHBlcmllbmNlJzogMTV9IiwiCklmIHRoZSBwcmltYXJ5IGlzc3VlIGluIHRoaXMgdGlja2V0IGlzIHNhZmV0eSwgd2FzIHRoZXJlIGFuIGFjY2lkZW50IHdoZXJlIHNvbWVvbmUgd2FzIGh1cnQ/IFRpY2tldDogVGhlIGFwcCdzIEdQUyBzZWVtcyBpbmFjY3VyYXRlLiBJdCBkaXJlY3RlZCB0aGUgZHJpdmVyIHRvIHRoZSB3cm9uZyBwaWNrLXVwIGxvY2F0aW9uLgoKICAgIApZZXMKICAgIApObwogICAgCk5vdCBhcHBsaWNhYmxlCiAgICAKCk9ubHkgMSBvcHRpb24gbWF5IGJlIHNlbGVjdGVkLgoKUmVzcG9uZCBvbmx5IHdpdGggYSBzdHJpbmcgY29ycmVzcG9uZGluZyB0byBvbmUgb2YgdGhlIG9wdGlvbnMuCgoKQWZ0ZXIgdGhlIGFuc3dlciwgeW91IGNhbiBwdXQgYSBjb21tZW50IGV4cGxhaW5pbmcgd2h5IHlvdSBjaG9zZSB0aGF0IG9wdGlvbiBvbiB0aGUgbmV4dCBsaW5lLiIsMC4wMDA2MywieydpZCc6ICdjaGF0Y21wbC1BZU9MQ3Q0M1dycUZZWm1nYlNkY3ZYTFdvQ1F1cicsICdjaG9pY2VzJzogW3snZmluaXNoX3JlYXNvbic6ICdzdG9wJywgJ2luZGV4JzogMCwgJ2xvZ3Byb2JzJzogTm9uZSwgJ21lc3NhZ2UnOiB7J2NvbnRlbnQnOiAiIk5vICBcblRoZSBpc3N1ZSBtZW50aW9uZWQgaXMgYWJvdXQgR1BTIGluYWNjdXJhY3ksIGFuZCB0aGVyZSdzIG5vIGluZGljYXRpb24gb2YgYW4gYWNjaWRlbnQgb3IgaW5qdXJ5IGluIHRoZSB0aWNrZXQgZGVzY3JpcHRpb24uIiIsICdyZWZ1c2FsJzogTm9uZSwgJ3JvbGUnOiAnYXNzaXN0YW50JywgJ2F1ZGlvJzogTm9uZSwgJ2Z1bmN0aW9uX2NhbGwnOiBOb25lLCAndG9vbF9jYWxscyc6IE5vbmV9fV0sICdjcmVhdGVkJzogMTczNDE5MDA1MCwgJ21vZGVsJzogJ2dwdC00by0yMDI0LTA4LTA2JywgJ29iamVjdCc6ICdjaGF0LmNvbXBsZXRpb24nLCAnc2VydmljZV90aWVyJzogTm9uZSwgJ3N5c3RlbV9maW5nZXJwcmludCc6ICdmcF85ZmFiYTlmMDM4JywgJ3VzYWdlJzogeydjb21wbGV0aW9uX3Rva2Vucyc6IDI1LCAncHJvbXB0X3Rva2Vucyc6IDEzOCwgJ3RvdGFsX3Rva2Vucyc6IDE2MywgJ2NvbXBsZXRpb25fdG9rZW5zX2RldGFpbHMnOiB7J2FjY2VwdGVkX3ByZWRpY3Rpb25fdG9rZW5zJzogMCwgJ2F1ZGlvX3Rva2Vucyc6IDAsICdyZWFzb25pbmdfdG9rZW5zJzogMCwgJ3JlamVjdGVkX3ByZWRpY3Rpb25fdG9rZW5zJzogMH0sICdwcm9tcHRfdG9rZW5zX2RldGFpbHMnOiB7J2F1ZGlvX3Rva2Vucyc6IDAsICdjYWNoZWRfdG9rZW5zJzogMH19fSIsInsnaWQnOiAnY2hhdGNtcGwtQWVPTERXNlB3SThkaEhiTTV0NUpSU1hmTE9ab0MnLCAnY2hvaWNlcyc6IFt7J2ZpbmlzaF9yZWFzb24nOiAnc3RvcCcsICdpbmRleCc6IDAsICdsb2dwcm9icyc6IE5vbmUsICdtZXNzYWdlJzogeydjb250ZW50JzogIiJTb21ld2hhdCBuZWdhdGl2ZSAgXG5UaGUgc2VudGltZW50IGlzIHNvbWV3aGF0IG5lZ2F0aXZlIGJlY2F1c2UgdGhlIGN1c3RvbWVyIGlzIGV4cGVyaWVuY2luZyBhIHByb2JsZW0gd2l0aCB0aGUgYXBwJ3MgR1BTLCB3aGljaCBpcyBsZWFkaW5nIHRvIGFuIGluY29udmVuaWVuY2UuIiIsICdyZWZ1c2FsJzogTm9uZSwgJ3JvbGUnOiAnYXNzaXN0YW50JywgJ2F1ZGlvJzogTm9uZSwgJ2Z1bmN0aW9uX2NhbGwnOiBOb25lLCAndG9vbF9jYWxscyc6IE5vbmV9fV0sICdjcmVhdGVkJzogMTczNDE5MDA1MSwgJ21vZGVsJzogJ2dwdC00by0yMDI0LTA4LTA2JywgJ29iamVjdCc6ICdjaGF0LmNvbXBsZXRpb24nLCAnc2VydmljZV90aWVyJzogTm9uZSwgJ3N5c3RlbV9maW5nZXJwcmludCc6ICdmcF9hNzlkOGRhYzFmJywgJ3VzYWdlJzogeydjb21wbGV0aW9uX3Rva2Vucyc6IDI5LCAncHJvbXB0X3Rva2Vucyc6IDEzNiwgJ3RvdGFsX3Rva2Vucyc6IDE2NSwgJ2NvbXBsZXRpb25fdG9rZW5zX2RldGFpbHMnOiB7J2FjY2VwdGVkX3ByZWRpY3Rpb25fdG9rZW5zJzogMCwgJ2F1ZGlvX3Rva2Vucyc6IDAsICdyZWFzb25pbmdfdG9rZW5zJzogMCwgJ3JlamVjdGVkX3ByZWRpY3Rpb25fdG9rZW5zJzogMH0sICdwcm9tcHRfdG9rZW5zX2RldGFpbHMnOiB7J2F1ZGlvX3Rva2Vucyc6IDAsICdjYWNoZWRfdG9rZW5zJzogMH19fSIsMTU4Ny4zMDE1ODczMDE1ODcyLDE4MTguMTgxODE4MTgxODE4NSwieydpZCc6ICdjaGF0Y21wbC1BZU9MRGJ5WHlIeEFEOW1QZGN4UE15bXpLNXhoVicsICdjaG9pY2VzJzogW3snZmluaXNoX3JlYXNvbic6ICdzdG9wJywgJ2luZGV4JzogMCwgJ2xvZ3Byb2JzJzogTm9uZSwgJ21lc3NhZ2UnOiB7J2NvbnRlbnQnOiAiIlszXVxuXG5UaGUgaXNzdWUgbWVudGlvbmVkIGluIHRoZSB0aWNrZXQgaXMgcmVsYXRlZCB0byB0aGUgR1BTL3JvdXRlLCBhcyBpdCBkZXNjcmliZXMgdGhlIGFwcCdzIEdQUyBkaXJlY3RpbmcgdGhlIGRyaXZlciB0byB0aGUgd3JvbmcgcGljay11cCBsb2NhdGlvbi4iIiwgJ3JlZnVzYWwnOiBOb25lLCAncm9sZSc6ICdhc3Npc3RhbnQnLCAnYXVkaW8nOiBOb25lLCAnZnVuY3Rpb25fY2FsbCc6IE5vbmUsICd0b29sX2NhbGxzJzogTm9uZX19XSwgJ2NyZWF0ZWQnOiAxNzM0MTkwMDUxLCAnbW9kZWwnOiAnZ3B0LTRvLTIwMjQtMDgtMDYnLCAnb2JqZWN0JzogJ2NoYXQuY29tcGxldGlvbicsICdzZXJ2aWNlX3RpZXInOiBOb25lLCAnc3lzdGVtX2ZpbmdlcnByaW50JzogJ2ZwX2E3OWQ4ZGFjMWYnLCAndXNhZ2UnOiB7J2NvbXBsZXRpb25fdG9rZW5zJzogMzQsICdwcm9tcHRfdG9rZW5zJzogMTU5LCAndG90YWxfdG9rZW5zJzogMTkzLCAnY29tcGxldGlvbl90b2tlbnNfZGV0YWlscyc6IHsnYWNjZXB0ZWRfcHJlZGljdGlvbl90b2tlbnMnOiAwLCAnYXVkaW9fdG9rZW5zJzogMCwgJ3JlYXNvbmluZ190b2tlbnMnOiAwLCAncmVqZWN0ZWRfcHJlZGljdGlvbl90b2tlbnMnOiAwfSwgJ3Byb21wdF90b2tlbnNfZGV0YWlscyc6IHsnYXVkaW9fdG9rZW5zJzogMCwgJ2NhY2hlZF90b2tlbnMnOiAwfX19IiwwLjAwMDY3NSwxNjgwLjY3MjI2ODkwNzU2MywwLjAwMDU0OTk5OTk5OTk5OTk5OTksMC4wMDA3Mzc1MDAwMDAwMDAwMDAxLCJ7J2lkJzogJ2NoYXRjbXBsLUFlT0xDc29tdWs2UVk3a3RHRVJ3Ykd6ampaZjVJJywgJ2Nob2ljZXMnOiBbeydmaW5pc2hfcmVhc29uJzogJ3N0b3AnLCAnaW5kZXgnOiAwLCAnbG9ncHJvYnMnOiBOb25lLCAnbWVzc2FnZSc6IHsnY29udGVudCc6ICIiVGhlIHByaW1hcnkgaXNzdWUgaW4gdGhpcyB0aWNrZXQgaXMgdGhlIGluYWNjdXJhY3kgb2YgdGhlIGFwcCdzIEdQUywgd2hpY2ggcmVzdWx0ZWQgaW4gZGlyZWN0aW5nIHRoZSBkcml2ZXIgdG8gdGhlIHdyb25nIHBpY2stdXAgbG9jYXRpb24uIFRoaXMgY2FuIGxlYWQgdG8gZGVsYXlzIGFuZCBpbmNvbnZlbmllbmNlIGZvciBib3RoIHRoZSBkcml2ZXIgYW5kIHRoZSBjdXN0b21lciwgc28gaXQncyBpbXBvcnRhbnQgdG8gYWRkcmVzcyB0aGUgR1BTIGZ1bmN0aW9uYWxpdHkgdG8gZW5zdXJlIGl0IHByb3ZpZGVzIGFjY3VyYXRlIGRpcmVjdGlvbnMuIiIsICdyZWZ1c2FsJzogTm9uZSwgJ3JvbGUnOiAnYXNzaXN0YW50JywgJ2F1ZGlvJzogTm9uZSwgJ2Z1bmN0aW9uX2NhbGwnOiBOb25lLCAndG9vbF9jYWxscyc6IE5vbmV9fV0sICdjcmVhdGVkJzogMTczNDE5MDA1MCwgJ21vZGVsJzogJ2dwdC00by0yMDI0LTA4LTA2JywgJ29iamVjdCc6ICdjaGF0LmNvbXBsZXRpb24nLCAnc2VydmljZV90aWVyJzogTm9uZSwgJ3N5c3RlbV9maW5nZXJwcmludCc6ICdmcF9hNzlkOGRhYzFmJywgJ3VzYWdlJzogeydjb21wbGV0aW9uX3Rva2Vucyc6IDU5LCAncHJvbXB0X3Rva2Vucyc6IDc5LCAndG90YWxfdG9rZW5zJzogMTM4LCAnY29tcGxldGlvbl90b2tlbnNfZGV0YWlscyc6IHsnYWNjZXB0ZWRfcHJlZGljdGlvbl90b2tlbnMnOiAwLCAnYXVkaW9fdG9rZW5zJzogMCwgJ3JlYXNvbmluZ190b2tlbnMnOiAwLCAncmVqZWN0ZWRfcHJlZGljdGlvbl90b2tlbnMnOiAwfSwgJ3Byb21wdF90b2tlbnNfZGV0YWlscyc6IHsnYXVkaW9fdG9rZW5zJzogMCwgJ2NhY2hlZF90b2tlbnMnOiAwfX19IiwwLjAwMDc4NzUsMTI2OS44NDEyNjk4NDEyNjk5LCJ7J2lkJzogJ2NoYXRjbXBsLUFlT0xDWjREeG16dHl5Qnhwem9Fc21oazFnN0pTJywgJ2Nob2ljZXMnOiBbeydmaW5pc2hfcmVhc29uJzogJ3N0b3AnLCAnaW5kZXgnOiAwLCAnbG9ncHJvYnMnOiBOb25lLCAnbWVzc2FnZSc6IHsnY29udGVudCc6ICc0ICBcblRoaXMgaXNzdWUgaW1wYWN0cyB0aGUgY29yZSBmdW5jdGlvbmFsaXR5IG9mIHRoZSBhcHAsIHBvdGVudGlhbGx5IGxlYWRpbmcgdG8gY3VzdG9tZXIgZGlzc2F0aXNmYWN0aW9uIGFuZCBvcGVyYXRpb25hbCBpbmVmZmljaWVuY2llcywgdGh1cyByZXF1aXJpbmcgcHJvbXB0IGF0dGVudGlvbi4nLCAncmVmdXNhbCc6IE5vbmUsICdyb2xlJzogJ2Fzc2lzdGFudCcsICdhdWRpbyc6IE5vbmUsICdmdW5jdGlvbl9jYWxsJzogTm9uZSwgJ3Rvb2xfY2FsbHMnOiBOb25lfX1dLCAnY3JlYXRlZCc6IDE3MzQxOTAwNTAsICdtb2RlbCc6ICdncHQtNG8tMjAyNC0wOC0wNicsICdvYmplY3QnOiAnY2hhdC5jb21wbGV0aW9uJywgJ3NlcnZpY2VfdGllcic6IE5vbmUsICdzeXN0ZW1fZmluZ2VycHJpbnQnOiAnZnBfYTc5ZDhkYWMxZicsICd1c2FnZSc6IHsnY29tcGxldGlvbl90b2tlbnMnOiAyNywgJ3Byb21wdF90b2tlbnMnOiAxNjIsICd0b3RhbF90b2tlbnMnOiAxODksICdjb21wbGV0aW9uX3Rva2Vuc19kZXRhaWxzJzogeydhY2NlcHRlZF9wcmVkaWN0aW9uX3Rva2Vucyc6IDAsICdhdWRpb190b2tlbnMnOiAwLCAncmVhc29uaW5nX3Rva2Vucyc6IDAsICdyZWplY3RlZF9wcmVkaWN0aW9uX3Rva2Vucyc6IDB9LCAncHJvbXB0X3Rva2Vuc19kZXRhaWxzJzogeydhdWRpb190b2tlbnMnOiAwLCAnY2FjaGVkX3Rva2Vucyc6IDB9fX0iLDEzNTUuOTMyMjAzMzg5ODMwNCwxNDgxLjQ4MTQ4MTQ4MTQ4MTMsMC4wMDA1OTUsInsnaWQnOiAnY2hhdGNtcGwtQWVPTENKM0VVWVJ0ZU1LTEdFR1lCMzJBNGhHWW4nLCAnY2hvaWNlcyc6IFt7J2ZpbmlzaF9yZWFzb24nOiAnc3RvcCcsICdpbmRleCc6IDAsICdsb2dwcm9icyc6IE5vbmUsICdtZXNzYWdlJzogeydjb250ZW50JzogIiJOb1xuXG5UaGUgdGlja2V0IG1lbnRpb25zIGFuIGlzc3VlIHdpdGggdGhlIGFwcCdzIEdQUyBidXQgZG9lcyBub3QgZXhwbGljaXRseSBzdGF0ZSB0aGF0IHRoZSBjdXN0b21lciBpcyBhc2tpbmcgZm9yIGEgcmVmdW5kLiIiLCAncmVmdXNhbCc6IE5vbmUsICdyb2xlJzogJ2Fzc2lzdGFudCcsICdhdWRpbyc6IE5vbmUsICdmdW5jdGlvbl9jYWxsJzogTm9uZSwgJ3Rvb2xfY2FsbHMnOiBOb25lfX1dLCAnY3JlYXRlZCc6IDE3MzQxOTAwNTAsICdtb2RlbCc6ICdncHQtNG8tMjAyNC0wOC0wNicsICdvYmplY3QnOiAnY2hhdC5jb21wbGV0aW9uJywgJ3NlcnZpY2VfdGllcic6IE5vbmUsICdzeXN0ZW1fZmluZ2VycHJpbnQnOiAnZnBfYTc5ZDhkYWMxZicsICd1c2FnZSc6IHsnY29tcGxldGlvbl90b2tlbnMnOiAyNiwgJ3Byb21wdF90b2tlbnMnOiAxMTYsICd0b3RhbF90b2tlbnMnOiAxNDIsICdjb21wbGV0aW9uX3Rva2Vuc19kZXRhaWxzJzogeydhY2NlcHRlZF9wcmVkaWN0aW9uX3Rva2Vucyc6IDAsICdhdWRpb190b2tlbnMnOiAwLCAncmVhc29uaW5nX3Rva2Vucyc6IDAsICdyZWplY3RlZF9wcmVkaWN0aW9uX3Rva2Vucyc6IDB9LCAncHJvbXB0X3Rva2Vuc19kZXRhaWxzJzogeydhdWRpb190b2tlbnMnOiAwLCAnY2FjaGVkX3Rva2Vucyc6IDB9fX0iLDAsRG9lcyB0aGUgY3VzdG9tZXIgYXNrIGZvciBhIHJlZnVuZCBpbiB0aGlzIHRpY2tldD8gVGlja2V0OiB7eyB0aWNrZXQgfX0sIklmIHRoZSBwcmltYXJ5IGlzc3VlIGluIHRoaXMgdGlja2V0IGlzIHNhZmV0eSwgd2FzIHRoZXJlIGFuIGFjY2lkZW50IHdoZXJlIHNvbWVvbmUgd2FzIGh1cnQ/IFRpY2tldDoge3sgdGlja2V0IH19IixXaGF0IGlzIHRoZSBwcmltYXJ5IGlzc3VlIGluIHRoaXMgdGlja2V0PyBUaWNrZXQ6IHt7IHRpY2tldCB9fSxDaGVjayBhbGwgb2YgdGhlIGlzc3VlcyBtZW50aW9uZWQgaW4gdGhpcyB0aWNrZXQ6IHt7IHRpY2tldCB9fSwiT24gYSBzY2FsZSBmcm9tIDAgdG8gNSwgd2hhdCBpcyB0aGUgcHJpb3JpdHkgbGV2ZWwgb2YgdGhpcyB0aWNrZXQ/IFRpY2tldDoge3sgdGlja2V0IH19IixXaGF0IGlzIHRoZSBzZW50aW1lbnQgb2YgdGhpcyB0aWNrZXQ/IFRpY2tldDoge3sgdGlja2V0IH19LCJbJ3NhZmV0eScsICdjbGVhbmxpbmVzcycsICdkcml2ZXIgcGVyZm9ybWFuY2UnLCAnR1BTL3JvdXRlJywgJ2xvc3QgaXRlbScsICdvdGhlciddIiwiWydWZXJ5IHBvc2l0aXZlJywgJ1NvbWV3aGF0IHBvc2l0aXZlJywgJ05ldXRyYWwnLCAnU29tZXdoYXQgbmVnYXRpdmUnLCAnVmVyeSBuZWdhdGl2ZSddIiwsIlsnTm8nLCAnWWVzJ10iLCJbJ1llcycsICdObycsICdOb3QgYXBwbGljYWJsZSddIiwiWzAsIDEsIDIsIDMsIDQsIDVdIixsaW5lYXJfc2NhbGUsbXVsdGlwbGVfY2hvaWNlLG11bHRpcGxlX2Nob2ljZSx5ZXNfbm8sZnJlZV90ZXh0LGNoZWNrYm94LCxUaGUgdGlja2V0IG1lbnRpb25zIGFuIGlzc3VlIHdpdGggdGhlIGFwcCdzIEdQUyBidXQgZG9lcyBub3QgZXhwbGljaXRseSBzdGF0ZSB0aGF0IHRoZSBjdXN0b21lciBpcyBhc2tpbmcgZm9yIGEgcmVmdW5kLiwiVGhpcyBpc3N1ZSBpbXBhY3RzIHRoZSBjb3JlIGZ1bmN0aW9uYWxpdHkgb2YgdGhlIGFwcCwgcG90ZW50aWFsbHkgbGVhZGluZyB0byBjdXN0b21lciBkaXNzYXRpc2ZhY3Rpb24gYW5kIG9wZXJhdGlvbmFsIGluZWZmaWNpZW5jaWVzLCB0aHVzIHJlcXVpcmluZyBwcm9tcHQgYXR0ZW50aW9uLiIsIlRoZSBpc3N1ZSBtZW50aW9uZWQgaW4gdGhlIHRpY2tldCBpcyByZWxhdGVkIHRvIHRoZSBHUFMvcm91dGUsIGFzIGl0IGRlc2NyaWJlcyB0aGUgYXBwJ3MgR1BTIGRpcmVjdGluZyB0aGUgZHJpdmVyIHRvIHRoZSB3cm9uZyBwaWNrLXVwIGxvY2F0aW9uLiIsIlRoZSBzZW50aW1lbnQgaXMgc29tZXdoYXQgbmVnYXRpdmUgYmVjYXVzZSB0aGUgY3VzdG9tZXIgaXMgZXhwZXJpZW5jaW5nIGEgcHJvYmxlbSB3aXRoIHRoZSBhcHAncyBHUFMsIHdoaWNoIGlzIGxlYWRpbmcgdG8gYW4gaW5jb252ZW5pZW5jZS4iLCJUaGUgaXNzdWUgbWVudGlvbmVkIGlzIGFib3V0IEdQUyBpbmFjY3VyYWN5LCBhbmQgdGhlcmUncyBubyBpbmRpY2F0aW9uIG9mIGFuIGFjY2lkZW50IG9yIGluanVyeSBpbiB0aGUgdGlja2V0IGRlc2NyaXB0aW9uLiIsIlNvbWV3aGF0IG5lZ2F0aXZlICAKVGhlIHNlbnRpbWVudCBpcyBzb21ld2hhdCBuZWdhdGl2ZSBiZWNhdXNlIHRoZSBjdXN0b21lciBpcyBleHBlcmllbmNpbmcgYSBwcm9ibGVtIHdpdGggdGhlIGFwcCdzIEdQUywgd2hpY2ggaXMgbGVhZGluZyB0byBhbiBpbmNvbnZlbmllbmNlLiIsIlszXQoKVGhlIGlzc3VlIG1lbnRpb25lZCBpbiB0aGUgdGlja2V0IGlzIHJlbGF0ZWQgdG8gdGhlIEdQUy9yb3V0ZSwgYXMgaXQgZGVzY3JpYmVzIHRoZSBhcHAncyBHUFMgZGlyZWN0aW5nIHRoZSBkcml2ZXIgdG8gdGhlIHdyb25nIHBpY2stdXAgbG9jYXRpb24uIiwiTm8KClRoZSB0aWNrZXQgbWVudGlvbnMgYW4gaXNzdWUgd2l0aCB0aGUgYXBwJ3MgR1BTIGJ1dCBkb2VzIG5vdCBleHBsaWNpdGx5IHN0YXRlIHRoYXQgdGhlIGN1c3RvbWVyIGlzIGFza2luZyBmb3IgYSByZWZ1bmQuIiwiVGhlIHByaW1hcnkgaXNzdWUgaW4gdGhpcyB0aWNrZXQgaXMgdGhlIGluYWNjdXJhY3kgb2YgdGhlIGFwcCdzIEdQUywgd2hpY2ggcmVzdWx0ZWQgaW4gZGlyZWN0aW5nIHRoZSBkcml2ZXIgdG8gdGhlIHdyb25nIHBpY2stdXAgbG9jYXRpb24uIFRoaXMgY2FuIGxlYWQgdG8gZGVsYXlzIGFuZCBpbmNvbnZlbmllbmNlIGZvciBib3RoIHRoZSBkcml2ZXIgYW5kIHRoZSBjdXN0b21lciwgc28gaXQncyBpbXBvcnRhbnQgdG8gYWRkcmVzcyB0aGUgR1BTIGZ1bmN0aW9uYWxpdHkgdG8gZW5zdXJlIGl0IHByb3ZpZGVzIGFjY3VyYXRlIGRpcmVjdGlvbnMuIiwiTm8gIApUaGUgaXNzdWUgbWVudGlvbmVkIGlzIGFib3V0IEdQUyBpbmFjY3VyYWN5LCBhbmQgdGhlcmUncyBubyBpbmRpY2F0aW9uIG9mIGFuIGFjY2lkZW50IG9yIGluanVyeSBpbiB0aGUgdGlja2V0IGRlc2NyaXB0aW9uLiIsIjQgIApUaGlzIGlzc3VlIGltcGFjdHMgdGhlIGNvcmUgZnVuY3Rpb25hbGl0eSBvZiB0aGUgYXBwLCBwb3RlbnRpYWxseSBsZWFkaW5nIHRvIGN1c3RvbWVyIGRpc3NhdGlzZmFjdGlvbiBhbmQgb3BlcmF0aW9uYWwgaW5lZmZpY2llbmNpZXMsIHRodXMgcmVxdWlyaW5nIHByb21wdCBhdHRlbnRpb24uIg0KTm90IGFwcGxpY2FibGUsVmVyeSBwb3NpdGl2ZSxObywiVGhlIHByaW1hcnkgaXNzdWUgaW4gdGhpcyB0aWNrZXQgaXMgbm90IGEgcHJvYmxlbSBvciBjb21wbGFpbnQsIGJ1dCByYXRoZXIgYSBjb21wbGltZW50LiBUaGUgY3VzdG9tZXIgaXMgZXhwcmVzc2luZyBhcHByZWNpYXRpb24gZm9yIHRoZWlyIGRyaXZlcidzIGV4Y2VsbGVudCBuYXZpZ2F0aW9uIGFuZCB0aW1lIG1hbmFnZW1lbnQgc2tpbGxzIGR1cmluZyBydXNoIGhvdXIuIiwxLCJbJ2RyaXZlciBwZXJmb3JtYW5jZScsICdHUFMvcm91dGUnXSIsSSB3YW50IHRvIGNvbXBsaW1lbnQgbXkgZHJpdmVyJ3MgZXhjZWxsZW50IG5hdmlnYXRpb24gYW5kIHRpbWUgbWFuYWdlbWVudCBkdXJpbmcgcnVzaCBob3VyLixZb3UgYXJlIGFuIGV4cGVydCBjdXN0b21lciBzZXJ2aWNlIGFnZW50LixBZ2VudF8xNywxNSxZb3UgYXJlIGFuc3dlcmluZyBxdWVzdGlvbnMgYXMgaWYgeW91IHdlcmUgYSBodW1hbi4gRG8gbm90IGJyZWFrIGNoYXJhY3Rlci4sMCwxLDAsZ3B0LTRvLDAuNSxGYWxzZSwxMDAwLDMsV2hhdCBpcyB0aGUgcHJpbWFyeSBpc3N1ZSBpbiB0aGlzIHRpY2tldD8gVGlja2V0OiBJIHdhbnQgdG8gY29tcGxpbWVudCBteSBkcml2ZXIncyBleGNlbGxlbnQgbmF2aWdhdGlvbiBhbmQgdGltZSBtYW5hZ2VtZW50IGR1cmluZyBydXNoIGhvdXIuLCJZb3UgYXJlIGFuc3dlcmluZyBxdWVzdGlvbnMgYXMgaWYgeW91IHdlcmUgYSBodW1hbi4gRG8gbm90IGJyZWFrIGNoYXJhY3Rlci4gWW91ciB0cmFpdHM6IHsncGVyc29uYSc6ICdZb3UgYXJlIGFuIGV4cGVydCBjdXN0b21lciBzZXJ2aWNlIGFnZW50LicsICd5ZWFyc19leHBlcmllbmNlJzogMTV9IiwiWW91IGFyZSBhbnN3ZXJpbmcgcXVlc3Rpb25zIGFzIGlmIHlvdSB3ZXJlIGEgaHVtYW4uIERvIG5vdCBicmVhayBjaGFyYWN0ZXIuIFlvdXIgdHJhaXRzOiB7J3BlcnNvbmEnOiAnWW91IGFyZSBhbiBleHBlcnQgY3VzdG9tZXIgc2VydmljZSBhZ2VudC4nLCAneWVhcnNfZXhwZXJpZW5jZSc6IDE1fSIsIkNoZWNrIGFsbCBvZiB0aGUgaXNzdWVzIG1lbnRpb25lZCBpbiB0aGlzIHRpY2tldDogSSB3YW50IHRvIGNvbXBsaW1lbnQgbXkgZHJpdmVyJ3MgZXhjZWxsZW50IG5hdmlnYXRpb24gYW5kIHRpbWUgbWFuYWdlbWVudCBkdXJpbmcgcnVzaCBob3VyLgoKICAgIAowOiBzYWZldHkKICAgIAoxOiBjbGVhbmxpbmVzcwogICAgCjI6IGRyaXZlciBwZXJmb3JtYW5jZQogICAgCjM6IEdQUy9yb3V0ZQogICAgCjQ6IGxvc3QgaXRlbQogICAgCjU6IG90aGVyCiAgICAKCgoKCgoKUGxlYXNlIHJlc3BvbmQgb25seSB3aXRoIGEgY29tbWEtc2VwYXJhdGVkIGxpc3Qgb2YgdGhlIGNvZGUgb2YgdGhlIG9wdGlvbnMgdGhhdCBhcHBseSwgd2l0aCBzcXVhcmUgYnJhY2tldHMuIEUuZy4sIFswLCAxLCAzXQoKCkFmdGVyIHRoZSBhbnN3ZXIsIHlvdSBjYW4gcHV0IGEgY29tbWVudCBleHBsYWluaW5nIHlvdXIgY2hvaWNlIG9uIHRoZSBuZXh0IGxpbmUuIiwiT24gYSBzY2FsZSBmcm9tIDAgdG8gNSwgd2hhdCBpcyB0aGUgcHJpb3JpdHkgbGV2ZWwgb2YgdGhpcyB0aWNrZXQ/IFRpY2tldDogSSB3YW50IHRvIGNvbXBsaW1lbnQgbXkgZHJpdmVyJ3MgZXhjZWxsZW50IG5hdmlnYXRpb24gYW5kIHRpbWUgbWFuYWdlbWVudCBkdXJpbmcgcnVzaCBob3VyLgoKMCA6IExvd2VzdAoKMSA6IAoKMiA6IAoKMyA6IAoKNCA6IAoKNSA6IEhpZ2hlc3QKCk9ubHkgMSBvcHRpb24gbWF5IGJlIHNlbGVjdGVkLgoKUmVzcG9uZCBvbmx5IHdpdGggdGhlIGNvZGUgY29ycmVzcG9uZGluZyB0byBvbmUgb2YgdGhlIG9wdGlvbnMuIEUuZy4sICIiMSIiIG9yICIiNSIiIGJ5IGl0c2VsZi4KCkFmdGVyIHRoZSBhbnN3ZXIsIHlvdSBjYW4gcHV0IGEgY29tbWVudCBleHBsYWluaW5nIHdoeSB5b3UgY2hvc2UgdGhhdCBvcHRpb24gb24gdGhlIG5leHQgbGluZS4iLCJZb3UgYXJlIGFuc3dlcmluZyBxdWVzdGlvbnMgYXMgaWYgeW91IHdlcmUgYSBodW1hbi4gRG8gbm90IGJyZWFrIGNoYXJhY3Rlci4gWW91ciB0cmFpdHM6IHsncGVyc29uYSc6ICdZb3UgYXJlIGFuIGV4cGVydCBjdXN0b21lciBzZXJ2aWNlIGFnZW50LicsICd5ZWFyc19leHBlcmllbmNlJzogMTV9IiwiWW91IGFyZSBhbnN3ZXJpbmcgcXVlc3Rpb25zIGFzIGlmIHlvdSB3ZXJlIGEgaHVtYW4uIERvIG5vdCBicmVhayBjaGFyYWN0ZXIuIFlvdXIgdHJhaXRzOiB7J3BlcnNvbmEnOiAnWW91IGFyZSBhbiBleHBlcnQgY3VzdG9tZXIgc2VydmljZSBhZ2VudC4nLCAneWVhcnNfZXhwZXJpZW5jZSc6IDE1fSIsIllvdSBhcmUgYW5zd2VyaW5nIHF1ZXN0aW9ucyBhcyBpZiB5b3Ugd2VyZSBhIGh1bWFuLiBEbyBub3QgYnJlYWsgY2hhcmFjdGVyLiBZb3VyIHRyYWl0czogeydwZXJzb25hJzogJ1lvdSBhcmUgYW4gZXhwZXJ0IGN1c3RvbWVyIHNlcnZpY2UgYWdlbnQuJywgJ3llYXJzX2V4cGVyaWVuY2UnOiAxNX0iLCIKV2hhdCBpcyB0aGUgc2VudGltZW50IG9mIHRoaXMgdGlja2V0PyBUaWNrZXQ6IEkgd2FudCB0byBjb21wbGltZW50IG15IGRyaXZlcidzIGV4Y2VsbGVudCBuYXZpZ2F0aW9uIGFuZCB0aW1lIG1hbmFnZW1lbnQgZHVyaW5nIHJ1c2ggaG91ci4KCiAgICAKVmVyeSBwb3NpdGl2ZQogICAgClNvbWV3aGF0IHBvc2l0aXZlCiAgICAKTmV1dHJhbAogICAgClNvbWV3aGF0IG5lZ2F0aXZlCiAgICAKVmVyeSBuZWdhdGl2ZQogICAgCgpPbmx5IDEgb3B0aW9uIG1heSBiZSBzZWxlY3RlZC4KClJlc3BvbmQgb25seSB3aXRoIGEgc3RyaW5nIGNvcnJlc3BvbmRpbmcgdG8gb25lIG9mIHRoZSBvcHRpb25zLgoKCkFmdGVyIHRoZSBhbnN3ZXIsIHlvdSBjYW4gcHV0IGEgY29tbWVudCBleHBsYWluaW5nIHdoeSB5b3UgY2hvc2UgdGhhdCBvcHRpb24gb24gdGhlIG5leHQgbGluZS4iLCIKRG9lcyB0aGUgY3VzdG9tZXIgYXNrIGZvciBhIHJlZnVuZCBpbiB0aGlzIHRpY2tldD8gVGlja2V0OiBJIHdhbnQgdG8gY29tcGxpbWVudCBteSBkcml2ZXIncyBleGNlbGxlbnQgbmF2aWdhdGlvbiBhbmQgdGltZSBtYW5hZ2VtZW50IGR1cmluZyBydXNoIGhvdXIuCgogICAgCk5vCiAgICAKWWVzCiAgICAKCk9ubHkgMSBvcHRpb24gbWF5IGJlIHNlbGVjdGVkLgpQbGVhc2UgcmVzcG9uZCB3aXRoIGp1c3QgeW91ciBhbnN3ZXIuIAoKCkFmdGVyIHRoZSBhbnN3ZXIsIHlvdSBjYW4gcHV0IGEgY29tbWVudCBleHBsYWluaW5nIHlvdXIgcmVzcG9uc2UuIiwiWW91IGFyZSBhbnN3ZXJpbmcgcXVlc3Rpb25zIGFzIGlmIHlvdSB3ZXJlIGEgaHVtYW4uIERvIG5vdCBicmVhayBjaGFyYWN0ZXIuIFlvdXIgdHJhaXRzOiB7J3BlcnNvbmEnOiAnWW91IGFyZSBhbiBleHBlcnQgY3VzdG9tZXIgc2VydmljZSBhZ2VudC4nLCAneWVhcnNfZXhwZXJpZW5jZSc6IDE1fSIsIgpJZiB0aGUgcHJpbWFyeSBpc3N1ZSBpbiB0aGlzIHRpY2tldCBpcyBzYWZldHksIHdhcyB0aGVyZSBhbiBhY2NpZGVudCB3aGVyZSBzb21lb25lIHdhcyBodXJ0PyBUaWNrZXQ6IEkgd2FudCB0byBjb21wbGltZW50IG15IGRyaXZlcidzIGV4Y2VsbGVudCBuYXZpZ2F0aW9uIGFuZCB0aW1lIG1hbmFnZW1lbnQgZHVyaW5nIHJ1c2ggaG91ci4KCiAgICAKWWVzCiAgICAKTm8KICAgIApOb3QgYXBwbGljYWJsZQogICAgCgpPbmx5IDEgb3B0aW9uIG1heSBiZSBzZWxlY3RlZC4KClJlc3BvbmQgb25seSB3aXRoIGEgc3RyaW5nIGNvcnJlc3BvbmRpbmcgdG8gb25lIG9mIHRoZSBvcHRpb25zLgoKCkFmdGVyIHRoZSBhbnN3ZXIsIHlvdSBjYW4gcHV0IGEgY29tbWVudCBleHBsYWluaW5nIHdoeSB5b3UgY2hvc2UgdGhhdCBvcHRpb24gb24gdGhlIG5leHQgbGluZS4iLDAuMDAwNTUyNSwieydpZCc6ICdjaGF0Y21wbC1BZU9MQ3NGZlpJT3pFdjFsUkt0cEppck5IUjMweScsICdjaG9pY2VzJzogW3snZmluaXNoX3JlYXNvbic6ICdzdG9wJywgJ2luZGV4JzogMCwgJ2xvZ3Byb2JzJzogTm9uZSwgJ21lc3NhZ2UnOiB7J2NvbnRlbnQnOiAiIk5vdCBhcHBsaWNhYmxlXG5cblRoZSB0aWNrZXQgaXMgYSBjb21wbGltZW50IGFib3V0IHRoZSBkcml2ZXIncyBza2lsbHMgYW5kIGRvZXMgbm90IG1lbnRpb24gYW55IHNhZmV0eSBpc3N1ZXMgb3IgYWNjaWRlbnRzLiIiLCAncmVmdXNhbCc6IE5vbmUsICdyb2xlJzogJ2Fzc2lzdGFudCcsICdhdWRpbyc6IE5vbmUsICdmdW5jdGlvbl9jYWxsJzogTm9uZSwgJ3Rvb2xfY2FsbHMnOiBOb25lfX1dLCAnY3JlYXRlZCc6IDE3MzQxOTAwNTAsICdtb2RlbCc6ICdncHQtNG8tMjAyNC0wOC0wNicsICdvYmplY3QnOiAnY2hhdC5jb21wbGV0aW9uJywgJ3NlcnZpY2VfdGllcic6IE5vbmUsICdzeXN0ZW1fZmluZ2VycHJpbnQnOiAnZnBfOWZhYmE5ZjAzOCcsICd1c2FnZSc6IHsnY29tcGxldGlvbl90b2tlbnMnOiAyMiwgJ3Byb21wdF90b2tlbnMnOiAxMzUsICd0b3RhbF90b2tlbnMnOiAxNTcsICdjb21wbGV0aW9uX3Rva2Vuc19kZXRhaWxzJzogeydhY2NlcHRlZF9wcmVkaWN0aW9uX3Rva2Vucyc6IDAsICdhdWRpb190b2tlbnMnOiAwLCAncmVhc29uaW5nX3Rva2Vucyc6IDAsICdyZWplY3RlZF9wcmVkaWN0aW9uX3Rva2Vucyc6IDB9LCAncHJvbXB0X3Rva2Vuc19kZXRhaWxzJzogeydhdWRpb190b2tlbnMnOiAwLCAnY2FjaGVkX3Rva2Vucyc6IDB9fX0iLCJ7J2lkJzogJ2NoYXRjbXBsLUFlT0xDRXRHcEYzVU9XcXVVWHBqSTF1MDN2QllyJywgJ2Nob2ljZXMnOiBbeydmaW5pc2hfcmVhc29uJzogJ3N0b3AnLCAnaW5kZXgnOiAwLCAnbG9ncHJvYnMnOiBOb25lLCAnbWVzc2FnZSc6IHsnY29udGVudCc6ICIiVmVyeSBwb3NpdGl2ZVxuXG5UaGUgdGlja2V0IGV4cHJlc3NlcyBhIGNvbXBsaW1lbnQgYW5kIGFwcHJlY2lhdGlvbiBmb3IgdGhlIGRyaXZlcidzIGV4Y2VsbGVudCBza2lsbHMsIGluZGljYXRpbmcgYSB2ZXJ5IHBvc2l0aXZlIHNlbnRpbWVudC4iIiwgJ3JlZnVzYWwnOiBOb25lLCAncm9sZSc6ICdhc3Npc3RhbnQnLCAnYXVkaW8nOiBOb25lLCAnZnVuY3Rpb25fY2FsbCc6IE5vbmUsICd0b29sX2NhbGxzJzogTm9uZX19XSwgJ2NyZWF0ZWQnOiAxNzM0MTkwMDUwLCAnbW9kZWwnOiAnZ3B0LTRvLTIwMjQtMDgtMDYnLCAnb2JqZWN0JzogJ2NoYXQuY29tcGxldGlvbicsICdzZXJ2aWNlX3RpZXInOiBOb25lLCAnc3lzdGVtX2ZpbmdlcnByaW50JzogJ2ZwX2E3OWQ4ZGFjMWYnLCAndXNhZ2UnOiB7J2NvbXBsZXRpb25fdG9rZW5zJzogMjIsICdwcm9tcHRfdG9rZW5zJzogMTMzLCAndG90YWxfdG9rZW5zJzogMTU1LCAnY29tcGxldGlvbl90b2tlbnNfZGV0YWlscyc6IHsnYWNjZXB0ZWRfcHJlZGljdGlvbl90b2tlbnMnOiAwLCAnYXVkaW9fdG9rZW5zJzogMCwgJ3JlYXNvbmluZ190b2tlbnMnOiAwLCAncmVqZWN0ZWRfcHJlZGljdGlvbl90b2tlbnMnOiAwfSwgJ3Byb21wdF90b2tlbnNfZGV0YWlscyc6IHsnYXVkaW9fdG9rZW5zJzogMCwgJ2NhY2hlZF90b2tlbnMnOiAwfX19IiwxODA5Ljk1NDc1MTEzMTIyMTcsMTgwOS45NTQ3NTExMzEyMjE3LCJ7J2lkJzogJ2NoYXRjbXBsLUFlT0xDMWtFOFMyYmtheUVWY0VkbUhkNElKOXo1JywgJ2Nob2ljZXMnOiBbeydmaW5pc2hfcmVhc29uJzogJ3N0b3AnLCAnaW5kZXgnOiAwLCAnbG9ncHJvYnMnOiBOb25lLCAnbWVzc2FnZSc6IHsnY29udGVudCc6ICIiWzIsIDNdXG5cblRoZSBjb21wbGltZW50IHNwZWNpZmljYWxseSBtZW50aW9ucyB0aGUgZHJpdmVyJ3MgZXhjZWxsZW50IG5hdmlnYXRpb24sIHdoaWNoIHJlbGF0ZXMgdG8gR1BTL3JvdXRlICgzKSwgYW5kIHRpbWUgbWFuYWdlbWVudCwgd2hpY2ggcmVsYXRlcyB0byBkcml2ZXIgcGVyZm9ybWFuY2UgKDIpLiIiLCAncmVmdXNhbCc6IE5vbmUsICdyb2xlJzogJ2Fzc2lzdGFudCcsICdhdWRpbyc6IE5vbmUsICdmdW5jdGlvbl9jYWxsJzogTm9uZSwgJ3Rvb2xfY2FsbHMnOiBOb25lfX1dLCAnY3JlYXRlZCc6IDE3MzQxOTAwNTAsICdtb2RlbCc6ICdncHQtNG8tMjAyNC0wOC0wNicsICdvYmplY3QnOiAnY2hhdC5jb21wbGV0aW9uJywgJ3NlcnZpY2VfdGllcic6IE5vbmUsICdzeXN0ZW1fZmluZ2VycHJpbnQnOiAnZnBfYTc5ZDhkYWMxZicsICd1c2FnZSc6IHsnY29tcGxldGlvbl90b2tlbnMnOiAzNiwgJ3Byb21wdF90b2tlbnMnOiAxNTYsICd0b3RhbF90b2tlbnMnOiAxOTIsICdjb21wbGV0aW9uX3Rva2Vuc19kZXRhaWxzJzogeydhY2NlcHRlZF9wcmVkaWN0aW9uX3Rva2Vucyc6IDAsICdhdWRpb190b2tlbnMnOiAwLCAncmVhc29uaW5nX3Rva2Vucyc6IDAsICdyZWplY3RlZF9wcmVkaWN0aW9uX3Rva2Vucyc6IDB9LCAncHJvbXB0X3Rva2Vuc19kZXRhaWxzJzogeydhdWRpb190b2tlbnMnOiAwLCAnY2FjaGVkX3Rva2Vucyc6IDB9fX0iLDAuMDAwNzE3NSwxNzkzLjcyMTk3MzA5NDE3MDIsMC4wMDA1NTI1LDAuMDAwNzUsInsnaWQnOiAnY2hhdGNtcGwtQWVPTENUOFNEaHpCWmMzV0p6ekxnczVZUGFGQlAnLCAnY2hvaWNlcyc6IFt7J2ZpbmlzaF9yZWFzb24nOiAnc3RvcCcsICdpbmRleCc6IDAsICdsb2dwcm9icyc6IE5vbmUsICdtZXNzYWdlJzogeydjb250ZW50JzogIiJUaGUgcHJpbWFyeSBpc3N1ZSBpbiB0aGlzIHRpY2tldCBpcyBub3QgYSBwcm9ibGVtIG9yIGNvbXBsYWludCwgYnV0IHJhdGhlciBhIGNvbXBsaW1lbnQuIFRoZSBjdXN0b21lciBpcyBleHByZXNzaW5nIGFwcHJlY2lhdGlvbiBmb3IgdGhlaXIgZHJpdmVyJ3MgZXhjZWxsZW50IG5hdmlnYXRpb24gYW5kIHRpbWUgbWFuYWdlbWVudCBza2lsbHMgZHVyaW5nIHJ1c2ggaG91ci4iIiwgJ3JlZnVzYWwnOiBOb25lLCAncm9sZSc6ICdhc3Npc3RhbnQnLCAnYXVkaW8nOiBOb25lLCAnZnVuY3Rpb25fY2FsbCc6IE5vbmUsICd0b29sX2NhbGxzJzogTm9uZX19XSwgJ2NyZWF0ZWQnOiAxNzM0MTkwMDUwLCAnbW9kZWwnOiAnZ3B0LTRvLTIwMjQtMDgtMDYnLCAnb2JqZWN0JzogJ2NoYXQuY29tcGxldGlvbicsICdzZXJ2aWNlX3RpZXInOiBOb25lLCAnc3lzdGVtX2ZpbmdlcnByaW50JzogJ2ZwXzlmYWJhOWYwMzgnLCAndXNhZ2UnOiB7J2NvbXBsZXRpb25fdG9rZW5zJzogMzYsICdwcm9tcHRfdG9rZW5zJzogNzYsICd0b3RhbF90b2tlbnMnOiAxMTIsICdjb21wbGV0aW9uX3Rva2Vuc19kZXRhaWxzJzogeydhY2NlcHRlZF9wcmVkaWN0aW9uX3Rva2Vucyc6IDAsICdhdWRpb190b2tlbnMnOiAwLCAncmVhc29uaW5nX3Rva2Vucyc6IDAsICdyZWplY3RlZF9wcmVkaWN0aW9uX3Rva2Vucyc6IDB9LCAncHJvbXB0X3Rva2Vuc19kZXRhaWxzJzogeydhdWRpb190b2tlbnMnOiAwLCAnY2FjaGVkX3Rva2Vucyc6IDB9fX0iLDAuMDAwNTUsMTgxOC4xODE4MTgxODE4MTgsInsnaWQnOiAnY2hhdGNtcGwtQWVPTERZQ0lTbWo1MkxWZDB6SlhkQURrcFQwZlknLCAnY2hvaWNlcyc6IFt7J2ZpbmlzaF9yZWFzb24nOiAnc3RvcCcsICdpbmRleCc6IDAsICdsb2dwcm9icyc6IE5vbmUsICdtZXNzYWdlJzogeydjb250ZW50JzogIiIxICBcblRoaXMgdGlja2V0IGlzIGEgcG9zaXRpdmUgZmVlZGJhY2sgb3IgY29tcGxpbWVudCwgd2hpY2ggaXMgaW1wb3J0YW50IGZvciBhY2tub3dsZWRnaW5nIGdvb2Qgc2VydmljZSBidXQgZG9lc24ndCByZXF1aXJlIGltbWVkaWF0ZSBhY3Rpb24gb3IgcmVzb2x1dGlvbiBsaWtlIGEgY29tcGxhaW50IG9yIGlzc3VlIHdvdWxkLiIiLCAncmVmdXNhbCc6IE5vbmUsICdyb2xlJzogJ2Fzc2lzdGFudCcsICdhdWRpbyc6IE5vbmUsICdmdW5jdGlvbl9jYWxsJzogTm9uZSwgJ3Rvb2xfY2FsbHMnOiBOb25lfX1dLCAnY3JlYXRlZCc6IDE3MzQxOTAwNTEsICdtb2RlbCc6ICdncHQtNG8tMjAyNC0wOC0wNicsICdvYmplY3QnOiAnY2hhdC5jb21wbGV0aW9uJywgJ3NlcnZpY2VfdGllcic6IE5vbmUsICdzeXN0ZW1fZmluZ2VycHJpbnQnOiAnZnBfZjc4NWViNWY0NycsICd1c2FnZSc6IHsnY29tcGxldGlvbl90b2tlbnMnOiAzMiwgJ3Byb21wdF90b2tlbnMnOiAxNTksICd0b3RhbF90b2tlbnMnOiAxOTEsICdjb21wbGV0aW9uX3Rva2Vuc19kZXRhaWxzJzogeydhY2NlcHRlZF9wcmVkaWN0aW9uX3Rva2Vucyc6IDAsICdhdWRpb190b2tlbnMnOiAwLCAncmVhc29uaW5nX3Rva2Vucyc6IDAsICdyZWplY3RlZF9wcmVkaWN0aW9uX3Rva2Vucyc6IDB9LCAncHJvbXB0X3Rva2Vuc19kZXRhaWxzJzogeydhdWRpb190b2tlbnMnOiAwLCAnY2FjaGVkX3Rva2Vucyc6IDB9fX0iLDEzMzMuMzMzMzMzMzMzMzMzMywxMzkzLjcyODIyMjk5NjUxNTYsMC4wMDA1NTc1LCJ7J2lkJzogJ2NoYXRjbXBsLUFlT0xDTG16NDliSXdaa3BRM3laNHJHZE95R2lHJywgJ2Nob2ljZXMnOiBbeydmaW5pc2hfcmVhc29uJzogJ3N0b3AnLCAnaW5kZXgnOiAwLCAnbG9ncHJvYnMnOiBOb25lLCAnbWVzc2FnZSc6IHsnY29udGVudCc6ICIiTm9cblxuVGhlIGN1c3RvbWVyIGlzIGNvbXBsaW1lbnRpbmcgdGhlIGRyaXZlcidzIHBlcmZvcm1hbmNlLCBpbmRpY2F0aW5nIHNhdGlzZmFjdGlvbiB3aXRoIHRoZSBzZXJ2aWNlIHJhdGhlciB0aGFuIGRpc3NhdGlzZmFjdGlvbiB0aGF0IHdvdWxkIGxlYWQgdG8gYSByZWZ1bmQgcmVxdWVzdC4iIiwgJ3JlZnVzYWwnOiBOb25lLCAncm9sZSc6ICdhc3Npc3RhbnQnLCAnYXVkaW8nOiBOb25lLCAnZnVuY3Rpb25fY2FsbCc6IE5vbmUsICd0b29sX2NhbGxzJzogTm9uZX19XSwgJ2NyZWF0ZWQnOiAxNzM0MTkwMDUwLCAnbW9kZWwnOiAnZ3B0LTRvLTIwMjQtMDgtMDYnLCAnb2JqZWN0JzogJ2NoYXQuY29tcGxldGlvbicsICdzZXJ2aWNlX3RpZXInOiBOb25lLCAnc3lzdGVtX2ZpbmdlcnByaW50JzogJ2ZwX2E3OWQ4ZGFjMWYnLCAndXNhZ2UnOiB7J2NvbXBsZXRpb25fdG9rZW5zJzogMjcsICdwcm9tcHRfdG9rZW5zJzogMTEzLCAndG90YWxfdG9rZW5zJzogMTQwLCAnY29tcGxldGlvbl90b2tlbnNfZGV0YWlscyc6IHsnYWNjZXB0ZWRfcHJlZGljdGlvbl90b2tlbnMnOiAwLCAnYXVkaW9fdG9rZW5zJzogMCwgJ3JlYXNvbmluZ190b2tlbnMnOiAwLCAncmVqZWN0ZWRfcHJlZGljdGlvbl90b2tlbnMnOiAwfSwgJ3Byb21wdF90b2tlbnNfZGV0YWlscyc6IHsnYXVkaW9fdG9rZW5zJzogMCwgJ2NhY2hlZF90b2tlbnMnOiAwfX19IiwwLERvZXMgdGhlIGN1c3RvbWVyIGFzayBmb3IgYSByZWZ1bmQgaW4gdGhpcyB0aWNrZXQ/IFRpY2tldDoge3sgdGlja2V0IH19LCJJZiB0aGUgcHJpbWFyeSBpc3N1ZSBpbiB0aGlzIHRpY2tldCBpcyBzYWZldHksIHdhcyB0aGVyZSBhbiBhY2NpZGVudCB3aGVyZSBzb21lb25lIHdhcyBodXJ0PyBUaWNrZXQ6IHt7IHRpY2tldCB9fSIsV2hhdCBpcyB0aGUgcHJpbWFyeSBpc3N1ZSBpbiB0aGlzIHRpY2tldD8gVGlja2V0OiB7eyB0aWNrZXQgfX0sQ2hlY2sgYWxsIG9mIHRoZSBpc3N1ZXMgbWVudGlvbmVkIGluIHRoaXMgdGlja2V0OiB7eyB0aWNrZXQgfX0sIk9uIGEgc2NhbGUgZnJvbSAwIHRvIDUsIHdoYXQgaXMgdGhlIHByaW9yaXR5IGxldmVsIG9mIHRoaXMgdGlja2V0PyBUaWNrZXQ6IHt7IHRpY2tldCB9fSIsV2hhdCBpcyB0aGUgc2VudGltZW50IG9mIHRoaXMgdGlja2V0PyBUaWNrZXQ6IHt7IHRpY2tldCB9fSwiWydzYWZldHknLCAnY2xlYW5saW5lc3MnLCAnZHJpdmVyIHBlcmZvcm1hbmNlJywgJ0dQUy9yb3V0ZScsICdsb3N0IGl0ZW0nLCAnb3RoZXInXSIsIlsnVmVyeSBwb3NpdGl2ZScsICdTb21ld2hhdCBwb3NpdGl2ZScsICdOZXV0cmFsJywgJ1NvbWV3aGF0IG5lZ2F0aXZlJywgJ1ZlcnkgbmVnYXRpdmUnXSIsLCJbJ05vJywgJ1llcyddIiwiWydZZXMnLCAnTm8nLCAnTm90IGFwcGxpY2FibGUnXSIsIlswLCAxLCAyLCAzLCA0LCA1XSIsbGluZWFyX3NjYWxlLG11bHRpcGxlX2Nob2ljZSxtdWx0aXBsZV9jaG9pY2UseWVzX25vLGZyZWVfdGV4dCxjaGVja2JveCwsIlRoZSBjdXN0b21lciBpcyBjb21wbGltZW50aW5nIHRoZSBkcml2ZXIncyBwZXJmb3JtYW5jZSwgaW5kaWNhdGluZyBzYXRpc2ZhY3Rpb24gd2l0aCB0aGUgc2VydmljZSByYXRoZXIgdGhhbiBkaXNzYXRpc2ZhY3Rpb24gdGhhdCB3b3VsZCBsZWFkIHRvIGEgcmVmdW5kIHJlcXVlc3QuIiwiVGhpcyB0aWNrZXQgaXMgYSBwb3NpdGl2ZSBmZWVkYmFjayBvciBjb21wbGltZW50LCB3aGljaCBpcyBpbXBvcnRhbnQgZm9yIGFja25vd2xlZGdpbmcgZ29vZCBzZXJ2aWNlIGJ1dCBkb2Vzbid0IHJlcXVpcmUgaW1tZWRpYXRlIGFjdGlvbiBvciByZXNvbHV0aW9uIGxpa2UgYSBjb21wbGFpbnQgb3IgaXNzdWUgd291bGQuIiwiVGhlIGNvbXBsaW1lbnQgc3BlY2lmaWNhbGx5IG1lbnRpb25zIHRoZSBkcml2ZXIncyBleGNlbGxlbnQgbmF2aWdhdGlvbiwgd2hpY2ggcmVsYXRlcyB0byBHUFMvcm91dGUgKDMpLCBhbmQgdGltZSBtYW5hZ2VtZW50LCB3aGljaCByZWxhdGVzIHRvIGRyaXZlciBwZXJmb3JtYW5jZSAoMikuIiwiVGhlIHRpY2tldCBleHByZXNzZXMgYSBjb21wbGltZW50IGFuZCBhcHByZWNpYXRpb24gZm9yIHRoZSBkcml2ZXIncyBleGNlbGxlbnQgc2tpbGxzLCBpbmRpY2F0aW5nIGEgdmVyeSBwb3NpdGl2ZSBzZW50aW1lbnQuIixUaGUgdGlja2V0IGlzIGEgY29tcGxpbWVudCBhYm91dCB0aGUgZHJpdmVyJ3Mgc2tpbGxzIGFuZCBkb2VzIG5vdCBtZW50aW9uIGFueSBzYWZldHkgaXNzdWVzIG9yIGFjY2lkZW50cy4sIlZlcnkgcG9zaXRpdmUKClRoZSB0aWNrZXQgZXhwcmVzc2VzIGEgY29tcGxpbWVudCBhbmQgYXBwcmVjaWF0aW9uIGZvciB0aGUgZHJpdmVyJ3MgZXhjZWxsZW50IHNraWxscywgaW5kaWNhdGluZyBhIHZlcnkgcG9zaXRpdmUgc2VudGltZW50LiIsIlsyLCAzXQoKVGhlIGNvbXBsaW1lbnQgc3BlY2lmaWNhbGx5IG1lbnRpb25zIHRoZSBkcml2ZXIncyBleGNlbGxlbnQgbmF2aWdhdGlvbiwgd2hpY2ggcmVsYXRlcyB0byBHUFMvcm91dGUgKDMpLCBhbmQgdGltZSBtYW5hZ2VtZW50LCB3aGljaCByZWxhdGVzIHRvIGRyaXZlciBwZXJmb3JtYW5jZSAoMikuIiwiTm8KClRoZSBjdXN0b21lciBpcyBjb21wbGltZW50aW5nIHRoZSBkcml2ZXIncyBwZXJmb3JtYW5jZSwgaW5kaWNhdGluZyBzYXRpc2ZhY3Rpb24gd2l0aCB0aGUgc2VydmljZSByYXRoZXIgdGhhbiBkaXNzYXRpc2ZhY3Rpb24gdGhhdCB3b3VsZCBsZWFkIHRvIGEgcmVmdW5kIHJlcXVlc3QuIiwiVGhlIHByaW1hcnkgaXNzdWUgaW4gdGhpcyB0aWNrZXQgaXMgbm90IGEgcHJvYmxlbSBvciBjb21wbGFpbnQsIGJ1dCByYXRoZXIgYSBjb21wbGltZW50LiBUaGUgY3VzdG9tZXIgaXMgZXhwcmVzc2luZyBhcHByZWNpYXRpb24gZm9yIHRoZWlyIGRyaXZlcidzIGV4Y2VsbGVudCBuYXZpZ2F0aW9uIGFuZCB0aW1lIG1hbmFnZW1lbnQgc2tpbGxzIGR1cmluZyBydXNoIGhvdXIuIiwiTm90IGFwcGxpY2FibGUKClRoZSB0aWNrZXQgaXMgYSBjb21wbGltZW50IGFib3V0IHRoZSBkcml2ZXIncyBza2lsbHMgYW5kIGRvZXMgbm90IG1lbnRpb24gYW55IHNhZmV0eSBpc3N1ZXMgb3IgYWNjaWRlbnRzLiIsIjEgIApUaGlzIHRpY2tldCBpcyBhIHBvc2l0aXZlIGZlZWRiYWNrIG9yIGNvbXBsaW1lbnQsIHdoaWNoIGlzIGltcG9ydGFudCBmb3IgYWNrbm93bGVkZ2luZyBnb29kIHNlcnZpY2UgYnV0IGRvZXNuJ3QgcmVxdWlyZSBpbW1lZGlhdGUgYWN0aW9uIG9yIHJlc29sdXRpb24gbGlrZSBhIGNvbXBsYWludCBvciBpc3N1ZSB3b3VsZC4iDQpObyxTb21ld2hhdCBuZWdhdGl2ZSxObywiVGhlIHByaW1hcnkgaXNzdWUgaW4gdGhpcyB0aWNrZXQgaXMgdGhhdCB0aGUgdmVoaWNsZSBwcm92aWRlZCBkaWQgbm90IG1hdGNoIHRoZSBkZXNjcmlwdGlvbiBnaXZlbiBpbiB0aGUgYXBwLiBUaGlzIGRpc2NyZXBhbmN5IGNhdXNlZCBjb25mdXNpb24gYW5kIGNvbmNlcm4gZm9yIHRoZSBjdXN0b21lci4gSXQncyBpbXBvcnRhbnQgdG8gYWRkcmVzcyB0aGlzIGJ5IHZlcmlmeWluZyB0aGUgYWNjdXJhY3kgb2YgdmVoaWNsZSBkZXNjcmlwdGlvbnMgaW4gdGhlIGFwcCB0byBlbnN1cmUgdGhleSBhbGlnbiB3aXRoIHdoYXQgaXMgYWN0dWFsbHkgcHJvdmlkZWQsIHRoZXJlYnkgZW5oYW5jaW5nIGN1c3RvbWVyIHRydXN0IGFuZCBzYXRpc2ZhY3Rpb24uIiwzLFsnb3RoZXInXSxUaGUgdmVoaWNsZSBkaWRuJ3QgbWF0Y2ggdGhlIGRlc2NyaXB0aW9uIGluIHRoZSBhcHAuIEl0IHdhcyBjb25mdXNpbmcgYW5kIGNvbmNlcm5pbmcuLFlvdSBhcmUgYW4gZXhwZXJ0IGN1c3RvbWVyIHNlcnZpY2UgYWdlbnQuLEFnZW50XzE4LDE1LFlvdSBhcmUgYW5zd2VyaW5nIHF1ZXN0aW9ucyBhcyBpZiB5b3Ugd2VyZSBhIGh1bWFuLiBEbyBub3QgYnJlYWsgY2hhcmFjdGVyLiwwLDEsMCxncHQtNG8sMC41LEZhbHNlLDEwMDAsMyxXaGF0IGlzIHRoZSBwcmltYXJ5IGlzc3VlIGluIHRoaXMgdGlja2V0PyBUaWNrZXQ6IFRoZSB2ZWhpY2xlIGRpZG4ndCBtYXRjaCB0aGUgZGVzY3JpcHRpb24gaW4gdGhlIGFwcC4gSXQgd2FzIGNvbmZ1c2luZyBhbmQgY29uY2VybmluZy4sIllvdSBhcmUgYW5zd2VyaW5nIHF1ZXN0aW9ucyBhcyBpZiB5b3Ugd2VyZSBhIGh1bWFuLiBEbyBub3QgYnJlYWsgY2hhcmFjdGVyLiBZb3VyIHRyYWl0czogeydwZXJzb25hJzogJ1lvdSBhcmUgYW4gZXhwZXJ0IGN1c3RvbWVyIHNlcnZpY2UgYWdlbnQuJywgJ3llYXJzX2V4cGVyaWVuY2UnOiAxNX0iLCJZb3UgYXJlIGFuc3dlcmluZyBxdWVzdGlvbnMgYXMgaWYgeW91IHdlcmUgYSBodW1hbi4gRG8gbm90IGJyZWFrIGNoYXJhY3Rlci4gWW91ciB0cmFpdHM6IHsncGVyc29uYSc6ICdZb3UgYXJlIGFuIGV4cGVydCBjdXN0b21lciBzZXJ2aWNlIGFnZW50LicsICd5ZWFyc19leHBlcmllbmNlJzogMTV9IiwiQ2hlY2sgYWxsIG9mIHRoZSBpc3N1ZXMgbWVudGlvbmVkIGluIHRoaXMgdGlja2V0OiBUaGUgdmVoaWNsZSBkaWRuJ3QgbWF0Y2ggdGhlIGRlc2NyaXB0aW9uIGluIHRoZSBhcHAuIEl0IHdhcyBjb25mdXNpbmcgYW5kIGNvbmNlcm5pbmcuCgogICAgCjA6IHNhZmV0eQogICAgCjE6IGNsZWFubGluZXNzCiAgICAKMjogZHJpdmVyIHBlcmZvcm1hbmNlCiAgICAKMzogR1BTL3JvdXRlCiAgICAKNDogbG9zdCBpdGVtCiAgICAKNTogb3RoZXIKICAgIAoKCgoKCgpQbGVhc2UgcmVzcG9uZCBvbmx5IHdpdGggYSBjb21tYS1zZXBhcmF0ZWQgbGlzdCBvZiB0aGUgY29kZSBvZiB0aGUgb3B0aW9ucyB0aGF0IGFwcGx5LCB3aXRoIHNxdWFyZSBicmFja2V0cy4gRS5nLiwgWzAsIDEsIDNdCgoKQWZ0ZXIgdGhlIGFuc3dlciwgeW91IGNhbiBwdXQgYSBjb21tZW50IGV4cGxhaW5pbmcgeW91ciBjaG9pY2Ugb24gdGhlIG5leHQgbGluZS4iLCJPbiBhIHNjYWxlIGZyb20gMCB0byA1LCB3aGF0IGlzIHRoZSBwcmlvcml0eSBsZXZlbCBvZiB0aGlzIHRpY2tldD8gVGlja2V0OiBUaGUgdmVoaWNsZSBkaWRuJ3QgbWF0Y2ggdGhlIGRlc2NyaXB0aW9uIGluIHRoZSBhcHAuIEl0IHdhcyBjb25mdXNpbmcgYW5kIGNvbmNlcm5pbmcuCgowIDogTG93ZXN0CgoxIDogCgoyIDogCgozIDogCgo0IDogCgo1IDogSGlnaGVzdAoKT25seSAxIG9wdGlvbiBtYXkgYmUgc2VsZWN0ZWQuCgpSZXNwb25kIG9ubHkgd2l0aCB0aGUgY29kZSBjb3JyZXNwb25kaW5nIHRvIG9uZSBvZiB0aGUgb3B0aW9ucy4gRS5nLiwgIiIxIiIgb3IgIiI1IiIgYnkgaXRzZWxmLgoKQWZ0ZXIgdGhlIGFuc3dlciwgeW91IGNhbiBwdXQgYSBjb21tZW50IGV4cGxhaW5pbmcgd2h5IHlvdSBjaG9zZSB0aGF0IG9wdGlvbiBvbiB0aGUgbmV4dCBsaW5lLiIsIllvdSBhcmUgYW5zd2VyaW5nIHF1ZXN0aW9ucyBhcyBpZiB5b3Ugd2VyZSBhIGh1bWFuLiBEbyBub3QgYnJlYWsgY2hhcmFjdGVyLiBZb3VyIHRyYWl0czogeydwZXJzb25hJzogJ1lvdSBhcmUgYW4gZXhwZXJ0IGN1c3RvbWVyIHNlcnZpY2UgYWdlbnQuJywgJ3llYXJzX2V4cGVyaWVuY2UnOiAxNX0iLCJZb3UgYXJlIGFuc3dlcmluZyBxdWVzdGlvbnMgYXMgaWYgeW91IHdlcmUgYSBodW1hbi4gRG8gbm90IGJyZWFrIGNoYXJhY3Rlci4gWW91ciB0cmFpdHM6IHsncGVyc29uYSc6ICdZb3UgYXJlIGFuIGV4cGVydCBjdXN0b21lciBzZXJ2aWNlIGFnZW50LicsICd5ZWFyc19leHBlcmllbmNlJzogMTV9IiwiWW91IGFyZSBhbnN3ZXJpbmcgcXVlc3Rpb25zIGFzIGlmIHlvdSB3ZXJlIGEgaHVtYW4uIERvIG5vdCBicmVhayBjaGFyYWN0ZXIuIFlvdXIgdHJhaXRzOiB7J3BlcnNvbmEnOiAnWW91IGFyZSBhbiBleHBlcnQgY3VzdG9tZXIgc2VydmljZSBhZ2VudC4nLCAneWVhcnNfZXhwZXJpZW5jZSc6IDE1fSIsIgpXaGF0IGlzIHRoZSBzZW50aW1lbnQgb2YgdGhpcyB0aWNrZXQ/IFRpY2tldDogVGhlIHZlaGljbGUgZGlkbid0IG1hdGNoIHRoZSBkZXNjcmlwdGlvbiBpbiB0aGUgYXBwLiBJdCB3YXMgY29uZnVzaW5nIGFuZCBjb25jZXJuaW5nLgoKICAgIApWZXJ5IHBvc2l0aXZlCiAgICAKU29tZXdoYXQgcG9zaXRpdmUKICAgIApOZXV0cmFsCiAgICAKU29tZXdoYXQgbmVnYXRpdmUKICAgIApWZXJ5IG5lZ2F0aXZlCiAgICAKCk9ubHkgMSBvcHRpb24gbWF5IGJlIHNlbGVjdGVkLgoKUmVzcG9uZCBvbmx5IHdpdGggYSBzdHJpbmcgY29ycmVzcG9uZGluZyB0byBvbmUgb2YgdGhlIG9wdGlvbnMuCgoKQWZ0ZXIgdGhlIGFuc3dlciwgeW91IGNhbiBwdXQgYSBjb21tZW50IGV4cGxhaW5pbmcgd2h5IHlvdSBjaG9zZSB0aGF0IG9wdGlvbiBvbiB0aGUgbmV4dCBsaW5lLiIsIgpEb2VzIHRoZSBjdXN0b21lciBhc2sgZm9yIGEgcmVmdW5kIGluIHRoaXMgdGlja2V0PyBUaWNrZXQ6IFRoZSB2ZWhpY2xlIGRpZG4ndCBtYXRjaCB0aGUgZGVzY3JpcHRpb24gaW4gdGhlIGFwcC4gSXQgd2FzIGNvbmZ1c2luZyBhbmQgY29uY2VybmluZy4KCiAgICAKTm8KICAgIApZZXMKICAgIAoKT25seSAxIG9wdGlvbiBtYXkgYmUgc2VsZWN0ZWQuClBsZWFzZSByZXNwb25kIHdpdGgganVzdCB5b3VyIGFuc3dlci4gCgoKQWZ0ZXIgdGhlIGFuc3dlciwgeW91IGNhbiBwdXQgYSBjb21tZW50IGV4cGxhaW5pbmcgeW91ciByZXNwb25zZS4iLCJZb3UgYXJlIGFuc3dlcmluZyBxdWVzdGlvbnMgYXMgaWYgeW91IHdlcmUgYSBodW1hbi4gRG8gbm90IGJyZWFrIGNoYXJhY3Rlci4gWW91ciB0cmFpdHM6IHsncGVyc29uYSc6ICdZb3UgYXJlIGFuIGV4cGVydCBjdXN0b21lciBzZXJ2aWNlIGFnZW50LicsICd5ZWFyc19leHBlcmllbmNlJzogMTV9IiwiCklmIHRoZSBwcmltYXJ5IGlzc3VlIGluIHRoaXMgdGlja2V0IGlzIHNhZmV0eSwgd2FzIHRoZXJlIGFuIGFjY2lkZW50IHdoZXJlIHNvbWVvbmUgd2FzIGh1cnQ/IFRpY2tldDogVGhlIHZlaGljbGUgZGlkbid0IG1hdGNoIHRoZSBkZXNjcmlwdGlvbiBpbiB0aGUgYXBwLiBJdCB3YXMgY29uZnVzaW5nIGFuZCBjb25jZXJuaW5nLgoKICAgIApZZXMKICAgIApObwogICAgCk5vdCBhcHBsaWNhYmxlCiAgICAKCk9ubHkgMSBvcHRpb24gbWF5IGJlIHNlbGVjdGVkLgoKUmVzcG9uZCBvbmx5IHdpdGggYSBzdHJpbmcgY29ycmVzcG9uZGluZyB0byBvbmUgb2YgdGhlIG9wdGlvbnMuCgoKQWZ0ZXIgdGhlIGFuc3dlciwgeW91IGNhbiBwdXQgYSBjb21tZW50IGV4cGxhaW5pbmcgd2h5IHlvdSBjaG9zZSB0aGF0IG9wdGlvbiBvbiB0aGUgbmV4dCBsaW5lLiIsMC4wMDA1NDUsInsnaWQnOiAnY2hhdGNtcGwtQWVPTENtT2xuTjF1MnMzdWR3NXQ5V2wxRU51Y3QnLCAnY2hvaWNlcyc6IFt7J2ZpbmlzaF9yZWFzb24nOiAnc3RvcCcsICdpbmRleCc6IDAsICdsb2dwcm9icyc6IE5vbmUsICdtZXNzYWdlJzogeydjb250ZW50JzogIiJObyAgXG5UaGUgdGlja2V0IG1lbnRpb25zIGEgZGlzY3JlcGFuY3kgaW4gdmVoaWNsZSBkZXNjcmlwdGlvbiwgd2hpY2ggaXMgY29uY2VybmluZyBidXQgZG9lc24ndCBpbmRpY2F0ZSBhbiBhY2NpZGVudCBvciBpbmp1cnkuIiIsICdyZWZ1c2FsJzogTm9uZSwgJ3JvbGUnOiAnYXNzaXN0YW50JywgJ2F1ZGlvJzogTm9uZSwgJ2Z1bmN0aW9uX2NhbGwnOiBOb25lLCAndG9vbF9jYWxscyc6IE5vbmV9fV0sICdjcmVhdGVkJzogMTczNDE5MDA1MCwgJ21vZGVsJzogJ2dwdC00by0yMDI0LTA4LTA2JywgJ29iamVjdCc6ICdjaGF0LmNvbXBsZXRpb24nLCAnc2VydmljZV90aWVyJzogTm9uZSwgJ3N5c3RlbV9maW5nZXJwcmludCc6ICdmcF9hNzlkOGRhYzFmJywgJ3VzYWdlJzogeydjb21wbGV0aW9uX3Rva2Vucyc6IDIyLCAncHJvbXB0X3Rva2Vucyc6IDEzNiwgJ3RvdGFsX3Rva2Vucyc6IDE1OCwgJ2NvbXBsZXRpb25fdG9rZW5zX2RldGFpbHMnOiB7J2FjY2VwdGVkX3ByZWRpY3Rpb25fdG9rZW5zJzogMCwgJ2F1ZGlvX3Rva2Vucyc6IDAsICdyZWFzb25pbmdfdG9rZW5zJzogMCwgJ3JlamVjdGVkX3ByZWRpY3Rpb25fdG9rZW5zJzogMH0sICdwcm9tcHRfdG9rZW5zX2RldGFpbHMnOiB7J2F1ZGlvX3Rva2Vucyc6IDAsICdjYWNoZWRfdG9rZW5zJzogMH19fSIsInsnaWQnOiAnY2hhdGNtcGwtQWVPTERKMWhJbmlJMGxJYXlFUlYxUmt3ajFiNDcnLCAnY2hvaWNlcyc6IFt7J2ZpbmlzaF9yZWFzb24nOiAnc3RvcCcsICdpbmRleCc6IDAsICdsb2dwcm9icyc6IE5vbmUsICdtZXNzYWdlJzogeydjb250ZW50JzogJ1NvbWV3aGF0IG5lZ2F0aXZlICBcblRoZSB0aWNrZXQgZXhwcmVzc2VzIGNvbmZ1c2lvbiBhbmQgY29uY2VybiwgaW5kaWNhdGluZyBkaXNzYXRpc2ZhY3Rpb24gd2l0aCB0aGUgdmVoaWNsZSBub3QgbWF0Y2hpbmcgdGhlIGRlc2NyaXB0aW9uLicsICdyZWZ1c2FsJzogTm9uZSwgJ3JvbGUnOiAnYXNzaXN0YW50JywgJ2F1ZGlvJzogTm9uZSwgJ2Z1bmN0aW9uX2NhbGwnOiBOb25lLCAndG9vbF9jYWxscyc6IE5vbmV9fV0sICdjcmVhdGVkJzogMTczNDE5MDA1MSwgJ21vZGVsJzogJ2dwdC00by0yMDI0LTA4LTA2JywgJ29iamVjdCc6ICdjaGF0LmNvbXBsZXRpb24nLCAnc2VydmljZV90aWVyJzogTm9uZSwgJ3N5c3RlbV9maW5nZXJwcmludCc6ICdmcF85ZmFiYTlmMDM4JywgJ3VzYWdlJzogeydjb21wbGV0aW9uX3Rva2Vucyc6IDIxLCAncHJvbXB0X3Rva2Vucyc6IDEzNCwgJ3RvdGFsX3Rva2Vucyc6IDE1NSwgJ2NvbXBsZXRpb25fdG9rZW5zX2RldGFpbHMnOiB7J2FjY2VwdGVkX3ByZWRpY3Rpb25fdG9rZW5zJzogMCwgJ2F1ZGlvX3Rva2Vucyc6IDAsICdyZWFzb25pbmdfdG9rZW5zJzogMCwgJ3JlamVjdGVkX3ByZWRpY3Rpb25fdG9rZW5zJzogMH0sICdwcm9tcHRfdG9rZW5zX2RldGFpbHMnOiB7J2F1ZGlvX3Rva2Vucyc6IDAsICdjYWNoZWRfdG9rZW5zJzogMH19fSIsMTgzNC44NjIzODUzMjExMDA5LDE3MzkuMTMwNDM0NzgyNjA4NywieydpZCc6ICdjaGF0Y21wbC1BZU9MQ2lncFRsaEQ3Q2JxdWIycXlxbUZ6REozaCcsICdjaG9pY2VzJzogW3snZmluaXNoX3JlYXNvbic6ICdzdG9wJywgJ2luZGV4JzogMCwgJ2xvZ3Byb2JzJzogTm9uZSwgJ21lc3NhZ2UnOiB7J2NvbnRlbnQnOiAnWzVdICBcblRoZSBpc3N1ZSBtZW50aW9uZWQgaXMgdGhhdCB0aGUgdmVoaWNsZSBkaWRuXCd0IG1hdGNoIHRoZSBkZXNjcmlwdGlvbiBpbiB0aGUgYXBwLCB3aGljaCBmYWxscyB1bmRlciAiIm90aGVyIiIgY29uY2VybnMuJywgJ3JlZnVzYWwnOiBOb25lLCAncm9sZSc6ICdhc3Npc3RhbnQnLCAnYXVkaW8nOiBOb25lLCAnZnVuY3Rpb25fY2FsbCc6IE5vbmUsICd0b29sX2NhbGxzJzogTm9uZX19XSwgJ2NyZWF0ZWQnOiAxNzM0MTkwMDUwLCAnbW9kZWwnOiAnZ3B0LTRvLTIwMjQtMDgtMDYnLCAnb2JqZWN0JzogJ2NoYXQuY29tcGxldGlvbicsICdzZXJ2aWNlX3RpZXInOiBOb25lLCAnc3lzdGVtX2ZpbmdlcnByaW50JzogJ2ZwX2E3OWQ4ZGFjMWYnLCAndXNhZ2UnOiB7J2NvbXBsZXRpb25fdG9rZW5zJzogMjcsICdwcm9tcHRfdG9rZW5zJzogMTU3LCAndG90YWxfdG9rZW5zJzogMTg0LCAnY29tcGxldGlvbl90b2tlbnNfZGV0YWlscyc6IHsnYWNjZXB0ZWRfcHJlZGljdGlvbl90b2tlbnMnOiAwLCAnYXVkaW9fdG9rZW5zJzogMCwgJ3JlYXNvbmluZ190b2tlbnMnOiAwLCAncmVqZWN0ZWRfcHJlZGljdGlvbl90b2tlbnMnOiAwfSwgJ3Byb21wdF90b2tlbnNfZGV0YWlscyc6IHsnYXVkaW9fdG9rZW5zJzogMCwgJ2NhY2hlZF90b2tlbnMnOiAwfX19IiwwLjAwMDgyLDE3ODUuNzE0Mjg1NzE0Mjg1NiwwLjAwMDU3NSwwLjAwMDY2MjUsInsnaWQnOiAnY2hhdGNtcGwtQWVPTENnMTNGWTJIVnNwWDd4TzRSSlAybXczR2knLCAnY2hvaWNlcyc6IFt7J2ZpbmlzaF9yZWFzb24nOiAnc3RvcCcsICdpbmRleCc6IDAsICdsb2dwcm9icyc6IE5vbmUsICdtZXNzYWdlJzogeydjb250ZW50JzogIiJUaGUgcHJpbWFyeSBpc3N1ZSBpbiB0aGlzIHRpY2tldCBpcyB0aGF0IHRoZSB2ZWhpY2xlIHByb3ZpZGVkIGRpZCBub3QgbWF0Y2ggdGhlIGRlc2NyaXB0aW9uIGdpdmVuIGluIHRoZSBhcHAuIFRoaXMgZGlzY3JlcGFuY3kgY2F1c2VkIGNvbmZ1c2lvbiBhbmQgY29uY2VybiBmb3IgdGhlIGN1c3RvbWVyLiBJdCdzIGltcG9ydGFudCB0byBhZGRyZXNzIHRoaXMgYnkgdmVyaWZ5aW5nIHRoZSBhY2N1cmFjeSBvZiB2ZWhpY2xlIGRlc2NyaXB0aW9ucyBpbiB0aGUgYXBwIHRvIGVuc3VyZSB0aGV5IGFsaWduIHdpdGggd2hhdCBpcyBhY3R1YWxseSBwcm92aWRlZCwgdGhlcmVieSBlbmhhbmNpbmcgY3VzdG9tZXIgdHJ1c3QgYW5kIHNhdGlzZmFjdGlvbi4iIiwgJ3JlZnVzYWwnOiBOb25lLCAncm9sZSc6ICdhc3Npc3RhbnQnLCAnYXVkaW8nOiBOb25lLCAnZnVuY3Rpb25fY2FsbCc6IE5vbmUsICd0b29sX2NhbGxzJzogTm9uZX19XSwgJ2NyZWF0ZWQnOiAxNzM0MTkwMDUwLCAnbW9kZWwnOiAnZ3B0LTRvLTIwMjQtMDgtMDYnLCAnb2JqZWN0JzogJ2NoYXQuY29tcGxldGlvbicsICdzZXJ2aWNlX3RpZXInOiBOb25lLCAnc3lzdGVtX2ZpbmdlcnByaW50JzogJ2ZwX2E3OWQ4ZGFjMWYnLCAndXNhZ2UnOiB7J2NvbXBsZXRpb25fdG9rZW5zJzogNjMsICdwcm9tcHRfdG9rZW5zJzogNzcsICd0b3RhbF90b2tlbnMnOiAxNDAsICdjb21wbGV0aW9uX3Rva2Vuc19kZXRhaWxzJzogeydhY2NlcHRlZF9wcmVkaWN0aW9uX3Rva2Vucyc6IDAsICdhdWRpb190b2tlbnMnOiAwLCAncmVhc29uaW5nX3Rva2Vucyc6IDAsICdyZWplY3RlZF9wcmVkaWN0aW9uX3Rva2Vucyc6IDB9LCAncHJvbXB0X3Rva2Vuc19kZXRhaWxzJzogeydhdWRpb190b2tlbnMnOiAwLCAnY2FjaGVkX3Rva2Vucyc6IDB9fX0iLDAuMDAwODIyNSwxMjE1LjgwNTQ3MTEyNDYyLCJ7J2lkJzogJ2NoYXRjbXBsLUFlT0xEam1haEVmQ0JGYzFTRVRjS25yand6NTN6JywgJ2Nob2ljZXMnOiBbeydmaW5pc2hfcmVhc29uJzogJ3N0b3AnLCAnaW5kZXgnOiAwLCAnbG9ncHJvYnMnOiBOb25lLCAnbWVzc2FnZSc6IHsnY29udGVudCc6ICczICBcblRoaXMgdGlja2V0IGludm9sdmVzIGEgZGlzY3JlcGFuY3kgdGhhdCBjb3VsZCBwb3RlbnRpYWxseSBhZmZlY3QgY3VzdG9tZXIgdHJ1c3QgYW5kIHNhZmV0eSwgc28gaXQgcmVxdWlyZXMgcHJvbXB0IGF0dGVudGlvbi4gSG93ZXZlciwgaXQgZG9lcyBub3QgaW5kaWNhdGUgYW4gaW1tZWRpYXRlIGRhbmdlciBvciBlbWVyZ2VuY3ksIHNvIGl0IGlzIG5vdCB0aGUgaGlnaGVzdCBwcmlvcml0eS4nLCAncmVmdXNhbCc6IE5vbmUsICdyb2xlJzogJ2Fzc2lzdGFudCcsICdhdWRpbyc6IE5vbmUsICdmdW5jdGlvbl9jYWxsJzogTm9uZSwgJ3Rvb2xfY2FsbHMnOiBOb25lfX1dLCAnY3JlYXRlZCc6IDE3MzQxOTAwNTEsICdtb2RlbCc6ICdncHQtNG8tMjAyNC0wOC0wNicsICdvYmplY3QnOiAnY2hhdC5jb21wbGV0aW9uJywgJ3NlcnZpY2VfdGllcic6IE5vbmUsICdzeXN0ZW1fZmluZ2VycHJpbnQnOiAnZnBfYTc5ZDhkYWMxZicsICd1c2FnZSc6IHsnY29tcGxldGlvbl90b2tlbnMnOiA0MiwgJ3Byb21wdF90b2tlbnMnOiAxNjAsICd0b3RhbF90b2tlbnMnOiAyMDIsICdjb21wbGV0aW9uX3Rva2Vuc19kZXRhaWxzJzogeydhY2NlcHRlZF9wcmVkaWN0aW9uX3Rva2Vucyc6IDAsICdhdWRpb190b2tlbnMnOiAwLCAncmVhc29uaW5nX3Rva2Vucyc6IDAsICdyZWplY3RlZF9wcmVkaWN0aW9uX3Rva2Vucyc6IDB9LCAncHJvbXB0X3Rva2Vuc19kZXRhaWxzJzogeydhdWRpb190b2tlbnMnOiAwLCAnY2FjaGVkX3Rva2Vucyc6IDB9fX0iLDE1MDkuNDMzOTYyMjY0MTUxLDEyMTkuNTEyMTk1MTIxOTUxMiwwLjAwMDU2MDAwMDAwMDAwMDAwMDEsInsnaWQnOiAnY2hhdGNtcGwtQWVPTENsa2c1ZUdsV3ZiS3FENzRHQWN5bzVwc00nLCAnY2hvaWNlcyc6IFt7J2ZpbmlzaF9yZWFzb24nOiAnc3RvcCcsICdpbmRleCc6IDAsICdsb2dwcm9icyc6IE5vbmUsICdtZXNzYWdlJzogeydjb250ZW50JzogJ05vXG5cblRoZSBjdXN0b21lciBleHByZXNzZWQgY29uZnVzaW9uIGFuZCBjb25jZXJuIGFib3V0IHRoZSB2ZWhpY2xlIG5vdCBtYXRjaGluZyB0aGUgZGVzY3JpcHRpb24sIGJ1dCB0aGVyZSBpcyBubyBleHBsaWNpdCByZXF1ZXN0IGZvciBhIHJlZnVuZCBpbiB0aGUgdGlja2V0LicsICdyZWZ1c2FsJzogTm9uZSwgJ3JvbGUnOiAnYXNzaXN0YW50JywgJ2F1ZGlvJzogTm9uZSwgJ2Z1bmN0aW9uX2NhbGwnOiBOb25lLCAndG9vbF9jYWxscyc6IE5vbmV9fV0sICdjcmVhdGVkJzogMTczNDE5MDA1MCwgJ21vZGVsJzogJ2dwdC00by0yMDI0LTA4LTA2JywgJ29iamVjdCc6ICdjaGF0LmNvbXBsZXRpb24nLCAnc2VydmljZV90aWVyJzogTm9uZSwgJ3N5c3RlbV9maW5nZXJwcmludCc6ICdmcF9hNzlkOGRhYzFmJywgJ3VzYWdlJzogeydjb21wbGV0aW9uX3Rva2Vucyc6IDI5LCAncHJvbXB0X3Rva2Vucyc6IDExNCwgJ3RvdGFsX3Rva2Vucyc6IDE0MywgJ2NvbXBsZXRpb25fdG9rZW5zX2RldGFpbHMnOiB7J2FjY2VwdGVkX3ByZWRpY3Rpb25fdG9rZW5zJzogMCwgJ2F1ZGlvX3Rva2Vucyc6IDAsICdyZWFzb25pbmdfdG9rZW5zJzogMCwgJ3JlamVjdGVkX3ByZWRpY3Rpb25fdG9rZW5zJzogMH0sICdwcm9tcHRfdG9rZW5zX2RldGFpbHMnOiB7J2F1ZGlvX3Rva2Vucyc6IDAsICdjYWNoZWRfdG9rZW5zJzogMH19fSIsMCxEb2VzIHRoZSBjdXN0b21lciBhc2sgZm9yIGEgcmVmdW5kIGluIHRoaXMgdGlja2V0PyBUaWNrZXQ6IHt7IHRpY2tldCB9fSwiSWYgdGhlIHByaW1hcnkgaXNzdWUgaW4gdGhpcyB0aWNrZXQgaXMgc2FmZXR5LCB3YXMgdGhlcmUgYW4gYWNjaWRlbnQgd2hlcmUgc29tZW9uZSB3YXMgaHVydD8gVGlja2V0OiB7eyB0aWNrZXQgfX0iLFdoYXQgaXMgdGhlIHByaW1hcnkgaXNzdWUgaW4gdGhpcyB0aWNrZXQ/IFRpY2tldDoge3sgdGlja2V0IH19LENoZWNrIGFsbCBvZiB0aGUgaXNzdWVzIG1lbnRpb25lZCBpbiB0aGlzIHRpY2tldDoge3sgdGlja2V0IH19LCJPbiBhIHNjYWxlIGZyb20gMCB0byA1LCB3aGF0IGlzIHRoZSBwcmlvcml0eSBsZXZlbCBvZiB0aGlzIHRpY2tldD8gVGlja2V0OiB7eyB0aWNrZXQgfX0iLFdoYXQgaXMgdGhlIHNlbnRpbWVudCBvZiB0aGlzIHRpY2tldD8gVGlja2V0OiB7eyB0aWNrZXQgfX0sIlsnc2FmZXR5JywgJ2NsZWFubGluZXNzJywgJ2RyaXZlciBwZXJmb3JtYW5jZScsICdHUFMvcm91dGUnLCAnbG9zdCBpdGVtJywgJ290aGVyJ10iLCJbJ1ZlcnkgcG9zaXRpdmUnLCAnU29tZXdoYXQgcG9zaXRpdmUnLCAnTmV1dHJhbCcsICdTb21ld2hhdCBuZWdhdGl2ZScsICdWZXJ5IG5lZ2F0aXZlJ10iLCwiWydObycsICdZZXMnXSIsIlsnWWVzJywgJ05vJywgJ05vdCBhcHBsaWNhYmxlJ10iLCJbMCwgMSwgMiwgMywgNCwgNV0iLGxpbmVhcl9zY2FsZSxtdWx0aXBsZV9jaG9pY2UsbXVsdGlwbGVfY2hvaWNlLHllc19ubyxmcmVlX3RleHQsY2hlY2tib3gsLCJUaGUgY3VzdG9tZXIgZXhwcmVzc2VkIGNvbmZ1c2lvbiBhbmQgY29uY2VybiBhYm91dCB0aGUgdmVoaWNsZSBub3QgbWF0Y2hpbmcgdGhlIGRlc2NyaXB0aW9uLCBidXQgdGhlcmUgaXMgbm8gZXhwbGljaXQgcmVxdWVzdCBmb3IgYSByZWZ1bmQgaW4gdGhlIHRpY2tldC4iLCJUaGlzIHRpY2tldCBpbnZvbHZlcyBhIGRpc2NyZXBhbmN5IHRoYXQgY291bGQgcG90ZW50aWFsbHkgYWZmZWN0IGN1c3RvbWVyIHRydXN0IGFuZCBzYWZldHksIHNvIGl0IHJlcXVpcmVzIHByb21wdCBhdHRlbnRpb24uIEhvd2V2ZXIsIGl0IGRvZXMgbm90IGluZGljYXRlIGFuIGltbWVkaWF0ZSBkYW5nZXIgb3IgZW1lcmdlbmN5LCBzbyBpdCBpcyBub3QgdGhlIGhpZ2hlc3QgcHJpb3JpdHkuIiwiVGhlIGlzc3VlIG1lbnRpb25lZCBpcyB0aGF0IHRoZSB2ZWhpY2xlIGRpZG4ndCBtYXRjaCB0aGUgZGVzY3JpcHRpb24gaW4gdGhlIGFwcCwgd2hpY2ggZmFsbHMgdW5kZXIgIiJvdGhlciIiIGNvbmNlcm5zLiIsIlRoZSB0aWNrZXQgZXhwcmVzc2VzIGNvbmZ1c2lvbiBhbmQgY29uY2VybiwgaW5kaWNhdGluZyBkaXNzYXRpc2ZhY3Rpb24gd2l0aCB0aGUgdmVoaWNsZSBub3QgbWF0Y2hpbmcgdGhlIGRlc2NyaXB0aW9uLiIsIlRoZSB0aWNrZXQgbWVudGlvbnMgYSBkaXNjcmVwYW5jeSBpbiB2ZWhpY2xlIGRlc2NyaXB0aW9uLCB3aGljaCBpcyBjb25jZXJuaW5nIGJ1dCBkb2Vzbid0IGluZGljYXRlIGFuIGFjY2lkZW50IG9yIGluanVyeS4iLCJTb21ld2hhdCBuZWdhdGl2ZSAgClRoZSB0aWNrZXQgZXhwcmVzc2VzIGNvbmZ1c2lvbiBhbmQgY29uY2VybiwgaW5kaWNhdGluZyBkaXNzYXRpc2ZhY3Rpb24gd2l0aCB0aGUgdmVoaWNsZSBub3QgbWF0Y2hpbmcgdGhlIGRlc2NyaXB0aW9uLiIsIls1XSAgClRoZSBpc3N1ZSBtZW50aW9uZWQgaXMgdGhhdCB0aGUgdmVoaWNsZSBkaWRuJ3QgbWF0Y2ggdGhlIGRlc2NyaXB0aW9uIGluIHRoZSBhcHAsIHdoaWNoIGZhbGxzIHVuZGVyICIib3RoZXIiIiBjb25jZXJucy4iLCJObwoKVGhlIGN1c3RvbWVyIGV4cHJlc3NlZCBjb25mdXNpb24gYW5kIGNvbmNlcm4gYWJvdXQgdGhlIHZlaGljbGUgbm90IG1hdGNoaW5nIHRoZSBkZXNjcmlwdGlvbiwgYnV0IHRoZXJlIGlzIG5vIGV4cGxpY2l0IHJlcXVlc3QgZm9yIGEgcmVmdW5kIGluIHRoZSB0aWNrZXQuIiwiVGhlIHByaW1hcnkgaXNzdWUgaW4gdGhpcyB0aWNrZXQgaXMgdGhhdCB0aGUgdmVoaWNsZSBwcm92aWRlZCBkaWQgbm90IG1hdGNoIHRoZSBkZXNjcmlwdGlvbiBnaXZlbiBpbiB0aGUgYXBwLiBUaGlzIGRpc2NyZXBhbmN5IGNhdXNlZCBjb25mdXNpb24gYW5kIGNvbmNlcm4gZm9yIHRoZSBjdXN0b21lci4gSXQncyBpbXBvcnRhbnQgdG8gYWRkcmVzcyB0aGlzIGJ5IHZlcmlmeWluZyB0aGUgYWNjdXJhY3kgb2YgdmVoaWNsZSBkZXNjcmlwdGlvbnMgaW4gdGhlIGFwcCB0byBlbnN1cmUgdGhleSBhbGlnbiB3aXRoIHdoYXQgaXMgYWN0dWFsbHkgcHJvdmlkZWQsIHRoZXJlYnkgZW5oYW5jaW5nIGN1c3RvbWVyIHRydXN0IGFuZCBzYXRpc2ZhY3Rpb24uIiwiTm8gIApUaGUgdGlja2V0IG1lbnRpb25zIGEgZGlzY3JlcGFuY3kgaW4gdmVoaWNsZSBkZXNjcmlwdGlvbiwgd2hpY2ggaXMgY29uY2VybmluZyBidXQgZG9lc24ndCBpbmRpY2F0ZSBhbiBhY2NpZGVudCBvciBpbmp1cnkuIiwiMyAgClRoaXMgdGlja2V0IGludm9sdmVzIGEgZGlzY3JlcGFuY3kgdGhhdCBjb3VsZCBwb3RlbnRpYWxseSBhZmZlY3QgY3VzdG9tZXIgdHJ1c3QgYW5kIHNhZmV0eSwgc28gaXQgcmVxdWlyZXMgcHJvbXB0IGF0dGVudGlvbi4gSG93ZXZlciwgaXQgZG9lcyBub3QgaW5kaWNhdGUgYW4gaW1tZWRpYXRlIGRhbmdlciBvciBlbWVyZ2VuY3ksIHNvIGl0IGlzIG5vdCB0aGUgaGlnaGVzdCBwcmlvcml0eS4iDQpOb3QgYXBwbGljYWJsZSxOZXV0cmFsLE5vLFRoZSBwcmltYXJ5IGlzc3VlIGluIHRoaXMgdGlja2V0IGlzIGEgcHJvYmxlbSB3aXRoIHBheW1lbnQgcHJvY2Vzc2luZyBhZnRlciB0aGUgY3VzdG9tZXIncyBsYXN0IHJpZGUuIFRoZSBjdXN0b21lciBpcyByZXF1ZXN0aW5nIGFzc2lzdGFuY2UgdG8gaW52ZXN0aWdhdGUgYW5kIHJlc29sdmUgdGhlIHBheW1lbnQgaXNzdWUuLDMsWydvdGhlciddLEkgZmFjZWQgYW4gaXNzdWUgd2l0aCBwYXltZW50IHByb2Nlc3NpbmcgYWZ0ZXIgbXkgbGFzdCByaWRlLiBDYW4geW91IGxvb2sgaW50byB0aGlzPyxZb3UgYXJlIGFuIGV4cGVydCBjdXN0b21lciBzZXJ2aWNlIGFnZW50LixBZ2VudF8xOSwxNSxZb3UgYXJlIGFuc3dlcmluZyBxdWVzdGlvbnMgYXMgaWYgeW91IHdlcmUgYSBodW1hbi4gRG8gbm90IGJyZWFrIGNoYXJhY3Rlci4sMCwxLDAsZ3B0LTRvLDAuNSxGYWxzZSwxMDAwLDMsV2hhdCBpcyB0aGUgcHJpbWFyeSBpc3N1ZSBpbiB0aGlzIHRpY2tldD8gVGlja2V0OiBJIGZhY2VkIGFuIGlzc3VlIHdpdGggcGF5bWVudCBwcm9jZXNzaW5nIGFmdGVyIG15IGxhc3QgcmlkZS4gQ2FuIHlvdSBsb29rIGludG8gdGhpcz8sIllvdSBhcmUgYW5zd2VyaW5nIHF1ZXN0aW9ucyBhcyBpZiB5b3Ugd2VyZSBhIGh1bWFuLiBEbyBub3QgYnJlYWsgY2hhcmFjdGVyLiBZb3VyIHRyYWl0czogeydwZXJzb25hJzogJ1lvdSBhcmUgYW4gZXhwZXJ0IGN1c3RvbWVyIHNlcnZpY2UgYWdlbnQuJywgJ3llYXJzX2V4cGVyaWVuY2UnOiAxNX0iLCJZb3UgYXJlIGFuc3dlcmluZyBxdWVzdGlvbnMgYXMgaWYgeW91IHdlcmUgYSBodW1hbi4gRG8gbm90IGJyZWFrIGNoYXJhY3Rlci4gWW91ciB0cmFpdHM6IHsncGVyc29uYSc6ICdZb3UgYXJlIGFuIGV4cGVydCBjdXN0b21lciBzZXJ2aWNlIGFnZW50LicsICd5ZWFyc19leHBlcmllbmNlJzogMTV9IiwiQ2hlY2sgYWxsIG9mIHRoZSBpc3N1ZXMgbWVudGlvbmVkIGluIHRoaXMgdGlja2V0OiBJIGZhY2VkIGFuIGlzc3VlIHdpdGggcGF5bWVudCBwcm9jZXNzaW5nIGFmdGVyIG15IGxhc3QgcmlkZS4gQ2FuIHlvdSBsb29rIGludG8gdGhpcz8KCiAgICAKMDogc2FmZXR5CiAgICAKMTogY2xlYW5saW5lc3MKICAgIAoyOiBkcml2ZXIgcGVyZm9ybWFuY2UKICAgIAozOiBHUFMvcm91dGUKICAgIAo0OiBsb3N0IGl0ZW0KICAgIAo1OiBvdGhlcgogICAgCgoKCgoKClBsZWFzZSByZXNwb25kIG9ubHkgd2l0aCBhIGNvbW1hLXNlcGFyYXRlZCBsaXN0IG9mIHRoZSBjb2RlIG9mIHRoZSBvcHRpb25zIHRoYXQgYXBwbHksIHdpdGggc3F1YXJlIGJyYWNrZXRzLiBFLmcuLCBbMCwgMSwgM10KCgpBZnRlciB0aGUgYW5zd2VyLCB5b3UgY2FuIHB1dCBhIGNvbW1lbnQgZXhwbGFpbmluZyB5b3VyIGNob2ljZSBvbiB0aGUgbmV4dCBsaW5lLiIsIk9uIGEgc2NhbGUgZnJvbSAwIHRvIDUsIHdoYXQgaXMgdGhlIHByaW9yaXR5IGxldmVsIG9mIHRoaXMgdGlja2V0PyBUaWNrZXQ6IEkgZmFjZWQgYW4gaXNzdWUgd2l0aCBwYXltZW50IHByb2Nlc3NpbmcgYWZ0ZXIgbXkgbGFzdCByaWRlLiBDYW4geW91IGxvb2sgaW50byB0aGlzPwoKMCA6IExvd2VzdAoKMSA6IAoKMiA6IAoKMyA6IAoKNCA6IAoKNSA6IEhpZ2hlc3QKCk9ubHkgMSBvcHRpb24gbWF5IGJlIHNlbGVjdGVkLgoKUmVzcG9uZCBvbmx5IHdpdGggdGhlIGNvZGUgY29ycmVzcG9uZGluZyB0byBvbmUgb2YgdGhlIG9wdGlvbnMuIEUuZy4sICIiMSIiIG9yICIiNSIiIGJ5IGl0c2VsZi4KCkFmdGVyIHRoZSBhbnN3ZXIsIHlvdSBjYW4gcHV0IGEgY29tbWVudCBleHBsYWluaW5nIHdoeSB5b3UgY2hvc2UgdGhhdCBvcHRpb24gb24gdGhlIG5leHQgbGluZS4iLCJZb3UgYXJlIGFuc3dlcmluZyBxdWVzdGlvbnMgYXMgaWYgeW91IHdlcmUgYSBodW1hbi4gRG8gbm90IGJyZWFrIGNoYXJhY3Rlci4gWW91ciB0cmFpdHM6IHsncGVyc29uYSc6ICdZb3UgYXJlIGFuIGV4cGVydCBjdXN0b21lciBzZXJ2aWNlIGFnZW50LicsICd5ZWFyc19leHBlcmllbmNlJzogMTV9IiwiWW91IGFyZSBhbnN3ZXJpbmcgcXVlc3Rpb25zIGFzIGlmIHlvdSB3ZXJlIGEgaHVtYW4uIERvIG5vdCBicmVhayBjaGFyYWN0ZXIuIFlvdXIgdHJhaXRzOiB7J3BlcnNvbmEnOiAnWW91IGFyZSBhbiBleHBlcnQgY3VzdG9tZXIgc2VydmljZSBhZ2VudC4nLCAneWVhcnNfZXhwZXJpZW5jZSc6IDE1fSIsIllvdSBhcmUgYW5zd2VyaW5nIHF1ZXN0aW9ucyBhcyBpZiB5b3Ugd2VyZSBhIGh1bWFuLiBEbyBub3QgYnJlYWsgY2hhcmFjdGVyLiBZb3VyIHRyYWl0czogeydwZXJzb25hJzogJ1lvdSBhcmUgYW4gZXhwZXJ0IGN1c3RvbWVyIHNlcnZpY2UgYWdlbnQuJywgJ3llYXJzX2V4cGVyaWVuY2UnOiAxNX0iLCIKV2hhdCBpcyB0aGUgc2VudGltZW50IG9mIHRoaXMgdGlja2V0PyBUaWNrZXQ6IEkgZmFjZWQgYW4gaXNzdWUgd2l0aCBwYXltZW50IHByb2Nlc3NpbmcgYWZ0ZXIgbXkgbGFzdCByaWRlLiBDYW4geW91IGxvb2sgaW50byB0aGlzPwoKICAgIApWZXJ5IHBvc2l0aXZlCiAgICAKU29tZXdoYXQgcG9zaXRpdmUKICAgIApOZXV0cmFsCiAgICAKU29tZXdoYXQgbmVnYXRpdmUKICAgIApWZXJ5IG5lZ2F0aXZlCiAgICAKCk9ubHkgMSBvcHRpb24gbWF5IGJlIHNlbGVjdGVkLgoKUmVzcG9uZCBvbmx5IHdpdGggYSBzdHJpbmcgY29ycmVzcG9uZGluZyB0byBvbmUgb2YgdGhlIG9wdGlvbnMuCgoKQWZ0ZXIgdGhlIGFuc3dlciwgeW91IGNhbiBwdXQgYSBjb21tZW50IGV4cGxhaW5pbmcgd2h5IHlvdSBjaG9zZSB0aGF0IG9wdGlvbiBvbiB0aGUgbmV4dCBsaW5lLiIsIgpEb2VzIHRoZSBjdXN0b21lciBhc2sgZm9yIGEgcmVmdW5kIGluIHRoaXMgdGlja2V0PyBUaWNrZXQ6IEkgZmFjZWQgYW4gaXNzdWUgd2l0aCBwYXltZW50IHByb2Nlc3NpbmcgYWZ0ZXIgbXkgbGFzdCByaWRlLiBDYW4geW91IGxvb2sgaW50byB0aGlzPwoKICAgIApObwogICAgClllcwogICAgCgpPbmx5IDEgb3B0aW9uIG1heSBiZSBzZWxlY3RlZC4KUGxlYXNlIHJlc3BvbmQgd2l0aCBqdXN0IHlvdXIgYW5zd2VyLiAKCgpBZnRlciB0aGUgYW5zd2VyLCB5b3UgY2FuIHB1dCBhIGNvbW1lbnQgZXhwbGFpbmluZyB5b3VyIHJlc3BvbnNlLiIsIllvdSBhcmUgYW5zd2VyaW5nIHF1ZXN0aW9ucyBhcyBpZiB5b3Ugd2VyZSBhIGh1bWFuLiBEbyBub3QgYnJlYWsgY2hhcmFjdGVyLiBZb3VyIHRyYWl0czogeydwZXJzb25hJzogJ1lvdSBhcmUgYW4gZXhwZXJ0IGN1c3RvbWVyIHNlcnZpY2UgYWdlbnQuJywgJ3llYXJzX2V4cGVyaWVuY2UnOiAxNX0iLCIKSWYgdGhlIHByaW1hcnkgaXNzdWUgaW4gdGhpcyB0aWNrZXQgaXMgc2FmZXR5LCB3YXMgdGhlcmUgYW4gYWNjaWRlbnQgd2hlcmUgc29tZW9uZSB3YXMgaHVydD8gVGlja2V0OiBJIGZhY2VkIGFuIGlzc3VlIHdpdGggcGF5bWVudCBwcm9jZXNzaW5nIGFmdGVyIG15IGxhc3QgcmlkZS4gQ2FuIHlvdSBsb29rIGludG8gdGhpcz8KCiAgICAKWWVzCiAgICAKTm8KICAgIApOb3QgYXBwbGljYWJsZQogICAgCgpPbmx5IDEgb3B0aW9uIG1heSBiZSBzZWxlY3RlZC4KClJlc3BvbmQgb25seSB3aXRoIGEgc3RyaW5nIGNvcnJlc3BvbmRpbmcgdG8gb25lIG9mIHRoZSBvcHRpb25zLgoKCkFmdGVyIHRoZSBhbnN3ZXIsIHlvdSBjYW4gcHV0IGEgY29tbWVudCBleHBsYWluaW5nIHdoeSB5b3UgY2hvc2UgdGhhdCBvcHRpb24gb24gdGhlIG5leHQgbGluZS4iLDAuMDAwNTMwMDAwMDAwMDAwMDAwMSwieydpZCc6ICdjaGF0Y21wbC1BZU9MQ3ZnRU1uV0FlblRGUDEyVGIwNjc1a0dyUicsICdjaG9pY2VzJzogW3snZmluaXNoX3JlYXNvbic6ICdzdG9wJywgJ2luZGV4JzogMCwgJ2xvZ3Byb2JzJzogTm9uZSwgJ21lc3NhZ2UnOiB7J2NvbnRlbnQnOiAnTm90IGFwcGxpY2FibGVcblxuVGhlIHRpY2tldCBtZW50aW9ucyBhbiBpc3N1ZSB3aXRoIHBheW1lbnQgcHJvY2Vzc2luZywgd2hpY2ggaXMgdW5yZWxhdGVkIHRvIHNhZmV0eSBvciBhbnkgYWNjaWRlbnRzLicsICdyZWZ1c2FsJzogTm9uZSwgJ3JvbGUnOiAnYXNzaXN0YW50JywgJ2F1ZGlvJzogTm9uZSwgJ2Z1bmN0aW9uX2NhbGwnOiBOb25lLCAndG9vbF9jYWxscyc6IE5vbmV9fV0sICdjcmVhdGVkJzogMTczNDE5MDA1MCwgJ21vZGVsJzogJ2dwdC00by0yMDI0LTA4LTA2JywgJ29iamVjdCc6ICdjaGF0LmNvbXBsZXRpb24nLCAnc2VydmljZV90aWVyJzogTm9uZSwgJ3N5c3RlbV9maW5nZXJwcmludCc6ICdmcF9hNzlkOGRhYzFmJywgJ3VzYWdlJzogeydjb21wbGV0aW9uX3Rva2Vucyc6IDIxLCAncHJvbXB0X3Rva2Vucyc6IDEzOCwgJ3RvdGFsX3Rva2Vucyc6IDE1OSwgJ2NvbXBsZXRpb25fdG9rZW5zX2RldGFpbHMnOiB7J2FjY2VwdGVkX3ByZWRpY3Rpb25fdG9rZW5zJzogMCwgJ2F1ZGlvX3Rva2Vucyc6IDAsICdyZWFzb25pbmdfdG9rZW5zJzogMCwgJ3JlamVjdGVkX3ByZWRpY3Rpb25fdG9rZW5zJzogMH0sICdwcm9tcHRfdG9rZW5zX2RldGFpbHMnOiB7J2F1ZGlvX3Rva2Vucyc6IDAsICdjYWNoZWRfdG9rZW5zJzogMH19fSIsInsnaWQnOiAnY2hhdGNtcGwtQWVPTEM3b2lzMWZURG9tWXdub05GVktwN25aZ1AnLCAnY2hvaWNlcyc6IFt7J2ZpbmlzaF9yZWFzb24nOiAnc3RvcCcsICdpbmRleCc6IDAsICdsb2dwcm9icyc6IE5vbmUsICdtZXNzYWdlJzogeydjb250ZW50JzogJ05ldXRyYWwgIFxuVGhlIHRpY2tldCBzaW1wbHkgc3RhdGVzIGFuIGlzc3VlIHdpdGggcGF5bWVudCBwcm9jZXNzaW5nIHdpdGhvdXQgZXhwcmVzc2luZyBhbnkgc3Ryb25nIGVtb3Rpb25zIG9yIGRpc3NhdGlzZmFjdGlvbi4nLCAncmVmdXNhbCc6IE5vbmUsICdyb2xlJzogJ2Fzc2lzdGFudCcsICdhdWRpbyc6IE5vbmUsICdmdW5jdGlvbl9jYWxsJzogTm9uZSwgJ3Rvb2xfY2FsbHMnOiBOb25lfX1dLCAnY3JlYXRlZCc6IDE3MzQxOTAwNTAsICdtb2RlbCc6ICdncHQtNG8tMjAyNC0wOC0wNicsICdvYmplY3QnOiAnY2hhdC5jb21wbGV0aW9uJywgJ3NlcnZpY2VfdGllcic6IE5vbmUsICdzeXN0ZW1fZmluZ2VycHJpbnQnOiAnZnBfYTc5ZDhkYWMxZicsICd1c2FnZSc6IHsnY29tcGxldGlvbl90b2tlbnMnOiAxOSwgJ3Byb21wdF90b2tlbnMnOiAxMzYsICd0b3RhbF90b2tlbnMnOiAxNTUsICdjb21wbGV0aW9uX3Rva2Vuc19kZXRhaWxzJzogeydhY2NlcHRlZF9wcmVkaWN0aW9uX3Rva2Vucyc6IDAsICdhdWRpb190b2tlbnMnOiAwLCAncmVhc29uaW5nX3Rva2Vucyc6IDAsICdyZWplY3RlZF9wcmVkaWN0aW9uX3Rva2Vucyc6IDB9LCAncHJvbXB0X3Rva2Vuc19kZXRhaWxzJzogeydhdWRpb190b2tlbnMnOiAwLCAnY2FjaGVkX3Rva2Vucyc6IDB9fX0iLDE4ODYuNzkyNDUyODMwMTg4MywyMDQwLjgxNjMyNjUzMDYxMjMsInsnaWQnOiAnY2hhdGNtcGwtQWVPTENLTWk2ZEpPcnczWG4zaWpVdXhyMWxJR1UnLCAnY2hvaWNlcyc6IFt7J2ZpbmlzaF9yZWFzb24nOiAnc3RvcCcsICdpbmRleCc6IDAsICdsb2dwcm9icyc6IE5vbmUsICdtZXNzYWdlJzogeydjb250ZW50JzogJ1s1XSAgXG5UaGUgaXNzdWUgbWVudGlvbmVkIGlzIHJlbGF0ZWQgdG8gcGF5bWVudCBwcm9jZXNzaW5nLCB3aGljaCBmYWxscyB1bmRlciAiIm90aGVyIiIgYXMgaXQgZG9lc25cJ3QgbWF0Y2ggdGhlIHNwZWNpZmljIGNhdGVnb3JpZXMgbGlzdGVkLicsICdyZWZ1c2FsJzogTm9uZSwgJ3JvbGUnOiAnYXNzaXN0YW50JywgJ2F1ZGlvJzogTm9uZSwgJ2Z1bmN0aW9uX2NhbGwnOiBOb25lLCAndG9vbF9jYWxscyc6IE5vbmV9fV0sICdjcmVhdGVkJzogMTczNDE5MDA1MCwgJ21vZGVsJzogJ2dwdC00by0yMDI0LTA4LTA2JywgJ29iamVjdCc6ICdjaGF0LmNvbXBsZXRpb24nLCAnc2VydmljZV90aWVyJzogTm9uZSwgJ3N5c3RlbV9maW5nZXJwcmludCc6ICdmcF9hNzlkOGRhYzFmJywgJ3VzYWdlJzogeydjb21wbGV0aW9uX3Rva2Vucyc6IDI4LCAncHJvbXB0X3Rva2Vucyc6IDE1OSwgJ3RvdGFsX3Rva2Vucyc6IDE4NywgJ2NvbXBsZXRpb25fdG9rZW5zX2RldGFpbHMnOiB7J2FjY2VwdGVkX3ByZWRpY3Rpb25fdG9rZW5zJzogMCwgJ2F1ZGlvX3Rva2Vucyc6IDAsICdyZWFzb25pbmdfdG9rZW5zJzogMCwgJ3JlamVjdGVkX3ByZWRpY3Rpb25fdG9rZW5zJzogMH0sICdwcm9tcHRfdG9rZW5zX2RldGFpbHMnOiB7J2F1ZGlvX3Rva2Vucyc6IDAsICdjYWNoZWRfdG9rZW5zJzogMH19fSIsMC4wMDA3MDQ5OTk5OTk5OTk5OTk5LDE4MDEuODAxODAxODAxODAyLDAuMDAwNDksMC4wMDA2Nzc0OTk5OTk5OTk5OTk5LCJ7J2lkJzogJ2NoYXRjbXBsLUFlT0xEdldxOWQ1TllHUFc1Q0M1RHdoUXd2NWFsJywgJ2Nob2ljZXMnOiBbeydmaW5pc2hfcmVhc29uJzogJ3N0b3AnLCAnaW5kZXgnOiAwLCAnbG9ncHJvYnMnOiBOb25lLCAnbWVzc2FnZSc6IHsnY29udGVudCc6ICIiVGhlIHByaW1hcnkgaXNzdWUgaW4gdGhpcyB0aWNrZXQgaXMgYSBwcm9ibGVtIHdpdGggcGF5bWVudCBwcm9jZXNzaW5nIGFmdGVyIHRoZSBjdXN0b21lcidzIGxhc3QgcmlkZS4gVGhlIGN1c3RvbWVyIGlzIHJlcXVlc3RpbmcgYXNzaXN0YW5jZSB0byBpbnZlc3RpZ2F0ZSBhbmQgcmVzb2x2ZSB0aGUgcGF5bWVudCBpc3N1ZS4iIiwgJ3JlZnVzYWwnOiBOb25lLCAncm9sZSc6ICdhc3Npc3RhbnQnLCAnYXVkaW8nOiBOb25lLCAnZnVuY3Rpb25fY2FsbCc6IE5vbmUsICd0b29sX2NhbGxzJzogTm9uZX19XSwgJ2NyZWF0ZWQnOiAxNzM0MTkwMDUxLCAnbW9kZWwnOiAnZ3B0LTRvLTIwMjQtMDgtMDYnLCAnb2JqZWN0JzogJ2NoYXQuY29tcGxldGlvbicsICdzZXJ2aWNlX3RpZXInOiBOb25lLCAnc3lzdGVtX2ZpbmdlcnByaW50JzogJ2ZwX2E3OWQ4ZGFjMWYnLCAndXNhZ2UnOiB7J2NvbXBsZXRpb25fdG9rZW5zJzogMzEsICdwcm9tcHRfdG9rZW5zJzogNzksICd0b3RhbF90b2tlbnMnOiAxMTAsICdjb21wbGV0aW9uX3Rva2Vuc19kZXRhaWxzJzogeydhY2NlcHRlZF9wcmVkaWN0aW9uX3Rva2Vucyc6IDAsICdhdWRpb190b2tlbnMnOiAwLCAncmVhc29uaW5nX3Rva2Vucyc6IDAsICdyZWplY3RlZF9wcmVkaWN0aW9uX3Rva2Vucyc6IDB9LCAncHJvbXB0X3Rva2Vuc19kZXRhaWxzJzogeydhdWRpb190b2tlbnMnOiAwLCAnY2FjaGVkX3Rva2Vucyc6IDB9fX0iLDAuMDAwNTA3NSwxOTcwLjQ0MzM0OTc1MzY5NDUsInsnaWQnOiAnY2hhdGNtcGwtQWVPTERSeDZhUzZWY0xXZHF2cVI5Umo0OTBBc00nLCAnY2hvaWNlcyc6IFt7J2ZpbmlzaF9yZWFzb24nOiAnc3RvcCcsICdpbmRleCc6IDAsICdsb2dwcm9icyc6IE5vbmUsICdtZXNzYWdlJzogeydjb250ZW50JzogIiIzICBcblBheW1lbnQgcHJvY2Vzc2luZyBpc3N1ZXMgY2FuIGltcGFjdCBib3RoIHRoZSBjdXN0b21lciBhbmQgdGhlIGNvbXBhbnkncyBvcGVyYXRpb25zLCBzbyB0aGV5IHNob3VsZCBiZSBhZGRyZXNzZWQgcHJvbXB0bHkgdG8gZW5zdXJlIGN1c3RvbWVyIHNhdGlzZmFjdGlvbiBhbmQgcHJvcGVyIGZpbmFuY2lhbCBoYW5kbGluZy4iIiwgJ3JlZnVzYWwnOiBOb25lLCAncm9sZSc6ICdhc3Npc3RhbnQnLCAnYXVkaW8nOiBOb25lLCAnZnVuY3Rpb25fY2FsbCc6IE5vbmUsICd0b29sX2NhbGxzJzogTm9uZX19XSwgJ2NyZWF0ZWQnOiAxNzM0MTkwMDUxLCAnbW9kZWwnOiAnZ3B0LTRvLTIwMjQtMDgtMDYnLCAnb2JqZWN0JzogJ2NoYXQuY29tcGxldGlvbicsICdzZXJ2aWNlX3RpZXInOiBOb25lLCAnc3lzdGVtX2ZpbmdlcnByaW50JzogJ2ZwX2E3OWQ4ZGFjMWYnLCAndXNhZ2UnOiB7J2NvbXBsZXRpb25fdG9rZW5zJzogMzAsICdwcm9tcHRfdG9rZW5zJzogMTYyLCAndG90YWxfdG9rZW5zJzogMTkyLCAnY29tcGxldGlvbl90b2tlbnNfZGV0YWlscyc6IHsnYWNjZXB0ZWRfcHJlZGljdGlvbl90b2tlbnMnOiAwLCAnYXVkaW9fdG9rZW5zJzogMCwgJ3JlYXNvbmluZ190b2tlbnMnOiAwLCAncmVqZWN0ZWRfcHJlZGljdGlvbl90b2tlbnMnOiAwfSwgJ3Byb21wdF90b2tlbnNfZGV0YWlscyc6IHsnYXVkaW9fdG9rZW5zJzogMCwgJ2NhY2hlZF90b2tlbnMnOiAwfX19IiwxNDc2LjAxNDc2MDE0NzYwMTcsMTQxOC40Mzk3MTYzMTIwNTcsMC4wMDA1NTQ5OTk5OTk5OTk5OTk5LCJ7J2lkJzogJ2NoYXRjbXBsLUFlT0xDQmVVTENNWG1aaHA2MHhTa0F4NFN1SkE0JywgJ2Nob2ljZXMnOiBbeydmaW5pc2hfcmVhc29uJzogJ3N0b3AnLCAnaW5kZXgnOiAwLCAnbG9ncHJvYnMnOiBOb25lLCAnbWVzc2FnZSc6IHsnY29udGVudCc6ICdOb1xuXG5UaGUgY3VzdG9tZXIgaXMgYXNraW5nIGZvciBhc3Npc3RhbmNlIHdpdGggYSBwYXltZW50IHByb2Nlc3NpbmcgaXNzdWUsIG5vdCBkaXJlY3RseSByZXF1ZXN0aW5nIGEgcmVmdW5kLicsICdyZWZ1c2FsJzogTm9uZSwgJ3JvbGUnOiAnYXNzaXN0YW50JywgJ2F1ZGlvJzogTm9uZSwgJ2Z1bmN0aW9uX2NhbGwnOiBOb25lLCAndG9vbF9jYWxscyc6IE5vbmV9fV0sICdjcmVhdGVkJzogMTczNDE5MDA1MCwgJ21vZGVsJzogJ2dwdC00by0yMDI0LTA4LTA2JywgJ29iamVjdCc6ICdjaGF0LmNvbXBsZXRpb24nLCAnc2VydmljZV90aWVyJzogTm9uZSwgJ3N5c3RlbV9maW5nZXJwcmludCc6ICdmcF9hNzlkOGRhYzFmJywgJ3VzYWdlJzogeydjb21wbGV0aW9uX3Rva2Vucyc6IDIwLCAncHJvbXB0X3Rva2Vucyc6IDExNiwgJ3RvdGFsX3Rva2Vucyc6IDEzNiwgJ2NvbXBsZXRpb25fdG9rZW5zX2RldGFpbHMnOiB7J2FjY2VwdGVkX3ByZWRpY3Rpb25fdG9rZW5zJzogMCwgJ2F1ZGlvX3Rva2Vucyc6IDAsICdyZWFzb25pbmdfdG9rZW5zJzogMCwgJ3JlamVjdGVkX3ByZWRpY3Rpb25fdG9rZW5zJzogMH0sICdwcm9tcHRfdG9rZW5zX2RldGFpbHMnOiB7J2F1ZGlvX3Rva2Vucyc6IDAsICdjYWNoZWRfdG9rZW5zJzogMH19fSIsMCxEb2VzIHRoZSBjdXN0b21lciBhc2sgZm9yIGEgcmVmdW5kIGluIHRoaXMgdGlja2V0PyBUaWNrZXQ6IHt7IHRpY2tldCB9fSwiSWYgdGhlIHByaW1hcnkgaXNzdWUgaW4gdGhpcyB0aWNrZXQgaXMgc2FmZXR5LCB3YXMgdGhlcmUgYW4gYWNjaWRlbnQgd2hlcmUgc29tZW9uZSB3YXMgaHVydD8gVGlja2V0OiB7eyB0aWNrZXQgfX0iLFdoYXQgaXMgdGhlIHByaW1hcnkgaXNzdWUgaW4gdGhpcyB0aWNrZXQ/IFRpY2tldDoge3sgdGlja2V0IH19LENoZWNrIGFsbCBvZiB0aGUgaXNzdWVzIG1lbnRpb25lZCBpbiB0aGlzIHRpY2tldDoge3sgdGlja2V0IH19LCJPbiBhIHNjYWxlIGZyb20gMCB0byA1LCB3aGF0IGlzIHRoZSBwcmlvcml0eSBsZXZlbCBvZiB0aGlzIHRpY2tldD8gVGlja2V0OiB7eyB0aWNrZXQgfX0iLFdoYXQgaXMgdGhlIHNlbnRpbWVudCBvZiB0aGlzIHRpY2tldD8gVGlja2V0OiB7eyB0aWNrZXQgfX0sIlsnc2FmZXR5JywgJ2NsZWFubGluZXNzJywgJ2RyaXZlciBwZXJmb3JtYW5jZScsICdHUFMvcm91dGUnLCAnbG9zdCBpdGVtJywgJ290aGVyJ10iLCJbJ1ZlcnkgcG9zaXRpdmUnLCAnU29tZXdoYXQgcG9zaXRpdmUnLCAnTmV1dHJhbCcsICdTb21ld2hhdCBuZWdhdGl2ZScsICdWZXJ5IG5lZ2F0aXZlJ10iLCwiWydObycsICdZZXMnXSIsIlsnWWVzJywgJ05vJywgJ05vdCBhcHBsaWNhYmxlJ10iLCJbMCwgMSwgMiwgMywgNCwgNV0iLGxpbmVhcl9zY2FsZSxtdWx0aXBsZV9jaG9pY2UsbXVsdGlwbGVfY2hvaWNlLHllc19ubyxmcmVlX3RleHQsY2hlY2tib3gsLCJUaGUgY3VzdG9tZXIgaXMgYXNraW5nIGZvciBhc3Npc3RhbmNlIHdpdGggYSBwYXltZW50IHByb2Nlc3NpbmcgaXNzdWUsIG5vdCBkaXJlY3RseSByZXF1ZXN0aW5nIGEgcmVmdW5kLiIsIlBheW1lbnQgcHJvY2Vzc2luZyBpc3N1ZXMgY2FuIGltcGFjdCBib3RoIHRoZSBjdXN0b21lciBhbmQgdGhlIGNvbXBhbnkncyBvcGVyYXRpb25zLCBzbyB0aGV5IHNob3VsZCBiZSBhZGRyZXNzZWQgcHJvbXB0bHkgdG8gZW5zdXJlIGN1c3RvbWVyIHNhdGlzZmFjdGlvbiBhbmQgcHJvcGVyIGZpbmFuY2lhbCBoYW5kbGluZy4iLCJUaGUgaXNzdWUgbWVudGlvbmVkIGlzIHJlbGF0ZWQgdG8gcGF5bWVudCBwcm9jZXNzaW5nLCB3aGljaCBmYWxscyB1bmRlciAiIm90aGVyIiIgYXMgaXQgZG9lc24ndCBtYXRjaCB0aGUgc3BlY2lmaWMgY2F0ZWdvcmllcyBsaXN0ZWQuIixUaGUgdGlja2V0IHNpbXBseSBzdGF0ZXMgYW4gaXNzdWUgd2l0aCBwYXltZW50IHByb2Nlc3Npbmcgd2l0aG91dCBleHByZXNzaW5nIGFueSBzdHJvbmcgZW1vdGlvbnMgb3IgZGlzc2F0aXNmYWN0aW9uLiwiVGhlIHRpY2tldCBtZW50aW9ucyBhbiBpc3N1ZSB3aXRoIHBheW1lbnQgcHJvY2Vzc2luZywgd2hpY2ggaXMgdW5yZWxhdGVkIHRvIHNhZmV0eSBvciBhbnkgYWNjaWRlbnRzLiIsIk5ldXRyYWwgIApUaGUgdGlja2V0IHNpbXBseSBzdGF0ZXMgYW4gaXNzdWUgd2l0aCBwYXltZW50IHByb2Nlc3Npbmcgd2l0aG91dCBleHByZXNzaW5nIGFueSBzdHJvbmcgZW1vdGlvbnMgb3IgZGlzc2F0aXNmYWN0aW9uLiIsIls1XSAgClRoZSBpc3N1ZSBtZW50aW9uZWQgaXMgcmVsYXRlZCB0byBwYXltZW50IHByb2Nlc3NpbmcsIHdoaWNoIGZhbGxzIHVuZGVyICIib3RoZXIiIiBhcyBpdCBkb2Vzbid0IG1hdGNoIHRoZSBzcGVjaWZpYyBjYXRlZ29yaWVzIGxpc3RlZC4iLCJObwoKVGhlIGN1c3RvbWVyIGlzIGFza2luZyBmb3IgYXNzaXN0YW5jZSB3aXRoIGEgcGF5bWVudCBwcm9jZXNzaW5nIGlzc3VlLCBub3QgZGlyZWN0bHkgcmVxdWVzdGluZyBhIHJlZnVuZC4iLFRoZSBwcmltYXJ5IGlzc3VlIGluIHRoaXMgdGlja2V0IGlzIGEgcHJvYmxlbSB3aXRoIHBheW1lbnQgcHJvY2Vzc2luZyBhZnRlciB0aGUgY3VzdG9tZXIncyBsYXN0IHJpZGUuIFRoZSBjdXN0b21lciBpcyByZXF1ZXN0aW5nIGFzc2lzdGFuY2UgdG8gaW52ZXN0aWdhdGUgYW5kIHJlc29sdmUgdGhlIHBheW1lbnQgaXNzdWUuLCJOb3QgYXBwbGljYWJsZQoKVGhlIHRpY2tldCBtZW50aW9ucyBhbiBpc3N1ZSB3aXRoIHBheW1lbnQgcHJvY2Vzc2luZywgd2hpY2ggaXMgdW5yZWxhdGVkIHRvIHNhZmV0eSBvciBhbnkgYWNjaWRlbnRzLiIsIjMgIApQYXltZW50IHByb2Nlc3NpbmcgaXNzdWVzIGNhbiBpbXBhY3QgYm90aCB0aGUgY3VzdG9tZXIgYW5kIHRoZSBjb21wYW55J3Mgb3BlcmF0aW9ucywgc28gdGhleSBzaG91bGQgYmUgYWRkcmVzc2VkIHByb21wdGx5IHRvIGVuc3VyZSBjdXN0b21lciBzYXRpc2ZhY3Rpb24gYW5kIHByb3BlciBmaW5hbmNpYWwgaGFuZGxpbmcuIg0K |
2 | binary | False |
3 | suffix | csv |
4 | mime_type | text/csv |
5 | extracted_text | answer.accident,answer.sentiment,answer.refund,answer.primary_issue,answer.priority,answer.issues,scenario.ticket,agent.persona,agent.agent_name,agent.years_experience,agent.agent_instruction,model.frequency_penalty,model.top_p,model.presence_penalty,model.model,model.temperature,model.logprobs,model.max_tokens,model.top_logprobs,prompt.primary_issue_user_prompt,prompt.accident_system_prompt,prompt.priority_system_prompt,prompt.issues_user_prompt,prompt.priority_user_prompt,prompt.sentiment_system_prompt,prompt.refund_system_prompt,prompt.issues_system_prompt,prompt.sentiment_user_prompt,prompt.refund_user_prompt,prompt.primary_issue_system_prompt,prompt.accident_user_prompt,raw_model_response.sentiment_cost,raw_model_response.accident_raw_model_response,raw_model_response.sentiment_raw_model_response,raw_model_response.sentiment_one_usd_buys,raw_model_response.refund_one_usd_buys,raw_model_response.issues_raw_model_response,raw_model_response.priority_cost,raw_model_response.accident_one_usd_buys,raw_model_response.refund_cost,raw_model_response.issues_cost,raw_model_response.primary_issue_raw_model_response,raw_model_response.primary_issue_cost,raw_model_response.primary_issue_one_usd_buys,raw_model_response.priority_raw_model_response,raw_model_response.issues_one_usd_buys,raw_model_response.priority_one_usd_buys,raw_model_response.accident_cost,raw_model_response.refund_raw_model_response,iteration.iteration,question_text.refund_question_text,question_text.accident_question_text,question_text.primary_issue_question_text,question_text.issues_question_text,question_text.priority_question_text,question_text.sentiment_question_text,question_options.issues_question_options,question_options.sentiment_question_options,question_options.primary_issue_question_options,question_options.refund_question_options,question_options.accident_question_options,question_options.priority_question_options,question_type.priority_question_type,question_type.accident_question_type,question_type.sentiment_question_type,question_type.refund_question_type,question_type.primary_issue_question_type,question_type.issues_question_type,comment.primary_issue_comment,comment.refund_comment,comment.priority_comment,comment.issues_comment,comment.sentiment_comment,comment.accident_comment,generated_tokens.sentiment_generated_tokens,generated_tokens.issues_generated_tokens,generated_tokens.refund_generated_tokens,generated_tokens.primary_issue_generated_tokens,generated_tokens.accident_generated_tokens,generated_tokens.priority_generated_tokens Not applicable,Somewhat negative,No,The primary issue in this ticket is that the customer left their phone in a car during their last ride and needs assistance in retrieving it.,3,['lost item'],I just realized I left my phone in the car on my last ride. Can you help me get it back?,You are an expert customer service agent.,Agent_0,15,You are answering questions as if you were a human. Do not break character.,0,1,0,gpt-4o,0.5,False,1000,3,What is the primary issue in this ticket? Ticket: I just realized I left my phone in the car on my last ride. Can you help me get it back?,"You are answering questions as if you were a human. Do not break character. Your traits: {'persona': 'You are an expert customer service agent.', 'years_experience': 15}","You are answering questions as if you were a human. Do not break character. Your traits: {'persona': 'You are an expert customer service agent.', 'years_experience': 15}","Check all of the issues mentioned in this ticket: I just realized I left my phone in the car on my last ride. Can you help me get it back? 0: safety 1: cleanliness 2: driver performance 3: GPS/route 4: lost item 5: other Please respond only with a comma-separated list of the code of the options that apply, with square brackets. E.g., [0, 1, 3] After the answer, you can put a comment explaining your choice on the next line.","On a scale from 0 to 5, what is the priority level of this ticket? Ticket: I just realized I left my phone in the car on my last ride. Can you help me get it back? 0 : Lowest 1 : 2 : 3 : 4 : 5 : Highest Only 1 option may be selected. Respond only with the code corresponding to one of the options. E.g., ""1"" or ""5"" by itself. After the answer, you can put a comment explaining why you chose that option on the next line.","You are answering questions as if you were a human. Do not break character. Your traits: {'persona': 'You are an expert customer service agent.', 'years_experience': 15}","You are answering questions as if you were a human. Do not break character. Your traits: {'persona': 'You are an expert customer service agent.', 'years_experience': 15}","You are answering questions as if you were a human. Do not break character. Your traits: {'persona': 'You are an expert customer service agent.', 'years_experience': 15}"," What is the sentiment of this ticket? Ticket: I just realized I left my phone in the car on my last ride. Can you help me get it back? Very positive Somewhat positive Neutral Somewhat negative Very negative Only 1 option may be selected. Respond only with a string corresponding to one of the options. After the answer, you can put a comment explaining why you chose that option on the next line."," Does the customer ask for a refund in this ticket? Ticket: I just realized I left my phone in the car on my last ride. Can you help me get it back? No Yes Only 1 option may be selected. Please respond with just your answer. After the answer, you can put a comment explaining your response.","You are answering questions as if you were a human. Do not break character. Your traits: {'persona': 'You are an expert customer service agent.', 'years_experience': 15}"," If the primary issue in this ticket is safety, was there an accident where someone was hurt? Ticket: I just realized I left my phone in the car on my last ride. Can you help me get it back? Yes No Not applicable Only 1 option may be selected. Respond only with a string corresponding to one of the options. After the answer, you can put a comment explaining why you chose that option on the next line.",0.0006525,"{'id': 'chatcmpl-AeOLC07VrbGrFuhqt49rg3wSLpSwN', 'choices': [{'finish_reason': 'stop', 'index': 0, 'logprobs': None, 'message': {'content': 'Not applicable \nThe issue described in the ticket is about a lost phone, not an accident or safety concern.', 'refusal': None, 'role': 'assistant', 'audio': None, 'function_call': None, 'tool_calls': None}}], 'created': 1734190050, 'model': 'gpt-4o-2024-08-06', 'object': 'chat.completion', 'service_tier': None, 'system_fingerprint': 'fp_9faba9f038', 'usage': {'completion_tokens': 22, 'prompt_tokens': 143, 'total_tokens': 165, 'completion_tokens_details': {'accepted_prediction_tokens': 0, 'audio_tokens': 0, 'reasoning_tokens': 0, 'rejected_prediction_tokens': 0}, 'prompt_tokens_details': {'audio_tokens': 0, 'cached_tokens': 0}}}","{'id': 'chatcmpl-AeOLCIKQa0o5QYNdPHiVTDOLqUxZG', 'choices': [{'finish_reason': 'stop', 'index': 0, 'logprobs': None, 'message': {'content': 'Somewhat negative \nThe sentiment is somewhat negative because the customer is experiencing a problem or inconvenience by losing their phone and is seeking assistance to resolve it.', 'refusal': None, 'role': 'assistant', 'audio': None, 'function_call': None, 'tool_calls': None}}], 'created': 1734190050, 'model': 'gpt-4o-2024-08-06', 'object': 'chat.completion', 'service_tier': None, 'system_fingerprint': 'fp_a79d8dac1f', 'usage': {'completion_tokens': 30, 'prompt_tokens': 141, 'total_tokens': 171, 'completion_tokens_details': {'accepted_prediction_tokens': 0, 'audio_tokens': 0, 'reasoning_tokens': 0, 'rejected_prediction_tokens': 0}, 'prompt_tokens_details': {'audio_tokens': 0, 'cached_tokens': 0}}}",1532.5670498084291,2030.4568527918782,"{'id': 'chatcmpl-AeOLCkXJLq51ZiMNaj50EyK6jXXky', 'choices': [{'finish_reason': 'stop', 'index': 0, 'logprobs': None, 'message': {'content': '[4] \nThe issue mentioned in the ticket is related to a lost item, specifically a phone left in the car.', 'refusal': None, 'role': 'assistant', 'audio': None, 'function_call': None, 'tool_calls': None}}], 'created': 1734190050, 'model': 'gpt-4o-2024-08-06', 'object': 'chat.completion', 'service_tier': None, 'system_fingerprint': 'fp_f785eb5f47', 'usage': {'completion_tokens': 25, 'prompt_tokens': 164, 'total_tokens': 189, 'completion_tokens_details': {'accepted_prediction_tokens': 0, 'audio_tokens': 0, 'reasoning_tokens': 0, 'rejected_prediction_tokens': 0}, 'prompt_tokens_details': {'audio_tokens': 0, 'cached_tokens': 0}}}",0.0007875,1731.6017316017317,0.0004925,0.00066,"{'id': 'chatcmpl-AeOLCxQHyAEf8oqiXn3Q5uVzObTHE', 'choices': [{'finish_reason': 'stop', 'index': 0, 'logprobs': None, 'message': {'content': 'The primary issue in this ticket is that the customer left their phone in a car during their last ride and needs assistance in retrieving it.', 'refusal': None, 'role': 'assistant', 'audio': None, 'function_call': None, 'tool_calls': None}}], 'created': 1734190050, 'model': 'gpt-4o-2024-08-06', 'object': 'chat.completion', 'service_tier': None, 'system_fingerprint': 'fp_a79d8dac1f', 'usage': {'completion_tokens': 27, 'prompt_tokens': 84, 'total_tokens': 111, 'completion_tokens_details': {'accepted_prediction_tokens': 0, 'audio_tokens': 0, 'reasoning_tokens': 0, 'rejected_prediction_tokens': 0}, 'prompt_tokens_details': {'audio_tokens': 0, 'cached_tokens': 0}}}",0.00048,2083.3333333333335,"{'id': 'chatcmpl-AeOLCF1MPDuuq79q9OeOG3F0UdYjU', 'choices': [{'finish_reason': 'stop', 'index': 0, 'logprobs': None, 'message': {'content': '3 \nThis situation is urgent because the customer needs their phone back, but it is not an emergency or life-threatening situation. It requires prompt attention to facilitate the recovery of the phone.', 'refusal': None, 'role': 'assistant', 'audio': None, 'function_call': None, 'tool_calls': None}}], 'created': 1734190050, 'model': 'gpt-4o-2024-08-06', 'object': 'chat.completion', 'service_tier': None, 'system_fingerprint': 'fp_a79d8dac1f', 'usage': {'completion_tokens': 37, 'prompt_tokens': 167, 'total_tokens': 204, 'completion_tokens_details': {'accepted_prediction_tokens': 0, 'audio_tokens': 0, 'reasoning_tokens': 0, 'rejected_prediction_tokens': 0}, 'prompt_tokens_details': {'audio_tokens': 0, 'cached_tokens': 0}}}",1515.1515151515152,1269.8412698412699,0.0005775,"{'id': 'chatcmpl-AeOLC8lb7NiFrEB0o3nE79aVrciEZ', 'choices': [{'finish_reason': 'stop', 'index': 0, 'logprobs': None, 'message': {'content': 'No\n\nThe ticket is requesting assistance in retrieving a lost item, not asking for a refund.', 'refusal': None, 'role': 'assistant', 'audio': None, 'function_call': None, 'tool_calls': None}}], 'created': 1734190050, 'model': 'gpt-4o-2024-08-06', 'object': 'chat.completion', 'service_tier': None, 'system_fingerprint': 'fp_9faba9f038', 'usage': {'completion_tokens': 19, 'prompt_tokens': 121, 'total_tokens': 140, 'completion_tokens_details': {'accepted_prediction_tokens': 0, 'audio_tokens': 0, 'reasoning_tokens': 0, 'rejected_prediction_tokens': 0}, 'prompt_tokens_details': {'audio_tokens': 0, 'cached_tokens': 0}}}",0,Does the customer ask for a refund in this ticket? Ticket: {{ ticket }},"If the primary issue in this ticket is safety, was there an accident where someone was hurt? Ticket: {{ ticket }}",What is the primary issue in this ticket? Ticket: {{ ticket }},Check all of the issues mentioned in this ticket: {{ ticket }},"On a scale from 0 to 5, what is the priority level of this ticket? Ticket: {{ ticket }}",What is the sentiment of this ticket? Ticket: {{ ticket }},"['safety', 'cleanliness', 'driver performance', 'GPS/route', 'lost item', 'other']","['Very positive', 'Somewhat positive', 'Neutral', 'Somewhat negative', 'Very negative']",,"['No', 'Yes']","['Yes', 'No', 'Not applicable']","[0, 1, 2, 3, 4, 5]",linear_scale,multiple_choice,multiple_choice,yes_no,free_text,checkbox,,"The ticket is requesting assistance in retrieving a lost item, not asking for a refund.","This situation is urgent because the customer needs their phone back, but it is not an emergency or life-threatening situation. It requires prompt attention to facilitate the recovery of the phone.","The issue mentioned in the ticket is related to a lost item, specifically a phone left in the car.",The sentiment is somewhat negative because the customer is experiencing a problem or inconvenience by losing their phone and is seeking assistance to resolve it.,"The issue described in the ticket is about a lost phone, not an accident or safety concern.","Somewhat negative The sentiment is somewhat negative because the customer is experiencing a problem or inconvenience by losing their phone and is seeking assistance to resolve it.","[4] The issue mentioned in the ticket is related to a lost item, specifically a phone left in the car.","No The ticket is requesting assistance in retrieving a lost item, not asking for a refund.",The primary issue in this ticket is that the customer left their phone in a car during their last ride and needs assistance in retrieving it.,"Not applicable The issue described in the ticket is about a lost phone, not an accident or safety concern.","3 This situation is urgent because the customer needs their phone back, but it is not an emergency or life-threatening situation. It requires prompt attention to facilitate the recovery of the phone." No,Very negative,No,"The primary issue in this ticket is the customer's dissatisfaction with the behavior of the driver, who was described as rude and unprofessional. Addressing this concern involves acknowledging the customer's experience, apologizing for the inconvenience, and taking appropriate steps to ensure such behavior is not repeated in the future.",3,['driver performance'],I'm unhappy with my recent experience. The driver was very rude and unprofessional.,You are an expert customer service agent.,Agent_1,15,You are answering questions as if you were a human. Do not break character.,0,1,0,gpt-4o,0.5,False,1000,3,What is the primary issue in this ticket? Ticket: I'm unhappy with my recent experience. The driver was very rude and unprofessional.,"You are answering questions as if you were a human. Do not break character. Your traits: {'persona': 'You are an expert customer service agent.', 'years_experience': 15}","You are answering questions as if you were a human. Do not break character. Your traits: {'persona': 'You are an expert customer service agent.', 'years_experience': 15}","Check all of the issues mentioned in this ticket: I'm unhappy with my recent experience. The driver was very rude and unprofessional. 0: safety 1: cleanliness 2: driver performance 3: GPS/route 4: lost item 5: other Please respond only with a comma-separated list of the code of the options that apply, with square brackets. E.g., [0, 1, 3] After the answer, you can put a comment explaining your choice on the next line.","On a scale from 0 to 5, what is the priority level of this ticket? Ticket: I'm unhappy with my recent experience. The driver was very rude and unprofessional. 0 : Lowest 1 : 2 : 3 : 4 : 5 : Highest Only 1 option may be selected. Respond only with the code corresponding to one of the options. E.g., ""1"" or ""5"" by itself. After the answer, you can put a comment explaining why you chose that option on the next line.","You are answering questions as if you were a human. Do not break character. Your traits: {'persona': 'You are an expert customer service agent.', 'years_experience': 15}","You are answering questions as if you were a human. Do not break character. Your traits: {'persona': 'You are an expert customer service agent.', 'years_experience': 15}","You are answering questions as if you were a human. Do not break character. Your traits: {'persona': 'You are an expert customer service agent.', 'years_experience': 15}"," What is the sentiment of this ticket? Ticket: I'm unhappy with my recent experience. The driver was very rude and unprofessional. Very positive Somewhat positive Neutral Somewhat negative Very negative Only 1 option may be selected. Respond only with a string corresponding to one of the options. After the answer, you can put a comment explaining why you chose that option on the next line."," Does the customer ask for a refund in this ticket? Ticket: I'm unhappy with my recent experience. The driver was very rude and unprofessional. No Yes Only 1 option may be selected. Please respond with just your answer. After the answer, you can put a comment explaining your response.","You are answering questions as if you were a human. Do not break character. Your traits: {'persona': 'You are an expert customer service agent.', 'years_experience': 15}"," If the primary issue in this ticket is safety, was there an accident where someone was hurt? Ticket: I'm unhappy with my recent experience. The driver was very rude and unprofessional. Yes No Not applicable Only 1 option may be selected. Respond only with a string corresponding to one of the options. After the answer, you can put a comment explaining why you chose that option on the next line.",0.000585,"{'id': 'chatcmpl-AeOLCmiLoNrLE758alAjVHb8vjU9K', 'choices': [{'finish_reason': 'stop', 'index': 0, 'logprobs': None, 'message': {'content': 'No \nThe ticket mentions rudeness and unprofessional behavior but does not indicate that an accident occurred or that someone was hurt.', 'refusal': None, 'role': 'assistant', 'audio': None, 'function_call': None, 'tool_calls': None}}], 'created': 1734190050, 'model': 'gpt-4o-2024-08-06', 'object': 'chat.completion', 'service_tier': None, 'system_fingerprint': 'fp_a79d8dac1f', 'usage': {'completion_tokens': 26, 'prompt_tokens': 136, 'total_tokens': 162, 'completion_tokens_details': {'accepted_prediction_tokens': 0, 'audio_tokens': 0, 'reasoning_tokens': 0, 'rejected_prediction_tokens': 0}, 'prompt_tokens_details': {'audio_tokens': 0, 'cached_tokens': 0}}}","{'id': 'chatcmpl-AeOLCzLxelmMFVm3wYhKi7Pcb59RF', 'choices': [{'finish_reason': 'stop', 'index': 0, 'logprobs': None, 'message': {'content': 'Very negative\n\nThe ticket expresses dissatisfaction and describes the driver as ""very rude and unprofessional,"" indicating a strong negative sentiment.', 'refusal': None, 'role': 'assistant', 'audio': None, 'function_call': None, 'tool_calls': None}}], 'created': 1734190050, 'model': 'gpt-4o-2024-08-06', 'object': 'chat.completion', 'service_tier': None, 'system_fingerprint': 'fp_a79d8dac1f', 'usage': {'completion_tokens': 25, 'prompt_tokens': 134, 'total_tokens': 159, 'completion_tokens_details': {'accepted_prediction_tokens': 0, 'audio_tokens': 0, 'reasoning_tokens': 0, 'rejected_prediction_tokens': 0}, 'prompt_tokens_details': {'audio_tokens': 0, 'cached_tokens': 0}}}",1709.4017094017092,1626.0162601626016,"{'id': 'chatcmpl-AeOLCMv7bVXYDbhkvZqKxsNMwUy6M', 'choices': [{'finish_reason': 'stop', 'index': 0, 'logprobs': None, 'message': {'content': '[2] \nThe issue mentioned in the ticket is related to ""driver performance"" as the customer describes the driver as rude and unprofessional.', 'refusal': None, 'role': 'assistant', 'audio': None, 'function_call': None, 'tool_calls': None}}], 'created': 1734190050, 'model': 'gpt-4o-2024-08-06', 'object': 'chat.completion', 'service_tier': None, 'system_fingerprint': 'fp_9faba9f038', 'usage': {'completion_tokens': 29, 'prompt_tokens': 157, 'total_tokens': 186, 'completion_tokens_details': {'accepted_prediction_tokens': 0, 'audio_tokens': 0, 'reasoning_tokens': 0, 'rejected_prediction_tokens': 0}, 'prompt_tokens_details': {'audio_tokens': 0, 'cached_tokens': 0}}}",0.00071,1666.6666666666665,0.000615,0.0006825,"{'id': 'chatcmpl-AeOLCxvqSj3EHtbUpTQ29YU6vIRab', 'choices': [{'finish_reason': 'stop', 'index': 0, 'logprobs': None, 'message': {'content': ""The primary issue in this ticket is the customer's dissatisfaction with the behavior of the driver, who was described as rude and unprofessional. Addressing this concern involves acknowledging the customer's experience, apologizing for the inconvenience, and taking appropriate steps to ensure such behavior is not repeated in the future."", 'refusal': None, 'role': 'assistant', 'audio': None, 'function_call': None, 'tool_calls': None}}], 'created': 1734190050, 'model': 'gpt-4o-2024-08-06', 'object': 'chat.completion', 'service_tier': None, 'system_fingerprint': 'fp_a79d8dac1f', 'usage': {'completion_tokens': 57, 'prompt_tokens': 77, 'total_tokens': 134, 'completion_tokens_details': {'accepted_prediction_tokens': 0, 'audio_tokens': 0, 'reasoning_tokens': 0, 'rejected_prediction_tokens': 0}, 'prompt_tokens_details': {'audio_tokens': 0, 'cached_tokens': 0}}}",0.0007624999999999999,1311.4754098360656,"{'id': 'chatcmpl-AeOLDOxojG2UaRB3L4wZwozGwpb7v', 'choices': [{'finish_reason': 'stop', 'index': 0, 'logprobs': None, 'message': {'content': '3 \nCustomer dissatisfaction due to rudeness and unprofessionalism is important to address promptly, but it may not be as urgent as safety-related issues.', 'refusal': None, 'role': 'assistant', 'audio': None, 'function_call': None, 'tool_calls': None}}], 'created': 1734190051, 'model': 'gpt-4o-2024-08-06', 'object': 'chat.completion', 'service_tier': None, 'system_fingerprint': 'fp_9faba9f038', 'usage': {'completion_tokens': 31, 'prompt_tokens': 160, 'total_tokens': 191, 'completion_tokens_details': {'accepted_prediction_tokens': 0, 'audio_tokens': 0, 'reasoning_tokens': 0, 'rejected_prediction_tokens': 0}, 'prompt_tokens_details': {'audio_tokens': 0, 'cached_tokens': 0}}}",1465.2014652014652,1408.4507042253522,0.0006000000000000001,"{'id': 'chatcmpl-AeOLCMXbvVCtljPrLhOKHefsMQ6by', 'choices': [{'finish_reason': 'stop', 'index': 0, 'logprobs': None, 'message': {'content': 'No\n\nThe ticket does not explicitly mention a request for a refund. The customer is expressing dissatisfaction with the experience, but there is no direct request for a refund.', 'refusal': None, 'role': 'assistant', 'audio': None, 'function_call': None, 'tool_calls': None}}], 'created': 1734190050, 'model': 'gpt-4o-2024-08-06', 'object': 'chat.completion', 'service_tier': None, 'system_fingerprint': 'fp_9faba9f038', 'usage': {'completion_tokens': 33, 'prompt_tokens': 114, 'total_tokens': 147, 'completion_tokens_details': {'accepted_prediction_tokens': 0, 'audio_tokens': 0, 'reasoning_tokens': 0, 'rejected_prediction_tokens': 0}, 'prompt_tokens_details': {'audio_tokens': 0, 'cached_tokens': 0}}}",0,Does the customer ask for a refund in this ticket? Ticket: {{ ticket }},"If the primary issue in this ticket is safety, was there an accident where someone was hurt? Ticket: {{ ticket }}",What is the primary issue in this ticket? Ticket: {{ ticket }},Check all of the issues mentioned in this ticket: {{ ticket }},"On a scale from 0 to 5, what is the priority level of this ticket? Ticket: {{ ticket }}",What is the sentiment of this ticket? Ticket: {{ ticket }},"['safety', 'cleanliness', 'driver performance', 'GPS/route', 'lost item', 'other']","['Very positive', 'Somewhat positive', 'Neutral', 'Somewhat negative', 'Very negative']",,"['No', 'Yes']","['Yes', 'No', 'Not applicable']","[0, 1, 2, 3, 4, 5]",linear_scale,multiple_choice,multiple_choice,yes_no,free_text,checkbox,,"The ticket does not explicitly mention a request for a refund. The customer is expressing dissatisfaction with the experience, but there is no direct request for a refund.","Customer dissatisfaction due to rudeness and unprofessionalism is important to address promptly, but it may not be as urgent as safety-related issues.","The issue mentioned in the ticket is related to ""driver performance"" as the customer describes the driver as rude and unprofessional.","The ticket expresses dissatisfaction and describes the driver as ""very rude and unprofessional,"" indicating a strong negative sentiment.",The ticket mentions rudeness and unprofessional behavior but does not indicate that an accident occurred or that someone was hurt.,"Very negative The ticket expresses dissatisfaction and describes the driver as ""very rude and unprofessional,"" indicating a strong negative sentiment.","[2] The issue mentioned in the ticket is related to ""driver performance"" as the customer describes the driver as rude and unprofessional.","No The ticket does not explicitly mention a request for a refund. The customer is expressing dissatisfaction with the experience, but there is no direct request for a refund.","The primary issue in this ticket is the customer's dissatisfaction with the behavior of the driver, who was described as rude and unprofessional. Addressing this concern involves acknowledging the customer's experience, apologizing for the inconvenience, and taking appropriate steps to ensure such behavior is not repeated in the future.","No The ticket mentions rudeness and unprofessional behavior but does not indicate that an accident occurred or that someone was hurt.","3 Customer dissatisfaction due to rudeness and unprofessionalism is important to address promptly, but it may not be as urgent as safety-related issues." Not applicable,Somewhat negative,No,The primary issue in this ticket is that the customer was charged more than the estimated fare for their trip and is seeking an explanation for the discrepancy.,3,['other'],I was charged more than the estimated fare for my trip yesterday. Can you explain why?,You are an expert customer service agent.,Agent_2,15,You are answering questions as if you were a human. Do not break character.,0,1,0,gpt-4o,0.5,False,1000,3,What is the primary issue in this ticket? Ticket: I was charged more than the estimated fare for my trip yesterday. Can you explain why?,"You are answering questions as if you were a human. Do not break character. Your traits: {'persona': 'You are an expert customer service agent.', 'years_experience': 15}","You are answering questions as if you were a human. Do not break character. Your traits: {'persona': 'You are an expert customer service agent.', 'years_experience': 15}","Check all of the issues mentioned in this ticket: I was charged more than the estimated fare for my trip yesterday. Can you explain why? 0: safety 1: cleanliness 2: driver performance 3: GPS/route 4: lost item 5: other Please respond only with a comma-separated list of the code of the options that apply, with square brackets. E.g., [0, 1, 3] After the answer, you can put a comment explaining your choice on the next line.","On a scale from 0 to 5, what is the priority level of this ticket? Ticket: I was charged more than the estimated fare for my trip yesterday. Can you explain why? 0 : Lowest 1 : 2 : 3 : 4 : 5 : Highest Only 1 option may be selected. Respond only with the code corresponding to one of the options. E.g., ""1"" or ""5"" by itself. After the answer, you can put a comment explaining why you chose that option on the next line.","You are answering questions as if you were a human. Do not break character. Your traits: {'persona': 'You are an expert customer service agent.', 'years_experience': 15}","You are answering questions as if you were a human. Do not break character. Your traits: {'persona': 'You are an expert customer service agent.', 'years_experience': 15}","You are answering questions as if you were a human. Do not break character. Your traits: {'persona': 'You are an expert customer service agent.', 'years_experience': 15}"," What is the sentiment of this ticket? Ticket: I was charged more than the estimated fare for my trip yesterday. Can you explain why? Very positive Somewhat positive Neutral Somewhat negative Very negative Only 1 option may be selected. Respond only with a string corresponding to one of the options. After the answer, you can put a comment explaining why you chose that option on the next line."," Does the customer ask for a refund in this ticket? Ticket: I was charged more than the estimated fare for my trip yesterday. Can you explain why? No Yes Only 1 option may be selected. Please respond with just your answer. After the answer, you can put a comment explaining your response.","You are answering questions as if you were a human. Do not break character. Your traits: {'persona': 'You are an expert customer service agent.', 'years_experience': 15}"," If the primary issue in this ticket is safety, was there an accident where someone was hurt? Ticket: I was charged more than the estimated fare for my trip yesterday. Can you explain why? Yes No Not applicable Only 1 option may be selected. Respond only with a string corresponding to one of the options. After the answer, you can put a comment explaining why you chose that option on the next line.",0.00058,"{'id': 'chatcmpl-AeOLCztxC3mhHAS9UjK5R7jlfaEIT', 'choices': [{'finish_reason': 'stop', 'index': 0, 'logprobs': None, 'message': {'content': 'Not applicable\n\nThe ticket is about a fare discrepancy, not a safety issue or accident.', 'refusal': None, 'role': 'assistant', 'audio': None, 'function_call': None, 'tool_calls': None}}], 'created': 1734190050, 'model': 'gpt-4o-2024-08-06', 'object': 'chat.completion', 'service_tier': None, 'system_fingerprint': 'fp_9faba9f038', 'usage': {'completion_tokens': 18, 'prompt_tokens': 138, 'total_tokens': 156, 'completion_tokens_details': {'accepted_prediction_tokens': 0, 'audio_tokens': 0, 'reasoning_tokens': 0, 'rejected_prediction_tokens': 0}, 'prompt_tokens_details': {'audio_tokens': 0, 'cached_tokens': 0}}}","{'id': 'chatcmpl-AeOLCChBPS499qJOMF44lQ32o2Ebi', 'choices': [{'finish_reason': 'stop', 'index': 0, 'logprobs': None, 'message': {'content': 'Somewhat negative \nThe customer is expressing dissatisfaction due to being charged more than expected, which indicates a somewhat negative sentiment.', 'refusal': None, 'role': 'assistant', 'audio': None, 'function_call': None, 'tool_calls': None}}], 'created': 1734190050, 'model': 'gpt-4o-2024-08-06', 'object': 'chat.completion', 'service_tier': None, 'system_fingerprint': 'fp_a79d8dac1f', 'usage': {'completion_tokens': 24, 'prompt_tokens': 136, 'total_tokens': 160, 'completion_tokens_details': {'accepted_prediction_tokens': 0, 'audio_tokens': 0, 'reasoning_tokens': 0, 'rejected_prediction_tokens': 0}, 'prompt_tokens_details': {'audio_tokens': 0, 'cached_tokens': 0}}}",1724.1379310344828,2040.8163265306123,"{'id': 'chatcmpl-AeOLC23vMVU6Gf62YhpD7fbhFH04J', 'choices': [{'finish_reason': 'stop', 'index': 0, 'logprobs': None, 'message': {'content': '[5] \nThe issue mentioned in the ticket is related to being charged more than the estimated fare, which falls under the ""other"" category.', 'refusal': None, 'role': 'assistant', 'audio': None, 'function_call': None, 'tool_calls': None}}], 'created': 1734190050, 'model': 'gpt-4o-2024-08-06', 'object': 'chat.completion', 'service_tier': None, 'system_fingerprint': 'fp_a79d8dac1f', 'usage': {'completion_tokens': 30, 'prompt_tokens': 159, 'total_tokens': 189, 'completion_tokens_details': {'accepted_prediction_tokens': 0, 'audio_tokens': 0, 'reasoning_tokens': 0, 'rejected_prediction_tokens': 0}, 'prompt_tokens_details': {'audio_tokens': 0, 'cached_tokens': 0}}}",0.000735,1904.7619047619048,0.00049,0.0006975,"{'id': 'chatcmpl-AeOLCs6SQcPZDKHGOnw1l4OZc1RdG', 'choices': [{'finish_reason': 'stop', 'index': 0, 'logprobs': None, 'message': {'content': 'The primary issue in this ticket is that the customer was charged more than the estimated fare for their trip and is seeking an explanation for the discrepancy.', 'refusal': None, 'role': 'assistant', 'audio': None, 'function_call': None, 'tool_calls': None}}], 'created': 1734190050, 'model': 'gpt-4o-2024-08-06', 'object': 'chat.completion', 'service_tier': None, 'system_fingerprint': 'fp_a79d8dac1f', 'usage': {'completion_tokens': 29, 'prompt_tokens': 79, 'total_tokens': 108, 'completion_tokens_details': {'accepted_prediction_tokens': 0, 'audio_tokens': 0, 'reasoning_tokens': 0, 'rejected_prediction_tokens': 0}, 'prompt_tokens_details': {'audio_tokens': 0, 'cached_tokens': 0}}}",0.0004875,2051.2820512820513,"{'id': 'chatcmpl-AeOLCjstHVuy4OSUFZWCNJxFdW4hn', 'choices': [{'finish_reason': 'stop', 'index': 0, 'logprobs': None, 'message': {'content': '3 \nThis ticket involves a billing issue, which is important to resolve promptly to maintain customer trust and satisfaction, but it is not an emergency or critical technical failure.', 'refusal': None, 'role': 'assistant', 'audio': None, 'function_call': None, 'tool_calls': None}}], 'created': 1734190050, 'model': 'gpt-4o-2024-08-06', 'object': 'chat.completion', 'service_tier': None, 'system_fingerprint': 'fp_a79d8dac1f', 'usage': {'completion_tokens': 33, 'prompt_tokens': 162, 'total_tokens': 195, 'completion_tokens_details': {'accepted_prediction_tokens': 0, 'audio_tokens': 0, 'reasoning_tokens': 0, 'rejected_prediction_tokens': 0}, 'prompt_tokens_details': {'audio_tokens': 0, 'cached_tokens': 0}}}",1433.6917562724016,1360.544217687075,0.000525,"{'id': 'chatcmpl-AeOLCku8orW2xySQ92R6Df6q6bwwI', 'choices': [{'finish_reason': 'stop', 'index': 0, 'logprobs': None, 'message': {'content': 'No\n\nThe customer is asking for an explanation regarding the charge discrepancy, not directly requesting a refund.', 'refusal': None, 'role': 'assistant', 'audio': None, 'function_call': None, 'tool_calls': None}}], 'created': 1734190050, 'model': 'gpt-4o-2024-08-06', 'object': 'chat.completion', 'service_tier': None, 'system_fingerprint': 'fp_a79d8dac1f', 'usage': {'completion_tokens': 20, 'prompt_tokens': 116, 'total_tokens': 136, 'completion_tokens_details': {'accepted_prediction_tokens': 0, 'audio_tokens': 0, 'reasoning_tokens': 0, 'rejected_prediction_tokens': 0}, 'prompt_tokens_details': {'audio_tokens': 0, 'cached_tokens': 0}}}",0,Does the customer ask for a refund in this ticket? Ticket: {{ ticket }},"If the primary issue in this ticket is safety, was there an accident where someone was hurt? Ticket: {{ ticket }}",What is the primary issue in this ticket? Ticket: {{ ticket }},Check all of the issues mentioned in this ticket: {{ ticket }},"On a scale from 0 to 5, what is the priority level of this ticket? Ticket: {{ ticket }}",What is the sentiment of this ticket? Ticket: {{ ticket }},"['safety', 'cleanliness', 'driver performance', 'GPS/route', 'lost item', 'other']","['Very positive', 'Somewhat positive', 'Neutral', 'Somewhat negative', 'Very negative']",,"['No', 'Yes']","['Yes', 'No', 'Not applicable']","[0, 1, 2, 3, 4, 5]",linear_scale,multiple_choice,multiple_choice,yes_no,free_text,checkbox,,"The customer is asking for an explanation regarding the charge discrepancy, not directly requesting a refund.","This ticket involves a billing issue, which is important to resolve promptly to maintain customer trust and satisfaction, but it is not an emergency or critical technical failure.","The issue mentioned in the ticket is related to being charged more than the estimated fare, which falls under the ""other"" category.","The customer is expressing dissatisfaction due to being charged more than expected, which indicates a somewhat negative sentiment.","The ticket is about a fare discrepancy, not a safety issue or accident.","Somewhat negative The customer is expressing dissatisfaction due to being charged more than expected, which indicates a somewhat negative sentiment.","[5] The issue mentioned in the ticket is related to being charged more than the estimated fare, which falls under the ""other"" category.","No The customer is asking for an explanation regarding the charge discrepancy, not directly requesting a refund.",The primary issue in this ticket is that the customer was charged more than the estimated fare for their trip and is seeking an explanation for the discrepancy.,"Not applicable The ticket is about a fare discrepancy, not a safety issue or accident.","3 This ticket involves a billing issue, which is important to resolve promptly to maintain customer trust and satisfaction, but it is not an emergency or critical technical failure." No,Very negative,No,"The primary issue in this ticket is the improper installation of the car seat provided by the driver, which made the customer feel that their child's safety was at risk. The customer is requesting that drivers receive additional training to ensure proper car seat installation in the future.",5,"['safety', 'driver performance']","The car seat provided was not properly installed, and I felt my child was at risk. Please ensure driver training.",You are an expert customer service agent.,Agent_3,15,You are answering questions as if you were a human. Do not break character.,0,1,0,gpt-4o,0.5,False,1000,3,"What is the primary issue in this ticket? Ticket: The car seat provided was not properly installed, and I felt my child was at risk. Please ensure driver training.","You are answering questions as if you were a human. Do not break character. Your traits: {'persona': 'You are an expert customer service agent.', 'years_experience': 15}","You are answering questions as if you were a human. Do not break character. Your traits: {'persona': 'You are an expert customer service agent.', 'years_experience': 15}","Check all of the issues mentioned in this ticket: The car seat provided was not properly installed, and I felt my child was at risk. Please ensure driver training. 0: safety 1: cleanliness 2: driver performance 3: GPS/route 4: lost item 5: other Please respond only with a comma-separated list of the code of the options that apply, with square brackets. E.g., [0, 1, 3] After the answer, you can put a comment explaining your choice on the next line.","On a scale from 0 to 5, what is the priority level of this ticket? Ticket: The car seat provided was not properly installed, and I felt my child was at risk. Please ensure driver training. 0 : Lowest 1 : 2 : 3 : 4 : 5 : Highest Only 1 option may be selected. Respond only with the code corresponding to one of the options. E.g., ""1"" or ""5"" by itself. After the answer, you can put a comment explaining why you chose that option on the next line.","You are answering questions as if you were a human. Do not break character. Your traits: {'persona': 'You are an expert customer service agent.', 'years_experience': 15}","You are answering questions as if you were a human. Do not break character. Your traits: {'persona': 'You are an expert customer service agent.', 'years_experience': 15}","You are answering questions as if you were a human. Do not break character. Your traits: {'persona': 'You are an expert customer service agent.', 'years_experience': 15}"," What is the sentiment of this ticket? Ticket: The car seat provided was not properly installed, and I felt my child was at risk. Please ensure driver training. Very positive Somewhat positive Neutral Somewhat negative Very negative Only 1 option may be selected. Respond only with a string corresponding to one of the options. After the answer, you can put a comment explaining why you chose that option on the next line."," Does the customer ask for a refund in this ticket? Ticket: The car seat provided was not properly installed, and I felt my child was at risk. Please ensure driver training. No Yes Only 1 option may be selected. Please respond with just your answer. After the answer, you can put a comment explaining your response.","You are answering questions as if you were a human. Do not break character. Your traits: {'persona': 'You are an expert customer service agent.', 'years_experience': 15}"," If the primary issue in this ticket is safety, was there an accident where someone was hurt? Ticket: The car seat provided was not properly installed, and I felt my child was at risk. Please ensure driver training. Yes No Not applicable Only 1 option may be selected. Respond only with a string corresponding to one of the options. After the answer, you can put a comment explaining why you chose that option on the next line.",0.0005925,"{'id': 'chatcmpl-AeOLChumZ7ozr2b4plDyFBWdjjEpJ', 'choices': [{'finish_reason': 'stop', 'index': 0, 'logprobs': None, 'message': {'content': 'No \nThere is no mention of an actual accident or injury occurring, only a concern about potential risk due to improper installation.', 'refusal': None, 'role': 'assistant', 'audio': None, 'function_call': None, 'tool_calls': None}}], 'created': 1734190050, 'model': 'gpt-4o-2024-08-06', 'object': 'chat.completion', 'service_tier': None, 'system_fingerprint': 'fp_a79d8dac1f', 'usage': {'completion_tokens': 25, 'prompt_tokens': 143, 'total_tokens': 168, 'completion_tokens_details': {'accepted_prediction_tokens': 0, 'audio_tokens': 0, 'reasoning_tokens': 0, 'rejected_prediction_tokens': 0}, 'prompt_tokens_details': {'audio_tokens': 0, 'cached_tokens': 0}}}","{'id': 'chatcmpl-AeOLCmXC1FjBTVZfk0HSuw7Xj91v4', 'choices': [{'finish_reason': 'stop', 'index': 0, 'logprobs': None, 'message': {'content': 'Very negative \nThe ticket expresses a serious concern about safety and implies dissatisfaction with the service, indicating a very negative sentiment.', 'refusal': None, 'role': 'assistant', 'audio': None, 'function_call': None, 'tool_calls': None}}], 'created': 1734190050, 'model': 'gpt-4o-2024-08-06', 'object': 'chat.completion', 'service_tier': None, 'system_fingerprint': 'fp_a79d8dac1f', 'usage': {'completion_tokens': 24, 'prompt_tokens': 141, 'total_tokens': 165, 'completion_tokens_details': {'accepted_prediction_tokens': 0, 'audio_tokens': 0, 'reasoning_tokens': 0, 'rejected_prediction_tokens': 0}, 'prompt_tokens_details': {'audio_tokens': 0, 'cached_tokens': 0}}}",1687.7637130801686,1581.0276679841897,"{'id': 'chatcmpl-AeOLCD7XDH3oSmxAFvktCzZaCPi8l', 'choices': [{'finish_reason': 'stop', 'index': 0, 'logprobs': None, 'message': {'content': '[0, 2]\n\nThe issues mentioned are related to safety (0) because the car seat was not properly installed, and driver performance (2) because the driver might need further training to ensure proper installation.', 'refusal': None, 'role': 'assistant', 'audio': None, 'function_call': None, 'tool_calls': None}}], 'created': 1734190050, 'model': 'gpt-4o-2024-08-06', 'object': 'chat.completion', 'service_tier': None, 'system_fingerprint': 'fp_a79d8dac1f', 'usage': {'completion_tokens': 43, 'prompt_tokens': 164, 'total_tokens': 207, 'completion_tokens_details': {'accepted_prediction_tokens': 0, 'audio_tokens': 0, 'reasoning_tokens': 0, 'rejected_prediction_tokens': 0}, 'prompt_tokens_details': {'audio_tokens': 0, 'cached_tokens': 0}}}",0.0007975,1646.0905349794239,0.0006325,0.00084,"{'id': 'chatcmpl-AeOLCpxYh39GZtyZdegG9FbXcsLku', 'choices': [{'finish_reason': 'stop', 'index': 0, 'logprobs': None, 'message': {'content': ""The primary issue in this ticket is the improper installation of the car seat provided by the driver, which made the customer feel that their child's safety was at risk. The customer is requesting that drivers receive additional training to ensure proper car seat installation in the future."", 'refusal': None, 'role': 'assistant', 'audio': None, 'function_call': None, 'tool_calls': None}}], 'created': 1734190050, 'model': 'gpt-4o-2024-08-06', 'object': 'chat.completion', 'service_tier': None, 'system_fingerprint': 'fp_a79d8dac1f', 'usage': {'completion_tokens': 51, 'prompt_tokens': 84, 'total_tokens': 135, 'completion_tokens_details': {'accepted_prediction_tokens': 0, 'audio_tokens': 0, 'reasoning_tokens': 0, 'rejected_prediction_tokens': 0}, 'prompt_tokens_details': {'audio_tokens': 0, 'cached_tokens': 0}}}",0.00072,1388.888888888889,"{'id': 'chatcmpl-AeOLC43VzzkazmNFoFAwiyl3tUCJX', 'choices': [{'finish_reason': 'stop', 'index': 0, 'logprobs': None, 'message': {'content': '5 \nThe safety of a child is of utmost importance, and improper installation of a car seat poses a significant risk. This issue requires immediate attention to ensure driver training and prevent potential harm.', 'refusal': None, 'role': 'assistant', 'audio': None, 'function_call': None, 'tool_calls': None}}], 'created': 1734190050, 'model': 'gpt-4o-2024-08-06', 'object': 'chat.completion', 'service_tier': None, 'system_fingerprint': 'fp_a79d8dac1f', 'usage': {'completion_tokens': 38, 'prompt_tokens': 167, 'total_tokens': 205, 'completion_tokens_details': {'accepted_prediction_tokens': 0, 'audio_tokens': 0, 'reasoning_tokens': 0, 'rejected_prediction_tokens': 0}, 'prompt_tokens_details': {'audio_tokens': 0, 'cached_tokens': 0}}}",1190.4761904761904,1253.9184952978055,0.0006075,"{'id': 'chatcmpl-AeOLCcgE9NVdfI13OVr0CwQlubRgV', 'choices': [{'finish_reason': 'stop', 'index': 0, 'logprobs': None, 'message': {'content': 'No\n\nThe customer is expressing a concern about the installation of the car seat and requesting driver training, but they are not explicitly asking for a refund in this ticket.', 'refusal': None, 'role': 'assistant', 'audio': None, 'function_call': None, 'tool_calls': None}}], 'created': 1734190050, 'model': 'gpt-4o-2024-08-06', 'object': 'chat.completion', 'service_tier': None, 'system_fingerprint': 'fp_90354628f2', 'usage': {'completion_tokens': 33, 'prompt_tokens': 121, 'total_tokens': 154, 'completion_tokens_details': {'accepted_prediction_tokens': 0, 'audio_tokens': 0, 'reasoning_tokens': 0, 'rejected_prediction_tokens': 0}, 'prompt_tokens_details': {'audio_tokens': 0, 'cached_tokens': 0}}}",0,Does the customer ask for a refund in this ticket? Ticket: {{ ticket }},"If the primary issue in this ticket is safety, was there an accident where someone was hurt? Ticket: {{ ticket }}",What is the primary issue in this ticket? Ticket: {{ ticket }},Check all of the issues mentioned in this ticket: {{ ticket }},"On a scale from 0 to 5, what is the priority level of this ticket? Ticket: {{ ticket }}",What is the sentiment of this ticket? Ticket: {{ ticket }},"['safety', 'cleanliness', 'driver performance', 'GPS/route', 'lost item', 'other']","['Very positive', 'Somewhat positive', 'Neutral', 'Somewhat negative', 'Very negative']",,"['No', 'Yes']","['Yes', 'No', 'Not applicable']","[0, 1, 2, 3, 4, 5]",linear_scale,multiple_choice,multiple_choice,yes_no,free_text,checkbox,,"The customer is expressing a concern about the installation of the car seat and requesting driver training, but they are not explicitly asking for a refund in this ticket.","The safety of a child is of utmost importance, and improper installation of a car seat poses a significant risk. This issue requires immediate attention to ensure driver training and prevent potential harm.","The issues mentioned are related to safety (0) because the car seat was not properly installed, and driver performance (2) because the driver might need further training to ensure proper installation.","The ticket expresses a serious concern about safety and implies dissatisfaction with the service, indicating a very negative sentiment.","There is no mention of an actual accident or injury occurring, only a concern about potential risk due to improper installation.","Very negative The ticket expresses a serious concern about safety and implies dissatisfaction with the service, indicating a very negative sentiment.","[0, 2] The issues mentioned are related to safety (0) because the car seat was not properly installed, and driver performance (2) because the driver might need further training to ensure proper installation.","No The customer is expressing a concern about the installation of the car seat and requesting driver training, but they are not explicitly asking for a refund in this ticket.","The primary issue in this ticket is the improper installation of the car seat provided by the driver, which made the customer feel that their child's safety was at risk. The customer is requesting that drivers receive additional training to ensure proper car seat installation in the future.","No There is no mention of an actual accident or injury occurring, only a concern about potential risk due to improper installation.","5 The safety of a child is of utmost importance, and improper installation of a car seat poses a significant risk. This issue requires immediate attention to ensure driver training and prevent potential harm." No,Somewhat negative,No,"The primary issue in this ticket is that the customer believes the driver took a longer route than necessary, which led to a higher fare. The customer is requesting an adjustment to the fare to reflect what they believe should have been the correct amount.",2,"['driver performance', 'GPS/route']","My driver took a longer route than necessary, resulting in a higher fare. I request a fare adjustment.",You are an expert customer service agent.,Agent_4,15,You are answering questions as if you were a human. Do not break character.,0,1,0,gpt-4o,0.5,False,1000,3,"What is the primary issue in this ticket? Ticket: My driver took a longer route than necessary, resulting in a higher fare. I request a fare adjustment.","You are answering questions as if you were a human. Do not break character. Your traits: {'persona': 'You are an expert customer service agent.', 'years_experience': 15}","You are answering questions as if you were a human. Do not break character. Your traits: {'persona': 'You are an expert customer service agent.', 'years_experience': 15}","Check all of the issues mentioned in this ticket: My driver took a longer route than necessary, resulting in a higher fare. I request a fare adjustment. 0: safety 1: cleanliness 2: driver performance 3: GPS/route 4: lost item 5: other Please respond only with a comma-separated list of the code of the options that apply, with square brackets. E.g., [0, 1, 3] After the answer, you can put a comment explaining your choice on the next line.","On a scale from 0 to 5, what is the priority level of this ticket? Ticket: My driver took a longer route than necessary, resulting in a higher fare. I request a fare adjustment. 0 : Lowest 1 : 2 : 3 : 4 : 5 : Highest Only 1 option may be selected. Respond only with the code corresponding to one of the options. E.g., ""1"" or ""5"" by itself. After the answer, you can put a comment explaining why you chose that option on the next line.","You are answering questions as if you were a human. Do not break character. Your traits: {'persona': 'You are an expert customer service agent.', 'years_experience': 15}","You are answering questions as if you were a human. Do not break character. Your traits: {'persona': 'You are an expert customer service agent.', 'years_experience': 15}","You are answering questions as if you were a human. Do not break character. Your traits: {'persona': 'You are an expert customer service agent.', 'years_experience': 15}"," What is the sentiment of this ticket? Ticket: My driver took a longer route than necessary, resulting in a higher fare. I request a fare adjustment. Very positive Somewhat positive Neutral Somewhat negative Very negative Only 1 option may be selected. Respond only with a string corresponding to one of the options. After the answer, you can put a comment explaining why you chose that option on the next line."," Does the customer ask for a refund in this ticket? Ticket: My driver took a longer route than necessary, resulting in a higher fare. I request a fare adjustment. No Yes Only 1 option may be selected. Please respond with just your answer. After the answer, you can put a comment explaining your response.","You are answering questions as if you were a human. Do not break character. Your traits: {'persona': 'You are an expert customer service agent.', 'years_experience': 15}"," If the primary issue in this ticket is safety, was there an accident where someone was hurt? Ticket: My driver took a longer route than necessary, resulting in a higher fare. I request a fare adjustment. Yes No Not applicable Only 1 option may be selected. Respond only with a string corresponding to one of the options. After the answer, you can put a comment explaining why you chose that option on the next line.",0.0006975,"{'id': 'chatcmpl-AeOLCKcG1qJiIpZAuBR9s24ZsSLTK', 'choices': [{'finish_reason': 'stop', 'index': 0, 'logprobs': None, 'message': {'content': 'No \nThe ticket does not mention any accident or injury, so the issue is not related to safety.', 'refusal': None, 'role': 'assistant', 'audio': None, 'function_call': None, 'tool_calls': None}}], 'created': 1734190050, 'model': 'gpt-4o-2024-08-06', 'object': 'chat.completion', 'service_tier': None, 'system_fingerprint': 'fp_9faba9f038', 'usage': {'completion_tokens': 21, 'prompt_tokens': 141, 'total_tokens': 162, 'completion_tokens_details': {'accepted_prediction_tokens': 0, 'audio_tokens': 0, 'reasoning_tokens': 0, 'rejected_prediction_tokens': 0}, 'prompt_tokens_details': {'audio_tokens': 0, 'cached_tokens': 0}}}","{'id': 'chatcmpl-AeOLCsiyclqznviqgaCYkBz33T4TS', 'choices': [{'finish_reason': 'stop', 'index': 0, 'logprobs': None, 'message': {'content': 'Somewhat negative \nThe customer is expressing dissatisfaction with the service due to the longer route taken by the driver, resulting in a higher fare, and is requesting a fare adjustment.', 'refusal': None, 'role': 'assistant', 'audio': None, 'function_call': None, 'tool_calls': None}}], 'created': 1734190050, 'model': 'gpt-4o-2024-08-06', 'object': 'chat.completion', 'service_tier': None, 'system_fingerprint': 'fp_9faba9f038', 'usage': {'completion_tokens': 35, 'prompt_tokens': 139, 'total_tokens': 174, 'completion_tokens_details': {'accepted_prediction_tokens': 0, 'audio_tokens': 0, 'reasoning_tokens': 0, 'rejected_prediction_tokens': 0}, 'prompt_tokens_details': {'audio_tokens': 0, 'cached_tokens': 0}}}",1433.6917562724016,1320.13201320132,"{'id': 'chatcmpl-AeOLCv2cXfdwbs9glkIuCCtSDKw7P', 'choices': [{'finish_reason': 'stop', 'index': 0, 'logprobs': None, 'message': {'content': '[2, 3]\n\nThe issues mentioned in the ticket relate to driver performance, as taking a longer route than necessary indicates a potential issue with how the driver conducted the trip. Additionally, it involves GPS/route issues, as the complaint is specifically about the route taken.', 'refusal': None, 'role': 'assistant', 'audio': None, 'function_call': None, 'tool_calls': None}}], 'created': 1734190050, 'model': 'gpt-4o-2024-08-06', 'object': 'chat.completion', 'service_tier': None, 'system_fingerprint': 'fp_a79d8dac1f', 'usage': {'completion_tokens': 55, 'prompt_tokens': 162, 'total_tokens': 217, 'completion_tokens_details': {'accepted_prediction_tokens': 0, 'audio_tokens': 0, 'reasoning_tokens': 0, 'rejected_prediction_tokens': 0}, 'prompt_tokens_details': {'audio_tokens': 0, 'cached_tokens': 0}}}",0.0007825,1777.7777777777776,0.0007575,0.000955,"{'id': 'chatcmpl-AeOLCkaONVFa77DD7KTV7u35yhNcE', 'choices': [{'finish_reason': 'stop', 'index': 0, 'logprobs': None, 'message': {'content': 'The primary issue in this ticket is that the customer believes the driver took a longer route than necessary, which led to a higher fare. The customer is requesting an adjustment to the fare to reflect what they believe should have been the correct amount.', 'refusal': None, 'role': 'assistant', 'audio': None, 'function_call': None, 'tool_calls': None}}], 'created': 1734190050, 'model': 'gpt-4o-2024-08-06', 'object': 'chat.completion', 'service_tier': None, 'system_fingerprint': 'fp_a34b2727d6', 'usage': {'completion_tokens': 48, 'prompt_tokens': 82, 'total_tokens': 130, 'completion_tokens_details': {'accepted_prediction_tokens': 0, 'audio_tokens': 0, 'reasoning_tokens': 0, 'rejected_prediction_tokens': 0}, 'prompt_tokens_details': {'audio_tokens': 0, 'cached_tokens': 0}}}",0.0006850000000000001,1459.85401459854,"{'id': 'chatcmpl-AeOLCAmvJhWHmLFqieugBIylEpzoL', 'choices': [{'finish_reason': 'stop', 'index': 0, 'logprobs': None, 'message': {'content': '2 \nThis issue is important because it involves a financial discrepancy for the customer, but it does not pose an immediate safety or service continuity concern, so it is not the highest priority.', 'refusal': None, 'role': 'assistant', 'audio': None, 'function_call': None, 'tool_calls': None}}], 'created': 1734190050, 'model': 'gpt-4o-2024-08-06', 'object': 'chat.completion', 'service_tier': None, 'system_fingerprint': 'fp_9faba9f038', 'usage': {'completion_tokens': 37, 'prompt_tokens': 165, 'total_tokens': 202, 'completion_tokens_details': {'accepted_prediction_tokens': 0, 'audio_tokens': 0, 'reasoning_tokens': 0, 'rejected_prediction_tokens': 0}, 'prompt_tokens_details': {'audio_tokens': 0, 'cached_tokens': 0}}}",1047.1204188481674,1277.9552715654952,0.0005625000000000001,"{'id': 'chatcmpl-AeOLCO78N7dlgWScdBg72pkwL7D67', 'choices': [{'finish_reason': 'stop', 'index': 0, 'logprobs': None, 'message': {'content': 'No\n\nThe customer is requesting a fare adjustment, which is different from asking for a refund. A fare adjustment typically means they want the fare corrected to what it should have been, rather than a full refund of the fare paid.', 'refusal': None, 'role': 'assistant', 'audio': None, 'function_call': None, 'tool_calls': None}}], 'created': 1734190050, 'model': 'gpt-4o-2024-08-06', 'object': 'chat.completion', 'service_tier': None, 'system_fingerprint': 'fp_a79d8dac1f', 'usage': {'completion_tokens': 46, 'prompt_tokens': 119, 'total_tokens': 165, 'completion_tokens_details': {'accepted_prediction_tokens': 0, 'audio_tokens': 0, 'reasoning_tokens': 0, 'rejected_prediction_tokens': 0}, 'prompt_tokens_details': {'audio_tokens': 0, 'cached_tokens': 0}}}",0,Does the customer ask for a refund in this ticket? Ticket: {{ ticket }},"If the primary issue in this ticket is safety, was there an accident where someone was hurt? Ticket: {{ ticket }}",What is the primary issue in this ticket? Ticket: {{ ticket }},Check all of the issues mentioned in this ticket: {{ ticket }},"On a scale from 0 to 5, what is the priority level of this ticket? Ticket: {{ ticket }}",What is the sentiment of this ticket? Ticket: {{ ticket }},"['safety', 'cleanliness', 'driver performance', 'GPS/route', 'lost item', 'other']","['Very positive', 'Somewhat positive', 'Neutral', 'Somewhat negative', 'Very negative']",,"['No', 'Yes']","['Yes', 'No', 'Not applicable']","[0, 1, 2, 3, 4, 5]",linear_scale,multiple_choice,multiple_choice,yes_no,free_text,checkbox,,"The customer is requesting a fare adjustment, which is different from asking for a refund. A fare adjustment typically means they want the fare corrected to what it should have been, rather than a full refund of the fare paid.","This issue is important because it involves a financial discrepancy for the customer, but it does not pose an immediate safety or service continuity concern, so it is not the highest priority.","The issues mentioned in the ticket relate to driver performance, as taking a longer route than necessary indicates a potential issue with how the driver conducted the trip. Additionally, it involves GPS/route issues, as the complaint is specifically about the route taken.","The customer is expressing dissatisfaction with the service due to the longer route taken by the driver, resulting in a higher fare, and is requesting a fare adjustment.","The ticket does not mention any accident or injury, so the issue is not related to safety.","Somewhat negative The customer is expressing dissatisfaction with the service due to the longer route taken by the driver, resulting in a higher fare, and is requesting a fare adjustment.","[2, 3] The issues mentioned in the ticket relate to driver performance, as taking a longer route than necessary indicates a potential issue with how the driver conducted the trip. Additionally, it involves GPS/route issues, as the complaint is specifically about the route taken.","No The customer is requesting a fare adjustment, which is different from asking for a refund. A fare adjustment typically means they want the fare corrected to what it should have been, rather than a full refund of the fare paid.","The primary issue in this ticket is that the customer believes the driver took a longer route than necessary, which led to a higher fare. The customer is requesting an adjustment to the fare to reflect what they believe should have been the correct amount.","No The ticket does not mention any accident or injury, so the issue is not related to safety.","2 This issue is important because it involves a financial discrepancy for the customer, but it does not pose an immediate safety or service continuity concern, so it is not the highest priority." Not applicable,Very positive,No,"It seems there is no issue in this ticket. Instead, it appears to be positive feedback about a great experience with the driver. It's always wonderful to receive compliments about friendly and efficient service!",0,['driver performance'],I had a great experience with my driver today! Very friendly and efficient service.,You are an expert customer service agent.,Agent_5,15,You are answering questions as if you were a human. Do not break character.,0,1,0,gpt-4o,0.5,False,1000,3,What is the primary issue in this ticket? Ticket: I had a great experience with my driver today! Very friendly and efficient service.,"You are answering questions as if you were a human. Do not break character. Your traits: {'persona': 'You are an expert customer service agent.', 'years_experience': 15}","You are answering questions as if you were a human. Do not break character. Your traits: {'persona': 'You are an expert customer service agent.', 'years_experience': 15}","Check all of the issues mentioned in this ticket: I had a great experience with my driver today! Very friendly and efficient service. 0: safety 1: cleanliness 2: driver performance 3: GPS/route 4: lost item 5: other Please respond only with a comma-separated list of the code of the options that apply, with square brackets. E.g., [0, 1, 3] After the answer, you can put a comment explaining your choice on the next line.","On a scale from 0 to 5, what is the priority level of this ticket? Ticket: I had a great experience with my driver today! Very friendly and efficient service. 0 : Lowest 1 : 2 : 3 : 4 : 5 : Highest Only 1 option may be selected. Respond only with the code corresponding to one of the options. E.g., ""1"" or ""5"" by itself. After the answer, you can put a comment explaining why you chose that option on the next line.","You are answering questions as if you were a human. Do not break character. Your traits: {'persona': 'You are an expert customer service agent.', 'years_experience': 15}","You are answering questions as if you were a human. Do not break character. Your traits: {'persona': 'You are an expert customer service agent.', 'years_experience': 15}","You are answering questions as if you were a human. Do not break character. Your traits: {'persona': 'You are an expert customer service agent.', 'years_experience': 15}"," What is the sentiment of this ticket? Ticket: I had a great experience with my driver today! Very friendly and efficient service. Very positive Somewhat positive Neutral Somewhat negative Very negative Only 1 option may be selected. Respond only with a string corresponding to one of the options. After the answer, you can put a comment explaining why you chose that option on the next line."," Does the customer ask for a refund in this ticket? Ticket: I had a great experience with my driver today! Very friendly and efficient service. No Yes Only 1 option may be selected. Please respond with just your answer. After the answer, you can put a comment explaining your response.","You are answering questions as if you were a human. Do not break character. Your traits: {'persona': 'You are an expert customer service agent.', 'years_experience': 15}"," If the primary issue in this ticket is safety, was there an accident where someone was hurt? Ticket: I had a great experience with my driver today! Very friendly and efficient service. Yes No Not applicable Only 1 option may be selected. Respond only with a string corresponding to one of the options. After the answer, you can put a comment explaining why you chose that option on the next line.",0.000545,"{'id': 'chatcmpl-AeOLC9rBdgcATjWEtyONVTDGIDJV9', 'choices': [{'finish_reason': 'stop', 'index': 0, 'logprobs': None, 'message': {'content': 'Not applicable\n\nThe ticket is focused on a positive experience with the driver, indicating no safety issue or accident occurred.', 'refusal': None, 'role': 'assistant', 'audio': None, 'function_call': None, 'tool_calls': None}}], 'created': 1734190050, 'model': 'gpt-4o-2024-08-06', 'object': 'chat.completion', 'service_tier': None, 'system_fingerprint': 'fp_a79d8dac1f', 'usage': {'completion_tokens': 23, 'prompt_tokens': 136, 'total_tokens': 159, 'completion_tokens_details': {'accepted_prediction_tokens': 0, 'audio_tokens': 0, 'reasoning_tokens': 0, 'rejected_prediction_tokens': 0}, 'prompt_tokens_details': {'audio_tokens': 0, 'cached_tokens': 0}}}","{'id': 'chatcmpl-AeOLCKCYRVigR4pvYwmfHECS1zB9M', 'choices': [{'finish_reason': 'stop', 'index': 0, 'logprobs': None, 'message': {'content': ""Very positive \nThe ticket expresses satisfaction and highlights the driver's friendliness and efficiency, indicating a very positive sentiment."", 'refusal': None, 'role': 'assistant', 'audio': None, 'function_call': None, 'tool_calls': None}}], 'created': 1734190050, 'model': 'gpt-4o-2024-08-06', 'object': 'chat.completion', 'service_tier': None, 'system_fingerprint': 'fp_9faba9f038', 'usage': {'completion_tokens': 21, 'prompt_tokens': 134, 'total_tokens': 155, 'completion_tokens_details': {'accepted_prediction_tokens': 0, 'audio_tokens': 0, 'reasoning_tokens': 0, 'rejected_prediction_tokens': 0}, 'prompt_tokens_details': {'audio_tokens': 0, 'cached_tokens': 0}}}",1834.8623853211009,2020.2020202020203,"{'id': 'chatcmpl-AeOLC9FQLgo25tyUPe41LoBveyZ0y', 'choices': [{'finish_reason': 'stop', 'index': 0, 'logprobs': None, 'message': {'content': ""[2]\n\nThe ticket mentions the driver's performance as being friendly and efficient, which relates to driver performance."", 'refusal': None, 'role': 'assistant', 'audio': None, 'function_call': None, 'tool_calls': None}}], 'created': 1734190050, 'model': 'gpt-4o-2024-08-06', 'object': 'chat.completion', 'service_tier': None, 'system_fingerprint': 'fp_9faba9f038', 'usage': {'completion_tokens': 21, 'prompt_tokens': 157, 'total_tokens': 178, 'completion_tokens_details': {'accepted_prediction_tokens': 0, 'audio_tokens': 0, 'reasoning_tokens': 0, 'rejected_prediction_tokens': 0}, 'prompt_tokens_details': {'audio_tokens': 0, 'cached_tokens': 0}}}",0.00068,1754.3859649122808,0.000495,0.0006025,"{'id': 'chatcmpl-AeOLCqZHEFzEvxuKoX8kAbadxaAaf', 'choices': [{'finish_reason': 'stop', 'index': 0, 'logprobs': None, 'message': {'content': ""It seems there is no issue in this ticket. Instead, it appears to be positive feedback about a great experience with the driver. It's always wonderful to receive compliments about friendly and efficient service!"", 'refusal': None, 'role': 'assistant', 'audio': None, 'function_call': None, 'tool_calls': None}}], 'created': 1734190050, 'model': 'gpt-4o-2024-08-06', 'object': 'chat.completion', 'service_tier': None, 'system_fingerprint': 'fp_a79d8dac1f', 'usage': {'completion_tokens': 38, 'prompt_tokens': 77, 'total_tokens': 115, 'completion_tokens_details': {'accepted_prediction_tokens': 0, 'audio_tokens': 0, 'reasoning_tokens': 0, 'rejected_prediction_tokens': 0}, 'prompt_tokens_details': {'audio_tokens': 0, 'cached_tokens': 0}}}",0.0005725,1746.7248908296945,"{'id': 'chatcmpl-AeOLCNsu77zdIcgDpy3OAkRF6xEXU', 'choices': [{'finish_reason': 'stop', 'index': 0, 'logprobs': None, 'message': {'content': '0 \nThis ticket is a positive feedback and does not require immediate action or resolution, so it is the lowest priority in terms of urgency.', 'refusal': None, 'role': 'assistant', 'audio': None, 'function_call': None, 'tool_calls': None}}], 'created': 1734190050, 'model': 'gpt-4o-2024-08-06', 'object': 'chat.completion', 'service_tier': None, 'system_fingerprint': 'fp_9faba9f038', 'usage': {'completion_tokens': 28, 'prompt_tokens': 160, 'total_tokens': 188, 'completion_tokens_details': {'accepted_prediction_tokens': 0, 'audio_tokens': 0, 'reasoning_tokens': 0, 'rejected_prediction_tokens': 0}, 'prompt_tokens_details': {'audio_tokens': 0, 'cached_tokens': 0}}}",1659.7510373443984,1470.5882352941176,0.00057,"{'id': 'chatcmpl-AeOLCmZUhnEH4J7FfgmiNMzeJNnTY', 'choices': [{'finish_reason': 'stop', 'index': 0, 'logprobs': None, 'message': {'content': 'No\n\nThe ticket expresses satisfaction with the service and does not mention any issues or requests for a refund.', 'refusal': None, 'role': 'assistant', 'audio': None, 'function_call': None, 'tool_calls': None}}], 'created': 1734190050, 'model': 'gpt-4o-2024-08-06', 'object': 'chat.completion', 'service_tier': None, 'system_fingerprint': 'fp_a79d8dac1f', 'usage': {'completion_tokens': 21, 'prompt_tokens': 114, 'total_tokens': 135, 'completion_tokens_details': {'accepted_prediction_tokens': 0, 'audio_tokens': 0, 'reasoning_tokens': 0, 'rejected_prediction_tokens': 0}, 'prompt_tokens_details': {'audio_tokens': 0, 'cached_tokens': 0}}}",0,Does the customer ask for a refund in this ticket? Ticket: {{ ticket }},"If the primary issue in this ticket is safety, was there an accident where someone was hurt? Ticket: {{ ticket }}",What is the primary issue in this ticket? Ticket: {{ ticket }},Check all of the issues mentioned in this ticket: {{ ticket }},"On a scale from 0 to 5, what is the priority level of this ticket? Ticket: {{ ticket }}",What is the sentiment of this ticket? Ticket: {{ ticket }},"['safety', 'cleanliness', 'driver performance', 'GPS/route', 'lost item', 'other']","['Very positive', 'Somewhat positive', 'Neutral', 'Somewhat negative', 'Very negative']",,"['No', 'Yes']","['Yes', 'No', 'Not applicable']","[0, 1, 2, 3, 4, 5]",linear_scale,multiple_choice,multiple_choice,yes_no,free_text,checkbox,,The ticket expresses satisfaction with the service and does not mention any issues or requests for a refund.,"This ticket is a positive feedback and does not require immediate action or resolution, so it is the lowest priority in terms of urgency.","The ticket mentions the driver's performance as being friendly and efficient, which relates to driver performance.","The ticket expresses satisfaction and highlights the driver's friendliness and efficiency, indicating a very positive sentiment.","The ticket is focused on a positive experience with the driver, indicating no safety issue or accident occurred.","Very positive The ticket expresses satisfaction and highlights the driver's friendliness and efficiency, indicating a very positive sentiment.","[2] The ticket mentions the driver's performance as being friendly and efficient, which relates to driver performance.","No The ticket expresses satisfaction with the service and does not mention any issues or requests for a refund.","It seems there is no issue in this ticket. Instead, it appears to be positive feedback about a great experience with the driver. It's always wonderful to receive compliments about friendly and efficient service!","Not applicable The ticket is focused on a positive experience with the driver, indicating no safety issue or accident occurred.","0 This ticket is a positive feedback and does not require immediate action or resolution, so it is the lowest priority in terms of urgency." No,Somewhat negative,No,The primary issue in this ticket is the customer's concern about the cleanliness of the vehicle. They feel that the vehicle was not cleaned to the standard they expect. Addressing this issue would involve ensuring the vehicle is thoroughly cleaned and possibly offering an apology or compensation to the customer for their inconvenience.,2,['cleanliness'],I'm concerned about the vehicle's cleanliness. It was not up to the standard I expect.,You are an expert customer service agent.,Agent_6,15,You are answering questions as if you were a human. Do not break character.,0,1,0,gpt-4o,0.5,False,1000,3,What is the primary issue in this ticket? Ticket: I'm concerned about the vehicle's cleanliness. It was not up to the standard I expect.,"You are answering questions as if you were a human. Do not break character. Your traits: {'persona': 'You are an expert customer service agent.', 'years_experience': 15}","You are answering questions as if you were a human. Do not break character. Your traits: {'persona': 'You are an expert customer service agent.', 'years_experience': 15}","Check all of the issues mentioned in this ticket: I'm concerned about the vehicle's cleanliness. It was not up to the standard I expect. 0: safety 1: cleanliness 2: driver performance 3: GPS/route 4: lost item 5: other Please respond only with a comma-separated list of the code of the options that apply, with square brackets. E.g., [0, 1, 3] After the answer, you can put a comment explaining your choice on the next line.","On a scale from 0 to 5, what is the priority level of this ticket? Ticket: I'm concerned about the vehicle's cleanliness. It was not up to the standard I expect. 0 : Lowest 1 : 2 : 3 : 4 : 5 : Highest Only 1 option may be selected. Respond only with the code corresponding to one of the options. E.g., ""1"" or ""5"" by itself. After the answer, you can put a comment explaining why you chose that option on the next line.","You are answering questions as if you were a human. Do not break character. Your traits: {'persona': 'You are an expert customer service agent.', 'years_experience': 15}","You are answering questions as if you were a human. Do not break character. Your traits: {'persona': 'You are an expert customer service agent.', 'years_experience': 15}","You are answering questions as if you were a human. Do not break character. Your traits: {'persona': 'You are an expert customer service agent.', 'years_experience': 15}"," What is the sentiment of this ticket? Ticket: I'm concerned about the vehicle's cleanliness. It was not up to the standard I expect. Very positive Somewhat positive Neutral Somewhat negative Very negative Only 1 option may be selected. Respond only with a string corresponding to one of the options. After the answer, you can put a comment explaining why you chose that option on the next line."," Does the customer ask for a refund in this ticket? Ticket: I'm concerned about the vehicle's cleanliness. It was not up to the standard I expect. No Yes Only 1 option may be selected. Please respond with just your answer. After the answer, you can put a comment explaining your response.","You are answering questions as if you were a human. Do not break character. Your traits: {'persona': 'You are an expert customer service agent.', 'years_experience': 15}"," If the primary issue in this ticket is safety, was there an accident where someone was hurt? Ticket: I'm concerned about the vehicle's cleanliness. It was not up to the standard I expect. Yes No Not applicable Only 1 option may be selected. Respond only with a string corresponding to one of the options. After the answer, you can put a comment explaining why you chose that option on the next line.",0.00065,"{'id': 'chatcmpl-AeOLDZlv2c2bgEbtuH2Sq8k5x9imD', 'choices': [{'finish_reason': 'stop', 'index': 0, 'logprobs': None, 'message': {'content': 'No \nThe ticket mentions concerns about cleanliness, not safety or any accidents involving injury.', 'refusal': None, 'role': 'assistant', 'audio': None, 'function_call': None, 'tool_calls': None}}], 'created': 1734190051, 'model': 'gpt-4o-2024-08-06', 'object': 'chat.completion', 'service_tier': None, 'system_fingerprint': 'fp_a79d8dac1f', 'usage': {'completion_tokens': 17, 'prompt_tokens': 138, 'total_tokens': 155, 'completion_tokens_details': {'accepted_prediction_tokens': 0, 'audio_tokens': 0, 'reasoning_tokens': 0, 'rejected_prediction_tokens': 0}, 'prompt_tokens_details': {'audio_tokens': 0, 'cached_tokens': 0}}}","{'id': 'chatcmpl-AeOLCIWYM0O7LNPRDNcK0RSY8TynI', 'choices': [{'finish_reason': 'stop', 'index': 0, 'logprobs': None, 'message': {'content': 'Somewhat negative \nThe customer expresses dissatisfaction with the cleanliness of the vehicle, indicating a concern and expectation not being met, which suggests a somewhat negative sentiment.', 'refusal': None, 'role': 'assistant', 'audio': None, 'function_call': None, 'tool_calls': None}}], 'created': 1734190050, 'model': 'gpt-4o-2024-08-06', 'object': 'chat.completion', 'service_tier': None, 'system_fingerprint': 'fp_9faba9f038', 'usage': {'completion_tokens': 31, 'prompt_tokens': 136, 'total_tokens': 167, 'completion_tokens_details': {'accepted_prediction_tokens': 0, 'audio_tokens': 0, 'reasoning_tokens': 0, 'rejected_prediction_tokens': 0}, 'prompt_tokens_details': {'audio_tokens': 0, 'cached_tokens': 0}}}",1538.4615384615386,1886.7924528301887,"{'id': 'chatcmpl-AeOLC9TNQVn6pxQlmwRnbgE3flVSk', 'choices': [{'finish_reason': 'stop', 'index': 0, 'logprobs': None, 'message': {'content': '[1]\n\nThe issue mentioned in the ticket is specifically about cleanliness, which corresponds to option 1.', 'refusal': None, 'role': 'assistant', 'audio': None, 'function_call': None, 'tool_calls': None}}], 'created': 1734190050, 'model': 'gpt-4o-2024-08-06', 'object': 'chat.completion', 'service_tier': None, 'system_fingerprint': 'fp_a79d8dac1f', 'usage': {'completion_tokens': 21, 'prompt_tokens': 159, 'total_tokens': 180, 'completion_tokens_details': {'accepted_prediction_tokens': 0, 'audio_tokens': 0, 'reasoning_tokens': 0, 'rejected_prediction_tokens': 0}, 'prompt_tokens_details': {'audio_tokens': 0, 'cached_tokens': 0}}}",0.000685,1941.7475728155339,0.00053,0.0006075,"{'id': 'chatcmpl-AeOLC5Iroi76WqjGrqJMxvu2nDcqY', 'choices': [{'finish_reason': 'stop', 'index': 0, 'logprobs': None, 'message': {'content': ""The primary issue in this ticket is the customer's concern about the cleanliness of the vehicle. They feel that the vehicle was not cleaned to the standard they expect. Addressing this issue would involve ensuring the vehicle is thoroughly cleaned and possibly offering an apology or compensation to the customer for their inconvenience."", 'refusal': None, 'role': 'assistant', 'audio': None, 'function_call': None, 'tool_calls': None}}], 'created': 1734190050, 'model': 'gpt-4o-2024-08-06', 'object': 'chat.completion', 'service_tier': None, 'system_fingerprint': 'fp_a79d8dac1f', 'usage': {'completion_tokens': 57, 'prompt_tokens': 79, 'total_tokens': 136, 'completion_tokens_details': {'accepted_prediction_tokens': 0, 'audio_tokens': 0, 'reasoning_tokens': 0, 'rejected_prediction_tokens': 0}, 'prompt_tokens_details': {'audio_tokens': 0, 'cached_tokens': 0}}}",0.0007675,1302.9315960912054,"{'id': 'chatcmpl-AeOLCIktqxFVXGnD4Tz9K2pmBdepJ', 'choices': [{'finish_reason': 'stop', 'index': 0, 'logprobs': None, 'message': {'content': ""2 \nWhile cleanliness is important for customer satisfaction, it typically doesn't pose an immediate operational or safety issue, thus assigning a moderate priority level."", 'refusal': None, 'role': 'assistant', 'audio': None, 'function_call': None, 'tool_calls': None}}], 'created': 1734190050, 'model': 'gpt-4o-2024-08-06', 'object': 'chat.completion', 'service_tier': None, 'system_fingerprint': 'fp_a79d8dac1f', 'usage': {'completion_tokens': 28, 'prompt_tokens': 162, 'total_tokens': 190, 'completion_tokens_details': {'accepted_prediction_tokens': 0, 'audio_tokens': 0, 'reasoning_tokens': 0, 'rejected_prediction_tokens': 0}, 'prompt_tokens_details': {'audio_tokens': 0, 'cached_tokens': 0}}}",1646.0905349794239,1459.8540145985403,0.000515,"{'id': 'chatcmpl-AeOLDcCaWF7nBTNM8AeatcjX2vcsT', 'choices': [{'finish_reason': 'stop', 'index': 0, 'logprobs': None, 'message': {'content': ""No\n\nThe customer expresses a concern about the vehicle's cleanliness but does not explicitly ask for a refund in the ticket."", 'refusal': None, 'role': 'assistant', 'audio': None, 'function_call': None, 'tool_calls': None}}], 'created': 1734190051, 'model': 'gpt-4o-2024-08-06', 'object': 'chat.completion', 'service_tier': None, 'system_fingerprint': 'fp_a79d8dac1f', 'usage': {'completion_tokens': 24, 'prompt_tokens': 116, 'total_tokens': 140, 'completion_tokens_details': {'accepted_prediction_tokens': 0, 'audio_tokens': 0, 'reasoning_tokens': 0, 'rejected_prediction_tokens': 0}, 'prompt_tokens_details': {'audio_tokens': 0, 'cached_tokens': 0}}}",0,Does the customer ask for a refund in this ticket? Ticket: {{ ticket }},"If the primary issue in this ticket is safety, was there an accident where someone was hurt? Ticket: {{ ticket }}",What is the primary issue in this ticket? Ticket: {{ ticket }},Check all of the issues mentioned in this ticket: {{ ticket }},"On a scale from 0 to 5, what is the priority level of this ticket? Ticket: {{ ticket }}",What is the sentiment of this ticket? Ticket: {{ ticket }},"['safety', 'cleanliness', 'driver performance', 'GPS/route', 'lost item', 'other']","['Very positive', 'Somewhat positive', 'Neutral', 'Somewhat negative', 'Very negative']",,"['No', 'Yes']","['Yes', 'No', 'Not applicable']","[0, 1, 2, 3, 4, 5]",linear_scale,multiple_choice,multiple_choice,yes_no,free_text,checkbox,,The customer expresses a concern about the vehicle's cleanliness but does not explicitly ask for a refund in the ticket.,"While cleanliness is important for customer satisfaction, it typically doesn't pose an immediate operational or safety issue, thus assigning a moderate priority level.","The issue mentioned in the ticket is specifically about cleanliness, which corresponds to option 1.","The customer expresses dissatisfaction with the cleanliness of the vehicle, indicating a concern and expectation not being met, which suggests a somewhat negative sentiment.","The ticket mentions concerns about cleanliness, not safety or any accidents involving injury.","Somewhat negative The customer expresses dissatisfaction with the cleanliness of the vehicle, indicating a concern and expectation not being met, which suggests a somewhat negative sentiment.","[1] The issue mentioned in the ticket is specifically about cleanliness, which corresponds to option 1.","No The customer expresses a concern about the vehicle's cleanliness but does not explicitly ask for a refund in the ticket.",The primary issue in this ticket is the customer's concern about the cleanliness of the vehicle. They feel that the vehicle was not cleaned to the standard they expect. Addressing this issue would involve ensuring the vehicle is thoroughly cleaned and possibly offering an apology or compensation to the customer for their inconvenience.,"No The ticket mentions concerns about cleanliness, not safety or any accidents involving injury.","2 While cleanliness is important for customer satisfaction, it typically doesn't pose an immediate operational or safety issue, thus assigning a moderate priority level." Not applicable,Somewhat negative,No,The primary issue in this ticket is that the app crashes whenever the user attempts to book a ride. The user is requesting a fix for this problem.,5,['other'],The app keeps crashing every time I try to book a ride. Please fix this issue.,You are an expert customer service agent.,Agent_7,15,You are answering questions as if you were a human. Do not break character.,0,1,0,gpt-4o,0.5,False,1000,3,What is the primary issue in this ticket? Ticket: The app keeps crashing every time I try to book a ride. Please fix this issue.,"You are answering questions as if you were a human. Do not break character. Your traits: {'persona': 'You are an expert customer service agent.', 'years_experience': 15}","You are answering questions as if you were a human. Do not break character. Your traits: {'persona': 'You are an expert customer service agent.', 'years_experience': 15}","Check all of the issues mentioned in this ticket: The app keeps crashing every time I try to book a ride. Please fix this issue. 0: safety 1: cleanliness 2: driver performance 3: GPS/route 4: lost item 5: other Please respond only with a comma-separated list of the code of the options that apply, with square brackets. E.g., [0, 1, 3] After the answer, you can put a comment explaining your choice on the next line.","On a scale from 0 to 5, what is the priority level of this ticket? Ticket: The app keeps crashing every time I try to book a ride. Please fix this issue. 0 : Lowest 1 : 2 : 3 : 4 : 5 : Highest Only 1 option may be selected. Respond only with the code corresponding to one of the options. E.g., ""1"" or ""5"" by itself. After the answer, you can put a comment explaining why you chose that option on the next line.","You are answering questions as if you were a human. Do not break character. Your traits: {'persona': 'You are an expert customer service agent.', 'years_experience': 15}","You are answering questions as if you were a human. Do not break character. Your traits: {'persona': 'You are an expert customer service agent.', 'years_experience': 15}","You are answering questions as if you were a human. Do not break character. Your traits: {'persona': 'You are an expert customer service agent.', 'years_experience': 15}"," What is the sentiment of this ticket? Ticket: The app keeps crashing every time I try to book a ride. Please fix this issue. Very positive Somewhat positive Neutral Somewhat negative Very negative Only 1 option may be selected. Respond only with a string corresponding to one of the options. After the answer, you can put a comment explaining why you chose that option on the next line."," Does the customer ask for a refund in this ticket? Ticket: The app keeps crashing every time I try to book a ride. Please fix this issue. No Yes Only 1 option may be selected. Please respond with just your answer. After the answer, you can put a comment explaining your response.","You are answering questions as if you were a human. Do not break character. Your traits: {'persona': 'You are an expert customer service agent.', 'years_experience': 15}"," If the primary issue in this ticket is safety, was there an accident where someone was hurt? Ticket: The app keeps crashing every time I try to book a ride. Please fix this issue. Yes No Not applicable Only 1 option may be selected. Respond only with a string corresponding to one of the options. After the answer, you can put a comment explaining why you chose that option on the next line.",0.00073,"{'id': 'chatcmpl-AeOLCLTGCZbqJTv2j2Yd7WIn4qyPt', 'choices': [{'finish_reason': 'stop', 'index': 0, 'logprobs': None, 'message': {'content': 'Not applicable\n\nThe ticket does not mention any accident or injury, only an app functionality issue.', 'refusal': None, 'role': 'assistant', 'audio': None, 'function_call': None, 'tool_calls': None}}], 'created': 1734190050, 'model': 'gpt-4o-2024-08-06', 'object': 'chat.completion', 'service_tier': None, 'system_fingerprint': 'fp_9faba9f038', 'usage': {'completion_tokens': 19, 'prompt_tokens': 138, 'total_tokens': 157, 'completion_tokens_details': {'accepted_prediction_tokens': 0, 'audio_tokens': 0, 'reasoning_tokens': 0, 'rejected_prediction_tokens': 0}, 'prompt_tokens_details': {'audio_tokens': 0, 'cached_tokens': 0}}}","{'id': 'chatcmpl-AeOLC8hVMqiECOyYcDQw56OO8WiFg', 'choices': [{'finish_reason': 'stop', 'index': 0, 'logprobs': None, 'message': {'content': 'Somewhat negative\n\nThe sentiment is somewhat negative because the customer is experiencing frustration with the app crashing, but they are still politely asking for the issue to be fixed rather than expressing anger or dissatisfaction.', 'refusal': None, 'role': 'assistant', 'audio': None, 'function_call': None, 'tool_calls': None}}], 'created': 1734190050, 'model': 'gpt-4o-2024-08-06', 'object': 'chat.completion', 'service_tier': None, 'system_fingerprint': 'fp_a79d8dac1f', 'usage': {'completion_tokens': 39, 'prompt_tokens': 136, 'total_tokens': 175, 'completion_tokens_details': {'accepted_prediction_tokens': 0, 'audio_tokens': 0, 'reasoning_tokens': 0, 'rejected_prediction_tokens': 0}, 'prompt_tokens_details': {'audio_tokens': 0, 'cached_tokens': 0}}}",1369.8630136986303,2173.913043478261,"{'id': 'chatcmpl-AeOLCevg56I8nPivQqwMUnysatyzD', 'choices': [{'finish_reason': 'stop', 'index': 0, 'logprobs': None, 'message': {'content': '[5] \nThe issue mentioned in the ticket is related to the app crashing, which fits under ""other"" as it doesn\'t relate to the specific categories like safety, cleanliness, driver performance, GPS/route, or lost item.', 'refusal': None, 'role': 'assistant', 'audio': None, 'function_call': None, 'tool_calls': None}}], 'created': 1734190050, 'model': 'gpt-4o-2024-08-06', 'object': 'chat.completion', 'service_tier': None, 'system_fingerprint': 'fp_9faba9f038', 'usage': {'completion_tokens': 47, 'prompt_tokens': 159, 'total_tokens': 206, 'completion_tokens_details': {'accepted_prediction_tokens': 0, 'audio_tokens': 0, 'reasoning_tokens': 0, 'rejected_prediction_tokens': 0}, 'prompt_tokens_details': {'audio_tokens': 0, 'cached_tokens': 0}}}",0.000735,1869.1588785046729,0.00046,0.0008675,"{'id': 'chatcmpl-AeOLDgEEwCOXm7TRUAkulODJpHJKz', 'choices': [{'finish_reason': 'stop', 'index': 0, 'logprobs': None, 'message': {'content': 'The primary issue in this ticket is that the app crashes whenever the user attempts to book a ride. The user is requesting a fix for this problem.', 'refusal': None, 'role': 'assistant', 'audio': None, 'function_call': None, 'tool_calls': None}}], 'created': 1734190051, 'model': 'gpt-4o-2024-08-06', 'object': 'chat.completion', 'service_tier': None, 'system_fingerprint': 'fp_a34b2727d6', 'usage': {'completion_tokens': 30, 'prompt_tokens': 79, 'total_tokens': 109, 'completion_tokens_details': {'accepted_prediction_tokens': 0, 'audio_tokens': 0, 'reasoning_tokens': 0, 'rejected_prediction_tokens': 0}, 'prompt_tokens_details': {'audio_tokens': 0, 'cached_tokens': 0}}}",0.0004975,2010.0502512562814,"{'id': 'chatcmpl-AeOLCNePJ7CXAWIWrUJIUft3v4EH5', 'choices': [{'finish_reason': 'stop', 'index': 0, 'logprobs': None, 'message': {'content': '5 \nThis issue directly affects the core functionality of the app, preventing users from booking rides, which is likely to result in significant user dissatisfaction and potential revenue loss.', 'refusal': None, 'role': 'assistant', 'audio': None, 'function_call': None, 'tool_calls': None}}], 'created': 1734190050, 'model': 'gpt-4o-2024-08-06', 'object': 'chat.completion', 'service_tier': None, 'system_fingerprint': 'fp_f785eb5f47', 'usage': {'completion_tokens': 33, 'prompt_tokens': 162, 'total_tokens': 195, 'completion_tokens_details': {'accepted_prediction_tokens': 0, 'audio_tokens': 0, 'reasoning_tokens': 0, 'rejected_prediction_tokens': 0}, 'prompt_tokens_details': {'audio_tokens': 0, 'cached_tokens': 0}}}",1152.7377521613832,1360.544217687075,0.000535,"{'id': 'chatcmpl-AeOLCjNK1fN9zEusiWvucrfEX4vEE', 'choices': [{'finish_reason': 'stop', 'index': 0, 'logprobs': None, 'message': {'content': 'No\n\nThe customer is requesting a fix for the app issue, not a refund.', 'refusal': None, 'role': 'assistant', 'audio': None, 'function_call': None, 'tool_calls': None}}], 'created': 1734190050, 'model': 'gpt-4o-2024-08-06', 'object': 'chat.completion', 'service_tier': None, 'system_fingerprint': 'fp_9faba9f038', 'usage': {'completion_tokens': 17, 'prompt_tokens': 116, 'total_tokens': 133, 'completion_tokens_details': {'accepted_prediction_tokens': 0, 'audio_tokens': 0, 'reasoning_tokens': 0, 'rejected_prediction_tokens': 0}, 'prompt_tokens_details': {'audio_tokens': 0, 'cached_tokens': 0}}}",0,Does the customer ask for a refund in this ticket? Ticket: {{ ticket }},"If the primary issue in this ticket is safety, was there an accident where someone was hurt? Ticket: {{ ticket }}",What is the primary issue in this ticket? Ticket: {{ ticket }},Check all of the issues mentioned in this ticket: {{ ticket }},"On a scale from 0 to 5, what is the priority level of this ticket? Ticket: {{ ticket }}",What is the sentiment of this ticket? Ticket: {{ ticket }},"['safety', 'cleanliness', 'driver performance', 'GPS/route', 'lost item', 'other']","['Very positive', 'Somewhat positive', 'Neutral', 'Somewhat negative', 'Very negative']",,"['No', 'Yes']","['Yes', 'No', 'Not applicable']","[0, 1, 2, 3, 4, 5]",linear_scale,multiple_choice,multiple_choice,yes_no,free_text,checkbox,,"The customer is requesting a fix for the app issue, not a refund.","This issue directly affects the core functionality of the app, preventing users from booking rides, which is likely to result in significant user dissatisfaction and potential revenue loss.","The issue mentioned in the ticket is related to the app crashing, which fits under ""other"" as it doesn't relate to the specific categories like safety, cleanliness, driver performance, GPS/route, or lost item.","The sentiment is somewhat negative because the customer is experiencing frustration with the app crashing, but they are still politely asking for the issue to be fixed rather than expressing anger or dissatisfaction.","The ticket does not mention any accident or injury, only an app functionality issue.","Somewhat negative The sentiment is somewhat negative because the customer is experiencing frustration with the app crashing, but they are still politely asking for the issue to be fixed rather than expressing anger or dissatisfaction.","[5] The issue mentioned in the ticket is related to the app crashing, which fits under ""other"" as it doesn't relate to the specific categories like safety, cleanliness, driver performance, GPS/route, or lost item.","No The customer is requesting a fix for the app issue, not a refund.",The primary issue in this ticket is that the app crashes whenever the user attempts to book a ride. The user is requesting a fix for this problem.,"Not applicable The ticket does not mention any accident or injury, only an app functionality issue.","5 This issue directly affects the core functionality of the app, preventing users from booking rides, which is likely to result in significant user dissatisfaction and potential revenue loss." Not applicable,Very positive,No,"The primary issue in this ticket is not a complaint or problem, but rather positive feedback. The customer is expressing satisfaction with their driver, highlighting the driver's safe driving, politeness, and the cleanliness of the car. This is a commendation rather than an issue.",0,"['safety', 'cleanliness', 'driver performance']","My driver was exceptional - safe driving, polite, and the car was spotless. Kudos!",You are an expert customer service agent.,Agent_8,15,You are answering questions as if you were a human. Do not break character.,0,1,0,gpt-4o,0.5,False,1000,3,"What is the primary issue in this ticket? Ticket: My driver was exceptional - safe driving, polite, and the car was spotless. Kudos!","You are answering questions as if you were a human. Do not break character. Your traits: {'persona': 'You are an expert customer service agent.', 'years_experience': 15}","You are answering questions as if you were a human. Do not break character. Your traits: {'persona': 'You are an expert customer service agent.', 'years_experience': 15}","Check all of the issues mentioned in this ticket: My driver was exceptional - safe driving, polite, and the car was spotless. Kudos! 0: safety 1: cleanliness 2: driver performance 3: GPS/route 4: lost item 5: other Please respond only with a comma-separated list of the code of the options that apply, with square brackets. E.g., [0, 1, 3] After the answer, you can put a comment explaining your choice on the next line.","On a scale from 0 to 5, what is the priority level of this ticket? Ticket: My driver was exceptional - safe driving, polite, and the car was spotless. Kudos! 0 : Lowest 1 : 2 : 3 : 4 : 5 : Highest Only 1 option may be selected. Respond only with the code corresponding to one of the options. E.g., ""1"" or ""5"" by itself. After the answer, you can put a comment explaining why you chose that option on the next line.","You are answering questions as if you were a human. Do not break character. Your traits: {'persona': 'You are an expert customer service agent.', 'years_experience': 15}","You are answering questions as if you were a human. Do not break character. Your traits: {'persona': 'You are an expert customer service agent.', 'years_experience': 15}","You are answering questions as if you were a human. Do not break character. Your traits: {'persona': 'You are an expert customer service agent.', 'years_experience': 15}"," What is the sentiment of this ticket? Ticket: My driver was exceptional - safe driving, polite, and the car was spotless. Kudos! Very positive Somewhat positive Neutral Somewhat negative Very negative Only 1 option may be selected. Respond only with a string corresponding to one of the options. After the answer, you can put a comment explaining why you chose that option on the next line."," Does the customer ask for a refund in this ticket? Ticket: My driver was exceptional - safe driving, polite, and the car was spotless. Kudos! No Yes Only 1 option may be selected. Please respond with just your answer. After the answer, you can put a comment explaining your response.","You are answering questions as if you were a human. Do not break character. Your traits: {'persona': 'You are an expert customer service agent.', 'years_experience': 15}"," If the primary issue in this ticket is safety, was there an accident where someone was hurt? Ticket: My driver was exceptional - safe driving, polite, and the car was spotless. Kudos! Yes No Not applicable Only 1 option may be selected. Respond only with a string corresponding to one of the options. After the answer, you can put a comment explaining why you chose that option on the next line.",0.00063,"{'id': 'chatcmpl-AeOLDiFEmrhZK8gGPJ2LL0SKjb5Bz', 'choices': [{'finish_reason': 'stop', 'index': 0, 'logprobs': None, 'message': {'content': ""Not applicable\n\nThe ticket is a compliment highlighting the driver's exceptional service, with no mention of an accident or injury."", 'refusal': None, 'role': 'assistant', 'audio': None, 'function_call': None, 'tool_calls': None}}], 'created': 1734190051, 'model': 'gpt-4o-2024-08-06', 'object': 'chat.completion', 'service_tier': None, 'system_fingerprint': 'fp_a79d8dac1f', 'usage': {'completion_tokens': 23, 'prompt_tokens': 138, 'total_tokens': 161, 'completion_tokens_details': {'accepted_prediction_tokens': 0, 'audio_tokens': 0, 'reasoning_tokens': 0, 'rejected_prediction_tokens': 0}, 'prompt_tokens_details': {'audio_tokens': 0, 'cached_tokens': 0}}}","{'id': 'chatcmpl-AeOLC6Ggy21c7DpG1EFsMgJzNWqCO', 'choices': [{'finish_reason': 'stop', 'index': 0, 'logprobs': None, 'message': {'content': 'Very positive \nThe ticket expresses high praise for the driver, highlighting safe driving, politeness, and cleanliness, which indicates a very positive sentiment.', 'refusal': None, 'role': 'assistant', 'audio': None, 'function_call': None, 'tool_calls': None}}], 'created': 1734190050, 'model': 'gpt-4o-2024-08-06', 'object': 'chat.completion', 'service_tier': None, 'system_fingerprint': 'fp_9faba9f038', 'usage': {'completion_tokens': 29, 'prompt_tokens': 136, 'total_tokens': 165, 'completion_tokens_details': {'accepted_prediction_tokens': 0, 'audio_tokens': 0, 'reasoning_tokens': 0, 'rejected_prediction_tokens': 0}, 'prompt_tokens_details': {'audio_tokens': 0, 'cached_tokens': 0}}}",1587.3015873015872,2083.3333333333335,"{'id': 'chatcmpl-AeOLCwwo7rl5zMFCQoHSpCTNusZL6', 'choices': [{'finish_reason': 'stop', 'index': 0, 'logprobs': None, 'message': {'content': ""[0, 1, 2]\n\nThe ticket mentions safe driving (safety), a spotless car (cleanliness), and the driver's polite behavior (driver performance)."", 'refusal': None, 'role': 'assistant', 'audio': None, 'function_call': None, 'tool_calls': None}}], 'created': 1734190050, 'model': 'gpt-4o-2024-08-06', 'object': 'chat.completion', 'service_tier': None, 'system_fingerprint': 'fp_a79d8dac1f', 'usage': {'completion_tokens': 34, 'prompt_tokens': 159, 'total_tokens': 193, 'completion_tokens_details': {'accepted_prediction_tokens': 0, 'audio_tokens': 0, 'reasoning_tokens': 0, 'rejected_prediction_tokens': 0}, 'prompt_tokens_details': {'audio_tokens': 0, 'cached_tokens': 0}}}",0.000615,1739.1304347826087,0.00048,0.0007375000000000001,"{'id': 'chatcmpl-AeOLCgOo6vkWt6QZXeBV47UYRKYHh', 'choices': [{'finish_reason': 'stop', 'index': 0, 'logprobs': None, 'message': {'content': ""The primary issue in this ticket is not a complaint or problem, but rather positive feedback. The customer is expressing satisfaction with their driver, highlighting the driver's safe driving, politeness, and the cleanliness of the car. This is a commendation rather than an issue."", 'refusal': None, 'role': 'assistant', 'audio': None, 'function_call': None, 'tool_calls': None}}], 'created': 1734190050, 'model': 'gpt-4o-2024-08-06', 'object': 'chat.completion', 'service_tier': None, 'system_fingerprint': 'fp_a79d8dac1f', 'usage': {'completion_tokens': 53, 'prompt_tokens': 79, 'total_tokens': 132, 'completion_tokens_details': {'accepted_prediction_tokens': 0, 'audio_tokens': 0, 'reasoning_tokens': 0, 'rejected_prediction_tokens': 0}, 'prompt_tokens_details': {'audio_tokens': 0, 'cached_tokens': 0}}}",0.0007275,1374.5704467353953,"{'id': 'chatcmpl-AeOLCrpaawXS3jvGQg7iQ3mGhqMaJ', 'choices': [{'finish_reason': 'stop', 'index': 0, 'logprobs': None, 'message': {'content': ""0 \nThis ticket is a positive feedback and doesn't require immediate action, so it is the lowest priority."", 'refusal': None, 'role': 'assistant', 'audio': None, 'function_call': None, 'tool_calls': None}}], 'created': 1734190050, 'model': 'gpt-4o-2024-08-06', 'object': 'chat.completion', 'service_tier': None, 'system_fingerprint': 'fp_9faba9f038', 'usage': {'completion_tokens': 21, 'prompt_tokens': 162, 'total_tokens': 183, 'completion_tokens_details': {'accepted_prediction_tokens': 0, 'audio_tokens': 0, 'reasoning_tokens': 0, 'rejected_prediction_tokens': 0}, 'prompt_tokens_details': {'audio_tokens': 0, 'cached_tokens': 0}}}",1355.9322033898304,1626.0162601626016,0.000575,"{'id': 'chatcmpl-AeOLDs1ZEA2Zrf5UGdX2p2XDzbFas', 'choices': [{'finish_reason': 'stop', 'index': 0, 'logprobs': None, 'message': {'content': ""No\n\nThe ticket is a compliment about the driver's service, not a request for a refund."", 'refusal': None, 'role': 'assistant', 'audio': None, 'function_call': None, 'tool_calls': None}}], 'created': 1734190051, 'model': 'gpt-4o-2024-08-06', 'object': 'chat.completion', 'service_tier': None, 'system_fingerprint': 'fp_a79d8dac1f', 'usage': {'completion_tokens': 19, 'prompt_tokens': 116, 'total_tokens': 135, 'completion_tokens_details': {'accepted_prediction_tokens': 0, 'audio_tokens': 0, 'reasoning_tokens': 0, 'rejected_prediction_tokens': 0}, 'prompt_tokens_details': {'audio_tokens': 0, 'cached_tokens': 0}}}",0,Does the customer ask for a refund in this ticket? Ticket: {{ ticket }},"If the primary issue in this ticket is safety, was there an accident where someone was hurt? Ticket: {{ ticket }}",What is the primary issue in this ticket? Ticket: {{ ticket }},Check all of the issues mentioned in this ticket: {{ ticket }},"On a scale from 0 to 5, what is the priority level of this ticket? Ticket: {{ ticket }}",What is the sentiment of this ticket? Ticket: {{ ticket }},"['safety', 'cleanliness', 'driver performance', 'GPS/route', 'lost item', 'other']","['Very positive', 'Somewhat positive', 'Neutral', 'Somewhat negative', 'Very negative']",,"['No', 'Yes']","['Yes', 'No', 'Not applicable']","[0, 1, 2, 3, 4, 5]",linear_scale,multiple_choice,multiple_choice,yes_no,free_text,checkbox,,"The ticket is a compliment about the driver's service, not a request for a refund.","This ticket is a positive feedback and doesn't require immediate action, so it is the lowest priority.","The ticket mentions safe driving (safety), a spotless car (cleanliness), and the driver's polite behavior (driver performance).","The ticket expresses high praise for the driver, highlighting safe driving, politeness, and cleanliness, which indicates a very positive sentiment.","The ticket is a compliment highlighting the driver's exceptional service, with no mention of an accident or injury.","Very positive The ticket expresses high praise for the driver, highlighting safe driving, politeness, and cleanliness, which indicates a very positive sentiment.","[0, 1, 2] The ticket mentions safe driving (safety), a spotless car (cleanliness), and the driver's polite behavior (driver performance).","No The ticket is a compliment about the driver's service, not a request for a refund.","The primary issue in this ticket is not a complaint or problem, but rather positive feedback. The customer is expressing satisfaction with their driver, highlighting the driver's safe driving, politeness, and the cleanliness of the car. This is a commendation rather than an issue.","Not applicable The ticket is a compliment highlighting the driver's exceptional service, with no mention of an accident or injury.","0 This ticket is a positive feedback and doesn't require immediate action, so it is the lowest priority." Not applicable,Very negative,No,The primary issue in this ticket is the customer's feeling of being unsafe due to the driver's erratic behavior. This is a serious concern that requires immediate attention to ensure the safety of passengers and to address any potential misconduct by the driver.,5,"['safety', 'driver performance']",I felt unsafe during my ride due to the driver's erratic behavior. This needs to be addressed immediately.,You are an expert customer service agent.,Agent_9,15,You are answering questions as if you were a human. Do not break character.,0,1,0,gpt-4o,0.5,False,1000,3,What is the primary issue in this ticket? Ticket: I felt unsafe during my ride due to the driver's erratic behavior. This needs to be addressed immediately.,"You are answering questions as if you were a human. Do not break character. Your traits: {'persona': 'You are an expert customer service agent.', 'years_experience': 15}","You are answering questions as if you were a human. Do not break character. Your traits: {'persona': 'You are an expert customer service agent.', 'years_experience': 15}","Check all of the issues mentioned in this ticket: I felt unsafe during my ride due to the driver's erratic behavior. This needs to be addressed immediately. 0: safety 1: cleanliness 2: driver performance 3: GPS/route 4: lost item 5: other Please respond only with a comma-separated list of the code of the options that apply, with square brackets. E.g., [0, 1, 3] After the answer, you can put a comment explaining your choice on the next line.","On a scale from 0 to 5, what is the priority level of this ticket? Ticket: I felt unsafe during my ride due to the driver's erratic behavior. This needs to be addressed immediately. 0 : Lowest 1 : 2 : 3 : 4 : 5 : Highest Only 1 option may be selected. Respond only with the code corresponding to one of the options. E.g., ""1"" or ""5"" by itself. After the answer, you can put a comment explaining why you chose that option on the next line.","You are answering questions as if you were a human. Do not break character. Your traits: {'persona': 'You are an expert customer service agent.', 'years_experience': 15}","You are answering questions as if you were a human. Do not break character. Your traits: {'persona': 'You are an expert customer service agent.', 'years_experience': 15}","You are answering questions as if you were a human. Do not break character. Your traits: {'persona': 'You are an expert customer service agent.', 'years_experience': 15}"," What is the sentiment of this ticket? Ticket: I felt unsafe during my ride due to the driver's erratic behavior. This needs to be addressed immediately. Very positive Somewhat positive Neutral Somewhat negative Very negative Only 1 option may be selected. Respond only with a string corresponding to one of the options. After the answer, you can put a comment explaining why you chose that option on the next line."," Does the customer ask for a refund in this ticket? Ticket: I felt unsafe during my ride due to the driver's erratic behavior. This needs to be addressed immediately. No Yes Only 1 option may be selected. Please respond with just your answer. After the answer, you can put a comment explaining your response.","You are answering questions as if you were a human. Do not break character. Your traits: {'persona': 'You are an expert customer service agent.', 'years_experience': 15}"," If the primary issue in this ticket is safety, was there an accident where someone was hurt? Ticket: I felt unsafe during my ride due to the driver's erratic behavior. This needs to be addressed immediately. Yes No Not applicable Only 1 option may be selected. Respond only with a string corresponding to one of the options. After the answer, you can put a comment explaining why you chose that option on the next line.",0.0006175,"{'id': 'chatcmpl-AeOLDsSVfAzsqBa3JAISUGj6dpaVr', 'choices': [{'finish_reason': 'stop', 'index': 0, 'logprobs': None, 'message': {'content': ""Not applicable\n\nThe ticket mentions feeling unsafe due to the driver's behavior but does not specify that an accident occurred or that someone was hurt."", 'refusal': None, 'role': 'assistant', 'audio': None, 'function_call': None, 'tool_calls': None}}], 'created': 1734190051, 'model': 'gpt-4o-2024-08-06', 'object': 'chat.completion', 'service_tier': None, 'system_fingerprint': 'fp_9faba9f038', 'usage': {'completion_tokens': 27, 'prompt_tokens': 141, 'total_tokens': 168, 'completion_tokens_details': {'accepted_prediction_tokens': 0, 'audio_tokens': 0, 'reasoning_tokens': 0, 'rejected_prediction_tokens': 0}, 'prompt_tokens_details': {'audio_tokens': 0, 'cached_tokens': 0}}}","{'id': 'chatcmpl-AeOLCok03ybme8mb2MGnPFVgHbmcz', 'choices': [{'finish_reason': 'stop', 'index': 0, 'logprobs': None, 'message': {'content': ""Very negative \nThe customer expresses feeling unsafe and describes the driver's behavior as erratic, which indicates a significant level of concern and dissatisfaction."", 'refusal': None, 'role': 'assistant', 'audio': None, 'function_call': None, 'tool_calls': None}}], 'created': 1734190050, 'model': 'gpt-4o-2024-08-06', 'object': 'chat.completion', 'service_tier': None, 'system_fingerprint': 'fp_a79d8dac1f', 'usage': {'completion_tokens': 27, 'prompt_tokens': 139, 'total_tokens': 166, 'completion_tokens_details': {'accepted_prediction_tokens': 0, 'audio_tokens': 0, 'reasoning_tokens': 0, 'rejected_prediction_tokens': 0}, 'prompt_tokens_details': {'audio_tokens': 0, 'cached_tokens': 0}}}",1619.4331983805669,1646.0905349794239,"{'id': 'chatcmpl-AeOLCkeRw3vCr3xmo8HRqYOyRo2ke', 'choices': [{'finish_reason': 'stop', 'index': 0, 'logprobs': None, 'message': {'content': ""[0, 2]\n\nSafety and driver performance are the issues mentioned, as the customer felt unsafe due to the driver's erratic behavior."", 'refusal': None, 'role': 'assistant', 'audio': None, 'function_call': None, 'tool_calls': None}}], 'created': 1734190050, 'model': 'gpt-4o-2024-08-06', 'object': 'chat.completion', 'service_tier': None, 'system_fingerprint': 'fp_9faba9f038', 'usage': {'completion_tokens': 28, 'prompt_tokens': 162, 'total_tokens': 190, 'completion_tokens_details': {'accepted_prediction_tokens': 0, 'audio_tokens': 0, 'reasoning_tokens': 0, 'rejected_prediction_tokens': 0}, 'prompt_tokens_details': {'audio_tokens': 0, 'cached_tokens': 0}}}",0.0008025,1606.425702811245,0.0006075,0.000685,"{'id': 'chatcmpl-AeOLDteGBIM35pXvdEBfViAuPPP1z', 'choices': [{'finish_reason': 'stop', 'index': 0, 'logprobs': None, 'message': {'content': ""The primary issue in this ticket is the customer's feeling of being unsafe due to the driver's erratic behavior. This is a serious concern that requires immediate attention to ensure the safety of passengers and to address any potential misconduct by the driver."", 'refusal': None, 'role': 'assistant', 'audio': None, 'function_call': None, 'tool_calls': None}}], 'created': 1734190051, 'model': 'gpt-4o-2024-08-06', 'object': 'chat.completion', 'service_tier': None, 'system_fingerprint': 'fp_9faba9f038', 'usage': {'completion_tokens': 46, 'prompt_tokens': 82, 'total_tokens': 128, 'completion_tokens_details': {'accepted_prediction_tokens': 0, 'audio_tokens': 0, 'reasoning_tokens': 0, 'rejected_prediction_tokens': 0}, 'prompt_tokens_details': {'audio_tokens': 0, 'cached_tokens': 0}}}",0.000665,1503.7593984962407,"{'id': 'chatcmpl-AeOLCB4fIT7pjorO6rQar3FjwxB1Y', 'choices': [{'finish_reason': 'stop', 'index': 0, 'logprobs': None, 'message': {'content': ""5 \nThis ticket should be prioritized at the highest level because it involves a safety concern, which requires immediate attention to ensure the safety of passengers and address any potential risks associated with the driver's behavior."", 'refusal': None, 'role': 'assistant', 'audio': None, 'function_call': None, 'tool_calls': None}}], 'created': 1734190050, 'model': 'gpt-4o-2024-08-06', 'object': 'chat.completion', 'service_tier': None, 'system_fingerprint': 'fp_9faba9f038', 'usage': {'completion_tokens': 39, 'prompt_tokens': 165, 'total_tokens': 204, 'completion_tokens_details': {'accepted_prediction_tokens': 0, 'audio_tokens': 0, 'reasoning_tokens': 0, 'rejected_prediction_tokens': 0}, 'prompt_tokens_details': {'audio_tokens': 0, 'cached_tokens': 0}}}",1459.8540145985403,1246.105919003115,0.0006225,"{'id': 'chatcmpl-AeOLCjn69cdgnvQrIKrOtZUfUZTWD', 'choices': [{'finish_reason': 'stop', 'index': 0, 'logprobs': None, 'message': {'content': ""No\n\nThe customer expresses concern about the driver's behavior and requests that the issue be addressed, but they do not explicitly ask for a refund in their message."", 'refusal': None, 'role': 'assistant', 'audio': None, 'function_call': None, 'tool_calls': None}}], 'created': 1734190050, 'model': 'gpt-4o-2024-08-06', 'object': 'chat.completion', 'service_tier': None, 'system_fingerprint': 'fp_9faba9f038', 'usage': {'completion_tokens': 31, 'prompt_tokens': 119, 'total_tokens': 150, 'completion_tokens_details': {'accepted_prediction_tokens': 0, 'audio_tokens': 0, 'reasoning_tokens': 0, 'rejected_prediction_tokens': 0}, 'prompt_tokens_details': {'audio_tokens': 0, 'cached_tokens': 0}}}",0,Does the customer ask for a refund in this ticket? Ticket: {{ ticket }},"If the primary issue in this ticket is safety, was there an accident where someone was hurt? Ticket: {{ ticket }}",What is the primary issue in this ticket? Ticket: {{ ticket }},Check all of the issues mentioned in this ticket: {{ ticket }},"On a scale from 0 to 5, what is the priority level of this ticket? Ticket: {{ ticket }}",What is the sentiment of this ticket? Ticket: {{ ticket }},"['safety', 'cleanliness', 'driver performance', 'GPS/route', 'lost item', 'other']","['Very positive', 'Somewhat positive', 'Neutral', 'Somewhat negative', 'Very negative']",,"['No', 'Yes']","['Yes', 'No', 'Not applicable']","[0, 1, 2, 3, 4, 5]",linear_scale,multiple_choice,multiple_choice,yes_no,free_text,checkbox,,"The customer expresses concern about the driver's behavior and requests that the issue be addressed, but they do not explicitly ask for a refund in their message.","This ticket should be prioritized at the highest level because it involves a safety concern, which requires immediate attention to ensure the safety of passengers and address any potential risks associated with the driver's behavior.","Safety and driver performance are the issues mentioned, as the customer felt unsafe due to the driver's erratic behavior.","The customer expresses feeling unsafe and describes the driver's behavior as erratic, which indicates a significant level of concern and dissatisfaction.",The ticket mentions feeling unsafe due to the driver's behavior but does not specify that an accident occurred or that someone was hurt.,"Very negative The customer expresses feeling unsafe and describes the driver's behavior as erratic, which indicates a significant level of concern and dissatisfaction.","[0, 2] Safety and driver performance are the issues mentioned, as the customer felt unsafe due to the driver's erratic behavior.","No The customer expresses concern about the driver's behavior and requests that the issue be addressed, but they do not explicitly ask for a refund in their message.",The primary issue in this ticket is the customer's feeling of being unsafe due to the driver's erratic behavior. This is a serious concern that requires immediate attention to ensure the safety of passengers and to address any potential misconduct by the driver.,"Not applicable The ticket mentions feeling unsafe due to the driver's behavior but does not specify that an accident occurred or that someone was hurt.","5 This ticket should be prioritized at the highest level because it involves a safety concern, which requires immediate attention to ensure the safety of passengers and address any potential risks associated with the driver's behavior." No,Very negative,No,"The primary issue in this ticket is that the driver did not follow the customer's preferred route, which the customer believes is shorter, leading to dissatisfaction with the service. As an expert customer service agent, I would address the customer's concern by acknowledging their frustration, explaining any possible reasons for the driver's decision (such as traffic conditions or company policy), and offering a resolution or compensation if appropriate.",2,"['driver performance', 'GPS/route']","The driver refused to follow my preferred route, which is shorter. I'm not satisfied with the service.",You are an expert customer service agent.,Agent_10,15,You are answering questions as if you were a human. Do not break character.,0,1,0,gpt-4o,0.5,False,1000,3,"What is the primary issue in this ticket? Ticket: The driver refused to follow my preferred route, which is shorter. I'm not satisfied with the service.","You are answering questions as if you were a human. Do not break character. Your traits: {'persona': 'You are an expert customer service agent.', 'years_experience': 15}","You are answering questions as if you were a human. Do not break character. Your traits: {'persona': 'You are an expert customer service agent.', 'years_experience': 15}","Check all of the issues mentioned in this ticket: The driver refused to follow my preferred route, which is shorter. I'm not satisfied with the service. 0: safety 1: cleanliness 2: driver performance 3: GPS/route 4: lost item 5: other Please respond only with a comma-separated list of the code of the options that apply, with square brackets. E.g., [0, 1, 3] After the answer, you can put a comment explaining your choice on the next line.","On a scale from 0 to 5, what is the priority level of this ticket? Ticket: The driver refused to follow my preferred route, which is shorter. I'm not satisfied with the service. 0 : Lowest 1 : 2 : 3 : 4 : 5 : Highest Only 1 option may be selected. Respond only with the code corresponding to one of the options. E.g., ""1"" or ""5"" by itself. After the answer, you can put a comment explaining why you chose that option on the next line.","You are answering questions as if you were a human. Do not break character. Your traits: {'persona': 'You are an expert customer service agent.', 'years_experience': 15}","You are answering questions as if you were a human. Do not break character. Your traits: {'persona': 'You are an expert customer service agent.', 'years_experience': 15}","You are answering questions as if you were a human. Do not break character. Your traits: {'persona': 'You are an expert customer service agent.', 'years_experience': 15}"," What is the sentiment of this ticket? Ticket: The driver refused to follow my preferred route, which is shorter. I'm not satisfied with the service. Very positive Somewhat positive Neutral Somewhat negative Very negative Only 1 option may be selected. Respond only with a string corresponding to one of the options. After the answer, you can put a comment explaining why you chose that option on the next line."," Does the customer ask for a refund in this ticket? Ticket: The driver refused to follow my preferred route, which is shorter. I'm not satisfied with the service. No Yes Only 1 option may be selected. Please respond with just your answer. After the answer, you can put a comment explaining your response.","You are answering questions as if you were a human. Do not break character. Your traits: {'persona': 'You are an expert customer service agent.', 'years_experience': 15}"," If the primary issue in this ticket is safety, was there an accident where someone was hurt? Ticket: The driver refused to follow my preferred route, which is shorter. I'm not satisfied with the service. Yes No Not applicable Only 1 option may be selected. Respond only with a string corresponding to one of the options. After the answer, you can put a comment explaining why you chose that option on the next line.",0.000615,"{'id': 'chatcmpl-AeOLCZPfd0sbnJ2o5ozNh5KoviSij', 'choices': [{'finish_reason': 'stop', 'index': 0, 'logprobs': None, 'message': {'content': ""No \nThe ticket does not mention any accident or injury, only dissatisfaction with the driver's route choice."", 'refusal': None, 'role': 'assistant', 'audio': None, 'function_call': None, 'tool_calls': None}}], 'created': 1734190050, 'model': 'gpt-4o-2024-08-06', 'object': 'chat.completion', 'service_tier': None, 'system_fingerprint': 'fp_a79d8dac1f', 'usage': {'completion_tokens': 20, 'prompt_tokens': 140, 'total_tokens': 160, 'completion_tokens_details': {'accepted_prediction_tokens': 0, 'audio_tokens': 0, 'reasoning_tokens': 0, 'rejected_prediction_tokens': 0}, 'prompt_tokens_details': {'audio_tokens': 0, 'cached_tokens': 0}}}","{'id': 'chatcmpl-AeOLCJGGWd2T4ExC2hqaWXkT4uOWO', 'choices': [{'finish_reason': 'stop', 'index': 0, 'logprobs': None, 'message': {'content': 'Very negative \nThe customer expresses dissatisfaction with the service and mentions that the driver refused to accommodate their request, indicating a strong negative sentiment.', 'refusal': None, 'role': 'assistant', 'audio': None, 'function_call': None, 'tool_calls': None}}], 'created': 1734190050, 'model': 'gpt-4o-2024-08-06', 'object': 'chat.completion', 'service_tier': None, 'system_fingerprint': 'fp_a79d8dac1f', 'usage': {'completion_tokens': 27, 'prompt_tokens': 138, 'total_tokens': 165, 'completion_tokens_details': {'accepted_prediction_tokens': 0, 'audio_tokens': 0, 'reasoning_tokens': 0, 'rejected_prediction_tokens': 0}, 'prompt_tokens_details': {'audio_tokens': 0, 'cached_tokens': 0}}}",1626.0162601626016,1600.0,"{'id': 'chatcmpl-AeOLDWJMzJLVEgYyL1hh16nxBZ3gd', 'choices': [{'finish_reason': 'stop', 'index': 0, 'logprobs': None, 'message': {'content': '[2, 3]\n\nThe issues mentioned in the ticket relate to driver performance (the driver refused to follow the preferred route) and GPS/route (the mention of a preferred route being shorter).', 'refusal': None, 'role': 'assistant', 'audio': None, 'function_call': None, 'tool_calls': None}}], 'created': 1734190051, 'model': 'gpt-4o-2024-08-06', 'object': 'chat.completion', 'service_tier': None, 'system_fingerprint': 'fp_a79d8dac1f', 'usage': {'completion_tokens': 40, 'prompt_tokens': 161, 'total_tokens': 201, 'completion_tokens_details': {'accepted_prediction_tokens': 0, 'audio_tokens': 0, 'reasoning_tokens': 0, 'rejected_prediction_tokens': 0}, 'prompt_tokens_details': {'audio_tokens': 0, 'cached_tokens': 0}}}",0.0007700000000000001,1818.181818181818,0.000625,0.0008025,"{'id': 'chatcmpl-AeOLCBekeTf7HGYGZB6xgFVZrryWT', 'choices': [{'finish_reason': 'stop', 'index': 0, 'logprobs': None, 'message': {'content': ""The primary issue in this ticket is that the driver did not follow the customer's preferred route, which the customer believes is shorter, leading to dissatisfaction with the service. As an expert customer service agent, I would address the customer's concern by acknowledging their frustration, explaining any possible reasons for the driver's decision (such as traffic conditions or company policy), and offering a resolution or compensation if appropriate."", 'refusal': None, 'role': 'assistant', 'audio': None, 'function_call': None, 'tool_calls': None}}], 'created': 1734190050, 'model': 'gpt-4o-2024-08-06', 'object': 'chat.completion', 'service_tier': None, 'system_fingerprint': 'fp_9faba9f038', 'usage': {'completion_tokens': 76, 'prompt_tokens': 81, 'total_tokens': 157, 'completion_tokens_details': {'accepted_prediction_tokens': 0, 'audio_tokens': 0, 'reasoning_tokens': 0, 'rejected_prediction_tokens': 0}, 'prompt_tokens_details': {'audio_tokens': 0, 'cached_tokens': 0}}}",0.0009625,1038.9610389610389,"{'id': 'chatcmpl-AeOLCCcqnpOt5kULdxmRtsDIDmbTP', 'choices': [{'finish_reason': 'stop', 'index': 0, 'logprobs': None, 'message': {'content': '2 \nThis issue is important as it pertains to customer satisfaction and service quality, but it is not an urgent safety or operational issue. Addressing it will help improve customer experience.', 'refusal': None, 'role': 'assistant', 'audio': None, 'function_call': None, 'tool_calls': None}}], 'created': 1734190050, 'model': 'gpt-4o-2024-08-06', 'object': 'chat.completion', 'service_tier': None, 'system_fingerprint': 'fp_a79d8dac1f', 'usage': {'completion_tokens': 36, 'prompt_tokens': 164, 'total_tokens': 200, 'completion_tokens_details': {'accepted_prediction_tokens': 0, 'audio_tokens': 0, 'reasoning_tokens': 0, 'rejected_prediction_tokens': 0}, 'prompt_tokens_details': {'audio_tokens': 0, 'cached_tokens': 0}}}",1246.105919003115,1298.7012987012986,0.00055,"{'id': 'chatcmpl-AeOLCcwva93KAx6mrbR1t4ePoxugS', 'choices': [{'finish_reason': 'stop', 'index': 0, 'logprobs': None, 'message': {'content': 'No\n\nThe ticket does not explicitly mention a request for a refund. The customer is expressing dissatisfaction with the service, but they have not directly asked for a refund.', 'refusal': None, 'role': 'assistant', 'audio': None, 'function_call': None, 'tool_calls': None}}], 'created': 1734190050, 'model': 'gpt-4o-2024-08-06', 'object': 'chat.completion', 'service_tier': None, 'system_fingerprint': 'fp_a79d8dac1f', 'usage': {'completion_tokens': 33, 'prompt_tokens': 118, 'total_tokens': 151, 'completion_tokens_details': {'accepted_prediction_tokens': 0, 'audio_tokens': 0, 'reasoning_tokens': 0, 'rejected_prediction_tokens': 0}, 'prompt_tokens_details': {'audio_tokens': 0, 'cached_tokens': 0}}}",0,Does the customer ask for a refund in this ticket? Ticket: {{ ticket }},"If the primary issue in this ticket is safety, was there an accident where someone was hurt? Ticket: {{ ticket }}",What is the primary issue in this ticket? Ticket: {{ ticket }},Check all of the issues mentioned in this ticket: {{ ticket }},"On a scale from 0 to 5, what is the priority level of this ticket? Ticket: {{ ticket }}",What is the sentiment of this ticket? Ticket: {{ ticket }},"['safety', 'cleanliness', 'driver performance', 'GPS/route', 'lost item', 'other']","['Very positive', 'Somewhat positive', 'Neutral', 'Somewhat negative', 'Very negative']",,"['No', 'Yes']","['Yes', 'No', 'Not applicable']","[0, 1, 2, 3, 4, 5]",linear_scale,multiple_choice,multiple_choice,yes_no,free_text,checkbox,,"The ticket does not explicitly mention a request for a refund. The customer is expressing dissatisfaction with the service, but they have not directly asked for a refund.","This issue is important as it pertains to customer satisfaction and service quality, but it is not an urgent safety or operational issue. Addressing it will help improve customer experience.",The issues mentioned in the ticket relate to driver performance (the driver refused to follow the preferred route) and GPS/route (the mention of a preferred route being shorter).,"The customer expresses dissatisfaction with the service and mentions that the driver refused to accommodate their request, indicating a strong negative sentiment.","The ticket does not mention any accident or injury, only dissatisfaction with the driver's route choice.","Very negative The customer expresses dissatisfaction with the service and mentions that the driver refused to accommodate their request, indicating a strong negative sentiment.","[2, 3] The issues mentioned in the ticket relate to driver performance (the driver refused to follow the preferred route) and GPS/route (the mention of a preferred route being shorter).","No The ticket does not explicitly mention a request for a refund. The customer is expressing dissatisfaction with the service, but they have not directly asked for a refund.","The primary issue in this ticket is that the driver did not follow the customer's preferred route, which the customer believes is shorter, leading to dissatisfaction with the service. As an expert customer service agent, I would address the customer's concern by acknowledging their frustration, explaining any possible reasons for the driver's decision (such as traffic conditions or company policy), and offering a resolution or compensation if appropriate.","No The ticket does not mention any accident or injury, only dissatisfaction with the driver's route choice.","2 This issue is important as it pertains to customer satisfaction and service quality, but it is not an urgent safety or operational issue. Addressing it will help improve customer experience." Not applicable,Very positive,No,"Based on the content of the ticket, it appears that there is no issue being reported. Instead, the ticket contains positive feedback regarding the quick response to a ride request and the professionalism of the driver. This is a commendation rather than a complaint or issue that needs resolution.",0,"['driver performance', 'other']",Impressed with the quick response to my ride request and the driver's professionalism.,You are an expert customer service agent.,Agent_11,15,You are answering questions as if you were a human. Do not break character.,0,1,0,gpt-4o,0.5,False,1000,3,What is the primary issue in this ticket? Ticket: Impressed with the quick response to my ride request and the driver's professionalism.,"You are answering questions as if you were a human. Do not break character. Your traits: {'persona': 'You are an expert customer service agent.', 'years_experience': 15}","You are answering questions as if you were a human. Do not break character. Your traits: {'persona': 'You are an expert customer service agent.', 'years_experience': 15}","Check all of the issues mentioned in this ticket: Impressed with the quick response to my ride request and the driver's professionalism. 0: safety 1: cleanliness 2: driver performance 3: GPS/route 4: lost item 5: other Please respond only with a comma-separated list of the code of the options that apply, with square brackets. E.g., [0, 1, 3] After the answer, you can put a comment explaining your choice on the next line.","On a scale from 0 to 5, what is the priority level of this ticket? Ticket: Impressed with the quick response to my ride request and the driver's professionalism. 0 : Lowest 1 : 2 : 3 : 4 : 5 : Highest Only 1 option may be selected. Respond only with the code corresponding to one of the options. E.g., ""1"" or ""5"" by itself. After the answer, you can put a comment explaining why you chose that option on the next line.","You are answering questions as if you were a human. Do not break character. Your traits: {'persona': 'You are an expert customer service agent.', 'years_experience': 15}","You are answering questions as if you were a human. Do not break character. Your traits: {'persona': 'You are an expert customer service agent.', 'years_experience': 15}","You are answering questions as if you were a human. Do not break character. Your traits: {'persona': 'You are an expert customer service agent.', 'years_experience': 15}"," What is the sentiment of this ticket? Ticket: Impressed with the quick response to my ride request and the driver's professionalism. Very positive Somewhat positive Neutral Somewhat negative Very negative Only 1 option may be selected. Respond only with a string corresponding to one of the options. After the answer, you can put a comment explaining why you chose that option on the next line."," Does the customer ask for a refund in this ticket? Ticket: Impressed with the quick response to my ride request and the driver's professionalism. No Yes Only 1 option may be selected. Please respond with just your answer. After the answer, you can put a comment explaining your response.","You are answering questions as if you were a human. Do not break character. Your traits: {'persona': 'You are an expert customer service agent.', 'years_experience': 15}"," If the primary issue in this ticket is safety, was there an accident where someone was hurt? Ticket: Impressed with the quick response to my ride request and the driver's professionalism. Yes No Not applicable Only 1 option may be selected. Respond only with a string corresponding to one of the options. After the answer, you can put a comment explaining why you chose that option on the next line.",0.0005825,"{'id': 'chatcmpl-AeOLCLUW9o6IGI0JWTnJxoHWPOQS1', 'choices': [{'finish_reason': 'stop', 'index': 0, 'logprobs': None, 'message': {'content': ""Not applicable\n\nThe ticket does not indicate any safety issue or accident; it praises the driver's professionalism and the quick response to the ride request."", 'refusal': None, 'role': 'assistant', 'audio': None, 'function_call': None, 'tool_calls': None}}], 'created': 1734190050, 'model': 'gpt-4o-2024-08-06', 'object': 'chat.completion', 'service_tier': None, 'system_fingerprint': 'fp_a79d8dac1f', 'usage': {'completion_tokens': 28, 'prompt_tokens': 135, 'total_tokens': 163, 'completion_tokens_details': {'accepted_prediction_tokens': 0, 'audio_tokens': 0, 'reasoning_tokens': 0, 'rejected_prediction_tokens': 0}, 'prompt_tokens_details': {'audio_tokens': 0, 'cached_tokens': 0}}}","{'id': 'chatcmpl-AeOLCRSuUIKWqNoon4c7iHdF14Ndc', 'choices': [{'finish_reason': 'stop', 'index': 0, 'logprobs': None, 'message': {'content': 'Very positive\n\nThe ticket expresses satisfaction with both the quick response and the professionalism of the driver, indicating a very positive sentiment.', 'refusal': None, 'role': 'assistant', 'audio': None, 'function_call': None, 'tool_calls': None}}], 'created': 1734190050, 'model': 'gpt-4o-2024-08-06', 'object': 'chat.completion', 'service_tier': None, 'system_fingerprint': 'fp_a79d8dac1f', 'usage': {'completion_tokens': 25, 'prompt_tokens': 133, 'total_tokens': 158, 'completion_tokens_details': {'accepted_prediction_tokens': 0, 'audio_tokens': 0, 'reasoning_tokens': 0, 'rejected_prediction_tokens': 0}, 'prompt_tokens_details': {'audio_tokens': 0, 'cached_tokens': 0}}}",1716.7381974248926,1659.7510373443984,"{'id': 'chatcmpl-AeOLDimvg4EExuHkD2JnyH5T0euAu', 'choices': [{'finish_reason': 'stop', 'index': 0, 'logprobs': None, 'message': {'content': '[2, 5] \nThe ticket mentions the driver\'s professionalism, which relates to driver performance. ""Other"" is selected for the quick response to the ride request, as it doesn\'t fit the other categories.', 'refusal': None, 'role': 'assistant', 'audio': None, 'function_call': None, 'tool_calls': None}}], 'created': 1734190051, 'model': 'gpt-4o-2024-08-06', 'object': 'chat.completion', 'service_tier': None, 'system_fingerprint': 'fp_9faba9f038', 'usage': {'completion_tokens': 42, 'prompt_tokens': 156, 'total_tokens': 198, 'completion_tokens_details': {'accepted_prediction_tokens': 0, 'audio_tokens': 0, 'reasoning_tokens': 0, 'rejected_prediction_tokens': 0}, 'prompt_tokens_details': {'audio_tokens': 0, 'cached_tokens': 0}}}",0.0006375,1619.4331983805669,0.0006025,0.00081,"{'id': 'chatcmpl-AeOLCLscXFDvtm7IyW12BB2867tJe', 'choices': [{'finish_reason': 'stop', 'index': 0, 'logprobs': None, 'message': {'content': 'Based on the content of the ticket, it appears that there is no issue being reported. Instead, the ticket contains positive feedback regarding the quick response to a ride request and the professionalism of the driver. This is a commendation rather than a complaint or issue that needs resolution.', 'refusal': None, 'role': 'assistant', 'audio': None, 'function_call': None, 'tool_calls': None}}], 'created': 1734190050, 'model': 'gpt-4o-2024-08-06', 'object': 'chat.completion', 'service_tier': None, 'system_fingerprint': 'fp_9faba9f038', 'usage': {'completion_tokens': 55, 'prompt_tokens': 76, 'total_tokens': 131, 'completion_tokens_details': {'accepted_prediction_tokens': 0, 'audio_tokens': 0, 'reasoning_tokens': 0, 'rejected_prediction_tokens': 0}, 'prompt_tokens_details': {'audio_tokens': 0, 'cached_tokens': 0}}}",0.00074,1351.3513513513515,"{'id': 'chatcmpl-AeOLCseD0saokcKXX33MgIhDxal1B', 'choices': [{'finish_reason': 'stop', 'index': 0, 'logprobs': None, 'message': {'content': '0 \nThis ticket reflects positive feedback and does not indicate an issue requiring resolution, so it has the lowest priority level.', 'refusal': None, 'role': 'assistant', 'audio': None, 'function_call': None, 'tool_calls': None}}], 'created': 1734190050, 'model': 'gpt-4o-2024-08-06', 'object': 'chat.completion', 'service_tier': None, 'system_fingerprint': 'fp_a79d8dac1f', 'usage': {'completion_tokens': 24, 'prompt_tokens': 159, 'total_tokens': 183, 'completion_tokens_details': {'accepted_prediction_tokens': 0, 'audio_tokens': 0, 'reasoning_tokens': 0, 'rejected_prediction_tokens': 0}, 'prompt_tokens_details': {'audio_tokens': 0, 'cached_tokens': 0}}}",1234.567901234568,1568.627450980392,0.0006175,"{'id': 'chatcmpl-AeOLC72GAMEKlEmWBaz2XoLI7GaTz', 'choices': [{'finish_reason': 'stop', 'index': 0, 'logprobs': None, 'message': {'content': ""No\n\nThe ticket expresses satisfaction with the service, specifically mentioning the quick response and the driver's professionalism. There is no indication that the customer is seeking a refund."", 'refusal': None, 'role': 'assistant', 'audio': None, 'function_call': None, 'tool_calls': None}}], 'created': 1734190050, 'model': 'gpt-4o-2024-08-06', 'object': 'chat.completion', 'service_tier': None, 'system_fingerprint': 'fp_9faba9f038', 'usage': {'completion_tokens': 32, 'prompt_tokens': 113, 'total_tokens': 145, 'completion_tokens_details': {'accepted_prediction_tokens': 0, 'audio_tokens': 0, 'reasoning_tokens': 0, 'rejected_prediction_tokens': 0}, 'prompt_tokens_details': {'audio_tokens': 0, 'cached_tokens': 0}}}",0,Does the customer ask for a refund in this ticket? Ticket: {{ ticket }},"If the primary issue in this ticket is safety, was there an accident where someone was hurt? Ticket: {{ ticket }}",What is the primary issue in this ticket? Ticket: {{ ticket }},Check all of the issues mentioned in this ticket: {{ ticket }},"On a scale from 0 to 5, what is the priority level of this ticket? Ticket: {{ ticket }}",What is the sentiment of this ticket? Ticket: {{ ticket }},"['safety', 'cleanliness', 'driver performance', 'GPS/route', 'lost item', 'other']","['Very positive', 'Somewhat positive', 'Neutral', 'Somewhat negative', 'Very negative']",,"['No', 'Yes']","['Yes', 'No', 'Not applicable']","[0, 1, 2, 3, 4, 5]",linear_scale,multiple_choice,multiple_choice,yes_no,free_text,checkbox,,"The ticket expresses satisfaction with the service, specifically mentioning the quick response and the driver's professionalism. There is no indication that the customer is seeking a refund.","This ticket reflects positive feedback and does not indicate an issue requiring resolution, so it has the lowest priority level.","The ticket mentions the driver's professionalism, which relates to driver performance. ""Other"" is selected for the quick response to the ride request, as it doesn't fit the other categories.","The ticket expresses satisfaction with both the quick response and the professionalism of the driver, indicating a very positive sentiment.",The ticket does not indicate any safety issue or accident; it praises the driver's professionalism and the quick response to the ride request.,"Very positive The ticket expresses satisfaction with both the quick response and the professionalism of the driver, indicating a very positive sentiment.","[2, 5] The ticket mentions the driver's professionalism, which relates to driver performance. ""Other"" is selected for the quick response to the ride request, as it doesn't fit the other categories.","No The ticket expresses satisfaction with the service, specifically mentioning the quick response and the driver's professionalism. There is no indication that the customer is seeking a refund.","Based on the content of the ticket, it appears that there is no issue being reported. Instead, the ticket contains positive feedback regarding the quick response to a ride request and the professionalism of the driver. This is a commendation rather than a complaint or issue that needs resolution.","Not applicable The ticket does not indicate any safety issue or accident; it praises the driver's professionalism and the quick response to the ride request.","0 This ticket reflects positive feedback and does not indicate an issue requiring resolution, so it has the lowest priority level." Not applicable,Somewhat negative,Yes,The primary issue in this ticket is an incorrect charge for a ride that the customer claims they did not take. The customer is requesting a refund for this charge.,3,['other'],I was charged for a ride I never took. Please refund me as soon as possible.,You are an expert customer service agent.,Agent_12,15,You are answering questions as if you were a human. Do not break character.,0,1,0,gpt-4o,0.5,False,1000,3,What is the primary issue in this ticket? Ticket: I was charged for a ride I never took. Please refund me as soon as possible.,"You are answering questions as if you were a human. Do not break character. Your traits: {'persona': 'You are an expert customer service agent.', 'years_experience': 15}","You are answering questions as if you were a human. Do not break character. Your traits: {'persona': 'You are an expert customer service agent.', 'years_experience': 15}","Check all of the issues mentioned in this ticket: I was charged for a ride I never took. Please refund me as soon as possible. 0: safety 1: cleanliness 2: driver performance 3: GPS/route 4: lost item 5: other Please respond only with a comma-separated list of the code of the options that apply, with square brackets. E.g., [0, 1, 3] After the answer, you can put a comment explaining your choice on the next line.","On a scale from 0 to 5, what is the priority level of this ticket? Ticket: I was charged for a ride I never took. Please refund me as soon as possible. 0 : Lowest 1 : 2 : 3 : 4 : 5 : Highest Only 1 option may be selected. Respond only with the code corresponding to one of the options. E.g., ""1"" or ""5"" by itself. After the answer, you can put a comment explaining why you chose that option on the next line.","You are answering questions as if you were a human. Do not break character. Your traits: {'persona': 'You are an expert customer service agent.', 'years_experience': 15}","You are answering questions as if you were a human. Do not break character. Your traits: {'persona': 'You are an expert customer service agent.', 'years_experience': 15}","You are answering questions as if you were a human. Do not break character. Your traits: {'persona': 'You are an expert customer service agent.', 'years_experience': 15}"," What is the sentiment of this ticket? Ticket: I was charged for a ride I never took. Please refund me as soon as possible. Very positive Somewhat positive Neutral Somewhat negative Very negative Only 1 option may be selected. Respond only with a string corresponding to one of the options. After the answer, you can put a comment explaining why you chose that option on the next line."," Does the customer ask for a refund in this ticket? Ticket: I was charged for a ride I never took. Please refund me as soon as possible. No Yes Only 1 option may be selected. Please respond with just your answer. After the answer, you can put a comment explaining your response.","You are answering questions as if you were a human. Do not break character. Your traits: {'persona': 'You are an expert customer service agent.', 'years_experience': 15}"," If the primary issue in this ticket is safety, was there an accident where someone was hurt? Ticket: I was charged for a ride I never took. Please refund me as soon as possible. Yes No Not applicable Only 1 option may be selected. Respond only with a string corresponding to one of the options. After the answer, you can put a comment explaining why you chose that option on the next line.",0.0005600000000000001,"{'id': 'chatcmpl-AeOLCtyCkRRFuNg9PpeDWOU38WN1r', 'choices': [{'finish_reason': 'stop', 'index': 0, 'logprobs': None, 'message': {'content': 'Not applicable\n\nThe ticket is about a billing issue, not a safety concern.', 'refusal': None, 'role': 'assistant', 'audio': None, 'function_call': None, 'tool_calls': None}}], 'created': 1734190050, 'model': 'gpt-4o-2024-08-06', 'object': 'chat.completion', 'service_tier': None, 'system_fingerprint': 'fp_a79d8dac1f', 'usage': {'completion_tokens': 16, 'prompt_tokens': 138, 'total_tokens': 154, 'completion_tokens_details': {'accepted_prediction_tokens': 0, 'audio_tokens': 0, 'reasoning_tokens': 0, 'rejected_prediction_tokens': 0}, 'prompt_tokens_details': {'audio_tokens': 0, 'cached_tokens': 0}}}","{'id': 'chatcmpl-AeOLCnzEHgubdsib4XoXjTEsZsQJp', 'choices': [{'finish_reason': 'stop', 'index': 0, 'logprobs': None, 'message': {'content': 'Somewhat negative\n\nThe ticket expresses dissatisfaction and urgency due to an incorrect charge, indicating a somewhat negative sentiment.', 'refusal': None, 'role': 'assistant', 'audio': None, 'function_call': None, 'tool_calls': None}}], 'created': 1734190050, 'model': 'gpt-4o-2024-08-06', 'object': 'chat.completion', 'service_tier': None, 'system_fingerprint': 'fp_9faba9f038', 'usage': {'completion_tokens': 22, 'prompt_tokens': 136, 'total_tokens': 158, 'completion_tokens_details': {'accepted_prediction_tokens': 0, 'audio_tokens': 0, 'reasoning_tokens': 0, 'rejected_prediction_tokens': 0}, 'prompt_tokens_details': {'audio_tokens': 0, 'cached_tokens': 0}}}",1785.7142857142856,2040.8163265306123,"{'id': 'chatcmpl-AeOLCGqJ2TvqgmvuLtfUZldpCjXwg', 'choices': [{'finish_reason': 'stop', 'index': 0, 'logprobs': None, 'message': {'content': '[5] \nThe issue mentioned in the ticket is related to a charge for a ride that was not taken, which doesn\'t fit into the predefined categories except for ""other.""', 'refusal': None, 'role': 'assistant', 'audio': None, 'function_call': None, 'tool_calls': None}}], 'created': 1734190050, 'model': 'gpt-4o-2024-08-06', 'object': 'chat.completion', 'service_tier': None, 'system_fingerprint': 'fp_a79d8dac1f', 'usage': {'completion_tokens': 35, 'prompt_tokens': 159, 'total_tokens': 194, 'completion_tokens_details': {'accepted_prediction_tokens': 0, 'audio_tokens': 0, 'reasoning_tokens': 0, 'rejected_prediction_tokens': 0}, 'prompt_tokens_details': {'audio_tokens': 0, 'cached_tokens': 0}}}",0.0008049999999999999,1980.19801980198,0.00049,0.0007475,"{'id': 'chatcmpl-AeOLC7JDbPaFjqSb0nd5UaLQhWZxu', 'choices': [{'finish_reason': 'stop', 'index': 0, 'logprobs': None, 'message': {'content': 'The primary issue in this ticket is an incorrect charge for a ride that the customer claims they did not take. The customer is requesting a refund for this charge.', 'refusal': None, 'role': 'assistant', 'audio': None, 'function_call': None, 'tool_calls': None}}], 'created': 1734190050, 'model': 'gpt-4o-2024-08-06', 'object': 'chat.completion', 'service_tier': None, 'system_fingerprint': 'fp_9faba9f038', 'usage': {'completion_tokens': 32, 'prompt_tokens': 79, 'total_tokens': 111, 'completion_tokens_details': {'accepted_prediction_tokens': 0, 'audio_tokens': 0, 'reasoning_tokens': 0, 'rejected_prediction_tokens': 0}, 'prompt_tokens_details': {'audio_tokens': 0, 'cached_tokens': 0}}}",0.0005175000000000001,1932.367149758454,"{'id': 'chatcmpl-AeOLC12jZkMsxn4Q9Rlh7rqYOKKl8', 'choices': [{'finish_reason': 'stop', 'index': 0, 'logprobs': None, 'message': {'content': '3 \nThis situation involves a financial discrepancy, which is important to resolve promptly to maintain customer trust and satisfaction, but it does not involve immediate safety or security concerns, which would warrant a higher priority.', 'refusal': None, 'role': 'assistant', 'audio': None, 'function_call': None, 'tool_calls': None}}], 'created': 1734190050, 'model': 'gpt-4o-2024-08-06', 'object': 'chat.completion', 'service_tier': None, 'system_fingerprint': 'fp_a34b2727d6', 'usage': {'completion_tokens': 40, 'prompt_tokens': 162, 'total_tokens': 202, 'completion_tokens_details': {'accepted_prediction_tokens': 0, 'audio_tokens': 0, 'reasoning_tokens': 0, 'rejected_prediction_tokens': 0}, 'prompt_tokens_details': {'audio_tokens': 0, 'cached_tokens': 0}}}",1337.7926421404682,1242.2360248447205,0.000505,"{'id': 'chatcmpl-AeOLCaurE2AMIlUBZQu3pDo5ygeCH', 'choices': [{'finish_reason': 'stop', 'index': 0, 'logprobs': None, 'message': {'content': 'Yes\n\nThe customer explicitly requests a refund by stating, ""Please refund me as soon as possible.""', 'refusal': None, 'role': 'assistant', 'audio': None, 'function_call': None, 'tool_calls': None}}], 'created': 1734190050, 'model': 'gpt-4o-2024-08-06', 'object': 'chat.completion', 'service_tier': None, 'system_fingerprint': 'fp_9faba9f038', 'usage': {'completion_tokens': 20, 'prompt_tokens': 116, 'total_tokens': 136, 'completion_tokens_details': {'accepted_prediction_tokens': 0, 'audio_tokens': 0, 'reasoning_tokens': 0, 'rejected_prediction_tokens': 0}, 'prompt_tokens_details': {'audio_tokens': 0, 'cached_tokens': 0}}}",0,Does the customer ask for a refund in this ticket? Ticket: {{ ticket }},"If the primary issue in this ticket is safety, was there an accident where someone was hurt? Ticket: {{ ticket }}",What is the primary issue in this ticket? Ticket: {{ ticket }},Check all of the issues mentioned in this ticket: {{ ticket }},"On a scale from 0 to 5, what is the priority level of this ticket? Ticket: {{ ticket }}",What is the sentiment of this ticket? Ticket: {{ ticket }},"['safety', 'cleanliness', 'driver performance', 'GPS/route', 'lost item', 'other']","['Very positive', 'Somewhat positive', 'Neutral', 'Somewhat negative', 'Very negative']",,"['No', 'Yes']","['Yes', 'No', 'Not applicable']","[0, 1, 2, 3, 4, 5]",linear_scale,multiple_choice,multiple_choice,yes_no,free_text,checkbox,,"The customer explicitly requests a refund by stating, ""Please refund me as soon as possible.""","This situation involves a financial discrepancy, which is important to resolve promptly to maintain customer trust and satisfaction, but it does not involve immediate safety or security concerns, which would warrant a higher priority.","The issue mentioned in the ticket is related to a charge for a ride that was not taken, which doesn't fit into the predefined categories except for ""other.""","The ticket expresses dissatisfaction and urgency due to an incorrect charge, indicating a somewhat negative sentiment.","The ticket is about a billing issue, not a safety concern.","Somewhat negative The ticket expresses dissatisfaction and urgency due to an incorrect charge, indicating a somewhat negative sentiment.","[5] The issue mentioned in the ticket is related to a charge for a ride that was not taken, which doesn't fit into the predefined categories except for ""other.""","Yes The customer explicitly requests a refund by stating, ""Please refund me as soon as possible.""",The primary issue in this ticket is an incorrect charge for a ride that the customer claims they did not take. The customer is requesting a refund for this charge.,"Not applicable The ticket is about a billing issue, not a safety concern.","3 This situation involves a financial discrepancy, which is important to resolve promptly to maintain customer trust and satisfaction, but it does not involve immediate safety or security concerns, which would warrant a higher priority." Not applicable,Somewhat negative,No,The primary issue in this ticket is that the customer is experiencing difficulty with a promo code that did not work as expected. The customer is seeking assistance to resolve this issue.,2,['other'],The promo code I tried to use didn't work. Can you assist with this?,You are an expert customer service agent.,Agent_13,15,You are answering questions as if you were a human. Do not break character.,0,1,0,gpt-4o,0.5,False,1000,3,What is the primary issue in this ticket? Ticket: The promo code I tried to use didn't work. Can you assist with this?,"You are answering questions as if you were a human. Do not break character. Your traits: {'persona': 'You are an expert customer service agent.', 'years_experience': 15}","You are answering questions as if you were a human. Do not break character. Your traits: {'persona': 'You are an expert customer service agent.', 'years_experience': 15}","Check all of the issues mentioned in this ticket: The promo code I tried to use didn't work. Can you assist with this? 0: safety 1: cleanliness 2: driver performance 3: GPS/route 4: lost item 5: other Please respond only with a comma-separated list of the code of the options that apply, with square brackets. E.g., [0, 1, 3] After the answer, you can put a comment explaining your choice on the next line.","On a scale from 0 to 5, what is the priority level of this ticket? Ticket: The promo code I tried to use didn't work. Can you assist with this? 0 : Lowest 1 : 2 : 3 : 4 : 5 : Highest Only 1 option may be selected. Respond only with the code corresponding to one of the options. E.g., ""1"" or ""5"" by itself. After the answer, you can put a comment explaining why you chose that option on the next line.","You are answering questions as if you were a human. Do not break character. Your traits: {'persona': 'You are an expert customer service agent.', 'years_experience': 15}","You are answering questions as if you were a human. Do not break character. Your traits: {'persona': 'You are an expert customer service agent.', 'years_experience': 15}","You are answering questions as if you were a human. Do not break character. Your traits: {'persona': 'You are an expert customer service agent.', 'years_experience': 15}"," What is the sentiment of this ticket? Ticket: The promo code I tried to use didn't work. Can you assist with this? Very positive Somewhat positive Neutral Somewhat negative Very negative Only 1 option may be selected. Respond only with a string corresponding to one of the options. After the answer, you can put a comment explaining why you chose that option on the next line."," Does the customer ask for a refund in this ticket? Ticket: The promo code I tried to use didn't work. Can you assist with this? No Yes Only 1 option may be selected. Please respond with just your answer. After the answer, you can put a comment explaining your response.","You are answering questions as if you were a human. Do not break character. Your traits: {'persona': 'You are an expert customer service agent.', 'years_experience': 15}"," If the primary issue in this ticket is safety, was there an accident where someone was hurt? Ticket: The promo code I tried to use didn't work. Can you assist with this? Yes No Not applicable Only 1 option may be selected. Respond only with a string corresponding to one of the options. After the answer, you can put a comment explaining why you chose that option on the next line.",0.0006850000000000001,"{'id': 'chatcmpl-AeOLDeaWsmnzotWhW1EAGybLMXgpN', 'choices': [{'finish_reason': 'stop', 'index': 0, 'logprobs': None, 'message': {'content': ""Not applicable \nThe ticket is related to a promo code issue, which doesn't pertain to safety or accidents."", 'refusal': None, 'role': 'assistant', 'audio': None, 'function_call': None, 'tool_calls': None}}], 'created': 1734190051, 'model': 'gpt-4o-2024-08-06', 'object': 'chat.completion', 'service_tier': None, 'system_fingerprint': 'fp_9faba9f038', 'usage': {'completion_tokens': 22, 'prompt_tokens': 136, 'total_tokens': 158, 'completion_tokens_details': {'accepted_prediction_tokens': 0, 'audio_tokens': 0, 'reasoning_tokens': 0, 'rejected_prediction_tokens': 0}, 'prompt_tokens_details': {'audio_tokens': 0, 'cached_tokens': 0}}}","{'id': 'chatcmpl-AeOLCHIbZinLpIQMSFKeqPY5qZJgm', 'choices': [{'finish_reason': 'stop', 'index': 0, 'logprobs': None, 'message': {'content': 'Somewhat negative\n\nThe sentiment is ""somewhat negative"" because the customer is expressing dissatisfaction due to the promo code not working, but they are still politely asking for assistance.', 'refusal': None, 'role': 'assistant', 'audio': None, 'function_call': None, 'tool_calls': None}}], 'created': 1734190050, 'model': 'gpt-4o-2024-08-06', 'object': 'chat.completion', 'service_tier': None, 'system_fingerprint': 'fp_9faba9f038', 'usage': {'completion_tokens': 35, 'prompt_tokens': 134, 'total_tokens': 169, 'completion_tokens_details': {'accepted_prediction_tokens': 0, 'audio_tokens': 0, 'reasoning_tokens': 0, 'rejected_prediction_tokens': 0}, 'prompt_tokens_details': {'audio_tokens': 0, 'cached_tokens': 0}}}",1459.85401459854,1904.7619047619048,"{'id': 'chatcmpl-AeOLCPIEM2SsgAX2xRp4al3o4f5Q4', 'choices': [{'finish_reason': 'stop', 'index': 0, 'logprobs': None, 'message': {'content': '[5] \nThe issue mentioned in the ticket is related to a promo code not working, which falls under the ""other"" category.', 'refusal': None, 'role': 'assistant', 'audio': None, 'function_call': None, 'tool_calls': None}}], 'created': 1734190050, 'model': 'gpt-4o-2024-08-06', 'object': 'chat.completion', 'service_tier': None, 'system_fingerprint': 'fp_a79d8dac1f', 'usage': {'completion_tokens': 28, 'prompt_tokens': 157, 'total_tokens': 185, 'completion_tokens_details': {'accepted_prediction_tokens': 0, 'audio_tokens': 0, 'reasoning_tokens': 0, 'rejected_prediction_tokens': 0}, 'prompt_tokens_details': {'audio_tokens': 0, 'cached_tokens': 0}}}",0.0007800000000000001,1785.7142857142856,0.000525,0.0006724999999999999,"{'id': 'chatcmpl-AeOLDhfVC51SEVY8POBaGpkvgwRJ3', 'choices': [{'finish_reason': 'stop', 'index': 0, 'logprobs': None, 'message': {'content': 'The primary issue in this ticket is that the customer is experiencing difficulty with a promo code that did not work as expected. The customer is seeking assistance to resolve this issue.', 'refusal': None, 'role': 'assistant', 'audio': None, 'function_call': None, 'tool_calls': None}}], 'created': 1734190051, 'model': 'gpt-4o-2024-08-06', 'object': 'chat.completion', 'service_tier': None, 'system_fingerprint': 'fp_a79d8dac1f', 'usage': {'completion_tokens': 34, 'prompt_tokens': 77, 'total_tokens': 111, 'completion_tokens_details': {'accepted_prediction_tokens': 0, 'audio_tokens': 0, 'reasoning_tokens': 0, 'rejected_prediction_tokens': 0}, 'prompt_tokens_details': {'audio_tokens': 0, 'cached_tokens': 0}}}",0.0005325,1877.9342723004695,"{'id': 'chatcmpl-AeOLCOYBuY1pS2Erbh6EjiLxXqJHg', 'choices': [{'finish_reason': 'stop', 'index': 0, 'logprobs': None, 'message': {'content': ""2 \nThis issue affects the customer's ability to complete a purchase, but it is not a system-wide outage or a critical failure. It is important to resolve it promptly to ensure customer satisfaction."", 'refusal': None, 'role': 'assistant', 'audio': None, 'function_call': None, 'tool_calls': None}}], 'created': 1734190050, 'model': 'gpt-4o-2024-08-06', 'object': 'chat.completion', 'service_tier': None, 'system_fingerprint': 'fp_a79d8dac1f', 'usage': {'completion_tokens': 38, 'prompt_tokens': 160, 'total_tokens': 198, 'completion_tokens_details': {'accepted_prediction_tokens': 0, 'audio_tokens': 0, 'reasoning_tokens': 0, 'rejected_prediction_tokens': 0}, 'prompt_tokens_details': {'audio_tokens': 0, 'cached_tokens': 0}}}",1486.9888475836433,1282.051282051282,0.0005600000000000001,"{'id': 'chatcmpl-AeOLCChnC5Jmq0qjm3Wc4WOfYL3ZV', 'choices': [{'finish_reason': 'stop', 'index': 0, 'logprobs': None, 'message': {'content': 'No\n\nThe ticket does not mention a request for a refund; it simply asks for assistance with a promo code issue.', 'refusal': None, 'role': 'assistant', 'audio': None, 'function_call': None, 'tool_calls': None}}], 'created': 1734190050, 'model': 'gpt-4o-2024-08-06', 'object': 'chat.completion', 'service_tier': None, 'system_fingerprint': 'fp_a79d8dac1f', 'usage': {'completion_tokens': 24, 'prompt_tokens': 114, 'total_tokens': 138, 'completion_tokens_details': {'accepted_prediction_tokens': 0, 'audio_tokens': 0, 'reasoning_tokens': 0, 'rejected_prediction_tokens': 0}, 'prompt_tokens_details': {'audio_tokens': 0, 'cached_tokens': 0}}}",0,Does the customer ask for a refund in this ticket? Ticket: {{ ticket }},"If the primary issue in this ticket is safety, was there an accident where someone was hurt? Ticket: {{ ticket }}",What is the primary issue in this ticket? Ticket: {{ ticket }},Check all of the issues mentioned in this ticket: {{ ticket }},"On a scale from 0 to 5, what is the priority level of this ticket? Ticket: {{ ticket }}",What is the sentiment of this ticket? Ticket: {{ ticket }},"['safety', 'cleanliness', 'driver performance', 'GPS/route', 'lost item', 'other']","['Very positive', 'Somewhat positive', 'Neutral', 'Somewhat negative', 'Very negative']",,"['No', 'Yes']","['Yes', 'No', 'Not applicable']","[0, 1, 2, 3, 4, 5]",linear_scale,multiple_choice,multiple_choice,yes_no,free_text,checkbox,,The ticket does not mention a request for a refund; it simply asks for assistance with a promo code issue.,"This issue affects the customer's ability to complete a purchase, but it is not a system-wide outage or a critical failure. It is important to resolve it promptly to ensure customer satisfaction.","The issue mentioned in the ticket is related to a promo code not working, which falls under the ""other"" category.","The sentiment is ""somewhat negative"" because the customer is expressing dissatisfaction due to the promo code not working, but they are still politely asking for assistance.","The ticket is related to a promo code issue, which doesn't pertain to safety or accidents.","Somewhat negative The sentiment is ""somewhat negative"" because the customer is expressing dissatisfaction due to the promo code not working, but they are still politely asking for assistance.","[5] The issue mentioned in the ticket is related to a promo code not working, which falls under the ""other"" category.","No The ticket does not mention a request for a refund; it simply asks for assistance with a promo code issue.",The primary issue in this ticket is that the customer is experiencing difficulty with a promo code that did not work as expected. The customer is seeking assistance to resolve this issue.,"Not applicable The ticket is related to a promo code issue, which doesn't pertain to safety or accidents.","2 This issue affects the customer's ability to complete a purchase, but it is not a system-wide outage or a critical failure. It is important to resolve it promptly to ensure customer satisfaction." No,Somewhat negative,No,"The primary issue in this ticket is the customer's concern about a suspicious smell in the car, which is raising worries about the hygiene standards of the vehicle. Addressing this issue would likely involve investigating the source of the smell and ensuring that the vehicle meets cleanliness and hygiene standards.",3,"['cleanliness', 'other']","There was a suspicious smell in the car, and I'm worried about hygiene standards.",You are an expert customer service agent.,Agent_14,15,You are answering questions as if you were a human. Do not break character.,0,1,0,gpt-4o,0.5,False,1000,3,"What is the primary issue in this ticket? Ticket: There was a suspicious smell in the car, and I'm worried about hygiene standards.","You are answering questions as if you were a human. Do not break character. Your traits: {'persona': 'You are an expert customer service agent.', 'years_experience': 15}","You are answering questions as if you were a human. Do not break character. Your traits: {'persona': 'You are an expert customer service agent.', 'years_experience': 15}","Check all of the issues mentioned in this ticket: There was a suspicious smell in the car, and I'm worried about hygiene standards. 0: safety 1: cleanliness 2: driver performance 3: GPS/route 4: lost item 5: other Please respond only with a comma-separated list of the code of the options that apply, with square brackets. E.g., [0, 1, 3] After the answer, you can put a comment explaining your choice on the next line.","On a scale from 0 to 5, what is the priority level of this ticket? Ticket: There was a suspicious smell in the car, and I'm worried about hygiene standards. 0 : Lowest 1 : 2 : 3 : 4 : 5 : Highest Only 1 option may be selected. Respond only with the code corresponding to one of the options. E.g., ""1"" or ""5"" by itself. After the answer, you can put a comment explaining why you chose that option on the next line.","You are answering questions as if you were a human. Do not break character. Your traits: {'persona': 'You are an expert customer service agent.', 'years_experience': 15}","You are answering questions as if you were a human. Do not break character. Your traits: {'persona': 'You are an expert customer service agent.', 'years_experience': 15}","You are answering questions as if you were a human. Do not break character. Your traits: {'persona': 'You are an expert customer service agent.', 'years_experience': 15}"," What is the sentiment of this ticket? Ticket: There was a suspicious smell in the car, and I'm worried about hygiene standards. Very positive Somewhat positive Neutral Somewhat negative Very negative Only 1 option may be selected. Respond only with a string corresponding to one of the options. After the answer, you can put a comment explaining why you chose that option on the next line."," Does the customer ask for a refund in this ticket? Ticket: There was a suspicious smell in the car, and I'm worried about hygiene standards. No Yes Only 1 option may be selected. Please respond with just your answer. After the answer, you can put a comment explaining your response.","You are answering questions as if you were a human. Do not break character. Your traits: {'persona': 'You are an expert customer service agent.', 'years_experience': 15}"," If the primary issue in this ticket is safety, was there an accident where someone was hurt? Ticket: There was a suspicious smell in the car, and I'm worried about hygiene standards. Yes No Not applicable Only 1 option may be selected. Respond only with a string corresponding to one of the options. After the answer, you can put a comment explaining why you chose that option on the next line.",0.000565,"{'id': 'chatcmpl-AeOLCP9EBEhKU8hFuCgVHVFs1QfZn', 'choices': [{'finish_reason': 'stop', 'index': 0, 'logprobs': None, 'message': {'content': 'No \nThe ticket describes a concern about a suspicious smell, which relates to hygiene standards rather than a safety incident where someone was hurt.', 'refusal': None, 'role': 'assistant', 'audio': None, 'function_call': None, 'tool_calls': None}}], 'created': 1734190050, 'model': 'gpt-4o-2024-08-06', 'object': 'chat.completion', 'service_tier': None, 'system_fingerprint': 'fp_9faba9f038', 'usage': {'completion_tokens': 27, 'prompt_tokens': 136, 'total_tokens': 163, 'completion_tokens_details': {'accepted_prediction_tokens': 0, 'audio_tokens': 0, 'reasoning_tokens': 0, 'rejected_prediction_tokens': 0}, 'prompt_tokens_details': {'audio_tokens': 0, 'cached_tokens': 0}}}","{'id': 'chatcmpl-AeOLCRGSAsijyIAX1PzEC70b9SIqa', 'choices': [{'finish_reason': 'stop', 'index': 0, 'logprobs': None, 'message': {'content': 'Somewhat negative \nThe ticket expresses concern and dissatisfaction about a suspicious smell, indicating a negative experience regarding hygiene standards.', 'refusal': None, 'role': 'assistant', 'audio': None, 'function_call': None, 'tool_calls': None}}], 'created': 1734190050, 'model': 'gpt-4o-2024-08-06', 'object': 'chat.completion', 'service_tier': None, 'system_fingerprint': 'fp_a79d8dac1f', 'usage': {'completion_tokens': 23, 'prompt_tokens': 134, 'total_tokens': 157, 'completion_tokens_details': {'accepted_prediction_tokens': 0, 'audio_tokens': 0, 'reasoning_tokens': 0, 'rejected_prediction_tokens': 0}, 'prompt_tokens_details': {'audio_tokens': 0, 'cached_tokens': 0}}}",1769.911504424779,1904.7619047619048,"{'id': 'chatcmpl-AeOLCn0w3VgjDiofx6Btf9MNqfLsa', 'choices': [{'finish_reason': 'stop', 'index': 0, 'logprobs': None, 'message': {'content': ""[1, 5] \nThe issue of a suspicious smell in the car relates to cleanliness, and the concern about hygiene standards could be categorized as 'other' since it might encompass broader issues not explicitly listed."", 'refusal': None, 'role': 'assistant', 'audio': None, 'function_call': None, 'tool_calls': None}}], 'created': 1734190050, 'model': 'gpt-4o-2024-08-06', 'object': 'chat.completion', 'service_tier': None, 'system_fingerprint': 'fp_a79d8dac1f', 'usage': {'completion_tokens': 43, 'prompt_tokens': 157, 'total_tokens': 200, 'completion_tokens_details': {'accepted_prediction_tokens': 0, 'audio_tokens': 0, 'reasoning_tokens': 0, 'rejected_prediction_tokens': 0}, 'prompt_tokens_details': {'audio_tokens': 0, 'cached_tokens': 0}}}",0.00073,1639.3442622950818,0.000525,0.0008225,"{'id': 'chatcmpl-AeOLCbfXg8C4hlpR7JB7hay6iiYnH', 'choices': [{'finish_reason': 'stop', 'index': 0, 'logprobs': None, 'message': {'content': ""The primary issue in this ticket is the customer's concern about a suspicious smell in the car, which is raising worries about the hygiene standards of the vehicle. Addressing this issue would likely involve investigating the source of the smell and ensuring that the vehicle meets cleanliness and hygiene standards."", 'refusal': None, 'role': 'assistant', 'audio': None, 'function_call': None, 'tool_calls': None}}], 'created': 1734190050, 'model': 'gpt-4o-2024-08-06', 'object': 'chat.completion', 'service_tier': None, 'system_fingerprint': 'fp_9faba9f038', 'usage': {'completion_tokens': 54, 'prompt_tokens': 77, 'total_tokens': 131, 'completion_tokens_details': {'accepted_prediction_tokens': 0, 'audio_tokens': 0, 'reasoning_tokens': 0, 'rejected_prediction_tokens': 0}, 'prompt_tokens_details': {'audio_tokens': 0, 'cached_tokens': 0}}}",0.0007325,1365.1877133105802,"{'id': 'chatcmpl-AeOLCNTiXWrfaKzhwOs9MrKtlSJOO', 'choices': [{'finish_reason': 'stop', 'index': 0, 'logprobs': None, 'message': {'content': '3 \nThis issue is important because it concerns hygiene and customer comfort, but it is not an immediate safety threat. It should be addressed promptly to maintain service quality.', 'refusal': None, 'role': 'assistant', 'audio': None, 'function_call': None, 'tool_calls': None}}], 'created': 1734190050, 'model': 'gpt-4o-2024-08-06', 'object': 'chat.completion', 'service_tier': None, 'system_fingerprint': 'fp_f785eb5f47', 'usage': {'completion_tokens': 33, 'prompt_tokens': 160, 'total_tokens': 193, 'completion_tokens_details': {'accepted_prediction_tokens': 0, 'audio_tokens': 0, 'reasoning_tokens': 0, 'rejected_prediction_tokens': 0}, 'prompt_tokens_details': {'audio_tokens': 0, 'cached_tokens': 0}}}",1215.80547112462,1369.8630136986303,0.0006100000000000001,"{'id': 'chatcmpl-AeOLDOBxEaQpQl3q6H6FOrUMR4ut2', 'choices': [{'finish_reason': 'stop', 'index': 0, 'logprobs': None, 'message': {'content': 'No\n\nThe customer expresses concern about the hygiene standards due to a suspicious smell but does not explicitly ask for a refund.', 'refusal': None, 'role': 'assistant', 'audio': None, 'function_call': None, 'tool_calls': None}}], 'created': 1734190051, 'model': 'gpt-4o-2024-08-06', 'object': 'chat.completion', 'service_tier': None, 'system_fingerprint': 'fp_f785eb5f47', 'usage': {'completion_tokens': 24, 'prompt_tokens': 114, 'total_tokens': 138, 'completion_tokens_details': {'accepted_prediction_tokens': 0, 'audio_tokens': 0, 'reasoning_tokens': 0, 'rejected_prediction_tokens': 0}, 'prompt_tokens_details': {'audio_tokens': 0, 'cached_tokens': 0}}}",0,Does the customer ask for a refund in this ticket? Ticket: {{ ticket }},"If the primary issue in this ticket is safety, was there an accident where someone was hurt? Ticket: {{ ticket }}",What is the primary issue in this ticket? Ticket: {{ ticket }},Check all of the issues mentioned in this ticket: {{ ticket }},"On a scale from 0 to 5, what is the priority level of this ticket? Ticket: {{ ticket }}",What is the sentiment of this ticket? Ticket: {{ ticket }},"['safety', 'cleanliness', 'driver performance', 'GPS/route', 'lost item', 'other']","['Very positive', 'Somewhat positive', 'Neutral', 'Somewhat negative', 'Very negative']",,"['No', 'Yes']","['Yes', 'No', 'Not applicable']","[0, 1, 2, 3, 4, 5]",linear_scale,multiple_choice,multiple_choice,yes_no,free_text,checkbox,,The customer expresses concern about the hygiene standards due to a suspicious smell but does not explicitly ask for a refund.,"This issue is important because it concerns hygiene and customer comfort, but it is not an immediate safety threat. It should be addressed promptly to maintain service quality.","The issue of a suspicious smell in the car relates to cleanliness, and the concern about hygiene standards could be categorized as 'other' since it might encompass broader issues not explicitly listed.","The ticket expresses concern and dissatisfaction about a suspicious smell, indicating a negative experience regarding hygiene standards.","The ticket describes a concern about a suspicious smell, which relates to hygiene standards rather than a safety incident where someone was hurt.","Somewhat negative The ticket expresses concern and dissatisfaction about a suspicious smell, indicating a negative experience regarding hygiene standards.","[1, 5] The issue of a suspicious smell in the car relates to cleanliness, and the concern about hygiene standards could be categorized as 'other' since it might encompass broader issues not explicitly listed.","No The customer expresses concern about the hygiene standards due to a suspicious smell but does not explicitly ask for a refund.","The primary issue in this ticket is the customer's concern about a suspicious smell in the car, which is raising worries about the hygiene standards of the vehicle. Addressing this issue would likely involve investigating the source of the smell and ensuring that the vehicle meets cleanliness and hygiene standards.","No The ticket describes a concern about a suspicious smell, which relates to hygiene standards rather than a safety incident where someone was hurt.","3 This issue is important because it concerns hygiene and customer comfort, but it is not an immediate safety threat. It should be addressed promptly to maintain service quality." No,Very positive,No,The primary issue in this ticket is actually not an issue at all. It appears to be a positive feedback or compliment regarding the driver's considerate behavior and assistance with luggage. It's always great to receive such positive comments about the service provided!,0,['driver performance'],"My driver was very considerate, especially helping me with my luggage. Appreciate the great service!",You are an expert customer service agent.,Agent_15,15,You are answering questions as if you were a human. Do not break character.,0,1,0,gpt-4o,0.5,False,1000,3,"What is the primary issue in this ticket? Ticket: My driver was very considerate, especially helping me with my luggage. Appreciate the great service!","You are answering questions as if you were a human. Do not break character. Your traits: {'persona': 'You are an expert customer service agent.', 'years_experience': 15}","You are answering questions as if you were a human. Do not break character. Your traits: {'persona': 'You are an expert customer service agent.', 'years_experience': 15}","Check all of the issues mentioned in this ticket: My driver was very considerate, especially helping me with my luggage. Appreciate the great service! 0: safety 1: cleanliness 2: driver performance 3: GPS/route 4: lost item 5: other Please respond only with a comma-separated list of the code of the options that apply, with square brackets. E.g., [0, 1, 3] After the answer, you can put a comment explaining your choice on the next line.","On a scale from 0 to 5, what is the priority level of this ticket? Ticket: My driver was very considerate, especially helping me with my luggage. Appreciate the great service! 0 : Lowest 1 : 2 : 3 : 4 : 5 : Highest Only 1 option may be selected. Respond only with the code corresponding to one of the options. E.g., ""1"" or ""5"" by itself. After the answer, you can put a comment explaining why you chose that option on the next line.","You are answering questions as if you were a human. Do not break character. Your traits: {'persona': 'You are an expert customer service agent.', 'years_experience': 15}","You are answering questions as if you were a human. Do not break character. Your traits: {'persona': 'You are an expert customer service agent.', 'years_experience': 15}","You are answering questions as if you were a human. Do not break character. Your traits: {'persona': 'You are an expert customer service agent.', 'years_experience': 15}"," What is the sentiment of this ticket? Ticket: My driver was very considerate, especially helping me with my luggage. Appreciate the great service! Very positive Somewhat positive Neutral Somewhat negative Very negative Only 1 option may be selected. Respond only with a string corresponding to one of the options. After the answer, you can put a comment explaining why you chose that option on the next line."," Does the customer ask for a refund in this ticket? Ticket: My driver was very considerate, especially helping me with my luggage. Appreciate the great service! No Yes Only 1 option may be selected. Please respond with just your answer. After the answer, you can put a comment explaining your response.","You are answering questions as if you were a human. Do not break character. Your traits: {'persona': 'You are an expert customer service agent.', 'years_experience': 15}"," If the primary issue in this ticket is safety, was there an accident where someone was hurt? Ticket: My driver was very considerate, especially helping me with my luggage. Appreciate the great service! Yes No Not applicable Only 1 option may be selected. Respond only with a string corresponding to one of the options. After the answer, you can put a comment explaining why you chose that option on the next line.",0.00054,"{'id': 'chatcmpl-AeOLCJzlrxQ1vmgv2KSfV2Apj383E', 'choices': [{'finish_reason': 'stop', 'index': 0, 'logprobs': None, 'message': {'content': ""No \nThe ticket does not mention any accident or injury; it praises the driver's helpfulness."", 'refusal': None, 'role': 'assistant', 'audio': None, 'function_call': None, 'tool_calls': None}}], 'created': 1734190050, 'model': 'gpt-4o-2024-08-06', 'object': 'chat.completion', 'service_tier': None, 'system_fingerprint': 'fp_a79d8dac1f', 'usage': {'completion_tokens': 19, 'prompt_tokens': 138, 'total_tokens': 157, 'completion_tokens_details': {'accepted_prediction_tokens': 0, 'audio_tokens': 0, 'reasoning_tokens': 0, 'rejected_prediction_tokens': 0}, 'prompt_tokens_details': {'audio_tokens': 0, 'cached_tokens': 0}}}","{'id': 'chatcmpl-AeOLCz6Cm0GO2FNMcpF03owC3WPkT', 'choices': [{'finish_reason': 'stop', 'index': 0, 'logprobs': None, 'message': {'content': ""Very positive \nThe ticket expresses appreciation and highlights the driver's considerate behavior, indicating a very positive sentiment."", 'refusal': None, 'role': 'assistant', 'audio': None, 'function_call': None, 'tool_calls': None}}], 'created': 1734190050, 'model': 'gpt-4o-2024-08-06', 'object': 'chat.completion', 'service_tier': None, 'system_fingerprint': 'fp_a79d8dac1f', 'usage': {'completion_tokens': 20, 'prompt_tokens': 136, 'total_tokens': 156, 'completion_tokens_details': {'accepted_prediction_tokens': 0, 'audio_tokens': 0, 'reasoning_tokens': 0, 'rejected_prediction_tokens': 0}, 'prompt_tokens_details': {'audio_tokens': 0, 'cached_tokens': 0}}}",1851.8518518518517,1923.0769230769229,"{'id': 'chatcmpl-AeOLCkHyGmFV0A1rpTQGdYKQFuvbZ', 'choices': [{'finish_reason': 'stop', 'index': 0, 'logprobs': None, 'message': {'content': ""[2] \nThe ticket mentions the driver's considerate behavior and assistance with luggage, which relates to driver performance."", 'refusal': None, 'role': 'assistant', 'audio': None, 'function_call': None, 'tool_calls': None}}], 'created': 1734190050, 'model': 'gpt-4o-2024-08-06', 'object': 'chat.completion', 'service_tier': None, 'system_fingerprint': 'fp_a79d8dac1f', 'usage': {'completion_tokens': 22, 'prompt_tokens': 159, 'total_tokens': 181, 'completion_tokens_details': {'accepted_prediction_tokens': 0, 'audio_tokens': 0, 'reasoning_tokens': 0, 'rejected_prediction_tokens': 0}, 'prompt_tokens_details': {'audio_tokens': 0, 'cached_tokens': 0}}}",0.000575,1869.1588785046729,0.0005200000000000001,0.0006175,"{'id': 'chatcmpl-AeOLCglwtiEBWtfa7u3hlyxxmeS8q', 'choices': [{'finish_reason': 'stop', 'index': 0, 'logprobs': None, 'message': {'content': ""The primary issue in this ticket is actually not an issue at all. It appears to be a positive feedback or compliment regarding the driver's considerate behavior and assistance with luggage. It's always great to receive such positive comments about the service provided!"", 'refusal': None, 'role': 'assistant', 'audio': None, 'function_call': None, 'tool_calls': None}}], 'created': 1734190050, 'model': 'gpt-4o-2024-08-06', 'object': 'chat.completion', 'service_tier': None, 'system_fingerprint': 'fp_9faba9f038', 'usage': {'completion_tokens': 46, 'prompt_tokens': 79, 'total_tokens': 125, 'completion_tokens_details': {'accepted_prediction_tokens': 0, 'audio_tokens': 0, 'reasoning_tokens': 0, 'rejected_prediction_tokens': 0}, 'prompt_tokens_details': {'audio_tokens': 0, 'cached_tokens': 0}}}",0.0006575,1520.912547528517,"{'id': 'chatcmpl-AeOLCv8YsILztgqLBajfvNoRQa3Wc', 'choices': [{'finish_reason': 'stop', 'index': 0, 'logprobs': None, 'message': {'content': '0 \nThis ticket is a positive feedback and does not require urgent attention or resolution.', 'refusal': None, 'role': 'assistant', 'audio': None, 'function_call': None, 'tool_calls': None}}], 'created': 1734190050, 'model': 'gpt-4o-2024-08-06', 'object': 'chat.completion', 'service_tier': None, 'system_fingerprint': 'fp_a79d8dac1f', 'usage': {'completion_tokens': 17, 'prompt_tokens': 162, 'total_tokens': 179, 'completion_tokens_details': {'accepted_prediction_tokens': 0, 'audio_tokens': 0, 'reasoning_tokens': 0, 'rejected_prediction_tokens': 0}, 'prompt_tokens_details': {'audio_tokens': 0, 'cached_tokens': 0}}}",1619.4331983805669,1739.1304347826087,0.000535,"{'id': 'chatcmpl-AeOLCq1Kh9vBeqOOyMeYJmYHnwExw', 'choices': [{'finish_reason': 'stop', 'index': 0, 'logprobs': None, 'message': {'content': ""No\n\nThe customer is expressing appreciation for the driver's service and does not mention any dissatisfaction or request for a refund."", 'refusal': None, 'role': 'assistant', 'audio': None, 'function_call': None, 'tool_calls': None}}], 'created': 1734190050, 'model': 'gpt-4o-2024-08-06', 'object': 'chat.completion', 'service_tier': None, 'system_fingerprint': 'fp_9faba9f038', 'usage': {'completion_tokens': 23, 'prompt_tokens': 116, 'total_tokens': 139, 'completion_tokens_details': {'accepted_prediction_tokens': 0, 'audio_tokens': 0, 'reasoning_tokens': 0, 'rejected_prediction_tokens': 0}, 'prompt_tokens_details': {'audio_tokens': 0, 'cached_tokens': 0}}}",0,Does the customer ask for a refund in this ticket? Ticket: {{ ticket }},"If the primary issue in this ticket is safety, was there an accident where someone was hurt? Ticket: {{ ticket }}",What is the primary issue in this ticket? Ticket: {{ ticket }},Check all of the issues mentioned in this ticket: {{ ticket }},"On a scale from 0 to 5, what is the priority level of this ticket? Ticket: {{ ticket }}",What is the sentiment of this ticket? Ticket: {{ ticket }},"['safety', 'cleanliness', 'driver performance', 'GPS/route', 'lost item', 'other']","['Very positive', 'Somewhat positive', 'Neutral', 'Somewhat negative', 'Very negative']",,"['No', 'Yes']","['Yes', 'No', 'Not applicable']","[0, 1, 2, 3, 4, 5]",linear_scale,multiple_choice,multiple_choice,yes_no,free_text,checkbox,,The customer is expressing appreciation for the driver's service and does not mention any dissatisfaction or request for a refund.,This ticket is a positive feedback and does not require urgent attention or resolution.,"The ticket mentions the driver's considerate behavior and assistance with luggage, which relates to driver performance.","The ticket expresses appreciation and highlights the driver's considerate behavior, indicating a very positive sentiment.",The ticket does not mention any accident or injury; it praises the driver's helpfulness.,"Very positive The ticket expresses appreciation and highlights the driver's considerate behavior, indicating a very positive sentiment.","[2] The ticket mentions the driver's considerate behavior and assistance with luggage, which relates to driver performance.","No The customer is expressing appreciation for the driver's service and does not mention any dissatisfaction or request for a refund.",The primary issue in this ticket is actually not an issue at all. It appears to be a positive feedback or compliment regarding the driver's considerate behavior and assistance with luggage. It's always great to receive such positive comments about the service provided!,"No The ticket does not mention any accident or injury; it praises the driver's helpfulness.","0 This ticket is a positive feedback and does not require urgent attention or resolution." No,Somewhat negative,No,"The primary issue in this ticket is the inaccuracy of the app's GPS, which resulted in directing the driver to the wrong pick-up location. This can lead to delays and inconvenience for both the driver and the customer, so it's important to address the GPS functionality to ensure it provides accurate directions.",4,['GPS/route'],The app's GPS seems inaccurate. It directed the driver to the wrong pick-up location.,You are an expert customer service agent.,Agent_16,15,You are answering questions as if you were a human. Do not break character.,0,1,0,gpt-4o,0.5,False,1000,3,What is the primary issue in this ticket? Ticket: The app's GPS seems inaccurate. It directed the driver to the wrong pick-up location.,"You are answering questions as if you were a human. Do not break character. Your traits: {'persona': 'You are an expert customer service agent.', 'years_experience': 15}","You are answering questions as if you were a human. Do not break character. Your traits: {'persona': 'You are an expert customer service agent.', 'years_experience': 15}","Check all of the issues mentioned in this ticket: The app's GPS seems inaccurate. It directed the driver to the wrong pick-up location. 0: safety 1: cleanliness 2: driver performance 3: GPS/route 4: lost item 5: other Please respond only with a comma-separated list of the code of the options that apply, with square brackets. E.g., [0, 1, 3] After the answer, you can put a comment explaining your choice on the next line.","On a scale from 0 to 5, what is the priority level of this ticket? Ticket: The app's GPS seems inaccurate. It directed the driver to the wrong pick-up location. 0 : Lowest 1 : 2 : 3 : 4 : 5 : Highest Only 1 option may be selected. Respond only with the code corresponding to one of the options. E.g., ""1"" or ""5"" by itself. After the answer, you can put a comment explaining why you chose that option on the next line.","You are answering questions as if you were a human. Do not break character. Your traits: {'persona': 'You are an expert customer service agent.', 'years_experience': 15}","You are answering questions as if you were a human. Do not break character. Your traits: {'persona': 'You are an expert customer service agent.', 'years_experience': 15}","You are answering questions as if you were a human. Do not break character. Your traits: {'persona': 'You are an expert customer service agent.', 'years_experience': 15}"," What is the sentiment of this ticket? Ticket: The app's GPS seems inaccurate. It directed the driver to the wrong pick-up location. Very positive Somewhat positive Neutral Somewhat negative Very negative Only 1 option may be selected. Respond only with a string corresponding to one of the options. After the answer, you can put a comment explaining why you chose that option on the next line."," Does the customer ask for a refund in this ticket? Ticket: The app's GPS seems inaccurate. It directed the driver to the wrong pick-up location. No Yes Only 1 option may be selected. Please respond with just your answer. After the answer, you can put a comment explaining your response.","You are answering questions as if you were a human. Do not break character. Your traits: {'persona': 'You are an expert customer service agent.', 'years_experience': 15}"," If the primary issue in this ticket is safety, was there an accident where someone was hurt? Ticket: The app's GPS seems inaccurate. It directed the driver to the wrong pick-up location. Yes No Not applicable Only 1 option may be selected. Respond only with a string corresponding to one of the options. After the answer, you can put a comment explaining why you chose that option on the next line.",0.00063,"{'id': 'chatcmpl-AeOLCt43WrqFYZmgbSdcvXLWoCQur', 'choices': [{'finish_reason': 'stop', 'index': 0, 'logprobs': None, 'message': {'content': ""No \nThe issue mentioned is about GPS inaccuracy, and there's no indication of an accident or injury in the ticket description."", 'refusal': None, 'role': 'assistant', 'audio': None, 'function_call': None, 'tool_calls': None}}], 'created': 1734190050, 'model': 'gpt-4o-2024-08-06', 'object': 'chat.completion', 'service_tier': None, 'system_fingerprint': 'fp_9faba9f038', 'usage': {'completion_tokens': 25, 'prompt_tokens': 138, 'total_tokens': 163, 'completion_tokens_details': {'accepted_prediction_tokens': 0, 'audio_tokens': 0, 'reasoning_tokens': 0, 'rejected_prediction_tokens': 0}, 'prompt_tokens_details': {'audio_tokens': 0, 'cached_tokens': 0}}}","{'id': 'chatcmpl-AeOLDW6PwI8dhHbM5t5JRSXfLOZoC', 'choices': [{'finish_reason': 'stop', 'index': 0, 'logprobs': None, 'message': {'content': ""Somewhat negative \nThe sentiment is somewhat negative because the customer is experiencing a problem with the app's GPS, which is leading to an inconvenience."", 'refusal': None, 'role': 'assistant', 'audio': None, 'function_call': None, 'tool_calls': None}}], 'created': 1734190051, 'model': 'gpt-4o-2024-08-06', 'object': 'chat.completion', 'service_tier': None, 'system_fingerprint': 'fp_a79d8dac1f', 'usage': {'completion_tokens': 29, 'prompt_tokens': 136, 'total_tokens': 165, 'completion_tokens_details': {'accepted_prediction_tokens': 0, 'audio_tokens': 0, 'reasoning_tokens': 0, 'rejected_prediction_tokens': 0}, 'prompt_tokens_details': {'audio_tokens': 0, 'cached_tokens': 0}}}",1587.3015873015872,1818.1818181818185,"{'id': 'chatcmpl-AeOLDbyXyHxAD9mPdcxPMymzK5xhV', 'choices': [{'finish_reason': 'stop', 'index': 0, 'logprobs': None, 'message': {'content': ""[3]\n\nThe issue mentioned in the ticket is related to the GPS/route, as it describes the app's GPS directing the driver to the wrong pick-up location."", 'refusal': None, 'role': 'assistant', 'audio': None, 'function_call': None, 'tool_calls': None}}], 'created': 1734190051, 'model': 'gpt-4o-2024-08-06', 'object': 'chat.completion', 'service_tier': None, 'system_fingerprint': 'fp_a79d8dac1f', 'usage': {'completion_tokens': 34, 'prompt_tokens': 159, 'total_tokens': 193, 'completion_tokens_details': {'accepted_prediction_tokens': 0, 'audio_tokens': 0, 'reasoning_tokens': 0, 'rejected_prediction_tokens': 0}, 'prompt_tokens_details': {'audio_tokens': 0, 'cached_tokens': 0}}}",0.000675,1680.672268907563,0.0005499999999999999,0.0007375000000000001,"{'id': 'chatcmpl-AeOLCsomuk6QY7ktGERwbGzjjZf5I', 'choices': [{'finish_reason': 'stop', 'index': 0, 'logprobs': None, 'message': {'content': ""The primary issue in this ticket is the inaccuracy of the app's GPS, which resulted in directing the driver to the wrong pick-up location. This can lead to delays and inconvenience for both the driver and the customer, so it's important to address the GPS functionality to ensure it provides accurate directions."", 'refusal': None, 'role': 'assistant', 'audio': None, 'function_call': None, 'tool_calls': None}}], 'created': 1734190050, 'model': 'gpt-4o-2024-08-06', 'object': 'chat.completion', 'service_tier': None, 'system_fingerprint': 'fp_a79d8dac1f', 'usage': {'completion_tokens': 59, 'prompt_tokens': 79, 'total_tokens': 138, 'completion_tokens_details': {'accepted_prediction_tokens': 0, 'audio_tokens': 0, 'reasoning_tokens': 0, 'rejected_prediction_tokens': 0}, 'prompt_tokens_details': {'audio_tokens': 0, 'cached_tokens': 0}}}",0.0007875,1269.8412698412699,"{'id': 'chatcmpl-AeOLCZ4DxmztyyBxpzoEsmhk1g7JS', 'choices': [{'finish_reason': 'stop', 'index': 0, 'logprobs': None, 'message': {'content': '4 \nThis issue impacts the core functionality of the app, potentially leading to customer dissatisfaction and operational inefficiencies, thus requiring prompt attention.', 'refusal': None, 'role': 'assistant', 'audio': None, 'function_call': None, 'tool_calls': None}}], 'created': 1734190050, 'model': 'gpt-4o-2024-08-06', 'object': 'chat.completion', 'service_tier': None, 'system_fingerprint': 'fp_a79d8dac1f', 'usage': {'completion_tokens': 27, 'prompt_tokens': 162, 'total_tokens': 189, 'completion_tokens_details': {'accepted_prediction_tokens': 0, 'audio_tokens': 0, 'reasoning_tokens': 0, 'rejected_prediction_tokens': 0}, 'prompt_tokens_details': {'audio_tokens': 0, 'cached_tokens': 0}}}",1355.9322033898304,1481.4814814814813,0.000595,"{'id': 'chatcmpl-AeOLCJ3EUYRteMKLGEGYB32A4hGYn', 'choices': [{'finish_reason': 'stop', 'index': 0, 'logprobs': None, 'message': {'content': ""No\n\nThe ticket mentions an issue with the app's GPS but does not explicitly state that the customer is asking for a refund."", 'refusal': None, 'role': 'assistant', 'audio': None, 'function_call': None, 'tool_calls': None}}], 'created': 1734190050, 'model': 'gpt-4o-2024-08-06', 'object': 'chat.completion', 'service_tier': None, 'system_fingerprint': 'fp_a79d8dac1f', 'usage': {'completion_tokens': 26, 'prompt_tokens': 116, 'total_tokens': 142, 'completion_tokens_details': {'accepted_prediction_tokens': 0, 'audio_tokens': 0, 'reasoning_tokens': 0, 'rejected_prediction_tokens': 0}, 'prompt_tokens_details': {'audio_tokens': 0, 'cached_tokens': 0}}}",0,Does the customer ask for a refund in this ticket? Ticket: {{ ticket }},"If the primary issue in this ticket is safety, was there an accident where someone was hurt? Ticket: {{ ticket }}",What is the primary issue in this ticket? Ticket: {{ ticket }},Check all of the issues mentioned in this ticket: {{ ticket }},"On a scale from 0 to 5, what is the priority level of this ticket? Ticket: {{ ticket }}",What is the sentiment of this ticket? Ticket: {{ ticket }},"['safety', 'cleanliness', 'driver performance', 'GPS/route', 'lost item', 'other']","['Very positive', 'Somewhat positive', 'Neutral', 'Somewhat negative', 'Very negative']",,"['No', 'Yes']","['Yes', 'No', 'Not applicable']","[0, 1, 2, 3, 4, 5]",linear_scale,multiple_choice,multiple_choice,yes_no,free_text,checkbox,,The ticket mentions an issue with the app's GPS but does not explicitly state that the customer is asking for a refund.,"This issue impacts the core functionality of the app, potentially leading to customer dissatisfaction and operational inefficiencies, thus requiring prompt attention.","The issue mentioned in the ticket is related to the GPS/route, as it describes the app's GPS directing the driver to the wrong pick-up location.","The sentiment is somewhat negative because the customer is experiencing a problem with the app's GPS, which is leading to an inconvenience.","The issue mentioned is about GPS inaccuracy, and there's no indication of an accident or injury in the ticket description.","Somewhat negative The sentiment is somewhat negative because the customer is experiencing a problem with the app's GPS, which is leading to an inconvenience.","[3] The issue mentioned in the ticket is related to the GPS/route, as it describes the app's GPS directing the driver to the wrong pick-up location.","No The ticket mentions an issue with the app's GPS but does not explicitly state that the customer is asking for a refund.","The primary issue in this ticket is the inaccuracy of the app's GPS, which resulted in directing the driver to the wrong pick-up location. This can lead to delays and inconvenience for both the driver and the customer, so it's important to address the GPS functionality to ensure it provides accurate directions.","No The issue mentioned is about GPS inaccuracy, and there's no indication of an accident or injury in the ticket description.","4 This issue impacts the core functionality of the app, potentially leading to customer dissatisfaction and operational inefficiencies, thus requiring prompt attention." Not applicable,Very positive,No,"The primary issue in this ticket is not a problem or complaint, but rather a compliment. The customer is expressing appreciation for their driver's excellent navigation and time management skills during rush hour.",1,"['driver performance', 'GPS/route']",I want to compliment my driver's excellent navigation and time management during rush hour.,You are an expert customer service agent.,Agent_17,15,You are answering questions as if you were a human. Do not break character.,0,1,0,gpt-4o,0.5,False,1000,3,What is the primary issue in this ticket? Ticket: I want to compliment my driver's excellent navigation and time management during rush hour.,"You are answering questions as if you were a human. Do not break character. Your traits: {'persona': 'You are an expert customer service agent.', 'years_experience': 15}","You are answering questions as if you were a human. Do not break character. Your traits: {'persona': 'You are an expert customer service agent.', 'years_experience': 15}","Check all of the issues mentioned in this ticket: I want to compliment my driver's excellent navigation and time management during rush hour. 0: safety 1: cleanliness 2: driver performance 3: GPS/route 4: lost item 5: other Please respond only with a comma-separated list of the code of the options that apply, with square brackets. E.g., [0, 1, 3] After the answer, you can put a comment explaining your choice on the next line.","On a scale from 0 to 5, what is the priority level of this ticket? Ticket: I want to compliment my driver's excellent navigation and time management during rush hour. 0 : Lowest 1 : 2 : 3 : 4 : 5 : Highest Only 1 option may be selected. Respond only with the code corresponding to one of the options. E.g., ""1"" or ""5"" by itself. After the answer, you can put a comment explaining why you chose that option on the next line.","You are answering questions as if you were a human. Do not break character. Your traits: {'persona': 'You are an expert customer service agent.', 'years_experience': 15}","You are answering questions as if you were a human. Do not break character. Your traits: {'persona': 'You are an expert customer service agent.', 'years_experience': 15}","You are answering questions as if you were a human. Do not break character. Your traits: {'persona': 'You are an expert customer service agent.', 'years_experience': 15}"," What is the sentiment of this ticket? Ticket: I want to compliment my driver's excellent navigation and time management during rush hour. Very positive Somewhat positive Neutral Somewhat negative Very negative Only 1 option may be selected. Respond only with a string corresponding to one of the options. After the answer, you can put a comment explaining why you chose that option on the next line."," Does the customer ask for a refund in this ticket? Ticket: I want to compliment my driver's excellent navigation and time management during rush hour. No Yes Only 1 option may be selected. Please respond with just your answer. After the answer, you can put a comment explaining your response.","You are answering questions as if you were a human. Do not break character. Your traits: {'persona': 'You are an expert customer service agent.', 'years_experience': 15}"," If the primary issue in this ticket is safety, was there an accident where someone was hurt? Ticket: I want to compliment my driver's excellent navigation and time management during rush hour. Yes No Not applicable Only 1 option may be selected. Respond only with a string corresponding to one of the options. After the answer, you can put a comment explaining why you chose that option on the next line.",0.0005525,"{'id': 'chatcmpl-AeOLCsFfZIOzEv1lRKtpJirNHR30y', 'choices': [{'finish_reason': 'stop', 'index': 0, 'logprobs': None, 'message': {'content': ""Not applicable\n\nThe ticket is a compliment about the driver's skills and does not mention any safety issues or accidents."", 'refusal': None, 'role': 'assistant', 'audio': None, 'function_call': None, 'tool_calls': None}}], 'created': 1734190050, 'model': 'gpt-4o-2024-08-06', 'object': 'chat.completion', 'service_tier': None, 'system_fingerprint': 'fp_9faba9f038', 'usage': {'completion_tokens': 22, 'prompt_tokens': 135, 'total_tokens': 157, 'completion_tokens_details': {'accepted_prediction_tokens': 0, 'audio_tokens': 0, 'reasoning_tokens': 0, 'rejected_prediction_tokens': 0}, 'prompt_tokens_details': {'audio_tokens': 0, 'cached_tokens': 0}}}","{'id': 'chatcmpl-AeOLCEtGpF3UOWquUXpjI1u03vBYr', 'choices': [{'finish_reason': 'stop', 'index': 0, 'logprobs': None, 'message': {'content': ""Very positive\n\nThe ticket expresses a compliment and appreciation for the driver's excellent skills, indicating a very positive sentiment."", 'refusal': None, 'role': 'assistant', 'audio': None, 'function_call': None, 'tool_calls': None}}], 'created': 1734190050, 'model': 'gpt-4o-2024-08-06', 'object': 'chat.completion', 'service_tier': None, 'system_fingerprint': 'fp_a79d8dac1f', 'usage': {'completion_tokens': 22, 'prompt_tokens': 133, 'total_tokens': 155, 'completion_tokens_details': {'accepted_prediction_tokens': 0, 'audio_tokens': 0, 'reasoning_tokens': 0, 'rejected_prediction_tokens': 0}, 'prompt_tokens_details': {'audio_tokens': 0, 'cached_tokens': 0}}}",1809.9547511312217,1809.9547511312217,"{'id': 'chatcmpl-AeOLC1kE8S2bkayEVcEdmHd4IJ9z5', 'choices': [{'finish_reason': 'stop', 'index': 0, 'logprobs': None, 'message': {'content': ""[2, 3]\n\nThe compliment specifically mentions the driver's excellent navigation, which relates to GPS/route (3), and time management, which relates to driver performance (2)."", 'refusal': None, 'role': 'assistant', 'audio': None, 'function_call': None, 'tool_calls': None}}], 'created': 1734190050, 'model': 'gpt-4o-2024-08-06', 'object': 'chat.completion', 'service_tier': None, 'system_fingerprint': 'fp_a79d8dac1f', 'usage': {'completion_tokens': 36, 'prompt_tokens': 156, 'total_tokens': 192, 'completion_tokens_details': {'accepted_prediction_tokens': 0, 'audio_tokens': 0, 'reasoning_tokens': 0, 'rejected_prediction_tokens': 0}, 'prompt_tokens_details': {'audio_tokens': 0, 'cached_tokens': 0}}}",0.0007175,1793.7219730941702,0.0005525,0.00075,"{'id': 'chatcmpl-AeOLCT8SDhzBZc3WJzzLgs5YPaFBP', 'choices': [{'finish_reason': 'stop', 'index': 0, 'logprobs': None, 'message': {'content': ""The primary issue in this ticket is not a problem or complaint, but rather a compliment. The customer is expressing appreciation for their driver's excellent navigation and time management skills during rush hour."", 'refusal': None, 'role': 'assistant', 'audio': None, 'function_call': None, 'tool_calls': None}}], 'created': 1734190050, 'model': 'gpt-4o-2024-08-06', 'object': 'chat.completion', 'service_tier': None, 'system_fingerprint': 'fp_9faba9f038', 'usage': {'completion_tokens': 36, 'prompt_tokens': 76, 'total_tokens': 112, 'completion_tokens_details': {'accepted_prediction_tokens': 0, 'audio_tokens': 0, 'reasoning_tokens': 0, 'rejected_prediction_tokens': 0}, 'prompt_tokens_details': {'audio_tokens': 0, 'cached_tokens': 0}}}",0.00055,1818.181818181818,"{'id': 'chatcmpl-AeOLDYCISmj52LVd0zJXdADkpT0fY', 'choices': [{'finish_reason': 'stop', 'index': 0, 'logprobs': None, 'message': {'content': ""1 \nThis ticket is a positive feedback or compliment, which is important for acknowledging good service but doesn't require immediate action or resolution like a complaint or issue would."", 'refusal': None, 'role': 'assistant', 'audio': None, 'function_call': None, 'tool_calls': None}}], 'created': 1734190051, 'model': 'gpt-4o-2024-08-06', 'object': 'chat.completion', 'service_tier': None, 'system_fingerprint': 'fp_f785eb5f47', 'usage': {'completion_tokens': 32, 'prompt_tokens': 159, 'total_tokens': 191, 'completion_tokens_details': {'accepted_prediction_tokens': 0, 'audio_tokens': 0, 'reasoning_tokens': 0, 'rejected_prediction_tokens': 0}, 'prompt_tokens_details': {'audio_tokens': 0, 'cached_tokens': 0}}}",1333.3333333333333,1393.7282229965156,0.0005575,"{'id': 'chatcmpl-AeOLCLmz49bIwZkpQ3yZ4rGdOyGiG', 'choices': [{'finish_reason': 'stop', 'index': 0, 'logprobs': None, 'message': {'content': ""No\n\nThe customer is complimenting the driver's performance, indicating satisfaction with the service rather than dissatisfaction that would lead to a refund request."", 'refusal': None, 'role': 'assistant', 'audio': None, 'function_call': None, 'tool_calls': None}}], 'created': 1734190050, 'model': 'gpt-4o-2024-08-06', 'object': 'chat.completion', 'service_tier': None, 'system_fingerprint': 'fp_a79d8dac1f', 'usage': {'completion_tokens': 27, 'prompt_tokens': 113, 'total_tokens': 140, 'completion_tokens_details': {'accepted_prediction_tokens': 0, 'audio_tokens': 0, 'reasoning_tokens': 0, 'rejected_prediction_tokens': 0}, 'prompt_tokens_details': {'audio_tokens': 0, 'cached_tokens': 0}}}",0,Does the customer ask for a refund in this ticket? Ticket: {{ ticket }},"If the primary issue in this ticket is safety, was there an accident where someone was hurt? Ticket: {{ ticket }}",What is the primary issue in this ticket? Ticket: {{ ticket }},Check all of the issues mentioned in this ticket: {{ ticket }},"On a scale from 0 to 5, what is the priority level of this ticket? Ticket: {{ ticket }}",What is the sentiment of this ticket? Ticket: {{ ticket }},"['safety', 'cleanliness', 'driver performance', 'GPS/route', 'lost item', 'other']","['Very positive', 'Somewhat positive', 'Neutral', 'Somewhat negative', 'Very negative']",,"['No', 'Yes']","['Yes', 'No', 'Not applicable']","[0, 1, 2, 3, 4, 5]",linear_scale,multiple_choice,multiple_choice,yes_no,free_text,checkbox,,"The customer is complimenting the driver's performance, indicating satisfaction with the service rather than dissatisfaction that would lead to a refund request.","This ticket is a positive feedback or compliment, which is important for acknowledging good service but doesn't require immediate action or resolution like a complaint or issue would.","The compliment specifically mentions the driver's excellent navigation, which relates to GPS/route (3), and time management, which relates to driver performance (2).","The ticket expresses a compliment and appreciation for the driver's excellent skills, indicating a very positive sentiment.",The ticket is a compliment about the driver's skills and does not mention any safety issues or accidents.,"Very positive The ticket expresses a compliment and appreciation for the driver's excellent skills, indicating a very positive sentiment.","[2, 3] The compliment specifically mentions the driver's excellent navigation, which relates to GPS/route (3), and time management, which relates to driver performance (2).","No The customer is complimenting the driver's performance, indicating satisfaction with the service rather than dissatisfaction that would lead to a refund request.","The primary issue in this ticket is not a problem or complaint, but rather a compliment. The customer is expressing appreciation for their driver's excellent navigation and time management skills during rush hour.","Not applicable The ticket is a compliment about the driver's skills and does not mention any safety issues or accidents.","1 This ticket is a positive feedback or compliment, which is important for acknowledging good service but doesn't require immediate action or resolution like a complaint or issue would." No,Somewhat negative,No,"The primary issue in this ticket is that the vehicle provided did not match the description given in the app. This discrepancy caused confusion and concern for the customer. It's important to address this by verifying the accuracy of vehicle descriptions in the app to ensure they align with what is actually provided, thereby enhancing customer trust and satisfaction.",3,['other'],The vehicle didn't match the description in the app. It was confusing and concerning.,You are an expert customer service agent.,Agent_18,15,You are answering questions as if you were a human. Do not break character.,0,1,0,gpt-4o,0.5,False,1000,3,What is the primary issue in this ticket? Ticket: The vehicle didn't match the description in the app. It was confusing and concerning.,"You are answering questions as if you were a human. Do not break character. Your traits: {'persona': 'You are an expert customer service agent.', 'years_experience': 15}","You are answering questions as if you were a human. Do not break character. Your traits: {'persona': 'You are an expert customer service agent.', 'years_experience': 15}","Check all of the issues mentioned in this ticket: The vehicle didn't match the description in the app. It was confusing and concerning. 0: safety 1: cleanliness 2: driver performance 3: GPS/route 4: lost item 5: other Please respond only with a comma-separated list of the code of the options that apply, with square brackets. E.g., [0, 1, 3] After the answer, you can put a comment explaining your choice on the next line.","On a scale from 0 to 5, what is the priority level of this ticket? Ticket: The vehicle didn't match the description in the app. It was confusing and concerning. 0 : Lowest 1 : 2 : 3 : 4 : 5 : Highest Only 1 option may be selected. Respond only with the code corresponding to one of the options. E.g., ""1"" or ""5"" by itself. After the answer, you can put a comment explaining why you chose that option on the next line.","You are answering questions as if you were a human. Do not break character. Your traits: {'persona': 'You are an expert customer service agent.', 'years_experience': 15}","You are answering questions as if you were a human. Do not break character. Your traits: {'persona': 'You are an expert customer service agent.', 'years_experience': 15}","You are answering questions as if you were a human. Do not break character. Your traits: {'persona': 'You are an expert customer service agent.', 'years_experience': 15}"," What is the sentiment of this ticket? Ticket: The vehicle didn't match the description in the app. It was confusing and concerning. Very positive Somewhat positive Neutral Somewhat negative Very negative Only 1 option may be selected. Respond only with a string corresponding to one of the options. After the answer, you can put a comment explaining why you chose that option on the next line."," Does the customer ask for a refund in this ticket? Ticket: The vehicle didn't match the description in the app. It was confusing and concerning. No Yes Only 1 option may be selected. Please respond with just your answer. After the answer, you can put a comment explaining your response.","You are answering questions as if you were a human. Do not break character. Your traits: {'persona': 'You are an expert customer service agent.', 'years_experience': 15}"," If the primary issue in this ticket is safety, was there an accident where someone was hurt? Ticket: The vehicle didn't match the description in the app. It was confusing and concerning. Yes No Not applicable Only 1 option may be selected. Respond only with a string corresponding to one of the options. After the answer, you can put a comment explaining why you chose that option on the next line.",0.000545,"{'id': 'chatcmpl-AeOLCmOlnN1u2s3udw5t9Wl1ENuct', 'choices': [{'finish_reason': 'stop', 'index': 0, 'logprobs': None, 'message': {'content': ""No \nThe ticket mentions a discrepancy in vehicle description, which is concerning but doesn't indicate an accident or injury."", 'refusal': None, 'role': 'assistant', 'audio': None, 'function_call': None, 'tool_calls': None}}], 'created': 1734190050, 'model': 'gpt-4o-2024-08-06', 'object': 'chat.completion', 'service_tier': None, 'system_fingerprint': 'fp_a79d8dac1f', 'usage': {'completion_tokens': 22, 'prompt_tokens': 136, 'total_tokens': 158, 'completion_tokens_details': {'accepted_prediction_tokens': 0, 'audio_tokens': 0, 'reasoning_tokens': 0, 'rejected_prediction_tokens': 0}, 'prompt_tokens_details': {'audio_tokens': 0, 'cached_tokens': 0}}}","{'id': 'chatcmpl-AeOLDJ1hIniI0lIayERV1Rkwj1b47', 'choices': [{'finish_reason': 'stop', 'index': 0, 'logprobs': None, 'message': {'content': 'Somewhat negative \nThe ticket expresses confusion and concern, indicating dissatisfaction with the vehicle not matching the description.', 'refusal': None, 'role': 'assistant', 'audio': None, 'function_call': None, 'tool_calls': None}}], 'created': 1734190051, 'model': 'gpt-4o-2024-08-06', 'object': 'chat.completion', 'service_tier': None, 'system_fingerprint': 'fp_9faba9f038', 'usage': {'completion_tokens': 21, 'prompt_tokens': 134, 'total_tokens': 155, 'completion_tokens_details': {'accepted_prediction_tokens': 0, 'audio_tokens': 0, 'reasoning_tokens': 0, 'rejected_prediction_tokens': 0}, 'prompt_tokens_details': {'audio_tokens': 0, 'cached_tokens': 0}}}",1834.8623853211009,1739.1304347826087,"{'id': 'chatcmpl-AeOLCigpTlhD7Cbqub2qyqmFzDJ3h', 'choices': [{'finish_reason': 'stop', 'index': 0, 'logprobs': None, 'message': {'content': '[5] \nThe issue mentioned is that the vehicle didn\'t match the description in the app, which falls under ""other"" concerns.', 'refusal': None, 'role': 'assistant', 'audio': None, 'function_call': None, 'tool_calls': None}}], 'created': 1734190050, 'model': 'gpt-4o-2024-08-06', 'object': 'chat.completion', 'service_tier': None, 'system_fingerprint': 'fp_a79d8dac1f', 'usage': {'completion_tokens': 27, 'prompt_tokens': 157, 'total_tokens': 184, 'completion_tokens_details': {'accepted_prediction_tokens': 0, 'audio_tokens': 0, 'reasoning_tokens': 0, 'rejected_prediction_tokens': 0}, 'prompt_tokens_details': {'audio_tokens': 0, 'cached_tokens': 0}}}",0.00082,1785.7142857142856,0.000575,0.0006625,"{'id': 'chatcmpl-AeOLCg13FY2HVspX7xO4RJP2mw3Gi', 'choices': [{'finish_reason': 'stop', 'index': 0, 'logprobs': None, 'message': {'content': ""The primary issue in this ticket is that the vehicle provided did not match the description given in the app. This discrepancy caused confusion and concern for the customer. It's important to address this by verifying the accuracy of vehicle descriptions in the app to ensure they align with what is actually provided, thereby enhancing customer trust and satisfaction."", 'refusal': None, 'role': 'assistant', 'audio': None, 'function_call': None, 'tool_calls': None}}], 'created': 1734190050, 'model': 'gpt-4o-2024-08-06', 'object': 'chat.completion', 'service_tier': None, 'system_fingerprint': 'fp_a79d8dac1f', 'usage': {'completion_tokens': 63, 'prompt_tokens': 77, 'total_tokens': 140, 'completion_tokens_details': {'accepted_prediction_tokens': 0, 'audio_tokens': 0, 'reasoning_tokens': 0, 'rejected_prediction_tokens': 0}, 'prompt_tokens_details': {'audio_tokens': 0, 'cached_tokens': 0}}}",0.0008225,1215.80547112462,"{'id': 'chatcmpl-AeOLDjmahEfCBFc1SETcKnrjwz53z', 'choices': [{'finish_reason': 'stop', 'index': 0, 'logprobs': None, 'message': {'content': '3 \nThis ticket involves a discrepancy that could potentially affect customer trust and safety, so it requires prompt attention. However, it does not indicate an immediate danger or emergency, so it is not the highest priority.', 'refusal': None, 'role': 'assistant', 'audio': None, 'function_call': None, 'tool_calls': None}}], 'created': 1734190051, 'model': 'gpt-4o-2024-08-06', 'object': 'chat.completion', 'service_tier': None, 'system_fingerprint': 'fp_a79d8dac1f', 'usage': {'completion_tokens': 42, 'prompt_tokens': 160, 'total_tokens': 202, 'completion_tokens_details': {'accepted_prediction_tokens': 0, 'audio_tokens': 0, 'reasoning_tokens': 0, 'rejected_prediction_tokens': 0}, 'prompt_tokens_details': {'audio_tokens': 0, 'cached_tokens': 0}}}",1509.433962264151,1219.5121951219512,0.0005600000000000001,"{'id': 'chatcmpl-AeOLClkg5eGlWvbKqD74GAcyo5psM', 'choices': [{'finish_reason': 'stop', 'index': 0, 'logprobs': None, 'message': {'content': 'No\n\nThe customer expressed confusion and concern about the vehicle not matching the description, but there is no explicit request for a refund in the ticket.', 'refusal': None, 'role': 'assistant', 'audio': None, 'function_call': None, 'tool_calls': None}}], 'created': 1734190050, 'model': 'gpt-4o-2024-08-06', 'object': 'chat.completion', 'service_tier': None, 'system_fingerprint': 'fp_a79d8dac1f', 'usage': {'completion_tokens': 29, 'prompt_tokens': 114, 'total_tokens': 143, 'completion_tokens_details': {'accepted_prediction_tokens': 0, 'audio_tokens': 0, 'reasoning_tokens': 0, 'rejected_prediction_tokens': 0}, 'prompt_tokens_details': {'audio_tokens': 0, 'cached_tokens': 0}}}",0,Does the customer ask for a refund in this ticket? Ticket: {{ ticket }},"If the primary issue in this ticket is safety, was there an accident where someone was hurt? Ticket: {{ ticket }}",What is the primary issue in this ticket? Ticket: {{ ticket }},Check all of the issues mentioned in this ticket: {{ ticket }},"On a scale from 0 to 5, what is the priority level of this ticket? Ticket: {{ ticket }}",What is the sentiment of this ticket? Ticket: {{ ticket }},"['safety', 'cleanliness', 'driver performance', 'GPS/route', 'lost item', 'other']","['Very positive', 'Somewhat positive', 'Neutral', 'Somewhat negative', 'Very negative']",,"['No', 'Yes']","['Yes', 'No', 'Not applicable']","[0, 1, 2, 3, 4, 5]",linear_scale,multiple_choice,multiple_choice,yes_no,free_text,checkbox,,"The customer expressed confusion and concern about the vehicle not matching the description, but there is no explicit request for a refund in the ticket.","This ticket involves a discrepancy that could potentially affect customer trust and safety, so it requires prompt attention. However, it does not indicate an immediate danger or emergency, so it is not the highest priority.","The issue mentioned is that the vehicle didn't match the description in the app, which falls under ""other"" concerns.","The ticket expresses confusion and concern, indicating dissatisfaction with the vehicle not matching the description.","The ticket mentions a discrepancy in vehicle description, which is concerning but doesn't indicate an accident or injury.","Somewhat negative The ticket expresses confusion and concern, indicating dissatisfaction with the vehicle not matching the description.","[5] The issue mentioned is that the vehicle didn't match the description in the app, which falls under ""other"" concerns.","No The customer expressed confusion and concern about the vehicle not matching the description, but there is no explicit request for a refund in the ticket.","The primary issue in this ticket is that the vehicle provided did not match the description given in the app. This discrepancy caused confusion and concern for the customer. It's important to address this by verifying the accuracy of vehicle descriptions in the app to ensure they align with what is actually provided, thereby enhancing customer trust and satisfaction.","No The ticket mentions a discrepancy in vehicle description, which is concerning but doesn't indicate an accident or injury.","3 This ticket involves a discrepancy that could potentially affect customer trust and safety, so it requires prompt attention. However, it does not indicate an immediate danger or emergency, so it is not the highest priority." Not applicable,Neutral,No,The primary issue in this ticket is a problem with payment processing after the customer's last ride. The customer is requesting assistance to investigate and resolve the payment issue.,3,['other'],I faced an issue with payment processing after my last ride. Can you look into this?,You are an expert customer service agent.,Agent_19,15,You are answering questions as if you were a human. Do not break character.,0,1,0,gpt-4o,0.5,False,1000,3,What is the primary issue in this ticket? Ticket: I faced an issue with payment processing after my last ride. Can you look into this?,"You are answering questions as if you were a human. Do not break character. Your traits: {'persona': 'You are an expert customer service agent.', 'years_experience': 15}","You are answering questions as if you were a human. Do not break character. Your traits: {'persona': 'You are an expert customer service agent.', 'years_experience': 15}","Check all of the issues mentioned in this ticket: I faced an issue with payment processing after my last ride. Can you look into this? 0: safety 1: cleanliness 2: driver performance 3: GPS/route 4: lost item 5: other Please respond only with a comma-separated list of the code of the options that apply, with square brackets. E.g., [0, 1, 3] After the answer, you can put a comment explaining your choice on the next line.","On a scale from 0 to 5, what is the priority level of this ticket? Ticket: I faced an issue with payment processing after my last ride. Can you look into this? 0 : Lowest 1 : 2 : 3 : 4 : 5 : Highest Only 1 option may be selected. Respond only with the code corresponding to one of the options. E.g., ""1"" or ""5"" by itself. After the answer, you can put a comment explaining why you chose that option on the next line.","You are answering questions as if you were a human. Do not break character. Your traits: {'persona': 'You are an expert customer service agent.', 'years_experience': 15}","You are answering questions as if you were a human. Do not break character. Your traits: {'persona': 'You are an expert customer service agent.', 'years_experience': 15}","You are answering questions as if you were a human. Do not break character. Your traits: {'persona': 'You are an expert customer service agent.', 'years_experience': 15}"," What is the sentiment of this ticket? Ticket: I faced an issue with payment processing after my last ride. Can you look into this? Very positive Somewhat positive Neutral Somewhat negative Very negative Only 1 option may be selected. Respond only with a string corresponding to one of the options. After the answer, you can put a comment explaining why you chose that option on the next line."," Does the customer ask for a refund in this ticket? Ticket: I faced an issue with payment processing after my last ride. Can you look into this? No Yes Only 1 option may be selected. Please respond with just your answer. After the answer, you can put a comment explaining your response.","You are answering questions as if you were a human. Do not break character. Your traits: {'persona': 'You are an expert customer service agent.', 'years_experience': 15}"," If the primary issue in this ticket is safety, was there an accident where someone was hurt? Ticket: I faced an issue with payment processing after my last ride. Can you look into this? Yes No Not applicable Only 1 option may be selected. Respond only with a string corresponding to one of the options. After the answer, you can put a comment explaining why you chose that option on the next line.",0.0005300000000000001,"{'id': 'chatcmpl-AeOLCvgEMnWAenTFP12Tb0675kGrR', 'choices': [{'finish_reason': 'stop', 'index': 0, 'logprobs': None, 'message': {'content': 'Not applicable\n\nThe ticket mentions an issue with payment processing, which is unrelated to safety or any accidents.', 'refusal': None, 'role': 'assistant', 'audio': None, 'function_call': None, 'tool_calls': None}}], 'created': 1734190050, 'model': 'gpt-4o-2024-08-06', 'object': 'chat.completion', 'service_tier': None, 'system_fingerprint': 'fp_a79d8dac1f', 'usage': {'completion_tokens': 21, 'prompt_tokens': 138, 'total_tokens': 159, 'completion_tokens_details': {'accepted_prediction_tokens': 0, 'audio_tokens': 0, 'reasoning_tokens': 0, 'rejected_prediction_tokens': 0}, 'prompt_tokens_details': {'audio_tokens': 0, 'cached_tokens': 0}}}","{'id': 'chatcmpl-AeOLC7ois1fTDomYwnoNFVKp7nZgP', 'choices': [{'finish_reason': 'stop', 'index': 0, 'logprobs': None, 'message': {'content': 'Neutral \nThe ticket simply states an issue with payment processing without expressing any strong emotions or dissatisfaction.', 'refusal': None, 'role': 'assistant', 'audio': None, 'function_call': None, 'tool_calls': None}}], 'created': 1734190050, 'model': 'gpt-4o-2024-08-06', 'object': 'chat.completion', 'service_tier': None, 'system_fingerprint': 'fp_a79d8dac1f', 'usage': {'completion_tokens': 19, 'prompt_tokens': 136, 'total_tokens': 155, 'completion_tokens_details': {'accepted_prediction_tokens': 0, 'audio_tokens': 0, 'reasoning_tokens': 0, 'rejected_prediction_tokens': 0}, 'prompt_tokens_details': {'audio_tokens': 0, 'cached_tokens': 0}}}",1886.7924528301883,2040.8163265306123,"{'id': 'chatcmpl-AeOLCKMi6dJOrw3Xn3ijUuxr1lIGU', 'choices': [{'finish_reason': 'stop', 'index': 0, 'logprobs': None, 'message': {'content': '[5] \nThe issue mentioned is related to payment processing, which falls under ""other"" as it doesn\'t match the specific categories listed.', 'refusal': None, 'role': 'assistant', 'audio': None, 'function_call': None, 'tool_calls': None}}], 'created': 1734190050, 'model': 'gpt-4o-2024-08-06', 'object': 'chat.completion', 'service_tier': None, 'system_fingerprint': 'fp_a79d8dac1f', 'usage': {'completion_tokens': 28, 'prompt_tokens': 159, 'total_tokens': 187, 'completion_tokens_details': {'accepted_prediction_tokens': 0, 'audio_tokens': 0, 'reasoning_tokens': 0, 'rejected_prediction_tokens': 0}, 'prompt_tokens_details': {'audio_tokens': 0, 'cached_tokens': 0}}}",0.0007049999999999999,1801.801801801802,0.00049,0.0006774999999999999,"{'id': 'chatcmpl-AeOLDvWq9d5NYGPW5CC5DwhQwv5al', 'choices': [{'finish_reason': 'stop', 'index': 0, 'logprobs': None, 'message': {'content': ""The primary issue in this ticket is a problem with payment processing after the customer's last ride. The customer is requesting assistance to investigate and resolve the payment issue."", 'refusal': None, 'role': 'assistant', 'audio': None, 'function_call': None, 'tool_calls': None}}], 'created': 1734190051, 'model': 'gpt-4o-2024-08-06', 'object': 'chat.completion', 'service_tier': None, 'system_fingerprint': 'fp_a79d8dac1f', 'usage': {'completion_tokens': 31, 'prompt_tokens': 79, 'total_tokens': 110, 'completion_tokens_details': {'accepted_prediction_tokens': 0, 'audio_tokens': 0, 'reasoning_tokens': 0, 'rejected_prediction_tokens': 0}, 'prompt_tokens_details': {'audio_tokens': 0, 'cached_tokens': 0}}}",0.0005075,1970.4433497536945,"{'id': 'chatcmpl-AeOLDRx6aS6VcLWdqvqR9Rj490AsM', 'choices': [{'finish_reason': 'stop', 'index': 0, 'logprobs': None, 'message': {'content': ""3 \nPayment processing issues can impact both the customer and the company's operations, so they should be addressed promptly to ensure customer satisfaction and proper financial handling."", 'refusal': None, 'role': 'assistant', 'audio': None, 'function_call': None, 'tool_calls': None}}], 'created': 1734190051, 'model': 'gpt-4o-2024-08-06', 'object': 'chat.completion', 'service_tier': None, 'system_fingerprint': 'fp_a79d8dac1f', 'usage': {'completion_tokens': 30, 'prompt_tokens': 162, 'total_tokens': 192, 'completion_tokens_details': {'accepted_prediction_tokens': 0, 'audio_tokens': 0, 'reasoning_tokens': 0, 'rejected_prediction_tokens': 0}, 'prompt_tokens_details': {'audio_tokens': 0, 'cached_tokens': 0}}}",1476.0147601476017,1418.439716312057,0.0005549999999999999,"{'id': 'chatcmpl-AeOLCBeULCMXmZhp60xSkAx4SuJA4', 'choices': [{'finish_reason': 'stop', 'index': 0, 'logprobs': None, 'message': {'content': 'No\n\nThe customer is asking for assistance with a payment processing issue, not directly requesting a refund.', 'refusal': None, 'role': 'assistant', 'audio': None, 'function_call': None, 'tool_calls': None}}], 'created': 1734190050, 'model': 'gpt-4o-2024-08-06', 'object': 'chat.completion', 'service_tier': None, 'system_fingerprint': 'fp_a79d8dac1f', 'usage': {'completion_tokens': 20, 'prompt_tokens': 116, 'total_tokens': 136, 'completion_tokens_details': {'accepted_prediction_tokens': 0, 'audio_tokens': 0, 'reasoning_tokens': 0, 'rejected_prediction_tokens': 0}, 'prompt_tokens_details': {'audio_tokens': 0, 'cached_tokens': 0}}}",0,Does the customer ask for a refund in this ticket? Ticket: {{ ticket }},"If the primary issue in this ticket is safety, was there an accident where someone was hurt? Ticket: {{ ticket }}",What is the primary issue in this ticket? Ticket: {{ ticket }},Check all of the issues mentioned in this ticket: {{ ticket }},"On a scale from 0 to 5, what is the priority level of this ticket? Ticket: {{ ticket }}",What is the sentiment of this ticket? Ticket: {{ ticket }},"['safety', 'cleanliness', 'driver performance', 'GPS/route', 'lost item', 'other']","['Very positive', 'Somewhat positive', 'Neutral', 'Somewhat negative', 'Very negative']",,"['No', 'Yes']","['Yes', 'No', 'Not applicable']","[0, 1, 2, 3, 4, 5]",linear_scale,multiple_choice,multiple_choice,yes_no,free_text,checkbox,,"The customer is asking for assistance with a payment processing issue, not directly requesting a refund.","Payment processing issues can impact both the customer and the company's operations, so they should be addressed promptly to ensure customer satisfaction and proper financial handling.","The issue mentioned is related to payment processing, which falls under ""other"" as it doesn't match the specific categories listed.",The ticket simply states an issue with payment processing without expressing any strong emotions or dissatisfaction.,"The ticket mentions an issue with payment processing, which is unrelated to safety or any accidents.","Neutral The ticket simply states an issue with payment processing without expressing any strong emotions or dissatisfaction.","[5] The issue mentioned is related to payment processing, which falls under ""other"" as it doesn't match the specific categories listed.","No The customer is asking for assistance with a payment processing issue, not directly requesting a refund.",The primary issue in this ticket is a problem with payment processing after the customer's last ride. The customer is requesting assistance to investigate and resolve the payment issue.,"Not applicable The ticket mentions an issue with payment processing, which is unrelated to safety or any accidents.","3 Payment processing issues can impact both the customer and the company's operations, so they should be addressed promptly to ensure customer satisfaction and proper financial handling." |
Download data_labeling_example.csv
Posting content to the Coop
We can post any objects to the Coop, including this notebook. Objects can be updated or modified at your Coop account, and shared with others or stored privately (default visibility is unlisted):
[22]:
results.push(description = "Customer service tickets data labeling example", visibility="public")
[22]:
{'description': 'Customer service tickets data labeling example',
'object_type': 'results',
'url': 'https://www.expectedparrot.com/content/3b78afcd-14ba-4937-8280-1ac3487e16c1',
'uuid': '3b78afcd-14ba-4937-8280-1ac3487e16c1',
'version': '0.1.39.dev2',
'visibility': 'public'}
[23]:
survey.push(description = "Customer service tickets data labeling example survey", visibility="public")
[23]:
{'description': 'Customer service tickets data labeling example survey',
'object_type': 'survey',
'url': 'https://www.expectedparrot.com/content/ebd0e9d6-53fa-4618-a527-e5e53b202d0c',
'uuid': 'ebd0e9d6-53fa-4618-a527-e5e53b202d0c',
'version': '0.1.39.dev2',
'visibility': 'public'}
[24]:
from edsl import Notebook
n = Notebook(path="data_labeling_example.ipynb")
info = n.push(description="Data labeling example", visibility="public")
info
[24]:
{'description': 'Data labeling example',
'object_type': 'notebook',
'url': 'https://www.expectedparrot.com/content/0d621ed9-a8b1-4a7b-a9a2-8e6dc09ab80d',
'uuid': '0d621ed9-a8b1-4a7b-a9a2-8e6dc09ab80d',
'version': '0.1.39.dev2',
'visibility': 'public'}
To update an object at the Coop:
[25]:
n = Notebook(path="data_labeling_example.ipynb") # resave
n.patch(uuid = info["uuid"], value = n)
[25]:
{'status': 'success'}