Skip to content

Instantly share code, notes, and snippets.

@aliou
Created April 30, 2026 18:06
Show Gist options
  • Select an option

  • Save aliou/a4b89b5a3f90a4cd7d3ff99e11e24a73 to your computer and use it in GitHub Desktop.

Select an option

Save aliou/a4b89b5a3f90a4cd7d3ff99e11e24a73 to your computer and use it in GitHub Desktop.
Investigate headers display issue
This file has been truncated, but you can view the full file.
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Session Export</title>
<style>
:root {
--accent: #4a5e81;
--border: #606060;
--borderAccent: #7d7163;
--borderMuted: #e0d8d0;
--success: #3d6c25;
--error: #cc0000;
--warning: #a36000;
--muted: #645c54;
--dim: #757a82;
--text: #252525;
--thinkingText: #645c54;
--selectedBg: #e8e0d5;
--userMessageBg: #e0d8d0;
--userMessageText: #252525;
--customMessageBg: #d8c8b8;
--customMessageText: #252525;
--customMessageLabel: #7d7163;
--toolPendingBg: #e0d8d0;
--toolSuccessBg: #d7c8b8;
--toolErrorBg: #ffe5ea;
--toolTitle: #4a5e81;
--toolOutput: #252525;
--mdHeading: #7d7163;
--mdLink: #4a5e81;
--mdLinkUrl: #757a82;
--mdCode: #555555;
--mdCodeBlock: #252525;
--mdCodeBlockBorder: #777777;
--mdQuote: #505860;
--mdQuoteBorder: #777777;
--mdHr: #777777;
--mdListBullet: #4a5e81;
--toolDiffAdded: #3d6c25;
--toolDiffRemoved: #cc0000;
--toolDiffContext: #645c54;
--syntaxComment: #909090;
--syntaxKeyword: #787878;
--syntaxFunction: #4a5e81;
--syntaxVariable: #252525;
--syntaxString: #796858;
--syntaxNumber: #7d7163;
--syntaxType: #7d7163;
--syntaxOperator: #777777;
--syntaxPunctuation: #555555;
--thinkingOff: #e0d8d0;
--thinkingMinimal: #645c54;
--thinkingLow: #757a82;
--thinkingMedium: #7d7163;
--thinkingHigh: #4a5e81;
--thinkingXhigh: #a36000;
--bashMode: #a36000;
--exportPageBg: rgb(215, 207, 200);
--exportCardBg: #e0d8d0;
--exportInfoBg: rgb(234, 221, 188);
--body-bg: rgb(215, 207, 200);
--container-bg: #e0d8d0;
--info-bg: rgb(234, 221, 188);
}
* { margin: 0; padding: 0; box-sizing: border-box; }
:root {
--line-height: 18px; /* 12px font * 1.5 */
--sidebar-width: 400px;
--sidebar-min-width: 240px;
--sidebar-max-width: 840px;
--sidebar-resizer-width: 6px;
}
body {
font-family: ui-monospace, 'Cascadia Code', 'Source Code Pro', Menlo, Consolas, 'DejaVu Sans Mono', monospace;
font-size: 12px;
line-height: var(--line-height);
color: var(--text);
background: var(--body-bg);
}
body.sidebar-resizing {
cursor: col-resize;
user-select: none;
}
#app {
display: flex;
min-height: 100vh;
}
/* Sidebar */
#sidebar {
width: var(--sidebar-width);
min-width: var(--sidebar-width);
max-width: var(--sidebar-width);
background: var(--container-bg);
flex-shrink: 0;
display: flex;
flex-direction: column;
position: sticky;
top: 0;
height: 100vh;
border-right: 1px solid var(--dim);
}
#sidebar-resizer {
width: var(--sidebar-resizer-width);
flex-shrink: 0;
position: sticky;
top: 0;
height: 100vh;
cursor: col-resize;
touch-action: none;
background: transparent;
border-right: 1px solid transparent;
}
#sidebar-resizer:hover,
body.sidebar-resizing #sidebar-resizer {
background: var(--selectedBg);
border-right-color: var(--dim);
}
.sidebar-header {
padding: 8px 12px;
flex-shrink: 0;
}
.sidebar-controls {
padding: 8px 8px 4px 8px;
}
.sidebar-search {
width: 100%;
box-sizing: border-box;
padding: 4px 8px;
font-size: 11px;
font-family: inherit;
background: var(--body-bg);
color: var(--text);
border: 1px solid var(--dim);
border-radius: 3px;
}
.sidebar-filters {
display: flex;
padding: 4px 8px 8px 8px;
gap: 4px;
align-items: center;
flex-wrap: wrap;
}
.sidebar-search:focus {
outline: none;
border-color: var(--accent);
}
.sidebar-search::placeholder {
color: var(--muted);
}
.filter-btn {
padding: 3px 8px;
font-size: 10px;
font-family: inherit;
background: transparent;
color: var(--muted);
border: 1px solid var(--dim);
border-radius: 3px;
cursor: pointer;
}
.filter-btn:hover {
color: var(--text);
border-color: var(--text);
}
.filter-btn.active {
background: var(--accent);
color: var(--body-bg);
border-color: var(--accent);
}
.sidebar-close {
display: none;
padding: 3px 8px;
font-size: 12px;
font-family: inherit;
background: transparent;
color: var(--muted);
border: 1px solid var(--dim);
border-radius: 3px;
cursor: pointer;
margin-left: auto;
}
.sidebar-close:hover {
color: var(--text);
border-color: var(--text);
}
.tree-container {
flex: 1;
overflow: auto;
padding: 4px 0;
}
.tree-node {
padding: 0 8px;
cursor: pointer;
display: flex;
align-items: baseline;
font-size: 11px;
line-height: 13px;
white-space: nowrap;
}
.tree-node:hover {
background: var(--selectedBg);
}
.tree-node.active {
background: var(--selectedBg);
}
.tree-node.active .tree-content {
font-weight: bold;
}
.tree-node.in-path {
background: color-mix(in srgb, var(--accent) 10%, transparent);
}
.tree-node:not(.in-path) {
opacity: 0.5;
}
.tree-node:not(.in-path):hover {
opacity: 1;
}
.tree-prefix {
color: var(--muted);
flex-shrink: 0;
font-family: monospace;
white-space: pre;
}
.tree-marker {
color: var(--accent);
flex-shrink: 0;
}
.tree-content {
color: var(--text);
}
.tree-role-user {
color: var(--accent);
}
.tree-role-assistant {
color: var(--success);
}
.tree-role-tool {
color: var(--muted);
}
.tree-muted {
color: var(--muted);
}
.tree-error {
color: var(--error);
}
.tree-compaction {
color: var(--borderAccent);
}
.tree-branch-summary {
color: var(--warning);
}
.tree-custom-message {
color: var(--customMessageLabel);
}
.tree-status {
padding: 4px 12px;
font-size: 10px;
color: var(--muted);
flex-shrink: 0;
}
/* Main content */
#content {
flex: 1;
min-width: 0;
overflow-y: auto;
padding: var(--line-height) calc(var(--line-height) * 2);
display: flex;
flex-direction: column;
align-items: center;
}
#content > * {
width: 100%;
max-width: 800px;
}
/* Help bar */
.help-bar {
font-size: 11px;
color: var(--warning);
margin-bottom: var(--line-height);
display: flex;
align-items: center;
justify-content: space-between;
flex-wrap: wrap;
gap: 12px;
}
.help-hint {
flex: 1 1 240px;
}
.help-actions {
display: flex;
align-items: center;
flex-wrap: wrap;
gap: 8px;
}
.header-toggle-btn,
.download-json-btn {
font-size: 10px;
padding: 2px 8px;
background: var(--container-bg);
border: 1px solid var(--border);
border-radius: 3px;
color: var(--text);
cursor: pointer;
font-family: inherit;
}
.header-toggle-btn:hover,
.download-json-btn:hover {
background: var(--hover);
border-color: var(--borderAccent);
}
/* Header */
.header {
background: var(--container-bg);
border-radius: 4px;
padding: var(--line-height);
margin-bottom: var(--line-height);
}
.header h1 {
font-size: 12px;
font-weight: bold;
color: var(--borderAccent);
margin-bottom: var(--line-height);
}
.header-info {
display: flex;
flex-direction: column;
gap: 0;
font-size: 11px;
}
.info-item {
color: var(--dim);
display: flex;
align-items: baseline;
}
.info-label {
font-weight: 600;
margin-right: 8px;
min-width: 100px;
}
.info-value {
color: var(--text);
flex: 1;
}
/* Messages */
#messages {
display: flex;
flex-direction: column;
gap: var(--line-height);
}
.message-timestamp {
font-size: 10px;
color: var(--dim);
opacity: 0.8;
}
.user-message {
background: var(--userMessageBg);
color: var(--userMessageText);
padding: var(--line-height);
border-radius: 4px;
position: relative;
}
.assistant-message {
padding: 0;
position: relative;
}
/* Copy link button - appears on hover */
.copy-link-btn {
position: absolute;
top: 8px;
right: 8px;
width: 28px;
height: 28px;
padding: 6px;
background: var(--container-bg);
border: 1px solid var(--dim);
border-radius: 4px;
color: var(--muted);
cursor: pointer;
opacity: 0;
transition: opacity 0.15s, background 0.15s, color 0.15s;
display: flex;
align-items: center;
justify-content: center;
z-index: 10;
}
.user-message:hover .copy-link-btn,
.assistant-message:hover .copy-link-btn {
opacity: 1;
}
.copy-link-btn:hover {
background: var(--accent);
color: var(--body-bg);
border-color: var(--accent);
}
.copy-link-btn.copied {
background: var(--success, #22c55e);
color: white;
border-color: var(--success, #22c55e);
}
/* Highlight effect for deep-linked messages */
.user-message.highlight,
.assistant-message.highlight {
animation: highlight-pulse 2s ease-out;
}
@keyframes highlight-pulse {
0% {
box-shadow: 0 0 0 3px var(--accent);
}
100% {
box-shadow: 0 0 0 0 transparent;
}
}
.assistant-message > .message-timestamp {
padding-left: var(--line-height);
}
.assistant-text {
padding: var(--line-height);
padding-bottom: 0;
}
.message-timestamp + .assistant-text,
.message-timestamp + .thinking-block {
padding-top: 0;
}
.thinking-block + .assistant-text {
padding-top: 0;
}
.thinking-text {
padding: var(--line-height);
color: var(--thinkingText);
font-style: italic;
white-space: pre-wrap;
}
.message-timestamp + .thinking-block .thinking-text,
.message-timestamp + .thinking-block .thinking-collapsed {
padding-top: 0;
}
.thinking-collapsed {
display: none;
padding: var(--line-height);
color: var(--thinkingText);
font-style: italic;
}
/* Tool execution */
.tool-execution {
padding: var(--line-height);
border-radius: 4px;
}
.tool-execution + .tool-execution {
margin-top: var(--line-height);
}
.assistant-text + .tool-execution {
margin-top: var(--line-height);
}
.tool-execution.pending { background: var(--toolPendingBg); }
.tool-execution.success { background: var(--toolSuccessBg); }
.tool-execution.error { background: var(--toolErrorBg); }
.tool-header, .tool-name {
font-weight: bold;
}
.tool-path {
color: var(--accent);
word-break: break-all;
}
.line-numbers {
color: var(--warning);
}
.line-count {
color: var(--dim);
}
.tool-command {
font-weight: bold;
white-space: pre-wrap;
word-wrap: break-word;
overflow-wrap: break-word;
word-break: break-word;
}
.tool-output {
margin-top: var(--line-height);
color: var(--toolOutput);
word-wrap: break-word;
overflow-wrap: break-word;
word-break: break-word;
font-family: inherit;
overflow-x: auto;
}
.tool-output > div,
.output-preview > div,
.output-full > div {
margin: 0;
padding: 0;
line-height: var(--line-height);
}
.tool-output > div:not(.output-preview):not(.output-full),
.output-preview > div:not(.expand-hint),
.output-full > div:not(.expand-hint) {
white-space: pre-wrap;
}
.tool-output pre {
margin: 0;
padding: 0;
font-family: inherit;
color: inherit;
white-space: pre-wrap;
word-wrap: break-word;
overflow-wrap: break-word;
}
.tool-output code {
padding: 0;
background: none;
color: var(--text);
}
.tool-output.expandable {
cursor: pointer;
}
.tool-output.expandable:hover {
opacity: 0.9;
}
.tool-output.expandable .output-full {
display: none;
}
.tool-output.expandable.expanded .output-preview {
display: none;
}
.tool-output.expandable.expanded .output-full {
display: block;
}
.ansi-line {
white-space: pre;
}
.tool-images {
}
.tool-image {
max-width: 100%;
max-height: 500px;
border-radius: 4px;
margin: var(--line-height) 0;
}
.expand-hint {
color: var(--toolOutput);
}
/* Diff */
.tool-diff {
font-size: 11px;
overflow-x: auto;
white-space: pre;
}
.diff-added { color: var(--toolDiffAdded); }
.diff-removed { color: var(--toolDiffRemoved); }
.diff-context { color: var(--toolDiffContext); }
/* Model change */
.model-change {
padding: 0 var(--line-height);
color: var(--dim);
font-size: 11px;
}
.model-name {
color: var(--borderAccent);
font-weight: bold;
}
/* Compaction / Branch Summary - matches customMessage colors from TUI */
.compaction {
background: var(--customMessageBg);
border-radius: 4px;
padding: var(--line-height);
cursor: pointer;
}
.compaction-label {
color: var(--customMessageLabel);
font-weight: bold;
}
.compaction-collapsed {
color: var(--customMessageText);
}
.compaction-content {
display: none;
color: var(--customMessageText);
white-space: pre-wrap;
margin-top: var(--line-height);
}
.compaction.expanded .compaction-collapsed {
display: none;
}
.compaction.expanded .compaction-content {
display: block;
}
/* System prompt */
.system-prompt {
background: var(--customMessageBg);
padding: var(--line-height);
border-radius: 4px;
margin-bottom: var(--line-height);
}
.system-prompt.expandable {
cursor: pointer;
}
.system-prompt-header {
font-weight: bold;
color: var(--customMessageLabel);
}
.system-prompt-preview {
color: var(--customMessageText);
white-space: pre-wrap;
word-wrap: break-word;
font-size: 11px;
margin-top: var(--line-height);
}
.system-prompt-expand-hint {
color: var(--muted);
font-style: italic;
margin-top: 4px;
}
.system-prompt-full {
display: none;
color: var(--customMessageText);
white-space: pre-wrap;
word-wrap: break-word;
font-size: 11px;
margin-top: var(--line-height);
}
.system-prompt.expanded .system-prompt-preview,
.system-prompt.expanded .system-prompt-expand-hint {
display: none;
}
.system-prompt.expanded .system-prompt-full {
display: block;
}
.system-prompt.provider-prompt {
border-left: 3px solid var(--warning);
}
.system-prompt-note {
font-size: 10px;
font-style: italic;
color: var(--muted);
margin-top: 4px;
}
/* Tools list */
.tools-list {
background: var(--customMessageBg);
padding: var(--line-height);
border-radius: 4px;
margin-bottom: var(--line-height);
}
.tools-header {
font-weight: bold;
color: var(--customMessageLabel);
margin-bottom: var(--line-height);
}
.tool-item {
font-size: 11px;
}
.tool-item-name {
font-weight: bold;
color: var(--text);
}
.tool-item-desc {
color: var(--dim);
}
.tool-params-hint {
color: var(--muted);
font-style: italic;
}
.tool-item:has(.tool-params-hint) {
cursor: pointer;
}
.tool-params-hint::after {
content: '[click to show parameters]';
}
.tool-item.params-expanded .tool-params-hint::after {
content: '[hide parameters]';
}
.tool-params-content {
display: none;
margin-top: 4px;
margin-left: 12px;
padding-left: 8px;
border-left: 1px solid var(--dim);
}
.tool-item.params-expanded .tool-params-content {
display: block;
}
.tool-param {
margin-bottom: 4px;
font-size: 11px;
}
.tool-param-name {
font-weight: bold;
color: var(--text);
}
.tool-param-type {
color: var(--dim);
font-style: italic;
}
.tool-param-required {
color: var(--warning, #e8a838);
font-size: 10px;
}
.tool-param-optional {
color: var(--dim);
font-size: 10px;
}
.tool-param-desc {
color: var(--dim);
margin-left: 8px;
}
/* Hook/custom messages */
.hook-message {
background: var(--customMessageBg);
color: var(--customMessageText);
padding: var(--line-height);
border-radius: 4px;
}
.hook-type {
color: var(--customMessageLabel);
font-weight: bold;
}
/* Branch summary */
.branch-summary {
background: var(--customMessageBg);
padding: var(--line-height);
border-radius: 4px;
}
.branch-summary-header {
font-weight: bold;
color: var(--borderAccent);
}
/* Error */
.error-text {
color: var(--error);
padding: 0 var(--line-height);
}
.tool-error {
color: var(--error);
}
/* Images */
.message-images {
margin-bottom: 12px;
}
.message-image {
max-width: 100%;
max-height: 400px;
border-radius: 4px;
margin: var(--line-height) 0;
}
/* Markdown content */
.markdown-content h1,
.markdown-content h2,
.markdown-content h3,
.markdown-content h4,
.markdown-content h5,
.markdown-content h6 {
color: var(--mdHeading);
margin: var(--line-height) 0 0 0;
font-weight: bold;
}
.markdown-content h1 { font-size: 1em; }
.markdown-content h2 { font-size: 1em; }
.markdown-content h3 { font-size: 1em; }
.markdown-content h4 { font-size: 1em; }
.markdown-content h5 { font-size: 1em; }
.markdown-content h6 { font-size: 1em; }
.markdown-content p { margin: 0; }
.markdown-content p + p { margin-top: var(--line-height); }
.markdown-content a {
color: var(--mdLink);
text-decoration: underline;
}
.markdown-content code {
background: rgba(128, 128, 128, 0.2);
color: var(--mdCode);
padding: 0 4px;
border-radius: 3px;
font-family: inherit;
}
.markdown-content pre {
background: transparent;
margin: var(--line-height) 0;
overflow-x: auto;
}
.markdown-content pre code {
display: block;
background: none;
color: var(--text);
}
.markdown-content blockquote {
border-left: 3px solid var(--mdQuoteBorder);
padding-left: var(--line-height);
margin: var(--line-height) 0;
color: var(--mdQuote);
font-style: italic;
}
.markdown-content ul,
.markdown-content ol {
margin: var(--line-height) 0;
padding-left: calc(var(--line-height) * 2);
}
.markdown-content li { margin: 0; }
.markdown-content li::marker { color: var(--mdListBullet); }
.markdown-content hr {
border: none;
border-top: 1px solid var(--mdHr);
margin: var(--line-height) 0;
}
.markdown-content table {
border-collapse: collapse;
margin: 0.5em 0;
width: 100%;
}
.markdown-content th,
.markdown-content td {
border: 1px solid var(--mdCodeBlockBorder);
padding: 6px 10px;
text-align: left;
}
.markdown-content th {
background: rgba(128, 128, 128, 0.1);
font-weight: bold;
}
.markdown-content img {
max-width: 100%;
border-radius: 4px;
}
/* Syntax highlighting */
.hljs { background: transparent; color: var(--text); }
.hljs-comment, .hljs-quote { color: var(--syntaxComment); }
.hljs-keyword, .hljs-selector-tag { color: var(--syntaxKeyword); }
.hljs-number, .hljs-literal { color: var(--syntaxNumber); }
.hljs-string, .hljs-doctag { color: var(--syntaxString); }
/* Function names: hljs v11 uses .hljs-title.function_ compound class */
.hljs-function, .hljs-title, .hljs-title.function_, .hljs-section, .hljs-name { color: var(--syntaxFunction); }
/* Types: hljs v11 uses .hljs-title.class_ for class names */
.hljs-type, .hljs-class, .hljs-title.class_, .hljs-built_in { color: var(--syntaxType); }
.hljs-attr, .hljs-variable, .hljs-variable.language_, .hljs-params, .hljs-property { color: var(--syntaxVariable); }
.hljs-meta, .hljs-meta .hljs-keyword, .hljs-meta .hljs-string { color: var(--syntaxKeyword); }
.hljs-operator { color: var(--syntaxOperator); }
.hljs-punctuation { color: var(--syntaxPunctuation); }
.hljs-subst { color: var(--text); }
/* Footer */
.footer {
margin-top: 48px;
padding: 20px;
text-align: center;
color: var(--dim);
font-size: 10px;
}
/* Mobile */
#hamburger {
display: none;
position: fixed;
top: 10px;
left: 10px;
z-index: 100;
padding: 3px 8px;
font-size: 12px;
font-family: inherit;
background: transparent;
color: var(--muted);
border: 1px solid var(--dim);
border-radius: 3px;
cursor: pointer;
}
#hamburger:hover {
color: var(--text);
border-color: var(--text);
}
#sidebar-overlay {
display: none;
position: fixed;
top: 0;
left: 0;
right: 0;
bottom: 0;
background: rgba(0, 0, 0, 0.5);
z-index: 98;
}
@media (max-width: 900px) {
#sidebar {
position: fixed;
left: 0;
width: min(var(--sidebar-width), 100vw);
min-width: min(var(--sidebar-width), 100vw);
max-width: min(var(--sidebar-width), 100vw);
top: 0;
bottom: 0;
height: 100vh;
z-index: 99;
transform: translateX(-100%);
transition: transform 0.3s;
}
#sidebar.open {
transform: translateX(0);
}
#sidebar-resizer {
display: none;
}
#sidebar-overlay.open {
display: block;
}
#hamburger {
display: block;
}
.sidebar-close {
display: block;
}
#content {
padding: var(--line-height) 16px;
}
#content > * {
max-width: 100%;
}
}
@media print {
#sidebar, #sidebar-resizer, #sidebar-toggle { display: none !important; }
body { background: white; color: black; }
#content { max-width: none; }
}
</style>
<style>
#sidebar, #sidebar-overlay, #hamburger, #sidebar-stubs { display: none !important; }
#content { margin-left: 0 !important; }
</style>
</head>
<body>
<div id="app">
<div id="sidebar-resizer" role="separator" aria-orientation="vertical" aria-label="Resize session tree sidebar"></div>
<main id="content">
<div id="header-container"></div>
<div id="messages"></div>
</main>
<div id="image-modal" class="image-modal">
<img id="modal-image" src="" alt="">
</div>
</div>
<script id="session-data" type="application/json">
eyJoZWFkZXIiOnsidHlwZSI6InNlc3Npb24iLCJ2ZXJzaW9uIjozLCJpZCI6IjAxOWRkZDYyLWY0ODYtNzEyZC04NzJjLWUzNTg3ZGI3OTE2ZCIsInRpbWVzdGFtcCI6IjIwMjYtMDQtMzBUMDc6NTU6NDMuMTEwWiIsImN3ZCI6Ii9Vc2Vycy9hbGlvdWRpYWxsby9jb2RlL3NyYy9naXRodWIuY29tL2FsaW91L3BpLW1vbm8ifSwiZW50cmllcyI6W3sidHlwZSI6Im1lc3NhZ2UiLCJpZCI6IjlmZDEyMmJmIiwicGFyZW50SWQiOm51bGwsInRpbWVzdGFtcCI6IjIwMjYtMDQtMzBUMDc6NTY6MzguOTU5WiIsIm1lc3NhZ2UiOnsicm9sZSI6InVzZXIiLCJjb250ZW50IjpbeyJ0eXBlIjoidGV4dCIsInRleHQiOiJyZWFkIHRoaXMgaXNzdWU6IGh0dHBzOi8vZ2l0aHViLmNvbS9iYWRsb2dpYy9waS1tb25vL2lzc3Vlcy8zOTc4IGFuZCBsZXQncyBpbnZlc3RpZ2F0ZSB3aHkgdGhpcyBoYXBwZW5zLiBkbyBub3QgbWFrZSBjaGFuZ2VzLiBJIHRoaW5rIGl0J3MganVzdCBhbiBpc3N1ZSBhcm91bmQgdGhlIGhlYWRlcnMgLyBkaXNwbGF5In1dLCJ0aW1lc3RhbXAiOjE3Nzc1MzU3OTg5NTV9fSx7InR5cGUiOiJtZXNzYWdlIiwiaWQiOiI2ZTYwN2I2NSIsInBhcmVudElkIjoiOWZkMTIyYmYiLCJ0aW1lc3RhbXAiOiIyMDI2LTA0LTMwVDA3OjU2OjQyLjc3NFoiLCJtZXNzYWdlIjp7InJvbGUiOiJhc3Npc3RhbnQiLCJjb250ZW50IjpbeyJ0eXBlIjoidGhpbmtpbmciLCJ0aGlua2luZyI6IiIsInRoaW5raW5nU2lnbmF0dXJlIjoie1wiaWRcIjpcInJzXzAyN2YxZWExNWRlZjM1MDUwMTY5ZjMwYjM5MzRmODgxOTFiYjhlMjBhNzY0NDg5NjNhXCIsXCJ0eXBlXCI6XCJyZWFzb25pbmdcIixcImVuY3J5cHRlZF9jb250ZW50XCI6XCJnQUFBQUFCcDh3czZTemlRSy1EbDd1bkR4RDNTWEl1dmZmaXR0Q0RXNk1UNFdTNEZYQ0VnemNONm5oV1Q0d2dSZE1YeWhGSUdaYVU1RHhrUGV0bWRiUVRyY1pHYWZUZVZIekJWWEstMTdmSTMxb0VuUlYyY3hJcmdsdzF6YVF0elJ1NjFoYU1aRUJMMGVjY240UnlQUThmR1JaNGwzdXUyVlNoOElQUnVlU2JCOFg3d3ZIUlRRZHFLVmZ2RV9qd1VpV2g1TkViT2V5aXNWUURkSXpPQlp4Wi12V3JvZWV6R0g0UVRCbE1XclBzX2hPOW9SdDJ1dlg1UVItUWpvWjM2LUVnRldiQnhJVlNFc2liUWpuRnljbEFmMV9RN1VKYnVnamY4Nnhha1UtaEE3Yk1kcEg2aGs4cUdyUDl0bVJKTFVHZkRwQ0t3dWo2ODJxVFFKaWcxSWRhLTJaMV9XT0lvaGN4Yl9KU3NTYXlrZnRtdHNpNW13UC14SzVzdlBGUFludWZNN0YzU2hoNkQwUzN5OEg5STJkYnZJZDB2dE9KVUxoeEhSZzVkWWRISlNHeWQwbEJSTllFQ3EyZ3g4aG9iZmF5aWZyanNUNnBMZG8wand1Z1pDRXY4cjNpeVFRMlJWamc1bUR4VkRGM1BxZGMzQkpDZTVLVFFoeExPYk03Uzh0ejRlaXhRQm9ZeFlLVUhGMDRRYXdRQ29WRHpYbkw5ajNGZDlHZjVrTWNuSGdDZnVyZzh0ZU5sR0tkWWdrNkZWR3otY3FvUGRPYVlaRUlxUWhqY1NWdHZ6TnNQeGxHZmZSNEJoanB1ZUZZWWlhZlFhVFhvT2ZZd3dPb2NjVTBsUXU4aWpmdGFkWXdxTVR2U2x4WkQ2QXcyMlowV0hkam1MNGJ4S3ZkN3FTZzgtQUQ1Wk9qREZoazR6U05mUjlmRzlFMGVmSzJUUkx2RERhM3VFTUsyaUJ3cjVtRzhTQTZOaTRTNXJ4cVM5QXpqSW1BUzdwRjJCUHJQUlFHZ2xvZ2l1V0psWXU3dGdDdHJOQWtrVkEydmlBU284NGVqMVQxdzhUMXNfbjVqQ3VsZjBsZ3l6cXBZWlgzbWlKWkJ2Z2VLeTVrSl9QTERMOThMb2ppdXR0VlM3NThlZl8yc1ZlSVQ0Umo0U25RdkZybnhfRUpQUlJIUFVObzEweTAtTFJoaVFsTVQ3LXFrTlhyNDJGbnN2cTlKWTJ4YkItVllLZ3JkdlZFMkVhYXQ4UVZUeVJwLXQzSHNaR0hOd3BjM2FjWnBfenMzSjUwRTNqc21EaFFra1lCSVFnSi1DWThxU2FRZ0NnPT1cIixcInN1bW1hcnlcIjpbXX0ifSx7InR5cGUiOiJ0b29sQ2FsbCIsImlkIjoiY2FsbF95cnF2VG1sblhhQkJGZWs2VWpaQ1RFUTd8ZmNfMDI3ZjFlYTE1ZGVmMzUwNTAxNjlmMzBiM2E5MmY0ODE5MTk1ZmQyMWE3MzhlMDljYzciLCJuYW1lIjoiYmFzaCIsImFyZ3VtZW50cyI6eyJjb21tYW5kIjoiZ2ggaXNzdWUgdmlldyAzOTc4IC0tcmVwbyBiYWRsb2dpYy9waS1tb25vIC0tY29tbWVudHMiLCJjd2QiOiIvVXNlcnMvYWxpb3VkaWFsbG8vY29kZS9zcmMvZ2l0aHViLmNvbS9hbGlvdS9waS1tb25vIn19XSwiYXBpIjoib3BlbmFpLWNvZGV4LXJlc3BvbnNlcyIsInByb3ZpZGVyIjoib3BlbmFpLWNvZGV4IiwibW9kZWwiOiJncHQtNS41IiwidXNhZ2UiOnsiaW5wdXQiOjk5MjYsIm91dHB1dCI6NjcsImNhY2hlUmVhZCI6MCwiY2FjaGVXcml0ZSI6MCwidG90YWxUb2tlbnMiOjk5OTMsImNvc3QiOnsiaW5wdXQiOjAuMDQ5NjMwMDAwMDAwMDAwMDEsIm91dHB1dCI6MC4wMDIwMSwiY2FjaGVSZWFkIjowLCJjYWNoZVdyaXRlIjowLCJ0b3RhbCI6MC4wNTE2NDAwMDAwMDAwMDAwMDV9fSwic3RvcFJlYXNvbiI6InRvb2xVc2UiLCJ0aW1lc3RhbXAiOjE3Nzc1MzU3OTg5NjMsInJlc3BvbnNlSWQiOiJyZXNwXzAyN2YxZWExNWRlZjM1MDUwMTY5ZjMwYjM4NGU5ODgxOTFiNDkwMzE2ODU5MjgzODAxIn19LHsidHlwZSI6Im1lc3NhZ2UiLCJpZCI6ImIyMDE0ZWZjIiwicGFyZW50SWQiOiI2ZTYwN2I2NSIsInRpbWVzdGFtcCI6IjIwMjYtMDQtMzBUMDc6NTY6NDQuMzQ1WiIsIm1lc3NhZ2UiOnsicm9sZSI6InRvb2xSZXN1bHQiLCJ0b29sQ2FsbElkIjoiY2FsbF95cnF2VG1sblhhQkJGZWs2VWpaQ1RFUTd8ZmNfMDI3ZjFlYTE1ZGVmMzUwNTAxNjlmMzBiM2E5MmY0ODE5MTk1ZmQyMWE3MzhlMDljYzciLCJ0b29sTmFtZSI6ImJhc2giLCJjb250ZW50IjpbeyJ0eXBlIjoidGV4dCIsInRleHQiOiJhdXRob3I6XHRnaXRodWItYWN0aW9uc1xuYXNzb2NpYXRpb246XHRjb250cmlidXRvclxuZWRpdGVkOlx0ZmFsc2VcbnN0YXR1czpcdG5vbmVcbi0tXG5UaGlzIGlzc3VlIHdhcyBhdXRvLWNsb3NlZC4gQWxsIGlzc3VlcyBmcm9tIG5ldyBjb250cmlidXRvcnMgYXJlIGF1dG8tY2xvc2VkIGJ5IGRlZmF1bHQuXG5cbk1haW50YWluZXJzIHJldmlldyBhdXRvLWNsb3NlZCBpc3N1ZXMgZGFpbHkgYW5kIHJlb3BlbiB3b3J0aHdoaWxlIG9uZXMuIElzc3VlcyB0aGF0IGRvIG5vdCBtZWV0IHRoZSBxdWFsaXR5IGJhciBpbiBbQ09OVFJJQlVUSU5HLm1kXShodHRwczovL2dpdGh1Yi5jb20vYmFkbG9naWMvcGktbW9uby9ibG9iL21haW4vQ09OVFJJQlVUSU5HLm1kKSB3aWxsIG5vdCBiZSByZW9wZW5lZCBvciByZWNlaXZlIGEgcmVwbHkuXG5cbklmIGEgbWFpbnRhaW5lciByZXBsaWVzIGBsZ3RtaWAgb24gb25lIG9mIHlvdXIgaXNzdWVzLCB5b3VyIGZ1dHVyZSBpc3N1ZXMgd2lsbCBzdGF5IG9wZW4uIElmIGEgbWFpbnRhaW5lciByZXBsaWVzIGBsZ3RtYCwgeW91ciBmdXR1cmUgaXNzdWVzIGFuZCBQUnMgd2lsbCBzdGF5IG9wZW4uXG5cblNlZSBbQ09OVFJJQlVUSU5HLm1kXShodHRwczovL2dpdGh1Yi5jb20vYmFkbG9naWMvcGktbW9uby9ibG9iL21haW4vQ09OVFJJQlVUSU5HLm1kKS5cbi0tXG5hdXRob3I6XHRiYWRsb2dpY1xuYXNzb2NpYXRpb246XHRvd25lclxuZWRpdGVkOlx0ZmFsc2VcbnN0YXR1czpcdG5vbmVcbi0tXG5AYWxpb3Ugd2FubmEgZ2l2ZSB0aGlzIGEgdHJ5P1xuLS1cbmF1dGhvcjpcdG5wdXBrb1xuYXNzb2NpYXRpb246XHRub25lXG5lZGl0ZWQ6XHRmYWxzZVxuc3RhdHVzOlx0bm9uZVxuLS1cbkBiYWRsb2dpYyBtYXkgST8pXG4tLVxuYXV0aG9yOlx0YWxpb3VcbmFzc29jaWF0aW9uOlx0Y29udHJpYnV0b3JcbmVkaXRlZDpcdGZhbHNlXG5zdGF0dXM6XHRub25lXG4tLVxuPiBAYWxpb3Ugd2FubmEgZ2l2ZSB0aGlzIGEgdHJ5P1xuXG5AYmFkbG9naWMgeWVzIVxuLS1cbiJ9XSwiZGV0YWlscyI6eyJfZHVyYXRpb25NcyI6MTU2NH0sImlzRXJyb3IiOmZhbHNlLCJ0aW1lc3RhbXAiOjE3Nzc1MzU4MDQzNDV9fSx7InR5cGUiOiJtZXNzYWdlIiwiaWQiOiI2OGE1YTc0YiIsInBhcmVudElkIjoiYjIwMTRlZmMiLCJ0aW1lc3RhbXAiOiIyMDI2LTA0LTMwVDA3OjU2OjQ5LjM4MFoiLCJtZXNzYWdlIjp7InJvbGUiOiJhc3Npc3RhbnQiLCJjb250ZW50IjpbeyJ0eXBlIjoidG9vbENhbGwiLCJpZCI6ImNhbGxfN3FKeTFVeXFXelpzRkRwMzdpS2xnMHhBfGZjXzAyN2YxZWExNWRlZjM1MDUwMTY5ZjMwYjQwYjlhYzgxOTFhZTBiOTMxZjE0ZTQ0OGM2IiwibmFtZSI6ImJhc2giLCJhcmd1bWVudHMiOnsiY29tbWFuZCI6ImdoIGlzc3VlIHZpZXcgMzk3OCAtLXJlcG8gYmFkbG9naWMvcGktbW9ubyAtLWpzb24gdGl0bGUsYm9keSxzdGF0ZSxsYWJlbHMsYXV0aG9yLHVybCIsImN3ZCI6Ii9Vc2Vycy9hbGlvdWRpYWxsby9jb2RlL3NyYy9naXRodWIuY29tL2FsaW91L3BpLW1vbm8ifX1dLCJhcGkiOiJvcGVuYWktY29kZXgtcmVzcG9uc2VzIiwicHJvdmlkZXIiOiJvcGVuYWktY29kZXgiLCJtb2RlbCI6ImdwdC01LjUiLCJ1c2FnZSI6eyJpbnB1dCI6NTQxLCJvdXRwdXQiOjYxLCJjYWNoZVJlYWQiOjk3MjgsImNhY2hlV3JpdGUiOjAsInRvdGFsVG9rZW5zIjoxMDMzMCwiY29zdCI6eyJpbnB1dCI6MC4wMDI3MDUwMDAwMDAwMDAwMDA0LCJvdXRwdXQiOjAuMDAxODMsImNhY2hlUmVhZCI6MC4wMDQ4NjM5OTk5OTk5OTk5OTksImNhY2hlV3JpdGUiOjAsInRvdGFsIjowLjAwOTM5OTAwMDAwMDAwMDAwMX19LCJzdG9wUmVhc29uIjoidG9vbFVzZSIsInRpbWVzdGFtcCI6MTc3NzUzNTgwNDM0NiwicmVzcG9uc2VJZCI6InJlc3BfMDI3ZjFlYTE1ZGVmMzUwNTAxNjlmMzBiM2VkZGI4ODE5MWFjNTJmMjRhZTRmOWVmMWMifX0seyJ0eXBlIjoibWVzc2FnZSIsImlkIjoiMjQ3YTNhNjMiLCJwYXJlbnRJZCI6IjY4YTVhNzRiIiwidGltZXN0YW1wIjoiMjAyNi0wNC0zMFQwNzo1Njo0OS44OTZaIiwibWVzc2FnZSI6eyJyb2xlIjoidG9vbFJlc3VsdCIsInRvb2xDYWxsSWQiOiJjYWxsXzdxSnkxVXlxV3pac0ZEcDM3aUtsZzB4QXxmY18wMjdmMWVhMTVkZWYzNTA1MDE2OWYzMGI0MGI5YWM4MTkxYWUwYjkzMWYxNGU0NDhjNiIsInRvb2xOYW1lIjoiYmFzaCIsImNvbnRlbnQiOlt7InR5cGUiOiJ0ZXh0IiwidGV4dCI6IntcImF1dGhvclwiOntcImlkXCI6XCJNRFE2VlhObGNqVTVNemcxTXprPVwiLFwiaXNfYm90XCI6ZmFsc2UsXCJsb2dpblwiOlwibnB1cGtvXCIsXCJuYW1lXCI6XCJOaWNrIFB1cGtvXCJ9LFwiYm9keVwiOlwiIyMjIFdoYXQgaGFwcGVuZWQ/XFxuXFxuU2tpbGxzIGZyb20gYH4vLmFnZW50cy9za2lsbHNgIHNob3cgdXAgaW4gYHBpIGNvbmZpZ2AgdW5kZXIgYFVzZXIgKH4vLnBpL2FnZW50LylgIGV2ZW4gdGhvdWdoIHRoZXkncmUgcGh5c2ljYWxseSBsb2NhdGVkIGluIGB+Ly5hZ2VudHMvc2tpbGxzYC5cXG5cXG48aW1nIHdpZHRoPVxcXCIzOTYwXFxcIiBoZWlnaHQ9XFxcIjI2NzJcXFwiIGFsdD1cXFwiSW1hZ2VcXFwiIHNyYz1cXFwiaHR0cHM6Ly9naXRodWIuY29tL3VzZXItYXR0YWNobWVudHMvYXNzZXRzL2JiM2NhYjE5LWFhNDAtNGU0OC04YzcxLWJkODBiZTg2YTgzNVxcXCIgLz5cXG5cXG4jIyMgU3RlcHMgdG8gcmVwcm9kdWNlXFxuXFxuWW91IG5lZWQgdG8gaGF2ZSBzb21lIHNraWxscyBpbiBgfi8uYWdlbnRzL3NraWxscy9gLlxcblxcbkNhbiBjcmVhdGUgcmFuZG9tIGV2ZW4gd2l0aG91dCBmcm9udG1hdHRlci9kZXNjcmlwdGlvbjpcXG5cXG5gYGBiYXNoXFxubWtkaXIgLXAgfi8uYWdlbnRzL3NraWxscy90ZXN0LXNraWxsXFxuZWNobyAnIyBUZXN0IHNraWxsJyA+IH4vLmFnZW50cy9za2lsbHMvdGVzdC1za2lsbC9TS0lMTC5tZFxcbmBgYFxcblxcblJ1biBgcGkgY29uZmlnYCBhbmQgb2JzZXJ2ZSB0aGUgU2tpbGxzIHNlY3Rpb24gdW5kZXIgXFxcIlVzZXIgKH4vLnBpL2FnZW50LylcXFwiXFxuXFxuIyMjIEV4cGVjdGVkIGJlaGF2aW9yXFxuXFxuU2tpbGxzIGZyb20gYH4vLmFnZW50cy9za2lsbHMvYCBzaG91bGQgc2hvdyB1bmRlciBgVXNlciAofi8uYWdlbnRzLylgLiBJLmUuIHdlIGNhbiBzcGxpdCB0aG9zZSBpbnRvIHR3byBzZXBhcmF0ZSBjYXRlZ29yaWVzIHRvIHJlZmxlY3QgYHBhY2thZ2UtbWFuYWdlci5qc2BcXG5cXG48ZGV0YWlscz5cXG48c3VtbWFyeT5XaGVyZSBpcyB0aGUgcHJvYmxlbTwvc3VtbWFyeT5cXG5cXG5UaGUgaGFyZGNvZGVkIHBhdGggaXMgaW4gYGNvbmZpZy1zZWxlY3Rvci5qc2AsIHRoZSBgZ2V0R3JvdXBMYWJlbGAgZnVuY3Rpb25cXG5cXG5NZWFud2hpbGUsIGBwYWNrYWdlLW1hbmFnZXIuanNgIGxvYWRzIHNraWxscyBmcm9tIGJvdGggZGlyZWN0b3JpZXM6XFxuXFxuYGBgamF2YXNjcmlwdFxcbmNvbnN0IHVzZXJBZ2VudHNTa2lsbHNEaXIgPSBqb2luKGdldEhvbWVEaXIoKSwgXFxcIi5hZ2VudHNcXFwiLCBcXFwic2tpbGxzXFxcIik7XFxuXFxuYWRkUmVzb3VyY2VzKFxcXCJza2lsbHNcXFwiLCBbXFxuICAgIC4uLmNvbGxlY3RBdXRvU2tpbGxFbnRyaWVzKHVzZXJEaXJzLnNraWxscywgXFxcInBpXFxcIiksXFxuICAgIC4uLmNvbGxlY3RBdXRvU2tpbGxFbnRyaWVzKHVzZXJBZ2VudHNTa2lsbHNEaXIsIFxcXCJhZ2VudHNcXFwiKVxcbl0sIHVzZXJNZXRhZGF0YSwgLi4uKTtcXG5gYGBcXG5cXG48L2RldGFpbHM+XFxuXFxuIyMjIFZlcnNpb25cXG5cXG4wLjcwLjZcIixcImxhYmVsc1wiOlt7XCJpZFwiOlwiTEFfa3dET1BiRk5rODhBQUFBQ0hXVEJ4d1wiLFwibmFtZVwiOlwiYnVnXCIsXCJkZXNjcmlwdGlvblwiOlwiU29tZXRoaW5nIGlzbid0IHdvcmtpbmdcIixcImNvbG9yXCI6XCJkNzNhNGFcIn1dLFwic3RhdGVcIjpcIk9QRU5cIixcInRpdGxlXCI6XCJgcGkgY29uZmlnYCBoYXJkY29kZXMgYH4vLnBpL2FnZW50L2AgcGF0aCBpbiBncm91cCBsYWJlbCwgaWdub3JlcyBhY3R1YWwgcmVzb3VyY2UgbG9jYXRpb25cIixcInVybFwiOlwiaHR0cHM6Ly9naXRodWIuY29tL2JhZGxvZ2ljL3BpLW1vbm8vaXNzdWVzLzM5NzhcIn1cbiJ9XSwiZGV0YWlscyI6eyJfZHVyYXRpb25NcyI6NTE1fSwiaXNFcnJvciI6ZmFsc2UsInRpbWVzdGFtcCI6MTc3NzUzNTgwOTg5Nn19LHsidHlwZSI6Im1lc3NhZ2UiLCJpZCI6IjliZjRiMGQwIiwicGFyZW50SWQiOiIyNDdhM2E2MyIsInRpbWVzdGFtcCI6IjIwMjYtMDQtMzBUMDc6NTY6NTIuNzkxWiIsIm1lc3NhZ2UiOnsicm9sZSI6ImFzc2lzdGFudCIsImNvbnRlbnQiOlt7InR5cGUiOiJ0aGlua2luZyIsInRoaW5raW5nIjoiIiwidGhpbmtpbmdTaWduYXR1cmUiOiJ7XCJpZFwiOlwicnNfMDI3ZjFlYTE1ZGVmMzUwNTAxNjlmMzBiNDM4ZjU0ODE5MTljZDFhNDhjNmM0ZTIyYmVcIixcInR5cGVcIjpcInJlYXNvbmluZ1wiLFwiZW5jcnlwdGVkX2NvbnRlbnRcIjpcImdBQUFBQUJwOHd0RVN5UjE3MlFESlowel95NFphbUZ4QTA1ZEwyTG5yYklkR3JhdVk4SWpHZXhMSDNqUkZNNnJPMjEwQXlWX2RBd04yUm5NQ2dZNERsQWRFTWd0NEZYXzhyNVZNSUpENmdDMW42b05pRmgtOU9BVWhaWDk3TXc4NmZ1bUFEV2oxQ1pHZlJyRzc1Ym9lMTNLUGFXVEpGdXdGWmN4QVkzYnZieTRWZGk4RXEtcHJyYmxyM2xzM052cmpJQU5UN3M1TWduQlpJbkwwblJQamFWTEtTYzZYQmsycmJBcGZ0U2xYUGFaUURZWEcteXJKNkRBZlpCR0VSeFhfcmJQempzbVQ2UDNKSzBJSHVsODV5cjlLN045R3hLaWFDTUVNUHBnMHFvWHNPS3pMMlV2ZjNRdXpCQWZiUS1DcVJDZVpPbzBMczBkNXlDT2xQQWJycjcxVkFyV29Jdk52TjYtSVpicTh5TDV1S2liQmFlSEE2LW5hekRJVXdfelRZdm5XX0IxcHp1eUhSYnpGLUtVS2NNeVM0dXpsUllFeVhfbHl2VnFOTGhCLW9iSURjOUw0ajMteDFyWmw0ME9pZHdTeWVYaGtWZGZlTUtib3RPbU9aYXlLRnNYWE1TWlVfSkFGUC14STNvWjNNOXFDcndVc2JJNEM0RW9PX1hKbTByQ04tY1hOcU5iOXBwdzZ2MWJxMkp0Y19wcE84cHNHeUZIWW9tSzZpdEFaQXJIelhFVDNvLVA5ekJuVHoxOUdsSTVISG5tRUJ1MWZNZVg4ZXd4b0RoVWpRMjR4a1RTaUEwSkdqSExSaDJJRzgzU3hCd29ISUtWMU90YlF3enRLVHFfY21mWW9vSlNaZ0prbHhINENKR2toTmdiVHpwN0o5eWpnZ0todDNtaE0tb1l3bXdwN1pXVzdsdl9ROWNIcXFYTWkxaEdvZDh0ZFVJbkYzbW5xcm1ybTZrRWhScmp3cklZNUVGc21ocnBZWnRXeXRTaXJzNXhobkFvX2psQUhNMjRWclYxeE4tZ18yb1JNQXA1RGJfRWhxYTNjdDJOeFdFNDVlTUlFVHpadlo5VFJWVnF5dWptVnBtR21tVEt6X0Eyb0dFYUlOT2cxckl1R0NNY2lCcjlLdVJKb28ta2k0OWZ3YlpVUW1GZ0d6SFlyT0ZOUjk5c0xUZDVqbzMtV3ZZa1hKOHoyZHZPVk1uUXZMZU40WDNFaW5KT2VPTW5qc3lBa3J1ZGFtWEc2akl3VGF1N2dXVkt1aDctNFVwVzlpazFJT2c2MHJXU0V0a2UtR1UzSEFnZXA4MHZoaW1mcXc9PVwiLFwic3VtbWFyeVwiOltdfSJ9LHsidHlwZSI6InRvb2xDYWxsIiwiaWQiOiJjYWxsX0NRNXFaMW5KazBVeWU1S1JKa0xuSnBZYXxmY18wMjdmMWVhMTVkZWYzNTA1MDE2OWYzMGI0NGFiODQ4MTkxODA0ZmFkZGY2ZGYwYjZmZCIsIm5hbWUiOiJncmVwIiwiYXJndW1lbnRzIjp7InBhdHRlcm4iOiJnZXRHcm91cExhYmVsIiwicGF0aCI6InBhY2thZ2VzIiwiZ2xvYiI6IioudHMiLCJjb250ZXh0IjozfX0seyJ0eXBlIjoidG9vbENhbGwiLCJpZCI6ImNhbGxfRDlFSjhua2NNOGxjdjd5VTFNRmgzdVl6fGZjXzAyN2YxZWExNWRlZjM1MDUwMTY5ZjMwYjQ0YWI5ODgxOTE4YzRjYzI4M2FiMGI3MzU3IiwibmFtZSI6ImdyZXAiLCJhcmd1bWVudHMiOnsicGF0dGVybiI6ImNvbGxlY3RBdXRvU2tpbGxFbnRyaWVzIiwicGF0aCI6InBhY2thZ2VzIiwiZ2xvYiI6IioudHMiLCJjb250ZXh0IjozfX0seyJ0eXBlIjoidG9vbENhbGwiLCJpZCI6ImNhbGxfYkdTem8xZGk1ZUlDTVFhWlJVdjhpZ0VlfGZjXzAyN2YxZWExNWRlZjM1MDUwMTY5ZjMwYjQ0YWJhMDgxOTE5MTE4MDAxYTQ1ZWY2MzE4IiwibmFtZSI6ImdyZXAiLCJhcmd1bWVudHMiOnsicGF0dGVybiI6IlVzZXIgKH4iLCJwYXRoIjoicGFja2FnZXMiLCJnbG9iIjoiKi50cyIsImNvbnRleHQiOjN9fV0sImFwaSI6Im9wZW5haS1jb2RleC1yZXNwb25zZXMiLCJwcm92aWRlciI6Im9wZW5haS1jb2RleCIsIm1vZGVsIjoiZ3B0LTUuNSIsInVzYWdlIjp7ImlucHV0IjoxMTIxLCJvdXRwdXQiOjEyMSwiY2FjaGVSZWFkIjo5NzI4LCJjYWNoZVdyaXRlIjowLCJ0b3RhbFRva2VucyI6MTA5NzAsImNvc3QiOnsiaW5wdXQiOjAuMDA1NjA1MDAwMDAwMDAwMDAxLCJvdXRwdXQiOjAuMDAzNjMsImNhY2hlUmVhZCI6MC4wMDQ4NjM5OTk5OTk5OTk5OTksImNhY2hlV3JpdGUiOjAsInRvdGFsIjowLjAxNDA5OX19LCJzdG9wUmVhc29uIjoidG9vbFVzZSIsInRpbWVzdGFtcCI6MTc3NzUzNTgwOTg5NywicmVzcG9uc2VJZCI6InJlc3BfMDI3ZjFlYTE1ZGVmMzUwNTAxNjlmMzBiNDI1YmVjODE5MWI2Y2YyOTlhNTU4Yjk2ZjEifX0seyJ0eXBlIjoibWVzc2FnZSIsImlkIjoiZTkxMWQzZDYiLCJwYXJlbnRJZCI6IjliZjRiMGQwIiwidGltZXN0YW1wIjoiMjAyNi0wNC0zMFQwNzo1Njo1Mi44NjVaIiwibWVzc2FnZSI6eyJyb2xlIjoidG9vbFJlc3VsdCIsInRvb2xDYWxsSWQiOiJjYWxsX0NRNXFaMW5KazBVeWU1S1JKa0xuSnBZYXxmY18wMjdmMWVhMTVkZWYzNTA1MDE2OWYzMGI0NGFiODQ4MTkxODA0ZmFkZGY2ZGYwYjZmZCIsInRvb2xOYW1lIjoiZ3JlcCIsImNvbnRlbnQiOlt7InR5cGUiOiJ0ZXh0IiwidGV4dCI6ImNvZGluZy1hZ2VudC9zcmMvbW9kZXMvaW50ZXJhY3RpdmUvY29tcG9uZW50cy9jb25maWctc2VsZWN0b3IudHM6NTU6ICAgc3ViZ3JvdXBzOiBSZXNvdXJjZVN1Ymdyb3VwW107XG5jb2RpbmctYWdlbnQvc3JjL21vZGVzL2ludGVyYWN0aXZlL2NvbXBvbmVudHMvY29uZmlnLXNlbGVjdG9yLnRzOjU2OiAgIH1cbmNvZGluZy1hZ2VudC9zcmMvbW9kZXMvaW50ZXJhY3RpdmUvY29tcG9uZW50cy9jb25maWctc2VsZWN0b3IudHM6NTc6ICAgXG5jb2RpbmctYWdlbnQvc3JjL21vZGVzL2ludGVyYWN0aXZlL2NvbXBvbmVudHMvY29uZmlnLXNlbGVjdG9yLnRzOjU4OiBmdW5jdGlvbiBnZXRHcm91cExhYmVsKG1ldGFkYXRhOiBQYXRoTWV0YWRhdGEpOiBzdHJpbmcge1xuY29kaW5nLWFnZW50L3NyYy9tb2Rlcy9pbnRlcmFjdGl2ZS9jb21wb25lbnRzL2NvbmZpZy1zZWxlY3Rvci50czo1OTogICBpZiAobWV0YWRhdGEub3JpZ2luID09PSBcInBhY2thZ2VcIikge1xuY29kaW5nLWFnZW50L3NyYy9tb2Rlcy9pbnRlcmFjdGl2ZS9jb21wb25lbnRzL2NvbmZpZy1zZWxlY3Rvci50czo2MDogICByZXR1cm4gYCR7bWV0YWRhdGEuc291cmNlfSAoJHttZXRhZGF0YS5zY29wZX0pYDtcbmNvZGluZy1hZ2VudC9zcmMvbW9kZXMvaW50ZXJhY3RpdmUvY29tcG9uZW50cy9jb25maWctc2VsZWN0b3IudHM6NjE6ICAgfVxuY29kaW5nLWFnZW50L3NyYy9tb2Rlcy9pbnRlcmFjdGl2ZS9jb21wb25lbnRzL2NvbmZpZy1zZWxlY3Rvci50czo3NzogICBpZiAoIWdyb3VwTWFwLmhhcyhncm91cEtleSkpIHtcbmNvZGluZy1hZ2VudC9zcmMvbW9kZXMvaW50ZXJhY3RpdmUvY29tcG9uZW50cy9jb25maWctc2VsZWN0b3IudHM6Nzg6ICAgZ3JvdXBNYXAuc2V0KGdyb3VwS2V5LCB7XG5jb2RpbmctYWdlbnQvc3JjL21vZGVzL2ludGVyYWN0aXZlL2NvbXBvbmVudHMvY29uZmlnLXNlbGVjdG9yLnRzOjc5OiAgIGtleTogZ3JvdXBLZXksXG5jb2RpbmctYWdlbnQvc3JjL21vZGVzL2ludGVyYWN0aXZlL2NvbXBvbmVudHMvY29uZmlnLXNlbGVjdG9yLnRzOjgwOiBsYWJlbDogZ2V0R3JvdXBMYWJlbChtZXRhZGF0YSksXG5jb2RpbmctYWdlbnQvc3JjL21vZGVzL2ludGVyYWN0aXZlL2NvbXBvbmVudHMvY29uZmlnLXNlbGVjdG9yLnRzOjgxOiAgIHNjb3BlOiBtZXRhZGF0YS5zY29wZSxcbmNvZGluZy1hZ2VudC9zcmMvbW9kZXMvaW50ZXJhY3RpdmUvY29tcG9uZW50cy9jb25maWctc2VsZWN0b3IudHM6ODI6ICAgb3JpZ2luOiBtZXRhZGF0YS5vcmlnaW4sXG5jb2RpbmctYWdlbnQvc3JjL21vZGVzL2ludGVyYWN0aXZlL2NvbXBvbmVudHMvY29uZmlnLXNlbGVjdG9yLnRzOjgzOiAgIHNvdXJjZTogbWV0YWRhdGEuc291cmNlLCJ9XSwiZGV0YWlscyI6eyJtYXRjaENvdW50IjoyLCJtYXRjaGVzIjpbeyJwYXRoIjoiY29kaW5nLWFnZW50L3NyYy9tb2Rlcy9pbnRlcmFjdGl2ZS9jb21wb25lbnRzL2NvbmZpZy1zZWxlY3Rvci50cyIsImxpbmUiOjU1LCJ0ZXh0IjoiICBzdWJncm91cHM6IFJlc291cmNlU3ViZ3JvdXBbXTsifSx7InBhdGgiOiJjb2RpbmctYWdlbnQvc3JjL21vZGVzL2ludGVyYWN0aXZlL2NvbXBvbmVudHMvY29uZmlnLXNlbGVjdG9yLnRzIiwibGluZSI6NTYsInRleHQiOiIgIH0ifSx7InBhdGgiOiJjb2RpbmctYWdlbnQvc3JjL21vZGVzL2ludGVyYWN0aXZlL2NvbXBvbmVudHMvY29uZmlnLXNlbGVjdG9yLnRzIiwibGluZSI6NTcsInRleHQiOiIgICJ9LHsicGF0aCI6ImNvZGluZy1hZ2VudC9zcmMvbW9kZXMvaW50ZXJhY3RpdmUvY29tcG9uZW50cy9jb25maWctc2VsZWN0b3IudHMiLCJsaW5lIjo1OCwidGV4dCI6ImZ1bmN0aW9uIGdldEdyb3VwTGFiZWwobWV0YWRhdGE6IFBhdGhNZXRhZGF0YSk6IHN0cmluZyB7In0seyJwYXRoIjoiY29kaW5nLWFnZW50L3NyYy9tb2Rlcy9pbnRlcmFjdGl2ZS9jb21wb25lbnRzL2NvbmZpZy1zZWxlY3Rvci50cyIsImxpbmUiOjU5LCJ0ZXh0IjoiICBpZiAobWV0YWRhdGEub3JpZ2luID09PSBcInBhY2thZ2VcIikgeyJ9LHsicGF0aCI6ImNvZGluZy1hZ2VudC9zcmMvbW9kZXMvaW50ZXJhY3RpdmUvY29tcG9uZW50cy9jb25maWctc2VsZWN0b3IudHMiLCJsaW5lIjo2MCwidGV4dCI6IiAgcmV0dXJuIGAke21ldGFkYXRhLnNvdXJjZX0gKCR7bWV0YWRhdGEuc2NvcGV9KWA7In0seyJwYXRoIjoiY29kaW5nLWFnZW50L3NyYy9tb2Rlcy9pbnRlcmFjdGl2ZS9jb21wb25lbnRzL2NvbmZpZy1zZWxlY3Rvci50cyIsImxpbmUiOjYxLCJ0ZXh0IjoiICB9In0seyJwYXRoIjoiY29kaW5nLWFnZW50L3NyYy9tb2Rlcy9pbnRlcmFjdGl2ZS9jb21wb25lbnRzL2NvbmZpZy1zZWxlY3Rvci50cyIsImxpbmUiOjc3LCJ0ZXh0IjoiICBpZiAoIWdyb3VwTWFwLmhhcyhncm91cEtleSkpIHsifSx7InBhdGgiOiJjb2RpbmctYWdlbnQvc3JjL21vZGVzL2ludGVyYWN0aXZlL2NvbXBvbmVudHMvY29uZmlnLXNlbGVjdG9yLnRzIiwibGluZSI6NzgsInRleHQiOiIgIGdyb3VwTWFwLnNldChncm91cEtleSwgeyJ9LHsicGF0aCI6ImNvZGluZy1hZ2VudC9zcmMvbW9kZXMvaW50ZXJhY3RpdmUvY29tcG9uZW50cy9jb25maWctc2VsZWN0b3IudHMiLCJsaW5lIjo3OSwidGV4dCI6IiAga2V5OiBncm91cEtleSwifSx7InBhdGgiOiJjb2RpbmctYWdlbnQvc3JjL21vZGVzL2ludGVyYWN0aXZlL2NvbXBvbmVudHMvY29uZmlnLXNlbGVjdG9yLnRzIiwibGluZSI6ODAsInRleHQiOiJsYWJlbDogZ2V0R3JvdXBMYWJlbChtZXRhZGF0YSksIn0seyJwYXRoIjoiY29kaW5nLWFnZW50L3NyYy9tb2Rlcy9pbnRlcmFjdGl2ZS9jb21wb25lbnRzL2NvbmZpZy1zZWxlY3Rvci50cyIsImxpbmUiOjgxLCJ0ZXh0IjoiICBzY29wZTogbWV0YWRhdGEuc2NvcGUsIn0seyJwYXRoIjoiY29kaW5nLWFnZW50L3NyYy9tb2Rlcy9pbnRlcmFjdGl2ZS9jb21wb25lbnRzL2NvbmZpZy1zZWxlY3Rvci50cyIsImxpbmUiOjgyLCJ0ZXh0IjoiICBvcmlnaW46IG1ldGFkYXRhLm9yaWdpbiwifSx7InBhdGgiOiJjb2RpbmctYWdlbnQvc3JjL21vZGVzL2ludGVyYWN0aXZlL2NvbXBvbmVudHMvY29uZmlnLXNlbGVjdG9yLnRzIiwibGluZSI6ODMsInRleHQiOiIgIHNvdXJjZTogbWV0YWRhdGEuc291cmNlLCJ9XSwicmVsYXRpdmVUbyI6InBhY2thZ2VzIn0sImlzRXJyb3IiOmZhbHNlLCJ0aW1lc3RhbXAiOjE3Nzc1MzU4MTI4NjV9fSx7InR5cGUiOiJtZXNzYWdlIiwiaWQiOiJhNGY5NTJhYiIsInBhcmVudElkIjoiZTkxMWQzZDYiLCJ0aW1lc3RhbXAiOiIyMDI2LTA0LTMwVDA3OjU2OjUyLjg2NVoiLCJtZXNzYWdlIjp7InJvbGUiOiJ0b29sUmVzdWx0IiwidG9vbENhbGxJZCI6ImNhbGxfRDlFSjhua2NNOGxjdjd5VTFNRmgzdVl6fGZjXzAyN2YxZWExNWRlZjM1MDUwMTY5ZjMwYjQ0YWI5ODgxOTE4YzRjYzI4M2FiMGI3MzU3IiwidG9vbE5hbWUiOiJncmVwIiwiY29udGVudCI6W3sidHlwZSI6InRleHQiLCJ0ZXh0IjoiY29kaW5nLWFnZW50L3NyYy9jb3JlL3BhY2thZ2UtbWFuYWdlci50czo0MDA6ICAgcmV0dXJuIGVudHJpZXM7XG5jb2RpbmctYWdlbnQvc3JjL2NvcmUvcGFja2FnZS1tYW5hZ2VyLnRzOjQwMTogICB9XG5jb2RpbmctYWdlbnQvc3JjL2NvcmUvcGFja2FnZS1tYW5hZ2VyLnRzOjQwMjogICBcbmNvZGluZy1hZ2VudC9zcmMvY29yZS9wYWNrYWdlLW1hbmFnZXIudHM6NDAzOiBmdW5jdGlvbiBjb2xsZWN0QXV0b1NraWxsRW50cmllcyhkaXI6IHN0cmluZywgbW9kZTogU2tpbGxEaXNjb3ZlcnlNb2RlKTogc3RyaW5nW10ge1xuY29kaW5nLWFnZW50L3NyYy9jb3JlL3BhY2thZ2UtbWFuYWdlci50czo0MDQ6ICAgcmV0dXJuIGNvbGxlY3RTa2lsbEVudHJpZXMoZGlyLCBtb2RlKTtcbmNvZGluZy1hZ2VudC9zcmMvY29yZS9wYWNrYWdlLW1hbmFnZXIudHM6NDA1OiAgIH1cbmNvZGluZy1hZ2VudC9zcmMvY29yZS9wYWNrYWdlLW1hbmFnZXIudHM6NDA2OiAgIFxuY29kaW5nLWFnZW50L3NyYy9jb3JlL3BhY2thZ2UtbWFuYWdlci50czoyMTkwOiAgIGFkZFJlc291cmNlcyhcbmNvZGluZy1hZ2VudC9zcmMvY29yZS9wYWNrYWdlLW1hbmFnZXIudHM6MjE5MTogICBcInNraWxsc1wiLFxuY29kaW5nLWFnZW50L3NyYy9jb3JlL3BhY2thZ2UtbWFuYWdlci50czoyMTkyOiAgIFtcbmNvZGluZy1hZ2VudC9zcmMvY29yZS9wYWNrYWdlLW1hbmFnZXIudHM6MjE5MzogLi4uY29sbGVjdEF1dG9Ta2lsbEVudHJpZXMocHJvamVjdERpcnMuc2tpbGxzLCBcInBpXCIpLFxuY29kaW5nLWFnZW50L3NyYy9jb3JlL3BhY2thZ2UtbWFuYWdlci50czoyMTk0OiAgIC4uLnByb2plY3RBZ2VudHNTa2lsbERpcnMuZmxhdE1hcCgoZGlyKSA9PiBjb2xsZWN0QXV0b1NraWxsRW50cmllcyhkaXIsIFwiYWdlbnRzXCIpKSxcbmNvZGluZy1hZ2VudC9zcmMvY29yZS9wYWNrYWdlLW1hbmFnZXIudHM6MjE5NTogICBdLFxuY29kaW5nLWFnZW50L3NyYy9jb3JlL3BhY2thZ2UtbWFuYWdlci50czoyMTk2OiAgIHByb2plY3RNZXRhZGF0YSxcbmNvZGluZy1hZ2VudC9zcmMvY29yZS9wYWNrYWdlLW1hbmFnZXIudHM6MjE5MTogICBcInNraWxsc1wiLFxuY29kaW5nLWFnZW50L3NyYy9jb3JlL3BhY2thZ2UtbWFuYWdlci50czoyMTkyOiAgIFtcbmNvZGluZy1hZ2VudC9zcmMvY29yZS9wYWNrYWdlLW1hbmFnZXIudHM6MjE5MzogICAuLi5jb2xsZWN0QXV0b1NraWxsRW50cmllcyhwcm9qZWN0RGlycy5za2lsbHMsIFwicGlcIiksXG5jb2RpbmctYWdlbnQvc3JjL2NvcmUvcGFja2FnZS1tYW5hZ2VyLnRzOjIxOTQ6IC4uLnByb2plY3RBZ2VudHNTa2lsbERpcnMuZmxhdE1hcCgoZGlyKSA9PiBjb2xsZWN0QXV0b1NraWxsRW50cmllcyhkaXIsIFwiYWdlbnRzXCIpKSxcbmNvZGluZy1hZ2VudC9zcmMvY29yZS9wYWNrYWdlLW1hbmFnZXIudHM6MjE5NTogICBdLFxuY29kaW5nLWFnZW50L3NyYy9jb3JlL3BhY2thZ2UtbWFuYWdlci50czoyMTk2OiAgIHByb2plY3RNZXRhZGF0YSxcbmNvZGluZy1hZ2VudC9zcmMvY29yZS9wYWNrYWdlLW1hbmFnZXIudHM6MjE5NzogICBwcm9qZWN0T3ZlcnJpZGVzLnNraWxscyxcbmNvZGluZy1hZ2VudC9zcmMvY29yZS9wYWNrYWdlLW1hbmFnZXIudHM6MjIyMTogICApO1xuY29kaW5nLWFnZW50L3NyYy9jb3JlL3BhY2thZ2UtbWFuYWdlci50czoyMjIyOiAgIGFkZFJlc291cmNlcyhcbmNvZGluZy1hZ2VudC9zcmMvY29yZS9wYWNrYWdlLW1hbmFnZXIudHM6MjIyMzogICBcInNraWxsc1wiLFxuY29kaW5nLWFnZW50L3NyYy9jb3JlL3BhY2thZ2UtbWFuYWdlci50czoyMjI0OiBbLi4uY29sbGVjdEF1dG9Ta2lsbEVudHJpZXModXNlckRpcnMuc2tpbGxzLCBcInBpXCIpLCAuLi5jb2xsZWN0QXV0b1NraWxsRW50cmllcyh1c2VyQWdlbnRzU2tpbGxzRGlyLCBcImFnZW50c1wiKV0sXG5jb2RpbmctYWdlbnQvc3JjL2NvcmUvcGFja2FnZS1tYW5hZ2VyLnRzOjIyMjU6ICAgdXNlck1ldGFkYXRhLFxuY29kaW5nLWFnZW50L3NyYy9jb3JlL3BhY2thZ2UtbWFuYWdlci50czoyMjI2OiAgIHVzZXJPdmVycmlkZXMuc2tpbGxzLFxuY29kaW5nLWFnZW50L3NyYy9jb3JlL3BhY2thZ2UtbWFuYWdlci50czoyMjI3OiAgIGdsb2JhbEJhc2VEaXIsIn1dLCJkZXRhaWxzIjp7Im1hdGNoQ291bnQiOjQsIm1hdGNoZXMiOlt7InBhdGgiOiJjb2RpbmctYWdlbnQvc3JjL2NvcmUvcGFja2FnZS1tYW5hZ2VyLnRzIiwibGluZSI6NDAwLCJ0ZXh0IjoiICByZXR1cm4gZW50cmllczsifSx7InBhdGgiOiJjb2RpbmctYWdlbnQvc3JjL2NvcmUvcGFja2FnZS1tYW5hZ2VyLnRzIiwibGluZSI6NDAxLCJ0ZXh0IjoiICB9In0seyJwYXRoIjoiY29kaW5nLWFnZW50L3NyYy9jb3JlL3BhY2thZ2UtbWFuYWdlci50cyIsImxpbmUiOjQwMiwidGV4dCI6IiAgIn0seyJwYXRoIjoiY29kaW5nLWFnZW50L3NyYy9jb3JlL3BhY2thZ2UtbWFuYWdlci50cyIsImxpbmUiOjQwMywidGV4dCI6ImZ1bmN0aW9uIGNvbGxlY3RBdXRvU2tpbGxFbnRyaWVzKGRpcjogc3RyaW5nLCBtb2RlOiBTa2lsbERpc2NvdmVyeU1vZGUpOiBzdHJpbmdbXSB7In0seyJwYXRoIjoiY29kaW5nLWFnZW50L3NyYy9jb3JlL3BhY2thZ2UtbWFuYWdlci50cyIsImxpbmUiOjQwNCwidGV4dCI6IiAgcmV0dXJuIGNvbGxlY3RTa2lsbEVudHJpZXMoZGlyLCBtb2RlKTsifSx7InBhdGgiOiJjb2RpbmctYWdlbnQvc3JjL2NvcmUvcGFja2FnZS1tYW5hZ2VyLnRzIiwibGluZSI6NDA1LCJ0ZXh0IjoiICB9In0seyJwYXRoIjoiY29kaW5nLWFnZW50L3NyYy9jb3JlL3BhY2thZ2UtbWFuYWdlci50cyIsImxpbmUiOjQwNiwidGV4dCI6IiAgIn0seyJwYXRoIjoiY29kaW5nLWFnZW50L3NyYy9jb3JlL3BhY2thZ2UtbWFuYWdlci50cyIsImxpbmUiOjIxOTAsInRleHQiOiIgIGFkZFJlc291cmNlcygifSx7InBhdGgiOiJjb2RpbmctYWdlbnQvc3JjL2NvcmUvcGFja2FnZS1tYW5hZ2VyLnRzIiwibGluZSI6MjE5MSwidGV4dCI6IiAgXCJza2lsbHNcIiwifSx7InBhdGgiOiJjb2RpbmctYWdlbnQvc3JjL2NvcmUvcGFja2FnZS1tYW5hZ2VyLnRzIiwibGluZSI6MjE5MiwidGV4dCI6IiAgWyJ9LHsicGF0aCI6ImNvZGluZy1hZ2VudC9zcmMvY29yZS9wYWNrYWdlLW1hbmFnZXIudHMiLCJsaW5lIjoyMTkzLCJ0ZXh0IjoiLi4uY29sbGVjdEF1dG9Ta2lsbEVudHJpZXMocHJvamVjdERpcnMuc2tpbGxzLCBcInBpXCIpLCJ9LHsicGF0aCI6ImNvZGluZy1hZ2VudC9zcmMvY29yZS9wYWNrYWdlLW1hbmFnZXIudHMiLCJsaW5lIjoyMTk0LCJ0ZXh0IjoiICAuLi5wcm9qZWN0QWdlbnRzU2tpbGxEaXJzLmZsYXRNYXAoKGRpcikgPT4gY29sbGVjdEF1dG9Ta2lsbEVudHJpZXMoZGlyLCBcImFnZW50c1wiKSksIn0seyJwYXRoIjoiY29kaW5nLWFnZW50L3NyYy9jb3JlL3BhY2thZ2UtbWFuYWdlci50cyIsImxpbmUiOjIxOTUsInRleHQiOiIgIF0sIn0seyJwYXRoIjoiY29kaW5nLWFnZW50L3NyYy9jb3JlL3BhY2thZ2UtbWFuYWdlci50cyIsImxpbmUiOjIxOTYsInRleHQiOiIgIHByb2plY3RNZXRhZGF0YSwifSx7InBhdGgiOiJjb2RpbmctYWdlbnQvc3JjL2NvcmUvcGFja2FnZS1tYW5hZ2VyLnRzIiwibGluZSI6MjE5MSwidGV4dCI6IiAgXCJza2lsbHNcIiwifSx7InBhdGgiOiJjb2RpbmctYWdlbnQvc3JjL2NvcmUvcGFja2FnZS1tYW5hZ2VyLnRzIiwibGluZSI6MjE5MiwidGV4dCI6IiAgWyJ9LHsicGF0aCI6ImNvZGluZy1hZ2VudC9zcmMvY29yZS9wYWNrYWdlLW1hbmFnZXIudHMiLCJsaW5lIjoyMTkzLCJ0ZXh0IjoiICAuLi5jb2xsZWN0QXV0b1NraWxsRW50cmllcyhwcm9qZWN0RGlycy5za2lsbHMsIFwicGlcIiksIn0seyJwYXRoIjoiY29kaW5nLWFnZW50L3NyYy9jb3JlL3BhY2thZ2UtbWFuYWdlci50cyIsImxpbmUiOjIxOTQsInRleHQiOiIuLi5wcm9qZWN0QWdlbnRzU2tpbGxEaXJzLmZsYXRNYXAoKGRpcikgPT4gY29sbGVjdEF1dG9Ta2lsbEVudHJpZXMoZGlyLCBcImFnZW50c1wiKSksIn0seyJwYXRoIjoiY29kaW5nLWFnZW50L3NyYy9jb3JlL3BhY2thZ2UtbWFuYWdlci50cyIsImxpbmUiOjIxOTUsInRleHQiOiIgIF0sIn0seyJwYXRoIjoiY29kaW5nLWFnZW50L3NyYy9jb3JlL3BhY2thZ2UtbWFuYWdlci50cyIsImxpbmUiOjIxOTYsInRleHQiOiIgIHByb2plY3RNZXRhZGF0YSwifSx7InBhdGgiOiJjb2RpbmctYWdlbnQvc3JjL2NvcmUvcGFja2FnZS1tYW5hZ2VyLnRzIiwibGluZSI6MjE5NywidGV4dCI6IiAgcHJvamVjdE92ZXJyaWRlcy5za2lsbHMsIn0seyJwYXRoIjoiY29kaW5nLWFnZW50L3NyYy9jb3JlL3BhY2thZ2UtbWFuYWdlci50cyIsImxpbmUiOjIyMjEsInRleHQiOiIgICk7In0seyJwYXRoIjoiY29kaW5nLWFnZW50L3NyYy9jb3JlL3BhY2thZ2UtbWFuYWdlci50cyIsImxpbmUiOjIyMjIsInRleHQiOiIgIGFkZFJlc291cmNlcygifSx7InBhdGgiOiJjb2RpbmctYWdlbnQvc3JjL2NvcmUvcGFja2FnZS1tYW5hZ2VyLnRzIiwibGluZSI6MjIyMywidGV4dCI6IiAgXCJza2lsbHNcIiwifSx7InBhdGgiOiJjb2RpbmctYWdlbnQvc3JjL2NvcmUvcGFja2FnZS1tYW5hZ2VyLnRzIiwibGluZSI6MjIyNCwidGV4dCI6IlsuLi5jb2xsZWN0QXV0b1NraWxsRW50cmllcyh1c2VyRGlycy5za2lsbHMsIFwicGlcIiksIC4uLmNvbGxlY3RBdXRvU2tpbGxFbnRyaWVzKHVzZXJBZ2VudHNTa2lsbHNEaXIsIFwiYWdlbnRzXCIpXSwifSx7InBhdGgiOiJjb2RpbmctYWdlbnQvc3JjL2NvcmUvcGFja2FnZS1tYW5hZ2VyLnRzIiwibGluZSI6MjIyNSwidGV4dCI6IiAgdXNlck1ldGFkYXRhLCJ9LHsicGF0aCI6ImNvZGluZy1hZ2VudC9zcmMvY29yZS9wYWNrYWdlLW1hbmFnZXIudHMiLCJsaW5lIjoyMjI2LCJ0ZXh0IjoiICB1c2VyT3ZlcnJpZGVzLnNraWxscywifSx7InBhdGgiOiJjb2RpbmctYWdlbnQvc3JjL2NvcmUvcGFja2FnZS1tYW5hZ2VyLnRzIiwibGluZSI6MjIyNywidGV4dCI6IiAgZ2xvYmFsQmFzZURpciwifV0sInJlbGF0aXZlVG8iOiJwYWNrYWdlcyJ9LCJpc0Vycm9yIjpmYWxzZSwidGltZXN0YW1wIjoxNzc3NTM1ODEyODY1fX0seyJ0eXBlIjoibWVzc2FnZSIsImlkIjoiOGYxOGZhMGIiLCJwYXJlbnRJZCI6ImE0Zjk1MmFiIiwidGltZXN0YW1wIjoiMjAyNi0wNC0zMFQwNzo1Njo1Mi44NjVaIiwibWVzc2FnZSI6eyJyb2xlIjoidG9vbFJlc3VsdCIsInRvb2xDYWxsSWQiOiJjYWxsX2JHU3pvMWRpNWVJQ01RYVpSVXY4aWdFZXxmY18wMjdmMWVhMTVkZWYzNTA1MDE2OWYzMGI0NGFiYTA4MTkxOTExODAwMWE0NWVmNjMxOCIsInRvb2xOYW1lIjoiZ3JlcCIsImNvbnRlbnQiOlt7InR5cGUiOiJ0ZXh0IiwidGV4dCI6InJnOiByZWdleCBwYXJzZSBlcnJvcjpcbiAgICAoPzpVc2VyICh+KVxuICAgIF5cbmVycm9yOiB1bmNsb3NlZCBncm91cFxuIn1dLCJkZXRhaWxzIjp7fSwiaXNFcnJvciI6dHJ1ZSwidGltZXN0YW1wIjoxNzc3NTM1ODEyODY1fX0seyJ0eXBlIjoibWVzc2FnZSIsImlkIjoiZGQ3OTFiY2UiLCJwYXJlbnRJZCI6IjhmMThmYTBiIiwidGltZXN0YW1wIjoiMjAyNi0wNC0zMFQwNzo1Njo1Ny42OTZaIiwibWVzc2FnZSI6eyJyb2xlIjoiYXNzaXN0YW50IiwiY29udGVudCI6W3sidHlwZSI6InRvb2xDYWxsIiwiaWQiOiJjYWxsX1oxZzJWelhsYlFjU3g3a3plbm9aOEg4TXxmY18wMjdmMWVhMTVkZWYzNTA1MDE2OWYzMGI0OTRkZGM4MTkxOGJkN2YyZmQ3YTIzMzMzNSIsIm5hbWUiOiJyZWFkIiwiYXJndW1lbnRzIjp7InBhdGgiOiJwYWNrYWdlcy9jb2RpbmctYWdlbnQvc3JjL21vZGVzL2ludGVyYWN0aXZlL2NvbXBvbmVudHMvY29uZmlnLXNlbGVjdG9yLnRzIiwib2Zmc2V0IjoxLCJsaW1pdCI6MTYwfX1dLCJhcGkiOiJvcGVuYWktY29kZXgtcmVzcG9uc2VzIiwicHJvdmlkZXIiOiJvcGVuYWktY29kZXgiLCJtb2RlbCI6ImdwdC01LjUiLCJ1c2FnZSI6eyJpbnB1dCI6MTA0NCwib3V0cHV0IjozNywiY2FjaGVSZWFkIjoxMDc1MiwiY2FjaGVXcml0ZSI6MCwidG90YWxUb2tlbnMiOjExODMzLCJjb3N0Ijp7ImlucHV0IjowLjAwNTIyMDAwMDAwMDAwMDAwMSwib3V0cHV0IjowLjAwMTExLCJjYWNoZVJlYWQiOjAuMDA1Mzc2LCJjYWNoZVdyaXRlIjowLCJ0b3RhbCI6MC4wMTE3MDYwMDAwMDAwMDAwMDF9fSwic3RvcFJlYXNvbiI6InRvb2xVc2UiLCJ0aW1lc3RhbXAiOjE3Nzc1MzU4MTI4NjUsInJlc3BvbnNlSWQiOiJyZXNwXzAyN2YxZWExNWRlZjM1MDUwMTY5ZjMwYjQ1YzNkNDgxOTE5NGE5N2E4YzMwMjI1ZjZmIn19LHsidHlwZSI6Im1lc3NhZ2UiLCJpZCI6IjMyMTlmZWI5IiwicGFyZW50SWQiOiJkZDc5MWJjZSIsInRpbWVzdGFtcCI6IjIwMjYtMDQtMzBUMDc6NTY6NTcuNzExWiIsIm1lc3NhZ2UiOnsicm9sZSI6InRvb2xSZXN1bHQiLCJ0b29sQ2FsbElkIjoiY2FsbF9aMWcyVnpYbGJRY1N4N2t6ZW5vWjhIOE18ZmNfMDI3ZjFlYTE1ZGVmMzUwNTAxNjlmMzBiNDk0ZGRjODE5MThiZDdmMmZkN2EyMzMzMzUiLCJ0b29sTmFtZSI6InJlYWQiLCJjb250ZW50IjpbeyJ0eXBlIjoidGV4dCIsInRleHQiOiIvKipcbiAqIFRVSSBjb21wb25lbnQgZm9yIG1hbmFnaW5nIHBhY2thZ2UgcmVzb3VyY2VzIChlbmFibGUvZGlzYWJsZSlcbiAqL1xuXG5pbXBvcnQgeyBiYXNlbmFtZSwgZGlybmFtZSwgam9pbiwgcmVsYXRpdmUgfSBmcm9tIFwibm9kZTpwYXRoXCI7XG5pbXBvcnQge1xuXHR0eXBlIENvbXBvbmVudCxcblx0Q29udGFpbmVyLFxuXHR0eXBlIEZvY3VzYWJsZSxcblx0Z2V0S2V5YmluZGluZ3MsXG5cdElucHV0LFxuXHRtYXRjaGVzS2V5LFxuXHRTcGFjZXIsXG5cdHRydW5jYXRlVG9XaWR0aCxcblx0dmlzaWJsZVdpZHRoLFxufSBmcm9tIFwiQG1hcmlvemVjaG5lci9waS10dWlcIjtcbmltcG9ydCB7IENPTkZJR19ESVJfTkFNRSB9IGZyb20gXCIuLi8uLi8uLi9jb25maWcuanNcIjtcbmltcG9ydCB0eXBlIHsgUGF0aE1ldGFkYXRhLCBSZXNvbHZlZFBhdGhzLCBSZXNvbHZlZFJlc291cmNlIH0gZnJvbSBcIi4uLy4uLy4uL2NvcmUvcGFja2FnZS1tYW5hZ2VyLmpzXCI7XG5pbXBvcnQgdHlwZSB7IFBhY2thZ2VTb3VyY2UsIFNldHRpbmdzTWFuYWdlciB9IGZyb20gXCIuLi8uLi8uLi9jb3JlL3NldHRpbmdzLW1hbmFnZXIuanNcIjtcbmltcG9ydCB7IHRoZW1lIH0gZnJvbSBcIi4uL3RoZW1lL3RoZW1lLmpzXCI7XG5pbXBvcnQgeyBEeW5hbWljQm9yZGVyIH0gZnJvbSBcIi4vZHluYW1pYy1ib3JkZXIuanNcIjtcbmltcG9ydCB7IHJhd0tleUhpbnQgfSBmcm9tIFwiLi9rZXliaW5kaW5nLWhpbnRzLmpzXCI7XG5cbnR5cGUgUmVzb3VyY2VUeXBlID0gXCJleHRlbnNpb25zXCIgfCBcInNraWxsc1wiIHwgXCJwcm9tcHRzXCIgfCBcInRoZW1lc1wiO1xuXG5jb25zdCBSRVNPVVJDRV9UWVBFX0xBQkVMUzogUmVjb3JkPFJlc291cmNlVHlwZSwgc3RyaW5nPiA9IHtcblx0ZXh0ZW5zaW9uczogXCJFeHRlbnNpb25zXCIsXG5cdHNraWxsczogXCJTa2lsbHNcIixcblx0cHJvbXB0czogXCJQcm9tcHRzXCIsXG5cdHRoZW1lczogXCJUaGVtZXNcIixcbn07XG5cbmludGVyZmFjZSBSZXNvdXJjZUl0ZW0ge1xuXHRwYXRoOiBzdHJpbmc7XG5cdGVuYWJsZWQ6IGJvb2xlYW47XG5cdG1ldGFkYXRhOiBQYXRoTWV0YWRhdGE7XG5cdHJlc291cmNlVHlwZTogUmVzb3VyY2VUeXBlO1xuXHRkaXNwbGF5TmFtZTogc3RyaW5nO1xuXHRncm91cEtleTogc3RyaW5nO1xuXHRzdWJncm91cEtleTogc3RyaW5nO1xufVxuXG5pbnRlcmZhY2UgUmVzb3VyY2VTdWJncm91cCB7XG5cdHR5cGU6IFJlc291cmNlVHlwZTtcblx0bGFiZWw6IHN0cmluZztcblx0aXRlbXM6IFJlc291cmNlSXRlbVtdO1xufVxuXG5pbnRlcmZhY2UgUmVzb3VyY2VHcm91cCB7XG5cdGtleTogc3RyaW5nO1xuXHRsYWJlbDogc3RyaW5nO1xuXHRzY29wZTogXCJ1c2VyXCIgfCBcInByb2plY3RcIiB8IFwidGVtcG9yYXJ5XCI7XG5cdG9yaWdpbjogXCJwYWNrYWdlXCIgfCBcInRvcC1sZXZlbFwiO1xuXHRzb3VyY2U6IHN0cmluZztcblx0c3ViZ3JvdXBzOiBSZXNvdXJjZVN1Ymdyb3VwW107XG59XG5cbmZ1bmN0aW9uIGdldEdyb3VwTGFiZWwobWV0YWRhdGE6IFBhdGhNZXRhZGF0YSk6IHN0cmluZyB7XG5cdGlmIChtZXRhZGF0YS5vcmlnaW4gPT09IFwicGFja2FnZVwiKSB7XG5cdFx0cmV0dXJuIGAke21ldGFkYXRhLnNvdXJjZX0gKCR7bWV0YWRhdGEuc2NvcGV9KWA7XG5cdH1cblx0Ly8gVG9wLWxldmVsIHJlc291cmNlc1xuXHRpZiAobWV0YWRhdGEuc291cmNlID09PSBcImF1dG9cIikge1xuXHRcdHJldHVybiBtZXRhZGF0YS5zY29wZSA9PT0gXCJ1c2VyXCIgPyBcIlVzZXIgKH4vLnBpL2FnZW50LylcIiA6IFwiUHJvamVjdCAoLnBpLylcIjtcblx0fVxuXHRyZXR1cm4gbWV0YWRhdGEuc2NvcGUgPT09IFwidXNlclwiID8gXCJVc2VyIHNldHRpbmdzXCIgOiBcIlByb2plY3Qgc2V0dGluZ3NcIjtcbn1cblxuZnVuY3Rpb24gYnVpbGRHcm91cHMocmVzb2x2ZWQ6IFJlc29sdmVkUGF0aHMpOiBSZXNvdXJjZUdyb3VwW10ge1xuXHRjb25zdCBncm91cE1hcCA9IG5ldyBNYXA8c3RyaW5nLCBSZXNvdXJjZUdyb3VwPigpO1xuXG5cdGNvbnN0IGFkZFRvR3JvdXAgPSAocmVzb3VyY2VzOiBSZXNvbHZlZFJlc291cmNlW10sIHJlc291cmNlVHlwZTogUmVzb3VyY2VUeXBlKSA9PiB7XG5cdFx0Zm9yIChjb25zdCByZXMgb2YgcmVzb3VyY2VzKSB7XG5cdFx0XHRjb25zdCB7IHBhdGgsIGVuYWJsZWQsIG1ldGFkYXRhIH0gPSByZXM7XG5cdFx0XHRjb25zdCBncm91cEtleSA9IGAke21ldGFkYXRhLm9yaWdpbn06JHttZXRhZGF0YS5zY29wZX06JHttZXRhZGF0YS5zb3VyY2V9YDtcblxuXHRcdFx0aWYgKCFncm91cE1hcC5oYXMoZ3JvdXBLZXkpKSB7XG5cdFx0XHRcdGdyb3VwTWFwLnNldChncm91cEtleSwge1xuXHRcdFx0XHRcdGtleTogZ3JvdXBLZXksXG5cdFx0XHRcdFx0bGFiZWw6IGdldEdyb3VwTGFiZWwobWV0YWRhdGEpLFxuXHRcdFx0XHRcdHNjb3BlOiBtZXRhZGF0YS5zY29wZSxcblx0XHRcdFx0XHRvcmlnaW46IG1ldGFkYXRhLm9yaWdpbixcblx0XHRcdFx0XHRzb3VyY2U6IG1ldGFkYXRhLnNvdXJjZSxcblx0XHRcdFx0XHRzdWJncm91cHM6IFtdLFxuXHRcdFx0XHR9KTtcblx0XHRcdH1cblxuXHRcdFx0Y29uc3QgZ3JvdXAgPSBncm91cE1hcC5nZXQoZ3JvdXBLZXkpITtcblx0XHRcdGNvbnN0IHN1Ymdyb3VwS2V5ID0gYCR7Z3JvdXBLZXl9OiR7cmVzb3VyY2VUeXBlfWA7XG5cblx0XHRcdGxldCBzdWJncm91cCA9IGdyb3VwLnN1Ymdyb3Vwcy5maW5kKChzZykgPT4gc2cudHlwZSA9PT0gcmVzb3VyY2VUeXBlKTtcblx0XHRcdGlmICghc3ViZ3JvdXApIHtcblx0XHRcdFx0c3ViZ3JvdXAgPSB7XG5cdFx0XHRcdFx0dHlwZTogcmVzb3VyY2VUeXBlLFxuXHRcdFx0XHRcdGxhYmVsOiBSRVNPVVJDRV9UWVBFX0xBQkVMU1tyZXNvdXJjZVR5cGVdLFxuXHRcdFx0XHRcdGl0ZW1zOiBbXSxcblx0XHRcdFx0fTtcblx0XHRcdFx0Z3JvdXAuc3ViZ3JvdXBzLnB1c2goc3ViZ3JvdXApO1xuXHRcdFx0fVxuXG5cdFx0XHRjb25zdCBmaWxlTmFtZSA9IGJhc2VuYW1lKHBhdGgpO1xuXHRcdFx0Y29uc3QgcGFyZW50Rm9sZGVyID0gYmFzZW5hbWUoZGlybmFtZShwYXRoKSk7XG5cdFx0XHRsZXQgZGlzcGxheU5hbWU6IHN0cmluZztcblx0XHRcdGlmIChyZXNvdXJjZVR5cGUgPT09IFwiZXh0ZW5zaW9uc1wiICYmIHBhcmVudEZvbGRlciAhPT0gXCJleHRlbnNpb25zXCIpIHtcblx0XHRcdFx0ZGlzcGxheU5hbWUgPSBgJHtwYXJlbnRGb2xkZXJ9LyR7ZmlsZU5hbWV9YDtcblx0XHRcdH0gZWxzZSBpZiAocmVzb3VyY2VUeXBlID09PSBcInNraWxsc1wiICYmIGZpbGVOYW1lID09PSBcIlNLSUxMLm1kXCIpIHtcblx0XHRcdFx0ZGlzcGxheU5hbWUgPSBwYXJlbnRGb2xkZXI7XG5cdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRkaXNwbGF5TmFtZSA9IGZpbGVOYW1lO1xuXHRcdFx0fVxuXHRcdFx0c3ViZ3JvdXAuaXRlbXMucHVzaCh7XG5cdFx0XHRcdHBhdGgsXG5cdFx0XHRcdGVuYWJsZWQsXG5cdFx0XHRcdG1ldGFkYXRhLFxuXHRcdFx0XHRyZXNvdXJjZVR5cGUsXG5cdFx0XHRcdGRpc3BsYXlOYW1lLFxuXHRcdFx0XHRncm91cEtleSxcblx0XHRcdFx0c3ViZ3JvdXBLZXksXG5cdFx0XHR9KTtcblx0XHR9XG5cdH07XG5cblx0YWRkVG9Hcm91cChyZXNvbHZlZC5leHRlbnNpb25zLCBcImV4dGVuc2lvbnNcIik7XG5cdGFkZFRvR3JvdXAocmVzb2x2ZWQuc2tpbGxzLCBcInNraWxsc1wiKTtcblx0YWRkVG9Hcm91cChyZXNvbHZlZC5wcm9tcHRzLCBcInByb21wdHNcIik7XG5cdGFkZFRvR3JvdXAocmVzb2x2ZWQudGhlbWVzLCBcInRoZW1lc1wiKTtcblxuXHQvLyBTb3J0IGdyb3VwczogcGFja2FnZXMgZmlyc3QsIHRoZW4gdG9wLWxldmVsOyB1c2VyIGJlZm9yZSBwcm9qZWN0XG5cdGNvbnN0IGdyb3VwcyA9IEFycmF5LmZyb20oZ3JvdXBNYXAudmFsdWVzKCkpO1xuXHRncm91cHMuc29ydCgoYSwgYikgPT4ge1xuXHRcdGlmIChhLm9yaWdpbiAhPT0gYi5vcmlnaW4pIHtcblx0XHRcdHJldHVybiBhLm9yaWdpbiA9PT0gXCJwYWNrYWdlXCIgPyAtMSA6IDE7XG5cdFx0fVxuXHRcdGlmIChhLnNjb3BlICE9PSBiLnNjb3BlKSB7XG5cdFx0XHRyZXR1cm4gYS5zY29wZSA9PT0gXCJ1c2VyXCIgPyAtMSA6IDE7XG5cdFx0fVxuXHRcdHJldHVybiBhLnNvdXJjZS5sb2NhbGVDb21wYXJlKGIuc291cmNlKTtcblx0fSk7XG5cblx0Ly8gU29ydCBzdWJncm91cHMgd2l0aGluIGVhY2ggZ3JvdXAgYnkgdHlwZSBvcmRlciwgYW5kIGl0ZW1zIGJ5IG5hbWVcblx0Y29uc3QgdHlwZU9yZGVyOiBSZWNvcmQ8UmVzb3VyY2VUeXBlLCBudW1iZXI+ID0geyBleHRlbnNpb25zOiAwLCBza2lsbHM6IDEsIHByb21wdHM6IDIsIHRoZW1lczogMyB9O1xuXHRmb3IgKGNvbnN0IGdyb3VwIG9mIGdyb3Vwcykge1xuXHRcdGdyb3VwLnN1Ymdyb3Vwcy5zb3J0KChhLCBiKSA9PiB0eXBlT3JkZXJbYS50eXBlXSAtIHR5cGVPcmRlcltiLnR5cGVdKTtcblx0XHRmb3IgKGNvbnN0IHN1Ymdyb3VwIG9mIGdyb3VwLnN1Ymdyb3Vwcykge1xuXHRcdFx0c3ViZ3JvdXAuaXRlbXMuc29ydCgoYSwgYikgPT4gYS5kaXNwbGF5TmFtZS5sb2NhbGVDb21wYXJlKGIuZGlzcGxheU5hbWUpKTtcblx0XHR9XG5cdH1cblxuXHRyZXR1cm4gZ3JvdXBzO1xufVxuXG50eXBlIEZsYXRFbnRyeSA9XG5cdHwgeyB0eXBlOiBcImdyb3VwXCI7IGdyb3VwOiBSZXNvdXJjZUdyb3VwIH1cblx0fCB7IHR5cGU6IFwic3ViZ3JvdXBcIjsgc3ViZ3JvdXA6IFJlc291cmNlU3ViZ3JvdXA7IGdyb3VwOiBSZXNvdXJjZUdyb3VwIH1cblx0fCB7IHR5cGU6IFwiaXRlbVwiOyBpdGVtOiBSZXNvdXJjZUl0ZW0gfTtcblxuY2xhc3MgQ29uZmlnU2VsZWN0b3JIZWFkZXIgaW1wbGVtZW50cyBDb21wb25lbnQge1xuXHRpbnZhbGlkYXRlKCk6IHZvaWQge31cblxuXHRyZW5kZXIod2lkdGg6IG51bWJlcik6IHN0cmluZ1tdIHtcblxuWzQzNiBtb3JlIGxpbmVzIGluIGZpbGUuIFVzZSBvZmZzZXQ9MTYxIHRvIGNvbnRpbnVlLl0ifV0sImlzRXJyb3IiOmZhbHNlLCJ0aW1lc3RhbXAiOjE3Nzc1MzU4MTc3MTF9fSx7InR5cGUiOiJtZXNzYWdlIiwiaWQiOiI5ZjhhYTUzOSIsInBhcmVudElkIjoiMzIxOWZlYjkiLCJ0aW1lc3RhbXAiOiIyMDI2LTA0LTMwVDA3OjU3OjAxLjcyNVoiLCJtZXNzYWdlIjp7InJvbGUiOiJhc3Npc3RhbnQiLCJjb250ZW50IjpbeyJ0eXBlIjoidG9vbENhbGwiLCJpZCI6ImNhbGxfYzlsWlg5bnpwNk1rRnB0Vk5pd0hJeldDfGZjXzAyN2YxZWExNWRlZjM1MDUwMTY5ZjMwYjRiODM3NDgxOTFhZGI1ODMwZDBmNmRiZTE1IiwibmFtZSI6InJlYWQiLCJhcmd1bWVudHMiOnsicGF0aCI6InBhY2thZ2VzL2NvZGluZy1hZ2VudC9zcmMvY29yZS9wYWNrYWdlLW1hbmFnZXIudHMiLCJvZmZzZXQiOjIxNDAsImxpbWl0IjoxMzB9fV0sImFwaSI6Im9wZW5haS1jb2RleC1yZXNwb25zZXMiLCJwcm92aWRlciI6Im9wZW5haS1jb2RleCIsIm1vZGVsIjoiZ3B0LTUuNSIsInVzYWdlIjp7ImlucHV0IjoxMjk4Miwib3V0cHV0IjozNCwiY2FjaGVSZWFkIjowLCJjYWNoZVdyaXRlIjowLCJ0b3RhbFRva2VucyI6MTMwMTYsImNvc3QiOnsiaW5wdXQiOjAuMDY0OTEwMDAwMDAwMDAwMDEsIm91dHB1dCI6MC4wMDEwMiwiY2FjaGVSZWFkIjowLCJjYWNoZVdyaXRlIjowLCJ0b3RhbCI6MC4wNjU5MzAwMDAwMDAwMDAwMn19LCJzdG9wUmVhc29uIjoidG9vbFVzZSIsInRpbWVzdGFtcCI6MTc3NzUzNTgxNzcxMiwicmVzcG9uc2VJZCI6InJlc3BfMDI3ZjFlYTE1ZGVmMzUwNTAxNjlmMzBiNGE0NjZjODE5MTgxNDRhMGY1NmRmMWViNTEifX0seyJ0eXBlIjoibWVzc2FnZSIsImlkIjoiMDk5OGEwODMiLCJwYXJlbnRJZCI6IjlmOGFhNTM5IiwidGltZXN0YW1wIjoiMjAyNi0wNC0zMFQwNzo1NzowMS43MzhaIiwibWVzc2FnZSI6eyJyb2xlIjoidG9vbFJlc3VsdCIsInRvb2xDYWxsSWQiOiJjYWxsX2M5bFpYOW56cDZNa0ZwdFZOaXdISXpXQ3xmY18wMjdmMWVhMTVkZWYzNTA1MDE2OWYzMGI0YjgzNzQ4MTkxYWRiNTgzMGQwZjZkYmUxNSIsInRvb2xOYW1lIjoicmVhZCIsImNvbnRlbnQiOlt7InR5cGUiOiJ0ZXh0IiwidGV4dCI6Ilx0XHRcdGV4dGVuc2lvbnM6IChnbG9iYWxTZXR0aW5ncy5leHRlbnNpb25zID8/IFtdKSBhcyBzdHJpbmdbXSxcblx0XHRcdHNraWxsczogKGdsb2JhbFNldHRpbmdzLnNraWxscyA/PyBbXSkgYXMgc3RyaW5nW10sXG5cdFx0XHRwcm9tcHRzOiAoZ2xvYmFsU2V0dGluZ3MucHJvbXB0cyA/PyBbXSkgYXMgc3RyaW5nW10sXG5cdFx0XHR0aGVtZXM6IChnbG9iYWxTZXR0aW5ncy50aGVtZXMgPz8gW10pIGFzIHN0cmluZ1tdLFxuXHRcdH07XG5cdFx0Y29uc3QgcHJvamVjdE92ZXJyaWRlcyA9IHtcblx0XHRcdGV4dGVuc2lvbnM6IChwcm9qZWN0U2V0dGluZ3MuZXh0ZW5zaW9ucyA/PyBbXSkgYXMgc3RyaW5nW10sXG5cdFx0XHRza2lsbHM6IChwcm9qZWN0U2V0dGluZ3Muc2tpbGxzID8/IFtdKSBhcyBzdHJpbmdbXSxcblx0XHRcdHByb21wdHM6IChwcm9qZWN0U2V0dGluZ3MucHJvbXB0cyA/PyBbXSkgYXMgc3RyaW5nW10sXG5cdFx0XHR0aGVtZXM6IChwcm9qZWN0U2V0dGluZ3MudGhlbWVzID8/IFtdKSBhcyBzdHJpbmdbXSxcblx0XHR9O1xuXG5cdFx0Y29uc3QgdXNlckRpcnMgPSB7XG5cdFx0XHRleHRlbnNpb25zOiBqb2luKGdsb2JhbEJhc2VEaXIsIFwiZXh0ZW5zaW9uc1wiKSxcblx0XHRcdHNraWxsczogam9pbihnbG9iYWxCYXNlRGlyLCBcInNraWxsc1wiKSxcblx0XHRcdHByb21wdHM6IGpvaW4oZ2xvYmFsQmFzZURpciwgXCJwcm9tcHRzXCIpLFxuXHRcdFx0dGhlbWVzOiBqb2luKGdsb2JhbEJhc2VEaXIsIFwidGhlbWVzXCIpLFxuXHRcdH07XG5cdFx0Y29uc3QgcHJvamVjdERpcnMgPSB7XG5cdFx0XHRleHRlbnNpb25zOiBqb2luKHByb2plY3RCYXNlRGlyLCBcImV4dGVuc2lvbnNcIiksXG5cdFx0XHRza2lsbHM6IGpvaW4ocHJvamVjdEJhc2VEaXIsIFwic2tpbGxzXCIpLFxuXHRcdFx0cHJvbXB0czogam9pbihwcm9qZWN0QmFzZURpciwgXCJwcm9tcHRzXCIpLFxuXHRcdFx0dGhlbWVzOiBqb2luKHByb2plY3RCYXNlRGlyLCBcInRoZW1lc1wiKSxcblx0XHR9O1xuXHRcdGNvbnN0IHVzZXJBZ2VudHNTa2lsbHNEaXIgPSBqb2luKGdldEhvbWVEaXIoKSwgXCIuYWdlbnRzXCIsIFwic2tpbGxzXCIpO1xuXHRcdGNvbnN0IHByb2plY3RBZ2VudHNTa2lsbERpcnMgPSBjb2xsZWN0QW5jZXN0b3JBZ2VudHNTa2lsbERpcnModGhpcy5jd2QpLmZpbHRlcihcblx0XHRcdChkaXIpID0+IHJlc29sdmUoZGlyKSAhPT0gcmVzb2x2ZSh1c2VyQWdlbnRzU2tpbGxzRGlyKSxcblx0XHQpO1xuXG5cdFx0Y29uc3QgYWRkUmVzb3VyY2VzID0gKFxuXHRcdFx0cmVzb3VyY2VUeXBlOiBSZXNvdXJjZVR5cGUsXG5cdFx0XHRwYXRoczogc3RyaW5nW10sXG5cdFx0XHRtZXRhZGF0YTogUGF0aE1ldGFkYXRhLFxuXHRcdFx0b3ZlcnJpZGVzOiBzdHJpbmdbXSxcblx0XHRcdGJhc2VEaXI6IHN0cmluZyxcblx0XHQpID0+IHtcblx0XHRcdGNvbnN0IHRhcmdldCA9IHRoaXMuZ2V0VGFyZ2V0TWFwKGFjY3VtdWxhdG9yLCByZXNvdXJjZVR5cGUpO1xuXHRcdFx0Zm9yIChjb25zdCBwYXRoIG9mIHBhdGhzKSB7XG5cdFx0XHRcdGNvbnN0IGVuYWJsZWQgPSBpc0VuYWJsZWRCeU92ZXJyaWRlcyhwYXRoLCBvdmVycmlkZXMsIGJhc2VEaXIpO1xuXHRcdFx0XHR0aGlzLmFkZFJlc291cmNlKHRhcmdldCwgcGF0aCwgbWV0YWRhdGEsIGVuYWJsZWQpO1xuXHRcdFx0fVxuXHRcdH07XG5cblx0XHRhZGRSZXNvdXJjZXMoXG5cdFx0XHRcImV4dGVuc2lvbnNcIixcblx0XHRcdGNvbGxlY3RBdXRvRXh0ZW5zaW9uRW50cmllcyhwcm9qZWN0RGlycy5leHRlbnNpb25zKSxcblx0XHRcdHByb2plY3RNZXRhZGF0YSxcblx0XHRcdHByb2plY3RPdmVycmlkZXMuZXh0ZW5zaW9ucyxcblx0XHRcdHByb2plY3RCYXNlRGlyLFxuXHRcdCk7XG5cdFx0YWRkUmVzb3VyY2VzKFxuXHRcdFx0XCJza2lsbHNcIixcblx0XHRcdFtcblx0XHRcdFx0Li4uY29sbGVjdEF1dG9Ta2lsbEVudHJpZXMocHJvamVjdERpcnMuc2tpbGxzLCBcInBpXCIpLFxuXHRcdFx0XHQuLi5wcm9qZWN0QWdlbnRzU2tpbGxEaXJzLmZsYXRNYXAoKGRpcikgPT4gY29sbGVjdEF1dG9Ta2lsbEVudHJpZXMoZGlyLCBcImFnZW50c1wiKSksXG5cdFx0XHRdLFxuXHRcdFx0cHJvamVjdE1ldGFkYXRhLFxuXHRcdFx0cHJvamVjdE92ZXJyaWRlcy5za2lsbHMsXG5cdFx0XHRwcm9qZWN0QmFzZURpcixcblx0XHQpO1xuXHRcdGFkZFJlc291cmNlcyhcblx0XHRcdFwicHJvbXB0c1wiLFxuXHRcdFx0Y29sbGVjdEF1dG9Qcm9tcHRFbnRyaWVzKHByb2plY3REaXJzLnByb21wdHMpLFxuXHRcdFx0cHJvamVjdE1ldGFkYXRhLFxuXHRcdFx0cHJvamVjdE92ZXJyaWRlcy5wcm9tcHRzLFxuXHRcdFx0cHJvamVjdEJhc2VEaXIsXG5cdFx0KTtcblx0XHRhZGRSZXNvdXJjZXMoXG5cdFx0XHRcInRoZW1lc1wiLFxuXHRcdFx0Y29sbGVjdEF1dG9UaGVtZUVudHJpZXMocHJvamVjdERpcnMudGhlbWVzKSxcblx0XHRcdHByb2plY3RNZXRhZGF0YSxcblx0XHRcdHByb2plY3RPdmVycmlkZXMudGhlbWVzLFxuXHRcdFx0cHJvamVjdEJhc2VEaXIsXG5cdFx0KTtcblxuXHRcdGFkZFJlc291cmNlcyhcblx0XHRcdFwiZXh0ZW5zaW9uc1wiLFxuXHRcdFx0Y29sbGVjdEF1dG9FeHRlbnNpb25FbnRyaWVzKHVzZXJEaXJzLmV4dGVuc2lvbnMpLFxuXHRcdFx0dXNlck1ldGFkYXRhLFxuXHRcdFx0dXNlck92ZXJyaWRlcy5leHRlbnNpb25zLFxuXHRcdFx0Z2xvYmFsQmFzZURpcixcblx0XHQpO1xuXHRcdGFkZFJlc291cmNlcyhcblx0XHRcdFwic2tpbGxzXCIsXG5cdFx0XHRbLi4uY29sbGVjdEF1dG9Ta2lsbEVudHJpZXModXNlckRpcnMuc2tpbGxzLCBcInBpXCIpLCAuLi5jb2xsZWN0QXV0b1NraWxsRW50cmllcyh1c2VyQWdlbnRzU2tpbGxzRGlyLCBcImFnZW50c1wiKV0sXG5cdFx0XHR1c2VyTWV0YWRhdGEsXG5cdFx0XHR1c2VyT3ZlcnJpZGVzLnNraWxscyxcblx0XHRcdGdsb2JhbEJhc2VEaXIsXG5cdFx0KTtcblx0XHRhZGRSZXNvdXJjZXMoXG5cdFx0XHRcInByb21wdHNcIixcblx0XHRcdGNvbGxlY3RBdXRvUHJvbXB0RW50cmllcyh1c2VyRGlycy5wcm9tcHRzKSxcblx0XHRcdHVzZXJNZXRhZGF0YSxcblx0XHRcdHVzZXJPdmVycmlkZXMucHJvbXB0cyxcblx0XHRcdGdsb2JhbEJhc2VEaXIsXG5cdFx0KTtcblx0XHRhZGRSZXNvdXJjZXMoXG5cdFx0XHRcInRoZW1lc1wiLFxuXHRcdFx0Y29sbGVjdEF1dG9UaGVtZUVudHJpZXModXNlckRpcnMudGhlbWVzKSxcblx0XHRcdHVzZXJNZXRhZGF0YSxcblx0XHRcdHVzZXJPdmVycmlkZXMudGhlbWVzLFxuXHRcdFx0Z2xvYmFsQmFzZURpcixcblx0XHQpO1xuXHR9XG5cblx0cHJpdmF0ZSBjb2xsZWN0RmlsZXNGcm9tUGF0aHMocGF0aHM6IHN0cmluZ1tdLCByZXNvdXJjZVR5cGU6IFJlc291cmNlVHlwZSk6IHN0cmluZ1tdIHtcblx0XHRjb25zdCBmaWxlczogc3RyaW5nW10gPSBbXTtcblx0XHRmb3IgKGNvbnN0IHAgb2YgcGF0aHMpIHtcblx0XHRcdGlmICghZXhpc3RzU3luYyhwKSkgY29udGludWU7XG5cblx0XHRcdHRyeSB7XG5cdFx0XHRcdGNvbnN0IHN0YXRzID0gc3RhdFN5bmMocCk7XG5cdFx0XHRcdGlmIChzdGF0cy5pc0ZpbGUoKSkge1xuXHRcdFx0XHRcdGZpbGVzLnB1c2gocCk7XG5cdFx0XHRcdH0gZWxzZSBpZiAoc3RhdHMuaXNEaXJlY3RvcnkoKSkge1xuXHRcdFx0XHRcdGZpbGVzLnB1c2goLi4uY29sbGVjdFJlc291cmNlRmlsZXMocCwgcmVzb3VyY2VUeXBlKSk7XG5cdFx0XHRcdH1cblx0XHRcdH0gY2F0Y2gge1xuXHRcdFx0XHQvLyBJZ25vcmUgZXJyb3JzXG5cdFx0XHR9XG5cdFx0fVxuXHRcdHJldHVybiBmaWxlcztcblx0fVxuXG5cdHByaXZhdGUgZ2V0VGFyZ2V0TWFwKFxuXHRcdGFjY3VtdWxhdG9yOiBSZXNvdXJjZUFjY3VtdWxhdG9yLFxuXHRcdHJlc291cmNlVHlwZTogUmVzb3VyY2VUeXBlLFxuXHQpOiBNYXA8c3RyaW5nLCB7IG1ldGFkYXRhOiBQYXRoTWV0YWRhdGE7IGVuYWJsZWQ6IGJvb2xlYW4gfT4ge1xuXHRcdHN3aXRjaCAocmVzb3VyY2VUeXBlKSB7XG5cdFx0XHRjYXNlIFwiZXh0ZW5zaW9uc1wiOlxuXG5bMTc1IG1vcmUgbGluZXMgaW4gZmlsZS4gVXNlIG9mZnNldD0yMjcwIHRvIGNvbnRpbnVlLl0ifV0sImlzRXJyb3IiOmZhbHNlLCJ0aW1lc3RhbXAiOjE3Nzc1MzU4MjE3Mzd9fSx7InR5cGUiOiJtZXNzYWdlIiwiaWQiOiIzMjZkNmFhNCIsInBhcmVudElkIjoiMDk5OGEwODMiLCJ0aW1lc3RhbXAiOiIyMDI2LTA0LTMwVDA3OjU3OjA0LjA4NFoiLCJtZXNzYWdlIjp7InJvbGUiOiJhc3Npc3RhbnQiLCJjb250ZW50IjpbeyJ0eXBlIjoidG9vbENhbGwiLCJpZCI6ImNhbGxfZGY5N2RyWloyejJEaDlKN29wSVBYbWlBfGZjXzAyN2YxZWExNWRlZjM1MDUwMTY5ZjMwYjRmNjA1YzgxOTE5ODQwZTgwOTEwNTM5MmVmIiwibmFtZSI6ImdyZXAiLCJhcmd1bWVudHMiOnsicGF0dGVybiI6ImludGVyZmFjZSBQYXRoTWV0YWRhdGF8dHlwZSBQYXRoTWV0YWRhdGF8Y29uc3QgdXNlck1ldGFkYXRhfGNvbnN0IHByb2plY3RNZXRhZGF0YSIsInBhdGgiOiJwYWNrYWdlcy9jb2RpbmctYWdlbnQvc3JjL2NvcmUvcGFja2FnZS1tYW5hZ2VyLnRzIiwiZ2xvYiI6IioudHMiLCJjb250ZXh0Ijo0fX1dLCJhcGkiOiJvcGVuYWktY29kZXgtcmVzcG9uc2VzIiwicHJvdmlkZXIiOiJvcGVuYWktY29kZXgiLCJtb2RlbCI6ImdwdC01LjUiLCJ1c2FnZSI6eyJpbnB1dCI6MTE0OSwib3V0cHV0Ijo1MywiY2FjaGVSZWFkIjoxMjgwMCwiY2FjaGVXcml0ZSI6MCwidG90YWxUb2tlbnMiOjE0MDAyLCJjb3N0Ijp7ImlucHV0IjowLjAwNTc0NSwib3V0cHV0IjowLjAwMTU5LCJjYWNoZVJlYWQiOjAuMDA2Mzk5OTk5OTk5OTk5OTk5NCwiY2FjaGVXcml0ZSI6MCwidG90YWwiOjAuMDEzNzM1fX0sInN0b3BSZWFzb24iOiJ0b29sVXNlIiwidGltZXN0YW1wIjoxNzc3NTM1ODIxNzM4LCJyZXNwb25zZUlkIjoicmVzcF8wMjdmMWVhMTVkZWYzNTA1MDE2OWYzMGI0ZTM2MGM4MTkxYjg1MDlhOWExYjI3NzJlZSJ9fSx7InR5cGUiOiJtZXNzYWdlIiwiaWQiOiI2MjI5OTExZCIsInBhcmVudElkIjoiMzI2ZDZhYTQiLCJ0aW1lc3RhbXAiOiIyMDI2LTA0LTMwVDA3OjU3OjA0LjA5MloiLCJtZXNzYWdlIjp7InJvbGUiOiJ0b29sUmVzdWx0IiwidG9vbENhbGxJZCI6ImNhbGxfZGY5N2RyWloyejJEaDlKN29wSVBYbWlBfGZjXzAyN2YxZWExNWRlZjM1MDUwMTY5ZjMwYjRmNjA1YzgxOTE5ODQwZTgwOTEwNTM5MmVmIiwidG9vbE5hbWUiOiJncmVwIiwiY29udGVudCI6W3sidHlwZSI6InRleHQiLCJ0ZXh0IjoicGFja2FnZS1tYW5hZ2VyLnRzOjQyOiAgIGlmICghdmFsdWUpIHJldHVybiBmYWxzZTtcbnBhY2thZ2UtbWFuYWdlci50czo0MzogICByZXR1cm4gdmFsdWUgPT09IFwiMVwiIHx8IHZhbHVlLnRvTG93ZXJDYXNlKCkgPT09IFwidHJ1ZVwiIHx8IHZhbHVlLnRvTG93ZXJDYXNlKCkgPT09IFwieWVzXCI7XG5wYWNrYWdlLW1hbmFnZXIudHM6NDQ6ICAgfVxucGFja2FnZS1tYW5hZ2VyLnRzOjQ1OiAgIFxucGFja2FnZS1tYW5hZ2VyLnRzOjQ2OiBleHBvcnQgaW50ZXJmYWNlIFBhdGhNZXRhZGF0YSB7XG5wYWNrYWdlLW1hbmFnZXIudHM6NDc6ICAgc291cmNlOiBzdHJpbmc7XG5wYWNrYWdlLW1hbmFnZXIudHM6NDg6ICAgc2NvcGU6IFNvdXJjZVNjb3BlO1xucGFja2FnZS1tYW5hZ2VyLnRzOjQ5OiAgIG9yaWdpbjogXCJwYWNrYWdlXCIgfCBcInRvcC1sZXZlbFwiO1xucGFja2FnZS1tYW5hZ2VyLnRzOjUwOiAgIGJhc2VEaXI/OiBzdHJpbmc7XG5wYWNrYWdlLW1hbmFnZXIudHM6MjEyMjogICBwcm9qZWN0U2V0dGluZ3M6IFJldHVyblR5cGU8U2V0dGluZ3NNYW5hZ2VyW1wiZ2V0UHJvamVjdFNldHRpbmdzXCJdPixcbnBhY2thZ2UtbWFuYWdlci50czoyMTIzOiAgIGdsb2JhbEJhc2VEaXI6IHN0cmluZyxcbnBhY2thZ2UtbWFuYWdlci50czoyMTI0OiAgIHByb2plY3RCYXNlRGlyOiBzdHJpbmcsXG5wYWNrYWdlLW1hbmFnZXIudHM6MjEyNTogICApOiB2b2lkIHtcbnBhY2thZ2UtbWFuYWdlci50czoyMTI2OiBjb25zdCB1c2VyTWV0YWRhdGE6IFBhdGhNZXRhZGF0YSA9IHtcbnBhY2thZ2UtbWFuYWdlci50czoyMTI3OiAgIHNvdXJjZTogXCJhdXRvXCIsXG5wYWNrYWdlLW1hbmFnZXIudHM6MjEyODogICBzY29wZTogXCJ1c2VyXCIsXG5wYWNrYWdlLW1hbmFnZXIudHM6MjEyOTogICBvcmlnaW46IFwidG9wLWxldmVsXCIsXG5wYWNrYWdlLW1hbmFnZXIudHM6MjEzMDogICBiYXNlRGlyOiBnbG9iYWxCYXNlRGlyLFxucGFja2FnZS1tYW5hZ2VyLnRzOjIxMjg6ICAgc2NvcGU6IFwidXNlclwiLFxucGFja2FnZS1tYW5hZ2VyLnRzOjIxMjk6ICAgb3JpZ2luOiBcInRvcC1sZXZlbFwiLFxucGFja2FnZS1tYW5hZ2VyLnRzOjIxMzA6ICAgYmFzZURpcjogZ2xvYmFsQmFzZURpcixcbnBhY2thZ2UtbWFuYWdlci50czoyMTMxOiAgIH07XG5wYWNrYWdlLW1hbmFnZXIudHM6MjEzMjogY29uc3QgcHJvamVjdE1ldGFkYXRhOiBQYXRoTWV0YWRhdGEgPSB7XG5wYWNrYWdlLW1hbmFnZXIudHM6MjEzMzogICBzb3VyY2U6IFwiYXV0b1wiLFxucGFja2FnZS1tYW5hZ2VyLnRzOjIxMzQ6ICAgc2NvcGU6IFwicHJvamVjdFwiLFxucGFja2FnZS1tYW5hZ2VyLnRzOjIxMzU6ICAgb3JpZ2luOiBcInRvcC1sZXZlbFwiLFxucGFja2FnZS1tYW5hZ2VyLnRzOjIxMzY6ICAgYmFzZURpcjogcHJvamVjdEJhc2VEaXIsIn1dLCJkZXRhaWxzIjp7Im1hdGNoQ291bnQiOjMsIm1hdGNoZXMiOlt7InBhdGgiOiJwYWNrYWdlLW1hbmFnZXIudHMiLCJsaW5lIjo0MiwidGV4dCI6IiAgaWYgKCF2YWx1ZSkgcmV0dXJuIGZhbHNlOyJ9LHsicGF0aCI6InBhY2thZ2UtbWFuYWdlci50cyIsImxpbmUiOjQzLCJ0ZXh0IjoiICByZXR1cm4gdmFsdWUgPT09IFwiMVwiIHx8IHZhbHVlLnRvTG93ZXJDYXNlKCkgPT09IFwidHJ1ZVwiIHx8IHZhbHVlLnRvTG93ZXJDYXNlKCkgPT09IFwieWVzXCI7In0seyJwYXRoIjoicGFja2FnZS1tYW5hZ2VyLnRzIiwibGluZSI6NDQsInRleHQiOiIgIH0ifSx7InBhdGgiOiJwYWNrYWdlLW1hbmFnZXIudHMiLCJsaW5lIjo0NSwidGV4dCI6IiAgIn0seyJwYXRoIjoicGFja2FnZS1tYW5hZ2VyLnRzIiwibGluZSI6NDYsInRleHQiOiJleHBvcnQgaW50ZXJmYWNlIFBhdGhNZXRhZGF0YSB7In0seyJwYXRoIjoicGFja2FnZS1tYW5hZ2VyLnRzIiwibGluZSI6NDcsInRleHQiOiIgIHNvdXJjZTogc3RyaW5nOyJ9LHsicGF0aCI6InBhY2thZ2UtbWFuYWdlci50cyIsImxpbmUiOjQ4LCJ0ZXh0IjoiICBzY29wZTogU291cmNlU2NvcGU7In0seyJwYXRoIjoicGFja2FnZS1tYW5hZ2VyLnRzIiwibGluZSI6NDksInRleHQiOiIgIG9yaWdpbjogXCJwYWNrYWdlXCIgfCBcInRvcC1sZXZlbFwiOyJ9LHsicGF0aCI6InBhY2thZ2UtbWFuYWdlci50cyIsImxpbmUiOjUwLCJ0ZXh0IjoiICBiYXNlRGlyPzogc3RyaW5nOyJ9LHsicGF0aCI6InBhY2thZ2UtbWFuYWdlci50cyIsImxpbmUiOjIxMjIsInRleHQiOiIgIHByb2plY3RTZXR0aW5nczogUmV0dXJuVHlwZTxTZXR0aW5nc01hbmFnZXJbXCJnZXRQcm9qZWN0U2V0dGluZ3NcIl0+LCJ9LHsicGF0aCI6InBhY2thZ2UtbWFuYWdlci50cyIsImxpbmUiOjIxMjMsInRleHQiOiIgIGdsb2JhbEJhc2VEaXI6IHN0cmluZywifSx7InBhdGgiOiJwYWNrYWdlLW1hbmFnZXIudHMiLCJsaW5lIjoyMTI0LCJ0ZXh0IjoiICBwcm9qZWN0QmFzZURpcjogc3RyaW5nLCJ9LHsicGF0aCI6InBhY2thZ2UtbWFuYWdlci50cyIsImxpbmUiOjIxMjUsInRleHQiOiIgICk6IHZvaWQgeyJ9LHsicGF0aCI6InBhY2thZ2UtbWFuYWdlci50cyIsImxpbmUiOjIxMjYsInRleHQiOiJjb25zdCB1c2VyTWV0YWRhdGE6IFBhdGhNZXRhZGF0YSA9IHsifSx7InBhdGgiOiJwYWNrYWdlLW1hbmFnZXIudHMiLCJsaW5lIjoyMTI3LCJ0ZXh0IjoiICBzb3VyY2U6IFwiYXV0b1wiLCJ9LHsicGF0aCI6InBhY2thZ2UtbWFuYWdlci50cyIsImxpbmUiOjIxMjgsInRleHQiOiIgIHNjb3BlOiBcInVzZXJcIiwifSx7InBhdGgiOiJwYWNrYWdlLW1hbmFnZXIudHMiLCJsaW5lIjoyMTI5LCJ0ZXh0IjoiICBvcmlnaW46IFwidG9wLWxldmVsXCIsIn0seyJwYXRoIjoicGFja2FnZS1tYW5hZ2VyLnRzIiwibGluZSI6MjEzMCwidGV4dCI6IiAgYmFzZURpcjogZ2xvYmFsQmFzZURpciwifSx7InBhdGgiOiJwYWNrYWdlLW1hbmFnZXIudHMiLCJsaW5lIjoyMTI4LCJ0ZXh0IjoiICBzY29wZTogXCJ1c2VyXCIsIn0seyJwYXRoIjoicGFja2FnZS1tYW5hZ2VyLnRzIiwibGluZSI6MjEyOSwidGV4dCI6IiAgb3JpZ2luOiBcInRvcC1sZXZlbFwiLCJ9LHsicGF0aCI6InBhY2thZ2UtbWFuYWdlci50cyIsImxpbmUiOjIxMzAsInRleHQiOiIgIGJhc2VEaXI6IGdsb2JhbEJhc2VEaXIsIn0seyJwYXRoIjoicGFja2FnZS1tYW5hZ2VyLnRzIiwibGluZSI6MjEzMSwidGV4dCI6IiAgfTsifSx7InBhdGgiOiJwYWNrYWdlLW1hbmFnZXIudHMiLCJsaW5lIjoyMTMyLCJ0ZXh0IjoiY29uc3QgcHJvamVjdE1ldGFkYXRhOiBQYXRoTWV0YWRhdGEgPSB7In0seyJwYXRoIjoicGFja2FnZS1tYW5hZ2VyLnRzIiwibGluZSI6MjEzMywidGV4dCI6IiAgc291cmNlOiBcImF1dG9cIiwifSx7InBhdGgiOiJwYWNrYWdlLW1hbmFnZXIudHMiLCJsaW5lIjoyMTM0LCJ0ZXh0IjoiICBzY29wZTogXCJwcm9qZWN0XCIsIn0seyJwYXRoIjoicGFja2FnZS1tYW5hZ2VyLnRzIiwibGluZSI6MjEzNSwidGV4dCI6IiAgb3JpZ2luOiBcInRvcC1sZXZlbFwiLCJ9LHsicGF0aCI6InBhY2thZ2UtbWFuYWdlci50cyIsImxpbmUiOjIxMzYsInRleHQiOiIgIGJhc2VEaXI6IHByb2plY3RCYXNlRGlyLCJ9XX0sImlzRXJyb3IiOmZhbHNlLCJ0aW1lc3RhbXAiOjE3Nzc1MzU4MjQwOTJ9fSx7InR5cGUiOiJtZXNzYWdlIiwiaWQiOiJjNjY1MGY4MyIsInBhcmVudElkIjoiNjIyOTkxMWQiLCJ0aW1lc3RhbXAiOiIyMDI2LTA0LTMwVDA3OjU3OjA3LjE4OVoiLCJtZXNzYWdlIjp7InJvbGUiOiJhc3Npc3RhbnQiLCJjb250ZW50IjpbeyJ0eXBlIjoidG9vbENhbGwiLCJpZCI6ImNhbGxfdURwNU5VbDBNdkJuRTN4SUpTVmRVZk9ufGZjXzAyN2YxZWExNWRlZjM1MDUwMTY5ZjMwYjUxYjZlNDgxOTE4ZjM5MTE1MDIxYmIyNjc0IiwibmFtZSI6InJlYWQiLCJhcmd1bWVudHMiOnsicGF0aCI6InBhY2thZ2VzL2NvZGluZy1hZ2VudC9zcmMvY29yZS9wYWNrYWdlLW1hbmFnZXIudHMiLCJvZmZzZXQiOjEsImxpbWl0Ijo3MH19XSwiYXBpIjoib3BlbmFpLWNvZGV4LXJlc3BvbnNlcyIsInByb3ZpZGVyIjoib3BlbmFpLWNvZGV4IiwibW9kZWwiOiJncHQtNS41IiwidXNhZ2UiOnsiaW5wdXQiOjU2Niwib3V0cHV0IjozMywiY2FjaGVSZWFkIjoxMzgyNCwiY2FjaGVXcml0ZSI6MCwidG90YWxUb2tlbnMiOjE0NDIzLCJjb3N0Ijp7ImlucHV0IjowLjAwMjgzLCJvdXRwdXQiOjAuMDAwOTksImNhY2hlUmVhZCI6MC4wMDY5MTIsImNhY2hlV3JpdGUiOjAsInRvdGFsIjowLjAxMDczMn19LCJzdG9wUmVhc29uIjoidG9vbFVzZSIsInRpbWVzdGFtcCI6MTc3NzUzNTgyNDA5MiwicmVzcG9uc2VJZCI6InJlc3BfMDI3ZjFlYTE1ZGVmMzUwNTAxNjlmMzBiNTA5ZTA4ODE5MWFjZjBlYzkzZjE4MWYxMzIifX0seyJ0eXBlIjoibWVzc2FnZSIsImlkIjoiOGI0ZWNlZTUiLCJwYXJlbnRJZCI6ImM2NjUwZjgzIiwidGltZXN0YW1wIjoiMjAyNi0wNC0zMFQwNzo1NzowNy4xOTJaIiwibWVzc2FnZSI6eyJyb2xlIjoidG9vbFJlc3VsdCIsInRvb2xDYWxsSWQiOiJjYWxsX3VEcDVOVWwwTXZCbkUzeElKU1ZkVWZPbnxmY18wMjdmMWVhMTVkZWYzNTA1MDE2OWYzMGI1MWI2ZTQ4MTkxOGYzOTExNTAyMWJiMjY3NCIsInRvb2xOYW1lIjoicmVhZCIsImNvbnRlbnQiOlt7InR5cGUiOiJ0ZXh0IiwidGV4dCI6ImltcG9ydCB7IHR5cGUgQ2hpbGRQcm9jZXNzLCB0eXBlIENoaWxkUHJvY2Vzc0J5U3RkaW8sIHNwYXduLCBzcGF3blN5bmMgfSBmcm9tIFwibm9kZTpjaGlsZF9wcm9jZXNzXCI7XG5pbXBvcnQgeyBjcmVhdGVIYXNoIH0gZnJvbSBcIm5vZGU6Y3J5cHRvXCI7XG5pbXBvcnQgeyBleGlzdHNTeW5jLCBta2RpclN5bmMsIHJlYWRkaXJTeW5jLCByZWFkRmlsZVN5bmMsIHJtU3luYywgc3RhdFN5bmMsIHdyaXRlRmlsZVN5bmMgfSBmcm9tIFwibm9kZTpmc1wiO1xuaW1wb3J0IHsgaG9tZWRpciwgdG1wZGlyIH0gZnJvbSBcIm5vZGU6b3NcIjtcblxuZnVuY3Rpb24gZ2V0RW52KCk6IE5vZGVKUy5Qcm9jZXNzRW52IHtcblx0aWYgKHByb2Nlc3MucGxhdGZvcm0gIT09IFwibGludXhcIiB8fCBPYmplY3Qua2V5cyhwcm9jZXNzLmVudikubGVuZ3RoID4gMCkge1xuXHRcdHJldHVybiBwcm9jZXNzLmVudjtcblx0fVxuXHR0cnkge1xuXHRcdGNvbnN0IGRhdGEgPSByZWFkRmlsZVN5bmMoXCIvcHJvYy9zZWxmL2Vudmlyb25cIiwgXCJ1dGYtOFwiKTtcblx0XHRjb25zdCBlbnY6IE5vZGVKUy5Qcm9jZXNzRW52ID0ge307XG5cdFx0Zm9yIChjb25zdCBlbnRyeSBvZiBkYXRhLnNwbGl0KFwiXFwwXCIpKSB7XG5cdFx0XHRjb25zdCBpZHggPSBlbnRyeS5pbmRleE9mKFwiPVwiKTtcblx0XHRcdGlmIChpZHggPiAwKSB7XG5cdFx0XHRcdGVudltlbnRyeS5zbGljZSgwLCBpZHgpXSA9IGVudHJ5LnNsaWNlKGlkeCArIDEpO1xuXHRcdFx0fVxuXHRcdH1cblx0XHRyZXR1cm4gZW52O1xuXHR9IGNhdGNoIHtcblx0XHRyZXR1cm4gcHJvY2Vzcy5lbnY7XG5cdH1cbn1cblxuaW1wb3J0IHsgYmFzZW5hbWUsIGRpcm5hbWUsIGpvaW4sIHJlbGF0aXZlLCByZXNvbHZlLCBzZXAgfSBmcm9tIFwibm9kZTpwYXRoXCI7XG5pbXBvcnQgdHlwZSB7IFJlYWRhYmxlIH0gZnJvbSBcIm5vZGU6c3RyZWFtXCI7XG5pbXBvcnQgeyBnbG9iU3luYyB9IGZyb20gXCJnbG9iXCI7XG5pbXBvcnQgaWdub3JlIGZyb20gXCJpZ25vcmVcIjtcbmltcG9ydCB7IG1pbmltYXRjaCB9IGZyb20gXCJtaW5pbWF0Y2hcIjtcbmltcG9ydCB7IENPTkZJR19ESVJfTkFNRSwgaXNCdW5SdW50aW1lIH0gZnJvbSBcIi4uL2NvbmZpZy5qc1wiO1xuaW1wb3J0IHsgdHlwZSBHaXRTb3VyY2UsIHBhcnNlR2l0VXJsIH0gZnJvbSBcIi4uL3V0aWxzL2dpdC5qc1wiO1xuaW1wb3J0IHsgY2Fub25pY2FsaXplUGF0aCwgaXNMb2NhbFBhdGggfSBmcm9tIFwiLi4vdXRpbHMvcGF0aHMuanNcIjtcbmltcG9ydCB7IGlzU3Rkb3V0VGFrZW5PdmVyIH0gZnJvbSBcIi4vb3V0cHV0LWd1YXJkLmpzXCI7XG5pbXBvcnQgdHlwZSB7IFBhY2thZ2VTb3VyY2UsIFNldHRpbmdzTWFuYWdlciB9IGZyb20gXCIuL3NldHRpbmdzLW1hbmFnZXIuanNcIjtcblxuY29uc3QgTkVUV09SS19USU1FT1VUX01TID0gMTAwMDA7XG5jb25zdCBVUERBVEVfQ0hFQ0tfQ09OQ1VSUkVOQ1kgPSA0O1xuY29uc3QgR0lUX1VQREFURV9DT05DVVJSRU5DWSA9IDQ7XG5cbmZ1bmN0aW9uIGlzT2ZmbGluZU1vZGVFbmFibGVkKCk6IGJvb2xlYW4ge1xuXHRjb25zdCB2YWx1ZSA9IHByb2Nlc3MuZW52LlBJX09GRkxJTkU7XG5cdGlmICghdmFsdWUpIHJldHVybiBmYWxzZTtcblx0cmV0dXJuIHZhbHVlID09PSBcIjFcIiB8fCB2YWx1ZS50b0xvd2VyQ2FzZSgpID09PSBcInRydWVcIiB8fCB2YWx1ZS50b0xvd2VyQ2FzZSgpID09PSBcInllc1wiO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFBhdGhNZXRhZGF0YSB7XG5cdHNvdXJjZTogc3RyaW5nO1xuXHRzY29wZTogU291cmNlU2NvcGU7XG5cdG9yaWdpbjogXCJwYWNrYWdlXCIgfCBcInRvcC1sZXZlbFwiO1xuXHRiYXNlRGlyPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFJlc29sdmVkUmVzb3VyY2Uge1xuXHRwYXRoOiBzdHJpbmc7XG5cdGVuYWJsZWQ6IGJvb2xlYW47XG5cdG1ldGFkYXRhOiBQYXRoTWV0YWRhdGE7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUmVzb2x2ZWRQYXRocyB7XG5cdGV4dGVuc2lvbnM6IFJlc29sdmVkUmVzb3VyY2VbXTtcblx0c2tpbGxzOiBSZXNvbHZlZFJlc291cmNlW107XG5cdHByb21wdHM6IFJlc29sdmVkUmVzb3VyY2VbXTtcblx0dGhlbWVzOiBSZXNvbHZlZFJlc291cmNlW107XG59XG5cbmV4cG9ydCB0eXBlIE1pc3NpbmdTb3VyY2VBY3Rpb24gPSBcImluc3RhbGxcIiB8IFwic2tpcFwiIHwgXCJlcnJvclwiO1xuXG5leHBvcnQgaW50ZXJmYWNlIFByb2dyZXNzRXZlbnQge1xuXHR0eXBlOiBcInN0YXJ0XCIgfCBcInByb2dyZXNzXCIgfCBcImNvbXBsZXRlXCIgfCBcImVycm9yXCI7XG5cdGFjdGlvbjogXCJpbnN0YWxsXCIgfCBcInJlbW92ZVwiIHwgXCJ1cGRhdGVcIiB8IFwiY2xvbmVcIiB8IFwicHVsbFwiO1xuXG5bMjM3NCBtb3JlIGxpbmVzIGluIGZpbGUuIFVzZSBvZmZzZXQ9NzEgdG8gY29udGludWUuXSJ9XSwiaXNFcnJvciI6ZmFsc2UsInRpbWVzdGFtcCI6MTc3NzUzNTgyNzE5Mn19LHsidHlwZSI6Im1lc3NhZ2UiLCJpZCI6IjE4OTY5NGI3IiwicGFyZW50SWQiOiI4YjRlY2VlNSIsInRpbWVzdGFtcCI6IjIwMjYtMDQtMzBUMDc6NTc6MDkuMDcxWiIsIm1lc3NhZ2UiOnsicm9sZSI6ImFzc2lzdGFudCIsImNvbnRlbnQiOlt7InR5cGUiOiJ0b29sQ2FsbCIsImlkIjoiY2FsbF9PM1hZYzYzcnpIZ0dOazAwTGNseVYwQkR8ZmNfMDI3ZjFlYTE1ZGVmMzUwNTAxNjlmMzBiNTQ3ZWZjODE5MWE3N2IzMWM0NDBkZDhmMTUiLCJuYW1lIjoicmVhZCIsImFyZ3VtZW50cyI6eyJwYXRoIjoicGFja2FnZXMvY29kaW5nLWFnZW50L3NyYy9jb3JlL3BhY2thZ2UtbWFuYWdlci50cyIsIm9mZnNldCI6MjExOCwibGltaXQiOjI1fX1dLCJhcGkiOiJvcGVuYWktY29kZXgtcmVzcG9uc2VzIiwicHJvdmlkZXIiOiJvcGVuYWktY29kZXgiLCJtb2RlbCI6ImdwdC01LjUiLCJ1c2FnZSI6eyJpbnB1dCI6MTIwOCwib3V0cHV0IjozNCwiY2FjaGVSZWFkIjoxMzgyNCwiY2FjaGVXcml0ZSI6MCwidG90YWxUb2tlbnMiOjE1MDY2LCJjb3N0Ijp7ImlucHV0IjowLjAwNjA0LCJvdXRwdXQiOjAuMDAxMDIsImNhY2hlUmVhZCI6MC4wMDY5MTIsImNhY2hlV3JpdGUiOjAsInRvdGFsIjowLjAxMzk3Mn19LCJzdG9wUmVhc29uIjoidG9vbFVzZSIsInRpbWVzdGFtcCI6MTc3NzUzNTgyNzE5MywicmVzcG9uc2VJZCI6InJlc3BfMDI3ZjFlYTE1ZGVmMzUwNTAxNjlmMzBiNTNhMWFjODE5MTk0NmM2ZDQwODVjN2NmNDcifX0seyJ0eXBlIjoibWVzc2FnZSIsImlkIjoiN2NlODYxYjIiLCJwYXJlbnRJZCI6IjE4OTY5NGI3IiwidGltZXN0YW1wIjoiMjAyNi0wNC0zMFQwNzo1NzowOS4wNzRaIiwibWVzc2FnZSI6eyJyb2xlIjoidG9vbFJlc3VsdCIsInRvb2xDYWxsSWQiOiJjYWxsX08zWFljNjNyekhnR05rMDBMY2x5VjBCRHxmY18wMjdmMWVhMTVkZWYzNTA1MDE2OWYzMGI1NDdlZmM4MTkxYTc3YjMxYzQ0MGRkOGYxNSIsInRvb2xOYW1lIjoicmVhZCIsImNvbnRlbnQiOlt7InR5cGUiOiJ0ZXh0IiwidGV4dCI6IlxuXHRwcml2YXRlIGFkZEF1dG9EaXNjb3ZlcmVkUmVzb3VyY2VzKFxuXHRcdGFjY3VtdWxhdG9yOiBSZXNvdXJjZUFjY3VtdWxhdG9yLFxuXHRcdGdsb2JhbFNldHRpbmdzOiBSZXR1cm5UeXBlPFNldHRpbmdzTWFuYWdlcltcImdldEdsb2JhbFNldHRpbmdzXCJdPixcblx0XHRwcm9qZWN0U2V0dGluZ3M6IFJldHVyblR5cGU8U2V0dGluZ3NNYW5hZ2VyW1wiZ2V0UHJvamVjdFNldHRpbmdzXCJdPixcblx0XHRnbG9iYWxCYXNlRGlyOiBzdHJpbmcsXG5cdFx0cHJvamVjdEJhc2VEaXI6IHN0cmluZyxcblx0KTogdm9pZCB7XG5cdFx0Y29uc3QgdXNlck1ldGFkYXRhOiBQYXRoTWV0YWRhdGEgPSB7XG5cdFx0XHRzb3VyY2U6IFwiYXV0b1wiLFxuXHRcdFx0c2NvcGU6IFwidXNlclwiLFxuXHRcdFx0b3JpZ2luOiBcInRvcC1sZXZlbFwiLFxuXHRcdFx0YmFzZURpcjogZ2xvYmFsQmFzZURpcixcblx0XHR9O1xuXHRcdGNvbnN0IHByb2plY3RNZXRhZGF0YTogUGF0aE1ldGFkYXRhID0ge1xuXHRcdFx0c291cmNlOiBcImF1dG9cIixcblx0XHRcdHNjb3BlOiBcInByb2plY3RcIixcblx0XHRcdG9yaWdpbjogXCJ0b3AtbGV2ZWxcIixcblx0XHRcdGJhc2VEaXI6IHByb2plY3RCYXNlRGlyLFxuXHRcdH07XG5cblx0XHRjb25zdCB1c2VyT3ZlcnJpZGVzID0ge1xuXHRcdFx0ZXh0ZW5zaW9uczogKGdsb2JhbFNldHRpbmdzLmV4dGVuc2lvbnMgPz8gW10pIGFzIHN0cmluZ1tdLFxuXHRcdFx0c2tpbGxzOiAoZ2xvYmFsU2V0dGluZ3Muc2tpbGxzID8/IFtdKSBhcyBzdHJpbmdbXSxcblx0XHRcdHByb21wdHM6IChnbG9iYWxTZXR0aW5ncy5wcm9tcHRzID8/IFtdKSBhcyBzdHJpbmdbXSxcblxuWzMwMiBtb3JlIGxpbmVzIGluIGZpbGUuIFVzZSBvZmZzZXQ9MjE0MyB0byBjb250aW51ZS5dIn1dLCJpc0Vycm9yIjpmYWxzZSwidGltZXN0YW1wIjoxNzc3NTM1ODI5MDc0fX0seyJ0eXBlIjoibWVzc2FnZSIsImlkIjoiZDJjMzZhMWIiLCJwYXJlbnRJZCI6IjdjZTg2MWIyIiwidGltZXN0YW1wIjoiMjAyNi0wNC0zMFQwNzo1NzoxMi4zNjZaIiwibWVzc2FnZSI6eyJyb2xlIjoiYXNzaXN0YW50IiwiY29udGVudCI6W3sidHlwZSI6InRoaW5raW5nIiwidGhpbmtpbmciOiIqKlVuZGVyc3RhbmRpbmcgY29uZmlnIGRpcmVjdG9yaWVzKipcblxuSSBuZWVkIHRvIGZpZ3VyZSBvdXQgdGhlIGNvbmZpZyBkaXJlY3Rvcmllcy4gSXQgc2VlbXMgbGlrZSB0aGUgQ09ORklHX0RJUl9OQU1FIG1pZ2h0IGJlIHNvbWV0aGluZyBsaWtlIFwiLnBpL2FnZW50LlwiIEknbSBjdXJpb3VzIGlmIHRoYXQgZ2l2ZXMgbWUgYSBzdGFydGluZyBwb2ludCBmb3Igb3JnYW5pemluZyBvciBtYW5hZ2luZyBjb25maWd1cmF0aW9ucy4gSSB3YW50IHRvIGJlIHN1cmUgSSdtIGludGVycHJldGluZyB0aGlzIGNvcnJlY3RseSwgc28gSSdsbCBkaWcgYSBsaXR0bGUgZGVlcGVyIGludG8gd2hhdCB0aGUgZGlyZWN0b3JpZXMgc2hvdWxkIGNvbnRhaW4gYW5kIGhvdyB0aGV5IGNvdWxkIGFmZmVjdCBteSBvdmVyYWxsIGZ1bmN0aW9uLiBJdCdzIGFsbCBhIGJpdCBjb25mdXNpbmcsIGJ1dCBJJ20gZGV0ZXJtaW5lZCB0byBnZXQgaXQgcmlnaHQuIiwidGhpbmtpbmdTaWduYXR1cmUiOiJ7XCJpZFwiOlwicnNfMDI3ZjFlYTE1ZGVmMzUwNTAxNjlmMzBiNTY2N2VjODE5MTg3OWY0NjQ1Yzk5NjI5NTdcIixcInR5cGVcIjpcInJlYXNvbmluZ1wiLFwiZW5jcnlwdGVkX2NvbnRlbnRcIjpcImdBQUFBQUJwOHd0WV9PVFZDYmo0cDRUTEdIOGx3UThnejJrcE5Kc3EwTzFvcVdvTEJfZGZhcGtBU2pUUGdldWNoVkNUcnRwRWVYcjRZbk92V3ZYdUhmU1V1aTQ1UWpXZzdFb21jRkNDekhBN3gxRkl2RXpIekJ0LUNsRWZtQ2xXenRzZnEzdURUV2NFS3FUbFgyTFNMbTV1TXhybTUzeDRCdTk0LW1paC1NWWtZT3o5R3lkT2dyazk5cm1BRGpBVTFKWlU1Sk51VmFFZVFHbTJhQ053al9DNWRSVW02c0FsMHhBMTkxT2xYZWpUQ0JJellyRm5NQW1hQnRrbzRORFkyZWJqTlRJUU1yQzZGckJpMVItMDQ0Y1N6RElMRGpVY1FIdGdQaWVsVjkxZG5mRy01dnljeE9EalFteWYxQVdQb213dWVaY0t2WXJDbkR1dzlhVm4yZmlzMk9BajBxOFdNWGpWYy15YWhIZ1hSUENEX2xjVFNYbm1VbmZWYVprWDhiYlVKbXZuT3pEb3NxM2dfMkNiSjFGbThmMzdlMFBLaUdqdUY5bGc3dDhGd3lTMkFVTW1PdHJhTHhsLXZhS2NCY1ltNDZ1OEN2U1RMbFZyeFdPQjJfeFBDaUw1RmliMTFfcVNRYkMtM1ZsMkhvY1dkY0ltT3psQ2lPdVUtSEVyT09VaDFDQlFRMzRBTnJSMkwzQ0k5U2NzbHNrY3RrZXVtSXlvcEktSnJucERTRGo0c3NuX2NPaUFVTktTMG8tdWhPUTVENmltUmdUZENPTnpxSkc4UTFtQWdlX0VBSDk2UWNGWWFuOEZFUXZYUjZ0VUVrOFJYMm5WUlBva0NIdEVWakFZaEtRYkhqU1FOU182Njk2Nm9qcWx0TV9DSEh2QzBJeFVPVDVqSmZkc1ktNVBZVXplMnktY241MnRjR2JEMl9xUElUMlNJSVg0TkUwN2F3NV9UbkNUVUtwSzZVbGRzV3pXQXIyR002U3lfREJNZTFxWjlUS25TdTMtcEVORk95VzEtYkxWbkpFZHJiX2xNcjBjZEtsRnh0NUZ0YlF4Nm41WkNyY0dzZkFvSHppSlpweTBpVnNVODZmekNMbEtLaXZtMHB2WVFkMS1oX2d3WkE4QmczMHVpQ3JFRDM0UzlTcUx0V3ZDaEh6QW5GZ1ZyQlVSV3k3RGJRaDFEMXpWNWlKNEVwdGgtbkl6aHl4LVM4TkY2RHFucW5SQXNIXzYxR053ckVHNk1ERjdYWTlSMmpXTm9WWEFyV2ZVZ3N2TDNWTkdHUDhlSFphNXFMMENIZ19RUWNWT0V1YjZYT2tQV2NaT1hORE5yeUFaY1NjNVRpUXp4Q3c9XCIsXCJzdW1tYXJ5XCI6W3tcInR5cGVcIjpcInN1bW1hcnlfdGV4dFwiLFwidGV4dFwiOlwiKipVbmRlcnN0YW5kaW5nIGNvbmZpZyBkaXJlY3RvcmllcyoqXFxuXFxuSSBuZWVkIHRvIGZpZ3VyZSBvdXQgdGhlIGNvbmZpZyBkaXJlY3Rvcmllcy4gSXQgc2VlbXMgbGlrZSB0aGUgQ09ORklHX0RJUl9OQU1FIG1pZ2h0IGJlIHNvbWV0aGluZyBsaWtlIFxcXCIucGkvYWdlbnQuXFxcIiBJJ20gY3VyaW91cyBpZiB0aGF0IGdpdmVzIG1lIGEgc3RhcnRpbmcgcG9pbnQgZm9yIG9yZ2FuaXppbmcgb3IgbWFuYWdpbmcgY29uZmlndXJhdGlvbnMuIEkgd2FudCB0byBiZSBzdXJlIEknbSBpbnRlcnByZXRpbmcgdGhpcyBjb3JyZWN0bHksIHNvIEknbGwgZGlnIGEgbGl0dGxlIGRlZXBlciBpbnRvIHdoYXQgdGhlIGRpcmVjdG9yaWVzIHNob3VsZCBjb250YWluIGFuZCBob3cgdGhleSBjb3VsZCBhZmZlY3QgbXkgb3ZlcmFsbCBmdW5jdGlvbi4gSXQncyBhbGwgYSBiaXQgY29uZnVzaW5nLCBidXQgSSdtIGRldGVybWluZWQgdG8gZ2V0IGl0IHJpZ2h0LlwifV19In0seyJ0eXBlIjoidG9vbENhbGwiLCJpZCI6ImNhbGxfSlMzSTFSMVV6WFdSMVdlQ01kemI3NUV5fGZjXzAyN2YxZWExNWRlZjM1MDUwMTY5ZjMwYjU4MGI5ODgxOTE4YTdiOWI3ZTIyZmY3ODdmIiwibmFtZSI6InJlYWQiLCJhcmd1bWVudHMiOnsicGF0aCI6InBhY2thZ2VzL2NvZGluZy1hZ2VudC9zcmMvY29uZmlnLnRzIiwib2Zmc2V0IjoxLCJsaW1pdCI6ODB9fV0sImFwaSI6Im9wZW5haS1jb2RleC1yZXNwb25zZXMiLCJwcm92aWRlciI6Im9wZW5haS1jb2RleCIsIm1vZGVsIjoiZ3B0LTUuNSIsInVzYWdlIjp7ImlucHV0Ijo0MzQsIm91dHB1dCI6NTEsImNhY2hlUmVhZCI6MTQ4NDgsImNhY2hlV3JpdGUiOjAsInRvdGFsVG9rZW5zIjoxNTMzMywiY29zdCI6eyJpbnB1dCI6MC4wMDIxNywib3V0cHV0IjowLjAwMTUzMDAwMDAwMDAwMDAwMDEsImNhY2hlUmVhZCI6MC4wMDc0MjQsImNhY2hlV3JpdGUiOjAsInRvdGFsIjowLjAxMTEyNH19LCJzdG9wUmVhc29uIjoidG9vbFVzZSIsInRpbWVzdGFtcCI6MTc3NzUzNTgyOTA3NCwicmVzcG9uc2VJZCI6InJlc3BfMDI3ZjFlYTE1ZGVmMzUwNTAxNjlmMzBiNTU4ODc0ODE5MTlmZDExMWM5ZTZkODIyMGQifX0seyJ0eXBlIjoibWVzc2FnZSIsImlkIjoiY2U3NGVhNmQiLCJwYXJlbnRJZCI6ImQyYzM2YTFiIiwidGltZXN0YW1wIjoiMjAyNi0wNC0zMFQwNzo1NzoxMi4zNzJaIiwibWVzc2FnZSI6eyJyb2xlIjoidG9vbFJlc3VsdCIsInRvb2xDYWxsSWQiOiJjYWxsX0pTM0kxUjFVelhXUjFXZUNNZHpiNzVFeXxmY18wMjdmMWVhMTVkZWYzNTA1MDE2OWYzMGI1ODBiOTg4MTkxOGE3YjliN2UyMmZmNzg3ZiIsInRvb2xOYW1lIjoicmVhZCIsImNvbnRlbnQiOlt7InR5cGUiOiJ0ZXh0IiwidGV4dCI6ImltcG9ydCB7IHNwYXduU3luYyB9IGZyb20gXCJjaGlsZF9wcm9jZXNzXCI7XG5pbXBvcnQgeyBleGlzdHNTeW5jLCByZWFkRmlsZVN5bmMsIHJlYWxwYXRoU3luYyB9IGZyb20gXCJmc1wiO1xuaW1wb3J0IHsgaG9tZWRpciB9IGZyb20gXCJvc1wiO1xuaW1wb3J0IHsgZGlybmFtZSwgam9pbiwgcmVzb2x2ZSwgc2VwIH0gZnJvbSBcInBhdGhcIjtcbmltcG9ydCB7IGZpbGVVUkxUb1BhdGggfSBmcm9tIFwidXJsXCI7XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBQYWNrYWdlIERldGVjdGlvblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuY29uc3QgX19maWxlbmFtZSA9IGZpbGVVUkxUb1BhdGgoaW1wb3J0Lm1ldGEudXJsKTtcbmNvbnN0IF9fZGlybmFtZSA9IGRpcm5hbWUoX19maWxlbmFtZSk7XG5cbi8qKlxuICogRGV0ZWN0IGlmIHdlJ3JlIHJ1bm5pbmcgYXMgYSBCdW4gY29tcGlsZWQgYmluYXJ5LlxuICogQnVuIGJpbmFyaWVzIGhhdmUgaW1wb3J0Lm1ldGEudXJsIGNvbnRhaW5pbmcgXCIkYnVuZnNcIiwgXCJ+QlVOXCIsIG9yIFwiJTdFQlVOXCIgKEJ1bidzIHZpcnR1YWwgZmlsZXN5c3RlbSBwYXRoKVxuICovXG5leHBvcnQgY29uc3QgaXNCdW5CaW5hcnkgPVxuXHRpbXBvcnQubWV0YS51cmwuaW5jbHVkZXMoXCIkYnVuZnNcIikgfHwgaW1wb3J0Lm1ldGEudXJsLmluY2x1ZGVzKFwifkJVTlwiKSB8fCBpbXBvcnQubWV0YS51cmwuaW5jbHVkZXMoXCIlN0VCVU5cIik7XG5cbi8qKiBEZXRlY3QgaWYgQnVuIGlzIHRoZSBydW50aW1lIChjb21waWxlZCBiaW5hcnkgb3IgYnVuIHJ1bikgKi9cbmV4cG9ydCBjb25zdCBpc0J1blJ1bnRpbWUgPSAhIXByb2Nlc3MudmVyc2lvbnMuYnVuO1xuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gSW5zdGFsbCBNZXRob2QgRGV0ZWN0aW9uXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG5leHBvcnQgdHlwZSBJbnN0YWxsTWV0aG9kID0gXCJidW4tYmluYXJ5XCIgfCBcIm5wbVwiIHwgXCJwbnBtXCIgfCBcInlhcm5cIiB8IFwiYnVuXCIgfCBcInVua25vd25cIjtcblxuZXhwb3J0IGludGVyZmFjZSBTZWxmVXBkYXRlQ29tbWFuZCB7XG5cdGNvbW1hbmQ6IHN0cmluZztcblx0YXJnczogc3RyaW5nW107XG5cdGRpc3BsYXk6IHN0cmluZztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGRldGVjdEluc3RhbGxNZXRob2QoKTogSW5zdGFsbE1ldGhvZCB7XG5cdGlmIChpc0J1bkJpbmFyeSkge1xuXHRcdHJldHVybiBcImJ1bi1iaW5hcnlcIjtcblx0fVxuXG5cdGNvbnN0IHJlc29sdmVkUGF0aCA9IGAke19fZGlybmFtZX1cXDAke3Byb2Nlc3MuZXhlY1BhdGggfHwgXCJcIn1gLnRvTG93ZXJDYXNlKCkucmVwbGFjZSgvXFxcXC9nLCBcIi9cIik7XG5cblx0aWYgKHJlc29sdmVkUGF0aC5pbmNsdWRlcyhcIi9wbnBtL1wiKSB8fCByZXNvbHZlZFBhdGguaW5jbHVkZXMoXCIvLnBucG0vXCIpKSB7XG5cdFx0cmV0dXJuIFwicG5wbVwiO1xuXHR9XG5cdGlmIChyZXNvbHZlZFBhdGguaW5jbHVkZXMoXCIveWFybi9cIikgfHwgcmVzb2x2ZWRQYXRoLmluY2x1ZGVzKFwiLy55YXJuL1wiKSkge1xuXHRcdHJldHVybiBcInlhcm5cIjtcblx0fVxuXHRpZiAoaXNCdW5SdW50aW1lKSB7XG5cdFx0cmV0dXJuIFwiYnVuXCI7XG5cdH1cblx0aWYgKHJlc29sdmVkUGF0aC5pbmNsdWRlcyhcIi9ucG0vXCIpIHx8IHJlc29sdmVkUGF0aC5pbmNsdWRlcyhcIi9ub2RlX21vZHVsZXMvXCIpKSB7XG5cdFx0cmV0dXJuIFwibnBtXCI7XG5cdH1cblxuXHRyZXR1cm4gXCJ1bmtub3duXCI7XG59XG5cbmZ1bmN0aW9uIGdldFNlbGZVcGRhdGVDb21tYW5kRm9yTWV0aG9kKG1ldGhvZDogSW5zdGFsbE1ldGhvZCwgcGFja2FnZU5hbWU6IHN0cmluZyk6IFNlbGZVcGRhdGVDb21tYW5kIHwgdW5kZWZpbmVkIHtcblx0c3dpdGNoIChtZXRob2QpIHtcblx0XHRjYXNlIFwiYnVuLWJpbmFyeVwiOlxuXHRcdFx0cmV0dXJuIHVuZGVmaW5lZDtcblx0XHRjYXNlIFwicG5wbVwiOlxuXHRcdFx0cmV0dXJuIHtcblx0XHRcdFx0Y29tbWFuZDogXCJwbnBtXCIsXG5cdFx0XHRcdGFyZ3M6IFtcImluc3RhbGxcIiwgXCItZ1wiLCBwYWNrYWdlTmFtZV0sXG5cdFx0XHRcdGRpc3BsYXk6IGBwbnBtIGluc3RhbGwgLWcgJHtwYWNrYWdlTmFtZX1gLFxuXHRcdFx0fTtcblx0XHRjYXNlIFwieWFyblwiOlxuXHRcdFx0cmV0dXJuIHtcblx0XHRcdFx0Y29tbWFuZDogXCJ5YXJuXCIsXG5cdFx0XHRcdGFyZ3M6IFtcImdsb2JhbFwiLCBcImFkZFwiLCBwYWNrYWdlTmFtZV0sXG5cdFx0XHRcdGRpc3BsYXk6IGB5YXJuIGdsb2JhbCBhZGQgJHtwYWNrYWdlTmFtZX1gLFxuXHRcdFx0fTtcblx0XHRjYXNlIFwiYnVuXCI6XG5cdFx0XHRyZXR1cm4ge1xuXHRcdFx0XHRjb21tYW5kOiBcImJ1blwiLFxuXHRcdFx0XHRhcmdzOiBbXCJpbnN0YWxsXCIsIFwiLWdcIiwgcGFja2FnZU5hbWVdLFxuXHRcdFx0XHRkaXNwbGF5OiBgYnVuIGluc3RhbGwgLWcgJHtwYWNrYWdlTmFtZX1gLFxuXHRcdFx0fTtcblxuWzMxOSBtb3JlIGxpbmVzIGluIGZpbGUuIFVzZSBvZmZzZXQ9ODEgdG8gY29udGludWUuXSJ9XSwiaXNFcnJvciI6ZmFsc2UsInRpbWVzdGFtcCI6MTc3NzUzNTgzMjM3Mn19LHsidHlwZSI6Im1lc3NhZ2UiLCJpZCI6ImFmNjI2YWI1IiwicGFyZW50SWQiOiJjZTc0ZWE2ZCIsInRpbWVzdGFtcCI6IjIwMjYtMDQtMzBUMDc6NTc6MTQuMTE4WiIsIm1lc3NhZ2UiOnsicm9sZSI6ImFzc2lzdGFudCIsImNvbnRlbnQiOlt7InR5cGUiOiJ0b29sQ2FsbCIsImlkIjoiY2FsbF9LUmVKek5YSkZKNlc0YWt3TUdEd2p3c1V8ZmNfMDI3ZjFlYTE1ZGVmMzUwNTAxNjlmMzBiNTliMmIwODE5MWJmMmQ3ZmM5YmYyMjBkMTAiLCJuYW1lIjoiZ3JlcCIsImFyZ3VtZW50cyI6eyJwYXR0ZXJuIjoiQ09ORklHX0RJUl9OQU1FIiwicGF0aCI6InBhY2thZ2VzL2NvZGluZy1hZ2VudC9zcmMvY29uZmlnLnRzIiwiY29udGV4dCI6Mn19XSwiYXBpIjoib3BlbmFpLWNvZGV4LXJlc3BvbnNlcyIsInByb3ZpZGVyIjoib3BlbmFpLWNvZGV4IiwibW9kZWwiOiJncHQtNS41IiwidXNhZ2UiOnsiaW5wdXQiOjEwOTAsIm91dHB1dCI6MzQsImNhY2hlUmVhZCI6MTQ4NDgsImNhY2hlV3JpdGUiOjAsInRvdGFsVG9rZW5zIjoxNTk3MiwiY29zdCI6eyJpbnB1dCI6MC4wMDU0NTAwMDAwMDAwMDAwMDEsIm91dHB1dCI6MC4wMDEwMiwiY2FjaGVSZWFkIjowLjAwNzQyNCwiY2FjaGVXcml0ZSI6MCwidG90YWwiOjAuMDEzODk0fX0sInN0b3BSZWFzb24iOiJ0b29sVXNlIiwidGltZXN0YW1wIjoxNzc3NTM1ODMyMzczLCJyZXNwb25zZUlkIjoicmVzcF8wMjdmMWVhMTVkZWYzNTA1MDE2OWYzMGI1OGQ0YTA4MTkxOTdiZDM3YzQyMGQ1M2I2YyJ9fSx7InR5cGUiOiJtZXNzYWdlIiwiaWQiOiIzMjcyNmVjYiIsInBhcmVudElkIjoiYWY2MjZhYjUiLCJ0aW1lc3RhbXAiOiIyMDI2LTA0LTMwVDA3OjU3OjE0LjEyNFoiLCJtZXNzYWdlIjp7InJvbGUiOiJ0b29sUmVzdWx0IiwidG9vbENhbGxJZCI6ImNhbGxfS1JlSnpOWEpGSjZXNGFrd01HRHdqd3NVfGZjXzAyN2YxZWExNWRlZjM1MDUwMTY5ZjMwYjU5YjJiMDgxOTFiZjJkN2ZjOWJmMjIwZDEwIiwidG9vbE5hbWUiOiJncmVwIiwiY29udGVudCI6W3sidHlwZSI6InRleHQiLCJ0ZXh0IjoiY29uZmlnLnRzOjMyMzogICBleHBvcnQgY29uc3QgQVBQX05BTUU6IHN0cmluZyA9IHBpQ29uZmlnTmFtZSB8fCBcInBpXCI7XG5jb25maWcudHM6MzI0OiAgIGV4cG9ydCBjb25zdCBBUFBfVElUTEU6IHN0cmluZyA9IHBpQ29uZmlnTmFtZSA/IEFQUF9OQU1FIDogXCLPgFwiO1xuY29uZmlnLnRzOjMyNTogZXhwb3J0IGNvbnN0IENPTkZJR19ESVJfTkFNRTogc3RyaW5nID0gcGtnLnBpQ29uZmlnPy5jb25maWdEaXIgfHwgXCIucGlcIjtcbmNvbmZpZy50czozMjY6ICAgZXhwb3J0IGNvbnN0IFZFUlNJT046IHN0cmluZyA9IHBrZy52ZXJzaW9uIHx8IFwiMC4wLjBcIjtcbmNvbmZpZy50czozMjc6ICAgXG5jb25maWcudHM6MzUwOiAgIHJldHVybiBlbnZEaXI7XG5jb25maWcudHM6MzUxOiAgIH1cbmNvbmZpZy50czozNTI6IHJldHVybiBqb2luKGhvbWVkaXIoKSwgQ09ORklHX0RJUl9OQU1FLCBcImFnZW50XCIpO1xuY29uZmlnLnRzOjM1MzogICB9XG5jb25maWcudHM6MzU0OiAgICJ9XSwiZGV0YWlscyI6eyJtYXRjaENvdW50IjoyLCJtYXRjaGVzIjpbeyJwYXRoIjoiY29uZmlnLnRzIiwibGluZSI6MzIzLCJ0ZXh0IjoiICBleHBvcnQgY29uc3QgQVBQX05BTUU6IHN0cmluZyA9IHBpQ29uZmlnTmFtZSB8fCBcInBpXCI7In0seyJwYXRoIjoiY29uZmlnLnRzIiwibGluZSI6MzI0LCJ0ZXh0IjoiICBleHBvcnQgY29uc3QgQVBQX1RJVExFOiBzdHJpbmcgPSBwaUNvbmZpZ05hbWUgPyBBUFBfTkFNRSA6IFwiz4BcIjsifSx7InBhdGgiOiJjb25maWcudHMiLCJsaW5lIjozMjUsInRleHQiOiJleHBvcnQgY29uc3QgQ09ORklHX0RJUl9OQU1FOiBzdHJpbmcgPSBwa2cucGlDb25maWc/LmNvbmZpZ0RpciB8fCBcIi5waVwiOyJ9LHsicGF0aCI6ImNvbmZpZy50cyIsImxpbmUiOjMyNiwidGV4dCI6IiAgZXhwb3J0IGNvbnN0IFZFUlNJT046IHN0cmluZyA9IHBrZy52ZXJzaW9uIHx8IFwiMC4wLjBcIjsifSx7InBhdGgiOiJjb25maWcudHMiLCJsaW5lIjozMjcsInRleHQiOiIgICJ9LHsicGF0aCI6ImNvbmZpZy50cyIsImxpbmUiOjM1MCwidGV4dCI6IiAgcmV0dXJuIGVudkRpcjsifSx7InBhdGgiOiJjb25maWcudHMiLCJsaW5lIjozNTEsInRleHQiOiIgIH0ifSx7InBhdGgiOiJjb25maWcudHMiLCJsaW5lIjozNTIsInRleHQiOiJyZXR1cm4gam9pbihob21lZGlyKCksIENPTkZJR19ESVJfTkFNRSwgXCJhZ2VudFwiKTsifSx7InBhdGgiOiJjb25maWcudHMiLCJsaW5lIjozNTMsInRleHQiOiIgIH0ifSx7InBhdGgiOiJjb25maWcudHMiLCJsaW5lIjozNTQsInRleHQiOiIgICJ9XX0sImlzRXJyb3IiOmZhbHNlLCJ0aW1lc3RhbXAiOjE3Nzc1MzU4MzQxMjR9fSx7InR5cGUiOiJtZXNzYWdlIiwiaWQiOiI5Nzk4NjIyYiIsInBhcmVudElkIjoiMzI3MjZlY2IiLCJ0aW1lc3RhbXAiOiIyMDI2LTA0LTMwVDA3OjU3OjE1Ljk3NVoiLCJtZXNzYWdlIjp7InJvbGUiOiJhc3Npc3RhbnQiLCJjb250ZW50IjpbeyJ0eXBlIjoidG9vbENhbGwiLCJpZCI6ImNhbGxfbXpTeEYxYWl6MnhjRzBPbWRyZmQzWXFQfGZjXzAyN2YxZWExNWRlZjM1MDUwMTY5ZjMwYjViYTQyMDgxOTE4NWEyMGRiZDY3YzQwNDUzIiwibmFtZSI6InJlYWQiLCJhcmd1bWVudHMiOnsicGF0aCI6InBhY2thZ2VzL2NvZGluZy1hZ2VudC9zcmMvY29uZmlnLnRzIiwib2Zmc2V0IjozMzAsImxpbWl0IjozNX19XSwiYXBpIjoib3BlbmFpLWNvZGV4LXJlc3BvbnNlcyIsInByb3ZpZGVyIjoib3BlbmFpLWNvZGV4IiwibW9kZWwiOiJncHQtNS41IiwidXNhZ2UiOnsiaW5wdXQiOjI1Mywib3V0cHV0IjozMSwiY2FjaGVSZWFkIjoxNTg3MiwiY2FjaGVXcml0ZSI6MCwidG90YWxUb2tlbnMiOjE2MTU2LCJjb3N0Ijp7ImlucHV0IjowLjAwMTI2NSwib3V0cHV0IjowLjAwMDkzLCJjYWNoZVJlYWQiOjAuMDA3OTM2LCJjYWNoZVdyaXRlIjowLCJ0b3RhbCI6MC4wMTAxMzEwMDAwMDAwMDAwMDF9fSwic3RvcFJlYXNvbiI6InRvb2xVc2UiLCJ0aW1lc3RhbXAiOjE3Nzc1MzU4MzQxMjUsInJlc3BvbnNlSWQiOiJyZXNwXzAyN2YxZWExNWRlZjM1MDUwMTY5ZjMwYjVhYTU4YzgxOTE4MTgyZWMxNjc2MDAyYzMzIn19LHsidHlwZSI6Im1lc3NhZ2UiLCJpZCI6ImRiMDFiZWQ1IiwicGFyZW50SWQiOiI5Nzk4NjIyYiIsInRpbWVzdGFtcCI6IjIwMjYtMDQtMzBUMDc6NTc6MTUuOTc4WiIsIm1lc3NhZ2UiOnsicm9sZSI6InRvb2xSZXN1bHQiLCJ0b29sQ2FsbElkIjoiY2FsbF9telN4RjFhaXoyeGNHME9tZHJmZDNZcVB8ZmNfMDI3ZjFlYTE1ZGVmMzUwNTAxNjlmMzBiNWJhNDIwODE5MTg1YTIwZGJkNjdjNDA0NTMiLCJ0b29sTmFtZSI6InJlYWQiLCJjb250ZW50IjpbeyJ0eXBlIjoidGV4dCIsInRleHQiOiJcbmNvbnN0IERFRkFVTFRfU0hBUkVfVklFV0VSX1VSTCA9IFwiaHR0cHM6Ly9waS5kZXYvc2Vzc2lvbi9cIjtcblxuLyoqIEdldCB0aGUgc2hhcmUgdmlld2VyIFVSTCBmb3IgYSBnaXN0IElEICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0U2hhcmVWaWV3ZXJVcmwoZ2lzdElkOiBzdHJpbmcpOiBzdHJpbmcge1xuXHRjb25zdCBiYXNlVXJsID0gcHJvY2Vzcy5lbnYuUElfU0hBUkVfVklFV0VSX1VSTCB8fCBERUZBVUxUX1NIQVJFX1ZJRVdFUl9VUkw7XG5cdHJldHVybiBgJHtiYXNlVXJsfSMke2dpc3RJZH1gO1xufVxuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gVXNlciBDb25maWcgUGF0aHMgKH4vLnBpL2FnZW50LyopXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4vKiogR2V0IHRoZSBhZ2VudCBjb25maWcgZGlyZWN0b3J5IChlLmcuLCB+Ly5waS9hZ2VudC8pICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0QWdlbnREaXIoKTogc3RyaW5nIHtcblx0Y29uc3QgZW52RGlyID0gcHJvY2Vzcy5lbnZbRU5WX0FHRU5UX0RJUl07XG5cdGlmIChlbnZEaXIpIHtcblx0XHQvLyBFeHBhbmQgdGlsZGUgdG8gaG9tZSBkaXJlY3Rvcnlcblx0XHRpZiAoZW52RGlyID09PSBcIn5cIikgcmV0dXJuIGhvbWVkaXIoKTtcblx0XHRpZiAoZW52RGlyLnN0YXJ0c1dpdGgoXCJ+L1wiKSkgcmV0dXJuIGhvbWVkaXIoKSArIGVudkRpci5zbGljZSgxKTtcblx0XHRyZXR1cm4gZW52RGlyO1xuXHR9XG5cdHJldHVybiBqb2luKGhvbWVkaXIoKSwgQ09ORklHX0RJUl9OQU1FLCBcImFnZW50XCIpO1xufVxuXG4vKiogR2V0IHBhdGggdG8gdXNlcidzIGN1c3RvbSB0aGVtZXMgZGlyZWN0b3J5ICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0Q3VzdG9tVGhlbWVzRGlyKCk6IHN0cmluZyB7XG5cdHJldHVybiBqb2luKGdldEFnZW50RGlyKCksIFwidGhlbWVzXCIpO1xufVxuXG4vKiogR2V0IHBhdGggdG8gbW9kZWxzLmpzb24gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRNb2RlbHNQYXRoKCk6IHN0cmluZyB7XG5cdHJldHVybiBqb2luKGdldEFnZW50RGlyKCksIFwibW9kZWxzLmpzb25cIik7XG59XG5cblxuWzM1IG1vcmUgbGluZXMgaW4gZmlsZS4gVXNlIG9mZnNldD0zNjUgdG8gY29udGludWUuXSJ9XSwiaXNFcnJvciI6ZmFsc2UsInRpbWVzdGFtcCI6MTc3NzUzNTgzNTk3OH19LHsidHlwZSI6Im1lc3NhZ2UiLCJpZCI6ImMyNDQ3OGI0IiwicGFyZW50SWQiOiJkYjAxYmVkNSIsInRpbWVzdGFtcCI6IjIwMjYtMDQtMzBUMDc6NTc6MjAuNjUzWiIsIm1lc3NhZ2UiOnsicm9sZSI6ImFzc2lzdGFudCIsImNvbnRlbnQiOlt7InR5cGUiOiJ0aGlua2luZyIsInRoaW5raW5nIjoiKipTZWFyY2hpbmcgZm9yIHRlc3RzKipcblxuSSdtIHRoaW5raW5nIHRoYXQgSSBuZWVkIHRvIGxvb2sgZm9yIHNvbWUgdGVzdHMgcmVsYXRlZCB0byB0aGUgY29uZmlnIHNlbGVjdG9yLiBJdCBmZWVscyBsaWtlIEkgc2hvdWxkIGdhdGhlciByZWxldmFudCBpbmZvcm1hdGlvbiB0byBlbnN1cmUgSSd2ZSBnb3QgZXZlcnl0aGluZyBJIG5lZWQgdG8gdW5kZXJzdGFuZCBob3cgaXQgd29ya3MgYmV0dGVyLiBMZXQncyBleHBsb3JlIHdoYXQncyBvdXQgdGhlcmUhIFRoZXJlIG1pZ2h0IGJlIHZhcmlvdXMgY29uZmlndXJhdGlvbnMgb3IgcGFyYW1ldGVycyBJIHNob3VsZCBjb25zaWRlciB3aGlsZSBzZWFyY2hpbmcuIEknbSBjdXJpb3VzIGFib3V0IHdoYXQgSSBtaWdodCBmaW5kIGFuZCBob3cgaXQgY291bGQgaGVscCBjbGFyaWZ5IHRoaW5ncyBmb3IgbWUuIiwidGhpbmtpbmdTaWduYXR1cmUiOiJ7XCJpZFwiOlwicnNfMDI3ZjFlYTE1ZGVmMzUwNTAxNjlmMzBiNWU1ODhjODE5MTkzMjhmODRlZTMzNDM1YzRcIixcInR5cGVcIjpcInJlYXNvbmluZ1wiLFwiZW5jcnlwdGVkX2NvbnRlbnRcIjpcImdBQUFBQUJwOHd0Z1pSSGpwN1VMbjduT3JEUmdEUUxjTEowbUR5eGNJYWo0X0ZuR1hYTzl5Q3p3TG5xMXdoU3d5N29YeXZEQlRwYzVWckliWS1UZW94ODFlbE1tMU15aktBOTJkS3hHRE5jRWsySmIwLWc2NHlhdWZnVTdLRUJqUnZIcVp4X1JxRnNUamdMcjBHUzRXZENublRfdWJhNTBQaTBJUGVCMXE1WmNNbm01UjlhaGthRi1vbE5QVDliUjlqbWhXaWk1dGpRcDQ0Vjh4d3FsYWRKTEl2b2pnQ2Rwbm1KOGM5MU9GSWpGN2FXblV1amQyQV82MWg1dG5UTDZVOUJmSUlqaVpWM2dSNkc0N3Y0Z3hzaWE2ZjBFbDhJdUNWbDhNb0EyYUZlMmhGM2UxdThOanNTVFBOaXY3VEp1blJ0aHZuNXk4YTBNblVzZ09WT19tODJlM3l2MnZ6eUQtMDlEOWRHQmpjYi1ya2VqY3Q3UlotdE9URVNwZzBUdDJMWkc1dEk4NXExU0QwLUZHTUMtMGFjWHU5aDBCbWl5RWpsRGZxNWhSWkg1SDhzOUN3bC1vd290Wm56QTFlTE9rOEFfdXhKMWNxUno4NklwSEtwdWZwb05aNE9ScU9QMTZUeUdsc3RobV9CNXdXRE8wUHFhYXZBV1BJdUtDT1dZMEtJaHVxUmtxQTZVd19pTHpMNDJvbjVFVmZVOWpzU1ZZYTBGb3hUMEgtcEtFZm9RWXB5YzJLdDAzTXhhdGpHU3psUWpOQmdwaWJTMm9lS0JncXdCQWE5ZzdMYVg0WjgyWE52SkpERTFmZmN0UzY1TEs1WnI5dHc0Z2FvRjlvNEdqUDVjd1hoU1VkOGc2YlY3UGtUNzZsV0dmMk1ZclVTdVFFdEFDdlU5eFBGOXRXOUh0MEFvZUVFb0hBUWtGamRQUVRhY2s0MzZFbm1CUEVDcUZFM3c0a0tIOXMxV2pET3hnS1lpYTRwbzBlUGE3MHpjMnNVb3FkdUpCNkpFVVc0TzZRN09wSllLdE42Uy1lWEFYekVqU3ZRWXVWb3NETHY1alpZVVJTRTZrSUlpTU5yeW9TU3AtUUJJWU03djNNZkctX3hLa2pPWG9VbDV2MDRSZk0zQnNwTV83bTg1ZU80dmZVd0tUMXdFMzRjZF9xRlVKcnhJSXlPblRNQ1RkX21BUExXczdWRmppQ3BCbTlmUkt2Rl80R2VGMVo2MXFBeDEydEg2dzZnUjVrWXNaSmhrSE12MkVlTlVtdWkxbHJZQ3FCa0pwTkZUZjdjS0RhOW5qbHJEbGJra3E0dHlqSldhdkE9PVwiLFwic3VtbWFyeVwiOlt7XCJ0eXBlXCI6XCJzdW1tYXJ5X3RleHRcIixcInRleHRcIjpcIioqU2VhcmNoaW5nIGZvciB0ZXN0cyoqXFxuXFxuSSdtIHRoaW5raW5nIHRoYXQgSSBuZWVkIHRvIGxvb2sgZm9yIHNvbWUgdGVzdHMgcmVsYXRlZCB0byB0aGUgY29uZmlnIHNlbGVjdG9yLiBJdCBmZWVscyBsaWtlIEkgc2hvdWxkIGdhdGhlciByZWxldmFudCBpbmZvcm1hdGlvbiB0byBlbnN1cmUgSSd2ZSBnb3QgZXZlcnl0aGluZyBJIG5lZWQgdG8gdW5kZXJzdGFuZCBob3cgaXQgd29ya3MgYmV0dGVyLiBMZXQncyBleHBsb3JlIHdoYXQncyBvdXQgdGhlcmUhIFRoZXJlIG1pZ2h0IGJlIHZhcmlvdXMgY29uZmlndXJhdGlvbnMgb3IgcGFyYW1ldGVycyBJIHNob3VsZCBjb25zaWRlciB3aGlsZSBzZWFyY2hpbmcuIEknbSBjdXJpb3VzIGFib3V0IHdoYXQgSSBtaWdodCBmaW5kIGFuZCBob3cgaXQgY291bGQgaGVscCBjbGFyaWZ5IHRoaW5ncyBmb3IgbWUuXCJ9XX0ifSx7InR5cGUiOiJ0b29sQ2FsbCIsImlkIjoiY2FsbF9KeTlQbEpwWTBTeWNhbjMwUGtiZkhvR3d8ZmNfMDI3ZjFlYTE1ZGVmMzUwNTAxNjlmMzBiNjA2MThjODE5MWFiZTk5NTY0YzkwYmQ2ZDEiLCJuYW1lIjoiZmluZCIsImFyZ3VtZW50cyI6eyJwYXR0ZXJuIjoiKmNvbmZpZypzZWxlY3RvcioiLCJwYXRoIjoicGFja2FnZXMvY29kaW5nLWFnZW50In19XSwiYXBpIjoib3BlbmFpLWNvZGV4LXJlc3BvbnNlcyIsInByb3ZpZGVyIjoib3BlbmFpLWNvZGV4IiwibW9kZWwiOiJncHQtNS41IiwidXNhZ2UiOnsiaW5wdXQiOjUxNTksIm91dHB1dCI6NDMsImNhY2hlUmVhZCI6MTEyNjQsImNhY2hlV3JpdGUiOjAsInRvdGFsVG9rZW5zIjoxNjQ2NiwiY29zdCI6eyJpbnB1dCI6MC4wMjU3OTUwMDAwMDAwMDAwMDIsIm91dHB1dCI6MC4wMDEyOTAwMDAwMDAwMDAwMDAxLCJjYWNoZVJlYWQiOjAuMDA1NjMyLCJjYWNoZVdyaXRlIjowLCJ0b3RhbCI6MC4wMzI3MTd9fSwic3RvcFJlYXNvbiI6InRvb2xVc2UiLCJ0aW1lc3RhbXAiOjE3Nzc1MzU4MzU5NzksInJlc3BvbnNlSWQiOiJyZXNwXzAyN2YxZWExNWRlZjM1MDUwMTY5ZjMwYjVjOTI5MDgxOTE4MGUzODJkNzZmNmIzZDRmIn19LHsidHlwZSI6Im1lc3NhZ2UiLCJpZCI6IjUyMTY5MzdmIiwicGFyZW50SWQiOiJjMjQ0NzhiNCIsInRpbWVzdGFtcCI6IjIwMjYtMDQtMzBUMDc6NTc6MjAuNjczWiIsIm1lc3NhZ2UiOnsicm9sZSI6InRvb2xSZXN1bHQiLCJ0b29sQ2FsbElkIjoiY2FsbF9KeTlQbEpwWTBTeWNhbjMwUGtiZkhvR3d8ZmNfMDI3ZjFlYTE1ZGVmMzUwNTAxNjlmMzBiNjA2MThjODE5MWFiZTk5NTY0YzkwYmQ2ZDEiLCJ0b29sTmFtZSI6ImZpbmQiLCJjb250ZW50IjpbeyJ0eXBlIjoidGV4dCIsInRleHQiOiJzcmMvY2xpL2NvbmZpZy1zZWxlY3Rvci50c1xuc3JjL21vZGVzL2ludGVyYWN0aXZlL2NvbXBvbmVudHMvY29uZmlnLXNlbGVjdG9yLnRzIn1dLCJkZXRhaWxzIjp7InRvdGFsUmVzdWx0cyI6MiwicGF0aHMiOlsic3JjL2NsaS9jb25maWctc2VsZWN0b3IudHMiLCJzcmMvbW9kZXMvaW50ZXJhY3RpdmUvY29tcG9uZW50cy9jb25maWctc2VsZWN0b3IudHMiXSwicmVsYXRpdmVUbyI6InBhY2thZ2VzL2NvZGluZy1hZ2VudCJ9LCJpc0Vycm9yIjpmYWxzZSwidGltZXN0YW1wIjoxNzc3NTM1ODQwNjczfX0seyJ0eXBlIjoibWVzc2FnZSIsImlkIjoiYTBmN2Q0OGQiLCJwYXJlbnRJZCI6IjUyMTY5MzdmIiwidGltZXN0YW1wIjoiMjAyNi0wNC0zMFQwNzo1NzoyNi4xOTJaIiwibWVzc2FnZSI6eyJyb2xlIjoiYXNzaXN0YW50IiwiY29udGVudCI6W3sidHlwZSI6InRvb2xDYWxsIiwiaWQiOiJjYWxsX0dYN2dOanVuY2xPREJ5YlRSY3JsbnZtM3xmY18wMjdmMWVhMTVkZWYzNTA1MDE2OWYzMGI2NTkwNjg4MTkxYWQxYWU1NTI3YWVlMDcyOSIsIm5hbWUiOiJncmVwIiwiYXJndW1lbnRzIjp7InBhdHRlcm4iOiJQYXRoTWV0YWRhdGEiLCJwYXRoIjoicGFja2FnZXMvY29kaW5nLWFnZW50IiwiZ2xvYiI6IioudGVzdC50cyIsImNvbnRleHQiOjJ9fV0sImFwaSI6Im9wZW5haS1jb2RleC1yZXNwb25zZXMiLCJwcm92aWRlciI6Im9wZW5haS1jb2RleCIsIm1vZGVsIjoiZ3B0LTUuNSIsInVzYWdlIjp7ImlucHV0Ijo2MjAsIm91dHB1dCI6MzYsImNhY2hlUmVhZCI6MTU4NzIsImNhY2hlV3JpdGUiOjAsInRvdGFsVG9rZW5zIjoxNjUyOCwiY29zdCI6eyJpbnB1dCI6MC4wMDMxMDAwMDAwMDAwMDAwMDAzLCJvdXRwdXQiOjAuMDAxMDgsImNhY2hlUmVhZCI6MC4wMDc5MzYsImNhY2hlV3JpdGUiOjAsInRvdGFsIjowLjAxMjExNjAwMDAwMDAwMDAwMn19LCJzdG9wUmVhc29uIjoidG9vbFVzZSIsInRpbWVzdGFtcCI6MTc3NzUzNTg0MDY3NCwicmVzcG9uc2VJZCI6InJlc3BfMDI3ZjFlYTE1ZGVmMzUwNTAxNjlmMzBiNjI0MTljODE5MWIxNGQxOWM2YzhkYmRhYjEifX0seyJ0eXBlIjoibWVzc2FnZSIsImlkIjoiZWQ0NTBiN2MiLCJwYXJlbnRJZCI6ImEwZjdkNDhkIiwidGltZXN0YW1wIjoiMjAyNi0wNC0zMFQwNzo1NzoyNi4yMTFaIiwibWVzc2FnZSI6eyJyb2xlIjoidG9vbFJlc3VsdCIsInRvb2xDYWxsSWQiOiJjYWxsX0dYN2dOanVuY2xPREJ5YlRSY3JsbnZtM3xmY18wMjdmMWVhMTVkZWYzNTA1MDE2OWYzMGI2NTkwNjg4MTkxYWQxYWU1NTI3YWVlMDcyOSIsInRvb2xOYW1lIjoiZ3JlcCIsImNvbnRlbnQiOlt7InR5cGUiOiJ0ZXh0IiwidGV4dCI6InRlc3QvaW50ZXJhY3RpdmUtbW9kZS1zdGF0dXMudGVzdC50czoyNTE6ICAgfSxcbnRlc3QvaW50ZXJhY3RpdmUtbW9kZS1zdGF0dXMudGVzdC50czoyNTI6ICAgcmVzb3VyY2VMb2FkZXI6IHtcbnRlc3QvaW50ZXJhY3RpdmUtbW9kZS1zdGF0dXMudGVzdC50czoyNTM6IGdldFBhdGhNZXRhZGF0YTogKCkgPT4gbmV3IE1hcCgpLFxudGVzdC9pbnRlcmFjdGl2ZS1tb2RlLXN0YXR1cy50ZXN0LnRzOjI1NDogICBnZXRBZ2VudHNGaWxlczogKCkgPT4gKHsgYWdlbnRzRmlsZXM6IG9wdGlvbnMuY29udGV4dEZpbGVzID8/IFtdIH0pLFxudGVzdC9pbnRlcmFjdGl2ZS1tb2RlLXN0YXR1cy50ZXN0LnRzOjI1NTogICBnZXRTa2lsbHM6ICgpID0+ICh7In1dLCJkZXRhaWxzIjp7Im1hdGNoQ291bnQiOjEsIm1hdGNoZXMiOlt7InBhdGgiOiJ0ZXN0L2ludGVyYWN0aXZlLW1vZGUtc3RhdHVzLnRlc3QudHMiLCJsaW5lIjoyNTEsInRleHQiOiIgIH0sIn0seyJwYXRoIjoidGVzdC9pbnRlcmFjdGl2ZS1tb2RlLXN0YXR1cy50ZXN0LnRzIiwibGluZSI6MjUyLCJ0ZXh0IjoiICByZXNvdXJjZUxvYWRlcjogeyJ9LHsicGF0aCI6InRlc3QvaW50ZXJhY3RpdmUtbW9kZS1zdGF0dXMudGVzdC50cyIsImxpbmUiOjI1MywidGV4dCI6ImdldFBhdGhNZXRhZGF0YTogKCkgPT4gbmV3IE1hcCgpLCJ9LHsicGF0aCI6InRlc3QvaW50ZXJhY3RpdmUtbW9kZS1zdGF0dXMudGVzdC50cyIsImxpbmUiOjI1NCwidGV4dCI6IiAgZ2V0QWdlbnRzRmlsZXM6ICgpID0+ICh7IGFnZW50c0ZpbGVzOiBvcHRpb25zLmNvbnRleHRGaWxlcyA/PyBbXSB9KSwifSx7InBhdGgiOiJ0ZXN0L2ludGVyYWN0aXZlLW1vZGUtc3RhdHVzLnRlc3QudHMiLCJsaW5lIjoyNTUsInRleHQiOiIgIGdldFNraWxsczogKCkgPT4gKHsifV0sInJlbGF0aXZlVG8iOiJwYWNrYWdlcy9jb2RpbmctYWdlbnQifSwiaXNFcnJvciI6ZmFsc2UsInRpbWVzdGFtcCI6MTc3NzUzNTg0NjIxMX19LHsidHlwZSI6Im1lc3NhZ2UiLCJpZCI6ImM2Y2QzZDUwIiwicGFyZW50SWQiOiJlZDQ1MGI3YyIsInRpbWVzdGFtcCI6IjIwMjYtMDQtMzBUMDc6NTc6MzUuMzAxWiIsIm1lc3NhZ2UiOnsicm9sZSI6ImFzc2lzdGFudCIsImNvbnRlbnQiOlt7InR5cGUiOiJ0aGlua2luZyIsInRoaW5raW5nIjoiKipDb25zaWRlcmluZyBwYWNrYWdlIG1hbmFnZXIgaXNzdWVzKipcblxuSSB0aGluayBJIG5lZWQgdG8gcnVuIGEgcmVwcm9kdWN0aW9uLCBtYXliZSBpbnNwZWN0IHRoZSByZW5kZXJlZCBjb25maWcgc2VsZWN0b3IgZm9yIGdyb3VwIGxhYmVscyBvbmx5LiBJIG5lZWQgdG8gdW5kZXJzdGFuZCB0aGF0IHRoZSBwYWNrYWdlIG1hbmFnZXIncyBtZXRhZGF0YSBjYW4ndCBkaWZmZXJlbnRpYXRlIGJldHdlZW4gLmFnZW50cyBhbmQgLnBpIGR1ZSB0byB0aGUgc2FtZSBtZXRhZGF0YS4gQ291bGQgdGhlIHBhdGggYmUgdXNlZnVsIGhlcmU/IE1heWJlIEkgY291bGQgc3BsaXQgYnkgdGhlIG1ldGFkYXRhIGJhc2VEaXI/IFRoZSBwYWNrYWdlIG1hbmFnZXIgcGFzc2VzIGFsbCB1c2VyIHNraWxscyB1c2luZyB1c2VyTWV0YWRhdGEgYW5kIGdsb2JhbEJhc2VEaXIgZm9yIG92ZXJyaWRlcy4gSSB3b25kZXIgaWYgdGhlIGJhc2VEaXIgZm9yIC5hZ2VudHMgc2tpbGxzIGlzIHdyb25nLCBhZmZlY3RpbmcgZW5hYmxlZCBvdmVycmlkZXMuIExldCdzIGNoZWNrIGlzRW5hYmxlZEJ5T3ZlcnJpZGVzLiIsInRoaW5raW5nU2lnbmF0dXJlIjoie1wiaWRcIjpcInJzXzAyN2YxZWExNWRlZjM1MDUwMTY5ZjMwYjY4ODAxYzgxOTE4MjY0MzYyOGNhNDg2NDE5XCIsXCJ0eXBlXCI6XCJyZWFzb25pbmdcIixcImVuY3J5cHRlZF9jb250ZW50XCI6XCJnQUFBQUFCcDh3dHYtRDAtbHpiS0FndUN4QmktQVNXTFI5NkdBX1BCUkJ4YXNxZW5IUzZ5dGRHTUFNQWRvVklZT2J1YUM0R1l4ZHgwNmpBdEhBbjY4ZUw5ZFFjTGtLWjV3bDZ5WmxUV2RHZU03eFVBUmlscWF2VVVWbVNQdGRndG1vR3U1SzRqd0hGRUtyNmFXWGZNZ2NPLXZ0bDN2UXA3SW9WTEQ5ejhpT0ZGaUZaSjVrZDRxRFlNNnpuRUxIdjRqUWVoOFVkaEF0Rlo1cEZpeTZ0R3lxYkJ3a3poejZLSlpfbDE3TTQ5R08zRU1LTTc2aXdBek11Yk9zVTlRckFuQWV5Z1FDVmtGWThqMVpNVW5ZS25UdEV4cDhuV0VUWG9Ja3ZfVzZQRVZrLVRQNEhKLXhaQWk2eWVyNjlrRlZMdDQ1Mm1QMWctNFlUaEpuU01fVlZRMHJFTmlJT3RLZmJUSi1xN3h4Q1FfVHNPRG94dFQ2dXltakE2ZXZONHhzYlpjNEtyM3V6QmZUYmptQ2pmSU5mX2RVdV9RVndCVlc4MVY4UnN1eEF6OE9JeDlJTEVMX1RNNFh0OTJ2cWdyV3JfX0JZSFJVcWRfcVFRUGo4d0VnRjhLTl84TmpwNGVVYmQ5MXRQakdHa1ppLWZDTjBTc3dKZXJEQ1cydzY1QnFHdGNlZzVXTm95NkxJeHFTclRtVDVTQjM5d1JpdE1sc2s0NG9xRml3eDdzaVVLT1NsS09DbVJBWmR6VUNwUjRDZGpWTmdzMWJTX0JWUDF1V1pWa1djc2hHYnJpRE51bTdXWXFpQ29FOGxGN25ndEJEZUcwb0s4TlZqYzRaNHNOeEh4aE9LcEl6Si1MS3FvdF9JR3ZITHo1YXBnaUJVb1NIV3l1TjVoVXl0VThkc3BPeE1DLWhyT1IzUEhVLWpKczEyNnVLejZYbDcxSVcwZjhtbmNNdV9ER3czSTg1dWRNZ1VKeDZHdEQ1dEhmcjlRcUtkWEk2alIzc2t0WkM3X2ZuMGlBcnNpb1BvTkkteDJkelEtdldUcVRkVHBNRnlBV0FPaUFwcmVVQUpRa29mVkNXLURxeDlMYWZlU0ZVOTNIMnpURGlVS2JVV2Q0LTdTUlg1NVZZeF82Qm1UVmpKR2VDMi01QTZVWHhIR0l6Z2Q0RnJyRTVoSHVZVVVXWWFqRmNYMUtHUm05dmVtLVdVYlhkY25tZFR0VDFab1JMaEI1RmhSbnJhNWdmTUg1Zjg2Vm9JNjRtdi1pX2MzaldleEFlTkZpUlVHdVhpZHRFdW03eGIzU2VsZkp4MjlESDJjU1p4NzB5ZnBoRDlkZlgyQVVFSUVGek02RWR1Vm5kSGs0OVdfTUQwY2ltT3RuNE5MLXEyUjJnbk1XazkyUUVSZjRfVGFvSGdDQTR2aUFvcTA3cWI4Y1dwRVRtMGVuM0ZsR0x6Q2Z1TDYydGJkUW1vc01CeDhlVkd5VlVIYnVTM0hrVGFFZFVLSlczbTYwbWJGbEN4cXVjb0s5ekdxRm05cmdmVGQ2cnZlaW95Nk5rbnpkc2k5RGtyT0FTaUs2aTJPbjlfYm5lZUNWX1N2X2Vqdm4wNHN2X0RVYkUzdzBwQmJDVmFUREYyTExoTnhKcG5BZDZEM1hJdjZCVFJYNVEteGlRWFhGRUx2VlZIYzVRLUs2YlZZczdORS1HbWMzZGJpSy1jYnNWYXJvcnZtaFU5T1JsR1FIVTVtLVN1Zm1QVTkyQWwtUlhfTzdmUDhvMzNDTzA0NE1HbTdIb3hjT3M5YnM3V0ZMNThLUlNvclNwNkFvS2lYdk1DOG5qV1BudEZoeDJmTHBmeTVsZnYxM0NObDV1NXAwRnhMZGRlOGxIWFBsaktRWm1UQ0xEam13TjZVd0llTU03Z2NBMkxhaDlFVHUzSkU0WWNYVGpQRjM0QUdtQTkxWFNUcHN4ZXFaOENUN1czbmhNQzZpbGIySURSM0VFX2VWUmc2eDZOOHVXc2JGLW5mMFNOcXRHRE1IZnZ0aWZ3b3ljNkJUU2V4RHZETGJTWi1QLUxqN0l6RXo3SVRscDUwMWRHR0pwNmtZTnFyVlFFUTlIXzFsdU1kOG9qRHpzMmxjbzNxaGhnPVwiLFwic3VtbWFyeVwiOlt7XCJ0eXBlXCI6XCJzdW1tYXJ5X3RleHRcIixcInRleHRcIjpcIioqQ29uc2lkZXJpbmcgcGFja2FnZSBtYW5hZ2VyIGlzc3VlcyoqXFxuXFxuSSB0aGluayBJIG5lZWQgdG8gcnVuIGEgcmVwcm9kdWN0aW9uLCBtYXliZSBpbnNwZWN0IHRoZSByZW5kZXJlZCBjb25maWcgc2VsZWN0b3IgZm9yIGdyb3VwIGxhYmVscyBvbmx5LiBJIG5lZWQgdG8gdW5kZXJzdGFuZCB0aGF0IHRoZSBwYWNrYWdlIG1hbmFnZXIncyBtZXRhZGF0YSBjYW4ndCBkaWZmZXJlbnRpYXRlIGJldHdlZW4gLmFnZW50cyBhbmQgLnBpIGR1ZSB0byB0aGUgc2FtZSBtZXRhZGF0YS4gQ291bGQgdGhlIHBhdGggYmUgdXNlZnVsIGhlcmU/IE1heWJlIEkgY291bGQgc3BsaXQgYnkgdGhlIG1ldGFkYXRhIGJhc2VEaXI/IFRoZSBwYWNrYWdlIG1hbmFnZXIgcGFzc2VzIGFsbCB1c2VyIHNraWxscyB1c2luZyB1c2VyTWV0YWRhdGEgYW5kIGdsb2JhbEJhc2VEaXIgZm9yIG92ZXJyaWRlcy4gSSB3b25kZXIgaWYgdGhlIGJhc2VEaXIgZm9yIC5hZ2VudHMgc2tpbGxzIGlzIHdyb25nLCBhZmZlY3RpbmcgZW5hYmxlZCBvdmVycmlkZXMuIExldCdzIGNoZWNrIGlzRW5hYmxlZEJ5T3ZlcnJpZGVzLlwifV19In0seyJ0eXBlIjoidG9vbENhbGwiLCJpZCI6ImNhbGxfenJFSHM1UWxKYnFUTWtUM2JpaWNjM0FzfGZjXzAyN2YxZWExNWRlZjM1MDUwMTY5ZjMwYjZmMGNiNDgxOTFhZTM4MTU5YjUwZTc2ZjNmIiwibmFtZSI6ImdyZXAiLCJhcmd1bWVudHMiOnsicGF0dGVybiI6ImZ1bmN0aW9uIGlzRW5hYmxlZEJ5T3ZlcnJpZGVzIiwicGF0aCI6InBhY2thZ2VzL2NvZGluZy1hZ2VudC9zcmMvY29yZS9wYWNrYWdlLW1hbmFnZXIudHMiLCJjb250ZXh0Ijo4fX1dLCJhcGkiOiJvcGVuYWktY29kZXgtcmVzcG9uc2VzIiwicHJvdmlkZXIiOiJvcGVuYWktY29kZXgiLCJtb2RlbCI6ImdwdC01LjUiLCJ1c2FnZSI6eyJpbnB1dCI6MjQ1LCJvdXRwdXQiOjEzNywiY2FjaGVSZWFkIjoxNjM4NCwiY2FjaGVXcml0ZSI6MCwidG90YWxUb2tlbnMiOjE2NzY2LCJjb3N0Ijp7ImlucHV0IjowLjAwMTIyNTAwMDAwMDAwMDAwMDIsIm91dHB1dCI6MC4wMDQxMSwiY2FjaGVSZWFkIjowLjAwODE5MiwiY2FjaGVXcml0ZSI6MCwidG90YWwiOjAuMDEzNTI3fX0sInN0b3BSZWFzb24iOiJ0b29sVXNlIiwidGltZXN0YW1wIjoxNzc3NTM1ODQ2MjEyLCJyZXNwb25zZUlkIjoicmVzcF8wMjdmMWVhMTVkZWYzNTA1MDE2OWYzMGI2NzVjNDg4MTkxYjY1YWI5MjM4YjgzYTk3MiJ9fSx7InR5cGUiOiJtZXNzYWdlIiwiaWQiOiI1OGUyMjExMSIsInBhcmVudElkIjoiYzZjZDNkNTAiLCJ0aW1lc3RhbXAiOiIyMDI2LTA0LTMwVDA3OjU3OjM1LjMwOVoiLCJtZXNzYWdlIjp7InJvbGUiOiJ0b29sUmVzdWx0IiwidG9vbENhbGxJZCI6ImNhbGxfenJFSHM1UWxKYnFUTWtUM2JpaWNjM0FzfGZjXzAyN2YxZWExNWRlZjM1MDUwMTY5ZjMwYjZmMGNiNDgxOTFhZTM4MTU5YjUwZTc2ZjNmIiwidG9vbE5hbWUiOiJncmVwIiwiY29udGVudCI6W3sidHlwZSI6InRleHQiLCJ0ZXh0IjoicGFja2FnZS1tYW5hZ2VyLnRzOjY3MzogICByZXR1cm4gbm9ybWFsaXplZCA9PT0gcGFyZW50UmVsIHx8IG5vcm1hbGl6ZWQgPT09IHBhcmVudERpclBvc2l4O1xucGFja2FnZS1tYW5hZ2VyLnRzOjY3NDogICB9KTtcbnBhY2thZ2UtbWFuYWdlci50czo2NzU6ICAgfVxucGFja2FnZS1tYW5hZ2VyLnRzOjY3NjogICBcbnBhY2thZ2UtbWFuYWdlci50czo2Nzc6ICAgZnVuY3Rpb24gZ2V0T3ZlcnJpZGVQYXR0ZXJucyhlbnRyaWVzOiBzdHJpbmdbXSk6IHN0cmluZ1tdIHtcbnBhY2thZ2UtbWFuYWdlci50czo2Nzg6ICAgcmV0dXJuIGVudHJpZXMuZmlsdGVyKChwYXR0ZXJuKSA9PiBwYXR0ZXJuLnN0YXJ0c1dpdGgoXCIhXCIpIHx8IHBhdHRlcm4uc3RhcnRzV2l0aChcIitcIikgfHwgcGF0dGVybi5zdGFydHNXaXRoKFwiLVwiKSk7XG5wYWNrYWdlLW1hbmFnZXIudHM6Njc5OiAgIH1cbnBhY2thZ2UtbWFuYWdlci50czo2ODA6ICAgXG5wYWNrYWdlLW1hbmFnZXIudHM6NjgxOiBmdW5jdGlvbiBpc0VuYWJsZWRCeU92ZXJyaWRlcyhmaWxlUGF0aDogc3RyaW5nLCBwYXR0ZXJuczogc3RyaW5nW10sIGJhc2VEaXI6IHN0cmluZyk6IGJvb2xlYW4ge1xucGFja2FnZS1tYW5hZ2VyLnRzOjY4MjogICBjb25zdCBvdmVycmlkZXMgPSBnZXRPdmVycmlkZVBhdHRlcm5zKHBhdHRlcm5zKTtcbnBhY2thZ2UtbWFuYWdlci50czo2ODM6ICAgY29uc3QgZXhjbHVkZXMgPSBvdmVycmlkZXMuZmlsdGVyKChwYXR0ZXJuKSA9PiBwYXR0ZXJuLnN0YXJ0c1dpdGgoXCIhXCIpKS5tYXAoKHBhdHRlcm4pID0+IHBhdHRlcm4uc2xpY2UoMSkpO1xucGFja2FnZS1tYW5hZ2VyLnRzOjY4NDogICBjb25zdCBmb3JjZUluY2x1ZGVzID0gb3ZlcnJpZGVzLmZpbHRlcigocGF0dGVybikgPT4gcGF0dGVybi5zdGFydHNXaXRoKFwiK1wiKSkubWFwKChwYXR0ZXJuKSA9PiBwYXR0ZXJuLnNsaWNlKDEpKTtcbnBhY2thZ2UtbWFuYWdlci50czo2ODU6ICAgY29uc3QgZm9yY2VFeGNsdWRlcyA9IG92ZXJyaWRlcy5maWx0ZXIoKHBhdHRlcm4pID0+IHBhdHRlcm4uc3RhcnRzV2l0aChcIi1cIikpLm1hcCgocGF0dGVybikgPT4gcGF0dGVybi5zbGljZSgxKSk7XG5wYWNrYWdlLW1hbmFnZXIudHM6Njg2OiAgIFxucGFja2FnZS1tYW5hZ2VyLnRzOjY4NzogICBsZXQgZW5hYmxlZCA9IHRydWU7XG5wYWNrYWdlLW1hbmFnZXIudHM6Njg4OiAgIGlmIChleGNsdWRlcy5sZW5ndGggPiAwICYmIG1hdGNoZXNBbnlQYXR0ZXJuKGZpbGVQYXRoLCBleGNsdWRlcywgYmFzZURpcikpIHtcbnBhY2thZ2UtbWFuYWdlci50czo2ODk6ICAgZW5hYmxlZCA9IGZhbHNlOyJ9XSwiZGV0YWlscyI6eyJtYXRjaENvdW50IjoxLCJtYXRjaGVzIjpbeyJwYXRoIjoicGFja2FnZS1tYW5hZ2VyLnRzIiwibGluZSI6NjczLCJ0ZXh0IjoiICByZXR1cm4gbm9ybWFsaXplZCA9PT0gcGFyZW50UmVsIHx8IG5vcm1hbGl6ZWQgPT09IHBhcmVudERpclBvc2l4OyJ9LHsicGF0aCI6InBhY2thZ2UtbWFuYWdlci50cyIsImxpbmUiOjY3NCwidGV4dCI6IiAgfSk7In0seyJwYXRoIjoicGFja2FnZS1tYW5hZ2VyLnRzIiwibGluZSI6Njc1LCJ0ZXh0IjoiICB9In0seyJwYXRoIjoicGFja2FnZS1tYW5hZ2VyLnRzIiwibGluZSI6Njc2LCJ0ZXh0IjoiICAifSx7InBhdGgiOiJwYWNrYWdlLW1hbmFnZXIudHMiLCJsaW5lIjo2NzcsInRleHQiOiIgIGZ1bmN0aW9uIGdldE92ZXJyaWRlUGF0dGVybnMoZW50cmllczogc3RyaW5nW10pOiBzdHJpbmdbXSB7In0seyJwYXRoIjoicGFja2FnZS1tYW5hZ2VyLnRzIiwibGluZSI6Njc4LCJ0ZXh0IjoiICByZXR1cm4gZW50cmllcy5maWx0ZXIoKHBhdHRlcm4pID0+IHBhdHRlcm4uc3RhcnRzV2l0aChcIiFcIikgfHwgcGF0dGVybi5zdGFydHNXaXRoKFwiK1wiKSB8fCBwYXR0ZXJuLnN0YXJ0c1dpdGgoXCItXCIpKTsifSx7InBhdGgiOiJwYWNrYWdlLW1hbmFnZXIudHMiLCJsaW5lIjo2NzksInRleHQiOiIgIH0ifSx7InBhdGgiOiJwYWNrYWdlLW1hbmFnZXIudHMiLCJsaW5lIjo2ODAsInRleHQiOiIgICJ9LHsicGF0aCI6InBhY2thZ2UtbWFuYWdlci50cyIsImxpbmUiOjY4MSwidGV4dCI6ImZ1bmN0aW9uIGlzRW5hYmxlZEJ5T3ZlcnJpZGVzKGZpbGVQYXRoOiBzdHJpbmcsIHBhdHRlcm5zOiBzdHJpbmdbXSwgYmFzZURpcjogc3RyaW5nKTogYm9vbGVhbiB7In0seyJwYXRoIjoicGFja2FnZS1tYW5hZ2VyLnRzIiwibGluZSI6NjgyLCJ0ZXh0IjoiICBjb25zdCBvdmVycmlkZXMgPSBnZXRPdmVycmlkZVBhdHRlcm5zKHBhdHRlcm5zKTsifSx7InBhdGgiOiJwYWNrYWdlLW1hbmFnZXIudHMiLCJsaW5lIjo2ODMsInRleHQiOiIgIGNvbnN0IGV4Y2x1ZGVzID0gb3ZlcnJpZGVzLmZpbHRlcigocGF0dGVybikgPT4gcGF0dGVybi5zdGFydHNXaXRoKFwiIVwiKSkubWFwKChwYXR0ZXJuKSA9PiBwYXR0ZXJuLnNsaWNlKDEpKTsifSx7InBhdGgiOiJwYWNrYWdlLW1hbmFnZXIudHMiLCJsaW5lIjo2ODQsInRleHQiOiIgIGNvbnN0IGZvcmNlSW5jbHVkZXMgPSBvdmVycmlkZXMuZmlsdGVyKChwYXR0ZXJuKSA9PiBwYXR0ZXJuLnN0YXJ0c1dpdGgoXCIrXCIpKS5tYXAoKHBhdHRlcm4pID0+IHBhdHRlcm4uc2xpY2UoMSkpOyJ9LHsicGF0aCI6InBhY2thZ2UtbWFuYWdlci50cyIsImxpbmUiOjY4NSwidGV4dCI6IiAgY29uc3QgZm9yY2VFeGNsdWRlcyA9IG92ZXJyaWRlcy5maWx0ZXIoKHBhdHRlcm4pID0+IHBhdHRlcm4uc3RhcnRzV2l0aChcIi1cIikpLm1hcCgocGF0dGVybikgPT4gcGF0dGVybi5zbGljZSgxKSk7In0seyJwYXRoIjoicGFja2FnZS1tYW5hZ2VyLnRzIiwibGluZSI6Njg2LCJ0ZXh0IjoiICAifSx7InBhdGgiOiJwYWNrYWdlLW1hbmFnZXIudHMiLCJsaW5lIjo2ODcsInRleHQiOiIgIGxldCBlbmFibGVkID0gdHJ1ZTsifSx7InBhdGgiOiJwYWNrYWdlLW1hbmFnZXIudHMiLCJsaW5lIjo2ODgsInRleHQiOiIgIGlmIChleGNsdWRlcy5sZW5ndGggPiAwICYmIG1hdGNoZXNBbnlQYXR0ZXJuKGZpbGVQYXRoLCBleGNsdWRlcywgYmFzZURpcikpIHsifSx7InBhdGgiOiJwYWNrYWdlLW1hbmFnZXIudHMiLCJsaW5lIjo2ODksInRleHQiOiIgIGVuYWJsZWQgPSBmYWxzZTsifV19LCJpc0Vycm9yIjpmYWxzZSwidGltZXN0YW1wIjoxNzc3NTM1ODU1MzA5fX0seyJ0eXBlIjoibWVzc2FnZSIsImlkIjoiMTdlZTA1N2MiLCJwYXJlbnRJZCI6IjU4ZTIyMTExIiwidGltZXN0YW1wIjoiMjAyNi0wNC0zMFQwNzo1NzozNy4zNDZaIiwibWVzc2FnZSI6eyJyb2xlIjoiYXNzaXN0YW50IiwiY29udGVudCI6W3sidHlwZSI6InRvb2xDYWxsIiwiaWQiOiJjYWxsX21ub0NVaWR4WGR4ODJGWmpLMnp0VTR3UHxmY18wMjdmMWVhMTVkZWYzNTA1MDE2OWYzMGI3MGY5ZGM4MTkxYWVmODkzZGFjOGZmZDFlZSIsIm5hbWUiOiJyZWFkIiwiYXJndW1lbnRzIjp7InBhdGgiOiJwYWNrYWdlcy9jb2RpbmctYWdlbnQvc3JjL2NvcmUvcGFja2FnZS1tYW5hZ2VyLnRzIiwib2Zmc2V0Ijo2ODEsImxpbWl0Ijo0NX19XSwiYXBpIjoib3BlbmFpLWNvZGV4LXJlc3BvbnNlcyIsInByb3ZpZGVyIjoib3BlbmFpLWNvZGV4IiwibW9kZWwiOiJncHQtNS41IiwidXNhZ2UiOnsiaW5wdXQiOjY5OCwib3V0cHV0IjozMywiY2FjaGVSZWFkIjoxNjM4NCwiY2FjaGVXcml0ZSI6MCwidG90YWxUb2tlbnMiOjE3MTE1LCJjb3N0Ijp7ImlucHV0IjowLjAwMzQ5MDAwMDAwMDAwMDAwMDUsIm91dHB1dCI6MC4wMDA5OSwiY2FjaGVSZWFkIjowLjAwODE5MiwiY2FjaGVXcml0ZSI6MCwidG90YWwiOjAuMDEyNjcyfX0sInN0b3BSZWFzb24iOiJ0b29sVXNlIiwidGltZXN0YW1wIjoxNzc3NTM1ODU1MzA5LCJyZXNwb25zZUlkIjoicmVzcF8wMjdmMWVhMTVkZWYzNTA1MDE2OWYzMGI2ZmRhM2M4MTkxODFjNmZhZDg4N2FhNjhmNCJ9fSx7InR5cGUiOiJtZXNzYWdlIiwiaWQiOiI5M2QyZGNiMyIsInBhcmVudElkIjoiMTdlZTA1N2MiLCJ0aW1lc3RhbXAiOiIyMDI2LTA0LTMwVDA3OjU3OjM3LjM1MVoiLCJtZXNzYWdlIjp7InJvbGUiOiJ0b29sUmVzdWx0IiwidG9vbENhbGxJZCI6ImNhbGxfbW5vQ1VpZHhYZHg4MkZaaksyenRVNHdQfGZjXzAyN2YxZWExNWRlZjM1MDUwMTY5ZjMwYjcwZjlkYzgxOTFhZWY4OTNkYWM4ZmZkMWVlIiwidG9vbE5hbWUiOiJyZWFkIiwiY29udGVudCI6W3sidHlwZSI6InRleHQiLCJ0ZXh0IjoiZnVuY3Rpb24gaXNFbmFibGVkQnlPdmVycmlkZXMoZmlsZVBhdGg6IHN0cmluZywgcGF0dGVybnM6IHN0cmluZ1tdLCBiYXNlRGlyOiBzdHJpbmcpOiBib29sZWFuIHtcblx0Y29uc3Qgb3ZlcnJpZGVzID0gZ2V0T3ZlcnJpZGVQYXR0ZXJucyhwYXR0ZXJucyk7XG5cdGNvbnN0IGV4Y2x1ZGVzID0gb3ZlcnJpZGVzLmZpbHRlcigocGF0dGVybikgPT4gcGF0dGVybi5zdGFydHNXaXRoKFwiIVwiKSkubWFwKChwYXR0ZXJuKSA9PiBwYXR0ZXJuLnNsaWNlKDEpKTtcblx0Y29uc3QgZm9yY2VJbmNsdWRlcyA9IG92ZXJyaWRlcy5maWx0ZXIoKHBhdHRlcm4pID0+IHBhdHRlcm4uc3RhcnRzV2l0aChcIitcIikpLm1hcCgocGF0dGVybikgPT4gcGF0dGVybi5zbGljZSgxKSk7XG5cdGNvbnN0IGZvcmNlRXhjbHVkZXMgPSBvdmVycmlkZXMuZmlsdGVyKChwYXR0ZXJuKSA9PiBwYXR0ZXJuLnN0YXJ0c1dpdGgoXCItXCIpKS5tYXAoKHBhdHRlcm4pID0+IHBhdHRlcm4uc2xpY2UoMSkpO1xuXG5cdGxldCBlbmFibGVkID0gdHJ1ZTtcblx0aWYgKGV4Y2x1ZGVzLmxlbmd0aCA+IDAgJiYgbWF0Y2hlc0FueVBhdHRlcm4oZmlsZVBhdGgsIGV4Y2x1ZGVzLCBiYXNlRGlyKSkge1xuXHRcdGVuYWJsZWQgPSBmYWxzZTtcblx0fVxuXHRpZiAoZm9yY2VJbmNsdWRlcy5sZW5ndGggPiAwICYmIG1hdGNoZXNBbnlFeGFjdFBhdHRlcm4oZmlsZVBhdGgsIGZvcmNlSW5jbHVkZXMsIGJhc2VEaXIpKSB7XG5cdFx0ZW5hYmxlZCA9IHRydWU7XG5cdH1cblx0aWYgKGZvcmNlRXhjbHVkZXMubGVuZ3RoID4gMCAmJiBtYXRjaGVzQW55RXhhY3RQYXR0ZXJuKGZpbGVQYXRoLCBmb3JjZUV4Y2x1ZGVzLCBiYXNlRGlyKSkge1xuXHRcdGVuYWJsZWQgPSBmYWxzZTtcblx0fVxuXHRyZXR1cm4gZW5hYmxlZDtcbn1cblxuLyoqXG4gKiBBcHBseSBwYXR0ZXJucyB0byBwYXRocyBhbmQgcmV0dXJuIGEgU2V0IG9mIGVuYWJsZWQgcGF0aHMuXG4gKiBQYXR0ZXJuIHR5cGVzOlxuICogLSBQbGFpbiBwYXR0ZXJuczogaW5jbHVkZSBtYXRjaGluZyBwYXRoc1xuICogLSBgIXBhdHRlcm5gOiBleGNsdWRlIG1hdGNoaW5nIHBhdGhzXG4gKiAtIGArcGF0aGA6IGZvcmNlLWluY2x1ZGUgZXhhY3QgcGF0aCAob3ZlcnJpZGVzIGV4Y2x1c2lvbnMpXG4gKiAtIGAtcGF0aGA6IGZvcmNlLWV4Y2x1ZGUgZXhhY3QgcGF0aCAob3ZlcnJpZGVzIGZvcmNlLWluY2x1ZGVzKVxuICovXG5mdW5jdGlvbiBhcHBseVBhdHRlcm5zKGFsbFBhdGhzOiBzdHJpbmdbXSwgcGF0dGVybnM6IHN0cmluZ1tdLCBiYXNlRGlyOiBzdHJpbmcpOiBTZXQ8c3RyaW5nPiB7XG5cdGNvbnN0IGluY2x1ZGVzOiBzdHJpbmdbXSA9IFtdO1xuXHRjb25zdCBleGNsdWRlczogc3RyaW5nW10gPSBbXTtcblx0Y29uc3QgZm9yY2VJbmNsdWRlczogc3RyaW5nW10gPSBbXTtcblx0Y29uc3QgZm9yY2VFeGNsdWRlczogc3RyaW5nW10gPSBbXTtcblxuXHRmb3IgKGNvbnN0IHAgb2YgcGF0dGVybnMpIHtcblx0XHRpZiAocC5zdGFydHNXaXRoKFwiK1wiKSkge1xuXHRcdFx0Zm9yY2VJbmNsdWRlcy5wdXNoKHAuc2xpY2UoMSkpO1xuXHRcdH0gZWxzZSBpZiAocC5zdGFydHNXaXRoKFwiLVwiKSkge1xuXHRcdFx0Zm9yY2VFeGNsdWRlcy5wdXNoKHAuc2xpY2UoMSkpO1xuXHRcdH0gZWxzZSBpZiAocC5zdGFydHNXaXRoKFwiIVwiKSkge1xuXHRcdFx0ZXhjbHVkZXMucHVzaChwLnNsaWNlKDEpKTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0aW5jbHVkZXMucHVzaChwKTtcblx0XHR9XG5cdH1cblxuXG5bMTcxOSBtb3JlIGxpbmVzIGluIGZpbGUuIFVzZSBvZmZzZXQ9NzI2IHRvIGNvbnRpbnVlLl0ifV0sImlzRXJyb3IiOmZhbHNlLCJ0aW1lc3RhbXAiOjE3Nzc1MzU4NTczNTF9fSx7InR5cGUiOiJtZXNzYWdlIiwiaWQiOiJlZjJhNjIyMyIsInBhcmVudElkIjoiOTNkMmRjYjMiLCJ0aW1lc3RhbXAiOiIyMDI2LTA0LTMwVDA3OjU3OjQwLjIxOVoiLCJtZXNzYWdlIjp7InJvbGUiOiJhc3Npc3RhbnQiLCJjb250ZW50IjpbeyJ0eXBlIjoidG9vbENhbGwiLCJpZCI6ImNhbGxfYzMzOURGRjhKZ1lFTXp2SFE3QklTRnhWfGZjXzAyN2YxZWExNWRlZjM1MDUwMTY5ZjMwYjczOWU0YzgxOTE5MWNjZDdmYTUzNjBjMjM1IiwibmFtZSI6ImdyZXAiLCJhcmd1bWVudHMiOnsicGF0dGVybiI6ImZ1bmN0aW9uIG1hdGNoZXNBbnlQYXR0ZXJufGZ1bmN0aW9uIG1hdGNoZXNBbnlFeGFjdFBhdHRlcm4iLCJwYXRoIjoicGFja2FnZXMvY29kaW5nLWFnZW50L3NyYy9jb3JlL3BhY2thZ2UtbWFuYWdlci50cyIsImNvbnRleHQiOjZ9fV0sImFwaSI6Im9wZW5haS1jb2RleC1yZXNwb25zZXMiLCJwcm92aWRlciI6Im9wZW5haS1jb2RleCIsIm1vZGVsIjoiZ3B0LTUuNSIsInVzYWdlIjp7ImlucHV0Ijo2NjQsIm91dHB1dCI6NDMsImNhY2hlUmVhZCI6MTY4OTYsImNhY2hlV3JpdGUiOjAsInRvdGFsVG9rZW5zIjoxNzYwMywiY29zdCI6eyJpbnB1dCI6MC4wMDMzMjAwMDAwMDAwMDAwMDA1LCJvdXRwdXQiOjAuMDAxMjkwMDAwMDAwMDAwMDAwMSwiY2FjaGVSZWFkIjowLjAwODQ0Nzk5OTk5OTk5OTk5OSwiY2FjaGVXcml0ZSI6MCwidG90YWwiOjAuMDEzMDU4fX0sInN0b3BSZWFzb24iOiJ0b29sVXNlIiwidGltZXN0YW1wIjoxNzc3NTM1ODU3MzUyLCJyZXNwb25zZUlkIjoicmVzcF8wMjdmMWVhMTVkZWYzNTA1MDE2OWYzMGI3MWRiY2M4MTkxODYzNjVkODc2ODk3MmY5NSJ9fSx7InR5cGUiOiJtZXNzYWdlIiwiaWQiOiI3Y2M2NTdhZCIsInBhcmVudElkIjoiZWYyYTYyMjMiLCJ0aW1lc3RhbXAiOiIyMDI2LTA0LTMwVDA3OjU3OjQwLjIyNloiLCJtZXNzYWdlIjp7InJvbGUiOiJ0b29sUmVzdWx0IiwidG9vbENhbGxJZCI6ImNhbGxfYzMzOURGRjhKZ1lFTXp2SFE3QklTRnhWfGZjXzAyN2YxZWExNWRlZjM1MDUwMTY5ZjMwYjczOWU0YzgxOTE5MWNjZDdmYTUzNjBjMjM1IiwidG9vbE5hbWUiOiJncmVwIiwiY29udGVudCI6W3sidHlwZSI6InRleHQiLCJ0ZXh0IjoicGFja2FnZS1tYW5hZ2VyLnRzOjYxODogICBpZiAocmVzb3VyY2VUeXBlID09PSBcImV4dGVuc2lvbnNcIikge1xucGFja2FnZS1tYW5hZ2VyLnRzOjYxOTogICByZXR1cm4gY29sbGVjdEF1dG9FeHRlbnNpb25FbnRyaWVzKGRpcik7XG5wYWNrYWdlLW1hbmFnZXIudHM6NjIwOiAgIH1cbnBhY2thZ2UtbWFuYWdlci50czo2MjE6ICAgcmV0dXJuIGNvbGxlY3RGaWxlcyhkaXIsIEZJTEVfUEFUVEVSTlNbcmVzb3VyY2VUeXBlXSk7XG5wYWNrYWdlLW1hbmFnZXIudHM6NjIyOiAgIH1cbnBhY2thZ2UtbWFuYWdlci50czo2MjM6ICAgXG5wYWNrYWdlLW1hbmFnZXIudHM6NjI0OiBmdW5jdGlvbiBtYXRjaGVzQW55UGF0dGVybihmaWxlUGF0aDogc3RyaW5nLCBwYXR0ZXJuczogc3RyaW5nW10sIGJhc2VEaXI6IHN0cmluZyk6IGJvb2xlYW4ge1xucGFja2FnZS1tYW5hZ2VyLnRzOjYyNTogICBjb25zdCByZWwgPSB0b1Bvc2l4UGF0aChyZWxhdGl2ZShiYXNlRGlyLCBmaWxlUGF0aCkpO1xucGFja2FnZS1tYW5hZ2VyLnRzOjYyNjogICBjb25zdCBuYW1lID0gYmFzZW5hbWUoZmlsZVBhdGgpO1xucGFja2FnZS1tYW5hZ2VyLnRzOjYyNzogICBjb25zdCBmaWxlUGF0aFBvc2l4ID0gdG9Qb3NpeFBhdGgoZmlsZVBhdGgpO1xucGFja2FnZS1tYW5hZ2VyLnRzOjYyODogICBjb25zdCBpc1NraWxsRmlsZSA9IG5hbWUgPT09IFwiU0tJTEwubWRcIjtcbnBhY2thZ2UtbWFuYWdlci50czo2Mjk6ICAgY29uc3QgcGFyZW50RGlyID0gaXNTa2lsbEZpbGUgPyBkaXJuYW1lKGZpbGVQYXRoKSA6IHVuZGVmaW5lZDtcbnBhY2thZ2UtbWFuYWdlci50czo2MzA6ICAgY29uc3QgcGFyZW50UmVsID0gaXNTa2lsbEZpbGUgPyB0b1Bvc2l4UGF0aChyZWxhdGl2ZShiYXNlRGlyLCBwYXJlbnREaXIhKSkgOiB1bmRlZmluZWQ7XG5wYWNrYWdlLW1hbmFnZXIudHM6NjUxOiAgIFxucGFja2FnZS1tYW5hZ2VyLnRzOjY1MjogICBmdW5jdGlvbiBub3JtYWxpemVFeGFjdFBhdHRlcm4ocGF0dGVybjogc3RyaW5nKTogc3RyaW5nIHtcbnBhY2thZ2UtbWFuYWdlci50czo2NTM6ICAgY29uc3Qgbm9ybWFsaXplZCA9IHBhdHRlcm4uc3RhcnRzV2l0aChcIi4vXCIpIHx8IHBhdHRlcm4uc3RhcnRzV2l0aChcIi5cXFxcXCIpID8gcGF0dGVybi5zbGljZSgyKSA6IHBhdHRlcm47XG5wYWNrYWdlLW1hbmFnZXIudHM6NjU0OiAgIHJldHVybiB0b1Bvc2l4UGF0aChub3JtYWxpemVkKTtcbnBhY2thZ2UtbWFuYWdlci50czo2NTU6ICAgfVxucGFja2FnZS1tYW5hZ2VyLnRzOjY1NjogICBcbnBhY2thZ2UtbWFuYWdlci50czo2NTc6IGZ1bmN0aW9uIG1hdGNoZXNBbnlFeGFjdFBhdHRlcm4oZmlsZVBhdGg6IHN0cmluZywgcGF0dGVybnM6IHN0cmluZ1tdLCBiYXNlRGlyOiBzdHJpbmcpOiBib29sZWFuIHtcbnBhY2thZ2UtbWFuYWdlci50czo2NTg6ICAgaWYgKHBhdHRlcm5zLmxlbmd0aCA9PT0gMCkgcmV0dXJuIGZhbHNlO1xucGFja2FnZS1tYW5hZ2VyLnRzOjY1OTogICBjb25zdCByZWwgPSB0b1Bvc2l4UGF0aChyZWxhdGl2ZShiYXNlRGlyLCBmaWxlUGF0aCkpO1xucGFja2FnZS1tYW5hZ2VyLnRzOjY2MDogICBjb25zdCBuYW1lID0gYmFzZW5hbWUoZmlsZVBhdGgpO1xucGFja2FnZS1tYW5hZ2VyLnRzOjY2MTogICBjb25zdCBmaWxlUGF0aFBvc2l4ID0gdG9Qb3NpeFBhdGgoZmlsZVBhdGgpO1xucGFja2FnZS1tYW5hZ2VyLnRzOjY2MjogICBjb25zdCBpc1NraWxsRmlsZSA9IG5hbWUgPT09IFwiU0tJTEwubWRcIjtcbnBhY2thZ2UtbWFuYWdlci50czo2NjM6ICAgY29uc3QgcGFyZW50RGlyID0gaXNTa2lsbEZpbGUgPyBkaXJuYW1lKGZpbGVQYXRoKSA6IHVuZGVmaW5lZDsifV0sImRldGFpbHMiOnsibWF0Y2hDb3VudCI6MiwibWF0Y2hlcyI6W3sicGF0aCI6InBhY2thZ2UtbWFuYWdlci50cyIsImxpbmUiOjYxOCwidGV4dCI6IiAgaWYgKHJlc291cmNlVHlwZSA9PT0gXCJleHRlbnNpb25zXCIpIHsifSx7InBhdGgiOiJwYWNrYWdlLW1hbmFnZXIudHMiLCJsaW5lIjo2MTksInRleHQiOiIgIHJldHVybiBjb2xsZWN0QXV0b0V4dGVuc2lvbkVudHJpZXMoZGlyKTsifSx7InBhdGgiOiJwYWNrYWdlLW1hbmFnZXIudHMiLCJsaW5lIjo2MjAsInRleHQiOiIgIH0ifSx7InBhdGgiOiJwYWNrYWdlLW1hbmFnZXIudHMiLCJsaW5lIjo2MjEsInRleHQiOiIgIHJldHVybiBjb2xsZWN0RmlsZXMoZGlyLCBGSUxFX1BBVFRFUk5TW3Jlc291cmNlVHlwZV0pOyJ9LHsicGF0aCI6InBhY2thZ2UtbWFuYWdlci50cyIsImxpbmUiOjYyMiwidGV4dCI6IiAgfSJ9LHsicGF0aCI6InBhY2thZ2UtbWFuYWdlci50cyIsImxpbmUiOjYyMywidGV4dCI6IiAgIn0seyJwYXRoIjoicGFja2FnZS1tYW5hZ2VyLnRzIiwibGluZSI6NjI0LCJ0ZXh0IjoiZnVuY3Rpb24gbWF0Y2hlc0FueVBhdHRlcm4oZmlsZVBhdGg6IHN0cmluZywgcGF0dGVybnM6IHN0cmluZ1tdLCBiYXNlRGlyOiBzdHJpbmcpOiBib29sZWFuIHsifSx7InBhdGgiOiJwYWNrYWdlLW1hbmFnZXIudHMiLCJsaW5lIjo2MjUsInRleHQiOiIgIGNvbnN0IHJlbCA9IHRvUG9zaXhQYXRoKHJlbGF0aXZlKGJhc2VEaXIsIGZpbGVQYXRoKSk7In0seyJwYXRoIjoicGFja2FnZS1tYW5hZ2VyLnRzIiwibGluZSI6NjI2LCJ0ZXh0IjoiICBjb25zdCBuYW1lID0gYmFzZW5hbWUoZmlsZVBhdGgpOyJ9LHsicGF0aCI6InBhY2thZ2UtbWFuYWdlci50cyIsImxpbmUiOjYyNywidGV4dCI6IiAgY29uc3QgZmlsZVBhdGhQb3NpeCA9IHRvUG9zaXhQYXRoKGZpbGVQYXRoKTsifSx7InBhdGgiOiJwYWNrYWdlLW1hbmFnZXIudHMiLCJsaW5lIjo2MjgsInRleHQiOiIgIGNvbnN0IGlzU2tpbGxGaWxlID0gbmFtZSA9PT0gXCJTS0lMTC5tZFwiOyJ9LHsicGF0aCI6InBhY2thZ2UtbWFuYWdlci50cyIsImxpbmUiOjYyOSwidGV4dCI6IiAgY29uc3QgcGFyZW50RGlyID0gaXNTa2lsbEZpbGUgPyBkaXJuYW1lKGZpbGVQYXRoKSA6IHVuZGVmaW5lZDsifSx7InBhdGgiOiJwYWNrYWdlLW1hbmFnZXIudHMiLCJsaW5lIjo2MzAsInRleHQiOiIgIGNvbnN0IHBhcmVudFJlbCA9IGlzU2tpbGxGaWxlID8gdG9Qb3NpeFBhdGgocmVsYXRpdmUoYmFzZURpciwgcGFyZW50RGlyISkpIDogdW5kZWZpbmVkOyJ9LHsicGF0aCI6InBhY2thZ2UtbWFuYWdlci50cyIsImxpbmUiOjY1MSwidGV4dCI6IiAgIn0seyJwYXRoIjoicGFja2FnZS1tYW5hZ2VyLnRzIiwibGluZSI6NjUyLCJ0ZXh0IjoiICBmdW5jdGlvbiBub3JtYWxpemVFeGFjdFBhdHRlcm4ocGF0dGVybjogc3RyaW5nKTogc3RyaW5nIHsifSx7InBhdGgiOiJwYWNrYWdlLW1hbmFnZXIudHMiLCJsaW5lIjo2NTMsInRleHQiOiIgIGNvbnN0IG5vcm1hbGl6ZWQgPSBwYXR0ZXJuLnN0YXJ0c1dpdGgoXCIuL1wiKSB8fCBwYXR0ZXJuLnN0YXJ0c1dpdGgoXCIuXFxcXFwiKSA/IHBhdHRlcm4uc2xpY2UoMikgOiBwYXR0ZXJuOyJ9LHsicGF0aCI6InBhY2thZ2UtbWFuYWdlci50cyIsImxpbmUiOjY1NCwidGV4dCI6IiAgcmV0dXJuIHRvUG9zaXhQYXRoKG5vcm1hbGl6ZWQpOyJ9LHsicGF0aCI6InBhY2thZ2UtbWFuYWdlci50cyIsImxpbmUiOjY1NSwidGV4dCI6IiAgfSJ9LHsicGF0aCI6InBhY2thZ2UtbWFuYWdlci50cyIsImxpbmUiOjY1NiwidGV4dCI6IiAgIn0seyJwYXRoIjoicGFja2FnZS1tYW5hZ2VyLnRzIiwibGluZSI6NjU3LCJ0ZXh0IjoiZnVuY3Rpb24gbWF0Y2hlc0FueUV4YWN0UGF0dGVybihmaWxlUGF0aDogc3RyaW5nLCBwYXR0ZXJuczogc3RyaW5nW10sIGJhc2VEaXI6IHN0cmluZyk6IGJvb2xlYW4geyJ9LHsicGF0aCI6InBhY2thZ2UtbWFuYWdlci50cyIsImxpbmUiOjY1OCwidGV4dCI6IiAgaWYgKHBhdHRlcm5zLmxlbmd0aCA9PT0gMCkgcmV0dXJuIGZhbHNlOyJ9LHsicGF0aCI6InBhY2thZ2UtbWFuYWdlci50cyIsImxpbmUiOjY1OSwidGV4dCI6IiAgY29uc3QgcmVsID0gdG9Qb3NpeFBhdGgocmVsYXRpdmUoYmFzZURpciwgZmlsZVBhdGgpKTsifSx7InBhdGgiOiJwYWNrYWdlLW1hbmFnZXIudHMiLCJsaW5lIjo2NjAsInRleHQiOiIgIGNvbnN0IG5hbWUgPSBiYXNlbmFtZShmaWxlUGF0aCk7In0seyJwYXRoIjoicGFja2FnZS1tYW5hZ2VyLnRzIiwibGluZSI6NjYxLCJ0ZXh0IjoiICBjb25zdCBmaWxlUGF0aFBvc2l4ID0gdG9Qb3NpeFBhdGgoZmlsZVBhdGgpOyJ9LHsicGF0aCI6InBhY2thZ2UtbWFuYWdlci50cyIsImxpbmUiOjY2MiwidGV4dCI6IiAgY29uc3QgaXNTa2lsbEZpbGUgPSBuYW1lID09PSBcIlNLSUxMLm1kXCI7In0seyJwYXRoIjoicGFja2FnZS1tYW5hZ2VyLnRzIiwibGluZSI6NjYzLCJ0ZXh0IjoiICBjb25zdCBwYXJlbnREaXIgPSBpc1NraWxsRmlsZSA/IGRpcm5hbWUoZmlsZVBhdGgpIDogdW5kZWZpbmVkOyJ9XX0sImlzRXJyb3IiOmZhbHNlLCJ0aW1lc3RhbXAiOjE3Nzc1MzU4NjAyMjZ9fSx7InR5cGUiOiJtZXNzYWdlIiwiaWQiOiI2Y2MyOWY1YSIsInBhcmVudElkIjoiN2NjNjU3YWQiLCJ0aW1lc3RhbXAiOiIyMDI2LTA0LTMwVDA3OjU3OjQzLjQ0OFoiLCJtZXNzYWdlIjp7InJvbGUiOiJhc3Npc3RhbnQiLCJjb250ZW50IjpbeyJ0eXBlIjoidG9vbENhbGwiLCJpZCI6ImNhbGxfRmFFeDNacDFIdWd6c2o0bGNaVjRPdmxhfGZjXzAyN2YxZWExNWRlZjM1MDUwMTY5ZjMwYjc3MGYwYzgxOTFhN2YwODQzYjlmNDQ2MWI2IiwibmFtZSI6InJlYWQiLCJhcmd1bWVudHMiOnsicGF0aCI6InBhY2thZ2VzL2NvZGluZy1hZ2VudC9zcmMvY29yZS9wYWNrYWdlLW1hbmFnZXIudHMiLCJvZmZzZXQiOjYyNCwibGltaXQiOjU1fX1dLCJhcGkiOiJvcGVuYWktY29kZXgtcmVzcG9uc2VzIiwicHJvdmlkZXIiOiJvcGVuYWktY29kZXgiLCJtb2RlbCI6ImdwdC01LjUiLCJ1c2FnZSI6eyJpbnB1dCI6NjU3LCJvdXRwdXQiOjMzLCJjYWNoZVJlYWQiOjE3NDA4LCJjYWNoZVdyaXRlIjowLCJ0b3RhbFRva2VucyI6MTgwOTgsImNvc3QiOnsiaW5wdXQiOjAuMDAzMjg1LCJvdXRwdXQiOjAuMDAwOTksImNhY2hlUmVhZCI6MC4wMDg3MDQsImNhY2hlV3JpdGUiOjAsInRvdGFsIjowLjAxMjk3OTAwMDAwMDAwMDAwMX19LCJzdG9wUmVhc29uIjoidG9vbFVzZSIsInRpbWVzdGFtcCI6MTc3NzUzNTg2MDIyNiwicmVzcG9uc2VJZCI6InJlc3BfMDI3ZjFlYTE1ZGVmMzUwNTAxNjlmMzBiNzRiZGZjODE5MTk3Zjc0YmUzYWJjYTJiOTgifX0seyJ0eXBlIjoibWVzc2FnZSIsImlkIjoiMTM3ZmQ5YmIiLCJwYXJlbnRJZCI6IjZjYzI5ZjVhIiwidGltZXN0YW1wIjoiMjAyNi0wNC0zMFQwNzo1Nzo0My40NTJaIiwibWVzc2FnZSI6eyJyb2xlIjoidG9vbFJlc3VsdCIsInRvb2xDYWxsSWQiOiJjYWxsX0ZhRXgzWnAxSHVnenNqNGxjWlY0T3ZsYXxmY18wMjdmMWVhMTVkZWYzNTA1MDE2OWYzMGI3NzBmMGM4MTkxYTdmMDg0M2I5ZjQ0NjFiNiIsInRvb2xOYW1lIjoicmVhZCIsImNvbnRlbnQiOlt7InR5cGUiOiJ0ZXh0IiwidGV4dCI6ImZ1bmN0aW9uIG1hdGNoZXNBbnlQYXR0ZXJuKGZpbGVQYXRoOiBzdHJpbmcsIHBhdHRlcm5zOiBzdHJpbmdbXSwgYmFzZURpcjogc3RyaW5nKTogYm9vbGVhbiB7XG5cdGNvbnN0IHJlbCA9IHRvUG9zaXhQYXRoKHJlbGF0aXZlKGJhc2VEaXIsIGZpbGVQYXRoKSk7XG5cdGNvbnN0IG5hbWUgPSBiYXNlbmFtZShmaWxlUGF0aCk7XG5cdGNvbnN0IGZpbGVQYXRoUG9zaXggPSB0b1Bvc2l4UGF0aChmaWxlUGF0aCk7XG5cdGNvbnN0IGlzU2tpbGxGaWxlID0gbmFtZSA9PT0gXCJTS0lMTC5tZFwiO1xuXHRjb25zdCBwYXJlbnREaXIgPSBpc1NraWxsRmlsZSA/IGRpcm5hbWUoZmlsZVBhdGgpIDogdW5kZWZpbmVkO1xuXHRjb25zdCBwYXJlbnRSZWwgPSBpc1NraWxsRmlsZSA/IHRvUG9zaXhQYXRoKHJlbGF0aXZlKGJhc2VEaXIsIHBhcmVudERpciEpKSA6IHVuZGVmaW5lZDtcblx0Y29uc3QgcGFyZW50TmFtZSA9IGlzU2tpbGxGaWxlID8gYmFzZW5hbWUocGFyZW50RGlyISkgOiB1bmRlZmluZWQ7XG5cdGNvbnN0IHBhcmVudERpclBvc2l4ID0gaXNTa2lsbEZpbGUgPyB0b1Bvc2l4UGF0aChwYXJlbnREaXIhKSA6IHVuZGVmaW5lZDtcblxuXHRyZXR1cm4gcGF0dGVybnMuc29tZSgocGF0dGVybikgPT4ge1xuXHRcdGNvbnN0IG5vcm1hbGl6ZWRQYXR0ZXJuID0gdG9Qb3NpeFBhdGgocGF0dGVybik7XG5cdFx0aWYgKFxuXHRcdFx0bWluaW1hdGNoKHJlbCwgbm9ybWFsaXplZFBhdHRlcm4pIHx8XG5cdFx0XHRtaW5pbWF0Y2gobmFtZSwgbm9ybWFsaXplZFBhdHRlcm4pIHx8XG5cdFx0XHRtaW5pbWF0Y2goZmlsZVBhdGhQb3NpeCwgbm9ybWFsaXplZFBhdHRlcm4pXG5cdFx0KSB7XG5cdFx0XHRyZXR1cm4gdHJ1ZTtcblx0XHR9XG5cdFx0aWYgKCFpc1NraWxsRmlsZSkgcmV0dXJuIGZhbHNlO1xuXHRcdHJldHVybiAoXG5cdFx0XHRtaW5pbWF0Y2gocGFyZW50UmVsISwgbm9ybWFsaXplZFBhdHRlcm4pIHx8XG5cdFx0XHRtaW5pbWF0Y2gocGFyZW50TmFtZSEsIG5vcm1hbGl6ZWRQYXR0ZXJuKSB8fFxuXHRcdFx0bWluaW1hdGNoKHBhcmVudERpclBvc2l4ISwgbm9ybWFsaXplZFBhdHRlcm4pXG5cdFx0KTtcblx0fSk7XG59XG5cbmZ1bmN0aW9uIG5vcm1hbGl6ZUV4YWN0UGF0dGVybihwYXR0ZXJuOiBzdHJpbmcpOiBzdHJpbmcge1xuXHRjb25zdCBub3JtYWxpemVkID0gcGF0dGVybi5zdGFydHNXaXRoKFwiLi9cIikgfHwgcGF0dGVybi5zdGFydHNXaXRoKFwiLlxcXFxcIikgPyBwYXR0ZXJuLnNsaWNlKDIpIDogcGF0dGVybjtcblx0cmV0dXJuIHRvUG9zaXhQYXRoKG5vcm1hbGl6ZWQpO1xufVxuXG5mdW5jdGlvbiBtYXRjaGVzQW55RXhhY3RQYXR0ZXJuKGZpbGVQYXRoOiBzdHJpbmcsIHBhdHRlcm5zOiBzdHJpbmdbXSwgYmFzZURpcjogc3RyaW5nKTogYm9vbGVhbiB7XG5cdGlmIChwYXR0ZXJucy5sZW5ndGggPT09IDApIHJldHVybiBmYWxzZTtcblx0Y29uc3QgcmVsID0gdG9Qb3NpeFBhdGgocmVsYXRpdmUoYmFzZURpciwgZmlsZVBhdGgpKTtcblx0Y29uc3QgbmFtZSA9IGJhc2VuYW1lKGZpbGVQYXRoKTtcblx0Y29uc3QgZmlsZVBhdGhQb3NpeCA9IHRvUG9zaXhQYXRoKGZpbGVQYXRoKTtcblx0Y29uc3QgaXNTa2lsbEZpbGUgPSBuYW1lID09PSBcIlNLSUxMLm1kXCI7XG5cdGNvbnN0IHBhcmVudERpciA9IGlzU2tpbGxGaWxlID8gZGlybmFtZShmaWxlUGF0aCkgOiB1bmRlZmluZWQ7XG5cdGNvbnN0IHBhcmVudFJlbCA9IGlzU2tpbGxGaWxlID8gdG9Qb3NpeFBhdGgocmVsYXRpdmUoYmFzZURpciwgcGFyZW50RGlyISkpIDogdW5kZWZpbmVkO1xuXHRjb25zdCBwYXJlbnREaXJQb3NpeCA9IGlzU2tpbGxGaWxlID8gdG9Qb3NpeFBhdGgocGFyZW50RGlyISkgOiB1bmRlZmluZWQ7XG5cblx0cmV0dXJuIHBhdHRlcm5zLnNvbWUoKHBhdHRlcm4pID0+IHtcblx0XHRjb25zdCBub3JtYWxpemVkID0gbm9ybWFsaXplRXhhY3RQYXR0ZXJuKHBhdHRlcm4pO1xuXHRcdGlmIChub3JtYWxpemVkID09PSByZWwgfHwgbm9ybWFsaXplZCA9PT0gZmlsZVBhdGhQb3NpeCkge1xuXHRcdFx0cmV0dXJuIHRydWU7XG5cdFx0fVxuXHRcdGlmICghaXNTa2lsbEZpbGUpIHJldHVybiBmYWxzZTtcblx0XHRyZXR1cm4gbm9ybWFsaXplZCA9PT0gcGFyZW50UmVsIHx8IG5vcm1hbGl6ZWQgPT09IHBhcmVudERpclBvc2l4O1xuXHR9KTtcbn1cblxuZnVuY3Rpb24gZ2V0T3ZlcnJpZGVQYXR0ZXJucyhlbnRyaWVzOiBzdHJpbmdbXSk6IHN0cmluZ1tdIHtcblx0cmV0dXJuIGVudHJpZXMuZmlsdGVyKChwYXR0ZXJuKSA9PiBwYXR0ZXJuLnN0YXJ0c1dpdGgoXCIhXCIpIHx8IHBhdHRlcm4uc3RhcnRzV2l0aChcIitcIikgfHwgcGF0dGVybi5zdGFydHNXaXRoKFwiLVwiKSk7XG5cblsxNzY2IG1vcmUgbGluZXMgaW4gZmlsZS4gVXNlIG9mZnNldD02NzkgdG8gY29udGludWUuXSJ9XSwiaXNFcnJvciI6ZmFsc2UsInRpbWVzdGFtcCI6MTc3NzUzNTg2MzQ1Mn19LHsidHlwZSI6Im1lc3NhZ2UiLCJpZCI6IjI2NDFjZjFiIiwicGFyZW50SWQiOiIxMzdmZDliYiIsInRpbWVzdGFtcCI6IjIwMjYtMDQtMzBUMDc6NTc6NDkuODE0WiIsIm1lc3NhZ2UiOnsicm9sZSI6ImFzc2lzdGFudCIsImNvbnRlbnQiOlt7InR5cGUiOiJ0aGlua2luZyIsInRoaW5raW5nIjoiKipJZGVudGlmeWluZyByb290IGNhdXNlcyoqXG5cbkkgbmVlZCB0byBub3RlIHRoYXQgdGhlIG1ldGFkYXRhIGxhY2tzIHRoZSBzb3VyY2UgZm9yIHRoZSBkaXNjb3ZlcmVkIGRpcmVjdG9yeS4gSSdtIHRoaW5raW5nIGFib3V0IGludmVzdGlnYXRpbmcgdGhpcyBmdXJ0aGVyLCBidXQgaWYgdGhlcmUgYXJlbid0IGFueSBjaGFuZ2VzLCBpdCBtaWdodCBub3QgYmUgbmVjZXNzYXJ5LiBDb3VsZCBJIHJ1biBhIHR5cGUgY2hlY2s/IEJ1dCBpZiB0aGVyZSBhcmUgbm8gY2hhbmdlcywgbWF5YmUgdGhhdCdzIG5vdCB0aGUgcmlnaHQgYXBwcm9hY2guIEkgc2hvdWxkIGNvbnNpZGVyIGluc3BlY3RpbmcgdGhlIGNvbGxlY3RBbmNlc3RvckFnZW50c1NraWxsRGlycyB0byBkZWx2ZSBkZWVwZXIgaW50byB0aGUgaXNzdWUuIiwidGhpbmtpbmdTaWduYXR1cmUiOiJ7XCJpZFwiOlwicnNfMDI3ZjFlYTE1ZGVmMzUwNTAxNjlmMzBiN2IxMmMwODE5MWEyMmZiNzFhYjdjNTMwYWRcIixcInR5cGVcIjpcInJlYXNvbmluZ1wiLFwiZW5jcnlwdGVkX2NvbnRlbnRcIjpcImdBQUFBQUJwOHd0OWtVeE9CblNTY2xIYUhQb1dULWx3Sk5zTDk3UmlCNG5YZ1BtanpCMkhnV1hJWWY2YjA2ZXJ0NG5BV2FzeldPSEFwRjlQQzFvRzREX3B5bDBac0JuU0xhWVlpM1JxSUJnSG1jNmZnQ2NHVGF1V0VIUmhBMUVBWkFSMzBmUGFyOHRoZWdDOGhQcDdsS2wzdkpnRW5xdWFSRTE4SzlrU2lxbVZ3dS1kVjlTa3ljSUpYZ2VjZ3pxX2xjbzJjMzRaNURmTFZpMm9xQjFiUlRMTlBpWktJY3BPbWtuYXB3WG1IcFJRc0ZBY2VMR0ZyX0t5ZlZJeEg1UFk5VkNGMTBCcDl4d0JoLUIxVXdCM1JYSmlBT0FfbjhTUnFtd2VDM3JlWnpIanhJUEpRallvZGRIMDlvc1UzZjduM2pwWW5FS3IxZzVlcnU0R0llXzk3NS0td0xqS1VQeFNraHNOTE5yX0xWalVKRDloUlZ5alIzdlN3NlpKX0lWR2hUXzgwOWhBYVVpQjZXbW1idUx5TXhNUm1pM0EyeTJsVGI2Qmp4V1JfS2JCb05pT3pTV25EYm45d0lxaUN1ZnVOcW8tUjBmeE5sVnRuSHl4VkVrOUFmX20xSjFUVTl5VXl3d3dCZjNlamlSN3pnV0o5blNhclRxWUlSaGM3MU82NkNwei02WFNqUExwVWFnV2t5R0RFOEJSM3VlRF9haG9OZi1Vb2JyN0xVZ3lNMndGMXFoTmJnRWRwUzV4QlBoblotWEtJUFZ4TUJxOFJGdktQQnE5T2EweHZKV3VKSjl6b1FWQmY0bERWQXlRUnl4R1JEUDhZNVlWUXVRXzBvdHQwdnJRVlA5cGpDRm5zbnZNU3U0QWwyc01IN1NlVVRPZEFHSm55SGczaGVtdVlLSHB0TE4wN1N5Sk1YWUZmMFk1YXQzU0hNNXY1YzRjVE1veW5Ba2hJYjV0bkcxS3ptV0pOa19NWGtzTHgwS3p5SzVXcE9kOHU0d0YwdVdQLWg2d1Azdm84OUpqWUgySWJMei1rQjBVdUJjN3lMVHdGajlSajExTDFPS3dscU5vd2JDRjQxd1I2bEJub3UtR29DRFdHWi1xZmkxNndNQXlKaTJCdnhkVkZ0allQVTFTSW13SVFMX0dGeEg2V2dicTROTDRUMmVQUXEzTndSOHFCVUkzZENxekdqR2ZUVC1rUTBSR29MRk5Uc25HXzhQZEVXZURRQ3NhUHJlUHFUeXp0YXdHOXFRaElMa0YyZTQ0Rk1yd0FjNFVwY2NjRFJ4ZEpMd3ZNbzBvM090UUFFM3I0WDJROHBJU21Vc3kwM0V2TWhXazAzbFBwRGdudmdkbG44WnhqMnFZN3VYanhOcXp3Z3JEZ1oyWE1NOGdoUk44ck9fd3I0Q0FxSk5hdVpxUnYyUXdpaUJCTWVUT3FucXR5TjN4YzdZTi1DTWVuYzExN1ZwemJTSFQzZzlYd1hWWjNtZEc4RDA3bjVpMEpsVVhETG9VVDRlVnc0bk11RFVlS21iUEtSZ0EzbXlUUnl4WS1xOVV3amZpYWNYWlQzN3hSMUdmbFE9PVwiLFwic3VtbWFyeVwiOlt7XCJ0eXBlXCI6XCJzdW1tYXJ5X3RleHRcIixcInRleHRcIjpcIioqSWRlbnRpZnlpbmcgcm9vdCBjYXVzZXMqKlxcblxcbkkgbmVlZCB0byBub3RlIHRoYXQgdGhlIG1ldGFkYXRhIGxhY2tzIHRoZSBzb3VyY2UgZm9yIHRoZSBkaXNjb3ZlcmVkIGRpcmVjdG9yeS4gSSdtIHRoaW5raW5nIGFib3V0IGludmVzdGlnYXRpbmcgdGhpcyBmdXJ0aGVyLCBidXQgaWYgdGhlcmUgYXJlbid0IGFueSBjaGFuZ2VzLCBpdCBtaWdodCBub3QgYmUgbmVjZXNzYXJ5LiBDb3VsZCBJIHJ1biBhIHR5cGUgY2hlY2s/IEJ1dCBpZiB0aGVyZSBhcmUgbm8gY2hhbmdlcywgbWF5YmUgdGhhdCdzIG5vdCB0aGUgcmlnaHQgYXBwcm9hY2guIEkgc2hvdWxkIGNvbnNpZGVyIGluc3BlY3RpbmcgdGhlIGNvbGxlY3RBbmNlc3RvckFnZW50c1NraWxsRGlycyB0byBkZWx2ZSBkZWVwZXIgaW50byB0aGUgaXNzdWUuXCJ9XX0ifSx7InR5cGUiOiJ0b29sQ2FsbCIsImlkIjoiY2FsbF9vcU9rWld2MzhDR00yc0tQdE1jTDFxTU58ZmNfMDI3ZjFlYTE1ZGVmMzUwNTAxNjlmMzBiN2Q1MmI0ODE5MWEyNWE3NTRkZWM3YWEwMWIiLCJuYW1lIjoiZ3JlcCIsImFyZ3VtZW50cyI6eyJwYXR0ZXJuIjoiZnVuY3Rpb24gY29sbGVjdEFuY2VzdG9yQWdlbnRzU2tpbGxEaXJzfGZ1bmN0aW9uIGNvbGxlY3RTa2lsbEVudHJpZXMiLCJwYXRoIjoicGFja2FnZXMvY29kaW5nLWFnZW50L3NyYy9jb3JlL3BhY2thZ2UtbWFuYWdlci50cyIsImNvbnRleHQiOjV9fV0sImFwaSI6Im9wZW5haS1jb2RleC1yZXNwb25zZXMiLCJwcm92aWRlciI6Im9wZW5haS1jb2RleCIsIm1vZGVsIjoiZ3B0LTUuNSIsInVzYWdlIjp7ImlucHV0Ijo3NDAsIm91dHB1dCI6ODYsImNhY2hlUmVhZCI6MTc5MjAsImNhY2hlV3JpdGUiOjAsInRvdGFsVG9rZW5zIjoxODc0NiwiY29zdCI6eyJpbnB1dCI6MC4wMDM3LCJvdXRwdXQiOjAuMDAyNTgwMDAwMDAwMDAwMDAwMywiY2FjaGVSZWFkIjowLjAwODk2LCJjYWNoZVdyaXRlIjowLCJ0b3RhbCI6MC4wMTUyNH19LCJzdG9wUmVhc29uIjoidG9vbFVzZSIsInRpbWVzdGFtcCI6MTc3NzUzNTg2MzQ1MiwicmVzcG9uc2VJZCI6InJlc3BfMDI3ZjFlYTE1ZGVmMzUwNTAxNjlmMzBiNzgzMDU0ODE5MWE1YzdiZjI3M2VmOTI3MWQifX0seyJ0eXBlIjoibWVzc2FnZSIsImlkIjoiODE5YTc3YjQiLCJwYXJlbnRJZCI6IjI2NDFjZjFiIiwidGltZXN0YW1wIjoiMjAyNi0wNC0zMFQwNzo1Nzo0OS44MjRaIiwibWVzc2FnZSI6eyJyb2xlIjoidG9vbFJlc3VsdCIsInRvb2xDYWxsSWQiOiJjYWxsX29xT2taV3YzOENHTTJzS1B0TWNMMXFNTnxmY18wMjdmMWVhMTVkZWYzNTA1MDE2OWYzMGI3ZDUyYjQ4MTkxYTI1YTc1NGRlYzdhYTAxYiIsInRvb2xOYW1lIjoiZ3JlcCIsImNvbnRlbnQiOlt7InR5cGUiOiJ0ZXh0IiwidGV4dCI6InBhY2thZ2UtbWFuYWdlci50czozMjQ6ICAgcmV0dXJuIGZpbGVzO1xucGFja2FnZS1tYW5hZ2VyLnRzOjMyNTogICB9XG5wYWNrYWdlLW1hbmFnZXIudHM6MzI2OiAgIFxucGFja2FnZS1tYW5hZ2VyLnRzOjMyNzogICB0eXBlIFNraWxsRGlzY292ZXJ5TW9kZSA9IFwicGlcIiB8IFwiYWdlbnRzXCI7XG5wYWNrYWdlLW1hbmFnZXIudHM6MzI4OiAgIFxucGFja2FnZS1tYW5hZ2VyLnRzOjMyOTogZnVuY3Rpb24gY29sbGVjdFNraWxsRW50cmllcyhcbnBhY2thZ2UtbWFuYWdlci50czozMzA6ICAgZGlyOiBzdHJpbmcsXG5wYWNrYWdlLW1hbmFnZXIudHM6MzMxOiAgIG1vZGU6IFNraWxsRGlzY292ZXJ5TW9kZSxcbnBhY2thZ2UtbWFuYWdlci50czozMzI6ICAgaWdub3JlTWF0Y2hlcj86IElnbm9yZU1hdGNoZXIsXG5wYWNrYWdlLW1hbmFnZXIudHM6MzMzOiAgIHJvb3REaXI/OiBzdHJpbmcsXG5wYWNrYWdlLW1hbmFnZXIudHM6MzM0OiAgICk6IHN0cmluZ1tdIHtcbnBhY2thZ2UtbWFuYWdlci50czo0MTY6ICAgfVxucGFja2FnZS1tYW5hZ2VyLnRzOjQxNzogICBkaXIgPSBwYXJlbnQ7XG5wYWNrYWdlLW1hbmFnZXIudHM6NDE4OiAgIH1cbnBhY2thZ2UtbWFuYWdlci50czo0MTk6ICAgfVxucGFja2FnZS1tYW5hZ2VyLnRzOjQyMDogICBcbnBhY2thZ2UtbWFuYWdlci50czo0MjE6IGZ1bmN0aW9uIGNvbGxlY3RBbmNlc3RvckFnZW50c1NraWxsRGlycyhzdGFydERpcjogc3RyaW5nKTogc3RyaW5nW10ge1xucGFja2FnZS1tYW5hZ2VyLnRzOjQyMjogICBjb25zdCBza2lsbERpcnM6IHN0cmluZ1tdID0gW107XG5wYWNrYWdlLW1hbmFnZXIudHM6NDIzOiAgIGNvbnN0IHJlc29sdmVkU3RhcnREaXIgPSByZXNvbHZlKHN0YXJ0RGlyKTtcbnBhY2thZ2UtbWFuYWdlci50czo0MjQ6ICAgY29uc3QgZ2l0UmVwb1Jvb3QgPSBmaW5kR2l0UmVwb1Jvb3QocmVzb2x2ZWRTdGFydERpcik7XG5wYWNrYWdlLW1hbmFnZXIudHM6NDI1OiAgIFxucGFja2FnZS1tYW5hZ2VyLnRzOjQyNjogICBsZXQgZGlyID0gcmVzb2x2ZWRTdGFydERpcjsifV0sImRldGFpbHMiOnsibWF0Y2hDb3VudCI6MiwibWF0Y2hlcyI6W3sicGF0aCI6InBhY2thZ2UtbWFuYWdlci50cyIsImxpbmUiOjMyNCwidGV4dCI6IiAgcmV0dXJuIGZpbGVzOyJ9LHsicGF0aCI6InBhY2thZ2UtbWFuYWdlci50cyIsImxpbmUiOjMyNSwidGV4dCI6IiAgfSJ9LHsicGF0aCI6InBhY2thZ2UtbWFuYWdlci50cyIsImxpbmUiOjMyNiwidGV4dCI6IiAgIn0seyJwYXRoIjoicGFja2FnZS1tYW5hZ2VyLnRzIiwibGluZSI6MzI3LCJ0ZXh0IjoiICB0eXBlIFNraWxsRGlzY292ZXJ5TW9kZSA9IFwicGlcIiB8IFwiYWdlbnRzXCI7In0seyJwYXRoIjoicGFja2FnZS1tYW5hZ2VyLnRzIiwibGluZSI6MzI4LCJ0ZXh0IjoiICAifSx7InBhdGgiOiJwYWNrYWdlLW1hbmFnZXIudHMiLCJsaW5lIjozMjksInRleHQiOiJmdW5jdGlvbiBjb2xsZWN0U2tpbGxFbnRyaWVzKCJ9LHsicGF0aCI6InBhY2thZ2UtbWFuYWdlci50cyIsImxpbmUiOjMzMCwidGV4dCI6IiAgZGlyOiBzdHJpbmcsIn0seyJwYXRoIjoicGFja2FnZS1tYW5hZ2VyLnRzIiwibGluZSI6MzMxLCJ0ZXh0IjoiICBtb2RlOiBTa2lsbERpc2NvdmVyeU1vZGUsIn0seyJwYXRoIjoicGFja2FnZS1tYW5hZ2VyLnRzIiwibGluZSI6MzMyLCJ0ZXh0IjoiICBpZ25vcmVNYXRjaGVyPzogSWdub3JlTWF0Y2hlciwifSx7InBhdGgiOiJwYWNrYWdlLW1hbmFnZXIudHMiLCJsaW5lIjozMzMsInRleHQiOiIgIHJvb3REaXI/OiBzdHJpbmcsIn0seyJwYXRoIjoicGFja2FnZS1tYW5hZ2VyLnRzIiwibGluZSI6MzM0LCJ0ZXh0IjoiICApOiBzdHJpbmdbXSB7In0seyJwYXRoIjoicGFja2FnZS1tYW5hZ2VyLnRzIiwibGluZSI6NDE2LCJ0ZXh0IjoiICB9In0seyJwYXRoIjoicGFja2FnZS1tYW5hZ2VyLnRzIiwibGluZSI6NDE3LCJ0ZXh0IjoiICBkaXIgPSBwYXJlbnQ7In0seyJwYXRoIjoicGFja2FnZS1tYW5hZ2VyLnRzIiwibGluZSI6NDE4LCJ0ZXh0IjoiICB9In0seyJwYXRoIjoicGFja2FnZS1tYW5hZ2VyLnRzIiwibGluZSI6NDE5LCJ0ZXh0IjoiICB9In0seyJwYXRoIjoicGFja2FnZS1tYW5hZ2VyLnRzIiwibGluZSI6NDIwLCJ0ZXh0IjoiICAifSx7InBhdGgiOiJwYWNrYWdlLW1hbmFnZXIudHMiLCJsaW5lIjo0MjEsInRleHQiOiJmdW5jdGlvbiBjb2xsZWN0QW5jZXN0b3JBZ2VudHNTa2lsbERpcnMoc3RhcnREaXI6IHN0cmluZyk6IHN0cmluZ1tdIHsifSx7InBhdGgiOiJwYWNrYWdlLW1hbmFnZXIudHMiLCJsaW5lIjo0MjIsInRleHQiOiIgIGNvbnN0IHNraWxsRGlyczogc3RyaW5nW10gPSBbXTsifSx7InBhdGgiOiJwYWNrYWdlLW1hbmFnZXIudHMiLCJsaW5lIjo0MjMsInRleHQiOiIgIGNvbnN0IHJlc29sdmVkU3RhcnREaXIgPSByZXNvbHZlKHN0YXJ0RGlyKTsifSx7InBhdGgiOiJwYWNrYWdlLW1hbmFnZXIudHMiLCJsaW5lIjo0MjQsInRleHQiOiIgIGNvbnN0IGdpdFJlcG9Sb290ID0gZmluZEdpdFJlcG9Sb290KHJlc29sdmVkU3RhcnREaXIpOyJ9LHsicGF0aCI6InBhY2thZ2UtbWFuYWdlci50cyIsImxpbmUiOjQyNSwidGV4dCI6IiAgIn0seyJwYXRoIjoicGFja2FnZS1tYW5hZ2VyLnRzIiwibGluZSI6NDI2LCJ0ZXh0IjoiICBsZXQgZGlyID0gcmVzb2x2ZWRTdGFydERpcjsifV19LCJpc0Vycm9yIjpmYWxzZSwidGltZXN0YW1wIjoxNzc3NTM1ODY5ODI0fX0seyJ0eXBlIjoibWVzc2FnZSIsImlkIjoiMzljMWU5NGUiLCJwYXJlbnRJZCI6IjgxOWE3N2I0IiwidGltZXN0YW1wIjoiMjAyNi0wNC0zMFQwNzo1Nzo1Mi4wNzFaIiwibWVzc2FnZSI6eyJyb2xlIjoiYXNzaXN0YW50IiwiY29udGVudCI6W3sidHlwZSI6InRvb2xDYWxsIiwiaWQiOiJjYWxsXzJGQVRxOEFQaGp6cVZrVU1ycWRZU1FBTXxmY18wMjdmMWVhMTVkZWYzNTA1MDE2OWYzMGI3Zjg3ZTg4MTkxODUyZDA4NWM2ZmQ0ZDQ0ZiIsIm5hbWUiOiJyZWFkIiwiYXJndW1lbnRzIjp7InBhdGgiOiJwYWNrYWdlcy9jb2RpbmctYWdlbnQvc3JjL2NvcmUvcGFja2FnZS1tYW5hZ2VyLnRzIiwib2Zmc2V0IjozMjksImxpbWl0IjoxMTV9fV0sImFwaSI6Im9wZW5haS1jb2RleC1yZXNwb25zZXMiLCJwcm92aWRlciI6Im9wZW5haS1jb2RleCIsIm1vZGVsIjoiZ3B0LTUuNSIsInVzYWdlIjp7ImlucHV0Ijo1ODIsIm91dHB1dCI6MzMsImNhY2hlUmVhZCI6MTg0MzIsImNhY2hlV3JpdGUiOjAsInRvdGFsVG9rZW5zIjoxOTA0NywiY29zdCI6eyJpbnB1dCI6MC4wMDI5MTAwMDAwMDAwMDAwMDAzLCJvdXRwdXQiOjAuMDAwOTksImNhY2hlUmVhZCI6MC4wMDkyMTYsImNhY2hlV3JpdGUiOjAsInRvdGFsIjowLjAxMzExNjAwMDAwMDAwMDAwMX19LCJzdG9wUmVhc29uIjoidG9vbFVzZSIsInRpbWVzdGFtcCI6MTc3NzUzNTg2OTgyNCwicmVzcG9uc2VJZCI6InJlc3BfMDI3ZjFlYTE1ZGVmMzUwNTAxNjlmMzBiN2U2NjkwODE5MWI1MmQyMzMwNjdiOTU2ODQifX0seyJ0eXBlIjoibWVzc2FnZSIsImlkIjoiNzhhODgwODUiLCJwYXJlbnRJZCI6IjM5YzFlOTRlIiwidGltZXN0YW1wIjoiMjAyNi0wNC0zMFQwNzo1Nzo1Mi4wNzZaIiwibWVzc2FnZSI6eyJyb2xlIjoidG9vbFJlc3VsdCIsInRvb2xDYWxsSWQiOiJjYWxsXzJGQVRxOEFQaGp6cVZrVU1ycWRZU1FBTXxmY18wMjdmMWVhMTVkZWYzNTA1MDE2OWYzMGI3Zjg3ZTg4MTkxODUyZDA4NWM2ZmQ0ZDQ0ZiIsInRvb2xOYW1lIjoicmVhZCIsImNvbnRlbnQiOlt7InR5cGUiOiJ0ZXh0IiwidGV4dCI6ImZ1bmN0aW9uIGNvbGxlY3RTa2lsbEVudHJpZXMoXG5cdGRpcjogc3RyaW5nLFxuXHRtb2RlOiBTa2lsbERpc2NvdmVyeU1vZGUsXG5cdGlnbm9yZU1hdGNoZXI/OiBJZ25vcmVNYXRjaGVyLFxuXHRyb290RGlyPzogc3RyaW5nLFxuKTogc3RyaW5nW10ge1xuXHRjb25zdCBlbnRyaWVzOiBzdHJpbmdbXSA9IFtdO1xuXHRpZiAoIWV4aXN0c1N5bmMoZGlyKSkgcmV0dXJuIGVudHJpZXM7XG5cblx0Y29uc3Qgcm9vdCA9IHJvb3REaXIgPz8gZGlyO1xuXHRjb25zdCBpZyA9IGlnbm9yZU1hdGNoZXIgPz8gaWdub3JlKCk7XG5cdGFkZElnbm9yZVJ1bGVzKGlnLCBkaXIsIHJvb3QpO1xuXG5cdHRyeSB7XG5cdFx0Y29uc3QgZGlyRW50cmllcyA9IHJlYWRkaXJTeW5jKGRpciwgeyB3aXRoRmlsZVR5cGVzOiB0cnVlIH0pO1xuXG5cdFx0Zm9yIChjb25zdCBlbnRyeSBvZiBkaXJFbnRyaWVzKSB7XG5cdFx0XHRpZiAoZW50cnkubmFtZSAhPT0gXCJTS0lMTC5tZFwiKSB7XG5cdFx0XHRcdGNvbnRpbnVlO1xuXHRcdFx0fVxuXG5cdFx0XHRjb25zdCBmdWxsUGF0aCA9IGpvaW4oZGlyLCBlbnRyeS5uYW1lKTtcblx0XHRcdGxldCBpc0ZpbGUgPSBlbnRyeS5pc0ZpbGUoKTtcblx0XHRcdGlmIChlbnRyeS5pc1N5bWJvbGljTGluaygpKSB7XG5cdFx0XHRcdHRyeSB7XG5cdFx0XHRcdFx0aXNGaWxlID0gc3RhdFN5bmMoZnVsbFBhdGgpLmlzRmlsZSgpO1xuXHRcdFx0XHR9IGNhdGNoIHtcblx0XHRcdFx0XHRjb250aW51ZTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXG5cdFx0XHRjb25zdCByZWxQYXRoID0gdG9Qb3NpeFBhdGgocmVsYXRpdmUocm9vdCwgZnVsbFBhdGgpKTtcblx0XHRcdGlmIChpc0ZpbGUgJiYgIWlnLmlnbm9yZXMocmVsUGF0aCkpIHtcblx0XHRcdFx0ZW50cmllcy5wdXNoKGZ1bGxQYXRoKTtcblx0XHRcdFx0cmV0dXJuIGVudHJpZXM7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0Zm9yIChjb25zdCBlbnRyeSBvZiBkaXJFbnRyaWVzKSB7XG5cdFx0XHRpZiAoZW50cnkubmFtZS5zdGFydHNXaXRoKFwiLlwiKSkgY29udGludWU7XG5cdFx0XHRpZiAoZW50cnkubmFtZSA9PT0gXCJub2RlX21vZHVsZXNcIikgY29udGludWU7XG5cblx0XHRcdGNvbnN0IGZ1bGxQYXRoID0gam9pbihkaXIsIGVudHJ5Lm5hbWUpO1xuXHRcdFx0bGV0IGlzRGlyID0gZW50cnkuaXNEaXJlY3RvcnkoKTtcblx0XHRcdGxldCBpc0ZpbGUgPSBlbnRyeS5pc0ZpbGUoKTtcblxuXHRcdFx0aWYgKGVudHJ5LmlzU3ltYm9saWNMaW5rKCkpIHtcblx0XHRcdFx0dHJ5IHtcblx0XHRcdFx0XHRjb25zdCBzdGF0cyA9IHN0YXRTeW5jKGZ1bGxQYXRoKTtcblx0XHRcdFx0XHRpc0RpciA9IHN0YXRzLmlzRGlyZWN0b3J5KCk7XG5cdFx0XHRcdFx0aXNGaWxlID0gc3RhdHMuaXNGaWxlKCk7XG5cdFx0XHRcdH0gY2F0Y2gge1xuXHRcdFx0XHRcdGNvbnRpbnVlO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cblx0XHRcdGNvbnN0IHJlbFBhdGggPSB0b1Bvc2l4UGF0aChyZWxhdGl2ZShyb290LCBmdWxsUGF0aCkpO1xuXHRcdFx0aWYgKG1vZGUgPT09IFwicGlcIiAmJiBkaXIgPT09IHJvb3QgJiYgaXNGaWxlICYmIGVudHJ5Lm5hbWUuZW5kc1dpdGgoXCIubWRcIikgJiYgIWlnLmlnbm9yZXMocmVsUGF0aCkpIHtcblx0XHRcdFx0ZW50cmllcy5wdXNoKGZ1bGxQYXRoKTtcblx0XHRcdFx0Y29udGludWU7XG5cdFx0XHR9XG5cblx0XHRcdGlmICghaXNEaXIpIGNvbnRpbnVlO1xuXHRcdFx0aWYgKGlnLmlnbm9yZXMoYCR7cmVsUGF0aH0vYCkpIGNvbnRpbnVlO1xuXG5cdFx0XHRlbnRyaWVzLnB1c2goLi4uY29sbGVjdFNraWxsRW50cmllcyhmdWxsUGF0aCwgbW9kZSwgaWcsIHJvb3QpKTtcblx0XHR9XG5cdH0gY2F0Y2gge1xuXHRcdC8vIElnbm9yZSBlcnJvcnNcblx0fVxuXG5cdHJldHVybiBlbnRyaWVzO1xufVxuXG5mdW5jdGlvbiBjb2xsZWN0QXV0b1NraWxsRW50cmllcyhkaXI6IHN0cmluZywgbW9kZTogU2tpbGxEaXNjb3ZlcnlNb2RlKTogc3RyaW5nW10ge1xuXHRyZXR1cm4gY29sbGVjdFNraWxsRW50cmllcyhkaXIsIG1vZGUpO1xufVxuXG5mdW5jdGlvbiBmaW5kR2l0UmVwb1Jvb3Qoc3RhcnREaXI6IHN0cmluZyk6IHN0cmluZyB8IG51bGwge1xuXHRsZXQgZGlyID0gcmVzb2x2ZShzdGFydERpcik7XG5cdHdoaWxlICh0cnVlKSB7XG5cdFx0aWYgKGV4aXN0c1N5bmMoam9pbihkaXIsIFwiLmdpdFwiKSkpIHtcblx0XHRcdHJldHVybiBkaXI7XG5cdFx0fVxuXHRcdGNvbnN0IHBhcmVudCA9IGRpcm5hbWUoZGlyKTtcblx0XHRpZiAocGFyZW50ID09PSBkaXIpIHtcblx0XHRcdHJldHVybiBudWxsO1xuXHRcdH1cblx0XHRkaXIgPSBwYXJlbnQ7XG5cdH1cbn1cblxuZnVuY3Rpb24gY29sbGVjdEFuY2VzdG9yQWdlbnRzU2tpbGxEaXJzKHN0YXJ0RGlyOiBzdHJpbmcpOiBzdHJpbmdbXSB7XG5cdGNvbnN0IHNraWxsRGlyczogc3RyaW5nW10gPSBbXTtcblx0Y29uc3QgcmVzb2x2ZWRTdGFydERpciA9IHJlc29sdmUoc3RhcnREaXIpO1xuXHRjb25zdCBnaXRSZXBvUm9vdCA9IGZpbmRHaXRSZXBvUm9vdChyZXNvbHZlZFN0YXJ0RGlyKTtcblxuXHRsZXQgZGlyID0gcmVzb2x2ZWRTdGFydERpcjtcblx0d2hpbGUgKHRydWUpIHtcblx0XHRza2lsbERpcnMucHVzaChqb2luKGRpciwgXCIuYWdlbnRzXCIsIFwic2tpbGxzXCIpKTtcblx0XHRpZiAoZ2l0UmVwb1Jvb3QgJiYgZGlyID09PSBnaXRSZXBvUm9vdCkge1xuXHRcdFx0YnJlYWs7XG5cdFx0fVxuXHRcdGNvbnN0IHBhcmVudCA9IGRpcm5hbWUoZGlyKTtcblx0XHRpZiAocGFyZW50ID09PSBkaXIpIHtcblx0XHRcdGJyZWFrO1xuXHRcdH1cblx0XHRkaXIgPSBwYXJlbnQ7XG5cdH1cblxuXHRyZXR1cm4gc2tpbGxEaXJzO1xufVxuXG5mdW5jdGlvbiBjb2xsZWN0QXV0b1Byb21wdEVudHJpZXMoZGlyOiBzdHJpbmcpOiBzdHJpbmdbXSB7XG5cdGNvbnN0IGVudHJpZXM6IHN0cmluZ1tdID0gW107XG5cblsyMDAxIG1vcmUgbGluZXMgaW4gZmlsZS4gVXNlIG9mZnNldD00NDQgdG8gY29udGludWUuXSJ9XSwiaXNFcnJvciI6ZmFsc2UsInRpbWVzdGFtcCI6MTc3NzUzNTg3MjA3Nn19LHsidHlwZSI6Im1lc3NhZ2UiLCJpZCI6ImQ4OTM0MDQ2IiwicGFyZW50SWQiOiI3OGE4ODA4NSIsInRpbWVzdGFtcCI6IjIwMjYtMDQtMzBUMDc6NTc6NTYuNTYxWiIsIm1lc3NhZ2UiOnsicm9sZSI6ImFzc2lzdGFudCIsImNvbnRlbnQiOlt7InR5cGUiOiJ0aGlua2luZyIsInRoaW5raW5nIjoiKipJbnNwZWN0aW5nIGRpc3BsYXkgcGF0aCoqXG5cbkknbSB3b25kZXJpbmcgaWYgSSBuZWVkIHRvIHRha2UgYSBjbG9zZXIgbG9vayBhdCB0aGUgY29uZmlndXJhdGlvbiBzZXR0aW5ncyBmb3IgZGlzcGxheWluZyBwYXRocyBvbiBpdGVtcy4gSXQgbWlnaHQgYmUgaGVscGZ1bCB0byBjbGFyaWZ5IHdoYXQncyBzZXQgdXAgYW5kIHNlZSBpZiB0aGVyZSBhcmUgYW55IGFkanVzdG1lbnRzIHRvIG1ha2UuIEVuc3VyaW5nIHRoYXQgZXZlcnl0aGluZyBhbGlnbnMgY29ycmVjdGx5IGNvdWxkIGltcHJvdmUgdGhlIG92ZXJhbGwgdXNlciBleHBlcmllbmNlLiBJ4oCZbGwgZmlndXJlIG91dCB0aGUgbW9zdCBzdHJhaWdodGZvcndhcmQgd2F5IHRvIGluc3BlY3QgaXQgYW5kIHdoYXQgc3RlcHMgdG8gZm9sbG93IGZyb20gaGVyZS4gTGV0J3Mgc2VlIHdoYXQgSSBjYW4gZmluZCEiLCJ0aGlua2luZ1NpZ25hdHVyZSI6IntcImlkXCI6XCJyc18wMjdmMWVhMTVkZWYzNTA1MDE2OWYzMGI4MTZlNDQ4MTkxODMzZjVkYjc5OTIxYmNiMlwiLFwidHlwZVwiOlwicmVhc29uaW5nXCIsXCJlbmNyeXB0ZWRfY29udGVudFwiOlwiZ0FBQUFBQnA4d3VEQ2czbm9XcGFpSThzU2NYeXJpNmxKZ255RjB4emlQSDZld0ZKbGtubzFzazRWYjFIanhMWUg4b08wQTNSekVPVkdwS2pXcGRFV1FKZW5HVFhVQzU5a0tocjJSdTRyUmpqcGhWNE10MUgyV3M3ZkRqZEJDNkNKVVVfZzhfNHAxVFJlLU1ITjRBbE8wWl9WV2xuc29pSEhHekU2YjJSVnpseS1zcW16SllvRXRITDB6bkJja2R2NktWMTY5Vm11MlZWSnFRNC1fRE5UWEpQOUxIN1FIZXB0TVRXQVM2Z0loeTlkeVRuY25TRV9ITHZoWW1GMHo3Z25ScGs5Q1oyQkJqN3hqVHpFelhSYkxZcDRCU1F0YlFXeGhqbmtJQnUzN0hfbEo5VlNmckp0bkR3RmRtNWJ3c0wtMlNiU3ZOOWNseG1kTnBZTWJQSmZBeUxWZmpzTHpHcG5neWU2Tl9PWi1MRTFDWV8tY1FuU3g0MFk1NDdnRXVXYmtwS1d1dEFXa0pxeTZndUdOOElIVm5aRHViZDNpLVZ1ZDR2ZFdiU0tNbldVUF8zNGlJSnFOVW1rREJZRldoMGNEZzV1cF9vTV9zWC0tVTFTaXVBNkFDUHduMGFVYTU5Um5IZndtMFo5RG1vYmpNUS13NjZfYTFFeG96NF9UMGdSTFhVbl9kMmZBNGFpaWJ1VkR6SktMOXhpMXF5MUxjWDREdExaZ3JPVEJ3UjBRTnFRZjJlbm9QZ0ZvRkFhSnBRMVYtWlZyVDFlWS12SzlaNEViQm9HZko4TlVJTzNYTEJyMXpQYTB2ZkptWmFELXkyUDF2LVF2MFdTN1k1ZDdZZ3VHT2dFd3JDQ0lGbl9GajRhZ2FiZEdBN1p4aHYyS3J5N3czbEUzU0FWQzQ4aUNOZE05SFR2cEcyaUVMdXlCNktkZnFmTmUxVnJmeWkxZGRNOXZWWTZ3TkVGdG1OXzRxcEZPSjMtZm96b0k5MzhzZEwzUkxXNkVfNERvVW41Y0JuTDZWVXZ3MS1jN1Z5UWlFUGNBUGV5SnRPWHY0QkFlbFlFcXB4czFkQUhfM0R2WWh2dkt0Q2lMSVJnY2gzZVF6X0p2MHU4bXZHNzNtZVY0MGh1RjllamFMWVBHeG5zQ2FCVWlvMUZKWVRSSHhEREQ5b0QydWVrU1NmNnpLUmlMQnBhUlJPM0tkT3E3TXdxd3Q3SkU5WENzemtrX0lydUlBTUkxQThod0NKb1ZlbV9WbDlIdUVFV3lNQlNFb1d0UkJxTHJwNXJwZzNuNDNhcl95eTZ3bDdWM3l3aXpETGY3WnVDZzlleWxwaEVtc3Z4TVpPTkdXdjgwdz1cIixcInN1bW1hcnlcIjpbe1widHlwZVwiOlwic3VtbWFyeV90ZXh0XCIsXCJ0ZXh0XCI6XCIqKkluc3BlY3RpbmcgZGlzcGxheSBwYXRoKipcXG5cXG5JJ20gd29uZGVyaW5nIGlmIEkgbmVlZCB0byB0YWtlIGEgY2xvc2VyIGxvb2sgYXQgdGhlIGNvbmZpZ3VyYXRpb24gc2V0dGluZ3MgZm9yIGRpc3BsYXlpbmcgcGF0aHMgb24gaXRlbXMuIEl0IG1pZ2h0IGJlIGhlbHBmdWwgdG8gY2xhcmlmeSB3aGF0J3Mgc2V0IHVwIGFuZCBzZWUgaWYgdGhlcmUgYXJlIGFueSBhZGp1c3RtZW50cyB0byBtYWtlLiBFbnN1cmluZyB0aGF0IGV2ZXJ5dGhpbmcgYWxpZ25zIGNvcnJlY3RseSBjb3VsZCBpbXByb3ZlIHRoZSBvdmVyYWxsIHVzZXIgZXhwZXJpZW5jZS4gSeKAmWxsIGZpZ3VyZSBvdXQgdGhlIG1vc3Qgc3RyYWlnaHRmb3J3YXJkIHdheSB0byBpbnNwZWN0IGl0IGFuZCB3aGF0IHN0ZXBzIHRvIGZvbGxvdyBmcm9tIGhlcmUuIExldCdzIHNlZSB3aGF0IEkgY2FuIGZpbmQhXCJ9XX0ifSx7InR5cGUiOiJ0b29sQ2FsbCIsImlkIjoiY2FsbF9Nb1A1ZGJPMEpPQ3VNUVhUSm5YRDBiNFF8ZmNfMDI3ZjFlYTE1ZGVmMzUwNTAxNjlmMzBiODNiOTY0ODE5MTgzOWM1NDRhODAxMTgyZDAiLCJuYW1lIjoiZ3JlcCIsImFyZ3VtZW50cyI6eyJwYXR0ZXJuIjoicmVsYXRpdmVcXCh8aXRlbS5wYXRofGRpc3BsYXlOYW1lIiwicGF0aCI6InBhY2thZ2VzL2NvZGluZy1hZ2VudC9zcmMvbW9kZXMvaW50ZXJhY3RpdmUvY29tcG9uZW50cy9jb25maWctc2VsZWN0b3IudHMiLCJjb250ZXh0IjoyfX1dLCJhcGkiOiJvcGVuYWktY29kZXgtcmVzcG9uc2VzIiwicHJvdmlkZXIiOiJvcGVuYWktY29kZXgiLCJtb2RlbCI6ImdwdC01LjUiLCJ1c2FnZSI6eyJpbnB1dCI6ODMzLCJvdXRwdXQiOjYxLCJjYWNoZVJlYWQiOjE4OTQ0LCJjYWNoZVdyaXRlIjowLCJ0b3RhbFRva2VucyI6MTk4MzgsImNvc3QiOnsiaW5wdXQiOjAuMDA0MTY1LCJvdXRwdXQiOjAuMDAxODMsImNhY2hlUmVhZCI6MC4wMDk0NzIsImNhY2hlV3JpdGUiOjAsInRvdGFsIjowLjAxNTQ2N319LCJzdG9wUmVhc29uIjoidG9vbFVzZSIsInRpbWVzdGFtcCI6MTc3NzUzNTg3MjA3NywicmVzcG9uc2VJZCI6InJlc3BfMDI3ZjFlYTE1ZGVmMzUwNTAxNjlmMzBiODBhZjQ0ODE5MThlMmQwMDk5MzRjYzYxMTAifX0seyJ0eXBlIjoibWVzc2FnZSIsImlkIjoiYTcyMjFmNTAiLCJwYXJlbnRJZCI6ImQ4OTM0MDQ2IiwidGltZXN0YW1wIjoiMjAyNi0wNC0zMFQwNzo1Nzo1Ni41NjdaIiwibWVzc2FnZSI6eyJyb2xlIjoidG9vbFJlc3VsdCIsInRvb2xDYWxsSWQiOiJjYWxsX01vUDVkYk8wSk9DdU1RWFRKblhEMGI0UXxmY18wMjdmMWVhMTVkZWYzNTA1MDE2OWYzMGI4M2I5NjQ4MTkxODM5YzU0NGE4MDExODJkMCIsInRvb2xOYW1lIjoiZ3JlcCIsImNvbnRlbnQiOlt7InR5cGUiOiJ0ZXh0IiwidGV4dCI6ImNvbmZpZy1zZWxlY3Rvci50czozNjogICBtZXRhZGF0YTogUGF0aE1ldGFkYXRhO1xuY29uZmlnLXNlbGVjdG9yLnRzOjM3OiAgIHJlc291cmNlVHlwZTogUmVzb3VyY2VUeXBlO1xuY29uZmlnLXNlbGVjdG9yLnRzOjM4OiBkaXNwbGF5TmFtZTogc3RyaW5nO1xuY29uZmlnLXNlbGVjdG9yLnRzOjM5OiAgIGdyb3VwS2V5OiBzdHJpbmc7XG5jb25maWctc2VsZWN0b3IudHM6NDA6ICAgc3ViZ3JvdXBLZXk6IHN0cmluZztcbmNvbmZpZy1zZWxlY3Rvci50czoxMDE6ICAgY29uc3QgZmlsZU5hbWUgPSBiYXNlbmFtZShwYXRoKTtcbmNvbmZpZy1zZWxlY3Rvci50czoxMDI6ICAgY29uc3QgcGFyZW50Rm9sZGVyID0gYmFzZW5hbWUoZGlybmFtZShwYXRoKSk7XG5jb25maWctc2VsZWN0b3IudHM6MTAzOiBsZXQgZGlzcGxheU5hbWU6IHN0cmluZztcbmNvbmZpZy1zZWxlY3Rvci50czoxMDQ6ICAgaWYgKHJlc291cmNlVHlwZSA9PT0gXCJleHRlbnNpb25zXCIgJiYgcGFyZW50Rm9sZGVyICE9PSBcImV4dGVuc2lvbnNcIikge1xuY29uZmlnLXNlbGVjdG9yLnRzOjEwNTogICBkaXNwbGF5TmFtZSA9IGAke3BhcmVudEZvbGRlcn0vJHtmaWxlTmFtZX1gO1xuY29uZmlnLXNlbGVjdG9yLnRzOjEwMzogICBsZXQgZGlzcGxheU5hbWU6IHN0cmluZztcbmNvbmZpZy1zZWxlY3Rvci50czoxMDQ6ICAgaWYgKHJlc291cmNlVHlwZSA9PT0gXCJleHRlbnNpb25zXCIgJiYgcGFyZW50Rm9sZGVyICE9PSBcImV4dGVuc2lvbnNcIikge1xuY29uZmlnLXNlbGVjdG9yLnRzOjEwNTogZGlzcGxheU5hbWUgPSBgJHtwYXJlbnRGb2xkZXJ9LyR7ZmlsZU5hbWV9YDtcbmNvbmZpZy1zZWxlY3Rvci50czoxMDY6ICAgfSBlbHNlIGlmIChyZXNvdXJjZVR5cGUgPT09IFwic2tpbGxzXCIgJiYgZmlsZU5hbWUgPT09IFwiU0tJTEwubWRcIikge1xuY29uZmlnLXNlbGVjdG9yLnRzOjEwNzogICBkaXNwbGF5TmFtZSA9IHBhcmVudEZvbGRlcjtcbmNvbmZpZy1zZWxlY3Rvci50czoxMDU6ICAgZGlzcGxheU5hbWUgPSBgJHtwYXJlbnRGb2xkZXJ9LyR7ZmlsZU5hbWV9YDtcbmNvbmZpZy1zZWxlY3Rvci50czoxMDY6ICAgfSBlbHNlIGlmIChyZXNvdXJjZVR5cGUgPT09IFwic2tpbGxzXCIgJiYgZmlsZU5hbWUgPT09IFwiU0tJTEwubWRcIikge1xuY29uZmlnLXNlbGVjdG9yLnRzOjEwNzogZGlzcGxheU5hbWUgPSBwYXJlbnRGb2xkZXI7XG5jb25maWctc2VsZWN0b3IudHM6MTA4OiAgIH0gZWxzZSB7XG5jb25maWctc2VsZWN0b3IudHM6MTA5OiAgIGRpc3BsYXlOYW1lID0gZmlsZU5hbWU7XG5jb25maWctc2VsZWN0b3IudHM6MTA3OiAgIGRpc3BsYXlOYW1lID0gcGFyZW50Rm9sZGVyO1xuY29uZmlnLXNlbGVjdG9yLnRzOjEwODogICB9IGVsc2Uge1xuY29uZmlnLXNlbGVjdG9yLnRzOjEwOTogZGlzcGxheU5hbWUgPSBmaWxlTmFtZTtcbmNvbmZpZy1zZWxlY3Rvci50czoxMTA6ICAgfVxuY29uZmlnLXNlbGVjdG9yLnRzOjExMTogICBzdWJncm91cC5pdGVtcy5wdXNoKHtcbmNvbmZpZy1zZWxlY3Rvci50czoxMTQ6ICAgbWV0YWRhdGEsXG5jb25maWctc2VsZWN0b3IudHM6MTE1OiAgIHJlc291cmNlVHlwZSxcbmNvbmZpZy1zZWxlY3Rvci50czoxMTY6IGRpc3BsYXlOYW1lLFxuY29uZmlnLXNlbGVjdG9yLnRzOjExNzogICBncm91cEtleSxcbmNvbmZpZy1zZWxlY3Rvci50czoxMTg6ICAgc3ViZ3JvdXBLZXksXG5jb25maWctc2VsZWN0b3IudHM6MTQzOiAgIGdyb3VwLnN1Ymdyb3Vwcy5zb3J0KChhLCBiKSA9PiB0eXBlT3JkZXJbYS50eXBlXSAtIHR5cGVPcmRlcltiLnR5cGVdKTtcbmNvbmZpZy1zZWxlY3Rvci50czoxNDQ6ICAgZm9yIChjb25zdCBzdWJncm91cCBvZiBncm91cC5zdWJncm91cHMpIHtcbmNvbmZpZy1zZWxlY3Rvci50czoxNDU6IHN1Ymdyb3VwLml0ZW1zLnNvcnQoKGEsIGIpID0+IGEuZGlzcGxheU5hbWUubG9jYWxlQ29tcGFyZShiLmRpc3BsYXlOYW1lKSk7XG5jb25maWctc2VsZWN0b3IudHM6MTQ2OiAgIH1cbmNvbmZpZy1zZWxlY3Rvci50czoxNDc6ICAgfVxuY29uZmlnLXNlbGVjdG9yLnRzOjI1MDogICBjb25zdCBpdGVtID0gZW50cnkuaXRlbTtcbmNvbmZpZy1zZWxlY3Rvci50czoyNTE6ICAgaWYgKFxuY29uZmlnLXNlbGVjdG9yLnRzOjI1MjogaXRlbS5kaXNwbGF5TmFtZS50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKGxvd2VyUXVlcnkpIHx8XG5jb25maWctc2VsZWN0b3IudHM6MjUzOiAgIGl0ZW0ucmVzb3VyY2VUeXBlLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMobG93ZXJRdWVyeSkgfHxcbmNvbmZpZy1zZWxlY3Rvci50czoyNTQ6ICAgaXRlbS5wYXRoLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMobG93ZXJRdWVyeSlcbmNvbmZpZy1zZWxlY3Rvci50czoyNTI6ICAgaXRlbS5kaXNwbGF5TmFtZS50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKGxvd2VyUXVlcnkpIHx8XG5jb25maWctc2VsZWN0b3IudHM6MjUzOiAgIGl0ZW0ucmVzb3VyY2VUeXBlLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMobG93ZXJRdWVyeSkgfHxcbmNvbmZpZy1zZWxlY3Rvci50czoyNTQ6IGl0ZW0ucGF0aC50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKGxvd2VyUXVlcnkpXG5jb25maWctc2VsZWN0b3IudHM6MjU1OiAgICkge1xuY29uZmlnLXNlbGVjdG9yLnRzOjI1NjogICBtYXRjaGluZ0l0ZW1zLmFkZChpdGVtKTtcbmNvbmZpZy1zZWxlY3Rvci50czoyOTU6ICAgZm9yIChjb25zdCBncm91cCBvZiB0aGlzLmdyb3Vwcykge1xuY29uZmlnLXNlbGVjdG9yLnRzOjI5NjogICBmb3IgKGNvbnN0IHN1Ymdyb3VwIG9mIGdyb3VwLnN1Ymdyb3Vwcykge1xuY29uZmlnLXNlbGVjdG9yLnRzOjI5NzogY29uc3QgZm91bmQgPSBzdWJncm91cC5pdGVtcy5maW5kKChpKSA9PiBpLnBhdGggPT09IGl0ZW0ucGF0aCAmJiBpLnJlc291cmNlVHlwZSA9PT0gaXRlbS5yZXNvdXJjZVR5cGUpO1xuY29uZmlnLXNlbGVjdG9yLnRzOjI5ODogICBpZiAoZm91bmQpIHtcbmNvbmZpZy1zZWxlY3Rvci50czoyOTk6ICAgZm91bmQuZW5hYmxlZCA9IGVuYWJsZWQ7XG5jb25maWctc2VsZWN0b3IudHM6MzQyOiAgIGNvbnN0IGN1cnNvciA9IGlzU2VsZWN0ZWQgPyBcIj4gXCIgOiBcIiAgXCI7XG5jb25maWctc2VsZWN0b3IudHM6MzQzOiAgIGNvbnN0IGNoZWNrYm94ID0gaXRlbS5lbmFibGVkID8gdGhlbWUuZmcoXCJzdWNjZXNzXCIsIFwiW3hdXCIpIDogdGhlbWUuZmcoXCJkaW1cIiwgXCJbIF1cIik7XG5jb25maWctc2VsZWN0b3IudHM6MzQ0OiBjb25zdCBuYW1lID0gaXNTZWxlY3RlZCA/IHRoZW1lLmJvbGQoaXRlbS5kaXNwbGF5TmFtZSkgOiBpdGVtLmRpc3BsYXlOYW1lO1xuY29uZmlnLXNlbGVjdG9yLnRzOjM0NTogICBsaW5lcy5wdXNoKHRydW5jYXRlVG9XaWR0aChgJHtjdXJzb3J9ICAgICR7Y2hlY2tib3h9ICR7bmFtZX1gLCB3aWR0aCwgXCIuLi5cIikpO1xuY29uZmlnLXNlbGVjdG9yLnRzOjM0NjogICB9XG5jb25maWctc2VsZWN0b3IudHM6NTM3OiAgIGNvbnN0IHNjb3BlID0gaXRlbS5tZXRhZGF0YS5zY29wZSBhcyBcInVzZXJcIiB8IFwicHJvamVjdFwiO1xuY29uZmlnLXNlbGVjdG9yLnRzOjUzODogICBjb25zdCBiYXNlRGlyID0gdGhpcy5nZXRUb3BMZXZlbEJhc2VEaXIoc2NvcGUpO1xuY29uZmlnLXNlbGVjdG9yLnRzOjUzOTogcmV0dXJuIHJlbGF0aXZlKGJhc2VEaXIsIGl0ZW0ucGF0aCk7XG5jb25maWctc2VsZWN0b3IudHM6NTQwOiAgIH1cbmNvbmZpZy1zZWxlY3Rvci50czo1NDE6ICAgXG5jb25maWctc2VsZWN0b3IudHM6NTQxOiAgIFxuY29uZmlnLXNlbGVjdG9yLnRzOjU0MjogICBwcml2YXRlIGdldFBhY2thZ2VSZXNvdXJjZVBhdHRlcm4oaXRlbTogUmVzb3VyY2VJdGVtKTogc3RyaW5nIHtcbmNvbmZpZy1zZWxlY3Rvci50czo1NDM6IGNvbnN0IGJhc2VEaXIgPSBpdGVtLm1ldGFkYXRhLmJhc2VEaXIgPz8gZGlybmFtZShpdGVtLnBhdGgpO1xuY29uZmlnLXNlbGVjdG9yLnRzOjU0NDogICByZXR1cm4gcmVsYXRpdmUoYmFzZURpciwgaXRlbS5wYXRoKTtcbmNvbmZpZy1zZWxlY3Rvci50czo1NDU6ICAgfVxuY29uZmlnLXNlbGVjdG9yLnRzOjU0MjogICBwcml2YXRlIGdldFBhY2thZ2VSZXNvdXJjZVBhdHRlcm4oaXRlbTogUmVzb3VyY2VJdGVtKTogc3RyaW5nIHtcbmNvbmZpZy1zZWxlY3Rvci50czo1NDM6ICAgY29uc3QgYmFzZURpciA9IGl0ZW0ubWV0YWRhdGEuYmFzZURpciA/PyBkaXJuYW1lKGl0ZW0ucGF0aCk7XG5jb25maWctc2VsZWN0b3IudHM6NTQ0OiByZXR1cm4gcmVsYXRpdmUoYmFzZURpciwgaXRlbS5wYXRoKTtcbmNvbmZpZy1zZWxlY3Rvci50czo1NDU6ICAgfVxuY29uZmlnLXNlbGVjdG9yLnRzOjU0NjogICB9In1dLCJkZXRhaWxzIjp7Im1hdGNoQ291bnQiOjE0LCJtYXRjaGVzIjpbeyJwYXRoIjoiY29uZmlnLXNlbGVjdG9yLnRzIiwibGluZSI6MzYsInRleHQiOiIgIG1ldGFkYXRhOiBQYXRoTWV0YWRhdGE7In0seyJwYXRoIjoiY29uZmlnLXNlbGVjdG9yLnRzIiwibGluZSI6MzcsInRleHQiOiIgIHJlc291cmNlVHlwZTogUmVzb3VyY2VUeXBlOyJ9LHsicGF0aCI6ImNvbmZpZy1zZWxlY3Rvci50cyIsImxpbmUiOjM4LCJ0ZXh0IjoiZGlzcGxheU5hbWU6IHN0cmluZzsifSx7InBhdGgiOiJjb25maWctc2VsZWN0b3IudHMiLCJsaW5lIjozOSwidGV4dCI6IiAgZ3JvdXBLZXk6IHN0cmluZzsifSx7InBhdGgiOiJjb25maWctc2VsZWN0b3IudHMiLCJsaW5lIjo0MCwidGV4dCI6IiAgc3ViZ3JvdXBLZXk6IHN0cmluZzsifSx7InBhdGgiOiJjb25maWctc2VsZWN0b3IudHMiLCJsaW5lIjoxMDEsInRleHQiOiIgIGNvbnN0IGZpbGVOYW1lID0gYmFzZW5hbWUocGF0aCk7In0seyJwYXRoIjoiY29uZmlnLXNlbGVjdG9yLnRzIiwibGluZSI6MTAyLCJ0ZXh0IjoiICBjb25zdCBwYXJlbnRGb2xkZXIgPSBiYXNlbmFtZShkaXJuYW1lKHBhdGgpKTsifSx7InBhdGgiOiJjb25maWctc2VsZWN0b3IudHMiLCJsaW5lIjoxMDMsInRleHQiOiJsZXQgZGlzcGxheU5hbWU6IHN0cmluZzsifSx7InBhdGgiOiJjb25maWctc2VsZWN0b3IudHMiLCJsaW5lIjoxMDQsInRleHQiOiIgIGlmIChyZXNvdXJjZVR5cGUgPT09IFwiZXh0ZW5zaW9uc1wiICYmIHBhcmVudEZvbGRlciAhPT0gXCJleHRlbnNpb25zXCIpIHsifSx7InBhdGgiOiJjb25maWctc2VsZWN0b3IudHMiLCJsaW5lIjoxMDUsInRleHQiOiIgIGRpc3BsYXlOYW1lID0gYCR7cGFyZW50Rm9sZGVyfS8ke2ZpbGVOYW1lfWA7In0seyJwYXRoIjoiY29uZmlnLXNlbGVjdG9yLnRzIiwibGluZSI6MTAzLCJ0ZXh0IjoiICBsZXQgZGlzcGxheU5hbWU6IHN0cmluZzsifSx7InBhdGgiOiJjb25maWctc2VsZWN0b3IudHMiLCJsaW5lIjoxMDQsInRleHQiOiIgIGlmIChyZXNvdXJjZVR5cGUgPT09IFwiZXh0ZW5zaW9uc1wiICYmIHBhcmVudEZvbGRlciAhPT0gXCJleHRlbnNpb25zXCIpIHsifSx7InBhdGgiOiJjb25maWctc2VsZWN0b3IudHMiLCJsaW5lIjoxMDUsInRleHQiOiJkaXNwbGF5TmFtZSA9IGAke3BhcmVudEZvbGRlcn0vJHtmaWxlTmFtZX1gOyJ9LHsicGF0aCI6ImNvbmZpZy1zZWxlY3Rvci50cyIsImxpbmUiOjEwNiwidGV4dCI6IiAgfSBlbHNlIGlmIChyZXNvdXJjZVR5cGUgPT09IFwic2tpbGxzXCIgJiYgZmlsZU5hbWUgPT09IFwiU0tJTEwubWRcIikgeyJ9LHsicGF0aCI6ImNvbmZpZy1zZWxlY3Rvci50cyIsImxpbmUiOjEwNywidGV4dCI6IiAgZGlzcGxheU5hbWUgPSBwYXJlbnRGb2xkZXI7In0seyJwYXRoIjoiY29uZmlnLXNlbGVjdG9yLnRzIiwibGluZSI6MTA1LCJ0ZXh0IjoiICBkaXNwbGF5TmFtZSA9IGAke3BhcmVudEZvbGRlcn0vJHtmaWxlTmFtZX1gOyJ9LHsicGF0aCI6ImNvbmZpZy1zZWxlY3Rvci50cyIsImxpbmUiOjEwNiwidGV4dCI6IiAgfSBlbHNlIGlmIChyZXNvdXJjZVR5cGUgPT09IFwic2tpbGxzXCIgJiYgZmlsZU5hbWUgPT09IFwiU0tJTEwubWRcIikgeyJ9LHsicGF0aCI6ImNvbmZpZy1zZWxlY3Rvci50cyIsImxpbmUiOjEwNywidGV4dCI6ImRpc3BsYXlOYW1lID0gcGFyZW50Rm9sZGVyOyJ9LHsicGF0aCI6ImNvbmZpZy1zZWxlY3Rvci50cyIsImxpbmUiOjEwOCwidGV4dCI6IiAgfSBlbHNlIHsifSx7InBhdGgiOiJjb25maWctc2VsZWN0b3IudHMiLCJsaW5lIjoxMDksInRleHQiOiIgIGRpc3BsYXlOYW1lID0gZmlsZU5hbWU7In0seyJwYXRoIjoiY29uZmlnLXNlbGVjdG9yLnRzIiwibGluZSI6MTA3LCJ0ZXh0IjoiICBkaXNwbGF5TmFtZSA9IHBhcmVudEZvbGRlcjsifSx7InBhdGgiOiJjb25maWctc2VsZWN0b3IudHMiLCJsaW5lIjoxMDgsInRleHQiOiIgIH0gZWxzZSB7In0seyJwYXRoIjoiY29uZmlnLXNlbGVjdG9yLnRzIiwibGluZSI6MTA5LCJ0ZXh0IjoiZGlzcGxheU5hbWUgPSBmaWxlTmFtZTsifSx7InBhdGgiOiJjb25maWctc2VsZWN0b3IudHMiLCJsaW5lIjoxMTAsInRleHQiOiIgIH0ifSx7InBhdGgiOiJjb25maWctc2VsZWN0b3IudHMiLCJsaW5lIjoxMTEsInRleHQiOiIgIHN1Ymdyb3VwLml0ZW1zLnB1c2goeyJ9LHsicGF0aCI6ImNvbmZpZy1zZWxlY3Rvci50cyIsImxpbmUiOjExNCwidGV4dCI6IiAgbWV0YWRhdGEsIn0seyJwYXRoIjoiY29uZmlnLXNlbGVjdG9yLnRzIiwibGluZSI6MTE1LCJ0ZXh0IjoiICByZXNvdXJjZVR5cGUsIn0seyJwYXRoIjoiY29uZmlnLXNlbGVjdG9yLnRzIiwibGluZSI6MTE2LCJ0ZXh0IjoiZGlzcGxheU5hbWUsIn0seyJwYXRoIjoiY29uZmlnLXNlbGVjdG9yLnRzIiwibGluZSI6MTE3LCJ0ZXh0IjoiICBncm91cEtleSwifSx7InBhdGgiOiJjb25maWctc2VsZWN0b3IudHMiLCJsaW5lIjoxMTgsInRleHQiOiIgIHN1Ymdyb3VwS2V5LCJ9LHsicGF0aCI6ImNvbmZpZy1zZWxlY3Rvci50cyIsImxpbmUiOjE0MywidGV4dCI6IiAgZ3JvdXAuc3ViZ3JvdXBzLnNvcnQoKGEsIGIpID0+IHR5cGVPcmRlclthLnR5cGVdIC0gdHlwZU9yZGVyW2IudHlwZV0pOyJ9LHsicGF0aCI6ImNvbmZpZy1zZWxlY3Rvci50cyIsImxpbmUiOjE0NCwidGV4dCI6IiAgZm9yIChjb25zdCBzdWJncm91cCBvZiBncm91cC5zdWJncm91cHMpIHsifSx7InBhdGgiOiJjb25maWctc2VsZWN0b3IudHMiLCJsaW5lIjoxNDUsInRleHQiOiJzdWJncm91cC5pdGVtcy5zb3J0KChhLCBiKSA9PiBhLmRpc3BsYXlOYW1lLmxvY2FsZUNvbXBhcmUoYi5kaXNwbGF5TmFtZSkpOyJ9LHsicGF0aCI6ImNvbmZpZy1zZWxlY3Rvci50cyIsImxpbmUiOjE0NiwidGV4dCI6IiAgfSJ9LHsicGF0aCI6ImNvbmZpZy1zZWxlY3Rvci50cyIsImxpbmUiOjE0NywidGV4dCI6IiAgfSJ9LHsicGF0aCI6ImNvbmZpZy1zZWxlY3Rvci50cyIsImxpbmUiOjI1MCwidGV4dCI6IiAgY29uc3QgaXRlbSA9IGVudHJ5Lml0ZW07In0seyJwYXRoIjoiY29uZmlnLXNlbGVjdG9yLnRzIiwibGluZSI6MjUxLCJ0ZXh0IjoiICBpZiAoIn0seyJwYXRoIjoiY29uZmlnLXNlbGVjdG9yLnRzIiwibGluZSI6MjUyLCJ0ZXh0IjoiaXRlbS5kaXNwbGF5TmFtZS50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKGxvd2VyUXVlcnkpIHx8In0seyJwYXRoIjoiY29uZmlnLXNlbGVjdG9yLnRzIiwibGluZSI6MjUzLCJ0ZXh0IjoiICBpdGVtLnJlc291cmNlVHlwZS50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKGxvd2VyUXVlcnkpIHx8In0seyJwYXRoIjoiY29uZmlnLXNlbGVjdG9yLnRzIiwibGluZSI6MjU0LCJ0ZXh0IjoiICBpdGVtLnBhdGgudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhsb3dlclF1ZXJ5KSJ9LHsicGF0aCI6ImNvbmZpZy1zZWxlY3Rvci50cyIsImxpbmUiOjI1MiwidGV4dCI6IiAgaXRlbS5kaXNwbGF5TmFtZS50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKGxvd2VyUXVlcnkpIHx8In0seyJwYXRoIjoiY29uZmlnLXNlbGVjdG9yLnRzIiwibGluZSI6MjUzLCJ0ZXh0IjoiICBpdGVtLnJlc291cmNlVHlwZS50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKGxvd2VyUXVlcnkpIHx8In0seyJwYXRoIjoiY29uZmlnLXNlbGVjdG9yLnRzIiwibGluZSI6MjU0LCJ0ZXh0IjoiaXRlbS5wYXRoLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMobG93ZXJRdWVyeSkifSx7InBhdGgiOiJjb25maWctc2VsZWN0b3IudHMiLCJsaW5lIjoyNTUsInRleHQiOiIgICkgeyJ9LHsicGF0aCI6ImNvbmZpZy1zZWxlY3Rvci50cyIsImxpbmUiOjI1NiwidGV4dCI6IiAgbWF0Y2hpbmdJdGVtcy5hZGQoaXRlbSk7In0seyJwYXRoIjoiY29uZmlnLXNlbGVjdG9yLnRzIiwibGluZSI6Mjk1LCJ0ZXh0IjoiICBmb3IgKGNvbnN0IGdyb3VwIG9mIHRoaXMuZ3JvdXBzKSB7In0seyJwYXRoIjoiY29uZmlnLXNlbGVjdG9yLnRzIiwibGluZSI6Mjk2LCJ0ZXh0IjoiICBmb3IgKGNvbnN0IHN1Ymdyb3VwIG9mIGdyb3VwLnN1Ymdyb3VwcykgeyJ9LHsicGF0aCI6ImNvbmZpZy1zZWxlY3Rvci50cyIsImxpbmUiOjI5NywidGV4dCI6ImNvbnN0IGZvdW5kID0gc3ViZ3JvdXAuaXRlbXMuZmluZCgoaSkgPT4gaS5wYXRoID09PSBpdGVtLnBhdGggJiYgaS5yZXNvdXJjZVR5cGUgPT09IGl0ZW0ucmVzb3VyY2VUeXBlKTsifSx7InBhdGgiOiJjb25maWctc2VsZWN0b3IudHMiLCJsaW5lIjoyOTgsInRleHQiOiIgIGlmIChmb3VuZCkgeyJ9LHsicGF0aCI6ImNvbmZpZy1zZWxlY3Rvci50cyIsImxpbmUiOjI5OSwidGV4dCI6IiAgZm91bmQuZW5hYmxlZCA9IGVuYWJsZWQ7In0seyJwYXRoIjoiY29uZmlnLXNlbGVjdG9yLnRzIiwibGluZSI6MzQyLCJ0ZXh0IjoiICBjb25zdCBjdXJzb3IgPSBpc1NlbGVjdGVkID8gXCI+IFwiIDogXCIgIFwiOyJ9LHsicGF0aCI6ImNvbmZpZy1zZWxlY3Rvci50cyIsImxpbmUiOjM0MywidGV4dCI6IiAgY29uc3QgY2hlY2tib3ggPSBpdGVtLmVuYWJsZWQgPyB0aGVtZS5mZyhcInN1Y2Nlc3NcIiwgXCJbeF1cIikgOiB0aGVtZS5mZyhcImRpbVwiLCBcIlsgXVwiKTsifSx7InBhdGgiOiJjb25maWctc2VsZWN0b3IudHMiLCJsaW5lIjozNDQsInRleHQiOiJjb25zdCBuYW1lID0gaXNTZWxlY3RlZCA/IHRoZW1lLmJvbGQoaXRlbS5kaXNwbGF5TmFtZSkgOiBpdGVtLmRpc3BsYXlOYW1lOyJ9LHsicGF0aCI6ImNvbmZpZy1zZWxlY3Rvci50cyIsImxpbmUiOjM0NSwidGV4dCI6IiAgbGluZXMucHVzaCh0cnVuY2F0ZVRvV2lkdGgoYCR7Y3Vyc29yfSAgICAke2NoZWNrYm94fSAke25hbWV9YCwgd2lkdGgsIFwiLi4uXCIpKTsifSx7InBhdGgiOiJjb25maWctc2VsZWN0b3IudHMiLCJsaW5lIjozNDYsInRleHQiOiIgIH0ifSx7InBhdGgiOiJjb25maWctc2VsZWN0b3IudHMiLCJsaW5lIjo1MzcsInRleHQiOiIgIGNvbnN0IHNjb3BlID0gaXRlbS5tZXRhZGF0YS5zY29wZSBhcyBcInVzZXJcIiB8IFwicHJvamVjdFwiOyJ9LHsicGF0aCI6ImNvbmZpZy1zZWxlY3Rvci50cyIsImxpbmUiOjUzOCwidGV4dCI6IiAgY29uc3QgYmFzZURpciA9IHRoaXMuZ2V0VG9wTGV2ZWxCYXNlRGlyKHNjb3BlKTsifSx7InBhdGgiOiJjb25maWctc2VsZWN0b3IudHMiLCJsaW5lIjo1MzksInRleHQiOiJyZXR1cm4gcmVsYXRpdmUoYmFzZURpciwgaXRlbS5wYXRoKTsifSx7InBhdGgiOiJjb25maWctc2VsZWN0b3IudHMiLCJsaW5lIjo1NDAsInRleHQiOiIgIH0ifSx7InBhdGgiOiJjb25maWctc2VsZWN0b3IudHMiLCJsaW5lIjo1NDEsInRleHQiOiIgICJ9LHsicGF0aCI6ImNvbmZpZy1zZWxlY3Rvci50cyIsImxpbmUiOjU0MSwidGV4dCI6IiAgIn0seyJwYXRoIjoiY29uZmlnLXNlbGVjdG9yLnRzIiwibGluZSI6NTQyLCJ0ZXh0IjoiICBwcml2YXRlIGdldFBhY2thZ2VSZXNvdXJjZVBhdHRlcm4oaXRlbTogUmVzb3VyY2VJdGVtKTogc3RyaW5nIHsifSx7InBhdGgiOiJjb25maWctc2VsZWN0b3IudHMiLCJsaW5lIjo1NDMsInRleHQiOiJjb25zdCBiYXNlRGlyID0gaXRlbS5tZXRhZGF0YS5iYXNlRGlyID8/IGRpcm5hbWUoaXRlbS5wYXRoKTsifSx7InBhdGgiOiJjb25maWctc2VsZWN0b3IudHMiLCJsaW5lIjo1NDQsInRleHQiOiIgIHJldHVybiByZWxhdGl2ZShiYXNlRGlyLCBpdGVtLnBhdGgpOyJ9LHsicGF0aCI6ImNvbmZpZy1zZWxlY3Rvci50cyIsImxpbmUiOjU0NSwidGV4dCI6IiAgfSJ9LHsicGF0aCI6ImNvbmZpZy1zZWxlY3Rvci50cyIsImxpbmUiOjU0MiwidGV4dCI6IiAgcHJpdmF0ZSBnZXRQYWNrYWdlUmVzb3VyY2VQYXR0ZXJuKGl0ZW06IFJlc291cmNlSXRlbSk6IHN0cmluZyB7In0seyJwYXRoIjoiY29uZmlnLXNlbGVjdG9yLnRzIiwibGluZSI6NTQzLCJ0ZXh0IjoiICBjb25zdCBiYXNlRGlyID0gaXRlbS5tZXRhZGF0YS5iYXNlRGlyID8/IGRpcm5hbWUoaXRlbS5wYXRoKTsifSx7InBhdGgiOiJjb25maWctc2VsZWN0b3IudHMiLCJsaW5lIjo1NDQsInRleHQiOiJyZXR1cm4gcmVsYXRpdmUoYmFzZURpciwgaXRlbS5wYXRoKTsifSx7InBhdGgiOiJjb25maWctc2VsZWN0b3IudHMiLCJsaW5lIjo1NDUsInRleHQiOiIgIH0ifSx7InBhdGgiOiJjb25maWctc2VsZWN0b3IudHMiLCJsaW5lIjo1NDYsInRleHQiOiIgIH0ifV19LCJpc0Vycm9yIjpmYWxzZSwidGltZXN0YW1wIjoxNzc3NTM1ODc2NTY3fX0seyJ0eXBlIjoibWVzc2FnZSIsImlkIjoiOGYwN2EyYmIiLCJwYXJlbnRJZCI6ImE3MjIxZjUwIiwidGltZXN0YW1wIjoiMjAyNi0wNC0zMFQwNzo1Nzo1OS4wNDZaIiwibWVzc2FnZSI6eyJyb2xlIjoiYXNzaXN0YW50IiwiY29udGVudCI6W3sidHlwZSI6InRvb2xDYWxsIiwiaWQiOiJjYWxsX1VlMHlwM2xKOTc0WE00SzdGY3U1VktxQXxmY18wMjdmMWVhMTVkZWYzNTA1MDE2OWYzMGI4NjkwZDQ4MTkxYmM5MTNhNjAyMDRiYjdmNyIsIm5hbWUiOiJyZWFkIiwiYXJndW1lbnRzIjp7InBhdGgiOiJwYWNrYWdlcy9jb2RpbmctYWdlbnQvc3JjL21vZGVzL2ludGVyYWN0aXZlL2NvbXBvbmVudHMvY29uZmlnLXNlbGVjdG9yLnRzIiwib2Zmc2V0IjoyMzAsImxpbWl0IjoxMzV9fV0sImFwaSI6Im9wZW5haS1jb2RleC1yZXNwb25zZXMiLCJwcm92aWRlciI6Im9wZW5haS1jb2RleCIsIm1vZGVsIjoiZ3B0LTUuNSIsInVzYWdlIjp7ImlucHV0IjoxNDQ2LCJvdXRwdXQiOjM3LCJjYWNoZVJlYWQiOjE5NDU2LCJjYWNoZVdyaXRlIjowLCJ0b3RhbFRva2VucyI6MjA5MzksImNvc3QiOnsiaW5wdXQiOjAuMDA3MjMsIm91dHB1dCI6MC4wMDExMSwiY2FjaGVSZWFkIjowLjAwOTcyNzk5OTk5OTk5OTk5OSwiY2FjaGVXcml0ZSI6MCwidG90YWwiOjAuMDE4MDY4fX0sInN0b3BSZWFzb24iOiJ0b29sVXNlIiwidGltZXN0YW1wIjoxNzc3NTM1ODc2NTY4LCJyZXNwb25zZUlkIjoicmVzcF8wMjdmMWVhMTVkZWYzNTA1MDE2OWYzMGI4NTg1YzQ4MTkxOTY4YmE3ODI2NjFmOTA0ZSJ9fSx7InR5cGUiOiJtZXNzYWdlIiwiaWQiOiI5OGZjOTA3OSIsInBhcmVudElkIjoiOGYwN2EyYmIiLCJ0aW1lc3RhbXAiOiIyMDI2LTA0LTMwVDA3OjU3OjU5LjA1MVoiLCJtZXNzYWdlIjp7InJvbGUiOiJ0b29sUmVzdWx0IiwidG9vbENhbGxJZCI6ImNhbGxfVWUweXAzbEo5NzRYTTRLN0ZjdTVWS3FBfGZjXzAyN2YxZWExNWRlZjM1MDUwMTY5ZjMwYjg2OTBkNDgxOTFiYzkxM2E2MDIwNGJiN2Y3IiwidG9vbE5hbWUiOiJyZWFkIiwiY29udGVudCI6W3sidHlwZSI6InRleHQiLCJ0ZXh0IjoiXHRcdFx0fVxuXHRcdFx0aWR4ICs9IGRpcmVjdGlvbjtcblx0XHR9XG5cdFx0cmV0dXJuIGZyb21JbmRleDsgLy8gU3RheSBhdCBjdXJyZW50IGlmIG5vIGl0ZW0gZm91bmRcblx0fVxuXG5cdHByaXZhdGUgZmlsdGVySXRlbXMocXVlcnk6IHN0cmluZyk6IHZvaWQge1xuXHRcdGlmICghcXVlcnkudHJpbSgpKSB7XG5cdFx0XHR0aGlzLmZpbHRlcmVkSXRlbXMgPSBbLi4udGhpcy5mbGF0SXRlbXNdO1xuXHRcdFx0dGhpcy5zZWxlY3RGaXJzdEl0ZW0oKTtcblx0XHRcdHJldHVybjtcblx0XHR9XG5cblx0XHRjb25zdCBsb3dlclF1ZXJ5ID0gcXVlcnkudG9Mb3dlckNhc2UoKTtcblx0XHRjb25zdCBtYXRjaGluZ0l0ZW1zID0gbmV3IFNldDxSZXNvdXJjZUl0ZW0+KCk7XG5cdFx0Y29uc3QgbWF0Y2hpbmdTdWJncm91cHMgPSBuZXcgU2V0PFJlc291cmNlU3ViZ3JvdXA+KCk7XG5cdFx0Y29uc3QgbWF0Y2hpbmdHcm91cHMgPSBuZXcgU2V0PFJlc291cmNlR3JvdXA+KCk7XG5cblx0XHRmb3IgKGNvbnN0IGVudHJ5IG9mIHRoaXMuZmxhdEl0ZW1zKSB7XG5cdFx0XHRpZiAoZW50cnkudHlwZSA9PT0gXCJpdGVtXCIpIHtcblx0XHRcdFx0Y29uc3QgaXRlbSA9IGVudHJ5Lml0ZW07XG5cdFx0XHRcdGlmIChcblx0XHRcdFx0XHRpdGVtLmRpc3BsYXlOYW1lLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMobG93ZXJRdWVyeSkgfHxcblx0XHRcdFx0XHRpdGVtLnJlc291cmNlVHlwZS50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKGxvd2VyUXVlcnkpIHx8XG5cdFx0XHRcdFx0aXRlbS5wYXRoLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMobG93ZXJRdWVyeSlcblx0XHRcdFx0KSB7XG5cdFx0XHRcdFx0bWF0Y2hpbmdJdGVtcy5hZGQoaXRlbSk7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cblx0XHQvLyBGaW5kIHdoaWNoIHN1Ymdyb3VwcyBhbmQgZ3JvdXBzIGNvbnRhaW4gbWF0Y2hpbmcgaXRlbXNcblx0XHRmb3IgKGNvbnN0IGdyb3VwIG9mIHRoaXMuZ3JvdXBzKSB7XG5cdFx0XHRmb3IgKGNvbnN0IHN1Ymdyb3VwIG9mIGdyb3VwLnN1Ymdyb3Vwcykge1xuXHRcdFx0XHRmb3IgKGNvbnN0IGl0ZW0gb2Ygc3ViZ3JvdXAuaXRlbXMpIHtcblx0XHRcdFx0XHRpZiAobWF0Y2hpbmdJdGVtcy5oYXMoaXRlbSkpIHtcblx0XHRcdFx0XHRcdG1hdGNoaW5nU3ViZ3JvdXBzLmFkZChzdWJncm91cCk7XG5cdFx0XHRcdFx0XHRtYXRjaGluZ0dyb3Vwcy5hZGQoZ3JvdXApO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblxuXHRcdHRoaXMuZmlsdGVyZWRJdGVtcyA9IFtdO1xuXHRcdGZvciAoY29uc3QgZW50cnkgb2YgdGhpcy5mbGF0SXRlbXMpIHtcblx0XHRcdGlmIChlbnRyeS50eXBlID09PSBcImdyb3VwXCIgJiYgbWF0Y2hpbmdHcm91cHMuaGFzKGVudHJ5Lmdyb3VwKSkge1xuXHRcdFx0XHR0aGlzLmZpbHRlcmVkSXRlbXMucHVzaChlbnRyeSk7XG5cdFx0XHR9IGVsc2UgaWYgKGVudHJ5LnR5cGUgPT09IFwic3ViZ3JvdXBcIiAmJiBtYXRjaGluZ1N1Ymdyb3Vwcy5oYXMoZW50cnkuc3ViZ3JvdXApKSB7XG5cdFx0XHRcdHRoaXMuZmlsdGVyZWRJdGVtcy5wdXNoKGVudHJ5KTtcblx0XHRcdH0gZWxzZSBpZiAoZW50cnkudHlwZSA9PT0gXCJpdGVtXCIgJiYgbWF0Y2hpbmdJdGVtcy5oYXMoZW50cnkuaXRlbSkpIHtcblx0XHRcdFx0dGhpcy5maWx0ZXJlZEl0ZW1zLnB1c2goZW50cnkpO1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdHRoaXMuc2VsZWN0Rmlyc3RJdGVtKCk7XG5cdH1cblxuXHRwcml2YXRlIHNlbGVjdEZpcnN0SXRlbSgpOiB2b2lkIHtcblx0XHRjb25zdCBmaXJzdEl0ZW1JbmRleCA9IHRoaXMuZmlsdGVyZWRJdGVtcy5maW5kSW5kZXgoKGUpID0+IGUudHlwZSA9PT0gXCJpdGVtXCIpO1xuXHRcdHRoaXMuc2VsZWN0ZWRJbmRleCA9IGZpcnN0SXRlbUluZGV4ID49IDAgPyBmaXJzdEl0ZW1JbmRleCA6IDA7XG5cdH1cblxuXHR1cGRhdGVJdGVtKGl0ZW06IFJlc291cmNlSXRlbSwgZW5hYmxlZDogYm9vbGVhbik6IHZvaWQge1xuXHRcdGl0ZW0uZW5hYmxlZCA9IGVuYWJsZWQ7XG5cdFx0Ly8gVXBkYXRlIGluIGdyb3VwcyB0b29cblx0XHRmb3IgKGNvbnN0IGdyb3VwIG9mIHRoaXMuZ3JvdXBzKSB7XG5cdFx0XHRmb3IgKGNvbnN0IHN1Ymdyb3VwIG9mIGdyb3VwLnN1Ymdyb3Vwcykge1xuXHRcdFx0XHRjb25zdCBmb3VuZCA9IHN1Ymdyb3VwLml0ZW1zLmZpbmQoKGkpID0+IGkucGF0aCA9PT0gaXRlbS5wYXRoICYmIGkucmVzb3VyY2VUeXBlID09PSBpdGVtLnJlc291cmNlVHlwZSk7XG5cdFx0XHRcdGlmIChmb3VuZCkge1xuXHRcdFx0XHRcdGZvdW5kLmVuYWJsZWQgPSBlbmFibGVkO1xuXHRcdFx0XHRcdHJldHVybjtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblx0fVxuXG5cdGludmFsaWRhdGUoKTogdm9pZCB7fVxuXG5cdHJlbmRlcih3aWR0aDogbnVtYmVyKTogc3RyaW5nW10ge1xuXHRcdGNvbnN0IGxpbmVzOiBzdHJpbmdbXSA9IFtdO1xuXG5cdFx0Ly8gU2VhcmNoIGlucHV0XG5cdFx0bGluZXMucHVzaCguLi50aGlzLnNlYXJjaElucHV0LnJlbmRlcih3aWR0aCkpO1xuXHRcdGxpbmVzLnB1c2goXCJcIik7XG5cblx0XHRpZiAodGhpcy5maWx0ZXJlZEl0ZW1zLmxlbmd0aCA9PT0gMCkge1xuXHRcdFx0bGluZXMucHVzaCh0aGVtZS5mZyhcIm11dGVkXCIsIFwiICBObyByZXNvdXJjZXMgZm91bmRcIikpO1xuXHRcdFx0cmV0dXJuIGxpbmVzO1xuXHRcdH1cblxuXHRcdC8vIENhbGN1bGF0ZSB2aXNpYmxlIHJhbmdlXG5cdFx0Y29uc3Qgc3RhcnRJbmRleCA9IE1hdGgubWF4KFxuXHRcdFx0MCxcblx0XHRcdE1hdGgubWluKHRoaXMuc2VsZWN0ZWRJbmRleCAtIE1hdGguZmxvb3IodGhpcy5tYXhWaXNpYmxlIC8gMiksIHRoaXMuZmlsdGVyZWRJdGVtcy5sZW5ndGggLSB0aGlzLm1heFZpc2libGUpLFxuXHRcdCk7XG5cdFx0Y29uc3QgZW5kSW5kZXggPSBNYXRoLm1pbihzdGFydEluZGV4ICsgdGhpcy5tYXhWaXNpYmxlLCB0aGlzLmZpbHRlcmVkSXRlbXMubGVuZ3RoKTtcblxuXHRcdGZvciAobGV0IGkgPSBzdGFydEluZGV4OyBpIDwgZW5kSW5kZXg7IGkrKykge1xuXHRcdFx0Y29uc3QgZW50cnkgPSB0aGlzLmZpbHRlcmVkSXRlbXNbaV07XG5cdFx0XHRjb25zdCBpc1NlbGVjdGVkID0gaSA9PT0gdGhpcy5zZWxlY3RlZEluZGV4O1xuXG5cdFx0XHRpZiAoZW50cnkudHlwZSA9PT0gXCJncm91cFwiKSB7XG5cdFx0XHRcdC8vIE1haW4gZ3JvdXAgaGVhZGVyIChubyBjdXJzb3IpXG5cdFx0XHRcdGNvbnN0IGdyb3VwTGluZSA9IHRoZW1lLmZnKFwiYWNjZW50XCIsIHRoZW1lLmJvbGQoZW50cnkuZ3JvdXAubGFiZWwpKTtcblx0XHRcdFx0bGluZXMucHVzaCh0cnVuY2F0ZVRvV2lkdGgoYCAgJHtncm91cExpbmV9YCwgd2lkdGgsIFwiXCIpKTtcblx0XHRcdH0gZWxzZSBpZiAoZW50cnkudHlwZSA9PT0gXCJzdWJncm91cFwiKSB7XG5cdFx0XHRcdC8vIFN1Ymdyb3VwIGhlYWRlciAoaW5kZW50ZWQsIG5vIGN1cnNvcilcblx0XHRcdFx0Y29uc3Qgc3ViZ3JvdXBMaW5lID0gdGhlbWUuZmcoXCJtdXRlZFwiLCBlbnRyeS5zdWJncm91cC5sYWJlbCk7XG5cdFx0XHRcdGxpbmVzLnB1c2godHJ1bmNhdGVUb1dpZHRoKGAgICAgJHtzdWJncm91cExpbmV9YCwgd2lkdGgsIFwiXCIpKTtcblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdC8vIFJlc291cmNlIGl0ZW0gKGN1cnNvciBvbmx5IG9uIGl0ZW1zKVxuXHRcdFx0XHRjb25zdCBpdGVtID0gZW50cnkuaXRlbTtcblx0XHRcdFx0Y29uc3QgY3Vyc29yID0gaXNTZWxlY3RlZCA/IFwiPiBcIiA6IFwiICBcIjtcblx0XHRcdFx0Y29uc3QgY2hlY2tib3ggPSBpdGVtLmVuYWJsZWQgPyB0aGVtZS5mZyhcInN1Y2Nlc3NcIiwgXCJbeF1cIikgOiB0aGVtZS5mZyhcImRpbVwiLCBcIlsgXVwiKTtcblx0XHRcdFx0Y29uc3QgbmFtZSA9IGlzU2VsZWN0ZWQgPyB0aGVtZS5ib2xkKGl0ZW0uZGlzcGxheU5hbWUpIDogaXRlbS5kaXNwbGF5TmFtZTtcblx0XHRcdFx0bGluZXMucHVzaCh0cnVuY2F0ZVRvV2lkdGgoYCR7Y3Vyc29yfSAgICAke2NoZWNrYm94fSAke25hbWV9YCwgd2lkdGgsIFwiLi4uXCIpKTtcblx0XHRcdH1cblx0XHR9XG5cblx0XHQvLyBTY3JvbGwgaW5kaWNhdG9yXG5cdFx0aWYgKHN0YXJ0SW5kZXggPiAwIHx8IGVuZEluZGV4IDwgdGhpcy5maWx0ZXJlZEl0ZW1zLmxlbmd0aCkge1xuXHRcdFx0Y29uc3QgaXRlbUNvdW50ID0gdGhpcy5maWx0ZXJlZEl0ZW1zLmZpbHRlcigoZSkgPT4gZS50eXBlID09PSBcIml0ZW1cIikubGVuZ3RoO1xuXHRcdFx0Y29uc3QgY3VycmVudEl0ZW1JbmRleCA9XG5cdFx0XHRcdHRoaXMuZmlsdGVyZWRJdGVtcy5zbGljZSgwLCB0aGlzLnNlbGVjdGVkSW5kZXgpLmZpbHRlcigoZSkgPT4gZS50eXBlID09PSBcIml0ZW1cIikubGVuZ3RoICsgMTtcblx0XHRcdGxpbmVzLnB1c2godGhlbWUuZmcoXCJkaW1cIiwgYCAgKCR7Y3VycmVudEl0ZW1JbmRleH0vJHtpdGVtQ291bnR9KWApKTtcblx0XHR9XG5cblx0XHRyZXR1cm4gbGluZXM7XG5cdH1cblxuXHRoYW5kbGVJbnB1dChkYXRhOiBzdHJpbmcpOiB2b2lkIHtcblx0XHRjb25zdCBrYiA9IGdldEtleWJpbmRpbmdzKCk7XG5cblx0XHRpZiAoa2IubWF0Y2hlcyhkYXRhLCBcInR1aS5zZWxlY3QudXBcIikpIHtcblx0XHRcdHRoaXMuc2VsZWN0ZWRJbmRleCA9IHRoaXMuZmluZE5leHRJdGVtKHRoaXMuc2VsZWN0ZWRJbmRleCwgLTEpO1xuXG5bMjMyIG1vcmUgbGluZXMgaW4gZmlsZS4gVXNlIG9mZnNldD0zNjUgdG8gY29udGludWUuXSJ9XSwiaXNFcnJvciI6ZmFsc2UsInRpbWVzdGFtcCI6MTc3NzUzNTg3OTA1MX19LHsidHlwZSI6Im1lc3NhZ2UiLCJpZCI6ImQyOWIyMWY0IiwicGFyZW50SWQiOiI5OGZjOTA3OSIsInRpbWVzdGFtcCI6IjIwMjYtMDQtMzBUMDc6NTg6MDIuMTc5WiIsIm1lc3NhZ2UiOnsicm9sZSI6ImFzc2lzdGFudCIsImNvbnRlbnQiOlt7InR5cGUiOiJ0b29sQ2FsbCIsImlkIjoiY2FsbF9UczJuc3Q5Wnd0cXdnSjhvdW5EUVdqWlR8ZmNfMDI3ZjFlYTE1ZGVmMzUwNTAxNjlmMzBiODk4NTQ4ODE5MWI4ODRkYjI4MmVjOWYwNjMiLCJuYW1lIjoicmVhZCIsImFyZ3VtZW50cyI6eyJwYXRoIjoicGFja2FnZXMvY29kaW5nLWFnZW50L3NyYy9tb2Rlcy9pbnRlcmFjdGl2ZS9jb21wb25lbnRzL2NvbmZpZy1zZWxlY3Rvci50cyIsIm9mZnNldCI6NTAwLCJsaW1pdCI6NzV9fV0sImFwaSI6Im9wZW5haS1jb2RleC1yZXNwb25zZXMiLCJwcm92aWRlciI6Im9wZW5haS1jb2RleCIsIm1vZGVsIjoiZ3B0LTUuNSIsInVzYWdlIjp7ImlucHV0IjoxNTc2LCJvdXRwdXQiOjM3LCJjYWNoZVJlYWQiOjIwNDgwLCJjYWNoZVdyaXRlIjowLCJ0b3RhbFRva2VucyI6MjIwOTMsImNvc3QiOnsiaW5wdXQiOjAuMDA3ODgsIm91dHB1dCI6MC4wMDExMSwiY2FjaGVSZWFkIjowLjAxMDIzOTk5OTk5OTk5OTk5OSwiY2FjaGVXcml0ZSI6MCwidG90YWwiOjAuMDE5MjI5OTk5OTk5OTk5OTk3fX0sInN0b3BSZWFzb24iOiJ0b29sVXNlIiwidGltZXN0YW1wIjoxNzc3NTM1ODc5MDUyLCJyZXNwb25zZUlkIjoicmVzcF8wMjdmMWVhMTVkZWYzNTA1MDE2OWYzMGI4N2JhNmM4MTkxYTIzZWFlZTFlZTgwZjEwYSJ9fSx7InR5cGUiOiJtZXNzYWdlIiwiaWQiOiI1MzI2NGNmYSIsInBhcmVudElkIjoiZDI5YjIxZjQiLCJ0aW1lc3RhbXAiOiIyMDI2LTA0LTMwVDA3OjU4OjAyLjE4MloiLCJtZXNzYWdlIjp7InJvbGUiOiJ0b29sUmVzdWx0IiwidG9vbENhbGxJZCI6ImNhbGxfVHMybnN0OVp3dHF3Z0o4b3VuRFFXalpUfGZjXzAyN2YxZWExNWRlZjM1MDUwMTY5ZjMwYjg5ODU0ODgxOTFiODg0ZGIyODJlYzlmMDYzIiwidG9vbE5hbWUiOiJyZWFkIiwiY29udGVudCI6W3sidHlwZSI6InRleHQiLCJ0ZXh0IjoiXHRcdGNvbnN0IGRpc2FibGVQYXR0ZXJuID0gYC0ke3BhdHRlcm59YDtcblx0XHRjb25zdCBlbmFibGVQYXR0ZXJuID0gYCske3BhdHRlcm59YDtcblxuXHRcdC8vIEZpbHRlciBvdXQgZXhpc3RpbmcgcGF0dGVybnMgZm9yIHRoaXMgcmVzb3VyY2Vcblx0XHRjb25zdCB1cGRhdGVkID0gY3VycmVudC5maWx0ZXIoKHApID0+IHtcblx0XHRcdGNvbnN0IHN0cmlwcGVkID0gcC5zdGFydHNXaXRoKFwiIVwiKSB8fCBwLnN0YXJ0c1dpdGgoXCIrXCIpIHx8IHAuc3RhcnRzV2l0aChcIi1cIikgPyBwLnNsaWNlKDEpIDogcDtcblx0XHRcdHJldHVybiBzdHJpcHBlZCAhPT0gcGF0dGVybjtcblx0XHR9KTtcblxuXHRcdGlmIChlbmFibGVkKSB7XG5cdFx0XHR1cGRhdGVkLnB1c2goZW5hYmxlUGF0dGVybik7XG5cdFx0fSBlbHNlIHtcblx0XHRcdHVwZGF0ZWQucHVzaChkaXNhYmxlUGF0dGVybik7XG5cdFx0fVxuXG5cdFx0KHBrZyBhcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPilbYXJyYXlLZXldID0gdXBkYXRlZC5sZW5ndGggPiAwID8gdXBkYXRlZCA6IHVuZGVmaW5lZDtcblxuXHRcdC8vIENsZWFuIHVwIGVtcHR5IGZpbHRlciBvYmplY3Rcblx0XHRjb25zdCBoYXNGaWx0ZXJzID0gW1wiZXh0ZW5zaW9uc1wiLCBcInNraWxsc1wiLCBcInByb21wdHNcIiwgXCJ0aGVtZXNcIl0uc29tZShcblx0XHRcdChrKSA9PiAocGtnIGFzIFJlY29yZDxzdHJpbmcsIHVua25vd24+KVtrXSAhPT0gdW5kZWZpbmVkLFxuXHRcdCk7XG5cdFx0aWYgKCFoYXNGaWx0ZXJzKSB7XG5cdFx0XHRwYWNrYWdlc1twa2dJbmRleF0gPSAocGtnIGFzIHsgc291cmNlOiBzdHJpbmcgfSkuc291cmNlO1xuXHRcdH1cblxuXHRcdGlmIChzY29wZSA9PT0gXCJwcm9qZWN0XCIpIHtcblx0XHRcdHRoaXMuc2V0dGluZ3NNYW5hZ2VyLnNldFByb2plY3RQYWNrYWdlcyhwYWNrYWdlcyk7XG5cdFx0fSBlbHNlIHtcblx0XHRcdHRoaXMuc2V0dGluZ3NNYW5hZ2VyLnNldFBhY2thZ2VzKHBhY2thZ2VzKTtcblx0XHR9XG5cdH1cblxuXHRwcml2YXRlIGdldFRvcExldmVsQmFzZURpcihzY29wZTogXCJ1c2VyXCIgfCBcInByb2plY3RcIik6IHN0cmluZyB7XG5cdFx0cmV0dXJuIHNjb3BlID09PSBcInByb2plY3RcIiA/IGpvaW4odGhpcy5jd2QsIENPTkZJR19ESVJfTkFNRSkgOiB0aGlzLmFnZW50RGlyO1xuXHR9XG5cblx0cHJpdmF0ZSBnZXRSZXNvdXJjZVBhdHRlcm4oaXRlbTogUmVzb3VyY2VJdGVtKTogc3RyaW5nIHtcblx0XHRjb25zdCBzY29wZSA9IGl0ZW0ubWV0YWRhdGEuc2NvcGUgYXMgXCJ1c2VyXCIgfCBcInByb2plY3RcIjtcblx0XHRjb25zdCBiYXNlRGlyID0gdGhpcy5nZXRUb3BMZXZlbEJhc2VEaXIoc2NvcGUpO1xuXHRcdHJldHVybiByZWxhdGl2ZShiYXNlRGlyLCBpdGVtLnBhdGgpO1xuXHR9XG5cblx0cHJpdmF0ZSBnZXRQYWNrYWdlUmVzb3VyY2VQYXR0ZXJuKGl0ZW06IFJlc291cmNlSXRlbSk6IHN0cmluZyB7XG5cdFx0Y29uc3QgYmFzZURpciA9IGl0ZW0ubWV0YWRhdGEuYmFzZURpciA/PyBkaXJuYW1lKGl0ZW0ucGF0aCk7XG5cdFx0cmV0dXJuIHJlbGF0aXZlKGJhc2VEaXIsIGl0ZW0ucGF0aCk7XG5cdH1cbn1cblxuZXhwb3J0IGNsYXNzIENvbmZpZ1NlbGVjdG9yQ29tcG9uZW50IGV4dGVuZHMgQ29udGFpbmVyIGltcGxlbWVudHMgRm9jdXNhYmxlIHtcblx0cHJpdmF0ZSByZXNvdXJjZUxpc3Q6IFJlc291cmNlTGlzdDtcblxuXHRwcml2YXRlIF9mb2N1c2VkID0gZmFsc2U7XG5cdGdldCBmb2N1c2VkKCk6IGJvb2xlYW4ge1xuXHRcdHJldHVybiB0aGlzLl9mb2N1c2VkO1xuXHR9XG5cdHNldCBmb2N1c2VkKHZhbHVlOiBib29sZWFuKSB7XG5cdFx0dGhpcy5fZm9jdXNlZCA9IHZhbHVlO1xuXHRcdHRoaXMucmVzb3VyY2VMaXN0LmZvY3VzZWQgPSB2YWx1ZTtcblx0fVxuXG5cdGNvbnN0cnVjdG9yKFxuXHRcdHJlc29sdmVkUGF0aHM6IFJlc29sdmVkUGF0aHMsXG5cdFx0c2V0dGluZ3NNYW5hZ2VyOiBTZXR0aW5nc01hbmFnZXIsXG5cdFx0Y3dkOiBzdHJpbmcsXG5cdFx0YWdlbnREaXI6IHN0cmluZyxcblx0XHRvbkNsb3NlOiAoKSA9PiB2b2lkLFxuXHRcdG9uRXhpdDogKCkgPT4gdm9pZCxcblx0XHRyZXF1ZXN0UmVuZGVyOiAoKSA9PiB2b2lkLFxuXHQpIHtcblx0XHRzdXBlcigpO1xuXG5cdFx0Y29uc3QgZ3JvdXBzID0gYnVpbGRHcm91cHMocmVzb2x2ZWRQYXRocyk7XG5cblx0XHQvLyBBZGQgaGVhZGVyXG5cdFx0dGhpcy5hZGRDaGlsZChuZXcgU3BhY2VyKDEpKTtcblxuWzIyIG1vcmUgbGluZXMgaW4gZmlsZS4gVXNlIG9mZnNldD01NzUgdG8gY29udGludWUuXSJ9XSwiaXNFcnJvciI6ZmFsc2UsInRpbWVzdGFtcCI6MTc3NzUzNTg4MjE4Mn19LHsidHlwZSI6Im1lc3NhZ2UiLCJpZCI6IjA0NTRiZjQxIiwicGFyZW50SWQiOiI1MzI2NGNmYSIsInRpbWVzdGFtcCI6IjIwMjYtMDQtMzBUMDc6NTg6MTcuNTg2WiIsIm1lc3NhZ2UiOnsicm9sZSI6ImFzc2lzdGFudCIsImNvbnRlbnQiOlt7InR5cGUiOiJ0aGlua2luZyIsInRoaW5raW5nIjoiKipJbnZlc3RpZ2F0aW5nIGFnZW50IHNraWxscyBpc3N1ZSoqXG5cbknigJltIGVuY291bnRlcmluZyBhIHBvdGVudGlhbCBpc3N1ZSByZWxhdGVkIHRvIHRvZ2dsaW5nIHRoZSAuYWdlbnRzIHNraWxsIGxvY2F0aW9uLiBJdCBzZWVtcyB0byBpbnZvbHZlIHRoZSBwYXRocyBmcm9tIC8ucGkvYWdlbnQgdG8gLy5hZ2VudHMsIHdoaWNoIGluY2x1ZGVzIHRoZSBnbG9iYWwgc2V0dGluZ3Mgc2tpbGxzLiBUaGUgcGFja2FnZSBtYW5hZ2VyJ3Mgb3ZlcnJpZGUgd2l0aCBiYXNlRGlyIGFuZCBnbG9iYWxCYXNlRGlyIGNvdWxkIGFsc28gbWF0Y2ggdGhhdCByZWxhdGl2ZSBwYXRoLiBJdCBtaWdodCBmdW5jdGlvbiBjb3JyZWN0bHksIGJ1dCBJIHJlYWxseSB3YW50IHRvIHNlZSB0aGUgZGVzaXJlZCBzcGxpdCBpbiBvdXRwdXQuIEknbGwgbmVlZCB0byBpbnNwZWN0IHRoZSBjb25zdHJ1Y3RvciBmb3IgYWdlbnREaXIgdG8gdW5kZXJzdGFuZCB0aGlzIGJldHRlci4iLCJ0aGlua2luZ1NpZ25hdHVyZSI6IntcImlkXCI6XCJyc18wMjdmMWVhMTVkZWYzNTA1MDE2OWYzMGI5MjZiZTQ4MTkxYjVhYmI2ZDJmN2MwYWZhMFwiLFwidHlwZVwiOlwicmVhc29uaW5nXCIsXCJlbmNyeXB0ZWRfY29udGVudFwiOlwiZ0FBQUFBQnA4d3VaYzluM3lwbF9HRUdlWnhzVy1Pa1VaQ0VGVlpQUFBKNkdQOW9Cd1dLUXVIb05kVkVHSHNhdlE3RDRCUXlDOU5mNF9uOUxhd0w3UURRYmZuZkZIaWpQT3RzS1VoZTJZQUUtWUtMeU5KSXE1UU1BVnllZXI5OE94azYzblNUOHZ6TENzei1SQXJYWHpSV3VjbDBnMVVlQ3hUVDB1QmxfVUpIODd0VUVZVTk3U2VrZTVEX0wzS29xNHNmOTVxT0V3MnpEOF9TdHlyTVlaWWhGQk0zdDY3a184UHBxdlhzVTZjSGxLU3ZwU2dlWm1SLXQ5R3ZjU1NBYmtzUTZwTDhWRUNXWkJkaGhXUjlUU1ZWUjdoV3c0ZGh1V0xpQzRnU2ZuTWVwTFJqcHBNb09pUXN1S3FqSWNfb1NqZkNqQmpNMzMyQ1NYTnVGc0YtbVBWWnpkLXRxTGhWMUlLaGhrV3pzN2FSWFBDY2w2T1lEcW1HWjUyVDluWFgtQm1Xb25YamRwazY5RHRyZ19Pb0hMcTYxcXJhNWNPSVRSaGdoWm5WRXMzRnU3dTJTS3lOZjU4MjFTUHJCZ2RENTU1aHBBLWtZaVV5TTI4SDVjU2RMZmxReHFoU0g3YmRrcUlGQWF2dVpFajdkeFVYTWRhWVMySFFhTy1HUjZuLVpVdmx6UXRQelVSQnpUSWU1ZWo0UjU1b2w2OWlJcG85THFYNFBndWJtNG1FMFk4N0dFbTVyelg0WGdxM0FUSEI3QkV5X0tQNEEtMHUzOEhheUlZZi1ia1pqZDlmdGNqTkIyY1BXWENvS0JncTZFTW5mLUpsV1lKYV9FS2ZVYjZpdmdFU1M5NDgyUHEzNkpsVjhxOXAyS1Roc0w1c3dSMkhpLWFpaWVSNlo4all6cjZJZENzd2tpZDNZMlgtcC1VNDRuSkR4Rl9wXzRIUEg0NTZTNHhaV3NrbVBvZjNJY2FncXJ4MW9YX0lzZE5tNFpYa29JMkxLbDREVldCbG9NdlB0bjFjTjl6RkxHQmZFcFZvd0xvN2lXYzVZR3l2UDl4WmRXbFh4Q2Zwb2lKSkZzU3RPTG1xN2g3cDdqdHdXX3BXaDFNQURTV1llTFN3V215TVZ0cHBzSjhua25mdFFSQVVhMWxWeTNoSHVHcjFOU3dGT2V2QzZoZDFQNGVORnJNOUFJREVQX25UQTNqLUdadDJ2RW5STmtfbFFuOHN3ek1TdGRsNjVpWG1RNi11TW15eExXU250cDVtTmEzVlh2d0E4S2VYd3RyNHd6ME5EXzJmMWl5bjlUTEswVnFVYnV2Ukt0R1Bud0JCemJwYVU0THJUdkdFY0Y3ZFJyS1pmSFlPaE94QWhDUmgzUjF1RWRQSVNpb1NEVXdmTzhoS2V0cF93TVR2LXd3TktuR2F4R0FzT2Z3SmQ0QUlYNTRIQTduM0ZDTzdyMVNuTmc0a1lqRjZndXJTMXdickctWV81YUZ6a0U5VVNiSjlnSU5rRjdLLXJWQVRkdFBJc25fV0RYdFByNzRvMU5RTkV6aE5Vd1I0Mkt5S0pPSFk4N0pfcW1fVGp1R3MwdTVteHFnVEpEbS1jUTNTcEs1WUhvMmZlVmtwS2tMYmFpRjVBUXd6TkN0MVBIUERJcjFGWE8zYUlpZFgzM1dmd3NCejZHYld6b1lpYXdfZkdVTDJfUWVHTjI3NGlEUmF5M251R2hGUmU2M2Z6YjF6eFhweFk0RUQ3SDFIRVk4T3pXaklsQXRxZE9pZlBVODNvVmg5VDMzdVpRbjV1RndzUmhhYWNQdXViNkJ0cFB2TEJPN1ZOZ1poa25jb3lCUT09XCIsXCJzdW1tYXJ5XCI6W3tcInR5cGVcIjpcInN1bW1hcnlfdGV4dFwiLFwidGV4dFwiOlwiKipJbnZlc3RpZ2F0aW5nIGFnZW50IHNraWxscyBpc3N1ZSoqXFxuXFxuSeKAmW0gZW5jb3VudGVyaW5nIGEgcG90ZW50aWFsIGlzc3VlIHJlbGF0ZWQgdG8gdG9nZ2xpbmcgdGhlIC5hZ2VudHMgc2tpbGwgbG9jYXRpb24uIEl0IHNlZW1zIHRvIGludm9sdmUgdGhlIHBhdGhzIGZyb20gLy5waS9hZ2VudCB0byAvLmFnZW50cywgd2hpY2ggaW5jbHVkZXMgdGhlIGdsb2JhbCBzZXR0aW5ncyBza2lsbHMuIFRoZSBwYWNrYWdlIG1hbmFnZXIncyBvdmVycmlkZSB3aXRoIGJhc2VEaXIgYW5kIGdsb2JhbEJhc2VEaXIgY291bGQgYWxzbyBtYXRjaCB0aGF0IHJlbGF0aXZlIHBhdGguIEl0IG1pZ2h0IGZ1bmN0aW9uIGNvcnJlY3RseSwgYnV0IEkgcmVhbGx5IHdhbnQgdG8gc2VlIHRoZSBkZXNpcmVkIHNwbGl0IGluIG91dHB1dC4gSSdsbCBuZWVkIHRvIGluc3BlY3QgdGhlIGNvbnN0cnVjdG9yIGZvciBhZ2VudERpciB0byB1bmRlcnN0YW5kIHRoaXMgYmV0dGVyLlwifV19In0seyJ0eXBlIjoidG9vbENhbGwiLCJpZCI6ImNhbGxfRnZoSGhoeGV0UmZsZmozazlidDltMzJkfGZjXzAyN2YxZWExNWRlZjM1MDUwMTY5ZjMwYjk5NDVjMDgxOTE5OTM2MzRhZWEzZTg3YzJiIiwibmFtZSI6ImdyZXAiLCJhcmd1bWVudHMiOnsicGF0dGVybiI6Im5ldyBDb25maWdTZWxlY3RvckNvbXBvbmVudHxDb25maWdTZWxlY3RvckNvbXBvbmVudCIsInBhdGgiOiJwYWNrYWdlcy9jb2RpbmctYWdlbnQvc3JjIiwiZ2xvYiI6IioudHMiLCJjb250ZXh0Ijo0fX1dLCJhcGkiOiJvcGVuYWktY29kZXgtcmVzcG9uc2VzIiwicHJvdmlkZXIiOiJvcGVuYWktY29kZXgiLCJtb2RlbCI6ImdwdC01LjUiLCJ1c2FnZSI6eyJpbnB1dCI6MTE0MCwib3V0cHV0IjoxMTYsImNhY2hlUmVhZCI6MjE1MDQsImNhY2hlV3JpdGUiOjAsInRvdGFsVG9rZW5zIjoyMjc2MCwiY29zdCI6eyJpbnB1dCI6MC4wMDU3LCJvdXRwdXQiOjAuMDAzNDgsImNhY2hlUmVhZCI6MC4wMTA3NTIsImNhY2hlV3JpdGUiOjAsInRvdGFsIjowLjAxOTkzMn19LCJzdG9wUmVhc29uIjoidG9vbFVzZSIsInRpbWVzdGFtcCI6MTc3NzUzNTg4MjE4MywicmVzcG9uc2VJZCI6InJlc3BfMDI3ZjFlYTE1ZGVmMzUwNTAxNjlmMzBiOGM1MTY4ODE5MTg5MDg0Y2MwNDA2MTEyNDUifX0seyJ0eXBlIjoibWVzc2FnZSIsImlkIjoiNjUyYzc4YzciLCJwYXJlbnRJZCI6IjA0NTRiZjQxIiwidGltZXN0YW1wIjoiMjAyNi0wNC0zMFQwNzo1ODoxNy41OTdaIiwibWVzc2FnZSI6eyJyb2xlIjoidG9vbFJlc3VsdCIsInRvb2xDYWxsSWQiOiJjYWxsX0Z2aEhoaHhldFJmbGZqM2s5YnQ5bTMyZHxmY18wMjdmMWVhMTVkZWYzNTA1MDE2OWYzMGI5OTQ1YzA4MTkxOTkzNjM0YWVhM2U4N2MyYiIsInRvb2xOYW1lIjoiZ3JlcCIsImNvbnRlbnQiOlt7InR5cGUiOiJ0ZXh0IiwidGV4dCI6ImNsaS9jb25maWctc2VsZWN0b3IudHM6NDogICBcbmNsaS9jb25maWctc2VsZWN0b3IudHM6NTogICBpbXBvcnQgeyBQcm9jZXNzVGVybWluYWwsIFRVSSB9IGZyb20gXCJAbWFyaW96ZWNobmVyL3BpLXR1aVwiO1xuY2xpL2NvbmZpZy1zZWxlY3Rvci50czo2OiAgIGltcG9ydCB0eXBlIHsgUmVzb2x2ZWRQYXRocyB9IGZyb20gXCIuLi9jb3JlL3BhY2thZ2UtbWFuYWdlci5qc1wiO1xuY2xpL2NvbmZpZy1zZWxlY3Rvci50czo3OiAgIGltcG9ydCB0eXBlIHsgU2V0dGluZ3NNYW5hZ2VyIH0gZnJvbSBcIi4uL2NvcmUvc2V0dGluZ3MtbWFuYWdlci5qc1wiO1xuY2xpL2NvbmZpZy1zZWxlY3Rvci50czo4OiBpbXBvcnQgeyBDb25maWdTZWxlY3RvckNvbXBvbmVudCB9IGZyb20gXCIuLi9tb2Rlcy9pbnRlcmFjdGl2ZS9jb21wb25lbnRzL2NvbmZpZy1zZWxlY3Rvci5qc1wiO1xuY2xpL2NvbmZpZy1zZWxlY3Rvci50czo5OiAgIGltcG9ydCB7IGluaXRUaGVtZSwgc3RvcFRoZW1lV2F0Y2hlciB9IGZyb20gXCIuLi9tb2Rlcy9pbnRlcmFjdGl2ZS90aGVtZS90aGVtZS5qc1wiO1xuY2xpL2NvbmZpZy1zZWxlY3Rvci50czoxMDogICBcbmNsaS9jb25maWctc2VsZWN0b3IudHM6MTE6ICAgZXhwb3J0IGludGVyZmFjZSBDb25maWdTZWxlY3Rvck9wdGlvbnMge1xuY2xpL2NvbmZpZy1zZWxlY3Rvci50czoxMjogICByZXNvbHZlZFBhdGhzOiBSZXNvbHZlZFBhdGhzO1xuY2xpL2NvbmZpZy1zZWxlY3Rvci50czoyMzogICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHtcbmNsaS9jb25maWctc2VsZWN0b3IudHM6MjQ6ICAgY29uc3QgdWkgPSBuZXcgVFVJKG5ldyBQcm9jZXNzVGVybWluYWwoKSk7XG5jbGkvY29uZmlnLXNlbGVjdG9yLnRzOjI1OiAgIGxldCByZXNvbHZlZCA9IGZhbHNlO1xuY2xpL2NvbmZpZy1zZWxlY3Rvci50czoyNjogICBcbmNsaS9jb25maWctc2VsZWN0b3IudHM6Mjc6IGNvbnN0IHNlbGVjdG9yID0gbmV3IENvbmZpZ1NlbGVjdG9yQ29tcG9uZW50KFxuY2xpL2NvbmZpZy1zZWxlY3Rvci50czoyODogICBvcHRpb25zLnJlc29sdmVkUGF0aHMsXG5jbGkvY29uZmlnLXNlbGVjdG9yLnRzOjI5OiAgIG9wdGlvbnMuc2V0dGluZ3NNYW5hZ2VyLFxuY2xpL2NvbmZpZy1zZWxlY3Rvci50czozMDogICBvcHRpb25zLmN3ZCxcbmNsaS9jb25maWctc2VsZWN0b3IudHM6MzE6ICAgb3B0aW9ucy5hZ2VudERpcixcbm1vZGVzL2ludGVyYWN0aXZlL2NvbXBvbmVudHMvY29uZmlnLXNlbGVjdG9yLnRzOjU0NDogICByZXR1cm4gcmVsYXRpdmUoYmFzZURpciwgaXRlbS5wYXRoKTtcbm1vZGVzL2ludGVyYWN0aXZlL2NvbXBvbmVudHMvY29uZmlnLXNlbGVjdG9yLnRzOjU0NTogICB9XG5tb2Rlcy9pbnRlcmFjdGl2ZS9jb21wb25lbnRzL2NvbmZpZy1zZWxlY3Rvci50czo1NDY6ICAgfVxubW9kZXMvaW50ZXJhY3RpdmUvY29tcG9uZW50cy9jb25maWctc2VsZWN0b3IudHM6NTQ3OiAgIFxubW9kZXMvaW50ZXJhY3RpdmUvY29tcG9uZW50cy9jb25maWctc2VsZWN0b3IudHM6NTQ4OiBleHBvcnQgY2xhc3MgQ29uZmlnU2VsZWN0b3JDb21wb25lbnQgZXh0ZW5kcyBDb250YWluZXIgaW1wbGVtZW50cyBGb2N1c2FibGUge1xubW9kZXMvaW50ZXJhY3RpdmUvY29tcG9uZW50cy9jb25maWctc2VsZWN0b3IudHM6NTQ5OiAgIHByaXZhdGUgcmVzb3VyY2VMaXN0OiBSZXNvdXJjZUxpc3Q7XG5tb2Rlcy9pbnRlcmFjdGl2ZS9jb21wb25lbnRzL2NvbmZpZy1zZWxlY3Rvci50czo1NTA6ICAgXG5tb2Rlcy9pbnRlcmFjdGl2ZS9jb21wb25lbnRzL2NvbmZpZy1zZWxlY3Rvci50czo1NTE6ICAgcHJpdmF0ZSBfZm9jdXNlZCA9IGZhbHNlO1xubW9kZXMvaW50ZXJhY3RpdmUvY29tcG9uZW50cy9jb25maWctc2VsZWN0b3IudHM6NTUyOiAgIGdldCBmb2N1c2VkKCk6IGJvb2xlYW4geyJ9XSwiZGV0YWlscyI6eyJtYXRjaENvdW50IjozLCJtYXRjaGVzIjpbeyJwYXRoIjoiY2xpL2NvbmZpZy1zZWxlY3Rvci50cyIsImxpbmUiOjQsInRleHQiOiIgICJ9LHsicGF0aCI6ImNsaS9jb25maWctc2VsZWN0b3IudHMiLCJsaW5lIjo1LCJ0ZXh0IjoiICBpbXBvcnQgeyBQcm9jZXNzVGVybWluYWwsIFRVSSB9IGZyb20gXCJAbWFyaW96ZWNobmVyL3BpLXR1aVwiOyJ9LHsicGF0aCI6ImNsaS9jb25maWctc2VsZWN0b3IudHMiLCJsaW5lIjo2LCJ0ZXh0IjoiICBpbXBvcnQgdHlwZSB7IFJlc29sdmVkUGF0aHMgfSBmcm9tIFwiLi4vY29yZS9wYWNrYWdlLW1hbmFnZXIuanNcIjsifSx7InBhdGgiOiJjbGkvY29uZmlnLXNlbGVjdG9yLnRzIiwibGluZSI6NywidGV4dCI6IiAgaW1wb3J0IHR5cGUgeyBTZXR0aW5nc01hbmFnZXIgfSBmcm9tIFwiLi4vY29yZS9zZXR0aW5ncy1tYW5hZ2VyLmpzXCI7In0seyJwYXRoIjoiY2xpL2NvbmZpZy1zZWxlY3Rvci50cyIsImxpbmUiOjgsInRleHQiOiJpbXBvcnQgeyBDb25maWdTZWxlY3RvckNvbXBvbmVudCB9IGZyb20gXCIuLi9tb2Rlcy9pbnRlcmFjdGl2ZS9jb21wb25lbnRzL2NvbmZpZy1zZWxlY3Rvci5qc1wiOyJ9LHsicGF0aCI6ImNsaS9jb25maWctc2VsZWN0b3IudHMiLCJsaW5lIjo5LCJ0ZXh0IjoiICBpbXBvcnQgeyBpbml0VGhlbWUsIHN0b3BUaGVtZVdhdGNoZXIgfSBmcm9tIFwiLi4vbW9kZXMvaW50ZXJhY3RpdmUvdGhlbWUvdGhlbWUuanNcIjsifSx7InBhdGgiOiJjbGkvY29uZmlnLXNlbGVjdG9yLnRzIiwibGluZSI6MTAsInRleHQiOiIgICJ9LHsicGF0aCI6ImNsaS9jb25maWctc2VsZWN0b3IudHMiLCJsaW5lIjoxMSwidGV4dCI6IiAgZXhwb3J0IGludGVyZmFjZSBDb25maWdTZWxlY3Rvck9wdGlvbnMgeyJ9LHsicGF0aCI6ImNsaS9jb25maWctc2VsZWN0b3IudHMiLCJsaW5lIjoxMiwidGV4dCI6IiAgcmVzb2x2ZWRQYXRoczogUmVzb2x2ZWRQYXRoczsifSx7InBhdGgiOiJjbGkvY29uZmlnLXNlbGVjdG9yLnRzIiwibGluZSI6MjMsInRleHQiOiIgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4geyJ9LHsicGF0aCI6ImNsaS9jb25maWctc2VsZWN0b3IudHMiLCJsaW5lIjoyNCwidGV4dCI6IiAgY29uc3QgdWkgPSBuZXcgVFVJKG5ldyBQcm9jZXNzVGVybWluYWwoKSk7In0seyJwYXRoIjoiY2xpL2NvbmZpZy1zZWxlY3Rvci50cyIsImxpbmUiOjI1LCJ0ZXh0IjoiICBsZXQgcmVzb2x2ZWQgPSBmYWxzZTsifSx7InBhdGgiOiJjbGkvY29uZmlnLXNlbGVjdG9yLnRzIiwibGluZSI6MjYsInRleHQiOiIgICJ9LHsicGF0aCI6ImNsaS9jb25maWctc2VsZWN0b3IudHMiLCJsaW5lIjoyNywidGV4dCI6ImNvbnN0IHNlbGVjdG9yID0gbmV3IENvbmZpZ1NlbGVjdG9yQ29tcG9uZW50KCJ9LHsicGF0aCI6ImNsaS9jb25maWctc2VsZWN0b3IudHMiLCJsaW5lIjoyOCwidGV4dCI6IiAgb3B0aW9ucy5yZXNvbHZlZFBhdGhzLCJ9LHsicGF0aCI6ImNsaS9jb25maWctc2VsZWN0b3IudHMiLCJsaW5lIjoyOSwidGV4dCI6IiAgb3B0aW9ucy5zZXR0aW5nc01hbmFnZXIsIn0seyJwYXRoIjoiY2xpL2NvbmZpZy1zZWxlY3Rvci50cyIsImxpbmUiOjMwLCJ0ZXh0IjoiICBvcHRpb25zLmN3ZCwifSx7InBhdGgiOiJjbGkvY29uZmlnLXNlbGVjdG9yLnRzIiwibGluZSI6MzEsInRleHQiOiIgIG9wdGlvbnMuYWdlbnREaXIsIn0seyJwYXRoIjoibW9kZXMvaW50ZXJhY3RpdmUvY29tcG9uZW50cy9jb25maWctc2VsZWN0b3IudHMiLCJsaW5lIjo1NDQsInRleHQiOiIgIHJldHVybiByZWxhdGl2ZShiYXNlRGlyLCBpdGVtLnBhdGgpOyJ9LHsicGF0aCI6Im1vZGVzL2ludGVyYWN0aXZlL2NvbXBvbmVudHMvY29uZmlnLXNlbGVjdG9yLnRzIiwibGluZSI6NTQ1LCJ0ZXh0IjoiICB9In0seyJwYXRoIjoibW9kZXMvaW50ZXJhY3RpdmUvY29tcG9uZW50cy9jb25maWctc2VsZWN0b3IudHMiLCJsaW5lIjo1NDYsInRleHQiOiIgIH0ifSx7InBhdGgiOiJtb2Rlcy9pbnRlcmFjdGl2ZS9jb21wb25lbnRzL2NvbmZpZy1zZWxlY3Rvci50cyIsImxpbmUiOjU0NywidGV4dCI6IiAgIn0seyJwYXRoIjoibW9kZXMvaW50ZXJhY3RpdmUvY29tcG9uZW50cy9jb25maWctc2VsZWN0b3IudHMiLCJsaW5lIjo1NDgsInRleHQiOiJleHBvcnQgY2xhc3MgQ29uZmlnU2VsZWN0b3JDb21wb25lbnQgZXh0ZW5kcyBDb250YWluZXIgaW1wbGVtZW50cyBGb2N1c2FibGUgeyJ9LHsicGF0aCI6Im1vZGVzL2ludGVyYWN0aXZlL2NvbXBvbmVudHMvY29uZmlnLXNlbGVjdG9yLnRzIiwibGluZSI6NTQ5LCJ0ZXh0IjoiICBwcml2YXRlIHJlc291cmNlTGlzdDogUmVzb3VyY2VMaXN0OyJ9LHsicGF0aCI6Im1vZGVzL2ludGVyYWN0aXZlL2NvbXBvbmVudHMvY29uZmlnLXNlbGVjdG9yLnRzIiwibGluZSI6NTUwLCJ0ZXh0IjoiICAifSx7InBhdGgiOiJtb2Rlcy9pbnRlcmFjdGl2ZS9jb21wb25lbnRzL2NvbmZpZy1zZWxlY3Rvci50cyIsImxpbmUiOjU1MSwidGV4dCI6IiAgcHJpdmF0ZSBfZm9jdXNlZCA9IGZhbHNlOyJ9LHsicGF0aCI6Im1vZGVzL2ludGVyYWN0aXZlL2NvbXBvbmVudHMvY29uZmlnLXNlbGVjdG9yLnRzIiwibGluZSI6NTUyLCJ0ZXh0IjoiICBnZXQgZm9jdXNlZCgpOiBib29sZWFuIHsifV0sInJlbGF0aXZlVG8iOiJwYWNrYWdlcy9jb2RpbmctYWdlbnQvc3JjIn0sImlzRXJyb3IiOmZhbHNlLCJ0aW1lc3RhbXAiOjE3Nzc1MzU4OTc1OTd9fSx7InR5cGUiOiJtZXNzYWdlIiwiaWQiOiJkYjllNGJiZCIsInBhcmVudElkIjoiNjUyYzc4YzciLCJ0aW1lc3RhbXAiOiIyMDI2LTA0LTMwVDA3OjU4OjIwLjc1M1oiLCJtZXNzYWdlIjp7InJvbGUiOiJhc3Npc3RhbnQiLCJjb250ZW50IjpbeyJ0eXBlIjoidG9vbENhbGwiLCJpZCI6ImNhbGxfaW1TQ1F1bWZxd2FKd3FDZVJHMlRuR3dFfGZjXzAyN2YxZWExNWRlZjM1MDUwMTY5ZjMwYjljMzZhODgxOTFhODU4YjJjYTE1ZGQwYjU5IiwibmFtZSI6InJlYWQiLCJhcmd1bWVudHMiOnsicGF0aCI6InBhY2thZ2VzL2NvZGluZy1hZ2VudC9zcmMvY2xpL2NvbmZpZy1zZWxlY3Rvci50cyIsIm9mZnNldCI6MSwibGltaXQiOjYwfX1dLCJhcGkiOiJvcGVuYWktY29kZXgtcmVzcG9uc2VzIiwicHJvdmlkZXIiOiJvcGVuYWktY29kZXgiLCJtb2RlbCI6ImdwdC01LjUiLCJ1c2FnZSI6eyJpbnB1dCI6NjcyLCJvdXRwdXQiOjM0LCJjYWNoZVJlYWQiOjIyNTI4LCJjYWNoZVdyaXRlIjowLCJ0b3RhbFRva2VucyI6MjMyMzQsImNvc3QiOnsiaW5wdXQiOjAuMDAzMzYsIm91dHB1dCI6MC4wMDEwMiwiY2FjaGVSZWFkIjowLjAxMTI2NCwiY2FjaGVXcml0ZSI6MCwidG90YWwiOjAuMDE1NjQzOTk5OTk5OTk5OTk4fX0sInN0b3BSZWFzb24iOiJ0b29sVXNlIiwidGltZXN0YW1wIjoxNzc3NTM1ODk3NTk3LCJyZXNwb25zZUlkIjoicmVzcF8wMjdmMWVhMTVkZWYzNTA1MDE2OWYzMGI5YjNiMTA4MTkxOGY1YjQ2MDlkZWM3YzU2NCJ9fSx7InR5cGUiOiJtZXNzYWdlIiwiaWQiOiJmMWQzZTNkOSIsInBhcmVudElkIjoiZGI5ZTRiYmQiLCJ0aW1lc3RhbXAiOiIyMDI2LTA0LTMwVDA3OjU4OjIwLjc1NVoiLCJtZXNzYWdlIjp7InJvbGUiOiJ0b29sUmVzdWx0IiwidG9vbENhbGxJZCI6ImNhbGxfaW1TQ1F1bWZxd2FKd3FDZVJHMlRuR3dFfGZjXzAyN2YxZWExNWRlZjM1MDUwMTY5ZjMwYjljMzZhODgxOTFhODU4YjJjYTE1ZGQwYjU5IiwidG9vbE5hbWUiOiJyZWFkIiwiY29udGVudCI6W3sidHlwZSI6InRleHQiLCJ0ZXh0IjoiLyoqXG4gKiBUVUkgY29uZmlnIHNlbGVjdG9yIGZvciBgcGkgY29uZmlnYCBjb21tYW5kXG4gKi9cblxuaW1wb3J0IHsgUHJvY2Vzc1Rlcm1pbmFsLCBUVUkgfSBmcm9tIFwiQG1hcmlvemVjaG5lci9waS10dWlcIjtcbmltcG9ydCB0eXBlIHsgUmVzb2x2ZWRQYXRocyB9IGZyb20gXCIuLi9jb3JlL3BhY2thZ2UtbWFuYWdlci5qc1wiO1xuaW1wb3J0IHR5cGUgeyBTZXR0aW5nc01hbmFnZXIgfSBmcm9tIFwiLi4vY29yZS9zZXR0aW5ncy1tYW5hZ2VyLmpzXCI7XG5pbXBvcnQgeyBDb25maWdTZWxlY3RvckNvbXBvbmVudCB9IGZyb20gXCIuLi9tb2Rlcy9pbnRlcmFjdGl2ZS9jb21wb25lbnRzL2NvbmZpZy1zZWxlY3Rvci5qc1wiO1xuaW1wb3J0IHsgaW5pdFRoZW1lLCBzdG9wVGhlbWVXYXRjaGVyIH0gZnJvbSBcIi4uL21vZGVzL2ludGVyYWN0aXZlL3RoZW1lL3RoZW1lLmpzXCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ29uZmlnU2VsZWN0b3JPcHRpb25zIHtcblx0cmVzb2x2ZWRQYXRoczogUmVzb2x2ZWRQYXRocztcblx0c2V0dGluZ3NNYW5hZ2VyOiBTZXR0aW5nc01hbmFnZXI7XG5cdGN3ZDogc3RyaW5nO1xuXHRhZ2VudERpcjogc3RyaW5nO1xufVxuXG4vKiogU2hvdyBUVUkgY29uZmlnIHNlbGVjdG9yIGFuZCByZXR1cm4gd2hlbiBjbG9zZWQgKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBzZWxlY3RDb25maWcob3B0aW9uczogQ29uZmlnU2VsZWN0b3JPcHRpb25zKTogUHJvbWlzZTx2b2lkPiB7XG5cdC8vIEluaXRpYWxpemUgdGhlbWUgYmVmb3JlIHNob3dpbmcgVFVJXG5cdGluaXRUaGVtZShvcHRpb25zLnNldHRpbmdzTWFuYWdlci5nZXRUaGVtZSgpLCB0cnVlKTtcblxuXHRyZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHtcblx0XHRjb25zdCB1aSA9IG5ldyBUVUkobmV3IFByb2Nlc3NUZXJtaW5hbCgpKTtcblx0XHRsZXQgcmVzb2x2ZWQgPSBmYWxzZTtcblxuXHRcdGNvbnN0IHNlbGVjdG9yID0gbmV3IENvbmZpZ1NlbGVjdG9yQ29tcG9uZW50KFxuXHRcdFx0b3B0aW9ucy5yZXNvbHZlZFBhdGhzLFxuXHRcdFx0b3B0aW9ucy5zZXR0aW5nc01hbmFnZXIsXG5cdFx0XHRvcHRpb25zLmN3ZCxcblx0XHRcdG9wdGlvbnMuYWdlbnREaXIsXG5cdFx0XHQoKSA9PiB7XG5cdFx0XHRcdGlmICghcmVzb2x2ZWQpIHtcblx0XHRcdFx0XHRyZXNvbHZlZCA9IHRydWU7XG5cdFx0XHRcdFx0dWkuc3RvcCgpO1xuXHRcdFx0XHRcdHN0b3BUaGVtZVdhdGNoZXIoKTtcblx0XHRcdFx0XHRyZXNvbHZlKCk7XG5cdFx0XHRcdH1cblx0XHRcdH0sXG5cdFx0XHQoKSA9PiB7XG5cdFx0XHRcdHVpLnN0b3AoKTtcblx0XHRcdFx0c3RvcFRoZW1lV2F0Y2hlcigpO1xuXHRcdFx0XHRwcm9jZXNzLmV4aXQoMCk7XG5cdFx0XHR9LFxuXHRcdFx0KCkgPT4gdWkucmVxdWVzdFJlbmRlcigpLFxuXHRcdCk7XG5cblx0XHR1aS5hZGRDaGlsZChzZWxlY3Rvcik7XG5cdFx0dWkuc2V0Rm9jdXMoc2VsZWN0b3IuZ2V0UmVzb3VyY2VMaXN0KCkpO1xuXHRcdHVpLnN0YXJ0KCk7XG5cdH0pO1xufVxuIn1dLCJpc0Vycm9yIjpmYWxzZSwidGltZXN0YW1wIjoxNzc3NTM1OTAwNzU1fX0seyJ0eXBlIjoibWVzc2FnZSIsImlkIjoiZWFkNGRhYjIiLCJwYXJlbnRJZCI6ImYxZDNlM2Q5IiwidGltZXN0YW1wIjoiMjAyNi0wNC0zMFQwNzo1ODo0MC41ODdaIiwibWVzc2FnZSI6eyJyb2xlIjoiYXNzaXN0YW50IiwiY29udGVudCI6W3sidHlwZSI6InRoaW5raW5nIiwidGhpbmtpbmciOiIiLCJ0aGlua2luZ1NpZ25hdHVyZSI6IntcImlkXCI6XCJyc18wMjdmMWVhMTVkZWYzNTA1MDE2OWYzMGJhOGViZDQ4MTkxOTcwOWYwNGY5ZGI1ZmU0ZFwiLFwidHlwZVwiOlwicmVhc29uaW5nXCIsXCJlbmNyeXB0ZWRfY29udGVudFwiOlwiZ0FBQUFBQnA4d3VzaW5pek5HWlVWMWFqVFhaaHdIQ2llZzlhMUVOWHUzSXVmcGJLaUs2VFZlSUhxSnN3WE9rYVVjaFdMVm91Q0JPWXQtZVV6ak9KSGtRYzQ3bnRERnRaRWhJVGt6SGU2V1RyaWNBdUQzTjdvcVFzd1Bac1htWHJRYURxRVUtX2poQ1JaRTBnUkJjc2pqaEZ3M1pLLUpZb21TaFdlTWYwaU5KdVVqVTNsVHZyMFBwVGdsU1BNbHBvU1hST1lDY05EN1BjdWRheUtVZlF1NWxxME1FSzFBVHVmMkpfa1cxbl9ETG95Z19PT2hpel9vZWtGOXFwSklQenZrckNlZzd1c3M1NGhZWThUbFBpenROQTItUGhNa0FDQk00dFoyekZpUEJtMDROTFVmQ0IyRzU3ZEE0WjFWNnY4YnFKR21EbVJYaHhYaWQ0TklYNWo5VVJaTVU1alFZelNib0NGTUpyeUdNU2Q5Tzg4QkZuWjJtS2dtcW9SX244eS1BWmNpcVhTYU1sQUJhaW9EOXRNT3V2THhTMVktZ3lXaWxzeVZ1SXFqYmYxTEs4LWRzVjRQTnV5bmZzMGRNWlNMQVEtRmF6ZlBBbHRwbzhMaDU4d3ZVbGlZQzRLRDBBczgyRWpiRFhCamFPbm9tU2F6cUt3Z1NiaW1OVHYyZ2gwQVpGTlFtRnZkcDM4YzhEbHR6Q00tZ0RtVll6TmFwM19LT1NlQ0t6aldUZTVYcjVqNDRxZk5uY0JvTE5uVldxOW1tZkl5eHBuRFl4bU5KZURKQm1NM3Z2TDRvOEpyU2dZOHZGeHhYMmUtLU8ybDhBZ1dXM01jX2dfRzJsWWw1c0FNTGpFZ0JBYzBFQXc2S1RkbFM4TnpiRl9uUlZPRy1CMjZpajVEcmNnR2hZcVRMN1B5TGpjQ1ZMbVpTN1Juako5cG50RXQ4dXo0MWJzd3d1QTZsbFVCZVNicE4yN01MbWUtRFNnUTVaMzVMR0FKQTQxZmx0MWZ5SENoT3BuVGlfaGd2MWRaOWtFTUlhaGU1ZDgwSml0b3oxU0xDZnNhaGhjRFgtcUZCd1lTMzdXY1NtNjBDSTVHMnNnRDlHV3NuOE1LWWQ0cjdLeS1VX2YyN2U3X204LW92Z1RhSFNVWXlGalktdHlkYjN0eUJRX0xVVzcwVFNNaTZhUXZGZXJBZWRtejZrQ19XZTFZMzZRYnZuRnozcksxY0dDTGJqWnpYYVBxX1lVbmU3ZnhHZllkLTlya2RlSVJnbm1yWXpsdVJVNnNuTHlQY2p6ejc3NVNPd3VySjFDUjBFWk1mLXo2US1aaGtCOE9YUkJnSThXMkVtazVnLURxN2hvUGRldmlWa2stYUdkeEwydEdPM050Q0VIOTdROWlHVU9oWnVfOWFoQzdRRFRpVGs1Zld4SHdJaUFsdlQ0OEJnY3NCbk8tcGNDRURGSFl5eXlfUXZxUW5taTlNQkhsaU43TnljSF9TUW42ZjBFRWZNNEZkOHluTE9pbVJtM19qejVDb1liWmZLYllsY19NYnA3WU9zdDJvTHNyQkw4ZG5RZzFlTjQycXludDBvR1VYNFJoa2pzd0lyZzB4V3VEeG01cUk5THY5bWxERDQ5NVVHS2xmSGlNNEFJbkJsczRRV0VjaHBBbWNEQnNXcDVBTWJSeU1ISnNWWFVKU2JBbDhUbk44WE0xRlhaMDJMQ29sajZud2xOa3RTeEZoUE5mU3hzc3V2U3ZOamFRRXItdk80ZVBqYTQ1ZDZxNjNPSnptRWQwVlhiZzAyeXpRdEFYSER5amVKSUJkUkhIbnJmd3BfRWFXZU93c2xJMHdkVkRlTjhYc000NVhaMWhGUUdnQm4wTzF6X2NWcXdhUjBQZW1fLV9iM0xiRTBYZ3p6N0YydE52Q2tQaVRzSDFZcE4xdXc0TjVxLVJRa2FRR081WmNkTjJMcjN1akRGOGdpU0lRb1lnT2ZKVWZKWGhxNUZFcmpWOWNKVlNNVElTTWdOeHhoRzZUaGN2UUI4OGRjRVA2dmR6ajFNQVFYLWhTcXNzUG9nOWlLYTVYMjFkLVhMa2wzR1YzaFFidHR6Z0RaV1RhdDBsWEcwQTVSM1gyZWM3R0xUanJVRU81OUhHa2hMcERiRFE4Wk9QdHVfelZ3OEgxZ0hBWkNTdWllSEdlbTNBT2ozZU40OWlrcnY4N3h5c05JYmxoWll2NU5Zc21rYTNZUm03cm1lZm5PU3dobEhqdy0yZXpkU0dDNkk1Y3BiRjh6dGFHZmZ2WGk4clVKUjdMVjRoZWFkREEyNm42LThDNndEdnczYUdsU0E2SzBIZjBYWktMU3ZlcXhiM19JZmV3ajNJMkpKdi1OSW1wMVpqbkp6dzRteUhRSDB3XzVHWDdRQUVGdzAzRFk4QUc0ZFJZemNzY2k4clh5WTRES2tJOEtCUXpDUTJNSzF1Ny1XVmttY3o0b2xDcE13bzNhLUZTVUNlTlNcIixcInN1bW1hcnlcIjpbXX0ifSx7InR5cGUiOiJ0ZXh0IiwidGV4dCI6IkludmVzdGlnYXRlZC4gTm8gY2hhbmdlcyBtYWRlLlxuXG5Sb290IGNhdXNlIGlzIGJyb2FkZXIgdGhhbiBqdXN0IGRpc3BsYXkgdGV4dC5cblxuRmluZGluZ3M6XG4tIGBwYWNrYWdlcy9jb2RpbmctYWdlbnQvc3JjL2NvcmUvcGFja2FnZS1tYW5hZ2VyLnRzYFxuICAtIFVzZXIgYC5waWAgc2tpbGxzIGFuZCBgfi8uYWdlbnRzL3NraWxsc2AgYXJlIG1lcmdlZCBpbnRvIG9uZSBgYWRkUmVzb3VyY2VzKFwic2tpbGxzXCIsIC4uLilgIGNhbGwuXG4gIC0gQm90aCBnZXQgdGhlIHNhbWUgbWV0YWRhdGE6XG5cbmBgYHRzXG5jb25zdCB1c2VyTWV0YWRhdGEgPSB7XG4gIHNvdXJjZTogXCJhdXRvXCIsXG4gIHNjb3BlOiBcInVzZXJcIixcbiAgb3JpZ2luOiBcInRvcC1sZXZlbFwiLFxuICBiYXNlRGlyOiBnbG9iYWxCYXNlRGlyLFxufTtcbmBgYFxuXG4tIGBwYWNrYWdlcy9jb2RpbmctYWdlbnQvc3JjL21vZGVzL2ludGVyYWN0aXZlL2NvbXBvbmVudHMvY29uZmlnLXNlbGVjdG9yLnRzYFxuICAtIEdyb3VwaW5nIGtleSBpczpcblxuYGBgdHNcbmNvbnN0IGdyb3VwS2V5ID0gYCR7bWV0YWRhdGEub3JpZ2lufToke21ldGFkYXRhLnNjb3BlfToke21ldGFkYXRhLnNvdXJjZX1gO1xuYGBgXG5cbiAgLSBTaW5jZSBib3RoIGRpcmVjdG9yaWVzIGhhdmUgaWRlbnRpY2FsIG1ldGFkYXRhLCB0aGV5IGFyZSBncm91cGVkIHRvZ2V0aGVyLlxuICAtIFRoZW4gYGdldEdyb3VwTGFiZWwoKWAgaGFyZGNvZGVzOlxuXG5gYGB0c1xucmV0dXJuIG1ldGFkYXRhLnNjb3BlID09PSBcInVzZXJcIiA/IFwiVXNlciAofi8ucGkvYWdlbnQvKVwiIDogXCJQcm9qZWN0ICgucGkvKVwiO1xuYGBgXG5cblNvIHllczogaGVhZGVyL2Rpc3BsYXkgaXMgd3JvbmcsIGJ1dCBvbmx5IGJlY2F1c2UgbWV0YWRhdGEgZG9lcyBub3QgcHJlc2VydmUgd2hldGhlciB0aGUgYXV0by1kaXNjb3ZlcmVkIHNraWxsIGNhbWUgZnJvbSBgLnBpL2FnZW50L3NraWxsc2Agb3IgYC5hZ2VudHMvc2tpbGxzYC5cblxuTGlrZWx5IGZpeCBkaXJlY3Rpb246XG4tIEdpdmUgYC5hZ2VudHNgIGF1dG8tZGlzY292ZXJlZCBza2lsbHMgZGlzdGluY3QgbWV0YWRhdGEsIGUuZy4gYHNvdXJjZTogXCJhZ2VudHNcImAgb3Igc2ltaWxhci5cbi0gVGhlbiB1cGRhdGUgYGdldEdyb3VwTGFiZWwoKWAgdG8gcmVuZGVyOlxuICAtIGBVc2VyICh+Ly5waS9hZ2VudC8pYFxuICAtIGBVc2VyICh+Ly5hZ2VudHMvKWBcbiAgLSBwcm9iYWJseSBwcm9qZWN0IGAuYWdlbnRzYCB0b28sIGlmIGFwcGxpY2FibGUuXG5cblBvdGVudGlhbCBleHRyYSBpc3N1ZTpcbi0gVG9nZ2xpbmcgYC5hZ2VudHNgIHNraWxscyBtYXkgY3VycmVudGx5IGNvbXB1dGUgcGF0dGVybnMgcmVsYXRpdmUgdG8gYH4vLnBpL2FnZW50YCwgcHJvZHVjaW5nIHBhdGhzIGxpa2UgYC4uLy4uLy5hZ2VudHMvc2tpbGxzLy4uLmAuIEl0IGxpa2VseSBzdGlsbCB3b3JrcywgYnV0IGl0IGlzIGF3a3dhcmQgYW5kIHRpZWQgdG8gdGhlIHNhbWUgbWV0YWRhdGEvYmFzZURpciBwcm9ibGVtLiIsInRleHRTaWduYXR1cmUiOiJ7XCJ2XCI6MSxcImlkXCI6XCJtc2dfMDI3ZjFlYTE1ZGVmMzUwNTAxNjlmMzBiYWM4MjA4ODE5MWI5ZjA3ZGM0NjVlNTcwMGZcIixcInBoYXNlXCI6XCJmaW5hbF9hbnN3ZXJcIn0ifV0sImFwaSI6Im9wZW5haS1jb2RleC1yZXNwb25zZXMiLCJwcm92aWRlciI6Im9wZW5haS1jb2RleCIsIm1vZGVsIjoiZ3B0LTUuNSIsInVzYWdlIjp7ImlucHV0Ijo3Njg5LCJvdXRwdXQiOjUwNiwiY2FjaGVSZWFkIjoxNTg3MiwiY2FjaGVXcml0ZSI6MCwidG90YWxUb2tlbnMiOjI0MDY3LCJjb3N0Ijp7ImlucHV0IjowLjAzODQ0NSwib3V0cHV0IjowLjAxNTE4LCJjYWNoZVJlYWQiOjAuMDA3OTM2LCJjYWNoZVdyaXRlIjowLCJ0b3RhbCI6MC4wNjE1NjF9fSwic3RvcFJlYXNvbiI6InN0b3AiLCJ0aW1lc3RhbXAiOjE3Nzc1MzU5MDA3NTYsInJlc3BvbnNlSWQiOiJyZXNwXzAyN2YxZWExNWRlZjM1MDUwMTY5ZjMwYmE3YTM3NDgxOTE5OGM3NjY4Y2UyZDJmNGIxIn19LHsidHlwZSI6InNlc3Npb25faW5mbyIsImlkIjoiYmRlZWFjNWIiLCJwYXJlbnRJZCI6ImVhZDRkYWIyIiwidGltZXN0YW1wIjoiMjAyNi0wNC0zMFQwNzo1ODo0My40ODVaIiwibmFtZSI6IkludmVzdGlnYXRlIGhlYWRlcnMgZGlzcGxheSBpc3N1ZSJ9LHsidHlwZSI6ImN1c3RvbSIsImN1c3RvbVR5cGUiOiJhZDpzZXNzaW9uLXRpdGxlIiwiZGF0YSI6eyJ0aXRsZSI6IkludmVzdGlnYXRlIGhlYWRlcnMgZGlzcGxheSBpc3N1ZSIsInJhd1VzZXJUZXh0IjoicmVhZCB0aGlzIGlzc3VlOiBodHRwczovL2dpdGh1Yi5jb20vYmFkbG9naWMvcGktbW9uby9pc3N1ZXMvMzk3OCBhbmQgbGV0J3MgaW52ZXN0aWdhdGUgd2h5IHRoaXMgaGFwcGVucy4gZG8gbm90IG1ha2UgY2hhbmdlcy4gSSB0aGluayBpdCdzIGp1c3QgYW4gaXNzdWUgYXJvdW5kIHRoZSBoZWFkZXJzIC8gZGlzcGxheSIsInJhd0Fzc2lzdGFudFRleHQiOiJJbnZlc3RpZ2F0ZWQuIE5vIGNoYW5nZXMgbWFkZS5cblxuUm9vdCBjYXVzZSBpcyBicm9hZGVyIHRoYW4ganVzdCBkaXNwbGF5IHRleHQuXG5cbkZpbmRpbmdzOlxuLSBgcGFja2FnZXMvY29kaW5nLWFnZW50L3NyYy9jb3JlL3BhY2thZ2UtbWFuYWdlci50c2BcbiAgLSBVc2VyIGAucGlgIHNraWxscyBhbmQgYH4vLmFnZW50cy9za2lsbHNgIGFyZSBtZXJnZWQgaW50byBvbmUgYGFkZFJlc291cmNlcyhcInNraWxsc1wiLCAuLi4pYCBjYWxsLlxuICAtIEJvdGggZ2V0IHRoZSBzYW1lIG1ldGFkYXRhOlxuXG5gYGB0c1xuY29uc3QgdXNlck1ldGFkYXRhID0ge1xuICBzb3VyY2U6IFwiYXV0b1wiLFxuICBzY29wZTogXCJ1c2VyXCIsXG4gIG9yaWdpbjogXCJ0b3AtbGV2ZWxcIixcbiAgYmFzZURpcjogZ2xvYmFsQmFzZURpcixcbn07XG5gYGBcblxuLSBgcGFja2FnZXMvY29kaW5nLWFnZW50L3NyYy9tb2Rlcy9pbnRlcmFjdGl2ZS9jb21wb25lbnRzL2NvbmZpZy1zZWxlY3Rvci50c2BcbiAgLSBHcm91cGluZyBrZXkgaXM6XG5cbmBgYHRzXG5jb25zdCBncm91cEtleSA9IGAke21ldGFkYXRhLm9yaWdpbn06JHttZXRhZGF0YS5zY29wZX06JHttZXRhZGF0YS5zb3VyY2V9YDtcbmBgYFxuXG4gIC0gU2luY2UgYm90aCBkaXJlY3RvcmllcyBoYXZlIGlkZW50aWNhbCBtZXRhZGF0YSwgdGhleSBhcmUgZ3JvdXBlZCB0b2dldGhlci5cbiAgLSBUaGVuIGBnZXRHcm91cExhYmVsKClgIGhhcmRjb2RlczpcblxuYGBgdHNcbnJldHVybiBtZXRhZGF0YS5zY29wZSA9PT0gXCJ1c2VyXCIgPyBcIlVzZXIgKH4vLnBpL2FnZW50LylcIiA6IFwiUHJvamVjdCAoLnBpLylcIjtcbmBgYFxuXG5TbyB5ZXM6IGhlYWRlci9kaXNwbGF5IGlzIHdyb25nLCBidXQgb25seSBiZWNhdXNlIG1ldGFkYXRhIGRvZXMgbm90IHByZXNlcnZlIHdoZXRoZXIgdGhlIGF1dG8tZGlzY292ZXJlZCBza2lsbCBjYW1lIGZyb20gYC5waS9hZ2VudC9za2lsbHNgIG9yIGAuYWdlbnRzL3NraWxsc2AuXG5cbkxpa2VseSBmaXggZGlyZWN0aW9uOlxuLSBHaXZlIGAuYWdlbnRzYCBhdXRvLWRpc2NvdmVyZWQgc2tpbGxzIGRpc3RpbmN0IG1ldGFkYXRhLCBlLmcuIGBzb3VyY2U6IFwiYWdlbnRzXCJgIG9yIHNpbWlsYXIuXG4tIFRoZW4gdXBkYXRlIGBnZXRHcm91cExhYmVsKClgIHRvIHJlbmRlcjpcbiAgLSBgVXNlciAofi8ucGkvYWdlbnQvKWBcbiAgLSBgVXNlciAofi8uYWdlbnRzLylgXG4gIC0gcHJvYmFibHkgcHJvamVjdCBgLmFnZW50c2AgdG9vLCBpZiBhcHBsaWNhYmxlLlxuXG5Qb3RlbnRpYWwgZXh0cmEgaXNzdWU6XG4tIFRvZ2dsaW5nIGAuYWdlbnRzYCBza2lsbHMgbWF5IGN1cnJlbnRseSBjb21wdXRlIHBhdHRlcm5zIHJlbGF0aXZlIHRvIGB+Ly5waS9hZ2VudGAsIHByb2R1Y2luZyBwYXRocyBsaWtlIGAuLi8uLi8uYWdlbnRzL3NraWxscy8uLi5gLiBJdCBsaWtlbHkgc3RpbGwgd29ya3MsIGJ1dCBpdCBpcyBhd2t3YXJkIGFuZCB0aWVkIHRvIHRoZSBzYW1lIG1ldGFkYXRhL2Jhc2VEaXIgcHJvYmxlbS4iLCJhdHRlbXB0IjoxfSwiaWQiOiI0ZWRlMzBjMiIsInBhcmVudElkIjoiYmRlZWFjNWIiLCJ0aW1lc3RhbXAiOiIyMDI2LTA0LTMwVDA3OjU4OjQzLjQ4NloifSx7InR5cGUiOiJtZXNzYWdlIiwiaWQiOiIzYmRiN2NlMyIsInBhcmVudElkIjoiNGVkZTMwYzIiLCJ0aW1lc3RhbXAiOiIyMDI2LTA0LTMwVDA4OjAzOjM2LjUyNVoiLCJtZXNzYWdlIjp7InJvbGUiOiJ1c2VyIiwiY29udGVudCI6W3sidHlwZSI6InRleHQiLCJ0ZXh0IjoibGV0J3Mgbm90IGFkZCBhIG5ldyBzb3VyY2UsIHRoYXQncyBraW5kYSB3ZWlyZC4gY2FuIHdlIG5vdCB1c2UgdGhlIGBiYXNlRGlyYCA/IGlzIGl0IGRlZmluZWQgaW4gdGhpcyBjYXNlPyJ9XSwidGltZXN0YW1wIjoxNzc3NTM2MjE2NTI0fX0seyJ0eXBlIjoibWVzc2FnZSIsImlkIjoiZjM0OTZkYjYiLCJwYXJlbnRJZCI6IjNiZGI3Y2UzIiwidGltZXN0YW1wIjoiMjAyNi0wNC0zMFQwODowMzo0My45ODVaIiwibWVzc2FnZSI6eyJyb2xlIjoiYXNzaXN0YW50IiwiY29udGVudCI6W3sidHlwZSI6InRoaW5raW5nIiwidGhpbmtpbmciOiIqKlZlcmlmeWluZyBkaXJlY3RvcnkgdXNhZ2UqKlxuXG5JIG5lZWQgdG8gaW5zcGVjdCBhbmQgdmVyaWZ5IHRoYXQgdGhlIGBiYXNlRGlyYCBpcyB1c2VkIHRoZSBzYW1lIGFzIGBnbG9iYWxCYXNlRGlyYC4gSSB3b25kZXIgaWYgd2Ugc2hvdWxkIHNwbGl0IGBhZGRSZXNvdXJjZXNgIHdpdGggdGhlIG1ldGFkYXRhIGZvciBgYmFzZURpcmAgYW5kIGB1c2VyQWdlbnRzU2tpbGxzRGlyYC4gSXQgc2VlbXMgdGhlcmUgbWlnaHQgbm90IGJlIGFueSBjaGFuZ2VzIG5lZWRlZC4gQWxzbywgSSB0aGluayBgZ3JvdXBLZXlgIG1heSBsYWNrIGBiYXNlRGlyYCwgYW5kIEkgc2hvdWxkIG1lbnRpb24gdGhhdCB0aGUgcmVhZCBmdW5jdGlvbiB1c2VzIGBiYXNlRGlyYCBvcHRpb25hbGx5LiBMZXQncyBzZWUgaG93IHRoaXMgYWxsIHdvcmtzIHRvZ2V0aGVyISIsInRoaW5raW5nU2lnbmF0dXJlIjoie1wiaWRcIjpcInJzXzAyN2YxZWExNWRlZjM1MDUwMTY5ZjMwY2RhNTk4ODgxOTE4NjFlYjU1YjFhMDliYzI1XCIsXCJ0eXBlXCI6XCJyZWFzb25pbmdcIixcImVuY3J5cHRlZF9jb250ZW50XCI6XCJnQUFBQUFCcDh3emVyOVBDWFJlV1VHZmZYZHFBYnVvTFIyYnVqYnF4UlpfaEZvNV8zRGFlUzBobl92WTlPWjRnaGVwTUstRUIyRU9VcjRwRl9mM0JFbmQ4NGVPTnBpNUNTdXNCRi1lRWNVMzFxUHNOT2tlT0xBcWwwSlQxNFpZRS01b2FBTDJtZHlDNXlrSnhzQ2lnSWNQMUxWSHBJV1BHSThTYWJnR2xPN1piZVlScURhaXRtMmRSbUM5VFI3aE4zSmgtcnhaYzJuQ2tZZllZTUI0VThoRGJKRTg2eHR4ZjJ2Y3FRZ3dRUnRjMmp5UXc4aVNqckExTVh4Z290TWlEUWF0MjNQWkFwSDZqZTlvdzhBc3pPSzZuMHhPSkJybllpWkxEbnZsNElmRlR3bHI0QjlRRlYzNjF2RmVpRVRqOFNxVVZ3MGUxTWNoVlo4LUo0VXktY3FxbnZxOThNN3Vhcmlla0d1M3V1QUdJaUpSVDFlRFRJWTY2QWo3V2V1bWZYUlJLeEt6dWRUVmhKOWhDaFd4a3NqSFBvWjVOMG5KQTQ1TXZEazJaTExGVWx1djFoRTNQR3pSbk9nVG9EVzlkTnFDSUdpQU85NWZ1VmxaUDJ5SVozUVd0dWlDMHNraGIxNlFudHZXTmJSMm5RQzRjc09wc3RiQ1BxaW5aaXFmamNYNjdyWTB3VWtTeDA4ajFLQmxMd3c1QkNOQzRUcnlvNUl2VEZsdFFlbElmanc1eXdyT09obVVkLVpPX3p5N3pOV1g1cG9OWnhfc2ZNR0dSTlJudmpQbnVSWmIzdnNqSXdMaXlKRGp3LUxHdWh6MkdkV1l4SGtGUFpmSEFlcEN0VVJpVXR2RFhWdEJsYkVfQU5mLVpTT0NyYU5TdU1XZlNDQUtHT3BweVR4RHBFaWIwV1RyY3VfZXEwRXhQZUlMUVFBcXl1Y0gxRE0zeXFFZnhrOVk2VHZMOVhEbm1PNGhYcUs2VVQ1eFNLa0tRWm9JSGo0Mm0weHZqS2hYUVphVWdXVXJRY1Rlc2VGMXROUDlMaThBYl91ZHVjN0RnUDZEWkRzMENNQXJuS1VUT3RJNy1ZMjBRbklFbldxTmRtUHpxOG5qYjFpUWNvU3BUa1YydldJZmtFWFpram1fVm9hYTRVV3paaEtfNWQ5UWdNMlJFR3BfWS05UkJhNEY4dWwwQTZKSDcxdUFyLXNCN2RKdHk5Z05Qbmtmbk5VcGpGVDQ1MGozNzBlbjR1SnlBd3dvb2NEQmV1N041Nk03VFJybWVmUERyRlJ3NV95bHNxdWRDNTAtaHZPUWNkMWdHVlJRLUxicWZsZ0JOdVNyUHZ2MXdaZXdGTkxYQ3NWeHBVT3RXUWhmSWtMWnpvRDZaY2xDVF9sNm52WEV1RWNuQnEzM09hX1RIeEZKQ0dNSGhjRlFLQVd2UVFQc0Rnam9UMUtZZGFUV3NIR0hmVHR4azRoTjR2SnZST3ctU0VfSzVRVXd3b1hSLUc5R3ZTckRLWjVOQzRPR2g4OXFqM3BJQi1XNmNYTTVBWFRBQVFjRmRja3cyUm1YUEl5anNhWVFlUXZ3eUQ0UTFQUjc4SFVnNDRjcUlKSkx2VE4xMjZiMjQ3YXREa0ZqMTdpN3p1MVFsYjVYSzRXR0Jvd2FtaXhBc25NRTk3b2Z5eGx4QlhoQllOT3pnaDFqM2lfOD1cIixcInN1bW1hcnlcIjpbe1widHlwZVwiOlwic3VtbWFyeV90ZXh0XCIsXCJ0ZXh0XCI6XCIqKlZlcmlmeWluZyBkaXJlY3RvcnkgdXNhZ2UqKlxcblxcbkkgbmVlZCB0byBpbnNwZWN0IGFuZCB2ZXJpZnkgdGhhdCB0aGUgYGJhc2VEaXJgIGlzIHVzZWQgdGhlIHNhbWUgYXMgYGdsb2JhbEJhc2VEaXJgLiBJIHdvbmRlciBpZiB3ZSBzaG91bGQgc3BsaXQgYGFkZFJlc291cmNlc2Agd2l0aCB0aGUgbWV0YWRhdGEgZm9yIGBiYXNlRGlyYCBhbmQgYHVzZXJBZ2VudHNTa2lsbHNEaXJgLiBJdCBzZWVtcyB0aGVyZSBtaWdodCBub3QgYmUgYW55IGNoYW5nZXMgbmVlZGVkLiBBbHNvLCBJIHRoaW5rIGBncm91cEtleWAgbWF5IGxhY2sgYGJhc2VEaXJgLCBhbmQgSSBzaG91bGQgbWVudGlvbiB0aGF0IHRoZSByZWFkIGZ1bmN0aW9uIHVzZXMgYGJhc2VEaXJgIG9wdGlvbmFsbHkuIExldCdzIHNlZSBob3cgdGhpcyBhbGwgd29ya3MgdG9nZXRoZXIhXCJ9XX0ifSx7InR5cGUiOiJ0ZXh0IiwidGV4dCI6IlllcywgYGJhc2VEaXJgIGlzIGRlZmluZWQuXG5cbkZvciBhdXRvLWRpc2NvdmVyZWQgdXNlciByZXNvdXJjZXM6XG5cbmBgYHRzXG5jb25zdCB1c2VyTWV0YWRhdGE6IFBhdGhNZXRhZGF0YSA9IHtcbiAgc291cmNlOiBcImF1dG9cIixcbiAgc2NvcGU6IFwidXNlclwiLFxuICBvcmlnaW46IFwidG9wLWxldmVsXCIsXG4gIGJhc2VEaXI6IGdsb2JhbEJhc2VEaXIsXG59O1xuYGBgXG5cbkJ1dCBmb3IgYH4vLmFnZW50cy9za2lsbHNgLCB0aGF0IHNhbWUgYHVzZXJNZXRhZGF0YWAgaXMgcmV1c2VkOlxuXG5gYGB0c1xuYWRkUmVzb3VyY2VzKFxuICBcInNraWxsc1wiLFxuICBbLi4uY29sbGVjdEF1dG9Ta2lsbEVudHJpZXModXNlckRpcnMuc2tpbGxzLCBcInBpXCIpLCAuLi5jb2xsZWN0QXV0b1NraWxsRW50cmllcyh1c2VyQWdlbnRzU2tpbGxzRGlyLCBcImFnZW50c1wiKV0sXG4gIHVzZXJNZXRhZGF0YSxcbiAgdXNlck92ZXJyaWRlcy5za2lsbHMsXG4gIGdsb2JhbEJhc2VEaXIsXG4pO1xuYGBgXG5cblNvIGN1cnJlbnRseSBgYmFzZURpcmAgaXMgYH4vLnBpL2FnZW50YCwgZXZlbiBmb3IgZmlsZXMgcGh5c2ljYWxseSB1bmRlciBgfi8uYWdlbnRzL3NraWxsc2AuXG5cblVzaW5nIGBiYXNlRGlyYCBpcyBwcm9iYWJseSB0aGUgcmlnaHQgZml4LCBidXQgcmVxdWlyZXMgc3BsaXR0aW5nIHRoZSBjYWxsIHNvIGVhY2ggcGh5c2ljYWwgcm9vdCBnZXRzIGl0cyBvd24gbWV0YWRhdGE6XG5cbmBgYHRzXG5hZGRSZXNvdXJjZXMoXCJza2lsbHNcIiwgY29sbGVjdEF1dG9Ta2lsbEVudHJpZXModXNlckRpcnMuc2tpbGxzLCBcInBpXCIpLCB1c2VyTWV0YWRhdGEsIC4uLik7XG5cbmFkZFJlc291cmNlcyhcInNraWxsc1wiLCBjb2xsZWN0QXV0b1NraWxsRW50cmllcyh1c2VyQWdlbnRzU2tpbGxzRGlyLCBcImFnZW50c1wiKSwge1xuICAuLi51c2VyTWV0YWRhdGEsXG4gIGJhc2VEaXI6IGpvaW4oZ2V0SG9tZURpcigpLCBcIi5hZ2VudHNcIiksXG59LCAuLi4pO1xuYGBgXG5cblRoZW4gYGNvbmZpZy1zZWxlY3RvcmAgY2FuIGdyb3VwL2xhYmVsIGJ5IGBtZXRhZGF0YS5iYXNlRGlyYC5cblxuQ2F2ZWF0OiBncm91cGluZyBrZXkgY3VycmVudGx5IGlnbm9yZXMgYGJhc2VEaXJgOlxuXG5gYGB0c1xub3JpZ2luOnNjb3BlOnNvdXJjZVxuYGBgXG5cblNvIGl0IHdvdWxkIGFsc28gbmVlZCBgYmFzZURpcmAgaW5jbHVkZWQsIG90aGVyd2lzZSBib3RoIHN0aWxsIGNvbGxhcHNlIGludG8gb25lIGdyb3VwLiIsInRleHRTaWduYXR1cmUiOiJ7XCJ2XCI6MSxcImlkXCI6XCJtc2dfMDI3ZjFlYTE1ZGVmMzUwNTAxNjlmMzBjZGVhYTY0ODE5MWJlODk1ODFkMTVjZjBhNThcIixcInBoYXNlXCI6XCJmaW5hbF9hbnN3ZXJcIn0ifV0sImFwaSI6Im9wZW5haS1jb2RleC1yZXNwb25zZXMiLCJwcm92aWRlciI6Im9wZW5haS1jb2RleCIsIm1vZGVsIjoiZ3B0LTUuNSIsInVzYWdlIjp7ImlucHV0IjoxMzk0Miwib3V0cHV0IjozNjYsImNhY2hlUmVhZCI6OTcyOCwiY2FjaGVXcml0ZSI6MCwidG90YWxUb2tlbnMiOjI0MDM2LCJjb3N0Ijp7ImlucHV0IjowLjA2OTcxMDAwMDAwMDAwMDAxLCJvdXRwdXQiOjAuMDEwOTgsImNhY2hlUmVhZCI6MC4wMDQ4NjM5OTk5OTk5OTk5OTksImNhY2hlV3JpdGUiOjAsInRvdGFsIjowLjA4NTU1NH19LCJzdG9wUmVhc29uIjoic3RvcCIsInRpbWVzdGFtcCI6MTc3NzUzNjIxNjUyNiwicmVzcG9uc2VJZCI6InJlc3BfMDI3ZjFlYTE1ZGVmMzUwNTAxNjlmMzBjZDkzZDRjODE5MThlODUxODFhODhiY2VkOGMifX0seyJ0eXBlIjoibWVzc2FnZSIsImlkIjoiNzA4MGE0NzIiLCJwYXJlbnRJZCI6ImYzNDk2ZGI2IiwidGltZXN0YW1wIjoiMjAyNi0wNC0zMFQwODowNTowNC4wNjRaIiwibWVzc2FnZSI6eyJyb2xlIjoidXNlciIsImNvbnRlbnQiOlt7InR5cGUiOiJ0ZXh0IiwidGV4dCI6IndoYXQgYXJlIHRoZSB2YWx1ZXMgb2Ygc291cmNlIHVzZWQgY3VycmVudGx5PyJ9XSwidGltZXN0YW1wIjoxNzc3NTM2MzA0MDYzfX0seyJ0eXBlIjoibWVzc2FnZSIsImlkIjoiMjAwNzkxNWUiLCJwYXJlbnRJZCI6IjcwODBhNDcyIiwidGltZXN0YW1wIjoiMjAyNi0wNC0zMFQwODowNTowNi43MTRaIiwibWVzc2FnZSI6eyJyb2xlIjoiYXNzaXN0YW50IiwiY29udGVudCI6W3sidHlwZSI6InRvb2xDYWxsIiwiaWQiOiJjYWxsXzM3RjVnNml5cVo4UndZVjVhOFJUWEljM3xmY18wMjdmMWVhMTVkZWYzNTA1MDE2OWYzMGQzMjA5OTA4MTkxYWIxZTdhYTU2NjYzM2FmZiIsIm5hbWUiOiJncmVwIiwiYXJndW1lbnRzIjp7InBhdHRlcm4iOiJzb3VyY2U6IiwicGF0aCI6InBhY2thZ2VzL2NvZGluZy1hZ2VudC9zcmMvY29yZSIsImdsb2IiOiIqLnRzIiwiY29udGV4dCI6MiwibGltaXQiOjEwMH19XSwiYXBpIjoib3BlbmFpLWNvZGV4LXJlc3BvbnNlcyIsInByb3ZpZGVyIjoib3BlbmFpLWNvZGV4IiwibW9kZWwiOiJncHQtNS41IiwidXNhZ2UiOnsiaW5wdXQiOjQzOSwib3V0cHV0Ijo0MSwiY2FjaGVSZWFkIjoyMzU1MiwiY2FjaGVXcml0ZSI6MCwidG90YWxUb2tlbnMiOjI0MDMyLCJjb3N0Ijp7ImlucHV0IjowLjAwMjE5NTAwMDAwMDAwMDAwMDMsIm91dHB1dCI6MC4wMDEyMywiY2FjaGVSZWFkIjowLjAxMTc3NiwiY2FjaGVXcml0ZSI6MCwidG90YWwiOjAuMDE1MjAxfX0sInN0b3BSZWFzb24iOiJ0b29sVXNlIiwidGltZXN0YW1wIjoxNzc3NTM2MzA0MDY0LCJyZXNwb25zZUlkIjoicmVzcF8wMjdmMWVhMTVkZWYzNTA1MDE2OWYzMGQzMGE0Mzg4MTkxYTk3MDM5NTEzMjc5ZWE1NiJ9fSx7InR5cGUiOiJtZXNzYWdlIiwiaWQiOiIxNTU4NGRkNCIsInBhcmVudElkIjoiMjAwNzkxNWUiLCJ0aW1lc3RhbXAiOiIyMDI2LTA0LTMwVDA4OjA1OjA2LjczM1oiLCJtZXNzYWdlIjp7InJvbGUiOiJ0b29sUmVzdWx0IiwidG9vbENhbGxJZCI6ImNhbGxfMzdGNWc2aXlxWjhSd1lWNWE4UlRYSWMzfGZjXzAyN2YxZWExNWRlZjM1MDUwMTY5ZjMwZDMyMDk5MDgxOTFhYjFlN2FhNTY2NjMzYWZmIiwidG9vbE5hbWUiOiJncmVwIiwiY29udGVudCI6W3sidHlwZSI6InRleHQiLCJ0ZXh0IjoicHJvbXB0LXRlbXBsYXRlcy50czoyMjg6ICAgaWYgKGlzVW5kZXJQYXRoKHJlc29sdmVkUGF0aCwgZ2xvYmFsUHJvbXB0c0RpcikpIHtcbnByb21wdC10ZW1wbGF0ZXMudHM6MjI5OiAgIHJldHVybiBjcmVhdGVTeW50aGV0aWNTb3VyY2VJbmZvKHJlc29sdmVkUGF0aCwge1xucHJvbXB0LXRlbXBsYXRlcy50czoyMzA6IHNvdXJjZTogXCJsb2NhbFwiLFxucHJvbXB0LXRlbXBsYXRlcy50czoyMzE6ICAgc2NvcGU6IFwidXNlclwiLFxucHJvbXB0LXRlbXBsYXRlcy50czoyMzI6ICAgYmFzZURpcjogZ2xvYmFsUHJvbXB0c0RpcixcbnByb21wdC10ZW1wbGF0ZXMudHM6MjM1OiAgIGlmIChpc1VuZGVyUGF0aChyZXNvbHZlZFBhdGgsIHByb2plY3RQcm9tcHRzRGlyKSkge1xucHJvbXB0LXRlbXBsYXRlcy50czoyMzY6ICAgcmV0dXJuIGNyZWF0ZVN5bnRoZXRpY1NvdXJjZUluZm8ocmVzb2x2ZWRQYXRoLCB7XG5wcm9tcHQtdGVtcGxhdGVzLnRzOjIzNzogc291cmNlOiBcImxvY2FsXCIsXG5wcm9tcHQtdGVtcGxhdGVzLnRzOjIzODogICBzY29wZTogXCJwcm9qZWN0XCIsXG5wcm9tcHQtdGVtcGxhdGVzLnRzOjIzOTogICBiYXNlRGlyOiBwcm9qZWN0UHJvbXB0c0RpcixcbnByb21wdC10ZW1wbGF0ZXMudHM6MjQxOiAgIH1cbnByb21wdC10ZW1wbGF0ZXMudHM6MjQyOiAgIHJldHVybiBjcmVhdGVTeW50aGV0aWNTb3VyY2VJbmZvKHJlc29sdmVkUGF0aCwge1xucHJvbXB0LXRlbXBsYXRlcy50czoyNDM6IHNvdXJjZTogXCJsb2NhbFwiLFxucHJvbXB0LXRlbXBsYXRlcy50czoyNDQ6ICAgYmFzZURpcjogc3RhdFN5bmMocmVzb2x2ZWRQYXRoKS5pc0RpcmVjdG9yeSgpID8gcmVzb2x2ZWRQYXRoIDogZGlybmFtZShyZXNvbHZlZFBhdGgpLFxucHJvbXB0LXRlbXBsYXRlcy50czoyNDU6ICAgfSk7XG5hZ2VudC1zZXNzaW9uLnRzOjEzMTk6ICAgc3RyZWFtaW5nQmVoYXZpb3I6IG9wdGlvbnM/LmRlbGl2ZXJBcyxcbmFnZW50LXNlc3Npb24udHM6MTMyMDogICBpbWFnZXMsXG5hZ2VudC1zZXNzaW9uLnRzOjEzMjE6IHNvdXJjZTogXCJleHRlbnNpb25cIixcbmFnZW50LXNlc3Npb24udHM6MTMyMjogICB9KTtcbmFnZW50LXNlc3Npb24udHM6MTMyMzogICB9XG5hZ2VudC1zZXNzaW9uLnRzOjEzNzM6ICAgbmV4dE1vZGVsOiBNb2RlbDxhbnk+LFxuYWdlbnQtc2Vzc2lvbi50czoxMzc0OiAgIHByZXZpb3VzTW9kZWw6IE1vZGVsPGFueT4gfCB1bmRlZmluZWQsXG5hZ2VudC1zZXNzaW9uLnRzOjEzNzU6IHNvdXJjZTogXCJzZXRcIiB8IFwiY3ljbGVcIiB8IFwicmVzdG9yZVwiLFxuYWdlbnQtc2Vzc2lvbi50czoxMzc2OiAgICk6IFByb21pc2U8dm9pZD4ge1xuYWdlbnQtc2Vzc2lvbi50czoxMzc3OiAgIGlmIChtb2RlbHNBcmVFcXVhbChwcmV2aW91c01vZGVsLCBuZXh0TW9kZWwpKSByZXR1cm47XG5hZ2VudC1zZXNzaW9uLnRzOjIwNjg6ICAgcHJpdmF0ZSBidWlsZEV4dGVuc2lvblJlc291cmNlUGF0aHMoZW50cmllczogQXJyYXk8eyBwYXRoOiBzdHJpbmc7IGV4dGVuc2lvblBhdGg6IHN0cmluZyB9Pik6IEFycmF5PHtcbmFnZW50LXNlc3Npb24udHM6MjA2OTogICBwYXRoOiBzdHJpbmc7XG5hZ2VudC1zZXNzaW9uLnRzOjIwNzA6IG1ldGFkYXRhOiB7IHNvdXJjZTogc3RyaW5nOyBzY29wZTogXCJ0ZW1wb3JhcnlcIjsgb3JpZ2luOiBcInRvcC1sZXZlbFwiOyBiYXNlRGlyPzogc3RyaW5nIH07XG5hZ2VudC1zZXNzaW9uLnRzOjIwNzE6ICAgfT4ge1xuYWdlbnQtc2Vzc2lvbi50czoyMDcyOiAgIHJldHVybiBlbnRyaWVzLm1hcCgoZW50cnkpID0+IHtcbmFnZW50LXNlc3Npb24udHM6MjEyMzogICBuYW1lOiBjb21tYW5kLmludm9jYXRpb25OYW1lLFxuYWdlbnQtc2Vzc2lvbi50czoyMTI0OiAgIGRlc2NyaXB0aW9uOiBjb21tYW5kLmRlc2NyaXB0aW9uLFxuYWdlbnQtc2Vzc2lvbi50czoyMTI1OiBzb3VyY2U6IFwiZXh0ZW5zaW9uXCIsXG5hZ2VudC1zZXNzaW9uLnRzOjIxMjY6ICAgc291cmNlSW5mbzogY29tbWFuZC5zb3VyY2VJbmZvLFxuYWdlbnQtc2Vzc2lvbi50czoyMTI3OiAgIH0pKTtcbmFnZW50LXNlc3Npb24udHM6MjEzMDogICBuYW1lOiB0ZW1wbGF0ZS5uYW1lLFxuYWdlbnQtc2Vzc2lvbi50czoyMTMxOiAgIGRlc2NyaXB0aW9uOiB0ZW1wbGF0ZS5kZXNjcmlwdGlvbixcbmFnZW50LXNlc3Npb24udHM6MjEzMjogc291cmNlOiBcInByb21wdFwiLFxuYWdlbnQtc2Vzc2lvbi50czoyMTMzOiAgIHNvdXJjZUluZm86IHRlbXBsYXRlLnNvdXJjZUluZm8sXG5hZ2VudC1zZXNzaW9uLnRzOjIxMzQ6ICAgfSkpO1xuYWdlbnQtc2Vzc2lvbi50czoyMTM3OiAgIG5hbWU6IGBza2lsbDoke3NraWxsLm5hbWV9YCxcbmFnZW50LXNlc3Npb24udHM6MjEzODogICBkZXNjcmlwdGlvbjogc2tpbGwuZGVzY3JpcHRpb24sXG5hZ2VudC1zZXNzaW9uLnRzOjIxMzk6IHNvdXJjZTogXCJza2lsbFwiLFxuYWdlbnQtc2Vzc2lvbi50czoyMTQwOiAgIHNvdXJjZUluZm86IHNraWxsLnNvdXJjZUluZm8sXG5hZ2VudC1zZXNzaW9uLnRzOjIxNDE6ICAgfSkpO1xuYWdlbnQtc2Vzc2lvbi50czoyMjM2OiAgIC4uLnRoaXMuX2N1c3RvbVRvb2xzLm1hcCgoZGVmaW5pdGlvbikgPT4gKHtcbmFnZW50LXNlc3Npb24udHM6MjIzNzogICBkZWZpbml0aW9uLFxuYWdlbnQtc2Vzc2lvbi50czoyMjM4OiBzb3VyY2VJbmZvOiBjcmVhdGVTeW50aGV0aWNTb3VyY2VJbmZvKGA8c2RrOiR7ZGVmaW5pdGlvbi5uYW1lfT5gLCB7IHNvdXJjZTogXCJzZGtcIiB9KSxcbmFnZW50LXNlc3Npb24udHM6MjIzOTogICB9KSksXG5hZ2VudC1zZXNzaW9uLnRzOjIyNDA6ICAgXS5maWx0ZXIoKHRvb2wpID0+IGlzQWxsb3dlZFRvb2wodG9vbC5kZWZpbml0aW9uLm5hbWUpKTtcbmFnZW50LXNlc3Npb24udHM6MjI0NjogICB7XG5hZ2VudC1zZXNzaW9uLnRzOjIyNDc6ICAgZGVmaW5pdGlvbixcbmFnZW50LXNlc3Npb24udHM6MjI0ODogc291cmNlSW5mbzogY3JlYXRlU3ludGhldGljU291cmNlSW5mbyhgPGJ1aWx0aW46JHtuYW1lfT5gLCB7IHNvdXJjZTogXCJidWlsdGluXCIgfSksXG5hZ2VudC1zZXNzaW9uLnRzOjIyNDk6ICAgfSxcbmFnZW50LXNlc3Npb24udHM6MjI1MDogICBdKSxcbmFnZW50LXNlc3Npb24udHM6MjI4MDogICAubWFwKChkZWZpbml0aW9uKSA9PiAoe1xuYWdlbnQtc2Vzc2lvbi50czoyMjgxOiAgIGRlZmluaXRpb24sXG5hZ2VudC1zZXNzaW9uLnRzOjIyODI6IHNvdXJjZUluZm86IGNyZWF0ZVN5bnRoZXRpY1NvdXJjZUluZm8oYDxidWlsdGluOiR7ZGVmaW5pdGlvbi5uYW1lfT5gLCB7IHNvdXJjZTogXCJidWlsdGluXCIgfSksXG5hZ2VudC1zZXNzaW9uLnRzOjIyODM6ICAgfSkpLFxuYWdlbnQtc2Vzc2lvbi50czoyMjg0OiAgIHJ1bm5lcixcbnNldHRpbmdzLW1hbmFnZXIudHM6Njc6ICAgfCBzdHJpbmdcbnNldHRpbmdzLW1hbmFnZXIudHM6Njg6ICAgfCB7XG5zZXR0aW5ncy1tYW5hZ2VyLnRzOjY5OiBzb3VyY2U6IHN0cmluZztcbnNldHRpbmdzLW1hbmFnZXIudHM6NzA6ICAgZXh0ZW5zaW9ucz86IHN0cmluZ1tdO1xuc2V0dGluZ3MtbWFuYWdlci50czo3MTogICBza2lsbHM/OiBzdHJpbmdbXTtcbnNldHRpbmdzLW1hbmFnZXIudHM6NDgzOiAgIH1cbnNldHRpbmdzLW1hbmFnZXIudHM6NDg0OiAgIFxuc2V0dGluZ3MtbWFuYWdlci50czo0ODU6IHByaXZhdGUgY2xvbmVNb2RpZmllZE5lc3RlZEZpZWxkcyhzb3VyY2U6IE1hcDxrZXlvZiBTZXR0aW5ncywgU2V0PHN0cmluZz4+KTogTWFwPGtleW9mIFNldHRpbmdzLCBTZXQ8c3RyaW5nPj4ge1xuc2V0dGluZ3MtbWFuYWdlci50czo0ODY6ICAgY29uc3Qgc25hcHNob3QgPSBuZXcgTWFwPGtleW9mIFNldHRpbmdzLCBTZXQ8c3RyaW5nPj4oKTtcbnNldHRpbmdzLW1hbmFnZXIudHM6NDg3OiAgIGZvciAoY29uc3QgW2tleSwgdmFsdWVdIG9mIHNvdXJjZS5lbnRyaWVzKCkpIHtcbm1vZGVsLXJlZ2lzdHJ5LnRzOjcyMDogICBcbm1vZGVsLXJlZ2lzdHJ5LnRzOjcyMTogICBpZiAocHJvdmlkZXJBcGlLZXkuc3RhcnRzV2l0aChcIiFcIikpIHtcbm1vZGVsLXJlZ2lzdHJ5LnRzOjcyMjogcmV0dXJuIHsgY29uZmlndXJlZDogdHJ1ZSwgc291cmNlOiBcIm1vZGVsc19qc29uX2NvbW1hbmRcIiB9O1xubW9kZWwtcmVnaXN0cnkudHM6NzIzOiAgIH1cbm1vZGVsLXJlZ2lzdHJ5LnRzOjcyNDogICBcbm1vZGVsLXJlZ2lzdHJ5LnRzOjcyNDogICBcbm1vZGVsLXJlZ2lzdHJ5LnRzOjcyNTogICBpZiAocHJvY2Vzcy5lbnZbcHJvdmlkZXJBcGlLZXldKSB7XG5tb2RlbC1yZWdpc3RyeS50czo3MjY6IHJldHVybiB7IGNvbmZpZ3VyZWQ6IHRydWUsIHNvdXJjZTogXCJlbnZpcm9ubWVudFwiLCBsYWJlbDogcHJvdmlkZXJBcGlLZXkgfTtcbm1vZGVsLXJlZ2lzdHJ5LnRzOjcyNzogICB9XG5tb2RlbC1yZWdpc3RyeS50czo3Mjg6ICAgXG5tb2RlbC1yZWdpc3RyeS50czo3Mjc6ICAgfVxubW9kZWwtcmVnaXN0cnkudHM6NzI4OiAgIFxubW9kZWwtcmVnaXN0cnkudHM6NzI5OiByZXR1cm4geyBjb25maWd1cmVkOiB0cnVlLCBzb3VyY2U6IFwibW9kZWxzX2pzb25fa2V5XCIgfTtcbm1vZGVsLXJlZ2lzdHJ5LnRzOjczMDogICB9XG5tb2RlbC1yZWdpc3RyeS50czo3MzE6ICAgXG5zbGFzaC1jb21tYW5kcy50czo3OiAgIG5hbWU6IHN0cmluZztcbnNsYXNoLWNvbW1hbmRzLnRzOjg6ICAgZGVzY3JpcHRpb24/OiBzdHJpbmc7XG5zbGFzaC1jb21tYW5kcy50czo5OiBzb3VyY2U6IFNsYXNoQ29tbWFuZFNvdXJjZTtcbnNsYXNoLWNvbW1hbmRzLnRzOjEwOiAgIHNvdXJjZUluZm86IFNvdXJjZUluZm87XG5zbGFzaC1jb21tYW5kcy50czoxMTogICB9XG5wYWNrYWdlLW1hbmFnZXIudHM6NDU6ICAgXG5wYWNrYWdlLW1hbmFnZXIudHM6NDY6ICAgZXhwb3J0IGludGVyZmFjZSBQYXRoTWV0YWRhdGEge1xucGFja2FnZS1tYW5hZ2VyLnRzOjQ3OiBzb3VyY2U6IHN0cmluZztcbnBhY2thZ2UtbWFuYWdlci50czo0ODogICBzY29wZTogU291cmNlU2NvcGU7XG5wYWNrYWdlLW1hbmFnZXIudHM6NDk6ICAgb3JpZ2luOiBcInBhY2thZ2VcIiB8IFwidG9wLWxldmVsXCI7XG5wYWNrYWdlLW1hbmFnZXIudHM6Njk6ICAgdHlwZTogXCJzdGFydFwiIHwgXCJwcm9ncmVzc1wiIHwgXCJjb21wbGV0ZVwiIHwgXCJlcnJvclwiO1xucGFja2FnZS1tYW5hZ2VyLnRzOjcwOiAgIGFjdGlvbjogXCJpbnN0YWxsXCIgfCBcInJlbW92ZVwiIHwgXCJ1cGRhdGVcIiB8IFwiY2xvbmVcIiB8IFwicHVsbFwiO1xucGFja2FnZS1tYW5hZ2VyLnRzOjcxOiBzb3VyY2U6IHN0cmluZztcbnBhY2thZ2UtbWFuYWdlci50czo3MjogICBtZXNzYWdlPzogc3RyaW5nO1xucGFja2FnZS1tYW5hZ2VyLnRzOjczOiAgIH1cbnBhY2thZ2UtbWFuYWdlci50czo3NjogICBcbnBhY2thZ2UtbWFuYWdlci50czo3NzogICBleHBvcnQgaW50ZXJmYWNlIFBhY2thZ2VVcGRhdGUge1xucGFja2FnZS1tYW5hZ2VyLnRzOjc4OiBzb3VyY2U6IHN0cmluZztcbnBhY2thZ2UtbWFuYWdlci50czo3OTogICBkaXNwbGF5TmFtZTogc3RyaW5nO1xucGFja2FnZS1tYW5hZ2VyLnRzOjgwOiAgIHR5cGU6IFwibnBtXCIgfCBcImdpdFwiO1xucGFja2FnZS1tYW5hZ2VyLnRzOjgzOiAgIFxucGFja2FnZS1tYW5hZ2VyLnRzOjg0OiAgIGV4cG9ydCBpbnRlcmZhY2UgQ29uZmlndXJlZFBhY2thZ2Uge1xucGFja2FnZS1tYW5hZ2VyLnRzOjg1OiBzb3VyY2U6IHN0cmluZztcbnBhY2thZ2UtbWFuYWdlci50czo4NjogICBzY29wZTogXCJ1c2VyXCIgfCBcInByb2plY3RcIjtcbnBhY2thZ2UtbWFuYWdlci50czo4NzogICBmaWx0ZXJlZDogYm9vbGVhbjtcbnBhY2thZ2UtbWFuYWdlci50czo5MDogICBcbnBhY2thZ2UtbWFuYWdlci50czo5MTogICBleHBvcnQgaW50ZXJmYWNlIFBhY2thZ2VNYW5hZ2VyIHtcbnBhY2thZ2UtbWFuYWdlci50czo5MjogcmVzb2x2ZShvbk1pc3Npbmc/OiAoc291cmNlOiBzdHJpbmcpID0+IFByb21pc2U8TWlzc2luZ1NvdXJjZUFjdGlvbj4pOiBQcm9taXNlPFJlc29sdmVkUGF0aHM+O1xucGFja2FnZS1tYW5hZ2VyLnRzOjkzOiAgIGluc3RhbGwoc291cmNlOiBzdHJpbmcsIG9wdGlvbnM/OiB7IGxvY2FsPzogYm9vbGVhbiB9KTogUHJvbWlzZTx2b2lkPjtcbnBhY2thZ2UtbWFuYWdlci50czo5NDogICBpbnN0YWxsQW5kUGVyc2lzdChzb3VyY2U6IHN0cmluZywgb3B0aW9ucz86IHsgbG9jYWw/OiBib29sZWFuIH0pOiBQcm9taXNlPHZvaWQ+O1xucGFja2FnZS1tYW5hZ2VyLnRzOjkxOiAgIGV4cG9ydCBpbnRlcmZhY2UgUGFja2FnZU1hbmFnZXIge1xucGFja2FnZS1tYW5hZ2VyLnRzOjkyOiAgIHJlc29sdmUob25NaXNzaW5nPzogKHNvdXJjZTogc3RyaW5nKSA9PiBQcm9taXNlPE1pc3NpbmdTb3VyY2VBY3Rpb24+KTogUHJvbWlzZTxSZXNvbHZlZFBhdGhzPjtcbnBhY2thZ2UtbWFuYWdlci50czo5MzogaW5zdGFsbChzb3VyY2U6IHN0cmluZywgb3B0aW9ucz86IHsgbG9jYWw/OiBib29sZWFuIH0pOiBQcm9taXNlPHZvaWQ+O1xucGFja2FnZS1tYW5hZ2VyLnRzOjk0OiAgIGluc3RhbGxBbmRQZXJzaXN0KHNvdXJjZTogc3RyaW5nLCBvcHRpb25zPzogeyBsb2NhbD86IGJvb2xlYW4gfSk6IFByb21pc2U8dm9pZD47XG5wYWNrYWdlLW1hbmFnZXIudHM6OTU6ICAgcmVtb3ZlKHNvdXJjZTogc3RyaW5nLCBvcHRpb25zPzogeyBsb2NhbD86IGJvb2xlYW4gfSk6IFByb21pc2U8dm9pZD47XG5wYWNrYWdlLW1hbmFnZXIudHM6OTI6ICAgcmVzb2x2ZShvbk1pc3Npbmc/OiAoc291cmNlOiBzdHJpbmcpID0+IFByb21pc2U8TWlzc2luZ1NvdXJjZUFjdGlvbj4pOiBQcm9taXNlPFJlc29sdmVkUGF0aHM+O1xucGFja2FnZS1tYW5hZ2VyLnRzOjkzOiAgIGluc3RhbGwoc291cmNlOiBzdHJpbmcsIG9wdGlvbnM/OiB7IGxvY2FsPzogYm9vbGVhbiB9KTogUHJvbWlzZTx2b2lkPjtcbnBhY2thZ2UtbWFuYWdlci50czo5NDogaW5zdGFsbEFuZFBlcnNpc3Qoc291cmNlOiBzdHJpbmcsIG9wdGlvbnM/OiB7IGxvY2FsPzogYm9vbGVhbiB9KTogUHJvbWlzZTx2b2lkPjtcbnBhY2thZ2UtbWFuYWdlci50czo5NTogICByZW1vdmUoc291cmNlOiBzdHJpbmcsIG9wdGlvbnM/OiB7IGxvY2FsPzogYm9vbGVhbiB9KTogUHJvbWlzZTx2b2lkPjtcbnBhY2thZ2UtbWFuYWdlci50czo5NjogICByZW1vdmVBbmRQZXJzaXN0KHNvdXJjZTogc3RyaW5nLCBvcHRpb25zPzogeyBsb2NhbD86IGJvb2xlYW4gfSk6IFByb21pc2U8Ym9vbGVhbj47XG5wYWNrYWdlLW1hbmFnZXIudHM6OTM6ICAgaW5zdGFsbChzb3VyY2U6IHN0cmluZywgb3B0aW9ucz86IHsgbG9jYWw/OiBib29sZWFuIH0pOiBQcm9taXNlPHZvaWQ+O1xucGFja2FnZS1tYW5hZ2VyLnRzOjk0OiAgIGluc3RhbGxBbmRQZXJzaXN0KHNvdXJjZTogc3RyaW5nLCBvcHRpb25zPzogeyBsb2NhbD86IGJvb2xlYW4gfSk6IFByb21pc2U8dm9pZD47XG5wYWNrYWdlLW1hbmFnZXIudHM6OTU6IHJlbW92ZShzb3VyY2U6IHN0cmluZywgb3B0aW9ucz86IHsgbG9jYWw/OiBib29sZWFuIH0pOiBQcm9taXNlPHZvaWQ+O1xucGFja2FnZS1tYW5hZ2VyLnRzOjk2OiAgIHJlbW92ZUFuZFBlcnNpc3Qoc291cmNlOiBzdHJpbmcsIG9wdGlvbnM/OiB7IGxvY2FsPzogYm9vbGVhbiB9KTogUHJvbWlzZTxib29sZWFuPjtcbnBhY2thZ2UtbWFuYWdlci50czo5NzogICB1cGRhdGUoc291cmNlPzogc3RyaW5nKTogUHJvbWlzZTx2b2lkPjtcbnBhY2thZ2UtbWFuYWdlci50czo5NDogICBpbnN0YWxsQW5kUGVyc2lzdChzb3VyY2U6IHN0cmluZywgb3B0aW9ucz86IHsgbG9jYWw/OiBib29sZWFuIH0pOiBQcm9taXNlPHZvaWQ+O1xucGFja2FnZS1tYW5hZ2VyLnRzOjk1OiAgIHJlbW92ZShzb3VyY2U6IHN0cmluZywgb3B0aW9ucz86IHsgbG9jYWw/OiBib29sZWFuIH0pOiBQcm9taXNlPHZvaWQ+O1xucGFja2FnZS1tYW5hZ2VyLnRzOjk2OiByZW1vdmVBbmRQZXJzaXN0KHNvdXJjZTogc3RyaW5nLCBvcHRpb25zPzogeyBsb2NhbD86IGJvb2xlYW4gfSk6IFByb21pc2U8Ym9vbGVhbj47XG5wYWNrYWdlLW1hbmFnZXIudHM6OTc6ICAgdXBkYXRlKHNvdXJjZT86IHN0cmluZyk6IFByb21pc2U8dm9pZD47XG5wYWNrYWdlLW1hbmFnZXIudHM6OTg6ICAgbGlzdENvbmZpZ3VyZWRQYWNrYWdlcygpOiBDb25maWd1cmVkUGFja2FnZVtdO1xucGFja2FnZS1tYW5hZ2VyLnRzOjEwMTogICBvcHRpb25zPzogeyBsb2NhbD86IGJvb2xlYW47IHRlbXBvcmFyeT86IGJvb2xlYW4gfSxcbnBhY2thZ2UtbWFuYWdlci50czoxMDI6ICAgKTogUHJvbWlzZTxSZXNvbHZlZFBhdGhzPjtcbnBhY2thZ2UtbWFuYWdlci50czoxMDM6IGFkZFNvdXJjZVRvU2V0dGluZ3Moc291cmNlOiBzdHJpbmcsIG9wdGlvbnM/OiB7IGxvY2FsPzogYm9vbGVhbiB9KTogYm9vbGVhbjtcbnBhY2thZ2UtbWFuYWdlci50czoxMDQ6ICAgcmVtb3ZlU291cmNlRnJvbVNldHRpbmdzKHNvdXJjZTogc3RyaW5nLCBvcHRpb25zPzogeyBsb2NhbD86IGJvb2xlYW4gfSk6IGJvb2xlYW47XG5wYWNrYWdlLW1hbmFnZXIudHM6MTA1OiAgIHNldFByb2dyZXNzQ2FsbGJhY2soY2FsbGJhY2s6IFByb2dyZXNzQ2FsbGJhY2sgfCB1bmRlZmluZWQpOiB2b2lkO1xucGFja2FnZS1tYW5hZ2VyLnRzOjEwMjogICApOiBQcm9taXNlPFJlc29sdmVkUGF0aHM+O1xucGFja2FnZS1tYW5hZ2VyLnRzOjEwMzogICBhZGRTb3VyY2VUb1NldHRpbmdzKHNvdXJjZTogc3RyaW5nLCBvcHRpb25zPzogeyBsb2NhbD86IGJvb2xlYW4gfSk6IGJvb2xlYW47XG5wYWNrYWdlLW1hbmFnZXIudHM6MTA0OiByZW1vdmVTb3VyY2VGcm9tU2V0dGluZ3Moc291cmNlOiBzdHJpbmcsIG9wdGlvbnM/OiB7IGxvY2FsPzogYm9vbGVhbiB9KTogYm9vbGVhbjtcbnBhY2thZ2UtbWFuYWdlci50czoxMDU6ICAgc2V0UHJvZ3Jlc3NDYWxsYmFjayhjYWxsYmFjazogUHJvZ3Jlc3NDYWxsYmFjayB8IHVuZGVmaW5lZCk6IHZvaWQ7XG5wYWNrYWdlLW1hbmFnZXIudHM6MTA2OiAgIGdldEluc3RhbGxlZFBhdGgoc291cmNlOiBzdHJpbmcsIHNjb3BlOiBcInVzZXJcIiB8IFwicHJvamVjdFwiKTogc3RyaW5nIHwgdW5kZWZpbmVkO1xucGFja2FnZS1tYW5hZ2VyLnRzOjEwNDogICByZW1vdmVTb3VyY2VGcm9tU2V0dGluZ3Moc291cmNlOiBzdHJpbmcsIG9wdGlvbnM/OiB7IGxvY2FsPzogYm9vbGVhbiB9KTogYm9vbGVhbjtcbnBhY2thZ2UtbWFuYWdlci50czoxMDU6ICAgc2V0UHJvZ3Jlc3NDYWxsYmFjayhjYWxsYmFjazogUHJvZ3Jlc3NDYWxsYmFjayB8IHVuZGVmaW5lZCk6IHZvaWQ7XG5wYWNrYWdlLW1hbmFnZXIudHM6MTA2OiBnZXRJbnN0YWxsZWRQYXRoKHNvdXJjZTogc3RyaW5nLCBzY29wZTogXCJ1c2VyXCIgfCBcInByb2plY3RcIik6IHN0cmluZyB8IHVuZGVmaW5lZDtcbnBhY2thZ2UtbWFuYWdlci50czoxMDc6ICAgfVxucGFja2FnZS1tYW5hZ2VyLnRzOjEwODogICBcbnBhY2thZ2UtbWFuYWdlci50czoxMzI6ICAgXG5wYWNrYWdlLW1hbmFnZXIudHM6MTMzOiAgIGludGVyZmFjZSBDb25maWd1cmVkVXBkYXRlU291cmNlIHtcbnBhY2thZ2UtbWFuYWdlci50czoxMzQ6IHNvdXJjZTogc3RyaW5nO1xucGFja2FnZS1tYW5hZ2VyLnRzOjEzNTogICBzY29wZTogSW5zdGFsbGVkU291cmNlU2NvcGU7XG5wYWNrYWdlLW1hbmFnZXIudHM6MTM2OiAgIH1cbnBhY2thZ2UtbWFuYWdlci50czoxNjQ6ICAgKlxucGFja2FnZS1tYW5hZ2VyLnRzOjE2NTogICAqIFByZWNlZGVuY2UgKGhpZ2hlc3QgdG8gbG93ZXN0KTpcbnBhY2thZ2UtbWFuYWdlci50czoxNjY6ICogICAwICBwcm9qZWN0ICsgc2V0dGluZ3MgZW50cnkgKHNvdXJjZTogXCJsb2NhbFwiLCBzY29wZTogXCJwcm9qZWN0XCIpXG5wYWNrYWdlLW1hbmFnZXIudHM6MTY3OiAgICogICAxICBwcm9qZWN0ICsgYXV0by1kaXNjb3ZlcmVkIChzb3VyY2U6IFwiYXV0b1wiLCBzY29wZTogXCJwcm9qZWN0XCIpXG5wYWNrYWdlLW1hbmFnZXIudHM6MTY4OiAgICogICAyICB1c2VyICsgc2V0dGluZ3MgZW50cnkgKHNvdXJjZTogXCJsb2NhbFwiLCBzY29wZTogXCJ1c2VyXCIpXG5wYWNrYWdlLW1hbmFnZXIudHM6MTY1OiAgICogUHJlY2VkZW5jZSAoaGlnaGVzdCB0byBsb3dlc3QpOlxucGFja2FnZS1tYW5hZ2VyLnRzOjE2NjogICAqICAgMCAgcHJvamVjdCArIHNldHRpbmdzIGVudHJ5IChzb3VyY2U6IFwibG9jYWxcIiwgc2NvcGU6IFwicHJvamVjdFwiKVxucGFja2FnZS1tYW5hZ2VyLnRzOjE2NzogKiAgIDEgIHByb2plY3QgKyBhdXRvLWRpc2NvdmVyZWQgKHNvdXJjZTogXCJhdXRvXCIsIHNjb3BlOiBcInByb2plY3RcIilcbnBhY2thZ2UtbWFuYWdlci50czoxNjg6ICAgKiAgIDIgIHVzZXIgKyBzZXR0aW5ncyBlbnRyeSAoc291cmNlOiBcImxvY2FsXCIsIHNjb3BlOiBcInVzZXJcIilcbnBhY2thZ2UtbWFuYWdlci50czoxNjk6ICAgKiAgIDMgIHVzZXIgKyBhdXRvLWRpc2NvdmVyZWQgKHNvdXJjZTogXCJhdXRvXCIsIHNjb3BlOiBcInVzZXJcIilcbnBhY2thZ2UtbWFuYWdlci50czoxNjY6ICAgKiAgIDAgIHByb2plY3QgKyBzZXR0aW5ncyBlbnRyeSAoc291cmNlOiBcImxvY2FsXCIsIHNjb3BlOiBcInByb2plY3RcIilcbnBhY2thZ2UtbWFuYWdlci50czoxNjc6ICAgKiAgIDEgIHByb2plY3QgKyBhdXRvLWRpc2NvdmVyZWQgKHNvdXJjZTogXCJhdXRvXCIsIHNjb3BlOiBcInByb2plY3RcIilcbnBhY2thZ2UtbWFuYWdlci50czoxNjg6ICogICAyICB1c2VyICsgc2V0dGluZ3MgZW50cnkgKHNvdXJjZTogXCJsb2NhbFwiLCBzY29wZTogXCJ1c2VyXCIpXG5wYWNrYWdlLW1hbmFnZXIudHM6MTY5OiAgICogICAzICB1c2VyICsgYXV0by1kaXNjb3ZlcmVkIChzb3VyY2U6IFwiYXV0b1wiLCBzY29wZTogXCJ1c2VyXCIpXG5wYWNrYWdlLW1hbmFnZXIudHM6MTcwOiAgICogICA0ICBwYWNrYWdlIHJlc291cmNlIChvcmlnaW46IFwicGFja2FnZVwiKVxucGFja2FnZS1tYW5hZ2VyLnRzOjE2NzogICAqICAgMSAgcHJvamVjdCArIGF1dG8tZGlzY292ZXJlZCAoc291cmNlOiBcImF1dG9cIiwgc2NvcGU6IFwicHJvamVjdFwiKVxucGFja2FnZS1tYW5hZ2VyLnRzOjE2ODogICAqICAgMiAgdXNlciArIHNldHRpbmdzIGVudHJ5IChzb3VyY2U6IFwibG9jYWxcIiwgc2NvcGU6IFwidXNlclwiKVxucGFja2FnZS1tYW5hZ2VyLnRzOjE2OTogKiAgIDMgIHVzZXIgKyBhdXRvLWRpc2NvdmVyZWQgKHNvdXJjZTogXCJhdXRvXCIsIHNjb3BlOiBcInVzZXJcIilcbnBhY2thZ2UtbWFuYWdlci50czoxNzA6ICAgKiAgIDQgIHBhY2thZ2UgcmVzb3VyY2UgKG9yaWdpbjogXCJwYWNrYWdlXCIpXG5wYWNrYWdlLW1hbmFnZXIudHM6MTcxOiAgICovXG5wYWNrYWdlLW1hbmFnZXIudHM6NzcyOiAgIH1cbnBhY2thZ2UtbWFuYWdlci50czo3NzM6ICAgXG5wYWNrYWdlLW1hbmFnZXIudHM6Nzc0OiBhZGRTb3VyY2VUb1NldHRpbmdzKHNvdXJjZTogc3RyaW5nLCBvcHRpb25zPzogeyBsb2NhbD86IGJvb2xlYW4gfSk6IGJvb2xlYW4ge1xucGFja2FnZS1tYW5hZ2VyLnRzOjc3NTogICBjb25zdCBzY29wZTogU291cmNlU2NvcGUgPSBvcHRpb25zPy5sb2NhbCA/IFwicHJvamVjdFwiIDogXCJ1c2VyXCI7XG5wYWNrYWdlLW1hbmFnZXIudHM6Nzc2OiAgIGNvbnN0IGN1cnJlbnRTZXR0aW5ncyA9XG5wYWNrYWdlLW1hbmFnZXIudHM6NzkxOiAgIH1cbnBhY2thZ2UtbWFuYWdlci50czo3OTI6ICAgXG5wYWNrYWdlLW1hbmFnZXIudHM6NzkzOiByZW1vdmVTb3VyY2VGcm9tU2V0dGluZ3Moc291cmNlOiBzdHJpbmcsIG9wdGlvbnM/OiB7IGxvY2FsPzogYm9vbGVhbiB9KTogYm9vbGVhbiB7XG5wYWNrYWdlLW1hbmFnZXIudHM6Nzk0OiAgIGNvbnN0IHNjb3BlOiBTb3VyY2VTY29wZSA9IG9wdGlvbnM/LmxvY2FsID8gXCJwcm9qZWN0XCIgOiBcInVzZXJcIjtcbnBhY2thZ2UtbWFuYWdlci50czo3OTU6ICAgY29uc3QgY3VycmVudFNldHRpbmdzID1cbnBhY2thZ2UtbWFuYWdlci50czo4MDk6ICAgfVxucGFja2FnZS1tYW5hZ2VyLnRzOjgxMDogICBcbnBhY2thZ2UtbWFuYWdlci50czo4MTE6IGdldEluc3RhbGxlZFBhdGgoc291cmNlOiBzdHJpbmcsIHNjb3BlOiBcInVzZXJcIiB8IFwicHJvamVjdFwiKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbnBhY2thZ2UtbWFuYWdlci50czo4MTI6ICAgY29uc3QgcGFyc2VkID0gdGhpcy5wYXJzZVNvdXJjZShzb3VyY2UpO1xucGFja2FnZS1tYW5hZ2VyLnRzOjgxMzogICBpZiAocGFyc2VkLnR5cGUgPT09IFwibnBtXCIpIHtcbnBhY2thZ2UtbWFuYWdlci50czo4MzM6ICAgcHJpdmF0ZSBhc3luYyB3aXRoUHJvZ3Jlc3MoXG5wYWNrYWdlLW1hbmFnZXIudHM6ODM0OiAgIGFjdGlvbjogUHJvZ3Jlc3NFdmVudFtcImFjdGlvblwiXSxcbnBhY2thZ2UtbWFuYWdlci50czo4MzU6IHNvdXJjZTogc3RyaW5nLFxucGFja2FnZS1tYW5hZ2VyLnRzOjgzNjogICBtZXNzYWdlOiBzdHJpbmcsXG5wYWNrYWdlLW1hbmFnZXIudHM6ODM3OiAgIG9wZXJhdGlvbjogKCkgPT4gUHJvbWlzZTx2b2lkPixcbnBhY2thZ2UtbWFuYWdlci50czo4NDg6ICAgfVxucGFja2FnZS1tYW5hZ2VyLnRzOjg0OTogICBcbnBhY2thZ2UtbWFuYWdlci50czo4NTA6IGFzeW5jIHJlc29sdmUob25NaXNzaW5nPzogKHNvdXJjZTogc3RyaW5nKSA9PiBQcm9taXNlPE1pc3NpbmdTb3VyY2VBY3Rpb24+KTogUHJvbWlzZTxSZXNvbHZlZFBhdGhzPiB7XG5wYWNrYWdlLW1hbmFnZXIudHM6ODUxOiAgIGNvbnN0IGFjY3VtdWxhdG9yID0gdGhpcy5jcmVhdGVBY2N1bXVsYXRvcigpO1xucGFja2FnZS1tYW5hZ2VyLnRzOjg1MjogICBjb25zdCBnbG9iYWxTZXR0aW5ncyA9IHRoaXMuc2V0dGluZ3NNYW5hZ2VyLmdldEdsb2JhbFNldHRpbmdzKCk7XG5wYWNrYWdlLW1hbmFnZXIudHM6ODc4OiAgIHRhcmdldCxcbnBhY2thZ2UtbWFuYWdlci50czo4Nzk6ICAge1xucGFja2FnZS1tYW5hZ2VyLnRzOjg4MDogc291cmNlOiBcImxvY2FsXCIsXG5wYWNrYWdlLW1hbmFnZXIudHM6ODgxOiAgIHNjb3BlOiBcInByb2plY3RcIixcbnBhY2thZ2UtbWFuYWdlci50czo4ODI6ICAgb3JpZ2luOiBcInRvcC1sZXZlbFwiLFxucGFja2FnZS1tYW5hZ2VyLnRzOjg4OTogICB0YXJnZXQsXG5wYWNrYWdlLW1hbmFnZXIudHM6ODkwOiAgIHtcbnBhY2thZ2UtbWFuYWdlci50czo4OTE6IHNvdXJjZTogXCJsb2NhbFwiLFxucGFja2FnZS1tYW5hZ2VyLnRzOjg5MjogICBzY29wZTogXCJ1c2VyXCIsXG5wYWNrYWdlLW1hbmFnZXIudHM6ODkzOiAgIG9yaWdpbjogXCJ0b3AtbGV2ZWxcIixcbnBhY2thZ2UtbWFuYWdlci50czo5NDE6ICAgfVxucGFja2FnZS1tYW5hZ2VyLnRzOjk0MjogICBcbnBhY2thZ2UtbWFuYWdlci50czo5NDM6IGFzeW5jIGluc3RhbGwoc291cmNlOiBzdHJpbmcsIG9wdGlvbnM/OiB7IGxvY2FsPzogYm9vbGVhbiB9KTogUHJvbWlzZTx2b2lkPiB7XG5wYWNrYWdlLW1hbmFnZXIudHM6OTQ0OiAgIGNvbnN0IHBhcnNlZCA9IHRoaXMucGFyc2VTb3VyY2Uoc291cmNlKTtcbnBhY2thZ2UtbWFuYWdlci50czo5NDU6ICAgY29uc3Qgc2NvcGU6IFNvdXJjZVNjb3BlID0gb3B0aW9ucz8ubG9jYWwgPyBcInByb2plY3RcIiA6IFwidXNlclwiO1xucGFja2FnZS1tYW5hZ2VyLnRzOjk2MDogICByZXR1cm47XG5wYWNrYWdlLW1hbmFnZXIudHM6OTYxOiAgIH1cbnBhY2thZ2UtbWFuYWdlci50czo5NjI6IHRocm93IG5ldyBFcnJvcihgVW5zdXBwb3J0ZWQgaW5zdGFsbCBzb3VyY2U6ICR7c291cmNlfWApO1xucGFja2FnZS1tYW5hZ2VyLnRzOjk2MzogICB9KTtcbnBhY2thZ2UtbWFuYWdlci50czo5NjQ6ICAgfVxucGFja2FnZS1tYW5hZ2VyLnRzOjk2NDogICB9XG5wYWNrYWdlLW1hbmFnZXIudHM6OTY1OiAgIFxucGFja2FnZS1tYW5hZ2VyLnRzOjk2NjogYXN5bmMgaW5zdGFsbEFuZFBlcnNpc3Qoc291cmNlOiBzdHJpbmcsIG9wdGlvbnM/OiB7IGxvY2FsPzogYm9vbGVhbiB9KTogUHJvbWlzZTx2b2lkPiB7XG5wYWNrYWdlLW1hbmFnZXIudHM6OTY3OiAgIGF3YWl0IHRoaXMuaW5zdGFsbChzb3VyY2UsIG9wdGlvbnMpO1xucGFja2FnZS1tYW5hZ2VyLnRzOjk2ODogICB0aGlzLmFkZFNvdXJjZVRvU2V0dGluZ3Moc291cmNlLCBvcHRpb25zKTtcbnBhY2thZ2UtbWFuYWdlci50czo5Njk6ICAgfVxucGFja2FnZS1tYW5hZ2VyLnRzOjk3MDogICBcbnBhY2thZ2UtbWFuYWdlci50czo5NzE6IGFzeW5jIHJlbW92ZShzb3VyY2U6IHN0cmluZywgb3B0aW9ucz86IHsgbG9jYWw/OiBib29sZWFuIH0pOiBQcm9taXNlPHZvaWQ+IHtcbnBhY2thZ2UtbWFuYWdlci50czo5NzI6ICAgY29uc3QgcGFyc2VkID0gdGhpcy5wYXJzZVNvdXJjZShzb3VyY2UpO1xucGFja2FnZS1tYW5hZ2VyLnRzOjk3MzogICBjb25zdCBzY29wZTogU291cmNlU2NvcGUgPSBvcHRpb25zPy5sb2NhbCA/IFwicHJvamVjdFwiIDogXCJ1c2VyXCI7XG5wYWNrYWdlLW1hbmFnZXIudHM6OTg0OiAgIHJldHVybjtcbnBhY2thZ2UtbWFuYWdlci50czo5ODU6ICAgfVxucGFja2FnZS1tYW5hZ2VyLnRzOjk4NjogdGhyb3cgbmV3IEVycm9yKGBVbnN1cHBvcnRlZCByZW1vdmUgc291cmNlOiAke3NvdXJjZX1gKTtcbnBhY2thZ2UtbWFuYWdlci50czo5ODc6ICAgfSk7XG5wYWNrYWdlLW1hbmFnZXIudHM6OTg4OiAgIH1cbnBhY2thZ2UtbWFuYWdlci50czo5ODg6ICAgfVxucGFja2FnZS1tYW5hZ2VyLnRzOjk4OTogICBcbnBhY2thZ2UtbWFuYWdlci50czo5OTA6IGFzeW5jIHJlbW92ZUFuZFBlcnNpc3Qoc291cmNlOiBzdHJpbmcsIG9wdGlvbnM/OiB7IGxvY2FsPzogYm9vbGVhbiB9KTogUHJvbWlzZTxib29sZWFuPiB7XG5wYWNrYWdlLW1hbmFnZXIudHM6OTkxOiAgIGF3YWl0IHRoaXMucmVtb3ZlKHNvdXJjZSwgb3B0aW9ucyk7XG5wYWNrYWdlLW1hbmFnZXIudHM6OTkyOiAgIHJldHVybiB0aGlzLnJlbW92ZVNvdXJjZUZyb21TZXR0aW5ncyhzb3VyY2UsIG9wdGlvbnMpO1xucGFja2FnZS1tYW5hZ2VyLnRzOjEwMDQ6ICAgaWYgKGlkZW50aXR5ICYmIHRoaXMuZ2V0UGFja2FnZUlkZW50aXR5KHNvdXJjZVN0ciwgXCJ1c2VyXCIpICE9PSBpZGVudGl0eSkgY29udGludWU7XG5wYWNrYWdlLW1hbmFnZXIudHM6MTAwNTogICBtYXRjaGVkID0gdHJ1ZTtcbnBhY2thZ2UtbWFuYWdlci50czoxMDA2OiB1cGRhdGVTb3VyY2VzLnB1c2goeyBzb3VyY2U6IHNvdXJjZVN0ciwgc2NvcGU6IFwidXNlclwiIH0pO1xucGFja2FnZS1tYW5hZ2VyLnRzOjEwMDc6ICAgfVxucGFja2FnZS1tYW5hZ2VyLnRzOjEwMDg6ICAgZm9yIChjb25zdCBwa2cgb2YgcHJvamVjdFNldHRpbmdzLnBhY2thZ2VzID8/IFtdKSB7XG5wYWNrYWdlLW1hbmFnZXIudHM6MTAxMDogICBpZiAoaWRlbnRpdHkgJiYgdGhpcy5nZXRQYWNrYWdlSWRlbnRpdHkoc291cmNlU3RyLCBcInByb2plY3RcIikgIT09IGlkZW50aXR5KSBjb250aW51ZTtcbnBhY2thZ2UtbWFuYWdlci50czoxMDExOiAgIG1hdGNoZWQgPSB0cnVlO1xucGFja2FnZS1tYW5hZ2VyLnRzOjEwMTI6IHVwZGF0ZVNvdXJjZXMucHVzaCh7IHNvdXJjZTogc291cmNlU3RyLCBzY29wZTogXCJwcm9qZWN0XCIgfSk7XG5wYWNrYWdlLW1hbmFnZXIudHM6MTAxMzogICB9XG5wYWNrYWdlLW1hbmFnZXIudHM6MTAxNDogICBcbnBhY2thZ2UtbWFuYWdlci50czoxMDgzOiAgIH1cbnBhY2thZ2UtbWFuYWdlci50czoxMDg0OiAgIFxucGFja2FnZS1tYW5hZ2VyLnRzOjEwODU6IHByaXZhdGUgYXN5bmMgc2hvdWxkVXBkYXRlTnBtU291cmNlKHNvdXJjZTogTnBtU291cmNlLCBzY29wZTogSW5zdGFsbGVkU291cmNlU2NvcGUpOiBQcm9taXNlPGJvb2xlYW4+IHtcbnBhY2thZ2UtbWFuYWdlci50czoxMDg2OiAgIGNvbnN0IGluc3RhbGxlZFBhdGggPSB0aGlzLmdldE5wbUluc3RhbGxQYXRoKHNvdXJjZSwgc2NvcGUpO1xucGFja2FnZS1tYW5hZ2VyLnRzOjEwODc6ICAgY29uc3QgaW5zdGFsbGVkVmVyc2lvbiA9IGV4aXN0c1N5bmMoaW5zdGFsbGVkUGF0aCkgPyB0aGlzLmdldEluc3RhbGxlZE5wbVZlcnNpb24oaW5zdGFsbGVkUGF0aCkgOiB1bmRlZmluZWQ7XG5wYWNrYWdlLW1hbmFnZXIudHM6MTE5MTogICBzb3VyY2VzOiBBcnJheTx7IHBrZzogUGFja2FnZVNvdXJjZTsgc2NvcGU6IFNvdXJjZVNjb3BlIH0+LFxucGFja2FnZS1tYW5hZ2VyLnRzOjExOTI6ICAgYWNjdW11bGF0b3I6IFJlc291cmNlQWNjdW11bGF0b3IsXG5wYWNrYWdlLW1hbmFnZXIudHM6MTE5Mzogb25NaXNzaW5nPzogKHNvdXJjZTogc3RyaW5nKSA9PiBQcm9taXNlPE1pc3NpbmdTb3VyY2VBY3Rpb24+LFxucGFja2FnZS1tYW5hZ2VyLnRzOjExOTQ6ICAgKTogUHJvbWlzZTx2b2lkPiB7XG5wYWNrYWdlLW1hbmFnZXIudHM6MTE5NTogICBmb3IgKGNvbnN0IHsgcGtnLCBzY29wZSB9IG9mIHNvdXJjZXMpIHtcbnBhY2thZ2UtbWFuYWdlci50czoxMTk3OiAgIGNvbnN0IGZpbHRlciA9IHR5cGVvZiBwa2cgPT09IFwib2JqZWN0XCIgPyBwa2cgOiB1bmRlZmluZWQ7XG5wYWNrYWdlLW1hbmFnZXIudHM6MTE5ODogICBjb25zdCBwYXJzZWQgPSB0aGlzLnBhcnNlU291cmNlKHNvdXJjZVN0cik7XG5wYWNrYWdlLW1hbmFnZXIudHM6MTE5OTogY29uc3QgbWV0YWRhdGE6IFBhdGhNZXRhZGF0YSA9IHsgc291cmNlOiBzb3VyY2VTdHIsIHNjb3BlLCBvcmlnaW46IFwicGFja2FnZVwiIH07XG5wYWNrYWdlLW1hbmFnZXIudHM6MTIwMDogICBcbnBhY2thZ2UtbWFuYWdlci50czoxMjAxOiAgIGlmIChwYXJzZWQudHlwZSA9PT0gXCJsb2NhbFwiKSB7XG5wYWNrYWdlLW1hbmFnZXIudHM6MTIxNTogICBjb25zdCBhY3Rpb24gPSBhd2FpdCBvbk1pc3Npbmcoc291cmNlU3RyKTtcbnBhY2thZ2UtbWFuYWdlci50czoxMjE2OiAgIGlmIChhY3Rpb24gPT09IFwic2tpcFwiKSByZXR1cm4gZmFsc2U7XG5wYWNrYWdlLW1hbmFnZXIudHM6MTIxNzogaWYgKGFjdGlvbiA9PT0gXCJlcnJvclwiKSB0aHJvdyBuZXcgRXJyb3IoYE1pc3Npbmcgc291cmNlOiAke3NvdXJjZVN0cn1gKTtcbnBhY2thZ2UtbWFuYWdlci50czoxMjE4OiAgIGF3YWl0IHRoaXMuaW5zdGFsbFBhcnNlZFNvdXJjZShwYXJzZWQsIHNjb3BlKTtcbnBhY2thZ2UtbWFuYWdlci50czoxMjE5OiAgIHJldHVybiB0cnVlO1xucGFja2FnZS1tYW5hZ2VyLnRzOjEyNDk6ICAgXG5wYWNrYWdlLW1hbmFnZXIudHM6MTI1MDogICBwcml2YXRlIHJlc29sdmVMb2NhbEV4dGVuc2lvblNvdXJjZShcbnBhY2thZ2UtbWFuYWdlci50czoxMjUxOiBzb3VyY2U6IExvY2FsU291cmNlLFxucGFja2FnZS1tYW5hZ2VyLnRzOjEyNTI6ICAgYWNjdW11bGF0b3I6IFJlc291cmNlQWNjdW11bGF0b3IsXG5wYWNrYWdlLW1hbmFnZXIudHM6MTI1MzogICBmaWx0ZXI6IFBhY2thZ2VGaWx0ZXIgfCB1bmRlZmluZWQsXG5wYWNrYWdlLW1hbmFnZXIudHM6MTI5NDogICB9XG5wYWNrYWdlLW1hbmFnZXIudHM6MTI5NTogICBcbnBhY2thZ2UtbWFuYWdlci50czoxMjk2OiBwcml2YXRlIGdldFNvdXJjZU1hdGNoS2V5Rm9ySW5wdXQoc291cmNlOiBzdHJpbmcpOiBzdHJpbmcge1xucGFja2FnZS1tYW5hZ2VyLnRzOjEyOTc6ICAgY29uc3QgcGFyc2VkID0gdGhpcy5wYXJzZVNvdXJjZShzb3VyY2UpO1xucGFja2FnZS1tYW5hZ2VyLnRzOjEyOTg6ICAgaWYgKHBhcnNlZC50eXBlID09PSBcIm5wbVwiKSB7XG5wYWNrYWdlLW1hbmFnZXIudHM6MTMwNTogICB9XG5wYWNrYWdlLW1hbmFnZXIudHM6MTMwNjogICBcbnBhY2thZ2UtbWFuYWdlci50czoxMzA3OiBwcml2YXRlIGdldFNvdXJjZU1hdGNoS2V5Rm9yU2V0dGluZ3Moc291cmNlOiBzdHJpbmcsIHNjb3BlOiBTb3VyY2VTY29wZSk6IHN0cmluZyB7XG5wYWNrYWdlLW1hbmFnZXIudHM6MTMwODogICBjb25zdCBwYXJzZWQgPSB0aGlzLnBhcnNlU291cmNlKHNvdXJjZSk7XG5wYWNrYWdlLW1hbmFnZXIudHM6MTMwOTogICBpZiAocGFyc2VkLnR5cGUgPT09IFwibnBtXCIpIHtcbnBhY2thZ2UtbWFuYWdlci50czoxMzE3OiAgIH1cbnBhY2thZ2UtbWFuYWdlci50czoxMzE4OiAgIFxucGFja2FnZS1tYW5hZ2VyLnRzOjEzMTk6IHByaXZhdGUgYnVpbGROb01hdGNoaW5nUGFja2FnZU1lc3NhZ2Uoc291cmNlOiBzdHJpbmcsIGNvbmZpZ3VyZWRQYWNrYWdlczogUGFja2FnZVNvdXJjZVtdKTogc3RyaW5nIHtcbnBhY2thZ2UtbWFuYWdlci50czoxMzIwOiAgIGNvbnN0IHN1Z2dlc3Rpb24gPSB0aGlzLmZpbmRTdWdnZXN0ZWRDb25maWd1cmVkU291cmNlKHNvdXJjZSwgY29uZmlndXJlZFBhY2thZ2VzKTtcbnBhY2thZ2UtbWFuYWdlci50czoxMzIxOiAgIGlmICghc3VnZ2VzdGlvbikge1xucGFja2FnZS1tYW5hZ2VyLnRzOjEzMjU6ICAgfVxucGFja2FnZS1tYW5hZ2VyLnRzOjEzMjY6ICAgXG5wYWNrYWdlLW1hbmFnZXIudHM6MTMyNzogcHJpdmF0ZSBmaW5kU3VnZ2VzdGVkQ29uZmlndXJlZFNvdXJjZShzb3VyY2U6IHN0cmluZywgY29uZmlndXJlZFBhY2thZ2VzOiBQYWNrYWdlU291cmNlW10pOiBzdHJpbmcgfCB1bmRlZmluZWQge1xucGFja2FnZS1tYW5hZ2VyLnRzOjEzMjg6ICAgY29uc3QgdHJpbW1lZFNvdXJjZSA9IHNvdXJjZS50cmltKCk7XG5wYWNrYWdlLW1hbmFnZXIudHM6MTMyOTogICBjb25zdCBzdWdnZXN0aW9ucyA9IG5ldyBTZXQ8c3RyaW5nPigpO1xucGFja2FnZS1tYW5hZ2VyLnRzOjEzNTA6ICAgfVxucGFja2FnZS1tYW5hZ2VyLnRzOjEzNTE6ICAgXG5wYWNrYWdlLW1hbmFnZXIudHM6MTM1MjogcHJpdmF0ZSBwYWNrYWdlU291cmNlc01hdGNoKGV4aXN0aW5nOiBQYWNrYWdlU291cmNlLCBpbnB1dFNvdXJjZTogc3RyaW5nLCBzY29wZTogU291cmNlU2NvcGUpOiBib29sZWFuIHtcbnBhY2thZ2UtbWFuYWdlci50czoxMzUzOiAgIGNvbnN0IGxlZnQgPSB0aGlzLmdldFNvdXJjZU1hdGNoS2V5Rm9yU2V0dGluZ3ModGhpcy5nZXRQYWNrYWdlU291cmNlU3RyaW5nKGV4aXN0aW5nKSwgc2NvcGUpO1xucGFja2FnZS1tYW5hZ2VyLnRzOjEzNTQ6ICAgY29uc3QgcmlnaHQgPSB0aGlzLmdldFNvdXJjZU1hdGNoS2V5Rm9ySW5wdXQoaW5wdXRTb3VyY2UpO1xucGFja2FnZS1tYW5hZ2VyLnRzOjEzNTY6ICAgfVxucGFja2FnZS1tYW5hZ2VyLnRzOjEzNTc6ICAgXG5wYWNrYWdlLW1hbmFnZXIudHM6MTM1ODogcHJpdmF0ZSBub3JtYWxpemVQYWNrYWdlU291cmNlRm9yU2V0dGluZ3Moc291cmNlOiBzdHJpbmcsIHNjb3BlOiBTb3VyY2VTY29wZSk6IHN0cmluZyB7XG5wYWNrYWdlLW1hbmFnZXIudHM6MTM1OTogICBjb25zdCBwYXJzZWQgPSB0aGlzLnBhcnNlU291cmNlKHNvdXJjZSk7XG5wYWNrYWdlLW1hbmFnZXIudHM6MTM2MDogICBpZiAocGFyc2VkLnR5cGUgIT09IFwibG9jYWxcIikge1xucGFja2FnZS1tYW5hZ2VyLnRzOjEzNjc6ICAgfVxucGFja2FnZS1tYW5hZ2VyLnRzOjEzNjg6ICAgXG5wYWNrYWdlLW1hbmFnZXIudHM6MTM2OTogcHJpdmF0ZSBwYXJzZVNvdXJjZShzb3VyY2U6IHN0cmluZyk6IFBhcnNlZFNvdXJjZSB7XG5wYWNrYWdlLW1hbmFnZXIudHM6MTM3MDogICBpZiAoc291cmNlLnN0YXJ0c1dpdGgoXCJucG06XCIpKSB7XG5wYWNrYWdlLW1hbmFnZXIudHM6MTM3MTogICBjb25zdCBzcGVjID0gc291cmNlLnNsaWNlKFwibnBtOlwiLmxlbmd0aCkudHJpbSgpO1xucGFja2FnZS1tYW5hZ2VyLnRzOjEzOTI6ICAgfVxucGFja2FnZS1tYW5hZ2VyLnRzOjEzOTM6ICAgXG5wYWNrYWdlLW1hbmFnZXIudHM6MTM5NDogcHJpdmF0ZSBhc3luYyBpbnN0YWxsZWROcG1NYXRjaGVzUGlubmVkVmVyc2lvbihzb3VyY2U6IE5wbVNvdXJjZSwgaW5zdGFsbGVkUGF0aDogc3RyaW5nKTogUHJvbWlzZTxib29sZWFuPiB7XG5wYWNrYWdlLW1hbmFnZXIudHM6MTM5NTogICBjb25zdCBpbnN0YWxsZWRWZXJzaW9uID0gdGhpcy5nZXRJbnN0YWxsZWROcG1WZXJzaW9uKGluc3RhbGxlZFBhdGgpO1xucGFja2FnZS1tYW5hZ2VyLnRzOjEzOTY6ICAgaWYgKCFpbnN0YWxsZWRWZXJzaW9uKSB7XG5wYWNrYWdlLW1hbmFnZXIudHM6MTQwNjogICB9XG5wYWNrYWdlLW1hbmFnZXIudHM6MTQwNzogICBcbnBhY2thZ2UtbWFuYWdlci50czoxNDA4OiBwcml2YXRlIGFzeW5jIG5wbUhhc0F2YWlsYWJsZVVwZGF0ZShzb3VyY2U6IE5wbVNvdXJjZSwgaW5zdGFsbGVkUGF0aDogc3RyaW5nKTogUHJvbWlzZTxib29sZWFuPiB7XG5wYWNrYWdlLW1hbmFnZXIudHM6MTQwOTogICBpZiAoaXNPZmZsaW5lTW9kZUVuYWJsZWQoKSkge1xucGFja2FnZS1tYW5hZ2VyLnRzOjE0MTA6ICAgcmV0dXJuIGZhbHNlO1xucGFja2FnZS1tYW5hZ2VyLnRzOjE2MDM6ICAgKiBmb3IgdGhlIHNhbWUgcmVwb3NpdG9yeSBhcmUgdHJlYXRlZCBhcyBpZGVudGljYWwuXG5wYWNrYWdlLW1hbmFnZXIudHM6MTYwNDogICAqL1xucGFja2FnZS1tYW5hZ2VyLnRzOjE2MDU6IHByaXZhdGUgZ2V0UGFja2FnZUlkZW50aXR5KHNvdXJjZTogc3RyaW5nLCBzY29wZT86IFNvdXJjZVNjb3BlKTogc3RyaW5nIHtcbnBhY2thZ2UtbWFuYWdlci50czoxNjA2OiAgIGNvbnN0IHBhcnNlZCA9IHRoaXMucGFyc2VTb3VyY2Uoc291cmNlKTtcbnBhY2thZ2UtbWFuYWdlci50czoxNjA3OiAgIGlmIChwYXJzZWQudHlwZSA9PT0gXCJucG1cIikge1xucGFja2FnZS1tYW5hZ2VyLnRzOjE2ODY6ICAgfVxucGFja2FnZS1tYW5hZ2VyLnRzOjE2ODc6ICAgXG5wYWNrYWdlLW1hbmFnZXIudHM6MTY4ODogcHJpdmF0ZSBhc3luYyBpbnN0YWxsTnBtKHNvdXJjZTogTnBtU291cmNlLCBzY29wZTogU291cmNlU2NvcGUsIHRlbXBvcmFyeTogYm9vbGVhbik6IFByb21pc2U8dm9pZD4ge1xucGFja2FnZS1tYW5hZ2VyLnRzOjE2ODk6ICAgaWYgKHNjb3BlID09PSBcInVzZXJcIiAmJiAhdGVtcG9yYXJ5KSB7XG5wYWNrYWdlLW1hbmFnZXIudHM6MTY5MDogICBhd2FpdCB0aGlzLnJ1bk5wbUNvbW1hbmQoW1wiaW5zdGFsbFwiLCBcIi1nXCIsIHNvdXJjZS5zcGVjXSk7XG5wYWNrYWdlLW1hbmFnZXIudHM6MTY5NjogICB9XG5wYWNrYWdlLW1hbmFnZXIudHM6MTY5NzogICBcbnBhY2thZ2UtbWFuYWdlci50czoxNjk4OiBwcml2YXRlIGFzeW5jIHVuaW5zdGFsbE5wbShzb3VyY2U6IE5wbVNvdXJjZSwgc2NvcGU6IFNvdXJjZVNjb3BlKTogUHJvbWlzZTx2b2lkPiB7XG5wYWNrYWdlLW1hbmFnZXIudHM6MTY5OTogICBpZiAoc2NvcGUgPT09IFwidXNlclwiKSB7XG5wYWNrYWdlLW1hbmFnZXIudHM6MTcwMDogICBhd2FpdCB0aGlzLnJ1bk5wbUNvbW1hbmQoW1widW5pbnN0YWxsXCIsIFwiLWdcIiwgc291cmNlLm5hbWVdKTtcbnBhY2thZ2UtbWFuYWdlci50czoxNzA4OiAgIH1cbnBhY2thZ2UtbWFuYWdlci50czoxNzA5OiAgIFxucGFja2FnZS1tYW5hZ2VyLnRzOjE3MTA6IHByaXZhdGUgYXN5bmMgaW5zdGFsbEdpdChzb3VyY2U6IEdpdFNvdXJjZSwgc2NvcGU6IFNvdXJjZVNjb3BlKTogUHJvbWlzZTx2b2lkPiB7XG5wYWNrYWdlLW1hbmFnZXIudHM6MTcxMTogICBjb25zdCB0YXJnZXREaXIgPSB0aGlzLmdldEdpdEluc3RhbGxQYXRoKHNvdXJjZSwgc2NvcGUpO1xucGFja2FnZS1tYW5hZ2VyLnRzOjE3MTI6ICAgaWYgKGV4aXN0c1N5bmModGFyZ2V0RGlyKSkge1xucGFja2FnZS1tYW5hZ2VyLnRzOjE3Mjk6ICAgfVxucGFja2FnZS1tYW5hZ2VyLnRzOjE3MzA6ICAgXG5wYWNrYWdlLW1hbmFnZXIudHM6MTczMTogcHJpdmF0ZSBhc3luYyB1cGRhdGVHaXQoc291cmNlOiBHaXRTb3VyY2UsIHNjb3BlOiBTb3VyY2VTY29wZSk6IFByb21pc2U8dm9pZD4ge1xucGFja2FnZS1tYW5hZ2VyLnRzOjE3MzI6ICAgY29uc3QgdGFyZ2V0RGlyID0gdGhpcy5nZXRHaXRJbnN0YWxsUGF0aChzb3VyY2UsIHNjb3BlKTtcbnBhY2thZ2UtbWFuYWdlci50czoxNzMzOiAgIGlmICghZXhpc3RzU3luYyh0YXJnZXREaXIpKSB7XG5wYWNrYWdlLW1hbmFnZXIudHM6MTc2NDogICB9XG5wYWNrYWdlLW1hbmFnZXIudHM6MTc2NTogICBcbnBhY2thZ2UtbWFuYWdlci50czoxNzY2OiBwcml2YXRlIGFzeW5jIHJlZnJlc2hUZW1wb3JhcnlHaXRTb3VyY2Uoc291cmNlOiBHaXRTb3VyY2UsIHNvdXJjZVN0cjogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiB7XG5wYWNrYWdlLW1hbmFnZXIudHM6MTc2NzogICBpZiAoaXNPZmZsaW5lTW9kZUVuYWJsZWQoKSkge1xucGFja2FnZS1tYW5hZ2VyLnRzOjE3Njg6ICAgcmV0dXJuO1xucGFja2FnZS1tYW5hZ2VyLnRzOjE3Nzc6ICAgfVxucGFja2FnZS1tYW5hZ2VyLnRzOjE3Nzg6ICAgXG5wYWNrYWdlLW1hbmFnZXIudHM6MTc3OTogcHJpdmF0ZSBhc3luYyByZW1vdmVHaXQoc291cmNlOiBHaXRTb3VyY2UsIHNjb3BlOiBTb3VyY2VTY29wZSk6IFByb21pc2U8dm9pZD4ge1xucGFja2FnZS1tYW5hZ2VyLnRzOjE3ODA6ICAgY29uc3QgdGFyZ2V0RGlyID0gdGhpcy5nZXRHaXRJbnN0YWxsUGF0aChzb3VyY2UsIHNjb3BlKTtcbnBhY2thZ2UtbWFuYWdlci50czoxNzgxOiAgIGlmICghZXhpc3RzU3luYyh0YXJnZXREaXIpKSByZXR1cm47XG5wYWNrYWdlLW1hbmFnZXIudHM6MTg1NDogICB9XG5wYWNrYWdlLW1hbmFnZXIudHM6MTg1NTogICBcbnBhY2thZ2UtbWFuYWdlci50czoxODU2OiBwcml2YXRlIGdldE5wbUluc3RhbGxQYXRoKHNvdXJjZTogTnBtU291cmNlLCBzY29wZTogU291cmNlU2NvcGUpOiBzdHJpbmcge1xucGFja2FnZS1tYW5hZ2VyLnRzOjE4NTc6ICAgaWYgKHNjb3BlID09PSBcInRlbXBvcmFyeVwiKSB7XG5wYWNrYWdlLW1hbmFnZXIudHM6MTg1ODogICByZXR1cm4gam9pbih0aGlzLmdldFRlbXBvcmFyeURpcihcIm5wbVwiKSwgXCJub2RlX21vZHVsZXNcIiwgc291cmNlLm5hbWUpO1xucGFja2FnZS1tYW5hZ2VyLnRzOjE4NjQ6ICAgfVxucGFja2FnZS1tYW5hZ2VyLnRzOjE4NjU6ICAgXG5wYWNrYWdlLW1hbmFnZXIudHM6MTg2NjogcHJpdmF0ZSBnZXRHaXRJbnN0YWxsUGF0aChzb3VyY2U6IEdpdFNvdXJjZSwgc2NvcGU6IFNvdXJjZVNjb3BlKTogc3RyaW5nIHtcbnBhY2thZ2UtbWFuYWdlci50czoxODY3OiAgIGlmIChzY29wZSA9PT0gXCJ0ZW1wb3JhcnlcIikge1xucGFja2FnZS1tYW5hZ2VyLnRzOjE4Njg6ICAgcmV0dXJuIHRoaXMuZ2V0VGVtcG9yYXJ5RGlyKGBnaXQtJHtzb3VyY2UuaG9zdH1gLCBzb3VyY2UucGF0aCk7XG5wYWNrYWdlLW1hbmFnZXIudHM6MjEyNTogICApOiB2b2lkIHtcbnBhY2thZ2UtbWFuYWdlci50czoyMTI2OiAgIGNvbnN0IHVzZXJNZXRhZGF0YTogUGF0aE1ldGFkYXRhID0ge1xucGFja2FnZS1tYW5hZ2VyLnRzOjIxMjc6IHNvdXJjZTogXCJhdXRvXCIsXG5wYWNrYWdlLW1hbmFnZXIudHM6MjEyODogICBzY29wZTogXCJ1c2VyXCIsXG5wYWNrYWdlLW1hbmFnZXIudHM6MjEyOTogICBvcmlnaW46IFwidG9wLWxldmVsXCIsXG5wYWNrYWdlLW1hbmFnZXIudHM6MjEzMTogICB9O1xucGFja2FnZS1tYW5hZ2VyLnRzOjIxMzI6ICAgY29uc3QgcHJvamVjdE1ldGFkYXRhOiBQYXRoTWV0YWRhdGEgPSB7XG5wYWNrYWdlLW1hbmFnZXIudHM6MjEzMzogc291cmNlOiBcImF1dG9cIixcbnBhY2thZ2UtbWFuYWdlci50czoyMTM0OiAgIHNjb3BlOiBcInByb2plY3RcIixcbnBhY2thZ2UtbWFuYWdlci50czoyMTM1OiAgIG9yaWdpbjogXCJ0b3AtbGV2ZWxcIixcbnNvdXJjZS1pbmZvLnRzOjY6ICAgZXhwb3J0IGludGVyZmFjZSBTb3VyY2VJbmZvIHtcbnNvdXJjZS1pbmZvLnRzOjc6ICAgcGF0aDogc3RyaW5nO1xuc291cmNlLWluZm8udHM6ODogc291cmNlOiBzdHJpbmc7XG5zb3VyY2UtaW5mby50czo5OiAgIHNjb3BlOiBTb3VyY2VTY29wZTtcbnNvdXJjZS1pbmZvLnRzOjEwOiAgIG9yaWdpbjogU291cmNlT3JpZ2luO1xuc291cmNlLWluZm8udHM6MTU6ICAgcmV0dXJuIHtcbnNvdXJjZS1pbmZvLnRzOjE2OiAgIHBhdGgsXG5zb3VyY2UtaW5mby50czoxNzogc291cmNlOiBtZXRhZGF0YS5zb3VyY2UsXG5zb3VyY2UtaW5mby50czoxODogICBzY29wZTogbWV0YWRhdGEuc2NvcGUsXG5zb3VyY2UtaW5mby50czoxOTogICBvcmlnaW46IG1ldGFkYXRhLm9yaWdpbixcbnNvdXJjZS1pbmZvLnRzOjI1OiAgIHBhdGg6IHN0cmluZyxcbnNvdXJjZS1pbmZvLnRzOjI2OiAgIG9wdGlvbnM6IHtcbnNvdXJjZS1pbmZvLnRzOjI3OiBzb3VyY2U6IHN0cmluZztcbnNvdXJjZS1pbmZvLnRzOjI4OiAgIHNjb3BlPzogU291cmNlU2NvcGU7XG5zb3VyY2UtaW5mby50czoyOTogICBvcmlnaW4/OiBTb3VyY2VPcmlnaW47XG5zb3VyY2UtaW5mby50czozMzogICByZXR1cm4ge1xuc291cmNlLWluZm8udHM6MzQ6ICAgcGF0aCxcbnNvdXJjZS1pbmZvLnRzOjM1OiBzb3VyY2U6IG9wdGlvbnMuc291cmNlLFxuc291cmNlLWluZm8udHM6MzY6ICAgc2NvcGU6IG9wdGlvbnMuc2NvcGUgPz8gXCJ0ZW1wb3JhcnlcIixcbnNvdXJjZS1pbmZvLnRzOjM3OiAgIG9yaWdpbjogb3B0aW9ucy5vcmlnaW4gPz8gXCJ0b3AtbGV2ZWxcIixcbmV4dGVuc2lvbnMvcnVubmVyLnRzOjk5MjogICBcbmV4dGVuc2lvbnMvcnVubmVyLnRzOjk5MzogICAvKiogRW1pdCBpbnB1dCBldmVudC4gVHJhbnNmb3JtcyBjaGFpbiwgXCJoYW5kbGVkXCIgc2hvcnQtY2lyY3VpdHMuICovXG5leHRlbnNpb25zL3J1bm5lci50czo5OTQ6IGFzeW5jIGVtaXRJbnB1dCh0ZXh0OiBzdHJpbmcsIGltYWdlczogSW1hZ2VDb250ZW50W10gfCB1bmRlZmluZWQsIHNvdXJjZTogSW5wdXRTb3VyY2UpOiBQcm9taXNlPElucHV0RXZlbnRSZXN1bHQ+IHtcbmV4dGVuc2lvbnMvcnVubmVyLnRzOjk5NTogICBjb25zdCBjdHggPSB0aGlzLmNyZWF0ZUNvbnRleHQoKTtcbmV4dGVuc2lvbnMvcnVubmVyLnRzOjk5NjogICBsZXQgY3VycmVudFRleHQgPSB0ZXh0O1xuYXV0aC1zdG9yYWdlLnRzOjM0MjogICBnZXRBdXRoU3RhdHVzKHByb3ZpZGVyOiBzdHJpbmcpOiBBdXRoU3RhdHVzIHtcbmF1dGgtc3RvcmFnZS50czozNDM6ICAgaWYgKHRoaXMuZGF0YVtwcm92aWRlcl0pIHtcbmF1dGgtc3RvcmFnZS50czozNDQ6IHJldHVybiB7IGNvbmZpZ3VyZWQ6IHRydWUsIHNvdXJjZTogXCJzdG9yZWRcIiB9O1xuYXV0aC1zdG9yYWdlLnRzOjM0NTogICB9XG5hdXRoLXN0b3JhZ2UudHM6MzQ2OiAgIFxuYXV0aC1zdG9yYWdlLnRzOjM0NjogICBcbmF1dGgtc3RvcmFnZS50czozNDc6ICAgaWYgKHRoaXMucnVudGltZU92ZXJyaWRlcy5oYXMocHJvdmlkZXIpKSB7XG5hdXRoLXN0b3JhZ2UudHM6MzQ4OiByZXR1cm4geyBjb25maWd1cmVkOiBmYWxzZSwgc291cmNlOiBcInJ1bnRpbWVcIiwgbGFiZWw6IFwiLS1hcGkta2V5XCIgfTtcbmF1dGgtc3RvcmFnZS50czozNDk6ICAgfVxuYXV0aC1zdG9yYWdlLnRzOjM1MDogICBcbmF1dGgtc3RvcmFnZS50czozNTE6ICAgY29uc3QgZW52S2V5cyA9IGZpbmRFbnZLZXlzKHByb3ZpZGVyKTtcbmF1dGgtc3RvcmFnZS50czozNTI6ICAgaWYgKGVudktleXM/LlswXSkge1xuYXV0aC1zdG9yYWdlLnRzOjM1MzogcmV0dXJuIHsgY29uZmlndXJlZDogZmFsc2UsIHNvdXJjZTogXCJlbnZpcm9ubWVudFwiLCBsYWJlbDogZW52S2V5c1swXSB9O1xuYXV0aC1zdG9yYWdlLnRzOjM1NDogICB9XG5hdXRoLXN0b3JhZ2UudHM6MzU1OiAgIFxuYXV0aC1zdG9yYWdlLnRzOjM1NTogICBcbmF1dGgtc3RvcmFnZS50czozNTY6ICAgaWYgKHRoaXMuZmFsbGJhY2tSZXNvbHZlcj8uKHByb3ZpZGVyKSkge1xuYXV0aC1zdG9yYWdlLnRzOjM1NzogcmV0dXJuIHsgY29uZmlndXJlZDogZmFsc2UsIHNvdXJjZTogXCJmYWxsYmFja1wiLCBsYWJlbDogXCJjdXN0b20gcHJvdmlkZXIgY29uZmlnXCIgfTtcbmF1dGgtc3RvcmFnZS50czozNTg6ICAgfVxuYXV0aC1zdG9yYWdlLnRzOjM1OTogICBcbnJlc291cmNlLWxvYWRlci50czozNTI6ICAgY29uc3QgZW5hYmxlZFRoZW1lcyA9IGdldEVuYWJsZWRQYXRocyhyZXNvbHZlZFBhdGhzLnRoZW1lcyk7XG5yZXNvdXJjZS1sb2FkZXIudHM6MzUzOiAgIFxucmVzb3VyY2UtbG9hZGVyLnRzOjM1NDogY29uc3QgbWFwU2tpbGxQYXRoID0gKHJlc291cmNlOiB7IHBhdGg6IHN0cmluZzsgbWV0YWRhdGE6IFBhdGhNZXRhZGF0YSB9KTogc3RyaW5nID0+IHtcbnJlc291cmNlLWxvYWRlci50czozNTU6ICAgaWYgKHJlc291cmNlLm1ldGFkYXRhLnNvdXJjZSAhPT0gXCJhdXRvXCIgJiYgcmVzb3VyY2UubWV0YWRhdGEub3JpZ2luICE9PSBcInBhY2thZ2VcIikge1xucmVzb3VyY2UtbG9hZGVyLnRzOjM1NjogICByZXR1cm4gcmVzb3VyY2UucGF0aDtcbnJlc291cmNlLWxvYWRlci50czozNzk6ICAgZm9yIChjb25zdCByIG9mIGNsaUV4dGVuc2lvblBhdGhzLmV4dGVuc2lvbnMpIHtcbnJlc291cmNlLWxvYWRlci50czozODA6ICAgaWYgKCFtZXRhZGF0YUJ5UGF0aC5oYXMoci5wYXRoKSkge1xucmVzb3VyY2UtbG9hZGVyLnRzOjM4MTogbWV0YWRhdGFCeVBhdGguc2V0KHIucGF0aCwgeyBzb3VyY2U6IFwiY2xpXCIsIHNjb3BlOiBcInRlbXBvcmFyeVwiLCBvcmlnaW46IFwidG9wLWxldmVsXCIgfSk7XG5yZXNvdXJjZS1sb2FkZXIudHM6MzgyOiAgIH1cbnJlc291cmNlLWxvYWRlci50czozODM6ICAgfVxucmVzb3VyY2UtbG9hZGVyLnRzOjM4NDogICBmb3IgKGNvbnN0IHIgb2YgY2xpRXh0ZW5zaW9uUGF0aHMuc2tpbGxzKSB7XG5yZXNvdXJjZS1sb2FkZXIudHM6Mzg1OiAgIGlmICghbWV0YWRhdGFCeVBhdGguaGFzKHIucGF0aCkpIHtcbnJlc291cmNlLWxvYWRlci50czozODY6IG1ldGFkYXRhQnlQYXRoLnNldChyLnBhdGgsIHsgc291cmNlOiBcImNsaVwiLCBzY29wZTogXCJ0ZW1wb3JhcnlcIiwgb3JpZ2luOiBcInRvcC1sZXZlbFwiIH0pO1xucmVzb3VyY2UtbG9hZGVyLnRzOjM4NzogICB9XG5yZXNvdXJjZS1sb2FkZXIudHM6Mzg4OiAgIH1cbnJlc291cmNlLWxvYWRlci50czo2MTg6ICAgcmV0dXJuIHtcbnJlc291cmNlLWxvYWRlci50czo2MTk6ICAgcGF0aDogZmlsZVBhdGgsXG5yZXNvdXJjZS1sb2FkZXIudHM6NjIwOiBzb3VyY2U6IGZpbGVQYXRoLnNsaWNlKDEsIC0xKS5zcGxpdChcIjpcIilbMF0gfHwgXCJ0ZW1wb3JhcnlcIixcbnJlc291cmNlLWxvYWRlci50czo2MjE6ICAgc2NvcGU6IFwidGVtcG9yYXJ5XCIsXG5yZXNvdXJjZS1sb2FkZXIudHM6NjIyOiAgIG9yaWdpbjogXCJ0b3AtbGV2ZWxcIixcbnJlc291cmNlLWxvYWRlci50czo2NDA6ICAgZm9yIChjb25zdCByb290IG9mIGFnZW50Um9vdHMpIHtcbnJlc291cmNlLWxvYWRlci50czo2NDE6ICAgaWYgKHRoaXMuaXNVbmRlclBhdGgobm9ybWFsaXplZFBhdGgsIHJvb3QpKSB7XG5yZXNvdXJjZS1sb2FkZXIudHM6NjQyOiByZXR1cm4geyBwYXRoOiBmaWxlUGF0aCwgc291cmNlOiBcImxvY2FsXCIsIHNjb3BlOiBcInVzZXJcIiwgb3JpZ2luOiBcInRvcC1sZXZlbFwiLCBiYXNlRGlyOiByb290IH07XG5yZXNvdXJjZS1sb2FkZXIudHM6NjQzOiAgIH1cbnJlc291cmNlLWxvYWRlci50czo2NDQ6ICAgfVxucmVzb3VyY2UtbG9hZGVyLnRzOjY0NjogICBmb3IgKGNvbnN0IHJvb3Qgb2YgcHJvamVjdFJvb3RzKSB7XG5yZXNvdXJjZS1sb2FkZXIudHM6NjQ3OiAgIGlmICh0aGlzLmlzVW5kZXJQYXRoKG5vcm1hbGl6ZWRQYXRoLCByb290KSkge1xucmVzb3VyY2UtbG9hZGVyLnRzOjY0ODogcmV0dXJuIHsgcGF0aDogZmlsZVBhdGgsIHNvdXJjZTogXCJsb2NhbFwiLCBzY29wZTogXCJwcm9qZWN0XCIsIG9yaWdpbjogXCJ0b3AtbGV2ZWxcIiwgYmFzZURpcjogcm9vdCB9O1xucmVzb3VyY2UtbG9hZGVyLnRzOjY0OTogICB9XG5yZXNvdXJjZS1sb2FkZXIudHM6NjUwOiAgIH1cbnJlc291cmNlLWxvYWRlci50czo2NTI6ICAgcmV0dXJuIHtcbnJlc291cmNlLWxvYWRlci50czo2NTM6ICAgcGF0aDogZmlsZVBhdGgsXG5yZXNvdXJjZS1sb2FkZXIudHM6NjU0OiBzb3VyY2U6IFwibG9jYWxcIixcbnJlc291cmNlLWxvYWRlci50czo2NTU6ICAgc2NvcGU6IFwidGVtcG9yYXJ5XCIsXG5yZXNvdXJjZS1sb2FkZXIudHM6NjU2OiAgIG9yaWdpbjogXCJ0b3AtbGV2ZWxcIixcbnNraWxscy50czoxMzY6ICAgZGlyOiBzdHJpbmc7XG5za2lsbHMudHM6MTM3OiAgIC8qKiBTb3VyY2UgaWRlbnRpZmllciBmb3IgdGhlc2Ugc2tpbGxzICovXG5za2lsbHMudHM6MTM4OiBzb3VyY2U6IHN0cmluZztcbnNraWxscy50czoxMzk6ICAgfVxuc2tpbGxzLnRzOjE0MDogICBcbnNraWxscy50czoxMzk6ICAgfVxuc2tpbGxzLnRzOjE0MDogICBcbnNraWxscy50czoxNDE6IGZ1bmN0aW9uIGNyZWF0ZVNraWxsU291cmNlSW5mbyhmaWxlUGF0aDogc3RyaW5nLCBiYXNlRGlyOiBzdHJpbmcsIHNvdXJjZTogc3RyaW5nKTogU291cmNlSW5mbyB7XG5za2lsbHMudHM6MTQyOiAgIHN3aXRjaCAoc291cmNlKSB7XG5za2lsbHMudHM6MTQzOiAgIGNhc2UgXCJ1c2VyXCI6XG5za2lsbHMudHM6MTQzOiAgIGNhc2UgXCJ1c2VyXCI6XG5za2lsbHMudHM6MTQ0OiAgIHJldHVybiBjcmVhdGVTeW50aGV0aWNTb3VyY2VJbmZvKGZpbGVQYXRoLCB7XG5za2lsbHMudHM6MTQ1OiBzb3VyY2U6IFwibG9jYWxcIixcbnNraWxscy50czoxNDY6ICAgc2NvcGU6IFwidXNlclwiLFxuc2tpbGxzLnRzOjE0NzogICBiYXNlRGlyLFxuc2tpbGxzLnRzOjE0OTogICBjYXNlIFwicHJvamVjdFwiOlxuc2tpbGxzLnRzOjE1MDogICByZXR1cm4gY3JlYXRlU3ludGhldGljU291cmNlSW5mbyhmaWxlUGF0aCwge1xuc2tpbGxzLnRzOjE1MTogc291cmNlOiBcImxvY2FsXCIsXG5za2lsbHMudHM6MTUyOiAgIHNjb3BlOiBcInByb2plY3RcIixcbnNraWxscy50czoxNTM6ICAgYmFzZURpcixcbnNraWxscy50czoxNTU6ICAgY2FzZSBcInBhdGhcIjpcbnNraWxscy50czoxNTY6ICAgcmV0dXJuIGNyZWF0ZVN5bnRoZXRpY1NvdXJjZUluZm8oZmlsZVBhdGgsIHtcbnNraWxscy50czoxNTc6IHNvdXJjZTogXCJsb2NhbFwiLFxuc2tpbGxzLnRzOjE1ODogICBiYXNlRGlyLFxuc2tpbGxzLnRzOjE1OTogICB9KTtcbnNraWxscy50czoxNzg6ICAgZnVuY3Rpb24gbG9hZFNraWxsc0Zyb21EaXJJbnRlcm5hbChcbnNraWxscy50czoxNzk6ICAgZGlyOiBzdHJpbmcsXG5za2lsbHMudHM6MTgwOiBzb3VyY2U6IHN0cmluZyxcbnNraWxscy50czoxODE6ICAgaW5jbHVkZVJvb3RGaWxlczogYm9vbGVhbixcbnNraWxscy50czoxODI6ICAgaWdub3JlTWF0Y2hlcj86IElnbm9yZU1hdGNoZXIsXG5za2lsbHMudHM6MjgyOiAgIGZ1bmN0aW9uIGxvYWRTa2lsbEZyb21GaWxlKFxuc2tpbGxzLnRzOjI4MzogICBmaWxlUGF0aDogc3RyaW5nLFxuc2tpbGxzLnRzOjI4NDogc291cmNlOiBzdHJpbmcsXG5za2lsbHMudHM6Mjg1OiAgICk6IHsgc2tpbGw6IFNraWxsIHwgbnVsbDsgZGlhZ25vc3RpY3M6IFJlc291cmNlRGlhZ25vc3RpY1tdIH0ge1xuc2tpbGxzLnRzOjI4NjogICBjb25zdCBkaWFnbm9zdGljczogUmVzb3VyY2VEaWFnbm9zdGljW10gPSBbXTtcbmV4dGVuc2lvbnMvdHlwZXMudHM6NzE2OiAgIG1vZGVsOiBNb2RlbDxhbnk+O1xuZXh0ZW5zaW9ucy90eXBlcy50czo3MTc6ICAgcHJldmlvdXNNb2RlbDogTW9kZWw8YW55PiB8IHVuZGVmaW5lZDtcbmV4dGVuc2lvbnMvdHlwZXMudHM6NzE4OiBzb3VyY2U6IE1vZGVsU2VsZWN0U291cmNlO1xuZXh0ZW5zaW9ucy90eXBlcy50czo3MTk6ICAgfVxuZXh0ZW5zaW9ucy90eXBlcy50czo3MjA6ICAgXG5leHRlbnNpb25zL3R5cGVzLnRzOjc0OTogICBpbWFnZXM/OiBJbWFnZUNvbnRlbnRbXTtcbmV4dGVuc2lvbnMvdHlwZXMudHM6NzUwOiAgIC8qKiBXaGVyZSB0aGUgaW5wdXQgY2FtZSBmcm9tICovXG5leHRlbnNpb25zL3R5cGVzLnRzOjc1MTogc291cmNlOiBJbnB1dFNvdXJjZTtcbmV4dGVuc2lvbnMvdHlwZXMudHM6NzUyOiAgIH1cbmV4dGVuc2lvbnMvdHlwZXMudHM6NzUzOiAgICJ9XSwiZGV0YWlscyI6eyJtYXRjaENvdW50IjoxMDAsIm1hdGNoZXMiOlt7InBhdGgiOiJwcm9tcHQtdGVtcGxhdGVzLnRzIiwibGluZSI6MjI4LCJ0ZXh0IjoiICBpZiAoaXNVbmRlclBhdGgocmVzb2x2ZWRQYXRoLCBnbG9iYWxQcm9tcHRzRGlyKSkgeyJ9LHsicGF0aCI6InByb21wdC10ZW1wbGF0ZXMudHMiLCJsaW5lIjoyMjksInRleHQiOiIgIHJldHVybiBjcmVhdGVTeW50aGV0aWNTb3VyY2VJbmZvKHJlc29sdmVkUGF0aCwgeyJ9LHsicGF0aCI6InByb21wdC10ZW1wbGF0ZXMudHMiLCJsaW5lIjoyMzAsInRleHQiOiJzb3VyY2U6IFwibG9jYWxcIiwifSx7InBhdGgiOiJwcm9tcHQtdGVtcGxhdGVzLnRzIiwibGluZSI6MjMxLCJ0ZXh0IjoiICBzY29wZTogXCJ1c2VyXCIsIn0seyJwYXRoIjoicHJvbXB0LXRlbXBsYXRlcy50cyIsImxpbmUiOjIzMiwidGV4dCI6IiAgYmFzZURpcjogZ2xvYmFsUHJvbXB0c0RpciwifSx7InBhdGgiOiJwcm9tcHQtdGVtcGxhdGVzLnRzIiwibGluZSI6MjM1LCJ0ZXh0IjoiICBpZiAoaXNVbmRlclBhdGgocmVzb2x2ZWRQYXRoLCBwcm9qZWN0UHJvbXB0c0RpcikpIHsifSx7InBhdGgiOiJwcm9tcHQtdGVtcGxhdGVzLnRzIiwibGluZSI6MjM2LCJ0ZXh0IjoiICByZXR1cm4gY3JlYXRlU3ludGhldGljU291cmNlSW5mbyhyZXNvbHZlZFBhdGgsIHsifSx7InBhdGgiOiJwcm9tcHQtdGVtcGxhdGVzLnRzIiwibGluZSI6MjM3LCJ0ZXh0Ijoic291cmNlOiBcImxvY2FsXCIsIn0seyJwYXRoIjoicHJvbXB0LXRlbXBsYXRlcy50cyIsImxpbmUiOjIzOCwidGV4dCI6IiAgc2NvcGU6IFwicHJvamVjdFwiLCJ9LHsicGF0aCI6InByb21wdC10ZW1wbGF0ZXMudHMiLCJsaW5lIjoyMzksInRleHQiOiIgIGJhc2VEaXI6IHByb2plY3RQcm9tcHRzRGlyLCJ9LHsicGF0aCI6InByb21wdC10ZW1wbGF0ZXMudHMiLCJsaW5lIjoyNDEsInRleHQiOiIgIH0ifSx7InBhdGgiOiJwcm9tcHQtdGVtcGxhdGVzLnRzIiwibGluZSI6MjQyLCJ0ZXh0IjoiICByZXR1cm4gY3JlYXRlU3ludGhldGljU291cmNlSW5mbyhyZXNvbHZlZFBhdGgsIHsifSx7InBhdGgiOiJwcm9tcHQtdGVtcGxhdGVzLnRzIiwibGluZSI6MjQzLCJ0ZXh0Ijoic291cmNlOiBcImxvY2FsXCIsIn0seyJwYXRoIjoicHJvbXB0LXRlbXBsYXRlcy50cyIsImxpbmUiOjI0NCwidGV4dCI6IiAgYmFzZURpcjogc3RhdFN5bmMocmVzb2x2ZWRQYXRoKS5pc0RpcmVjdG9yeSgpID8gcmVzb2x2ZWRQYXRoIDogZGlybmFtZShyZXNvbHZlZFBhdGgpLCJ9LHsicGF0aCI6InByb21wdC10ZW1wbGF0ZXMudHMiLCJsaW5lIjoyNDUsInRleHQiOiIgIH0pOyJ9LHsicGF0aCI6ImFnZW50LXNlc3Npb24udHMiLCJsaW5lIjoxMzE5LCJ0ZXh0IjoiICBzdHJlYW1pbmdCZWhhdmlvcjogb3B0aW9ucz8uZGVsaXZlckFzLCJ9LHsicGF0aCI6ImFnZW50LXNlc3Npb24udHMiLCJsaW5lIjoxMzIwLCJ0ZXh0IjoiICBpbWFnZXMsIn0seyJwYXRoIjoiYWdlbnQtc2Vzc2lvbi50cyIsImxpbmUiOjEzMjEsInRleHQiOiJzb3VyY2U6IFwiZXh0ZW5zaW9uXCIsIn0seyJwYXRoIjoiYWdlbnQtc2Vzc2lvbi50cyIsImxpbmUiOjEzMjIsInRleHQiOiIgIH0pOyJ9LHsicGF0aCI6ImFnZW50LXNlc3Npb24udHMiLCJsaW5lIjoxMzIzLCJ0ZXh0IjoiICB9In0seyJwYXRoIjoiYWdlbnQtc2Vzc2lvbi50cyIsImxpbmUiOjEzNzMsInRleHQiOiIgIG5leHRNb2RlbDogTW9kZWw8YW55PiwifSx7InBhdGgiOiJhZ2VudC1zZXNzaW9uLnRzIiwibGluZSI6MTM3NCwidGV4dCI6IiAgcHJldmlvdXNNb2RlbDogTW9kZWw8YW55PiB8IHVuZGVmaW5lZCwifSx7InBhdGgiOiJhZ2VudC1zZXNzaW9uLnRzIiwibGluZSI6MTM3NSwidGV4dCI6InNvdXJjZTogXCJzZXRcIiB8IFwiY3ljbGVcIiB8IFwicmVzdG9yZVwiLCJ9LHsicGF0aCI6ImFnZW50LXNlc3Npb24udHMiLCJsaW5lIjoxMzc2LCJ0ZXh0IjoiICApOiBQcm9taXNlPHZvaWQ+IHsifSx7InBhdGgiOiJhZ2VudC1zZXNzaW9uLnRzIiwibGluZSI6MTM3NywidGV4dCI6IiAgaWYgKG1vZGVsc0FyZUVxdWFsKHByZXZpb3VzTW9kZWwsIG5leHRNb2RlbCkpIHJldHVybjsifSx7InBhdGgiOiJhZ2VudC1zZXNzaW9uLnRzIiwibGluZSI6MjA2OCwidGV4dCI6IiAgcHJpdmF0ZSBidWlsZEV4dGVuc2lvblJlc291cmNlUGF0aHMoZW50cmllczogQXJyYXk8eyBwYXRoOiBzdHJpbmc7IGV4dGVuc2lvblBhdGg6IHN0cmluZyB9Pik6IEFycmF5PHsifSx7InBhdGgiOiJhZ2VudC1zZXNzaW9uLnRzIiwibGluZSI6MjA2OSwidGV4dCI6IiAgcGF0aDogc3RyaW5nOyJ9LHsicGF0aCI6ImFnZW50LXNlc3Npb24udHMiLCJsaW5lIjoyMDcwLCJ0ZXh0IjoibWV0YWRhdGE6IHsgc291cmNlOiBzdHJpbmc7IHNjb3BlOiBcInRlbXBvcmFyeVwiOyBvcmlnaW46IFwidG9wLWxldmVsXCI7IGJhc2VEaXI/OiBzdHJpbmcgfTsifSx7InBhdGgiOiJhZ2VudC1zZXNzaW9uLnRzIiwibGluZSI6MjA3MSwidGV4dCI6IiAgfT4geyJ9LHsicGF0aCI6ImFnZW50LXNlc3Npb24udHMiLCJsaW5lIjoyMDcyLCJ0ZXh0IjoiICByZXR1cm4gZW50cmllcy5tYXAoKGVudHJ5KSA9PiB7In0seyJwYXRoIjoiYWdlbnQtc2Vzc2lvbi50cyIsImxpbmUiOjIxMjMsInRleHQiOiIgIG5hbWU6IGNvbW1hbmQuaW52b2NhdGlvbk5hbWUsIn0seyJwYXRoIjoiYWdlbnQtc2Vzc2lvbi50cyIsImxpbmUiOjIxMjQsInRleHQiOiIgIGRlc2NyaXB0aW9uOiBjb21tYW5kLmRlc2NyaXB0aW9uLCJ9LHsicGF0aCI6ImFnZW50LXNlc3Npb24udHMiLCJsaW5lIjoyMTI1LCJ0ZXh0Ijoic291cmNlOiBcImV4dGVuc2lvblwiLCJ9LHsicGF0aCI6ImFnZW50LXNlc3Npb24udHMiLCJsaW5lIjoyMTI2LCJ0ZXh0IjoiICBzb3VyY2VJbmZvOiBjb21tYW5kLnNvdXJjZUluZm8sIn0seyJwYXRoIjoiYWdlbnQtc2Vzc2lvbi50cyIsImxpbmUiOjIxMjcsInRleHQiOiIgIH0pKTsifSx7InBhdGgiOiJhZ2VudC1zZXNzaW9uLnRzIiwibGluZSI6MjEzMCwidGV4dCI6IiAgbmFtZTogdGVtcGxhdGUubmFtZSwifSx7InBhdGgiOiJhZ2VudC1zZXNzaW9uLnRzIiwibGluZSI6MjEzMSwidGV4dCI6IiAgZGVzY3JpcHRpb246IHRlbXBsYXRlLmRlc2NyaXB0aW9uLCJ9LHsicGF0aCI6ImFnZW50LXNlc3Npb24udHMiLCJsaW5lIjoyMTMyLCJ0ZXh0Ijoic291cmNlOiBcInByb21wdFwiLCJ9LHsicGF0aCI6ImFnZW50LXNlc3Npb24udHMiLCJsaW5lIjoyMTMzLCJ0ZXh0IjoiICBzb3VyY2VJbmZvOiB0ZW1wbGF0ZS5zb3VyY2VJbmZvLCJ9LHsicGF0aCI6ImFnZW50LXNlc3Npb24udHMiLCJsaW5lIjoyMTM0LCJ0ZXh0IjoiICB9KSk7In0seyJwYXRoIjoiYWdlbnQtc2Vzc2lvbi50cyIsImxpbmUiOjIxMzcsInRleHQiOiIgIG5hbWU6IGBza2lsbDoke3NraWxsLm5hbWV9YCwifSx7InBhdGgiOiJhZ2VudC1zZXNzaW9uLnRzIiwibGluZSI6MjEzOCwidGV4dCI6IiAgZGVzY3JpcHRpb246IHNraWxsLmRlc2NyaXB0aW9uLCJ9LHsicGF0aCI6ImFnZW50LXNlc3Npb24udHMiLCJsaW5lIjoyMTM5LCJ0ZXh0Ijoic291cmNlOiBcInNraWxsXCIsIn0seyJwYXRoIjoiYWdlbnQtc2Vzc2lvbi50cyIsImxpbmUiOjIxNDAsInRleHQiOiIgIHNvdXJjZUluZm86IHNraWxsLnNvdXJjZUluZm8sIn0seyJwYXRoIjoiYWdlbnQtc2Vzc2lvbi50cyIsImxpbmUiOjIxNDEsInRleHQiOiIgIH0pKTsifSx7InBhdGgiOiJhZ2VudC1zZXNzaW9uLnRzIiwibGluZSI6MjIzNiwidGV4dCI6IiAgLi4udGhpcy5fY3VzdG9tVG9vbHMubWFwKChkZWZpbml0aW9uKSA9PiAoeyJ9LHsicGF0aCI6ImFnZW50LXNlc3Npb24udHMiLCJsaW5lIjoyMjM3LCJ0ZXh0IjoiICBkZWZpbml0aW9uLCJ9LHsicGF0aCI6ImFnZW50LXNlc3Npb24udHMiLCJsaW5lIjoyMjM4LCJ0ZXh0Ijoic291cmNlSW5mbzogY3JlYXRlU3ludGhldGljU291cmNlSW5mbyhgPHNkazoke2RlZmluaXRpb24ubmFtZX0+YCwgeyBzb3VyY2U6IFwic2RrXCIgfSksIn0seyJwYXRoIjoiYWdlbnQtc2Vzc2lvbi50cyIsImxpbmUiOjIyMzksInRleHQiOiIgIH0pKSwifSx7InBhdGgiOiJhZ2VudC1zZXNzaW9uLnRzIiwibGluZSI6MjI0MCwidGV4dCI6IiAgXS5maWx0ZXIoKHRvb2wpID0+IGlzQWxsb3dlZFRvb2wodG9vbC5kZWZpbml0aW9uLm5hbWUpKTsifSx7InBhdGgiOiJhZ2VudC1zZXNzaW9uLnRzIiwibGluZSI6MjI0NiwidGV4dCI6IiAgeyJ9LHsicGF0aCI6ImFnZW50LXNlc3Npb24udHMiLCJsaW5lIjoyMjQ3LCJ0ZXh0IjoiICBkZWZpbml0aW9uLCJ9LHsicGF0aCI6ImFnZW50LXNlc3Npb24udHMiLCJsaW5lIjoyMjQ4LCJ0ZXh0Ijoic291cmNlSW5mbzogY3JlYXRlU3ludGhldGljU291cmNlSW5mbyhgPGJ1aWx0aW46JHtuYW1lfT5gLCB7IHNvdXJjZTogXCJidWlsdGluXCIgfSksIn0seyJwYXRoIjoiYWdlbnQtc2Vzc2lvbi50cyIsImxpbmUiOjIyNDksInRleHQiOiIgIH0sIn0seyJwYXRoIjoiYWdlbnQtc2Vzc2lvbi50cyIsImxpbmUiOjIyNTAsInRleHQiOiIgIF0pLCJ9LHsicGF0aCI6ImFnZW50LXNlc3Npb24udHMiLCJsaW5lIjoyMjgwLCJ0ZXh0IjoiICAubWFwKChkZWZpbml0aW9uKSA9PiAoeyJ9LHsicGF0aCI6ImFnZW50LXNlc3Npb24udHMiLCJsaW5lIjoyMjgxLCJ0ZXh0IjoiICBkZWZpbml0aW9uLCJ9LHsicGF0aCI6ImFnZW50LXNlc3Npb24udHMiLCJsaW5lIjoyMjgyLCJ0ZXh0Ijoic291cmNlSW5mbzogY3JlYXRlU3ludGhldGljU291cmNlSW5mbyhgPGJ1aWx0aW46JHtkZWZpbml0aW9uLm5hbWV9PmAsIHsgc291cmNlOiBcImJ1aWx0aW5cIiB9KSwifSx7InBhdGgiOiJhZ2VudC1zZXNzaW9uLnRzIiwibGluZSI6MjI4MywidGV4dCI6IiAgfSkpLCJ9LHsicGF0aCI6ImFnZW50LXNlc3Npb24udHMiLCJsaW5lIjoyMjg0LCJ0ZXh0IjoiICBydW5uZXIsIn0seyJwYXRoIjoic2V0dGluZ3MtbWFuYWdlci50cyIsImxpbmUiOjY3LCJ0ZXh0IjoiICB8IHN0cmluZyJ9LHsicGF0aCI6InNldHRpbmdzLW1hbmFnZXIudHMiLCJsaW5lIjo2OCwidGV4dCI6IiAgfCB7In0seyJwYXRoIjoic2V0dGluZ3MtbWFuYWdlci50cyIsImxpbmUiOjY5LCJ0ZXh0Ijoic291cmNlOiBzdHJpbmc7In0seyJwYXRoIjoic2V0dGluZ3MtbWFuYWdlci50cyIsImxpbmUiOjcwLCJ0ZXh0IjoiICBleHRlbnNpb25zPzogc3RyaW5nW107In0seyJwYXRoIjoic2V0dGluZ3MtbWFuYWdlci50cyIsImxpbmUiOjcxLCJ0ZXh0IjoiICBza2lsbHM/OiBzdHJpbmdbXTsifSx7InBhdGgiOiJzZXR0aW5ncy1tYW5hZ2VyLnRzIiwibGluZSI6NDgzLCJ0ZXh0IjoiICB9In0seyJwYXRoIjoic2V0dGluZ3MtbWFuYWdlci50cyIsImxpbmUiOjQ4NCwidGV4dCI6IiAgIn0seyJwYXRoIjoic2V0dGluZ3MtbWFuYWdlci50cyIsImxpbmUiOjQ4NSwidGV4dCI6InByaXZhdGUgY2xvbmVNb2RpZmllZE5lc3RlZEZpZWxkcyhzb3VyY2U6IE1hcDxrZXlvZiBTZXR0aW5ncywgU2V0PHN0cmluZz4+KTogTWFwPGtleW9mIFNldHRpbmdzLCBTZXQ8c3RyaW5nPj4geyJ9LHsicGF0aCI6InNldHRpbmdzLW1hbmFnZXIudHMiLCJsaW5lIjo0ODYsInRleHQiOiIgIGNvbnN0IHNuYXBzaG90ID0gbmV3IE1hcDxrZXlvZiBTZXR0aW5ncywgU2V0PHN0cmluZz4+KCk7In0seyJwYXRoIjoic2V0dGluZ3MtbWFuYWdlci50cyIsImxpbmUiOjQ4NywidGV4dCI6IiAgZm9yIChjb25zdCBba2V5LCB2YWx1ZV0gb2Ygc291cmNlLmVudHJpZXMoKSkgeyJ9LHsicGF0aCI6Im1vZGVsLXJlZ2lzdHJ5LnRzIiwibGluZSI6NzIwLCJ0ZXh0IjoiICAifSx7InBhdGgiOiJtb2RlbC1yZWdpc3RyeS50cyIsImxpbmUiOjcyMSwidGV4dCI6IiAgaWYgKHByb3ZpZGVyQXBpS2V5LnN0YXJ0c1dpdGgoXCIhXCIpKSB7In0seyJwYXRoIjoibW9kZWwtcmVnaXN0cnkudHMiLCJsaW5lIjo3MjIsInRleHQiOiJyZXR1cm4geyBjb25maWd1cmVkOiB0cnVlLCBzb3VyY2U6IFwibW9kZWxzX2pzb25fY29tbWFuZFwiIH07In0seyJwYXRoIjoibW9kZWwtcmVnaXN0cnkudHMiLCJsaW5lIjo3MjMsInRleHQiOiIgIH0ifSx7InBhdGgiOiJtb2RlbC1yZWdpc3RyeS50cyIsImxpbmUiOjcyNCwidGV4dCI6IiAgIn0seyJwYXRoIjoibW9kZWwtcmVnaXN0cnkudHMiLCJsaW5lIjo3MjQsInRleHQiOiIgICJ9LHsicGF0aCI6Im1vZGVsLXJlZ2lzdHJ5LnRzIiwibGluZSI6NzI1LCJ0ZXh0IjoiICBpZiAocHJvY2Vzcy5lbnZbcHJvdmlkZXJBcGlLZXldKSB7In0seyJwYXRoIjoibW9kZWwtcmVnaXN0cnkudHMiLCJsaW5lIjo3MjYsInRleHQiOiJyZXR1cm4geyBjb25maWd1cmVkOiB0cnVlLCBzb3VyY2U6IFwiZW52aXJvbm1lbnRcIiwgbGFiZWw6IHByb3ZpZGVyQXBpS2V5IH07In0seyJwYXRoIjoibW9kZWwtcmVnaXN0cnkudHMiLCJsaW5lIjo3MjcsInRleHQiOiIgIH0ifSx7InBhdGgiOiJtb2RlbC1yZWdpc3RyeS50cyIsImxpbmUiOjcyOCwidGV4dCI6IiAgIn0seyJwYXRoIjoibW9kZWwtcmVnaXN0cnkudHMiLCJsaW5lIjo3MjcsInRleHQiOiIgIH0ifSx7InBhdGgiOiJtb2RlbC1yZWdpc3RyeS50cyIsImxpbmUiOjcyOCwidGV4dCI6IiAgIn0seyJwYXRoIjoibW9kZWwtcmVnaXN0cnkudHMiLCJsaW5lIjo3MjksInRleHQiOiJyZXR1cm4geyBjb25maWd1cmVkOiB0cnVlLCBzb3VyY2U6IFwibW9kZWxzX2pzb25fa2V5XCIgfTsifSx7InBhdGgiOiJtb2RlbC1yZWdpc3RyeS50cyIsImxpbmUiOjczMCwidGV4dCI6IiAgfSJ9LHsicGF0aCI6Im1vZGVsLXJlZ2lzdHJ5LnRzIiwibGluZSI6NzMxLCJ0ZXh0IjoiICAifSx7InBhdGgiOiJzbGFzaC1jb21tYW5kcy50cyIsImxpbmUiOjcsInRleHQiOiIgIG5hbWU6IHN0cmluZzsifSx7InBhdGgiOiJzbGFzaC1jb21tYW5kcy50cyIsImxpbmUiOjgsInRleHQiOiIgIGRlc2NyaXB0aW9uPzogc3RyaW5nOyJ9LHsicGF0aCI6InNsYXNoLWNvbW1hbmRzLnRzIiwibGluZSI6OSwidGV4dCI6InNvdXJjZTogU2xhc2hDb21tYW5kU291cmNlOyJ9LHsicGF0aCI6InNsYXNoLWNvbW1hbmRzLnRzIiwibGluZSI6MTAsInRleHQiOiIgIHNvdXJjZUluZm86IFNvdXJjZUluZm87In0seyJwYXRoIjoic2xhc2gtY29tbWFuZHMudHMiLCJsaW5lIjoxMSwidGV4dCI6IiAgfSJ9LHsicGF0aCI6InBhY2thZ2UtbWFuYWdlci50cyIsImxpbmUiOjQ1LCJ0ZXh0IjoiICAifSx7InBhdGgiOiJwYWNrYWdlLW1hbmFnZXIudHMiLCJsaW5lIjo0NiwidGV4dCI6IiAgZXhwb3J0IGludGVyZmFjZSBQYXRoTWV0YWRhdGEgeyJ9LHsicGF0aCI6InBhY2thZ2UtbWFuYWdlci50cyIsImxpbmUiOjQ3LCJ0ZXh0Ijoic291cmNlOiBzdHJpbmc7In0seyJwYXRoIjoicGFja2FnZS1tYW5hZ2VyLnRzIiwibGluZSI6NDgsInRleHQiOiIgIHNjb3BlOiBTb3VyY2VTY29wZTsifSx7InBhdGgiOiJwYWNrYWdlLW1hbmFnZXIudHMiLCJsaW5lIjo0OSwidGV4dCI6IiAgb3JpZ2luOiBcInBhY2thZ2VcIiB8IFwidG9wLWxldmVsXCI7In0seyJwYXRoIjoicGFja2FnZS1tYW5hZ2VyLnRzIiwibGluZSI6NjksInRleHQiOiIgIHR5cGU6IFwic3RhcnRcIiB8IFwicHJvZ3Jlc3NcIiB8IFwiY29tcGxldGVcIiB8IFwiZXJyb3JcIjsifSx7InBhdGgiOiJwYWNrYWdlLW1hbmFnZXIudHMiLCJsaW5lIjo3MCwidGV4dCI6IiAgYWN0aW9uOiBcImluc3RhbGxcIiB8IFwicmVtb3ZlXCIgfCBcInVwZGF0ZVwiIHwgXCJjbG9uZVwiIHwgXCJwdWxsXCI7In0seyJwYXRoIjoicGFja2FnZS1tYW5hZ2VyLnRzIiwibGluZSI6NzEsInRleHQiOiJzb3VyY2U6IHN0cmluZzsifSx7InBhdGgiOiJwYWNrYWdlLW1hbmFnZXIudHMiLCJsaW5lIjo3MiwidGV4dCI6IiAgbWVzc2FnZT86IHN0cmluZzsifSx7InBhdGgiOiJwYWNrYWdlLW1hbmFnZXIudHMiLCJsaW5lIjo3MywidGV4dCI6IiAgfSJ9LHsicGF0aCI6InBhY2thZ2UtbWFuYWdlci50cyIsImxpbmUiOjc2LCJ0ZXh0IjoiICAifSx7InBhdGgiOiJwYWNrYWdlLW1hbmFnZXIudHMiLCJsaW5lIjo3NywidGV4dCI6IiAgZXhwb3J0IGludGVyZmFjZSBQYWNrYWdlVXBkYXRlIHsifSx7InBhdGgiOiJwYWNrYWdlLW1hbmFnZXIudHMiLCJsaW5lIjo3OCwidGV4dCI6InNvdXJjZTogc3RyaW5nOyJ9LHsicGF0aCI6InBhY2thZ2UtbWFuYWdlci50cyIsImxpbmUiOjc5LCJ0ZXh0IjoiICBkaXNwbGF5TmFtZTogc3RyaW5nOyJ9LHsicGF0aCI6InBhY2thZ2UtbWFuYWdlci50cyIsImxpbmUiOjgwLCJ0ZXh0IjoiICB0eXBlOiBcIm5wbVwiIHwgXCJnaXRcIjsifSx7InBhdGgiOiJwYWNrYWdlLW1hbmFnZXIudHMiLCJsaW5lIjo4MywidGV4dCI6IiAgIn0seyJwYXRoIjoicGFja2FnZS1tYW5hZ2VyLnRzIiwibGluZSI6ODQsInRleHQiOiIgIGV4cG9ydCBpbnRlcmZhY2UgQ29uZmlndXJlZFBhY2thZ2UgeyJ9LHsicGF0aCI6InBhY2thZ2UtbWFuYWdlci50cyIsImxpbmUiOjg1LCJ0ZXh0Ijoic291cmNlOiBzdHJpbmc7In0seyJwYXRoIjoicGFja2FnZS1tYW5hZ2VyLnRzIiwibGluZSI6ODYsInRleHQiOiIgIHNjb3BlOiBcInVzZXJcIiB8IFwicHJvamVjdFwiOyJ9LHsicGF0aCI6InBhY2thZ2UtbWFuYWdlci50cyIsImxpbmUiOjg3LCJ0ZXh0IjoiICBmaWx0ZXJlZDogYm9vbGVhbjsifSx7InBhdGgiOiJwYWNrYWdlLW1hbmFnZXIudHMiLCJsaW5lIjo5MCwidGV4dCI6IiAgIn0seyJwYXRoIjoicGFja2FnZS1tYW5hZ2VyLnRzIiwibGluZSI6OTEsInRleHQiOiIgIGV4cG9ydCBpbnRlcmZhY2UgUGFja2FnZU1hbmFnZXIgeyJ9LHsicGF0aCI6InBhY2thZ2UtbWFuYWdlci50cyIsImxpbmUiOjkyLCJ0ZXh0IjoicmVzb2x2ZShvbk1pc3Npbmc/OiAoc291cmNlOiBzdHJpbmcpID0+IFByb21pc2U8TWlzc2luZ1NvdXJjZUFjdGlvbj4pOiBQcm9taXNlPFJlc29sdmVkUGF0aHM+OyJ9LHsicGF0aCI6InBhY2thZ2UtbWFuYWdlci50cyIsImxpbmUiOjkzLCJ0ZXh0IjoiICBpbnN0YWxsKHNvdXJjZTogc3RyaW5nLCBvcHRpb25zPzogeyBsb2NhbD86IGJvb2xlYW4gfSk6IFByb21pc2U8dm9pZD47In0seyJwYXRoIjoicGFja2FnZS1tYW5hZ2VyLnRzIiwibGluZSI6OTQsInRleHQiOiIgIGluc3RhbGxBbmRQZXJzaXN0KHNvdXJjZTogc3RyaW5nLCBvcHRpb25zPzogeyBsb2NhbD86IGJvb2xlYW4gfSk6IFByb21pc2U8dm9pZD47In0seyJwYXRoIjoicGFja2FnZS1tYW5hZ2VyLnRzIiwibGluZSI6OTEsInRleHQiOiIgIGV4cG9ydCBpbnRlcmZhY2UgUGFja2FnZU1hbmFnZXIgeyJ9LHsicGF0aCI6InBhY2thZ2UtbWFuYWdlci50cyIsImxpbmUiOjkyLCJ0ZXh0IjoiICByZXNvbHZlKG9uTWlzc2luZz86IChzb3VyY2U6IHN0cmluZykgPT4gUHJvbWlzZTxNaXNzaW5nU291cmNlQWN0aW9uPik6IFByb21pc2U8UmVzb2x2ZWRQYXRocz47In0seyJwYXRoIjoicGFja2FnZS1tYW5hZ2VyLnRzIiwibGluZSI6OTMsInRleHQiOiJpbnN0YWxsKHNvdXJjZTogc3RyaW5nLCBvcHRpb25zPzogeyBsb2NhbD86IGJvb2xlYW4gfSk6IFByb21pc2U8dm9pZD47In0seyJwYXRoIjoicGFja2FnZS1tYW5hZ2VyLnRzIiwibGluZSI6OTQsInRleHQiOiIgIGluc3RhbGxBbmRQZXJzaXN0KHNvdXJjZTogc3RyaW5nLCBvcHRpb25zPzogeyBsb2NhbD86IGJvb2xlYW4gfSk6IFByb21pc2U8dm9pZD47In0seyJwYXRoIjoicGFja2FnZS1tYW5hZ2VyLnRzIiwibGluZSI6OTUsInRleHQiOiIgIHJlbW92ZShzb3VyY2U6IHN0cmluZywgb3B0aW9ucz86IHsgbG9jYWw/OiBib29sZWFuIH0pOiBQcm9taXNlPHZvaWQ+OyJ9LHsicGF0aCI6InBhY2thZ2UtbWFuYWdlci50cyIsImxpbmUiOjkyLCJ0ZXh0IjoiICByZXNvbHZlKG9uTWlzc2luZz86IChzb3VyY2U6IHN0cmluZykgPT4gUHJvbWlzZTxNaXNzaW5nU291cmNlQWN0aW9uPik6IFByb21pc2U8UmVzb2x2ZWRQYXRocz47In0seyJwYXRoIjoicGFja2FnZS1tYW5hZ2VyLnRzIiwibGluZSI6OTMsInRleHQiOiIgIGluc3RhbGwoc291cmNlOiBzdHJpbmcsIG9wdGlvbnM/OiB7IGxvY2FsPzogYm9vbGVhbiB9KTogUHJvbWlzZTx2b2lkPjsifSx7InBhdGgiOiJwYWNrYWdlLW1hbmFnZXIudHMiLCJsaW5lIjo5NCwidGV4dCI6Imluc3RhbGxBbmRQZXJzaXN0KHNvdXJjZTogc3RyaW5nLCBvcHRpb25zPzogeyBsb2NhbD86IGJvb2xlYW4gfSk6IFByb21pc2U8dm9pZD47In0seyJwYXRoIjoicGFja2FnZS1tYW5hZ2VyLnRzIiwibGluZSI6OTUsInRleHQiOiIgIHJlbW92ZShzb3VyY2U6IHN0cmluZywgb3B0aW9ucz86IHsgbG9jYWw/OiBib29sZWFuIH0pOiBQcm9taXNlPHZvaWQ+OyJ9LHsicGF0aCI6InBhY2thZ2UtbWFuYWdlci50cyIsImxpbmUiOjk2LCJ0ZXh0IjoiICByZW1vdmVBbmRQZXJzaXN0KHNvdXJjZTogc3RyaW5nLCBvcHRpb25zPzogeyBsb2NhbD86IGJvb2xlYW4gfSk6IFByb21pc2U8Ym9vbGVhbj47In0seyJwYXRoIjoicGFja2FnZS1tYW5hZ2VyLnRzIiwibGluZSI6OTMsInRleHQiOiIgIGluc3RhbGwoc291cmNlOiBzdHJpbmcsIG9wdGlvbnM/OiB7IGxvY2FsPzogYm9vbGVhbiB9KTogUHJvbWlzZTx2b2lkPjsifSx7InBhdGgiOiJwYWNrYWdlLW1hbmFnZXIudHMiLCJsaW5lIjo5NCwidGV4dCI6IiAgaW5zdGFsbEFuZFBlcnNpc3Qoc291cmNlOiBzdHJpbmcsIG9wdGlvbnM/OiB7IGxvY2FsPzogYm9vbGVhbiB9KTogUHJvbWlzZTx2b2lkPjsifSx7InBhdGgiOiJwYWNrYWdlLW1hbmFnZXIudHMiLCJsaW5lIjo5NSwidGV4dCI6InJlbW92ZShzb3VyY2U6IHN0cmluZywgb3B0aW9ucz86IHsgbG9jYWw/OiBib29sZWFuIH0pOiBQcm9taXNlPHZvaWQ+OyJ9LHsicGF0aCI6InBhY2thZ2UtbWFuYWdlci50cyIsImxpbmUiOjk2LCJ0ZXh0IjoiICByZW1vdmVBbmRQZXJzaXN0KHNvdXJjZTogc3RyaW5nLCBvcHRpb25zPzogeyBsb2NhbD86IGJvb2xlYW4gfSk6IFByb21pc2U8Ym9vbGVhbj47In0seyJwYXRoIjoicGFja2FnZS1tYW5hZ2VyLnRzIiwibGluZSI6OTcsInRleHQiOiIgIHVwZGF0ZShzb3VyY2U/OiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+OyJ9LHsicGF0aCI6InBhY2thZ2UtbWFuYWdlci50cyIsImxpbmUiOjk0LCJ0ZXh0IjoiICBpbnN0YWxsQW5kUGVyc2lzdChzb3VyY2U6IHN0cmluZywgb3B0aW9ucz86IHsgbG9jYWw/OiBib29sZWFuIH0pOiBQcm9taXNlPHZvaWQ+OyJ9LHsicGF0aCI6InBhY2thZ2UtbWFuYWdlci50cyIsImxpbmUiOjk1LCJ0ZXh0IjoiICByZW1vdmUoc291cmNlOiBzdHJpbmcsIG9wdGlvbnM/OiB7IGxvY2FsPzogYm9vbGVhbiB9KTogUHJvbWlzZTx2b2lkPjsifSx7InBhdGgiOiJwYWNrYWdlLW1hbmFnZXIudHMiLCJsaW5lIjo5NiwidGV4dCI6InJlbW92ZUFuZFBlcnNpc3Qoc291cmNlOiBzdHJpbmcsIG9wdGlvbnM/OiB7IGxvY2FsPzogYm9vbGVhbiB9KTogUHJvbWlzZTxib29sZWFuPjsifSx7InBhdGgiOiJwYWNrYWdlLW1hbmFnZXIudHMiLCJsaW5lIjo5NywidGV4dCI6IiAgdXBkYXRlKHNvdXJjZT86IHN0cmluZyk6IFByb21pc2U8dm9pZD47In0seyJwYXRoIjoicGFja2FnZS1tYW5hZ2VyLnRzIiwibGluZSI6OTgsInRleHQiOiIgIGxpc3RDb25maWd1cmVkUGFja2FnZXMoKTogQ29uZmlndXJlZFBhY2thZ2VbXTsifSx7InBhdGgiOiJwYWNrYWdlLW1hbmFnZXIudHMiLCJsaW5lIjoxMDEsInRleHQiOiIgIG9wdGlvbnM/OiB7IGxvY2FsPzogYm9vbGVhbjsgdGVtcG9yYXJ5PzogYm9vbGVhbiB9LCJ9LHsicGF0aCI6InBhY2thZ2UtbWFuYWdlci50cyIsImxpbmUiOjEwMiwidGV4dCI6IiAgKTogUHJvbWlzZTxSZXNvbHZlZFBhdGhzPjsifSx7InBhdGgiOiJwYWNrYWdlLW1hbmFnZXIudHMiLCJsaW5lIjoxMDMsInRleHQiOiJhZGRTb3VyY2VUb1NldHRpbmdzKHNvdXJjZTogc3RyaW5nLCBvcHRpb25zPzogeyBsb2NhbD86IGJvb2xlYW4gfSk6IGJvb2xlYW47In0seyJwYXRoIjoicGFja2FnZS1tYW5hZ2VyLnRzIiwibGluZSI6MTA0LCJ0ZXh0IjoiICByZW1vdmVTb3VyY2VGcm9tU2V0dGluZ3Moc291cmNlOiBzdHJpbmcsIG9wdGlvbnM/OiB7IGxvY2FsPzogYm9vbGVhbiB9KTogYm9vbGVhbjsifSx7InBhdGgiOiJwYWNrYWdlLW1hbmFnZXIudHMiLCJsaW5lIjoxMDUsInRleHQiOiIgIHNldFByb2dyZXNzQ2FsbGJhY2soY2FsbGJhY2s6IFByb2dyZXNzQ2FsbGJhY2sgfCB1bmRlZmluZWQpOiB2b2lkOyJ9LHsicGF0aCI6InBhY2thZ2UtbWFuYWdlci50cyIsImxpbmUiOjEwMiwidGV4dCI6IiAgKTogUHJvbWlzZTxSZXNvbHZlZFBhdGhzPjsifSx7InBhdGgiOiJwYWNrYWdlLW1hbmFnZXIudHMiLCJsaW5lIjoxMDMsInRleHQiOiIgIGFkZFNvdXJjZVRvU2V0dGluZ3Moc291cmNlOiBzdHJpbmcsIG9wdGlvbnM/OiB7IGxvY2FsPzogYm9vbGVhbiB9KTogYm9vbGVhbjsifSx7InBhdGgiOiJwYWNrYWdlLW1hbmFnZXIudHMiLCJsaW5lIjoxMDQsInRleHQiOiJyZW1vdmVTb3VyY2VGcm9tU2V0dGluZ3Moc291cmNlOiBzdHJpbmcsIG9wdGlvbnM/OiB7IGxvY2FsPzogYm9vbGVhbiB9KTogYm9vbGVhbjsifSx7InBhdGgiOiJwYWNrYWdlLW1hbmFnZXIudHMiLCJsaW5lIjoxMDUsInRleHQiOiIgIHNldFByb2dyZXNzQ2FsbGJhY2soY2FsbGJhY2s6IFByb2dyZXNzQ2FsbGJhY2sgfCB1bmRlZmluZWQpOiB2b2lkOyJ9LHsicGF0aCI6InBhY2thZ2UtbWFuYWdlci50cyIsImxpbmUiOjEwNiwidGV4dCI6IiAgZ2V0SW5zdGFsbGVkUGF0aChzb3VyY2U6IHN0cmluZywgc2NvcGU6IFwidXNlclwiIHwgXCJwcm9qZWN0XCIpOiBzdHJpbmcgfCB1bmRlZmluZWQ7In0seyJwYXRoIjoicGFja2FnZS1tYW5hZ2VyLnRzIiwibGluZSI6MTA0LCJ0ZXh0IjoiICByZW1vdmVTb3VyY2VGcm9tU2V0dGluZ3Moc291cmNlOiBzdHJpbmcsIG9wdGlvbnM/OiB7IGxvY2FsPzogYm9vbGVhbiB9KTogYm9vbGVhbjsifSx7InBhdGgiOiJwYWNrYWdlLW1hbmFnZXIudHMiLCJsaW5lIjoxMDUsInRleHQiOiIgIHNldFByb2dyZXNzQ2FsbGJhY2soY2FsbGJhY2s6IFByb2dyZXNzQ2FsbGJhY2sgfCB1bmRlZmluZWQpOiB2b2lkOyJ9LHsicGF0aCI6InBhY2thZ2UtbWFuYWdlci50cyIsImxpbmUiOjEwNiwidGV4dCI6ImdldEluc3RhbGxlZFBhdGgoc291cmNlOiBzdHJpbmcsIHNjb3BlOiBcInVzZXJcIiB8IFwicHJvamVjdFwiKTogc3RyaW5nIHwgdW5kZWZpbmVkOyJ9LHsicGF0aCI6InBhY2thZ2UtbWFuYWdlci50cyIsImxpbmUiOjEwNywidGV4dCI6IiAgfSJ9LHsicGF0aCI6InBhY2thZ2UtbWFuYWdlci50cyIsImxpbmUiOjEwOCwidGV4dCI6IiAgIn0seyJwYXRoIjoicGFja2FnZS1tYW5hZ2VyLnRzIiwibGluZSI6MTMyLCJ0ZXh0IjoiICAifSx7InBhdGgiOiJwYWNrYWdlLW1hbmFnZXIudHMiLCJsaW5lIjoxMzMsInRleHQiOiIgIGludGVyZmFjZSBDb25maWd1cmVkVXBkYXRlU291cmNlIHsifSx7InBhdGgiOiJwYWNrYWdlLW1hbmFnZXIudHMiLCJsaW5lIjoxMzQsInRleHQiOiJzb3VyY2U6IHN0cmluZzsifSx7InBhdGgiOiJwYWNrYWdlLW1hbmFnZXIudHMiLCJsaW5lIjoxMzUsInRleHQiOiIgIHNjb3BlOiBJbnN0YWxsZWRTb3VyY2VTY29wZTsifSx7InBhdGgiOiJwYWNrYWdlLW1hbmFnZXIudHMiLCJsaW5lIjoxMzYsInRleHQiOiIgIH0ifSx7InBhdGgiOiJwYWNrYWdlLW1hbmFnZXIudHMiLCJsaW5lIjoxNjQsInRleHQiOiIgICoifSx7InBhdGgiOiJwYWNrYWdlLW1hbmFnZXIudHMiLCJsaW5lIjoxNjUsInRleHQiOiIgICogUHJlY2VkZW5jZSAoaGlnaGVzdCB0byBsb3dlc3QpOiJ9LHsicGF0aCI6InBhY2thZ2UtbWFuYWdlci50cyIsImxpbmUiOjE2NiwidGV4dCI6IiogICAwICBwcm9qZWN0ICsgc2V0dGluZ3MgZW50cnkgKHNvdXJjZTogXCJsb2NhbFwiLCBzY29wZTogXCJwcm9qZWN0XCIpIn0seyJwYXRoIjoicGFja2FnZS1tYW5hZ2VyLnRzIiwibGluZSI6MTY3LCJ0ZXh0IjoiICAqICAgMSAgcHJvamVjdCArIGF1dG8tZGlzY292ZXJlZCAoc291cmNlOiBcImF1dG9cIiwgc2NvcGU6IFwicHJvamVjdFwiKSJ9LHsicGF0aCI6InBhY2thZ2UtbWFuYWdlci50cyIsImxpbmUiOjE2OCwidGV4dCI6IiAgKiAgIDIgIHVzZXIgKyBzZXR0aW5ncyBlbnRyeSAoc291cmNlOiBcImxvY2FsXCIsIHNjb3BlOiBcInVzZXJcIikifSx7InBhdGgiOiJwYWNrYWdlLW1hbmFnZXIudHMiLCJsaW5lIjoxNjUsInRleHQiOiIgICogUHJlY2VkZW5jZSAoaGlnaGVzdCB0byBsb3dlc3QpOiJ9LHsicGF0aCI6InBhY2thZ2UtbWFuYWdlci50cyIsImxpbmUiOjE2NiwidGV4dCI6IiAgKiAgIDAgIHByb2plY3QgKyBzZXR0aW5ncyBlbnRyeSAoc291cmNlOiBcImxvY2FsXCIsIHNjb3BlOiBcInByb2plY3RcIikifSx7InBhdGgiOiJwYWNrYWdlLW1hbmFnZXIudHMiLCJsaW5lIjoxNjcsInRleHQiOiIqICAgMSAgcHJvamVjdCArIGF1dG8tZGlzY292ZXJlZCAoc291cmNlOiBcImF1dG9cIiwgc2NvcGU6IFwicHJvamVjdFwiKSJ9LHsicGF0aCI6InBhY2thZ2UtbWFuYWdlci50cyIsImxpbmUiOjE2OCwidGV4dCI6IiAgKiAgIDIgIHVzZXIgKyBzZXR0aW5ncyBlbnRyeSAoc291cmNlOiBcImxvY2FsXCIsIHNjb3BlOiBcInVzZXJcIikifSx7InBhdGgiOiJwYWNrYWdlLW1hbmFnZXIudHMiLCJsaW5lIjoxNjksInRleHQiOiIgICogICAzICB1c2VyICsgYXV0by1kaXNjb3ZlcmVkIChzb3VyY2U6IFwiYXV0b1wiLCBzY29wZTogXCJ1c2VyXCIpIn0seyJwYXRoIjoicGFja2FnZS1tYW5hZ2VyLnRzIiwibGluZSI6MTY2LCJ0ZXh0IjoiICAqICAgMCAgcHJvamVjdCArIHNldHRpbmdzIGVudHJ5IChzb3VyY2U6IFwibG9jYWxcIiwgc2NvcGU6IFwicHJvamVjdFwiKSJ9LHsicGF0aCI6InBhY2thZ2UtbWFuYWdlci50cyIsImxpbmUiOjE2NywidGV4dCI6IiAgKiAgIDEgIHByb2plY3QgKyBhdXRvLWRpc2NvdmVyZWQgKHNvdXJjZTogXCJhdXRvXCIsIHNjb3BlOiBcInByb2plY3RcIikifSx7InBhdGgiOiJwYWNrYWdlLW1hbmFnZXIudHMiLCJsaW5lIjoxNjgsInRleHQiOiIqICAgMiAgdXNlciArIHNldHRpbmdzIGVudHJ5IChzb3VyY2U6IFwibG9jYWxcIiwgc2NvcGU6IFwidXNlclwiKSJ9LHsicGF0aCI6InBhY2thZ2UtbWFuYWdlci50cyIsImxpbmUiOjE2OSwidGV4dCI6IiAgKiAgIDMgIHVzZXIgKyBhdXRvLWRpc2NvdmVyZWQgKHNvdXJjZTogXCJhdXRvXCIsIHNjb3BlOiBcInVzZXJcIikifSx7InBhdGgiOiJwYWNrYWdlLW1hbmFnZXIudHMiLCJsaW5lIjoxNzAsInRleHQiOiIgICogICA0ICBwYWNrYWdlIHJlc291cmNlIChvcmlnaW46IFwicGFja2FnZVwiKSJ9LHsicGF0aCI6InBhY2thZ2UtbWFuYWdlci50cyIsImxpbmUiOjE2NywidGV4dCI6IiAgKiAgIDEgIHByb2plY3QgKyBhdXRvLWRpc2NvdmVyZWQgKHNvdXJjZTogXCJhdXRvXCIsIHNjb3BlOiBcInByb2plY3RcIikifSx7InBhdGgiOiJwYWNrYWdlLW1hbmFnZXIudHMiLCJsaW5lIjoxNjgsInRleHQiOiIgICogICAyICB1c2VyICsgc2V0dGluZ3MgZW50cnkgKHNvdXJjZTogXCJsb2NhbFwiLCBzY29wZTogXCJ1c2VyXCIpIn0seyJwYXRoIjoicGFja2FnZS1tYW5hZ2VyLnRzIiwibGluZSI6MTY5LCJ0ZXh0IjoiKiAgIDMgIHVzZXIgKyBhdXRvLWRpc2NvdmVyZWQgKHNvdXJjZTogXCJhdXRvXCIsIHNjb3BlOiBcInVzZXJcIikifSx7InBhdGgiOiJwYWNrYWdlLW1hbmFnZXIudHMiLCJsaW5lIjoxNzAsInRleHQiOiIgICogICA0ICBwYWNrYWdlIHJlc291cmNlIChvcmlnaW46IFwicGFja2FnZVwiKSJ9LHsicGF0aCI6InBhY2thZ2UtbWFuYWdlci50cyIsImxpbmUiOjE3MSwidGV4dCI6IiAgKi8ifSx7InBhdGgiOiJwYWNrYWdlLW1hbmFnZXIudHMiLCJsaW5lIjo3NzIsInRleHQiOiIgIH0ifSx7InBhdGgiOiJwYWNrYWdlLW1hbmFnZXIudHMiLCJsaW5lIjo3NzMsInRleHQiOiIgICJ9LHsicGF0aCI6InBhY2thZ2UtbWFuYWdlci50cyIsImxpbmUiOjc3NCwidGV4dCI6ImFkZFNvdXJjZVRvU2V0dGluZ3Moc291cmNlOiBzdHJpbmcsIG9wdGlvbnM/OiB7IGxvY2FsPzogYm9vbGVhbiB9KTogYm9vbGVhbiB7In0seyJwYXRoIjoicGFja2FnZS1tYW5hZ2VyLnRzIiwibGluZSI6Nzc1LCJ0ZXh0IjoiICBjb25zdCBzY29wZTogU291cmNlU2NvcGUgPSBvcHRpb25zPy5sb2NhbCA/IFwicHJvamVjdFwiIDogXCJ1c2VyXCI7In0seyJwYXRoIjoicGFja2FnZS1tYW5hZ2VyLnRzIiwibGluZSI6Nzc2LCJ0ZXh0IjoiICBjb25zdCBjdXJyZW50U2V0dGluZ3MgPSJ9LHsicGF0aCI6InBhY2thZ2UtbWFuYWdlci50cyIsImxpbmUiOjc5MSwidGV4dCI6IiAgfSJ9LHsicGF0aCI6InBhY2thZ2UtbWFuYWdlci50cyIsImxpbmUiOjc5MiwidGV4dCI6IiAgIn0seyJwYXRoIjoicGFja2FnZS1tYW5hZ2VyLnRzIiwibGluZSI6NzkzLCJ0ZXh0IjoicmVtb3ZlU291cmNlRnJvbVNldHRpbmdzKHNvdXJjZTogc3RyaW5nLCBvcHRpb25zPzogeyBsb2NhbD86IGJvb2xlYW4gfSk6IGJvb2xlYW4geyJ9LHsicGF0aCI6InBhY2thZ2UtbWFuYWdlci50cyIsImxpbmUiOjc5NCwidGV4dCI6IiAgY29uc3Qgc2NvcGU6IFNvdXJjZVNjb3BlID0gb3B0aW9ucz8ubG9jYWwgPyBcInByb2plY3RcIiA6IFwidXNlclwiOyJ9LHsicGF0aCI6InBhY2thZ2UtbWFuYWdlci50cyIsImxpbmUiOjc5NSwidGV4dCI6IiAgY29uc3QgY3VycmVudFNldHRpbmdzID0ifSx7InBhdGgiOiJwYWNrYWdlLW1hbmFnZXIudHMiLCJsaW5lIjo4MDksInRleHQiOiIgIH0ifSx7InBhdGgiOiJwYWNrYWdlLW1hbmFnZXIudHMiLCJsaW5lIjo4MTAsInRleHQiOiIgICJ9LHsicGF0aCI6InBhY2thZ2UtbWFuYWdlci50cyIsImxpbmUiOjgxMSwidGV4dCI6ImdldEluc3RhbGxlZFBhdGgoc291cmNlOiBzdHJpbmcsIHNjb3BlOiBcInVzZXJcIiB8IFwicHJvamVjdFwiKTogc3RyaW5nIHwgdW5kZWZpbmVkIHsifSx7InBhdGgiOiJwYWNrYWdlLW1hbmFnZXIudHMiLCJsaW5lIjo4MTIsInRleHQiOiIgIGNvbnN0IHBhcnNlZCA9IHRoaXMucGFyc2VTb3VyY2Uoc291cmNlKTsifSx7InBhdGgiOiJwYWNrYWdlLW1hbmFnZXIudHMiLCJsaW5lIjo4MTMsInRleHQiOiIgIGlmIChwYXJzZWQudHlwZSA9PT0gXCJucG1cIikgeyJ9LHsicGF0aCI6InBhY2thZ2UtbWFuYWdlci50cyIsImxpbmUiOjgzMywidGV4dCI6IiAgcHJpdmF0ZSBhc3luYyB3aXRoUHJvZ3Jlc3MoIn0seyJwYXRoIjoicGFja2FnZS1tYW5hZ2VyLnRzIiwibGluZSI6ODM0LCJ0ZXh0IjoiICBhY3Rpb246IFByb2dyZXNzRXZlbnRbXCJhY3Rpb25cIl0sIn0seyJwYXRoIjoicGFja2FnZS1tYW5hZ2VyLnRzIiwibGluZSI6ODM1LCJ0ZXh0Ijoic291cmNlOiBzdHJpbmcsIn0seyJwYXRoIjoicGFja2FnZS1tYW5hZ2VyLnRzIiwibGluZSI6ODM2LCJ0ZXh0IjoiICBtZXNzYWdlOiBzdHJpbmcsIn0seyJwYXRoIjoicGFja2FnZS1tYW5hZ2VyLnRzIiwibGluZSI6ODM3LCJ0ZXh0IjoiICBvcGVyYXRpb246ICgpID0+IFByb21pc2U8dm9pZD4sIn0seyJwYXRoIjoicGFja2FnZS1tYW5hZ2VyLnRzIiwibGluZSI6ODQ4LCJ0ZXh0IjoiICB9In0seyJwYXRoIjoicGFja2FnZS1tYW5hZ2VyLnRzIiwibGluZSI6ODQ5LCJ0ZXh0IjoiICAifSx7InBhdGgiOiJwYWNrYWdlLW1hbmFnZXIudHMiLCJsaW5lIjo4NTAsInRleHQiOiJhc3luYyByZXNvbHZlKG9uTWlzc2luZz86IChzb3VyY2U6IHN0cmluZykgPT4gUHJvbWlzZTxNaXNzaW5nU291cmNlQWN0aW9uPik6IFByb21pc2U8UmVzb2x2ZWRQYXRocz4geyJ9LHsicGF0aCI6InBhY2thZ2UtbWFuYWdlci50cyIsImxpbmUiOjg1MSwidGV4dCI6IiAgY29uc3QgYWNjdW11bGF0b3IgPSB0aGlzLmNyZWF0ZUFjY3VtdWxhdG9yKCk7In0seyJwYXRoIjoicGFja2FnZS1tYW5hZ2VyLnRzIiwibGluZSI6ODUyLCJ0ZXh0IjoiICBjb25zdCBnbG9iYWxTZXR0aW5ncyA9IHRoaXMuc2V0dGluZ3NNYW5hZ2VyLmdldEdsb2JhbFNldHRpbmdzKCk7In0seyJwYXRoIjoicGFja2FnZS1tYW5hZ2VyLnRzIiwibGluZSI6ODc4LCJ0ZXh0IjoiICB0YXJnZXQsIn0seyJwYXRoIjoicGFja2FnZS1tYW5hZ2VyLnRzIiwibGluZSI6ODc5LCJ0ZXh0IjoiICB7In0seyJwYXRoIjoicGFja2FnZS1tYW5hZ2VyLnRzIiwibGluZSI6ODgwLCJ0ZXh0Ijoic291cmNlOiBcImxvY2FsXCIsIn0seyJwYXRoIjoicGFja2FnZS1tYW5hZ2VyLnRzIiwibGluZSI6ODgxLCJ0ZXh0IjoiICBzY29wZTogXCJwcm9qZWN0XCIsIn0seyJwYXRoIjoicGFja2FnZS1tYW5hZ2VyLnRzIiwibGluZSI6ODgyLCJ0ZXh0IjoiICBvcmlnaW46IFwidG9wLWxldmVsXCIsIn0seyJwYXRoIjoicGFja2FnZS1tYW5hZ2VyLnRzIiwibGluZSI6ODg5LCJ0ZXh0IjoiICB0YXJnZXQsIn0seyJwYXRoIjoicGFja2FnZS1tYW5hZ2VyLnRzIiwibGluZSI6ODkwLCJ0ZXh0IjoiICB7In0seyJwYXRoIjoicGFja2FnZS1tYW5hZ2VyLnRzIiwibGluZSI6ODkxLCJ0ZXh0Ijoic291cmNlOiBcImxvY2FsXCIsIn0seyJwYXRoIjoicGFja2FnZS1tYW5hZ2VyLnRzIiwibGluZSI6ODkyLCJ0ZXh0IjoiICBzY29wZTogXCJ1c2VyXCIsIn0seyJwYXRoIjoicGFja2FnZS1tYW5hZ2VyLnRzIiwibGluZSI6ODkzLCJ0ZXh0IjoiICBvcmlnaW46IFwidG9wLWxldmVsXCIsIn0seyJwYXRoIjoicGFja2FnZS1tYW5hZ2VyLnRzIiwibGluZSI6OTQxLCJ0ZXh0IjoiICB9In0seyJwYXRoIjoicGFja2FnZS1tYW5hZ2VyLnRzIiwibGluZSI6OTQyLCJ0ZXh0IjoiICAifSx7InBhdGgiOiJwYWNrYWdlLW1hbmFnZXIudHMiLCJsaW5lIjo5NDMsInRleHQiOiJhc3luYyBpbnN0YWxsKHNvdXJjZTogc3RyaW5nLCBvcHRpb25zPzogeyBsb2NhbD86IGJvb2xlYW4gfSk6IFByb21pc2U8dm9pZD4geyJ9LHsicGF0aCI6InBhY2thZ2UtbWFuYWdlci50cyIsImxpbmUiOjk0NCwidGV4dCI6IiAgY29uc3QgcGFyc2VkID0gdGhpcy5wYXJzZVNvdXJjZShzb3VyY2UpOyJ9LHsicGF0aCI6InBhY2thZ2UtbWFuYWdlci50cyIsImxpbmUiOjk0NSwidGV4dCI6IiAgY29uc3Qgc2NvcGU6IFNvdXJjZVNjb3BlID0gb3B0aW9ucz8ubG9jYWwgPyBcInByb2plY3RcIiA6IFwidXNlclwiOyJ9LHsicGF0aCI6InBhY2thZ2UtbWFuYWdlci50cyIsImxpbmUiOjk2MCwidGV4dCI6IiAgcmV0dXJuOyJ9LHsicGF0aCI6InBhY2thZ2UtbWFuYWdlci50cyIsImxpbmUiOjk2MSwidGV4dCI6IiAgfSJ9LHsicGF0aCI6InBhY2thZ2UtbWFuYWdlci50cyIsImxpbmUiOjk2MiwidGV4dCI6InRocm93IG5ldyBFcnJvcihgVW5zdXBwb3J0ZWQgaW5zdGFsbCBzb3VyY2U6ICR7c291cmNlfWApOyJ9LHsicGF0aCI6InBhY2thZ2UtbWFuYWdlci50cyIsImxpbmUiOjk2MywidGV4dCI6IiAgfSk7In0seyJwYXRoIjoicGFja2FnZS1tYW5hZ2VyLnRzIiwibGluZSI6OTY0LCJ0ZXh0IjoiICB9In0seyJwYXRoIjoicGFja2FnZS1tYW5hZ2VyLnRzIiwibGluZSI6OTY0LCJ0ZXh0IjoiICB9In0seyJwYXRoIjoicGFja2FnZS1tYW5hZ2VyLnRzIiwibGluZSI6OTY1LCJ0ZXh0IjoiICAifSx7InBhdGgiOiJwYWNrYWdlLW1hbmFnZXIudHMiLCJsaW5lIjo5NjYsInRleHQiOiJhc3luYyBpbnN0YWxsQW5kUGVyc2lzdChzb3VyY2U6IHN0cmluZywgb3B0aW9ucz86IHsgbG9jYWw/OiBib29sZWFuIH0pOiBQcm9taXNlPHZvaWQ+IHsifSx7InBhdGgiOiJwYWNrYWdlLW1hbmFnZXIudHMiLCJsaW5lIjo5NjcsInRleHQiOiIgIGF3YWl0IHRoaXMuaW5zdGFsbChzb3VyY2UsIG9wdGlvbnMpOyJ9LHsicGF0aCI6InBhY2thZ2UtbWFuYWdlci50cyIsImxpbmUiOjk2OCwidGV4dCI6IiAgdGhpcy5hZGRTb3VyY2VUb1NldHRpbmdzKHNvdXJjZSwgb3B0aW9ucyk7In0seyJwYXRoIjoicGFja2FnZS1tYW5hZ2VyLnRzIiwibGluZSI6OTY5LCJ0ZXh0IjoiICB9In0seyJwYXRoIjoicGFja2FnZS1tYW5hZ2VyLnRzIiwibGluZSI6OTcwLCJ0ZXh0IjoiICAifSx7InBhdGgiOiJwYWNrYWdlLW1hbmFnZXIudHMiLCJsaW5lIjo5NzEsInRleHQiOiJhc3luYyByZW1vdmUoc291cmNlOiBzdHJpbmcsIG9wdGlvbnM/OiB7IGxvY2FsPzogYm9vbGVhbiB9KTogUHJvbWlzZTx2b2lkPiB7In0seyJwYXRoIjoicGFja2FnZS1tYW5hZ2VyLnRzIiwibGluZSI6OTcyLCJ0ZXh0IjoiICBjb25zdCBwYXJzZWQgPSB0aGlzLnBhcnNlU291cmNlKHNvdXJjZSk7In0seyJwYXRoIjoicGFja2FnZS1tYW5hZ2VyLnRzIiwibGluZSI6OTczLCJ0ZXh0IjoiICBjb25zdCBzY29wZTogU291cmNlU2NvcGUgPSBvcHRpb25zPy5sb2NhbCA/IFwicHJvamVjdFwiIDogXCJ1c2VyXCI7In0seyJwYXRoIjoicGFja2FnZS1tYW5hZ2VyLnRzIiwibGluZSI6OTg0LCJ0ZXh0IjoiICByZXR1cm47In0seyJwYXRoIjoicGFja2FnZS1tYW5hZ2VyLnRzIiwibGluZSI6OTg1LCJ0ZXh0IjoiICB9In0seyJwYXRoIjoicGFja2FnZS1tYW5hZ2VyLnRzIiwibGluZSI6OTg2LCJ0ZXh0IjoidGhyb3cgbmV3IEVycm9yKGBVbnN1cHBvcnRlZCByZW1vdmUgc291cmNlOiAke3NvdXJjZX1gKTsifSx7InBhdGgiOiJwYWNrYWdlLW1hbmFnZXIudHMiLCJsaW5lIjo5ODcsInRleHQiOiIgIH0pOyJ9LHsicGF0aCI6InBhY2thZ2UtbWFuYWdlci50cyIsImxpbmUiOjk4OCwidGV4dCI6IiAgfSJ9LHsicGF0aCI6InBhY2thZ2UtbWFuYWdlci50cyIsImxpbmUiOjk4OCwidGV4dCI6IiAgfSJ9LHsicGF0aCI6InBhY2thZ2UtbWFuYWdlci50cyIsImxpbmUiOjk4OSwidGV4dCI6IiAgIn0seyJwYXRoIjoicGFja2FnZS1tYW5hZ2VyLnRzIiwibGluZSI6OTkwLCJ0ZXh0IjoiYXN5bmMgcmVtb3ZlQW5kUGVyc2lzdChzb3VyY2U6IHN0cmluZywgb3B0aW9ucz86IHsgbG9jYWw/OiBib29sZWFuIH0pOiBQcm9taXNlPGJvb2xlYW4+IHsifSx7InBhdGgiOiJwYWNrYWdlLW1hbmFnZXIudHMiLCJsaW5lIjo5OTEsInRleHQiOiIgIGF3YWl0IHRoaXMucmVtb3ZlKHNvdXJjZSwgb3B0aW9ucyk7In0seyJwYXRoIjoicGFja2FnZS1tYW5hZ2VyLnRzIiwibGluZSI6OTkyLCJ0ZXh0IjoiICByZXR1cm4gdGhpcy5yZW1vdmVTb3VyY2VGcm9tU2V0dGluZ3Moc291cmNlLCBvcHRpb25zKTsifSx7InBhdGgiOiJwYWNrYWdlLW1hbmFnZXIudHMiLCJsaW5lIjoxMDA0LCJ0ZXh0IjoiICBpZiAoaWRlbnRpdHkgJiYgdGhpcy5nZXRQYWNrYWdlSWRlbnRpdHkoc291cmNlU3RyLCBcInVzZXJcIikgIT09IGlkZW50aXR5KSBjb250aW51ZTsifSx7InBhdGgiOiJwYWNrYWdlLW1hbmFnZXIudHMiLCJsaW5lIjoxMDA1LCJ0ZXh0IjoiICBtYXRjaGVkID0gdHJ1ZTsifSx7InBhdGgiOiJwYWNrYWdlLW1hbmFnZXIudHMiLCJsaW5lIjoxMDA2LCJ0ZXh0IjoidXBkYXRlU291cmNlcy5wdXNoKHsgc291cmNlOiBzb3VyY2VTdHIsIHNjb3BlOiBcInVzZXJcIiB9KTsifSx7InBhdGgiOiJwYWNrYWdlLW1hbmFnZXIudHMiLCJsaW5lIjoxMDA3LCJ0ZXh0IjoiICB9In0seyJwYXRoIjoicGFja2FnZS1tYW5hZ2VyLnRzIiwibGluZSI6MTAwOCwidGV4dCI6IiAgZm9yIChjb25zdCBwa2cgb2YgcHJvamVjdFNldHRpbmdzLnBhY2thZ2VzID8/IFtdKSB7In0seyJwYXRoIjoicGFja2FnZS1tYW5hZ2VyLnRzIiwibGluZSI6MTAxMCwidGV4dCI6IiAgaWYgKGlkZW50aXR5ICYmIHRoaXMuZ2V0UGFja2FnZUlkZW50aXR5KHNvdXJjZVN0ciwgXCJwcm9qZWN0XCIpICE9PSBpZGVudGl0eSkgY29udGludWU7In0seyJwYXRoIjoicGFja2FnZS1tYW5hZ2VyLnRzIiwibGluZSI6MTAxMSwidGV4dCI6IiAgbWF0Y2hlZCA9IHRydWU7In0seyJwYXRoIjoicGFja2FnZS1tYW5hZ2VyLnRzIiwibGluZSI6MTAxMiwidGV4dCI6InVwZGF0ZVNvdXJjZXMucHVzaCh7IHNvdXJjZTogc291cmNlU3RyLCBzY29wZTogXCJwcm9qZWN0XCIgfSk7In0seyJwYXRoIjoicGFja2FnZS1tYW5hZ2VyLnRzIiwibGluZSI6MTAxMywidGV4dCI6IiAgfSJ9LHsicGF0aCI6InBhY2thZ2UtbWFuYWdlci50cyIsImxpbmUiOjEwMTQsInRleHQiOiIgICJ9LHsicGF0aCI6InBhY2thZ2UtbWFuYWdlci50cyIsImxpbmUiOjEwODMsInRleHQiOiIgIH0ifSx7InBhdGgiOiJwYWNrYWdlLW1hbmFnZXIudHMiLCJsaW5lIjoxMDg0LCJ0ZXh0IjoiICAifSx7InBhdGgiOiJwYWNrYWdlLW1hbmFnZXIudHMiLCJsaW5lIjoxMDg1LCJ0ZXh0IjoicHJpdmF0ZSBhc3luYyBzaG91bGRVcGRhdGVOcG1Tb3VyY2Uoc291cmNlOiBOcG1Tb3VyY2UsIHNjb3BlOiBJbnN0YWxsZWRTb3VyY2VTY29wZSk6IFByb21pc2U8Ym9vbGVhbj4geyJ9LHsicGF0aCI6InBhY2thZ2UtbWFuYWdlci50cyIsImxpbmUiOjEwODYsInRleHQiOiIgIGNvbnN0IGluc3RhbGxlZFBhdGggPSB0aGlzLmdldE5wbUluc3RhbGxQYXRoKHNvdXJjZSwgc2NvcGUpOyJ9LHsicGF0aCI6InBhY2thZ2UtbWFuYWdlci50cyIsImxpbmUiOjEwODcsInRleHQiOiIgIGNvbnN0IGluc3RhbGxlZFZlcnNpb24gPSBleGlzdHNTeW5jKGluc3RhbGxlZFBhdGgpID8gdGhpcy5nZXRJbnN0YWxsZWROcG1WZXJzaW9uKGluc3RhbGxlZFBhdGgpIDogdW5kZWZpbmVkOyJ9LHsicGF0aCI6InBhY2thZ2UtbWFuYWdlci50cyIsImxpbmUiOjExOTEsInRleHQiOiIgIHNvdXJjZXM6IEFycmF5PHsgcGtnOiBQYWNrYWdlU291cmNlOyBzY29wZTogU291cmNlU2NvcGUgfT4sIn0seyJwYXRoIjoicGFja2FnZS1tYW5hZ2VyLnRzIiwibGluZSI6MTE5MiwidGV4dCI6IiAgYWNjdW11bGF0b3I6IFJlc291cmNlQWNjdW11bGF0b3IsIn0seyJwYXRoIjoicGFja2FnZS1tYW5hZ2VyLnRzIiwibGluZSI6MTE5MywidGV4dCI6Im9uTWlzc2luZz86IChzb3VyY2U6IHN0cmluZykgPT4gUHJvbWlzZTxNaXNzaW5nU291cmNlQWN0aW9uPiwifSx7InBhdGgiOiJwYWNrYWdlLW1hbmFnZXIudHMiLCJsaW5lIjoxMTk0LCJ0ZXh0IjoiICApOiBQcm9taXNlPHZvaWQ+IHsifSx7InBhdGgiOiJwYWNrYWdlLW1hbmFnZXIudHMiLCJsaW5lIjoxMTk1LCJ0ZXh0IjoiICBmb3IgKGNvbnN0IHsgcGtnLCBzY29wZSB9IG9mIHNvdXJjZXMpIHsifSx7InBhdGgiOiJwYWNrYWdlLW1hbmFnZXIudHMiLCJsaW5lIjoxMTk3LCJ0ZXh0IjoiICBjb25zdCBmaWx0ZXIgPSB0eXBlb2YgcGtnID09PSBcIm9iamVjdFwiID8gcGtnIDogdW5kZWZpbmVkOyJ9LHsicGF0aCI6InBhY2thZ2UtbWFuYWdlci50cyIsImxpbmUiOjExOTgsInRleHQiOiIgIGNvbnN0IHBhcnNlZCA9IHRoaXMucGFyc2VTb3VyY2Uoc291cmNlU3RyKTsifSx7InBhdGgiOiJwYWNrYWdlLW1hbmFnZXIudHMiLCJsaW5lIjoxMTk5LCJ0ZXh0IjoiY29uc3QgbWV0YWRhdGE6IFBhdGhNZXRhZGF0YSA9IHsgc291cmNlOiBzb3VyY2VTdHIsIHNjb3BlLCBvcmlnaW46IFwicGFja2FnZVwiIH07In0seyJwYXRoIjoicGFja2FnZS1tYW5hZ2VyLnRzIiwibGluZSI6MTIwMCwidGV4dCI6IiAgIn0seyJwYXRoIjoicGFja2FnZS1tYW5hZ2VyLnRzIiwibGluZSI6MTIwMSwidGV4dCI6IiAgaWYgKHBhcnNlZC50eXBlID09PSBcImxvY2FsXCIpIHsifSx7InBhdGgiOiJwYWNrYWdlLW1hbmFnZXIudHMiLCJsaW5lIjoxMjE1LCJ0ZXh0IjoiICBjb25zdCBhY3Rpb24gPSBhd2FpdCBvbk1pc3Npbmcoc291cmNlU3RyKTsifSx7InBhdGgiOiJwYWNrYWdlLW1hbmFnZXIudHMiLCJsaW5lIjoxMjE2LCJ0ZXh0IjoiICBpZiAoYWN0aW9uID09PSBcInNraXBcIikgcmV0dXJuIGZhbHNlOyJ9LHsicGF0aCI6InBhY2thZ2UtbWFuYWdlci50cyIsImxpbmUiOjEyMTcsInRleHQiOiJpZiAoYWN0aW9uID09PSBcImVycm9yXCIpIHRocm93IG5ldyBFcnJvcihgTWlzc2luZyBzb3VyY2U6ICR7c291cmNlU3RyfWApOyJ9LHsicGF0aCI6InBhY2thZ2UtbWFuYWdlci50cyIsImxpbmUiOjEyMTgsInRleHQiOiIgIGF3YWl0IHRoaXMuaW5zdGFsbFBhcnNlZFNvdXJjZShwYXJzZWQsIHNjb3BlKTsifSx7InBhdGgiOiJwYWNrYWdlLW1hbmFnZXIudHMiLCJsaW5lIjoxMjE5LCJ0ZXh0IjoiICByZXR1cm4gdHJ1ZTsifSx7InBhdGgiOiJwYWNrYWdlLW1hbmFnZXIudHMiLCJsaW5lIjoxMjQ5LCJ0ZXh0IjoiICAifSx7InBhdGgiOiJwYWNrYWdlLW1hbmFnZXIudHMiLCJsaW5lIjoxMjUwLCJ0ZXh0IjoiICBwcml2YXRlIHJlc29sdmVMb2NhbEV4dGVuc2lvblNvdXJjZSgifSx7InBhdGgiOiJwYWNrYWdlLW1hbmFnZXIudHMiLCJsaW5lIjoxMjUxLCJ0ZXh0Ijoic291cmNlOiBMb2NhbFNvdXJjZSwifSx7InBhdGgiOiJwYWNrYWdlLW1hbmFnZXIudHMiLCJsaW5lIjoxMjUyLCJ0ZXh0IjoiICBhY2N1bXVsYXRvcjogUmVzb3VyY2VBY2N1bXVsYXRvciwifSx7InBhdGgiOiJwYWNrYWdlLW1hbmFnZXIudHMiLCJsaW5lIjoxMjUzLCJ0ZXh0IjoiICBmaWx0ZXI6IFBhY2thZ2VGaWx0ZXIgfCB1bmRlZmluZWQsIn0seyJwYXRoIjoicGFja2FnZS1tYW5hZ2VyLnRzIiwibGluZSI6MTI5NCwidGV4dCI6IiAgfSJ9LHsicGF0aCI6InBhY2thZ2UtbWFuYWdlci50cyIsImxpbmUiOjEyOTUsInRleHQiOiIgICJ9LHsicGF0aCI6InBhY2thZ2UtbWFuYWdlci50cyIsImxpbmUiOjEyOTYsInRleHQiOiJwcml2YXRlIGdldFNvdXJjZU1hdGNoS2V5Rm9ySW5wdXQoc291cmNlOiBzdHJpbmcpOiBzdHJpbmcgeyJ9LHsicGF0aCI6InBhY2thZ2UtbWFuYWdlci50cyIsImxpbmUiOjEyOTcsInRleHQiOiIgIGNvbnN0IHBhcnNlZCA9IHRoaXMucGFyc2VTb3VyY2Uoc291cmNlKTsifSx7InBhdGgiOiJwYWNrYWdlLW1hbmFnZXIudHMiLCJsaW5lIjoxMjk4LCJ0ZXh0IjoiICBpZiAocGFyc2VkLnR5cGUgPT09IFwibnBtXCIpIHsifSx7InBhdGgiOiJwYWNrYWdlLW1hbmFnZXIudHMiLCJsaW5lIjoxMzA1LCJ0ZXh0IjoiICB9In0seyJwYXRoIjoicGFja2FnZS1tYW5hZ2VyLnRzIiwibGluZSI6MTMwNiwidGV4dCI6IiAgIn0seyJwYXRoIjoicGFja2FnZS1tYW5hZ2VyLnRzIiwibGluZSI6MTMwNywidGV4dCI6InByaXZhdGUgZ2V0U291cmNlTWF0Y2hLZXlGb3JTZXR0aW5ncyhzb3VyY2U6IHN0cmluZywgc2NvcGU6IFNvdXJjZVNjb3BlKTogc3RyaW5nIHsifSx7InBhdGgiOiJwYWNrYWdlLW1hbmFnZXIudHMiLCJsaW5lIjoxMzA4LCJ0ZXh0IjoiICBjb25zdCBwYXJzZWQgPSB0aGlzLnBhcnNlU291cmNlKHNvdXJjZSk7In0seyJwYXRoIjoicGFja2FnZS1tYW5hZ2VyLnRzIiwibGluZSI6MTMwOSwidGV4dCI6IiAgaWYgKHBhcnNlZC50eXBlID09PSBcIm5wbVwiKSB7In0seyJwYXRoIjoicGFja2FnZS1tYW5hZ2VyLnRzIiwibGluZSI6MTMxNywidGV4dCI6IiAgfSJ9LHsicGF0aCI6InBhY2thZ2UtbWFuYWdlci50cyIsImxpbmUiOjEzMTgsInRleHQiOiIgICJ9LHsicGF0aCI6InBhY2thZ2UtbWFuYWdlci50cyIsImxpbmUiOjEzMTksInRleHQiOiJwcml2YXRlIGJ1aWxkTm9NYXRjaGluZ1BhY2thZ2VNZXNzYWdlKHNvdXJjZTogc3RyaW5nLCBjb25maWd1cmVkUGFja2FnZXM6IFBhY2thZ2VTb3VyY2VbXSk6IHN0cmluZyB7In0seyJwYXRoIjoicGFja2FnZS1tYW5hZ2VyLnRzIiwibGluZSI6MTMyMCwidGV4dCI6IiAgY29uc3Qgc3VnZ2VzdGlvbiA9IHRoaXMuZmluZFN1Z2dlc3RlZENvbmZpZ3VyZWRTb3VyY2Uoc291cmNlLCBjb25maWd1cmVkUGFja2FnZXMpOyJ9LHsicGF0aCI6InBhY2thZ2UtbWFuYWdlci50cyIsImxpbmUiOjEzMjEsInRleHQiOiIgIGlmICghc3VnZ2VzdGlvbikgeyJ9LHsicGF0aCI6InBhY2thZ2UtbWFuYWdlci50cyIsImxpbmUiOjEzMjUsInRleHQiOiIgIH0ifSx7InBhdGgiOiJwYWNrYWdlLW1hbmFnZXIudHMiLCJsaW5lIjoxMzI2LCJ0ZXh0IjoiICAifSx7InBhdGgiOiJwYWNrYWdlLW1hbmFnZXIudHMiLCJsaW5lIjoxMzI3LCJ0ZXh0IjoicHJpdmF0ZSBmaW5kU3VnZ2VzdGVkQ29uZmlndXJlZFNvdXJjZShzb3VyY2U6IHN0cmluZywgY29uZmlndXJlZFBhY2thZ2VzOiBQYWNrYWdlU291cmNlW10pOiBzdHJpbmcgfCB1bmRlZmluZWQgeyJ9LHsicGF0aCI6InBhY2thZ2UtbWFuYWdlci50cyIsImxpbmUiOjEzMjgsInRleHQiOiIgIGNvbnN0IHRyaW1tZWRTb3VyY2UgPSBzb3VyY2UudHJpbSgpOyJ9LHsicGF0aCI6InBhY2thZ2UtbWFuYWdlci50cyIsImxpbmUiOjEzMjksInRleHQiOiIgIGNvbnN0IHN1Z2dlc3Rpb25zID0gbmV3IFNldDxzdHJpbmc+KCk7In0seyJwYXRoIjoicGFja2FnZS1tYW5hZ2VyLnRzIiwibGluZSI6MTM1MCwidGV4dCI6IiAgfSJ9LHsicGF0aCI6InBhY2thZ2UtbWFuYWdlci50cyIsImxpbmUiOjEzNTEsInRleHQiOiIgICJ9LHsicGF0aCI6InBhY2thZ2UtbWFuYWdlci50cyIsImxpbmUiOjEzNTIsInRleHQiOiJwcml2YXRlIHBhY2thZ2VTb3VyY2VzTWF0Y2goZXhpc3Rpbmc6IFBhY2thZ2VTb3VyY2UsIGlucHV0U291cmNlOiBzdHJpbmcsIHNjb3BlOiBTb3VyY2VTY29wZSk6IGJvb2xlYW4geyJ9LHsicGF0aCI6InBhY2thZ2UtbWFuYWdlci50cyIsImxpbmUiOjEzNTMsInRleHQiOiIgIGNvbnN0IGxlZnQgPSB0aGlzLmdldFNvdXJjZU1hdGNoS2V5Rm9yU2V0dGluZ3ModGhpcy5nZXRQYWNrYWdlU291cmNlU3RyaW5nKGV4aXN0aW5nKSwgc2NvcGUpOyJ9LHsicGF0aCI6InBhY2thZ2UtbWFuYWdlci50cyIsImxpbmUiOjEzNTQsInRleHQiOiIgIGNvbnN0IHJpZ2h0ID0gdGhpcy5nZXRTb3VyY2VNYXRjaEtleUZvcklucHV0KGlucHV0U291cmNlKTsifSx7InBhdGgiOiJwYWNrYWdlLW1hbmFnZXIudHMiLCJsaW5lIjoxMzU2LCJ0ZXh0IjoiICB9In0seyJwYXRoIjoicGFja2FnZS1tYW5hZ2VyLnRzIiwibGluZSI6MTM1NywidGV4dCI6IiAgIn0seyJwYXRoIjoicGFja2FnZS1tYW5hZ2VyLnRzIiwibGluZSI6MTM1OCwidGV4dCI6InByaXZhdGUgbm9ybWFsaXplUGFja2FnZVNvdXJjZUZvclNldHRpbmdzKHNvdXJjZTogc3RyaW5nLCBzY29wZTogU291cmNlU2NvcGUpOiBzdHJpbmcgeyJ9LHsicGF0aCI6InBhY2thZ2UtbWFuYWdlci50cyIsImxpbmUiOjEzNTksInRleHQiOiIgIGNvbnN0IHBhcnNlZCA9IHRoaXMucGFyc2VTb3VyY2Uoc291cmNlKTsifSx7InBhdGgiOiJwYWNrYWdlLW1hbmFnZXIudHMiLCJsaW5lIjoxMzYwLCJ0ZXh0IjoiICBpZiAocGFyc2VkLnR5cGUgIT09IFwibG9jYWxcIikgeyJ9LHsicGF0aCI6InBhY2thZ2UtbWFuYWdlci50cyIsImxpbmUiOjEzNjcsInRleHQiOiIgIH0ifSx7InBhdGgiOiJwYWNrYWdlLW1hbmFnZXIudHMiLCJsaW5lIjoxMzY4LCJ0ZXh0IjoiICAifSx7InBhdGgiOiJwYWNrYWdlLW1hbmFnZXIudHMiLCJsaW5lIjoxMzY5LCJ0ZXh0IjoicHJpdmF0ZSBwYXJzZVNvdXJjZShzb3VyY2U6IHN0cmluZyk6IFBhcnNlZFNvdXJjZSB7In0seyJwYXRoIjoicGFja2FnZS1tYW5hZ2VyLnRzIiwibGluZSI6MTM3MCwidGV4dCI6IiAgaWYgKHNvdXJjZS5zdGFydHNXaXRoKFwibnBtOlwiKSkgeyJ9LHsicGF0aCI6InBhY2thZ2UtbWFuYWdlci50cyIsImxpbmUiOjEzNzEsInRleHQiOiIgIGNvbnN0IHNwZWMgPSBzb3VyY2Uuc2xpY2UoXCJucG06XCIubGVuZ3RoKS50cmltKCk7In0seyJwYXRoIjoicGFja2FnZS1tYW5hZ2VyLnRzIiwibGluZSI6MTM5MiwidGV4dCI6IiAgfSJ9LHsicGF0aCI6InBhY2thZ2UtbWFuYWdlci50cyIsImxpbmUiOjEzOTMsInRleHQiOiIgICJ9LHsicGF0aCI6InBhY2thZ2UtbWFuYWdlci50cyIsImxpbmUiOjEzOTQsInRleHQiOiJwcml2YXRlIGFzeW5jIGluc3RhbGxlZE5wbU1hdGNoZXNQaW5uZWRWZXJzaW9uKHNvdXJjZTogTnBtU291cmNlLCBpbnN0YWxsZWRQYXRoOiBzdHJpbmcpOiBQcm9taXNlPGJvb2xlYW4+IHsifSx7InBhdGgiOiJwYWNrYWdlLW1hbmFnZXIudHMiLCJsaW5lIjoxMzk1LCJ0ZXh0IjoiICBjb25zdCBpbnN0YWxsZWRWZXJzaW9uID0gdGhpcy5nZXRJbnN0YWxsZWROcG1WZXJzaW9uKGluc3RhbGxlZFBhdGgpOyJ9LHsicGF0aCI6InBhY2thZ2UtbWFuYWdlci50cyIsImxpbmUiOjEzOTYsInRleHQiOiIgIGlmICghaW5zdGFsbGVkVmVyc2lvbikgeyJ9LHsicGF0aCI6InBhY2thZ2UtbWFuYWdlci50cyIsImxpbmUiOjE0MDYsInRleHQiOiIgIH0ifSx7InBhdGgiOiJwYWNrYWdlLW1hbmFnZXIudHMiLCJsaW5lIjoxNDA3LCJ0ZXh0IjoiICAifSx7InBhdGgiOiJwYWNrYWdlLW1hbmFnZXIudHMiLCJsaW5lIjoxNDA4LCJ0ZXh0IjoicHJpdmF0ZSBhc3luYyBucG1IYXNBdmFpbGFibGVVcGRhdGUoc291cmNlOiBOcG1Tb3VyY2UsIGluc3RhbGxlZFBhdGg6IHN0cmluZyk6IFByb21pc2U8Ym9vbGVhbj4geyJ9LHsicGF0aCI6InBhY2thZ2UtbWFuYWdlci50cyIsImxpbmUiOjE0MDksInRleHQiOiIgIGlmIChpc09mZmxpbmVNb2RlRW5hYmxlZCgpKSB7In0seyJwYXRoIjoicGFja2FnZS1tYW5hZ2VyLnRzIiwibGluZSI6MTQxMCwidGV4dCI6IiAgcmV0dXJuIGZhbHNlOyJ9LHsicGF0aCI6InBhY2thZ2UtbWFuYWdlci50cyIsImxpbmUiOjE2MDMsInRleHQiOiIgICogZm9yIHRoZSBzYW1lIHJlcG9zaXRvcnkgYXJlIHRyZWF0ZWQgYXMgaWRlbnRpY2FsLiJ9LHsicGF0aCI6InBhY2thZ2UtbWFuYWdlci50cyIsImxpbmUiOjE2MDQsInRleHQiOiIgICovIn0seyJwYXRoIjoicGFja2FnZS1tYW5hZ2VyLnRzIiwibGluZSI6MTYwNSwidGV4dCI6InByaXZhdGUgZ2V0UGFja2FnZUlkZW50aXR5KHNvdXJjZTogc3RyaW5nLCBzY29wZT86IFNvdXJjZVNjb3BlKTogc3RyaW5nIHsifSx7InBhdGgiOiJwYWNrYWdlLW1hbmFnZXIudHMiLCJsaW5lIjoxNjA2LCJ0ZXh0IjoiICBjb25zdCBwYXJzZWQgPSB0aGlzLnBhcnNlU291cmNlKHNvdXJjZSk7In0seyJwYXRoIjoicGFja2FnZS1tYW5hZ2VyLnRzIiwibGluZSI6MTYwNywidGV4dCI6IiAgaWYgKHBhcnNlZC50eXBlID09PSBcIm5wbVwiKSB7In0seyJwYXRoIjoicGFja2FnZS1tYW5hZ2VyLnRzIiwibGluZSI6MTY4NiwidGV4dCI6IiAgfSJ9LHsicGF0aCI6InBhY2thZ2UtbWFuYWdlci50cyIsImxpbmUiOjE2ODcsInRleHQiOiIgICJ9LHsicGF0aCI6InBhY2thZ2UtbWFuYWdlci50cyIsImxpbmUiOjE2ODgsInRleHQiOiJwcml2YXRlIGFzeW5jIGluc3RhbGxOcG0oc291cmNlOiBOcG1Tb3VyY2UsIHNjb3BlOiBTb3VyY2VTY29wZSwgdGVtcG9yYXJ5OiBib29sZWFuKTogUHJvbWlzZTx2b2lkPiB7In0seyJwYXRoIjoicGFja2FnZS1tYW5hZ2VyLnRzIiwibGluZSI6MTY4OSwidGV4dCI6IiAgaWYgKHNjb3BlID09PSBcInVzZXJcIiAmJiAhdGVtcG9yYXJ5KSB7In0seyJwYXRoIjoicGFja2FnZS1tYW5hZ2VyLnRzIiwibGluZSI6MTY5MCwidGV4dCI6IiAgYXdhaXQgdGhpcy5ydW5OcG1Db21tYW5kKFtcImluc3RhbGxcIiwgXCItZ1wiLCBzb3VyY2Uuc3BlY10pOyJ9LHsicGF0aCI6InBhY2thZ2UtbWFuYWdlci50cyIsImxpbmUiOjE2OTYsInRleHQiOiIgIH0ifSx7InBhdGgiOiJwYWNrYWdlLW1hbmFnZXIudHMiLCJsaW5lIjoxNjk3LCJ0ZXh0IjoiICAifSx7InBhdGgiOiJwYWNrYWdlLW1hbmFnZXIudHMiLCJsaW5lIjoxNjk4LCJ0ZXh0IjoicHJpdmF0ZSBhc3luYyB1bmluc3RhbGxOcG0oc291cmNlOiBOcG1Tb3VyY2UsIHNjb3BlOiBTb3VyY2VTY29wZSk6IFByb21pc2U8dm9pZD4geyJ9LHsicGF0aCI6InBhY2thZ2UtbWFuYWdlci50cyIsImxpbmUiOjE2OTksInRleHQiOiIgIGlmIChzY29wZSA9PT0gXCJ1c2VyXCIpIHsifSx7InBhdGgiOiJwYWNrYWdlLW1hbmFnZXIudHMiLCJsaW5lIjoxNzAwLCJ0ZXh0IjoiICBhd2FpdCB0aGlzLnJ1bk5wbUNvbW1hbmQoW1widW5pbnN0YWxsXCIsIFwiLWdcIiwgc291cmNlLm5hbWVdKTsifSx7InBhdGgiOiJwYWNrYWdlLW1hbmFnZXIudHMiLCJsaW5lIjoxNzA4LCJ0ZXh0IjoiICB9In0seyJwYXRoIjoicGFja2FnZS1tYW5hZ2VyLnRzIiwibGluZSI6MTcwOSwidGV4dCI6IiAgIn0seyJwYXRoIjoicGFja2FnZS1tYW5hZ2VyLnRzIiwibGluZSI6MTcxMCwidGV4dCI6InByaXZhdGUgYXN5bmMgaW5zdGFsbEdpdChzb3VyY2U6IEdpdFNvdXJjZSwgc2NvcGU6IFNvdXJjZVNjb3BlKTogUHJvbWlzZTx2b2lkPiB7In0seyJwYXRoIjoicGFja2FnZS1tYW5hZ2VyLnRzIiwibGluZSI6MTcxMSwidGV4dCI6IiAgY29uc3QgdGFyZ2V0RGlyID0gdGhpcy5nZXRHaXRJbnN0YWxsUGF0aChzb3VyY2UsIHNjb3BlKTsifSx7InBhdGgiOiJwYWNrYWdlLW1hbmFnZXIudHMiLCJsaW5lIjoxNzEyLCJ0ZXh0IjoiICBpZiAoZXhpc3RzU3luYyh0YXJnZXREaXIpKSB7In0seyJwYXRoIjoicGFja2FnZS1tYW5hZ2VyLnRzIiwibGluZSI6MTcyOSwidGV4dCI6IiAgfSJ9LHsicGF0aCI6InBhY2thZ2UtbWFuYWdlci50cyIsImxpbmUiOjE3MzAsInRleHQiOiIgICJ9LHsicGF0aCI6InBhY2thZ2UtbWFuYWdlci50cyIsImxpbmUiOjE3MzEsInRleHQiOiJwcml2YXRlIGFzeW5jIHVwZGF0ZUdpdChzb3VyY2U6IEdpdFNvdXJjZSwgc2NvcGU6IFNvdXJjZVNjb3BlKTogUHJvbWlzZTx2b2lkPiB7In0seyJwYXRoIjoicGFja2FnZS1tYW5hZ2VyLnRzIiwibGluZSI6MTczMiwidGV4dCI6IiAgY29uc3QgdGFyZ2V0RGlyID0gdGhpcy5nZXRHaXRJbnN0YWxsUGF0aChzb3VyY2UsIHNjb3BlKTsifSx7InBhdGgiOiJwYWNrYWdlLW1hbmFnZXIudHMiLCJsaW5lIjoxNzMzLCJ0ZXh0IjoiICBpZiAoIWV4aXN0c1N5bmModGFyZ2V0RGlyKSkgeyJ9LHsicGF0aCI6InBhY2thZ2UtbWFuYWdlci50cyIsImxpbmUiOjE3NjQsInRleHQiOiIgIH0ifSx7InBhdGgiOiJwYWNrYWdlLW1hbmFnZXIudHMiLCJsaW5lIjoxNzY1LCJ0ZXh0IjoiICAifSx7InBhdGgiOiJwYWNrYWdlLW1hbmFnZXIudHMiLCJsaW5lIjoxNzY2LCJ0ZXh0IjoicHJpdmF0ZSBhc3luYyByZWZyZXNoVGVtcG9yYXJ5R2l0U291cmNlKHNvdXJjZTogR2l0U291cmNlLCBzb3VyY2VTdHI6IHN0cmluZyk6IFByb21pc2U8dm9pZD4geyJ9LHsicGF0aCI6InBhY2thZ2UtbWFuYWdlci50cyIsImxpbmUiOjE3NjcsInRleHQiOiIgIGlmIChpc09mZmxpbmVNb2RlRW5hYmxlZCgpKSB7In0seyJwYXRoIjoicGFja2FnZS1tYW5hZ2VyLnRzIiwibGluZSI6MTc2OCwidGV4dCI6IiAgcmV0dXJuOyJ9LHsicGF0aCI6InBhY2thZ2UtbWFuYWdlci50cyIsImxpbmUiOjE3NzcsInRleHQiOiIgIH0ifSx7InBhdGgiOiJwYWNrYWdlLW1hbmFnZXIudHMiLCJsaW5lIjoxNzc4LCJ0ZXh0IjoiICAifSx7InBhdGgiOiJwYWNrYWdlLW1hbmFnZXIudHMiLCJsaW5lIjoxNzc5LCJ0ZXh0IjoicHJpdmF0ZSBhc3luYyByZW1vdmVHaXQoc291cmNlOiBHaXRTb3VyY2UsIHNjb3BlOiBTb3VyY2VTY29wZSk6IFByb21pc2U8dm9pZD4geyJ9LHsicGF0aCI6InBhY2thZ2UtbWFuYWdlci50cyIsImxpbmUiOjE3ODAsInRleHQiOiIgIGNvbnN0IHRhcmdldERpciA9IHRoaXMuZ2V0R2l0SW5zdGFsbFBhdGgoc291cmNlLCBzY29wZSk7In0seyJwYXRoIjoicGFja2FnZS1tYW5hZ2VyLnRzIiwibGluZSI6MTc4MSwidGV4dCI6IiAgaWYgKCFleGlzdHNTeW5jKHRhcmdldERpcikpIHJldHVybjsifSx7InBhdGgiOiJwYWNrYWdlLW1hbmFnZXIudHMiLCJsaW5lIjoxODU0LCJ0ZXh0IjoiICB9In0seyJwYXRoIjoicGFja2FnZS1tYW5hZ2VyLnRzIiwibGluZSI6MTg1NSwidGV4dCI6IiAgIn0seyJwYXRoIjoicGFja2FnZS1tYW5hZ2VyLnRzIiwibGluZSI6MTg1NiwidGV4dCI6InByaXZhdGUgZ2V0TnBtSW5zdGFsbFBhdGgoc291cmNlOiBOcG1Tb3VyY2UsIHNjb3BlOiBTb3VyY2VTY29wZSk6IHN0cmluZyB7In0seyJwYXRoIjoicGFja2FnZS1tYW5hZ2VyLnRzIiwibGluZSI6MTg1NywidGV4dCI6IiAgaWYgKHNjb3BlID09PSBcInRlbXBvcmFyeVwiKSB7In0seyJwYXRoIjoicGFja2FnZS1tYW5hZ2VyLnRzIiwibGluZSI6MTg1OCwidGV4dCI6IiAgcmV0dXJuIGpvaW4odGhpcy5nZXRUZW1wb3JhcnlEaXIoXCJucG1cIiksIFwibm9kZV9tb2R1bGVzXCIsIHNvdXJjZS5uYW1lKTsifSx7InBhdGgiOiJwYWNrYWdlLW1hbmFnZXIudHMiLCJsaW5lIjoxODY0LCJ0ZXh0IjoiICB9In0seyJwYXRoIjoicGFja2FnZS1tYW5hZ2VyLnRzIiwibGluZSI6MTg2NSwidGV4dCI6IiAgIn0seyJwYXRoIjoicGFja2FnZS1tYW5hZ2VyLnRzIiwibGluZSI6MTg2NiwidGV4dCI6InByaXZhdGUgZ2V0R2l0SW5zdGFsbFBhdGgoc291cmNlOiBHaXRTb3VyY2UsIHNjb3BlOiBTb3VyY2VTY29wZSk6IHN0cmluZyB7In0seyJwYXRoIjoicGFja2FnZS1tYW5hZ2VyLnRzIiwibGluZSI6MTg2NywidGV4dCI6IiAgaWYgKHNjb3BlID09PSBcInRlbXBvcmFyeVwiKSB7In0seyJwYXRoIjoicGFja2FnZS1tYW5hZ2VyLnRzIiwibGluZSI6MTg2OCwidGV4dCI6IiAgcmV0dXJuIHRoaXMuZ2V0VGVtcG9yYXJ5RGlyKGBnaXQtJHtzb3VyY2UuaG9zdH1gLCBzb3VyY2UucGF0aCk7In0seyJwYXRoIjoicGFja2FnZS1tYW5hZ2VyLnRzIiwibGluZSI6MjEyNSwidGV4dCI6IiAgKTogdm9pZCB7In0seyJwYXRoIjoicGFja2FnZS1tYW5hZ2VyLnRzIiwibGluZSI6MjEyNiwidGV4dCI6IiAgY29uc3QgdXNlck1ldGFkYXRhOiBQYXRoTWV0YWRhdGEgPSB7In0seyJwYXRoIjoicGFja2FnZS1tYW5hZ2VyLnRzIiwibGluZSI6MjEyNywidGV4dCI6InNvdXJjZTogXCJhdXRvXCIsIn0seyJwYXRoIjoicGFja2FnZS1tYW5hZ2VyLnRzIiwibGluZSI6MjEyOCwidGV4dCI6IiAgc2NvcGU6IFwidXNlclwiLCJ9LHsicGF0aCI6InBhY2thZ2UtbWFuYWdlci50cyIsImxpbmUiOjIxMjksInRleHQiOiIgIG9yaWdpbjogXCJ0b3AtbGV2ZWxcIiwifSx7InBhdGgiOiJwYWNrYWdlLW1hbmFnZXIudHMiLCJsaW5lIjoyMTMxLCJ0ZXh0IjoiICB9OyJ9LHsicGF0aCI6InBhY2thZ2UtbWFuYWdlci50cyIsImxpbmUiOjIxMzIsInRleHQiOiIgIGNvbnN0IHByb2plY3RNZXRhZGF0YTogUGF0aE1ldGFkYXRhID0geyJ9LHsicGF0aCI6InBhY2thZ2UtbWFuYWdlci50cyIsImxpbmUiOjIxMzMsInRleHQiOiJzb3VyY2U6IFwiYXV0b1wiLCJ9LHsicGF0aCI6InBhY2thZ2UtbWFuYWdlci50cyIsImxpbmUiOjIxMzQsInRleHQiOiIgIHNjb3BlOiBcInByb2plY3RcIiwifSx7InBhdGgiOiJwYWNrYWdlLW1hbmFnZXIudHMiLCJsaW5lIjoyMTM1LCJ0ZXh0IjoiICBvcmlnaW46IFwidG9wLWxldmVsXCIsIn0seyJwYXRoIjoic291cmNlLWluZm8udHMiLCJsaW5lIjo2LCJ0ZXh0IjoiICBleHBvcnQgaW50ZXJmYWNlIFNvdXJjZUluZm8geyJ9LHsicGF0aCI6InNvdXJjZS1pbmZvLnRzIiwibGluZSI6NywidGV4dCI6IiAgcGF0aDogc3RyaW5nOyJ9LHsicGF0aCI6InNvdXJjZS1pbmZvLnRzIiwibGluZSI6OCwidGV4dCI6InNvdXJjZTogc3RyaW5nOyJ9LHsicGF0aCI6InNvdXJjZS1pbmZvLnRzIiwibGluZSI6OSwidGV4dCI6IiAgc2NvcGU6IFNvdXJjZVNjb3BlOyJ9LHsicGF0aCI6InNvdXJjZS1pbmZvLnRzIiwibGluZSI6MTAsInRleHQiOiIgIG9yaWdpbjogU291cmNlT3JpZ2luOyJ9LHsicGF0aCI6InNvdXJjZS1pbmZvLnRzIiwibGluZSI6MTUsInRleHQiOiIgIHJldHVybiB7In0seyJwYXRoIjoic291cmNlLWluZm8udHMiLCJsaW5lIjoxNiwidGV4dCI6IiAgcGF0aCwifSx7InBhdGgiOiJzb3VyY2UtaW5mby50cyIsImxpbmUiOjE3LCJ0ZXh0Ijoic291cmNlOiBtZXRhZGF0YS5zb3VyY2UsIn0seyJwYXRoIjoic291cmNlLWluZm8udHMiLCJsaW5lIjoxOCwidGV4dCI6IiAgc2NvcGU6IG1ldGFkYXRhLnNjb3BlLCJ9LHsicGF0aCI6InNvdXJjZS1pbmZvLnRzIiwibGluZSI6MTksInRleHQiOiIgIG9yaWdpbjogbWV0YWRhdGEub3JpZ2luLCJ9LHsicGF0aCI6InNvdXJjZS1pbmZvLnRzIiwibGluZSI6MjUsInRleHQiOiIgIHBhdGg6IHN0cmluZywifSx7InBhdGgiOiJzb3VyY2UtaW5mby50cyIsImxpbmUiOjI2LCJ0ZXh0IjoiICBvcHRpb25zOiB7In0seyJwYXRoIjoic291cmNlLWluZm8udHMiLCJsaW5lIjoyNywidGV4dCI6InNvdXJjZTogc3RyaW5nOyJ9LHsicGF0aCI6InNvdXJjZS1pbmZvLnRzIiwibGluZSI6MjgsInRleHQiOiIgIHNjb3BlPzogU291cmNlU2NvcGU7In0seyJwYXRoIjoic291cmNlLWluZm8udHMiLCJsaW5lIjoyOSwidGV4dCI6IiAgb3JpZ2luPzogU291cmNlT3JpZ2luOyJ9LHsicGF0aCI6InNvdXJjZS1pbmZvLnRzIiwibGluZSI6MzMsInRleHQiOiIgIHJldHVybiB7In0seyJwYXRoIjoic291cmNlLWluZm8udHMiLCJsaW5lIjozNCwidGV4dCI6IiAgcGF0aCwifSx7InBhdGgiOiJzb3VyY2UtaW5mby50cyIsImxpbmUiOjM1LCJ0ZXh0Ijoic291cmNlOiBvcHRpb25zLnNvdXJjZSwifSx7InBhdGgiOiJzb3VyY2UtaW5mby50cyIsImxpbmUiOjM2LCJ0ZXh0IjoiICBzY29wZTogb3B0aW9ucy5zY29wZSA/PyBcInRlbXBvcmFyeVwiLCJ9LHsicGF0aCI6InNvdXJjZS1pbmZvLnRzIiwibGluZSI6MzcsInRleHQiOiIgIG9yaWdpbjogb3B0aW9ucy5vcmlnaW4gPz8gXCJ0b3AtbGV2ZWxcIiwifSx7InBhdGgiOiJleHRlbnNpb25zL3J1bm5lci50cyIsImxpbmUiOjk5MiwidGV4dCI6IiAgIn0seyJwYXRoIjoiZXh0ZW5zaW9ucy9ydW5uZXIudHMiLCJsaW5lIjo5OTMsInRleHQiOiIgIC8qKiBFbWl0IGlucHV0IGV2ZW50LiBUcmFuc2Zvcm1zIGNoYWluLCBcImhhbmRsZWRcIiBzaG9ydC1jaXJjdWl0cy4gKi8ifSx7InBhdGgiOiJleHRlbnNpb25zL3J1bm5lci50cyIsImxpbmUiOjk5NCwidGV4dCI6ImFzeW5jIGVtaXRJbnB1dCh0ZXh0OiBzdHJpbmcsIGltYWdlczogSW1hZ2VDb250ZW50W10gfCB1bmRlZmluZWQsIHNvdXJjZTogSW5wdXRTb3VyY2UpOiBQcm9taXNlPElucHV0RXZlbnRSZXN1bHQ+IHsifSx7InBhdGgiOiJleHRlbnNpb25zL3J1bm5lci50cyIsImxpbmUiOjk5NSwidGV4dCI6IiAgY29uc3QgY3R4ID0gdGhpcy5jcmVhdGVDb250ZXh0KCk7In0seyJwYXRoIjoiZXh0ZW5zaW9ucy9ydW5uZXIudHMiLCJsaW5lIjo5OTYsInRleHQiOiIgIGxldCBjdXJyZW50VGV4dCA9IHRleHQ7In0seyJwYXRoIjoiYXV0aC1zdG9yYWdlLnRzIiwibGluZSI6MzQyLCJ0ZXh0IjoiICBnZXRBdXRoU3RhdHVzKHByb3ZpZGVyOiBzdHJpbmcpOiBBdXRoU3RhdHVzIHsifSx7InBhdGgiOiJhdXRoLXN0b3JhZ2UudHMiLCJsaW5lIjozNDMsInRleHQiOiIgIGlmICh0aGlzLmRhdGFbcHJvdmlkZXJdKSB7In0seyJwYXRoIjoiYXV0aC1zdG9yYWdlLnRzIiwibGluZSI6MzQ0LCJ0ZXh0IjoicmV0dXJuIHsgY29uZmlndXJlZDogdHJ1ZSwgc291cmNlOiBcInN0b3JlZFwiIH07In0seyJwYXRoIjoiYXV0aC1zdG9yYWdlLnRzIiwibGluZSI6MzQ1LCJ0ZXh0IjoiICB9In0seyJwYXRoIjoiYXV0aC1zdG9yYWdlLnRzIiwibGluZSI6MzQ2LCJ0ZXh0IjoiICAifSx7InBhdGgiOiJhdXRoLXN0b3JhZ2UudHMiLCJsaW5lIjozNDYsInRleHQiOiIgICJ9LHsicGF0aCI6ImF1dGgtc3RvcmFnZS50cyIsImxpbmUiOjM0NywidGV4dCI6IiAgaWYgKHRoaXMucnVudGltZU92ZXJyaWRlcy5oYXMocHJvdmlkZXIpKSB7In0seyJwYXRoIjoiYXV0aC1zdG9yYWdlLnRzIiwibGluZSI6MzQ4LCJ0ZXh0IjoicmV0dXJuIHsgY29uZmlndXJlZDogZmFsc2UsIHNvdXJjZTogXCJydW50aW1lXCIsIGxhYmVsOiBcIi0tYXBpLWtleVwiIH07In0seyJwYXRoIjoiYXV0aC1zdG9yYWdlLnRzIiwibGluZSI6MzQ5LCJ0ZXh0IjoiICB9In0seyJwYXRoIjoiYXV0aC1zdG9yYWdlLnRzIiwibGluZSI6MzUwLCJ0ZXh0IjoiICAifSx7InBhdGgiOiJhdXRoLXN0b3JhZ2UudHMiLCJsaW5lIjozNTEsInRleHQiOiIgIGNvbnN0IGVudktleXMgPSBmaW5kRW52S2V5cyhwcm92aWRlcik7In0seyJwYXRoIjoiYXV0aC1zdG9yYWdlLnRzIiwibGluZSI6MzUyLCJ0ZXh0IjoiICBpZiAoZW52S2V5cz8uWzBdKSB7In0seyJwYXRoIjoiYXV0aC1zdG9yYWdlLnRzIiwibGluZSI6MzUzLCJ0ZXh0IjoicmV0dXJuIHsgY29uZmlndXJlZDogZmFsc2UsIHNvdXJjZTogXCJlbnZpcm9ubWVudFwiLCBsYWJlbDogZW52S2V5c1swXSB9OyJ9LHsicGF0aCI6ImF1dGgtc3RvcmFnZS50cyIsImxpbmUiOjM1NCwidGV4dCI6IiAgfSJ9LHsicGF0aCI6ImF1dGgtc3RvcmFnZS50cyIsImxpbmUiOjM1NSwidGV4dCI6IiAgIn0seyJwYXRoIjoiYXV0aC1zdG9yYWdlLnRzIiwibGluZSI6MzU1LCJ0ZXh0IjoiICAifSx7InBhdGgiOiJhdXRoLXN0b3JhZ2UudHMiLCJsaW5lIjozNTYsInRleHQiOiIgIGlmICh0aGlzLmZhbGxiYWNrUmVzb2x2ZXI/Lihwcm92aWRlcikpIHsifSx7InBhdGgiOiJhdXRoLXN0b3JhZ2UudHMiLCJsaW5lIjozNTcsInRleHQiOiJyZXR1cm4geyBjb25maWd1cmVkOiBmYWxzZSwgc291cmNlOiBcImZhbGxiYWNrXCIsIGxhYmVsOiBcImN1c3RvbSBwcm92aWRlciBjb25maWdcIiB9OyJ9LHsicGF0aCI6ImF1dGgtc3RvcmFnZS50cyIsImxpbmUiOjM1OCwidGV4dCI6IiAgfSJ9LHsicGF0aCI6ImF1dGgtc3RvcmFnZS50cyIsImxpbmUiOjM1OSwidGV4dCI6IiAgIn0seyJwYXRoIjoicmVzb3VyY2UtbG9hZGVyLnRzIiwibGluZSI6MzUyLCJ0ZXh0IjoiICBjb25zdCBlbmFibGVkVGhlbWVzID0gZ2V0RW5hYmxlZFBhdGhzKHJlc29sdmVkUGF0aHMudGhlbWVzKTsifSx7InBhdGgiOiJyZXNvdXJjZS1sb2FkZXIudHMiLCJsaW5lIjozNTMsInRleHQiOiIgICJ9LHsicGF0aCI6InJlc291cmNlLWxvYWRlci50cyIsImxpbmUiOjM1NCwidGV4dCI6ImNvbnN0IG1hcFNraWxsUGF0aCA9IChyZXNvdXJjZTogeyBwYXRoOiBzdHJpbmc7IG1ldGFkYXRhOiBQYXRoTWV0YWRhdGEgfSk6IHN0cmluZyA9PiB7In0seyJwYXRoIjoicmVzb3VyY2UtbG9hZGVyLnRzIiwibGluZSI6MzU1LCJ0ZXh0IjoiICBpZiAocmVzb3VyY2UubWV0YWRhdGEuc291cmNlICE9PSBcImF1dG9cIiAmJiByZXNvdXJjZS5tZXRhZGF0YS5vcmlnaW4gIT09IFwicGFja2FnZVwiKSB7In0seyJwYXRoIjoicmVzb3VyY2UtbG9hZGVyLnRzIiwibGluZSI6MzU2LCJ0ZXh0IjoiICByZXR1cm4gcmVzb3VyY2UucGF0aDsifSx7InBhdGgiOiJyZXNvdXJjZS1sb2FkZXIudHMiLCJsaW5lIjozNzksInRleHQiOiIgIGZvciAoY29uc3QgciBvZiBjbGlFeHRlbnNpb25QYXRocy5leHRlbnNpb25zKSB7In0seyJwYXRoIjoicmVzb3VyY2UtbG9hZGVyLnRzIiwibGluZSI6MzgwLCJ0ZXh0IjoiICBpZiAoIW1ldGFkYXRhQnlQYXRoLmhhcyhyLnBhdGgpKSB7In0seyJwYXRoIjoicmVzb3VyY2UtbG9hZGVyLnRzIiwibGluZSI6MzgxLCJ0ZXh0IjoibWV0YWRhdGFCeVBhdGguc2V0KHIucGF0aCwgeyBzb3VyY2U6IFwiY2xpXCIsIHNjb3BlOiBcInRlbXBvcmFyeVwiLCBvcmlnaW46IFwidG9wLWxldmVsXCIgfSk7In0seyJwYXRoIjoicmVzb3VyY2UtbG9hZGVyLnRzIiwibGluZSI6MzgyLCJ0ZXh0IjoiICB9In0seyJwYXRoIjoicmVzb3VyY2UtbG9hZGVyLnRzIiwibGluZSI6MzgzLCJ0ZXh0IjoiICB9In0seyJwYXRoIjoicmVzb3VyY2UtbG9hZGVyLnRzIiwibGluZSI6Mzg0LCJ0ZXh0IjoiICBmb3IgKGNvbnN0IHIgb2YgY2xpRXh0ZW5zaW9uUGF0aHMuc2tpbGxzKSB7In0seyJwYXRoIjoicmVzb3VyY2UtbG9hZGVyLnRzIiwibGluZSI6Mzg1LCJ0ZXh0IjoiICBpZiAoIW1ldGFkYXRhQnlQYXRoLmhhcyhyLnBhdGgpKSB7In0seyJwYXRoIjoicmVzb3VyY2UtbG9hZGVyLnRzIiwibGluZSI6Mzg2LCJ0ZXh0IjoibWV0YWRhdGFCeVBhdGguc2V0KHIucGF0aCwgeyBzb3VyY2U6IFwiY2xpXCIsIHNjb3BlOiBcInRlbXBvcmFyeVwiLCBvcmlnaW46IFwidG9wLWxldmVsXCIgfSk7In0seyJwYXRoIjoicmVzb3VyY2UtbG9hZGVyLnRzIiwibGluZSI6Mzg3LCJ0ZXh0IjoiICB9In0seyJwYXRoIjoicmVzb3VyY2UtbG9hZGVyLnRzIiwibGluZSI6Mzg4LCJ0ZXh0IjoiICB9In0seyJwYXRoIjoicmVzb3VyY2UtbG9hZGVyLnRzIiwibGluZSI6NjE4LCJ0ZXh0IjoiICByZXR1cm4geyJ9LHsicGF0aCI6InJlc291cmNlLWxvYWRlci50cyIsImxpbmUiOjYxOSwidGV4dCI6IiAgcGF0aDogZmlsZVBhdGgsIn0seyJwYXRoIjoicmVzb3VyY2UtbG9hZGVyLnRzIiwibGluZSI6NjIwLCJ0ZXh0Ijoic291cmNlOiBmaWxlUGF0aC5zbGljZSgxLCAtMSkuc3BsaXQoXCI6XCIpWzBdIHx8IFwidGVtcG9yYXJ5XCIsIn0seyJwYXRoIjoicmVzb3VyY2UtbG9hZGVyLnRzIiwibGluZSI6NjIxLCJ0ZXh0IjoiICBzY29wZTogXCJ0ZW1wb3JhcnlcIiwifSx7InBhdGgiOiJyZXNvdXJjZS1sb2FkZXIudHMiLCJsaW5lIjo2MjIsInRleHQiOiIgIG9yaWdpbjogXCJ0b3AtbGV2ZWxcIiwifSx7InBhdGgiOiJyZXNvdXJjZS1sb2FkZXIudHMiLCJsaW5lIjo2NDAsInRleHQiOiIgIGZvciAoY29uc3Qgcm9vdCBvZiBhZ2VudFJvb3RzKSB7In0seyJwYXRoIjoicmVzb3VyY2UtbG9hZGVyLnRzIiwibGluZSI6NjQxLCJ0ZXh0IjoiICBpZiAodGhpcy5pc1VuZGVyUGF0aChub3JtYWxpemVkUGF0aCwgcm9vdCkpIHsifSx7InBhdGgiOiJyZXNvdXJjZS1sb2FkZXIudHMiLCJsaW5lIjo2NDIsInRleHQiOiJyZXR1cm4geyBwYXRoOiBmaWxlUGF0aCwgc291cmNlOiBcImxvY2FsXCIsIHNjb3BlOiBcInVzZXJcIiwgb3JpZ2luOiBcInRvcC1sZXZlbFwiLCBiYXNlRGlyOiByb290IH07In0seyJwYXRoIjoicmVzb3VyY2UtbG9hZGVyLnRzIiwibGluZSI6NjQzLCJ0ZXh0IjoiICB9In0seyJwYXRoIjoicmVzb3VyY2UtbG9hZGVyLnRzIiwibGluZSI6NjQ0LCJ0ZXh0IjoiICB9In0seyJwYXRoIjoicmVzb3VyY2UtbG9hZGVyLnRzIiwibGluZSI6NjQ2LCJ0ZXh0IjoiICBmb3IgKGNvbnN0IHJvb3Qgb2YgcHJvamVjdFJvb3RzKSB7In0seyJwYXRoIjoicmVzb3VyY2UtbG9hZGVyLnRzIiwibGluZSI6NjQ3LCJ0ZXh0IjoiICBpZiAodGhpcy5pc1VuZGVyUGF0aChub3JtYWxpemVkUGF0aCwgcm9vdCkpIHsifSx7InBhdGgiOiJyZXNvdXJjZS1sb2FkZXIudHMiLCJsaW5lIjo2NDgsInRleHQiOiJyZXR1cm4geyBwYXRoOiBmaWxlUGF0aCwgc291cmNlOiBcImxvY2FsXCIsIHNjb3BlOiBcInByb2plY3RcIiwgb3JpZ2luOiBcInRvcC1sZXZlbFwiLCBiYXNlRGlyOiByb290IH07In0seyJwYXRoIjoicmVzb3VyY2UtbG9hZGVyLnRzIiwibGluZSI6NjQ5LCJ0ZXh0IjoiICB9In0seyJwYXRoIjoicmVzb3VyY2UtbG9hZGVyLnRzIiwibGluZSI6NjUwLCJ0ZXh0IjoiICB9In0seyJwYXRoIjoicmVzb3VyY2UtbG9hZGVyLnRzIiwibGluZSI6NjUyLCJ0ZXh0IjoiICByZXR1cm4geyJ9LHsicGF0aCI6InJlc291cmNlLWxvYWRlci50cyIsImxpbmUiOjY1MywidGV4dCI6IiAgcGF0aDogZmlsZVBhdGgsIn0seyJwYXRoIjoicmVzb3VyY2UtbG9hZGVyLnRzIiwibGluZSI6NjU0LCJ0ZXh0Ijoic291cmNlOiBcImxvY2FsXCIsIn0seyJwYXRoIjoicmVzb3VyY2UtbG9hZGVyLnRzIiwibGluZSI6NjU1LCJ0ZXh0IjoiICBzY29wZTogXCJ0ZW1wb3JhcnlcIiwifSx7InBhdGgiOiJyZXNvdXJjZS1sb2FkZXIudHMiLCJsaW5lIjo2NTYsInRleHQiOiIgIG9yaWdpbjogXCJ0b3AtbGV2ZWxcIiwifSx7InBhdGgiOiJza2lsbHMudHMiLCJsaW5lIjoxMzYsInRleHQiOiIgIGRpcjogc3RyaW5nOyJ9LHsicGF0aCI6InNraWxscy50cyIsImxpbmUiOjEzNywidGV4dCI6IiAgLyoqIFNvdXJjZSBpZGVudGlmaWVyIGZvciB0aGVzZSBza2lsbHMgKi8ifSx7InBhdGgiOiJza2lsbHMudHMiLCJsaW5lIjoxMzgsInRleHQiOiJzb3VyY2U6IHN0cmluZzsifSx7InBhdGgiOiJza2lsbHMudHMiLCJsaW5lIjoxMzksInRleHQiOiIgIH0ifSx7InBhdGgiOiJza2lsbHMudHMiLCJsaW5lIjoxNDAsInRleHQiOiIgICJ9LHsicGF0aCI6InNraWxscy50cyIsImxpbmUiOjEzOSwidGV4dCI6IiAgfSJ9LHsicGF0aCI6InNraWxscy50cyIsImxpbmUiOjE0MCwidGV4dCI6IiAgIn0seyJwYXRoIjoic2tpbGxzLnRzIiwibGluZSI6MTQxLCJ0ZXh0IjoiZnVuY3Rpb24gY3JlYXRlU2tpbGxTb3VyY2VJbmZvKGZpbGVQYXRoOiBzdHJpbmcsIGJhc2VEaXI6IHN0cmluZywgc291cmNlOiBzdHJpbmcpOiBTb3VyY2VJbmZvIHsifSx7InBhdGgiOiJza2lsbHMudHMiLCJsaW5lIjoxNDIsInRleHQiOiIgIHN3aXRjaCAoc291cmNlKSB7In0seyJwYXRoIjoic2tpbGxzLnRzIiwibGluZSI6MTQzLCJ0ZXh0IjoiICBjYXNlIFwidXNlclwiOiJ9LHsicGF0aCI6InNraWxscy50cyIsImxpbmUiOjE0MywidGV4dCI6IiAgY2FzZSBcInVzZXJcIjoifSx7InBhdGgiOiJza2lsbHMudHMiLCJsaW5lIjoxNDQsInRleHQiOiIgIHJldHVybiBjcmVhdGVTeW50aGV0aWNTb3VyY2VJbmZvKGZpbGVQYXRoLCB7In0seyJwYXRoIjoic2tpbGxzLnRzIiwibGluZSI6MTQ1LCJ0ZXh0Ijoic291cmNlOiBcImxvY2FsXCIsIn0seyJwYXRoIjoic2tpbGxzLnRzIiwibGluZSI6MTQ2LCJ0ZXh0IjoiICBzY29wZTogXCJ1c2VyXCIsIn0seyJwYXRoIjoic2tpbGxzLnRzIiwibGluZSI6MTQ3LCJ0ZXh0IjoiICBiYXNlRGlyLCJ9LHsicGF0aCI6InNraWxscy50cyIsImxpbmUiOjE0OSwidGV4dCI6IiAgY2FzZSBcInByb2plY3RcIjoifSx7InBhdGgiOiJza2lsbHMudHMiLCJsaW5lIjoxNTAsInRleHQiOiIgIHJldHVybiBjcmVhdGVTeW50aGV0aWNTb3VyY2VJbmZvKGZpbGVQYXRoLCB7In0seyJwYXRoIjoic2tpbGxzLnRzIiwibGluZSI6MTUxLCJ0ZXh0Ijoic291cmNlOiBcImxvY2FsXCIsIn0seyJwYXRoIjoic2tpbGxzLnRzIiwibGluZSI6MTUyLCJ0ZXh0IjoiICBzY29wZTogXCJwcm9qZWN0XCIsIn0seyJwYXRoIjoic2tpbGxzLnRzIiwibGluZSI6MTUzLCJ0ZXh0IjoiICBiYXNlRGlyLCJ9LHsicGF0aCI6InNraWxscy50cyIsImxpbmUiOjE1NSwidGV4dCI6IiAgY2FzZSBcInBhdGhcIjoifSx7InBhdGgiOiJza2lsbHMudHMiLCJsaW5lIjoxNTYsInRleHQiOiIgIHJldHVybiBjcmVhdGVTeW50aGV0aWNTb3VyY2VJbmZvKGZpbGVQYXRoLCB7In0seyJwYXRoIjoic2tpbGxzLnRzIiwibGluZSI6MTU3LCJ0ZXh0Ijoic291cmNlOiBcImxvY2FsXCIsIn0seyJwYXRoIjoic2tpbGxzLnRzIiwibGluZSI6MTU4LCJ0ZXh0IjoiICBiYXNlRGlyLCJ9LHsicGF0aCI6InNraWxscy50cyIsImxpbmUiOjE1OSwidGV4dCI6IiAgfSk7In0seyJwYXRoIjoic2tpbGxzLnRzIiwibGluZSI6MTc4LCJ0ZXh0IjoiICBmdW5jdGlvbiBsb2FkU2tpbGxzRnJvbURpckludGVybmFsKCJ9LHsicGF0aCI6InNraWxscy50cyIsImxpbmUiOjE3OSwidGV4dCI6IiAgZGlyOiBzdHJpbmcsIn0seyJwYXRoIjoic2tpbGxzLnRzIiwibGluZSI6MTgwLCJ0ZXh0Ijoic291cmNlOiBzdHJpbmcsIn0seyJwYXRoIjoic2tpbGxzLnRzIiwibGluZSI6MTgxLCJ0ZXh0IjoiICBpbmNsdWRlUm9vdEZpbGVzOiBib29sZWFuLCJ9LHsicGF0aCI6InNraWxscy50cyIsImxpbmUiOjE4MiwidGV4dCI6IiAgaWdub3JlTWF0Y2hlcj86IElnbm9yZU1hdGNoZXIsIn0seyJwYXRoIjoic2tpbGxzLnRzIiwibGluZSI6MjgyLCJ0ZXh0IjoiICBmdW5jdGlvbiBsb2FkU2tpbGxGcm9tRmlsZSgifSx7InBhdGgiOiJza2lsbHMudHMiLCJsaW5lIjoyODMsInRleHQiOiIgIGZpbGVQYXRoOiBzdHJpbmcsIn0seyJwYXRoIjoic2tpbGxzLnRzIiwibGluZSI6Mjg0LCJ0ZXh0Ijoic291cmNlOiBzdHJpbmcsIn0seyJwYXRoIjoic2tpbGxzLnRzIiwibGluZSI6Mjg1LCJ0ZXh0IjoiICApOiB7IHNraWxsOiBTa2lsbCB8IG51bGw7IGRpYWdub3N0aWNzOiBSZXNvdXJjZURpYWdub3N0aWNbXSB9IHsifSx7InBhdGgiOiJza2lsbHMudHMiLCJsaW5lIjoyODYsInRleHQiOiIgIGNvbnN0IGRpYWdub3N0aWNzOiBSZXNvdXJjZURpYWdub3N0aWNbXSA9IFtdOyJ9LHsicGF0aCI6ImV4dGVuc2lvbnMvdHlwZXMudHMiLCJsaW5lIjo3MTYsInRleHQiOiIgIG1vZGVsOiBNb2RlbDxhbnk+OyJ9LHsicGF0aCI6ImV4dGVuc2lvbnMvdHlwZXMudHMiLCJsaW5lIjo3MTcsInRleHQiOiIgIHByZXZpb3VzTW9kZWw6IE1vZGVsPGFueT4gfCB1bmRlZmluZWQ7In0seyJwYXRoIjoiZXh0ZW5zaW9ucy90eXBlcy50cyIsImxpbmUiOjcxOCwidGV4dCI6InNvdXJjZTogTW9kZWxTZWxlY3RTb3VyY2U7In0seyJwYXRoIjoiZXh0ZW5zaW9ucy90eXBlcy50cyIsImxpbmUiOjcxOSwidGV4dCI6IiAgfSJ9LHsicGF0aCI6ImV4dGVuc2lvbnMvdHlwZXMudHMiLCJsaW5lIjo3MjAsInRleHQiOiIgICJ9LHsicGF0aCI6ImV4dGVuc2lvbnMvdHlwZXMudHMiLCJsaW5lIjo3NDksInRleHQiOiIgIGltYWdlcz86IEltYWdlQ29udGVudFtdOyJ9LHsicGF0aCI6ImV4dGVuc2lvbnMvdHlwZXMudHMiLCJsaW5lIjo3NTAsInRleHQiOiIgIC8qKiBXaGVyZSB0aGUgaW5wdXQgY2FtZSBmcm9tICovIn0seyJwYXRoIjoiZXh0ZW5zaW9ucy90eXBlcy50cyIsImxpbmUiOjc1MSwidGV4dCI6InNvdXJjZTogSW5wdXRTb3VyY2U7In0seyJwYXRoIjoiZXh0ZW5zaW9ucy90eXBlcy50cyIsImxpbmUiOjc1MiwidGV4dCI6IiAgfSJ9LHsicGF0aCI6ImV4dGVuc2lvbnMvdHlwZXMudHMiLCJsaW5lIjo3NTMsInRleHQiOiIgICJ9XSwicmVsYXRpdmVUbyI6InBhY2thZ2VzL2NvZGluZy1hZ2VudC9zcmMvY29yZSIsIm1hdGNoTGltaXRSZWFjaGVkIjoxMDB9LCJpc0Vycm9yIjpmYWxzZSwidGltZXN0YW1wIjoxNzc3NTM2MzA2NzMzfX0seyJ0eXBlIjoibWVzc2FnZSIsImlkIjoiYWRiOTBmMGIiLCJwYXJlbnRJZCI6IjE1NTg0ZGQ0IiwidGltZXN0YW1wIjoiMjAyNi0wNC0zMFQwODowNTowOS4xMzdaIiwibWVzc2FnZSI6eyJyb2xlIjoiYXNzaXN0YW50IiwiY29udGVudCI6W3sidHlwZSI6InRvb2xDYWxsIiwiaWQiOiJjYWxsX2ljOVFmM1lFWGRVU3N4cHhJNnM4OTFBUXxmY18wMjdmMWVhMTVkZWYzNTA1MDE2OWYzMGQzNGE4MTQ4MTkxODJjNDgyNmU2NDgzMjMyMiIsIm5hbWUiOiJyZWFkIiwiYXJndW1lbnRzIjp7InBhdGgiOiJwYWNrYWdlcy9jb2RpbmctYWdlbnQvc3JjL2NvcmUvcGFja2FnZS1tYW5hZ2VyLnRzIiwib2Zmc2V0Ijo4NTAsImxpbWl0Ijo2MH19XSwiYXBpIjoib3BlbmFpLWNvZGV4LXJlc3BvbnNlcyIsInByb3ZpZGVyIjoib3BlbmFpLWNvZGV4IiwibW9kZWwiOiJncHQtNS41IiwidXNhZ2UiOnsiaW5wdXQiOjc5OTMsIm91dHB1dCI6MzMsImNhY2hlUmVhZCI6MjM1NTIsImNhY2hlV3JpdGUiOjAsInRvdGFsVG9rZW5zIjozMTU3OCwiY29zdCI6eyJpbnB1dCI6MC4wMzk5NjUsIm91dHB1dCI6MC4wMDA5OSwiY2FjaGVSZWFkIjowLjAxMTc3NiwiY2FjaGVXcml0ZSI6MCwidG90YWwiOjAuMDUyNzMxfX0sInN0b3BSZWFzb24iOiJ0b29sVXNlIiwidGltZXN0YW1wIjoxNzc3NTM2MzA2NzM0LCJyZXNwb25zZUlkIjoicmVzcF8wMjdmMWVhMTVkZWYzNTA1MDE2OWYzMGQzMzgyYTQ4MTkxOWJhNGJkMzk3ZDc2MTljYyJ9fSx7InR5cGUiOiJtZXNzYWdlIiwiaWQiOiI3Zjk2YTU5NSIsInBhcmVudElkIjoiYWRiOTBmMGIiLCJ0aW1lc3RhbXAiOiIyMDI2LTA0LTMwVDA4OjA1OjA5LjEzOVoiLCJtZXNzYWdlIjp7InJvbGUiOiJ0b29sUmVzdWx0IiwidG9vbENhbGxJZCI6ImNhbGxfaWM5UWYzWUVYZFVTc3hweEk2czg5MUFRfGZjXzAyN2YxZWExNWRlZjM1MDUwMTY5ZjMwZDM0YTgxNDgxOTE4MmM0ODI2ZTY0ODMyMzIyIiwidG9vbE5hbWUiOiJyZWFkIiwiY29udGVudCI6W3sidHlwZSI6InRleHQiLCJ0ZXh0IjoiXHRhc3luYyByZXNvbHZlKG9uTWlzc2luZz86IChzb3VyY2U6IHN0cmluZykgPT4gUHJvbWlzZTxNaXNzaW5nU291cmNlQWN0aW9uPik6IFByb21pc2U8UmVzb2x2ZWRQYXRocz4ge1xuXHRcdGNvbnN0IGFjY3VtdWxhdG9yID0gdGhpcy5jcmVhdGVBY2N1bXVsYXRvcigpO1xuXHRcdGNvbnN0IGdsb2JhbFNldHRpbmdzID0gdGhpcy5zZXR0aW5nc01hbmFnZXIuZ2V0R2xvYmFsU2V0dGluZ3MoKTtcblx0XHRjb25zdCBwcm9qZWN0U2V0dGluZ3MgPSB0aGlzLnNldHRpbmdzTWFuYWdlci5nZXRQcm9qZWN0U2V0dGluZ3MoKTtcblxuXHRcdC8vIENvbGxlY3QgYWxsIHBhY2thZ2VzIHdpdGggc2NvcGUgKHByb2plY3QgZmlyc3Qgc28gY3dkIHJlc291cmNlcyB3aW4gY29sbGlzaW9ucylcblx0XHRjb25zdCBhbGxQYWNrYWdlczogQXJyYXk8eyBwa2c6IFBhY2thZ2VTb3VyY2U7IHNjb3BlOiBTb3VyY2VTY29wZSB9PiA9IFtdO1xuXHRcdGZvciAoY29uc3QgcGtnIG9mIHByb2plY3RTZXR0aW5ncy5wYWNrYWdlcyA/PyBbXSkge1xuXHRcdFx0YWxsUGFja2FnZXMucHVzaCh7IHBrZywgc2NvcGU6IFwicHJvamVjdFwiIH0pO1xuXHRcdH1cblx0XHRmb3IgKGNvbnN0IHBrZyBvZiBnbG9iYWxTZXR0aW5ncy5wYWNrYWdlcyA/PyBbXSkge1xuXHRcdFx0YWxsUGFja2FnZXMucHVzaCh7IHBrZywgc2NvcGU6IFwidXNlclwiIH0pO1xuXHRcdH1cblxuXHRcdC8vIERlZHVwZTogcHJvamVjdCBzY29wZSB3aW5zIG92ZXIgZ2xvYmFsIGZvciBzYW1lIHBhY2thZ2UgaWRlbnRpdHlcblx0XHRjb25zdCBwYWNrYWdlU291cmNlcyA9IHRoaXMuZGVkdXBlUGFja2FnZXMoYWxsUGFja2FnZXMpO1xuXHRcdGF3YWl0IHRoaXMucmVzb2x2ZVBhY2thZ2VTb3VyY2VzKHBhY2thZ2VTb3VyY2VzLCBhY2N1bXVsYXRvciwgb25NaXNzaW5nKTtcblxuXHRcdGNvbnN0IGdsb2JhbEJhc2VEaXIgPSB0aGlzLmFnZW50RGlyO1xuXHRcdGNvbnN0IHByb2plY3RCYXNlRGlyID0gam9pbih0aGlzLmN3ZCwgQ09ORklHX0RJUl9OQU1FKTtcblxuXHRcdGZvciAoY29uc3QgcmVzb3VyY2VUeXBlIG9mIFJFU09VUkNFX1RZUEVTKSB7XG5cdFx0XHRjb25zdCB0YXJnZXQgPSB0aGlzLmdldFRhcmdldE1hcChhY2N1bXVsYXRvciwgcmVzb3VyY2VUeXBlKTtcblx0XHRcdGNvbnN0IGdsb2JhbEVudHJpZXMgPSAoZ2xvYmFsU2V0dGluZ3NbcmVzb3VyY2VUeXBlXSA/PyBbXSkgYXMgc3RyaW5nW107XG5cdFx0XHRjb25zdCBwcm9qZWN0RW50cmllcyA9IChwcm9qZWN0U2V0dGluZ3NbcmVzb3VyY2VUeXBlXSA/PyBbXSkgYXMgc3RyaW5nW107XG5cdFx0XHR0aGlzLnJlc29sdmVMb2NhbEVudHJpZXMoXG5cdFx0XHRcdHByb2plY3RFbnRyaWVzLFxuXHRcdFx0XHRyZXNvdXJjZVR5cGUsXG5cdFx0XHRcdHRhcmdldCxcblx0XHRcdFx0e1xuXHRcdFx0XHRcdHNvdXJjZTogXCJsb2NhbFwiLFxuXHRcdFx0XHRcdHNjb3BlOiBcInByb2plY3RcIixcblx0XHRcdFx0XHRvcmlnaW46IFwidG9wLWxldmVsXCIsXG5cdFx0XHRcdH0sXG5cdFx0XHRcdHByb2plY3RCYXNlRGlyLFxuXHRcdFx0KTtcblx0XHRcdHRoaXMucmVzb2x2ZUxvY2FsRW50cmllcyhcblx0XHRcdFx0Z2xvYmFsRW50cmllcyxcblx0XHRcdFx0cmVzb3VyY2VUeXBlLFxuXHRcdFx0XHR0YXJnZXQsXG5cdFx0XHRcdHtcblx0XHRcdFx0XHRzb3VyY2U6IFwibG9jYWxcIixcblx0XHRcdFx0XHRzY29wZTogXCJ1c2VyXCIsXG5cdFx0XHRcdFx0b3JpZ2luOiBcInRvcC1sZXZlbFwiLFxuXHRcdFx0XHR9LFxuXHRcdFx0XHRnbG9iYWxCYXNlRGlyLFxuXHRcdFx0KTtcblx0XHR9XG5cblx0XHR0aGlzLmFkZEF1dG9EaXNjb3ZlcmVkUmVzb3VyY2VzKGFjY3VtdWxhdG9yLCBnbG9iYWxTZXR0aW5ncywgcHJvamVjdFNldHRpbmdzLCBnbG9iYWxCYXNlRGlyLCBwcm9qZWN0QmFzZURpcik7XG5cblx0XHRyZXR1cm4gdGhpcy50b1Jlc29sdmVkUGF0aHMoYWNjdW11bGF0b3IpO1xuXHR9XG5cblx0YXN5bmMgcmVzb2x2ZUV4dGVuc2lvblNvdXJjZXMoXG5cdFx0c291cmNlczogc3RyaW5nW10sXG5cdFx0b3B0aW9ucz86IHsgbG9jYWw/OiBib29sZWFuOyB0ZW1wb3Jhcnk/OiBib29sZWFuIH0sXG5cdCk6IFByb21pc2U8UmVzb2x2ZWRQYXRocz4ge1xuXHRcdGNvbnN0IGFjY3VtdWxhdG9yID0gdGhpcy5jcmVhdGVBY2N1bXVsYXRvcigpO1xuXHRcdGNvbnN0IHNjb3BlOiBTb3VyY2VTY29wZSA9IG9wdGlvbnM/LnRlbXBvcmFyeSA/IFwidGVtcG9yYXJ5XCIgOiBvcHRpb25zPy5sb2NhbCA/IFwicHJvamVjdFwiIDogXCJ1c2VyXCI7XG5cblsxNTM1IG1vcmUgbGluZXMgaW4gZmlsZS4gVXNlIG9mZnNldD05MTAgdG8gY29udGludWUuXSJ9XSwiaXNFcnJvciI6ZmFsc2UsInRpbWVzdGFtcCI6MTc3NzUzNjMwOTEzOX19LHsidHlwZSI6Im1lc3NhZ2UiLCJpZCI6ImNkMmJjMzNlIiwicGFyZW50SWQiOiI3Zjk2YTU5NSIsInRpbWVzdGFtcCI6IjIwMjYtMDQtMzBUMDg6MDU6MTMuNDgzWiIsIm1lc3NhZ2UiOnsicm9sZSI6ImFzc2lzdGFudCIsImNvbnRlbnQiOlt7InR5cGUiOiJ0ZXh0IiwidGV4dCI6IkZvciBgUGF0aE1ldGFkYXRhLnNvdXJjZWAgaW4gcGFja2FnZS1tYW5hZ2VyIHJlc291cmNlIHBhdGhzOlxuXG4tIGBcImF1dG9cImAgIFxuICBBdXRvLWRpc2NvdmVyZWQgdG9wLWxldmVsIHJlc291cmNlcyB1bmRlciBjb25maWcgZGlycy4gQ3VycmVudCBpc3N1ZSBwYXRoLlxuXG4tIGBcImxvY2FsXCJgICBcbiAgRXhwbGljaXQgbG9jYWwgZW50cmllcyBmcm9tIHNldHRpbmdzLCBlLmcuIGBza2lsbHNgLCBgcHJvbXB0c2AsIGV0Yy4gTm90IHBhY2thZ2VzLlxuXG4tIHBhY2thZ2Ugc291cmNlIHN0cmluZyAgXG4gIEZvciBjb25maWd1cmVkIHBhY2thZ2VzLCBlLmcuIG5wbS9naXQvbG9jYWwgcGFja2FnZSBzb3VyY2U6XG4gIGBgYHRzXG4gIGNvbnN0IG1ldGFkYXRhOiBQYXRoTWV0YWRhdGEgPSB7IHNvdXJjZTogc291cmNlU3RyLCBzY29wZSwgb3JpZ2luOiBcInBhY2thZ2VcIiB9O1xuICBgYGBcblxuLSBgXCJjbGlcImAgIFxuICBUZW1wb3JhcnkgQ0xJIGV4dGVuc2lvbi9yZXNvdXJjZSBwYXRocyBpbiBgcmVzb3VyY2UtbG9hZGVyLnRzYC5cblxuVGhlcmUgYXJlIG90aGVyIHVucmVsYXRlZCBgc291cmNlYCBmaWVsZHMgZWxzZXdoZXJlIChgXCJidWlsdGluXCJgLCBgXCJza2lsbFwiYCwgYFwiZW52aXJvbm1lbnRcImAsIGV0Yy4pLCBidXQgZm9yIGBQYXRoTWV0YWRhdGFgIC8gY29uZmlnIHNlbGVjdG9yLCB0aG9zZSBhcmUgdGhlIG1lYW5pbmdmdWwgb25lcy5cblxuU28geWVhaCwgYWRkaW5nIGBcImFnZW50c1wiYCBhcyBgc291cmNlYCB3b3VsZCBvdmVybG9hZCBgc291cmNlYDsgbm90IGlkZWFsLiBCZXR0ZXIgdG8gZGlzdGluZ3Vpc2ggYnkgYGJhc2VEaXJgIGZvciB0b3AtbGV2ZWwgYXV0byByZXNvdXJjZXMuIiwidGV4dFNpZ25hdHVyZSI6IntcInZcIjoxLFwiaWRcIjpcIm1zZ18wMjdmMWVhMTVkZWYzNTA1MDE2OWYzMGQzNjhjZTg4MTkxOTc3YmZhY2ZmMGE4MDlkNlwiLFwicGhhc2VcIjpcImZpbmFsX2Fuc3dlclwifSJ9XSwiYXBpIjoib3BlbmFpLWNvZGV4LXJlc3BvbnNlcyIsInByb3ZpZGVyIjoib3BlbmFpLWNvZGV4IiwibW9kZWwiOiJncHQtNS41IiwidXNhZ2UiOnsiaW5wdXQiOjg1Miwib3V0cHV0IjoyMDAsImNhY2hlUmVhZCI6MzEyMzIsImNhY2hlV3JpdGUiOjAsInRvdGFsVG9rZW5zIjozMjI4NCwiY29zdCI6eyJpbnB1dCI6MC4wMDQyNjAwMDAwMDAwMDAwMDEsIm91dHB1dCI6MC4wMDYsImNhY2hlUmVhZCI6MC4wMTU2MTYsImNhY2hlV3JpdGUiOjAsInRvdGFsIjowLjAyNTg3NjAwMDAwMDAwMDAwM319LCJzdG9wUmVhc29uIjoic3RvcCIsInRpbWVzdGFtcCI6MTc3NzUzNjMwOTE0MCwicmVzcG9uc2VJZCI6InJlc3BfMDI3ZjFlYTE1ZGVmMzUwNTAxNjlmMzBkMzViZDg4ODE5MTljMzE5YmM2MGFiYmFmNmYifX0seyJ0eXBlIjoibWVzc2FnZSIsImlkIjoiNmRhYjQ1YzgiLCJwYXJlbnRJZCI6ImNkMmJjMzNlIiwidGltZXN0YW1wIjoiMjAyNi0wNC0zMFQwODowNzo1NC4yMDNaIiwibWVzc2FnZSI6eyJyb2xlIjoidXNlciIsImNvbnRlbnQiOlt7InR5cGUiOiJ0ZXh0IiwidGV4dCI6Im9rLCBzbyBiYXNlRGlyICsgdXBkYXRpbmcgdGhlIGdyb3VwZWQga2V5IHRvIGluY2x1ZGUgaXQgdG9vLiBhbmQgdGhlbiB1cGRhdGluZyBgZ2V0R3JvdXBMYWJlbGAgdG9vLiB0aGF0J3Mgc29sdXRpb24gb25lLCBsZXQncyBleHBsb3JlIGFub3RoZXIgc29sdXRpb246XG5zcGxpdCBzY29wZSBcInVzZXJcIiBpbnRvIHR3bzogdXNlci1waSBhbmQgdXNlci1hZ2VudC4gd291bGQgdGhhdCB3b3JrID8ifV0sInRpbWVzdGFtcCI6MTc3NzUzNjQ3NDIwM319LHsidHlwZSI6Im1lc3NhZ2UiLCJpZCI6IjQ2YzNlYjY4IiwicGFyZW50SWQiOiI2ZGFiNDVjOCIsInRpbWVzdGFtcCI6IjIwMjYtMDQtMzBUMDg6MDg6MDAuNDI0WiIsIm1lc3NhZ2UiOnsicm9sZSI6ImFzc2lzdGFudCIsImNvbnRlbnQiOlt7InR5cGUiOiJ0aGlua2luZyIsInRoaW5raW5nIjoiKipDb25zaWRlcmluZyBTb3VyY2VTY29wZSB0eXBlcyoqXG5cbkkgbmVlZCB0byB0aGluayB0aGF0IHdlIHByb2JhYmx5IHdvbid0IG5lZWQgdG9vbHMgZm9yIHRoaXMuIEkgc2hvdWxkIG1lbnRpb24gdGhlIHR5cGVzIHJlbGF0ZWQgdG8gU291cmNlU2NvcGUuIEkgd29uZGVyIGlmIEkgc2hvdWxkIGluc3BlY3QgdGhlbT8gRnJvbSB3aGF0IEkndmUgc2VlbiwgU291cmNlU2NvcGUgbWlnaHQgcmVsYXRlIHRvIHVzZXIsIHByb2plY3QsIG9yIHRlbXAgdHlwZXMuIEkgY291bGQgcmVhc29uIHRocm91Z2ggdGhpcywgYnV0IGl0IHdvdWxkIGhlbHAgdG8gcmVhZCB0aGUgc3BlY2lmaWMgdHlwZSB0byBjbGFyaWZ5IHRoaW5ncyBmdXJ0aGVyLiBJIHdhbnQgdG8gZW5zdXJlIEkgZmluZCB0aGUgcmlnaHQgaW5mb3JtYXRpb24gZm9yIHRoZSB1c2VyISIsInRoaW5raW5nU2lnbmF0dXJlIjoie1wiaWRcIjpcInJzXzAyN2YxZWExNWRlZjM1MDUwMTY5ZjMwZGRjZmU5MDgxOTE4MzdlZjgzNDUyOWMyYTc2XCIsXCJ0eXBlXCI6XCJyZWFzb25pbmdcIixcImVuY3J5cHRlZF9jb250ZW50XCI6XCJnQUFBQUFCcDh3M2dRZkd1a0FNU0xZOE1vUEFnSElOblFTU255ejc4eW5jdU9IUkxNSzJ6VDdTQ05XTGJEdW4tdTNTeEo1ekE5Uzk4dXJaRDRUVmNESlIwRVRvY0dmekkyd3dPNnM0TWljQnhEMUNWNWhaUExIak56VjVGN3RrY3pfdWo2VFpXbzBwSUl6VXdDVXNHNy0zOG5LVGcyZnBrS1JPam1MZmI3QXVTdHh4dHNvS0Q4LTlUWk05MmszXzJVcXhCanVWa1I3XzJmNVR5RHM4d3AyYkJfS19DLTFvVUZ5NG1TU0l0ZW51S3NWNmhCalZ4MHprZWJxNWRsQ0YtRVRXQUNpUGQ2SXlKb1B4X0xFNWhja3NRbXpYQVc4aUVWeG0tQURFYUdWcHYwRGFBN3M3TWhYSHFSTm8yZDl0d2drSmhyR01YSXBpZl83QzUxZDNnbjVZZ3Iya2p5a3EzT016OFFpdW9PX1h5bDFRVDRPbEJ1V1RiWE1kanRCVzU1Wk9nRHJuTGRIN1BBMDYwVWxBWG1MbU1Cdm5URnhZUkhuUWd3QXlVekRyVi0tcmZjUnJza2RWZ0p5ckpMUUJnT0N5RG52bXo2N0Q4Mk5ybDdTUFhaOWR1SDNTVlJoS0YyS3VLNjBqVGliNDd6Y29TQ1VOR0tELUl1dWpqVVE0azFnVmhCVWQ1VTV3UHpUUzFwZVRLTmJiaUl5emNPUDVLWXVKZ3doODlDR0JoYXNkaGZRTjNkaWF0LVA2SkFvVWNfeWgxUmVaS0FKN25ac2tiVEJpX203Mk9nYU1vMFdJamJmRTVBZG42a0hTNlFuRERMaVNQOF9WMHQ3TTFEMElSb0x4bGVBUXMzTm5SYl85d3NiaXpjdVMxNGJrRVFZQmMyTEt4UDNrQzI0bDVpazQzcElrTjRvaE5aZmZwcnJiZmxvR3lTQWVJZU1LWlBrLXB6VUJCQ3RDbXRZbjdvRzVkTmkwd0JNVkFlOWRLUERMeHJnMnN2dDhhTHo1NldpRnpUSkVQbUZXUGJLQ2dhUHpWb0Z3NDJrUTBFUThPYTJCR0NZTDJjTVNlam9zTHBUMk9QQlp5S1pkaXhCaWFIUmpGSUtRNmQ0OHNGZEZmUk9JRElKdXRqZGtIejRGSUVCdktXS01qOVY4bEpMWXEyU3R0LXZHUlRWTjU1S2U3WlExSFdjN1ZZOU5RQWZnOVpydGFtTzQzdURKVzkyTGxvczk3LUN4Ry0yOUJuQUU0ZU9rVEZvZEkwZjNtaTljVWtTTTNUaXJkR2NzUW9aRTRQRGFRdmhaZFRfZlAyM2ZjRFRWdUthdEk1cTFfNTRmblpncGFiRy12Z3lNY2tDVEtiQkJFT3NFTmVLbmpnVHpqbUlUOWdEUHNWSzZLSzNLRDNVbGlYdDEyT3ZoNmc1MHFJNVpfb2dEclByZVR2MEZ6WFZDVlhPcXdTa1A4TFNkSEl5RWptODFGMVV6aGpiYTdWVEMyVU96ZTZ2ZV9mVUdVYTdVT1JHR0VzSVU9XCIsXCJzdW1tYXJ5XCI6W3tcInR5cGVcIjpcInN1bW1hcnlfdGV4dFwiLFwidGV4dFwiOlwiKipDb25zaWRlcmluZyBTb3VyY2VTY29wZSB0eXBlcyoqXFxuXFxuSSBuZWVkIHRvIHRoaW5rIHRoYXQgd2UgcHJvYmFibHkgd29uJ3QgbmVlZCB0b29scyBmb3IgdGhpcy4gSSBzaG91bGQgbWVudGlvbiB0aGUgdHlwZXMgcmVsYXRlZCB0byBTb3VyY2VTY29wZS4gSSB3b25kZXIgaWYgSSBzaG91bGQgaW5zcGVjdCB0aGVtPyBGcm9tIHdoYXQgSSd2ZSBzZWVuLCBTb3VyY2VTY29wZSBtaWdodCByZWxhdGUgdG8gdXNlciwgcHJvamVjdCwgb3IgdGVtcCB0eXBlcy4gSSBjb3VsZCByZWFzb24gdGhyb3VnaCB0aGlzLCBidXQgaXQgd291bGQgaGVscCB0byByZWFkIHRoZSBzcGVjaWZpYyB0eXBlIHRvIGNsYXJpZnkgdGhpbmdzIGZ1cnRoZXIuIEkgd2FudCB0byBlbnN1cmUgSSBmaW5kIHRoZSByaWdodCBpbmZvcm1hdGlvbiBmb3IgdGhlIHVzZXIhXCJ9XX0ifSx7InR5cGUiOiJ0b29sQ2FsbCIsImlkIjoiY2FsbF9ueHFJTFhITktBNGh2dmV6WkxJUHlYNWR8ZmNfMDI3ZjFlYTE1ZGVmMzUwNTAxNjlmMzBkZTAxNzM0ODE5MTkwMWJhOGNkNDBlZjIxNTIiLCJuYW1lIjoiZ3JlcCIsImFyZ3VtZW50cyI6eyJwYXR0ZXJuIjoidHlwZSBTb3VyY2VTY29wZXxTb3VyY2VTY29wZSIsInBhdGgiOiJwYWNrYWdlcy9jb2RpbmctYWdlbnQvc3JjIiwiZ2xvYiI6IioudHMiLCJjb250ZXh0IjoyLCJsaW1pdCI6NTB9fV0sImFwaSI6Im9wZW5haS1jb2RleC1yZXNwb25zZXMiLCJwcm92aWRlciI6Im9wZW5haS1jb2RleCIsIm1vZGVsIjoiZ3B0LTUuNSIsInVzYWdlIjp7ImlucHV0Ijo1OTksIm91dHB1dCI6ODEsImNhY2hlUmVhZCI6MzE3NDQsImNhY2hlV3JpdGUiOjAsInRvdGFsVG9rZW5zIjozMjQyNCwiY29zdCI6eyJpbnB1dCI6MC4wMDI5OTUwMDAwMDAwMDAwMDAzLCJvdXRwdXQiOjAuMDAyNDMsImNhY2hlUmVhZCI6MC4wMTU4NzIsImNhY2hlV3JpdGUiOjAsInRvdGFsIjowLjAyMTI5N319LCJzdG9wUmVhc29uIjoidG9vbFVzZSIsInRpbWVzdGFtcCI6MTc3NzUzNjQ3NDIwNCwicmVzcG9uc2VJZCI6InJlc3BfMDI3ZjFlYTE1ZGVmMzUwNTAxNjlmMzBkZGJkMTYwODE5MThhNDA1NGZhMzUzY2RlYWUifX0seyJ0eXBlIjoibWVzc2FnZSIsImlkIjoiZmUzMmMzZTYiLCJwYXJlbnRJZCI6IjQ2YzNlYjY4IiwidGltZXN0YW1wIjoiMjAyNi0wNC0zMFQwODowODowMC40MzdaIiwibWVzc2FnZSI6eyJyb2xlIjoidG9vbFJlc3VsdCIsInRvb2xDYWxsSWQiOiJjYWxsX254cUlMWEhOS0E0aHZ2ZXpaTElQeVg1ZHxmY18wMjdmMWVhMTVkZWYzNTA1MDE2OWYzMGRlMDE3MzQ4MTkxOTAxYmE4Y2Q0MGVmMjE1MiIsInRvb2xOYW1lIjoiZ3JlcCIsImNvbnRlbnQiOlt7InR5cGUiOiJ0ZXh0IiwidGV4dCI6ImNvcmUvcGFja2FnZS1tYW5hZ2VyLnRzOjQ2OiAgIGV4cG9ydCBpbnRlcmZhY2UgUGF0aE1ldGFkYXRhIHtcbmNvcmUvcGFja2FnZS1tYW5hZ2VyLnRzOjQ3OiAgIHNvdXJjZTogc3RyaW5nO1xuY29yZS9wYWNrYWdlLW1hbmFnZXIudHM6NDg6IHNjb3BlOiBTb3VyY2VTY29wZTtcbmNvcmUvcGFja2FnZS1tYW5hZ2VyLnRzOjQ5OiAgIG9yaWdpbjogXCJwYWNrYWdlXCIgfCBcInRvcC1sZXZlbFwiO1xuY29yZS9wYWNrYWdlLW1hbmFnZXIudHM6NTA6ICAgYmFzZURpcj86IHN0cmluZztcbmNvcmUvcGFja2FnZS1tYW5hZ2VyLnRzOjc5OiAgIGRpc3BsYXlOYW1lOiBzdHJpbmc7XG5jb3JlL3BhY2thZ2UtbWFuYWdlci50czo4MDogICB0eXBlOiBcIm5wbVwiIHwgXCJnaXRcIjtcbmNvcmUvcGFja2FnZS1tYW5hZ2VyLnRzOjgxOiBzY29wZTogRXhjbHVkZTxTb3VyY2VTY29wZSwgXCJ0ZW1wb3JhcnlcIj47XG5jb3JlL3BhY2thZ2UtbWFuYWdlci50czo4MjogICB9XG5jb3JlL3BhY2thZ2UtbWFuYWdlci50czo4MzogICBcbmNvcmUvcGFja2FnZS1tYW5hZ2VyLnRzOjExMzogICB9XG5jb3JlL3BhY2thZ2UtbWFuYWdlci50czoxMTQ6ICAgXG5jb3JlL3BhY2thZ2UtbWFuYWdlci50czoxMTU6IHR5cGUgU291cmNlU2NvcGUgPSBcInVzZXJcIiB8IFwicHJvamVjdFwiIHwgXCJ0ZW1wb3JhcnlcIjtcbmNvcmUvcGFja2FnZS1tYW5hZ2VyLnRzOjExNjogICBcbmNvcmUvcGFja2FnZS1tYW5hZ2VyLnRzOjExNzogICB0eXBlIE5wbVNvdXJjZSA9IHtcbmNvcmUvcGFja2FnZS1tYW5hZ2VyLnRzOjEyOTogICB0eXBlIFBhcnNlZFNvdXJjZSA9IE5wbVNvdXJjZSB8IEdpdFNvdXJjZSB8IExvY2FsU291cmNlO1xuY29yZS9wYWNrYWdlLW1hbmFnZXIudHM6MTMwOiAgIFxuY29yZS9wYWNrYWdlLW1hbmFnZXIudHM6MTMxOiB0eXBlIEluc3RhbGxlZFNvdXJjZVNjb3BlID0gRXhjbHVkZTxTb3VyY2VTY29wZSwgXCJ0ZW1wb3JhcnlcIj47XG5jb3JlL3BhY2thZ2UtbWFuYWdlci50czoxMzI6ICAgXG5jb3JlL3BhY2thZ2UtbWFuYWdlci50czoxMzM6ICAgaW50ZXJmYWNlIENvbmZpZ3VyZWRVcGRhdGVTb3VyY2Uge1xuY29yZS9wYWNrYWdlLW1hbmFnZXIudHM6MTMzOiAgIGludGVyZmFjZSBDb25maWd1cmVkVXBkYXRlU291cmNlIHtcbmNvcmUvcGFja2FnZS1tYW5hZ2VyLnRzOjEzNDogICBzb3VyY2U6IHN0cmluZztcbmNvcmUvcGFja2FnZS1tYW5hZ2VyLnRzOjEzNTogc2NvcGU6IEluc3RhbGxlZFNvdXJjZVNjb3BlO1xuY29yZS9wYWNrYWdlLW1hbmFnZXIudHM6MTM2OiAgIH1cbmNvcmUvcGFja2FnZS1tYW5hZ2VyLnRzOjEzNzogICBcbmNvcmUvcGFja2FnZS1tYW5hZ2VyLnRzOjc3MzogICBcbmNvcmUvcGFja2FnZS1tYW5hZ2VyLnRzOjc3NDogICBhZGRTb3VyY2VUb1NldHRpbmdzKHNvdXJjZTogc3RyaW5nLCBvcHRpb25zPzogeyBsb2NhbD86IGJvb2xlYW4gfSk6IGJvb2xlYW4ge1xuY29yZS9wYWNrYWdlLW1hbmFnZXIudHM6Nzc1OiBjb25zdCBzY29wZTogU291cmNlU2NvcGUgPSBvcHRpb25zPy5sb2NhbCA/IFwicHJvamVjdFwiIDogXCJ1c2VyXCI7XG5jb3JlL3BhY2thZ2UtbWFuYWdlci50czo3NzY6ICAgY29uc3QgY3VycmVudFNldHRpbmdzID1cbmNvcmUvcGFja2FnZS1tYW5hZ2VyLnRzOjc3NzogICBzY29wZSA9PT0gXCJwcm9qZWN0XCIgPyB0aGlzLnNldHRpbmdzTWFuYWdlci5nZXRQcm9qZWN0U2V0dGluZ3MoKSA6IHRoaXMuc2V0dGluZ3NNYW5hZ2VyLmdldEdsb2JhbFNldHRpbmdzKCk7XG5jb3JlL3BhY2thZ2UtbWFuYWdlci50czo3OTI6ICAgXG5jb3JlL3BhY2thZ2UtbWFuYWdlci50czo3OTM6ICAgcmVtb3ZlU291cmNlRnJvbVNldHRpbmdzKHNvdXJjZTogc3RyaW5nLCBvcHRpb25zPzogeyBsb2NhbD86IGJvb2xlYW4gfSk6IGJvb2xlYW4ge1xuY29yZS9wYWNrYWdlLW1hbmFnZXIudHM6Nzk0OiBjb25zdCBzY29wZTogU291cmNlU2NvcGUgPSBvcHRpb25zPy5sb2NhbCA/IFwicHJvamVjdFwiIDogXCJ1c2VyXCI7XG5jb3JlL3BhY2thZ2UtbWFuYWdlci50czo3OTU6ICAgY29uc3QgY3VycmVudFNldHRpbmdzID1cbmNvcmUvcGFja2FnZS1tYW5hZ2VyLnRzOjc5NjogICBzY29wZSA9PT0gXCJwcm9qZWN0XCIgPyB0aGlzLnNldHRpbmdzTWFuYWdlci5nZXRQcm9qZWN0U2V0dGluZ3MoKSA6IHRoaXMuc2V0dGluZ3NNYW5hZ2VyLmdldEdsb2JhbFNldHRpbmdzKCk7XG5jb3JlL3BhY2thZ2UtbWFuYWdlci50czo4NTQ6ICAgXG5jb3JlL3BhY2thZ2UtbWFuYWdlci50czo4NTU6ICAgLy8gQ29sbGVjdCBhbGwgcGFja2FnZXMgd2l0aCBzY29wZSAocHJvamVjdCBmaXJzdCBzbyBjd2QgcmVzb3VyY2VzIHdpbiBjb2xsaXNpb25zKVxuY29yZS9wYWNrYWdlLW1hbmFnZXIudHM6ODU2OiBjb25zdCBhbGxQYWNrYWdlczogQXJyYXk8eyBwa2c6IFBhY2thZ2VTb3VyY2U7IHNjb3BlOiBTb3VyY2VTY29wZSB9PiA9IFtdO1xuY29yZS9wYWNrYWdlLW1hbmFnZXIudHM6ODU3OiAgIGZvciAoY29uc3QgcGtnIG9mIHByb2plY3RTZXR0aW5ncy5wYWNrYWdlcyA/PyBbXSkge1xuY29yZS9wYWNrYWdlLW1hbmFnZXIudHM6ODU4OiAgIGFsbFBhY2thZ2VzLnB1c2goeyBwa2csIHNjb3BlOiBcInByb2plY3RcIiB9KTtcbmNvcmUvcGFja2FnZS1tYW5hZ2VyLnRzOjkwNzogICApOiBQcm9taXNlPFJlc29sdmVkUGF0aHM+IHtcbmNvcmUvcGFja2FnZS1tYW5hZ2VyLnRzOjkwODogICBjb25zdCBhY2N1bXVsYXRvciA9IHRoaXMuY3JlYXRlQWNjdW11bGF0b3IoKTtcbmNvcmUvcGFja2FnZS1tYW5hZ2VyLnRzOjkwOTogY29uc3Qgc2NvcGU6IFNvdXJjZVNjb3BlID0gb3B0aW9ucz8udGVtcG9yYXJ5ID8gXCJ0ZW1wb3JhcnlcIiA6IG9wdGlvbnM/LmxvY2FsID8gXCJwcm9qZWN0XCIgOiBcInVzZXJcIjtcbmNvcmUvcGFja2FnZS1tYW5hZ2VyLnRzOjkxMDogICBjb25zdCBwYWNrYWdlU291cmNlcyA9IHNvdXJjZXMubWFwKChzb3VyY2UpID0+ICh7IHBrZzogc291cmNlIGFzIFBhY2thZ2VTb3VyY2UsIHNjb3BlIH0pKTtcbmNvcmUvcGFja2FnZS1tYW5hZ2VyLnRzOjkxMTogICBhd2FpdCB0aGlzLnJlc29sdmVQYWNrYWdlU291cmNlcyhwYWNrYWdlU291cmNlcywgYWNjdW11bGF0b3IpO1xuY29yZS9wYWNrYWdlLW1hbmFnZXIudHM6OTQzOiAgIGFzeW5jIGluc3RhbGwoc291cmNlOiBzdHJpbmcsIG9wdGlvbnM/OiB7IGxvY2FsPzogYm9vbGVhbiB9KTogUHJvbWlzZTx2b2lkPiB7XG5jb3JlL3BhY2thZ2UtbWFuYWdlci50czo5NDQ6ICAgY29uc3QgcGFyc2VkID0gdGhpcy5wYXJzZVNvdXJjZShzb3VyY2UpO1xuY29yZS9wYWNrYWdlLW1hbmFnZXIudHM6OTQ1OiBjb25zdCBzY29wZTogU291cmNlU2NvcGUgPSBvcHRpb25zPy5sb2NhbCA/IFwicHJvamVjdFwiIDogXCJ1c2VyXCI7XG5jb3JlL3BhY2thZ2UtbWFuYWdlci50czo5NDY6ICAgYXdhaXQgdGhpcy53aXRoUHJvZ3Jlc3MoXCJpbnN0YWxsXCIsIHNvdXJjZSwgYEluc3RhbGxpbmcgJHtzb3VyY2V9Li4uYCwgYXN5bmMgKCkgPT4ge1xuY29yZS9wYWNrYWdlLW1hbmFnZXIudHM6OTQ3OiAgIGlmIChwYXJzZWQudHlwZSA9PT0gXCJucG1cIikge1xuY29yZS9wYWNrYWdlLW1hbmFnZXIudHM6OTcxOiAgIGFzeW5jIHJlbW92ZShzb3VyY2U6IHN0cmluZywgb3B0aW9ucz86IHsgbG9jYWw/OiBib29sZWFuIH0pOiBQcm9taXNlPHZvaWQ+IHtcbmNvcmUvcGFja2FnZS1tYW5hZ2VyLnRzOjk3MjogICBjb25zdCBwYXJzZWQgPSB0aGlzLnBhcnNlU291cmNlKHNvdXJjZSk7XG5jb3JlL3BhY2thZ2UtbWFuYWdlci50czo5NzM6IGNvbnN0IHNjb3BlOiBTb3VyY2VTY29wZSA9IG9wdGlvbnM/LmxvY2FsID8gXCJwcm9qZWN0XCIgOiBcInVzZXJcIjtcbmNvcmUvcGFja2FnZS1tYW5hZ2VyLnRzOjk3NDogICBhd2FpdCB0aGlzLndpdGhQcm9ncmVzcyhcInJlbW92ZVwiLCBzb3VyY2UsIGBSZW1vdmluZyAke3NvdXJjZX0uLi5gLCBhc3luYyAoKSA9PiB7XG5jb3JlL3BhY2thZ2UtbWFuYWdlci50czo5NzU6ICAgaWYgKHBhcnNlZC50eXBlID09PSBcIm5wbVwiKSB7XG5jb3JlL3BhY2thZ2UtbWFuYWdlci50czoxMDgzOiAgIH1cbmNvcmUvcGFja2FnZS1tYW5hZ2VyLnRzOjEwODQ6ICAgXG5jb3JlL3BhY2thZ2UtbWFuYWdlci50czoxMDg1OiBwcml2YXRlIGFzeW5jIHNob3VsZFVwZGF0ZU5wbVNvdXJjZShzb3VyY2U6IE5wbVNvdXJjZSwgc2NvcGU6IEluc3RhbGxlZFNvdXJjZVNjb3BlKTogUHJvbWlzZTxib29sZWFuPiB7XG5jb3JlL3BhY2thZ2UtbWFuYWdlci50czoxMDg2OiAgIGNvbnN0IGluc3RhbGxlZFBhdGggPSB0aGlzLmdldE5wbUluc3RhbGxQYXRoKHNvdXJjZSwgc2NvcGUpO1xuY29yZS9wYWNrYWdlLW1hbmFnZXIudHM6MTA4NzogICBjb25zdCBpbnN0YWxsZWRWZXJzaW9uID0gZXhpc3RzU3luYyhpbnN0YWxsZWRQYXRoKSA/IHRoaXMuZ2V0SW5zdGFsbGVkTnBtVmVyc2lvbihpbnN0YWxsZWRQYXRoKSA6IHVuZGVmaW5lZDtcbmNvcmUvcGFja2FnZS1tYW5hZ2VyLnRzOjEwOTk6ICAgfVxuY29yZS9wYWNrYWdlLW1hbmFnZXIudHM6MTEwMDogICBcbmNvcmUvcGFja2FnZS1tYW5hZ2VyLnRzOjExMDE6IHByaXZhdGUgYXN5bmMgdXBkYXRlTnBtQmF0Y2goc291cmNlczogTnBtVXBkYXRlVGFyZ2V0W10sIHNjb3BlOiBJbnN0YWxsZWRTb3VyY2VTY29wZSk6IFByb21pc2U8dm9pZD4ge1xuY29yZS9wYWNrYWdlLW1hbmFnZXIudHM6MTEwMjogICBpZiAoc291cmNlcy5sZW5ndGggPT09IDApIHtcbmNvcmUvcGFja2FnZS1tYW5hZ2VyLnRzOjExMDM6ICAgcmV0dXJuO1xuY29yZS9wYWNrYWdlLW1hbmFnZXIudHM6MTExMzogICB9XG5jb3JlL3BhY2thZ2UtbWFuYWdlci50czoxMTE0OiAgIFxuY29yZS9wYWNrYWdlLW1hbmFnZXIudHM6MTExNTogcHJpdmF0ZSBhc3luYyBpbnN0YWxsTnBtQmF0Y2goc3BlY3M6IHN0cmluZ1tdLCBzY29wZTogSW5zdGFsbGVkU291cmNlU2NvcGUpOiBQcm9taXNlPHZvaWQ+IHtcbmNvcmUvcGFja2FnZS1tYW5hZ2VyLnRzOjExMTY6ICAgaWYgKHNjb3BlID09PSBcInVzZXJcIikge1xuY29yZS9wYWNrYWdlLW1hbmFnZXIudHM6MTExNzogICBhd2FpdCB0aGlzLnJ1bk5wbUNvbW1hbmQoW1wiaW5zdGFsbFwiLCBcIi1nXCIsIC4uLnNwZWNzXSk7XG5jb3JlL3BhY2thZ2UtbWFuYWdlci50czoxMTMwOiAgIGNvbnN0IGdsb2JhbFNldHRpbmdzID0gdGhpcy5zZXR0aW5nc01hbmFnZXIuZ2V0R2xvYmFsU2V0dGluZ3MoKTtcbmNvcmUvcGFja2FnZS1tYW5hZ2VyLnRzOjExMzE6ICAgY29uc3QgcHJvamVjdFNldHRpbmdzID0gdGhpcy5zZXR0aW5nc01hbmFnZXIuZ2V0UHJvamVjdFNldHRpbmdzKCk7XG5jb3JlL3BhY2thZ2UtbWFuYWdlci50czoxMTMyOiBjb25zdCBhbGxQYWNrYWdlczogQXJyYXk8eyBwa2c6IFBhY2thZ2VTb3VyY2U7IHNjb3BlOiBTb3VyY2VTY29wZSB9PiA9IFtdO1xuY29yZS9wYWNrYWdlLW1hbmFnZXIudHM6MTEzMzogICBmb3IgKGNvbnN0IHBrZyBvZiBwcm9qZWN0U2V0dGluZ3MucGFja2FnZXMgPz8gW10pIHtcbmNvcmUvcGFja2FnZS1tYW5hZ2VyLnRzOjExMzQ6ICAgYWxsUGFja2FnZXMucHVzaCh7IHBrZywgc2NvcGU6IFwicHJvamVjdFwiIH0pO1xuY29yZS9wYWNrYWdlLW1hbmFnZXIudHM6MTE0MTogICBjb25zdCBjaGVja3MgPSBwYWNrYWdlU291cmNlc1xuY29yZS9wYWNrYWdlLW1hbmFnZXIudHM6MTE0MjogICAuZmlsdGVyKFxuY29yZS9wYWNrYWdlLW1hbmFnZXIudHM6MTE0MzogKGVudHJ5KTogZW50cnkgaXMgeyBwa2c6IFBhY2thZ2VTb3VyY2U7IHNjb3BlOiBFeGNsdWRlPFNvdXJjZVNjb3BlLCBcInRlbXBvcmFyeVwiPiB9ID0+XG5jb3JlL3BhY2thZ2UtbWFuYWdlci50czoxMTQ0OiAgIGVudHJ5LnNjb3BlICE9PSBcInRlbXBvcmFyeVwiLFxuY29yZS9wYWNrYWdlLW1hbmFnZXIudHM6MTE0NTogICApXG5jb3JlL3BhY2thZ2UtbWFuYWdlci50czoxMTg5OiAgIFxuY29yZS9wYWNrYWdlLW1hbmFnZXIudHM6MTE5MDogICBwcml2YXRlIGFzeW5jIHJlc29sdmVQYWNrYWdlU291cmNlcyhcbmNvcmUvcGFja2FnZS1tYW5hZ2VyLnRzOjExOTE6IHNvdXJjZXM6IEFycmF5PHsgcGtnOiBQYWNrYWdlU291cmNlOyBzY29wZTogU291cmNlU2NvcGUgfT4sXG5jb3JlL3BhY2thZ2UtbWFuYWdlci50czoxMTkyOiAgIGFjY3VtdWxhdG9yOiBSZXNvdXJjZUFjY3VtdWxhdG9yLFxuY29yZS9wYWNrYWdlLW1hbmFnZXIudHM6MTE5MzogICBvbk1pc3Npbmc/OiAoc291cmNlOiBzdHJpbmcpID0+IFByb21pc2U8TWlzc2luZ1NvdXJjZUFjdGlvbj4sXG5jb3JlL3BhY2thZ2UtbWFuYWdlci50czoxMjc5OiAgIH1cbmNvcmUvcGFja2FnZS1tYW5hZ2VyLnRzOjEyODA6ICAgXG5jb3JlL3BhY2thZ2UtbWFuYWdlci50czoxMjgxOiBwcml2YXRlIGFzeW5jIGluc3RhbGxQYXJzZWRTb3VyY2UocGFyc2VkOiBQYXJzZWRTb3VyY2UsIHNjb3BlOiBTb3VyY2VTY29wZSk6IFByb21pc2U8dm9pZD4ge1xuY29yZS9wYWNrYWdlLW1hbmFnZXIudHM6MTI4MjogICBpZiAocGFyc2VkLnR5cGUgPT09IFwibnBtXCIpIHtcbmNvcmUvcGFja2FnZS1tYW5hZ2VyLnRzOjEyODM6ICAgYXdhaXQgdGhpcy5pbnN0YWxsTnBtKHBhcnNlZCwgc2NvcGUsIHNjb3BlID09PSBcInRlbXBvcmFyeVwiKTtcbmNvcmUvcGFja2FnZS1tYW5hZ2VyLnRzOjEzMDU6ICAgfVxuY29yZS9wYWNrYWdlLW1hbmFnZXIudHM6MTMwNjogICBcbmNvcmUvcGFja2FnZS1tYW5hZ2VyLnRzOjEzMDc6IHByaXZhdGUgZ2V0U291cmNlTWF0Y2hLZXlGb3JTZXR0aW5ncyhzb3VyY2U6IHN0cmluZywgc2NvcGU6IFNvdXJjZVNjb3BlKTogc3RyaW5nIHtcbmNvcmUvcGFja2FnZS1tYW5hZ2VyLnRzOjEzMDg6ICAgY29uc3QgcGFyc2VkID0gdGhpcy5wYXJzZVNvdXJjZShzb3VyY2UpO1xuY29yZS9wYWNrYWdlLW1hbmFnZXIudHM6MTMwOTogICBpZiAocGFyc2VkLnR5cGUgPT09IFwibnBtXCIpIHtcbmNvcmUvcGFja2FnZS1tYW5hZ2VyLnRzOjEzNTA6ICAgfVxuY29yZS9wYWNrYWdlLW1hbmFnZXIudHM6MTM1MTogICBcbmNvcmUvcGFja2FnZS1tYW5hZ2VyLnRzOjEzNTI6IHByaXZhdGUgcGFja2FnZVNvdXJjZXNNYXRjaChleGlzdGluZzogUGFja2FnZVNvdXJjZSwgaW5wdXRTb3VyY2U6IHN0cmluZywgc2NvcGU6IFNvdXJjZVNjb3BlKTogYm9vbGVhbiB7XG5jb3JlL3BhY2thZ2UtbWFuYWdlci50czoxMzUzOiAgIGNvbnN0IGxlZnQgPSB0aGlzLmdldFNvdXJjZU1hdGNoS2V5Rm9yU2V0dGluZ3ModGhpcy5nZXRQYWNrYWdlU291cmNlU3RyaW5nKGV4aXN0aW5nKSwgc2NvcGUpO1xuY29yZS9wYWNrYWdlLW1hbmFnZXIudHM6MTM1NDogICBjb25zdCByaWdodCA9IHRoaXMuZ2V0U291cmNlTWF0Y2hLZXlGb3JJbnB1dChpbnB1dFNvdXJjZSk7XG5jb3JlL3BhY2thZ2UtbWFuYWdlci50czoxMzU2OiAgIH1cbmNvcmUvcGFja2FnZS1tYW5hZ2VyLnRzOjEzNTc6ICAgXG5jb3JlL3BhY2thZ2UtbWFuYWdlci50czoxMzU4OiBwcml2YXRlIG5vcm1hbGl6ZVBhY2thZ2VTb3VyY2VGb3JTZXR0aW5ncyhzb3VyY2U6IHN0cmluZywgc2NvcGU6IFNvdXJjZVNjb3BlKTogc3RyaW5nIHtcbmNvcmUvcGFja2FnZS1tYW5hZ2VyLnRzOjEzNTk6ICAgY29uc3QgcGFyc2VkID0gdGhpcy5wYXJzZVNvdXJjZShzb3VyY2UpO1xuY29yZS9wYWNrYWdlLW1hbmFnZXIudHM6MTM2MDogICBpZiAocGFyc2VkLnR5cGUgIT09IFwibG9jYWxcIikge1xuY29yZS9wYWNrYWdlLW1hbmFnZXIudHM6MTYwMzogICAqIGZvciB0aGUgc2FtZSByZXBvc2l0b3J5IGFyZSB0cmVhdGVkIGFzIGlkZW50aWNhbC5cbmNvcmUvcGFja2FnZS1tYW5hZ2VyLnRzOjE2MDQ6ICAgKi9cbmNvcmUvcGFja2FnZS1tYW5hZ2VyLnRzOjE2MDU6IHByaXZhdGUgZ2V0UGFja2FnZUlkZW50aXR5KHNvdXJjZTogc3RyaW5nLCBzY29wZT86IFNvdXJjZVNjb3BlKTogc3RyaW5nIHtcbmNvcmUvcGFja2FnZS1tYW5hZ2VyLnRzOjE2MDY6ICAgY29uc3QgcGFyc2VkID0gdGhpcy5wYXJzZVNvdXJjZShzb3VyY2UpO1xuY29yZS9wYWNrYWdlLW1hbmFnZXIudHM6MTYwNzogICBpZiAocGFyc2VkLnR5cGUgPT09IFwibnBtXCIpIHtcbmNvcmUvcGFja2FnZS1tYW5hZ2VyLnRzOjE2MjQ6ICAgKi9cbmNvcmUvcGFja2FnZS1tYW5hZ2VyLnRzOjE2MjU6ICAgcHJpdmF0ZSBkZWR1cGVQYWNrYWdlcyhcbmNvcmUvcGFja2FnZS1tYW5hZ2VyLnRzOjE2MjY6IHBhY2thZ2VzOiBBcnJheTx7IHBrZzogUGFja2FnZVNvdXJjZTsgc2NvcGU6IFNvdXJjZVNjb3BlIH0+LFxuY29yZS9wYWNrYWdlLW1hbmFnZXIudHM6MTYyNzogICApOiBBcnJheTx7IHBrZzogUGFja2FnZVNvdXJjZTsgc2NvcGU6IFNvdXJjZVNjb3BlIH0+IHtcbmNvcmUvcGFja2FnZS1tYW5hZ2VyLnRzOjE2Mjg6ICAgY29uc3Qgc2VlbiA9IG5ldyBNYXA8c3RyaW5nLCB7IHBrZzogUGFja2FnZVNvdXJjZTsgc2NvcGU6IFNvdXJjZVNjb3BlIH0+KCk7XG5jb3JlL3BhY2thZ2UtbWFuYWdlci50czoxNjI1OiAgIHByaXZhdGUgZGVkdXBlUGFja2FnZXMoXG5jb3JlL3BhY2thZ2UtbWFuYWdlci50czoxNjI2OiAgIHBhY2thZ2VzOiBBcnJheTx7IHBrZzogUGFja2FnZVNvdXJjZTsgc2NvcGU6IFNvdXJjZVNjb3BlIH0+LFxuY29yZS9wYWNrYWdlLW1hbmFnZXIudHM6MTYyNzogKTogQXJyYXk8eyBwa2c6IFBhY2thZ2VTb3VyY2U7IHNjb3BlOiBTb3VyY2VTY29wZSB9PiB7XG5jb3JlL3BhY2thZ2UtbWFuYWdlci50czoxNjI4OiAgIGNvbnN0IHNlZW4gPSBuZXcgTWFwPHN0cmluZywgeyBwa2c6IFBhY2thZ2VTb3VyY2U7IHNjb3BlOiBTb3VyY2VTY29wZSB9PigpO1xuY29yZS9wYWNrYWdlLW1hbmFnZXIudHM6MTYyOTogICBcbmNvcmUvcGFja2FnZS1tYW5hZ2VyLnRzOjE2MjY6ICAgcGFja2FnZXM6IEFycmF5PHsgcGtnOiBQYWNrYWdlU291cmNlOyBzY29wZTogU291cmNlU2NvcGUgfT4sXG5jb3JlL3BhY2thZ2UtbWFuYWdlci50czoxNjI3OiAgICk6IEFycmF5PHsgcGtnOiBQYWNrYWdlU291cmNlOyBzY29wZTogU291cmNlU2NvcGUgfT4ge1xuY29yZS9wYWNrYWdlLW1hbmFnZXIudHM6MTYyODogY29uc3Qgc2VlbiA9IG5ldyBNYXA8c3RyaW5nLCB7IHBrZzogUGFja2FnZVNvdXJjZTsgc2NvcGU6IFNvdXJjZVNjb3BlIH0+KCk7XG5jb3JlL3BhY2thZ2UtbWFuYWdlci50czoxNjI5OiAgIFxuY29yZS9wYWNrYWdlLW1hbmFnZXIudHM6MTYzMDogICBmb3IgKGNvbnN0IGVudHJ5IG9mIHBhY2thZ2VzKSB7XG5jb3JlL3BhY2thZ2UtbWFuYWdlci50czoxNjg2OiAgIH1cbmNvcmUvcGFja2FnZS1tYW5hZ2VyLnRzOjE2ODc6ICAgXG5jb3JlL3BhY2thZ2UtbWFuYWdlci50czoxNjg4OiBwcml2YXRlIGFzeW5jIGluc3RhbGxOcG0oc291cmNlOiBOcG1Tb3VyY2UsIHNjb3BlOiBTb3VyY2VTY29wZSwgdGVtcG9yYXJ5OiBib29sZWFuKTogUHJvbWlzZTx2b2lkPiB7XG5jb3JlL3BhY2thZ2UtbWFuYWdlci50czoxNjg5OiAgIGlmIChzY29wZSA9PT0gXCJ1c2VyXCIgJiYgIXRlbXBvcmFyeSkge1xuY29yZS9wYWNrYWdlLW1hbmFnZXIudHM6MTY5MDogICBhd2FpdCB0aGlzLnJ1bk5wbUNvbW1hbmQoW1wiaW5zdGFsbFwiLCBcIi1nXCIsIHNvdXJjZS5zcGVjXSk7XG5jb3JlL3BhY2thZ2UtbWFuYWdlci50czoxNjk2OiAgIH1cbmNvcmUvcGFja2FnZS1tYW5hZ2VyLnRzOjE2OTc6ICAgXG5jb3JlL3BhY2thZ2UtbWFuYWdlci50czoxNjk4OiBwcml2YXRlIGFzeW5jIHVuaW5zdGFsbE5wbShzb3VyY2U6IE5wbVNvdXJjZSwgc2NvcGU6IFNvdXJjZVNjb3BlKTogUHJvbWlzZTx2b2lkPiB7XG5jb3JlL3BhY2thZ2UtbWFuYWdlci50czoxNjk5OiAgIGlmIChzY29wZSA9PT0gXCJ1c2VyXCIpIHtcbmNvcmUvcGFja2FnZS1tYW5hZ2VyLnRzOjE3MDA6ICAgYXdhaXQgdGhpcy5ydW5OcG1Db21tYW5kKFtcInVuaW5zdGFsbFwiLCBcIi1nXCIsIHNvdXJjZS5uYW1lXSk7XG5jb3JlL3BhY2thZ2UtbWFuYWdlci50czoxNzA4OiAgIH1cbmNvcmUvcGFja2FnZS1tYW5hZ2VyLnRzOjE3MDk6ICAgXG5jb3JlL3BhY2thZ2UtbWFuYWdlci50czoxNzEwOiBwcml2YXRlIGFzeW5jIGluc3RhbGxHaXQoc291cmNlOiBHaXRTb3VyY2UsIHNjb3BlOiBTb3VyY2VTY29wZSk6IFByb21pc2U8dm9pZD4ge1xuY29yZS9wYWNrYWdlLW1hbmFnZXIudHM6MTcxMTogICBjb25zdCB0YXJnZXREaXIgPSB0aGlzLmdldEdpdEluc3RhbGxQYXRoKHNvdXJjZSwgc2NvcGUpO1xuY29yZS9wYWNrYWdlLW1hbmFnZXIudHM6MTcxMjogICBpZiAoZXhpc3RzU3luYyh0YXJnZXREaXIpKSB7XG5jb3JlL3BhY2thZ2UtbWFuYWdlci50czoxNzI5OiAgIH1cbmNvcmUvcGFja2FnZS1tYW5hZ2VyLnRzOjE3MzA6ICAgXG5jb3JlL3BhY2thZ2UtbWFuYWdlci50czoxNzMxOiBwcml2YXRlIGFzeW5jIHVwZGF0ZUdpdChzb3VyY2U6IEdpdFNvdXJjZSwgc2NvcGU6IFNvdXJjZVNjb3BlKTogUHJvbWlzZTx2b2lkPiB7XG5jb3JlL3BhY2thZ2UtbWFuYWdlci50czoxNzMyOiAgIGNvbnN0IHRhcmdldERpciA9IHRoaXMuZ2V0R2l0SW5zdGFsbFBhdGgoc291cmNlLCBzY29wZSk7XG5jb3JlL3BhY2thZ2UtbWFuYWdlci50czoxNzMzOiAgIGlmICghZXhpc3RzU3luYyh0YXJnZXREaXIpKSB7XG5jb3JlL3BhY2thZ2UtbWFuYWdlci50czoxNzc3OiAgIH1cbmNvcmUvcGFja2FnZS1tYW5hZ2VyLnRzOjE3Nzg6ICAgXG5jb3JlL3BhY2thZ2UtbWFuYWdlci50czoxNzc5OiBwcml2YXRlIGFzeW5jIHJlbW92ZUdpdChzb3VyY2U6IEdpdFNvdXJjZSwgc2NvcGU6IFNvdXJjZVNjb3BlKTogUHJvbWlzZTx2b2lkPiB7XG5jb3JlL3BhY2thZ2UtbWFuYWdlci50czoxNzgwOiAgIGNvbnN0IHRhcmdldERpciA9IHRoaXMuZ2V0R2l0SW5zdGFsbFBhdGgoc291cmNlLCBzY29wZSk7XG5jb3JlL3BhY2thZ2UtbWFuYWdlci50czoxNzgxOiAgIGlmICghZXhpc3RzU3luYyh0YXJnZXREaXIpKSByZXR1cm47XG5jb3JlL3BhY2thZ2UtbWFuYWdlci50czoxODI4OiAgIH1cbmNvcmUvcGFja2FnZS1tYW5hZ2VyLnRzOjE4Mjk6ICAgXG5jb3JlL3BhY2thZ2UtbWFuYWdlci50czoxODMwOiBwcml2YXRlIGdldE5wbUluc3RhbGxSb290KHNjb3BlOiBTb3VyY2VTY29wZSwgdGVtcG9yYXJ5OiBib29sZWFuKTogc3RyaW5nIHtcbmNvcmUvcGFja2FnZS1tYW5hZ2VyLnRzOjE4MzE6ICAgaWYgKHRlbXBvcmFyeSkge1xuY29yZS9wYWNrYWdlLW1hbmFnZXIudHM6MTgzMjogICByZXR1cm4gdGhpcy5nZXRUZW1wb3JhcnlEaXIoXCJucG1cIik7XG5jb3JlL3BhY2thZ2UtbWFuYWdlci50czoxODU0OiAgIH1cbmNvcmUvcGFja2FnZS1tYW5hZ2VyLnRzOjE4NTU6ICAgXG5jb3JlL3BhY2thZ2UtbWFuYWdlci50czoxODU2OiBwcml2YXRlIGdldE5wbUluc3RhbGxQYXRoKHNvdXJjZTogTnBtU291cmNlLCBzY29wZTogU291cmNlU2NvcGUpOiBzdHJpbmcge1xuY29yZS9wYWNrYWdlLW1hbmFnZXIudHM6MTg1NzogICBpZiAoc2NvcGUgPT09IFwidGVtcG9yYXJ5XCIpIHtcbmNvcmUvcGFja2FnZS1tYW5hZ2VyLnRzOjE4NTg6ICAgcmV0dXJuIGpvaW4odGhpcy5nZXRUZW1wb3JhcnlEaXIoXCJucG1cIiksIFwibm9kZV9tb2R1bGVzXCIsIHNvdXJjZS5uYW1lKTtcbmNvcmUvcGFja2FnZS1tYW5hZ2VyLnRzOjE4NjQ6ICAgfVxuY29yZS9wYWNrYWdlLW1hbmFnZXIudHM6MTg2NTogICBcbmNvcmUvcGFja2FnZS1tYW5hZ2VyLnRzOjE4NjY6IHByaXZhdGUgZ2V0R2l0SW5zdGFsbFBhdGgoc291cmNlOiBHaXRTb3VyY2UsIHNjb3BlOiBTb3VyY2VTY29wZSk6IHN0cmluZyB7XG5jb3JlL3BhY2thZ2UtbWFuYWdlci50czoxODY3OiAgIGlmIChzY29wZSA9PT0gXCJ0ZW1wb3JhcnlcIikge1xuY29yZS9wYWNrYWdlLW1hbmFnZXIudHM6MTg2ODogICByZXR1cm4gdGhpcy5nZXRUZW1wb3JhcnlEaXIoYGdpdC0ke3NvdXJjZS5ob3N0fWAsIHNvdXJjZS5wYXRoKTtcbmNvcmUvcGFja2FnZS1tYW5hZ2VyLnRzOjE4NzQ6ICAgfVxuY29yZS9wYWNrYWdlLW1hbmFnZXIudHM6MTg3NTogICBcbmNvcmUvcGFja2FnZS1tYW5hZ2VyLnRzOjE4NzY6IHByaXZhdGUgZ2V0R2l0SW5zdGFsbFJvb3Qoc2NvcGU6IFNvdXJjZVNjb3BlKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbmNvcmUvcGFja2FnZS1tYW5hZ2VyLnRzOjE4Nzc6ICAgaWYgKHNjb3BlID09PSBcInRlbXBvcmFyeVwiKSB7XG5jb3JlL3BhY2thZ2UtbWFuYWdlci50czoxODc4OiAgIHJldHVybiB1bmRlZmluZWQ7XG5jb3JlL3BhY2thZ2UtbWFuYWdlci50czoxODkyOiAgIH1cbmNvcmUvcGFja2FnZS1tYW5hZ2VyLnRzOjE4OTM6ICAgXG5jb3JlL3BhY2thZ2UtbWFuYWdlci50czoxODk0OiBwcml2YXRlIGdldEJhc2VEaXJGb3JTY29wZShzY29wZTogU291cmNlU2NvcGUpOiBzdHJpbmcge1xuY29yZS9wYWNrYWdlLW1hbmFnZXIudHM6MTg5NTogICBpZiAoc2NvcGUgPT09IFwicHJvamVjdFwiKSB7XG5jb3JlL3BhY2thZ2UtbWFuYWdlci50czoxODk2OiAgIHJldHVybiBqb2luKHRoaXMuY3dkLCBDT05GSUdfRElSX05BTUUpO1xuY29yZS9zb3VyY2UtaW5mby50czoxOiAgIGltcG9ydCB0eXBlIHsgUGF0aE1ldGFkYXRhIH0gZnJvbSBcIi4vcGFja2FnZS1tYW5hZ2VyLmpzXCI7XG5jb3JlL3NvdXJjZS1pbmZvLnRzOjI6ICAgXG5jb3JlL3NvdXJjZS1pbmZvLnRzOjM6IGV4cG9ydCB0eXBlIFNvdXJjZVNjb3BlID0gXCJ1c2VyXCIgfCBcInByb2plY3RcIiB8IFwidGVtcG9yYXJ5XCI7XG5jb3JlL3NvdXJjZS1pbmZvLnRzOjQ6ICAgZXhwb3J0IHR5cGUgU291cmNlT3JpZ2luID0gXCJwYWNrYWdlXCIgfCBcInRvcC1sZXZlbFwiO1xuY29yZS9zb3VyY2UtaW5mby50czo1OiAgIFxuY29yZS9zb3VyY2UtaW5mby50czo3OiAgIHBhdGg6IHN0cmluZztcbmNvcmUvc291cmNlLWluZm8udHM6ODogICBzb3VyY2U6IHN0cmluZztcbmNvcmUvc291cmNlLWluZm8udHM6OTogc2NvcGU6IFNvdXJjZVNjb3BlO1xuY29yZS9zb3VyY2UtaW5mby50czoxMDogICBvcmlnaW46IFNvdXJjZU9yaWdpbjtcbmNvcmUvc291cmNlLWluZm8udHM6MTE6ICAgYmFzZURpcj86IHN0cmluZztcbmNvcmUvc291cmNlLWluZm8udHM6MjY6ICAgb3B0aW9uczoge1xuY29yZS9zb3VyY2UtaW5mby50czoyNzogICBzb3VyY2U6IHN0cmluZztcbmNvcmUvc291cmNlLWluZm8udHM6Mjg6IHNjb3BlPzogU291cmNlU2NvcGU7XG5jb3JlL3NvdXJjZS1pbmZvLnRzOjI5OiAgIG9yaWdpbj86IFNvdXJjZU9yaWdpbjtcbmNvcmUvc291cmNlLWluZm8udHM6MzA6ICAgYmFzZURpcj86IHN0cmluZzsifV0sImRldGFpbHMiOnsibWF0Y2hDb3VudCI6MzgsIm1hdGNoZXMiOlt7InBhdGgiOiJjb3JlL3BhY2thZ2UtbWFuYWdlci50cyIsImxpbmUiOjQ2LCJ0ZXh0IjoiICBleHBvcnQgaW50ZXJmYWNlIFBhdGhNZXRhZGF0YSB7In0seyJwYXRoIjoiY29yZS9wYWNrYWdlLW1hbmFnZXIudHMiLCJsaW5lIjo0NywidGV4dCI6IiAgc291cmNlOiBzdHJpbmc7In0seyJwYXRoIjoiY29yZS9wYWNrYWdlLW1hbmFnZXIudHMiLCJsaW5lIjo0OCwidGV4dCI6InNjb3BlOiBTb3VyY2VTY29wZTsifSx7InBhdGgiOiJjb3JlL3BhY2thZ2UtbWFuYWdlci50cyIsImxpbmUiOjQ5LCJ0ZXh0IjoiICBvcmlnaW46IFwicGFja2FnZVwiIHwgXCJ0b3AtbGV2ZWxcIjsifSx7InBhdGgiOiJjb3JlL3BhY2thZ2UtbWFuYWdlci50cyIsImxpbmUiOjUwLCJ0ZXh0IjoiICBiYXNlRGlyPzogc3RyaW5nOyJ9LHsicGF0aCI6ImNvcmUvcGFja2FnZS1tYW5hZ2VyLnRzIiwibGluZSI6NzksInRleHQiOiIgIGRpc3BsYXlOYW1lOiBzdHJpbmc7In0seyJwYXRoIjoiY29yZS9wYWNrYWdlLW1hbmFnZXIudHMiLCJsaW5lIjo4MCwidGV4dCI6IiAgdHlwZTogXCJucG1cIiB8IFwiZ2l0XCI7In0seyJwYXRoIjoiY29yZS9wYWNrYWdlLW1hbmFnZXIudHMiLCJsaW5lIjo4MSwidGV4dCI6InNjb3BlOiBFeGNsdWRlPFNvdXJjZVNjb3BlLCBcInRlbXBvcmFyeVwiPjsifSx7InBhdGgiOiJjb3JlL3BhY2thZ2UtbWFuYWdlci50cyIsImxpbmUiOjgyLCJ0ZXh0IjoiICB9In0seyJwYXRoIjoiY29yZS9wYWNrYWdlLW1hbmFnZXIudHMiLCJsaW5lIjo4MywidGV4dCI6IiAgIn0seyJwYXRoIjoiY29yZS9wYWNrYWdlLW1hbmFnZXIudHMiLCJsaW5lIjoxMTMsInRleHQiOiIgIH0ifSx7InBhdGgiOiJjb3JlL3BhY2thZ2UtbWFuYWdlci50cyIsImxpbmUiOjExNCwidGV4dCI6IiAgIn0seyJwYXRoIjoiY29yZS9wYWNrYWdlLW1hbmFnZXIudHMiLCJsaW5lIjoxMTUsInRleHQiOiJ0eXBlIFNvdXJjZVNjb3BlID0gXCJ1c2VyXCIgfCBcInByb2plY3RcIiB8IFwidGVtcG9yYXJ5XCI7In0seyJwYXRoIjoiY29yZS9wYWNrYWdlLW1hbmFnZXIudHMiLCJsaW5lIjoxMTYsInRleHQiOiIgICJ9LHsicGF0aCI6ImNvcmUvcGFja2FnZS1tYW5hZ2VyLnRzIiwibGluZSI6MTE3LCJ0ZXh0IjoiICB0eXBlIE5wbVNvdXJjZSA9IHsifSx7InBhdGgiOiJjb3JlL3BhY2thZ2UtbWFuYWdlci50cyIsImxpbmUiOjEyOSwidGV4dCI6IiAgdHlwZSBQYXJzZWRTb3VyY2UgPSBOcG1Tb3VyY2UgfCBHaXRTb3VyY2UgfCBMb2NhbFNvdXJjZTsifSx7InBhdGgiOiJjb3JlL3BhY2thZ2UtbWFuYWdlci50cyIsImxpbmUiOjEzMCwidGV4dCI6IiAgIn0seyJwYXRoIjoiY29yZS9wYWNrYWdlLW1hbmFnZXIudHMiLCJsaW5lIjoxMzEsInRleHQiOiJ0eXBlIEluc3RhbGxlZFNvdXJjZVNjb3BlID0gRXhjbHVkZTxTb3VyY2VTY29wZSwgXCJ0ZW1wb3JhcnlcIj47In0seyJwYXRoIjoiY29yZS9wYWNrYWdlLW1hbmFnZXIudHMiLCJsaW5lIjoxMzIsInRleHQiOiIgICJ9LHsicGF0aCI6ImNvcmUvcGFja2FnZS1tYW5hZ2VyLnRzIiwibGluZSI6MTMzLCJ0ZXh0IjoiICBpbnRlcmZhY2UgQ29uZmlndXJlZFVwZGF0ZVNvdXJjZSB7In0seyJwYXRoIjoiY29yZS9wYWNrYWdlLW1hbmFnZXIudHMiLCJsaW5lIjoxMzMsInRleHQiOiIgIGludGVyZmFjZSBDb25maWd1cmVkVXBkYXRlU291cmNlIHsifSx7InBhdGgiOiJjb3JlL3BhY2thZ2UtbWFuYWdlci50cyIsImxpbmUiOjEzNCwidGV4dCI6IiAgc291cmNlOiBzdHJpbmc7In0seyJwYXRoIjoiY29yZS9wYWNrYWdlLW1hbmFnZXIudHMiLCJsaW5lIjoxMzUsInRleHQiOiJzY29wZTogSW5zdGFsbGVkU291cmNlU2NvcGU7In0seyJwYXRoIjoiY29yZS9wYWNrYWdlLW1hbmFnZXIudHMiLCJsaW5lIjoxMzYsInRleHQiOiIgIH0ifSx7InBhdGgiOiJjb3JlL3BhY2thZ2UtbWFuYWdlci50cyIsImxpbmUiOjEzNywidGV4dCI6IiAgIn0seyJwYXRoIjoiY29yZS9wYWNrYWdlLW1hbmFnZXIudHMiLCJsaW5lIjo3NzMsInRleHQiOiIgICJ9LHsicGF0aCI6ImNvcmUvcGFja2FnZS1tYW5hZ2VyLnRzIiwibGluZSI6Nzc0LCJ0ZXh0IjoiICBhZGRTb3VyY2VUb1NldHRpbmdzKHNvdXJjZTogc3RyaW5nLCBvcHRpb25zPzogeyBsb2NhbD86IGJvb2xlYW4gfSk6IGJvb2xlYW4geyJ9LHsicGF0aCI6ImNvcmUvcGFja2FnZS1tYW5hZ2VyLnRzIiwibGluZSI6Nzc1LCJ0ZXh0IjoiY29uc3Qgc2NvcGU6IFNvdXJjZVNjb3BlID0gb3B0aW9ucz8ubG9jYWwgPyBcInByb2plY3RcIiA6IFwidXNlclwiOyJ9LHsicGF0aCI6ImNvcmUvcGFja2FnZS1tYW5hZ2VyLnRzIiwibGluZSI6Nzc2LCJ0ZXh0IjoiICBjb25zdCBjdXJyZW50U2V0dGluZ3MgPSJ9LHsicGF0aCI6ImNvcmUvcGFja2FnZS1tYW5hZ2VyLnRzIiwibGluZSI6Nzc3LCJ0ZXh0IjoiICBzY29wZSA9PT0gXCJwcm9qZWN0XCIgPyB0aGlzLnNldHRpbmdzTWFuYWdlci5nZXRQcm9qZWN0U2V0dGluZ3MoKSA6IHRoaXMuc2V0dGluZ3NNYW5hZ2VyLmdldEdsb2JhbFNldHRpbmdzKCk7In0seyJwYXRoIjoiY29yZS9wYWNrYWdlLW1hbmFnZXIudHMiLCJsaW5lIjo3OTIsInRleHQiOiIgICJ9LHsicGF0aCI6ImNvcmUvcGFja2FnZS1tYW5hZ2VyLnRzIiwibGluZSI6NzkzLCJ0ZXh0IjoiICByZW1vdmVTb3VyY2VGcm9tU2V0dGluZ3Moc291cmNlOiBzdHJpbmcsIG9wdGlvbnM/OiB7IGxvY2FsPzogYm9vbGVhbiB9KTogYm9vbGVhbiB7In0seyJwYXRoIjoiY29yZS9wYWNrYWdlLW1hbmFnZXIudHMiLCJsaW5lIjo3OTQsInRleHQiOiJjb25zdCBzY29wZTogU291cmNlU2NvcGUgPSBvcHRpb25zPy5sb2NhbCA/IFwicHJvamVjdFwiIDogXCJ1c2VyXCI7In0seyJwYXRoIjoiY29yZS9wYWNrYWdlLW1hbmFnZXIudHMiLCJsaW5lIjo3OTUsInRleHQiOiIgIGNvbnN0IGN1cnJlbnRTZXR0aW5ncyA9In0seyJwYXRoIjoiY29yZS9wYWNrYWdlLW1hbmFnZXIudHMiLCJsaW5lIjo3OTYsInRleHQiOiIgIHNjb3BlID09PSBcInByb2plY3RcIiA/IHRoaXMuc2V0dGluZ3NNYW5hZ2VyLmdldFByb2plY3RTZXR0aW5ncygpIDogdGhpcy5zZXR0aW5nc01hbmFnZXIuZ2V0R2xvYmFsU2V0dGluZ3MoKTsifSx7InBhdGgiOiJjb3JlL3BhY2thZ2UtbWFuYWdlci50cyIsImxpbmUiOjg1NCwidGV4dCI6IiAgIn0seyJwYXRoIjoiY29yZS9wYWNrYWdlLW1hbmFnZXIudHMiLCJsaW5lIjo4NTUsInRleHQiOiIgIC8vIENvbGxlY3QgYWxsIHBhY2thZ2VzIHdpdGggc2NvcGUgKHByb2plY3QgZmlyc3Qgc28gY3dkIHJlc291cmNlcyB3aW4gY29sbGlzaW9ucykifSx7InBhdGgiOiJjb3JlL3BhY2thZ2UtbWFuYWdlci50cyIsImxpbmUiOjg1NiwidGV4dCI6ImNvbnN0IGFsbFBhY2thZ2VzOiBBcnJheTx7IHBrZzogUGFja2FnZVNvdXJjZTsgc2NvcGU6IFNvdXJjZVNjb3BlIH0+ID0gW107In0seyJwYXRoIjoiY29yZS9wYWNrYWdlLW1hbmFnZXIudHMiLCJsaW5lIjo4NTcsInRleHQiOiIgIGZvciAoY29uc3QgcGtnIG9mIHByb2plY3RTZXR0aW5ncy5wYWNrYWdlcyA/PyBbXSkgeyJ9LHsicGF0aCI6ImNvcmUvcGFja2FnZS1tYW5hZ2VyLnRzIiwibGluZSI6ODU4LCJ0ZXh0IjoiICBhbGxQYWNrYWdlcy5wdXNoKHsgcGtnLCBzY29wZTogXCJwcm9qZWN0XCIgfSk7In0seyJwYXRoIjoiY29yZS9wYWNrYWdlLW1hbmFnZXIudHMiLCJsaW5lIjo5MDcsInRleHQiOiIgICk6IFByb21pc2U8UmVzb2x2ZWRQYXRocz4geyJ9LHsicGF0aCI6ImNvcmUvcGFja2FnZS1tYW5hZ2VyLnRzIiwibGluZSI6OTA4LCJ0ZXh0IjoiICBjb25zdCBhY2N1bXVsYXRvciA9IHRoaXMuY3JlYXRlQWNjdW11bGF0b3IoKTsifSx7InBhdGgiOiJjb3JlL3BhY2thZ2UtbWFuYWdlci50cyIsImxpbmUiOjkwOSwidGV4dCI6ImNvbnN0IHNjb3BlOiBTb3VyY2VTY29wZSA9IG9wdGlvbnM/LnRlbXBvcmFyeSA/IFwidGVtcG9yYXJ5XCIgOiBvcHRpb25zPy5sb2NhbCA/IFwicHJvamVjdFwiIDogXCJ1c2VyXCI7In0seyJwYXRoIjoiY29yZS9wYWNrYWdlLW1hbmFnZXIudHMiLCJsaW5lIjo5MTAsInRleHQiOiIgIGNvbnN0IHBhY2thZ2VTb3VyY2VzID0gc291cmNlcy5tYXAoKHNvdXJjZSkgPT4gKHsgcGtnOiBzb3VyY2UgYXMgUGFja2FnZVNvdXJjZSwgc2NvcGUgfSkpOyJ9LHsicGF0aCI6ImNvcmUvcGFja2FnZS1tYW5hZ2VyLnRzIiwibGluZSI6OTExLCJ0ZXh0IjoiICBhd2FpdCB0aGlzLnJlc29sdmVQYWNrYWdlU291cmNlcyhwYWNrYWdlU291cmNlcywgYWNjdW11bGF0b3IpOyJ9LHsicGF0aCI6ImNvcmUvcGFja2FnZS1tYW5hZ2VyLnRzIiwibGluZSI6OTQzLCJ0ZXh0IjoiICBhc3luYyBpbnN0YWxsKHNvdXJjZTogc3RyaW5nLCBvcHRpb25zPzogeyBsb2NhbD86IGJvb2xlYW4gfSk6IFByb21pc2U8dm9pZD4geyJ9LHsicGF0aCI6ImNvcmUvcGFja2FnZS1tYW5hZ2VyLnRzIiwibGluZSI6OTQ0LCJ0ZXh0IjoiICBjb25zdCBwYXJzZWQgPSB0aGlzLnBhcnNlU291cmNlKHNvdXJjZSk7In0seyJwYXRoIjoiY29yZS9wYWNrYWdlLW1hbmFnZXIudHMiLCJsaW5lIjo5NDUsInRleHQiOiJjb25zdCBzY29wZTogU291cmNlU2NvcGUgPSBvcHRpb25zPy5sb2NhbCA/IFwicHJvamVjdFwiIDogXCJ1c2VyXCI7In0seyJwYXRoIjoiY29yZS9wYWNrYWdlLW1hbmFnZXIudHMiLCJsaW5lIjo5NDYsInRleHQiOiIgIGF3YWl0IHRoaXMud2l0aFByb2dyZXNzKFwiaW5zdGFsbFwiLCBzb3VyY2UsIGBJbnN0YWxsaW5nICR7c291cmNlfS4uLmAsIGFzeW5jICgpID0+IHsifSx7InBhdGgiOiJjb3JlL3BhY2thZ2UtbWFuYWdlci50cyIsImxpbmUiOjk0NywidGV4dCI6IiAgaWYgKHBhcnNlZC50eXBlID09PSBcIm5wbVwiKSB7In0seyJwYXRoIjoiY29yZS9wYWNrYWdlLW1hbmFnZXIudHMiLCJsaW5lIjo5NzEsInRleHQiOiIgIGFzeW5jIHJlbW92ZShzb3VyY2U6IHN0cmluZywgb3B0aW9ucz86IHsgbG9jYWw/OiBib29sZWFuIH0pOiBQcm9taXNlPHZvaWQ+IHsifSx7InBhdGgiOiJjb3JlL3BhY2thZ2UtbWFuYWdlci50cyIsImxpbmUiOjk3MiwidGV4dCI6IiAgY29uc3QgcGFyc2VkID0gdGhpcy5wYXJzZVNvdXJjZShzb3VyY2UpOyJ9LHsicGF0aCI6ImNvcmUvcGFja2FnZS1tYW5hZ2VyLnRzIiwibGluZSI6OTczLCJ0ZXh0IjoiY29uc3Qgc2NvcGU6IFNvdXJjZVNjb3BlID0gb3B0aW9ucz8ubG9jYWwgPyBcInByb2plY3RcIiA6IFwidXNlclwiOyJ9LHsicGF0aCI6ImNvcmUvcGFja2FnZS1tYW5hZ2VyLnRzIiwibGluZSI6OTc0LCJ0ZXh0IjoiICBhd2FpdCB0aGlzLndpdGhQcm9ncmVzcyhcInJlbW92ZVwiLCBzb3VyY2UsIGBSZW1vdmluZyAke3NvdXJjZX0uLi5gLCBhc3luYyAoKSA9PiB7In0seyJwYXRoIjoiY29yZS9wYWNrYWdlLW1hbmFnZXIudHMiLCJsaW5lIjo5NzUsInRleHQiOiIgIGlmIChwYXJzZWQudHlwZSA9PT0gXCJucG1cIikgeyJ9LHsicGF0aCI6ImNvcmUvcGFja2FnZS1tYW5hZ2VyLnRzIiwibGluZSI6MTA4MywidGV4dCI6IiAgfSJ9LHsicGF0aCI6ImNvcmUvcGFja2FnZS1tYW5hZ2VyLnRzIiwibGluZSI6MTA4NCwidGV4dCI6IiAgIn0seyJwYXRoIjoiY29yZS9wYWNrYWdlLW1hbmFnZXIudHMiLCJsaW5lIjoxMDg1LCJ0ZXh0IjoicHJpdmF0ZSBhc3luYyBzaG91bGRVcGRhdGVOcG1Tb3VyY2Uoc291cmNlOiBOcG1Tb3VyY2UsIHNjb3BlOiBJbnN0YWxsZWRTb3VyY2VTY29wZSk6IFByb21pc2U8Ym9vbGVhbj4geyJ9LHsicGF0aCI6ImNvcmUvcGFja2FnZS1tYW5hZ2VyLnRzIiwibGluZSI6MTA4NiwidGV4dCI6IiAgY29uc3QgaW5zdGFsbGVkUGF0aCA9IHRoaXMuZ2V0TnBtSW5zdGFsbFBhdGgoc291cmNlLCBzY29wZSk7In0seyJwYXRoIjoiY29yZS9wYWNrYWdlLW1hbmFnZXIudHMiLCJsaW5lIjoxMDg3LCJ0ZXh0IjoiICBjb25zdCBpbnN0YWxsZWRWZXJzaW9uID0gZXhpc3RzU3luYyhpbnN0YWxsZWRQYXRoKSA/IHRoaXMuZ2V0SW5zdGFsbGVkTnBtVmVyc2lvbihpbnN0YWxsZWRQYXRoKSA6IHVuZGVmaW5lZDsifSx7InBhdGgiOiJjb3JlL3BhY2thZ2UtbWFuYWdlci50cyIsImxpbmUiOjEwOTksInRleHQiOiIgIH0ifSx7InBhdGgiOiJjb3JlL3BhY2thZ2UtbWFuYWdlci50cyIsImxpbmUiOjExMDAsInRleHQiOiIgICJ9LHsicGF0aCI6ImNvcmUvcGFja2FnZS1tYW5hZ2VyLnRzIiwibGluZSI6MTEwMSwidGV4dCI6InByaXZhdGUgYXN5bmMgdXBkYXRlTnBtQmF0Y2goc291cmNlczogTnBtVXBkYXRlVGFyZ2V0W10sIHNjb3BlOiBJbnN0YWxsZWRTb3VyY2VTY29wZSk6IFByb21pc2U8dm9pZD4geyJ9LHsicGF0aCI6ImNvcmUvcGFja2FnZS1tYW5hZ2VyLnRzIiwibGluZSI6MTEwMiwidGV4dCI6IiAgaWYgKHNvdXJjZXMubGVuZ3RoID09PSAwKSB7In0seyJwYXRoIjoiY29yZS9wYWNrYWdlLW1hbmFnZXIudHMiLCJsaW5lIjoxMTAzLCJ0ZXh0IjoiICByZXR1cm47In0seyJwYXRoIjoiY29yZS9wYWNrYWdlLW1hbmFnZXIudHMiLCJsaW5lIjoxMTEzLCJ0ZXh0IjoiICB9In0seyJwYXRoIjoiY29yZS9wYWNrYWdlLW1hbmFnZXIudHMiLCJsaW5lIjoxMTE0LCJ0ZXh0IjoiICAifSx7InBhdGgiOiJjb3JlL3BhY2thZ2UtbWFuYWdlci50cyIsImxpbmUiOjExMTUsInRleHQiOiJwcml2YXRlIGFzeW5jIGluc3RhbGxOcG1CYXRjaChzcGVjczogc3RyaW5nW10sIHNjb3BlOiBJbnN0YWxsZWRTb3VyY2VTY29wZSk6IFByb21pc2U8dm9pZD4geyJ9LHsicGF0aCI6ImNvcmUvcGFja2FnZS1tYW5hZ2VyLnRzIiwibGluZSI6MTExNiwidGV4dCI6IiAgaWYgKHNjb3BlID09PSBcInVzZXJcIikgeyJ9LHsicGF0aCI6ImNvcmUvcGFja2FnZS1tYW5hZ2VyLnRzIiwibGluZSI6MTExNywidGV4dCI6IiAgYXdhaXQgdGhpcy5ydW5OcG1Db21tYW5kKFtcImluc3RhbGxcIiwgXCItZ1wiLCAuLi5zcGVjc10pOyJ9LHsicGF0aCI6ImNvcmUvcGFja2FnZS1tYW5hZ2VyLnRzIiwibGluZSI6MTEzMCwidGV4dCI6IiAgY29uc3QgZ2xvYmFsU2V0dGluZ3MgPSB0aGlzLnNldHRpbmdzTWFuYWdlci5nZXRHbG9iYWxTZXR0aW5ncygpOyJ9LHsicGF0aCI6ImNvcmUvcGFja2FnZS1tYW5hZ2VyLnRzIiwibGluZSI6MTEzMSwidGV4dCI6IiAgY29uc3QgcHJvamVjdFNldHRpbmdzID0gdGhpcy5zZXR0aW5nc01hbmFnZXIuZ2V0UHJvamVjdFNldHRpbmdzKCk7In0seyJwYXRoIjoiY29yZS9wYWNrYWdlLW1hbmFnZXIudHMiLCJsaW5lIjoxMTMyLCJ0ZXh0IjoiY29uc3QgYWxsUGFja2FnZXM6IEFycmF5PHsgcGtnOiBQYWNrYWdlU291cmNlOyBzY29wZTogU291cmNlU2NvcGUgfT4gPSBbXTsifSx7InBhdGgiOiJjb3JlL3BhY2thZ2UtbWFuYWdlci50cyIsImxpbmUiOjExMzMsInRleHQiOiIgIGZvciAoY29uc3QgcGtnIG9mIHByb2plY3RTZXR0aW5ncy5wYWNrYWdlcyA/PyBbXSkgeyJ9LHsicGF0aCI6ImNvcmUvcGFja2FnZS1tYW5hZ2VyLnRzIiwibGluZSI6MTEzNCwidGV4dCI6IiAgYWxsUGFja2FnZXMucHVzaCh7IHBrZywgc2NvcGU6IFwicHJvamVjdFwiIH0pOyJ9LHsicGF0aCI6ImNvcmUvcGFja2FnZS1tYW5hZ2VyLnRzIiwibGluZSI6MTE0MSwidGV4dCI6IiAgY29uc3QgY2hlY2tzID0gcGFja2FnZVNvdXJjZXMifSx7InBhdGgiOiJjb3JlL3BhY2thZ2UtbWFuYWdlci50cyIsImxpbmUiOjExNDIsInRleHQiOiIgIC5maWx0ZXIoIn0seyJwYXRoIjoiY29yZS9wYWNrYWdlLW1hbmFnZXIudHMiLCJsaW5lIjoxMTQzLCJ0ZXh0IjoiKGVudHJ5KTogZW50cnkgaXMgeyBwa2c6IFBhY2thZ2VTb3VyY2U7IHNjb3BlOiBFeGNsdWRlPFNvdXJjZVNjb3BlLCBcInRlbXBvcmFyeVwiPiB9ID0+In0seyJwYXRoIjoiY29yZS9wYWNrYWdlLW1hbmFnZXIudHMiLCJsaW5lIjoxMTQ0LCJ0ZXh0IjoiICBlbnRyeS5zY29wZSAhPT0gXCJ0ZW1wb3JhcnlcIiwifSx7InBhdGgiOiJjb3JlL3BhY2thZ2UtbWFuYWdlci50cyIsImxpbmUiOjExNDUsInRleHQiOiIgICkifSx7InBhdGgiOiJjb3JlL3BhY2thZ2UtbWFuYWdlci50cyIsImxpbmUiOjExODksInRleHQiOiIgICJ9LHsicGF0aCI6ImNvcmUvcGFja2FnZS1tYW5hZ2VyLnRzIiwibGluZSI6MTE5MCwidGV4dCI6IiAgcHJpdmF0ZSBhc3luYyByZXNvbHZlUGFja2FnZVNvdXJjZXMoIn0seyJwYXRoIjoiY29yZS9wYWNrYWdlLW1hbmFnZXIudHMiLCJsaW5lIjoxMTkxLCJ0ZXh0Ijoic291cmNlczogQXJyYXk8eyBwa2c6IFBhY2thZ2VTb3VyY2U7IHNjb3BlOiBTb3VyY2VTY29wZSB9PiwifSx7InBhdGgiOiJjb3JlL3BhY2thZ2UtbWFuYWdlci50cyIsImxpbmUiOjExOTIsInRleHQiOiIgIGFjY3VtdWxhdG9yOiBSZXNvdXJjZUFjY3VtdWxhdG9yLCJ9LHsicGF0aCI6ImNvcmUvcGFja2FnZS1tYW5hZ2VyLnRzIiwibGluZSI6MTE5MywidGV4dCI6IiAgb25NaXNzaW5nPzogKHNvdXJjZTogc3RyaW5nKSA9PiBQcm9taXNlPE1pc3NpbmdTb3VyY2VBY3Rpb24+LCJ9LHsicGF0aCI6ImNvcmUvcGFja2FnZS1tYW5hZ2VyLnRzIiwibGluZSI6MTI3OSwidGV4dCI6IiAgfSJ9LHsicGF0aCI6ImNvcmUvcGFja2FnZS1tYW5hZ2VyLnRzIiwibGluZSI6MTI4MCwidGV4dCI6IiAgIn0seyJwYXRoIjoiY29yZS9wYWNrYWdlLW1hbmFnZXIudHMiLCJsaW5lIjoxMjgxLCJ0ZXh0IjoicHJpdmF0ZSBhc3luYyBpbnN0YWxsUGFyc2VkU291cmNlKHBhcnNlZDogUGFyc2VkU291cmNlLCBzY29wZTogU291cmNlU2NvcGUpOiBQcm9taXNlPHZvaWQ+IHsifSx7InBhdGgiOiJjb3JlL3BhY2thZ2UtbWFuYWdlci50cyIsImxpbmUiOjEyODIsInRleHQiOiIgIGlmIChwYXJzZWQudHlwZSA9PT0gXCJucG1cIikgeyJ9LHsicGF0aCI6ImNvcmUvcGFja2FnZS1tYW5hZ2VyLnRzIiwibGluZSI6MTI4MywidGV4dCI6IiAgYXdhaXQgdGhpcy5pbnN0YWxsTnBtKHBhcnNlZCwgc2NvcGUsIHNjb3BlID09PSBcInRlbXBvcmFyeVwiKTsifSx7InBhdGgiOiJjb3JlL3BhY2thZ2UtbWFuYWdlci50cyIsImxpbmUiOjEzMDUsInRleHQiOiIgIH0ifSx7InBhdGgiOiJjb3JlL3BhY2thZ2UtbWFuYWdlci50cyIsImxpbmUiOjEzMDYsInRleHQiOiIgICJ9LHsicGF0aCI6ImNvcmUvcGFja2FnZS1tYW5hZ2VyLnRzIiwibGluZSI6MTMwNywidGV4dCI6InByaXZhdGUgZ2V0U291cmNlTWF0Y2hLZXlGb3JTZXR0aW5ncyhzb3VyY2U6IHN0cmluZywgc2NvcGU6IFNvdXJjZVNjb3BlKTogc3RyaW5nIHsifSx7InBhdGgiOiJjb3JlL3BhY2thZ2UtbWFuYWdlci50cyIsImxpbmUiOjEzMDgsInRleHQiOiIgIGNvbnN0IHBhcnNlZCA9IHRoaXMucGFyc2VTb3VyY2Uoc291cmNlKTsifSx7InBhdGgiOiJjb3JlL3BhY2thZ2UtbWFuYWdlci50cyIsImxpbmUiOjEzMDksInRleHQiOiIgIGlmIChwYXJzZWQudHlwZSA9PT0gXCJucG1cIikgeyJ9LHsicGF0aCI6ImNvcmUvcGFja2FnZS1tYW5hZ2VyLnRzIiwibGluZSI6MTM1MCwidGV4dCI6IiAgfSJ9LHsicGF0aCI6ImNvcmUvcGFja2FnZS1tYW5hZ2VyLnRzIiwibGluZSI6MTM1MSwidGV4dCI6IiAgIn0seyJwYXRoIjoiY29yZS9wYWNrYWdlLW1hbmFnZXIudHMiLCJsaW5lIjoxMzUyLCJ0ZXh0IjoicHJpdmF0ZSBwYWNrYWdlU291cmNlc01hdGNoKGV4aXN0aW5nOiBQYWNrYWdlU291cmNlLCBpbnB1dFNvdXJjZTogc3RyaW5nLCBzY29wZTogU291cmNlU2NvcGUpOiBib29sZWFuIHsifSx7InBhdGgiOiJjb3JlL3BhY2thZ2UtbWFuYWdlci50cyIsImxpbmUiOjEzNTMsInRleHQiOiIgIGNvbnN0IGxlZnQgPSB0aGlzLmdldFNvdXJjZU1hdGNoS2V5Rm9yU2V0dGluZ3ModGhpcy5nZXRQYWNrYWdlU291cmNlU3RyaW5nKGV4aXN0aW5nKSwgc2NvcGUpOyJ9LHsicGF0aCI6ImNvcmUvcGFja2FnZS1tYW5hZ2VyLnRzIiwibGluZSI6MTM1NCwidGV4dCI6IiAgY29uc3QgcmlnaHQgPSB0aGlzLmdldFNvdXJjZU1hdGNoS2V5Rm9ySW5wdXQoaW5wdXRTb3VyY2UpOyJ9LHsicGF0aCI6ImNvcmUvcGFja2FnZS1tYW5hZ2VyLnRzIiwibGluZSI6MTM1NiwidGV4dCI6IiAgfSJ9LHsicGF0aCI6ImNvcmUvcGFja2FnZS1tYW5hZ2VyLnRzIiwibGluZSI6MTM1NywidGV4dCI6IiAgIn0seyJwYXRoIjoiY29yZS9wYWNrYWdlLW1hbmFnZXIudHMiLCJsaW5lIjoxMzU4LCJ0ZXh0IjoicHJpdmF0ZSBub3JtYWxpemVQYWNrYWdlU291cmNlRm9yU2V0dGluZ3Moc291cmNlOiBzdHJpbmcsIHNjb3BlOiBTb3VyY2VTY29wZSk6IHN0cmluZyB7In0seyJwYXRoIjoiY29yZS9wYWNrYWdlLW1hbmFnZXIudHMiLCJsaW5lIjoxMzU5LCJ0ZXh0IjoiICBjb25zdCBwYXJzZWQgPSB0aGlzLnBhcnNlU291cmNlKHNvdXJjZSk7In0seyJwYXRoIjoiY29yZS9wYWNrYWdlLW1hbmFnZXIudHMiLCJsaW5lIjoxMzYwLCJ0ZXh0IjoiICBpZiAocGFyc2VkLnR5cGUgIT09IFwibG9jYWxcIikgeyJ9LHsicGF0aCI6ImNvcmUvcGFja2FnZS1tYW5hZ2VyLnRzIiwibGluZSI6MTYwMywidGV4dCI6IiAgKiBmb3IgdGhlIHNhbWUgcmVwb3NpdG9yeSBhcmUgdHJlYXRlZCBhcyBpZGVudGljYWwuIn0seyJwYXRoIjoiY29yZS9wYWNrYWdlLW1hbmFnZXIudHMiLCJsaW5lIjoxNjA0LCJ0ZXh0IjoiICAqLyJ9LHsicGF0aCI6ImNvcmUvcGFja2FnZS1tYW5hZ2VyLnRzIiwibGluZSI6MTYwNSwidGV4dCI6InByaXZhdGUgZ2V0UGFja2FnZUlkZW50aXR5KHNvdXJjZTogc3RyaW5nLCBzY29wZT86IFNvdXJjZVNjb3BlKTogc3RyaW5nIHsifSx7InBhdGgiOiJjb3JlL3BhY2thZ2UtbWFuYWdlci50cyIsImxpbmUiOjE2MDYsInRleHQiOiIgIGNvbnN0IHBhcnNlZCA9IHRoaXMucGFyc2VTb3VyY2Uoc291cmNlKTsifSx7InBhdGgiOiJjb3JlL3BhY2thZ2UtbWFuYWdlci50cyIsImxpbmUiOjE2MDcsInRleHQiOiIgIGlmIChwYXJzZWQudHlwZSA9PT0gXCJucG1cIikgeyJ9LHsicGF0aCI6ImNvcmUvcGFja2FnZS1tYW5hZ2VyLnRzIiwibGluZSI6MTYyNCwidGV4dCI6IiAgKi8ifSx7InBhdGgiOiJjb3JlL3BhY2thZ2UtbWFuYWdlci50cyIsImxpbmUiOjE2MjUsInRleHQiOiIgIHByaXZhdGUgZGVkdXBlUGFja2FnZXMoIn0seyJwYXRoIjoiY29yZS9wYWNrYWdlLW1hbmFnZXIudHMiLCJsaW5lIjoxNjI2LCJ0ZXh0IjoicGFja2FnZXM6IEFycmF5PHsgcGtnOiBQYWNrYWdlU291cmNlOyBzY29wZTogU291cmNlU2NvcGUgfT4sIn0seyJwYXRoIjoiY29yZS9wYWNrYWdlLW1hbmFnZXIudHMiLCJsaW5lIjoxNjI3LCJ0ZXh0IjoiICApOiBBcnJheTx7IHBrZzogUGFja2FnZVNvdXJjZTsgc2NvcGU6IFNvdXJjZVNjb3BlIH0+IHsifSx7InBhdGgiOiJjb3JlL3BhY2thZ2UtbWFuYWdlci50cyIsImxpbmUiOjE2MjgsInRleHQiOiIgIGNvbnN0IHNlZW4gPSBuZXcgTWFwPHN0cmluZywgeyBwa2c6IFBhY2thZ2VTb3VyY2U7IHNjb3BlOiBTb3VyY2VTY29wZSB9PigpOyJ9LHsicGF0aCI6ImNvcmUvcGFja2FnZS1tYW5hZ2VyLnRzIiwibGluZSI6MTYyNSwidGV4dCI6IiAgcHJpdmF0ZSBkZWR1cGVQYWNrYWdlcygifSx7InBhdGgiOiJjb3JlL3BhY2thZ2UtbWFuYWdlci50cyIsImxpbmUiOjE2MjYsInRleHQiOiIgIHBhY2thZ2VzOiBBcnJheTx7IHBrZzogUGFja2FnZVNvdXJjZTsgc2NvcGU6IFNvdXJjZVNjb3BlIH0+LCJ9LHsicGF0aCI6ImNvcmUvcGFja2FnZS1tYW5hZ2VyLnRzIiwibGluZSI6MTYyNywidGV4dCI6Iik6IEFycmF5PHsgcGtnOiBQYWNrYWdlU291cmNlOyBzY29wZTogU291cmNlU2NvcGUgfT4geyJ9LHsicGF0aCI6ImNvcmUvcGFja2FnZS1tYW5hZ2VyLnRzIiwibGluZSI6MTYyOCwidGV4dCI6IiAgY29uc3Qgc2VlbiA9IG5ldyBNYXA8c3RyaW5nLCB7IHBrZzogUGFja2FnZVNvdXJjZTsgc2NvcGU6IFNvdXJjZVNjb3BlIH0+KCk7In0seyJwYXRoIjoiY29yZS9wYWNrYWdlLW1hbmFnZXIudHMiLCJsaW5lIjoxNjI5LCJ0ZXh0IjoiICAifSx7InBhdGgiOiJjb3JlL3BhY2thZ2UtbWFuYWdlci50cyIsImxpbmUiOjE2MjYsInRleHQiOiIgIHBhY2thZ2VzOiBBcnJheTx7IHBrZzogUGFja2FnZVNvdXJjZTsgc2NvcGU6IFNvdXJjZVNjb3BlIH0+LCJ9LHsicGF0aCI6ImNvcmUvcGFja2FnZS1tYW5hZ2VyLnRzIiwibGluZSI6MTYyNywidGV4dCI6IiAgKTogQXJyYXk8eyBwa2c6IFBhY2thZ2VTb3VyY2U7IHNjb3BlOiBTb3VyY2VTY29wZSB9PiB7In0seyJwYXRoIjoiY29yZS9wYWNrYWdlLW1hbmFnZXIudHMiLCJsaW5lIjoxNjI4LCJ0ZXh0IjoiY29uc3Qgc2VlbiA9IG5ldyBNYXA8c3RyaW5nLCB7IHBrZzogUGFja2FnZVNvdXJjZTsgc2NvcGU6IFNvdXJjZVNjb3BlIH0+KCk7In0seyJwYXRoIjoiY29yZS9wYWNrYWdlLW1hbmFnZXIudHMiLCJsaW5lIjoxNjI5LCJ0ZXh0IjoiICAifSx7InBhdGgiOiJjb3JlL3BhY2thZ2UtbWFuYWdlci50cyIsImxpbmUiOjE2MzAsInRleHQiOiIgIGZvciAoY29uc3QgZW50cnkgb2YgcGFja2FnZXMpIHsifSx7InBhdGgiOiJjb3JlL3BhY2thZ2UtbWFuYWdlci50cyIsImxpbmUiOjE2ODYsInRleHQiOiIgIH0ifSx7InBhdGgiOiJjb3JlL3BhY2thZ2UtbWFuYWdlci50cyIsImxpbmUiOjE2ODcsInRleHQiOiIgICJ9LHsicGF0aCI6ImNvcmUvcGFja2FnZS1tYW5hZ2VyLnRzIiwibGluZSI6MTY4OCwidGV4dCI6InByaXZhdGUgYXN5bmMgaW5zdGFsbE5wbShzb3VyY2U6IE5wbVNvdXJjZSwgc2NvcGU6IFNvdXJjZVNjb3BlLCB0ZW1wb3Jhcnk6IGJvb2xlYW4pOiBQcm9taXNlPHZvaWQ+IHsifSx7InBhdGgiOiJjb3JlL3BhY2thZ2UtbWFuYWdlci50cyIsImxpbmUiOjE2ODksInRleHQiOiIgIGlmIChzY29wZSA9PT0gXCJ1c2VyXCIgJiYgIXRlbXBvcmFyeSkgeyJ9LHsicGF0aCI6ImNvcmUvcGFja2FnZS1tYW5hZ2VyLnRzIiwibGluZSI6MTY5MCwidGV4dCI6IiAgYXdhaXQgdGhpcy5ydW5OcG1Db21tYW5kKFtcImluc3RhbGxcIiwgXCItZ1wiLCBzb3VyY2Uuc3BlY10pOyJ9LHsicGF0aCI6ImNvcmUvcGFja2FnZS1tYW5hZ2VyLnRzIiwibGluZSI6MTY5NiwidGV4dCI6IiAgfSJ9LHsicGF0aCI6ImNvcmUvcGFja2FnZS1tYW5hZ2VyLnRzIiwibGluZSI6MTY5NywidGV4dCI6IiAgIn0seyJwYXRoIjoiY29yZS9wYWNrYWdlLW1hbmFnZXIudHMiLCJsaW5lIjoxNjk4LCJ0ZXh0IjoicHJpdmF0ZSBhc3luYyB1bmluc3RhbGxOcG0oc291cmNlOiBOcG1Tb3VyY2UsIHNjb3BlOiBTb3VyY2VTY29wZSk6IFByb21pc2U8dm9pZD4geyJ9LHsicGF0aCI6ImNvcmUvcGFja2FnZS1tYW5hZ2VyLnRzIiwibGluZSI6MTY5OSwidGV4dCI6IiAgaWYgKHNjb3BlID09PSBcInVzZXJcIikgeyJ9LHsicGF0aCI6ImNvcmUvcGFja2FnZS1tYW5hZ2VyLnRzIiwibGluZSI6MTcwMCwidGV4dCI6IiAgYXdhaXQgdGhpcy5ydW5OcG1Db21tYW5kKFtcInVuaW5zdGFsbFwiLCBcIi1nXCIsIHNvdXJjZS5uYW1lXSk7In0seyJwYXRoIjoiY29yZS9wYWNrYWdlLW1hbmFnZXIudHMiLCJsaW5lIjoxNzA4LCJ0ZXh0IjoiICB9In0seyJwYXRoIjoiY29yZS9wYWNrYWdlLW1hbmFnZXIudHMiLCJsaW5lIjoxNzA5LCJ0ZXh0IjoiICAifSx7InBhdGgiOiJjb3JlL3BhY2thZ2UtbWFuYWdlci50cyIsImxpbmUiOjE3MTAsInRleHQiOiJwcml2YXRlIGFzeW5jIGluc3RhbGxHaXQoc291cmNlOiBHaXRTb3VyY2UsIHNjb3BlOiBTb3VyY2VTY29wZSk6IFByb21pc2U8dm9pZD4geyJ9LHsicGF0aCI6ImNvcmUvcGFja2FnZS1tYW5hZ2VyLnRzIiwibGluZSI6MTcxMSwidGV4dCI6IiAgY29uc3QgdGFyZ2V0RGlyID0gdGhpcy5nZXRHaXRJbnN0YWxsUGF0aChzb3VyY2UsIHNjb3BlKTsifSx7InBhdGgiOiJjb3JlL3BhY2thZ2UtbWFuYWdlci50cyIsImxpbmUiOjE3MTIsInRleHQiOiIgIGlmIChleGlzdHNTeW5jKHRhcmdldERpcikpIHsifSx7InBhdGgiOiJjb3JlL3BhY2thZ2UtbWFuYWdlci50cyIsImxpbmUiOjE3MjksInRleHQiOiIgIH0ifSx7InBhdGgiOiJjb3JlL3BhY2thZ2UtbWFuYWdlci50cyIsImxpbmUiOjE3MzAsInRleHQiOiIgICJ9LHsicGF0aCI6ImNvcmUvcGFja2FnZS1tYW5hZ2VyLnRzIiwibGluZSI6MTczMSwidGV4dCI6InByaXZhdGUgYXN5bmMgdXBkYXRlR2l0KHNvdXJjZTogR2l0U291cmNlLCBzY29wZTogU291cmNlU2NvcGUpOiBQcm9taXNlPHZvaWQ+IHsifSx7InBhdGgiOiJjb3JlL3BhY2thZ2UtbWFuYWdlci50cyIsImxpbmUiOjE3MzIsInRleHQiOiIgIGNvbnN0IHRhcmdldERpciA9IHRoaXMuZ2V0R2l0SW5zdGFsbFBhdGgoc291cmNlLCBzY29wZSk7In0seyJwYXRoIjoiY29yZS9wYWNrYWdlLW1hbmFnZXIudHMiLCJsaW5lIjoxNzMzLCJ0ZXh0IjoiICBpZiAoIWV4aXN0c1N5bmModGFyZ2V0RGlyKSkgeyJ9LHsicGF0aCI6ImNvcmUvcGFja2FnZS1tYW5hZ2VyLnRzIiwibGluZSI6MTc3NywidGV4dCI6IiAgfSJ9LHsicGF0aCI6ImNvcmUvcGFja2FnZS1tYW5hZ2VyLnRzIiwibGluZSI6MTc3OCwidGV4dCI6IiAgIn0seyJwYXRoIjoiY29yZS9wYWNrYWdlLW1hbmFnZXIudHMiLCJsaW5lIjoxNzc5LCJ0ZXh0IjoicHJpdmF0ZSBhc3luYyByZW1vdmVHaXQoc291cmNlOiBHaXRTb3VyY2UsIHNjb3BlOiBTb3VyY2VTY29wZSk6IFByb21pc2U8dm9pZD4geyJ9LHsicGF0aCI6ImNvcmUvcGFja2FnZS1tYW5hZ2VyLnRzIiwibGluZSI6MTc4MCwidGV4dCI6IiAgY29uc3QgdGFyZ2V0RGlyID0gdGhpcy5nZXRHaXRJbnN0YWxsUGF0aChzb3VyY2UsIHNjb3BlKTsifSx7InBhdGgiOiJjb3JlL3BhY2thZ2UtbWFuYWdlci50cyIsImxpbmUiOjE3ODEsInRleHQiOiIgIGlmICghZXhpc3RzU3luYyh0YXJnZXREaXIpKSByZXR1cm47In0seyJwYXRoIjoiY29yZS9wYWNrYWdlLW1hbmFnZXIudHMiLCJsaW5lIjoxODI4LCJ0ZXh0IjoiICB9In0seyJwYXRoIjoiY29yZS9wYWNrYWdlLW1hbmFnZXIudHMiLCJsaW5lIjoxODI5LCJ0ZXh0IjoiICAifSx7InBhdGgiOiJjb3JlL3BhY2thZ2UtbWFuYWdlci50cyIsImxpbmUiOjE4MzAsInRleHQiOiJwcml2YXRlIGdldE5wbUluc3RhbGxSb290KHNjb3BlOiBTb3VyY2VTY29wZSwgdGVtcG9yYXJ5OiBib29sZWFuKTogc3RyaW5nIHsifSx7InBhdGgiOiJjb3JlL3BhY2thZ2UtbWFuYWdlci50cyIsImxpbmUiOjE4MzEsInRleHQiOiIgIGlmICh0ZW1wb3JhcnkpIHsifSx7InBhdGgiOiJjb3JlL3BhY2thZ2UtbWFuYWdlci50cyIsImxpbmUiOjE4MzIsInRleHQiOiIgIHJldHVybiB0aGlzLmdldFRlbXBvcmFyeURpcihcIm5wbVwiKTsifSx7InBhdGgiOiJjb3JlL3BhY2thZ2UtbWFuYWdlci50cyIsImxpbmUiOjE4NTQsInRleHQiOiIgIH0ifSx7InBhdGgiOiJjb3JlL3BhY2thZ2UtbWFuYWdlci50cyIsImxpbmUiOjE4NTUsInRleHQiOiIgICJ9LHsicGF0aCI6ImNvcmUvcGFja2FnZS1tYW5hZ2VyLnRzIiwibGluZSI6MTg1NiwidGV4dCI6InByaXZhdGUgZ2V0TnBtSW5zdGFsbFBhdGgoc291cmNlOiBOcG1Tb3VyY2UsIHNjb3BlOiBTb3VyY2VTY29wZSk6IHN0cmluZyB7In0seyJwYXRoIjoiY29yZS9wYWNrYWdlLW1hbmFnZXIudHMiLCJsaW5lIjoxODU3LCJ0ZXh0IjoiICBpZiAoc2NvcGUgPT09IFwidGVtcG9yYXJ5XCIpIHsifSx7InBhdGgiOiJjb3JlL3BhY2thZ2UtbWFuYWdlci50cyIsImxpbmUiOjE4NTgsInRleHQiOiIgIHJldHVybiBqb2luKHRoaXMuZ2V0VGVtcG9yYXJ5RGlyKFwibnBtXCIpLCBcIm5vZGVfbW9kdWxlc1wiLCBzb3VyY2UubmFtZSk7In0seyJwYXRoIjoiY29yZS9wYWNrYWdlLW1hbmFnZXIudHMiLCJsaW5lIjoxODY0LCJ0ZXh0IjoiICB9In0seyJwYXRoIjoiY29yZS9wYWNrYWdlLW1hbmFnZXIudHMiLCJsaW5lIjoxODY1LCJ0ZXh0IjoiICAifSx7InBhdGgiOiJjb3JlL3BhY2thZ2UtbWFuYWdlci50cyIsImxpbmUiOjE4NjYsInRleHQiOiJwcml2YXRlIGdldEdpdEluc3RhbGxQYXRoKHNvdXJjZTogR2l0U291cmNlLCBzY29wZTogU291cmNlU2NvcGUpOiBzdHJpbmcgeyJ9LHsicGF0aCI6ImNvcmUvcGFja2FnZS1tYW5hZ2VyLnRzIiwibGluZSI6MTg2NywidGV4dCI6IiAgaWYgKHNjb3BlID09PSBcInRlbXBvcmFyeVwiKSB7In0seyJwYXRoIjoiY29yZS9wYWNrYWdlLW1hbmFnZXIudHMiLCJsaW5lIjoxODY4LCJ0ZXh0IjoiICByZXR1cm4gdGhpcy5nZXRUZW1wb3JhcnlEaXIoYGdpdC0ke3NvdXJjZS5ob3N0fWAsIHNvdXJjZS5wYXRoKTsifSx7InBhdGgiOiJjb3JlL3BhY2thZ2UtbWFuYWdlci50cyIsImxpbmUiOjE4NzQsInRleHQiOiIgIH0ifSx7InBhdGgiOiJjb3JlL3BhY2thZ2UtbWFuYWdlci50cyIsImxpbmUiOjE4NzUsInRleHQiOiIgICJ9LHsicGF0aCI6ImNvcmUvcGFja2FnZS1tYW5hZ2VyLnRzIiwibGluZSI6MTg3NiwidGV4dCI6InByaXZhdGUgZ2V0R2l0SW5zdGFsbFJvb3Qoc2NvcGU6IFNvdXJjZVNjb3BlKTogc3RyaW5nIHwgdW5kZWZpbmVkIHsifSx7InBhdGgiOiJjb3JlL3BhY2thZ2UtbWFuYWdlci50cyIsImxpbmUiOjE4NzcsInRleHQiOiIgIGlmIChzY29wZSA9PT0gXCJ0ZW1wb3JhcnlcIikgeyJ9LHsicGF0aCI6ImNvcmUvcGFja2FnZS1tYW5hZ2VyLnRzIiwibGluZSI6MTg3OCwidGV4dCI6IiAgcmV0dXJuIHVuZGVmaW5lZDsifSx7InBhdGgiOiJjb3JlL3BhY2thZ2UtbWFuYWdlci50cyIsImxpbmUiOjE4OTIsInRleHQiOiIgIH0ifSx7InBhdGgiOiJjb3JlL3BhY2thZ2UtbWFuYWdlci50cyIsImxpbmUiOjE4OTMsInRleHQiOiIgICJ9LHsicGF0aCI6ImNvcmUvcGFja2FnZS1tYW5hZ2VyLnRzIiwibGluZSI6MTg5NCwidGV4dCI6InByaXZhdGUgZ2V0QmFzZURpckZvclNjb3BlKHNjb3BlOiBTb3VyY2VTY29wZSk6IHN0cmluZyB7In0seyJwYXRoIjoiY29yZS9wYWNrYWdlLW1hbmFnZXIudHMiLCJsaW5lIjoxODk1LCJ0ZXh0IjoiICBpZiAoc2NvcGUgPT09IFwicHJvamVjdFwiKSB7In0seyJwYXRoIjoiY29yZS9wYWNrYWdlLW1hbmFnZXIudHMiLCJsaW5lIjoxODk2LCJ0ZXh0IjoiICByZXR1cm4gam9pbih0aGlzLmN3ZCwgQ09ORklHX0RJUl9OQU1FKTsifSx7InBhdGgiOiJjb3JlL3NvdXJjZS1pbmZvLnRzIiwibGluZSI6MSwidGV4dCI6IiAgaW1wb3J0IHR5cGUgeyBQYXRoTWV0YWRhdGEgfSBmcm9tIFwiLi9wYWNrYWdlLW1hbmFnZXIuanNcIjsifSx7InBhdGgiOiJjb3JlL3NvdXJjZS1pbmZvLnRzIiwibGluZSI6MiwidGV4dCI6IiAgIn0seyJwYXRoIjoiY29yZS9zb3VyY2UtaW5mby50cyIsImxpbmUiOjMsInRleHQiOiJleHBvcnQgdHlwZSBTb3VyY2VTY29wZSA9IFwidXNlclwiIHwgXCJwcm9qZWN0XCIgfCBcInRlbXBvcmFyeVwiOyJ9LHsicGF0aCI6ImNvcmUvc291cmNlLWluZm8udHMiLCJsaW5lIjo0LCJ0ZXh0IjoiICBleHBvcnQgdHlwZSBTb3VyY2VPcmlnaW4gPSBcInBhY2thZ2VcIiB8IFwidG9wLWxldmVsXCI7In0seyJwYXRoIjoiY29yZS9zb3VyY2UtaW5mby50cyIsImxpbmUiOjUsInRleHQiOiIgICJ9LHsicGF0aCI6ImNvcmUvc291cmNlLWluZm8udHMiLCJsaW5lIjo3LCJ0ZXh0IjoiICBwYXRoOiBzdHJpbmc7In0seyJwYXRoIjoiY29yZS9zb3VyY2UtaW5mby50cyIsImxpbmUiOjgsInRleHQiOiIgIHNvdXJjZTogc3RyaW5nOyJ9LHsicGF0aCI6ImNvcmUvc291cmNlLWluZm8udHMiLCJsaW5lIjo5LCJ0ZXh0Ijoic2NvcGU6IFNvdXJjZVNjb3BlOyJ9LHsicGF0aCI6ImNvcmUvc291cmNlLWluZm8udHMiLCJsaW5lIjoxMCwidGV4dCI6IiAgb3JpZ2luOiBTb3VyY2VPcmlnaW47In0seyJwYXRoIjoiY29yZS9zb3VyY2UtaW5mby50cyIsImxpbmUiOjExLCJ0ZXh0IjoiICBiYXNlRGlyPzogc3RyaW5nOyJ9LHsicGF0aCI6ImNvcmUvc291cmNlLWluZm8udHMiLCJsaW5lIjoyNiwidGV4dCI6IiAgb3B0aW9uczogeyJ9LHsicGF0aCI6ImNvcmUvc291cmNlLWluZm8udHMiLCJsaW5lIjoyNywidGV4dCI6IiAgc291cmNlOiBzdHJpbmc7In0seyJwYXRoIjoiY29yZS9zb3VyY2UtaW5mby50cyIsImxpbmUiOjI4LCJ0ZXh0Ijoic2NvcGU/OiBTb3VyY2VTY29wZTsifSx7InBhdGgiOiJjb3JlL3NvdXJjZS1pbmZvLnRzIiwibGluZSI6MjksInRleHQiOiIgIG9yaWdpbj86IFNvdXJjZU9yaWdpbjsifSx7InBhdGgiOiJjb3JlL3NvdXJjZS1pbmZvLnRzIiwibGluZSI6MzAsInRleHQiOiIgIGJhc2VEaXI/OiBzdHJpbmc7In1dLCJyZWxhdGl2ZVRvIjoicGFja2FnZXMvY29kaW5nLWFnZW50L3NyYyJ9LCJpc0Vycm9yIjpmYWxzZSwidGltZXN0YW1wIjoxNzc3NTM2NDgwNDM3fX0seyJ0eXBlIjoibWVzc2FnZSIsImlkIjoiYjRmZDEzZTkiLCJwYXJlbnRJZCI6ImZlMzJjM2U2IiwidGltZXN0YW1wIjoiMjAyNi0wNC0zMFQwODowODowOC42NTNaIiwibWVzc2FnZSI6eyJyb2xlIjoiYXNzaXN0YW50IiwiY29udGVudCI6W3sidHlwZSI6InRoaW5raW5nIiwidGhpbmtpbmciOiIqKkNsYXJpZnlpbmcgdGVjaG5pY2FsIGRyYXdiYWNrcyoqXG5cbknigJltIGZvY3VzaW5nIG9uIGhvdyB0byBleHBsYWluIHRoZSBkcmF3YmFja3MgY29uY2lzZWx5LCBlc3BlY2lhbGx5IHJlZ2FyZGluZyBzZXR0aW5ncyBzZWxlY3Rpb24sIGluc3RhbGwgcGF0aHMsIGFuZCBhdXRoZW50aWNhdGlvbi4gSWYgSSBzcGxpdCB0aGUgdHlwZSwgaXQgbWlnaHQgY29tcGxpY2F0ZSB0aGluZ3MuIEFsc28sIHRoZXJlIGNvdWxkIGJlIHdlaXJkIGNvbmZsaWN0cyB3aXRoIGRpZmZlcmVudCB1c2VyLWFnZW50IHNlbWFudGljcy4gSXQncyBpbXBvcnRhbnQgdG8gZW5zdXJlIHRoYXQgdGhlIGFuc3dlciB3b3JrcyB0ZWNobmljYWxseSB3aXRoIHRoZSBhZGFwdGVyLCB3aGljaCBtZWFucyBJ4oCZZCBuZWVkIHRvIHdpZGVuIHRoZSBTb3VyY2VTY29wZSBhY3Jvc3MgbXVsdGlwbGUgZmlsZXMgYW5kIGNvbXBhcmlzb25zLiBJdCBzZWVtcyByaXNreTsgcGVyaGFwcyBiYXNpbmcgaXQgb24gYmFzZURpciBpcyBhIGJldHRlciBhcHByb2FjaC4iLCJ0aGlua2luZ1NpZ25hdHVyZSI6IntcImlkXCI6XCJyc18wMjdmMWVhMTVkZWYzNTA1MDE2OWYzMGRlMWQ5NDQ4MTkxYmRmMmZiZmRiOTIzYzZlMFwiLFwidHlwZVwiOlwicmVhc29uaW5nXCIsXCJlbmNyeXB0ZWRfY29udGVudFwiOlwiZ0FBQUFBQnA4dzNsdTRmcU5aaUFQVFowT2pERzVpYXBHSmhjbHdtOWtLNjdySmQybVFRWC1JeDVhZmtuVnllcGxSX3J0QVl5RTFCSDFjdnM2cUV0UDJmRmJNQlVnN09uclRuekwwVW45c09fM2lma2oyWm8xcTlyOE00X2dtUU9DSTh4OXJ6NGp1Zjk2dWhMaDJTbW16QUxLVkNxSThadW5teE9TVGpJWkNtdURmZFF2djlZSC1rLXNJTld5MDI4bEoyRDVScFRMT091YlZiVGFvaGN5VzVLRnFscEoxdFNNTUZYQjN0RkVZYV9TbHJrM1c4SUM2VG5OOXVTVkRYN3c2eDA2WW5pRHcwVTBERUpteXdqWVpwRWN5dFU0SlVKdmstSkpLVkxJUVVtSG5mN2taQnd3a0JvVzFQdDl1b1NIcGNzSm1sRFFpWGZVaFUzVHdYUVFyYjhtLVU4dGZkUnVmY2w4eUFBQ2VTR0pqV0E5UUJoR05zV3d0cS1jV2x5S09wcHF4NXBqcVo5ejdyVk90eVJ3ZTNiZFBWR0tLRGo3RXdhd2xSUC1VV3hqOXFXaVlMamEwNGxYTGZZMWxaNWVzVGdHaXhPMTNNU0ctVHMxc3NkUl9HZE8wTzJNakVQOWIwb2Eyei03X1lZVkV2U1FuUXdBbTVnMnF5R1ZCUjJVcEp6dHhYcWVRVWkydjAwb0hvTzJKeEZVMXVwa2RSUWx4dWN0Y0diWnQwbUFxdVpRYXdHdXdiM0JzSk9jZ3Y4dkdYOExKVjlTckVnMTYzOTB0WjdraF9adUlZUVl1Q3NZYlZnU2ZWZDhrdmdWNTFPMmI4WXd5a0Q4TFNVZW04R2tPQlZqWXZRVm5qQ3U0V3NoS0xacmI0LUhaeFpYR1ZkSW5VY3E4UnlrZXE5T0x1NWEtQU1SWlhZS1NpMENUMmdwZ2NJT2ZmTjhoQTFZM0xtc1N3SktGOHJ3NTliREc2NTY4LTk4al9EcnFGTHA1QnVJb2h5S1cwelFGSnREdmJLdzl6QjlWX1RoSWFrY2VCN3FYN3pET2VidXpCNFVJWWg4MTNxRDRlWlloTFhXR3dPb1J6dEFxS3p3SnpuWldONXVWNElzaXBhNFlBUWE5dzlzUHdNR1ZaU2lSMzJfSm9TSlFkTjVaVkZXV1BQcXB5R2hWaVp3Vkc2ZnhVZFY1T1VzdlZLa0ZTQ0NRVkFYMHk3UDlUZ2M1bmE5dHI4WkVPX2Ytd1JEeDNlWWJYSmZiOF9zNWRUdU1VUDFiaS1zcF9ISFJjQ0NsdktRZTdMaXctaUVqWTR4SjF4Mk5uT3Bjc3MzQXI5MnJCeUh0UURQdUhhTXRnWWNoQ2ZTY1E4c3lmOU92OXlpSUhXY1o0UXBFeHp5NzNxRmlnTGc3S0ZrV3pRU21UQXJabFBiQm1OMnNkeXFaaDVsbElMWUk1RWRsRURGZUY2QlVLYmxocGtmbmpTUThNdDFoY2ZBUVVic3lEdURzdWRmMXpEenduS09UU0JzTFVUekVwaVBjcUJSQkE4d2JXTnVPdHpkd1NFUzMwU19MbDRaWnc4ZXZka1JmcnBZbk96RlVRd1lDcHIwR1BrVzVqUm5RcDk1YnR3aTE5bjVhbWs5ZTJnNzZFdk42aGVBY0IzeWxfSWRiTEVrRThNaFVHUURsQ0tiOGRlMnJzZVJSWU9IcWt5NEpSQ2VBUUpaaHVEWWJPNm12eXdXOVBvSzI3U0lIU2RXLXZqa0JsWHNHS1JQWmF3bGxBQnI1RllIWS1fTWpmWGU4RFdFb3NtWWZpRjYxTUx4VjdYTlhFN2dlTVdnb01Pb25LR0pwV2JiMWZwckE5YzhGYmF2NlpXa1Rpb1NMSXdnaVFPTjUyeEtfUjB4cWdXYzJ1RjBvLUZTU0Z0OEdqOERrQjdreGljblE9PVwiLFwic3VtbWFyeVwiOlt7XCJ0eXBlXCI6XCJzdW1tYXJ5X3RleHRcIixcInRleHRcIjpcIioqQ2xhcmlmeWluZyB0ZWNobmljYWwgZHJhd2JhY2tzKipcXG5cXG5J4oCZbSBmb2N1c2luZyBvbiBob3cgdG8gZXhwbGFpbiB0aGUgZHJhd2JhY2tzIGNvbmNpc2VseSwgZXNwZWNpYWxseSByZWdhcmRpbmcgc2V0dGluZ3Mgc2VsZWN0aW9uLCBpbnN0YWxsIHBhdGhzLCBhbmQgYXV0aGVudGljYXRpb24uIElmIEkgc3BsaXQgdGhlIHR5cGUsIGl0IG1pZ2h0IGNvbXBsaWNhdGUgdGhpbmdzLiBBbHNvLCB0aGVyZSBjb3VsZCBiZSB3ZWlyZCBjb25mbGljdHMgd2l0aCBkaWZmZXJlbnQgdXNlci1hZ2VudCBzZW1hbnRpY3MuIEl0J3MgaW1wb3J0YW50IHRvIGVuc3VyZSB0aGF0IHRoZSBhbnN3ZXIgd29ya3MgdGVjaG5pY2FsbHkgd2l0aCB0aGUgYWRhcHRlciwgd2hpY2ggbWVhbnMgSeKAmWQgbmVlZCB0byB3aWRlbiB0aGUgU291cmNlU2NvcGUgYWNyb3NzIG11bHRpcGxlIGZpbGVzIGFuZCBjb21wYXJpc29ucy4gSXQgc2VlbXMgcmlza3k7IHBlcmhhcHMgYmFzaW5nIGl0IG9uIGJhc2VEaXIgaXMgYSBiZXR0ZXIgYXBwcm9hY2guXCJ9XX0ifSx7InR5cGUiOiJ0ZXh0IiwidGV4dCI6Ikl0IGNvdWxkIHdvcmssIGJ1dCBJIHRoaW5rIGl0IGlzIHdvcnNlLlxuXG5DdXJyZW50IGBTb3VyY2VTY29wZWAgaXM6XG5cbmBgYHRzXG50eXBlIFNvdXJjZVNjb3BlID0gXCJ1c2VyXCIgfCBcInByb2plY3RcIiB8IFwidGVtcG9yYXJ5XCI7XG5gYGBcblxuU2NvcGUgaXMgdXNlZCBhcyBhIHNlbWFudGljIG93bmVyc2hpcC9jb25maWcgc2NvcGUsIG5vdCBwaHlzaWNhbCBsb2NhdGlvbi4gU3BsaXR0aW5nIGludG8gYFwidXNlci1waVwiYCAvIGBcInVzZXItYWdlbnRcImAgd291bGQgcmlwcGxlIHRocm91Z2g6XG5cbi0gYFBhdGhNZXRhZGF0YS5zY29wZWBcbi0gYFNvdXJjZUluZm8uc2NvcGVgXG4tIHBhY2thZ2UgaW5zdGFsbC91cGRhdGUvcmVtb3ZlIHBhdGhzXG4tIHNldHRpbmdzIHJlYWRzL3dyaXRlczpcbiAgYGBgdHNcbiAgc2NvcGUgPT09IFwicHJvamVjdFwiID8gcHJvamVjdFNldHRpbmdzIDogZ2xvYmFsU2V0dGluZ3NcbiAgYGBgXG4tIGNvbmZpZyBzZWxlY3RvciB0b2dnbGluZzpcbiAgYGBgdHNcbiAgY29uc3Qgc2NvcGUgPSBpdGVtLm1ldGFkYXRhLnNjb3BlIGFzIFwidXNlclwiIHwgXCJwcm9qZWN0XCI7XG4gIGBgYFxuLSBwYWNrYWdlIGRlZHVwZSAvIGlkZW50aXR5IGxvZ2ljXG4tIG1heWJlIGV4dGVuc2lvbi9yZXNvdXJjZSBzb3VyY2UgaW5mbyBzdXJmYWNlZCB0byB0b29sc1xuXG5Qcm9ibGVtOiBib3RoIGFyZSBzdGlsbCB1c2VyIHNjb3BlLiBUaGV5IGJvdGggd3JpdGUgdG8gZ2xvYmFsIHNldHRpbmdzLiBTbyBgXCJ1c2VyLWFnZW50XCJgIHdvdWxkIG5lZWQgdG8gYmVoYXZlIGxpa2UgYFwidXNlclwiYCBpbiBtb3N0IGNvZGUsIGV4Y2VwdCBkaXNwbGF5L2dyb3VwaW5nLiBUaGF0IG1lYW5zIGxvdHMgb2Ygbm9ybWFsaXphdGlvbiBsaWtlOlxuXG5gYGB0c1xuaXNVc2VyU2NvcGUoc2NvcGUpXG5gYGBcblxub3IgbWFwcGluZyBgXCJ1c2VyLWFnZW50XCJgIGJhY2sgdG8gYFwidXNlclwiYCBiZWZvcmUgc2V0dGluZ3MvaW5zdGFsbCBsb2dpYy5cblxuU28geWVzLCBpdCBjYW4gc29sdmUgZ3JvdXBpbmcsIGJ1dCBpdCBvdmVybG9hZHMgYHNjb3BlYCB3aXRoIHN0b3JhZ2UgbG9jYXRpb24uIGBiYXNlRGlyYCBhbHJlYWR5IHJlcHJlc2VudHMgcGh5c2ljYWwgcm9vdCwgc28gaXQgaXMgY2xlYW5lci5cblxuQmVzdCBvcHRpb24gcmVtYWluczpcbi0gc3BsaXQgYGFkZFJlc291cmNlc2Agc28gYC5waWAgYW5kIGAuYWdlbnRzYCBnZXQgZGlmZmVyZW50IGBiYXNlRGlyYFxuLSBpbmNsdWRlIGBiYXNlRGlyYCBpbiBncm91cCBrZXlcbi0gYGdldEdyb3VwTGFiZWwoKWAgZGVyaXZlcyBsYWJlbCBmcm9tIGBiYXNlRGlyYFxuXG5UaGF0IGtlZXBzOlxuLSBgc2NvcGUgPSB1c2VyYFxuLSBgc291cmNlID0gYXV0b2Bcbi0gbG9jYXRpb24gPSBgYmFzZURpcmAiLCJ0ZXh0U2lnbmF0dXJlIjoie1widlwiOjEsXCJpZFwiOlwibXNnXzAyN2YxZWExNWRlZjM1MDUwMTY5ZjMwZGU1YjJiNDgxOTFhMTEyODM3YTk2YWZjMDg3XCIsXCJwaGFzZVwiOlwiZmluYWxfYW5zd2VyXCJ9In1dLCJhcGkiOiJvcGVuYWktY29kZXgtcmVzcG9uc2VzIiwicHJvdmlkZXIiOiJvcGVuYWktY29kZXgiLCJtb2RlbCI6ImdwdC01LjUiLCJ1c2FnZSI6eyJpbnB1dCI6MzQzNiwib3V0cHV0Ijo0MDgsImNhY2hlUmVhZCI6MzIyNTYsImNhY2hlV3JpdGUiOjAsInRvdGFsVG9rZW5zIjozNjEwMCwiY29zdCI6eyJpbnB1dCI6MC4wMTcxOCwib3V0cHV0IjowLjAxMjI0MDAwMDAwMDAwMDAwMSwiY2FjaGVSZWFkIjowLjAxNjEyOCwiY2FjaGVXcml0ZSI6MCwidG90YWwiOjAuMDQ1NTQ4MDAwMDAwMDAwMDA1fX0sInN0b3BSZWFzb24iOiJzdG9wIiwidGltZXN0YW1wIjoxNzc3NTM2NDgwNDM4LCJyZXNwb25zZUlkIjoicmVzcF8wMjdmMWVhMTVkZWYzNTA1MDE2OWYzMGRlMGZhNjg4MTkxYjI4OTY5MmU2MTllMWQwNSJ9fSx7InR5cGUiOiJtZXNzYWdlIiwiaWQiOiI5MWQ4NzI3YyIsInBhcmVudElkIjoiY2QyYmMzM2UiLCJ0aW1lc3RhbXAiOiIyMDI2LTA0LTMwVDA4OjA5OjA2LjQ0NFoiLCJtZXNzYWdlIjp7InJvbGUiOiJ1c2VyIiwiY29udGVudCI6W3sidHlwZSI6InRleHQiLCJ0ZXh0Ijoib2ssIHNvIGJhc2VEaXIgKyB1cGRhdGluZyB0aGUgZ3JvdXBlZCBrZXkgdG8gaW5jbHVkZSBpdCB0b28uIGFuZCB0aGVuIHVwZGF0aW5nIGBnZXRHcm91cExhYmVsYCB0b28uIHF1aWNrbHkgZG8gdGhlIGNoYW5nZXMgc28gaSBjYW4gc2VlIHdoYXQgaXQgY291bGQgbG9vayBsaWtlIn1dLCJ0aW1lc3RhbXAiOjE3Nzc1MzY1NDY0NDJ9fSx7InR5cGUiOiJtZXNzYWdlIiwiaWQiOiI3MjcyMWM1MSIsInBhcmVudElkIjoiOTFkODcyN2MiLCJ0aW1lc3RhbXAiOiIyMDI2LTA0LTMwVDA4OjA5OjExLjQyNFoiLCJtZXNzYWdlIjp7InJvbGUiOiJhc3Npc3RhbnQiLCJjb250ZW50IjpbeyJ0eXBlIjoidGhpbmtpbmciLCJ0aGlua2luZyI6IioqQ29uc2lkZXJpbmcgY29kZSBpbXBsZW1lbnRhdGlvbioqXG5cbkkgbmVlZCB0byBtYWtlIHNvbWUgY2hhbmdlcywgYnV0IHRoYXQgbWVhbnMgcmVhZGluZyBlbm91Z2ggdG8gaW1wbGVtZW50IGVmZmVjdGl2ZWx5LiBUaGUgdXNlciB3YW50cyB0byBzZWUgcmVzdWx0cyBxdWlja2x5LCB3aGljaCBtYWtlcyBtZSB3b25kZXIgaWYgdGVzdHMgYXJlIG5lY2Vzc2FyeS4gSG93ZXZlciwgY29kZSBjaGFuZ2VzIHN0aWxsIHJlcXVpcmUgbWUgdG8gcnVuIGBucG0gcnVuIGNoZWNrYCBhY2NvcmRpbmcgdG8gdGhlIGluc3RydWN0aW9ucy4gSSBtaWdodCBuZWVkIHRvIGVkaXQgc29tZXRoaW5nIGVsc2UgYXMgd2VsbC4gSSBhbHNvIG5lZWQgdG8gY29uZmlybSBob3cgdG8gZ2V0IHRoZSBob21lIGRpcmVjdG9yeeKAlGRvZXMgdGhlIHBhY2thZ2UgbWFuYWdlciBoYXZlIHRoYXQgZnVuY3Rpb24/IFRpbWUgdG8gY2hlY2shIiwidGhpbmtpbmdTaWduYXR1cmUiOiJ7XCJpZFwiOlwicnNfMDI3ZjFlYTE1ZGVmMzUwNTAxNjlmMzBlMjQxMzdjODE5MWFkNzUwOTk5ZTM5MThmZThcIixcInR5cGVcIjpcInJlYXNvbmluZ1wiLFwiZW5jcnlwdGVkX2NvbnRlbnRcIjpcImdBQUFBQUJwOHc0bjd4ejRmWDlNZV9FTTlXUkpFbkdlZG1taklWa3dRR3BRZjNXSXM1ZWdXZ2k5Vi12UVN1eDJtWm13clVuY2hYZlVDQWlzN3VlRTVGU0hCd3dkQmR5MXE2RXhXVEJYdEFfLVNyV2xDS3JwVHhxN2E2R2hfN3F5YWpHdko3a0U4ZzVZT3pVUmpZN2VLdEw4ZjItUDZQS0swVWZ1bmNkTzB5ak5CWTkxUERPYjJ4NEdhTWQ2dWRwc1hIVGprdUtGaVkzNjgwMWRkeXhqNUlmYjJNN01jRXdIcGtkU0p0M1h2UXNRZ2xTa2JTdnBTZmJSNVNYZlIxNlBpR2ZYT0VpSEpuMkpGaWpob1M0QUJtcW0zU0VvTW84Zm9qSEhiaDNpVFF6X3hYSndZT1dNdzZZUFdZOExWTVRUdGtaYVdhdGFmT21NYU1sWmw3UHhRQ0JKMTlRa0gwV3JhRHhZWGxhZlEwWElQdHptZERmWUdnaFVocDNXcVlmTVN1X0ZNLTFJWVR4ZFQ4RTZSd2JTVlVNSnRVX1I4ZG41WTB3US1fRlJRLWt3SW5UY3RmZU9YNzVhMnJSQWtudU5Ud3VuU3VTQlMwdzdmdXhNcGdjdFZ6T2NoSzJhUmRMTzlPREFDY3U4SC1JQnFRT1FDYlVmSldzaURCaklFWlJlNmZFV3BqUmFUeFJ0WWtnVkRCbGNHU3pzbjRMVWZVbUdSTUh6QU1iZFczcmo2YjV5aHlCblpwVUhSWlNSeUZqVkVWRXFyV2dxcnkyblRKMjFOc2FuUVUxNExoV25iNmJQU1VuNTFlVE41ZzNrLVdicGdOYVFZTHFWMFdyUmhlRDlJcWhLZl8tc1dLTEI3VEJQcG5OYmI4eWRyNkZBN0dLTjN1dWRaeEtMNkVRQUhudjZ6Y25VLUhnSFVoQXZSVWU3ZFVubDRONnRqS0dhTkY0LURrN2JxY3VaOE93ZlhmTFhLLXVFQzZzdnJsM3M4WVJfNHROdWU5cEFBX2t3Z08yR3ZNMDFOcWFhZVkwYTlua1QwZm1Pd0VoOGlBa0hqNWVXZ25UZ3NsSEF2NUYwYTM5V1FOSU5FN2ZlS1VCTFRrbUhQQXNTUVdJb215VjhxVlFxRUNWTzFiSXR1UGQ1aVkyQ3ZUcHJaQUFGV0VKX3Z0NndlRzFsZi1pdTRkM1VQb21qX3gwQ08tTzJ1VVVCdDJoZEE3TDMtdkRINHJkc2FvcWlzeGZxaEZoMk9YTHBlaDNNOG5yUEdWXzZlNHlGSzdhS0E1MGZyLVVseGo4N1dCWDJGZ0x2QnNKMVg0UU11ZHpDZE9LSU1ZczBQQ0FkQXc1eGtCd3pESUZHbjhUS2FSSkMzbHhBdXYyS08wTDczMTd1SmZrQVpjdnpjQlA2cE9oN0hSLU9KNm9zdF80T01PMk9TeUlac0hMZ1J2UFBDQUFSUjZfUFVEeWdnTTVYZk5SQkVlOWdxbHp1enZXR3pmXzE2ZVE4eHRwNVNDYlZjUGEzRDJOMHFNSlZGa3RZbFU4MHpfVEZNZ2pGTjZqNzFzXzROa3JHOVRKSDNiRWlmeHROVFI1UktVeHNfR1NrVFZ4Y1JZNTVNX3dxRjZSbmtfTVNvLVI4V2VNVnN1bFdcIixcInN1bW1hcnlcIjpbe1widHlwZVwiOlwic3VtbWFyeV90ZXh0XCIsXCJ0ZXh0XCI6XCIqKkNvbnNpZGVyaW5nIGNvZGUgaW1wbGVtZW50YXRpb24qKlxcblxcbkkgbmVlZCB0byBtYWtlIHNvbWUgY2hhbmdlcywgYnV0IHRoYXQgbWVhbnMgcmVhZGluZyBlbm91Z2ggdG8gaW1wbGVtZW50IGVmZmVjdGl2ZWx5LiBUaGUgdXNlciB3YW50cyB0byBzZWUgcmVzdWx0cyBxdWlja2x5LCB3aGljaCBtYWtlcyBtZSB3b25kZXIgaWYgdGVzdHMgYXJlIG5lY2Vzc2FyeS4gSG93ZXZlciwgY29kZSBjaGFuZ2VzIHN0aWxsIHJlcXVpcmUgbWUgdG8gcnVuIGBucG0gcnVuIGNoZWNrYCBhY2NvcmRpbmcgdG8gdGhlIGluc3RydWN0aW9ucy4gSSBtaWdodCBuZWVkIHRvIGVkaXQgc29tZXRoaW5nIGVsc2UgYXMgd2VsbC4gSSBhbHNvIG5lZWQgdG8gY29uZmlybSBob3cgdG8gZ2V0IHRoZSBob21lIGRpcmVjdG9yeeKAlGRvZXMgdGhlIHBhY2thZ2UgbWFuYWdlciBoYXZlIHRoYXQgZnVuY3Rpb24/IFRpbWUgdG8gY2hlY2shXCJ9XX0ifSx7InR5cGUiOiJ0b29sQ2FsbCIsImlkIjoiY2FsbF9ZbUhhT2wwVmwwZkFrR01raW1TamloMDF8ZmNfMDI3ZjFlYTE1ZGVmMzUwNTAxNjlmMzBlMjczMjQ4ODE5MTljYjViMTQwNDQ1OGNjNGIiLCJuYW1lIjoiZ3JlcCIsImFyZ3VtZW50cyI6eyJwYXR0ZXJuIjoiZnVuY3Rpb24gZ2V0SG9tZURpciIsInBhdGgiOiJwYWNrYWdlcy9jb2RpbmctYWdlbnQvc3JjL2NvcmUvcGFja2FnZS1tYW5hZ2VyLnRzIiwiY29udGV4dCI6Mn19XSwiYXBpIjoib3BlbmFpLWNvZGV4LXJlc3BvbnNlcyIsInByb3ZpZGVyIjoib3BlbmFpLWNvZGV4IiwibW9kZWwiOiJncHQtNS41IiwidXNhZ2UiOnsiaW5wdXQiOjU4NCwib3V0cHV0Ijo5MSwiY2FjaGVSZWFkIjozMTc0NCwiY2FjaGVXcml0ZSI6MCwidG90YWxUb2tlbnMiOjMyNDE5LCJjb3N0Ijp7ImlucHV0IjowLjAwMjkyMDAwMDAwMDAwMDAwMDMsIm91dHB1dCI6MC4wMDI3MzAwMDAwMDAwMDAwMDAyLCJjYWNoZVJlYWQiOjAuMDE1ODcyLCJjYWNoZVdyaXRlIjowLCJ0b3RhbCI6MC4wMjE1MjJ9fSwic3RvcFJlYXNvbiI6InRvb2xVc2UiLCJ0aW1lc3RhbXAiOjE3Nzc1MzY1NDY0NDQsInJlc3BvbnNlSWQiOiJyZXNwXzAyN2YxZWExNWRlZjM1MDUwMTY5ZjMwZTIzM2RkMDgxOTE4MTgyOTY5MzY5MmRkZWM4In19LHsidHlwZSI6Im1lc3NhZ2UiLCJpZCI6ImMwMTg5YzM5IiwicGFyZW50SWQiOiI3MjcyMWM1MSIsInRpbWVzdGFtcCI6IjIwMjYtMDQtMzBUMDg6MDk6MTEuNDMxWiIsIm1lc3NhZ2UiOnsicm9sZSI6InRvb2xSZXN1bHQiLCJ0b29sQ2FsbElkIjoiY2FsbF9ZbUhhT2wwVmwwZkFrR01raW1TamloMDF8ZmNfMDI3ZjFlYTE1ZGVmMzUwNTAxNjlmMzBlMjczMjQ4ODE5MTljYjViMTQwNDQ1OGNjNGIiLCJ0b29sTmFtZSI6ImdyZXAiLCJjb250ZW50IjpbeyJ0eXBlIjoidGV4dCIsInRleHQiOiJwYWNrYWdlLW1hbmFnZXIudHM6MjAyOiAgIH1cbnBhY2thZ2UtbWFuYWdlci50czoyMDM6ICAgXG5wYWNrYWdlLW1hbmFnZXIudHM6MjA0OiBmdW5jdGlvbiBnZXRIb21lRGlyKCk6IHN0cmluZyB7XG5wYWNrYWdlLW1hbmFnZXIudHM6MjA1OiAgIHJldHVybiBwcm9jZXNzLmVudi5IT01FIHx8IGhvbWVkaXIoKTtcbnBhY2thZ2UtbWFuYWdlci50czoyMDY6ICAgfSJ9XSwiZGV0YWlscyI6eyJtYXRjaENvdW50IjoxLCJtYXRjaGVzIjpbeyJwYXRoIjoicGFja2FnZS1tYW5hZ2VyLnRzIiwibGluZSI6MjAyLCJ0ZXh0IjoiICB9In0seyJwYXRoIjoicGFja2FnZS1tYW5hZ2VyLnRzIiwibGluZSI6MjAzLCJ0ZXh0IjoiICAifSx7InBhdGgiOiJwYWNrYWdlLW1hbmFnZXIudHMiLCJsaW5lIjoyMDQsInRleHQiOiJmdW5jdGlvbiBnZXRIb21lRGlyKCk6IHN0cmluZyB7In0seyJwYXRoIjoicGFja2FnZS1tYW5hZ2VyLnRzIiwibGluZSI6MjA1LCJ0ZXh0IjoiICByZXR1cm4gcHJvY2Vzcy5lbnYuSE9NRSB8fCBob21lZGlyKCk7In0seyJwYXRoIjoicGFja2FnZS1tYW5hZ2VyLnRzIiwibGluZSI6MjA2LCJ0ZXh0IjoiICB9In1dfSwiaXNFcnJvciI6ZmFsc2UsInRpbWVzdGFtcCI6MTc3NzUzNjU1MTQzMX19LHsidHlwZSI6Im1lc3NhZ2UiLCJpZCI6IjlhZGYxYmU4IiwicGFyZW50SWQiOiJjMDE4OWMzOSIsInRpbWVzdGFtcCI6IjIwMjYtMDQtMzBUMDg6MDk6MjAuODAxWiIsIm1lc3NhZ2UiOnsicm9sZSI6ImFzc2lzdGFudCIsImNvbnRlbnQiOlt7InR5cGUiOiJ0aGlua2luZyIsInRoaW5raW5nIjoiIiwidGhpbmtpbmdTaWduYXR1cmUiOiJ7XCJpZFwiOlwicnNfMDI3ZjFlYTE1ZGVmMzUwNTAxNjlmMzBlMjhlNmFjODE5MTlmYWZkNDk0M2RhNWY4NzlcIixcInR5cGVcIjpcInJlYXNvbmluZ1wiLFwiZW5jcnlwdGVkX2NvbnRlbnRcIjpcImdBQUFBQUJwOHc0dEsyRGJWNkZPemRhOGx3RGM1MG91MmIyb2J3MEg1Y1hKMEhYZTVHU3U2VVg4ZElGUnk3YVpRSWsxbnJ4SThDc2VUZUN0T0dpSWF1a0FHbFdNelBHWFF6QVQ0MHhJSkxVYU9VOEpNRGJoaEEwZS1iTUs1Q2FHVTYzdzl6UENwN0hySm52QTJ3S1RZbGQ4elotWnR4bUxyT2ItY1hGMkdCNzdFY0Vjd21EdGMxcndtTTR4akhEdmVMWVJvX09naVUxNUU0SDBfQ1Frc3lydHRyMVdHMUNialdsNXlYMGFfQmJlaDhxYXp0R05mbzJrZ25LNHh5eURfRW9yVVg3RlZMUnJ6S0lSQTBGZ3VZM1BLbnJiUkRtWHBuU0txdWFxOFZieW9FREx0YnJNaFQ2Rl9PYmFzRndmUmRhSWdBS2FQVnE5RUJNMVctMTlYSFFBMW5ZX2dxZFBBN1J2MTUwYXhhUVo2OUxWeFBISDgtT0QzVFc0ZXNyS0xveEItLUNaYUZETlB0OWxfSnM1NkVLcU5fczZLdlV4NEN4ZVJEdVI1Ui1jOUhka2RVaG5xRUNNbEtIc25oalFfM2MyVkRkQnBVMmNJZS1VRDhzbnJWaTZ5bjRDUTg1M0t2TDV4b1hkdjFPY0RkRllTckYzZlRDUk1Fd1Bzb0k5UEZFdWJ4T0lHSzgyNEVpUXJCVno4SVZYNUd5OTVBeUZ3ZVV1bzAwM2o0NVhncmFrRE9EVjFkSTIwS3NYamc0TUpiOHlwMHBQV0dSaENhMUJfelNPQkRRQTk1ZFNPcDFXamQ5d3VKdlozNTdOWUduaGNEblp4WWh3Vm5jbVduYXBvTlpzTlRZQkV6NzdacVFBekR2WmNROC1SUWtDb1kycER1NklMeHZKblZJUDZ5a3RpS0xURlhicUdPcm9tZDNJS2JYd3NyMDJOaklqaHJ3ZF83TzNpbEMwMkwxWjBfOUJMSGxvUWdUZTduY2gxMGZ4QTBKZnlXY3djNFNmTkVJSUZQTFF1M2tROHFQUEhIdGpBRDBYX1NHMEV2RXp0ei1XQktHTldTSmlyamZqSmdEeDJJejJ3RGM4WnE5LS01SnBmd1A5NjVTaGNMdzZyc2RJejJkeDFDQ1UyYnFXMG4yTUdfZkw3UmFOQTJGWnJUSG5FOUxUby1aRVk2NHBfRko4UXZCZ1FET3Itcl9NdTQySjNwdXNSMmdvNjVFMzlkbFBxeExYeDBybmQ0cGR4bTVRbXduQjh0RjU3aW1yM2pRMkZxNERJNnpNSFpLMXM3bUx4bmplUTZmXzhqMDgwd3VienZZWUJ5S2pEWDFYUmJSMHFEbUZWeHpFd2dScEU0ZFdBRFFOR0JDajlNd09uSUM0VktIVFAtdUtuTlBteGttempxX0pVR0s0Sm5GZzQyMUVWdm15c05LNGJ1cUtKcUR6LUZVcWI4QVQ3RUU2amdTMFZreVlGQi1aWU1fRHdnTFh0SnBXT05ZTkZGZ0YxdkUxQS1nSTlFRmRjaUZWWGJtVWQzNXlZY3dwbVRDYzctQmxFWXRRTjRSVzVacGJyMHBQX2pEZDUtZkg4aEUydV9xV1I2dmlPQ2Y4QXJhYkJVRlNUT0xjQ3ZsR3hGV3ozQm42b0E0bkVKMWlxdEhWcEstUUxKUzFySlM4ZjNjWTB5Y3dsRlJkS3JSSFlJb1ctemp6dkRJd2w3SzdwZ0ZyaW9waHAzd2FOSkxuVXlkM0xaMGcxYnVjdjdXRjdLVGNIdnpaQ3VRU290ZEN5ZUg1RVNXb25nQS0tT0VsS3ZmYTFaazZXRW12ZG8tdmN6WVVmUUk3SGc1dHFtVnFQOWpNMXY0cEdpZTRFRTF1Wjl2a2NMSHRXR1pKaU1TdlFsdURKODFXZ1NiWEpTNHVVNklrOXRGZjlnSkxJMTNVQUItZDlGSzN4RFhvWHUzWXVqSG9HOTZmNWxndS1ldVpUUmRRSVRuWW1aZUlsd242UF9UemRpSHRpVHEyTi03bG5JVGctYml1OEg4b042YmJDa2F3cVVxbDJVTGdUbzZjdlFDY2l2VXlVV0w4YkRXZHRZLWVSR3l6dmptWGNxb0l4OFZ4MlpTRVlkaks2aFJyWFpaUGZnRlZaZ015VFVuOWV2MXQwZ0ZDYVBvMWczY1VTWFV5ZlFpTDVTOElmYktNNUM5c0h5N1ZKNnAxQ0NIcHc2RlY0S3N5VTFlVE95WlE4Rk1LaGR5bG40c044TWdUUkF4blZoRENnc0V0RkI2bkZfWms1LXBhbkliTFN2Q042ZzlJcThWSjlIakQxQXVLRTFMYUZ4Qzh0WnJxeVF0ajdkZUVUNVBaYmVsUUxkWWpNbUlBSUtBdWZRTUpqdk8tbEItalBpdjc1Uy0xQU1fYnJLdEF4SzZBd0QyOXZURW9KWnJod1FSVWszSEZOcGtJSnZsaVpkYVNGT3VxVU1HODhEWHlia09jZ1ZJMmNHbkJsYUlQYnd2VTNNaUZmSGgyMncyUF8zWFJCNUFpbDhvMG12LXBHbzdTVm5DbVZGQ3ZGUHIwNzNET0VJcGpCdkhYRXFuZlZ6cFhhZXdsOUdDRC1SeThNcmtjSDVxZ1BXRllvWjNoanB0VFRRNDI5aGhrazdJajJHMGp1WUtMeDk2TGI4RTRyenNTRlJWMDVkQ01Lek5hOTFsYXlnPT1cIixcInN1bW1hcnlcIjpbXX0ifSx7InR5cGUiOiJ0b29sQ2FsbCIsImlkIjoiY2FsbF9uaGxTZm55RDgzYnUzS1cxaXo5blp4TFV8ZmNfMDI3ZjFlYTE1ZGVmMzUwNTAxNjlmMzBlMmQyMGQwODE5MWFhNTZiODc4YTE3NjNjZjYiLCJuYW1lIjoiZWRpdCIsImFyZ3VtZW50cyI6eyJwYXRoIjoicGFja2FnZXMvY29kaW5nLWFnZW50L3NyYy9jb3JlL3BhY2thZ2UtbWFuYWdlci50cyIsImVkaXRzIjpbeyJvbGRUZXh0IjoiXHRcdGNvbnN0IHVzZXJBZ2VudHNTa2lsbHNEaXIgPSBqb2luKGdldEhvbWVEaXIoKSwgXCIuYWdlbnRzXCIsIFwic2tpbGxzXCIpO1xuXHRcdGNvbnN0IHByb2plY3RBZ2VudHNTa2lsbERpcnMgPSBjb2xsZWN0QW5jZXN0b3JBZ2VudHNTa2lsbERpcnModGhpcy5jd2QpLmZpbHRlcihcblx0XHRcdChkaXIpID0+IHJlc29sdmUoZGlyKSAhPT0gcmVzb2x2ZSh1c2VyQWdlbnRzU2tpbGxzRGlyKSxcblx0XHQpO1xuIiwibmV3VGV4dCI6Ilx0XHRjb25zdCB1c2VyQWdlbnRzQmFzZURpciA9IGpvaW4oZ2V0SG9tZURpcigpLCBcIi5hZ2VudHNcIik7XG5cdFx0Y29uc3QgdXNlckFnZW50c1NraWxsc0RpciA9IGpvaW4odXNlckFnZW50c0Jhc2VEaXIsIFwic2tpbGxzXCIpO1xuXHRcdGNvbnN0IHByb2plY3RBZ2VudHNTa2lsbERpcnMgPSBjb2xsZWN0QW5jZXN0b3JBZ2VudHNTa2lsbERpcnModGhpcy5jd2QpLmZpbHRlcihcblx0XHRcdChkaXIpID0+IHJlc29sdmUoZGlyKSAhPT0gcmVzb2x2ZSh1c2VyQWdlbnRzU2tpbGxzRGlyKSxcblx0XHQpO1xuIn0seyJvbGRUZXh0IjoiXHRcdGFkZFJlc291cmNlcyhcblx0XHRcdFwic2tpbGxzXCIsXG5cdFx0XHRbXG5cdFx0XHRcdC4uLmNvbGxlY3RBdXRvU2tpbGxFbnRyaWVzKHByb2plY3REaXJzLnNraWxscywgXCJwaVwiKSxcblx0XHRcdFx0Li4ucHJvamVjdEFnZW50c1NraWxsRGlycy5mbGF0TWFwKChkaXIpID0+IGNvbGxlY3RBdXRvU2tpbGxFbnRyaWVzKGRpciwgXCJhZ2VudHNcIikpLFxuXHRcdFx0XSxcblx0XHRcdHByb2plY3RNZXRhZGF0YSxcblx0XHRcdHByb2plY3RPdmVycmlkZXMuc2tpbGxzLFxuXHRcdFx0cHJvamVjdEJhc2VEaXIsXG5cdFx0KTtcbiIsIm5ld1RleHQiOiJcdFx0YWRkUmVzb3VyY2VzKFwic2tpbGxzXCIsIGNvbGxlY3RBdXRvU2tpbGxFbnRyaWVzKHByb2plY3REaXJzLnNraWxscywgXCJwaVwiKSwgcHJvamVjdE1ldGFkYXRhLCBwcm9qZWN0T3ZlcnJpZGVzLnNraWxscywgcHJvamVjdEJhc2VEaXIpO1xuXHRcdGZvciAoY29uc3QgcHJvamVjdEFnZW50c1NraWxsc0RpciBvZiBwcm9qZWN0QWdlbnRzU2tpbGxEaXJzKSB7XG5cdFx0XHRjb25zdCBwcm9qZWN0QWdlbnRzQmFzZURpciA9IGRpcm5hbWUocHJvamVjdEFnZW50c1NraWxsc0Rpcik7XG5cdFx0XHRhZGRSZXNvdXJjZXMoXG5cdFx0XHRcdFwic2tpbGxzXCIsXG5cdFx0XHRcdGNvbGxlY3RBdXRvU2tpbGxFbnRyaWVzKHByb2plY3RBZ2VudHNTa2lsbHNEaXIsIFwiYWdlbnRzXCIpLFxuXHRcdFx0XHR7IC4uLnByb2plY3RNZXRhZGF0YSwgYmFzZURpcjogcHJvamVjdEFnZW50c0Jhc2VEaXIgfSxcblx0XHRcdFx0cHJvamVjdE92ZXJyaWRlcy5za2lsbHMsXG5cdFx0XHRcdHByb2plY3RBZ2VudHNCYXNlRGlyLFxuXHRcdFx0KTtcblx0XHR9XG4ifSx7Im9sZFRleHQiOiJcdFx0YWRkUmVzb3VyY2VzKFxuXHRcdFx0XCJza2lsbHNcIixcblx0XHRcdFsuLi5jb2xsZWN0QXV0b1NraWxsRW50cmllcyh1c2VyRGlycy5za2lsbHMsIFwicGlcIiksIC4uLmNvbGxlY3RBdXRvU2tpbGxFbnRyaWVzKHVzZXJBZ2VudHNTa2lsbHNEaXIsIFwiYWdlbnRzXCIpXSxcblx0XHRcdHVzZXJNZXRhZGF0YSxcblx0XHRcdHVzZXJPdmVycmlkZXMuc2tpbGxzLFxuXHRcdFx0Z2xvYmFsQmFzZURpcixcblx0XHQpO1xuIiwibmV3VGV4dCI6Ilx0XHRhZGRSZXNvdXJjZXMoXCJza2lsbHNcIiwgY29sbGVjdEF1dG9Ta2lsbEVudHJpZXModXNlckRpcnMuc2tpbGxzLCBcInBpXCIpLCB1c2VyTWV0YWRhdGEsIHVzZXJPdmVycmlkZXMuc2tpbGxzLCBnbG9iYWxCYXNlRGlyKTtcblx0XHRhZGRSZXNvdXJjZXMoXG5cdFx0XHRcInNraWxsc1wiLFxuXHRcdFx0Y29sbGVjdEF1dG9Ta2lsbEVudHJpZXModXNlckFnZW50c1NraWxsc0RpciwgXCJhZ2VudHNcIiksXG5cdFx0XHR7IC4uLnVzZXJNZXRhZGF0YSwgYmFzZURpcjogdXNlckFnZW50c0Jhc2VEaXIgfSxcblx0XHRcdHVzZXJPdmVycmlkZXMuc2tpbGxzLFxuXHRcdFx0dXNlckFnZW50c0Jhc2VEaXIsXG5cdFx0KTtcbiJ9XX19XSwiYXBpIjoib3BlbmFpLWNvZGV4LXJlc3BvbnNlcyIsInByb3ZpZGVyIjoib3BlbmFpLWNvZGV4IiwibW9kZWwiOiJncHQtNS41IiwidXNhZ2UiOnsiaW5wdXQiOjIyNiwib3V0cHV0Ijo4MDMsImNhY2hlUmVhZCI6MzIyNTYsImNhY2hlV3JpdGUiOjAsInRvdGFsVG9rZW5zIjozMzI4NSwiY29zdCI6eyJpbnB1dCI6MC4wMDExMzAwMDAwMDAwMDAwMDAxLCJvdXRwdXQiOjAuMDI0MDksImNhY2hlUmVhZCI6MC4wMTYxMjgsImNhY2hlV3JpdGUiOjAsInRvdGFsIjowLjA0MTM0Nzk5OTk5OTk5OTk5Nn19LCJzdG9wUmVhc29uIjoidG9vbFVzZSIsInRpbWVzdGFtcCI6MTc3NzUzNjU1MTQzMiwicmVzcG9uc2VJZCI6InJlc3BfMDI3ZjFlYTE1ZGVmMzUwNTAxNjlmMzBlMjgwZWYwODE5MWIzNzZiYmZmMWYxNTBmNmEifX0seyJ0eXBlIjoibWVzc2FnZSIsImlkIjoiYjE1YmQzMzkiLCJwYXJlbnRJZCI6IjlhZGYxYmU4IiwidGltZXN0YW1wIjoiMjAyNi0wNC0zMFQwODowOToyMC44MjBaIiwibWVzc2FnZSI6eyJyb2xlIjoidG9vbFJlc3VsdCIsInRvb2xDYWxsSWQiOiJjYWxsX25obFNmbnlEODNidTNLVzFpejluWnhMVXxmY18wMjdmMWVhMTVkZWYzNTA1MDE2OWYzMGUyZDIwZDA4MTkxYWE1NmI4NzhhMTc2M2NmNiIsInRvb2xOYW1lIjoiZWRpdCIsImNvbnRlbnQiOlt7InR5cGUiOiJ0ZXh0IiwidGV4dCI6IlN1Y2Nlc3NmdWxseSByZXBsYWNlZCAzIGJsb2NrKHMpIGluIHBhY2thZ2VzL2NvZGluZy1hZ2VudC9zcmMvY29yZS9wYWNrYWdlLW1hbmFnZXIudHMuIn1dLCJkZXRhaWxzIjp7ImRpZmYiOiIgICAgICAuLi5cbiAyMTYwIFx0XHRcdHNraWxsczogam9pbihwcm9qZWN0QmFzZURpciwgXCJza2lsbHNcIiksXG4gMjE2MSBcdFx0XHRwcm9tcHRzOiBqb2luKHByb2plY3RCYXNlRGlyLCBcInByb21wdHNcIiksXG4gMjE2MiBcdFx0XHR0aGVtZXM6IGpvaW4ocHJvamVjdEJhc2VEaXIsIFwidGhlbWVzXCIpLFxuIDIxNjMgXHRcdH07XG4tMjE2NCBcdFx0Y29uc3QgdXNlckFnZW50c1NraWxsc0RpciA9IGpvaW4oZ2V0SG9tZURpcigpLCBcIi5hZ2VudHNcIiwgXCJza2lsbHNcIik7XG4rMjE2NCBcdFx0Y29uc3QgdXNlckFnZW50c0Jhc2VEaXIgPSBqb2luKGdldEhvbWVEaXIoKSwgXCIuYWdlbnRzXCIpO1xuKzIxNjUgXHRcdGNvbnN0IHVzZXJBZ2VudHNTa2lsbHNEaXIgPSBqb2luKHVzZXJBZ2VudHNCYXNlRGlyLCBcInNraWxsc1wiKTtcbiAyMTY1IFx0XHRjb25zdCBwcm9qZWN0QWdlbnRzU2tpbGxEaXJzID0gY29sbGVjdEFuY2VzdG9yQWdlbnRzU2tpbGxEaXJzKHRoaXMuY3dkKS5maWx0ZXIoXG4gMjE2NiBcdFx0XHQoZGlyKSA9PiByZXNvbHZlKGRpcikgIT09IHJlc29sdmUodXNlckFnZW50c1NraWxsc0RpciksXG4gMjE2NyBcdFx0KTtcbiAyMTY4IFxuICAgICAgLi4uXG4gMjE4NiBcdFx0XHRwcm9qZWN0TWV0YWRhdGEsXG4gMjE4NyBcdFx0XHRwcm9qZWN0T3ZlcnJpZGVzLmV4dGVuc2lvbnMsXG4gMjE4OCBcdFx0XHRwcm9qZWN0QmFzZURpcixcbiAyMTg5IFx0XHQpO1xuKzIxOTEgXHRcdGFkZFJlc291cmNlcyhcInNraWxsc1wiLCBjb2xsZWN0QXV0b1NraWxsRW50cmllcyhwcm9qZWN0RGlycy5za2lsbHMsIFwicGlcIiksIHByb2plY3RNZXRhZGF0YSwgcHJvamVjdE92ZXJyaWRlcy5za2lsbHMsIHByb2plY3RCYXNlRGlyKTtcbisyMTkyIFx0XHRmb3IgKGNvbnN0IHByb2plY3RBZ2VudHNTa2lsbHNEaXIgb2YgcHJvamVjdEFnZW50c1NraWxsRGlycykge1xuKzIxOTMgXHRcdFx0Y29uc3QgcHJvamVjdEFnZW50c0Jhc2VEaXIgPSBkaXJuYW1lKHByb2plY3RBZ2VudHNTa2lsbHNEaXIpO1xuKzIxOTQgXHRcdFx0YWRkUmVzb3VyY2VzKFxuKzIxOTUgXHRcdFx0XHRcInNraWxsc1wiLFxuKzIxOTYgXHRcdFx0XHRjb2xsZWN0QXV0b1NraWxsRW50cmllcyhwcm9qZWN0QWdlbnRzU2tpbGxzRGlyLCBcImFnZW50c1wiKSxcbisyMTk3IFx0XHRcdFx0eyAuLi5wcm9qZWN0TWV0YWRhdGEsIGJhc2VEaXI6IHByb2plY3RBZ2VudHNCYXNlRGlyIH0sXG4rMjE5OCBcdFx0XHRcdHByb2plY3RPdmVycmlkZXMuc2tpbGxzLFxuKzIxOTkgXHRcdFx0XHRwcm9qZWN0QWdlbnRzQmFzZURpcixcbisyMjAwIFx0XHRcdCk7XG4rMjIwMSBcdFx0fVxuIDIxOTAgXHRcdGFkZFJlc291cmNlcyhcbi0yMTkxIFx0XHRcdFwic2tpbGxzXCIsXG4tMjE5MiBcdFx0XHRbXG4tMjE5MyBcdFx0XHRcdC4uLmNvbGxlY3RBdXRvU2tpbGxFbnRyaWVzKHByb2plY3REaXJzLnNraWxscywgXCJwaVwiKSxcbi0yMTk0IFx0XHRcdFx0Li4ucHJvamVjdEFnZW50c1NraWxsRGlycy5mbGF0TWFwKChkaXIpID0+IGNvbGxlY3RBdXRvU2tpbGxFbnRyaWVzKGRpciwgXCJhZ2VudHNcIikpLFxuLTIxOTUgXHRcdFx0XSxcbi0yMTk2IFx0XHRcdHByb2plY3RNZXRhZGF0YSxcbi0yMTk3IFx0XHRcdHByb2plY3RPdmVycmlkZXMuc2tpbGxzLFxuLTIxOTggXHRcdFx0cHJvamVjdEJhc2VEaXIsXG4tMjE5OSBcdFx0KTtcbi0yMjAwIFx0XHRhZGRSZXNvdXJjZXMoXG4gMjIwMSBcdFx0XHRcInByb21wdHNcIixcbiAyMjAyIFx0XHRcdGNvbGxlY3RBdXRvUHJvbXB0RW50cmllcyhwcm9qZWN0RGlycy5wcm9tcHRzKSxcbiAyMjAzIFx0XHRcdHByb2plY3RNZXRhZGF0YSxcbiAyMjA0IFx0XHRcdHByb2plY3RPdmVycmlkZXMucHJvbXB0cyxcbiAgICAgIC4uLlxuIDIyMTggXHRcdFx0dXNlck1ldGFkYXRhLFxuIDIyMTkgXHRcdFx0dXNlck92ZXJyaWRlcy5leHRlbnNpb25zLFxuIDIyMjAgXHRcdFx0Z2xvYmFsQmFzZURpcixcbiAyMjIxIFx0XHQpO1xuKzIyMjQgXHRcdGFkZFJlc291cmNlcyhcInNraWxsc1wiLCBjb2xsZWN0QXV0b1NraWxsRW50cmllcyh1c2VyRGlycy5za2lsbHMsIFwicGlcIiksIHVzZXJNZXRhZGF0YSwgdXNlck92ZXJyaWRlcy5za2lsbHMsIGdsb2JhbEJhc2VEaXIpO1xuIDIyMjIgXHRcdGFkZFJlc291cmNlcyhcbiAyMjIzIFx0XHRcdFwic2tpbGxzXCIsXG4tMjIyNCBcdFx0XHRbLi4uY29sbGVjdEF1dG9Ta2lsbEVudHJpZXModXNlckRpcnMuc2tpbGxzLCBcInBpXCIpLCAuLi5jb2xsZWN0QXV0b1NraWxsRW50cmllcyh1c2VyQWdlbnRzU2tpbGxzRGlyLCBcImFnZW50c1wiKV0sXG4tMjIyNSBcdFx0XHR1c2VyTWV0YWRhdGEsXG4rMjIyNyBcdFx0XHRjb2xsZWN0QXV0b1NraWxsRW50cmllcyh1c2VyQWdlbnRzU2tpbGxzRGlyLCBcImFnZW50c1wiKSxcbisyMjI4IFx0XHRcdHsgLi4udXNlck1ldGFkYXRhLCBiYXNlRGlyOiB1c2VyQWdlbnRzQmFzZURpciB9LFxuIDIyMjYgXHRcdFx0dXNlck92ZXJyaWRlcy5za2lsbHMsXG4tMjIyNyBcdFx0XHRnbG9iYWxCYXNlRGlyLFxuKzIyMzAgXHRcdFx0dXNlckFnZW50c0Jhc2VEaXIsXG4gMjIyOCBcdFx0KTtcbiAyMjI5IFx0XHRhZGRSZXNvdXJjZXMoXG4gMjIzMCBcdFx0XHRcInByb21wdHNcIixcbiAyMjMxIFx0XHRcdGNvbGxlY3RBdXRvUHJvbXB0RW50cmllcyh1c2VyRGlycy5wcm9tcHRzKSxcbiAgICAgIC4uLiIsImZpcnN0Q2hhbmdlZExpbmUiOjIxNjR9LCJpc0Vycm9yIjpmYWxzZSwidGltZXN0YW1wIjoxNzc3NTM2NTYwODIwfX0seyJ0eXBlIjoibWVzc2FnZSIsImlkIjoiOTQ0M2JjMTciLCJwYXJlbnRJZCI6ImIxNWJkMzM5IiwidGltZXN0YW1wIjoiMjAyNi0wNC0zMFQwODowOToyNi44NTdaIiwibWVzc2FnZSI6eyJyb2xlIjoiYXNzaXN0YW50IiwiY29udGVudCI6W3sidHlwZSI6InRvb2xDYWxsIiwiaWQiOiJjYWxsX1p6dVg5bU5IY2dxcXJlY2ZsdmlNbURacXxmY18wMjdmMWVhMTVkZWYzNTA1MDE2OWYzMGUzMmMxM2M4MTkxOTI2ZTc3ZTZlNTBjODg1ZCIsIm5hbWUiOiJlZGl0IiwiYXJndW1lbnRzIjp7InBhdGgiOiJwYWNrYWdlcy9jb2RpbmctYWdlbnQvc3JjL21vZGVzL2ludGVyYWN0aXZlL2NvbXBvbmVudHMvY29uZmlnLXNlbGVjdG9yLnRzIiwiZWRpdHMiOlt7Im9sZFRleHQiOiJpbXBvcnQgeyBiYXNlbmFtZSwgZGlybmFtZSwgam9pbiwgcmVsYXRpdmUgfSBmcm9tIFwibm9kZTpwYXRoXCI7XG4iLCJuZXdUZXh0IjoiaW1wb3J0IHsgaG9tZWRpciB9IGZyb20gXCJub2RlOm9zXCI7XG5pbXBvcnQgeyBiYXNlbmFtZSwgZGlybmFtZSwgam9pbiwgcmVsYXRpdmUgfSBmcm9tIFwibm9kZTpwYXRoXCI7XG4ifSx7Im9sZFRleHQiOiJmdW5jdGlvbiBnZXRHcm91cExhYmVsKG1ldGFkYXRhOiBQYXRoTWV0YWRhdGEpOiBzdHJpbmcge1xuXHRpZiAobWV0YWRhdGEub3JpZ2luID09PSBcInBhY2thZ2VcIikge1xuXHRcdHJldHVybiBgJHttZXRhZGF0YS5zb3VyY2V9ICgke21ldGFkYXRhLnNjb3BlfSlgO1xuXHR9XG5cdC8vIFRvcC1sZXZlbCByZXNvdXJjZXNcblx0aWYgKG1ldGFkYXRhLnNvdXJjZSA9PT0gXCJhdXRvXCIpIHtcblx0XHRyZXR1cm4gbWV0YWRhdGEuc2NvcGUgPT09IFwidXNlclwiID8gXCJVc2VyICh+Ly5waS9hZ2VudC8pXCIgOiBcIlByb2plY3QgKC5waS8pXCI7XG5cdH1cblx0cmV0dXJuIG1ldGFkYXRhLnNjb3BlID09PSBcInVzZXJcIiA/IFwiVXNlciBzZXR0aW5nc1wiIDogXCJQcm9qZWN0IHNldHRpbmdzXCI7XG59XG4iLCJuZXdUZXh0IjoiZnVuY3Rpb24gZm9ybWF0QmFzZURpcihiYXNlRGlyOiBzdHJpbmcpOiBzdHJpbmcge1xuXHRjb25zdCBob21lRGlyID0gaG9tZWRpcigpO1xuXHRjb25zdCBkaXNwbGF5UGF0aCA9IGJhc2VEaXIgPT09IGhvbWVEaXIgPyBcIn5cIiA6IGJhc2VEaXIuc3RhcnRzV2l0aChgJHtob21lRGlyfS9gKSA/IGB+LyR7cmVsYXRpdmUoaG9tZURpciwgYmFzZURpcil9YCA6IGJhc2VEaXI7XG5cdHJldHVybiBkaXNwbGF5UGF0aC5lbmRzV2l0aChcIi9cIikgPyBkaXNwbGF5UGF0aCA6IGAke2Rpc3BsYXlQYXRofS9gO1xufVxuXG5mdW5jdGlvbiBnZXRHcm91cExhYmVsKG1ldGFkYXRhOiBQYXRoTWV0YWRhdGEpOiBzdHJpbmcge1xuXHRpZiAobWV0YWRhdGEub3JpZ2luID09PSBcInBhY2thZ2VcIikge1xuXHRcdHJldHVybiBgJHttZXRhZGF0YS5zb3VyY2V9ICgke21ldGFkYXRhLnNjb3BlfSlgO1xuXHR9XG5cdC8vIFRvcC1sZXZlbCByZXNvdXJjZXNcblx0aWYgKG1ldGFkYXRhLnNvdXJjZSA9PT0gXCJhdXRvXCIpIHtcblx0XHRpZiAobWV0YWRhdGEuYmFzZURpcikge1xuXHRcdFx0cmV0dXJuIG1ldGFkYXRhLnNjb3BlID09PSBcInVzZXJcIiA/IGBVc2VyICgke2Zvcm1hdEJhc2VEaXIobWV0YWRhdGEuYmFzZURpcil9KWAgOiBgUHJvamVjdCAoJHtmb3JtYXRCYXNlRGlyKG1ldGFkYXRhLmJhc2VEaXIpfSlgO1xuXHRcdH1cblx0XHRyZXR1cm4gbWV0YWRhdGEuc2NvcGUgPT09IFwidXNlclwiID8gXCJVc2VyICh+Ly5waS9hZ2VudC8pXCIgOiBcIlByb2plY3QgKC5waS8pXCI7XG5cdH1cblx0cmV0dXJuIG1ldGFkYXRhLnNjb3BlID09PSBcInVzZXJcIiA/IFwiVXNlciBzZXR0aW5nc1wiIDogXCJQcm9qZWN0IHNldHRpbmdzXCI7XG59XG4ifSx7Im9sZFRleHQiOiJcdFx0XHRjb25zdCBncm91cEtleSA9IGAke21ldGFkYXRhLm9yaWdpbn06JHttZXRhZGF0YS5zY29wZX06JHttZXRhZGF0YS5zb3VyY2V9YDtcbiIsIm5ld1RleHQiOiJcdFx0XHRjb25zdCBncm91cEtleSA9IGAke21ldGFkYXRhLm9yaWdpbn06JHttZXRhZGF0YS5zY29wZX06JHttZXRhZGF0YS5zb3VyY2V9OiR7bWV0YWRhdGEuYmFzZURpciA/PyBcIlwifWA7XG4ifV19fV0sImFwaSI6Im9wZW5haS1jb2RleC1yZXNwb25zZXMiLCJwcm92aWRlciI6Im9wZW5haS1jb2RleCIsIm1vZGVsIjoiZ3B0LTUuNSIsInVzYWdlIjp7ImlucHV0IjoyMzU4NSwib3V0cHV0Ijo1MTAsImNhY2hlUmVhZCI6OTcyOCwiY2FjaGVXcml0ZSI6MCwidG90YWxUb2tlbnMiOjMzODIzLCJjb3N0Ijp7ImlucHV0IjowLjExNzkyNTAwMDAwMDAwMDAyLCJvdXRwdXQiOjAuMDE1MzAwMDAwMDAwMDAwMDAxLCJjYWNoZVJlYWQiOjAuMDA0ODYzOTk5OTk5OTk5OTk5LCJjYWNoZVdyaXRlIjowLCJ0b3RhbCI6MC4xMzgwODkwMDAwMDAwMDAwMn19LCJzdG9wUmVhc29uIjoidG9vbFVzZSIsInRpbWVzdGFtcCI6MTc3NzUzNjU2MDgyMSwicmVzcG9uc2VJZCI6InJlc3BfMDI3ZjFlYTE1ZGVmMzUwNTAxNjlmMzBlMzE2ZWE0ODE5MWI1ODE2M2MzNTU5OTU3ZjMifX0seyJ0eXBlIjoibWVzc2FnZSIsImlkIjoiZTM5YmY4MDEiLCJwYXJlbnRJZCI6Ijk0NDNiYzE3IiwidGltZXN0YW1wIjoiMjAyNi0wNC0zMFQwODowOToyNi44NjBaIiwibWVzc2FnZSI6eyJyb2xlIjoidG9vbFJlc3VsdCIsInRvb2xDYWxsSWQiOiJjYWxsX1p6dVg5bU5IY2dxcXJlY2ZsdmlNbURacXxmY18wMjdmMWVhMTVkZWYzNTA1MDE2OWYzMGUzMmMxM2M4MTkxOTI2ZTc3ZTZlNTBjODg1ZCIsInRvb2xOYW1lIjoiZWRpdCIsImNvbnRlbnQiOlt7InR5cGUiOiJ0ZXh0IiwidGV4dCI6IlN1Y2Nlc3NmdWxseSByZXBsYWNlZCAzIGJsb2NrKHMpIGluIHBhY2thZ2VzL2NvZGluZy1hZ2VudC9zcmMvbW9kZXMvaW50ZXJhY3RpdmUvY29tcG9uZW50cy9jb25maWctc2VsZWN0b3IudHMuIn1dLCJkZXRhaWxzIjp7ImRpZmYiOiIgICAxIC8qKlxuICAgMiAgKiBUVUkgY29tcG9uZW50IGZvciBtYW5hZ2luZyBwYWNrYWdlIHJlc291cmNlcyAoZW5hYmxlL2Rpc2FibGUpXG4gICAzICAqL1xuICAgNCBcbisgIDUgaW1wb3J0IHsgaG9tZWRpciB9IGZyb20gXCJub2RlOm9zXCI7XG4gICA1IGltcG9ydCB7IGJhc2VuYW1lLCBkaXJuYW1lLCBqb2luLCByZWxhdGl2ZSB9IGZyb20gXCJub2RlOnBhdGhcIjtcbiAgIDYgaW1wb3J0IHtcbiAgIDcgXHR0eXBlIENvbXBvbmVudCxcbiAgIDggXHRDb250YWluZXIsXG4gICAgIC4uLlxuICA1NCBcdHNvdXJjZTogc3RyaW5nO1xuICA1NSBcdHN1Ymdyb3VwczogUmVzb3VyY2VTdWJncm91cFtdO1xuICA1NiB9XG4gIDU3IFxuKyA1OSBmdW5jdGlvbiBmb3JtYXRCYXNlRGlyKGJhc2VEaXI6IHN0cmluZyk6IHN0cmluZyB7XG4rIDYwIFx0Y29uc3QgaG9tZURpciA9IGhvbWVkaXIoKTtcbisgNjEgXHRjb25zdCBkaXNwbGF5UGF0aCA9IGJhc2VEaXIgPT09IGhvbWVEaXIgPyBcIn5cIiA6IGJhc2VEaXIuc3RhcnRzV2l0aChgJHtob21lRGlyfS9gKSA/IGB+LyR7cmVsYXRpdmUoaG9tZURpciwgYmFzZURpcil9YCA6IGJhc2VEaXI7XG4rIDYyIFx0cmV0dXJuIGRpc3BsYXlQYXRoLmVuZHNXaXRoKFwiL1wiKSA/IGRpc3BsYXlQYXRoIDogYCR7ZGlzcGxheVBhdGh9L2A7XG4rIDYzIH1cbisgNjQgXG4gIDU4IGZ1bmN0aW9uIGdldEdyb3VwTGFiZWwobWV0YWRhdGE6IFBhdGhNZXRhZGF0YSk6IHN0cmluZyB7XG4gIDU5IFx0aWYgKG1ldGFkYXRhLm9yaWdpbiA9PT0gXCJwYWNrYWdlXCIpIHtcbiAgNjAgXHRcdHJldHVybiBgJHttZXRhZGF0YS5zb3VyY2V9ICgke21ldGFkYXRhLnNjb3BlfSlgO1xuICA2MSBcdH1cbiAgNjIgXHQvLyBUb3AtbGV2ZWwgcmVzb3VyY2VzXG4gIDYzIFx0aWYgKG1ldGFkYXRhLnNvdXJjZSA9PT0gXCJhdXRvXCIpIHtcbisgNzEgXHRcdGlmIChtZXRhZGF0YS5iYXNlRGlyKSB7XG4rIDcyIFx0XHRcdHJldHVybiBtZXRhZGF0YS5zY29wZSA9PT0gXCJ1c2VyXCIgPyBgVXNlciAoJHtmb3JtYXRCYXNlRGlyKG1ldGFkYXRhLmJhc2VEaXIpfSlgIDogYFByb2plY3QgKCR7Zm9ybWF0QmFzZURpcihtZXRhZGF0YS5iYXNlRGlyKX0pYDtcbisgNzMgXHRcdH1cbiAgNjQgXHRcdHJldHVybiBtZXRhZGF0YS5zY29wZSA9PT0gXCJ1c2VyXCIgPyBcIlVzZXIgKH4vLnBpL2FnZW50LylcIiA6IFwiUHJvamVjdCAoLnBpLylcIjtcbiAgNjUgXHR9XG4gIDY2IFx0cmV0dXJuIG1ldGFkYXRhLnNjb3BlID09PSBcInVzZXJcIiA/IFwiVXNlciBzZXR0aW5nc1wiIDogXCJQcm9qZWN0IHNldHRpbmdzXCI7XG4gIDY3IH1cbiAgICAgLi4uXG4gIDcxIFxuICA3MiBcdGNvbnN0IGFkZFRvR3JvdXAgPSAocmVzb3VyY2VzOiBSZXNvbHZlZFJlc291cmNlW10sIHJlc291cmNlVHlwZTogUmVzb3VyY2VUeXBlKSA9PiB7XG4gIDczIFx0XHRmb3IgKGNvbnN0IHJlcyBvZiByZXNvdXJjZXMpIHtcbiAgNzQgXHRcdFx0Y29uc3QgeyBwYXRoLCBlbmFibGVkLCBtZXRhZGF0YSB9ID0gcmVzO1xuLSA3NSBcdFx0XHRjb25zdCBncm91cEtleSA9IGAke21ldGFkYXRhLm9yaWdpbn06JHttZXRhZGF0YS5zY29wZX06JHttZXRhZGF0YS5zb3VyY2V9YDtcbisgODUgXHRcdFx0Y29uc3QgZ3JvdXBLZXkgPSBgJHttZXRhZGF0YS5vcmlnaW59OiR7bWV0YWRhdGEuc2NvcGV9OiR7bWV0YWRhdGEuc291cmNlfToke21ldGFkYXRhLmJhc2VEaXIgPz8gXCJcIn1gO1xuICA3NiBcbiAgNzcgXHRcdFx0aWYgKCFncm91cE1hcC5oYXMoZ3JvdXBLZXkpKSB7XG4gIDc4IFx0XHRcdFx0Z3JvdXBNYXAuc2V0KGdyb3VwS2V5LCB7XG4gIDc5IFx0XHRcdFx0XHRrZXk6IGdyb3VwS2V5LFxuICAgICAuLi4iLCJmaXJzdENoYW5nZWRMaW5lIjo1fSwiaXNFcnJvciI6ZmFsc2UsInRpbWVzdGFtcCI6MTc3NzUzNjU2Njg2MH19LHsidHlwZSI6Im1lc3NhZ2UiLCJpZCI6IjhiOWI3ZDE4IiwicGFyZW50SWQiOiJlMzliZjgwMSIsInRpbWVzdGFtcCI6IjIwMjYtMDQtMzBUMDg6MDk6MzEuMjI3WiIsIm1lc3NhZ2UiOnsicm9sZSI6ImFzc2lzdGFudCIsImNvbnRlbnQiOlt7InR5cGUiOiJ0aGlua2luZyIsInRoaW5raW5nIjoiKipSdW5uaW5nIGNoZWNrcyBmb3IgY29kZSoqXG5cbkkgbmVlZCB0byBjaGVjayBzb21ldGhpbmcsIHBvc3NpYmx5IHJlbGF0ZWQgdG8gYSBsaW5lIG9mIGNvZGUuIEl04oCZcyBsaWtlbHkgSeKAmWxsIHJ1biBgbnBtIHJ1biBjaGVja2AgdG8gc2VlIGlmIGV2ZXJ5dGhpbmcgaXMgd29ya2luZyBhcyBpdCBzaG91bGQuIEkgd2FudCB0byBlbnN1cmUgdGhhdCBhbnkgaXNzdWVzIGFyZSBjYXVnaHQgZWFybHksIHNvIHRoaXMgc3RlcCBmZWVscyBpbXBvcnRhbnQuIEl04oCZcyBqdXN0IG9uZSBvZiB0aG9zZSBnb29kIHByYWN0aWNlcyB0byBkb3VibGUtY2hlY2sgbXkgd29yaywgeW91IGtub3c/IEkgaG9wZSBldmVyeXRoaW5nIHBhc3NlcyBzbW9vdGhseSEgTGV04oCZcyBzZWUgd2hhdCB0aGUgcmVzdWx0cyBzYXkuIiwidGhpbmtpbmdTaWduYXR1cmUiOiJ7XCJpZFwiOlwicnNfMDI3ZjFlYTE1ZGVmMzUwNTAxNjlmMzBlMzg3MWFjODE5MWE2MDg5ZGRjOTc4NTJlNmVcIixcInR5cGVcIjpcInJlYXNvbmluZ1wiLFwiZW5jcnlwdGVkX2NvbnRlbnRcIjpcImdBQUFBQUJwOHc0N0pHaXZDTG82R3hidXpUSlhHazcyaW9LOTlXa0RxbUk0bUFaZG5RU0tNZ3g1ZTlvVHFoamtMVktJNVBURVpQWWsxS1kxTm9OR1JzdDl0V3JTaUIxRU9EZkFwSnNTTXNhY2NYaElKR0V1YTJLRW9ZZ200RE9QRXVMaXJJTU50QTUyMDdnU1gybkg5dUhERkNaOVhNN0d4a2xqM0p5aFhqRlNQRnhnTDRHVnJaQWgtend3UlB3QnFyU1hfa3RoekJmU0lKSzF4RXZ6cjhscWNTLXNoWlBXR0x6NTlNYkQwUDZpa29kSVJwY185dTZiQzZLai1FbzFUc1ZTRklUdGRSelNPX2VQb2xBRlpzWXJidS00NXJuRklLX2tNcGE4Mnl0aXZCb0JhbXZQUm9Id2JRQlNVYnB6TDdvRElyR2F3aVFrbmY5MjVJVlNmNnBQYmVFVm5xdTNRLVRhQWxyT3Brd01PeVIzb2Jqb2lrVkROZk90NTVHWkFKbnY2MjU5MmlUX2dNalVUS0ZuMUZ3S0plWXJ0VFFRREQ1ckRxVkJxRlNBaWJEMVJPcjByM2FwUGVka01zczlnMVZIQnBjT1VObG1jWnRzRWQzdmZtOFNGUm1RSk5Xam92Q1RoUXhQa3FmSktmcEE4WG9xTlRhZlhuX3RkUG1POEpSNklOb2J4Sk1NaUh1WWxxRTQxUjVycjNQdGlGNGNQLU13ZW9zOFUydlZ0a2tPclN5TVdYTHpDM1UxRkdVOVFPRVB4eVpocWhpX2xlb2NJQTJSSmZDbjB3bTZtLWJtb0dCTlZwQTNMVHRqT1d4MWVQUXZIdGZZQ0JBZEFVV1h4T2FFdTVGaEVndFNFTlVtUU00RlQ1QWI0YXBYam1Ub3puWC1Fd09aWlVEVGJJUHpEano5bkxKYVNhUHRNc3M5Z19rU3Rub1l2X18tQ1VHeGtRVVV1UWpCcXExX0pFbm9KUXVzbzBtY2ZfVTJsb013a1NBVHVJSXo3akI4WG42ZDJHWDlMZ05nd0x2ZzZjcWFGR19JdmFJUE53RWtwRGhDRlZIMTloOGM5aEFobVh5dWRRdV9NeFNPSGVQbThFLWNReENFczIwWmNUZTZkRVpyQ1pJVFUtb2N3emVIN3l0ZWZZUGpVeENXcWVlODJSYWFESFZpaU5Ial9ycDB4TmlHbkFYS25qdFNNQVBRelp1MGlHSjI2X1QwQ2t5ZlFhTmF3eWVqUGpKUXZSR3ZsUHJKdVJ4Y3VDSm1qbkdGakFpc0NwVkpKd05IWXhWUjBpTUhfeFRNN3BFdUdBZFYxNkNkNG5ldXBaSklzWXdrTjZrUkMzVHNyM2M9XCIsXCJzdW1tYXJ5XCI6W3tcInR5cGVcIjpcInN1bW1hcnlfdGV4dFwiLFwidGV4dFwiOlwiKipSdW5uaW5nIGNoZWNrcyBmb3IgY29kZSoqXFxuXFxuSSBuZWVkIHRvIGNoZWNrIHNvbWV0aGluZywgcG9zc2libHkgcmVsYXRlZCB0byBhIGxpbmUgb2YgY29kZS4gSXTigJlzIGxpa2VseSBJ4oCZbGwgcnVuIGBucG0gcnVuIGNoZWNrYCB0byBzZWUgaWYgZXZlcnl0aGluZyBpcyB3b3JraW5nIGFzIGl0IHNob3VsZC4gSSB3YW50IHRvIGVuc3VyZSB0aGF0IGFueSBpc3N1ZXMgYXJlIGNhdWdodCBlYXJseSwgc28gdGhpcyBzdGVwIGZlZWxzIGltcG9ydGFudC4gSXTigJlzIGp1c3Qgb25lIG9mIHRob3NlIGdvb2QgcHJhY3RpY2VzIHRvIGRvdWJsZS1jaGVjayBteSB3b3JrLCB5b3Uga25vdz8gSSBob3BlIGV2ZXJ5dGhpbmcgcGFzc2VzIHNtb290aGx5ISBMZXTigJlzIHNlZSB3aGF0IHRoZSByZXN1bHRzIHNheS5cIn1dfSJ9LHsidHlwZSI6InRvb2xDYWxsIiwiaWQiOiJjYWxsX081cHROdm9SdVM0cmpTTUgzZUUzcllEenxmY18wMjdmMWVhMTVkZWYzNTA1MDE2OWYzMGUzYjA1Yzg4MTkxOGFkMjEwMWY3NGQxMjQ5NiIsIm5hbWUiOiJiYXNoIiwiYXJndW1lbnRzIjp7ImNvbW1hbmQiOiJucG0gcnVuIGNoZWNrIiwiY3dkIjoiL1VzZXJzL2FsaW91ZGlhbGxvL2NvZGUvc3JjL2dpdGh1Yi5jb20vYWxpb3UvcGktbW9ubyIsInRpbWVvdXQiOjEyMH19XSwiYXBpIjoib3BlbmFpLWNvZGV4LXJlc3BvbnNlcyIsInByb3ZpZGVyIjoib3BlbmFpLWNvZGV4IiwibW9kZWwiOiJncHQtNS41IiwidXNhZ2UiOnsiaW5wdXQiOjEwODcsIm91dHB1dCI6NjIsImNhY2hlUmVhZCI6MzI3NjgsImNhY2hlV3JpdGUiOjAsInRvdGFsVG9rZW5zIjozMzkxNywiY29zdCI6eyJpbnB1dCI6MC4wMDU0MzUwMDAwMDAwMDAwMDEsIm91dHB1dCI6MC4wMDE4NiwiY2FjaGVSZWFkIjowLjAxNjM4NCwiY2FjaGVXcml0ZSI6MCwidG90YWwiOjAuMDIzNjc5fX0sInN0b3BSZWFzb24iOiJ0b29sVXNlIiwidGltZXN0YW1wIjoxNzc3NTM2NTY2ODYxLCJyZXNwb25zZUlkIjoicmVzcF8wMjdmMWVhMTVkZWYzNTA1MDE2OWYzMGUzNzc3YWM4MTkxYWZmZTFjM2FjY2EzODg4ZiJ9fSx7InR5cGUiOiJtZXNzYWdlIiwiaWQiOiI0MDQzYTJhMSIsInBhcmVudElkIjoiOGI5YjdkMTgiLCJ0aW1lc3RhbXAiOiIyMDI2LTA0LTMwVDA4OjA5OjMyLjQ0NVoiLCJtZXNzYWdlIjp7InJvbGUiOiJ0b29sUmVzdWx0IiwidG9vbENhbGxJZCI6ImNhbGxfTzVwdE52b1J1UzRyalNNSDNlRTNyWUR6fGZjXzAyN2YxZWExNWRlZjM1MDUwMTY5ZjMwZTNiMDVjODgxOTE4YWQyMTAxZjc0ZDEyNDk2IiwidG9vbE5hbWUiOiJiYXNoIiwiY29udGVudCI6W3sidHlwZSI6InRleHQiLCJ0ZXh0IjoiXG4+IHBpLW1vbm9yZXBvQDAuMC4zIGNoZWNrXG4+IGJpb21lIGNoZWNrIC0td3JpdGUgLS1lcnJvci1vbi13YXJuaW5ncyAuICYmIHRzZ28gLS1ub0VtaXQgJiYgbnBtIHJ1biBjaGVjazpicm93c2VyLXNtb2tlICYmIGNkIHBhY2thZ2VzL3dlYi11aSAmJiBucG0gcnVuIGNoZWNrXG5cbkNoZWNrZWQgNjMwIGZpbGVzIGluIDI5MG1zLiBGaXhlZCAyIGZpbGVzLlxucGFja2FnZXMvdHVpL3NyYy91dGlscy50cygzMiwxMDApOiBlcnJvciBUUzE1MDE6IFRoaXMgcmVndWxhciBleHByZXNzaW9uIGZsYWcgaXMgb25seSBhdmFpbGFibGUgd2hlbiB0YXJnZXRpbmcgJ2VzMjAyNCcgb3IgbGF0ZXIuXG5wYWNrYWdlcy90dWkvc3JjL3V0aWxzLnRzKDMzLDExMyk6IGVycm9yIFRTMTUwMTogVGhpcyByZWd1bGFyIGV4cHJlc3Npb24gZmxhZyBpcyBvbmx5IGF2YWlsYWJsZSB3aGVuIHRhcmdldGluZyAnZXMyMDI0JyBvciBsYXRlci5cbnBhY2thZ2VzL3R1aS9zcmMvdXRpbHMudHMoMzQsNDApOiBlcnJvciBUUzE1MDE6IFRoaXMgcmVndWxhciBleHByZXNzaW9uIGZsYWcgaXMgb25seSBhdmFpbGFibGUgd2hlbiB0YXJnZXRpbmcgJ2VzMjAyNCcgb3IgbGF0ZXIuXG5cblxuQ29tbWFuZCBleGl0ZWQgd2l0aCBjb2RlIDIifV0sImRldGFpbHMiOnt9LCJpc0Vycm9yIjp0cnVlLCJ0aW1lc3RhbXAiOjE3Nzc1MzY1NzI0NDV9fSx7InR5cGUiOiJtZXNzYWdlIiwiaWQiOiIzZGY1MzQxMiIsInBhcmVudElkIjoiNDA0M2EyYTEiLCJ0aW1lc3RhbXAiOiIyMDI2LTA0LTMwVDA4OjA5OjM0LjQ4M1oiLCJtZXNzYWdlIjp7InJvbGUiOiJhc3Npc3RhbnQiLCJjb250ZW50IjpbeyJ0eXBlIjoidGhpbmtpbmciLCJ0aGlua2luZyI6IioqSW5zcGVjdGluZyBmaWxlcyoqXG5cbkkgbmVlZCJ9XSwiYXBpIjoib3BlbmFpLWNvZGV4LXJlc3BvbnNlcyIsInByb3ZpZGVyIjoib3BlbmFpLWNvZGV4IiwibW9kZWwiOiJncHQtNS41IiwidXNhZ2UiOnsiaW5wdXQiOjAsIm91dHB1dCI6MCwiY2FjaGVSZWFkIjowLCJjYWNoZVdyaXRlIjowLCJ0b3RhbFRva2VucyI6MCwiY29zdCI6eyJpbnB1dCI6MCwib3V0cHV0IjowLCJjYWNoZVJlYWQiOjAsImNhY2hlV3JpdGUiOjAsInRvdGFsIjowfX0sInN0b3BSZWFzb24iOiJhYm9ydGVkIiwidGltZXN0YW1wIjoxNzc3NTM2NTcyNDQ2LCJyZXNwb25zZUlkIjoicmVzcF8wMjdmMWVhMTVkZWYzNTA1MDE2OWYzMGUzY2Y0MzA4MTkxYTE1NTMyZmY2YzlmZTYzOSIsImVycm9yTWVzc2FnZSI6Ik9wZXJhdGlvbiBhYm9ydGVkIn19LHsidHlwZSI6Im1lc3NhZ2UiLCJpZCI6IjA0NTE1YTI2IiwicGFyZW50SWQiOiIzZGY1MzQxMiIsInRpbWVzdGFtcCI6IjIwMjYtMDQtMzBUMTU6MDg6NDAuODQ0WiIsIm1lc3NhZ2UiOnsicm9sZSI6InVzZXIiLCJjb250ZW50IjpbeyJ0eXBlIjoidGV4dCIsInRleHQiOiJjb250aW51ZSJ9XSwidGltZXN0YW1wIjoxNzc3NTYxNzIwODQzfX0seyJ0eXBlIjoibWVzc2FnZSIsImlkIjoiMGNhYzZkMjMiLCJwYXJlbnRJZCI6IjA0NTE1YTI2IiwidGltZXN0YW1wIjoiMjAyNi0wNC0zMFQxNTowODo1Ny41NjRaIiwibWVzc2FnZSI6eyJyb2xlIjoiYXNzaXN0YW50IiwiY29udGVudCI6W3sidHlwZSI6InRoaW5raW5nIiwidGhpbmtpbmciOiIqKkluc3BlY3RpbmcgYmlvbWUgYWx0ZXJhdGlvbnMqKlxuXG5JIG5lZWQgdG8gaW5zcGVjdCBhbnkgZGlmZmVyZW5jZXMgYW5kIGNoZWNrIGlmIHRoZSBiaW9tZSBoYXMgYmVlbiBhbHRlcmVkIGluIHNvbWUgd2F5LiBUaGVyZSBjb3VsZCBiZSBpbXBvcnRhbnQgY2hhbmdlcyBoYXBwZW5pbmcgaGVyZSwgYW5kIHVuZGVyc3RhbmRpbmcgdGhlbSBpcyBjcnVjaWFsLiBJIHdvbmRlciB3aGF0IHNwZWNpZmljIGZhY3RvcnMgbWlnaHQgaGF2ZSBjb250cmlidXRlZCB0byB0aGVzZSBhbHRlcmF0aW9ucy4gSeKAmW0gZ29pbmcgdG8gbG9vayBjbG9zZWx5IGF0IHRoZSBkZXRhaWxzIHRvIGVuc3VyZSBJ4oCZbSBub3QgbWlzc2luZyBhbnl0aGluZyBzaWduaWZpY2FudC4gSXTigJlzIHZpdGFsIHRvIGhhdmUgYWNjdXJhdGUgaW5mb3JtYXRpb24gd2hlbiB3b3JraW5nIHdpdGggYmlvbWVzIHRvIGFzc2VzcyBhbnkgaW1wYWN0cy4iLCJ0aGlua2luZ1NpZ25hdHVyZSI6IntcImlkXCI6XCJyc18wMjdmMWVhMTVkZWYzNTA1MDE2OWYzNzA4NWQ5ODQ4MTkxYTlkZWJlMWRmNGVkZjhhZVwiLFwidHlwZVwiOlwicmVhc29uaW5nXCIsXCJlbmNyeXB0ZWRfY29udGVudFwiOlwiZ0FBQUFBQnA4M0NIaUl3RlVuRXRreHVYTGEtSjdqdXJEdWVTSFpVYU9VR2FOR3BzUWc2MkRESTdiSE9CRDRwcURGSW1KdFprWnp1QjVwYnZZV2JwUEZBWFZ0bXBUSWstbEtfWUEtS2xXYlR5R0psdmJUd2RNWll1TDdfdHc0M1YxSG1FLUdxWWR6MnF3TF9UalRmOUo2ZVZKWDRqQVd3dWNsM2ZpNUpDV3Q2c25qY2RWdW5YUWdUZzh0QktKZ1VXUzAxWUdaNDhJaGlodk1uNTloV1M4UVYzZ2JzWFcxQjRzbElkdWlVV3dtQVRQSTRhX19QV2FXaXEtR3ZEUi0xR21JaEJ5bGVkQ0hjYV9VNXpaZkxhb2hqdmNEb2UwdFFPcVc2YmVyZ1VvQUlZUVZiNFJDbUhwY3NoQkNZRWR6R3JNdDFwTk9ZU01vOHktRW1KeGhSMklDeHUwd25kYU53cVkxVFpQY3lHRzNWT1dFbXJKTUtlT0NEaVdPeHVETUNxNFVLS0pYM0ZzbDBmRFdBX0dUS2JVN0Z2a1o1R1h6dnQxdUVqemJrU3RGRDJ3ODZOaDJScUFzb2I2c3RaYkxUenRqN3JwSGtTWFJzWWZSVS1HSmVCRjZBVWlDallVcGl0QlFwWGMtbEJ0Z2taRHREaDZnMXVLU0dSQ2JVNXFXSE5KM0FPeTdHVG43Vm5RWnliYVROUUFwSTA0bmFMWnFZaHBNTXptY2RLLXRxSjRDa2Z2dG1BUWRxbDMzV1BJdmRadjBDNVpWVmhqNTJOdnBwbTREUzFmRTlWR21kZmpiMnZaeEhWX0hRSDZOTm5nZG1pcVhlb3VyQ1RVd1ZCRlhrQTBEQmlaTkp2Vzd1ZFhWQ2pUcVFyMnZZZE02YzBfZTRkRFJOTFh0c0Npc1JtWVN6eXMyTXNWeTJIa1pNdVl3WHhSUkYyaG13TGRjcEotWkhTYW12VWQ0ekdNQXpJMkllaDhJa0pYaGVBVldPTGZFb3dwYXgwYjROV1VTMFVHNzBocXlRQ0tIMFpESEg4SkcxUDhXUk5uZ0ZWeGdvMnBkMm9wWGdQd2UxY1lfMWJUbmJFSUVBYXVGSU5XSno0MEJtSEt2U1JPM1lzNkUxY28xMktTQUlXTFFNM1RFeEFXUFBwYy1TV2QtbkNwN3FpNEJqM2ZuMGhnRmtvWWQ0bW5wZmxHNjRVWnVDcWlmUXRiYXF3OGlELXM1YWctODUwT3Qxdmx4eV9zLVZJVk5qcGZ1aF9ock9ydGR4OFd1dFdDWVRKZjZtUng2cG1tWXM5eVE2WDBGdURvTkVJOXdFckE3M0tqdz09XCIsXCJzdW1tYXJ5XCI6W3tcInR5cGVcIjpcInN1bW1hcnlfdGV4dFwiLFwidGV4dFwiOlwiKipJbnNwZWN0aW5nIGJpb21lIGFsdGVyYXRpb25zKipcXG5cXG5JIG5lZWQgdG8gaW5zcGVjdCBhbnkgZGlmZmVyZW5jZXMgYW5kIGNoZWNrIGlmIHRoZSBiaW9tZSBoYXMgYmVlbiBhbHRlcmVkIGluIHNvbWUgd2F5LiBUaGVyZSBjb3VsZCBiZSBpbXBvcnRhbnQgY2hhbmdlcyBoYXBwZW5pbmcgaGVyZSwgYW5kIHVuZGVyc3RhbmRpbmcgdGhlbSBpcyBjcnVjaWFsLiBJIHdvbmRlciB3aGF0IHNwZWNpZmljIGZhY3RvcnMgbWlnaHQgaGF2ZSBjb250cmlidXRlZCB0byB0aGVzZSBhbHRlcmF0aW9ucy4gSeKAmW0gZ29pbmcgdG8gbG9vayBjbG9zZWx5IGF0IHRoZSBkZXRhaWxzIHRvIGVuc3VyZSBJ4oCZbSBub3QgbWlzc2luZyBhbnl0aGluZyBzaWduaWZpY2FudC4gSXTigJlzIHZpdGFsIHRvIGhhdmUgYWNjdXJhdGUgaW5mb3JtYXRpb24gd2hlbiB3b3JraW5nIHdpdGggYmlvbWVzIHRvIGFzc2VzcyBhbnkgaW1wYWN0cy5cIn1dfSJ9LHsidHlwZSI6InRvb2xDYWxsIiwiaWQiOiJjYWxsX2RFVnBwb1lvZ1M5UWUzaFBZMFh0cXZ4b3xmY18wMjdmMWVhMTVkZWYzNTA1MDE2OWYzNzA4N2FiYTg4MTkxOTUxYTBmZDc5Njc2MmFhOSIsIm5hbWUiOiJiYXNoIiwiYXJndW1lbnRzIjp7ImNvbW1hbmQiOiJnaXQgZGlmZiAtLSBwYWNrYWdlcy9jb2RpbmctYWdlbnQvc3JjL2NvcmUvcGFja2FnZS1tYW5hZ2VyLnRzIHBhY2thZ2VzL2NvZGluZy1hZ2VudC9zcmMvbW9kZXMvaW50ZXJhY3RpdmUvY29tcG9uZW50cy9jb25maWctc2VsZWN0b3IudHMiLCJjd2QiOiIvVXNlcnMvYWxpb3VkaWFsbG8vY29kZS9zcmMvZ2l0aHViLmNvbS9hbGlvdS9waS1tb25vIn19XSwiYXBpIjoib3BlbmFpLWNvZGV4LXJlc3BvbnNlcyIsInByb3ZpZGVyIjoib3BlbmFpLWNvZGV4IiwibW9kZWwiOiJncHQtNS41IiwidXNhZ2UiOnsiaW5wdXQiOjMzODQ3LCJvdXRwdXQiOjc4LCJjYWNoZVJlYWQiOjAsImNhY2hlV3JpdGUiOjAsInRvdGFsVG9rZW5zIjozMzkyNSwiY29zdCI6eyJpbnB1dCI6MC4xNjkyMzUwMDAwMDAwMDAwMiwib3V0cHV0IjowLjAwMjM0LCJjYWNoZVJlYWQiOjAsImNhY2hlV3JpdGUiOjAsInRvdGFsIjowLjE3MTU3NTAwMDAwMDAwMDAzfX0sInN0b3BSZWFzb24iOiJ0b29sVXNlIiwidGltZXN0YW1wIjoxNzc3NTYxNzI3Njk4LCJyZXNwb25zZUlkIjoicmVzcF8wMjdmMWVhMTVkZWYzNTA1MDE2OWYzNzA4NDk2YjA4MTkxOGM1YWRiYmVjOTI2Y2U3MyJ9fSx7InR5cGUiOiJtZXNzYWdlIiwiaWQiOiI4ZDY0MzgwOCIsInBhcmVudElkIjoiMGNhYzZkMjMiLCJ0aW1lc3RhbXAiOiIyMDI2LTA0LTMwVDE1OjA4OjU3LjYwM1oiLCJtZXNzYWdlIjp7InJvbGUiOiJ0b29sUmVzdWx0IiwidG9vbENhbGxJZCI6ImNhbGxfZEVWcHBvWW9nUzlRZTNoUFkwWHRxdnhvfGZjXzAyN2YxZWExNWRlZjM1MDUwMTY5ZjM3MDg3YWJhODgxOTE5NTFhMGZkNzk2NzYyYWE5IiwidG9vbE5hbWUiOiJiYXNoIiwiY29udGVudCI6W3sidHlwZSI6InRleHQiLCJ0ZXh0IjoiZGlmZiAtLWdpdCBwYWNrYWdlcy9jb2RpbmctYWdlbnQvc3JjL2NvcmUvcGFja2FnZS1tYW5hZ2VyLnRzIHBhY2thZ2VzL2NvZGluZy1hZ2VudC9zcmMvY29yZS9wYWNrYWdlLW1hbmFnZXIudHNcbmluZGV4IDVhMjVhOTA0Li5mMDBhNGI3NiAxMDA2NDRcbi0tLSBwYWNrYWdlcy9jb2RpbmctYWdlbnQvc3JjL2NvcmUvcGFja2FnZS1tYW5hZ2VyLnRzXG4rKysgcGFja2FnZXMvY29kaW5nLWFnZW50L3NyYy9jb3JlL3BhY2thZ2UtbWFuYWdlci50c1xuQEAgLTIxNjEsNyArMjE2MSw4IEBAIGV4cG9ydCBjbGFzcyBEZWZhdWx0UGFja2FnZU1hbmFnZXIgaW1wbGVtZW50cyBQYWNrYWdlTWFuYWdlciB7XG4gXHRcdFx0cHJvbXB0czogam9pbihwcm9qZWN0QmFzZURpciwgXCJwcm9tcHRzXCIpLFxuIFx0XHRcdHRoZW1lczogam9pbihwcm9qZWN0QmFzZURpciwgXCJ0aGVtZXNcIiksXG4gXHRcdH07XG4tXHRcdGNvbnN0IHVzZXJBZ2VudHNTa2lsbHNEaXIgPSBqb2luKGdldEhvbWVEaXIoKSwgXCIuYWdlbnRzXCIsIFwic2tpbGxzXCIpO1xuK1x0XHRjb25zdCB1c2VyQWdlbnRzQmFzZURpciA9IGpvaW4oZ2V0SG9tZURpcigpLCBcIi5hZ2VudHNcIik7XG4rXHRcdGNvbnN0IHVzZXJBZ2VudHNTa2lsbHNEaXIgPSBqb2luKHVzZXJBZ2VudHNCYXNlRGlyLCBcInNraWxsc1wiKTtcbiBcdFx0Y29uc3QgcHJvamVjdEFnZW50c1NraWxsRGlycyA9IGNvbGxlY3RBbmNlc3RvckFnZW50c1NraWxsRGlycyh0aGlzLmN3ZCkuZmlsdGVyKFxuIFx0XHRcdChkaXIpID0+IHJlc29sdmUoZGlyKSAhPT0gcmVzb2x2ZSh1c2VyQWdlbnRzU2tpbGxzRGlyKSxcbiBcdFx0KTtcbkBAIC0yMTg5LDE0ICsyMTkwLDIxIEBAIGV4cG9ydCBjbGFzcyBEZWZhdWx0UGFja2FnZU1hbmFnZXIgaW1wbGVtZW50cyBQYWNrYWdlTWFuYWdlciB7XG4gXHRcdCk7XG4gXHRcdGFkZFJlc291cmNlcyhcbiBcdFx0XHRcInNraWxsc1wiLFxuLVx0XHRcdFtcbi1cdFx0XHRcdC4uLmNvbGxlY3RBdXRvU2tpbGxFbnRyaWVzKHByb2plY3REaXJzLnNraWxscywgXCJwaVwiKSxcbi1cdFx0XHRcdC4uLnByb2plY3RBZ2VudHNTa2lsbERpcnMuZmxhdE1hcCgoZGlyKSA9PiBjb2xsZWN0QXV0b1NraWxsRW50cmllcyhkaXIsIFwiYWdlbnRzXCIpKSxcbi1cdFx0XHRdLFxuK1x0XHRcdGNvbGxlY3RBdXRvU2tpbGxFbnRyaWVzKHByb2plY3REaXJzLnNraWxscywgXCJwaVwiKSxcbiBcdFx0XHRwcm9qZWN0TWV0YWRhdGEsXG4gXHRcdFx0cHJvamVjdE92ZXJyaWRlcy5za2lsbHMsXG4gXHRcdFx0cHJvamVjdEJhc2VEaXIsXG4gXHRcdCk7XG4rXHRcdGZvciAoY29uc3QgcHJvamVjdEFnZW50c1NraWxsc0RpciBvZiBwcm9qZWN0QWdlbnRzU2tpbGxEaXJzKSB7XG4rXHRcdFx0Y29uc3QgcHJvamVjdEFnZW50c0Jhc2VEaXIgPSBkaXJuYW1lKHByb2plY3RBZ2VudHNTa2lsbHNEaXIpO1xuK1x0XHRcdGFkZFJlc291cmNlcyhcbitcdFx0XHRcdFwic2tpbGxzXCIsXG4rXHRcdFx0XHRjb2xsZWN0QXV0b1NraWxsRW50cmllcyhwcm9qZWN0QWdlbnRzU2tpbGxzRGlyLCBcImFnZW50c1wiKSxcbitcdFx0XHRcdHsgLi4ucHJvamVjdE1ldGFkYXRhLCBiYXNlRGlyOiBwcm9qZWN0QWdlbnRzQmFzZURpciB9LFxuK1x0XHRcdFx0cHJvamVjdE92ZXJyaWRlcy5za2lsbHMsXG4rXHRcdFx0XHRwcm9qZWN0QWdlbnRzQmFzZURpcixcbitcdFx0XHQpO1xuK1x0XHR9XG4gXHRcdGFkZFJlc291cmNlcyhcbiBcdFx0XHRcInByb21wdHNcIixcbiBcdFx0XHRjb2xsZWN0QXV0b1Byb21wdEVudHJpZXMocHJvamVjdERpcnMucHJvbXB0cyksXG5AQCAtMjIyMSwxMSArMjIyOSwxOCBAQCBleHBvcnQgY2xhc3MgRGVmYXVsdFBhY2thZ2VNYW5hZ2VyIGltcGxlbWVudHMgUGFja2FnZU1hbmFnZXIge1xuIFx0XHQpO1xuIFx0XHRhZGRSZXNvdXJjZXMoXG4gXHRcdFx0XCJza2lsbHNcIixcbi1cdFx0XHRbLi4uY29sbGVjdEF1dG9Ta2lsbEVudHJpZXModXNlckRpcnMuc2tpbGxzLCBcInBpXCIpLCAuLi5jb2xsZWN0QXV0b1NraWxsRW50cmllcyh1c2VyQWdlbnRzU2tpbGxzRGlyLCBcImFnZW50c1wiKV0sXG4rXHRcdFx0Y29sbGVjdEF1dG9Ta2lsbEVudHJpZXModXNlckRpcnMuc2tpbGxzLCBcInBpXCIpLFxuIFx0XHRcdHVzZXJNZXRhZGF0YSxcbiBcdFx0XHR1c2VyT3ZlcnJpZGVzLnNraWxscyxcbiBcdFx0XHRnbG9iYWxCYXNlRGlyLFxuIFx0XHQpO1xuK1x0XHRhZGRSZXNvdXJjZXMoXG4rXHRcdFx0XCJza2lsbHNcIixcbitcdFx0XHRjb2xsZWN0QXV0b1NraWxsRW50cmllcyh1c2VyQWdlbnRzU2tpbGxzRGlyLCBcImFnZW50c1wiKSxcbitcdFx0XHR7IC4uLnVzZXJNZXRhZGF0YSwgYmFzZURpcjogdXNlckFnZW50c0Jhc2VEaXIgfSxcbitcdFx0XHR1c2VyT3ZlcnJpZGVzLnNraWxscyxcbitcdFx0XHR1c2VyQWdlbnRzQmFzZURpcixcbitcdFx0KTtcbiBcdFx0YWRkUmVzb3VyY2VzKFxuIFx0XHRcdFwicHJvbXB0c1wiLFxuIFx0XHRcdGNvbGxlY3RBdXRvUHJvbXB0RW50cmllcyh1c2VyRGlycy5wcm9tcHRzKSxcbmRpZmYgLS1naXQgcGFja2FnZXMvY29kaW5nLWFnZW50L3NyYy9tb2Rlcy9pbnRlcmFjdGl2ZS9jb21wb25lbnRzL2NvbmZpZy1zZWxlY3Rvci50cyBwYWNrYWdlcy9jb2RpbmctYWdlbnQvc3JjL21vZGVzL2ludGVyYWN0aXZlL2NvbXBvbmVudHMvY29uZmlnLXNlbGVjdG9yLnRzXG5pbmRleCBjMzIxZGZlNS4uMGEwMzIxMGQgMTAwNjQ0XG4tLS0gcGFja2FnZXMvY29kaW5nLWFnZW50L3NyYy9tb2Rlcy9pbnRlcmFjdGl2ZS9jb21wb25lbnRzL2NvbmZpZy1zZWxlY3Rvci50c1xuKysrIHBhY2thZ2VzL2NvZGluZy1hZ2VudC9zcmMvbW9kZXMvaW50ZXJhY3RpdmUvY29tcG9uZW50cy9jb25maWctc2VsZWN0b3IudHNcbkBAIC0yLDYgKzIsNyBAQFxuICAqIFRVSSBjb21wb25lbnQgZm9yIG1hbmFnaW5nIHBhY2thZ2UgcmVzb3VyY2VzIChlbmFibGUvZGlzYWJsZSlcbiAgKi9cbiBcbitpbXBvcnQgeyBob21lZGlyIH0gZnJvbSBcIm5vZGU6b3NcIjtcbiBpbXBvcnQgeyBiYXNlbmFtZSwgZGlybmFtZSwgam9pbiwgcmVsYXRpdmUgfSBmcm9tIFwibm9kZTpwYXRoXCI7XG4gaW1wb3J0IHtcbiBcdHR5cGUgQ29tcG9uZW50LFxuQEAgLTU1LDEyICs1NiwyNCBAQCBpbnRlcmZhY2UgUmVzb3VyY2VHcm91cCB7XG4gXHRzdWJncm91cHM6IFJlc291cmNlU3ViZ3JvdXBbXTtcbiB9XG4gXG4rZnVuY3Rpb24gZm9ybWF0QmFzZURpcihiYXNlRGlyOiBzdHJpbmcpOiBzdHJpbmcge1xuK1x0Y29uc3QgaG9tZURpciA9IGhvbWVkaXIoKTtcbitcdGNvbnN0IGRpc3BsYXlQYXRoID1cbitcdFx0YmFzZURpciA9PT0gaG9tZURpciA/IFwiflwiIDogYmFzZURpci5zdGFydHNXaXRoKGAke2hvbWVEaXJ9L2ApID8gYH4vJHtyZWxhdGl2ZShob21lRGlyLCBiYXNlRGlyKX1gIDogYmFzZURpcjtcbitcdHJldHVybiBkaXNwbGF5UGF0aC5lbmRzV2l0aChcIi9cIikgPyBkaXNwbGF5UGF0aCA6IGAke2Rpc3BsYXlQYXRofS9gO1xuK31cbitcbiBmdW5jdGlvbiBnZXRHcm91cExhYmVsKG1ldGFkYXRhOiBQYXRoTWV0YWRhdGEpOiBzdHJpbmcge1xuIFx0aWYgKG1ldGFkYXRhLm9yaWdpbiA9PT0gXCJwYWNrYWdlXCIpIHtcbiBcdFx0cmV0dXJuIGAke21ldGFkYXRhLnNvdXJjZX0gKCR7bWV0YWRhdGEuc2NvcGV9KWA7XG4gXHR9XG4gXHQvLyBUb3AtbGV2ZWwgcmVzb3VyY2VzXG4gXHRpZiAobWV0YWRhdGEuc291cmNlID09PSBcImF1dG9cIikge1xuK1x0XHRpZiAobWV0YWRhdGEuYmFzZURpcikge1xuK1x0XHRcdHJldHVybiBtZXRhZGF0YS5zY29wZSA9PT0gXCJ1c2VyXCJcbitcdFx0XHRcdD8gYFVzZXIgKCR7Zm9ybWF0QmFzZURpcihtZXRhZGF0YS5iYXNlRGlyKX0pYFxuK1x0XHRcdFx0OiBgUHJvamVjdCAoJHtmb3JtYXRCYXNlRGlyKG1ldGFkYXRhLmJhc2VEaXIpfSlgO1xuK1x0XHR9XG4gXHRcdHJldHVybiBtZXRhZGF0YS5zY29wZSA9PT0gXCJ1c2VyXCIgPyBcIlVzZXIgKH4vLnBpL2FnZW50LylcIiA6IFwiUHJvamVjdCAoLnBpLylcIjtcbiBcdH1cbiBcdHJldHVybiBtZXRhZGF0YS5zY29wZSA9PT0gXCJ1c2VyXCIgPyBcIlVzZXIgc2V0dGluZ3NcIiA6IFwiUHJvamVjdCBzZXR0aW5nc1wiO1xuQEAgLTcyLDcgKzg1LDcgQEAgZnVuY3Rpb24gYnVpbGRHcm91cHMocmVzb2x2ZWQ6IFJlc29sdmVkUGF0aHMpOiBSZXNvdXJjZUdyb3VwW10ge1xuIFx0Y29uc3QgYWRkVG9Hcm91cCA9IChyZXNvdXJjZXM6IFJlc29sdmVkUmVzb3VyY2VbXSwgcmVzb3VyY2VUeXBlOiBSZXNvdXJjZVR5cGUpID0+IHtcbiBcdFx0Zm9yIChjb25zdCByZXMgb2YgcmVzb3VyY2VzKSB7XG4gXHRcdFx0Y29uc3QgeyBwYXRoLCBlbmFibGVkLCBtZXRhZGF0YSB9ID0gcmVzO1xuLVx0XHRcdGNvbnN0IGdyb3VwS2V5ID0gYCR7bWV0YWRhdGEub3JpZ2lufToke21ldGFkYXRhLnNjb3BlfToke21ldGFkYXRhLnNvdXJjZX1gO1xuK1x0XHRcdGNvbnN0IGdyb3VwS2V5ID0gYCR7bWV0YWRhdGEub3JpZ2lufToke21ldGFkYXRhLnNjb3BlfToke21ldGFkYXRhLnNvdXJjZX06JHttZXRhZGF0YS5iYXNlRGlyID8/IFwiXCJ9YDtcbiBcbiBcdFx0XHRpZiAoIWdyb3VwTWFwLmhhcyhncm91cEtleSkpIHtcbiBcdFx0XHRcdGdyb3VwTWFwLnNldChncm91cEtleSwge1xuIn1dLCJkZXRhaWxzIjp7Il9kdXJhdGlvbk1zIjozN30sImlzRXJyb3IiOmZhbHNlLCJ0aW1lc3RhbXAiOjE3Nzc1NjE3Mzc2MDJ9fSx7InR5cGUiOiJtZXNzYWdlIiwiaWQiOiI5N2YyYzk4NCIsInBhcmVudElkIjoiOGQ2NDM4MDgiLCJ0aW1lc3RhbXAiOiIyMDI2LTA0LTMwVDE1OjA5OjExLjkxOVoiLCJtZXNzYWdlIjp7InJvbGUiOiJhc3Npc3RhbnQiLCJjb250ZW50IjpbeyJ0eXBlIjoidGhpbmtpbmciLCJ0aGlua2luZyI6IioqQ2hlY2tpbmcgcGFja2FnZSBzY3JpcHRzKipcblxuSSBuZWVkIHRvIGNvbnRpbnVlIGJ5IHJ1bm5pbmcgYSBwYWNrYWdlIGNoZWNrLCBidXQgSSByZWFsaXplIHRoZSB1c2VyIHdhbnRzIGEgcXVpY2sgcmVzcG9uc2UuIEkgc2hvdWxkIGNvbmZpcm0gaXQncyBub3QgYSBmdWxsIGNoZWNrIHNpbmNlIGl0J3MgdW5yZWxhdGVkIHRvIHRoZWlyIHF1ZXJ5LiBNYXliZSBJ4oCZbGwgYWxzbyBsb29rIGludG8gcnVubmluZyB0aGUgdHNnbyBwYWNrYWdlPyBJ4oCZbSB3b25kZXJpbmcgaWYgSSBzaG91bGQgZGV0ZWN0IGFueSBzY3JpcHRzLCBidXQgdGhlcmUgbWlnaHQgbm90IGJlIGFueSBjaGFuZ2VzLiBJIHNob3VsZCBjaGVjayBpZiBucG0gcnVuIGNoZWNrIGZhaWxlZCBkdWUgdG8gdGhlIGV4aXN0aW5nIHBhY2thZ2VzIG9yIHR1aSBpc3N1ZXMgYmVmb3JlIG1vdmluZyBmb3J3YXJkLiIsInRoaW5raW5nU2lnbmF0dXJlIjoie1wiaWRcIjpcInJzXzAyN2YxZWExNWRlZjM1MDUwMTY5ZjM3MDkzNDZmMDgxOTFhNWZiNzMzNzMxNGRlYTY2XCIsXCJ0eXBlXCI6XCJyZWFzb25pbmdcIixcImVuY3J5cHRlZF9jb250ZW50XCI6XCJnQUFBQUFCcDgzQ1d6aHdMeTYzS29vVFVZUHptZDQwLUs0ZTZkaDVydDVYeWFHNjFnS2ZhNncwZDQ2NTA1QllJUGhuUWhONG00ZHctTXZ4Z09zdkZYSDUtQnphOENiZ1dQN0FFUG91UU5XOTlIcUFiM25LdWI0TU5XZnFyY3dvMnplcmZEdVpTM2J3dG1FVXRGaVhXcVpWSjJzc1BFOFRSZlQzb0xsYVE5Q0pvZE1COVBkVTYyS3dmU3lXY2p6d2x5ZjRmMXFScVJITDBRTloyQ0FQOWtIZExMRmo3YkM2d3ZPMWJiZ1doOTdJZklvNEdUM0JLMm03LVlXWTdXd3Fua3VRX2hSQ2ZoUTJoSUd4Tmh6N2Y1VmlZX3JKTk9zWGg3NjQzTEw5N3VvaklwUS1lNVhFMmdxUUdpRjJ1YkZGajhDeDRCendSbnQyTTA3ajFqeWtaR3dzaUhmbnVIdVpxMDR0S1FuN0lDLTFXME41Q09BMGFmV0V5blptVnl2em5ER3J5VGNjenJyX21BcGktUjFESjE1eHlqRjUtZmdlZkxQWXNHRGtlSWp1TlB6Xzc4cGxSNUZrR2dRQ2hoVEpKQXJGNFY0TmlYTW1NNHE5Y2p6cl80NDNkODRoMGdublRRcTJfRldRTkxUNzFEa3BlOHpQdVJ3bEFoem9TSVZobEJ6bkx1Q3RmWlRxdUZxMEhFX21HZGJlWGxhUENjMjk4amlsM2xOY21oM1VkbmhocENkZXJTR2FYNURaOFAtNC0tOGRMbGtZZXRGZUZlREpPZnpEcmNrR1BKWTA4QVhQX0NiTlpEaHEwZU1YZFpiank0TGlVVUNMOTdMSlVlSS1YVXdEYUNUUUlUOXZTOUZuZW1PUlZ3MGVaUWRWYnNJZlVYLThtSHV4cEJNaFZwbms3cDhRWklGSXhZQU5iTlNWUjRHYnByUENPckd5MmNUVzlzR1RBcFRrX2Q5d3pEOVRsWjhpamRUNEhTR003NnlsOHFYZFlsQnN3V3NveUNybzZiT1hmUmVaRFY4TTQ0LVk5NGkzSVRwblNxYVNtQTJ3MTlZcnphV1duRVhPYTAtX1Azb3NzQ2dFTEdhVzlFUTQ2TXQydjd3c0wzMHdZTXloeDVmTnowQTdfVXp2ckZtVlliWEN3M2t2dml1WERpQm1RQXkxOExoODVWT0dnbmZuaTVBQ0tCWjFPVGdKTXFKaVVkZ01lVlVRN29GQmxNS2Eyak1veTRCQ1ZfNEdGQVR5eFBBbEZVazhSZFc1X0xRZWhEVUM4bjVibXVGT3psaEEzNGoyMVBJaVNaRnV6dnBieVVEZ3VyZVhJbnJtWExxakpKVGVsbUdEZkpZQVQ4SzJJa3lhNFJTVkRFdGVNQkZTbURNOU40WUVQM2JWX3g4d2RneTBxZjRIR1FJcW44eTVzNkhaTFR0R3FuSFpYenRvbXZjS1BnRDkwb2J5QXhyYUktaXc3dzd4RjlTVmNBZDI3QURYVzVva0JDZ1p2aFRKMEtNUTZoVUdiSGFuXy05eGk2UmJhUHQwM1B3N3pCN0txXzZ4V2VNNEVVRjFDN05majhQajZja25fUGlveEtmWnF2dHJMODM4bjRBdHF5S2lTLS1MLTdjLXFIZWw0cTRxOTQ4eVlZMHo2OWtnTGZfTFlPNVUyNzhmNGZMRnBnT1BNY0VuUkhMX2tHNWVRdDVQU0c3d05yLXVNVFk2TGJOOUlLR18zempsNWY0cFhON0VIVEE9PVwiLFwic3VtbWFyeVwiOlt7XCJ0eXBlXCI6XCJzdW1tYXJ5X3RleHRcIixcInRleHRcIjpcIioqQ2hlY2tpbmcgcGFja2FnZSBzY3JpcHRzKipcXG5cXG5JIG5lZWQgdG8gY29udGludWUgYnkgcnVubmluZyBhIHBhY2thZ2UgY2hlY2ssIGJ1dCBJIHJlYWxpemUgdGhlIHVzZXIgd2FudHMgYSBxdWljayByZXNwb25zZS4gSSBzaG91bGQgY29uZmlybSBpdCdzIG5vdCBhIGZ1bGwgY2hlY2sgc2luY2UgaXQncyB1bnJlbGF0ZWQgdG8gdGhlaXIgcXVlcnkuIE1heWJlIEnigJlsbCBhbHNvIGxvb2sgaW50byBydW5uaW5nIHRoZSB0c2dvIHBhY2thZ2U/IEnigJltIHdvbmRlcmluZyBpZiBJIHNob3VsZCBkZXRlY3QgYW55IHNjcmlwdHMsIGJ1dCB0aGVyZSBtaWdodCBub3QgYmUgYW55IGNoYW5nZXMuIEkgc2hvdWxkIGNoZWNrIGlmIG5wbSBydW4gY2hlY2sgZmFpbGVkIGR1ZSB0byB0aGUgZXhpc3RpbmcgcGFja2FnZXMgb3IgdHVpIGlzc3VlcyBiZWZvcmUgbW92aW5nIGZvcndhcmQuXCJ9XX0ifSx7InR5cGUiOiJ0b29sQ2FsbCIsImlkIjoiY2FsbF9XN3BuTUN3OGFLMmhLRTZoQkt4UXJjZnh8ZmNfMDI3ZjFlYTE1ZGVmMzUwNTAxNjlmMzcwOTZjNDMwODE5MTkxNDQyZmIxNjYzMmNhNzgiLCJuYW1lIjoiYmFzaCIsImFyZ3VtZW50cyI6eyJjb21tYW5kIjoibnBtIHJ1biBjaGVjayAtLXdvcmtzcGFjZSBwYWNrYWdlcy9jb2RpbmctYWdlbnQiLCJjd2QiOiIvVXNlcnMvYWxpb3VkaWFsbG8vY29kZS9zcmMvZ2l0aHViLmNvbS9hbGlvdS9waS1tb25vIiwidGltZW91dCI6MTIwfX1dLCJhcGkiOiJvcGVuYWktY29kZXgtcmVzcG9uc2VzIiwicHJvdmlkZXIiOiJvcGVuYWktY29kZXgiLCJtb2RlbCI6ImdwdC01LjUiLCJ1c2FnZSI6eyJpbnB1dCI6MTc2OSwib3V0cHV0IjoxMTEsImNhY2hlUmVhZCI6MzMyODAsImNhY2hlV3JpdGUiOjAsInRvdGFsVG9rZW5zIjozNTE2MCwiY29zdCI6eyJpbnB1dCI6MC4wMDg4NDUsIm91dHB1dCI6MC4wMDMzMywiY2FjaGVSZWFkIjowLjAxNjY0LCJjYWNoZVdyaXRlIjowLCJ0b3RhbCI6MC4wMjg4MTV9fSwic3RvcFJlYXNvbiI6InRvb2xVc2UiLCJ0aW1lc3RhbXAiOjE3Nzc1NjE3Mzc2MDMsInJlc3BvbnNlSWQiOiJyZXNwXzAyN2YxZWExNWRlZjM1MDUwMTY5ZjM3MDhlMDhmNDgxOTE4MzczNDc2YTAyNzViNDYxIn19LHsidHlwZSI6Im1lc3NhZ2UiLCJpZCI6IjcxNzU1OGRiIiwicGFyZW50SWQiOiI5N2YyYzk4NCIsInRpbWVzdGFtcCI6IjIwMjYtMDQtMzBUMTU6MDk6MTIuMDQ5WiIsIm1lc3NhZ2UiOnsicm9sZSI6InRvb2xSZXN1bHQiLCJ0b29sQ2FsbElkIjoiY2FsbF9XN3BuTUN3OGFLMmhLRTZoQkt4UXJjZnh8ZmNfMDI3ZjFlYTE1ZGVmMzUwNTAxNjlmMzcwOTZjNDMwODE5MTkxNDQyZmIxNjYzMmNhNzgiLCJ0b29sTmFtZSI6ImJhc2giLCJjb250ZW50IjpbeyJ0eXBlIjoidGV4dCIsInRleHQiOiJucG0gZXJyb3IgTGlmZWN5Y2xlIHNjcmlwdCBgY2hlY2tgIGZhaWxlZCB3aXRoIGVycm9yOlxubnBtIGVycm9yIHdvcmtzcGFjZSBAbWFyaW96ZWNobmVyL3BpLWNvZGluZy1hZ2VudEAwLjcwLjZcbm5wbSBlcnJvciBsb2NhdGlvbiAvVXNlcnMvYWxpb3VkaWFsbG8vY29kZS9zcmMvZ2l0aHViLmNvbS9hbGlvdS9waS1tb25vL3BhY2thZ2VzL2NvZGluZy1hZ2VudFxubnBtIGVycm9yIE1pc3Npbmcgc2NyaXB0OiBcImNoZWNrXCJcbm5wbSBlcnJvclxubnBtIGVycm9yIFRvIHNlZSBhIGxpc3Qgb2Ygc2NyaXB0cywgcnVuOlxubnBtIGVycm9yICAgbnBtIHJ1biAtLXdvcmtzcGFjZT1AbWFyaW96ZWNobmVyL3BpLWNvZGluZy1hZ2VudEAwLjcwLjZcblxuXG5Db21tYW5kIGV4aXRlZCB3aXRoIGNvZGUgMSJ9XSwiZGV0YWlscyI6e30sImlzRXJyb3IiOnRydWUsInRpbWVzdGFtcCI6MTc3NzU2MTc1MjA0OX19LHsidHlwZSI6Im1lc3NhZ2UiLCJpZCI6IjIyYjZkMjU2IiwicGFyZW50SWQiOiI3MTc1NThkYiIsInRpbWVzdGFtcCI6IjIwMjYtMDQtMzBUMTU6MDk6MTYuMDc2WiIsIm1lc3NhZ2UiOnsicm9sZSI6ImFzc2lzdGFudCIsImNvbnRlbnQiOlt7InR5cGUiOiJ0b29sQ2FsbCIsImlkIjoiY2FsbF91V2w5eFIzOTU5TGRpeXB1TkZUZlNpcmh8ZmNfMDI3ZjFlYTE1ZGVmMzUwNTAxNjlmMzcwOWE2YzMwODE5MWI5NjUzZGI4ZTEzNTU0YWUiLCJuYW1lIjoicmVhZCIsImFyZ3VtZW50cyI6eyJwYXRoIjoicGFja2FnZXMvY29kaW5nLWFnZW50L3BhY2thZ2UuanNvbiIsIm9mZnNldCI6MSwibGltaXQiOjgwfX1dLCJhcGkiOiJvcGVuYWktY29kZXgtcmVzcG9uc2VzIiwicHJvdmlkZXIiOiJvcGVuYWktY29kZXgiLCJtb2RlbCI6ImdwdC01LjUiLCJ1c2FnZSI6eyJpbnB1dCI6NDYxLCJvdXRwdXQiOjMwLCJjYWNoZVJlYWQiOjM0ODE2LCJjYWNoZVdyaXRlIjowLCJ0b3RhbFRva2VucyI6MzUzMDcsImNvc3QiOnsiaW5wdXQiOjAuMDAyMzA1LCJvdXRwdXQiOjAuMDAwOSwiY2FjaGVSZWFkIjowLjAxNzQwOCwiY2FjaGVXcml0ZSI6MCwidG90YWwiOjAuMDIwNjEzfX0sInN0b3BSZWFzb24iOiJ0b29sVXNlIiwidGltZXN0YW1wIjoxNzc3NTYxNzUyMDUwLCJyZXNwb25zZUlkIjoicmVzcF8wMjdmMWVhMTVkZWYzNTA1MDE2OWYzNzA5OTdhODg4MTkxYTY2YWZkMDVhZDJlYjQ4OSJ9fSx7InR5cGUiOiJtZXNzYWdlIiwiaWQiOiIzZDFjMjY0NCIsInBhcmVudElkIjoiMjJiNmQyNTYiLCJ0aW1lc3RhbXAiOiIyMDI2LTA0LTMwVDE1OjA5OjE2LjA3OVoiLCJtZXNzYWdlIjp7InJvbGUiOiJ0b29sUmVzdWx0IiwidG9vbENhbGxJZCI6ImNhbGxfdVdsOXhSMzk1OUxkaXlwdU5GVGZTaXJofGZjXzAyN2YxZWExNWRlZjM1MDUwMTY5ZjM3MDlhNmMzMDgxOTFiOTY1M2RiOGUxMzU1NGFlIiwidG9vbE5hbWUiOiJyZWFkIiwiY29udGVudCI6W3sidHlwZSI6InRleHQiLCJ0ZXh0Ijoie1xuXHRcIm5hbWVcIjogXCJAbWFyaW96ZWNobmVyL3BpLWNvZGluZy1hZ2VudFwiLFxuXHRcInZlcnNpb25cIjogXCIwLjcwLjZcIixcblx0XCJkZXNjcmlwdGlvblwiOiBcIkNvZGluZyBhZ2VudCBDTEkgd2l0aCByZWFkLCBiYXNoLCBlZGl0LCB3cml0ZSB0b29scyBhbmQgc2Vzc2lvbiBtYW5hZ2VtZW50XCIsXG5cdFwidHlwZVwiOiBcIm1vZHVsZVwiLFxuXHRcInBpQ29uZmlnXCI6IHtcblx0XHRcImNvbmZpZ0RpclwiOiBcIi5waVwiXG5cdH0sXG5cdFwiYmluXCI6IHtcblx0XHRcInBpXCI6IFwiZGlzdC9jbGkuanNcIlxuXHR9LFxuXHRcIm1haW5cIjogXCIuL2Rpc3QvaW5kZXguanNcIixcblx0XCJ0eXBlc1wiOiBcIi4vZGlzdC9pbmRleC5kLnRzXCIsXG5cdFwiZXhwb3J0c1wiOiB7XG5cdFx0XCIuXCI6IHtcblx0XHRcdFwidHlwZXNcIjogXCIuL2Rpc3QvaW5kZXguZC50c1wiLFxuXHRcdFx0XCJpbXBvcnRcIjogXCIuL2Rpc3QvaW5kZXguanNcIlxuXHRcdH0sXG5cdFx0XCIuL2hvb2tzXCI6IHtcblx0XHRcdFwidHlwZXNcIjogXCIuL2Rpc3QvY29yZS9ob29rcy9pbmRleC5kLnRzXCIsXG5cdFx0XHRcImltcG9ydFwiOiBcIi4vZGlzdC9jb3JlL2hvb2tzL2luZGV4LmpzXCJcblx0XHR9XG5cdH0sXG5cdFwiZmlsZXNcIjogW1xuXHRcdFwiZGlzdFwiLFxuXHRcdFwiZG9jc1wiLFxuXHRcdFwiZXhhbXBsZXNcIixcblx0XHRcIkNIQU5HRUxPRy5tZFwiXG5cdF0sXG5cdFwic2NyaXB0c1wiOiB7XG5cdFx0XCJjbGVhblwiOiBcInNoeCBybSAtcmYgZGlzdFwiLFxuXHRcdFwiZGV2XCI6IFwidHNnbyAtcCB0c2NvbmZpZy5idWlsZC5qc29uIC0td2F0Y2ggLS1wcmVzZXJ2ZVdhdGNoT3V0cHV0XCIsXG5cdFx0XCJidWlsZFwiOiBcInRzZ28gLXAgdHNjb25maWcuYnVpbGQuanNvbiAmJiBzaHggY2htb2QgK3ggZGlzdC9jbGkuanMgJiYgbnBtIHJ1biBjb3B5LWFzc2V0c1wiLFxuXHRcdFwiYnVpbGQ6YmluYXJ5XCI6IFwibnBtIC0tcHJlZml4IC4uL3R1aSBydW4gYnVpbGQgJiYgbnBtIC0tcHJlZml4IC4uL2FpIHJ1biBidWlsZCAmJiBucG0gLS1wcmVmaXggLi4vYWdlbnQgcnVuIGJ1aWxkICYmIG5wbSBydW4gYnVpbGQgJiYgYnVuIGJ1aWxkIC0tY29tcGlsZSAuL2Rpc3QvYnVuL2NsaS5qcyAtLW91dGZpbGUgZGlzdC9waSAmJiBucG0gcnVuIGNvcHktYmluYXJ5LWFzc2V0c1wiLFxuXHRcdFwiY29weS1hc3NldHNcIjogXCJzaHggbWtkaXIgLXAgZGlzdC9tb2Rlcy9pbnRlcmFjdGl2ZS90aGVtZSAmJiBzaHggY3Agc3JjL21vZGVzL2ludGVyYWN0aXZlL3RoZW1lLyouanNvbiBkaXN0L21vZGVzL2ludGVyYWN0aXZlL3RoZW1lLyAmJiBzaHggbWtkaXIgLXAgZGlzdC9tb2Rlcy9pbnRlcmFjdGl2ZS9hc3NldHMgJiYgc2h4IGNwIHNyYy9tb2Rlcy9pbnRlcmFjdGl2ZS9hc3NldHMvKi5wbmcgZGlzdC9tb2Rlcy9pbnRlcmFjdGl2ZS9hc3NldHMvICYmIHNoeCBta2RpciAtcCBkaXN0L2NvcmUvZXhwb3J0LWh0bWwvdmVuZG9yICYmIHNoeCBjcCBzcmMvY29yZS9leHBvcnQtaHRtbC90ZW1wbGF0ZS5odG1sIHNyYy9jb3JlL2V4cG9ydC1odG1sL3RlbXBsYXRlLmNzcyBzcmMvY29yZS9leHBvcnQtaHRtbC90ZW1wbGF0ZS5qcyBkaXN0L2NvcmUvZXhwb3J0LWh0bWwvICYmIHNoeCBjcCBzcmMvY29yZS9leHBvcnQtaHRtbC92ZW5kb3IvKi5qcyBkaXN0L2NvcmUvZXhwb3J0LWh0bWwvdmVuZG9yL1wiLFxuXHRcdFwiY29weS1iaW5hcnktYXNzZXRzXCI6IFwic2h4IGNwIHBhY2thZ2UuanNvbiBkaXN0LyAmJiBzaHggY3AgUkVBRE1FLm1kIGRpc3QvICYmIHNoeCBjcCBDSEFOR0VMT0cubWQgZGlzdC8gJiYgc2h4IG1rZGlyIC1wIGRpc3QvdGhlbWUgJiYgc2h4IGNwIHNyYy9tb2Rlcy9pbnRlcmFjdGl2ZS90aGVtZS8qLmpzb24gZGlzdC90aGVtZS8gJiYgc2h4IG1rZGlyIC1wIGRpc3QvYXNzZXRzICYmIHNoeCBjcCBzcmMvbW9kZXMvaW50ZXJhY3RpdmUvYXNzZXRzLyoucG5nIGRpc3QvYXNzZXRzLyAmJiBzaHggbWtkaXIgLXAgZGlzdC9leHBvcnQtaHRtbC92ZW5kb3IgJiYgc2h4IGNwIHNyYy9jb3JlL2V4cG9ydC1odG1sL3RlbXBsYXRlLmh0bWwgZGlzdC9leHBvcnQtaHRtbC8gJiYgc2h4IGNwIHNyYy9jb3JlL2V4cG9ydC1odG1sL3ZlbmRvci8qLmpzIGRpc3QvZXhwb3J0LWh0bWwvdmVuZG9yLyAmJiBzaHggY3AgLXIgZG9jcyBkaXN0LyAmJiBzaHggY3AgLXIgZXhhbXBsZXMgZGlzdC8gJiYgc2h4IGNwIC4uLy4uL25vZGVfbW9kdWxlcy9Ac2lsdmlhLW9kd3llci9waG90b24tbm9kZS9waG90b25fcnNfYmcud2FzbSBkaXN0L1wiLFxuXHRcdFwidGVzdFwiOiBcInZpdGVzdCAtLXJ1blwiLFxuXHRcdFwicHJlcHVibGlzaE9ubHlcIjogXCJucG0gcnVuIGNsZWFuICYmIG5wbSBydW4gYnVpbGRcIlxuXHR9LFxuXHRcImRlcGVuZGVuY2llc1wiOiB7XG5cdFx0XCJAbWFyaW96ZWNobmVyL2ppdGlcIjogXCJeMi42LjJcIixcblx0XHRcIkBtYXJpb3plY2huZXIvcGktYWdlbnQtY29yZVwiOiBcIl4wLjcwLjZcIixcblx0XHRcIkBtYXJpb3plY2huZXIvcGktYWlcIjogXCJeMC43MC42XCIsXG5cdFx0XCJAbWFyaW96ZWNobmVyL3BpLXR1aVwiOiBcIl4wLjcwLjZcIixcblx0XHRcIkBzaWx2aWEtb2R3eWVyL3Bob3Rvbi1ub2RlXCI6IFwiXjAuMy40XCIsXG5cdFx0XCJjaGFsa1wiOiBcIl41LjUuMFwiLFxuXHRcdFwiY2xpLWhpZ2hsaWdodFwiOiBcIl4yLjEuMTFcIixcblx0XHRcImRpZmZcIjogXCJeOC4wLjJcIixcblx0XHRcImV4dHJhY3QtemlwXCI6IFwiXjIuMC4xXCIsXG5cdFx0XCJmaWxlLXR5cGVcIjogXCJeMjEuMS4xXCIsXG5cdFx0XCJnbG9iXCI6IFwiXjEzLjAuMVwiLFxuXHRcdFwiaG9zdGVkLWdpdC1pbmZvXCI6IFwiXjkuMC4yXCIsXG5cdFx0XCJpZ25vcmVcIjogXCJeNy4wLjVcIixcblx0XHRcIm1hcmtlZFwiOiBcIl4xNS4wLjEyXCIsXG5cdFx0XCJtaW5pbWF0Y2hcIjogXCJeMTAuMi4zXCIsXG5cdFx0XCJwcm9wZXItbG9ja2ZpbGVcIjogXCJeNC4xLjJcIixcblx0XHRcInN0cmlwLWFuc2lcIjogXCJeNy4xLjBcIixcblx0XHRcInR5cGVib3hcIjogXCJeMS4xLjI0XCIsXG5cdFx0XCJ1bmRpY2lcIjogXCJeNy4xOS4xXCIsXG5cdFx0XCJ1dWlkXCI6IFwiXjE0LjAuMFwiLFxuXHRcdFwieWFtbFwiOiBcIl4yLjguMlwiXG5cdH0sXG5cdFwib3ZlcnJpZGVzXCI6IHtcblx0XHRcInJpbXJhZlwiOiBcIjYuMS4yXCIsXG5cdFx0XCJnYXhpb3NcIjoge1xuXHRcdFx0XCJyaW1yYWZcIjogXCI2LjEuMlwiXG5cdFx0fVxuXHR9LFxuXHRcIm9wdGlvbmFsRGVwZW5kZW5jaWVzXCI6IHtcblx0XHRcIkBtYXJpb3plY2huZXIvY2xpcGJvYXJkXCI6IFwiXjAuMy4zXCJcblx0fSxcblx0XCJkZXZEZXBlbmRlbmNpZXNcIjoge1xuXHRcdFwiQHR5cGVzL2RpZmZcIjogXCJeNy4wLjJcIixcblx0XHRcIkB0eXBlcy9ob3N0ZWQtZ2l0LWluZm9cIjogXCJeMy4wLjVcIixcblx0XHRcIkB0eXBlcy9tc1wiOiBcIl4yLjEuMFwiLFxuXHRcdFwiQHR5cGVzL25vZGVcIjogXCJeMjQuMy4wXCIsXG5cdFx0XCJAdHlwZXMvcHJvcGVyLWxvY2tmaWxlXCI6IFwiXjQuMS40XCIsXG5cdFx0XCJzaHhcIjogXCJeMC40LjBcIixcblx0XHRcInR5cGVzY3JpcHRcIjogXCJeNS43LjNcIixcblx0XHRcInZpdGVzdFwiOiBcIl4zLjIuNFwiXG5cblsyMSBtb3JlIGxpbmVzIGluIGZpbGUuIFVzZSBvZmZzZXQ9ODEgdG8gY29udGludWUuXSJ9XSwiaXNFcnJvciI6ZmFsc2UsInRpbWVzdGFtcCI6MTc3NzU2MTc1NjA3OX19LHsidHlwZSI6Im1lc3NhZ2UiLCJpZCI6ImIwZGIyZmZjIiwicGFyZW50SWQiOiIzZDFjMjY0NCIsInRpbWVzdGFtcCI6IjIwMjYtMDQtMzBUMTU6MDk6MjMuMzI3WiIsIm1lc3NhZ2UiOnsicm9sZSI6ImFzc2lzdGFudCIsImNvbnRlbnQiOlt7InR5cGUiOiJ0aGlua2luZyIsInRoaW5raW5nIjoiKipDb25zaWRlcmluZyBjb2RpbmcgYnVpbGQqKlxuXG5J4oCZbSB0aGlua2luZyBhYm91dCB3aGV0aGVyIEkgbmVlZCB0byBydW4gYHRzZ29gIHdpdGggbm8gZW1pdCBzaW5jZSBpdCBzZWVtcyBsaWtlIHRoZSBydW4gZmFpbGVkIGVhcmxpZXIsIGJ1dCB0aGF0IHdhcyB1bnJlbGF0ZWQuIEl0IGRpZCByZWFjaCB0aGUgYHBhY2thZ2VzL3R1aWAgZGlyZWN0b3J5IGJlZm9yZSBjb2RpbmcsIHNvIHRoYXTigJlzIHNvbWV0aGluZy4gSeKAmW0gd29uZGVyaW5nIGlmIG15IHByb2plY3QgcmVmZXJlbmNlcyB3ZXJlbid0IGNoZWNrZWQgZHVyaW5nIHRoZSBjb21waWxlLiBJIGd1ZXNzIEkgc2hvdWxkIHJ1biBgdHNnb2AgYWdhaW4gZm9yIHRoZSBjb2RpbmcgYnVpbGQgYW5kIHNlZSB3aGF0IGhhcHBlbnMgbmV4dC4gTGV0J3MgZ2l2ZSB0aGF0IGEgdHJ5ISIsInRoaW5raW5nU2lnbmF0dXJlIjoie1wiaWRcIjpcInJzXzAyN2YxZWExNWRlZjM1MDUwMTY5ZjM3MDllNjhkODgxOTFhYTEyMTJhYWY5Y2IzZmMxXCIsXCJ0eXBlXCI6XCJyZWFzb25pbmdcIixcImVuY3J5cHRlZF9jb250ZW50XCI6XCJnQUFBQUFCcDgzQ2hCQ3ZiN2NLZHRMRTdFWkFpaWRfcFU2aGk0eVVZQ1YxVkMzekJPcGJ5ME16SFg2elg4NF9tR1dLdHN6NFhyWGtSTm91ZmpFclFaVUczMFlIeUZLR2JjVWxIcEZOZnZFZy1ldnk3SzJzbU9DWVNDRXJHOEsxUHd3NjNHYS05Qno4eHM2aUoyRlBSbXZad1Y4NVo4Wm1ZMGV1NlRhbkZSM3Z0OTFUc25rSUdzWXRWZFN5UVFZNlFsSHcwVzE4THFOWUdXdEhDalJPYmRwNWt6enNlc1RYMmszVFEyc3pRbzdYZFN3Y3JPUVdDbm9jN3did2pJaEw5Q2NkVEFwY1ByVF9qNVFjN1BsUC1lQ3VzbW9rQjhuTkZBUTF5SmV5V1hDSDRaX0hDWTA4QUNVTEl3RGdlUEYzZ1hTa0l6SFhtb1ROWHRTRmZkWlhoMjFwR1NEMkFLaWM3VERySV9KTlNGZVVLRnc5M3hnX3YzT3lRRFZEajNta2hHdjVob3pHZF93bFFfZ1Z1ZXZ6VG44RmVKMVdHeGJfLWpwMDNJdDBnX3pfRlY5RS1qdHB2ZDFLOGVNS3lLUUtmY19yYlZ4dXVKRmJjWkJEQWV3NnZKQl9xUGx3V2JyR1FhT1NWQlJCZDEzNlJZbGk0MkRpMjI5aGVsRzh0LUJiX0J5aS1aWTdGekJyWHNUSDVyd183MUdPYkJ4eFFGSnNOaFdZdVBwM3pjMFNJVG5USWRNcF9ZR0Vlb1dQNXFyQWpnbUd6SlVDT2ptNEwydjNoSkdsU2s0TTBiUWNoNExSVTVjTEZiU1QzMGRjcm9nWTF5VldyUXpLTU5GU29IMHVzSUpnNnVwNU9uR2VIOWdXVUd0ZXg0VXB2VlotTFdFSUw4TEUyeU9uV1pvUVJhS3QyRHlHcFhLbXlmVkxoV3UwNll4c01CSzExS1dERW5BaXAta0gtV2NGb3dCRVI3UjVnc25Yd3dCZDBRYkw4Q1BjRVVMTm1Eb29CVzFQT3F4VUtrQ283aW90MmtRaEdqZFhzSmEwc0Zka0tDNlNEM3BWNjlBLWk0a2c0VkU2VTJVbENkWnBLOWFiSWlRbjZ0eWkyX0xMODR2c3JoVjZZVWIyR2c2Rjc3dWdnajlZaldZQndHS3JraFVtV21YdDhKSDhkZEgxVGx0YjlOMXgxQWpuN3pST1ZicEhYeTV5WDRZWkhJMWg1TXNCSVRqcWRnMU9oRnRFcDZWUFlqYXlOWVY1RklWcms3UUNSZDFDNVJVYXpzYXBqU3FOQkYwSkxvbnlZRGwwZ0JsM1pVY2hWMjF3SFpfZVZDcVpLZU12RHQ4WEdWLW00TnU3RElDUzI3MVBUeHRwNElCaU56V1pON1BkaEdjR1NFbllyWk5HYlFsLW1uWmNLcWFGbWYtUU5HNHhmMWlQWVpCOWdheWtzRDRjWHdyUGRXMnZHTmtxMElLdi1VZFJtejFoRGVGOXpyN3IxWjZrdTJYUGQ4MnE3WmRfamJaMV9yVEpWTDFBMVlodXYzOFhobDVoc3FyTHpVYmg2ejBDcTd0N05NZWhRb3RQbmptQUZfVXB0OTE0TWlmZEI2NzdvRlBvPVwiLFwic3VtbWFyeVwiOlt7XCJ0eXBlXCI6XCJzdW1tYXJ5X3RleHRcIixcInRleHRcIjpcIioqQ29uc2lkZXJpbmcgY29kaW5nIGJ1aWxkKipcXG5cXG5J4oCZbSB0aGlua2luZyBhYm91dCB3aGV0aGVyIEkgbmVlZCB0byBydW4gYHRzZ29gIHdpdGggbm8gZW1pdCBzaW5jZSBpdCBzZWVtcyBsaWtlIHRoZSBydW4gZmFpbGVkIGVhcmxpZXIsIGJ1dCB0aGF0IHdhcyB1bnJlbGF0ZWQuIEl0IGRpZCByZWFjaCB0aGUgYHBhY2thZ2VzL3R1aWAgZGlyZWN0b3J5IGJlZm9yZSBjb2RpbmcsIHNvIHRoYXTigJlzIHNvbWV0aGluZy4gSeKAmW0gd29uZGVyaW5nIGlmIG15IHByb2plY3QgcmVmZXJlbmNlcyB3ZXJlbid0IGNoZWNrZWQgZHVyaW5nIHRoZSBjb21waWxlLiBJIGd1ZXNzIEkgc2hvdWxkIHJ1biBgdHNnb2AgYWdhaW4gZm9yIHRoZSBjb2RpbmcgYnVpbGQgYW5kIHNlZSB3aGF0IGhhcHBlbnMgbmV4dC4gTGV0J3MgZ2l2ZSB0aGF0IGEgdHJ5IVwifV19In0seyJ0eXBlIjoidG9vbENhbGwiLCJpZCI6ImNhbGxfeTVsVUZjU1dKTE5DQVFtdExLRmVWdFdVfGZjXzAyN2YxZWExNWRlZjM1MDUwMTY5ZjM3MGExZWFkMDgxOTFhZGMzNzYyZjg0NGZlMmQ4IiwibmFtZSI6ImJhc2giLCJhcmd1bWVudHMiOnsiY29tbWFuZCI6Im5weCB0c2dvIC1wIHRzY29uZmlnLmJ1aWxkLmpzb24gLS1ub0VtaXQiLCJjd2QiOiIvVXNlcnMvYWxpb3VkaWFsbG8vY29kZS9zcmMvZ2l0aHViLmNvbS9hbGlvdS9waS1tb25vL3BhY2thZ2VzL2NvZGluZy1hZ2VudCIsInRpbWVvdXQiOjEyMH19XSwiYXBpIjoib3BlbmFpLWNvZGV4LXJlc3BvbnNlcyIsInByb3ZpZGVyIjoib3BlbmFpLWNvZGV4IiwibW9kZWwiOiJncHQtNS41IiwidXNhZ2UiOnsiaW5wdXQiOjE2NjUsIm91dHB1dCI6MTA2LCJjYWNoZVJlYWQiOjM0ODE2LCJjYWNoZVdyaXRlIjowLCJ0b3RhbFRva2VucyI6MzY1ODcsImNvc3QiOnsiaW5wdXQiOjAuMDA4MzI1LCJvdXRwdXQiOjAuMDAzMTgsImNhY2hlUmVhZCI6MC4wMTc0MDgsImNhY2hlV3JpdGUiOjAsInRvdGFsIjowLjAyODkxM319LCJzdG9wUmVhc29uIjoidG9vbFVzZSIsInRpbWVzdGFtcCI6MTc3NzU2MTc1NjA4MCwicmVzcG9uc2VJZCI6InJlc3BfMDI3ZjFlYTE1ZGVmMzUwNTAxNjlmMzcwOWQ5MzgwODE5MWExZDQ3Yjc3OTgwZWRlYWEifX0seyJ0eXBlIjoibWVzc2FnZSIsImlkIjoiMGFlOTcwZGUiLCJwYXJlbnRJZCI6ImIwZGIyZmZjIiwidGltZXN0YW1wIjoiMjAyNi0wNC0zMFQxNTowOToyNC4xMzVaIiwibWVzc2FnZSI6eyJyb2xlIjoidG9vbFJlc3VsdCIsInRvb2xDYWxsSWQiOiJjYWxsX3k1bFVGY1NXSkxOQ0FRbXRMS0ZlVnRXVXxmY18wMjdmMWVhMTVkZWYzNTA1MDE2OWYzNzBhMWVhZDA4MTkxYWRjMzc2MmY4NDRmZTJkOCIsInRvb2xOYW1lIjoiYmFzaCIsImNvbnRlbnQiOlt7InR5cGUiOiJ0ZXh0IiwidGV4dCI6InNyYy9jb3JlL21vZGVsLXJlc29sdmVyLnRzKDQwLDIpOiBlcnJvciBUUzIzNTM6IE9iamVjdCBsaXRlcmFsIG1heSBvbmx5IHNwZWNpZnkga25vd24gcHJvcGVydGllcywgYW5kICdcImNsb3VkZmxhcmUtd29ya2Vycy1haVwiJyBkb2VzIG5vdCBleGlzdCBpbiB0eXBlICdSZWNvcmQ8S25vd25Qcm92aWRlciwgc3RyaW5nPicuXG5cblxuQ29tbWFuZCBleGl0ZWQgd2l0aCBjb2RlIDIifV0sImRldGFpbHMiOnt9LCJpc0Vycm9yIjp0cnVlLCJ0aW1lc3RhbXAiOjE3Nzc1NjE3NjQxMzV9fSx7InR5cGUiOiJtZXNzYWdlIiwiaWQiOiJmZDcxOGQ2ZCIsInBhcmVudElkIjoiMGFlOTcwZGUiLCJ0aW1lc3RhbXAiOiIyMDI2LTA0LTMwVDE1OjA5OjI4LjEzMVoiLCJtZXNzYWdlIjp7InJvbGUiOiJhc3Npc3RhbnQiLCJjb250ZW50IjpbeyJ0eXBlIjoidGhpbmtpbmciLCJ0aGlua2luZyI6IiIsInRoaW5raW5nU2lnbmF0dXJlIjoie1wiaWRcIjpcInJzXzAyN2YxZWExNWRlZjM1MDUwMTY5ZjM3MGE2ZTkyODgxOTFhNDQ4NTZhNWNmMzEyM2FmXCIsXCJ0eXBlXCI6XCJyZWFzb25pbmdcIixcImVuY3J5cHRlZF9jb250ZW50XCI6XCJnQUFBQUFCcDgzQ25NZDJzd0hYRW1fdGN5TmFfR1pIZjg4TDhCbVBlRHpjZTF5VElPZ0ZHb0ctR1E0Wk56OHJ4R29FNy1ySDBfN0Rrb1YxVWFFdVowWUs3dGZKUndpY3VYUU1senRNS0hvY2ZxNXBBWWFBR2FKVzlfV3NPcHNZM1FTV3U0Ty1tZ2loYXF3ekFIbWhobHJTcUkxZ0p1OTJJbTVncGZjNGRPb3UtV21hT1lFX3BlYXdWaUYyNU0yQUNoWVhLOS1pUnExeTg3UlBnQ3ZrZzBXM2dMZzNDTnRCWG5sN195ckU3SW1LaG1zcnpNaHRSTFFaMlE5TE9CaUtrTmp3Vm84RzBObC1DbjBnMFd1V1cyekhhUW9Gb1hRTVNvQWFUU0Q3emlvZGs2LWptT0JwOTk5UTdKRXUtWEpDWTJKNG1TcmxBWFM4N0RFdkFhdTFGdGtqRTllWnRrRGJiZHh5VGFfVC01YnNNQnc1WFl5b1IweXZvREU0WmM4SDR5ZF9ITmU2OXpxcldPeWZqbVp1QlhwazRHTmJLS3ZkU3R5OGpJV1M1ME9lblo2VHA1UnV6enp6WXNNTk9Qb0ctakswZkx3NnFieXoxUVl0b251eDhyWVktUW5pXzFYa0lELVNYVzREcHFPUGpVRG1ka29lUVk1M3F0NHowRWo3S2pEWVBwUHVYR1g5OWV3THdXVG5HaDBnQXRnNnppLUpINndFTEc2Z0JJQ1dST19fUzNiM1FhdGF5MnoxM2pySlFwYkljS0psOVdnVVJ0WTBKTkZkaE5taGtLMmVZNFRONlpQQkN1aFJEbjQyZ0c3bTNFT3ltUTB0VHZtY1dHSGZkLTZkLWhJZmxrdXRNb1FYSW9HSXdRS01xZU5fOVB1SC1uNW1GdE1NSzRleW1URHBkZlF2ZDd3MnNzV1dDZGdKVF81eFVvRFIxT2wtMlpxVk4yOU9kakQ3Y01DNWJneFUzRDRXdWR1cXE0RlVxUUZaQkJTVUdyWTBIQWZuMVZYYjNXMnF5ZVRpb1BhQW1RblF0WDNIakxtcDVKcmhRaTRaSWpWQ21Dd3BONllNaUw3SXBQNU00TUl0VDZmNzVSQ1NiV0dYaVNJV1hHeXZTUUV2NUxTNm82MlNzbTlxSHNSSlJOdE5EODZfWTVJRWJ4U2ZqLTlWSXNIdVpaMW9fRUtNRTl0ZEUyODl3ejVGaS13RzhqREpDdmxzYWJ1VlctTm1MOHlfeEdXR1QxdlZxZjBaY1V3eGNDaXhQY1JDNW9MVkJYTnJDMEYxZ19UZzdcIixcInN1bW1hcnlcIjpbXX0ifSx7InR5cGUiOiJ0b29sQ2FsbCIsImlkIjoiY2FsbF95cWZrU1dWRXRtUlZaNUNyTG5VWUJGSmd8ZmNfMDI3ZjFlYTE1ZGVmMzUwNTAxNjlmMzcwYTc3Y2Y4ODE5MTk3YzI4ZTk4Yjk1NjA0ZmEiLCJuYW1lIjoiYmFzaCIsImFyZ3VtZW50cyI6eyJjb21tYW5kIjoiZ2l0IGRpZmYgLS1zdGF0ICYmIGdpdCBzdGF0dXMgLS1zaG9ydCIsImN3ZCI6Ii9Vc2Vycy9hbGlvdWRpYWxsby9jb2RlL3NyYy9naXRodWIuY29tL2FsaW91L3BpLW1vbm8ifX1dLCJhcGkiOiJvcGVuYWktY29kZXgtcmVzcG9uc2VzIiwicHJvdmlkZXIiOiJvcGVuYWktY29kZXgiLCJtb2RlbCI6ImdwdC01LjUiLCJ1c2FnZSI6eyJpbnB1dCI6Mjk3LCJvdXRwdXQiOjU2LCJjYWNoZVJlYWQiOjM2MzUyLCJjYWNoZVdyaXRlIjowLCJ0b3RhbFRva2VucyI6MzY3MDUsImNvc3QiOnsiaW5wdXQiOjAuMDAxNDg1MDAwMDAwMDAwMDAwMiwib3V0cHV0IjowLjAwMTY4LCJjYWNoZVJlYWQiOjAuMDE4MTc1OTk5OTk5OTk5OTk4LCJjYWNoZVdyaXRlIjowLCJ0b3RhbCI6MC4wMjEzNDF9fSwic3RvcFJlYXNvbiI6InRvb2xVc2UiLCJ0aW1lc3RhbXAiOjE3Nzc1NjE3NjQxMzYsInJlc3BvbnNlSWQiOiJyZXNwXzAyN2YxZWExNWRlZjM1MDUwMTY5ZjM3MGE1NTU5YzgxOTFiNjYyMDMzOGRmMDZlOTAwIn19LHsidHlwZSI6Im1lc3NhZ2UiLCJpZCI6IjcwZjNmZGU4IiwicGFyZW50SWQiOiJmZDcxOGQ2ZCIsInRpbWVzdGFtcCI6IjIwMjYtMDQtMzBUMTU6MDk6MjguMjA2WiIsIm1lc3NhZ2UiOnsicm9sZSI6InRvb2xSZXN1bHQiLCJ0b29sQ2FsbElkIjoiY2FsbF95cWZrU1dWRXRtUlZaNUNyTG5VWUJGSmd8ZmNfMDI3ZjFlYTE1ZGVmMzUwNTAxNjlmMzcwYTc3Y2Y4ODE5MTk3YzI4ZTk4Yjk1NjA0ZmEiLCJ0b29sTmFtZSI6ImJhc2giLCJjb250ZW50IjpbeyJ0eXBlIjoidGV4dCIsInRleHQiOiIgcGFja2FnZXMvY29kaW5nLWFnZW50L3NyYy9jb3JlL3BhY2thZ2UtbWFuYWdlci50cyAgfCAyNyArKysrKysrKysrKysrKysrKy0tLS0tXG4gLi4uL2ludGVyYWN0aXZlL2NvbXBvbmVudHMvY29uZmlnLXNlbGVjdG9yLnRzICAgICAgfCAxNSArKysrKysrKysrKy1cbiAyIGZpbGVzIGNoYW5nZWQsIDM1IGluc2VydGlvbnMoKyksIDcgZGVsZXRpb25zKC0pXG4gTSBwYWNrYWdlcy9jb2RpbmctYWdlbnQvc3JjL2NvcmUvcGFja2FnZS1tYW5hZ2VyLnRzXG4gTSBwYWNrYWdlcy9jb2RpbmctYWdlbnQvc3JjL21vZGVzL2ludGVyYWN0aXZlL2NvbXBvbmVudHMvY29uZmlnLXNlbGVjdG9yLnRzXG4ifV0sImRldGFpbHMiOnsiX2R1cmF0aW9uTXMiOjczfSwiaXNFcnJvciI6ZmFsc2UsInRpbWVzdGFtcCI6MTc3NzU2MTc2ODIwNn19LHsidHlwZSI6Im1lc3NhZ2UiLCJpZCI6IjAyMzAzNWE3IiwicGFyZW50SWQiOiI3MGYzZmRlOCIsInRpbWVzdGFtcCI6IjIwMjYtMDQtMzBUMTU6MDk6MzMuMjYzWiIsIm1lc3NhZ2UiOnsicm9sZSI6ImFzc2lzdGFudCIsImNvbnRlbnQiOlt7InR5cGUiOiJ0ZXh0IiwidGV4dCI6IkRvbmUuIENoYW5nZXMgb25seSBpbjpcblxuLSBgcGFja2FnZXMvY29kaW5nLWFnZW50L3NyYy9jb3JlL3BhY2thZ2UtbWFuYWdlci50c2Bcbi0gYHBhY2thZ2VzL2NvZGluZy1hZ2VudC9zcmMvbW9kZXMvaW50ZXJhY3RpdmUvY29tcG9uZW50cy9jb25maWctc2VsZWN0b3IudHNgXG5cbldoYXQgY2hhbmdlZDpcbi0gc3BsaXQgYC5waS9hZ2VudC9za2lsbHNgIGFuZCBgLmFnZW50cy9za2lsbHNgIGRpc2NvdmVyeSBpbnRvIHNlcGFyYXRlIGBhZGRSZXNvdXJjZXNgIGNhbGxzXG4tIHNldCBgYmFzZURpcmAgdG8gYH4vLmFnZW50c2AgZm9yIHVzZXIgYC5hZ2VudHNgIHNraWxsc1xuLSBzZXQgcHJvamVjdCBgLmFnZW50c2Agc2tpbGwgYGJhc2VEaXJgIHRvIHRoYXQgYC5hZ2VudHNgIGRpclxuLSBncm91cCBrZXkgbm93IGluY2x1ZGVzIGBtZXRhZGF0YS5iYXNlRGlyYFxuLSBhdXRvIGdyb3VwIGxhYmVsIG5vdyByZW5kZXJzIGZyb20gYGJhc2VEaXJgLCBlLmcuOlxuICAtIGBVc2VyICh+Ly5waS9hZ2VudC8pYFxuICAtIGBVc2VyICh+Ly5hZ2VudHMvKWBcblxuVmVyaWZpY2F0aW9uOlxuLSBgbnBtIHJ1biBjaGVja2AgZmFpbHMgb24gZXhpc3RpbmcgdW5yZWxhdGVkIGBwYWNrYWdlcy90dWkvc3JjL3V0aWxzLnRzYCBFUyB0YXJnZXQgcmVnZXggaXNzdWUuXG4tIGNvZGluZy1hZ2VudCB0eXBlY2hlY2sgYWxzbyBmYWlscyBvbiBleGlzdGluZyB1bnJlbGF0ZWQgYG1vZGVsLXJlc29sdmVyLnRzYCBwcm92aWRlciBrZXkgaXNzdWUuXG5cbk5vIHRlc3RzL2NvbW1pdHMuIiwidGV4dFNpZ25hdHVyZSI6IntcInZcIjoxLFwiaWRcIjpcIm1zZ18wMjdmMWVhMTVkZWYzNTA1MDE2OWYzNzBhYWFkMDA4MTkxYmY0MjJiOThmZDU4YTA1N1wiLFwicGhhc2VcIjpcImZpbmFsX2Fuc3dlclwifSJ9XSwiYXBpIjoib3BlbmFpLWNvZGV4LXJlc3BvbnNlcyIsInByb3ZpZGVyIjoib3BlbmFpLWNvZGV4IiwibW9kZWwiOiJncHQtNS41IiwidXNhZ2UiOnsiaW5wdXQiOjQzOCwib3V0cHV0IjoxOTgsImNhY2hlUmVhZCI6MzYzNTIsImNhY2hlV3JpdGUiOjAsInRvdGFsVG9rZW5zIjozNjk4OCwiY29zdCI6eyJpbnB1dCI6MC4wMDIxOSwib3V0cHV0IjowLjAwNTk0LCJjYWNoZVJlYWQiOjAuMDE4MTc1OTk5OTk5OTk5OTk4LCJjYWNoZVdyaXRlIjowLCJ0b3RhbCI6MC4wMjYzMDU5OTk5OTk5OTk5OTZ9fSwic3RvcFJlYXNvbiI6InN0b3AiLCJ0aW1lc3RhbXAiOjE3Nzc1NjE3NjgyMDcsInJlc3BvbnNlSWQiOiJyZXNwXzAyN2YxZWExNWRlZjM1MDUwMTY5ZjM3MGE5Yzg0MDgxOTE5N2JlODZlMzEyZTdkYmRiIn19LHsidHlwZSI6Im1lc3NhZ2UiLCJpZCI6IjQxZjE5NzFlIiwicGFyZW50SWQiOiIwMjMwMzVhNyIsInRpbWVzdGFtcCI6IjIwMjYtMDQtMzBUMTU6Mjc6MDkuMTc1WiIsIm1lc3NhZ2UiOnsicm9sZSI6InVzZXIiLCJjb250ZW50IjpbeyJ0eXBlIjoidGV4dCIsInRleHQiOiJub3Qgc3VyZSBpIHVuZGVyc3RhbmQgd2h5IHdlIG5lZWQgdG8gbG9vcCBvbiBgcHJvamVjdEFnZW50c1NraWxsc0RpcmAsIHdoeSBub3Qga2VlcCB0aGUgc3ByZWFkaW5nIHRoYXQgd2UgaGFkPyJ9XSwidGltZXN0YW1wIjoxNzc3NTYyODI5MTc0fX0seyJ0eXBlIjoibWVzc2FnZSIsImlkIjoiNGM3YTRkOTEiLCJwYXJlbnRJZCI6IjQxZjE5NzFlIiwidGltZXN0YW1wIjoiMjAyNi0wNC0zMFQxNToyNzoxNS4yNzNaIiwibWVzc2FnZSI6eyJyb2xlIjoiYXNzaXN0YW50IiwiY29udGVudCI6W3sidHlwZSI6InRleHQiLCJ0ZXh0IjoiQmVjYXVzZSBzcHJlYWRpbmcgbG9zZXMgd2hpY2ggYC5hZ2VudHMvc2tpbGxzYCBkaXJlY3RvcnkgZWFjaCBmaWxlIGNhbWUgZnJvbS5cblxuQ3VycmVudCBvbGQgY29kZTpcblxuYGBgdHNcbltcbiAgLi4uY29sbGVjdEF1dG9Ta2lsbEVudHJpZXMocHJvamVjdERpcnMuc2tpbGxzLCBcInBpXCIpLFxuICAuLi5wcm9qZWN0QWdlbnRzU2tpbGxEaXJzLmZsYXRNYXAoKGRpcikgPT4gY29sbGVjdEF1dG9Ta2lsbEVudHJpZXMoZGlyLCBcImFnZW50c1wiKSksXG5dXG5gYGBcblxuVGhlbiBvbmUgbWV0YWRhdGEgb2JqZWN0IGlzIGFwcGxpZWQgdG8gZXZlcnkgcGF0aDpcblxuYGBgdHNcbnByb2plY3RNZXRhZGF0YSAvLyBiYXNlRGlyOiBwcm9qZWN0QmFzZURpclxuYGBgXG5cbklmIHdlIHdhbnQgYGJhc2VEaXJgIHRvIGRpc3Rpbmd1aXNoIGdyb3VwcywgZWFjaCBgLmFnZW50c2Agcm9vdCBuZWVkcyBpdHMgb3duIG1ldGFkYXRhOlxuXG5gYGB0c1xueyAuLi5wcm9qZWN0TWV0YWRhdGEsIGJhc2VEaXI6IGRpcm5hbWUocHJvamVjdEFnZW50c1NraWxsc0RpcikgfVxuYGBgXG5cblRoYXQgcmVxdWlyZXMga2VlcGluZyBgZGlyYCBwYWlyZWQgd2l0aCBpdHMgY29sbGVjdGVkIGVudHJpZXMsIGhlbmNlIGxvb3AuXG5cbkZvciB1c2VyIGNhc2UgdGhlcmUgaXMgb25seSBvbmUgYH4vLmFnZW50cy9za2lsbHNgLCBzbyBubyBsb29wIG5lZWRlZC5cblxuQWx0ZXJuYXRpdmUgd291bGQgYmUgaGVscGVyIGRhdGEgc3RydWN0dXJlOlxuXG5gYGB0c1xuY29uc3QgcHJvamVjdFNraWxsR3JvdXBzID0gW1xuICB7IGRpcjogcHJvamVjdERpcnMuc2tpbGxzLCBiYXNlRGlyOiBwcm9qZWN0QmFzZURpciwgbW9kZTogXCJwaVwiIH0sXG4gIC4uLnByb2plY3RBZ2VudHNTa2lsbERpcnMubWFwKChkaXIpID0+ICh7XG4gICAgZGlyLFxuICAgIGJhc2VEaXI6IGRpcm5hbWUoZGlyKSxcbiAgICBtb2RlOiBcImFnZW50c1wiLFxuICB9KSksXG5dO1xuYGBgXG5cblRoZW4gbG9vcCBvbmNlLiBCdXQgc29tZSBsb29wIGlzIG5lZWRlZCBpZiBgYmFzZURpcmAgdmFyaWVzIHBlciBzb3VyY2UgZGlyLiIsInRleHRTaWduYXR1cmUiOiJ7XCJ2XCI6MSxcImlkXCI6XCJtc2dfMDI3ZjFlYTE1ZGVmMzUwNTAxNjlmMzc0Y2ZmNmQ4ODE5MThkMTAwZmIzYTcwODgzODVcIixcInBoYXNlXCI6XCJmaW5hbF9hbnN3ZXJcIn0ifV0sImFwaSI6Im9wZW5haS1jb2RleC1yZXNwb25zZXMiLCJwcm92aWRlciI6Im9wZW5haS1jb2RleCIsIm1vZGVsIjoiZ3B0LTUuNSIsInVzYWdlIjp7ImlucHV0IjozNjA0LCJvdXRwdXQiOjI1MywiY2FjaGVSZWFkIjozMzI4MCwiY2FjaGVXcml0ZSI6MCwidG90YWxUb2tlbnMiOjM3MTM3LCJjb3N0Ijp7ImlucHV0IjowLjAxODAyLCJvdXRwdXQiOjAuMDA3NTksImNhY2hlUmVhZCI6MC4wMTY2NCwiY2FjaGVXcml0ZSI6MCwidG90YWwiOjAuMDQyMjQ5OTk5OTk5OTk5OTk2fX0sInN0b3BSZWFzb24iOiJzdG9wIiwidGltZXN0YW1wIjoxNzc3NTYyODI5MTc1LCJyZXNwb25zZUlkIjoicmVzcF8wMjdmMWVhMTVkZWYzNTA1MDE2OWYzNzRjZWJmYzg4MTkxODk3NTA1ZTZlYTRjMGQ2MyJ9fSx7InR5cGUiOiJtZXNzYWdlIiwiaWQiOiJmZGIwZDQ5NCIsInBhcmVudElkIjoiMDIzMDM1YTciLCJ0aW1lc3RhbXAiOiIyMDI2LTA0LTMwVDE1OjI4OjA1LjMyN1oiLCJtZXNzYWdlIjp7InJvbGUiOiJ1c2VyIiwiY29udGVudCI6W3sidHlwZSI6InRleHQiLCJ0ZXh0Ijoid2h5IGlzIGBjb2xsZWN0QXV0b1NraWxsRW50cmllc2Agbm8gbG9uZ2VyIHNwZWFyZD8ifV0sInRpbWVzdGFtcCI6MTc3NzU2Mjg4NTMyNn19LHsidHlwZSI6Im1lc3NhZ2UiLCJpZCI6IjU4MTIyOTEyIiwicGFyZW50SWQiOiJmZGIwZDQ5NCIsInRpbWVzdGFtcCI6IjIwMjYtMDQtMzBUMTU6Mjg6MDkuMzk4WiIsIm1lc3NhZ2UiOnsicm9sZSI6ImFzc2lzdGFudCIsImNvbnRlbnQiOlt7InR5cGUiOiJ0aGlua2luZyIsInRoaW5raW5nIjoiIiwidGhpbmtpbmdTaWduYXR1cmUiOiJ7XCJpZFwiOlwicnNfMDI3ZjFlYTE1ZGVmMzUwNTAxNjlmMzc1MDcyMjc4ODE5MTkwNzU3NzQ2MmU0NjVmYTdcIixcInR5cGVcIjpcInJlYXNvbmluZ1wiLFwiZW5jcnlwdGVkX2NvbnRlbnRcIjpcImdBQUFBQUJwODNVSG9ndmpmUGNSYW5PSkVGSGp5dlRDNlRRdnJqdlIwYnBkMGtUOUpxZmROcm1Ud0JNdkZuVGVzZ0JONU84N2VBSVEzY1RUMEUxOVZYdHRSX2x2VHMtd0wwLWxCWHMxaWdJSXBXNi0tVkVTX3BOa0szNXhZbkpkaEV3U1E4Q0lxNEtseWNCYVUyZ0ZCd2lLM2RONmNIMF9UQVZ5enBoNHl3eGwtZ2ZydjdlbmFyaVdtZFFVcDBrQnl3RERmamcyem1sb1ptdW9sbmctSU01N2lqX0ZmZGZ1dUZKTC1TNjkzTjN6Z1FiSmI1dlVmN2g5RVo3ZHN3TVBSb0xUOEhVWnhYcDhtRnNfWEtYQjNiLXBZVkp1WGNjdjc4ZGVhR01hY3ZRTjN2N1BLcnNYbnU3V19nNjVJSndLaGc0YUlPYlJMand1Y19NejZPdlBvQjdHSGdlZTBJYnJGTnpodUlVNFRyZUtTVklxWEhFel9IRjBMYUNCeHAyVS1zTExxbG5RVjY3Q1Rzb2RLYkR6N1B0bVlGVFZZYzZVSmhjN0JRRDZtNTNzQ1p5Xy1PSEYzUjBhbjI3MXZ3VkZmSTNxc0tVUXdOWXhfUnRwRmFUS3UzRk5OR19JLU9CQlh6cnJhU213U3JiSXhkek5Ib3FwWTBuNWxuR2ppVkVlcFlpVHZacWxqQ3RjYS1TZjlFb0ZFT1FMZk1mM2doSEV6VGM4MzVFTHJvdnp6M1RLYkVWXzJJcTdRNlY3YnphanJXVmROYUJjMVRBWWxhdVNlMV94MmFET3M4SDZEQjQtT283c0FDanlHTldCWlFYT0ZBNklxTjYwcExraHlXODFlRUpTMF9WSWRBc09kUHEweklDYl9nT1Z5eGZJM1JGUXMxdTV6Tk81MUEydHpjSWJyRFFTc2RPWU04MjVIT25KaGJCZ2p5Rm5yN0ZqMXBKRlJMSDFYb1c4cTFUTm9rdXR1TDktQzVpUWdwUHVkSGxYQTBNelQybjZmUHVWOEF1VkpfdFJlLVpnMkw3clZPekROY09FdVhqMDFGbk5pTVRMSlhaQzUtTWJUSE5qQ3E5TnhteTd4UWJ2amJ4V2J3YVpsRy16S2MtTWRxbEEtaU9uVnJXWFVUZzkwVFFBT2NYdlRKalJDT1lmOGZ5aXBkOWprZXRwcDJVODlka3hYdEhTRnEyVUJMVG93ZGtEYTFsN3c3UHhlMkF5a0t0U1BuTDc1WVhvQ3A2MzdTM3dvRFlIcDVNSjJKWT1cIixcInN1bW1hcnlcIjpbXX0ifSx7InR5cGUiOiJ0ZXh0IiwidGV4dCI6IkJlY2F1c2UgZWFjaCBkaXJlY3Rvcnkgbm93IG5lZWRzIGRpZmZlcmVudCBtZXRhZGF0YS9iYXNlRGlyLlxuXG5CZWZvcmU6XG5cbmBgYHRzXG5bXG4gIC4uLmNvbGxlY3RBdXRvU2tpbGxFbnRyaWVzKHVzZXJEaXJzLnNraWxscywgXCJwaVwiKSxcbiAgLi4uY29sbGVjdEF1dG9Ta2lsbEVudHJpZXModXNlckFnZW50c1NraWxsc0RpciwgXCJhZ2VudHNcIiksXG5dXG5gYGBcblxuQm90aCBhcnJheXMgd2VyZSBtZXJnZWQsIHRoZW4gcGFzc2VkIG9uY2Ugd2l0aCB0aGUgc2FtZSBgdXNlck1ldGFkYXRhYC5cblxuTm93OlxuXG5gYGB0c1xuYWRkUmVzb3VyY2VzKFwic2tpbGxzXCIsIGNvbGxlY3RBdXRvU2tpbGxFbnRyaWVzKHVzZXJEaXJzLnNraWxscywgXCJwaVwiKSwgdXNlck1ldGFkYXRhLCAuLi4pO1xuXG5hZGRSZXNvdXJjZXMoXCJza2lsbHNcIiwgY29sbGVjdEF1dG9Ta2lsbEVudHJpZXModXNlckFnZW50c1NraWxsc0RpciwgXCJhZ2VudHNcIiksIHtcbiAgLi4udXNlck1ldGFkYXRhLFxuICBiYXNlRGlyOiB1c2VyQWdlbnRzQmFzZURpcixcbn0sIC4uLik7XG5gYGBcblxuTm8gc3ByZWFkIG5lZWRlZCBiZWNhdXNlIGBhZGRSZXNvdXJjZXNgIGFscmVhZHkgYWNjZXB0cyBgcGF0aHM6IHN0cmluZ1tdYC5cblxuTWFpbiBwb2ludDoga2VlcGluZyB0aGVtIHNlcGFyYXRlIGxldHMgYC5waS9hZ2VudGAgYW5kIGAuYWdlbnRzYCBjYXJyeSBkaXN0aW5jdCBgYmFzZURpcmAsIHNvIGdyb3VwaW5nL2xhYmVscyBhbmQgdG9nZ2xlIHBhdHRlcm5zIGFyZSBjb3JyZWN0LiIsInRleHRTaWduYXR1cmUiOiJ7XCJ2XCI6MSxcImlkXCI6XCJtc2dfMDI3ZjFlYTE1ZGVmMzUwNTAxNjlmMzc1MDc3NWZjODE5MWFhNzg0MTdmOGVhMTk4YTBcIixcInBoYXNlXCI6XCJmaW5hbF9hbnN3ZXJcIn0ifV0sImFwaSI6Im9wZW5haS1jb2RleC1yZXNwb25zZXMiLCJwcm92aWRlciI6Im9wZW5haS1jb2RleCIsIm1vZGVsIjoiZ3B0LTUuNSIsInVzYWdlIjp7ImlucHV0Ijo1MjAsIm91dHB1dCI6MTg2LCJjYWNoZVJlYWQiOjM2MzUyLCJjYWNoZVdyaXRlIjowLCJ0b3RhbFRva2VucyI6MzcwNTgsImNvc3QiOnsiaW5wdXQiOjAuMDAyNjAwMDAwMDAwMDAwMDAwMywib3V0cHV0IjowLjAwNTU4LCJjYWNoZVJlYWQiOjAuMDE4MTc1OTk5OTk5OTk5OTk4LCJjYWNoZVdyaXRlIjowLCJ0b3RhbCI6MC4wMjYzNTU5OTk5OTk5OTk5OTd9fSwic3RvcFJlYXNvbiI6InN0b3AiLCJ0aW1lc3RhbXAiOjE3Nzc1NjI4ODUzMjcsInJlc3BvbnNlSWQiOiJyZXNwXzAyN2YxZWExNWRlZjM1MDUwMTY5ZjM3NTA2Mjg2MDgxOTFiZGU2NmMxODJiZmEyMmRjIn19LHsidHlwZSI6Im1lc3NhZ2UiLCJpZCI6IjI5NjIzNDgzIiwicGFyZW50SWQiOiIwMjMwMzVhNyIsInRpbWVzdGFtcCI6IjIwMjYtMDQtMzBUMTU6MzA6MjcuOTA4WiIsIm1lc3NhZ2UiOnsicm9sZSI6InVzZXIiLCJjb250ZW50IjpbeyJ0eXBlIjoidGV4dCIsInRleHQiOiJ3aHkgZG8gd2UgbmVlZCB0byBsb29wIG9uIGBwcm9qZWN0QWdlbnRzU2tpbGxzRGlyYCwgd2h5IG5vdCBzcGVhcmQgdGhlbSBsaWtlIHdlIGRpZCBiZWZvcmUsIGJ1dCBvbmx5IHNwZWFyZGluZyB0aGUgY29ycmVjdCBvbmVzPyJ9XSwidGltZXN0YW1wIjoxNzc3NTYzMDI3OTA3fX0seyJ0eXBlIjoibWVzc2FnZSIsImlkIjoiN2ViODczMWIiLCJwYXJlbnRJZCI6IjI5NjIzNDgzIiwidGltZXN0YW1wIjoiMjAyNi0wNC0zMFQxNTozMDozNi43NDJaIiwibWVzc2FnZSI6eyJyb2xlIjoiYXNzaXN0YW50IiwiY29udGVudCI6W3sidHlwZSI6InRleHQiLCJ0ZXh0IjoiQmVjYXVzZSBlYWNoIHByb2plY3QgYC5hZ2VudHMvc2tpbGxzYCBkaXIgY2FuIGhhdmUgYSBkaWZmZXJlbnQgYGJhc2VEaXJgLlxuXG5CZWZvcmU6XG5cbmBgYHRzXG4uLi5wcm9qZWN0QWdlbnRzU2tpbGxEaXJzLmZsYXRNYXAoKGRpcikgPT4gY29sbGVjdEF1dG9Ta2lsbEVudHJpZXMoZGlyLCBcImFnZW50c1wiKSlcbmBgYFxuXG5UaGlzIGZsYXR0ZW5zIGFsbCBwYXRocyBpbnRvIG9uZSBhcnJheSwgdGhlbiBvbmUgYGFkZFJlc291cmNlcyguLi4pYCBjYWxsIGFzc2lnbnMgb25lIG1ldGFkYXRhIG9iamVjdCB0byBhbGwgb2YgdGhlbS5cblxuV2l0aCBgYmFzZURpcmAtYmFzZWQgZ3JvdXBpbmcsIGVhY2ggY29sbGVjdGVkIHBhdGggbmVlZHMgbWV0YWRhdGEgdGllZCB0byBpdHMgb3duIHJvb3Q6XG5cbmBgYHRzXG5jd2QvLmFnZW50c1xucmVwby8uYWdlbnRzXG5wYXJlbnQvLmFnZW50c1xuYGBgXG5cblNvIGlmIHdlIGZsYXR0ZW4gZmlyc3QsIHdlIGxvc2Ugd2hpY2ggcGF0aCBjYW1lIGZyb20gd2hpY2ggYC5hZ2VudHMvc2tpbGxzYCBkaXIgdW5sZXNzIHdlIHJlY29uc3RydWN0IGl0IGxhdGVyLlxuXG5XZSBjb3VsZCBzdGlsbCB1c2UgYGZsYXRNYXBgLCBidXQgaXTigJlkIG5lZWQgdG8gcmV0dXJuIGB7IHBhdGgsIGJhc2VEaXIgfWAgcGFpcnMgaW5zdGVhZCBvZiBzdHJpbmdzLiBUaGF0IGlzIGEgYmlnZ2VyIHNoYXBlIGNoYW5nZS4gVGhlIGxvb3AgaXMgdGhlIHNtYWxsZXN0IGxvY2FsIGNoYW5nZSBiZWNhdXNlIGBhZGRSZXNvdXJjZXMoKWAgYWxyZWFkeSBhY2NlcHRzIG9uZSBtZXRhZGF0YSBvYmplY3QgcGVyIGJhdGNoLiIsInRleHRTaWduYXR1cmUiOiJ7XCJ2XCI6MSxcImlkXCI6XCJtc2dfMDI3ZjFlYTE1ZGVmMzUwNTAxNjlmMzc1OTVjNjA4ODE5MTg5ZmQwNjlmMTU2YTFkYTZcIixcInBoYXNlXCI6XCJmaW5hbF9hbnN3ZXJcIn0ifV0sImFwaSI6Im9wZW5haS1jb2RleC1yZXNwb25zZXMiLCJwcm92aWRlciI6Im9wZW5haS1jb2RleCIsIm1vZGVsIjoiZ3B0LTUuNSIsInVzYWdlIjp7ImlucHV0Ijo1MzgsIm91dHB1dCI6MTkwLCJjYWNoZVJlYWQiOjM2MzUyLCJjYWNoZVdyaXRlIjowLCJ0b3RhbFRva2VucyI6MzcwODAsImNvc3QiOnsiaW5wdXQiOjAuMDAyNjksIm91dHB1dCI6MC4wMDU3LCJjYWNoZVJlYWQiOjAuMDE4MTc1OTk5OTk5OTk5OTk4LCJjYWNoZVdyaXRlIjowLCJ0b3RhbCI6MC4wMjY1NjZ9fSwic3RvcFJlYXNvbiI6InN0b3AiLCJ0aW1lc3RhbXAiOjE3Nzc1NjMwMjc5MDgsInJlc3BvbnNlSWQiOiJyZXNwXzAyN2YxZWExNWRlZjM1MDUwMTY5ZjM3NTk0YmRkMDgxOTFhODExMTdkOGNjM2U2NmY5In19LHsidHlwZSI6Im1lc3NhZ2UiLCJpZCI6IjE4ODgzNTk0IiwicGFyZW50SWQiOiI3ZWI4NzMxYiIsInRpbWVzdGFtcCI6IjIwMjYtMDQtMzBUMTU6MzM6MTAuMTU3WiIsIm1lc3NhZ2UiOnsicm9sZSI6InVzZXIiLCJjb250ZW50IjpbeyJ0eXBlIjoidGV4dCIsInRleHQiOiJ3YWl0LCB3aHkgY2FuIHdlIGhhdmluZyBtdWx0aXBsZSAuYWdlbnRzL3NraWxscyBkaXI/IGkgZG9uJ3QgdW5kZXJzdGFuZCB3aHkgd2UgaGF2ZSBhIGRpZmZlcmVudCBsb2dpYyB3aGVuIHdlJ3JlIGp1c3Qgc3BsaXR0aW5nIGAucGkvc2tpbGxzYCBhbmQgYC5hZ2VudHMvc2tpbGxgLCBpdCBzaG91bGQgYmUgdGhlIHNhbWUgbG9naWMgYXMgYmVmb3JlLCBidXQgc3BsaXQgc28gdGhhdCB3ZSBzZXQgdGhlIGNvcnJlY3QgYmFzZSBkaXIsIG5vID8gYW5kIGFsc28gdGhlIn1dLCJ0aW1lc3RhbXAiOjE3Nzc1NjMxOTAxNTV9fSx7InR5cGUiOiJtZXNzYWdlIiwiaWQiOiI2ZWIxNzgzNyIsInBhcmVudElkIjoiMTg4ODM1OTQiLCJ0aW1lc3RhbXAiOiIyMDI2LTA0LTMwVDE1OjMzOjE3LjMwOFoiLCJtZXNzYWdlIjp7InJvbGUiOiJhc3Npc3RhbnQiLCJjb250ZW50IjpbeyJ0eXBlIjoidGhpbmtpbmciLCJ0aGlua2luZyI6IioqQ2xhcmlmeWluZyBwcm9qZWN0IGxvZ2ljKipcblxuSSBuZWVkIHRvIGZvY3VzIG9uIGFuc3dlcmluZyB0aGUgdXNlciB3aGlsZSBtZW50aW9uaW5nIHRoZSBwcm9qZWN0IGFuY2VzdG9yIGxvZ2ljLiBIb3dldmVyLCB0aGV5IGdvdCBjdXQgb2ZmIGJ5IHNheWluZyBcImFuZCBhbHNvIHRoZSxcIiB3aGljaCBtYWtlcyBtZSB0aGluayBJIG1pZ2h0IG5lZWQgdG8gYXNrIGZvciBjbGFyaWZpY2F0aW9uLiBCdXQgdGhlbiBhZ2FpbiwgSSB3YW50IHRvIHByb3ZpZGUgdGhlIGFuc3dlciB3aXRob3V0IG1ha2luZyB0b28gbWFueSBjaGFuZ2VzLiBTbywgSSdsbCBrZWVwIG15IHJlc3BvbnNlIGRpcmVjdCBhbmQgY29uY2lzZSwgbWF5YmUgYWRkaW5nIGEgc2ltcGxlIHByb21wdCBmb3IgbW9yZSBpbmZvcm1hdGlvbiBpZiBuZWNlc3NhcnkuIEtlZXBpbmcgaXQgYmFsYW5jZWQgaXMgaW1wb3J0YW50ISIsInRoaW5raW5nU2lnbmF0dXJlIjoie1wiaWRcIjpcInJzXzAyN2YxZWExNWRlZjM1MDUwMTY5ZjM3NjM4ZjRlNDgxOTFiM2UzZTA0ZDNlYWVhZTE4XCIsXCJ0eXBlXCI6XCJyZWFzb25pbmdcIixcImVuY3J5cHRlZF9jb250ZW50XCI6XCJnQUFBQUFCcDgzWTdDVTlwak9GSmE4TUVKZ0VWVlZDN2hoR1Z4emkzWW5DcGlRRml5SDZEUVZWM0pRMVRtQU12YmJScXFZcGotX2VXZjJaZVh1OEx4blpSTG13dFUxU3RJSVBtWmJKTjg0bnd1OGlWbjBmQWY2VVVWMWxIbDJtNkdWRS1RbHh5NVhvRnc3azBBTDFscWhTUFJ5NjFvUGRjVHRSRllpX2pyNmZURWJlaFRUQkxpdUtnTC1QVElfUDlLbmtHbHk1ODllMFVNQ1JTTG1IME1sS3hPTl9md09KYnFjWV9rOHltbWZFbHlKNEQzMGt2QjEwZi1xdGJOT3RXY2RXa3drRnB3RHcySDVESFBBaFNjUVRrSFNEVW94cWwzZURPTkZiQTZCNmFDeEFHRF8xbmdJd3Ztdmk3MWMta29yQU5oRjROOFlHeGx1WV8zWlhnWDNSY3kzV25RbjVVbXlGYVM0UVNrbERxanNpMzFxcGhoS2h5aVlPUzQwVjZZTFJxZHpvdnZZMmtPOXFkckJCUFB0aW5EZ3hpLTUtUFl0OWV1NjFlZ0xqZXN2MHFBVGpDRm5wMzBfdk0xUE1NY21ObGd1T1BBX2p3VjhnV2VaUnlOalBCM3R4TEdFVmM4bW5ZWlA0NmZrVjFtYXY1SFJTNjVSZFhTTUw0VUlxMFVLZlpDVnQ0c1pBN1pnWkFNTzZlaFJPTEVSXzRsYVhodzhwaVplaXd5allsWDRfNzdpVVdkeFlVR3EwU1M1R1U2SDR1NjhDc2JGNGxaMmt0M0h2QUlpdFBMQVlpeUhmd3JrR3VWSGdraDF0clJXdjV6N2lyRjFYU2NNMWdpQXQ5Q0haR3YxUzhnZzFRWHpCbmxfUnBoVTBPaHpCZ0ptaF9ZQkczNjlJa01vOTJ4OVNuY3A5RnBJY0dZaGstN2N4YTVJWFYxbG9DYmxOREszLVBNQ1RRQ2FlLTRMZFdzZDUwZmVuTHdBanhaOFhzU2RBU0xILUdISVRIcXM4cDBrbDRLYUU1RzkwMnZmY2R0SlBpMlRDbHRlZWRJS3VhRGgxNnVOaEIzZklvWHVNSk9GNzZEUGVQRzhNbTA1RDNvSUw2cGh5YlhQd05sSU1heWRhc1NVdVY1dWowdHZpQ3FqVkpsVWJmbXAydklUbEJOVGQ4M2JFQWJrVmt0WlZjRi1WcDJoX0NfZVdwa1FWMmJiT2ZlRzJVNDBXQWY2R19TZF9OMkxtcWd0Ung0OTZSbkxKVDl1TENMMndvSGRfUGhRTHNia3ZpaHZabmc5aHBlU1hPTHlDTHRtSGpmMnVURDFUbWwxU2xzbVBqUmdEQnNqWUZIS1F6UFYyM01vb1dXeW1INTlid1R0cm1GT3N6dmpocFd5aS0tVDZQdkd1bE1oa05QLTBlaHlGdzE3QzR1SW5QTmZzbDNOZGVQWnBVOFpnbnk4bHdxaElVMnVLdVwiLFwic3VtbWFyeVwiOlt7XCJ0eXBlXCI6XCJzdW1tYXJ5X3RleHRcIixcInRleHRcIjpcIioqQ2xhcmlmeWluZyBwcm9qZWN0IGxvZ2ljKipcXG5cXG5JIG5lZWQgdG8gZm9jdXMgb24gYW5zd2VyaW5nIHRoZSB1c2VyIHdoaWxlIG1lbnRpb25pbmcgdGhlIHByb2plY3QgYW5jZXN0b3IgbG9naWMuIEhvd2V2ZXIsIHRoZXkgZ290IGN1dCBvZmYgYnkgc2F5aW5nIFxcXCJhbmQgYWxzbyB0aGUsXFxcIiB3aGljaCBtYWtlcyBtZSB0aGluayBJIG1pZ2h0IG5lZWQgdG8gYXNrIGZvciBjbGFyaWZpY2F0aW9uLiBCdXQgdGhlbiBhZ2FpbiwgSSB3YW50IHRvIHByb3ZpZGUgdGhlIGFuc3dlciB3aXRob3V0IG1ha2luZyB0b28gbWFueSBjaGFuZ2VzLiBTbywgSSdsbCBrZWVwIG15IHJlc3BvbnNlIGRpcmVjdCBhbmQgY29uY2lzZSwgbWF5YmUgYWRkaW5nIGEgc2ltcGxlIHByb21wdCBmb3IgbW9yZSBpbmZvcm1hdGlvbiBpZiBuZWNlc3NhcnkuIEtlZXBpbmcgaXQgYmFsYW5jZWQgaXMgaW1wb3J0YW50IVwifV19In0seyJ0eXBlIjoidGV4dCIsInRleHQiOiJCZWNhdXNlIGV4aXN0aW5nIGNvZGUgYWxyZWFkeSBzdXBwb3J0cyBtdWx0aXBsZSBwcm9qZWN0IGAuYWdlbnRzL3NraWxsc2AgZGlycy5cblxuVGhpcyBsaW5lOlxuXG5gYGB0c1xuY29uc3QgcHJvamVjdEFnZW50c1NraWxsRGlycyA9IGNvbGxlY3RBbmNlc3RvckFnZW50c1NraWxsRGlycyh0aGlzLmN3ZClcbmBgYFxuXG5gY29sbGVjdEFuY2VzdG9yQWdlbnRzU2tpbGxEaXJzKClgIHdhbGtzIGZyb20gYGN3ZGAgdXAgdG8gdGhlIGdpdCByb290IGFuZCByZXR1cm5zIGVhY2g6XG5cbmBgYHR4dFxuY3dkLy5hZ2VudHMvc2tpbGxzXG5wYXJlbnQvLmFnZW50cy9za2lsbHNcbnJlcG8tcm9vdC8uYWdlbnRzL3NraWxsc1xuYGBgXG5cblNvIGl0IGlzIG5vdCBqdXN0IG9uZSBgLmFnZW50cy9za2lsbHNgOyBwcm9qZWN0LXNjb3BlZCBBZ2VudCBza2lsbHMgYXJlIGluaGVyaXRlZCBmcm9tIGFuY2VzdG9yIGRpcnMuXG5cbkZvciB1c2VyIHNjb3BlLCB5ZXMsIGl0IGlzIHNpbXBsZSBzcGxpdDpcblxuYGBgdHNcbn4vLnBpL2FnZW50L3NraWxsc1xufi8uYWdlbnRzL3NraWxsc1xuYGBgXG5cbkZvciBwcm9qZWN0IHNjb3BlLCBjdXJyZW50IGJlaGF2aW9yIHdhczpcblxuYGBgdHNcbi5waS9za2lsbHNcbi4uLmFsbCBhbmNlc3RvciAuYWdlbnRzL3NraWxsc1xuYGBgXG5cblRvIHByZXNlcnZlIHRoYXQgYmVoYXZpb3Igd2hpbGUgZ2l2aW5nIGNvcnJlY3QgYGJhc2VEaXJgLCB3ZSBuZWVkIHBlci1kaXJlY3RvcnkgbWV0YWRhdGEgZm9yIHRoZSBhbmNlc3RvciBgLmFnZW50c2AgZGlycy4gVGhhdOKAmXMgd2h5IHRoZSBsb29wLlxuXG5JZiB3ZSBvbmx5IHNwbGl0IGludG8gdHdvIGNhbGxzIGxpa2U6XG5cbmBgYHRzXG5hZGRSZXNvdXJjZXMoXCJza2lsbHNcIiwgY29sbGVjdEF1dG9Ta2lsbEVudHJpZXMocHJvamVjdERpcnMuc2tpbGxzLCBcInBpXCIpLCBwcm9qZWN0TWV0YWRhdGEsIC4uLilcbmFkZFJlc291cmNlcyhcInNraWxsc1wiLCBwcm9qZWN0QWdlbnRzU2tpbGxEaXJzLmZsYXRNYXAoLi4uKSwgeyAuLi5wcm9qZWN0TWV0YWRhdGEsIGJhc2VEaXI6ID8/PyB9LCAuLi4pXG5gYGBcblxudGhlcmUgaXMgbm8gc2luZ2xlIGNvcnJlY3QgYGJhc2VEaXJgIGZvciBhbGwgZmxhdHRlbmVkIHBhdGhzLiIsInRleHRTaWduYXR1cmUiOiJ7XCJ2XCI6MSxcImlkXCI6XCJtc2dfMDI3ZjFlYTE1ZGVmMzUwNTAxNjlmMzc2M2JkM2Q4ODE5MTljMGUyNDY3YTc2NWIwNzdcIixcInBoYXNlXCI6XCJmaW5hbF9hbnN3ZXJcIn0ifV0sImFwaSI6Im9wZW5haS1jb2RleC1yZXNwb25zZXMiLCJwcm92aWRlciI6Im9wZW5haS1jb2RleCIsIm1vZGVsIjoiZ3B0LTUuNSIsInVzYWdlIjp7ImlucHV0Ijo3OTYsIm91dHB1dCI6Mjk3LCJjYWNoZVJlYWQiOjM2MzUyLCJjYWNoZVdyaXRlIjowLCJ0b3RhbFRva2VucyI6Mzc0NDUsImNvc3QiOnsiaW5wdXQiOjAuMDAzOTgsIm91dHB1dCI6MC4wMDg5MSwiY2FjaGVSZWFkIjowLjAxODE3NTk5OTk5OTk5OTk5OCwiY2FjaGVXcml0ZSI6MCwidG90YWwiOjAuMDMxMDY1OTk5OTk5OTk5OTk2fX0sInN0b3BSZWFzb24iOiJzdG9wIiwidGltZXN0YW1wIjoxNzc3NTYzMTkwMTU3LCJyZXNwb25zZUlkIjoicmVzcF8wMjdmMWVhMTVkZWYzNTA1MDE2OWYzNzYzNmU4ZjQ4MTkxYThkMzA1MDQyNmU4MDZmNCJ9fSx7InR5cGUiOiJtZXNzYWdlIiwiaWQiOiI2NzAzMmRkNCIsInBhcmVudElkIjoiNmViMTc4MzciLCJ0aW1lc3RhbXAiOiIyMDI2LTA0LTMwVDE1OjM0OjM4Ljk2N1oiLCJtZXNzYWdlIjp7InJvbGUiOiJ1c2VyIiwiY29udGVudCI6W3sidHlwZSI6InRleHQiLCJ0ZXh0IjoiaXMgYC5hZ2VudHMvYCB0aGUgb25seSB0aGluZyB3aGVyZSB3ZSBnbyB1cCB0byB0aGUgZ2l0IHJvb3Q/IHJpZ2h0IG5vdyBpdCBmZWVscyBsaWtlIHdlJ3JlIGFkZGluZyBhIGJhbmRhaWQgaW5zdGVhZCBvZiBkb2luZyB0aGUgdGhpbmcgY2xlYW5seSJ9XSwidGltZXN0YW1wIjoxNzc3NTYzMjc4OTY2fX0seyJ0eXBlIjoibWVzc2FnZSIsImlkIjoiNGY1ZDRkMTYiLCJwYXJlbnRJZCI6IjY3MDMyZGQ0IiwidGltZXN0YW1wIjoiMjAyNi0wNC0zMFQxNTozNDo0MS4zMzdaIiwibWVzc2FnZSI6eyJyb2xlIjoiYXNzaXN0YW50IiwiY29udGVudCI6W3sidHlwZSI6InRvb2xDYWxsIiwiaWQiOiJjYWxsXzlTdEc2d1p6eElJblRXV1J3aDNySWQ3dnxmY18wMjdmMWVhMTVkZWYzNTA1MDE2OWYzNzY5MGE5YmM4MTkxYWVkYTk2MmI1Mjc0MjBmOCIsIm5hbWUiOiJncmVwIiwiYXJndW1lbnRzIjp7InBhdHRlcm4iOiJjb2xsZWN0QW5jZXN0b3JBZ2VudHNTa2lsbERpcnN8ZmluZEdpdFJlcG9Sb290fHdoaWxlIFxcKHRydWVcXCl8ZGlybmFtZVxcKGRpclxcKSIsInBhdGgiOiJwYWNrYWdlcy9jb2RpbmctYWdlbnQvc3JjIiwiZ2xvYiI6IioudHMiLCJjb250ZXh0IjozLCJsaW1pdCI6MTAwfX1dLCJhcGkiOiJvcGVuYWktY29kZXgtcmVzcG9uc2VzIiwicHJvdmlkZXIiOiJvcGVuYWktY29kZXgiLCJtb2RlbCI6ImdwdC01LjUiLCJ1c2FnZSI6eyJpbnB1dCI6NTg4LCJvdXRwdXQiOjYxLCJjYWNoZVJlYWQiOjM2ODY0LCJjYWNoZVdyaXRlIjowLCJ0b3RhbFRva2VucyI6Mzc1MTMsImNvc3QiOnsiaW5wdXQiOjAuMDAyOTQwMDAwMDAwMDAwMDAwMywib3V0cHV0IjowLjAwMTgzLCJjYWNoZVJlYWQiOjAuMDE4NDMyLCJjYWNoZVdyaXRlIjowLCJ0b3RhbCI6MC4wMjMyMDJ9fSwic3RvcFJlYXNvbiI6InRvb2xVc2UiLCJ0aW1lc3RhbXAiOjE3Nzc1NjMyNzg5NjcsInJlc3BvbnNlSWQiOiJyZXNwXzAyN2YxZWExNWRlZjM1MDUwMTY5ZjM3NjhmOTYyMDgxOTE5ZTM3YmM3N2Q0MDkzNjI5In19LHsidHlwZSI6Im1lc3NhZ2UiLCJpZCI6ImYyZjE3MmQyIiwicGFyZW50SWQiOiI0ZjVkNGQxNiIsInRpbWVzdGFtcCI6IjIwMjYtMDQtMzBUMTU6MzQ6NDEuMzU1WiIsIm1lc3NhZ2UiOnsicm9sZSI6InRvb2xSZXN1bHQiLCJ0b29sQ2FsbElkIjoiY2FsbF85U3RHNndaenhJSW5UV1dSd2gzcklkN3Z8ZmNfMDI3ZjFlYTE1ZGVmMzUwNTAxNjlmMzc2OTBhOWJjODE5MWFlZGE5NjJiNTI3NDIwZjgiLCJ0b29sTmFtZSI6ImdyZXAiLCJjb250ZW50IjpbeyJ0eXBlIjoidGV4dCIsInRleHQiOiJjb25maWcudHM6MjE3OiAgIH1cbmNvbmZpZy50czoyMTg6ICAgLy8gTm9kZS5qczogd2FsayB1cCBmcm9tIF9fZGlybmFtZSB1bnRpbCB3ZSBmaW5kIHBhY2thZ2UuanNvblxuY29uZmlnLnRzOjIxOTogICBsZXQgZGlyID0gX19kaXJuYW1lO1xuY29uZmlnLnRzOjIyMDogd2hpbGUgKGRpciAhPT0gZGlybmFtZShkaXIpKSB7XG5jb25maWcudHM6MjIxOiAgIGlmIChleGlzdHNTeW5jKGpvaW4oZGlyLCBcInBhY2thZ2UuanNvblwiKSkpIHtcbmNvbmZpZy50czoyMjI6ICAgcmV0dXJuIGRpcjtcbmNvbmZpZy50czoyMjM6ICAgfVxuY29uZmlnLnRzOjIyMTogICBpZiAoZXhpc3RzU3luYyhqb2luKGRpciwgXCJwYWNrYWdlLmpzb25cIikpKSB7XG5jb25maWcudHM6MjIyOiAgIHJldHVybiBkaXI7XG5jb25maWcudHM6MjIzOiAgIH1cbmNvbmZpZy50czoyMjQ6IGRpciA9IGRpcm5hbWUoZGlyKTtcbmNvbmZpZy50czoyMjU6ICAgfVxuY29uZmlnLnRzOjIyNjogICAvLyBGYWxsYmFjayAoc2hvdWxkbid0IGhhcHBlbilcbmNvbmZpZy50czoyMjc6ICAgcmV0dXJuIF9fZGlybmFtZTtcbmNvcmUvcGFja2FnZS1tYW5hZ2VyLnRzOjQwNDogICByZXR1cm4gY29sbGVjdFNraWxsRW50cmllcyhkaXIsIG1vZGUpO1xuY29yZS9wYWNrYWdlLW1hbmFnZXIudHM6NDA1OiAgIH1cbmNvcmUvcGFja2FnZS1tYW5hZ2VyLnRzOjQwNjogICBcbmNvcmUvcGFja2FnZS1tYW5hZ2VyLnRzOjQwNzogZnVuY3Rpb24gZmluZEdpdFJlcG9Sb290KHN0YXJ0RGlyOiBzdHJpbmcpOiBzdHJpbmcgfCBudWxsIHtcbmNvcmUvcGFja2FnZS1tYW5hZ2VyLnRzOjQwODogICBsZXQgZGlyID0gcmVzb2x2ZShzdGFydERpcik7XG5jb3JlL3BhY2thZ2UtbWFuYWdlci50czo0MDk6ICAgd2hpbGUgKHRydWUpIHtcbmNvcmUvcGFja2FnZS1tYW5hZ2VyLnRzOjQxMDogICBpZiAoZXhpc3RzU3luYyhqb2luKGRpciwgXCIuZ2l0XCIpKSkge1xuY29yZS9wYWNrYWdlLW1hbmFnZXIudHM6NDA2OiAgIFxuY29yZS9wYWNrYWdlLW1hbmFnZXIudHM6NDA3OiAgIGZ1bmN0aW9uIGZpbmRHaXRSZXBvUm9vdChzdGFydERpcjogc3RyaW5nKTogc3RyaW5nIHwgbnVsbCB7XG5jb3JlL3BhY2thZ2UtbWFuYWdlci50czo0MDg6ICAgbGV0IGRpciA9IHJlc29sdmUoc3RhcnREaXIpO1xuY29yZS9wYWNrYWdlLW1hbmFnZXIudHM6NDA5OiB3aGlsZSAodHJ1ZSkge1xuY29yZS9wYWNrYWdlLW1hbmFnZXIudHM6NDEwOiAgIGlmIChleGlzdHNTeW5jKGpvaW4oZGlyLCBcIi5naXRcIikpKSB7XG5jb3JlL3BhY2thZ2UtbWFuYWdlci50czo0MTE6ICAgcmV0dXJuIGRpcjtcbmNvcmUvcGFja2FnZS1tYW5hZ2VyLnRzOjQxMjogICB9XG5jb3JlL3BhY2thZ2UtbWFuYWdlci50czo0MTA6ICAgaWYgKGV4aXN0c1N5bmMoam9pbihkaXIsIFwiLmdpdFwiKSkpIHtcbmNvcmUvcGFja2FnZS1tYW5hZ2VyLnRzOjQxMTogICByZXR1cm4gZGlyO1xuY29yZS9wYWNrYWdlLW1hbmFnZXIudHM6NDEyOiAgIH1cbmNvcmUvcGFja2FnZS1tYW5hZ2VyLnRzOjQxMzogY29uc3QgcGFyZW50ID0gZGlybmFtZShkaXIpO1xuY29yZS9wYWNrYWdlLW1hbmFnZXIudHM6NDE0OiAgIGlmIChwYXJlbnQgPT09IGRpcikge1xuY29yZS9wYWNrYWdlLW1hbmFnZXIudHM6NDE1OiAgIHJldHVybiBudWxsO1xuY29yZS9wYWNrYWdlLW1hbmFnZXIudHM6NDE2OiAgIH1cbmNvcmUvcGFja2FnZS1tYW5hZ2VyLnRzOjQxODogICB9XG5jb3JlL3BhY2thZ2UtbWFuYWdlci50czo0MTk6ICAgfVxuY29yZS9wYWNrYWdlLW1hbmFnZXIudHM6NDIwOiAgIFxuY29yZS9wYWNrYWdlLW1hbmFnZXIudHM6NDIxOiBmdW5jdGlvbiBjb2xsZWN0QW5jZXN0b3JBZ2VudHNTa2lsbERpcnMoc3RhcnREaXI6IHN0cmluZyk6IHN0cmluZ1tdIHtcbmNvcmUvcGFja2FnZS1tYW5hZ2VyLnRzOjQyMjogICBjb25zdCBza2lsbERpcnM6IHN0cmluZ1tdID0gW107XG5jb3JlL3BhY2thZ2UtbWFuYWdlci50czo0MjM6ICAgY29uc3QgcmVzb2x2ZWRTdGFydERpciA9IHJlc29sdmUoc3RhcnREaXIpO1xuY29yZS9wYWNrYWdlLW1hbmFnZXIudHM6NDI0OiAgIGNvbnN0IGdpdFJlcG9Sb290ID0gZmluZEdpdFJlcG9Sb290KHJlc29sdmVkU3RhcnREaXIpO1xuY29yZS9wYWNrYWdlLW1hbmFnZXIudHM6NDIxOiAgIGZ1bmN0aW9uIGNvbGxlY3RBbmNlc3RvckFnZW50c1NraWxsRGlycyhzdGFydERpcjogc3RyaW5nKTogc3RyaW5nW10ge1xuY29yZS9wYWNrYWdlLW1hbmFnZXIudHM6NDIyOiAgIGNvbnN0IHNraWxsRGlyczogc3RyaW5nW10gPSBbXTtcbmNvcmUvcGFja2FnZS1tYW5hZ2VyLnRzOjQyMzogICBjb25zdCByZXNvbHZlZFN0YXJ0RGlyID0gcmVzb2x2ZShzdGFydERpcik7XG5jb3JlL3BhY2thZ2UtbWFuYWdlci50czo0MjQ6IGNvbnN0IGdpdFJlcG9Sb290ID0gZmluZEdpdFJlcG9Sb290KHJlc29sdmVkU3RhcnREaXIpO1xuY29yZS9wYWNrYWdlLW1hbmFnZXIudHM6NDI1OiAgIFxuY29yZS9wYWNrYWdlLW1hbmFnZXIudHM6NDI2OiAgIGxldCBkaXIgPSByZXNvbHZlZFN0YXJ0RGlyO1xuY29yZS9wYWNrYWdlLW1hbmFnZXIudHM6NDI3OiAgIHdoaWxlICh0cnVlKSB7XG5jb3JlL3BhY2thZ2UtbWFuYWdlci50czo0MjQ6ICAgY29uc3QgZ2l0UmVwb1Jvb3QgPSBmaW5kR2l0UmVwb1Jvb3QocmVzb2x2ZWRTdGFydERpcik7XG5jb3JlL3BhY2thZ2UtbWFuYWdlci50czo0MjU6ICAgXG5jb3JlL3BhY2thZ2UtbWFuYWdlci50czo0MjY6ICAgbGV0IGRpciA9IHJlc29sdmVkU3RhcnREaXI7XG5jb3JlL3BhY2thZ2UtbWFuYWdlci50czo0Mjc6IHdoaWxlICh0cnVlKSB7XG5jb3JlL3BhY2thZ2UtbWFuYWdlci50czo0Mjg6ICAgc2tpbGxEaXJzLnB1c2goam9pbihkaXIsIFwiLmFnZW50c1wiLCBcInNraWxsc1wiKSk7XG5jb3JlL3BhY2thZ2UtbWFuYWdlci50czo0Mjk6ICAgaWYgKGdpdFJlcG9Sb290ICYmIGRpciA9PT0gZ2l0UmVwb1Jvb3QpIHtcbmNvcmUvcGFja2FnZS1tYW5hZ2VyLnRzOjQzMDogICBicmVhaztcbmNvcmUvcGFja2FnZS1tYW5hZ2VyLnRzOjQyOTogICBpZiAoZ2l0UmVwb1Jvb3QgJiYgZGlyID09PSBnaXRSZXBvUm9vdCkge1xuY29yZS9wYWNrYWdlLW1hbmFnZXIudHM6NDMwOiAgIGJyZWFrO1xuY29yZS9wYWNrYWdlLW1hbmFnZXIudHM6NDMxOiAgIH1cbmNvcmUvcGFja2FnZS1tYW5hZ2VyLnRzOjQzMjogY29uc3QgcGFyZW50ID0gZGlybmFtZShkaXIpO1xuY29yZS9wYWNrYWdlLW1hbmFnZXIudHM6NDMzOiAgIGlmIChwYXJlbnQgPT09IGRpcikge1xuY29yZS9wYWNrYWdlLW1hbmFnZXIudHM6NDM0OiAgIGJyZWFrO1xuY29yZS9wYWNrYWdlLW1hbmFnZXIudHM6NDM1OiAgIH1cbmNvcmUvcGFja2FnZS1tYW5hZ2VyLnRzOjE1ODI6ICAgY29uc3Qgd29ya2VyQ291bnQgPSBNYXRoLm1heCgxLCBNYXRoLm1pbihsaW1pdCwgdGFza3MubGVuZ3RoKSk7XG5jb3JlL3BhY2thZ2UtbWFuYWdlci50czoxNTgzOiAgIFxuY29yZS9wYWNrYWdlLW1hbmFnZXIudHM6MTU4NDogICBjb25zdCB3b3JrZXIgPSBhc3luYyAoKSA9PiB7XG5jb3JlL3BhY2thZ2UtbWFuYWdlci50czoxNTg1OiB3aGlsZSAodHJ1ZSkge1xuY29yZS9wYWNrYWdlLW1hbmFnZXIudHM6MTU4NjogICBjb25zdCBpbmRleCA9IG5leHRJbmRleDtcbmNvcmUvcGFja2FnZS1tYW5hZ2VyLnRzOjE1ODc6ICAgbmV4dEluZGV4ICs9IDE7XG5jb3JlL3BhY2thZ2UtbWFuYWdlci50czoxNTg4OiAgIGlmIChpbmRleCA+PSB0YXNrcy5sZW5ndGgpIHtcbmNvcmUvcGFja2FnZS1tYW5hZ2VyLnRzOjIxNjM6ICAgfTtcbmNvcmUvcGFja2FnZS1tYW5hZ2VyLnRzOjIxNjQ6ICAgY29uc3QgdXNlckFnZW50c0Jhc2VEaXIgPSBqb2luKGdldEhvbWVEaXIoKSwgXCIuYWdlbnRzXCIpO1xuY29yZS9wYWNrYWdlLW1hbmFnZXIudHM6MjE2NTogICBjb25zdCB1c2VyQWdlbnRzU2tpbGxzRGlyID0gam9pbih1c2VyQWdlbnRzQmFzZURpciwgXCJza2lsbHNcIik7XG5jb3JlL3BhY2thZ2UtbWFuYWdlci50czoyMTY2OiBjb25zdCBwcm9qZWN0QWdlbnRzU2tpbGxEaXJzID0gY29sbGVjdEFuY2VzdG9yQWdlbnRzU2tpbGxEaXJzKHRoaXMuY3dkKS5maWx0ZXIoXG5jb3JlL3BhY2thZ2UtbWFuYWdlci50czoyMTY3OiAgIChkaXIpID0+IHJlc29sdmUoZGlyKSAhPT0gcmVzb2x2ZSh1c2VyQWdlbnRzU2tpbGxzRGlyKSxcbmNvcmUvcGFja2FnZS1tYW5hZ2VyLnRzOjIxNjg6ICAgKTtcbmNvcmUvcGFja2FnZS1tYW5hZ2VyLnRzOjIxNjk6ICAgXG5jb3JlL2Zvb3Rlci1kYXRhLXByb3ZpZGVyLnRzOjE1OiAgICovXG5jb3JlL2Zvb3Rlci1kYXRhLXByb3ZpZGVyLnRzOjE2OiAgIGZ1bmN0aW9uIGZpbmRHaXRQYXRocyhjd2Q6IHN0cmluZyk6IEdpdFBhdGhzIHwgbnVsbCB7XG5jb3JlL2Zvb3Rlci1kYXRhLXByb3ZpZGVyLnRzOjE3OiAgIGxldCBkaXIgPSBjd2Q7XG5jb3JlL2Zvb3Rlci1kYXRhLXByb3ZpZGVyLnRzOjE4OiB3aGlsZSAodHJ1ZSkge1xuY29yZS9mb290ZXItZGF0YS1wcm92aWRlci50czoxOTogICBjb25zdCBnaXRQYXRoID0gam9pbihkaXIsIFwiLmdpdFwiKTtcbmNvcmUvZm9vdGVyLWRhdGEtcHJvdmlkZXIudHM6MjA6ICAgaWYgKGV4aXN0c1N5bmMoZ2l0UGF0aCkpIHtcbmNvcmUvZm9vdGVyLWRhdGEtcHJvdmlkZXIudHM6MjE6ICAgdHJ5IHtcbmNvcmUvZm9vdGVyLWRhdGEtcHJvdmlkZXIudHM6NDE6ICAgcmV0dXJuIG51bGw7XG5jb3JlL2Zvb3Rlci1kYXRhLXByb3ZpZGVyLnRzOjQyOiAgIH1cbmNvcmUvZm9vdGVyLWRhdGEtcHJvdmlkZXIudHM6NDM6ICAgfVxuY29yZS9mb290ZXItZGF0YS1wcm92aWRlci50czo0NDogY29uc3QgcGFyZW50ID0gZGlybmFtZShkaXIpO1xuY29yZS9mb290ZXItZGF0YS1wcm92aWRlci50czo0NTogICBpZiAocGFyZW50ID09PSBkaXIpIHJldHVybiBudWxsO1xuY29yZS9mb290ZXItZGF0YS1wcm92aWRlci50czo0NjogICBkaXIgPSBwYXJlbnQ7XG5jb3JlL2Zvb3Rlci1kYXRhLXByb3ZpZGVyLnRzOjQ3OiAgIH1cbm1vZGVzL3JwYy9qc29ubC50czoyOTogICBjb25zdCBvbkRhdGEgPSAoY2h1bms6IHN0cmluZyB8IEJ1ZmZlcikgPT4ge1xubW9kZXMvcnBjL2pzb25sLnRzOjMwOiAgIGJ1ZmZlciArPSB0eXBlb2YgY2h1bmsgPT09IFwic3RyaW5nXCIgPyBjaHVuayA6IGRlY29kZXIud3JpdGUoY2h1bmspO1xubW9kZXMvcnBjL2pzb25sLnRzOjMxOiAgIFxubW9kZXMvcnBjL2pzb25sLnRzOjMyOiB3aGlsZSAodHJ1ZSkge1xubW9kZXMvcnBjL2pzb25sLnRzOjMzOiAgIGNvbnN0IG5ld2xpbmVJbmRleCA9IGJ1ZmZlci5pbmRleE9mKFwiXFxuXCIpO1xubW9kZXMvcnBjL2pzb25sLnRzOjM0OiAgIGlmIChuZXdsaW5lSW5kZXggPT09IC0xKSB7XG5tb2Rlcy9ycGMvanNvbmwudHM6MzU6ICAgcmV0dXJuO1xudXRpbHMvaW1hZ2UtcmVzaXplLnRzOjEyMjogICBsZXQgY3VycmVudFdpZHRoID0gdGFyZ2V0V2lkdGg7XG51dGlscy9pbWFnZS1yZXNpemUudHM6MTIzOiAgIGxldCBjdXJyZW50SGVpZ2h0ID0gdGFyZ2V0SGVpZ2h0O1xudXRpbHMvaW1hZ2UtcmVzaXplLnRzOjEyNDogICBcbnV0aWxzL2ltYWdlLXJlc2l6ZS50czoxMjU6IHdoaWxlICh0cnVlKSB7XG51dGlscy9pbWFnZS1yZXNpemUudHM6MTI2OiAgIGNvbnN0IGNhbmRpZGF0ZXMgPSB0cnlFbmNvZGluZ3MoY3VycmVudFdpZHRoLCBjdXJyZW50SGVpZ2h0LCBxdWFsaXR5U3RlcHMpO1xudXRpbHMvaW1hZ2UtcmVzaXplLnRzOjEyNzogICBmb3IgKGNvbnN0IGNhbmRpZGF0ZSBvZiBjYW5kaWRhdGVzKSB7XG51dGlscy9pbWFnZS1yZXNpemUudHM6MTI4OiAgIGlmIChjYW5kaWRhdGUuZW5jb2RlZFNpemUgPCBvcHRzLm1heEJ5dGVzKSB7XG5jb3JlL3Jlc291cmNlLWxvYWRlci50czo5NDogICBsZXQgY3VycmVudERpciA9IHJlc29sdmVkQ3dkO1xuY29yZS9yZXNvdXJjZS1sb2FkZXIudHM6OTU6ICAgY29uc3Qgcm9vdCA9IHJlc29sdmUoXCIvXCIpO1xuY29yZS9yZXNvdXJjZS1sb2FkZXIudHM6OTY6ICAgXG5jb3JlL3Jlc291cmNlLWxvYWRlci50czo5Nzogd2hpbGUgKHRydWUpIHtcbmNvcmUvcmVzb3VyY2UtbG9hZGVyLnRzOjk4OiAgIGNvbnN0IGNvbnRleHRGaWxlID0gbG9hZENvbnRleHRGaWxlRnJvbURpcihjdXJyZW50RGlyKTtcbmNvcmUvcmVzb3VyY2UtbG9hZGVyLnRzOjk5OiAgIGlmIChjb250ZXh0RmlsZSAmJiAhc2VlblBhdGhzLmhhcyhjb250ZXh0RmlsZS5wYXRoKSkge1xuY29yZS9yZXNvdXJjZS1sb2FkZXIudHM6MTAwOiAgIGFuY2VzdG9yQ29udGV4dEZpbGVzLnVuc2hpZnQoY29udGV4dEZpbGUpO1xubW9kZXMvaW50ZXJhY3RpdmUvaW50ZXJhY3RpdmUtbW9kZS50czo3NDI6ICAgfVxubW9kZXMvaW50ZXJhY3RpdmUvaW50ZXJhY3RpdmUtbW9kZS50czo3NDM6ICAgXG5tb2Rlcy9pbnRlcmFjdGl2ZS9pbnRlcmFjdGl2ZS1tb2RlLnRzOjc0NDogICAvLyBNYWluIGludGVyYWN0aXZlIGxvb3Bcbm1vZGVzL2ludGVyYWN0aXZlL2ludGVyYWN0aXZlLW1vZGUudHM6NzQ1OiB3aGlsZSAodHJ1ZSkge1xubW9kZXMvaW50ZXJhY3RpdmUvaW50ZXJhY3RpdmUtbW9kZS50czo3NDY6ICAgY29uc3QgdXNlcklucHV0ID0gYXdhaXQgdGhpcy5nZXRVc2VySW5wdXQoKTtcbm1vZGVzL2ludGVyYWN0aXZlL2ludGVyYWN0aXZlLW1vZGUudHM6NzQ3OiAgIHRyeSB7XG5tb2Rlcy9pbnRlcmFjdGl2ZS9pbnRlcmFjdGl2ZS1tb2RlLnRzOjc0ODogICBhd2FpdCB0aGlzLnNlc3Npb24ucHJvbXB0KHVzZXJJbnB1dCk7XG5tb2Rlcy9pbnRlcmFjdGl2ZS9pbnRlcmFjdGl2ZS1tb2RlLnRzOjQxNTU6ICAgXG5tb2Rlcy9pbnRlcmFjdGl2ZS9pbnRlcmFjdGl2ZS1tb2RlLnRzOjQxNTY6ICAgLy8gQ2hlY2sgaWYgd2Ugc2hvdWxkIHNraXAgdGhlIHByb21wdCAodXNlciBwcmVmZXJlbmNlIHRvIGFsd2F5cyBkZWZhdWx0IHRvIG5vIHN1bW1hcnkpXG5tb2Rlcy9pbnRlcmFjdGl2ZS9pbnRlcmFjdGl2ZS1tb2RlLnRzOjQxNTc6ICAgaWYgKCF0aGlzLnNldHRpbmdzTWFuYWdlci5nZXRCcmFuY2hTdW1tYXJ5U2tpcFByb21wdCgpKSB7XG5tb2Rlcy9pbnRlcmFjdGl2ZS9pbnRlcmFjdGl2ZS1tb2RlLnRzOjQxNTg6IHdoaWxlICh0cnVlKSB7XG5tb2Rlcy9pbnRlcmFjdGl2ZS9pbnRlcmFjdGl2ZS1tb2RlLnRzOjQxNTk6ICAgY29uc3Qgc3VtbWFyeUNob2ljZSA9IGF3YWl0IHRoaXMuc2hvd0V4dGVuc2lvblNlbGVjdG9yKFwiU3VtbWFyaXplIGJyYW5jaD9cIiwgW1xubW9kZXMvaW50ZXJhY3RpdmUvaW50ZXJhY3RpdmUtbW9kZS50czo0MTYwOiAgIFwiTm8gc3VtbWFyeVwiLFxubW9kZXMvaW50ZXJhY3RpdmUvaW50ZXJhY3RpdmUtbW9kZS50czo0MTYxOiAgIFwiU3VtbWFyaXplXCIsXG5tb2Rlcy9pbnRlcmFjdGl2ZS9jb21wb25lbnRzL3RyZWUtc2VsZWN0b3IudHM6MTAzMDogICBjb25zdCBpbmRleEJ5RW50cnlJZCA9IG5ldyBNYXAodGhpcy5maWx0ZXJlZE5vZGVzLm1hcCgobm9kZSwgaSkgPT4gW25vZGUubm9kZS5lbnRyeS5pZCwgaV0pKTtcbm1vZGVzL2ludGVyYWN0aXZlL2NvbXBvbmVudHMvdHJlZS1zZWxlY3Rvci50czoxMDMxOiAgIGxldCBjdXJyZW50SWQ6IHN0cmluZyA9IHNlbGVjdGVkSWQ7XG5tb2Rlcy9pbnRlcmFjdGl2ZS9jb21wb25lbnRzL3RyZWUtc2VsZWN0b3IudHM6MTAzMjogICBpZiAoZGlyZWN0aW9uID09PSBcImRvd25cIikge1xubW9kZXMvaW50ZXJhY3RpdmUvY29tcG9uZW50cy90cmVlLXNlbGVjdG9yLnRzOjEwMzM6IHdoaWxlICh0cnVlKSB7XG5tb2Rlcy9pbnRlcmFjdGl2ZS9jb21wb25lbnRzL3RyZWUtc2VsZWN0b3IudHM6MTAzNDogICBjb25zdCBjaGlsZHJlbjogc3RyaW5nW10gPSB0aGlzLnZpc2libGVDaGlsZHJlbk1hcC5nZXQoY3VycmVudElkKSA/PyBbXTtcbm1vZGVzL2ludGVyYWN0aXZlL2NvbXBvbmVudHMvdHJlZS1zZWxlY3Rvci50czoxMDM1OiAgIGlmIChjaGlsZHJlbi5sZW5ndGggPT09IDApIHJldHVybiBpbmRleEJ5RW50cnlJZC5nZXQoY3VycmVudElkKSE7XG5tb2Rlcy9pbnRlcmFjdGl2ZS9jb21wb25lbnRzL3RyZWUtc2VsZWN0b3IudHM6MTAzNjogICBpZiAoY2hpbGRyZW4ubGVuZ3RoID4gMSkgcmV0dXJuIGluZGV4QnlFbnRyeUlkLmdldChjaGlsZHJlblswXSkhO1xubW9kZXMvaW50ZXJhY3RpdmUvY29tcG9uZW50cy90cmVlLXNlbGVjdG9yLnRzOjEwMzk6ICAgfVxubW9kZXMvaW50ZXJhY3RpdmUvY29tcG9uZW50cy90cmVlLXNlbGVjdG9yLnRzOjEwNDA6ICAgXG5tb2Rlcy9pbnRlcmFjdGl2ZS9jb21wb25lbnRzL3RyZWUtc2VsZWN0b3IudHM6MTA0MTogICAvLyBkaXJlY3Rpb24gPT09IFwidXBcIlxubW9kZXMvaW50ZXJhY3RpdmUvY29tcG9uZW50cy90cmVlLXNlbGVjdG9yLnRzOjEwNDI6IHdoaWxlICh0cnVlKSB7XG5tb2Rlcy9pbnRlcmFjdGl2ZS9jb21wb25lbnRzL3RyZWUtc2VsZWN0b3IudHM6MTA0MzogICBjb25zdCBwYXJlbnRJZDogc3RyaW5nIHwgbnVsbCA9IHRoaXMudmlzaWJsZVBhcmVudE1hcC5nZXQoY3VycmVudElkKSA/PyBudWxsO1xubW9kZXMvaW50ZXJhY3RpdmUvY29tcG9uZW50cy90cmVlLXNlbGVjdG9yLnRzOjEwNDQ6ICAgaWYgKHBhcmVudElkID09PSBudWxsKSByZXR1cm4gaW5kZXhCeUVudHJ5SWQuZ2V0KGN1cnJlbnRJZCkhO1xubW9kZXMvaW50ZXJhY3RpdmUvY29tcG9uZW50cy90cmVlLXNlbGVjdG9yLnRzOjEwNDU6ICAgY29uc3QgY2hpbGRyZW4gPSB0aGlzLnZpc2libGVDaGlsZHJlbk1hcC5nZXQocGFyZW50SWQpID8/IFtdOyJ9XSwiZGV0YWlscyI6eyJtYXRjaENvdW50IjoyMCwibWF0Y2hlcyI6W3sicGF0aCI6ImNvbmZpZy50cyIsImxpbmUiOjIxNywidGV4dCI6IiAgfSJ9LHsicGF0aCI6ImNvbmZpZy50cyIsImxpbmUiOjIxOCwidGV4dCI6IiAgLy8gTm9kZS5qczogd2FsayB1cCBmcm9tIF9fZGlybmFtZSB1bnRpbCB3ZSBmaW5kIHBhY2thZ2UuanNvbiJ9LHsicGF0aCI6ImNvbmZpZy50cyIsImxpbmUiOjIxOSwidGV4dCI6IiAgbGV0IGRpciA9IF9fZGlybmFtZTsifSx7InBhdGgiOiJjb25maWcudHMiLCJsaW5lIjoyMjAsInRleHQiOiJ3aGlsZSAoZGlyICE9PSBkaXJuYW1lKGRpcikpIHsifSx7InBhdGgiOiJjb25maWcudHMiLCJsaW5lIjoyMjEsInRleHQiOiIgIGlmIChleGlzdHNTeW5jKGpvaW4oZGlyLCBcInBhY2thZ2UuanNvblwiKSkpIHsifSx7InBhdGgiOiJjb25maWcudHMiLCJsaW5lIjoyMjIsInRleHQiOiIgIHJldHVybiBkaXI7In0seyJwYXRoIjoiY29uZmlnLnRzIiwibGluZSI6MjIzLCJ0ZXh0IjoiICB9In0seyJwYXRoIjoiY29uZmlnLnRzIiwibGluZSI6MjIxLCJ0ZXh0IjoiICBpZiAoZXhpc3RzU3luYyhqb2luKGRpciwgXCJwYWNrYWdlLmpzb25cIikpKSB7In0seyJwYXRoIjoiY29uZmlnLnRzIiwibGluZSI6MjIyLCJ0ZXh0IjoiICByZXR1cm4gZGlyOyJ9LHsicGF0aCI6ImNvbmZpZy50cyIsImxpbmUiOjIyMywidGV4dCI6IiAgfSJ9LHsicGF0aCI6ImNvbmZpZy50cyIsImxpbmUiOjIyNCwidGV4dCI6ImRpciA9IGRpcm5hbWUoZGlyKTsifSx7InBhdGgiOiJjb25maWcudHMiLCJsaW5lIjoyMjUsInRleHQiOiIgIH0ifSx7InBhdGgiOiJjb25maWcudHMiLCJsaW5lIjoyMjYsInRleHQiOiIgIC8vIEZhbGxiYWNrIChzaG91bGRuJ3QgaGFwcGVuKSJ9LHsicGF0aCI6ImNvbmZpZy50cyIsImxpbmUiOjIyNywidGV4dCI6IiAgcmV0dXJuIF9fZGlybmFtZTsifSx7InBhdGgiOiJjb3JlL3BhY2thZ2UtbWFuYWdlci50cyIsImxpbmUiOjQwNCwidGV4dCI6IiAgcmV0dXJuIGNvbGxlY3RTa2lsbEVudHJpZXMoZGlyLCBtb2RlKTsifSx7InBhdGgiOiJjb3JlL3BhY2thZ2UtbWFuYWdlci50cyIsImxpbmUiOjQwNSwidGV4dCI6IiAgfSJ9LHsicGF0aCI6ImNvcmUvcGFja2FnZS1tYW5hZ2VyLnRzIiwibGluZSI6NDA2LCJ0ZXh0IjoiICAifSx7InBhdGgiOiJjb3JlL3BhY2thZ2UtbWFuYWdlci50cyIsImxpbmUiOjQwNywidGV4dCI6ImZ1bmN0aW9uIGZpbmRHaXRSZXBvUm9vdChzdGFydERpcjogc3RyaW5nKTogc3RyaW5nIHwgbnVsbCB7In0seyJwYXRoIjoiY29yZS9wYWNrYWdlLW1hbmFnZXIudHMiLCJsaW5lIjo0MDgsInRleHQiOiIgIGxldCBkaXIgPSByZXNvbHZlKHN0YXJ0RGlyKTsifSx7InBhdGgiOiJjb3JlL3BhY2thZ2UtbWFuYWdlci50cyIsImxpbmUiOjQwOSwidGV4dCI6IiAgd2hpbGUgKHRydWUpIHsifSx7InBhdGgiOiJjb3JlL3BhY2thZ2UtbWFuYWdlci50cyIsImxpbmUiOjQxMCwidGV4dCI6IiAgaWYgKGV4aXN0c1N5bmMoam9pbihkaXIsIFwiLmdpdFwiKSkpIHsifSx7InBhdGgiOiJjb3JlL3BhY2thZ2UtbWFuYWdlci50cyIsImxpbmUiOjQwNiwidGV4dCI6IiAgIn0seyJwYXRoIjoiY29yZS9wYWNrYWdlLW1hbmFnZXIudHMiLCJsaW5lIjo0MDcsInRleHQiOiIgIGZ1bmN0aW9uIGZpbmRHaXRSZXBvUm9vdChzdGFydERpcjogc3RyaW5nKTogc3RyaW5nIHwgbnVsbCB7In0seyJwYXRoIjoiY29yZS9wYWNrYWdlLW1hbmFnZXIudHMiLCJsaW5lIjo0MDgsInRleHQiOiIgIGxldCBkaXIgPSByZXNvbHZlKHN0YXJ0RGlyKTsifSx7InBhdGgiOiJjb3JlL3BhY2thZ2UtbWFuYWdlci50cyIsImxpbmUiOjQwOSwidGV4dCI6IndoaWxlICh0cnVlKSB7In0seyJwYXRoIjoiY29yZS9wYWNrYWdlLW1hbmFnZXIudHMiLCJsaW5lIjo0MTAsInRleHQiOiIgIGlmIChleGlzdHNTeW5jKGpvaW4oZGlyLCBcIi5naXRcIikpKSB7In0seyJwYXRoIjoiY29yZS9wYWNrYWdlLW1hbmFnZXIudHMiLCJsaW5lIjo0MTEsInRleHQiOiIgIHJldHVybiBkaXI7In0seyJwYXRoIjoiY29yZS9wYWNrYWdlLW1hbmFnZXIudHMiLCJsaW5lIjo0MTIsInRleHQiOiIgIH0ifSx7InBhdGgiOiJjb3JlL3BhY2thZ2UtbWFuYWdlci50cyIsImxpbmUiOjQxMCwidGV4dCI6IiAgaWYgKGV4aXN0c1N5bmMoam9pbihkaXIsIFwiLmdpdFwiKSkpIHsifSx7InBhdGgiOiJjb3JlL3BhY2thZ2UtbWFuYWdlci50cyIsImxpbmUiOjQxMSwidGV4dCI6IiAgcmV0dXJuIGRpcjsifSx7InBhdGgiOiJjb3JlL3BhY2thZ2UtbWFuYWdlci50cyIsImxpbmUiOjQxMiwidGV4dCI6IiAgfSJ9LHsicGF0aCI6ImNvcmUvcGFja2FnZS1tYW5hZ2VyLnRzIiwibGluZSI6NDEzLCJ0ZXh0IjoiY29uc3QgcGFyZW50ID0gZGlybmFtZShkaXIpOyJ9LHsicGF0aCI6ImNvcmUvcGFja2FnZS1tYW5hZ2VyLnRzIiwibGluZSI6NDE0LCJ0ZXh0IjoiICBpZiAocGFyZW50ID09PSBkaXIpIHsifSx7InBhdGgiOiJjb3JlL3BhY2thZ2UtbWFuYWdlci50cyIsImxpbmUiOjQxNSwidGV4dCI6IiAgcmV0dXJuIG51bGw7In0seyJwYXRoIjoiY29yZS9wYWNrYWdlLW1hbmFnZXIudHMiLCJsaW5lIjo0MTYsInRleHQiOiIgIH0ifSx7InBhdGgiOiJjb3JlL3BhY2thZ2UtbWFuYWdlci50cyIsImxpbmUiOjQxOCwidGV4dCI6IiAgfSJ9LHsicGF0aCI6ImNvcmUvcGFja2FnZS1tYW5hZ2VyLnRzIiwibGluZSI6NDE5LCJ0ZXh0IjoiICB9In0seyJwYXRoIjoiY29yZS9wYWNrYWdlLW1hbmFnZXIudHMiLCJsaW5lIjo0MjAsInRleHQiOiIgICJ9LHsicGF0aCI6ImNvcmUvcGFja2FnZS1tYW5hZ2VyLnRzIiwibGluZSI6NDIxLCJ0ZXh0IjoiZnVuY3Rpb24gY29sbGVjdEFuY2VzdG9yQWdlbnRzU2tpbGxEaXJzKHN0YXJ0RGlyOiBzdHJpbmcpOiBzdHJpbmdbXSB7In0seyJwYXRoIjoiY29yZS9wYWNrYWdlLW1hbmFnZXIudHMiLCJsaW5lIjo0MjIsInRleHQiOiIgIGNvbnN0IHNraWxsRGlyczogc3RyaW5nW10gPSBbXTsifSx7InBhdGgiOiJjb3JlL3BhY2thZ2UtbWFuYWdlci50cyIsImxpbmUiOjQyMywidGV4dCI6IiAgY29uc3QgcmVzb2x2ZWRTdGFydERpciA9IHJlc29sdmUoc3RhcnREaXIpOyJ9LHsicGF0aCI6ImNvcmUvcGFja2FnZS1tYW5hZ2VyLnRzIiwibGluZSI6NDI0LCJ0ZXh0IjoiICBjb25zdCBnaXRSZXBvUm9vdCA9IGZpbmRHaXRSZXBvUm9vdChyZXNvbHZlZFN0YXJ0RGlyKTsifSx7InBhdGgiOiJjb3JlL3BhY2thZ2UtbWFuYWdlci50cyIsImxpbmUiOjQyMSwidGV4dCI6IiAgZnVuY3Rpb24gY29sbGVjdEFuY2VzdG9yQWdlbnRzU2tpbGxEaXJzKHN0YXJ0RGlyOiBzdHJpbmcpOiBzdHJpbmdbXSB7In0seyJwYXRoIjoiY29yZS9wYWNrYWdlLW1hbmFnZXIudHMiLCJsaW5lIjo0MjIsInRleHQiOiIgIGNvbnN0IHNraWxsRGlyczogc3RyaW5nW10gPSBbXTsifSx7InBhdGgiOiJjb3JlL3BhY2thZ2UtbWFuYWdlci50cyIsImxpbmUiOjQyMywidGV4dCI6IiAgY29uc3QgcmVzb2x2ZWRTdGFydERpciA9IHJlc29sdmUoc3RhcnREaXIpOyJ9LHsicGF0aCI6ImNvcmUvcGFja2FnZS1tYW5hZ2VyLnRzIiwibGluZSI6NDI0LCJ0ZXh0IjoiY29uc3QgZ2l0UmVwb1Jvb3QgPSBmaW5kR2l0UmVwb1Jvb3QocmVzb2x2ZWRTdGFydERpcik7In0seyJwYXRoIjoiY29yZS9wYWNrYWdlLW1hbmFnZXIudHMiLCJsaW5lIjo0MjUsInRleHQiOiIgICJ9LHsicGF0aCI6ImNvcmUvcGFja2FnZS1tYW5hZ2VyLnRzIiwibGluZSI6NDI2LCJ0ZXh0IjoiICBsZXQgZGlyID0gcmVzb2x2ZWRTdGFydERpcjsifSx7InBhdGgiOiJjb3JlL3BhY2thZ2UtbWFuYWdlci50cyIsImxpbmUiOjQyNywidGV4dCI6IiAgd2hpbGUgKHRydWUpIHsifSx7InBhdGgiOiJjb3JlL3BhY2thZ2UtbWFuYWdlci50cyIsImxpbmUiOjQyNCwidGV4dCI6IiAgY29uc3QgZ2l0UmVwb1Jvb3QgPSBmaW5kR2l0UmVwb1Jvb3QocmVzb2x2ZWRTdGFydERpcik7In0seyJwYXRoIjoiY29yZS9wYWNrYWdlLW1hbmFnZXIudHMiLCJsaW5lIjo0MjUsInRleHQiOiIgICJ9LHsicGF0aCI6ImNvcmUvcGFja2FnZS1tYW5hZ2VyLnRzIiwibGluZSI6NDI2LCJ0ZXh0IjoiICBsZXQgZGlyID0gcmVzb2x2ZWRTdGFydERpcjsifSx7InBhdGgiOiJjb3JlL3BhY2thZ2UtbWFuYWdlci50cyIsImxpbmUiOjQyNywidGV4dCI6IndoaWxlICh0cnVlKSB7In0seyJwYXRoIjoiY29yZS9wYWNrYWdlLW1hbmFnZXIudHMiLCJsaW5lIjo0MjgsInRleHQiOiIgIHNraWxsRGlycy5wdXNoKGpvaW4oZGlyLCBcIi5hZ2VudHNcIiwgXCJza2lsbHNcIikpOyJ9LHsicGF0aCI6ImNvcmUvcGFja2FnZS1tYW5hZ2VyLnRzIiwibGluZSI6NDI5LCJ0ZXh0IjoiICBpZiAoZ2l0UmVwb1Jvb3QgJiYgZGlyID09PSBnaXRSZXBvUm9vdCkgeyJ9LHsicGF0aCI6ImNvcmUvcGFja2FnZS1tYW5hZ2VyLnRzIiwibGluZSI6NDMwLCJ0ZXh0IjoiICBicmVhazsifSx7InBhdGgiOiJjb3JlL3BhY2thZ2UtbWFuYWdlci50cyIsImxpbmUiOjQyOSwidGV4dCI6IiAgaWYgKGdpdFJlcG9Sb290ICYmIGRpciA9PT0gZ2l0UmVwb1Jvb3QpIHsifSx7InBhdGgiOiJjb3JlL3BhY2thZ2UtbWFuYWdlci50cyIsImxpbmUiOjQzMCwidGV4dCI6IiAgYnJlYWs7In0seyJwYXRoIjoiY29yZS9wYWNrYWdlLW1hbmFnZXIudHMiLCJsaW5lIjo0MzEsInRleHQiOiIgIH0ifSx7InBhdGgiOiJjb3JlL3BhY2thZ2UtbWFuYWdlci50cyIsImxpbmUiOjQzMiwidGV4dCI6ImNvbnN0IHBhcmVudCA9IGRpcm5hbWUoZGlyKTsifSx7InBhdGgiOiJjb3JlL3BhY2thZ2UtbWFuYWdlci50cyIsImxpbmUiOjQzMywidGV4dCI6IiAgaWYgKHBhcmVudCA9PT0gZGlyKSB7In0seyJwYXRoIjoiY29yZS9wYWNrYWdlLW1hbmFnZXIudHMiLCJsaW5lIjo0MzQsInRleHQiOiIgIGJyZWFrOyJ9LHsicGF0aCI6ImNvcmUvcGFja2FnZS1tYW5hZ2VyLnRzIiwibGluZSI6NDM1LCJ0ZXh0IjoiICB9In0seyJwYXRoIjoiY29yZS9wYWNrYWdlLW1hbmFnZXIudHMiLCJsaW5lIjoxNTgyLCJ0ZXh0IjoiICBjb25zdCB3b3JrZXJDb3VudCA9IE1hdGgubWF4KDEsIE1hdGgubWluKGxpbWl0LCB0YXNrcy5sZW5ndGgpKTsifSx7InBhdGgiOiJjb3JlL3BhY2thZ2UtbWFuYWdlci50cyIsImxpbmUiOjE1ODMsInRleHQiOiIgICJ9LHsicGF0aCI6ImNvcmUvcGFja2FnZS1tYW5hZ2VyLnRzIiwibGluZSI6MTU4NCwidGV4dCI6IiAgY29uc3Qgd29ya2VyID0gYXN5bmMgKCkgPT4geyJ9LHsicGF0aCI6ImNvcmUvcGFja2FnZS1tYW5hZ2VyLnRzIiwibGluZSI6MTU4NSwidGV4dCI6IndoaWxlICh0cnVlKSB7In0seyJwYXRoIjoiY29yZS9wYWNrYWdlLW1hbmFnZXIudHMiLCJsaW5lIjoxNTg2LCJ0ZXh0IjoiICBjb25zdCBpbmRleCA9IG5leHRJbmRleDsifSx7InBhdGgiOiJjb3JlL3BhY2thZ2UtbWFuYWdlci50cyIsImxpbmUiOjE1ODcsInRleHQiOiIgIG5leHRJbmRleCArPSAxOyJ9LHsicGF0aCI6ImNvcmUvcGFja2FnZS1tYW5hZ2VyLnRzIiwibGluZSI6MTU4OCwidGV4dCI6IiAgaWYgKGluZGV4ID49IHRhc2tzLmxlbmd0aCkgeyJ9LHsicGF0aCI6ImNvcmUvcGFja2FnZS1tYW5hZ2VyLnRzIiwibGluZSI6MjE2MywidGV4dCI6IiAgfTsifSx7InBhdGgiOiJjb3JlL3BhY2thZ2UtbWFuYWdlci50cyIsImxpbmUiOjIxNjQsInRleHQiOiIgIGNvbnN0IHVzZXJBZ2VudHNCYXNlRGlyID0gam9pbihnZXRIb21lRGlyKCksIFwiLmFnZW50c1wiKTsifSx7InBhdGgiOiJjb3JlL3BhY2thZ2UtbWFuYWdlci50cyIsImxpbmUiOjIxNjUsInRleHQiOiIgIGNvbnN0IHVzZXJBZ2VudHNTa2lsbHNEaXIgPSBqb2luKHVzZXJBZ2VudHNCYXNlRGlyLCBcInNraWxsc1wiKTsifSx7InBhdGgiOiJjb3JlL3BhY2thZ2UtbWFuYWdlci50cyIsImxpbmUiOjIxNjYsInRleHQiOiJjb25zdCBwcm9qZWN0QWdlbnRzU2tpbGxEaXJzID0gY29sbGVjdEFuY2VzdG9yQWdlbnRzU2tpbGxEaXJzKHRoaXMuY3dkKS5maWx0ZXIoIn0seyJwYXRoIjoiY29yZS9wYWNrYWdlLW1hbmFnZXIudHMiLCJsaW5lIjoyMTY3LCJ0ZXh0IjoiICAoZGlyKSA9PiByZXNvbHZlKGRpcikgIT09IHJlc29sdmUodXNlckFnZW50c1NraWxsc0RpciksIn0seyJwYXRoIjoiY29yZS9wYWNrYWdlLW1hbmFnZXIudHMiLCJsaW5lIjoyMTY4LCJ0ZXh0IjoiICApOyJ9LHsicGF0aCI6ImNvcmUvcGFja2FnZS1tYW5hZ2VyLnRzIiwibGluZSI6MjE2OSwidGV4dCI6IiAgIn0seyJwYXRoIjoiY29yZS9mb290ZXItZGF0YS1wcm92aWRlci50cyIsImxpbmUiOjE1LCJ0ZXh0IjoiICAqLyJ9LHsicGF0aCI6ImNvcmUvZm9vdGVyLWRhdGEtcHJvdmlkZXIudHMiLCJsaW5lIjoxNiwidGV4dCI6IiAgZnVuY3Rpb24gZmluZEdpdFBhdGhzKGN3ZDogc3RyaW5nKTogR2l0UGF0aHMgfCBudWxsIHsifSx7InBhdGgiOiJjb3JlL2Zvb3Rlci1kYXRhLXByb3ZpZGVyLnRzIiwibGluZSI6MTcsInRleHQiOiIgIGxldCBkaXIgPSBjd2Q7In0seyJwYXRoIjoiY29yZS9mb290ZXItZGF0YS1wcm92aWRlci50cyIsImxpbmUiOjE4LCJ0ZXh0Ijoid2hpbGUgKHRydWUpIHsifSx7InBhdGgiOiJjb3JlL2Zvb3Rlci1kYXRhLXByb3ZpZGVyLnRzIiwibGluZSI6MTksInRleHQiOiIgIGNvbnN0IGdpdFBhdGggPSBqb2luKGRpciwgXCIuZ2l0XCIpOyJ9LHsicGF0aCI6ImNvcmUvZm9vdGVyLWRhdGEtcHJvdmlkZXIudHMiLCJsaW5lIjoyMCwidGV4dCI6IiAgaWYgKGV4aXN0c1N5bmMoZ2l0UGF0aCkpIHsifSx7InBhdGgiOiJjb3JlL2Zvb3Rlci1kYXRhLXByb3ZpZGVyLnRzIiwibGluZSI6MjEsInRleHQiOiIgIHRyeSB7In0seyJwYXRoIjoiY29yZS9mb290ZXItZGF0YS1wcm92aWRlci50cyIsImxpbmUiOjQxLCJ0ZXh0IjoiICByZXR1cm4gbnVsbDsifSx7InBhdGgiOiJjb3JlL2Zvb3Rlci1kYXRhLXByb3ZpZGVyLnRzIiwibGluZSI6NDIsInRleHQiOiIgIH0ifSx7InBhdGgiOiJjb3JlL2Zvb3Rlci1kYXRhLXByb3ZpZGVyLnRzIiwibGluZSI6NDMsInRleHQiOiIgIH0ifSx7InBhdGgiOiJjb3JlL2Zvb3Rlci1kYXRhLXByb3ZpZGVyLnRzIiwibGluZSI6NDQsInRleHQiOiJjb25zdCBwYXJlbnQgPSBkaXJuYW1lKGRpcik7In0seyJwYXRoIjoiY29yZS9mb290ZXItZGF0YS1wcm92aWRlci50cyIsImxpbmUiOjQ1LCJ0ZXh0IjoiICBpZiAocGFyZW50ID09PSBkaXIpIHJldHVybiBudWxsOyJ9LHsicGF0aCI6ImNvcmUvZm9vdGVyLWRhdGEtcHJvdmlkZXIudHMiLCJsaW5lIjo0NiwidGV4dCI6IiAgZGlyID0gcGFyZW50OyJ9LHsicGF0aCI6ImNvcmUvZm9vdGVyLWRhdGEtcHJvdmlkZXIudHMiLCJsaW5lIjo0NywidGV4dCI6IiAgfSJ9LHsicGF0aCI6Im1vZGVzL3JwYy9qc29ubC50cyIsImxpbmUiOjI5LCJ0ZXh0IjoiICBjb25zdCBvbkRhdGEgPSAoY2h1bms6IHN0cmluZyB8IEJ1ZmZlcikgPT4geyJ9LHsicGF0aCI6Im1vZGVzL3JwYy9qc29ubC50cyIsImxpbmUiOjMwLCJ0ZXh0IjoiICBidWZmZXIgKz0gdHlwZW9mIGNodW5rID09PSBcInN0cmluZ1wiID8gY2h1bmsgOiBkZWNvZGVyLndyaXRlKGNodW5rKTsifSx7InBhdGgiOiJtb2Rlcy9ycGMvanNvbmwudHMiLCJsaW5lIjozMSwidGV4dCI6IiAgIn0seyJwYXRoIjoibW9kZXMvcnBjL2pzb25sLnRzIiwibGluZSI6MzIsInRleHQiOiJ3aGlsZSAodHJ1ZSkgeyJ9LHsicGF0aCI6Im1vZGVzL3JwYy9qc29ubC50cyIsImxpbmUiOjMzLCJ0ZXh0IjoiICBjb25zdCBuZXdsaW5lSW5kZXggPSBidWZmZXIuaW5kZXhPZihcIlxcblwiKTsifSx7InBhdGgiOiJtb2Rlcy9ycGMvanNvbmwudHMiLCJsaW5lIjozNCwidGV4dCI6IiAgaWYgKG5ld2xpbmVJbmRleCA9PT0gLTEpIHsifSx7InBhdGgiOiJtb2Rlcy9ycGMvanNvbmwudHMiLCJsaW5lIjozNSwidGV4dCI6IiAgcmV0dXJuOyJ9LHsicGF0aCI6InV0aWxzL2ltYWdlLXJlc2l6ZS50cyIsImxpbmUiOjEyMiwidGV4dCI6IiAgbGV0IGN1cnJlbnRXaWR0aCA9IHRhcmdldFdpZHRoOyJ9LHsicGF0aCI6InV0aWxzL2ltYWdlLXJlc2l6ZS50cyIsImxpbmUiOjEyMywidGV4dCI6IiAgbGV0IGN1cnJlbnRIZWlnaHQgPSB0YXJnZXRIZWlnaHQ7In0seyJwYXRoIjoidXRpbHMvaW1hZ2UtcmVzaXplLnRzIiwibGluZSI6MTI0LCJ0ZXh0IjoiICAifSx7InBhdGgiOiJ1dGlscy9pbWFnZS1yZXNpemUudHMiLCJsaW5lIjoxMjUsInRleHQiOiJ3aGlsZSAodHJ1ZSkgeyJ9LHsicGF0aCI6InV0aWxzL2ltYWdlLXJlc2l6ZS50cyIsImxpbmUiOjEyNiwidGV4dCI6IiAgY29uc3QgY2FuZGlkYXRlcyA9IHRyeUVuY29kaW5ncyhjdXJyZW50V2lkdGgsIGN1cnJlbnRIZWlnaHQsIHF1YWxpdHlTdGVwcyk7In0seyJwYXRoIjoidXRpbHMvaW1hZ2UtcmVzaXplLnRzIiwibGluZSI6MTI3LCJ0ZXh0IjoiICBmb3IgKGNvbnN0IGNhbmRpZGF0ZSBvZiBjYW5kaWRhdGVzKSB7In0seyJwYXRoIjoidXRpbHMvaW1hZ2UtcmVzaXplLnRzIiwibGluZSI6MTI4LCJ0ZXh0IjoiICBpZiAoY2FuZGlkYXRlLmVuY29kZWRTaXplIDwgb3B0cy5tYXhCeXRlcykgeyJ9LHsicGF0aCI6ImNvcmUvcmVzb3VyY2UtbG9hZGVyLnRzIiwibGluZSI6OTQsInRleHQiOiIgIGxldCBjdXJyZW50RGlyID0gcmVzb2x2ZWRDd2Q7In0seyJwYXRoIjoiY29yZS9yZXNvdXJjZS1sb2FkZXIudHMiLCJsaW5lIjo5NSwidGV4dCI6IiAgY29uc3Qgcm9vdCA9IHJlc29sdmUoXCIvXCIpOyJ9LHsicGF0aCI6ImNvcmUvcmVzb3VyY2UtbG9hZGVyLnRzIiwibGluZSI6OTYsInRleHQiOiIgICJ9LHsicGF0aCI6ImNvcmUvcmVzb3VyY2UtbG9hZGVyLnRzIiwibGluZSI6OTcsInRleHQiOiJ3aGlsZSAodHJ1ZSkgeyJ9LHsicGF0aCI6ImNvcmUvcmVzb3VyY2UtbG9hZGVyLnRzIiwibGluZSI6OTgsInRleHQiOiIgIGNvbnN0IGNvbnRleHRGaWxlID0gbG9hZENvbnRleHRGaWxlRnJvbURpcihjdXJyZW50RGlyKTsifSx7InBhdGgiOiJjb3JlL3Jlc291cmNlLWxvYWRlci50cyIsImxpbmUiOjk5LCJ0ZXh0IjoiICBpZiAoY29udGV4dEZpbGUgJiYgIXNlZW5QYXRocy5oYXMoY29udGV4dEZpbGUucGF0aCkpIHsifSx7InBhdGgiOiJjb3JlL3Jlc291cmNlLWxvYWRlci50cyIsImxpbmUiOjEwMCwidGV4dCI6IiAgYW5jZXN0b3JDb250ZXh0RmlsZXMudW5zaGlmdChjb250ZXh0RmlsZSk7In0seyJwYXRoIjoibW9kZXMvaW50ZXJhY3RpdmUvaW50ZXJhY3RpdmUtbW9kZS50cyIsImxpbmUiOjc0MiwidGV4dCI6IiAgfSJ9LHsicGF0aCI6Im1vZGVzL2ludGVyYWN0aXZlL2ludGVyYWN0aXZlLW1vZGUudHMiLCJsaW5lIjo3NDMsInRleHQiOiIgICJ9LHsicGF0aCI6Im1vZGVzL2ludGVyYWN0aXZlL2ludGVyYWN0aXZlLW1vZGUudHMiLCJsaW5lIjo3NDQsInRleHQiOiIgIC8vIE1haW4gaW50ZXJhY3RpdmUgbG9vcCJ9LHsicGF0aCI6Im1vZGVzL2ludGVyYWN0aXZlL2ludGVyYWN0aXZlLW1vZGUudHMiLCJsaW5lIjo3NDUsInRleHQiOiJ3aGlsZSAodHJ1ZSkgeyJ9LHsicGF0aCI6Im1vZGVzL2ludGVyYWN0aXZlL2ludGVyYWN0aXZlLW1vZGUudHMiLCJsaW5lIjo3NDYsInRleHQiOiIgIGNvbnN0IHVzZXJJbnB1dCA9IGF3YWl0IHRoaXMuZ2V0VXNlcklucHV0KCk7In0seyJwYXRoIjoibW9kZXMvaW50ZXJhY3RpdmUvaW50ZXJhY3RpdmUtbW9kZS50cyIsImxpbmUiOjc0NywidGV4dCI6IiAgdHJ5IHsifSx7InBhdGgiOiJtb2Rlcy9pbnRlcmFjdGl2ZS9pbnRlcmFjdGl2ZS1tb2RlLnRzIiwibGluZSI6NzQ4LCJ0ZXh0IjoiICBhd2FpdCB0aGlzLnNlc3Npb24ucHJvbXB0KHVzZXJJbnB1dCk7In0seyJwYXRoIjoibW9kZXMvaW50ZXJhY3RpdmUvaW50ZXJhY3RpdmUtbW9kZS50cyIsImxpbmUiOjQxNTUsInRleHQiOiIgICJ9LHsicGF0aCI6Im1vZGVzL2ludGVyYWN0aXZlL2ludGVyYWN0aXZlLW1vZGUudHMiLCJsaW5lIjo0MTU2LCJ0ZXh0IjoiICAvLyBDaGVjayBpZiB3ZSBzaG91bGQgc2tpcCB0aGUgcHJvbXB0ICh1c2VyIHByZWZlcmVuY2UgdG8gYWx3YXlzIGRlZmF1bHQgdG8gbm8gc3VtbWFyeSkifSx7InBhdGgiOiJtb2Rlcy9pbnRlcmFjdGl2ZS9pbnRlcmFjdGl2ZS1tb2RlLnRzIiwibGluZSI6NDE1NywidGV4dCI6IiAgaWYgKCF0aGlzLnNldHRpbmdzTWFuYWdlci5nZXRCcmFuY2hTdW1tYXJ5U2tpcFByb21wdCgpKSB7In0seyJwYXRoIjoibW9kZXMvaW50ZXJhY3RpdmUvaW50ZXJhY3RpdmUtbW9kZS50cyIsImxpbmUiOjQxNTgsInRleHQiOiJ3aGlsZSAodHJ1ZSkgeyJ9LHsicGF0aCI6Im1vZGVzL2ludGVyYWN0aXZlL2ludGVyYWN0aXZlLW1vZGUudHMiLCJsaW5lIjo0MTU5LCJ0ZXh0IjoiICBjb25zdCBzdW1tYXJ5Q2hvaWNlID0gYXdhaXQgdGhpcy5zaG93RXh0ZW5zaW9uU2VsZWN0b3IoXCJTdW1tYXJpemUgYnJhbmNoP1wiLCBbIn0seyJwYXRoIjoibW9kZXMvaW50ZXJhY3RpdmUvaW50ZXJhY3RpdmUtbW9kZS50cyIsImxpbmUiOjQxNjAsInRleHQiOiIgIFwiTm8gc3VtbWFyeVwiLCJ9LHsicGF0aCI6Im1vZGVzL2ludGVyYWN0aXZlL2ludGVyYWN0aXZlLW1vZGUudHMiLCJsaW5lIjo0MTYxLCJ0ZXh0IjoiICBcIlN1bW1hcml6ZVwiLCJ9LHsicGF0aCI6Im1vZGVzL2ludGVyYWN0aXZlL2NvbXBvbmVudHMvdHJlZS1zZWxlY3Rvci50cyIsImxpbmUiOjEwMzAsInRleHQiOiIgIGNvbnN0IGluZGV4QnlFbnRyeUlkID0gbmV3IE1hcCh0aGlzLmZpbHRlcmVkTm9kZXMubWFwKChub2RlLCBpKSA9PiBbbm9kZS5ub2RlLmVudHJ5LmlkLCBpXSkpOyJ9LHsicGF0aCI6Im1vZGVzL2ludGVyYWN0aXZlL2NvbXBvbmVudHMvdHJlZS1zZWxlY3Rvci50cyIsImxpbmUiOjEwMzEsInRleHQiOiIgIGxldCBjdXJyZW50SWQ6IHN0cmluZyA9IHNlbGVjdGVkSWQ7In0seyJwYXRoIjoibW9kZXMvaW50ZXJhY3RpdmUvY29tcG9uZW50cy90cmVlLXNlbGVjdG9yLnRzIiwibGluZSI6MTAzMiwidGV4dCI6IiAgaWYgKGRpcmVjdGlvbiA9PT0gXCJkb3duXCIpIHsifSx7InBhdGgiOiJtb2Rlcy9pbnRlcmFjdGl2ZS9jb21wb25lbnRzL3RyZWUtc2VsZWN0b3IudHMiLCJsaW5lIjoxMDMzLCJ0ZXh0Ijoid2hpbGUgKHRydWUpIHsifSx7InBhdGgiOiJtb2Rlcy9pbnRlcmFjdGl2ZS9jb21wb25lbnRzL3RyZWUtc2VsZWN0b3IudHMiLCJsaW5lIjoxMDM0LCJ0ZXh0IjoiICBjb25zdCBjaGlsZHJlbjogc3RyaW5nW10gPSB0aGlzLnZpc2libGVDaGlsZHJlbk1hcC5nZXQoY3VycmVudElkKSA/PyBbXTsifSx7InBhdGgiOiJtb2Rlcy9pbnRlcmFjdGl2ZS9jb21wb25lbnRzL3RyZWUtc2VsZWN0b3IudHMiLCJsaW5lIjoxMDM1LCJ0ZXh0IjoiICBpZiAoY2hpbGRyZW4ubGVuZ3RoID09PSAwKSByZXR1cm4gaW5kZXhCeUVudHJ5SWQuZ2V0KGN1cnJlbnRJZCkhOyJ9LHsicGF0aCI6Im1vZGVzL2ludGVyYWN0aXZlL2NvbXBvbmVudHMvdHJlZS1zZWxlY3Rvci50cyIsImxpbmUiOjEwMzYsInRleHQiOiIgIGlmIChjaGlsZHJlbi5sZW5ndGggPiAxKSByZXR1cm4gaW5kZXhCeUVudHJ5SWQuZ2V0KGNoaWxkcmVuWzBdKSE7In0seyJwYXRoIjoibW9kZXMvaW50ZXJhY3RpdmUvY29tcG9uZW50cy90cmVlLXNlbGVjdG9yLnRzIiwibGluZSI6MTAzOSwidGV4dCI6IiAgfSJ9LHsicGF0aCI6Im1vZGVzL2ludGVyYWN0aXZlL2NvbXBvbmVudHMvdHJlZS1zZWxlY3Rvci50cyIsImxpbmUiOjEwNDAsInRleHQiOiIgICJ9LHsicGF0aCI6Im1vZGVzL2ludGVyYWN0aXZlL2NvbXBvbmVudHMvdHJlZS1zZWxlY3Rvci50cyIsImxpbmUiOjEwNDEsInRleHQiOiIgIC8vIGRpcmVjdGlvbiA9PT0gXCJ1cFwiIn0seyJwYXRoIjoibW9kZXMvaW50ZXJhY3RpdmUvY29tcG9uZW50cy90cmVlLXNlbGVjdG9yLnRzIiwibGluZSI6MTA0MiwidGV4dCI6IndoaWxlICh0cnVlKSB7In0seyJwYXRoIjoibW9kZXMvaW50ZXJhY3RpdmUvY29tcG9uZW50cy90cmVlLXNlbGVjdG9yLnRzIiwibGluZSI6MTA0MywidGV4dCI6IiAgY29uc3QgcGFyZW50SWQ6IHN0cmluZyB8IG51bGwgPSB0aGlzLnZpc2libGVQYXJlbnRNYXAuZ2V0KGN1cnJlbnRJZCkgPz8gbnVsbDsifSx7InBhdGgiOiJtb2Rlcy9pbnRlcmFjdGl2ZS9jb21wb25lbnRzL3RyZWUtc2VsZWN0b3IudHMiLCJsaW5lIjoxMDQ0LCJ0ZXh0IjoiICBpZiAocGFyZW50SWQgPT09IG51bGwpIHJldHVybiBpbmRleEJ5RW50cnlJZC5nZXQoY3VycmVudElkKSE7In0seyJwYXRoIjoibW9kZXMvaW50ZXJhY3RpdmUvY29tcG9uZW50cy90cmVlLXNlbGVjdG9yLnRzIiwibGluZSI6MTA0NSwidGV4dCI6IiAgY29uc3QgY2hpbGRyZW4gPSB0aGlzLnZpc2libGVDaGlsZHJlbk1hcC5nZXQocGFyZW50SWQpID8/IFtdOyJ9XSwicmVsYXRpdmVUbyI6InBhY2thZ2VzL2NvZGluZy1hZ2VudC9zcmMifSwiaXNFcnJvciI6ZmFsc2UsInRpbWVzdGFtcCI6MTc3NzU2MzI4MTM1NX19LHsidHlwZSI6Im1lc3NhZ2UiLCJpZCI6ImJkMDVkOGQzIiwicGFyZW50SWQiOiJmMmYxNzJkMiIsInRpbWVzdGFtcCI6IjIwMjYtMDQtMzBUMTU6MzQ6NDQuNzEzWiIsIm1lc3NhZ2UiOnsicm9sZSI6ImFzc2lzdGFudCIsImNvbnRlbnQiOlt7InR5cGUiOiJ0b29sQ2FsbCIsImlkIjoiY2FsbF85dTJnNEhFeFdKamhhMnh6R0FMWVhaVWx8ZmNfMDI3ZjFlYTE1ZGVmMzUwNTAxNjlmMzc2OTQwZTc4ODE5MTkyN2ZkOTY0MjZmMWFmNTUiLCJuYW1lIjoicmVhZCIsImFyZ3VtZW50cyI6eyJwYXRoIjoicGFja2FnZXMvY29kaW5nLWFnZW50L3NyYy9jb3JlL3Jlc291cmNlLWxvYWRlci50cyIsIm9mZnNldCI6NjAsImxpbWl0Ijo3MH19XSwiYXBpIjoib3BlbmFpLWNvZGV4LXJlc3BvbnNlcyIsInByb3ZpZGVyIjoib3BlbmFpLWNvZGV4IiwibW9kZWwiOiJncHQtNS41IiwidXNhZ2UiOnsiaW5wdXQiOjIzODgsIm91dHB1dCI6MzMsImNhY2hlUmVhZCI6MzczNzYsImNhY2hlV3JpdGUiOjAsInRvdGFsVG9rZW5zIjozOTc5NywiY29zdCI6eyJpbnB1dCI6MC4wMTE5NDAwMDAwMDAwMDAwMDEsIm91dHB1dCI6MC4wMDA5OSwiY2FjaGVSZWFkIjowLjAxODY4OCwiY2FjaGVXcml0ZSI6MCwidG90YWwiOjAuMDMxNjE4fX0sInN0b3BSZWFzb24iOiJ0b29sVXNlIiwidGltZXN0YW1wIjoxNzc3NTYzMjgxMzU2LCJyZXNwb25zZUlkIjoicmVzcF8wMjdmMWVhMTVkZWYzNTA1MDE2OWYzNzY5MWYxNTA4MTkxYjIwNmExMjhlNGJmNzhkNCJ9fSx7InR5cGUiOiJtZXNzYWdlIiwiaWQiOiIxMWM5MTI0MCIsInBhcmVudElkIjoiYmQwNWQ4ZDMiLCJ0aW1lc3RhbXAiOiIyMDI2LTA0LTMwVDE1OjM0OjQ0LjcxN1oiLCJtZXNzYWdlIjp7InJvbGUiOiJ0b29sUmVzdWx0IiwidG9vbENhbGxJZCI6ImNhbGxfOXUyZzRIRXhXSmpoYTJ4ekdBTFlYWlVsfGZjXzAyN2YxZWExNWRlZjM1MDUwMTY5ZjM3Njk0MGU3ODgxOTE5MjdmZDk2NDI2ZjFhZjU1IiwidG9vbE5hbWUiOiJyZWFkIiwiY29udGVudCI6W3sidHlwZSI6InRleHQiLCJ0ZXh0IjoiXHRmb3IgKGNvbnN0IGZpbGVuYW1lIG9mIGNhbmRpZGF0ZXMpIHtcblx0XHRjb25zdCBmaWxlUGF0aCA9IGpvaW4oZGlyLCBmaWxlbmFtZSk7XG5cdFx0aWYgKGV4aXN0c1N5bmMoZmlsZVBhdGgpKSB7XG5cdFx0XHR0cnkge1xuXHRcdFx0XHRyZXR1cm4ge1xuXHRcdFx0XHRcdHBhdGg6IGZpbGVQYXRoLFxuXHRcdFx0XHRcdGNvbnRlbnQ6IHJlYWRGaWxlU3luYyhmaWxlUGF0aCwgXCJ1dGYtOFwiKSxcblx0XHRcdFx0fTtcblx0XHRcdH0gY2F0Y2ggKGVycm9yKSB7XG5cdFx0XHRcdGNvbnNvbGUuZXJyb3IoY2hhbGsueWVsbG93KGBXYXJuaW5nOiBDb3VsZCBub3QgcmVhZCAke2ZpbGVQYXRofTogJHtlcnJvcn1gKSk7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cdHJldHVybiBudWxsO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gbG9hZFByb2plY3RDb250ZXh0RmlsZXMob3B0aW9uczoge1xuXHRjd2Q6IHN0cmluZztcblx0YWdlbnREaXI6IHN0cmluZztcbn0pOiBBcnJheTx7IHBhdGg6IHN0cmluZzsgY29udGVudDogc3RyaW5nIH0+IHtcblx0Y29uc3QgcmVzb2x2ZWRDd2QgPSBvcHRpb25zLmN3ZDtcblx0Y29uc3QgcmVzb2x2ZWRBZ2VudERpciA9IG9wdGlvbnMuYWdlbnREaXI7XG5cblx0Y29uc3QgY29udGV4dEZpbGVzOiBBcnJheTx7IHBhdGg6IHN0cmluZzsgY29udGVudDogc3RyaW5nIH0+ID0gW107XG5cdGNvbnN0IHNlZW5QYXRocyA9IG5ldyBTZXQ8c3RyaW5nPigpO1xuXG5cdGNvbnN0IGdsb2JhbENvbnRleHQgPSBsb2FkQ29udGV4dEZpbGVGcm9tRGlyKHJlc29sdmVkQWdlbnREaXIpO1xuXHRpZiAoZ2xvYmFsQ29udGV4dCkge1xuXHRcdGNvbnRleHRGaWxlcy5wdXNoKGdsb2JhbENvbnRleHQpO1xuXHRcdHNlZW5QYXRocy5hZGQoZ2xvYmFsQ29udGV4dC5wYXRoKTtcblx0fVxuXG5cdGNvbnN0IGFuY2VzdG9yQ29udGV4dEZpbGVzOiBBcnJheTx7IHBhdGg6IHN0cmluZzsgY29udGVudDogc3RyaW5nIH0+ID0gW107XG5cblx0bGV0IGN1cnJlbnREaXIgPSByZXNvbHZlZEN3ZDtcblx0Y29uc3Qgcm9vdCA9IHJlc29sdmUoXCIvXCIpO1xuXG5cdHdoaWxlICh0cnVlKSB7XG5cdFx0Y29uc3QgY29udGV4dEZpbGUgPSBsb2FkQ29udGV4dEZpbGVGcm9tRGlyKGN1cnJlbnREaXIpO1xuXHRcdGlmIChjb250ZXh0RmlsZSAmJiAhc2VlblBhdGhzLmhhcyhjb250ZXh0RmlsZS5wYXRoKSkge1xuXHRcdFx0YW5jZXN0b3JDb250ZXh0RmlsZXMudW5zaGlmdChjb250ZXh0RmlsZSk7XG5cdFx0XHRzZWVuUGF0aHMuYWRkKGNvbnRleHRGaWxlLnBhdGgpO1xuXHRcdH1cblxuXHRcdGlmIChjdXJyZW50RGlyID09PSByb290KSBicmVhaztcblxuXHRcdGNvbnN0IHBhcmVudERpciA9IHJlc29sdmUoY3VycmVudERpciwgXCIuLlwiKTtcblx0XHRpZiAocGFyZW50RGlyID09PSBjdXJyZW50RGlyKSBicmVhaztcblx0XHRjdXJyZW50RGlyID0gcGFyZW50RGlyO1xuXHR9XG5cblx0Y29udGV4dEZpbGVzLnB1c2goLi4uYW5jZXN0b3JDb250ZXh0RmlsZXMpO1xuXG5cdHJldHVybiBjb250ZXh0RmlsZXM7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRGVmYXVsdFJlc291cmNlTG9hZGVyT3B0aW9ucyB7XG5cdGN3ZDogc3RyaW5nO1xuXHRhZ2VudERpcjogc3RyaW5nO1xuXHRzZXR0aW5nc01hbmFnZXI/OiBTZXR0aW5nc01hbmFnZXI7XG5cdGV2ZW50QnVzPzogRXZlbnRCdXM7XG5cdGFkZGl0aW9uYWxFeHRlbnNpb25QYXRocz86IHN0cmluZ1tdO1xuXHRhZGRpdGlvbmFsU2tpbGxQYXRocz86IHN0cmluZ1tdO1xuXHRhZGRpdGlvbmFsUHJvbXB0VGVtcGxhdGVQYXRocz86IHN0cmluZ1tdO1xuXHRhZGRpdGlvbmFsVGhlbWVQYXRocz86IHN0cmluZ1tdO1xuXHRleHRlbnNpb25GYWN0b3JpZXM/OiBFeHRlbnNpb25GYWN0b3J5W107XG5cdG5vRXh0ZW5zaW9ucz86IGJvb2xlYW47XG5cdG5vU2tpbGxzPzogYm9vbGVhbjtcblx0bm9Qcm9tcHRUZW1wbGF0ZXM/OiBib29sZWFuO1xuXHRub1RoZW1lcz86IGJvb2xlYW47XG5cbls3OTAgbW9yZSBsaW5lcyBpbiBmaWxlLiBVc2Ugb2Zmc2V0PTEzMCB0byBjb250aW51ZS5dIn1dLCJpc0Vycm9yIjpmYWxzZSwidGltZXN0YW1wIjoxNzc3NTYzMjg0NzE3fX0seyJ0eXBlIjoibWVzc2FnZSIsImlkIjoiNzQwOWJlOTYiLCJwYXJlbnRJZCI6IjExYzkxMjQwIiwidGltZXN0YW1wIjoiMjAyNi0wNC0zMFQxNTozNDo1MC4zMDVaIiwibWVzc2FnZSI6eyJyb2xlIjoiYXNzaXN0YW50IiwiY29udGVudCI6W3sidHlwZSI6InRleHQiLCJ0ZXh0IjoiSSBjaGVja2VkLiBGb3IgcmVzb3VyY2UgZGlzY292ZXJ5IGluIGBwYWNrYWdlLW1hbmFnZXJgLCB5ZXMsIGAuYWdlbnRzL3NraWxsc2AgaXMgdGhlIG9ubHkgcmVzb3VyY2UgcGF0aCBkb2luZyBhbmNlc3RvciB3YWxrIHRvIGdpdCByb290LlxuXG5PdGhlciBhbmNlc3RvciB3YWxrcyBleGlzdCwgYnV0IHVucmVsYXRlZDpcbi0gY29udGV4dCBmaWxlcyBpbiBgcmVzb3VyY2UtbG9hZGVyLnRzYFxuLSBnaXQgZm9vdGVyIGRldGVjdGlvblxuLSBwYWNrYWdlIHJvb3QgZGV0ZWN0aW9uXG5cbkkgYWdyZWUgaXQgZmVlbHMgYmFuZGFpZHkgYmVjYXVzZSBgUGF0aE1ldGFkYXRhYCBpcyBwZXItcmVzb3VyY2UsIGJ1dCBgYWRkUmVzb3VyY2VzKClgIHRha2VzIG9uZSBtZXRhZGF0YSBvYmplY3QgZm9yIGEgYmF0Y2guIFRoZSBjbGVhbiB0aGluZyBpcyBub3Qg4oCcbG9vcCBpbiBjYWxsZXLigJ0gZm9yZXZlcjsgaXTigJlzIHRvIG1ha2UgZGlzY292ZXJ5IHByZXNlcnZlIHJvb3QgbWV0YWRhdGEgYmVmb3JlIGZsYXR0ZW5pbmcuXG5cbkN1cnJlbnQgcXVpY2sgcGF0Y2ggd29ya3MsIGJ1dCBjbGVhbmVyIHNoYXBlIHdvdWxkIGJlOlxuXG5gYGB0c1xudHlwZSBEaXNjb3ZlcmVkUmVzb3VyY2UgPSB7XG4gIHBhdGg6IHN0cmluZztcbiAgbWV0YWRhdGE6IFBhdGhNZXRhZGF0YTtcbiAgYmFzZURpcjogc3RyaW5nO1xufTtcbmBgYFxuXG5UaGVuIGAucGlgLCBgLmFnZW50c2AsIGFuZCBhbmNlc3RvciBgLmFnZW50c2AgYWxsIHByb2R1Y2UgZW50cmllcyB3aXRoIHRoZWlyIG93biBgYmFzZURpcmAsIGFuZCBgYWRkUmVzb3VyY2VzYCBqdXN0IGNvbnN1bWVzIHRob3NlLiBUaGF0IHJlbW92ZXMgc3BlY2lhbCBjYXNpbmcgZnJvbSB0aGUgY2FsbCBzaXRlIGFuZCBhdm9pZHMgZmxhdHRlbmluZyBwYXRocyBiZWZvcmUgbG9zaW5nIHByb3ZlbmFuY2UuXG5cbkZvciB0aGlzIGlzc3VlLCB0aG91Z2gsIHRoZSBtaW5pbWFsIG5vbi1pbnZhc2l2ZSBmaXggaXMgc3RpbGw6XG4tIHNwbGl0IGRpc2NvdmVyeSBieSByb290XG4tIHVzZSBgYmFzZURpcmAgaW4gZ3JvdXAga2V5XG4tIHJlbmRlciBncm91cCBsYWJlbCBmcm9tIGBiYXNlRGlyYFxuXG5UaGUgbG9vcCBleGlzdHMgb25seSBiZWNhdXNlIGFuY2VzdG9yIGAuYWdlbnRzYCBhbHJlYWR5IGNyZWF0ZXMgbXVsdGlwbGUgcm9vdHMuIiwidGV4dFNpZ25hdHVyZSI6IntcInZcIjoxLFwiaWRcIjpcIm1zZ18wMjdmMWVhMTVkZWYzNTA1MDE2OWYzNzY5NjI2NTg4MTkxODZmYjE2ODQ4ODMyZDJhNlwiLFwicGhhc2VcIjpcImZpbmFsX2Fuc3dlclwifSJ9XSwiYXBpIjoib3BlbmFpLWNvZGV4LXJlc3BvbnNlcyIsInByb3ZpZGVyIjoib3BlbmFpLWNvZGV4IiwibW9kZWwiOiJncHQtNS41IiwidXNhZ2UiOnsiaW5wdXQiOjgzMSwib3V0cHV0IjoyNTQsImNhY2hlUmVhZCI6Mzk0MjQsImNhY2hlV3JpdGUiOjAsInRvdGFsVG9rZW5zIjo0MDUwOSwiY29zdCI6eyJpbnB1dCI6MC4wMDQxNTUwMDAwMDAwMDAwMDEsIm91dHB1dCI6MC4wMDc2MiwiY2FjaGVSZWFkIjowLjAxOTcxMiwiY2FjaGVXcml0ZSI6MCwidG90YWwiOjAuMDMxNDg3fX0sInN0b3BSZWFzb24iOiJzdG9wIiwidGltZXN0YW1wIjoxNzc3NTYzMjg0NzE4LCJyZXNwb25zZUlkIjoicmVzcF8wMjdmMWVhMTVkZWYzNTA1MDE2OWYzNzY5NTQyYjQ4MTkxOWQwMjQwZGE3OWMxYzc1OSJ9fSx7InR5cGUiOiJtZXNzYWdlIiwiaWQiOiIzYjcyODg2OSIsInBhcmVudElkIjoiNzQwOWJlOTYiLCJ0aW1lc3RhbXAiOiIyMDI2LTA0LTMwVDE1OjM2OjM4Ljg4N1oiLCJtZXNzYWdlIjp7InJvbGUiOiJ1c2VyIiwiY29udGVudCI6W3sidHlwZSI6InRleHQiLCJ0ZXh0IjoibGV0J3MgdHJ5IHRvIHRoaXMgY2xlYW5seSBub3cuIEkndmUgcmVzZXQgdGhlIGNvZGUsIGxldCdzIHBsYW4gdGhpcyBjbGVhbiB1cC4gZG8gbm90IG1ha2UgY2hhbmdlcyB5ZXQsIGV4cGxhaW4gd2hhdCBjaGFuZ2VzIHdlIHdvdWxkIG5lZWQgaGVyZSJ9XSwidGltZXN0YW1wIjoxNzc3NTYzMzk4ODg1fX0seyJ0eXBlIjoibWVzc2FnZSIsImlkIjoiMzYwNDA4ZDciLCJwYXJlbnRJZCI6IjNiNzI4ODY5IiwidGltZXN0YW1wIjoiMjAyNi0wNC0zMFQxNTozNjo1MC4zNDlaIiwibWVzc2FnZSI6eyJyb2xlIjoiYXNzaXN0YW50IiwiY29udGVudCI6W3sidHlwZSI6InRleHQiLCJ0ZXh0IjoiQ2xlYW4gcGxhbjpcblxuMS4gTW9kZWwgYXV0by1kaXNjb3ZlcmVkIHBhdGhzIHdpdGggcHJvdmVuYW5jZVxuXG5BZGQgaW50ZXJuYWwgdHlwZSBpbiBgcGFja2FnZS1tYW5hZ2VyLnRzYDpcblxuYGBgdHNcbmludGVyZmFjZSBBdXRvUmVzb3VyY2VFbnRyeSB7XG4gIHBhdGg6IHN0cmluZztcbiAgYmFzZURpcjogc3RyaW5nO1xuICBtZXRhZGF0YTogUGF0aE1ldGFkYXRhO1xufVxuYGBgXG5cbm9yIG5hcnJvd2VyOlxuXG5gYGB0c1xuaW50ZXJmYWNlIEF1dG9SZXNvdXJjZVNvdXJjZSB7XG4gIHBhdGhzOiBzdHJpbmdbXTtcbiAgYmFzZURpcjogc3RyaW5nO1xuICBtZXRhZGF0YTogUGF0aE1ldGFkYXRhO1xufVxuYGBgXG5cbknigJlkIHByZWZlciBgQXV0b1Jlc291cmNlU291cmNlYDogbGVzcyBjaHVybiwgbWF0Y2hlcyBjdXJyZW50IGBhZGRSZXNvdXJjZXMoKWAgYmF0Y2hpbmcuXG5cbjIuIEJ1aWxkIGF1dG8gcmVzb3VyY2Ugc291cmNlcyBpbnN0ZWFkIG9mIGZsYXR0ZW5pbmdcblxuRm9yIHVzZXI6XG5cbmBgYHRzXG5jb25zdCB1c2VyU291cmNlcyA9IHtcbiAgc2tpbGxzOiBbXG4gICAgeyBwYXRoczogY29sbGVjdEF1dG9Ta2lsbEVudHJpZXModXNlckRpcnMuc2tpbGxzLCBcInBpXCIpLCBiYXNlRGlyOiBnbG9iYWxCYXNlRGlyLCBtZXRhZGF0YTogdXNlck1ldGFkYXRhIH0sXG4gICAgeyBwYXRoczogY29sbGVjdEF1dG9Ta2lsbEVudHJpZXModXNlckFnZW50c1NraWxsc0RpciwgXCJhZ2VudHNcIiksIGJhc2VEaXI6IHVzZXJBZ2VudHNCYXNlRGlyLCBtZXRhZGF0YTogeyAuLi51c2VyTWV0YWRhdGEsIGJhc2VEaXI6IHVzZXJBZ2VudHNCYXNlRGlyIH0gfSxcbiAgXSxcbn1cbmBgYFxuXG5Gb3IgcHJvamVjdDpcblxuYGBgdHNcbnNraWxsczogW1xuICB7IHBhdGhzOiBjb2xsZWN0QXV0b1NraWxsRW50cmllcyhwcm9qZWN0RGlycy5za2lsbHMsIFwicGlcIiksIGJhc2VEaXI6IHByb2plY3RCYXNlRGlyLCBtZXRhZGF0YTogcHJvamVjdE1ldGFkYXRhIH0sXG4gIC4uLnByb2plY3RBZ2VudHNTa2lsbERpcnMubWFwKChza2lsbHNEaXIpID0+IHtcbiAgICBjb25zdCBiYXNlRGlyID0gZGlybmFtZShza2lsbHNEaXIpOyAvLyAuYWdlbnRzXG4gICAgcmV0dXJuIHtcbiAgICAgIHBhdGhzOiBjb2xsZWN0QXV0b1NraWxsRW50cmllcyhza2lsbHNEaXIsIFwiYWdlbnRzXCIpLFxuICAgICAgYmFzZURpcixcbiAgICAgIG1ldGFkYXRhOiB7IC4uLnByb2plY3RNZXRhZGF0YSwgYmFzZURpciB9LFxuICAgIH07XG4gIH0pLFxuXVxuYGBgXG5cblRoZW4gbG9vcCBzb3VyY2VzIGdlbmVyaWNhbGx5OlxuXG5gYGB0c1xuZm9yIChjb25zdCBzb3VyY2Ugb2Ygc291cmNlcy5za2lsbHMpIHtcbiAgYWRkUmVzb3VyY2VzKFwic2tpbGxzXCIsIHNvdXJjZS5wYXRocywgc291cmNlLm1ldGFkYXRhLCBvdmVycmlkZXMuc2tpbGxzLCBzb3VyY2UuYmFzZURpcik7XG59XG5gYGBcblxuVGhpcyBrZWVwcyBwcm92ZW5hbmNlIGJlZm9yZSBmbGF0dGVuaW5nLlxuXG4zLiBVcGRhdGUgZ3JvdXBpbmcgdG8gdXNlIGBiYXNlRGlyYFxuXG5JbiBgY29uZmlnLXNlbGVjdG9yLnRzYDpcblxuYGBgdHNcbmNvbnN0IGdyb3VwS2V5ID0gYCR7bWV0YWRhdGEub3JpZ2lufToke21ldGFkYXRhLnNjb3BlfToke21ldGFkYXRhLnNvdXJjZX06JHttZXRhZGF0YS5iYXNlRGlyID8/IFwiXCJ9YDtcbmBgYFxuXG5UaGlzIGlzIG5lY2Vzc2FyeSBiZWNhdXNlIHNhbWUgYG9yaWdpbi9zY29wZS9zb3VyY2VgIGNhbiBub3cgcmVwcmVzZW50IGRpZmZlcmVudCB0b3AtbGV2ZWwgcm9vdHMuXG5cbjQuIFVwZGF0ZSBsYWJlbHMgdG8gcmVuZGVyIGZyb20gYGJhc2VEaXJgXG5cbkluc3RlYWQgb2YgaGFyZGNvZGVkIGB+Ly5waS9hZ2VudC9gIGFuZCBgLnBpL2AsIHVzZSBgbWV0YWRhdGEuYmFzZURpcmAgd2hlbiBhdmFpbGFibGUuXG5cbkxpa2VseSBoZWxwZXI6XG5cbmBgYHRzXG5mdW5jdGlvbiBmb3JtYXRCYXNlRGlyKGJhc2VEaXI6IHN0cmluZyk6IHN0cmluZ1xuYGBgXG5cbkV4cGVjdGVkIGxhYmVsczpcbi0gYFVzZXIgKH4vLnBpL2FnZW50LylgXG4tIGBVc2VyICh+Ly5hZ2VudHMvKWBcbi0gYFByb2plY3QgKC5waS8pYCBvciBgUHJvamVjdCAoL2Ficy9wYXRoLy5hZ2VudHMvKWAgZGVwZW5kaW5nIGN3ZCByZWxhdGlvbnNoaXBcblxuQ291bGQgYWxzbyBtYWtlIHByb2plY3QgcGF0aHMgcmVsYXRpdmUgdG8gYGN3ZGAsIGJ1dCBgZ2V0R3JvdXBMYWJlbCgpYCBjdXJyZW50bHkgbGFja3MgYGN3ZGAuIFNvIHNpbXBsZXN0IGlzIGhvbWUtc2hvcnRlbmVkIGFic29sdXRlIHBhdGguIElmIHdlIHdhbnQgcHJldHR5IHByb2plY3QtcmVsYXRpdmUgbGFiZWxzLCB3ZeKAmWQgbmVlZCBwYXNzIGBjd2RgIGludG8gYGJ1aWxkR3JvdXBzKClgLlxuXG41LiBFbnN1cmUgdG9nZ2xlcyB1c2UgY29ycmVjdCBiYXNlRGlyXG5cbkltcG9ydGFudDogYGFkZFJlc291cmNlcyguLi4sIGJhc2VEaXIpYCBpcyB1c2VkIGJ5IGBpc0VuYWJsZWRCeU92ZXJyaWRlcygpYCwgYW5kIGBtZXRhZGF0YS5iYXNlRGlyYCBpcyB1c2VkIGJ5IHBhY2thZ2UgcGF0dGVybnMgZWxzZXdoZXJlLiBGb3IgYC5hZ2VudHNgLCBib3RoIHNob3VsZCBiZSBgLmFnZW50c2AsIG5vdCBgLnBpL2FnZW50YC5cblxuVGhpcyBhdm9pZHMgd2VpcmQgYC4uLy4uLy5hZ2VudHMvLi4uYCBwYXR0ZXJucyB3aGVuIHRvZ2dsaW5nLlxuXG42LiBUZXN0c1xuXG5BZGQvYWRqdXN0IGEgcGFja2FnZS1tYW5hZ2VyL2NvbmZpZy1zZWxlY3RvciB0ZXN0IGlmIGV4aXN0aW5nIHRlc3Qgc3VyZmFjZSBhbGxvd3M6XG4tIGNyZWF0ZSBmYWtlIGB+Ly5waS9hZ2VudC9za2lsbHMvYS9TS0lMTC5tZGBcbi0gY3JlYXRlIGZha2UgYH4vLmFnZW50cy9za2lsbHMvYi9TS0lMTC5tZGBcbi0gcmVzb2x2ZSBwYXRoc1xuLSBhc3NlcnQgc2FtZSBgc291cmNlOiBcImF1dG9cImAgYnV0IGRpZmZlcmVudCBgbWV0YWRhdGEuYmFzZURpcmBcbi0gaWRlYWxseSBhc3NlcnQgY29uZmlnIGdyb3VwaW5nIHByb2R1Y2VzIHNlcGFyYXRlIGdyb3Vwc1xuXG5Qb3RlbnRpYWwgdW5yZXNvbHZlZCBxdWVzdGlvbjpcbi0gU2hvdWxkIHByb2plY3QgYC5hZ2VudHNgIGxhYmVscyBiZSBhYnNvbHV0ZSwgaG9tZS1yZWxhdGl2ZSwgb3IgY3dkLXJlbGF0aXZlPyBNeSBkZWZhdWx0OiBjd2QtcmVsYXRpdmUgd2hlbiB1bmRlciBjd2QvZ2l0IHJvb3Qgd291bGQgbG9vayBjbGVhbmVyLCBidXQgcmVxdWlyZXMgdGhyZWFkaW5nIGBjd2RgIGludG8gbGFiZWwgYnVpbGRpbmcuIiwidGV4dFNpZ25hdHVyZSI6IntcInZcIjoxLFwiaWRcIjpcIm1zZ18wMjdmMWVhMTVkZWYzNTA1MDE2OWYzNzcwOTNkNzA4MTkxOWFiNGJiYWE4OTkwZDQzYlwiLFwicGhhc2VcIjpcImZpbmFsX2Fuc3dlclwifSJ9XSwiYXBpIjoib3BlbmFpLWNvZGV4LXJlc3BvbnNlcyIsInByb3ZpZGVyIjoib3BlbmFpLWNvZGV4IiwibW9kZWwiOiJncHQtNS41IiwidXNhZ2UiOnsiaW5wdXQiOjYxMiwib3V0cHV0Ijo3NjEsImNhY2hlUmVhZCI6Mzk5MzYsImNhY2hlV3JpdGUiOjAsInRvdGFsVG9rZW5zIjo0MTMwOSwiY29zdCI6eyJpbnB1dCI6MC4wMDMwNjAwMDAwMDAwMDAwMDAyLCJvdXRwdXQiOjAuMDIyODMsImNhY2hlUmVhZCI6MC4wMTk5NjgsImNhY2hlV3JpdGUiOjAsInRvdGFsIjowLjA0NTg1Nzk5OTk5OTk5OTk5Nn19LCJzdG9wUmVhc29uIjoic3RvcCIsInRpbWVzdGFtcCI6MTc3NzU2MzM5ODg4NywicmVzcG9uc2VJZCI6InJlc3BfMDI3ZjFlYTE1ZGVmMzUwNTAxNjlmMzc3MDc5NjM0ODE5MTk5N2MwOGQyZWQ5N2ZjNzEifX0seyJ0eXBlIjoibWVzc2FnZSIsImlkIjoiZDM3MGEzNGMiLCJwYXJlbnRJZCI6IjM2MDQwOGQ3IiwidGltZXN0YW1wIjoiMjAyNi0wNC0zMFQxNTozODozOC43MjVaIiwibWVzc2FnZSI6eyJyb2xlIjoidXNlciIsImNvbnRlbnQiOlt7InR5cGUiOiJ0ZXh0IiwidGV4dCI6Im9rLCBsZXQncyBzdGFydCBieSBhZGRpbmcgZmFpbGluZyB0ZXN0cyBmb3IgdGhpcy4gYXJlIHRoZXJlIGFscmVhZHkgdGVzdHMgZm9yIHRoZSB0aGUgcGFja2FnZSBtYW5hZ2VyIC8gY29uZmlnIHNlbGVjdG9yPyJ9XSwidGltZXN0YW1wIjoxNzc3NTYzNTE4NzI0fX0seyJ0eXBlIjoibWVzc2FnZSIsImlkIjoiYWYyNWE1NjUiLCJwYXJlbnRJZCI6ImQzNzBhMzRjIiwidGltZXN0YW1wIjoiMjAyNi0wNC0zMFQxNTozODo0Mi4wNzFaIiwibWVzc2FnZSI6eyJyb2xlIjoiYXNzaXN0YW50IiwiY29udGVudCI6W3sidHlwZSI6InRvb2xDYWxsIiwiaWQiOiJjYWxsX21UUGhpSDZTOEVSdVZxcVpBcTcxUURObXxmY18wMjdmMWVhMTVkZWYzNTA1MDE2OWYzNzc4MWY4ODA4MTkxOWNmZmZlNTdlMjQ3OWYyMSIsIm5hbWUiOiJmaW5kIiwiYXJndW1lbnRzIjp7InBhdHRlcm4iOiIqcGFja2FnZSptYW5hZ2VyKi50ZXN0LnRzIiwicGF0aCI6InBhY2thZ2VzL2NvZGluZy1hZ2VudC90ZXN0In19LHsidHlwZSI6InRvb2xDYWxsIiwiaWQiOiJjYWxsX2Q4UDM0SHZ4UEpoWEtqWnRNNnVYZzhaUnxmY18wMjdmMWVhMTVkZWYzNTA1MDE2OWYzNzc4MWY4OTQ4MTkxYjU1OTlhMDk2N2Q2MTRkMCIsIm5hbWUiOiJmaW5kIiwiYXJndW1lbnRzIjp7InBhdHRlcm4iOiIqY29uZmlnKnNlbGVjdG9yKi50ZXN0LnRzIiwicGF0aCI6InBhY2thZ2VzL2NvZGluZy1hZ2VudC90ZXN0In19LHsidHlwZSI6InRvb2xDYWxsIiwiaWQiOiJjYWxsX2VFSW9Qa082T3p4ZGJvdGtMeDRqQkQxdHxmY18wMjdmMWVhMTVkZWYzNTA1MDE2OWYzNzc4MWY4OTg4MTkxOTJkZDc0MmEzNDczZTY1OSIsIm5hbWUiOiJncmVwIiwiYXJndW1lbnRzIjp7InBhdHRlcm4iOiJEZWZhdWx0UGFja2FnZU1hbmFnZXJ8UGFja2FnZU1hbmFnZXJ8c2VsZWN0Q29uZmlnfENvbmZpZ1NlbGVjdG9yQ29tcG9uZW50fHBpIGNvbmZpZ3xyZXNvbHZlZFBhdGhzIiwicGF0aCI6InBhY2thZ2VzL2NvZGluZy1hZ2VudC90ZXN0IiwiZ2xvYiI6IioudGVzdC50cyIsImNvbnRleHQiOjIsImxpbWl0IjoxMDB9fV0sImFwaSI6Im9wZW5haS1jb2RleC1yZXNwb25zZXMiLCJwcm92aWRlciI6Im9wZW5haS1jb2RleCIsIm1vZGVsIjoiZ3B0LTUuNSIsInVzYWdlIjp7ImlucHV0Ijo4OTEsIm91dHB1dCI6MTI4LCJjYWNoZVJlYWQiOjQwNDQ4LCJjYWNoZVdyaXRlIjowLCJ0b3RhbFRva2VucyI6NDE0NjcsImNvc3QiOnsiaW5wdXQiOjAuMDA0NDU1MDAwMDAwMDAwMDAxLCJvdXRwdXQiOjAuMDAzODQsImNhY2hlUmVhZCI6MC4wMjAyMjQsImNhY2hlV3JpdGUiOjAsInRvdGFsIjowLjAyODUxOX19LCJzdG9wUmVhc29uIjoidG9vbFVzZSIsInRpbWVzdGFtcCI6MTc3NzU2MzUxODcyNSwicmVzcG9uc2VJZCI6InJlc3BfMDI3ZjFlYTE1ZGVmMzUwNTAxNjlmMzc3N2Y3YzMwODE5MThmOWQ4YTk1YTBhOGI5ODYifX0seyJ0eXBlIjoibWVzc2FnZSIsImlkIjoiNGJkNDU1ZTgiLCJwYXJlbnRJZCI6ImFmMjVhNTY1IiwidGltZXN0YW1wIjoiMjAyNi0wNC0zMFQxNTozODo0Mi4wOTBaIiwibWVzc2FnZSI6eyJyb2xlIjoidG9vbFJlc3VsdCIsInRvb2xDYWxsSWQiOiJjYWxsX21UUGhpSDZTOEVSdVZxcVpBcTcxUURObXxmY18wMjdmMWVhMTVkZWYzNTA1MDE2OWYzNzc4MWY4ODA4MTkxOWNmZmZlNTdlMjQ3OWYyMSIsInRvb2xOYW1lIjoiZmluZCIsImNvbnRlbnQiOlt7InR5cGUiOiJ0ZXh0IiwidGV4dCI6InBhY2thZ2UtbWFuYWdlci1zc2gudGVzdC50c1xucGFja2FnZS1tYW5hZ2VyLnRlc3QudHMifV0sImRldGFpbHMiOnsidG90YWxSZXN1bHRzIjoyLCJwYXRocyI6WyJwYWNrYWdlLW1hbmFnZXItc3NoLnRlc3QudHMiLCJwYWNrYWdlLW1hbmFnZXIudGVzdC50cyJdLCJyZWxhdGl2ZVRvIjoicGFja2FnZXMvY29kaW5nLWFnZW50L3Rlc3QifSwiaXNFcnJvciI6ZmFsc2UsInRpbWVzdGFtcCI6MTc3NzU2MzUyMjA5MH19LHsidHlwZSI6Im1lc3NhZ2UiLCJpZCI6IjgwYzAzNzNjIiwicGFyZW50SWQiOiI0YmQ0NTVlOCIsInRpbWVzdGFtcCI6IjIwMjYtMDQtMzBUMTU6Mzg6NDIuMDkwWiIsIm1lc3NhZ2UiOnsicm9sZSI6InRvb2xSZXN1bHQiLCJ0b29sQ2FsbElkIjoiY2FsbF9kOFAzNEh2eFBKaFhLalp0TTZ1WGc4WlJ8ZmNfMDI3ZjFlYTE1ZGVmMzUwNTAxNjlmMzc3ODFmODk0ODE5MWI1NTk5YTA5NjdkNjE0ZDAiLCJ0b29sTmFtZSI6ImZpbmQiLCJjb250ZW50IjpbeyJ0eXBlIjoidGV4dCIsInRleHQiOiJObyBmaWxlcyBmb3VuZCBtYXRjaGluZyB0aGUgcGF0dGVybi4ifV0sImRldGFpbHMiOnt9LCJpc0Vycm9yIjpmYWxzZSwidGltZXN0YW1wIjoxNzc3NTYzNTIyMDkwfX0seyJ0eXBlIjoibWVzc2FnZSIsImlkIjoiNmI4NTI5YjciLCJwYXJlbnRJZCI6IjgwYzAzNzNjIiwidGltZXN0YW1wIjoiMjAyNi0wNC0zMFQxNTozODo0Mi4wOTBaIiwibWVzc2FnZSI6eyJyb2xlIjoidG9vbFJlc3VsdCIsInRvb2xDYWxsSWQiOiJjYWxsX2VFSW9Qa082T3p4ZGJvdGtMeDRqQkQxdHxmY18wMjdmMWVhMTVkZWYzNTA1MDE2OWYzNzc4MWY4OTg4MTkxOTJkZDc0MmEzNDczZTY1OSIsInRvb2xOYW1lIjoiZ3JlcCIsImNvbnRlbnQiOlt7InR5cGUiOiJ0ZXh0IiwidGV4dCI6InBhY2thZ2UtbWFuYWdlci1zc2gudGVzdC50czozOiAgIGltcG9ydCB7IGpvaW4gfSBmcm9tIFwibm9kZTpwYXRoXCI7XG5wYWNrYWdlLW1hbmFnZXItc3NoLnRlc3QudHM6NDogICBpbXBvcnQgeyBhZnRlckVhY2gsIGJlZm9yZUVhY2gsIGRlc2NyaWJlLCBleHBlY3QsIGl0IH0gZnJvbSBcInZpdGVzdFwiO1xucGFja2FnZS1tYW5hZ2VyLXNzaC50ZXN0LnRzOjU6IGltcG9ydCB7IERlZmF1bHRQYWNrYWdlTWFuYWdlciB9IGZyb20gXCIuLi9zcmMvY29yZS9wYWNrYWdlLW1hbmFnZXIuanNcIjtcbnBhY2thZ2UtbWFuYWdlci1zc2gudGVzdC50czo2OiAgIGltcG9ydCB7IFNldHRpbmdzTWFuYWdlciB9IGZyb20gXCIuLi9zcmMvY29yZS9zZXR0aW5ncy1tYW5hZ2VyLmpzXCI7XG5wYWNrYWdlLW1hbmFnZXItc3NoLnRlc3QudHM6NzogICBcbnBhY2thZ2UtbWFuYWdlci1zc2gudGVzdC50czoxMDogICBsZXQgYWdlbnREaXI6IHN0cmluZztcbnBhY2thZ2UtbWFuYWdlci1zc2gudGVzdC50czoxMTogICBsZXQgc2V0dGluZ3NNYW5hZ2VyOiBTZXR0aW5nc01hbmFnZXI7XG5wYWNrYWdlLW1hbmFnZXItc3NoLnRlc3QudHM6MTI6IGxldCBwYWNrYWdlTWFuYWdlcjogRGVmYXVsdFBhY2thZ2VNYW5hZ2VyO1xucGFja2FnZS1tYW5hZ2VyLXNzaC50ZXN0LnRzOjEzOiAgIFxucGFja2FnZS1tYW5hZ2VyLXNzaC50ZXN0LnRzOjE0OiAgIGJlZm9yZUVhY2goKCkgPT4ge1xucGFja2FnZS1tYW5hZ2VyLXNzaC50ZXN0LnRzOjE5OiAgIFxucGFja2FnZS1tYW5hZ2VyLXNzaC50ZXN0LnRzOjIwOiAgIHNldHRpbmdzTWFuYWdlciA9IFNldHRpbmdzTWFuYWdlci5pbk1lbW9yeSgpO1xucGFja2FnZS1tYW5hZ2VyLXNzaC50ZXN0LnRzOjIxOiBwYWNrYWdlTWFuYWdlciA9IG5ldyBEZWZhdWx0UGFja2FnZU1hbmFnZXIoe1xucGFja2FnZS1tYW5hZ2VyLXNzaC50ZXN0LnRzOjIyOiAgIGN3ZDogdGVtcERpcixcbnBhY2thZ2UtbWFuYWdlci1zc2gudGVzdC50czoyMzogICBhZ2VudERpcixcbmdpdC11cGRhdGUudGVzdC50czoyOiAgICogVGVzdHMgZm9yIGdpdC1iYXNlZCBleHRlbnNpb24gdXBkYXRlcywgc3BlY2lmaWNhbGx5IGhhbmRsaW5nIGZvcmNlLXB1c2ggc2NlbmFyaW9zLlxuZ2l0LXVwZGF0ZS50ZXN0LnRzOjM6ICAgKlxuZ2l0LXVwZGF0ZS50ZXN0LnRzOjQ6ICogVGhlc2UgdGVzdHMgdmVyaWZ5IHRoYXQgRGVmYXVsdFBhY2thZ2VNYW5hZ2VyLnVwZGF0ZSgpIGhhbmRsZXM6XG5naXQtdXBkYXRlLnRlc3QudHM6NTogICAqIC0gTm9ybWFsIGdpdCB1cGRhdGVzIChubyBmb3JjZS1wdXNoKVxuZ2l0LXVwZGF0ZS50ZXN0LnRzOjY6ICAgKiAtIEZvcmNlLXB1c2hlZCByZW1vdGVzIGdyYWNlZnVsbHkgKGN1cnJlbnRseSBmYWlscywgZml4IG5lZWRlZClcbmdpdC11cGRhdGUudGVzdC50czoxMzogICBpbXBvcnQgeyBqb2luIH0gZnJvbSBcIm5vZGU6cGF0aFwiO1xuZ2l0LXVwZGF0ZS50ZXN0LnRzOjE0OiAgIGltcG9ydCB7IGFmdGVyRWFjaCwgYmVmb3JlRWFjaCwgZGVzY3JpYmUsIGV4cGVjdCwgaXQgfSBmcm9tIFwidml0ZXN0XCI7XG5naXQtdXBkYXRlLnRlc3QudHM6MTU6IGltcG9ydCB7IERlZmF1bHRQYWNrYWdlTWFuYWdlciB9IGZyb20gXCIuLi9zcmMvY29yZS9wYWNrYWdlLW1hbmFnZXIuanNcIjtcbmdpdC11cGRhdGUudGVzdC50czoxNjogICBpbXBvcnQgeyBTZXR0aW5nc01hbmFnZXIgfSBmcm9tIFwiLi4vc3JjL2NvcmUvc2V0dGluZ3MtbWFuYWdlci5qc1wiO1xuZ2l0LXVwZGF0ZS50ZXN0LnRzOjE3OiAgIFxuZ2l0LXVwZGF0ZS50ZXN0LnRzOjUyOiAgIH1cbmdpdC11cGRhdGUudGVzdC50czo1MzogICBcbmdpdC11cGRhdGUudGVzdC50czo1NDogZGVzY3JpYmUoXCJEZWZhdWx0UGFja2FnZU1hbmFnZXIgZ2l0IHVwZGF0ZVwiLCAoKSA9PiB7XG5naXQtdXBkYXRlLnRlc3QudHM6NTU6ICAgbGV0IHRlbXBEaXI6IHN0cmluZztcbmdpdC11cGRhdGUudGVzdC50czo1NjogICBsZXQgcmVtb3RlRGlyOiBzdHJpbmc7IC8vIFNpbXVsYXRlcyB0aGUgXCJyZW1vdGVcIiByZXBvc2l0b3J5XG5naXQtdXBkYXRlLnRlc3QudHM6NTg6ICAgbGV0IGluc3RhbGxlZERpcjogc3RyaW5nOyAvLyBUaGUgaW5zdGFsbGVkIGV4dGVuc2lvbiBkaXJlY3RvcnlcbmdpdC11cGRhdGUudGVzdC50czo1OTogICBsZXQgc2V0dGluZ3NNYW5hZ2VyOiBTZXR0aW5nc01hbmFnZXI7XG5naXQtdXBkYXRlLnRlc3QudHM6NjA6IGxldCBwYWNrYWdlTWFuYWdlcjogRGVmYXVsdFBhY2thZ2VNYW5hZ2VyO1xuZ2l0LXVwZGF0ZS50ZXN0LnRzOjYxOiAgIFxuZ2l0LXVwZGF0ZS50ZXN0LnRzOjYyOiAgIC8vIEdpdCBzb3VyY2UgdGhhdCBtYXBzIHRvIG91ciBpbnN0YWxsZWQgZGlyZWN0b3J5IHN0cnVjdHVyZS5cbmdpdC11cGRhdGUudGVzdC50czo3NzogICBcbmdpdC11cGRhdGUudGVzdC50czo3ODogICBzZXR0aW5nc01hbmFnZXIgPSBTZXR0aW5nc01hbmFnZXIuaW5NZW1vcnkoKTtcbmdpdC11cGRhdGUudGVzdC50czo3OTogcGFja2FnZU1hbmFnZXIgPSBuZXcgRGVmYXVsdFBhY2thZ2VNYW5hZ2VyKHtcbmdpdC11cGRhdGUudGVzdC50czo4MDogICBjd2Q6IHRlbXBEaXIsXG5naXQtdXBkYXRlLnRlc3QudHM6ODE6ICAgYWdlbnREaXIsXG5wYWNrYWdlLW1hbmFnZXIudGVzdC50czo1OiAgIGltcG9ydCB7IFBhc3NUaHJvdWdoIH0gZnJvbSBcIm5vZGU6c3RyZWFtXCI7XG5wYWNrYWdlLW1hbmFnZXIudGVzdC50czo2OiAgIGltcG9ydCB7IGFmdGVyRWFjaCwgYmVmb3JlRWFjaCwgZGVzY3JpYmUsIGV4cGVjdCwgaXQsIHZpIH0gZnJvbSBcInZpdGVzdFwiO1xucGFja2FnZS1tYW5hZ2VyLnRlc3QudHM6NzogaW1wb3J0IHsgRGVmYXVsdFBhY2thZ2VNYW5hZ2VyLCB0eXBlIFByb2dyZXNzRXZlbnQsIHR5cGUgUmVzb2x2ZWRSZXNvdXJjZSB9IGZyb20gXCIuLi9zcmMvY29yZS9wYWNrYWdlLW1hbmFnZXIuanNcIjtcbnBhY2thZ2UtbWFuYWdlci50ZXN0LnRzOjg6ICAgaW1wb3J0IHsgU2V0dGluZ3NNYW5hZ2VyIH0gZnJvbSBcIi4uL3NyYy9jb3JlL3NldHRpbmdzLW1hbmFnZXIuanNcIjtcbnBhY2thZ2UtbWFuYWdlci50ZXN0LnRzOjk6ICAgXG5wYWNrYWdlLW1hbmFnZXIudGVzdC50czo0MzogICB9O1xucGFja2FnZS1tYW5hZ2VyLnRlc3QudHM6NDQ6ICAgXG5wYWNrYWdlLW1hbmFnZXIudGVzdC50czo0NTogZGVzY3JpYmUoXCJEZWZhdWx0UGFja2FnZU1hbmFnZXJcIiwgKCkgPT4ge1xucGFja2FnZS1tYW5hZ2VyLnRlc3QudHM6NDY6ICAgbGV0IHRlbXBEaXI6IHN0cmluZztcbnBhY2thZ2UtbWFuYWdlci50ZXN0LnRzOjQ3OiAgIGxldCBhZ2VudERpcjogc3RyaW5nO1xucGFja2FnZS1tYW5hZ2VyLnRlc3QudHM6NDc6ICAgbGV0IGFnZW50RGlyOiBzdHJpbmc7XG5wYWNrYWdlLW1hbmFnZXIudGVzdC50czo0ODogICBsZXQgc2V0dGluZ3NNYW5hZ2VyOiBTZXR0aW5nc01hbmFnZXI7XG5wYWNrYWdlLW1hbmFnZXIudGVzdC50czo0OTogbGV0IHBhY2thZ2VNYW5hZ2VyOiBEZWZhdWx0UGFja2FnZU1hbmFnZXI7XG5wYWNrYWdlLW1hbmFnZXIudGVzdC50czo1MDogICBsZXQgcHJldmlvdXNPZmZsaW5lRW52OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG5wYWNrYWdlLW1hbmFnZXIudGVzdC50czo1MTogICBcbnBhY2thZ2UtbWFuYWdlci50ZXN0LnRzOjU5OiAgIFxucGFja2FnZS1tYW5hZ2VyLnRlc3QudHM6NjA6ICAgc2V0dGluZ3NNYW5hZ2VyID0gU2V0dGluZ3NNYW5hZ2VyLmluTWVtb3J5KCk7XG5wYWNrYWdlLW1hbmFnZXIudGVzdC50czo2MTogcGFja2FnZU1hbmFnZXIgPSBuZXcgRGVmYXVsdFBhY2thZ2VNYW5hZ2VyKHtcbnBhY2thZ2UtbWFuYWdlci50ZXN0LnRzOjYyOiAgIGN3ZDogdGVtcERpcixcbnBhY2thZ2UtbWFuYWdlci50ZXN0LnRzOjYzOiAgIGFnZW50RGlyLFxucGFja2FnZS1tYW5hZ2VyLnRlc3QudHM6MjgyOiAgIHdyaXRlRmlsZVN5bmMobmVzdGVkU2tpbGwsIFwiLS0tXFxubmFtZTogbmVzdGVkXFxuZGVzY3JpcHRpb246IG5lc3RlZFxcbi0tLVxcblwiKTtcbnBhY2thZ2UtbWFuYWdlci50ZXN0LnRzOjI4MzogICBcbnBhY2thZ2UtbWFuYWdlci50ZXN0LnRzOjI4NDogY29uc3QgcG0gPSBuZXcgRGVmYXVsdFBhY2thZ2VNYW5hZ2VyKHtcbnBhY2thZ2UtbWFuYWdlci50ZXN0LnRzOjI4NTogICBjd2Q6IG5lc3RlZEN3ZCxcbnBhY2thZ2UtbWFuYWdlci50ZXN0LnRzOjI4NjogICBhZ2VudERpcixcbnBhY2thZ2UtbWFuYWdlci50ZXN0LnRzOjMwNzogICB3cml0ZUZpbGVTeW5jKG1pZGRsZVNraWxsLCBcIi0tLVxcbm5hbWU6IG1pZGRsZVxcbmRlc2NyaXB0aW9uOiBtaWRkbGVcXG4tLS1cXG5cIik7XG5wYWNrYWdlLW1hbmFnZXIudGVzdC50czozMDg6ICAgXG5wYWNrYWdlLW1hbmFnZXIudGVzdC50czozMDk6IGNvbnN0IHBtID0gbmV3IERlZmF1bHRQYWNrYWdlTWFuYWdlcih7XG5wYWNrYWdlLW1hbmFnZXIudGVzdC50czozMTA6ICAgY3dkOiBuZXN0ZWRDd2QsXG5wYWNrYWdlLW1hbmFnZXIudGVzdC50czozMTE6ICAgYWdlbnREaXIsXG5wYWNrYWdlLW1hbmFnZXIudGVzdC50czozMjY6ICAgd3JpdGVGaWxlU3luYyhuZXN0ZWRTa2lsbCwgXCItLS1cXG5uYW1lOiBuZXN0ZWQtc2tpbGxcXG5kZXNjcmlwdGlvbjogTmVzdGVkIHNraWxsXFxuLS0tXFxuXCIpO1xucGFja2FnZS1tYW5hZ2VyLnRlc3QudHM6MzI3OiAgIFxucGFja2FnZS1tYW5hZ2VyLnRlc3QudHM6MzI4OiBjb25zdCBwbSA9IG5ldyBEZWZhdWx0UGFja2FnZU1hbmFnZXIoe1xucGFja2FnZS1tYW5hZ2VyLnRlc3QudHM6MzI5OiAgIGN3ZDogam9pbih0ZW1wRGlyLCBcIndvcmtcIiksXG5wYWNrYWdlLW1hbmFnZXIudGVzdC50czozMzA6ICAgYWdlbnREaXIsXG5wYWNrYWdlLW1hbmFnZXIudGVzdC50czozNTM6ICAgd3JpdGVGaWxlU3luYyhob21lU2tpbGwsIFwiLS0tXFxubmFtZTogaG9tZS1za2lsbFxcbmRlc2NyaXB0aW9uOiBob21lXFxuLS0tXFxuXCIpO1xucGFja2FnZS1tYW5hZ2VyLnRlc3QudHM6MzU0OiAgIFxucGFja2FnZS1tYW5hZ2VyLnRlc3QudHM6MzU1OiBjb25zdCBwbSA9IG5ldyBEZWZhdWx0UGFja2FnZU1hbmFnZXIoe1xucGFja2FnZS1tYW5hZ2VyLnRlc3QudHM6MzU2OiAgIGN3ZCxcbnBhY2thZ2UtbWFuYWdlci50ZXN0LnRzOjM1NzogICBhZ2VudERpcjogbG9jYWxBZ2VudERpcixcbnBhY2thZ2UtbWFuYWdlci50ZXN0LnRzOjUzNzogICBucG1Db21tYW5kOiBbXCJtaXNlXCIsIFwiZXhlY1wiLCBcIm5vZGVAMjBcIiwgXCItLVwiLCBcIm5wbVwiXSxcbnBhY2thZ2UtbWFuYWdlci50ZXN0LnRzOjUzODogICB9KTtcbnBhY2thZ2UtbWFuYWdlci50ZXN0LnRzOjUzOTogcGFja2FnZU1hbmFnZXIgPSBuZXcgRGVmYXVsdFBhY2thZ2VNYW5hZ2VyKHtcbnBhY2thZ2UtbWFuYWdlci50ZXN0LnRzOjU0MDogICBjd2Q6IHRlbXBEaXIsXG5wYWNrYWdlLW1hbmFnZXIudGVzdC50czo1NDE6ICAgYWdlbnREaXIsXG5wYWNrYWdlLW1hbmFnZXIudGVzdC50czo1NzY6ICAgbnBtQ29tbWFuZDogW1wicG5wbVwiXSxcbnBhY2thZ2UtbWFuYWdlci50ZXN0LnRzOjU3NzogICB9KTtcbnBhY2thZ2UtbWFuYWdlci50ZXN0LnRzOjU3ODogcGFja2FnZU1hbmFnZXIgPSBuZXcgRGVmYXVsdFBhY2thZ2VNYW5hZ2VyKHtcbnBhY2thZ2UtbWFuYWdlci50ZXN0LnRzOjU3OTogICBjd2Q6IHRlbXBEaXIsXG5wYWNrYWdlLW1hbmFnZXIudGVzdC50czo1ODA6ICAgYWdlbnREaXIsXG5wYWNrYWdlLW1hbmFnZXIudGVzdC50czo2MzA6ICAgbnBtQ29tbWFuZDogW1wibWlzZVwiLCBcImV4ZWNcIiwgXCJub2RlQDIwXCIsIFwiLS1cIiwgXCJwbnBtXCJdLFxucGFja2FnZS1tYW5hZ2VyLnRlc3QudHM6NjMxOiAgIH0pO1xucGFja2FnZS1tYW5hZ2VyLnRlc3QudHM6NjMyOiBwYWNrYWdlTWFuYWdlciA9IG5ldyBEZWZhdWx0UGFja2FnZU1hbmFnZXIoe1xucGFja2FnZS1tYW5hZ2VyLnRlc3QudHM6NjMzOiAgIGN3ZDogdGVtcERpcixcbnBhY2thZ2UtbWFuYWdlci50ZXN0LnRzOjYzNDogICBhZ2VudERpcixcbnBhY2thZ2UtbWFuYWdlci50ZXN0LnRzOjY2ODogICBucG1Db21tYW5kOiBbXCJtaXNlXCIsIFwiZXhlY1wiLCBcIm5vZGVAMjBcIiwgXCItLVwiLCBcIm5wbVwiXSxcbnBhY2thZ2UtbWFuYWdlci50ZXN0LnRzOjY2OTogICB9KTtcbnBhY2thZ2UtbWFuYWdlci50ZXN0LnRzOjY3MDogcGFja2FnZU1hbmFnZXIgPSBuZXcgRGVmYXVsdFBhY2thZ2VNYW5hZ2VyKHtcbnBhY2thZ2UtbWFuYWdlci50ZXN0LnRzOjY3MTogICBjd2Q6IHRlbXBEaXIsXG5wYWNrYWdlLW1hbmFnZXIudGVzdC50czo2NzI6ICAgYWdlbnREaXIsXG5wYWNrYWdlLW1hbmFnZXIudGVzdC50czoxODc5OiAgIG5wbUNvbW1hbmQ6IFtcIm1pc2VcIiwgXCJleGVjXCIsIFwibm9kZUAyMFwiLCBcIi0tXCIsIFwibnBtXCJdLFxucGFja2FnZS1tYW5hZ2VyLnRlc3QudHM6MTg4MDogICB9KTtcbnBhY2thZ2UtbWFuYWdlci50ZXN0LnRzOjE4ODE6IHBhY2thZ2VNYW5hZ2VyID0gbmV3IERlZmF1bHRQYWNrYWdlTWFuYWdlcih7XG5wYWNrYWdlLW1hbmFnZXIudGVzdC50czoxODgyOiAgIGN3ZDogdGVtcERpcixcbnBhY2thZ2UtbWFuYWdlci50ZXN0LnRzOjE4ODM6ICAgYWdlbnREaXIsIn1dLCJkZXRhaWxzIjp7Im1hdGNoQ291bnQiOjIxLCJtYXRjaGVzIjpbeyJwYXRoIjoicGFja2FnZS1tYW5hZ2VyLXNzaC50ZXN0LnRzIiwibGluZSI6MywidGV4dCI6IiAgaW1wb3J0IHsgam9pbiB9IGZyb20gXCJub2RlOnBhdGhcIjsifSx7InBhdGgiOiJwYWNrYWdlLW1hbmFnZXItc3NoLnRlc3QudHMiLCJsaW5lIjo0LCJ0ZXh0IjoiICBpbXBvcnQgeyBhZnRlckVhY2gsIGJlZm9yZUVhY2gsIGRlc2NyaWJlLCBleHBlY3QsIGl0IH0gZnJvbSBcInZpdGVzdFwiOyJ9LHsicGF0aCI6InBhY2thZ2UtbWFuYWdlci1zc2gudGVzdC50cyIsImxpbmUiOjUsInRleHQiOiJpbXBvcnQgeyBEZWZhdWx0UGFja2FnZU1hbmFnZXIgfSBmcm9tIFwiLi4vc3JjL2NvcmUvcGFja2FnZS1tYW5hZ2VyLmpzXCI7In0seyJwYXRoIjoicGFja2FnZS1tYW5hZ2VyLXNzaC50ZXN0LnRzIiwibGluZSI6NiwidGV4dCI6IiAgaW1wb3J0IHsgU2V0dGluZ3NNYW5hZ2VyIH0gZnJvbSBcIi4uL3NyYy9jb3JlL3NldHRpbmdzLW1hbmFnZXIuanNcIjsifSx7InBhdGgiOiJwYWNrYWdlLW1hbmFnZXItc3NoLnRlc3QudHMiLCJsaW5lIjo3LCJ0ZXh0IjoiICAifSx7InBhdGgiOiJwYWNrYWdlLW1hbmFnZXItc3NoLnRlc3QudHMiLCJsaW5lIjoxMCwidGV4dCI6IiAgbGV0IGFnZW50RGlyOiBzdHJpbmc7In0seyJwYXRoIjoicGFja2FnZS1tYW5hZ2VyLXNzaC50ZXN0LnRzIiwibGluZSI6MTEsInRleHQiOiIgIGxldCBzZXR0aW5nc01hbmFnZXI6IFNldHRpbmdzTWFuYWdlcjsifSx7InBhdGgiOiJwYWNrYWdlLW1hbmFnZXItc3NoLnRlc3QudHMiLCJsaW5lIjoxMiwidGV4dCI6ImxldCBwYWNrYWdlTWFuYWdlcjogRGVmYXVsdFBhY2thZ2VNYW5hZ2VyOyJ9LHsicGF0aCI6InBhY2thZ2UtbWFuYWdlci1zc2gudGVzdC50cyIsImxpbmUiOjEzLCJ0ZXh0IjoiICAifSx7InBhdGgiOiJwYWNrYWdlLW1hbmFnZXItc3NoLnRlc3QudHMiLCJsaW5lIjoxNCwidGV4dCI6IiAgYmVmb3JlRWFjaCgoKSA9PiB7In0seyJwYXRoIjoicGFja2FnZS1tYW5hZ2VyLXNzaC50ZXN0LnRzIiwibGluZSI6MTksInRleHQiOiIgICJ9LHsicGF0aCI6InBhY2thZ2UtbWFuYWdlci1zc2gudGVzdC50cyIsImxpbmUiOjIwLCJ0ZXh0IjoiICBzZXR0aW5nc01hbmFnZXIgPSBTZXR0aW5nc01hbmFnZXIuaW5NZW1vcnkoKTsifSx7InBhdGgiOiJwYWNrYWdlLW1hbmFnZXItc3NoLnRlc3QudHMiLCJsaW5lIjoyMSwidGV4dCI6InBhY2thZ2VNYW5hZ2VyID0gbmV3IERlZmF1bHRQYWNrYWdlTWFuYWdlcih7In0seyJwYXRoIjoicGFja2FnZS1tYW5hZ2VyLXNzaC50ZXN0LnRzIiwibGluZSI6MjIsInRleHQiOiIgIGN3ZDogdGVtcERpciwifSx7InBhdGgiOiJwYWNrYWdlLW1hbmFnZXItc3NoLnRlc3QudHMiLCJsaW5lIjoyMywidGV4dCI6IiAgYWdlbnREaXIsIn0seyJwYXRoIjoiZ2l0LXVwZGF0ZS50ZXN0LnRzIiwibGluZSI6MiwidGV4dCI6IiAgKiBUZXN0cyBmb3IgZ2l0LWJhc2VkIGV4dGVuc2lvbiB1cGRhdGVzLCBzcGVjaWZpY2FsbHkgaGFuZGxpbmcgZm9yY2UtcHVzaCBzY2VuYXJpb3MuIn0seyJwYXRoIjoiZ2l0LXVwZGF0ZS50ZXN0LnRzIiwibGluZSI6MywidGV4dCI6IiAgKiJ9LHsicGF0aCI6ImdpdC11cGRhdGUudGVzdC50cyIsImxpbmUiOjQsInRleHQiOiIqIFRoZXNlIHRlc3RzIHZlcmlmeSB0aGF0IERlZmF1bHRQYWNrYWdlTWFuYWdlci51cGRhdGUoKSBoYW5kbGVzOiJ9LHsicGF0aCI6ImdpdC11cGRhdGUudGVzdC50cyIsImxpbmUiOjUsInRleHQiOiIgICogLSBOb3JtYWwgZ2l0IHVwZGF0ZXMgKG5vIGZvcmNlLXB1c2gpIn0seyJwYXRoIjoiZ2l0LXVwZGF0ZS50ZXN0LnRzIiwibGluZSI6NiwidGV4dCI6IiAgKiAtIEZvcmNlLXB1c2hlZCByZW1vdGVzIGdyYWNlZnVsbHkgKGN1cnJlbnRseSBmYWlscywgZml4IG5lZWRlZCkifSx7InBhdGgiOiJnaXQtdXBkYXRlLnRlc3QudHMiLCJsaW5lIjoxMywidGV4dCI6IiAgaW1wb3J0IHsgam9pbiB9IGZyb20gXCJub2RlOnBhdGhcIjsifSx7InBhdGgiOiJnaXQtdXBkYXRlLnRlc3QudHMiLCJsaW5lIjoxNCwidGV4dCI6IiAgaW1wb3J0IHsgYWZ0ZXJFYWNoLCBiZWZvcmVFYWNoLCBkZXNjcmliZSwgZXhwZWN0LCBpdCB9IGZyb20gXCJ2aXRlc3RcIjsifSx7InBhdGgiOiJnaXQtdXBkYXRlLnRlc3QudHMiLCJsaW5lIjoxNSwidGV4dCI6ImltcG9ydCB7IERlZmF1bHRQYWNrYWdlTWFuYWdlciB9IGZyb20gXCIuLi9zcmMvY29yZS9wYWNrYWdlLW1hbmFnZXIuanNcIjsifSx7InBhdGgiOiJnaXQtdXBkYXRlLnRlc3QudHMiLCJsaW5lIjoxNiwidGV4dCI6IiAgaW1wb3J0IHsgU2V0dGluZ3NNYW5hZ2VyIH0gZnJvbSBcIi4uL3NyYy9jb3JlL3NldHRpbmdzLW1hbmFnZXIuanNcIjsifSx7InBhdGgiOiJnaXQtdXBkYXRlLnRlc3QudHMiLCJsaW5lIjoxNywidGV4dCI6IiAgIn0seyJwYXRoIjoiZ2l0LXVwZGF0ZS50ZXN0LnRzIiwibGluZSI6NTIsInRleHQiOiIgIH0ifSx7InBhdGgiOiJnaXQtdXBkYXRlLnRlc3QudHMiLCJsaW5lIjo1MywidGV4dCI6IiAgIn0seyJwYXRoIjoiZ2l0LXVwZGF0ZS50ZXN0LnRzIiwibGluZSI6NTQsInRleHQiOiJkZXNjcmliZShcIkRlZmF1bHRQYWNrYWdlTWFuYWdlciBnaXQgdXBkYXRlXCIsICgpID0+IHsifSx7InBhdGgiOiJnaXQtdXBkYXRlLnRlc3QudHMiLCJsaW5lIjo1NSwidGV4dCI6IiAgbGV0IHRlbXBEaXI6IHN0cmluZzsifSx7InBhdGgiOiJnaXQtdXBkYXRlLnRlc3QudHMiLCJsaW5lIjo1NiwidGV4dCI6IiAgbGV0IHJlbW90ZURpcjogc3RyaW5nOyAvLyBTaW11bGF0ZXMgdGhlIFwicmVtb3RlXCIgcmVwb3NpdG9yeSJ9LHsicGF0aCI6ImdpdC11cGRhdGUudGVzdC50cyIsImxpbmUiOjU4LCJ0ZXh0IjoiICBsZXQgaW5zdGFsbGVkRGlyOiBzdHJpbmc7IC8vIFRoZSBpbnN0YWxsZWQgZXh0ZW5zaW9uIGRpcmVjdG9yeSJ9LHsicGF0aCI6ImdpdC11cGRhdGUudGVzdC50cyIsImxpbmUiOjU5LCJ0ZXh0IjoiICBsZXQgc2V0dGluZ3NNYW5hZ2VyOiBTZXR0aW5nc01hbmFnZXI7In0seyJwYXRoIjoiZ2l0LXVwZGF0ZS50ZXN0LnRzIiwibGluZSI6NjAsInRleHQiOiJsZXQgcGFja2FnZU1hbmFnZXI6IERlZmF1bHRQYWNrYWdlTWFuYWdlcjsifSx7InBhdGgiOiJnaXQtdXBkYXRlLnRlc3QudHMiLCJsaW5lIjo2MSwidGV4dCI6IiAgIn0seyJwYXRoIjoiZ2l0LXVwZGF0ZS50ZXN0LnRzIiwibGluZSI6NjIsInRleHQiOiIgIC8vIEdpdCBzb3VyY2UgdGhhdCBtYXBzIHRvIG91ciBpbnN0YWxsZWQgZGlyZWN0b3J5IHN0cnVjdHVyZS4ifSx7InBhdGgiOiJnaXQtdXBkYXRlLnRlc3QudHMiLCJsaW5lIjo3NywidGV4dCI6IiAgIn0seyJwYXRoIjoiZ2l0LXVwZGF0ZS50ZXN0LnRzIiwibGluZSI6NzgsInRleHQiOiIgIHNldHRpbmdzTWFuYWdlciA9IFNldHRpbmdzTWFuYWdlci5pbk1lbW9yeSgpOyJ9LHsicGF0aCI6ImdpdC11cGRhdGUudGVzdC50cyIsImxpbmUiOjc5LCJ0ZXh0IjoicGFja2FnZU1hbmFnZXIgPSBuZXcgRGVmYXVsdFBhY2thZ2VNYW5hZ2VyKHsifSx7InBhdGgiOiJnaXQtdXBkYXRlLnRlc3QudHMiLCJsaW5lIjo4MCwidGV4dCI6IiAgY3dkOiB0ZW1wRGlyLCJ9LHsicGF0aCI6ImdpdC11cGRhdGUudGVzdC50cyIsImxpbmUiOjgxLCJ0ZXh0IjoiICBhZ2VudERpciwifSx7InBhdGgiOiJwYWNrYWdlLW1hbmFnZXIudGVzdC50cyIsImxpbmUiOjUsInRleHQiOiIgIGltcG9ydCB7IFBhc3NUaHJvdWdoIH0gZnJvbSBcIm5vZGU6c3RyZWFtXCI7In0seyJwYXRoIjoicGFja2FnZS1tYW5hZ2VyLnRlc3QudHMiLCJsaW5lIjo2LCJ0ZXh0IjoiICBpbXBvcnQgeyBhZnRlckVhY2gsIGJlZm9yZUVhY2gsIGRlc2NyaWJlLCBleHBlY3QsIGl0LCB2aSB9IGZyb20gXCJ2aXRlc3RcIjsifSx7InBhdGgiOiJwYWNrYWdlLW1hbmFnZXIudGVzdC50cyIsImxpbmUiOjcsInRleHQiOiJpbXBvcnQgeyBEZWZhdWx0UGFja2FnZU1hbmFnZXIsIHR5cGUgUHJvZ3Jlc3NFdmVudCwgdHlwZSBSZXNvbHZlZFJlc291cmNlIH0gZnJvbSBcIi4uL3NyYy9jb3JlL3BhY2thZ2UtbWFuYWdlci5qc1wiOyJ9LHsicGF0aCI6InBhY2thZ2UtbWFuYWdlci50ZXN0LnRzIiwibGluZSI6OCwidGV4dCI6IiAgaW1wb3J0IHsgU2V0dGluZ3NNYW5hZ2VyIH0gZnJvbSBcIi4uL3NyYy9jb3JlL3NldHRpbmdzLW1hbmFnZXIuanNcIjsifSx7InBhdGgiOiJwYWNrYWdlLW1hbmFnZXIudGVzdC50cyIsImxpbmUiOjksInRleHQiOiIgICJ9LHsicGF0aCI6InBhY2thZ2UtbWFuYWdlci50ZXN0LnRzIiwibGluZSI6NDMsInRleHQiOiIgIH07In0seyJwYXRoIjoicGFja2FnZS1tYW5hZ2VyLnRlc3QudHMiLCJsaW5lIjo0NCwidGV4dCI6IiAgIn0seyJwYXRoIjoicGFja2FnZS1tYW5hZ2VyLnRlc3QudHMiLCJsaW5lIjo0NSwidGV4dCI6ImRlc2NyaWJlKFwiRGVmYXVsdFBhY2thZ2VNYW5hZ2VyXCIsICgpID0+IHsifSx7InBhdGgiOiJwYWNrYWdlLW1hbmFnZXIudGVzdC50cyIsImxpbmUiOjQ2LCJ0ZXh0IjoiICBsZXQgdGVtcERpcjogc3RyaW5nOyJ9LHsicGF0aCI6InBhY2thZ2UtbWFuYWdlci50ZXN0LnRzIiwibGluZSI6NDcsInRleHQiOiIgIGxldCBhZ2VudERpcjogc3RyaW5nOyJ9LHsicGF0aCI6InBhY2thZ2UtbWFuYWdlci50ZXN0LnRzIiwibGluZSI6NDcsInRleHQiOiIgIGxldCBhZ2VudERpcjogc3RyaW5nOyJ9LHsicGF0aCI6InBhY2thZ2UtbWFuYWdlci50ZXN0LnRzIiwibGluZSI6NDgsInRleHQiOiIgIGxldCBzZXR0aW5nc01hbmFnZXI6IFNldHRpbmdzTWFuYWdlcjsifSx7InBhdGgiOiJwYWNrYWdlLW1hbmFnZXIudGVzdC50cyIsImxpbmUiOjQ5LCJ0ZXh0IjoibGV0IHBhY2thZ2VNYW5hZ2VyOiBEZWZhdWx0UGFja2FnZU1hbmFnZXI7In0seyJwYXRoIjoicGFja2FnZS1tYW5hZ2VyLnRlc3QudHMiLCJsaW5lIjo1MCwidGV4dCI6IiAgbGV0IHByZXZpb3VzT2ZmbGluZUVudjogc3RyaW5nIHwgdW5kZWZpbmVkOyJ9LHsicGF0aCI6InBhY2thZ2UtbWFuYWdlci50ZXN0LnRzIiwibGluZSI6NTEsInRleHQiOiIgICJ9LHsicGF0aCI6InBhY2thZ2UtbWFuYWdlci50ZXN0LnRzIiwibGluZSI6NTksInRleHQiOiIgICJ9LHsicGF0aCI6InBhY2thZ2UtbWFuYWdlci50ZXN0LnRzIiwibGluZSI6NjAsInRleHQiOiIgIHNldHRpbmdzTWFuYWdlciA9IFNldHRpbmdzTWFuYWdlci5pbk1lbW9yeSgpOyJ9LHsicGF0aCI6InBhY2thZ2UtbWFuYWdlci50ZXN0LnRzIiwibGluZSI6NjEsInRleHQiOiJwYWNrYWdlTWFuYWdlciA9IG5ldyBEZWZhdWx0UGFja2FnZU1hbmFnZXIoeyJ9LHsicGF0aCI6InBhY2thZ2UtbWFuYWdlci50ZXN0LnRzIiwibGluZSI6NjIsInRleHQiOiIgIGN3ZDogdGVtcERpciwifSx7InBhdGgiOiJwYWNrYWdlLW1hbmFnZXIudGVzdC50cyIsImxpbmUiOjYzLCJ0ZXh0IjoiICBhZ2VudERpciwifSx7InBhdGgiOiJwYWNrYWdlLW1hbmFnZXIudGVzdC50cyIsImxpbmUiOjI4MiwidGV4dCI6IiAgd3JpdGVGaWxlU3luYyhuZXN0ZWRTa2lsbCwgXCItLS1cXG5uYW1lOiBuZXN0ZWRcXG5kZXNjcmlwdGlvbjogbmVzdGVkXFxuLS0tXFxuXCIpOyJ9LHsicGF0aCI6InBhY2thZ2UtbWFuYWdlci50ZXN0LnRzIiwibGluZSI6MjgzLCJ0ZXh0IjoiICAifSx7InBhdGgiOiJwYWNrYWdlLW1hbmFnZXIudGVzdC50cyIsImxpbmUiOjI4NCwidGV4dCI6ImNvbnN0IHBtID0gbmV3IERlZmF1bHRQYWNrYWdlTWFuYWdlcih7In0seyJwYXRoIjoicGFja2FnZS1tYW5hZ2VyLnRlc3QudHMiLCJsaW5lIjoyODUsInRleHQiOiIgIGN3ZDogbmVzdGVkQ3dkLCJ9LHsicGF0aCI6InBhY2thZ2UtbWFuYWdlci50ZXN0LnRzIiwibGluZSI6Mjg2LCJ0ZXh0IjoiICBhZ2VudERpciwifSx7InBhdGgiOiJwYWNrYWdlLW1hbmFnZXIudGVzdC50cyIsImxpbmUiOjMwNywidGV4dCI6IiAgd3JpdGVGaWxlU3luYyhtaWRkbGVTa2lsbCwgXCItLS1cXG5uYW1lOiBtaWRkbGVcXG5kZXNjcmlwdGlvbjogbWlkZGxlXFxuLS0tXFxuXCIpOyJ9LHsicGF0aCI6InBhY2thZ2UtbWFuYWdlci50ZXN0LnRzIiwibGluZSI6MzA4LCJ0ZXh0IjoiICAifSx7InBhdGgiOiJwYWNrYWdlLW1hbmFnZXIudGVzdC50cyIsImxpbmUiOjMwOSwidGV4dCI6ImNvbnN0IHBtID0gbmV3IERlZmF1bHRQYWNrYWdlTWFuYWdlcih7In0seyJwYXRoIjoicGFja2FnZS1tYW5hZ2VyLnRlc3QudHMiLCJsaW5lIjozMTAsInRleHQiOiIgIGN3ZDogbmVzdGVkQ3dkLCJ9LHsicGF0aCI6InBhY2thZ2UtbWFuYWdlci50ZXN0LnRzIiwibGluZSI6MzExLCJ0ZXh0IjoiICBhZ2VudERpciwifSx7InBhdGgiOiJwYWNrYWdlLW1hbmFnZXIudGVzdC50cyIsImxpbmUiOjMyNiwidGV4dCI6IiAgd3JpdGVGaWxlU3luYyhuZXN0ZWRTa2lsbCwgXCItLS1cXG5uYW1lOiBuZXN0ZWQtc2tpbGxcXG5kZXNjcmlwdGlvbjogTmVzdGVkIHNraWxsXFxuLS0tXFxuXCIpOyJ9LHsicGF0aCI6InBhY2thZ2UtbWFuYWdlci50ZXN0LnRzIiwibGluZSI6MzI3LCJ0ZXh0IjoiICAifSx7InBhdGgiOiJwYWNrYWdlLW1hbmFnZXIudGVzdC50cyIsImxpbmUiOjMyOCwidGV4dCI6ImNvbnN0IHBtID0gbmV3IERlZmF1bHRQYWNrYWdlTWFuYWdlcih7In0seyJwYXRoIjoicGFja2FnZS1tYW5hZ2VyLnRlc3QudHMiLCJsaW5lIjozMjksInRleHQiOiIgIGN3ZDogam9pbih0ZW1wRGlyLCBcIndvcmtcIiksIn0seyJwYXRoIjoicGFja2FnZS1tYW5hZ2VyLnRlc3QudHMiLCJsaW5lIjozMzAsInRleHQiOiIgIGFnZW50RGlyLCJ9LHsicGF0aCI6InBhY2thZ2UtbWFuYWdlci50ZXN0LnRzIiwibGluZSI6MzUzLCJ0ZXh0IjoiICB3cml0ZUZpbGVTeW5jKGhvbWVTa2lsbCwgXCItLS1cXG5uYW1lOiBob21lLXNraWxsXFxuZGVzY3JpcHRpb246IGhvbWVcXG4tLS1cXG5cIik7In0seyJwYXRoIjoicGFja2FnZS1tYW5hZ2VyLnRlc3QudHMiLCJsaW5lIjozNTQsInRleHQiOiIgICJ9LHsicGF0aCI6InBhY2thZ2UtbWFuYWdlci50ZXN0LnRzIiwibGluZSI6MzU1LCJ0ZXh0IjoiY29uc3QgcG0gPSBuZXcgRGVmYXVsdFBhY2thZ2VNYW5hZ2VyKHsifSx7InBhdGgiOiJwYWNrYWdlLW1hbmFnZXIudGVzdC50cyIsImxpbmUiOjM1NiwidGV4dCI6IiAgY3dkLCJ9LHsicGF0aCI6InBhY2thZ2UtbWFuYWdlci50ZXN0LnRzIiwibGluZSI6MzU3LCJ0ZXh0IjoiICBhZ2VudERpcjogbG9jYWxBZ2VudERpciwifSx7InBhdGgiOiJwYWNrYWdlLW1hbmFnZXIudGVzdC50cyIsImxpbmUiOjUzNywidGV4dCI6IiAgbnBtQ29tbWFuZDogW1wibWlzZVwiLCBcImV4ZWNcIiwgXCJub2RlQDIwXCIsIFwiLS1cIiwgXCJucG1cIl0sIn0seyJwYXRoIjoicGFja2FnZS1tYW5hZ2VyLnRlc3QudHMiLCJsaW5lIjo1MzgsInRleHQiOiIgIH0pOyJ9LHsicGF0aCI6InBhY2thZ2UtbWFuYWdlci50ZXN0LnRzIiwibGluZSI6NTM5LCJ0ZXh0IjoicGFja2FnZU1hbmFnZXIgPSBuZXcgRGVmYXVsdFBhY2thZ2VNYW5hZ2VyKHsifSx7InBhdGgiOiJwYWNrYWdlLW1hbmFnZXIudGVzdC50cyIsImxpbmUiOjU0MCwidGV4dCI6IiAgY3dkOiB0ZW1wRGlyLCJ9LHsicGF0aCI6InBhY2thZ2UtbWFuYWdlci50ZXN0LnRzIiwibGluZSI6NTQxLCJ0ZXh0IjoiICBhZ2VudERpciwifSx7InBhdGgiOiJwYWNrYWdlLW1hbmFnZXIudGVzdC50cyIsImxpbmUiOjU3NiwidGV4dCI6IiAgbnBtQ29tbWFuZDogW1wicG5wbVwiXSwifSx7InBhdGgiOiJwYWNrYWdlLW1hbmFnZXIudGVzdC50cyIsImxpbmUiOjU3NywidGV4dCI6IiAgfSk7In0seyJwYXRoIjoicGFja2FnZS1tYW5hZ2VyLnRlc3QudHMiLCJsaW5lIjo1NzgsInRleHQiOiJwYWNrYWdlTWFuYWdlciA9IG5ldyBEZWZhdWx0UGFja2FnZU1hbmFnZXIoeyJ9LHsicGF0aCI6InBhY2thZ2UtbWFuYWdlci50ZXN0LnRzIiwibGluZSI6NTc5LCJ0ZXh0IjoiICBjd2Q6IHRlbXBEaXIsIn0seyJwYXRoIjoicGFja2FnZS1tYW5hZ2VyLnRlc3QudHMiLCJsaW5lIjo1ODAsInRleHQiOiIgIGFnZW50RGlyLCJ9LHsicGF0aCI6InBhY2thZ2UtbWFuYWdlci50ZXN0LnRzIiwibGluZSI6NjMwLCJ0ZXh0IjoiICBucG1Db21tYW5kOiBbXCJtaXNlXCIsIFwiZXhlY1wiLCBcIm5vZGVAMjBcIiwgXCItLVwiLCBcInBucG1cIl0sIn0seyJwYXRoIjoicGFja2FnZS1tYW5hZ2VyLnRlc3QudHMiLCJsaW5lIjo2MzEsInRleHQiOiIgIH0pOyJ9LHsicGF0aCI6InBhY2thZ2UtbWFuYWdlci50ZXN0LnRzIiwibGluZSI6NjMyLCJ0ZXh0IjoicGFja2FnZU1hbmFnZXIgPSBuZXcgRGVmYXVsdFBhY2thZ2VNYW5hZ2VyKHsifSx7InBhdGgiOiJwYWNrYWdlLW1hbmFnZXIudGVzdC50cyIsImxpbmUiOjYzMywidGV4dCI6IiAgY3dkOiB0ZW1wRGlyLCJ9LHsicGF0aCI6InBhY2thZ2UtbWFuYWdlci50ZXN0LnRzIiwibGluZSI6NjM0LCJ0ZXh0IjoiICBhZ2VudERpciwifSx7InBhdGgiOiJwYWNrYWdlLW1hbmFnZXIudGVzdC50cyIsImxpbmUiOjY2OCwidGV4dCI6IiAgbnBtQ29tbWFuZDogW1wibWlzZVwiLCBcImV4ZWNcIiwgXCJub2RlQDIwXCIsIFwiLS1cIiwgXCJucG1cIl0sIn0seyJwYXRoIjoicGFja2FnZS1tYW5hZ2VyLnRlc3QudHMiLCJsaW5lIjo2NjksInRleHQiOiIgIH0pOyJ9LHsicGF0aCI6InBhY2thZ2UtbWFuYWdlci50ZXN0LnRzIiwibGluZSI6NjcwLCJ0ZXh0IjoicGFja2FnZU1hbmFnZXIgPSBuZXcgRGVmYXVsdFBhY2thZ2VNYW5hZ2VyKHsifSx7InBhdGgiOiJwYWNrYWdlLW1hbmFnZXIudGVzdC50cyIsImxpbmUiOjY3MSwidGV4dCI6IiAgY3dkOiB0ZW1wRGlyLCJ9LHsicGF0aCI6InBhY2thZ2UtbWFuYWdlci50ZXN0LnRzIiwibGluZSI6NjcyLCJ0ZXh0IjoiICBhZ2VudERpciwifSx7InBhdGgiOiJwYWNrYWdlLW1hbmFnZXIudGVzdC50cyIsImxpbmUiOjE4NzksInRleHQiOiIgIG5wbUNvbW1hbmQ6IFtcIm1pc2VcIiwgXCJleGVjXCIsIFwibm9kZUAyMFwiLCBcIi0tXCIsIFwibnBtXCJdLCJ9LHsicGF0aCI6InBhY2thZ2UtbWFuYWdlci50ZXN0LnRzIiwibGluZSI6MTg4MCwidGV4dCI6IiAgfSk7In0seyJwYXRoIjoicGFja2FnZS1tYW5hZ2VyLnRlc3QudHMiLCJsaW5lIjoxODgxLCJ0ZXh0IjoicGFja2FnZU1hbmFnZXIgPSBuZXcgRGVmYXVsdFBhY2thZ2VNYW5hZ2VyKHsifSx7InBhdGgiOiJwYWNrYWdlLW1hbmFnZXIudGVzdC50cyIsImxpbmUiOjE4ODIsInRleHQiOiIgIGN3ZDogdGVtcERpciwifSx7InBhdGgiOiJwYWNrYWdlLW1hbmFnZXIudGVzdC50cyIsImxpbmUiOjE4ODMsInRleHQiOiIgIGFnZW50RGlyLCJ9XSwicmVsYXRpdmVUbyI6InBhY2thZ2VzL2NvZGluZy1hZ2VudC90ZXN0In0sImlzRXJyb3IiOmZhbHNlLCJ0aW1lc3RhbXAiOjE3Nzc1NjM1MjIwOTB9fSx7InR5cGUiOiJtZXNzYWdlIiwiaWQiOiI1ODQ1NDk0MCIsInBhcmVudElkIjoiNmI4NTI5YjciLCJ0aW1lc3RhbXAiOiIyMDI2LTA0LTMwVDE1OjM4OjQ0Ljc1OVoiLCJtZXNzYWdlIjp7InJvbGUiOiJhc3Npc3RhbnQiLCJjb250ZW50IjpbeyJ0eXBlIjoidG9vbENhbGwiLCJpZCI6ImNhbGxfSk5WWjREWlk0OWFBbXVLdHJzcEViTnhKfGZjXzAyN2YxZWExNWRlZjM1MDUwMTY5ZjM3Nzg0MzMwNDgxOTE5NDc5NTI2NWU4YmRjYWQyIiwibmFtZSI6InJlYWQiLCJhcmd1bWVudHMiOnsicGF0aCI6InBhY2thZ2VzL2NvZGluZy1hZ2VudC90ZXN0L3BhY2thZ2UtbWFuYWdlci50ZXN0LnRzIiwib2Zmc2V0IjoyNTAsImxpbWl0IjoxMzB9fV0sImFwaSI6Im9wZW5haS1jb2RleC1yZXNwb25zZXMiLCJwcm92aWRlciI6Im9wZW5haS1jb2RleCIsIm1vZGVsIjoiZ3B0LTUuNSIsInVzYWdlIjp7ImlucHV0IjoyMTk1LCJvdXRwdXQiOjMzLCJjYWNoZVJlYWQiOjQwOTYwLCJjYWNoZVdyaXRlIjowLCJ0b3RhbFRva2VucyI6NDMxODgsImNvc3QiOnsiaW5wdXQiOjAuMDEwOTc1LCJvdXRwdXQiOjAuMDAwOTksImNhY2hlUmVhZCI6MC4wMjA0Nzk5OTk5OTk5OTk5OTgsImNhY2hlV3JpdGUiOjAsInRvdGFsIjowLjAzMjQ0NX19LCJzdG9wUmVhc29uIjoidG9vbFVzZSIsInRpbWVzdGFtcCI6MTc3NzU2MzUyMjA5MSwicmVzcG9uc2VJZCI6InJlc3BfMDI3ZjFlYTE1ZGVmMzUwNTAxNjlmMzc3ODJjMWYwODE5MTgxMWM4ZDBiNGU4ODIzOGEifX0seyJ0eXBlIjoibWVzc2FnZSIsImlkIjoiNzE3YmY1YmYiLCJwYXJlbnRJZCI6IjU4NDU0OTQwIiwidGltZXN0YW1wIjoiMjAyNi0wNC0zMFQxNTozODo0NC43NjVaIiwibWVzc2FnZSI6eyJyb2xlIjoidG9vbFJlc3VsdCIsInRvb2xDYWxsSWQiOiJjYWxsX0pOVlo0RFpZNDlhQW11S3Ryc3BFYk54SnxmY18wMjdmMWVhMTVkZWYzNTA1MDE2OWYzNzc4NDMzMDQ4MTkxOTQ3OTUyNjVlOGJkY2FkMiIsInRvb2xOYW1lIjoicmVhZCIsImNvbnRlbnQiOlt7InR5cGUiOiJ0ZXh0IiwidGV4dCI6Ilx0XHRcdGNvbnN0IHJlc3VsdCA9IGF3YWl0IHBhY2thZ2VNYW5hZ2VyLnJlc29sdmUoKTtcblxuXHRcdFx0Ly8gU2hvdWxkIGZpbmQgdGhlIGV4dGVuc2lvbnMgZGVjbGFyZWQgaW4gcGFja2FnZS5qc29uIHBpLmV4dGVuc2lvbnNcblx0XHRcdGV4cGVjdChyZXN1bHQuZXh0ZW5zaW9ucy5zb21lKChyKSA9PiByLnBhdGggPT09IGpvaW4ocGtnRGlyLCBcImV4dGVuc2lvbnNcIiwgXCJjbGlwLnRzXCIpICYmIHIuZW5hYmxlZCkpLnRvQmUoXG5cdFx0XHRcdHRydWUsXG5cdFx0XHQpO1xuXHRcdFx0ZXhwZWN0KHJlc3VsdC5leHRlbnNpb25zLnNvbWUoKHIpID0+IHIucGF0aCA9PT0gam9pbihwa2dEaXIsIFwiZXh0ZW5zaW9uc1wiLCBcImNvc3QudHNcIikgJiYgci5lbmFibGVkKSkudG9CZShcblx0XHRcdFx0dHJ1ZSxcblx0XHRcdCk7XG5cblx0XHRcdC8vIFNob3VsZCBOT1QgZmluZCBoZWxwZXIudHMgKG5vdCBkZWNsYXJlZCBpbiBtYW5pZmVzdClcblx0XHRcdGV4cGVjdChyZXN1bHQuZXh0ZW5zaW9ucy5zb21lKChyKSA9PiBwYXRoRW5kc1dpdGgoci5wYXRoLCBcImhlbHBlci50c1wiKSkpLnRvQmUoZmFsc2UpO1xuXHRcdH0pO1xuXHR9KTtcblxuXHRkZXNjcmliZShcIi5hZ2VudHMvc2tpbGxzIGF1dG8tZGlzY292ZXJ5XCIsICgpID0+IHtcblx0XHRpdChcInNob3VsZCBzY2FuIC5hZ2VudHMvc2tpbGxzIGZyb20gY3dkIHVwIHRvIGdpdCByZXBvIHJvb3RcIiwgYXN5bmMgKCkgPT4ge1xuXHRcdFx0Y29uc3QgcmVwb1Jvb3QgPSBqb2luKHRlbXBEaXIsIFwicmVwb1wiKTtcblx0XHRcdGNvbnN0IG5lc3RlZEN3ZCA9IGpvaW4ocmVwb1Jvb3QsIFwicGFja2FnZXNcIiwgXCJmZWF0dXJlXCIpO1xuXHRcdFx0bWtkaXJTeW5jKG5lc3RlZEN3ZCwgeyByZWN1cnNpdmU6IHRydWUgfSk7XG5cdFx0XHRta2RpclN5bmMoam9pbihyZXBvUm9vdCwgXCIuZ2l0XCIpLCB7IHJlY3Vyc2l2ZTogdHJ1ZSB9KTtcblxuXHRcdFx0Y29uc3QgYWJvdmVSZXBvU2tpbGwgPSBqb2luKHRlbXBEaXIsIFwiLmFnZW50c1wiLCBcInNraWxsc1wiLCBcImFib3ZlLXJlcG9cIiwgXCJTS0lMTC5tZFwiKTtcblx0XHRcdG1rZGlyU3luYyhqb2luKHRlbXBEaXIsIFwiLmFnZW50c1wiLCBcInNraWxsc1wiLCBcImFib3ZlLXJlcG9cIiksIHsgcmVjdXJzaXZlOiB0cnVlIH0pO1xuXHRcdFx0d3JpdGVGaWxlU3luYyhhYm92ZVJlcG9Ta2lsbCwgXCItLS1cXG5uYW1lOiBhYm92ZS1yZXBvXFxuZGVzY3JpcHRpb246IGFib3ZlXFxuLS0tXFxuXCIpO1xuXG5cdFx0XHRjb25zdCByZXBvUm9vdFNraWxsID0gam9pbihyZXBvUm9vdCwgXCIuYWdlbnRzXCIsIFwic2tpbGxzXCIsIFwicmVwby1yb290XCIsIFwiU0tJTEwubWRcIik7XG5cdFx0XHRta2RpclN5bmMoam9pbihyZXBvUm9vdCwgXCIuYWdlbnRzXCIsIFwic2tpbGxzXCIsIFwicmVwby1yb290XCIpLCB7IHJlY3Vyc2l2ZTogdHJ1ZSB9KTtcblx0XHRcdHdyaXRlRmlsZVN5bmMocmVwb1Jvb3RTa2lsbCwgXCItLS1cXG5uYW1lOiByZXBvLXJvb3RcXG5kZXNjcmlwdGlvbjogcmVwb1xcbi0tLVxcblwiKTtcblxuXHRcdFx0Y29uc3QgbmVzdGVkU2tpbGwgPSBqb2luKHJlcG9Sb290LCBcInBhY2thZ2VzXCIsIFwiLmFnZW50c1wiLCBcInNraWxsc1wiLCBcIm5lc3RlZFwiLCBcIlNLSUxMLm1kXCIpO1xuXHRcdFx0bWtkaXJTeW5jKGpvaW4ocmVwb1Jvb3QsIFwicGFja2FnZXNcIiwgXCIuYWdlbnRzXCIsIFwic2tpbGxzXCIsIFwibmVzdGVkXCIpLCB7IHJlY3Vyc2l2ZTogdHJ1ZSB9KTtcblx0XHRcdHdyaXRlRmlsZVN5bmMobmVzdGVkU2tpbGwsIFwiLS0tXFxubmFtZTogbmVzdGVkXFxuZGVzY3JpcHRpb246IG5lc3RlZFxcbi0tLVxcblwiKTtcblxuXHRcdFx0Y29uc3QgcG0gPSBuZXcgRGVmYXVsdFBhY2thZ2VNYW5hZ2VyKHtcblx0XHRcdFx0Y3dkOiBuZXN0ZWRDd2QsXG5cdFx0XHRcdGFnZW50RGlyLFxuXHRcdFx0XHRzZXR0aW5nc01hbmFnZXIsXG5cdFx0XHR9KTtcblxuXHRcdFx0Y29uc3QgcmVzdWx0ID0gYXdhaXQgcG0ucmVzb2x2ZSgpO1xuXHRcdFx0ZXhwZWN0KHJlc3VsdC5za2lsbHMuc29tZSgocikgPT4gci5wYXRoID09PSByZXBvUm9vdFNraWxsICYmIHIuZW5hYmxlZCkpLnRvQmUodHJ1ZSk7XG5cdFx0XHRleHBlY3QocmVzdWx0LnNraWxscy5zb21lKChyKSA9PiByLnBhdGggPT09IG5lc3RlZFNraWxsICYmIHIuZW5hYmxlZCkpLnRvQmUodHJ1ZSk7XG5cdFx0XHRleHBlY3QocmVzdWx0LnNraWxscy5zb21lKChyKSA9PiByLnBhdGggPT09IGFib3ZlUmVwb1NraWxsKSkudG9CZShmYWxzZSk7XG5cdFx0fSk7XG5cblx0XHRpdChcInNob3VsZCBzY2FuIC5hZ2VudHMvc2tpbGxzIHVwIHRvIGZpbGVzeXN0ZW0gcm9vdCB3aGVuIG5vdCBpbiBhIGdpdCByZXBvXCIsIGFzeW5jICgpID0+IHtcblx0XHRcdGNvbnN0IG5vblJlcG9Sb290ID0gam9pbih0ZW1wRGlyLCBcIm5vbi1yZXBvXCIpO1xuXHRcdFx0Y29uc3QgbmVzdGVkQ3dkID0gam9pbihub25SZXBvUm9vdCwgXCJhXCIsIFwiYlwiKTtcblx0XHRcdG1rZGlyU3luYyhuZXN0ZWRDd2QsIHsgcmVjdXJzaXZlOiB0cnVlIH0pO1xuXG5cdFx0XHRjb25zdCByb290U2tpbGwgPSBqb2luKG5vblJlcG9Sb290LCBcIi5hZ2VudHNcIiwgXCJza2lsbHNcIiwgXCJyb290XCIsIFwiU0tJTEwubWRcIik7XG5cdFx0XHRta2RpclN5bmMoam9pbihub25SZXBvUm9vdCwgXCIuYWdlbnRzXCIsIFwic2tpbGxzXCIsIFwicm9vdFwiKSwgeyByZWN1cnNpdmU6IHRydWUgfSk7XG5cdFx0XHR3cml0ZUZpbGVTeW5jKHJvb3RTa2lsbCwgXCItLS1cXG5uYW1lOiByb290XFxuZGVzY3JpcHRpb246IHJvb3RcXG4tLS1cXG5cIik7XG5cblx0XHRcdGNvbnN0IG1pZGRsZVNraWxsID0gam9pbihub25SZXBvUm9vdCwgXCJhXCIsIFwiLmFnZW50c1wiLCBcInNraWxsc1wiLCBcIm1pZGRsZVwiLCBcIlNLSUxMLm1kXCIpO1xuXHRcdFx0bWtkaXJTeW5jKGpvaW4obm9uUmVwb1Jvb3QsIFwiYVwiLCBcIi5hZ2VudHNcIiwgXCJza2lsbHNcIiwgXCJtaWRkbGVcIiksIHsgcmVjdXJzaXZlOiB0cnVlIH0pO1xuXHRcdFx0d3JpdGVGaWxlU3luYyhtaWRkbGVTa2lsbCwgXCItLS1cXG5uYW1lOiBtaWRkbGVcXG5kZXNjcmlwdGlvbjogbWlkZGxlXFxuLS0tXFxuXCIpO1xuXG5cdFx0XHRjb25zdCBwbSA9IG5ldyBEZWZhdWx0UGFja2FnZU1hbmFnZXIoe1xuXHRcdFx0XHRjd2Q6IG5lc3RlZEN3ZCxcblx0XHRcdFx0YWdlbnREaXIsXG5cdFx0XHRcdHNldHRpbmdzTWFuYWdlcixcblx0XHRcdH0pO1xuXG5cdFx0XHRjb25zdCByZXN1bHQgPSBhd2FpdCBwbS5yZXNvbHZlKCk7XG5cdFx0XHRleHBlY3QocmVzdWx0LnNraWxscy5zb21lKChyKSA9PiByLnBhdGggPT09IHJvb3RTa2lsbCAmJiByLmVuYWJsZWQpKS50b0JlKHRydWUpO1xuXHRcdFx0ZXhwZWN0KHJlc3VsdC5za2lsbHMuc29tZSgocikgPT4gci5wYXRoID09PSBtaWRkbGVTa2lsbCAmJiByLmVuYWJsZWQpKS50b0JlKHRydWUpO1xuXHRcdH0pO1xuXG5cdFx0aXQoXCJzaG91bGQgaWdub3JlIHJvb3QgbWFya2Rvd24gZmlsZXMgaW4gLmFnZW50cy9za2lsbHNcIiwgYXN5bmMgKCkgPT4ge1xuXHRcdFx0Y29uc3QgYWdlbnRzU2tpbGxzRGlyID0gam9pbih0ZW1wRGlyLCBcIi5hZ2VudHNcIiwgXCJza2lsbHNcIik7XG5cdFx0XHRta2RpclN5bmMoam9pbihhZ2VudHNTa2lsbHNEaXIsIFwibmVzdGVkLXNraWxsXCIpLCB7IHJlY3Vyc2l2ZTogdHJ1ZSB9KTtcblx0XHRcdGNvbnN0IHJvb3RTa2lsbCA9IGpvaW4oYWdlbnRzU2tpbGxzRGlyLCBcInJvb3QtZmlsZS5tZFwiKTtcblx0XHRcdGNvbnN0IG5lc3RlZFNraWxsID0gam9pbihhZ2VudHNTa2lsbHNEaXIsIFwibmVzdGVkLXNraWxsXCIsIFwiU0tJTEwubWRcIik7XG5cdFx0XHR3cml0ZUZpbGVTeW5jKHJvb3RTa2lsbCwgXCItLS1cXG5uYW1lOiByb290LWZpbGVcXG5kZXNjcmlwdGlvbjogUm9vdCBtYXJrZG93biBmaWxlXFxuLS0tXFxuXCIpO1xuXHRcdFx0d3JpdGVGaWxlU3luYyhuZXN0ZWRTa2lsbCwgXCItLS1cXG5uYW1lOiBuZXN0ZWQtc2tpbGxcXG5kZXNjcmlwdGlvbjogTmVzdGVkIHNraWxsXFxuLS0tXFxuXCIpO1xuXG5cdFx0XHRjb25zdCBwbSA9IG5ldyBEZWZhdWx0UGFja2FnZU1hbmFnZXIoe1xuXHRcdFx0XHRjd2Q6IGpvaW4odGVtcERpciwgXCJ3b3JrXCIpLFxuXHRcdFx0XHRhZ2VudERpcixcblx0XHRcdFx0c2V0dGluZ3NNYW5hZ2VyLFxuXHRcdFx0fSk7XG5cdFx0XHRta2RpclN5bmMoam9pbih0ZW1wRGlyLCBcIndvcmtcIiksIHsgcmVjdXJzaXZlOiB0cnVlIH0pO1xuXG5cdFx0XHRjb25zdCByZXN1bHQgPSBhd2FpdCBwbS5yZXNvbHZlKCk7XG5cdFx0XHRleHBlY3QocmVzdWx0LnNraWxscy5zb21lKChyKSA9PiByLnBhdGggPT09IHJvb3RTa2lsbCkpLnRvQmUoZmFsc2UpO1xuXHRcdFx0ZXhwZWN0KHJlc3VsdC5za2lsbHMuc29tZSgocikgPT4gci5wYXRoID09PSBuZXN0ZWRTa2lsbCAmJiByLmVuYWJsZWQpKS50b0JlKHRydWUpO1xuXHRcdH0pO1xuXG5cdFx0aXQoXCJzaG91bGQga2VlcCB+Ly5hZ2VudHMvc2tpbGxzIHVzZXItc2NvcGVkIHdoZW4gY3dkIGlzIHVuZGVyIGhvbWUgaW4gYSBub24tZ2l0IGRpcmVjdG9yeVwiLCBhc3luYyAoKSA9PiB7XG5cdFx0XHRjb25zdCBwcmV2aW91c0hvbWUgPSBwcm9jZXNzLmVudi5IT01FO1xuXHRcdFx0cHJvY2Vzcy5lbnYuSE9NRSA9IHRlbXBEaXI7XG5cblx0XHRcdHRyeSB7XG5cdFx0XHRcdGNvbnN0IGN3ZCA9IGpvaW4odGVtcERpciwgXCJzY3JhdGNoXCIsIFwibmVzdGVkXCIpO1xuXHRcdFx0XHRjb25zdCBsb2NhbEFnZW50RGlyID0gam9pbih0ZW1wRGlyLCBcIi5waVwiLCBcImFnZW50XCIpO1xuXHRcdFx0XHRjb25zdCBsb2NhbFNldHRpbmdzTWFuYWdlciA9IFNldHRpbmdzTWFuYWdlci5pbk1lbW9yeSgpO1xuXHRcdFx0XHRta2RpclN5bmMoY3dkLCB7IHJlY3Vyc2l2ZTogdHJ1ZSB9KTtcblx0XHRcdFx0bWtkaXJTeW5jKGxvY2FsQWdlbnREaXIsIHsgcmVjdXJzaXZlOiB0cnVlIH0pO1xuXG5cdFx0XHRcdGNvbnN0IGhvbWVTa2lsbCA9IGpvaW4odGVtcERpciwgXCIuYWdlbnRzXCIsIFwic2tpbGxzXCIsIFwiaG9tZS1za2lsbFwiLCBcIlNLSUxMLm1kXCIpO1xuXHRcdFx0XHRta2RpclN5bmMoam9pbih0ZW1wRGlyLCBcIi5hZ2VudHNcIiwgXCJza2lsbHNcIiwgXCJob21lLXNraWxsXCIpLCB7IHJlY3Vyc2l2ZTogdHJ1ZSB9KTtcblx0XHRcdFx0d3JpdGVGaWxlU3luYyhob21lU2tpbGwsIFwiLS0tXFxubmFtZTogaG9tZS1za2lsbFxcbmRlc2NyaXB0aW9uOiBob21lXFxuLS0tXFxuXCIpO1xuXG5cdFx0XHRcdGNvbnN0IHBtID0gbmV3IERlZmF1bHRQYWNrYWdlTWFuYWdlcih7XG5cdFx0XHRcdFx0Y3dkLFxuXHRcdFx0XHRcdGFnZW50RGlyOiBsb2NhbEFnZW50RGlyLFxuXHRcdFx0XHRcdHNldHRpbmdzTWFuYWdlcjogbG9jYWxTZXR0aW5nc01hbmFnZXIsXG5cdFx0XHRcdH0pO1xuXG5cdFx0XHRcdGNvbnN0IHJlc3VsdCA9IGF3YWl0IHBtLnJlc29sdmUoKTtcblx0XHRcdFx0Y29uc3QgbWF0Y2hpbmdTa2lsbHMgPSByZXN1bHQuc2tpbGxzLmZpbHRlcigocikgPT4gci5wYXRoID09PSBob21lU2tpbGwpO1xuXHRcdFx0XHRleHBlY3QobWF0Y2hpbmdTa2lsbHMpLnRvSGF2ZUxlbmd0aCgxKTtcblx0XHRcdFx0ZXhwZWN0KG1hdGNoaW5nU2tpbGxzWzBdPy5lbmFibGVkKS50b0JlKHRydWUpO1xuXHRcdFx0XHRleHBlY3QobWF0Y2hpbmdTa2lsbHNbMF0/Lm1ldGFkYXRhLnNjb3BlKS50b0JlKFwidXNlclwiKTtcblx0XHRcdFx0ZXhwZWN0KG1hdGNoaW5nU2tpbGxzWzBdPy5tZXRhZGF0YS5zb3VyY2UpLnRvQmUoXCJhdXRvXCIpO1xuXHRcdFx0fSBmaW5hbGx5IHtcblx0XHRcdFx0aWYgKHByZXZpb3VzSG9tZSA9PT0gdW5kZWZpbmVkKSB7XG5cdFx0XHRcdFx0ZGVsZXRlIHByb2Nlc3MuZW52LkhPTUU7XG5cdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0cHJvY2Vzcy5lbnYuSE9NRSA9IHByZXZpb3VzSG9tZTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH0pO1xuXG5cdFx0aXQoXCJzaG91bGQgZGVkdXBlIHVzZXIgc2tpbGwgZW50cmllcyB3aGVuIH4vLnBpL2FnZW50L3NraWxscyBpcyBhIHN5bWxpbmsgdG8gfi8uYWdlbnRzL3NraWxsc1wiLCBhc3luYyAoKSA9PiB7XG5cdFx0XHRjb25zdCBwcmV2aW91c0hvbWUgPSBwcm9jZXNzLmVudi5IT01FO1xuXHRcdFx0cHJvY2Vzcy5lbnYuSE9NRSA9IHRlbXBEaXI7XG5cblxuWzE1NTMgbW9yZSBsaW5lcyBpbiBmaWxlLiBVc2Ugb2Zmc2V0PTM4MCB0byBjb250aW51ZS5dIn1dLCJpc0Vycm9yIjpmYWxzZSwidGltZXN0YW1wIjoxNzc3NTYzNTI0NzY1fX0seyJ0eXBlIjoibWVzc2FnZSIsImlkIjoiNjFlNzlkOWIiLCJwYXJlbnRJZCI6IjcxN2JmNWJmIiwidGltZXN0YW1wIjoiMjAyNi0wNC0zMFQxNTozODo0Ni45MTJaIiwibWVzc2FnZSI6eyJyb2xlIjoiYXNzaXN0YW50IiwiY29udGVudCI6W3sidHlwZSI6InRvb2xDYWxsIiwiaWQiOiJjYWxsX0pQTk9uUThSakhwTzZIcFJWelJiUnZjVHxmY18wMjdmMWVhMTVkZWYzNTA1MDE2OWYzNzc4NjczYzA4MTkxYmNmMGY5ZWVlZTYxNDYxNCIsIm5hbWUiOiJyZWFkIiwiYXJndW1lbnRzIjp7InBhdGgiOiJwYWNrYWdlcy9jb2RpbmctYWdlbnQvdGVzdC9wYWNrYWdlLW1hbmFnZXIudGVzdC50cyIsIm9mZnNldCI6MzgwLCJsaW1pdCI6MTAwfX1dLCJhcGkiOiJvcGVuYWktY29kZXgtcmVzcG9uc2VzIiwicHJvdmlkZXIiOiJvcGVuYWktY29kZXgiLCJtb2RlbCI6ImdwdC01LjUiLCJ1c2FnZSI6eyJpbnB1dCI6MTcwOSwib3V0cHV0IjozMywiY2FjaGVSZWFkIjo0MzAwOCwiY2FjaGVXcml0ZSI6MCwidG90YWxUb2tlbnMiOjQ0NzUwLCJjb3N0Ijp7ImlucHV0IjowLjAwODU0NSwib3V0cHV0IjowLjAwMDk5LCJjYWNoZVJlYWQiOjAuMDIxNTA0LCJjYWNoZVdyaXRlIjowLCJ0b3RhbCI6MC4wMzEwMzg5OTk5OTk5OTk5OTd9fSwic3RvcFJlYXNvbiI6InRvb2xVc2UiLCJ0aW1lc3RhbXAiOjE3Nzc1NjM1MjQ3NjYsInJlc3BvbnNlSWQiOiJyZXNwXzAyN2YxZWExNWRlZjM1MDUwMTY5ZjM3Nzg1NjUwODgxOTFhZGFmODIzMzNjNzM0MmJlIn19LHsidHlwZSI6Im1lc3NhZ2UiLCJpZCI6ImNhYTA1M2M4IiwicGFyZW50SWQiOiI2MWU3OWQ5YiIsInRpbWVzdGFtcCI6IjIwMjYtMDQtMzBUMTU6Mzg6NDYuOTE2WiIsIm1lc3NhZ2UiOnsicm9sZSI6InRvb2xSZXN1bHQiLCJ0b29sQ2FsbElkIjoiY2FsbF9KUE5PblE4UmpIcE82SHBSVnpSYlJ2Y1R8ZmNfMDI3ZjFlYTE1ZGVmMzUwNTAxNjlmMzc3ODY3M2MwODE5MWJjZjBmOWVlZWU2MTQ2MTQiLCJ0b29sTmFtZSI6InJlYWQiLCJjb250ZW50IjpbeyJ0eXBlIjoidGV4dCIsInRleHQiOiJcdFx0XHR0cnkge1xuXHRcdFx0XHRjb25zdCBhZ2VudFNraWxsc0RpciA9IGpvaW4oYWdlbnREaXIsIFwic2tpbGxzXCIpO1xuXHRcdFx0XHRjb25zdCBhZ2VudHNTa2lsbHNEaXIgPSBqb2luKHRlbXBEaXIsIFwiLmFnZW50c1wiLCBcInNraWxsc1wiKTtcblx0XHRcdFx0bWtkaXJTeW5jKGFnZW50c1NraWxsc0RpciwgeyByZWN1cnNpdmU6IHRydWUgfSk7XG5cdFx0XHRcdC8vIFVzZSBqdW5jdGlvbiBvbiBXaW5kb3dzIHRvIGF2b2lkIEVQRVJNIHdoZW4gc3ltbGluayBwcml2aWxlZ2VzIGFyZSB1bmF2YWlsYWJsZS5cblx0XHRcdFx0Y29uc3QgZGlyZWN0b3J5TGlua1R5cGUgPSBwcm9jZXNzLnBsYXRmb3JtID09PSBcIndpbjMyXCIgPyBcImp1bmN0aW9uXCIgOiBcImRpclwiO1xuXHRcdFx0XHRzeW1saW5rU3luYyhhZ2VudHNTa2lsbHNEaXIsIGFnZW50U2tpbGxzRGlyLCBkaXJlY3RvcnlMaW5rVHlwZSk7XG5cblx0XHRcdFx0Y29uc3Qgc2tpbGxQYXRoID0gam9pbihhZ2VudHNTa2lsbHNEaXIsIFwiZm9vXCIsIFwiU0tJTEwubWRcIik7XG5cdFx0XHRcdG1rZGlyU3luYyhqb2luKGFnZW50c1NraWxsc0RpciwgXCJmb29cIiksIHsgcmVjdXJzaXZlOiB0cnVlIH0pO1xuXHRcdFx0XHR3cml0ZUZpbGVTeW5jKHNraWxsUGF0aCwgXCItLS1cXG5uYW1lOiBmb29cXG5kZXNjcmlwdGlvbjogZm9vXFxuLS0tXFxuXCIpO1xuXG5cdFx0XHRcdGNvbnN0IHJlc3VsdCA9IGF3YWl0IHBhY2thZ2VNYW5hZ2VyLnJlc29sdmUoKTtcblx0XHRcdFx0Y29uc3QgZm9vU2tpbGxzID0gcmVzdWx0LnNraWxscy5maWx0ZXIoKHIpID0+IHBhdGhFbmRzV2l0aChyLnBhdGgsIFwiZm9vL1NLSUxMLm1kXCIpKTtcblxuXHRcdFx0XHRleHBlY3QoZm9vU2tpbGxzKS50b0hhdmVMZW5ndGgoMSk7XG5cdFx0XHR9IGZpbmFsbHkge1xuXHRcdFx0XHRpZiAocHJldmlvdXNIb21lID09PSB1bmRlZmluZWQpIHtcblx0XHRcdFx0XHRkZWxldGUgcHJvY2Vzcy5lbnYuSE9NRTtcblx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRwcm9jZXNzLmVudi5IT01FID0gcHJldmlvdXNIb21lO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fSk7XG5cdH0pO1xuXG5cdGRlc2NyaWJlKFwiaWdub3JlIGZpbGVzXCIsICgpID0+IHtcblx0XHRpdChcInNob3VsZCByZXNwZWN0IC5naXRpZ25vcmUgaW4gc2tpbGwgZGlyZWN0b3JpZXNcIiwgYXN5bmMgKCkgPT4ge1xuXHRcdFx0Y29uc3Qgc2tpbGxzRGlyID0gam9pbihhZ2VudERpciwgXCJza2lsbHNcIik7XG5cdFx0XHRta2RpclN5bmMoc2tpbGxzRGlyLCB7IHJlY3Vyc2l2ZTogdHJ1ZSB9KTtcblx0XHRcdHdyaXRlRmlsZVN5bmMoam9pbihza2lsbHNEaXIsIFwiLmdpdGlnbm9yZVwiKSwgXCJ2ZW52XFxuX19weWNhY2hlX19cXG5cIik7XG5cblx0XHRcdGNvbnN0IGdvb2RTa2lsbERpciA9IGpvaW4oc2tpbGxzRGlyLCBcImdvb2Qtc2tpbGxcIik7XG5cdFx0XHRta2RpclN5bmMoZ29vZFNraWxsRGlyLCB7IHJlY3Vyc2l2ZTogdHJ1ZSB9KTtcblx0XHRcdHdyaXRlRmlsZVN5bmMoam9pbihnb29kU2tpbGxEaXIsIFwiU0tJTEwubWRcIiksIFwiLS0tXFxubmFtZTogZ29vZC1za2lsbFxcbmRlc2NyaXB0aW9uOiBHb29kXFxuLS0tXFxuQ29udGVudFwiKTtcblxuXHRcdFx0Y29uc3QgaWdub3JlZFNraWxsRGlyID0gam9pbihza2lsbHNEaXIsIFwidmVudlwiLCBcImJhZC1za2lsbFwiKTtcblx0XHRcdG1rZGlyU3luYyhpZ25vcmVkU2tpbGxEaXIsIHsgcmVjdXJzaXZlOiB0cnVlIH0pO1xuXHRcdFx0d3JpdGVGaWxlU3luYyhqb2luKGlnbm9yZWRTa2lsbERpciwgXCJTS0lMTC5tZFwiKSwgXCItLS1cXG5uYW1lOiBiYWQtc2tpbGxcXG5kZXNjcmlwdGlvbjogQmFkXFxuLS0tXFxuQ29udGVudFwiKTtcblxuXHRcdFx0c2V0dGluZ3NNYW5hZ2VyLnNldFNraWxsUGF0aHMoW1wic2tpbGxzXCJdKTtcblxuXHRcdFx0Y29uc3QgcmVzdWx0ID0gYXdhaXQgcGFja2FnZU1hbmFnZXIucmVzb2x2ZSgpO1xuXHRcdFx0ZXhwZWN0KHJlc3VsdC5za2lsbHMuc29tZSgocikgPT4gci5wYXRoLmluY2x1ZGVzKFwiZ29vZC1za2lsbFwiKSAmJiByLmVuYWJsZWQpKS50b0JlKHRydWUpO1xuXHRcdFx0ZXhwZWN0KHJlc3VsdC5za2lsbHMuc29tZSgocikgPT4gci5wYXRoLmluY2x1ZGVzKFwidmVudlwiKSAmJiByLmVuYWJsZWQpKS50b0JlKGZhbHNlKTtcblx0XHR9KTtcblxuXHRcdGl0KFwic2hvdWxkIG5vdCBhcHBseSBwYXJlbnQgLmdpdGlnbm9yZSB0byAucGkgYXV0by1kaXNjb3ZlcnlcIiwgYXN5bmMgKCkgPT4ge1xuXHRcdFx0d3JpdGVGaWxlU3luYyhqb2luKHRlbXBEaXIsIFwiLmdpdGlnbm9yZVwiKSwgXCIucGlcXG5cIik7XG5cblx0XHRcdGNvbnN0IHNraWxsRGlyID0gam9pbih0ZW1wRGlyLCBcIi5waVwiLCBcInNraWxsc1wiLCBcImF1dG8tc2tpbGxcIik7XG5cdFx0XHRta2RpclN5bmMoc2tpbGxEaXIsIHsgcmVjdXJzaXZlOiB0cnVlIH0pO1xuXHRcdFx0Y29uc3Qgc2tpbGxQYXRoID0gam9pbihza2lsbERpciwgXCJTS0lMTC5tZFwiKTtcblx0XHRcdHdyaXRlRmlsZVN5bmMoc2tpbGxQYXRoLCBcIi0tLVxcbm5hbWU6IGF1dG8tc2tpbGxcXG5kZXNjcmlwdGlvbjogQXV0b1xcbi0tLVxcbkNvbnRlbnRcIik7XG5cblx0XHRcdGNvbnN0IHJlc3VsdCA9IGF3YWl0IHBhY2thZ2VNYW5hZ2VyLnJlc29sdmUoKTtcblx0XHRcdGV4cGVjdChyZXN1bHQuc2tpbGxzLnNvbWUoKHIpID0+IHIucGF0aCA9PT0gc2tpbGxQYXRoICYmIHIuZW5hYmxlZCkpLnRvQmUodHJ1ZSk7XG5cdFx0fSk7XG5cdH0pO1xuXG5cdGRlc2NyaWJlKFwicmVzb2x2ZUV4dGVuc2lvblNvdXJjZXNcIiwgKCkgPT4ge1xuXHRcdGl0KFwic2hvdWxkIHJlc29sdmUgbG9jYWwgcGF0aHNcIiwgYXN5bmMgKCkgPT4ge1xuXHRcdFx0Y29uc3QgZXh0UGF0aCA9IGpvaW4odGVtcERpciwgXCJleHQudHNcIik7XG5cdFx0XHR3cml0ZUZpbGVTeW5jKGV4dFBhdGgsIFwiZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24oKSB7fVwiKTtcblxuXHRcdFx0Y29uc3QgcmVzdWx0ID0gYXdhaXQgcGFja2FnZU1hbmFnZXIucmVzb2x2ZUV4dGVuc2lvblNvdXJjZXMoW2V4dFBhdGhdKTtcblx0XHRcdGV4cGVjdChyZXN1bHQuZXh0ZW5zaW9ucy5zb21lKChyKSA9PiByLnBhdGggPT09IGV4dFBhdGggJiYgci5lbmFibGVkKSkudG9CZSh0cnVlKTtcblx0XHR9KTtcblxuXHRcdGl0KFwic2hvdWxkIGhhbmRsZSBkaXJlY3RvcmllcyB3aXRoIHBpIG1hbmlmZXN0XCIsIGFzeW5jICgpID0+IHtcblx0XHRcdGNvbnN0IHBrZ0RpciA9IGpvaW4odGVtcERpciwgXCJteS1wYWNrYWdlXCIpO1xuXHRcdFx0bWtkaXJTeW5jKHBrZ0RpciwgeyByZWN1cnNpdmU6IHRydWUgfSk7XG5cdFx0XHR3cml0ZUZpbGVTeW5jKFxuXHRcdFx0XHRqb2luKHBrZ0RpciwgXCJwYWNrYWdlLmpzb25cIiksXG5cdFx0XHRcdEpTT04uc3RyaW5naWZ5KHtcblx0XHRcdFx0XHRuYW1lOiBcIm15LXBhY2thZ2VcIixcblx0XHRcdFx0XHRwaToge1xuXHRcdFx0XHRcdFx0ZXh0ZW5zaW9uczogW1wiLi9zcmMvaW5kZXgudHNcIl0sXG5cdFx0XHRcdFx0XHRza2lsbHM6IFtcIi4vc2tpbGxzXCJdLFxuXHRcdFx0XHRcdH0sXG5cdFx0XHRcdH0pLFxuXHRcdFx0KTtcblx0XHRcdG1rZGlyU3luYyhqb2luKHBrZ0RpciwgXCJzcmNcIiksIHsgcmVjdXJzaXZlOiB0cnVlIH0pO1xuXHRcdFx0d3JpdGVGaWxlU3luYyhqb2luKHBrZ0RpciwgXCJzcmNcIiwgXCJpbmRleC50c1wiKSwgXCJleHBvcnQgZGVmYXVsdCBmdW5jdGlvbigpIHt9XCIpO1xuXHRcdFx0bWtkaXJTeW5jKGpvaW4ocGtnRGlyLCBcInNraWxsc1wiLCBcIm15LXNraWxsXCIpLCB7IHJlY3Vyc2l2ZTogdHJ1ZSB9KTtcblx0XHRcdHdyaXRlRmlsZVN5bmMoXG5cdFx0XHRcdGpvaW4ocGtnRGlyLCBcInNraWxsc1wiLCBcIm15LXNraWxsXCIsIFwiU0tJTEwubWRcIiksXG5cdFx0XHRcdFwiLS0tXFxubmFtZTogbXktc2tpbGxcXG5kZXNjcmlwdGlvbjogVGVzdFxcbi0tLVxcbkNvbnRlbnRcIixcblx0XHRcdCk7XG5cblx0XHRcdGNvbnN0IHJlc3VsdCA9IGF3YWl0IHBhY2thZ2VNYW5hZ2VyLnJlc29sdmVFeHRlbnNpb25Tb3VyY2VzKFtwa2dEaXJdKTtcblx0XHRcdGV4cGVjdChyZXN1bHQuZXh0ZW5zaW9ucy5zb21lKChyKSA9PiByLnBhdGggPT09IGpvaW4ocGtnRGlyLCBcInNyY1wiLCBcImluZGV4LnRzXCIpICYmIHIuZW5hYmxlZCkpLnRvQmUodHJ1ZSk7XG5cdFx0XHQvLyBTa2lsbHMgd2l0aCBTS0lMTC5tZCBhcmUgcmV0dXJuZWQgYXMgZmlsZSBwYXRoc1xuXHRcdFx0ZXhwZWN0KHJlc3VsdC5za2lsbHMuc29tZSgocikgPT4gci5wYXRoID09PSBqb2luKHBrZ0RpciwgXCJza2lsbHNcIiwgXCJteS1za2lsbFwiLCBcIlNLSUxMLm1kXCIpICYmIHIuZW5hYmxlZCkpLnRvQmUoXG5cdFx0XHRcdHRydWUsXG5cdFx0XHQpO1xuXHRcdH0pO1xuXG5cdFx0aXQoXCJzaG91bGQgaGFuZGxlIGRpcmVjdG9yaWVzIHdpdGggYXV0by1kaXNjb3ZlcnkgbGF5b3V0XCIsIGFzeW5jICgpID0+IHtcblx0XHRcdGNvbnN0IHBrZ0RpciA9IGpvaW4odGVtcERpciwgXCJhdXRvLXBrZ1wiKTtcblxuWzE0NTMgbW9yZSBsaW5lcyBpbiBmaWxlLiBVc2Ugb2Zmc2V0PTQ4MCB0byBjb250aW51ZS5dIn1dLCJpc0Vycm9yIjpmYWxzZSwidGltZXN0YW1wIjoxNzc3NTYzNTI2OTE2fX0seyJ0eXBlIjoibWVzc2FnZSIsImlkIjoiMDA2ZGI1MDAiLCJwYXJlbnRJZCI6ImNhYTA1M2M4IiwidGltZXN0YW1wIjoiMjAyNi0wNC0zMFQxNTozOTowMy41MjVaIiwibWVzc2FnZSI6eyJyb2xlIjoiYXNzaXN0YW50IiwiY29udGVudCI6W3sidHlwZSI6InRleHQiLCJ0ZXh0IjoiWWVzLlxuXG5FeGlzdGluZyB0ZXN0czpcbi0gYHBhY2thZ2VzL2NvZGluZy1hZ2VudC90ZXN0L3BhY2thZ2UtbWFuYWdlci50ZXN0LnRzYFxuICAtIEhhcyBhIGBkZXNjcmliZShcIi5hZ2VudHMvc2tpbGxzIGF1dG8tZGlzY292ZXJ5XCIsIC4uLilgXG4gIC0gQWxyZWFkeSBjb3ZlcnM6XG4gICAgLSBhbmNlc3RvciBgLmFnZW50cy9za2lsbHNgIGZyb20gY3dkIHRvIGdpdCByb290XG4gICAgLSBub24tZ2l0IGFuY2VzdG9yIHdhbGtcbiAgICAtIGlnbm9yaW5nIHJvb3QgYC5tZGAgaW4gYC5hZ2VudHMvc2tpbGxzYFxuICAgIC0ga2VlcGluZyBgfi8uYWdlbnRzL3NraWxsc2AgdXNlci1zY29wZWQgdW5kZXIgSE9NRVxuICAgIC0gc3ltbGluayBkZWR1cGUgYmV0d2VlbiBgfi8ucGkvYWdlbnQvc2tpbGxzYCBhbmQgYH4vLmFnZW50cy9za2lsbHNgXG5cbk5vIGNvbmZpZyBzZWxlY3RvciB0ZXN0cyBmb3VuZDpcbi0gbm8gYCpjb25maWcqc2VsZWN0b3IqLnRlc3QudHNgXG4tIG5vIGRpcmVjdCB0ZXN0cyBhcm91bmQgYENvbmZpZ1NlbGVjdG9yQ29tcG9uZW50YC9ncm91cCBsYWJlbHNcblxuQmVzdCBmaXJzdCBmYWlsaW5nIHRlc3RzOlxuMS4gSW4gYHBhY2thZ2UtbWFuYWdlci50ZXN0LnRzYFxuICAgLSBBc3NlcnQgYH4vLmFnZW50cy9za2lsbHNgIHJlc29sdmVkIHJlc291cmNlIGhhczpcbiAgICAgLSBgbWV0YWRhdGEuc2NvcGUgPT09IFwidXNlclwiYFxuICAgICAtIGBtZXRhZGF0YS5zb3VyY2UgPT09IFwiYXV0b1wiYFxuICAgICAtIGBtZXRhZGF0YS5iYXNlRGlyID09PSB+Ly5hZ2VudHNgXG4gICAtIEFzc2VydCBgfi8ucGkvYWdlbnQvc2tpbGxzYCByZXNvdXJjZSBoYXM6XG4gICAgIC0gYG1ldGFkYXRhLmJhc2VEaXIgPT09IGFnZW50RGlyYFxuXG4yLiBGb3IgcHJvamVjdCBhbmNlc3RvciBgLmFnZW50cy9za2lsbHNgXG4gICAtIEFzc2VydCBlYWNoIGRpc2NvdmVyZWQgc2tpbGwgaGFzIGBtZXRhZGF0YS5iYXNlRGlyYCBtYXRjaGluZyBpdHMgb3duIGAuYWdlbnRzYCBkaXIsIGUuZy5cbiAgICAgLSBgcmVwby8uYWdlbnRzYFxuICAgICAtIGByZXBvL3BhY2thZ2VzLy5hZ2VudHNgXG5cbjMuIEZvciBjb25maWcgc2VsZWN0b3IgZ3JvdXBpbmdcbiAgIC0gU2luY2UgdGhlcmUgYXJlIG5vIHRlc3RzLCB3ZSBjYW4gZWl0aGVyOlxuICAgICAtIGV4cG9ydCBhIHNtYWxsIHB1cmUgaGVscGVyIGZyb20gYGNvbmZpZy1zZWxlY3Rvci50c2AgZm9yIHRlc3RzLCBlLmcuIGBidWlsZEdyb3Vwc2Agb3IgYGdldEdyb3VwTGFiZWxgXG4gICAgIC0gb3IgYXZvaWQgZm9yIG5vdyBhbmQgY292ZXIgdmlhIHBhY2thZ2UtbWFuYWdlciBtZXRhZGF0YSBmaXJzdFxuXG5CdXQgaXNzdWUgaXMgZGlzcGxheSBncm91cGluZywgc28gYSBzbWFsbCBleHBvcnQgZm9yIGBidWlsZEdyb3Vwc2AgaXMgcHJvYmFibHkgd29ydGggaXQuIFRlc3Qgd291bGQgYXNzZXJ0IHR3byBgYXV0bzp1c2VyYCBncm91cHMgYXBwZWFyIHdoZW4gYmFzZURpcnMgZGlmZmVyLlxuXG5OZWVkIHlvdXIgY2FsbCBiZWZvcmUgY2hhbmdlczpcbi0gT0sgdG8gZXhwb3J0IGBidWlsZEdyb3Vwc2AgZnJvbSBgY29uZmlnLXNlbGVjdG9yLnRzYCBwdXJlbHkgZm9yIHRlc3RzPyIsInRleHRTaWduYXR1cmUiOiJ7XCJ2XCI6MSxcImlkXCI6XCJtc2dfMDI3ZjFlYTE1ZGVmMzUwNTAxNjlmMzc3ODhkYzZjODE5MWJkMDA1NGNhOTVkYWJmYTFcIixcInBoYXNlXCI6XCJmaW5hbF9hbnN3ZXJcIn0ifV0sImFwaSI6Im9wZW5haS1jb2RleC1yZXNwb25zZXMiLCJwcm92aWRlciI6Im9wZW5haS1jb2RleCIsIm1vZGVsIjoiZ3B0LTUuNSIsInVzYWdlIjp7ImlucHV0IjoxMzMyLCJvdXRwdXQiOjM5OCwiY2FjaGVSZWFkIjo0NDU0NCwiY2FjaGVXcml0ZSI6MCwidG90YWxUb2tlbnMiOjQ2Mjc0LCJjb3N0Ijp7ImlucHV0IjowLjAwNjY2LCJvdXRwdXQiOjAuMDExOTQwMDAwMDAwMDAwMDAxLCJjYWNoZVJlYWQiOjAuMDIyMjcyLCJjYWNoZVdyaXRlIjowLCJ0b3RhbCI6MC4wNDA4NzIwMDAwMDAwMDAwMDZ9fSwic3RvcFJlYXNvbiI6InN0b3AiLCJ0aW1lc3RhbXAiOjE3Nzc1NjM1MjY5MTcsInJlc3BvbnNlSWQiOiJyZXNwXzAyN2YxZWExNWRlZjM1MDUwMTY5ZjM3Nzg3YjVlYzgxOTFiNWExMjkzYWNmODU0NTYyIn19LHsidHlwZSI6Im1lc3NhZ2UiLCJpZCI6IjY4MTQ2ZWNlIiwicGFyZW50SWQiOiIwMDZkYjUwMCIsInRpbWVzdGFtcCI6IjIwMjYtMDQtMzBUMTU6Mzk6MzEuNjYwWiIsIm1lc3NhZ2UiOnsicm9sZSI6InVzZXIiLCJjb250ZW50IjpbeyJ0eXBlIjoidGV4dCIsInRleHQiOiJvaywgYWRkIHRoZSB0ZXN0cywgYm90aCBmYWlsaW5nIGJ1dCBhbHNvIHRlc3RzIHRoYXQgc2hvdWxkIHBhc3Mgbm93LCB0ZXN0aW5nIHRoZSBgLnBpL2FnZW50c2AifV0sInRpbWVzdGFtcCI6MTc3NzU2MzU3MTY1OX19LHsidHlwZSI6Im1lc3NhZ2UiLCJpZCI6Ijc0NWE3YzY2IiwicGFyZW50SWQiOiI2ODE0NmVjZSIsInRpbWVzdGFtcCI6IjIwMjYtMDQtMzBUMTU6Mzk6MzQuNzY5WiIsIm1lc3NhZ2UiOnsicm9sZSI6ImFzc2lzdGFudCIsImNvbnRlbnQiOltdLCJhcGkiOiJvcGVuYWktY29kZXgtcmVzcG9uc2VzIiwicHJvdmlkZXIiOiJvcGVuYWktY29kZXgiLCJtb2RlbCI6ImdwdC01LjUiLCJ1c2FnZSI6eyJpbnB1dCI6MCwib3V0cHV0IjowLCJjYWNoZVJlYWQiOjAsImNhY2hlV3JpdGUiOjAsInRvdGFsVG9rZW5zIjowLCJjb3N0Ijp7ImlucHV0IjowLCJvdXRwdXQiOjAsImNhY2hlUmVhZCI6MCwiY2FjaGVXcml0ZSI6MCwidG90YWwiOjB9fSwic3RvcFJlYXNvbiI6ImFib3J0ZWQiLCJ0aW1lc3RhbXAiOjE3Nzc1NjM1NzE2NjAsInJlc3BvbnNlSWQiOiJyZXNwXzAyN2YxZWExNWRlZjM1MDUwMTY5ZjM3N2I0NzlhODgxOTFiMzJmZmUyY2I3YzUxZTIxIiwiZXJyb3JNZXNzYWdlIjoiT3BlcmF0aW9uIGFib3J0ZWQifX0seyJ0eXBlIjoibWVzc2FnZSIsImlkIjoiZTQ1NzBmODMiLCJwYXJlbnRJZCI6IjAwNmRiNTAwIiwidGltZXN0YW1wIjoiMjAyNi0wNC0zMFQxNTo0MDoxMS4yMDRaIiwibWVzc2FnZSI6eyJyb2xlIjoidXNlciIsImNvbnRlbnQiOlt7InR5cGUiOiJ0ZXh0IiwidGV4dCI6Im9rLCBhZGQgdGhlIHRlc3RzLCBib3RoIGZhaWxpbmcgYnV0IGFsc28gdGVzdHMgdGhhdCBzaG91bGQgcGFzcyBub3csIHRlc3RpbmcgdGhhdCB3ZSByZXNvbHZlIHRoZSByaWdodCBkaXIgZm9yIH4vLnBpL2FnZW50L3NraWxscy8gYW5kIC5waS9za2lsbHMsIGJ1dCBmYWlsIGZvciB0aGUgfi8uYWdlbnRzL3NraWxscy8gYW5kIC5hZ2VudHMvc2tpbGxzIn1dLCJ0aW1lc3RhbXAiOjE3Nzc1NjM2MTEyMDN9fSx7InR5cGUiOiJtZXNzYWdlIiwiaWQiOiI3ZGE5ZGNmMSIsInBhcmVudElkIjoiZTQ1NzBmODMiLCJ0aW1lc3RhbXAiOiIyMDI2LTA0LTMwVDE1OjQwOjIyLjMyNVoiLCJtZXNzYWdlIjp7InJvbGUiOiJhc3Npc3RhbnQiLCJjb250ZW50IjpbeyJ0eXBlIjoidGhpbmtpbmciLCJ0aGlua2luZyI6IioqTG9va2luZyBpbnRvIHRlc3QgZWRpdHMqKlxuXG5JIHJlYWxpemUgd2UgbmVlZCB0byBlZGl0IHNvbWUgdGVzdHMgYW5kIEknbSB0aGlua2luZyBhYm91dCBob3cgdG8gYXBwcm9hY2ggdGhpcy4gRmlyc3QsIEkgc2hvdWxkIHJlYWQgdGhyb3VnaCB0aGUgdG9wIGltcG9ydHMgYW5kIGhlbHBlcnMgdG8gdW5kZXJzdGFuZCB3aGF0IHdlJ3JlIHdvcmtpbmcgd2l0aC4gVGhpcyB3YXksIEkgY2FuIGRlY2lkZSBvbiB0aGUgbmVjZXNzYXJ5IGFkanVzdG1lbnRzLiBJdOKAmXMgYWx3YXlzIGdvb2QgdG8gZW5zdXJlIGNsYXJpdHkgYW5kIHByb3BlciBzdHJ1Y3R1cmUgaW4gdGVzdHMsIHNvIEknbGwgdGFrZSBteSB0aW1lIHRvIGRvIHRoaXMgcmlnaHQhIExldOKAmXMgc2VlIHdoYXQgd2UgY2FuIHJlZmluZSBoZXJlLiIsInRoaW5raW5nU2lnbmF0dXJlIjoie1wiaWRcIjpcInJzXzAyN2YxZWExNWRlZjM1MDUwMTY5ZjM3N2RlNjAxMDgxOTFiZTU3ZWE4NGViNWViOTU0XCIsXCJ0eXBlXCI6XCJyZWFzb25pbmdcIixcImVuY3J5cHRlZF9jb250ZW50XCI6XCJnQUFBQUFCcDgzZmwxY2l4TjYyaElYVEJqNDdnWHlhSkp5akFtSE9tckpxTzl6Wnpvd0g3SHVTM3BXaXFlMklkN3NyNERLWTlVRWxEc0NkQTYyUVZSaU9uYXJMWWZwOFU4WC0wSUZfX1dIQ09zTHZRVk9jbzhYU2FhUXhBNjFQMTUwNmxvU1BPSHZoY19LR2l4ZjN0U00xZEV0d2t0RDBjUzNiWDFjYnE4UlhZejdjTjBWVTJXTHo1dmVvRlFKQWloQmswNjJCeFlKMXB4NDcyYnc5ZlJDekZfUlRzRUpHOEM4c1RSRjRDckNrZENYVjNlaFhWLTFJaFplSk1wYzNNTTZjQ1BqdEkzUnpza1pfWXJLY1ZUaFJLNXZIMGlQXzFuS01Ta09rVWxHVi16N3hNLWpQaDctckRJbGNxbTZiektVOEFaLWJhWmdyVXY1VUdadzJfN2NPR0JmR1lNRjR4T1RraG4yZzFod0ZPeHBxVkYyaUttaEMtak1CbnBFWlVCZ0tSZ2JmSFFqY0M0S3F6WGxPREJnOTRDOEFTcTVVUmpWVFE4dldKbG04dVdIY3F1aVh4b0tGNW1NekdCMElPMXRoM3otWi1fR0hSc19RQnVsVzBJWFdBWUF5U1VyLW9qM05jN3J1eUdJN2w5YWlPMmxMQkUtYy1XblhGa2MtOW11Qk1udS1TOU1GSDU5RHJUOEhWaU9yV19ERVZkRXg4aDBZbERNNEdSMGVPaTc1VEgzZmQzNF94QWlWU3oyN0drendvWHBBaW1TbW01LTFKdHVQWGlVcmVUUnhOZkNSM3FXOVp4cDZWX0RubUttcHlsLWdaTUI3TlFXYUxVeDU4UlNuVEtQTFZ2QUFaMnNscHNhZnB0d19SSVdZN2s4bHc5YzFmdWo1VUp2SVp4dlFwWEdvVGozYzBkemJXT25UeVlNbHM5LUxHQ3JPN0V3Tm85UUZTRVAyNUdjUVZTeko1WkZMY2Z5bUdIQmJnaEQ4WHhNQUJFUkEzNW4weE9uaG56UVVObXdrSk1MZTF4VktVZ0RzeGxVZDlHd1FKaldIU2xmamFfZVk0V1RGVzA1b3RsUlIxZWpwMzdwUTBvdzFqOUQ1N0lpbDNYRGFJeHA5bFl5T2c0WFI0RXNuaFBkMjRTNnRjZEdtdUFGTW9uYmo1V1NHbm85WkxIUjNpSUpRMXRFY3VlV1p0OUlLM1Y3REIzbW5HaHRkV3FuMlhaQ0FiTVRqdUVHSGl5amtuUUxCUVVRUGwzbWpGLW40elIyZFNiQXFQZjA1N1pnZnB1QW9CTFJBckNaTlp1bWFvWi1UbHlfYmhyVFBJZDdtWjViVmwzZVBPR2IwPVwiLFwic3VtbWFyeVwiOlt7XCJ0eXBlXCI6XCJzdW1tYXJ5X3RleHRcIixcInRleHRcIjpcIioqTG9va2luZyBpbnRvIHRlc3QgZWRpdHMqKlxcblxcbkkgcmVhbGl6ZSB3ZSBuZWVkIHRvIGVkaXQgc29tZSB0ZXN0cyBhbmQgSSdtIHRoaW5raW5nIGFib3V0IGhvdyB0byBhcHByb2FjaCB0aGlzLiBGaXJzdCwgSSBzaG91bGQgcmVhZCB0aHJvdWdoIHRoZSB0b3AgaW1wb3J0cyBhbmQgaGVscGVycyB0byB1bmRlcnN0YW5kIHdoYXQgd2UncmUgd29ya2luZyB3aXRoLiBUaGlzIHdheSwgSSBjYW4gZGVjaWRlIG9uIHRoZSBuZWNlc3NhcnkgYWRqdXN0bWVudHMuIEl04oCZcyBhbHdheXMgZ29vZCB0byBlbnN1cmUgY2xhcml0eSBhbmQgcHJvcGVyIHN0cnVjdHVyZSBpbiB0ZXN0cywgc28gSSdsbCB0YWtlIG15IHRpbWUgdG8gZG8gdGhpcyByaWdodCEgTGV04oCZcyBzZWUgd2hhdCB3ZSBjYW4gcmVmaW5lIGhlcmUuXCJ9XX0ifSx7InR5cGUiOiJ0b29sQ2FsbCIsImlkIjoiY2FsbF9sTjZXSTd5cFhGQnlqbGxWVG16NmpkN3N8ZmNfMDI3ZjFlYTE1ZGVmMzUwNTAxNjlmMzc3ZTUzNWU4ODE5MWJiM2E4NjhkY2UwM2JmNTIiLCJuYW1lIjoicmVhZCIsImFyZ3VtZW50cyI6eyJwYXRoIjoicGFja2FnZXMvY29kaW5nLWFnZW50L3Rlc3QvcGFja2FnZS1tYW5hZ2VyLnRlc3QudHMiLCJvZmZzZXQiOjEsImxpbWl0Ijo5MH19XSwiYXBpIjoib3BlbmFpLWNvZGV4LXJlc3BvbnNlcyIsInByb3ZpZGVyIjoib3BlbmFpLWNvZGV4IiwibW9kZWwiOiJncHQtNS41IiwidXNhZ2UiOnsiaW5wdXQiOjI1MSwib3V0cHV0Ijo1MCwiY2FjaGVSZWFkIjo0NjA4MCwiY2FjaGVXcml0ZSI6MCwidG90YWxUb2tlbnMiOjQ2MzgxLCJjb3N0Ijp7ImlucHV0IjowLjAwMTI1NSwib3V0cHV0IjowLjAwMTUsImNhY2hlUmVhZCI6MC4wMjMwMzk5OTk5OTk5OTk5OTgsImNhY2hlV3JpdGUiOjAsInRvdGFsIjowLjAyNTc5NX19LCJzdG9wUmVhc29uIjoidG9vbFVzZSIsInRpbWVzdGFtcCI6MTc3NzU2MzYxMTIwNCwicmVzcG9uc2VJZCI6InJlc3BfMDI3ZjFlYTE1ZGVmMzUwNTAxNjlmMzc3ZGJmYmRjODE5MWJlOTVkOTQ4YzY1NzUwYzYifX0seyJ0eXBlIjoibWVzc2FnZSIsImlkIjoiMmNmZDVjYWUiLCJwYXJlbnRJZCI6IjdkYTlkY2YxIiwidGltZXN0YW1wIjoiMjAyNi0wNC0zMFQxNTo0MDoyMi4zMzRaIiwibWVzc2FnZSI6eyJyb2xlIjoidG9vbFJlc3VsdCIsInRvb2xDYWxsSWQiOiJjYWxsX2xONldJN3lwWEZCeWpsbFZUbXo2amQ3c3xmY18wMjdmMWVhMTVkZWYzNTA1MDE2OWYzNzdlNTM1ZTg4MTkxYmIzYTg2OGRjZTAzYmY1MiIsInRvb2xOYW1lIjoicmVhZCIsImNvbnRlbnQiOlt7InR5cGUiOiJ0ZXh0IiwidGV4dCI6ImltcG9ydCB7IEV2ZW50RW1pdHRlciB9IGZyb20gXCJub2RlOmV2ZW50c1wiO1xuaW1wb3J0IHsgbWtkaXJTeW5jLCBybVN5bmMsIHN5bWxpbmtTeW5jLCB3cml0ZUZpbGVTeW5jIH0gZnJvbSBcIm5vZGU6ZnNcIjtcbmltcG9ydCB7IHRtcGRpciB9IGZyb20gXCJub2RlOm9zXCI7XG5pbXBvcnQgeyBqb2luLCByZWxhdGl2ZSB9IGZyb20gXCJub2RlOnBhdGhcIjtcbmltcG9ydCB7IFBhc3NUaHJvdWdoIH0gZnJvbSBcIm5vZGU6c3RyZWFtXCI7XG5pbXBvcnQgeyBhZnRlckVhY2gsIGJlZm9yZUVhY2gsIGRlc2NyaWJlLCBleHBlY3QsIGl0LCB2aSB9IGZyb20gXCJ2aXRlc3RcIjtcbmltcG9ydCB7IERlZmF1bHRQYWNrYWdlTWFuYWdlciwgdHlwZSBQcm9ncmVzc0V2ZW50LCB0eXBlIFJlc29sdmVkUmVzb3VyY2UgfSBmcm9tIFwiLi4vc3JjL2NvcmUvcGFja2FnZS1tYW5hZ2VyLmpzXCI7XG5pbXBvcnQgeyBTZXR0aW5nc01hbmFnZXIgfSBmcm9tIFwiLi4vc3JjL2NvcmUvc2V0dGluZ3MtbWFuYWdlci5qc1wiO1xuXG5mdW5jdGlvbiBub3JtYWxpemVGb3JNYXRjaCh2YWx1ZTogc3RyaW5nKTogc3RyaW5nIHtcblx0cmV0dXJuIHZhbHVlLnJlcGxhY2UoL1xcXFwvZywgXCIvXCIpO1xufVxuXG5mdW5jdGlvbiBwYXRoRW5kc1dpdGgoYWN0dWFsUGF0aDogc3RyaW5nLCBzdWZmaXg6IHN0cmluZyk6IGJvb2xlYW4ge1xuXHRyZXR1cm4gbm9ybWFsaXplRm9yTWF0Y2goYWN0dWFsUGF0aCkuZW5kc1dpdGgobm9ybWFsaXplRm9yTWF0Y2goc3VmZml4KSk7XG59XG5cbmNsYXNzIE1vY2tTcGF3bmVkUHJvY2VzcyBleHRlbmRzIEV2ZW50RW1pdHRlciB7XG5cdHN0ZG91dCA9IG5ldyBQYXNzVGhyb3VnaCgpO1xuXHRzdGRlcnIgPSBuZXcgUGFzc1Rocm91Z2goKTtcblxuXHRraWxsKCk6IGJvb2xlYW4ge1xuXHRcdHRoaXMuZW1pdChcImNsb3NlXCIsIG51bGwsIFwiU0lHVEVSTVwiKTtcblx0XHRyZXR1cm4gdHJ1ZTtcblx0fVxufVxuXG4vLyBIZWxwZXIgdG8gY2hlY2sgaWYgYSByZXNvdXJjZSBpcyBlbmFibGVkXG5jb25zdCBpc0VuYWJsZWQgPSAocjogUmVzb2x2ZWRSZXNvdXJjZSwgcGF0aE1hdGNoOiBzdHJpbmcsIG1hdGNoRm46IFwiZW5kc1dpdGhcIiB8IFwiaW5jbHVkZXNcIiA9IFwiZW5kc1dpdGhcIikgPT4ge1xuXHRjb25zdCBub3JtYWxpemVkUGF0aCA9IG5vcm1hbGl6ZUZvck1hdGNoKHIucGF0aCk7XG5cdGNvbnN0IG5vcm1hbGl6ZWRNYXRjaCA9IG5vcm1hbGl6ZUZvck1hdGNoKHBhdGhNYXRjaCk7XG5cdHJldHVybiBtYXRjaEZuID09PSBcImVuZHNXaXRoXCJcblx0XHQ/IG5vcm1hbGl6ZWRQYXRoLmVuZHNXaXRoKG5vcm1hbGl6ZWRNYXRjaCkgJiYgci5lbmFibGVkXG5cdFx0OiBub3JtYWxpemVkUGF0aC5pbmNsdWRlcyhub3JtYWxpemVkTWF0Y2gpICYmIHIuZW5hYmxlZDtcbn07XG5cbmNvbnN0IGlzRGlzYWJsZWQgPSAocjogUmVzb2x2ZWRSZXNvdXJjZSwgcGF0aE1hdGNoOiBzdHJpbmcsIG1hdGNoRm46IFwiZW5kc1dpdGhcIiB8IFwiaW5jbHVkZXNcIiA9IFwiZW5kc1dpdGhcIikgPT4ge1xuXHRjb25zdCBub3JtYWxpemVkUGF0aCA9IG5vcm1hbGl6ZUZvck1hdGNoKHIucGF0aCk7XG5cdGNvbnN0IG5vcm1hbGl6ZWRNYXRjaCA9IG5vcm1hbGl6ZUZvck1hdGNoKHBhdGhNYXRjaCk7XG5cdHJldHVybiBtYXRjaEZuID09PSBcImVuZHNXaXRoXCJcblx0XHQ/IG5vcm1hbGl6ZWRQYXRoLmVuZHNXaXRoKG5vcm1hbGl6ZWRNYXRjaCkgJiYgIXIuZW5hYmxlZFxuXHRcdDogbm9ybWFsaXplZFBhdGguaW5jbHVkZXMobm9ybWFsaXplZE1hdGNoKSAmJiAhci5lbmFibGVkO1xufTtcblxuZGVzY3JpYmUoXCJEZWZhdWx0UGFja2FnZU1hbmFnZXJcIiwgKCkgPT4ge1xuXHRsZXQgdGVtcERpcjogc3RyaW5nO1xuXHRsZXQgYWdlbnREaXI6IHN0cmluZztcblx0bGV0IHNldHRpbmdzTWFuYWdlcjogU2V0dGluZ3NNYW5hZ2VyO1xuXHRsZXQgcGFja2FnZU1hbmFnZXI6IERlZmF1bHRQYWNrYWdlTWFuYWdlcjtcblx0bGV0IHByZXZpb3VzT2ZmbGluZUVudjogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXG5cdGJlZm9yZUVhY2goKCkgPT4ge1xuXHRcdHByZXZpb3VzT2ZmbGluZUVudiA9IHByb2Nlc3MuZW52LlBJX09GRkxJTkU7XG5cdFx0ZGVsZXRlIHByb2Nlc3MuZW52LlBJX09GRkxJTkU7XG5cdFx0dGVtcERpciA9IGpvaW4odG1wZGlyKCksIGBwbS10ZXN0LSR7RGF0ZS5ub3coKX0tJHtNYXRoLnJhbmRvbSgpLnRvU3RyaW5nKDM2KS5zbGljZSgyKX1gKTtcblx0XHRta2RpclN5bmModGVtcERpciwgeyByZWN1cnNpdmU6IHRydWUgfSk7XG5cdFx0YWdlbnREaXIgPSBqb2luKHRlbXBEaXIsIFwiYWdlbnRcIik7XG5cdFx0bWtkaXJTeW5jKGFnZW50RGlyLCB7IHJlY3Vyc2l2ZTogdHJ1ZSB9KTtcblxuXHRcdHNldHRpbmdzTWFuYWdlciA9IFNldHRpbmdzTWFuYWdlci5pbk1lbW9yeSgpO1xuXHRcdHBhY2thZ2VNYW5hZ2VyID0gbmV3IERlZmF1bHRQYWNrYWdlTWFuYWdlcih7XG5cdFx0XHRjd2Q6IHRlbXBEaXIsXG5cdFx0XHRhZ2VudERpcixcblx0XHRcdHNldHRpbmdzTWFuYWdlcixcblx0XHR9KTtcblx0fSk7XG5cblx0YWZ0ZXJFYWNoKCgpID0+IHtcblx0XHRpZiAocHJldmlvdXNPZmZsaW5lRW52ID09PSB1bmRlZmluZWQpIHtcblx0XHRcdGRlbGV0ZSBwcm9jZXNzLmVudi5QSV9PRkZMSU5FO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHRwcm9jZXNzLmVudi5QSV9PRkZMSU5FID0gcHJldmlvdXNPZmZsaW5lRW52O1xuXHRcdH1cblx0XHR2aS5yZXN0b3JlQWxsTW9ja3MoKTtcblx0XHR2aS51bnN0dWJBbGxHbG9iYWxzKCk7XG5cdFx0cm1TeW5jKHRlbXBEaXIsIHsgcmVjdXJzaXZlOiB0cnVlLCBmb3JjZTogdHJ1ZSB9KTtcblx0fSk7XG5cblx0ZGVzY3JpYmUoXCJyZXNvbHZlXCIsICgpID0+IHtcblx0XHRpdChcInNob3VsZCByZXR1cm4gbm8gcGFja2FnZS1zb3VyY2VkIHBhdGhzIHdoZW4gbm8gc291cmNlcyBjb25maWd1cmVkXCIsIGFzeW5jICgpID0+IHtcblx0XHRcdGNvbnN0IHJlc3VsdCA9IGF3YWl0IHBhY2thZ2VNYW5hZ2VyLnJlc29sdmUoKTtcblx0XHRcdGV4cGVjdChyZXN1bHQuZXh0ZW5zaW9ucykudG9FcXVhbChbXSk7XG5cdFx0XHRleHBlY3QocmVzdWx0LnByb21wdHMpLnRvRXF1YWwoW10pO1xuXHRcdFx0ZXhwZWN0KHJlc3VsdC50aGVtZXMpLnRvRXF1YWwoW10pO1xuXHRcdFx0ZXhwZWN0KHJlc3VsdC5za2lsbHMuZXZlcnkoKHIpID0+IHIubWV0YWRhdGEuc291cmNlID09PSBcImF1dG9cIiAmJiByLm1ldGFkYXRhLm9yaWdpbiA9PT0gXCJ0b3AtbGV2ZWxcIikpLnRvQmUoXG5cdFx0XHRcdHRydWUsXG5cdFx0XHQpO1xuXHRcdH0pO1xuXG5cdFx0aXQoXCJzaG91bGQgcmVzb2x2ZSBsb2NhbCBleHRlbnNpb24gcGF0aHMgZnJvbSBzZXR0aW5nc1wiLCBhc3luYyAoKSA9PiB7XG5cblsxODQyIG1vcmUgbGluZXMgaW4gZmlsZS4gVXNlIG9mZnNldD05MSB0byBjb250aW51ZS5dIn1dLCJpc0Vycm9yIjpmYWxzZSwidGltZXN0YW1wIjoxNzc3NTYzNjIyMzM0fX0seyJ0eXBlIjoibWVzc2FnZSIsImlkIjoiMjI3YTJhNGIiLCJwYXJlbnRJZCI6IjJjZmQ1Y2FlIiwidGltZXN0YW1wIjoiMjAyNi0wNC0zMFQxNTo0MDoyNy4yOTJaIiwibWVzc2FnZSI6eyJyb2xlIjoiYXNzaXN0YW50IiwiY29udGVudCI6W3sidHlwZSI6InRoaW5raW5nIiwidGhpbmtpbmciOiIqKkNoZWNraW5nIGNvZGUgc3RhdHVzKipcblxuSSBuZWVkIHRvIGFkZCB0ZXN0cyB3aXRoaW4gdGhlIGRlc2NyaWJlIHNlY3Rpb24gZm9yIHRoZSBhZ2VudHMuIEl0J3MgaW1wb3J0YW50IHRvIGVuc3VyZSB0aGF0IHRoZSBjdXJyZW50IGNvZGUgaXMgd29ya2luZyBwcm9wZXJseS4gSSBzaG91bGQgdGFrZSBhIG1vbWVudCB0byBjaGVjayB0aGUgc3RhdHVzIGZpcnN0IHRvIGNvbmZpcm0gZXZlcnl0aGluZyBpcyByZXNldCBhcyBleHBlY3RlZC4gSXQncyBhIGNydWNpYWwgc3RlcCBiZWZvcmUgcHJvY2VlZGluZyB3aXRoIHRoZSB0ZXN0cywgc28gSeKAmWxsIGZvY3VzIG9uIHZlcmlmeWluZyB0aGF0IG5vdGhpbmcgaXMgb3V0IG9mIGFsaWdubWVudC4gTGV0J3MgZ2V0IHRoaXMgcmVzb2x2ZWQhIiwidGhpbmtpbmdTaWduYXR1cmUiOiJ7XCJpZFwiOlwicnNfMDI3ZjFlYTE1ZGVmMzUwNTAxNjlmMzc3ZTgxYjc0ODE5MWE1ZTZiN2QxZmQxMDZhOGNcIixcInR5cGVcIjpcInJlYXNvbmluZ1wiLFwiZW5jcnlwdGVkX2NvbnRlbnRcIjpcImdBQUFBQUJwODNmcTQtbm1aRWp3Z3J4cjJibC1TLXZ2TU1VbUhUcEtzcVdpODE2bjBieFZpU0dkS2xsWnMxdVkxZmt2S29ianJ3ZlRLTXVwSkJPeGhKS29DYk1LalpUREVsYm9za3dkeTFxVFZrSzF5UG02WGtMZFVSS256c0x0eXUtdGRDTVVHZHZZM1hMY0o1aWlBNWN6WDI5Y0pVNHJHbzF1SUQwQlVZLWJqZFhUenJQdDBkek41UFlPVGZUcE1NaDNyOWxPVUw0clJhdkNFRVJpZnc1RWxPeGZJcjh6MlYtNlR0dVg3OGRZUVc0MWlKWnNQVXBnX0tRblJUVXhId3dCMFpiMURsdHhWSUNUcElTeDhDSWYyT3NJT1k4cFlXWXVGekJtYTQybXRhVHIyU2oxX3hsbV9qQkNYa21aSzd5NUJoTzNVV244TmdxV2RURTF2UmRUUjlQQjFNeUluRkVDMFZUVTFJVFhOQmQzNkpVOXpkQjZrUTRhbHVnaGx1MDF0dGtMd0EwVFNqc0RMYlhBZ05pVERxTlhmMlA5ZHNrcEpoa0ZFS3JGVEFTamh1THNKU0ZweEgtVjBTV2FnSmpVcDVqV3R4eUVxaGtVcG81OWp4eHRzV1djaURZYzFzLTJLRHhFeHEtd3JZVkM0RV9XWlZaajFGQWtCT2lkZ00tUDIyRU5GYUJISlRFZDhJZVVreDVyNEtIVVJLdFUyMGgxQWlRYlZHVzJxNGZRZkkyX1MxclBuQ0hvcUVXakcwbzFnMjViNUxNcGNLVlluMDhLaW5aRnUwQUJENEpmcTNSLXRKUmZJQlhLZEd0RFJST2RFSlNyN1VnNEp4NWhReXJSNTBnTE1JbnFpUFhHMDZSVmhKaHp2ZWdQUV9sSXhVYjJIM3o0SVN3NFc2WEhFRVEtVWRRMS13MHAtSWpsMHBaXzNLUGF4WEpZWk1qVlpPZmwxUlVZOE1nbGtUS1ItN0o0ZTQtNXl2dWZ2RGdZZElGTWlpZjNneGtna2NnejBsZ2ZmNE9MT2xFdjZGTzVlX1RPdTFtMmpFUkIzYWxYTHhFX0t6bEFYQjRnOGhhdXR3MHI2WWpFSm1raHk4SmMyMUhUajVjWDVCREdVYWdsajh6ckVNTE84NnNfTjdmOEIwOE12Z1NIOEtlc2lhcnhtTnR4QUtoV0doWW5Kd3Y0aU5uZWNia2VRbVdVanNUSElqZHVvSWRWWWlDampSaGRHUDdwbC1xMGZNSjVCMnUzVjNXQ2d0ZFBzNTk4ZTI2akZsbTAxV1BSLXNiMkVBVkt3MmVQeVZ4VnNYaFpJRGVpdXprTS1aM2c3d1pGbi1hc2dTcVBFcU1meC1id29UcF9ZM2gzMWk5c19Vd1JcIixcInN1bW1hcnlcIjpbe1widHlwZVwiOlwic3VtbWFyeV90ZXh0XCIsXCJ0ZXh0XCI6XCIqKkNoZWNraW5nIGNvZGUgc3RhdHVzKipcXG5cXG5JIG5lZWQgdG8gYWRkIHRlc3RzIHdpdGhpbiB0aGUgZGVzY3JpYmUgc2VjdGlvbiBmb3IgdGhlIGFnZW50cy4gSXQncyBpbXBvcnRhbnQgdG8gZW5zdXJlIHRoYXQgdGhlIGN1cnJlbnQgY29kZSBpcyB3b3JraW5nIHByb3Blcmx5LiBJIHNob3VsZCB0YWtlIGEgbW9tZW50IHRvIGNoZWNrIHRoZSBzdGF0dXMgZmlyc3QgdG8gY29uZmlybSBldmVyeXRoaW5nIGlzIHJlc2V0IGFzIGV4cGVjdGVkLiBJdCdzIGEgY3J1Y2lhbCBzdGVwIGJlZm9yZSBwcm9jZWVkaW5nIHdpdGggdGhlIHRlc3RzLCBzbyBJ4oCZbGwgZm9jdXMgb24gdmVyaWZ5aW5nIHRoYXQgbm90aGluZyBpcyBvdXQgb2YgYWxpZ25tZW50LiBMZXQncyBnZXQgdGhpcyByZXNvbHZlZCFcIn1dfSJ9LHsidHlwZSI6InRvb2xDYWxsIiwiaWQiOiJjYWxsX0Y4OHhCeG5QU2pLQnd3eGw4c2xzT1ZZOHxmY18wMjdmMWVhMTVkZWYzNTA1MDE2OWYzNzdlYWY1ZjQ4MTkxOTkyYjQ3ODMyZDcyNzgyYyIsIm5hbWUiOiJiYXNoIiwiYXJndW1lbnRzIjp7ImNvbW1hbmQiOiJnaXQgc3RhdHVzIC0tc2hvcnQiLCJjd2QiOiIvVXNlcnMvYWxpb3VkaWFsbG8vY29kZS9zcmMvZ2l0aHViLmNvbS9hbGlvdS9waS1tb25vIn19XSwiYXBpIjoib3BlbmFpLWNvZGV4LXJlc3BvbnNlcyIsInByb3ZpZGVyIjoib3BlbmFpLWNvZGV4IiwibW9kZWwiOiJncHQtNS41IiwidXNhZ2UiOnsiaW5wdXQiOjExMDYsIm91dHB1dCI6NjIsImNhY2hlUmVhZCI6NDYwODAsImNhY2hlV3JpdGUiOjAsInRvdGFsVG9rZW5zIjo0NzI0OCwiY29zdCI6eyJpbnB1dCI6MC4wMDU1Mywib3V0cHV0IjowLjAwMTg2LCJjYWNoZVJlYWQiOjAuMDIzMDM5OTk5OTk5OTk5OTk4LCJjYWNoZVdyaXRlIjowLCJ0b3RhbCI6MC4wMzA0M319LCJzdG9wUmVhc29uIjoidG9vbFVzZSIsInRpbWVzdGFtcCI6MTc3NzU2MzYyMjMzNSwicmVzcG9uc2VJZCI6InJlc3BfMDI3ZjFlYTE1ZGVmMzUwNTAxNjlmMzc3ZTZmMGRjODE5MTlhNjY2ZTNkZDM3OGFjODgifX0seyJ0eXBlIjoibWVzc2FnZSIsImlkIjoiNjYwNDAwNGUiLCJwYXJlbnRJZCI6IjIyN2EyYTRiIiwidGltZXN0YW1wIjoiMjAyNi0wNC0zMFQxNTo0MDoyNy4zMzdaIiwibWVzc2FnZSI6eyJyb2xlIjoidG9vbFJlc3VsdCIsInRvb2xDYWxsSWQiOiJjYWxsX0Y4OHhCeG5QU2pLQnd3eGw4c2xzT1ZZOHxmY18wMjdmMWVhMTVkZWYzNTA1MDE2OWYzNzdlYWY1ZjQ4MTkxOTkyYjQ3ODMyZDcyNzgyYyIsInRvb2xOYW1lIjoiYmFzaCIsImNvbnRlbnQiOlt7InR5cGUiOiJ0ZXh0IiwidGV4dCI6IihubyBvdXRwdXQpIn1dLCJkZXRhaWxzIjp7Il9kdXJhdGlvbk1zIjo0NH0sImlzRXJyb3IiOmZhbHNlLCJ0aW1lc3RhbXAiOjE3Nzc1NjM2MjczMzd9fSx7InR5cGUiOiJtZXNzYWdlIiwiaWQiOiJmZDMwN2FlMSIsInBhcmVudElkIjoiNjYwNDAwNGUiLCJ0aW1lc3RhbXAiOiIyMDI2LTA0LTMwVDE1OjQwOjUyLjY4NFoiLCJtZXNzYWdlIjp7InJvbGUiOiJhc3Npc3RhbnQiLCJjb250ZW50IjpbeyJ0eXBlIjoidGhpbmtpbmciLCJ0aGlua2luZyI6IiIsInRoaW5raW5nU2lnbmF0dXJlIjoie1wiaWRcIjpcInJzXzAyN2YxZWExNWRlZjM1MDUwMTY5ZjM3N2VjZjU2NDgxOTFhMDg5YjM4Yjg4ZjcyZTJkXCIsXCJ0eXBlXCI6XCJyZWFzb25pbmdcIixcImVuY3J5cHRlZF9jb250ZW50XCI6XCJnQUFBQUFCcDgzZl9GeVh1UE9KRDRTVEZMMGdBLVQ4Sk10OW9hc2RsdUZxc2pDSG9jNklXNmU3cjBod0lpRW1ZY3I0dGFGQVdnTU1QcXEzY2loREt5UjhZQVotNmVybHdiaFZSRVdBRHRuTGZPMExtaXRoVW4ybzRSMk9JcmxERnVDelB1QUs3Q3J6blFmcEZCSWd6T3Yza283ZUx2RDhrb0JfMGRfUHZGMVZwdExyWlBBMnZubmNDaTg1RnJaUS1sVHB3YnFPMjZPZkVrczhFUjRDVXdsd0tYcG1MZXotdjBDSzBpMDh4M0dPcnJhM2hYQ1gwdTRadVBJeFU0RlFSTURUdDdiOG1pY09PVzY2cktPN3JBdllqQzQ4dXVheTBVcWJVYlJoOEhxZUJzS1Fzcnp4RU8wdFAwWlR3RWlFeVhfUURNVG5SQV9EX1otUzdYZEh6VGNvQWF4X1BsQ2J0alAzRVdPREhJbjVKVzZIQ2hqM0Z4NTdjRF9kX05DSEE5VTcxdnd3NTFuWG1PQjFiXy1xV0J3MXVPbUtyWXpKZm1PX1N0cUV2RkRKUjU3bENIWXpEckk5bFFlOUNPLTd0ZXpsN1VwdVZtSDFqMm5wSExSWENxRkpMR1RRQmxpbl9vZmduOXlfTXZrYW1BTUNibGRXLVpBcEZUdl9pclJ1MFZZRGRaeWFwOFdBMFgwU1B2WVMwQlZidWhkN1FXeXVVRWtRWXNqc1k3UkRiNmRuandsQU9uNFVaMXZBTUVRR3Z6TGhxek9tSGpWREh2TkNvZUhrcXhPN293NGs2aThwcjFCWUxjZ2d5YjktUWJ3UTBvX0hYWlNlcTlsY3EzTGVrUTBhYzRITWZtU0pjQzJpUU5naXBNVmpvOFREbEFKa2locFA0aUlTZEh4eUhOdmNIY2tqQ0FMVzFZZlBvRnlRNHRCQzQ2U1RLUnJVNktqMWZfVWF6ZFl4UFNmQmM0RDFHUDVjMW14QlJFWEwwbUw5OTdHS1pBMGVtREFYbDE0ZVd5YjJSSDd5TWpUMktMRXpyUk1WRW5GZy1pYTV0U3VXNE5Ea0tHOHl4QnpLOG9oVV92SmhRdGtJNjhvWHprQnBuZDg2X0NScDhVbFg4WXdCOGRrX2N6MWFzbk83MUlaWkJHMXNPYmRpTVBBMHRlZ2VrY05INm01eHVYRkpBYUNpNHpKQVZ3bThHcDNjblY1Qmc3aUh6V2NhZ3lHcGYwVk9oZm1YQXBxOURsLVp3WGxiWmFQeDBhZGYzNl9TSjc4b25SNE5oWHN4RlhRaThWcjdvb1NMVWtCWVJyMnp3clJjWUpLMVNOalMxbE5CYTNjT094RDl5aXg4MS1KZnpORndEZGpWZnphYV82emNUdU42RnFtMGE5ZW5xN0lCN3h3enpJVzRfbUNVUGFkbGhBQktOQUVhbURBb3dQMk9OM3I2SmJSUW5pOW92OHlvN3B2d1F3ZEJtdzMzQmpVXzR1ak1ialphWjVOUXZjY2FSQWk0eUxFWVRrbnFtaGg1aTE4bkVqdGhHX2l3U1lnTHZTOC1oOUZDcnQ5bW9lSTRlcnZuRHJRd3R1UkpBbG04MWx3UmZpS21wV09Uc09jYnJTWGMzQjZTcW9WXzBlUFpqb1NzcFE2LWI3a01JRXZYcnpLeDE5WGVxaWVYOElMZE1QVXhjYVB2MnplSF94U3J6cXhwSHRKZGpGVEdOWEhxVlFtZ2cyTTVMcUlHZUxKV3dHbXZsRmhfTUdWNkZuMHJ4bGptYV8xNkpiZVo3cjN0WF9SUFFHaHdWdy1VWWFkczZVSlhGRzdfb1BxQ0ZOMUpVb2IwLXMzbEg5Z0tvQ2lHOXhYd1MtUmZGU0pDN1dqSlZxLUo0SG9GUWdxNTVzeENHZmluOHVkZENpNlR6cXVpRTFMcVFILW5ZY2ZIeFo4ekFOMElERWdhMV9tQ0lqN2tYVFJvYjB3R2E2V3dMamVLTTBETFNOcnFoWkQ3Zl9sR0VTZ0xtN1BiNUJlQ3AtTEZCallDa3F3dmlmVXB2eXFUZFFQNzVNZXBDT2c5R1lLdGhMcll2bWdVX2NFZFRpWUJKMW5EaGVoR0loS0tzX3dFLWdIOTc1bTdZQXpjZTFLSG9ZczJaZ1pzS1BRSHljSVFkZlJ5bVFLZWQyQ3hrenBCVWNPeE0zWHMxbXdpem1ZVVBualM0QVNQRjQxcWFpRHNoam1rSldDRlJmaTNOTWc1T0VLLS1sa0JZVlNOOEE5UEQ5ZkdjV1ZFMU4yVnQta3JwRnpuc1MxN0VGbVZxemhEY0NEZlJrTlJWNnVCa0lYQXRfOGJ4dXBIM1gwRlB1MEJZVHg2LXY4YWliUTgtT0ZGLVhiSG1KaHFTSUUteDhpMHphMVg5M0tXcjc5ZVpHVzF6b2FWUkFJc3VIUHk0Y1dDRWxtOTZDanY1a3pmV3FKeTB4RzJTdGRNbzE2Tk5uV0RHMi1pR2VEbWRodkFUMnlXbVZYWGdqNjJPcE9XbkQ3MUt6cE9sU3c9PVwiLFwic3VtbWFyeVwiOltdfSJ9LHsidHlwZSI6InRvb2xDYWxsIiwiaWQiOiJjYWxsXzhzUzZtdnVldEZGdDRRNFhTcjF3SUtmN3xmY18wMjdmMWVhMTVkZWYzNTA1MDE2OWYzNzdmZjY4ODg4MTkxYmZhNGQyZjdmNjNmZTY3OCIsIm5hbWUiOiJlZGl0IiwiYXJndW1lbnRzIjp7InBhdGgiOiJwYWNrYWdlcy9jb2RpbmctYWdlbnQvdGVzdC9wYWNrYWdlLW1hbmFnZXIudGVzdC50cyIsImVkaXRzIjpbeyJvbGRUZXh0IjoiXHRkZXNjcmliZShcIi5hZ2VudHMvc2tpbGxzIGF1dG8tZGlzY292ZXJ5XCIsICgpID0+IHtcblx0XHRpdChcInNob3VsZCBzY2FuIC5hZ2VudHMvc2tpbGxzIGZyb20gY3dkIHVwIHRvIGdpdCByZXBvIHJvb3RcIiwgYXN5bmMgKCkgPT4ge1xuIiwibmV3VGV4dCI6Ilx0ZGVzY3JpYmUoXCJhdXRvLWRpc2NvdmVyZWQgc2tpbGwgbWV0YWRhdGFcIiwgKCkgPT4ge1xuXHRcdGl0KFwic2hvdWxkIHVzZSB0aGUgYWdlbnQgZGlyIGFzIGJhc2VEaXIgZm9yIHVzZXIgLnBpL2FnZW50IHNraWxsc1wiLCBhc3luYyAoKSA9PiB7XG5cdFx0XHRjb25zdCBza2lsbFBhdGggPSBqb2luKGFnZW50RGlyLCBcInNraWxsc1wiLCBcInVzZXItcGlcIiwgXCJTS0lMTC5tZFwiKTtcblx0XHRcdG1rZGlyU3luYyhqb2luKGFnZW50RGlyLCBcInNraWxsc1wiLCBcInVzZXItcGlcIiksIHsgcmVjdXJzaXZlOiB0cnVlIH0pO1xuXHRcdFx0d3JpdGVGaWxlU3luYyhza2lsbFBhdGgsIFwiLS0tXFxubmFtZTogdXNlci1waVxcbmRlc2NyaXB0aW9uOiB1c2VyIHBpXFxuLS0tXFxuXCIpO1xuXG5cdFx0XHRjb25zdCByZXN1bHQgPSBhd2FpdCBwYWNrYWdlTWFuYWdlci5yZXNvbHZlKCk7XG5cdFx0XHRjb25zdCBza2lsbCA9IHJlc3VsdC5za2lsbHMuZmluZCgocikgPT4gci5wYXRoID09PSBza2lsbFBhdGgpO1xuXG5cdFx0XHRleHBlY3Qoc2tpbGw/Lm1ldGFkYXRhLnNvdXJjZSkudG9CZShcImF1dG9cIik7XG5cdFx0XHRleHBlY3Qoc2tpbGw/Lm1ldGFkYXRhLnNjb3BlKS50b0JlKFwidXNlclwiKTtcblx0XHRcdGV4cGVjdChza2lsbD8ubWV0YWRhdGEuYmFzZURpcikudG9CZShhZ2VudERpcik7XG5cdFx0fSk7XG5cblx0XHRpdChcInNob3VsZCB1c2UgdGhlIHByb2plY3QgLnBpIGRpciBhcyBiYXNlRGlyIGZvciBwcm9qZWN0IC5waSBza2lsbHNcIiwgYXN5bmMgKCkgPT4ge1xuXHRcdFx0Y29uc3QgcHJvamVjdEJhc2VEaXIgPSBqb2luKHRlbXBEaXIsIFwiLnBpXCIpO1xuXHRcdFx0Y29uc3Qgc2tpbGxQYXRoID0gam9pbihwcm9qZWN0QmFzZURpciwgXCJza2lsbHNcIiwgXCJwcm9qZWN0LXBpXCIsIFwiU0tJTEwubWRcIik7XG5cdFx0XHRta2RpclN5bmMoam9pbihwcm9qZWN0QmFzZURpciwgXCJza2lsbHNcIiwgXCJwcm9qZWN0LXBpXCIpLCB7IHJlY3Vyc2l2ZTogdHJ1ZSB9KTtcblx0XHRcdHdyaXRlRmlsZVN5bmMoc2tpbGxQYXRoLCBcIi0tLVxcbm5hbWU6IHByb2plY3QtcGlcXG5kZXNjcmlwdGlvbjogcHJvamVjdCBwaVxcbi0tLVxcblwiKTtcblxuXHRcdFx0Y29uc3QgcmVzdWx0ID0gYXdhaXQgcGFja2FnZU1hbmFnZXIucmVzb2x2ZSgpO1xuXHRcdFx0Y29uc3Qgc2tpbGwgPSByZXN1bHQuc2tpbGxzLmZpbmQoKHIpID0+IHIucGF0aCA9PT0gc2tpbGxQYXRoKTtcblxuXHRcdFx0ZXhwZWN0KHNraWxsPy5tZXRhZGF0YS5zb3VyY2UpLnRvQmUoXCJhdXRvXCIpO1xuXHRcdFx0ZXhwZWN0KHNraWxsPy5tZXRhZGF0YS5zY29wZSkudG9CZShcInByb2plY3RcIik7XG5cdFx0XHRleHBlY3Qoc2tpbGw/Lm1ldGFkYXRhLmJhc2VEaXIpLnRvQmUocHJvamVjdEJhc2VEaXIpO1xuXHRcdH0pO1xuXG5cdFx0aXQoXCJzaG91bGQgdXNlIH4vLmFnZW50cyBhcyBiYXNlRGlyIGZvciB1c2VyIC5hZ2VudHMgc2tpbGxzXCIsIGFzeW5jICgpID0+IHtcblx0XHRcdGNvbnN0IHByZXZpb3VzSG9tZSA9IHByb2Nlc3MuZW52LkhPTUU7XG5cdFx0XHRwcm9jZXNzLmVudi5IT01FID0gdGVtcERpcjtcblxuXHRcdFx0dHJ5IHtcblx0XHRcdFx0Y29uc3QgYWdlbnRzQmFzZURpciA9IGpvaW4odGVtcERpciwgXCIuYWdlbnRzXCIpO1xuXHRcdFx0XHRjb25zdCBza2lsbFBhdGggPSBqb2luKGFnZW50c0Jhc2VEaXIsIFwic2tpbGxzXCIsIFwidXNlci1hZ2VudHNcIiwgXCJTS0lMTC5tZFwiKTtcblx0XHRcdFx0bWtkaXJTeW5jKGpvaW4oYWdlbnRzQmFzZURpciwgXCJza2lsbHNcIiwgXCJ1c2VyLWFnZW50c1wiKSwgeyByZWN1cnNpdmU6IHRydWUgfSk7XG5cdFx0XHRcdHdyaXRlRmlsZVN5bmMoc2tpbGxQYXRoLCBcIi0tLVxcbm5hbWU6IHVzZXItYWdlbnRzXFxuZGVzY3JpcHRpb246IHVzZXIgYWdlbnRzXFxuLS0tXFxuXCIpO1xuXG5cdFx0XHRcdGNvbnN0IHJlc3VsdCA9IGF3YWl0IHBhY2thZ2VNYW5hZ2VyLnJlc29sdmUoKTtcblx0XHRcdFx0Y29uc3Qgc2tpbGwgPSByZXN1bHQuc2tpbGxzLmZpbmQoKHIpID0+IHIucGF0aCA9PT0gc2tpbGxQYXRoKTtcblxuXHRcdFx0XHRleHBlY3Qoc2tpbGw/Lm1ldGFkYXRhLnNvdXJjZSkudG9CZShcImF1dG9cIik7XG5cdFx0XHRcdGV4cGVjdChza2lsbD8ubWV0YWRhdGEuc2NvcGUpLnRvQmUoXCJ1c2VyXCIpO1xuXHRcdFx0XHRleHBlY3Qoc2tpbGw/Lm1ldGFkYXRhLmJhc2VEaXIpLnRvQmUoYWdlbnRzQmFzZURpcik7XG5cdFx0XHR9IGZpbmFsbHkge1xuXHRcdFx0XHRpZiAocHJldmlvdXNIb21lID09PSB1bmRlZmluZWQpIHtcblx0XHRcdFx0XHRkZWxldGUgcHJvY2Vzcy5lbnYuSE9NRTtcblx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRwcm9jZXNzLmVudi5IT01FID0gcHJldmlvdXNIb21lO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fSk7XG5cblx0XHRpdChcInNob3VsZCB1c2UgZWFjaCBwcm9qZWN0IC5hZ2VudHMgZGlyIGFzIGJhc2VEaXIgZm9yIHByb2plY3QgLmFnZW50cyBza2lsbHNcIiwgYXN5bmMgKCkgPT4ge1xuXHRcdFx0Y29uc3QgcmVwb1Jvb3QgPSBqb2luKHRlbXBEaXIsIFwicmVwb1wiKTtcblx0XHRcdGNvbnN0IG5lc3RlZEN3ZCA9IGpvaW4ocmVwb1Jvb3QsIFwicGFja2FnZXNcIiwgXCJmZWF0dXJlXCIpO1xuXHRcdFx0bWtkaXJTeW5jKG5lc3RlZEN3ZCwgeyByZWN1cnNpdmU6IHRydWUgfSk7XG5cdFx0XHRta2RpclN5bmMoam9pbihyZXBvUm9vdCwgXCIuZ2l0XCIpLCB7IHJlY3Vyc2l2ZTogdHJ1ZSB9KTtcblxuXHRcdFx0Y29uc3QgcmVwb0FnZW50c0Jhc2VEaXIgPSBqb2luKHJlcG9Sb290LCBcIi5hZ2VudHNcIik7XG5cdFx0XHRjb25zdCByZXBvU2tpbGwgPSBqb2luKHJlcG9BZ2VudHNCYXNlRGlyLCBcInNraWxsc1wiLCBcInJlcG9cIiwgXCJTS0lMTC5tZFwiKTtcblx0XHRcdG1rZGlyU3luYyhqb2luKHJlcG9BZ2VudHNCYXNlRGlyLCBcInNraWxsc1wiLCBcInJlcG9cIiksIHsgcmVjdXJzaXZlOiB0cnVlIH0pO1xuXHRcdFx0d3JpdGVGaWxlU3luYyhyZXBvU2tpbGwsIFwiLS0tXFxubmFtZTogcmVwb1xcbmRlc2NyaXB0aW9uOiByZXBvXFxuLS0tXFxuXCIpO1xuXG5cdFx0XHRjb25zdCBwYWNrYWdlQWdlbnRzQmFzZURpciA9IGpvaW4ocmVwb1Jvb3QsIFwicGFja2FnZXNcIiwgXCIuYWdlbnRzXCIpO1xuXHRcdFx0Y29uc3QgcGFja2FnZVNraWxsID0gam9pbihwYWNrYWdlQWdlbnRzQmFzZURpciwgXCJza2lsbHNcIiwgXCJwYWNrYWdlXCIsIFwiU0tJTEwubWRcIik7XG5cdFx0XHRta2RpclN5bmMoam9pbihwYWNrYWdlQWdlbnRzQmFzZURpciwgXCJza2lsbHNcIiwgXCJwYWNrYWdlXCIpLCB7IHJlY3Vyc2l2ZTogdHJ1ZSB9KTtcblx0XHRcdHdyaXRlRmlsZVN5bmMocGFja2FnZVNraWxsLCBcIi0tLVxcbm5hbWU6IHBhY2thZ2VcXG5kZXNjcmlwdGlvbjogcGFja2FnZVxcbi0tLVxcblwiKTtcblxuXHRcdFx0Y29uc3QgcG0gPSBuZXcgRGVmYXVsdFBhY2thZ2VNYW5hZ2VyKHtcblx0XHRcdFx0Y3dkOiBuZXN0ZWRDd2QsXG5cdFx0XHRcdGFnZW50RGlyLFxuXHRcdFx0XHRzZXR0aW5nc01hbmFnZXIsXG5cdFx0XHR9KTtcblxuXHRcdFx0Y29uc3QgcmVzdWx0ID0gYXdhaXQgcG0ucmVzb2x2ZSgpO1xuXHRcdFx0Y29uc3QgcmVzb2x2ZWRSZXBvU2tpbGwgPSByZXN1bHQuc2tpbGxzLmZpbmQoKHIpID0+IHIucGF0aCA9PT0gcmVwb1NraWxsKTtcblx0XHRcdGNvbnN0IHJlc29sdmVkUGFja2FnZVNraWxsID0gcmVzdWx0LnNraWxscy5maW5kKChyKSA9PiByLnBhdGggPT09IHBhY2thZ2VTa2lsbCk7XG5cblx0XHRcdGV4cGVjdChyZXNvbHZlZFJlcG9Ta2lsbD8ubWV0YWRhdGEuc291cmNlKS50b0JlKFwiYXV0b1wiKTtcblx0XHRcdGV4cGVjdChyZXNvbHZlZFJlcG9Ta2lsbD8ubWV0YWRhdGEuc2NvcGUpLnRvQmUoXCJwcm9qZWN0XCIpO1xuXHRcdFx0ZXhwZWN0KHJlc29sdmVkUmVwb1NraWxsPy5tZXRhZGF0YS5iYXNlRGlyKS50b0JlKHJlcG9BZ2VudHNCYXNlRGlyKTtcblx0XHRcdGV4cGVjdChyZXNvbHZlZFBhY2thZ2VTa2lsbD8ubWV0YWRhdGEuc291cmNlKS50b0JlKFwiYXV0b1wiKTtcblx0XHRcdGV4cGVjdChyZXNvbHZlZFBhY2thZ2VTa2lsbD8ubWV0YWRhdGEuc2NvcGUpLnRvQmUoXCJwcm9qZWN0XCIpO1xuXHRcdFx0ZXhwZWN0KHJlc29sdmVkUGFja2FnZVNraWxsPy5tZXRhZGF0YS5iYXNlRGlyKS50b0JlKHBhY2thZ2VBZ2VudHNCYXNlRGlyKTtcblx0XHR9KTtcblx0fSk7XG5cblx0ZGVzY3JpYmUoXCIuYWdlbnRzL3NraWxscyBhdXRvLWRpc2NvdmVyeVwiLCAoKSA9PiB7XG5cdFx0aXQoXCJzaG91bGQgc2NhbiAuYWdlbnRzL3NraWxscyBmcm9tIGN3ZCB1cCB0byBnaXQgcmVwbyByb290XCIsIGFzeW5jICgpID0+IHtcbiJ9XX19XSwiYXBpIjoib3BlbmFpLWNvZGV4LXJlc3BvbnNlcyIsInByb3ZpZGVyIjoib3BlbmFpLWNvZGV4IiwibW9kZWwiOiJncHQtNS41IiwidXNhZ2UiOnsiaW5wdXQiOjE1OCwib3V0cHV0IjoxNjI5LCJjYWNoZVJlYWQiOjQ3MTA0LCJjYWNoZVdyaXRlIjowLCJ0b3RhbFRva2VucyI6NDg4OTEsImNvc3QiOnsiaW5wdXQiOjAuMDAwNzksIm91dHB1dCI6MC4wNDg4NzAwMDAwMDAwMDAwMDQsImNhY2hlUmVhZCI6MC4wMjM1NTIsImNhY2hlV3JpdGUiOjAsInRvdGFsIjowLjA3MzIxMn19LCJzdG9wUmVhc29uIjoidG9vbFVzZSIsInRpbWVzdGFtcCI6MTc3NzU2MzYyNzMzOCwicmVzcG9uc2VJZCI6InJlc3BfMDI3ZjFlYTE1ZGVmMzUwNTAxNjlmMzc3ZWJlMDM4ODE5MTlkMTc0OTllZjY0ZmNjZGQifX0seyJ0eXBlIjoibWVzc2FnZSIsImlkIjoiZjI4ZDAyZGEiLCJwYXJlbnRJZCI6ImZkMzA3YWUxIiwidGltZXN0YW1wIjoiMjAyNi0wNC0zMFQxNTo0MDo1Mi42OTBaIiwibWVzc2FnZSI6eyJyb2xlIjoidG9vbFJlc3VsdCIsInRvb2xDYWxsSWQiOiJjYWxsXzhzUzZtdnVldEZGdDRRNFhTcjF3SUtmN3xmY18wMjdmMWVhMTVkZWYzNTA1MDE2OWYzNzdmZjY4ODg4MTkxYmZhNGQyZjdmNjNmZTY3OCIsInRvb2xOYW1lIjoiZWRpdCIsImNvbnRlbnQiOlt7InR5cGUiOiJ0ZXh0IiwidGV4dCI6IlN1Y2Nlc3NmdWxseSByZXBsYWNlZCAxIGJsb2NrKHMpIGluIHBhY2thZ2VzL2NvZGluZy1hZ2VudC90ZXN0L3BhY2thZ2UtbWFuYWdlci50ZXN0LnRzLiJ9XSwiZGV0YWlscyI6eyJkaWZmIjoiICAgICAgLi4uXG4gIDI2MSBcdFx0XHRleHBlY3QocmVzdWx0LmV4dGVuc2lvbnMuc29tZSgocikgPT4gcGF0aEVuZHNXaXRoKHIucGF0aCwgXCJoZWxwZXIudHNcIikpKS50b0JlKGZhbHNlKTtcbiAgMjYyIFx0XHR9KTtcbiAgMjYzIFx0fSk7XG4gIDI2NCBcbisgMjY1IFx0ZGVzY3JpYmUoXCJhdXRvLWRpc2NvdmVyZWQgc2tpbGwgbWV0YWRhdGFcIiwgKCkgPT4ge1xuKyAyNjYgXHRcdGl0KFwic2hvdWxkIHVzZSB0aGUgYWdlbnQgZGlyIGFzIGJhc2VEaXIgZm9yIHVzZXIgLnBpL2FnZW50IHNraWxsc1wiLCBhc3luYyAoKSA9PiB7XG4rIDI2NyBcdFx0XHRjb25zdCBza2lsbFBhdGggPSBqb2luKGFnZW50RGlyLCBcInNraWxsc1wiLCBcInVzZXItcGlcIiwgXCJTS0lMTC5tZFwiKTtcbisgMjY4IFx0XHRcdG1rZGlyU3luYyhqb2luKGFnZW50RGlyLCBcInNraWxsc1wiLCBcInVzZXItcGlcIiksIHsgcmVjdXJzaXZlOiB0cnVlIH0pO1xuKyAyNjkgXHRcdFx0d3JpdGVGaWxlU3luYyhza2lsbFBhdGgsIFwiLS0tXFxubmFtZTogdXNlci1waVxcbmRlc2NyaXB0aW9uOiB1c2VyIHBpXFxuLS0tXFxuXCIpO1xuKyAyNzAgXG4rIDI3MSBcdFx0XHRjb25zdCByZXN1bHQgPSBhd2FpdCBwYWNrYWdlTWFuYWdlci5yZXNvbHZlKCk7XG4rIDI3MiBcdFx0XHRjb25zdCBza2lsbCA9IHJlc3VsdC5za2lsbHMuZmluZCgocikgPT4gci5wYXRoID09PSBza2lsbFBhdGgpO1xuKyAyNzMgXG4rIDI3NCBcdFx0XHRleHBlY3Qoc2tpbGw/Lm1ldGFkYXRhLnNvdXJjZSkudG9CZShcImF1dG9cIik7XG4rIDI3NSBcdFx0XHRleHBlY3Qoc2tpbGw/Lm1ldGFkYXRhLnNjb3BlKS50b0JlKFwidXNlclwiKTtcbisgMjc2IFx0XHRcdGV4cGVjdChza2lsbD8ubWV0YWRhdGEuYmFzZURpcikudG9CZShhZ2VudERpcik7XG4rIDI3NyBcdFx0fSk7XG4rIDI3OCBcbisgMjc5IFx0XHRpdChcInNob3VsZCB1c2UgdGhlIHByb2plY3QgLnBpIGRpciBhcyBiYXNlRGlyIGZvciBwcm9qZWN0IC5waSBza2lsbHNcIiwgYXN5bmMgKCkgPT4ge1xuKyAyODAgXHRcdFx0Y29uc3QgcHJvamVjdEJhc2VEaXIgPSBqb2luKHRlbXBEaXIsIFwiLnBpXCIpO1xuKyAyODEgXHRcdFx0Y29uc3Qgc2tpbGxQYXRoID0gam9pbihwcm9qZWN0QmFzZURpciwgXCJza2lsbHNcIiwgXCJwcm9qZWN0LXBpXCIsIFwiU0tJTEwubWRcIik7XG4rIDI4MiBcdFx0XHRta2RpclN5bmMoam9pbihwcm9qZWN0QmFzZURpciwgXCJza2lsbHNcIiwgXCJwcm9qZWN0LXBpXCIpLCB7IHJlY3Vyc2l2ZTogdHJ1ZSB9KTtcbisgMjgzIFx0XHRcdHdyaXRlRmlsZVN5bmMoc2tpbGxQYXRoLCBcIi0tLVxcbm5hbWU6IHByb2plY3QtcGlcXG5kZXNjcmlwdGlvbjogcHJvamVjdCBwaVxcbi0tLVxcblwiKTtcbisgMjg0IFxuKyAyODUgXHRcdFx0Y29uc3QgcmVzdWx0ID0gYXdhaXQgcGFja2FnZU1hbmFnZXIucmVzb2x2ZSgpO1xuKyAyODYgXHRcdFx0Y29uc3Qgc2tpbGwgPSByZXN1bHQuc2tpbGxzLmZpbmQoKHIpID0+IHIucGF0aCA9PT0gc2tpbGxQYXRoKTtcbisgMjg3IFxuKyAyODggXHRcdFx0ZXhwZWN0KHNraWxsPy5tZXRhZGF0YS5zb3VyY2UpLnRvQmUoXCJhdXRvXCIpO1xuKyAyODkgXHRcdFx0ZXhwZWN0KHNraWxsPy5tZXRhZGF0YS5zY29wZSkudG9CZShcInByb2plY3RcIik7XG4rIDI5MCBcdFx0XHRleHBlY3Qoc2tpbGw/Lm1ldGFkYXRhLmJhc2VEaXIpLnRvQmUocHJvamVjdEJhc2VEaXIpO1xuKyAyOTEgXHRcdH0pO1xuKyAyOTIgXG4rIDI5MyBcdFx0aXQoXCJzaG91bGQgdXNlIH4vLmFnZW50cyBhcyBiYXNlRGlyIGZvciB1c2VyIC5hZ2VudHMgc2tpbGxzXCIsIGFzeW5jICgpID0+IHtcbisgMjk0IFx0XHRcdGNvbnN0IHByZXZpb3VzSG9tZSA9IHByb2Nlc3MuZW52LkhPTUU7XG4rIDI5NSBcdFx0XHRwcm9jZXNzLmVudi5IT01FID0gdGVtcERpcjtcbisgMjk2IFxuKyAyOTcgXHRcdFx0dHJ5IHtcbisgMjk4IFx0XHRcdFx0Y29uc3QgYWdlbnRzQmFzZURpciA9IGpvaW4odGVtcERpciwgXCIuYWdlbnRzXCIpO1xuKyAyOTkgXHRcdFx0XHRjb25zdCBza2lsbFBhdGggPSBqb2luKGFnZW50c0Jhc2VEaXIsIFwic2tpbGxzXCIsIFwidXNlci1hZ2VudHNcIiwgXCJTS0lMTC5tZFwiKTtcbisgMzAwIFx0XHRcdFx0bWtkaXJTeW5jKGpvaW4oYWdlbnRzQmFzZURpciwgXCJza2lsbHNcIiwgXCJ1c2VyLWFnZW50c1wiKSwgeyByZWN1cnNpdmU6IHRydWUgfSk7XG4rIDMwMSBcdFx0XHRcdHdyaXRlRmlsZVN5bmMoc2tpbGxQYXRoLCBcIi0tLVxcbm5hbWU6IHVzZXItYWdlbnRzXFxuZGVzY3JpcHRpb246IHVzZXIgYWdlbnRzXFxuLS0tXFxuXCIpO1xuKyAzMDIgXG4rIDMwMyBcdFx0XHRcdGNvbnN0IHJlc3VsdCA9IGF3YWl0IHBhY2thZ2VNYW5hZ2VyLnJlc29sdmUoKTtcbisgMzA0IFx0XHRcdFx0Y29uc3Qgc2tpbGwgPSByZXN1bHQuc2tpbGxzLmZpbmQoKHIpID0+IHIucGF0aCA9PT0gc2tpbGxQYXRoKTtcbisgMzA1IFxuKyAzMDYgXHRcdFx0XHRleHBlY3Qoc2tpbGw/Lm1ldGFkYXRhLnNvdXJjZSkudG9CZShcImF1dG9cIik7XG4rIDMwNyBcdFx0XHRcdGV4cGVjdChza2lsbD8ubWV0YWRhdGEuc2NvcGUpLnRvQmUoXCJ1c2VyXCIpO1xuKyAzMDggXHRcdFx0XHRleHBlY3Qoc2tpbGw/Lm1ldGFkYXRhLmJhc2VEaXIpLnRvQmUoYWdlbnRzQmFzZURpcik7XG4rIDMwOSBcdFx0XHR9IGZpbmFsbHkge1xuKyAzMTAgXHRcdFx0XHRpZiAocHJldmlvdXNIb21lID09PSB1bmRlZmluZWQpIHtcbisgMzExIFx0XHRcdFx0XHRkZWxldGUgcHJvY2Vzcy5lbnYuSE9NRTtcbisgMzEyIFx0XHRcdFx0fSBlbHNlIHtcbisgMzEzIFx0XHRcdFx0XHRwcm9jZXNzLmVudi5IT01FID0gcHJldmlvdXNIb21lO1xuKyAzMTQgXHRcdFx0XHR9XG4rIDMxNSBcdFx0XHR9XG4rIDMxNiBcdFx0fSk7XG4rIDMxNyBcbisgMzE4IFx0XHRpdChcInNob3VsZCB1c2UgZWFjaCBwcm9qZWN0IC5hZ2VudHMgZGlyIGFzIGJhc2VEaXIgZm9yIHByb2plY3QgLmFnZW50cyBza2lsbHNcIiwgYXN5bmMgKCkgPT4ge1xuKyAzMTkgXHRcdFx0Y29uc3QgcmVwb1Jvb3QgPSBqb2luKHRlbXBEaXIsIFwicmVwb1wiKTtcbisgMzIwIFx0XHRcdGNvbnN0IG5lc3RlZEN3ZCA9IGpvaW4ocmVwb1Jvb3QsIFwicGFja2FnZXNcIiwgXCJmZWF0dXJlXCIpO1xuKyAzMjEgXHRcdFx0bWtkaXJTeW5jKG5lc3RlZEN3ZCwgeyByZWN1cnNpdmU6IHRydWUgfSk7XG4rIDMyMiBcdFx0XHRta2RpclN5bmMoam9pbihyZXBvUm9vdCwgXCIuZ2l0XCIpLCB7IHJlY3Vyc2l2ZTogdHJ1ZSB9KTtcbisgMzIzIFxuKyAzMjQgXHRcdFx0Y29uc3QgcmVwb0FnZW50c0Jhc2VEaXIgPSBqb2luKHJlcG9Sb290LCBcIi5hZ2VudHNcIik7XG4rIDMyNSBcdFx0XHRjb25zdCByZXBvU2tpbGwgPSBqb2luKHJlcG9BZ2VudHNCYXNlRGlyLCBcInNraWxsc1wiLCBcInJlcG9cIiwgXCJTS0lMTC5tZFwiKTtcbisgMzI2IFx0XHRcdG1rZGlyU3luYyhqb2luKHJlcG9BZ2VudHNCYXNlRGlyLCBcInNraWxsc1wiLCBcInJlcG9cIiksIHsgcmVjdXJzaXZlOiB0cnVlIH0pO1xuKyAzMjcgXHRcdFx0d3JpdGVGaWxlU3luYyhyZXBvU2tpbGwsIFwiLS0tXFxubmFtZTogcmVwb1xcbmRlc2NyaXB0aW9uOiByZXBvXFxuLS0tXFxuXCIpO1xuKyAzMjggXG4rIDMyOSBcdFx0XHRjb25zdCBwYWNrYWdlQWdlbnRzQmFzZURpciA9IGpvaW4ocmVwb1Jvb3QsIFwicGFja2FnZXNcIiwgXCIuYWdlbnRzXCIpO1xuKyAzMzAgXHRcdFx0Y29uc3QgcGFja2FnZVNraWxsID0gam9pbihwYWNrYWdlQWdlbnRzQmFzZURpciwgXCJza2lsbHNcIiwgXCJwYWNrYWdlXCIsIFwiU0tJTEwubWRcIik7XG4rIDMzMSBcdFx0XHRta2RpclN5bmMoam9pbihwYWNrYWdlQWdlbnRzQmFzZURpciwgXCJza2lsbHNcIiwgXCJwYWNrYWdlXCIpLCB7IHJlY3Vyc2l2ZTogdHJ1ZSB9KTtcbisgMzMyIFx0XHRcdHdyaXRlRmlsZVN5bmMocGFja2FnZVNraWxsLCBcIi0tLVxcbm5hbWU6IHBhY2thZ2VcXG5kZXNjcmlwdGlvbjogcGFja2FnZVxcbi0tLVxcblwiKTtcbisgMzMzIFxuKyAzMzQgXHRcdFx0Y29uc3QgcG0gPSBuZXcgRGVmYXVsdFBhY2thZ2VNYW5hZ2VyKHtcbisgMzM1IFx0XHRcdFx0Y3dkOiBuZXN0ZWRDd2QsXG4rIDMzNiBcdFx0XHRcdGFnZW50RGlyLFxuKyAzMzcgXHRcdFx0XHRzZXR0aW5nc01hbmFnZXIsXG4rIDMzOCBcdFx0XHR9KTtcbisgMzM5IFxuKyAzNDAgXHRcdFx0Y29uc3QgcmVzdWx0ID0gYXdhaXQgcG0ucmVzb2x2ZSgpO1xuKyAzNDEgXHRcdFx0Y29uc3QgcmVzb2x2ZWRSZXBvU2tpbGwgPSByZXN1bHQuc2tpbGxzLmZpbmQoKHIpID0+IHIucGF0aCA9PT0gcmVwb1NraWxsKTtcbisgMzQyIFx0XHRcdGNvbnN0IHJlc29sdmVkUGFja2FnZVNraWxsID0gcmVzdWx0LnNraWxscy5maW5kKChyKSA9PiByLnBhdGggPT09IHBhY2thZ2VTa2lsbCk7XG4rIDM0MyBcbisgMzQ0IFx0XHRcdGV4cGVjdChyZXNvbHZlZFJlcG9Ta2lsbD8ubWV0YWRhdGEuc291cmNlKS50b0JlKFwiYXV0b1wiKTtcbisgMzQ1IFx0XHRcdGV4cGVjdChyZXNvbHZlZFJlcG9Ta2lsbD8ubWV0YWRhdGEuc2NvcGUpLnRvQmUoXCJwcm9qZWN0XCIpO1xuKyAzNDYgXHRcdFx0ZXhwZWN0KHJlc29sdmVkUmVwb1NraWxsPy5tZXRhZGF0YS5iYXNlRGlyKS50b0JlKHJlcG9BZ2VudHNCYXNlRGlyKTtcbisgMzQ3IFx0XHRcdGV4cGVjdChyZXNvbHZlZFBhY2thZ2VTa2lsbD8ubWV0YWRhdGEuc291cmNlKS50b0JlKFwiYXV0b1wiKTtcbisgMzQ4IFx0XHRcdGV4cGVjdChyZXNvbHZlZFBhY2thZ2VTa2lsbD8ubWV0YWRhdGEuc2NvcGUpLnRvQmUoXCJwcm9qZWN0XCIpO1xuKyAzNDkgXHRcdFx0ZXhwZWN0KHJlc29sdmVkUGFja2FnZVNraWxsPy5tZXRhZGF0YS5iYXNlRGlyKS50b0JlKHBhY2thZ2VBZ2VudHNCYXNlRGlyKTtcbisgMzUwIFx0XHR9KTtcbisgMzUxIFx0fSk7XG4rIDM1MiBcbiAgMjY1IFx0ZGVzY3JpYmUoXCIuYWdlbnRzL3NraWxscyBhdXRvLWRpc2NvdmVyeVwiLCAoKSA9PiB7XG4gIDI2NiBcdFx0aXQoXCJzaG91bGQgc2NhbiAuYWdlbnRzL3NraWxscyBmcm9tIGN3ZCB1cCB0byBnaXQgcmVwbyByb290XCIsIGFzeW5jICgpID0+IHtcbiAgMjY3IFx0XHRcdGNvbnN0IHJlcG9Sb290ID0gam9pbih0ZW1wRGlyLCBcInJlcG9cIik7XG4gIDI2OCBcdFx0XHRjb25zdCBuZXN0ZWRDd2QgPSBqb2luKHJlcG9Sb290LCBcInBhY2thZ2VzXCIsIFwiZmVhdHVyZVwiKTtcbiAgICAgIC4uLiIsImZpcnN0Q2hhbmdlZExpbmUiOjI2NX0sImlzRXJyb3IiOmZhbHNlLCJ0aW1lc3RhbXAiOjE3Nzc1NjM2NTI2OTB9fSx7InR5cGUiOiJtZXNzYWdlIiwiaWQiOiI1NmRlYTQ4ZiIsInBhcmVudElkIjoiZjI4ZDAyZGEiLCJ0aW1lc3RhbXAiOiIyMDI2LTA0LTMwVDE1OjQwOjU1LjAwNVoiLCJtZXNzYWdlIjp7InJvbGUiOiJhc3Npc3RhbnQiLCJjb250ZW50IjpbeyJ0eXBlIjoidG9vbENhbGwiLCJpZCI6ImNhbGxfdjNuTGR5REN3OThaMVhQU3FsOXVtUzlnfGZjXzAyN2YxZWExNWRlZjM1MDUwMTY5ZjM3ODA2M2VlYzgxOTE5Y2ExYzczMTk4ZjU0YTVkIiwibmFtZSI6ImJhc2giLCJhcmd1bWVudHMiOnsiY29tbWFuZCI6Im5weCB0c3ggLi4vLi4vbm9kZV9tb2R1bGVzL3ZpdGVzdC9kaXN0L2NsaS5qcyAtLXJ1biB0ZXN0L3BhY2thZ2UtbWFuYWdlci50ZXN0LnRzIC10IFwiYXV0by1kaXNjb3ZlcmVkIHNraWxsIG1ldGFkYXRhXCIiLCJjd2QiOiIvVXNlcnMvYWxpb3VkaWFsbG8vY29kZS9zcmMvZ2l0aHViLmNvbS9hbGlvdS9waS1tb25vL3BhY2thZ2VzL2NvZGluZy1hZ2VudCIsInRpbWVvdXQiOjEyMH19XSwiYXBpIjoib3BlbmFpLWNvZGV4LXJlc3BvbnNlcyIsInByb3ZpZGVyIjoib3BlbmFpLWNvZGV4IiwibW9kZWwiOiJncHQtNS41IiwidXNhZ2UiOnsiaW5wdXQiOjE4MTUsIm91dHB1dCI6NzQsImNhY2hlUmVhZCI6NDcxMDQsImNhY2hlV3JpdGUiOjAsInRvdGFsVG9rZW5zIjo0ODk5MywiY29zdCI6eyJpbnB1dCI6MC4wMDkwNzUwMDAwMDAwMDAwMDEsIm91dHB1dCI6MC4wMDIyMiwiY2FjaGVSZWFkIjowLjAyMzU1MiwiY2FjaGVXcml0ZSI6MCwidG90YWwiOjAuMDM0ODQ3fX0sInN0b3BSZWFzb24iOiJ0b29sVXNlIiwidGltZXN0YW1wIjoxNzc3NTYzNjUyNjkyLCJyZXNwb25zZUlkIjoicmVzcF8wMjdmMWVhMTVkZWYzNTA1MDE2OWYzNzgwNTQ5ZjA4MTkxODc3NWNlYTgyN2ZhMmJlYyJ9fSx7InR5cGUiOiJtZXNzYWdlIiwiaWQiOiI3NjQzN2EyYSIsInBhcmVudElkIjoiNTZkZWE0OGYiLCJ0aW1lc3RhbXAiOiIyMDI2LTA0LTMwVDE1OjQwOjU2LjIxM1oiLCJtZXNzYWdlIjp7InJvbGUiOiJ0b29sUmVzdWx0IiwidG9vbENhbGxJZCI6ImNhbGxfdjNuTGR5REN3OThaMVhQU3FsOXVtUzlnfGZjXzAyN2YxZWExNWRlZjM1MDUwMTY5ZjM3ODA2M2VlYzgxOTE5Y2ExYzczMTk4ZjU0YTVkIiwidG9vbE5hbWUiOiJiYXNoIiwiY29udGVudCI6W3sidHlwZSI6InRleHQiLCJ0ZXh0IjoiXG4gUlVOICB2My4yLjQgL1VzZXJzL2FsaW91ZGlhbGxvL2NvZGUvc3JjL2dpdGh1Yi5jb20vYWxpb3UvcGktbW9uby9wYWNrYWdlcy9jb2RpbmctYWdlbnRcblxuIOKdryB0ZXN0L3BhY2thZ2UtbWFuYWdlci50ZXN0LnRzICg5OSB0ZXN0cyB8IDIgZmFpbGVkIHwgOTUgc2tpcHBlZCkgMTRtc1xuICAg4oaTIERlZmF1bHRQYWNrYWdlTWFuYWdlciA+IHJlc29sdmUgPiBzaG91bGQgcmV0dXJuIG5vIHBhY2thZ2Utc291cmNlZCBwYXRocyB3aGVuIG5vIHNvdXJjZXMgY29uZmlndXJlZFxuICAg4oaTIERlZmF1bHRQYWNrYWdlTWFuYWdlciA+IHJlc29sdmUgPiBzaG91bGQgcmVzb2x2ZSBsb2NhbCBleHRlbnNpb24gcGF0aHMgZnJvbSBzZXR0aW5nc1xuICAg4oaTIERlZmF1bHRQYWNrYWdlTWFuYWdlciA+IHJlc29sdmUgPiBzaG91bGQgcmVzb2x2ZSBza2lsbCBwYXRocyBmcm9tIHNldHRpbmdzXG4gICDihpMgRGVmYXVsdFBhY2thZ2VNYW5hZ2VyID4gcmVzb2x2ZSA+IHNob3VsZCBhdXRvLWRpc2NvdmVyIHJvb3QgbWFya2Rvd24gc2tpbGxzIGZyb20gLnBpIHNraWxsIGRpcnNcbiAgIOKGkyBEZWZhdWx0UGFja2FnZU1hbmFnZXIgPiByZXNvbHZlID4gc2hvdWxkIHJlc29sdmUgcHJvamVjdCBwYXRocyByZWxhdGl2ZSB0byAucGlcbiAgIOKGkyBEZWZhdWx0UGFja2FnZU1hbmFnZXIgPiByZXNvbHZlID4gc2hvdWxkIGF1dG8tZGlzY292ZXIgdXNlciBwcm9tcHRzIHdpdGggb3ZlcnJpZGVzXG4gICDihpMgRGVmYXVsdFBhY2thZ2VNYW5hZ2VyID4gcmVzb2x2ZSA+IHNob3VsZCByZXNvbHZlIHN5bWxpbmtlZCB1c2VyIGFuZCBwcm9qZWN0IHJlc291cmNlcyBvbmNlXG4gICDihpMgRGVmYXVsdFBhY2thZ2VNYW5hZ2VyID4gcmVzb2x2ZSA+IHNob3VsZCBhdXRvLWRpc2NvdmVyIHByb2plY3QgcHJvbXB0cyB3aXRoIG92ZXJyaWRlc1xuICAg4oaTIERlZmF1bHRQYWNrYWdlTWFuYWdlciA+IHJlc29sdmUgPiBzaG91bGQgcmVzb2x2ZSBkaXJlY3Rvcnkgd2l0aCBwYWNrYWdlLmpzb24gcGkuZXh0ZW5zaW9ucyBpbiBleHRlbnNpb25zIHNldHRpbmdcbiAgIOKckyBEZWZhdWx0UGFja2FnZU1hbmFnZXIgPiBhdXRvLWRpc2NvdmVyZWQgc2tpbGwgbWV0YWRhdGEgPiBzaG91bGQgdXNlIHRoZSBhZ2VudCBkaXIgYXMgYmFzZURpciBmb3IgdXNlciAucGkvYWdlbnQgc2tpbGxzIDNtc1xuICAg4pyTIERlZmF1bHRQYWNrYWdlTWFuYWdlciA+IGF1dG8tZGlzY292ZXJlZCBza2lsbCBtZXRhZGF0YSA+IHNob3VsZCB1c2UgdGhlIHByb2plY3QgLnBpIGRpciBhcyBiYXNlRGlyIGZvciBwcm9qZWN0IC5waSBza2lsbHMgMW1zXG4gICDDlyBEZWZhdWx0UGFja2FnZU1hbmFnZXIgPiBhdXRvLWRpc2NvdmVyZWQgc2tpbGwgbWV0YWRhdGEgPiBzaG91bGQgdXNlIH4vLmFnZW50cyBhcyBiYXNlRGlyIGZvciB1c2VyIC5hZ2VudHMgc2tpbGxzIDZtc1xuICAgICDihpIgZXhwZWN0ZWQgJy92YXIvZm9sZGVycy9seS9mZDVsMG0weDV4NWd6cnFyNTMycmzigKYnIHRvIGJlICcvdmFyL2ZvbGRlcnMvbHkvZmQ1bDBtMHg1eDVnenJxcjUzMnJs4oCmJyAvLyBPYmplY3QuaXMgZXF1YWxpdHlcbiAgIMOXIERlZmF1bHRQYWNrYWdlTWFuYWdlciA+IGF1dG8tZGlzY292ZXJlZCBza2lsbCBtZXRhZGF0YSA+IHNob3VsZCB1c2UgZWFjaCBwcm9qZWN0IC5hZ2VudHMgZGlyIGFzIGJhc2VEaXIgZm9yIHByb2plY3QgLmFnZW50cyBza2lsbHMgM21zXG4gICAgIOKGkiBleHBlY3RlZCAnL3Zhci9mb2xkZXJzL2x5L2ZkNWwwbTB4NXg1Z3pycXI1MzJybOKApicgdG8gYmUgJy92YXIvZm9sZGVycy9seS9mZDVsMG0weDV4NWd6cnFyNTMycmzigKYnIC8vIE9iamVjdC5pcyBlcXVhbGl0eVxuICAg4oaTIERlZmF1bHRQYWNrYWdlTWFuYWdlciA+IC5hZ2VudHMvc2tpbGxzIGF1dG8tZGlzY292ZXJ5ID4gc2hvdWxkIHNjYW4gLmFnZW50cy9za2lsbHMgZnJvbSBjd2QgdXAgdG8gZ2l0IHJlcG8gcm9vdFxuICAg4oaTIERlZmF1bHRQYWNrYWdlTWFuYWdlciA+IC5hZ2VudHMvc2tpbGxzIGF1dG8tZGlzY292ZXJ5ID4gc2hvdWxkIHNjYW4gLmFnZW50cy9za2lsbHMgdXAgdG8gZmlsZXN5c3RlbSByb290IHdoZW4gbm90IGluIGEgZ2l0IHJlcG9cbiAgIOKGkyBEZWZhdWx0UGFja2FnZU1hbmFnZXIgPiAuYWdlbnRzL3NraWxscyBhdXRvLWRpc2NvdmVyeSA+IHNob3VsZCBpZ25vcmUgcm9vdCBtYXJrZG93biBmaWxlcyBpbiAuYWdlbnRzL3NraWxsc1xuICAg4oaTIERlZmF1bHRQYWNrYWdlTWFuYWdlciA+IC5hZ2VudHMvc2tpbGxzIGF1dG8tZGlzY292ZXJ5ID4gc2hvdWxkIGtlZXAgfi8uYWdlbnRzL3NraWxscyB1c2VyLXNjb3BlZCB3aGVuIGN3ZCBpcyB1bmRlciBob21lIGluIGEgbm9uLWdpdCBkaXJlY3RvcnlcbiAgIOKGkyBEZWZhdWx0UGFja2FnZU1hbmFnZXIgPiAuYWdlbnRzL3NraWxscyBhdXRvLWRpc2NvdmVyeSA+IHNob3VsZCBkZWR1cGUgdXNlciBza2lsbCBlbnRyaWVzIHdoZW4gfi8ucGkvYWdlbnQvc2tpbGxzIGlzIGEgc3ltbGluayB0byB+Ly5hZ2VudHMvc2tpbGxzXG4gICDihpMgRGVmYXVsdFBhY2thZ2VNYW5hZ2VyID4gaWdub3JlIGZpbGVzID4gc2hvdWxkIHJlc3BlY3QgLmdpdGlnbm9yZSBpbiBza2lsbCBkaXJlY3Rvcmllc1xuICAg4oaTIERlZmF1bHRQYWNrYWdlTWFuYWdlciA+IGlnbm9yZSBmaWxlcyA+IHNob3VsZCBub3QgYXBwbHkgcGFyZW50IC5naXRpZ25vcmUgdG8gLnBpIGF1dG8tZGlzY292ZXJ5XG4gICDihpMgRGVmYXVsdFBhY2thZ2VNYW5hZ2VyID4gcmVzb2x2ZUV4dGVuc2lvblNvdXJjZXMgPiBzaG91bGQgcmVzb2x2ZSBsb2NhbCBwYXRoc1xuICAg4oaTIERlZmF1bHRQYWNrYWdlTWFuYWdlciA+IHJlc29sdmVFeHRlbnNpb25Tb3VyY2VzID4gc2hvdWxkIGhhbmRsZSBkaXJlY3RvcmllcyB3aXRoIHBpIG1hbmlmZXN0XG4gICDihpMgRGVmYXVsdFBhY2thZ2VNYW5hZ2VyID4gcmVzb2x2ZUV4dGVuc2lvblNvdXJjZXMgPiBzaG91bGQgaGFuZGxlIGRpcmVjdG9yaWVzIHdpdGggYXV0by1kaXNjb3ZlcnkgbGF5b3V0XG4gICDihpMgRGVmYXVsdFBhY2thZ2VNYW5hZ2VyID4gcmVzb2x2ZUV4dGVuc2lvblNvdXJjZXMgPiBzaG91bGQgc3RvcCByZWN1cnNpbmcgd2hlbiBhIHBhY2thZ2Ugc2tpbGwgZGlyZWN0b3J5IGNvbnRhaW5zIFNLSUxMLm1kXG4gICDihpMgRGVmYXVsdFBhY2thZ2VNYW5hZ2VyID4gcHJvZ3Jlc3MgY2FsbGJhY2sgPiBzaG91bGQgZW1pdCBwcm9ncmVzcyBldmVudHNcbiAgIOKGkyBEZWZhdWx0UGFja2FnZU1hbmFnZXIgPiB3aW5kb3dzIGNvbW1hbmQgc3Bhd25pbmcgPiBzaG91bGQgYXZvaWQgdGhlIHNoZWxsIGZvciBnaXQgc28gV2luZG93cyBwYXRocyB3aXRoIHNwYWNlcyBzdGF5IHNpbmdsZSBhcmd1bWVudHNcbiAgIOKGkyBEZWZhdWx0UGFja2FnZU1hbmFnZXIgPiBucG1Db21tYW5kID4gc2hvdWxkIHVzZSBucG1Db21tYW5kIGFyZ3YgZm9yIG5wbSBpbnN0YWxsc1xuICAg4oaTIERlZmF1bHRQYWNrYWdlTWFuYWdlciA+IG5wbUNvbW1hbmQgPiBzaG91bGQgaW5zdGFsbCBnaXQgcGFja2FnZSBkZXBlbmRlbmNpZXMgd2l0aCAtLW9taXQ9ZGV2XG4gICDihpMgRGVmYXVsdFBhY2thZ2VNYW5hZ2VyID4gbnBtQ29tbWFuZCA+IHNob3VsZCB1c2UgcGxhaW4gaW5zdGFsbCBmb3IgZ2l0IHBhY2thZ2UgZGVwZW5kZW5jaWVzIHdoZW4gbnBtQ29tbWFuZCBpcyBjb25maWd1cmVkXG4gICDihpMgRGVmYXVsdFBhY2thZ2VNYW5hZ2VyID4gbnBtQ29tbWFuZCA+IHNob3VsZCB1cGRhdGUgZ2l0IHBhY2thZ2UgZGVwZW5kZW5jaWVzIHdpdGggLS1vbWl0PWRldlxuICAg4oaTIERlZmF1bHRQYWNrYWdlTWFuYWdlciA+IG5wbUNvbW1hbmQgPiBzaG91bGQgdXNlIHBsYWluIGluc3RhbGwgdGhyb3VnaCBucG1Db21tYW5kIGFyZ3Ygd2hlbiB1cGRhdGluZyBnaXQgcGFja2FnZSBkZXBlbmRlbmNpZXNcbiAgIOKGkyBEZWZhdWx0UGFja2FnZU1hbmFnZXIgPiBucG1Db21tYW5kID4gc2hvdWxkIHVzZSBucG1Db21tYW5kIGFyZ3YgZm9yIG5wbSByb290IGxvb2t1cCBhbmQgaW52YWxpZGF0ZSBjYWNoZWQgcm9vdCB3aGVuIG5wbUNvbW1hbmQgY2hhbmdlc1xuICAg4oaTIERlZmF1bHRQYWNrYWdlTWFuYWdlciA+IHNvdXJjZSBwYXJzaW5nID4gc2hvdWxkIGVtaXQgcHJvZ3Jlc3MgZXZlbnRzIG9uIGluc3RhbGwgYXR0ZW1wdFxuICAg4oaTIERlZmF1bHRQYWNrYWdlTWFuYWdlciA+IHNvdXJjZSBwYXJzaW5nID4gc2hvdWxkIHJlY29nbml6ZSBnaXRodWIgVVJMcyB3aXRob3V0IGdpdDogcHJlZml4XG4gICDihpMgRGVmYXVsdFBhY2thZ2VNYW5hZ2VyID4gc291cmNlIHBhcnNpbmcgPiBzaG91bGQgcGFyc2UgcGFja2FnZSBzb3VyY2UgdHlwZXMgZnJvbSBkb2NzIGV4YW1wbGVzXG4gICDihpMgRGVmYXVsdFBhY2thZ2VNYW5hZ2VyID4gc291cmNlIHBhcnNpbmcgPiBzaG91bGQgbmV2ZXIgcGFyc2UgZG90LXJlbGF0aXZlIHBhdGhzIGFzIGdpdFxuICAg4oaTIERlZmF1bHRQYWNrYWdlTWFuYWdlciA+IHNldHRpbmdzIHNvdXJjZSBub3JtYWxpemF0aW9uID4gc2hvdWxkIHN0b3JlIGdsb2JhbCBsb2NhbCBwYWNrYWdlcyByZWxhdGl2ZSB0byBhZ2VudCBzZXR0aW5ncyBiYXNlXG4gICDihpMgRGVmYXVsdFBhY2thZ2VNYW5hZ2VyID4gc2V0dGluZ3Mgc291cmNlIG5vcm1hbGl6YXRpb24gPiBzaG91bGQgc3RvcmUgcHJvamVjdCBsb2NhbCBwYWNrYWdlcyByZWxhdGl2ZSB0byAucGkgc2V0dGluZ3MgYmFzZVxuICAg4oaTIERlZmF1bHRQYWNrYWdlTWFuYWdlciA+IHNldHRpbmdzIHNvdXJjZSBub3JtYWxpemF0aW9uID4gc2hvdWxkIHJlbW92ZSBsb2NhbCBwYWNrYWdlIGVudHJpZXMgdXNpbmcgZXF1aXZhbGVudCBwYXRoIGZvcm1zXG4gICDihpMgRGVmYXVsdFBhY2thZ2VNYW5hZ2VyID4gSFRUUFMgZ2l0IFVSTCBwYXJzaW5nIChvbGQgYmVoYXZpb3IpID4gc2hvdWxkIHBhcnNlIEhUVFBTIEdpdEh1YiBVUkxzIGNvcnJlY3RseVxuICAg4oaTIERlZmF1bHRQYWNrYWdlTWFuYWdlciA+IEhUVFBTIGdpdCBVUkwgcGFyc2luZyAob2xkIGJlaGF2aW9yKSA+IHNob3VsZCBwYXJzZSBIVFRQUyBVUkxzIHdpdGggZ2l0OiBwcmVmaXhcbiAgIOKGkyBEZWZhdWx0UGFja2FnZU1hbmFnZXIgPiBIVFRQUyBnaXQgVVJMIHBhcnNpbmcgKG9sZCBiZWhhdmlvcikgPiBzaG91bGQgcGFyc2UgSFRUUFMgVVJMcyB3aXRoIHJlZlxuICAg4oaTIERlZmF1bHRQYWNrYWdlTWFuYWdlciA+IEhUVFBTIGdpdCBVUkwgcGFyc2luZyAob2xkIGJlaGF2aW9yKSA+IHNob3VsZCBwYXJzZSBob3N0L3BhdGggc2hvcnRoYW5kIG9ubHkgd2l0aCBnaXQ6IHByZWZpeFxuICAg4oaTIERlZmF1bHRQYWNrYWdlTWFuYWdlciA+IEhUVFBTIGdpdCBVUkwgcGFyc2luZyAob2xkIGJlaGF2aW9yKSA+IHNob3VsZCB0cmVhdCBob3N0L3BhdGggc2hvcnRoYW5kIGFzIGxvY2FsIHdpdGhvdXQgZ2l0OiBwcmVmaXhcbiAgIOKGkyBEZWZhdWx0UGFja2FnZU1hbmFnZXIgPiBIVFRQUyBnaXQgVVJMIHBhcnNpbmcgKG9sZCBiZWhhdmlvcikgPiBzaG91bGQgcGFyc2UgSFRUUFMgVVJMcyB3aXRoIC5naXQgc3VmZml4XG4gICDihpMgRGVmYXVsdFBhY2thZ2VNYW5hZ2VyID4gSFRUUFMgZ2l0IFVSTCBwYXJzaW5nIChvbGQgYmVoYXZpb3IpID4gc2hvdWxkIHBhcnNlIEdpdExhYiBIVFRQUyBVUkxzXG4gICDihpMgRGVmYXVsdFBhY2thZ2VNYW5hZ2VyID4gSFRUUFMgZ2l0IFVSTCBwYXJzaW5nIChvbGQgYmVoYXZpb3IpID4gc2hvdWxkIHBhcnNlIEJpdGJ1Y2tldCBIVFRQUyBVUkxzXG4gICDihpMgRGVmYXVsdFBhY2thZ2VNYW5hZ2VyID4gSFRUUFMgZ2l0IFVSTCBwYXJzaW5nIChvbGQgYmVoYXZpb3IpID4gc2hvdWxkIHBhcnNlIENvZGViZXJnIEhUVFBTIFVSTHNcbiAgIOKGkyBEZWZhdWx0UGFja2FnZU1hbmFnZXIgPiBIVFRQUyBnaXQgVVJMIHBhcnNpbmcgKG9sZCBiZWhhdmlvcikgPiBzaG91bGQgZ2VuZXJhdGUgY29ycmVjdCBwYWNrYWdlIGlkZW50aXR5IGZvciBwcm90b2NvbCBhbmQgZ2l0Oi1wcmVmaXhlZCBVUkxzXG4gICDihpMgRGVmYXVsdFBhY2thZ2VNYW5hZ2VyID4gSFRUUFMgZ2l0IFVSTCBwYXJzaW5nIChvbGQgYmVoYXZpb3IpID4gc2hvdWxkIGRlZHVwbGljYXRlIGdpdCBVUkxzIHdpdGggZGlmZmVyZW50IHN1cHBvcnRlZCBmb3JtYXRzXG4gICDihpMgRGVmYXVsdFBhY2thZ2VNYW5hZ2VyID4gSFRUUFMgZ2l0IFVSTCBwYXJzaW5nIChvbGQgYmVoYXZpb3IpID4gc2hvdWxkIGhhbmRsZSBIVFRQUyBVUkxzIHdpdGggcmVmcyBpbiByZXNvbHZlXG4gICDihpMgRGVmYXVsdFBhY2thZ2VNYW5hZ2VyID4gcGF0dGVybiBmaWx0ZXJpbmcgaW4gdG9wLWxldmVsIGFycmF5cyA+IHNob3VsZCBleGNsdWRlIGV4dGVuc2lvbnMgd2l0aCAhIHBhdHRlcm5cbiAgIOKGkyBEZWZhdWx0UGFja2FnZU1hbmFnZXIgPiBwYXR0ZXJuIGZpbHRlcmluZyBpbiB0b3AtbGV2ZWwgYXJyYXlzID4gc2hvdWxkIGZpbHRlciB0aGVtZXMgd2l0aCBnbG9iIHBhdHRlcm5zXG4gICDihpMgRGVmYXVsdFBhY2thZ2VNYW5hZ2VyID4gcGF0dGVybiBmaWx0ZXJpbmcgaW4gdG9wLWxldmVsIGFycmF5cyA+IHNob3VsZCBmaWx0ZXIgcHJvbXB0cyB3aXRoIGV4Y2x1c2lvbiBwYXR0ZXJuXG4gICDihpMgRGVmYXVsdFBhY2thZ2VNYW5hZ2VyID4gcGF0dGVybiBmaWx0ZXJpbmcgaW4gdG9wLWxldmVsIGFycmF5cyA+IHNob3VsZCBmaWx0ZXIgc2tpbGxzIHdpdGggZXhjbHVzaW9uIHBhdHRlcm5cbiAgIOKGkyBEZWZhdWx0UGFja2FnZU1hbmFnZXIgPiBwYXR0ZXJuIGZpbHRlcmluZyBpbiB0b3AtbGV2ZWwgYXJyYXlzID4gc2hvdWxkIHdvcmsgd2l0aG91dCBwYXR0ZXJucyAoYmFja3dhcmQgY29tcGF0aWJsZSlcbiAgIOKGkyBEZWZhdWx0UGFja2FnZU1hbmFnZXIgPiBwYXR0ZXJuIGZpbHRlcmluZyBpbiBwaSBtYW5pZmVzdCA+IHNob3VsZCBzdXBwb3J0IGdsb2IgcGF0dGVybnMgaW4gbWFuaWZlc3QgZXh0ZW5zaW9uc1xuICAg4oaTIERlZmF1bHRQYWNrYWdlTWFuYWdlciA+IHBhdHRlcm4gZmlsdGVyaW5nIGluIHBpIG1hbmlmZXN0ID4gc2hvdWxkIHN1cHBvcnQgZ2xvYiBwYXR0ZXJucyBpbiBtYW5pZmVzdCBza2lsbHNcbiAgIOKGkyBEZWZhdWx0UGFja2FnZU1hbmFnZXIgPiBwYXR0ZXJuIGZpbHRlcmluZyBpbiBwaSBtYW5pZmVzdCA+IHNob3VsZCBleHBhbmQgcG9zaXRpdmUgZ2xvYiBtYW5pZmVzdCBlbnRyaWVzIGJlZm9yZSBjb2xsZWN0aW5nIHNraWxsc1xuICAg4oaTIERlZmF1bHRQYWNrYWdlTWFuYWdlciA+IHBhdHRlcm4gZmlsdGVyaW5nIGluIHBhY2thZ2UgZmlsdGVycyA+IHNob3VsZCBhcHBseSB1c2VyIGZpbHRlcnMgb24gdG9wIG9mIG1hbmlmZXN0IGZpbHRlcnMgKG5vdCByZXBsYWNlKVxuICAg4oaTIERlZmF1bHRQYWNrYWdlTWFuYWdlciA+IHBhdHRlcm4gZmlsdGVyaW5nIGluIHBhY2thZ2UgZmlsdGVycyA+IHNob3VsZCBleGNsdWRlIGV4dGVuc2lvbnMgZnJvbSBwYWNrYWdlIHdpdGggISBwYXR0ZXJuXG4gICDihpMgRGVmYXVsdFBhY2thZ2VNYW5hZ2VyID4gcGF0dGVybiBmaWx0ZXJpbmcgaW4gcGFja2FnZSBmaWx0ZXJzID4gc2hvdWxkIGZpbHRlciB0aGVtZXMgZnJvbSBwYWNrYWdlXG4gICDihpMgRGVmYXVsdFBhY2thZ2VNYW5hZ2VyID4gcGF0dGVybiBmaWx0ZXJpbmcgaW4gcGFja2FnZSBmaWx0ZXJzID4gc2hvdWxkIGNvbWJpbmUgaW5jbHVkZSBhbmQgZXhjbHVkZSBwYXR0ZXJuc1xuICAg4oaTIERlZmF1bHRQYWNrYWdlTWFuYWdlciA+IHBhdHRlcm4gZmlsdGVyaW5nIGluIHBhY2thZ2UgZmlsdGVycyA+IHNob3VsZCB3b3JrIHdpdGggZGlyZWN0IHBhdGhzIChubyBwYXR0ZXJucylcbiAgIOKGkyBEZWZhdWx0UGFja2FnZU1hbmFnZXIgPiBmb3JjZS1pbmNsdWRlIHBhdHRlcm5zID4gc2hvdWxkIGZvcmNlLWluY2x1ZGUgZXh0ZW5zaW9ucyB3aXRoICsgcGF0dGVybiBhZnRlciBleGNsdXNpb25cbiAgIOKGkyBEZWZhdWx0UGFja2FnZU1hbmFnZXIgPiBmb3JjZS1pbmNsdWRlIHBhdHRlcm5zID4gc2hvdWxkIGZvcmNlLWluY2x1ZGUgb3ZlcnJpZGVzIGV4Y2x1ZGUgaW4gcGFja2FnZSBmaWx0ZXJzXG4gICDihpMgRGVmYXVsdFBhY2thZ2VNYW5hZ2VyID4gZm9yY2UtaW5jbHVkZSBwYXR0ZXJucyA+IHNob3VsZCBmb3JjZS1pbmNsdWRlIG11bHRpcGxlIHJlc291cmNlc1xuICAg4oaTIERlZmF1bHRQYWNrYWdlTWFuYWdlciA+IGZvcmNlLWluY2x1ZGUgcGF0dGVybnMgPiBzaG91bGQgZm9yY2UtaW5jbHVkZSBhZnRlciBzcGVjaWZpYyBleGNsdXNpb25cbiAgIOKGkyBEZWZhdWx0UGFja2FnZU1hbmFnZXIgPiBmb3JjZS1pbmNsdWRlIHBhdHRlcm5zID4gc2hvdWxkIGhhbmRsZSBmb3JjZS1pbmNsdWRlIGluIG1hbmlmZXN0IHBhdHRlcm5zXG4gICDihpMgRGVmYXVsdFBhY2thZ2VNYW5hZ2VyID4gZm9yY2UtaW5jbHVkZSBwYXR0ZXJucyA+IHNob3VsZCBmb3JjZS1pbmNsdWRlIHRoZW1lc1xuICAg4oaTIERlZmF1bHRQYWNrYWdlTWFuYWdlciA+IGZvcmNlLWluY2x1ZGUgcGF0dGVybnMgPiBzaG91bGQgZm9yY2UtaW5jbHVkZSBwcm9tcHRzXG4gICDihpMgRGVmYXVsdFBhY2thZ2VNYW5hZ2VyID4gZm9yY2UtZXhjbHVkZSBwYXR0ZXJucyA+IHNob3VsZCBmb3JjZS1leGNsdWRlIHRvcC1sZXZlbCByZXNvdXJjZXNcbiAgIOKGkyBEZWZhdWx0UGFja2FnZU1hbmFnZXIgPiBmb3JjZS1leGNsdWRlIHBhdHRlcm5zID4gc2hvdWxkIGZvcmNlLWV4Y2x1ZGUgaW4gcGFja2FnZSBmaWx0ZXJzXG4gICDihpMgRGVmYXVsdFBhY2thZ2VNYW5hZ2VyID4gcGFja2FnZSBkZWR1cGxpY2F0aW9uID4gc2hvdWxkIGRlZHVwZSBzYW1lIGxvY2FsIHBhY2thZ2UgaW4gZ2xvYmFsIGFuZCBwcm9qZWN0IChwcm9qZWN0IHdpbnMpXG4gICDihpMgRGVmYXVsdFBhY2thZ2VNYW5hZ2VyID4gcGFja2FnZSBkZWR1cGxpY2F0aW9uID4gc2hvdWxkIGtlZXAgYm90aCBpZiBkaWZmZXJlbnQgcGFja2FnZXNcbiAgIOKGkyBEZWZhdWx0UGFja2FnZU1hbmFnZXIgPiBwYWNrYWdlIGRlZHVwbGljYXRpb24gPiBzaG91bGQgZGVkdXBlIFNTSCBhbmQgSFRUUFMgVVJMcyBmb3Igc2FtZSByZXBvXG4gICDihpMgRGVmYXVsdFBhY2thZ2VNYW5hZ2VyID4gcGFja2FnZSBkZWR1cGxpY2F0aW9uID4gc2hvdWxkIGRlZHVwZSBTU0ggYW5kIEhUVFBTIHdpdGggcmVmc1xuICAg4oaTIERlZmF1bHRQYWNrYWdlTWFuYWdlciA+IHBhY2thZ2UgZGVkdXBsaWNhdGlvbiA+IHNob3VsZCBkZWR1cGUgU1NIIFVSTCB3aXRoIHNzaDovLyBwcm90b2NvbCBhbmQgZ2l0QCBmb3JtYXRcbiAgIOKGkyBEZWZhdWx0UGFja2FnZU1hbmFnZXIgPiBwYWNrYWdlIGRlZHVwbGljYXRpb24gPiBzaG91bGQgZGVkdXBlIGFsbCBzdXBwb3J0ZWQgVVJMIGZvcm1hdHMgZm9yIHNhbWUgcmVwb1xuICAg4oaTIERlZmF1bHRQYWNrYWdlTWFuYWdlciA+IHBhY2thZ2UgZGVkdXBsaWNhdGlvbiA+IHNob3VsZCBrZWVwIGRpZmZlcmVudCByZXBvcyBzZXBhcmF0ZSAoSFRUUFMgdnMgU1NIKVxuICAg4oaTIERlZmF1bHRQYWNrYWdlTWFuYWdlciA+IG11bHRpLWZpbGUgZXh0ZW5zaW9uIGRpc2NvdmVyeSAoaXNzdWUgIzExMDIpID4gc2hvdWxkIG9ubHkgbG9hZCBpbmRleC50cyBmcm9tIHN1YmRpcmVjdG9yaWVzLCBub3QgaGVscGVyIG1vZHVsZXNcbiAgIOKGkyBEZWZhdWx0UGFja2FnZU1hbmFnZXIgPiBtdWx0aS1maWxlIGV4dGVuc2lvbiBkaXNjb3ZlcnkgKGlzc3VlICMxMTAyKSA+IHNob3VsZCByZXNwZWN0IHBhY2thZ2UuanNvbiBwaS5leHRlbnNpb25zIG1hbmlmZXN0IGluIHN1YmRpcmVjdG9yaWVzXG4gICDihpMgRGVmYXVsdFBhY2thZ2VNYW5hZ2VyID4gbXVsdGktZmlsZSBleHRlbnNpb24gZGlzY292ZXJ5IChpc3N1ZSAjMTEwMikgPiBzaG91bGQgaGFuZGxlIG1peGVkIHRvcC1sZXZlbCBmaWxlcyBhbmQgc3ViZGlyZWN0b3JpZXNcbiAgIOKGkyBEZWZhdWx0UGFja2FnZU1hbmFnZXIgPiBtdWx0aS1maWxlIGV4dGVuc2lvbiBkaXNjb3ZlcnkgKGlzc3VlICMxMTAyKSA+IHNob3VsZCBza2lwIHN1YmRpcmVjdG9yaWVzIHdpdGhvdXQgaW5kZXgudHMgb3IgbWFuaWZlc3RcbiAgIOKGkyBEZWZhdWx0UGFja2FnZU1hbmFnZXIgPiBvZmZsaW5lIG1vZGUgYW5kIG5ldHdvcmsgdGltZW91dHMgPiBzaG91bGQgdXBkYXRlIHByb2plY3QgbnBtIHBhY2thZ2VzIHVzaW5nIEBsYXRlc3Qgd2hlbiBuZXdlciB2ZXJzaW9uIGlzIGF2YWlsYWJsZVxuICAg4oaTIERlZmF1bHRQYWNrYWdlTWFuYWdlciA+IG9mZmxpbmUgbW9kZSBhbmQgbmV0d29yayB0aW1lb3V0cyA+IHNob3VsZCBza2lwIHByb2plY3QgbnBtIHVwZGF0ZSB3aGVuIGluc3RhbGxlZCB2ZXJzaW9uIG1hdGNoZXMgbGF0ZXN0XG4gICDihpMgRGVmYXVsdFBhY2thZ2VNYW5hZ2VyID4gb2ZmbGluZSBtb2RlIGFuZCBuZXR3b3JrIHRpbWVvdXRzID4gc2hvdWxkIGJhdGNoIG5wbSB1cGRhdGVzIHBlciBzY29wZSBhbmQgcnVuIGdpdCB1cGRhdGVzIGluIHBhcmFsbGVsIHdoaWxlIHNraXBwaW5nIHBpbm5lZCBhbmQgY3VycmVudCBwYWNrYWdlc1xuICAg4oaTIERlZmF1bHRQYWNrYWdlTWFuYWdlciA+IG9mZmxpbmUgbW9kZSBhbmQgbmV0d29yayB0aW1lb3V0cyA+IHNob3VsZCBzdWdnZXN0IG5wbSBzb3VyY2UgcHJlZml4ZXMgZm9yIHVwZGF0ZSBsb29rdXBzXG4gICDihpMgRGVmYXVsdFBhY2thZ2VNYW5hZ2VyID4gb2ZmbGluZSBtb2RlIGFuZCBuZXR3b3JrIHRpbWVvdXRzID4gc2hvdWxkIHN1Z2dlc3QgZ2l0IHNvdXJjZSBwcmVmaXhlcyBmb3IgdXBkYXRlIGxvb2t1cHNcbiAgIOKGkyBEZWZhdWx0UGFja2FnZU1hbmFnZXIgPiBvZmZsaW5lIG1vZGUgYW5kIG5ldHdvcmsgdGltZW91dHMgPiBzaG91bGQgc2tpcCBpbnN0YWxsaW5nIG1pc3NpbmcgcGFja2FnZSBzb3VyY2VzIHdoZW4gb2ZmbGluZVxuICAg4oaTIERlZmF1bHRQYWNrYWdlTWFuYWdlciA+IG9mZmxpbmUgbW9kZSBhbmQgbmV0d29yayB0aW1lb3V0cyA+IHNob3VsZCBza2lwIHJlZnJlc2hpbmcgdGVtcG9yYXJ5IGdpdCBzb3VyY2VzIHdoZW4gb2ZmbGluZVxuICAg4oaTIERlZmF1bHRQYWNrYWdlTWFuYWdlciA+IG9mZmxpbmUgbW9kZSBhbmQgbmV0d29yayB0aW1lb3V0cyA+IHNob3VsZCBub3QgcnVuIG5wbSB2aWV3IGR1cmluZyByZXNvbHZlIGZvciBpbnN0YWxsZWQgdW5waW5uZWQgcGFja2FnZXNcbiAgIOKGkyBEZWZhdWx0UGFja2FnZU1hbmFnZXIgPiBvZmZsaW5lIG1vZGUgYW5kIG5ldHdvcmsgdGltZW91dHMgPiBzaG91bGQgcmVpbnN0YWxsIHBpbm5lZCBucG0gcGFja2FnZXMgd2hlbiBpbnN0YWxsZWQgdmVyc2lvbiBkb2VzIG5vdCBtYXRjaFxuICAg4oaTIERlZmF1bHRQYWNrYWdlTWFuYWdlciA+IG9mZmxpbmUgbW9kZSBhbmQgbmV0d29yayB0aW1lb3V0cyA+IHNob3VsZCBub3QgY2hlY2sgcGFja2FnZSB1cGRhdGVzIHdoZW4gb2ZmbGluZVxuICAg4oaTIERlZmF1bHRQYWNrYWdlTWFuYWdlciA+IG9mZmxpbmUgbW9kZSBhbmQgbmV0d29yayB0aW1lb3V0cyA+IHNob3VsZCByZXBvcnQgdXBkYXRlcyBmb3IgaW5zdGFsbGVkIHVucGlubmVkIG5wbSBwYWNrYWdlc1xuICAg4oaTIERlZmF1bHRQYWNrYWdlTWFuYWdlciA+IG9mZmxpbmUgbW9kZSBhbmQgbmV0d29yayB0aW1lb3V0cyA+IHNob3VsZCBza2lwIHBpbm5lZCBwYWNrYWdlcyB3aGVuIGNoZWNraW5nIGZvciB1cGRhdGVzXG4gICDihpMgRGVmYXVsdFBhY2thZ2VNYW5hZ2VyID4gb2ZmbGluZSBtb2RlIGFuZCBuZXR3b3JrIHRpbWVvdXRzID4gc2hvdWxkIHVzZSBucG0gdmlldyB0byBmZXRjaCBsYXRlc3QgdmVyc2lvblxuICAg4oaTIERlZmF1bHRQYWNrYWdlTWFuYWdlciA+IG9mZmxpbmUgbW9kZSBhbmQgbmV0d29yayB0aW1lb3V0cyA+IHNob3VsZCB1c2UgbnBtQ29tbWFuZCBhcmd2IGZvciBucG0gdXBkYXRlIGNoZWNrc1xuICAg4oaTIERlZmF1bHRQYWNrYWdlTWFuYWdlciA+IG9mZmxpbmUgbW9kZSBhbmQgbmV0d29yayB0aW1lb3V0cyA+IHNob3VsZCB3YWl0IGZvciBjbG9zZSBiZWZvcmUgcmVzb2x2aW5nIGNhcHR1cmVkIHN0ZG91dFxuXG7ijq/ijq/ijq/ijq/ijq/ijq/ijq8gRmFpbGVkIFRlc3RzIDIg4o6v4o6v4o6v4o6v4o6v4o6v4o6vXG5cbiBGQUlMICB0ZXN0L3BhY2thZ2UtbWFuYWdlci50ZXN0LnRzID4gRGVmYXVsdFBhY2thZ2VNYW5hZ2VyID4gYXV0by1kaXNjb3ZlcmVkIHNraWxsIG1ldGFkYXRhID4gc2hvdWxkIHVzZSB+Ly5hZ2VudHMgYXMgYmFzZURpciBmb3IgdXNlciAuYWdlbnRzIHNraWxsc1xuQXNzZXJ0aW9uRXJyb3I6IGV4cGVjdGVkICcvdmFyL2ZvbGRlcnMvbHkvZmQ1bDBtMHg1eDVnenJxcjUzMnJs4oCmJyB0byBiZSAnL3Zhci9mb2xkZXJzL2x5L2ZkNWwwbTB4NXg1Z3pycXI1MzJybOKApicgLy8gT2JqZWN0LmlzIGVxdWFsaXR5XG5cbkV4cGVjdGVkOiBcdTAwMWJbMzJtXCIvdmFyL2ZvbGRlcnMvbHkvZmQ1bDBtMHg1eDVnenJxcjUzMnJsZ3ZoMDAwMGduL1QvcG0tdGVzdC0xNzc3NTYzNjU2MTExLWM1NHBxNzRobmJxL1x1MDAxYls3bS5cdTAwMWJbMjdtYWdlbnRcdTAwMWJbN21zXHUwMDFiWzI3bVwiXHUwMDFiWzM5bVxuUmVjZWl2ZWQ6IFx1MDAxYlszMW1cIi92YXIvZm9sZGVycy9seS9mZDVsMG0weDV4NWd6cnFyNTMycmxndmgwMDAwZ24vVC9wbS10ZXN0LTE3Nzc1NjM2NTYxMTEtYzU0cHE3NGhuYnEvYWdlbnRcIlx1MDAxYlszOW1cblxuIOKdryB0ZXN0L3BhY2thZ2UtbWFuYWdlci50ZXN0LnRzOjMwODozN1xuICAgIDMwNnwgICAgIGV4cGVjdChza2lsbD8ubWV0YWRhdGEuc291cmNlKS50b0JlKFwiYXV0b1wiKTtcbiAgICAzMDd8ICAgICBleHBlY3Qoc2tpbGw/Lm1ldGFkYXRhLnNjb3BlKS50b0JlKFwidXNlclwiKTtcbiAgICAzMDh8ICAgICBleHBlY3Qoc2tpbGw/Lm1ldGFkYXRhLmJhc2VEaXIpLnRvQmUoYWdlbnRzQmFzZURpcik7XG4gICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeXG4gICAgMzA5fCAgICB9IGZpbmFsbHkge1xuICAgIDMxMHwgICAgIGlmIChwcmV2aW91c0hvbWUgPT09IHVuZGVmaW5lZCkge1xuXG7ijq/ijq/ijq/ijq/ijq/ijq/ijq/ijq/ijq/ijq/ijq/ijq/ijq/ijq/ijq/ijq/ijq/ijq/ijq/ijq/ijq/ijq/ijq/ijq9bMS8yXeKOr1xuXG4gRkFJTCAgdGVzdC9wYWNrYWdlLW1hbmFnZXIudGVzdC50cyA+IERlZmF1bHRQYWNrYWdlTWFuYWdlciA+IGF1dG8tZGlzY292ZXJlZCBza2lsbCBtZXRhZGF0YSA+IHNob3VsZCB1c2UgZWFjaCBwcm9qZWN0IC5hZ2VudHMgZGlyIGFzIGJhc2VEaXIgZm9yIHByb2plY3QgLmFnZW50cyBza2lsbHNcbkFzc2VydGlvbkVycm9yOiBleHBlY3RlZCAnL3Zhci9mb2xkZXJzL2x5L2ZkNWwwbTB4NXg1Z3pycXI1MzJybOKApicgdG8gYmUgJy92YXIvZm9sZGVycy9seS9mZDVsMG0weDV4NWd6cnFyNTMycmzigKYnIC8vIE9iamVjdC5pcyBlcXVhbGl0eVxuXG5FeHBlY3RlZDogXHUwMDFiWzMybVwiL3Zhci9mb2xkZXJzL2x5L2ZkNWwwbTB4NXg1Z3pycXI1MzJybGd2aDAwMDBnbi9UL3BtLXRlc3QtMTc3NzU2MzY1NjExNy1rdDl3bm9pcW9rci9yZXBvL1x1MDAxYls3bS5hZ2VudHNcdTAwMWJbMjdtXCJcdTAwMWJbMzltXG5SZWNlaXZlZDogXHUwMDFiWzMxbVwiL3Zhci9mb2xkZXJzL2x5L2ZkNWwwbTB4NXg1Z3pycXI1MzJybGd2aDAwMDBnbi9UL3BtLXRlc3QtMTc3NzU2MzY1NjExNy1rdDl3bm9pcW9rci9yZXBvL1x1MDAxYls3bXBhY2thZ2VzL2ZlYXR1cmUvLnBpXHUwMDFiWzI3bVwiXHUwMDFiWzM5bVxuXG4g4p2vIHRlc3QvcGFja2FnZS1tYW5hZ2VyLnRlc3QudHM6MzQ2OjQ4XG4gICAgMzQ0fCAgICBleHBlY3QocmVzb2x2ZWRSZXBvU2tpbGw/Lm1ldGFkYXRhLnNvdXJjZSkudG9CZShcImF1dG9cIik7XG4gICAgMzQ1fCAgICBleHBlY3QocmVzb2x2ZWRSZXBvU2tpbGw/Lm1ldGFkYXRhLnNjb3BlKS50b0JlKFwicHJvamVjdFwiKTtcbiAgICAzNDZ8ICAgIGV4cGVjdChyZXNvbHZlZFJlcG9Ta2lsbD8ubWV0YWRhdGEuYmFzZURpcikudG9CZShyZXBvQWdlbnRzQmFzZURpcik7XG4gICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF5cbiAgICAzNDd8ICAgIGV4cGVjdChyZXNvbHZlZFBhY2thZ2VTa2lsbD8ubWV0YWRhdGEuc291cmNlKS50b0JlKFwiYXV0b1wiKTtcbiAgICAzNDh8ICAgIGV4cGVjdChyZXNvbHZlZFBhY2thZ2VTa2lsbD8ubWV0YWRhdGEuc2NvcGUpLnRvQmUoXCJwcm9qZWN0XCIpO1xuXG7ijq/ijq/ijq/ijq/ijq/ijq/ijq/ijq/ijq/ijq/ijq/ijq/ijq/ijq/ijq/ijq/ijq/ijq/ijq/ijq/ijq/ijq/ijq/ijq9bMi8yXeKOr1xuXG5cbiBUZXN0IEZpbGVzICAxIGZhaWxlZCAoMSlcbiAgICAgIFRlc3RzICAyIGZhaWxlZCB8IDIgcGFzc2VkIHwgOTUgc2tpcHBlZCAoOTkpXG4gICBTdGFydCBhdCAgMTc6NDA6NTVcbiAgIER1cmF0aW9uICAzMjdtcyAodHJhbnNmb3JtIDEwMm1zLCBzZXR1cCAwbXMsIGNvbGxlY3QgMTM4bXMsIHRlc3RzIDE0bXMsIGVudmlyb25tZW50IDBtcywgcHJlcGFyZSAzNm1zKVxuXG5cblxuQ29tbWFuZCBleGl0ZWQgd2l0aCBjb2RlIDEifV0sImRldGFpbHMiOnt9LCJpc0Vycm9yIjp0cnVlLCJ0aW1lc3RhbXAiOjE3Nzc1NjM2NTYyMTN9fSx7InR5cGUiOiJtZXNzYWdlIiwiaWQiOiJiZDg1ODk1NiIsInBhcmVudElkIjoiNzY0MzdhMmEiLCJ0aW1lc3RhbXAiOiIyMDI2LTA0LTMwVDE1OjQwOjU5Ljc1MloiLCJtZXNzYWdlIjp7InJvbGUiOiJhc3Npc3RhbnQiLCJjb250ZW50IjpbeyJ0eXBlIjoidGV4dCIsInRleHQiOiJBZGRlZCBmYWlsaW5nIHRlc3RzIGluOlxuXG4tIGBwYWNrYWdlcy9jb2RpbmctYWdlbnQvdGVzdC9wYWNrYWdlLW1hbmFnZXIudGVzdC50c2BcblxuTmV3IGRlc2NyaWJlOlxuXG5gYGB0c1xuZGVzY3JpYmUoXCJhdXRvLWRpc2NvdmVyZWQgc2tpbGwgbWV0YWRhdGFcIiwgLi4uKVxuYGBgXG5cbkNvdmVyczpcbi0gcGFzc2VzIG5vdzogdXNlciBgLnBpL2FnZW50L3NraWxsc2AgZ2V0cyBgYmFzZURpciA9PT0gYWdlbnREaXJgXG4tIHBhc3NlcyBub3c6IHByb2plY3QgYC5waS9za2lsbHNgIGdldHMgYGJhc2VEaXIgPT09IGN3ZC8ucGlgXG4tIGZhaWxzIG5vdzogdXNlciBgfi8uYWdlbnRzL3NraWxsc2Agc2hvdWxkIGdldCBgYmFzZURpciA9PT0gfi8uYWdlbnRzYFxuLSBmYWlscyBub3c6IHByb2plY3QgYW5jZXN0b3IgYC5hZ2VudHMvc2tpbGxzYCBzaG91bGQgZ2V0IGVhY2ggb3duIGAuYWdlbnRzYCBiYXNlRGlyXG5cblJhbiBmb2N1c2VkIHRlc3Q6XG5cbmBgYGJhc2hcbm5weCB0c3ggLi4vLi4vbm9kZV9tb2R1bGVzL3ZpdGVzdC9kaXN0L2NsaS5qcyAtLXJ1biB0ZXN0L3BhY2thZ2UtbWFuYWdlci50ZXN0LnRzIC10IFwiYXV0by1kaXNjb3ZlcmVkIHNraWxsIG1ldGFkYXRhXCJcbmBgYFxuXG5SZXN1bHQ6IDIgcGFzcywgMiBmYWlsIGFzIGV4cGVjdGVkLiIsInRleHRTaWduYXR1cmUiOiJ7XCJ2XCI6MSxcImlkXCI6XCJtc2dfMDI3ZjFlYTE1ZGVmMzUwNTAxNjlmMzc4MDljZmE4ODE5MTg4YjgzMzBlNmM1ZGEwMmFcIixcInBoYXNlXCI6XCJmaW5hbF9hbnN3ZXJcIn0ifV0sImFwaSI6Im9wZW5haS1jb2RleC1yZXNwb25zZXMiLCJwcm92aWRlciI6Im9wZW5haS1jb2RleCIsIm1vZGVsIjoiZ3B0LTUuNSIsInVzYWdlIjp7ImlucHV0IjozNzAwLCJvdXRwdXQiOjE3MiwiY2FjaGVSZWFkIjo0ODY0MCwiY2FjaGVXcml0ZSI6MCwidG90YWxUb2tlbnMiOjUyNTEyLCJjb3N0Ijp7ImlucHV0IjowLjAxODUwMDAwMDAwMDAwMDAwMywib3V0cHV0IjowLjAwNTE2MDAwMDAwMDAwMDAwMDUsImNhY2hlUmVhZCI6MC4wMjQzMTk5OTk5OTk5OTk5OTgsImNhY2hlV3JpdGUiOjAsInRvdGFsIjowLjA0Nzk4fX0sInN0b3BSZWFzb24iOiJzdG9wIiwidGltZXN0YW1wIjoxNzc3NTYzNjU2MjE0LCJyZXNwb25zZUlkIjoicmVzcF8wMjdmMWVhMTVkZWYzNTA1MDE2OWYzNzgwOGQ1MWM4MTkxOGYzNzU1MmFlMjZlMWQ3NSJ9fSx7InR5cGUiOiJtZXNzYWdlIiwiaWQiOiJiYjgxNDdkNyIsInBhcmVudElkIjoiYmQ4NTg5NTYiLCJ0aW1lc3RhbXAiOiIyMDI2LTA0LTMwVDE1OjQ1OjUxLjY0N1oiLCJtZXNzYWdlIjp7InJvbGUiOiJ1c2VyIiwiY29udGVudCI6W3sidHlwZSI6InRleHQiLCJ0ZXh0IjoiYWxyaWdodCwgbm93IHBsZWFzZSByZXBseSB3aXRoIGFuIGV4cGxhbmF0aW9uIG9mIHRoZSBidWcgYW5kIGhvdyB0byBmaXggaXQgd2l0aCBhbGwgb2YgdGhlIG5lY2Vzc2FyeSBjb250ZXh0IHNvIHRoYXQgaSBjYW4gZ2l2ZSBpdCB0byBhbm9odGVyIGFnZW50LiBkbyBub3QgY3JlYXRlIGEgbmV3IGZpbGUsIGp1c3QgcmVwbHkgd2l0aCBpdCJ9XSwidGltZXN0YW1wIjoxNzc3NTYzOTUxNjQ0fX0seyJ0eXBlIjoibWVzc2FnZSIsImlkIjoiYzBlYjVhMjQiLCJwYXJlbnRJZCI6ImJiODE0N2Q3IiwidGltZXN0YW1wIjoiMjAyNi0wNC0zMFQxNTo0NjoxMy45NDJaIiwibWVzc2FnZSI6eyJyb2xlIjoiYXNzaXN0YW50IiwiY29udGVudCI6W3sidHlwZSI6InRleHQiLCJ0ZXh0IjoiQnVnIHN1bW1hcnk6XG5cbmBwaSBjb25maWdgIGdyb3VwcyBhdXRvLWRpc2NvdmVyZWQgc2tpbGxzIGZyb20gYH4vLmFnZW50cy9za2lsbHNgIHVuZGVyIGBVc2VyICh+Ly5waS9hZ2VudC8pYCwgYmVjYXVzZSBwYWNrYWdlLW1hbmFnZXIgZ2l2ZXMgYm90aCBkaXJlY3RvcmllcyBpZGVudGljYWwgbWV0YWRhdGEuXG5cbkN1cnJlbnQgYmVoYXZpb3I6XG5cbkluIGBwYWNrYWdlcy9jb2RpbmctYWdlbnQvc3JjL2NvcmUvcGFja2FnZS1tYW5hZ2VyLnRzYCwgYGFkZEF1dG9EaXNjb3ZlcmVkUmVzb3VyY2VzKClgIGRlZmluZXM6XG5cbmBgYHRzXG5jb25zdCB1c2VyTWV0YWRhdGE6IFBhdGhNZXRhZGF0YSA9IHtcbiAgc291cmNlOiBcImF1dG9cIixcbiAgc2NvcGU6IFwidXNlclwiLFxuICBvcmlnaW46IFwidG9wLWxldmVsXCIsXG4gIGJhc2VEaXI6IGdsb2JhbEJhc2VEaXIsXG59O1xuYGBgXG5cbmBnbG9iYWxCYXNlRGlyYCBpcyBgYWdlbnREaXJgLCB1c3VhbGx5IGB+Ly5waS9hZ2VudGAuXG5cblRoZW4gaXQgY29tYmluZXMgYm90aCB1c2VyIHNraWxsIHJvb3RzIGludG8gb25lIGNhbGw6XG5cbmBgYHRzXG5hZGRSZXNvdXJjZXMoXG4gIFwic2tpbGxzXCIsXG4gIFsuLi5jb2xsZWN0QXV0b1NraWxsRW50cmllcyh1c2VyRGlycy5za2lsbHMsIFwicGlcIiksIC4uLmNvbGxlY3RBdXRvU2tpbGxFbnRyaWVzKHVzZXJBZ2VudHNTa2lsbHNEaXIsIFwiYWdlbnRzXCIpXSxcbiAgdXNlck1ldGFkYXRhLFxuICB1c2VyT3ZlcnJpZGVzLnNraWxscyxcbiAgZ2xvYmFsQmFzZURpcixcbik7XG5gYGBcblxuU28gc2tpbGxzIHBoeXNpY2FsbHkgdW5kZXIgYH4vLmFnZW50cy9za2lsbHNgIGdldDpcblxuYGBgdHNcbm1ldGFkYXRhLmJhc2VEaXIgPT09IH4vLnBpL2FnZW50XG5tZXRhZGF0YS5zb3VyY2UgPT09IFwiYXV0b1wiXG5tZXRhZGF0YS5zY29wZSA9PT0gXCJ1c2VyXCJcbm1ldGFkYXRhLm9yaWdpbiA9PT0gXCJ0b3AtbGV2ZWxcIlxuYGBgXG5cblNhbWUgaXNzdWUgZXhpc3RzIGZvciBwcm9qZWN0IGAuYWdlbnRzL3NraWxsc2AuIFByb2plY3QgYC5hZ2VudHNgIHNraWxscyBhcmUgY29sbGVjdGVkIGZyb20gYW5jZXN0b3IgZGlyczpcblxuYGBgdHNcbmNvbnN0IHByb2plY3RBZ2VudHNTa2lsbERpcnMgPSBjb2xsZWN0QW5jZXN0b3JBZ2VudHNTa2lsbERpcnModGhpcy5jd2QpXG5gYGBcblxuVGhpcyBjYW4gcHJvZHVjZSBtdWx0aXBsZSByb290czpcblxuYGBgdHh0XG5jd2QvLmFnZW50cy9za2lsbHNcbnBhcmVudC8uYWdlbnRzL3NraWxsc1xucmVwby1yb290Ly5hZ2VudHMvc2tpbGxzXG5gYGBcblxuQnV0IGFsbCBhcmUgY3VycmVudGx5IGZsYXR0ZW5lZCBpbnRvIHRoZSBzYW1lIGBhZGRSZXNvdXJjZXMoKWAgY2FsbCBhcyBgLnBpL3NraWxsc2AsIHNvIHRoZXkgYWxsIGdldCBgYmFzZURpciA9PT0gY3dkLy5waWAuXG5cbkRpc3BsYXkgYnVnOlxuXG5JbiBgcGFja2FnZXMvY29kaW5nLWFnZW50L3NyYy9tb2Rlcy9pbnRlcmFjdGl2ZS9jb21wb25lbnRzL2NvbmZpZy1zZWxlY3Rvci50c2AsIGdyb3VwaW5nIGN1cnJlbnRseSB1c2VzOlxuXG5gYGB0c1xuY29uc3QgZ3JvdXBLZXkgPSBgJHttZXRhZGF0YS5vcmlnaW59OiR7bWV0YWRhdGEuc2NvcGV9OiR7bWV0YWRhdGEuc291cmNlfWA7XG5gYGBcblxuQW5kIGxhYmVsIHJlbmRlcmluZyBoYXJkY29kZXM6XG5cbmBgYHRzXG5pZiAobWV0YWRhdGEuc291cmNlID09PSBcImF1dG9cIikge1xuICByZXR1cm4gbWV0YWRhdGEuc2NvcGUgPT09IFwidXNlclwiID8gXCJVc2VyICh+Ly5waS9hZ2VudC8pXCIgOiBcIlByb2plY3QgKC5waS8pXCI7XG59XG5gYGBcblxuU28gZXZlbiBpZiBgLmFnZW50c2AgcGF0aHMgYXJlIHJlc29sdmVkLCBjb25maWcgVUkgY2Fubm90IGRpc3Rpbmd1aXNoIHRoZW0gYmVjYXVzZSBtZXRhZGF0YSBpcyBpZGVudGljYWwgYW5kIGxhYmVsIGlnbm9yZXMgYGJhc2VEaXJgLlxuXG5GYWlsaW5nIHRlc3RzIGFkZGVkOlxuXG5gcGFja2FnZXMvY29kaW5nLWFnZW50L3Rlc3QvcGFja2FnZS1tYW5hZ2VyLnRlc3QudHNgXG5cbk5ldyB0ZXN0cyB1bmRlcjpcblxuYGBgdHNcbmRlc2NyaWJlKFwiYXV0by1kaXNjb3ZlcmVkIHNraWxsIG1ldGFkYXRhXCIsIC4uLilcbmBgYFxuXG5UaGV5IGFzc2VydDpcbi0gdXNlciBgLnBpL2FnZW50L3NraWxsc2Aga2VlcHMgYG1ldGFkYXRhLmJhc2VEaXIgPT09IGFnZW50RGlyYCBwYXNzZXMgbm93XG4tIHByb2plY3QgYC5waS9za2lsbHNgIGtlZXBzIGBtZXRhZGF0YS5iYXNlRGlyID09PSBjd2QvLnBpYCBwYXNzZXMgbm93XG4tIHVzZXIgYH4vLmFnZW50cy9za2lsbHNgIHNob3VsZCBoYXZlIGBtZXRhZGF0YS5iYXNlRGlyID09PSB+Ly5hZ2VudHNgIGZhaWxzIG5vd1xuLSBwcm9qZWN0IGAuYWdlbnRzL3NraWxsc2Agc2hvdWxkIGhhdmUgYG1ldGFkYXRhLmJhc2VEaXIgPT09IGVhY2ggLmFnZW50cyBkaXJgIGZhaWxzIG5vd1xuXG5SdW4gd2l0aDpcblxuYGBgYmFzaFxuY2QgcGFja2FnZXMvY29kaW5nLWFnZW50XG5ucHggdHN4IC4uLy4uL25vZGVfbW9kdWxlcy92aXRlc3QvZGlzdC9jbGkuanMgLS1ydW4gdGVzdC9wYWNrYWdlLW1hbmFnZXIudGVzdC50cyAtdCBcImF1dG8tZGlzY292ZXJlZCBza2lsbCBtZXRhZGF0YVwiXG5gYGBcblxuRXhwZWN0ZWQgY3VycmVudCByZXN1bHQ6IDIgcGFzcywgMiBmYWlsLlxuXG5GaXggZGlyZWN0aW9uOlxuXG5EbyBub3QgYWRkIGEgbmV3IGBzb3VyY2VgIHZhbHVlLiBLZWVwIGBzb3VyY2U6IFwiYXV0b1wiYC4gVXNlIGBiYXNlRGlyYCBhcyB0aGUgcHJvdmVuYW5jZS5cblxuQ2xlYW4gZml4OlxuXG4xLiBQcmVzZXJ2ZSByb290IHByb3ZlbmFuY2UgYmVmb3JlIGZsYXR0ZW5pbmcgYXV0by1kaXNjb3ZlcmVkIHJlc291cmNlcy5cblxuQ3VycmVudCBgYWRkUmVzb3VyY2VzKClgIGFjY2VwdHMgb25lIG1ldGFkYXRhIG9iamVjdCBhbmQgb25lIGJhc2VEaXIgZm9yIGEgd2hvbGUgYmF0Y2guIFRoYXQgaXMgdGhlIHJvb3QgcHJvYmxlbS4gRm9yIGAuYWdlbnRzYCwgZWFjaCByb290IG5lZWRzIGl0cyBvd24gbWV0YWRhdGEvYmFzZURpci5cblxuTWluaW1hbCBjbGVhbiBzaGFwZTpcblxuYGBgdHNcbmludGVyZmFjZSBBdXRvUmVzb3VyY2VTb3VyY2Uge1xuICBwYXRoczogc3RyaW5nW107XG4gIG1ldGFkYXRhOiBQYXRoTWV0YWRhdGE7XG4gIGJhc2VEaXI6IHN0cmluZztcbn1cbmBgYFxuXG5UaGVuIGJ1aWxkIGJhdGNoZXMgbGlrZTpcblxuVXNlciBza2lsbHM6XG5gYGB0c1xuY29uc3QgdXNlckFnZW50c0Jhc2VEaXIgPSBqb2luKGdldEhvbWVEaXIoKSwgXCIuYWdlbnRzXCIpO1xuY29uc3QgdXNlckFnZW50c1NraWxsc0RpciA9IGpvaW4odXNlckFnZW50c0Jhc2VEaXIsIFwic2tpbGxzXCIpO1xuXG5jb25zdCB1c2VyU2tpbGxTb3VyY2VzOiBBdXRvUmVzb3VyY2VTb3VyY2VbXSA9IFtcbiAge1xuICAgIHBhdGhzOiBjb2xsZWN0QXV0b1NraWxsRW50cmllcyh1c2VyRGlycy5za2lsbHMsIFwicGlcIiksXG4gICAgbWV0YWRhdGE6IHVzZXJNZXRhZGF0YSxcbiAgICBiYXNlRGlyOiBnbG9iYWxCYXNlRGlyLFxuICB9LFxuICB7XG4gICAgcGF0aHM6IGNvbGxlY3RBdXRvU2tpbGxFbnRyaWVzKHVzZXJBZ2VudHNTa2lsbHNEaXIsIFwiYWdlbnRzXCIpLFxuICAgIG1ldGFkYXRhOiB7IC4uLnVzZXJNZXRhZGF0YSwgYmFzZURpcjogdXNlckFnZW50c0Jhc2VEaXIgfSxcbiAgICBiYXNlRGlyOiB1c2VyQWdlbnRzQmFzZURpcixcbiAgfSxcbl07XG5gYGBcblxuUHJvamVjdCBza2lsbHM6XG5gYGB0c1xuY29uc3QgcHJvamVjdFNraWxsU291cmNlczogQXV0b1Jlc291cmNlU291cmNlW10gPSBbXG4gIHtcbiAgICBwYXRoczogY29sbGVjdEF1dG9Ta2lsbEVudHJpZXMocHJvamVjdERpcnMuc2tpbGxzLCBcInBpXCIpLFxuICAgIG1ldGFkYXRhOiBwcm9qZWN0TWV0YWRhdGEsXG4gICAgYmFzZURpcjogcHJvamVjdEJhc2VEaXIsXG4gIH0sXG4gIC4uLnByb2plY3RBZ2VudHNTa2lsbERpcnMubWFwKChza2lsbHNEaXIpID0+IHtcbiAgICBjb25zdCBiYXNlRGlyID0gZGlybmFtZShza2lsbHNEaXIpOyAvLyB0aGUgLmFnZW50cyBkaXJcbiAgICByZXR1cm4ge1xuICAgICAgcGF0aHM6IGNvbGxlY3RBdXRvU2tpbGxFbnRyaWVzKHNraWxsc0RpciwgXCJhZ2VudHNcIiksXG4gICAgICBtZXRhZGF0YTogeyAuLi5wcm9qZWN0TWV0YWRhdGEsIGJhc2VEaXIgfSxcbiAgICAgIGJhc2VEaXIsXG4gICAgfTtcbiAgfSksXG5dO1xuYGBgXG5cblRoZW4gbG9vcDpcblxuYGBgdHNcbmZvciAoY29uc3Qgc291cmNlIG9mIHByb2plY3RTa2lsbFNvdXJjZXMpIHtcbiAgYWRkUmVzb3VyY2VzKFwic2tpbGxzXCIsIHNvdXJjZS5wYXRocywgc291cmNlLm1ldGFkYXRhLCBwcm9qZWN0T3ZlcnJpZGVzLnNraWxscywgc291cmNlLmJhc2VEaXIpO1xufVxuXG5mb3IgKGNvbnN0IHNvdXJjZSBvZiB1c2VyU2tpbGxTb3VyY2VzKSB7XG4gIGFkZFJlc291cmNlcyhcInNraWxsc1wiLCBzb3VyY2UucGF0aHMsIHNvdXJjZS5tZXRhZGF0YSwgdXNlck92ZXJyaWRlcy5za2lsbHMsIHNvdXJjZS5iYXNlRGlyKTtcbn1cbmBgYFxuXG5UaGlzIGFsc28gbWFrZXMgdG9nZ2xlIHBhdHRlcm5zIGNsZWFuZXIuIGBhZGRSZXNvdXJjZXMoLi4uLCBiYXNlRGlyKWAgZmVlZHMgYGlzRW5hYmxlZEJ5T3ZlcnJpZGVzKClgLiBGb3IgYC5hZ2VudHNgLCBiYXNlRGlyIHNob3VsZCBiZSBgLmFnZW50c2AsIG5vdCBgLnBpYC5cblxuMi4gVXBkYXRlIGNvbmZpZyBncm91cGluZy5cblxuSW4gYGNvbmZpZy1zZWxlY3Rvci50c2AsIGdyb3VwIGtleSBtdXN0IGluY2x1ZGUgYGJhc2VEaXJgOlxuXG5gYGB0c1xuY29uc3QgZ3JvdXBLZXkgPSBgJHttZXRhZGF0YS5vcmlnaW59OiR7bWV0YWRhdGEuc2NvcGV9OiR7bWV0YWRhdGEuc291cmNlfToke21ldGFkYXRhLmJhc2VEaXIgPz8gXCJcIn1gO1xuYGBgXG5cbk90aGVyd2lzZSBgfi8ucGkvYWdlbnRgIGFuZCBgfi8uYWdlbnRzYCBzdGlsbCBjb2xsYXBzZSBpbnRvIHRoZSBzYW1lIGdyb3VwIGJlY2F1c2UgYm90aCBhcmUgYHRvcC1sZXZlbDp1c2VyOmF1dG9gLlxuXG4zLiBVcGRhdGUgZ3JvdXAgbGFiZWxzLlxuXG5SZXBsYWNlIGhhcmRjb2RlZCBhdXRvIGxhYmVscyB3aXRoIGxhYmVscyBiYXNlZCBvbiBgbWV0YWRhdGEuYmFzZURpcmAgd2hlbiBhdmFpbGFibGUuXG5cbkV4cGVjdGVkIHVzZXIgbGFiZWxzOlxuLSBgVXNlciAofi8ucGkvYWdlbnQvKWBcbi0gYFVzZXIgKH4vLmFnZW50cy8pYFxuXG5OZWVkIGhlbHBlciB0byBmb3JtYXQgcGF0aHMsIHByb2JhYmx5IGhvbWUtcmVsYXRpdmU6XG5cbmBgYHRzXG5mdW5jdGlvbiBmb3JtYXRCYXNlRGlyKGJhc2VEaXI6IHN0cmluZyk6IHN0cmluZyB7XG4gIGNvbnN0IGhvbWVEaXIgPSBob21lZGlyKCk7XG4gIGNvbnN0IGRpc3BsYXlQYXRoID1cbiAgICBiYXNlRGlyID09PSBob21lRGlyXG4gICAgICA/IFwiflwiXG4gICAgICA6IGJhc2VEaXIuc3RhcnRzV2l0aChgJHtob21lRGlyfS9gKVxuICAgICAgICA/IGB+LyR7cmVsYXRpdmUoaG9tZURpciwgYmFzZURpcil9YFxuICAgICAgICA6IGJhc2VEaXI7XG5cbiAgcmV0dXJuIGRpc3BsYXlQYXRoLmVuZHNXaXRoKFwiL1wiKSA/IGRpc3BsYXlQYXRoIDogYCR7ZGlzcGxheVBhdGh9L2A7XG59XG5gYGBcblxuVGhlbjpcblxuYGBgdHNcbmlmIChtZXRhZGF0YS5zb3VyY2UgPT09IFwiYXV0b1wiKSB7XG4gIGlmIChtZXRhZGF0YS5iYXNlRGlyKSB7XG4gICAgcmV0dXJuIG1ldGFkYXRhLnNjb3BlID09PSBcInVzZXJcIlxuICAgICAgPyBgVXNlciAoJHtmb3JtYXRCYXNlRGlyKG1ldGFkYXRhLmJhc2VEaXIpfSlgXG4gICAgICA6IGBQcm9qZWN0ICgke2Zvcm1hdEJhc2VEaXIobWV0YWRhdGEuYmFzZURpcil9KWA7XG4gIH1cbiAgcmV0dXJuIG1ldGFkYXRhLnNjb3BlID09PSBcInVzZXJcIiA/IFwiVXNlciAofi8ucGkvYWdlbnQvKVwiIDogXCJQcm9qZWN0ICgucGkvKVwiO1xufVxuYGBgXG5cblBvdGVudGlhbCByZWZpbmVtZW50OlxuLSBGb3IgcHJvamVjdCBsYWJlbHMsIHRoaXMgd2lsbCBzaG93IGFic29sdXRlIHBhdGhzIHVubGVzcyB1bmRlciBob21lLlxuLSBJZiB3ZSB3YW50IGBQcm9qZWN0ICgucGkvKWAgLyBgUHJvamVjdCAoLmFnZW50cy8pYCByZWxhdGl2ZSB0byBjd2QsIGBidWlsZEdyb3VwcygpYCBuZWVkcyBhY2Nlc3MgdG8gYGN3ZGAuIEN1cnJlbnQgaGVscGVyIGRvZXMgbm90LiBNaW5pbWFsIGZpeCBjYW4gdXNlIGFic29sdXRlL2hvbWUtcmVsYXRpdmUgcGF0aHMuXG5cbkRvIG5vdDpcbi0gQWRkIGBzb3VyY2U6IFwiYWdlbnRzXCJgOyBgc291cmNlYCBjdXJyZW50bHkgbWVhbnMgYFwiYXV0b1wiYCwgYFwibG9jYWxcImAsIGBcImNsaVwiYCwgb3IgcGFja2FnZSBzb3VyY2Ugc3RyaW5nLiBBZGRpbmcgYFwiYWdlbnRzXCJgIG92ZXJsb2FkcyB0aGUgbWVhbmluZy5cbi0gRmxhdHRlbiBgLmFnZW50c2AgcGF0aHMgYmVmb3JlIGFzc2lnbmluZyBtZXRhZGF0YSwgYmVjYXVzZSB0aGF0IGxvc2VzIHdoaWNoIHJvb3QgZWFjaCBwYXRoIGNhbWUgZnJvbS4iLCJ0ZXh0U2lnbmF0dXJlIjoie1widlwiOjEsXCJpZFwiOlwibXNnXzAyN2YxZWExNWRlZjM1MDUwMTY5ZjM3OTM3N2NiODgxOTFiZDE4OWVlM2NlYzAyNDkxXCIsXCJwaGFzZVwiOlwiZmluYWxfYW5zd2VyXCJ9In1dLCJhcGkiOiJvcGVuYWktY29kZXgtcmVzcG9uc2VzIiwicHJvdmlkZXIiOiJvcGVuYWktY29kZXgiLCJtb2RlbCI6ImdwdC01LjUiLCJ1c2FnZSI6eyJpbnB1dCI6NjI2Niwib3V0cHV0IjoxNTI4LCJjYWNoZVJlYWQiOjQ2MDgwLCJjYWNoZVdyaXRlIjowLCJ0b3RhbFRva2VucyI6NTM4NzQsImNvc3QiOnsiaW5wdXQiOjAuMDMxMzMwMDAwMDAwMDAwMDA0LCJvdXRwdXQiOjAuMDQ1ODQsImNhY2hlUmVhZCI6MC4wMjMwMzk5OTk5OTk5OTk5OTgsImNhY2hlV3JpdGUiOjAsInRvdGFsIjowLjEwMDIxfX0sInN0b3BSZWFzb24iOiJzdG9wIiwidGltZXN0YW1wIjoxNzc3NTYzOTUxNjQ3LCJyZXNwb25zZUlkIjoicmVzcF8wMjdmMWVhMTVkZWYzNTA1MDE2OWYzNzkzMTY1YzA4MTkxOTg1NzRmNzQxMDExMjk3ZSJ9fSx7InR5cGUiOiJjdXN0b21fbWVzc2FnZSIsImN1c3RvbVR5cGUiOiJzZXNzaW9uLWxpbmstbWFya2VyIiwiaWQiOiI4NWVjYTAyZi02MTdkLTQzNTctOGVlOC1hM2MxYWQ1MGJjYmIiLCJ0aW1lc3RhbXAiOiIyMDI2LTA0LTMwVDE1OjQ4OjM5Ljk2MVoiLCJjb250ZW50IjoiIiwiZGlzcGxheSI6dHJ1ZSwicGFyZW50SWQiOiJjMGViNWEyNCIsImRldGFpbHMiOnsidGFyZ2V0U2Vzc2lvbklkIjoiMDE5ZGRmMTMtZjE1My03NzFjLThhMTYtMTE3NWU3MGNjYmNiIiwiZ29hbCI6IiIsImxpbmtUeXBlIjoiY29udGludWUifSwic2Vzc2lvbkxpbmsiOnsibmFtZSI6IkZpeCBidWcgaW4gcGFja2FnZSBtYW5hZ2VyIGFuZCBjb25maWcgc2VsZWN0b3IiLCJ1cmwiOiJodHRwczovL3BpLmRldi9zZXNzaW9uLyM3ZmUyZWQyMjAzNTlhNzlhOGU5ZjhkOTg0MWVkYzQ0NiJ9fV0sImxlYWZJZCI6Ijg1ZWNhMDJmLTYxN2QtNDM1Ny04ZWU4LWEzYzFhZDUwYmNiYiIsInJlbmRlcmVkVG9vbHMiOnsiY2FsbF9DUTVxWjFuSmswVXllNUtSSmtMbkpwWWF8ZmNfMDI3ZjFlYTE1ZGVmMzUwNTAxNjlmMzBiNDRhYjg0ODE5MTgwNGZhZGRmNmRmMGI2ZmQiOnsiY2FsbEh0bWwiOiI8ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoNzQsOTQsMTI5KVwiPjwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYig3NCw5NCwxMjkpO2ZvbnQtd2VpZ2h0OmJvbGRcIj5HcmVwPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDc0LDk0LDEyOSlcIj48L3NwYW4+IDxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDc0LDk0LDEyOSlcIj4vZ2V0R3JvdXBMYWJlbC88L3NwYW4+IDxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj5pbj08L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTE3LDEyMiwxMzApXCI+cGFja2FnZXM8L3NwYW4+IDxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj5nbG9iPTwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMTcsMTIyLDEzMClcIj4qLnRzPC9zcGFuPiA8c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+Y3R4PTwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMTcsMTIyLDEzMClcIj4zPC9zcGFuPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4iLCJyZXN1bHRIdG1sRXhwYW5kZWQiOiI8ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoNzQsOTQsMTI5KVwiPmNvZGluZy1hZ2VudC9zcmMvbW9kZXMvaW50ZXJhY3RpdmUvY29tcG9uZW50cy9jb25maWctc2VsZWN0b3IudHM6PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj41NTogICBzdWJncm91cHM6IFJlc291cmNlU3ViZ3JvdXBbXTs8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjU2OiAgIH08L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjU3OiAgIDwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+NTg6IGZ1bmN0aW9uIGdldEdyb3VwTGFiZWwobWV0YWRhdGE6IFBhdGhNZXRhZGF0YSk6IHN0cmluZyB7PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj41OTogICBpZiAobWV0YWRhdGEub3JpZ2luID09PSAmcXVvdDtwYWNrYWdlJnF1b3Q7KSB7PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj42MDogICByZXR1cm4gYCR7bWV0YWRhdGEuc291cmNlfSAoJHttZXRhZGF0YS5zY29wZX0pYDs8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjYxOiAgIH08L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjc3OiAgIGlmICghZ3JvdXBNYXAuaGFzKGdyb3VwS2V5KSkgezwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+Nzg6ICAgZ3JvdXBNYXAuc2V0KGdyb3VwS2V5LCB7PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj43OTogICBrZXk6IGdyb3VwS2V5LDwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+ODA6IGxhYmVsOiBnZXRHcm91cExhYmVsKG1ldGFkYXRhKSw8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjgxOiAgIHNjb3BlOiBtZXRhZGF0YS5zY29wZSw8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjgyOiAgIG9yaWdpbjogbWV0YWRhdGEub3JpZ2luLDwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUlOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+ODM6ICAgc291cmNlOiBtZXRhZGF0YS5zb3VyY2UsPC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj4mbmJzcDs8L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoNjEsMTA4LDM3KVwiPm1hdGNoZXM6IDI8L3NwYW4+PC9kaXY+In0sImNhbGxfRDlFSjhua2NNOGxjdjd5VTFNRmgzdVl6fGZjXzAyN2YxZWExNWRlZjM1MDUwMTY5ZjMwYjQ0YWI5ODgxOTE4YzRjYzI4M2FiMGI3MzU3Ijp7ImNhbGxIdG1sIjoiPGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDc0LDk0LDEyOSlcIj48L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoNzQsOTQsMTI5KTtmb250LXdlaWdodDpib2xkXCI+R3JlcDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYig3NCw5NCwxMjkpXCI+PC9zcGFuPiA8c3BhbiBzdHlsZT1cImNvbG9yOnJnYig3NCw5NCwxMjkpXCI+L2NvbGxlY3RBdXRvU2tpbGxFbnRyaWVzLzwvc3Bhbj4gPHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPmluPTwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMTcsMTIyLDEzMClcIj5wYWNrYWdlczwvc3Bhbj4gPHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPmdsb2I9PC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDExNywxMjIsMTMwKVwiPioudHM8L3NwYW4+IDxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj5jdHg9PC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDExNywxMjIsMTMwKVwiPjM8L3NwYW4+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+IiwicmVzdWx0SHRtbEV4cGFuZGVkIjoiPGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDc0LDk0LDEyOSlcIj5jb2RpbmctYWdlbnQvc3JjL2NvcmUvcGFja2FnZS1tYW5hZ2VyLnRzOjwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+NDAwOiAgIHJldHVybiBlbnRyaWVzOzwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+NDAxOiAgIH08L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjQwMjogICA8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjQwMzogZnVuY3Rpb24gY29sbGVjdEF1dG9Ta2lsbEVudHJpZXMoZGlyOiBzdHJpbmcsIG1vZGU6IFNraWxsRGlzY292ZXJ5TW9kZSk6IHN0cmluZ1tdIHs8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjQwNDogICByZXR1cm4gY29sbGVjdFNraWxsRW50cmllcyhkaXIsIG1vZGUpOzwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+NDA1OiAgIH08L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjQwNjogICA8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjIxOTA6ICAgYWRkUmVzb3VyY2VzKDwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+MjE5MTogICAmcXVvdDtza2lsbHMmcXVvdDssPC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj4yMTkyOiAgIFs8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjIxOTM6IC4uLmNvbGxlY3RBdXRvU2tpbGxFbnRyaWVzKHByb2plY3REaXJzLnNraWxscywgJnF1b3Q7cGkmcXVvdDspLDwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+MjE5NDogICAuLi5wcm9qZWN0QWdlbnRzU2tpbGxEaXJzLmZsYXRNYXAoKGRpcikgPSZndDsgY29sbGVjdEF1dG9Ta2lsbEVudHJpZXMoZGlyLCAmcXVvdDthZ2VudHMmcXVvdDspKSw8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjIxOTU6ICAgXSw8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjIxOTY6ICAgcHJvamVjdE1ldGFkYXRhLDwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+MjE5MTogICAmcXVvdDtza2lsbHMmcXVvdDssPC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj4yMTkyOiAgIFs8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjIxOTM6ICAgLi4uY29sbGVjdEF1dG9Ta2lsbEVudHJpZXMocHJvamVjdERpcnMuc2tpbGxzLCAmcXVvdDtwaSZxdW90OyksPC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj4yMTk0OiAuLi5wcm9qZWN0QWdlbnRzU2tpbGxEaXJzLmZsYXRNYXAoKGRpcikgPSZndDsgY29sbGVjdEF1dG9Ta2lsbEVudHJpZXMoZGlyLCAmcXVvdDthZ2VudHMmcXVvdDspKSw8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjIxOTU6ICAgXSw8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjIxOTY6ICAgcHJvamVjdE1ldGFkYXRhLDwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+MjE5NzogICBwcm9qZWN0T3ZlcnJpZGVzLnNraWxscyw8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjIyMjE6ICAgKTs8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjIyMjI6ICAgYWRkUmVzb3VyY2VzKDwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+MjIyMzogICAmcXVvdDtza2lsbHMmcXVvdDssPC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj4yMjI0OiBbLi4uY29sbGVjdEF1dG9Ta2lsbEVudHJpZXModXNlckRpcnMuc2tpbGxzLCAmcXVvdDtwaSZxdW90OyksPC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj4gICAgPHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+Li4uY29sbGVjdEF1dG9Ta2lsbEVudHJpZXModXNlckFnZW50c1NraWxsc0RpciwgJnF1b3Q7YWdlbnRzJnF1b3Q7KV0sPC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj4yMjI1OiAgIHVzZXJNZXRhZGF0YSw8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjIyMjY6ICAgdXNlck92ZXJyaWRlcy5za2lsbHMsPC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSU4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj4yMjI3OiAgIGdsb2JhbEJhc2VEaXIsPC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj4mbmJzcDs8L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoNjEsMTA4LDM3KVwiPm1hdGNoZXM6IDQ8L3NwYW4+PC9kaXY+In0sImNhbGxfYkdTem8xZGk1ZUlDTVFhWlJVdjhpZ0VlfGZjXzAyN2YxZWExNWRlZjM1MDUwMTY5ZjMwYjQ0YWJhMDgxOTE5MTE4MDAxYTQ1ZWY2MzE4Ijp7ImNhbGxIdG1sIjoiPGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDc0LDk0LDEyOSlcIj48L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoNzQsOTQsMTI5KTtmb250LXdlaWdodDpib2xkXCI+R3JlcDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYig3NCw5NCwxMjkpXCI+PC9zcGFuPiA8c3BhbiBzdHlsZT1cImNvbG9yOnJnYig3NCw5NCwxMjkpXCI+L1VzZXIgKH4vPC9zcGFuPiA8c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+aW49PC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDExNywxMjIsMTMwKVwiPnBhY2thZ2VzPC9zcGFuPiA8c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+Z2xvYj08L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTE3LDEyMiwxMzApXCI+Ki50czwvc3Bhbj4gPHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPmN0eD08L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTE3LDEyMiwxMzApXCI+Mzwvc3Bhbj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+IiwicmVzdWx0SHRtbEV4cGFuZGVkIjoiIn0sImNhbGxfZGY5N2RyWloyejJEaDlKN29wSVBYbWlBfGZjXzAyN2YxZWExNWRlZjM1MDUwMTY5ZjMwYjRmNjA1YzgxOTE5ODQwZTgwOTEwNTM5MmVmIjp7ImNhbGxIdG1sIjoiPGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDc0LDk0LDEyOSlcIj48L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoNzQsOTQsMTI5KTtmb250LXdlaWdodDpib2xkXCI+R3JlcDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYig3NCw5NCwxMjkpXCI+PC9zcGFuPiA8c3BhbiBzdHlsZT1cImNvbG9yOnJnYig3NCw5NCwxMjkpXCI+L2ludGVyZmFjZSBQYXRoTWV0YWRhdGF8dHlwZSBQYXRoTWV0YWRhdGF8Y29uc3QgdXNlck1ldGFkYXRhfGNvbnN0IHByb2plY3RNZXRhZGF0YS88L3NwYW4+ICAgICAgICAgICAgPC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj5pbj08L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTE3LDEyMiwxMzApXCI+cGFja2FnZXMvY29kaW5nLWFnZW50L3NyYy9jb3JlL3BhY2thZ2UtbWFuYWdlci50czwvc3Bhbj4gPHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPmdsb2I9PC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDExNywxMjIsMTMwKVwiPioudHM8L3NwYW4+IDxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj5jdHg9PC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDExNywxMjIsMTMwKVwiPjQ8L3NwYW4+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4iLCJyZXN1bHRIdG1sRXhwYW5kZWQiOiI8ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoNzQsOTQsMTI5KVwiPnBhY2thZ2UtbWFuYWdlci50czo8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjQyOiAgIGlmICghdmFsdWUpIHJldHVybiBmYWxzZTs8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjQzOiAgIHJldHVybiB2YWx1ZSA9PT0gJnF1b3Q7MSZxdW90OyB8fCB2YWx1ZS50b0xvd2VyQ2FzZSgpID09PSAmcXVvdDt0cnVlJnF1b3Q7IHx8IHZhbHVlLnRvTG93ZXJDYXNlKCkgPT09ICZxdW90O3llcyZxdW90Ozs8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjQ0OiAgIH08L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjQ1OiAgIDwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+NDY6IGV4cG9ydCBpbnRlcmZhY2UgUGF0aE1ldGFkYXRhIHs8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjQ3OiAgIHNvdXJjZTogc3RyaW5nOzwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+NDg6ICAgc2NvcGU6IFNvdXJjZVNjb3BlOzwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+NDk6ICAgb3JpZ2luOiAmcXVvdDtwYWNrYWdlJnF1b3Q7IHwgJnF1b3Q7dG9wLWxldmVsJnF1b3Q7Ozwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+NTA6ICAgYmFzZURpcj86IHN0cmluZzs8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjIxMjI6ICAgcHJvamVjdFNldHRpbmdzOiBSZXR1cm5UeXBlJmx0O1NldHRpbmdzTWFuYWdlclsmcXVvdDtnZXRQcm9qZWN0U2V0dGluZ3MmcXVvdDtdJmd0Oyw8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjIxMjM6ICAgZ2xvYmFsQmFzZURpcjogc3RyaW5nLDwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+MjEyNDogICBwcm9qZWN0QmFzZURpcjogc3RyaW5nLDwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+MjEyNTogICApOiB2b2lkIHs8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjIxMjY6IGNvbnN0IHVzZXJNZXRhZGF0YTogUGF0aE1ldGFkYXRhID0gezwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+MjEyNzogICBzb3VyY2U6ICZxdW90O2F1dG8mcXVvdDssPC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj4yMTI4OiAgIHNjb3BlOiAmcXVvdDt1c2VyJnF1b3Q7LDwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+MjEyOTogICBvcmlnaW46ICZxdW90O3RvcC1sZXZlbCZxdW90Oyw8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjIxMzA6ICAgYmFzZURpcjogZ2xvYmFsQmFzZURpciw8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjIxMjg6ICAgc2NvcGU6ICZxdW90O3VzZXImcXVvdDssPC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj4yMTI5OiAgIG9yaWdpbjogJnF1b3Q7dG9wLWxldmVsJnF1b3Q7LDwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+MjEzMDogICBiYXNlRGlyOiBnbG9iYWxCYXNlRGlyLDwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+MjEzMTogICB9Ozwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+MjEzMjogY29uc3QgcHJvamVjdE1ldGFkYXRhOiBQYXRoTWV0YWRhdGEgPSB7PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj4yMTMzOiAgIHNvdXJjZTogJnF1b3Q7YXV0byZxdW90Oyw8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjIxMzQ6ICAgc2NvcGU6ICZxdW90O3Byb2plY3QmcXVvdDssPC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj4yMTM1OiAgIG9yaWdpbjogJnF1b3Q7dG9wLWxldmVsJnF1b3Q7LDwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUlOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+MjEzNjogICBiYXNlRGlyOiBwcm9qZWN0QmFzZURpciw8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPiZuYnNwOzwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYig2MSwxMDgsMzcpXCI+bWF0Y2hlczogMzwvc3Bhbj48L2Rpdj4ifSwiY2FsbF9LUmVKek5YSkZKNlc0YWt3TUdEd2p3c1V8ZmNfMDI3ZjFlYTE1ZGVmMzUwNTAxNjlmMzBiNTliMmIwODE5MWJmMmQ3ZmM5YmYyMjBkMTAiOnsiY2FsbEh0bWwiOiI8ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoNzQsOTQsMTI5KVwiPjwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYig3NCw5NCwxMjkpO2ZvbnQtd2VpZ2h0OmJvbGRcIj5HcmVwPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDc0LDk0LDEyOSlcIj48L3NwYW4+IDxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDc0LDk0LDEyOSlcIj4vQ09ORklHX0RJUl9OQU1FLzwvc3Bhbj4gPHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPmluPTwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMTcsMTIyLDEzMClcIj5wYWNrYWdlcy9jb2RpbmctYWdlbnQvc3JjL2NvbmZpZy50czwvc3Bhbj4gPHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPmN0eD08L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTE3LDEyMiwxMzApXCI+Mjwvc3Bhbj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4iLCJyZXN1bHRIdG1sRXhwYW5kZWQiOiI8ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoNzQsOTQsMTI5KVwiPmNvbmZpZy50czo8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjMyMzogICBleHBvcnQgY29uc3QgQVBQX05BTUU6IHN0cmluZyA9IHBpQ29uZmlnTmFtZSB8fCAmcXVvdDtwaSZxdW90Ozs8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjMyNDogICBleHBvcnQgY29uc3QgQVBQX1RJVExFOiBzdHJpbmcgPSBwaUNvbmZpZ05hbWUgPyBBUFBfTkFNRSA6ICZxdW90O8+AJnF1b3Q7Ozwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+MzI1OiBleHBvcnQgY29uc3QgQ09ORklHX0RJUl9OQU1FOiBzdHJpbmcgPSBwa2cucGlDb25maWc/LmNvbmZpZ0RpciB8fCAmcXVvdDsucGkmcXVvdDs7PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj4zMjY6ICAgZXhwb3J0IGNvbnN0IFZFUlNJT046IHN0cmluZyA9IHBrZy52ZXJzaW9uIHx8ICZxdW90OzAuMC4wJnF1b3Q7Ozwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+MzI3OiAgIDwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+MzUwOiAgIHJldHVybiBlbnZEaXI7PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj4zNTE6ICAgfTwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+MzUyOiByZXR1cm4gam9pbihob21lZGlyKCksIENPTkZJR19ESVJfTkFNRSwgJnF1b3Q7YWdlbnQmcXVvdDspOzwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+MzUzOiAgIH08L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJTilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjM1NDogICA8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPiZuYnNwOzwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYig2MSwxMDgsMzcpXCI+bWF0Y2hlczogMjwvc3Bhbj48L2Rpdj4ifSwiY2FsbF9KeTlQbEpwWTBTeWNhbjMwUGtiZkhvR3d8ZmNfMDI3ZjFlYTE1ZGVmMzUwNTAxNjlmMzBiNjA2MThjODE5MWFiZTk5NTY0YzkwYmQ2ZDEiOnsiY2FsbEh0bWwiOiI8ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoNzQsOTQsMTI5KVwiPjwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYig3NCw5NCwxMjkpO2ZvbnQtd2VpZ2h0OmJvbGRcIj5GaW5kPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDc0LDk0LDEyOSlcIj48L3NwYW4+IDxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDc0LDk0LDEyOSlcIj4qY29uZmlnKnNlbGVjdG9yKjwvc3Bhbj4gPHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPmluPTwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMTcsMTIyLDEzMClcIj5wYWNrYWdlcy9jb2RpbmctYWdlbnQ8L3NwYW4+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4iLCJyZXN1bHRIdG1sRXhwYW5kZWQiOiI8ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoNzQsOTQsMTI5KVwiPnNyYy88L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDc0LDk0LDEyOSlcIj5jbGkvPC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSCICAg4pSU4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj5jb25maWctc2VsZWN0b3IudHM8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJTilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDc0LDk0LDEyOSlcIj5tb2Rlcy88L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj4gICAg4pSU4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYig3NCw5NCwxMjkpXCI+aW50ZXJhY3RpdmUvPC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+ICAgICAgICDilJTilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDc0LDk0LDEyOSlcIj5jb21wb25lbnRzLzwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPiAgICAgICAgICAgIOKUlOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+Y29uZmlnLXNlbGVjdG9yLnRzPC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj4mbmJzcDs8L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoNjEsMTA4LDM3KVwiPnJlc3VsdHM6IDI8L3NwYW4+PC9kaXY+In0sImNhbGxfR1g3Z05qdW5jbE9EQnliVFJjcmxudm0zfGZjXzAyN2YxZWExNWRlZjM1MDUwMTY5ZjMwYjY1OTA2ODgxOTFhZDFhZTU1MjdhZWUwNzI5Ijp7ImNhbGxIdG1sIjoiPGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDc0LDk0LDEyOSlcIj48L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoNzQsOTQsMTI5KTtmb250LXdlaWdodDpib2xkXCI+R3JlcDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYig3NCw5NCwxMjkpXCI+PC9zcGFuPiA8c3BhbiBzdHlsZT1cImNvbG9yOnJnYig3NCw5NCwxMjkpXCI+L1BhdGhNZXRhZGF0YS88L3NwYW4+IDxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj5pbj08L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTE3LDEyMiwxMzApXCI+cGFja2FnZXMvY29kaW5nLWFnZW50PC9zcGFuPiA8c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+Z2xvYj08L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTE3LDEyMiwxMzApXCI+Ki50ZXN0LnRzPC9zcGFuPiA8c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+Y3R4PTwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMTcsMTIyLDEzMClcIj4yPC9zcGFuPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+IiwicmVzdWx0SHRtbEV4cGFuZGVkIjoiPGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDc0LDk0LDEyOSlcIj50ZXN0L2ludGVyYWN0aXZlLW1vZGUtc3RhdHVzLnRlc3QudHM6PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj4yNTE6ICAgfSw8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjI1MjogICByZXNvdXJjZUxvYWRlcjogezwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+MjUzOiBnZXRQYXRoTWV0YWRhdGE6ICgpID0mZ3Q7IG5ldyBNYXAoKSw8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjI1NDogICBnZXRBZ2VudHNGaWxlczogKCkgPSZndDsgKHsgYWdlbnRzRmlsZXM6IG9wdGlvbnMuY29udGV4dEZpbGVzID8/IFtdIH0pLDwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUlOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+MjU1OiAgIGdldFNraWxsczogKCkgPSZndDsgKHs8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPiZuYnNwOzwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYig2MSwxMDgsMzcpXCI+bWF0Y2hlczogMTwvc3Bhbj48L2Rpdj4ifSwiY2FsbF96ckVIczVRbEpicVRNa1QzYmlpY2MzQXN8ZmNfMDI3ZjFlYTE1ZGVmMzUwNTAxNjlmMzBiNmYwY2I0ODE5MWFlMzgxNTliNTBlNzZmM2YiOnsiY2FsbEh0bWwiOiI8ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoNzQsOTQsMTI5KVwiPjwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYig3NCw5NCwxMjkpO2ZvbnQtd2VpZ2h0OmJvbGRcIj5HcmVwPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDc0LDk0LDEyOSlcIj48L3NwYW4+IDxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDc0LDk0LDEyOSlcIj4vZnVuY3Rpb24gaXNFbmFibGVkQnlPdmVycmlkZXMvPC9zcGFuPiA8c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+aW49PC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDExNywxMjIsMTMwKVwiPnBhY2thZ2VzL2NvZGluZy1hZ2VudC9zcmMvY29yZS9wYWNrYWdlLW1hbmFnZXIudHM8L3NwYW4+IDxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj5jdHg9PC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDExNywxMjIsMTMwKVwiPjg8L3NwYW4+ICAgICA8L2Rpdj4iLCJyZXN1bHRIdG1sRXhwYW5kZWQiOiI8ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoNzQsOTQsMTI5KVwiPnBhY2thZ2UtbWFuYWdlci50czo8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjY3MzogICByZXR1cm4gbm9ybWFsaXplZCA9PT0gcGFyZW50UmVsIHx8IG5vcm1hbGl6ZWQgPT09IHBhcmVudERpclBvc2l4Ozwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+Njc0OiAgIH0pOzwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+Njc1OiAgIH08L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjY3NjogICA8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjY3NzogICBmdW5jdGlvbiBnZXRPdmVycmlkZVBhdHRlcm5zKGVudHJpZXM6IHN0cmluZ1tdKTogc3RyaW5nW10gezwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+Njc4OiAgIHJldHVybiBlbnRyaWVzLmZpbHRlcigocGF0dGVybikgPSZndDsgcGF0dGVybi5zdGFydHNXaXRoKCZxdW90OyEmcXVvdDspIHx8IHBhdHRlcm4uc3RhcnRzV2l0aCgmcXVvdDsrJnF1b3Q7KSB8fDwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+ICAgIDxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPnBhdHRlcm4uc3RhcnRzV2l0aCgmcXVvdDstJnF1b3Q7KSk7PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj42Nzk6ICAgfTwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+NjgwOiAgIDwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+NjgxOiBmdW5jdGlvbiBpc0VuYWJsZWRCeU92ZXJyaWRlcyhmaWxlUGF0aDogc3RyaW5nLCBwYXR0ZXJuczogc3RyaW5nW10sIGJhc2VEaXI6IHN0cmluZyk6PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj4gICAgPHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+Ym9vbGVhbiB7PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj42ODI6ICAgY29uc3Qgb3ZlcnJpZGVzID0gZ2V0T3ZlcnJpZGVQYXR0ZXJucyhwYXR0ZXJucyk7PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj42ODM6ICAgY29uc3QgZXhjbHVkZXMgPSBvdmVycmlkZXMuZmlsdGVyKChwYXR0ZXJuKSA9Jmd0OyBwYXR0ZXJuLnN0YXJ0c1dpdGgoJnF1b3Q7ISZxdW90OykpLm1hcCgocGF0dGVybikgPSZndDs8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPiAgICA8c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj5wYXR0ZXJuLnNsaWNlKDEpKTs8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjY4NDogICBjb25zdCBmb3JjZUluY2x1ZGVzID0gb3ZlcnJpZGVzLmZpbHRlcigocGF0dGVybikgPSZndDs8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPiAgICA8c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj5wYXR0ZXJuLnN0YXJ0c1dpdGgoJnF1b3Q7KyZxdW90OykpLm1hcCgocGF0dGVybikgPSZndDsgcGF0dGVybi5zbGljZSgxKSk7PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj42ODU6ICAgY29uc3QgZm9yY2VFeGNsdWRlcyA9IG92ZXJyaWRlcy5maWx0ZXIoKHBhdHRlcm4pID0mZ3Q7PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj4gICAgPHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+cGF0dGVybi5zdGFydHNXaXRoKCZxdW90Oy0mcXVvdDspKS5tYXAoKHBhdHRlcm4pID0mZ3Q7IHBhdHRlcm4uc2xpY2UoMSkpOzwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+Njg2OiAgIDwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+Njg3OiAgIGxldCBlbmFibGVkID0gdHJ1ZTs8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjY4ODogICBpZiAoZXhjbHVkZXMubGVuZ3RoICZndDsgMCAmYW1wOyZhbXA7IG1hdGNoZXNBbnlQYXR0ZXJuKGZpbGVQYXRoLCBleGNsdWRlcywgYmFzZURpcikpIHs8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJTilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjY4OTogICBlbmFibGVkID0gZmFsc2U7PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj4mbmJzcDs8L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoNjEsMTA4LDM3KVwiPm1hdGNoZXM6IDE8L3NwYW4+PC9kaXY+In0sImNhbGxfYzMzOURGRjhKZ1lFTXp2SFE3QklTRnhWfGZjXzAyN2YxZWExNWRlZjM1MDUwMTY5ZjMwYjczOWU0YzgxOTE5MWNjZDdmYTUzNjBjMjM1Ijp7ImNhbGxIdG1sIjoiPGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDc0LDk0LDEyOSlcIj48L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoNzQsOTQsMTI5KTtmb250LXdlaWdodDpib2xkXCI+R3JlcDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYig3NCw5NCwxMjkpXCI+PC9zcGFuPiA8c3BhbiBzdHlsZT1cImNvbG9yOnJnYig3NCw5NCwxMjkpXCI+L2Z1bmN0aW9uIG1hdGNoZXNBbnlQYXR0ZXJufGZ1bmN0aW9uIG1hdGNoZXNBbnlFeGFjdFBhdHRlcm4vPC9zcGFuPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj5pbj08L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTE3LDEyMiwxMzApXCI+cGFja2FnZXMvY29kaW5nLWFnZW50L3NyYy9jb3JlL3BhY2thZ2UtbWFuYWdlci50czwvc3Bhbj4gPHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPmN0eD08L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTE3LDEyMiwxMzApXCI+Njwvc3Bhbj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4iLCJyZXN1bHRIdG1sRXhwYW5kZWQiOiI8ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoNzQsOTQsMTI5KVwiPnBhY2thZ2UtbWFuYWdlci50czo8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjYxODogICBpZiAocmVzb3VyY2VUeXBlID09PSAmcXVvdDtleHRlbnNpb25zJnF1b3Q7KSB7PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj42MTk6ICAgcmV0dXJuIGNvbGxlY3RBdXRvRXh0ZW5zaW9uRW50cmllcyhkaXIpOzwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+NjIwOiAgIH08L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjYyMTogICByZXR1cm4gY29sbGVjdEZpbGVzKGRpciwgRklMRV9QQVRURVJOU1tyZXNvdXJjZVR5cGVdKTs8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjYyMjogICB9PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj42MjM6ICAgPC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj42MjQ6IGZ1bmN0aW9uIG1hdGNoZXNBbnlQYXR0ZXJuKGZpbGVQYXRoOiBzdHJpbmcsIHBhdHRlcm5zOiBzdHJpbmdbXSwgYmFzZURpcjogc3RyaW5nKTogYm9vbGVhbjwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+ICAgIDxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPns8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjYyNTogICBjb25zdCByZWwgPSB0b1Bvc2l4UGF0aChyZWxhdGl2ZShiYXNlRGlyLCBmaWxlUGF0aCkpOzwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+NjI2OiAgIGNvbnN0IG5hbWUgPSBiYXNlbmFtZShmaWxlUGF0aCk7PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj42Mjc6ICAgY29uc3QgZmlsZVBhdGhQb3NpeCA9IHRvUG9zaXhQYXRoKGZpbGVQYXRoKTs8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjYyODogICBjb25zdCBpc1NraWxsRmlsZSA9IG5hbWUgPT09ICZxdW90O1NLSUxMLm1kJnF1b3Q7Ozwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+NjI5OiAgIGNvbnN0IHBhcmVudERpciA9IGlzU2tpbGxGaWxlID8gZGlybmFtZShmaWxlUGF0aCkgOiB1bmRlZmluZWQ7PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj42MzA6ICAgY29uc3QgcGFyZW50UmVsID0gaXNTa2lsbEZpbGUgPyB0b1Bvc2l4UGF0aChyZWxhdGl2ZShiYXNlRGlyLCBwYXJlbnREaXIhKSkgOiB1bmRlZmluZWQ7PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj42NTE6ICAgPC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj42NTI6ICAgZnVuY3Rpb24gbm9ybWFsaXplRXhhY3RQYXR0ZXJuKHBhdHRlcm46IHN0cmluZyk6IHN0cmluZyB7PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj42NTM6ICAgY29uc3Qgbm9ybWFsaXplZCA9IHBhdHRlcm4uc3RhcnRzV2l0aCgmcXVvdDsuLyZxdW90OykgfHwgcGF0dGVybi5zdGFydHNXaXRoKCZxdW90Oy5cXFxcJnF1b3Q7KSA/PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj4gICAgPHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+cGF0dGVybi5zbGljZSgyKSA6IHBhdHRlcm47PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj42NTQ6ICAgcmV0dXJuIHRvUG9zaXhQYXRoKG5vcm1hbGl6ZWQpOzwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+NjU1OiAgIH08L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjY1NjogICA8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjY1NzogZnVuY3Rpb24gbWF0Y2hlc0FueUV4YWN0UGF0dGVybihmaWxlUGF0aDogc3RyaW5nLCBwYXR0ZXJuczogc3RyaW5nW10sIGJhc2VEaXI6IHN0cmluZyk6PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj4gICAgPHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+Ym9vbGVhbiB7PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj42NTg6ICAgaWYgKHBhdHRlcm5zLmxlbmd0aCA9PT0gMCkgcmV0dXJuIGZhbHNlOzwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+NjU5OiAgIGNvbnN0IHJlbCA9IHRvUG9zaXhQYXRoKHJlbGF0aXZlKGJhc2VEaXIsIGZpbGVQYXRoKSk7PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj42NjA6ICAgY29uc3QgbmFtZSA9IGJhc2VuYW1lKGZpbGVQYXRoKTs8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjY2MTogICBjb25zdCBmaWxlUGF0aFBvc2l4ID0gdG9Qb3NpeFBhdGgoZmlsZVBhdGgpOzwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+NjYyOiAgIGNvbnN0IGlzU2tpbGxGaWxlID0gbmFtZSA9PT0gJnF1b3Q7U0tJTEwubWQmcXVvdDs7PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSU4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj42NjM6ICAgY29uc3QgcGFyZW50RGlyID0gaXNTa2lsbEZpbGUgPyBkaXJuYW1lKGZpbGVQYXRoKSA6IHVuZGVmaW5lZDs8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPiZuYnNwOzwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYig2MSwxMDgsMzcpXCI+bWF0Y2hlczogMjwvc3Bhbj48L2Rpdj4ifSwiY2FsbF9vcU9rWld2MzhDR00yc0tQdE1jTDFxTU58ZmNfMDI3ZjFlYTE1ZGVmMzUwNTAxNjlmMzBiN2Q1MmI0ODE5MWEyNWE3NTRkZWM3YWEwMWIiOnsiY2FsbEh0bWwiOiI8ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoNzQsOTQsMTI5KVwiPjwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYig3NCw5NCwxMjkpO2ZvbnQtd2VpZ2h0OmJvbGRcIj5HcmVwPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDc0LDk0LDEyOSlcIj48L3NwYW4+IDxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDc0LDk0LDEyOSlcIj4vZnVuY3Rpb24gY29sbGVjdEFuY2VzdG9yQWdlbnRzU2tpbGxEaXJzfGZ1bmN0aW9uIGNvbGxlY3RTa2lsbEVudHJpZXMvPC9zcGFuPiAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPmluPTwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMTcsMTIyLDEzMClcIj5wYWNrYWdlcy9jb2RpbmctYWdlbnQvc3JjL2NvcmUvcGFja2FnZS1tYW5hZ2VyLnRzPC9zcGFuPiA8c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+Y3R4PTwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMTcsMTIyLDEzMClcIj41PC9zcGFuPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PiIsInJlc3VsdEh0bWxFeHBhbmRlZCI6IjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYig3NCw5NCwxMjkpXCI+cGFja2FnZS1tYW5hZ2VyLnRzOjwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+MzI0OiAgIHJldHVybiBmaWxlczs8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjMyNTogICB9PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj4zMjY6ICAgPC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj4zMjc6ICAgdHlwZSBTa2lsbERpc2NvdmVyeU1vZGUgPSAmcXVvdDtwaSZxdW90OyB8ICZxdW90O2FnZW50cyZxdW90Ozs8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjMyODogICA8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjMyOTogZnVuY3Rpb24gY29sbGVjdFNraWxsRW50cmllcyg8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjMzMDogICBkaXI6IHN0cmluZyw8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjMzMTogICBtb2RlOiBTa2lsbERpc2NvdmVyeU1vZGUsPC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj4zMzI6ICAgaWdub3JlTWF0Y2hlcj86IElnbm9yZU1hdGNoZXIsPC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj4zMzM6ICAgcm9vdERpcj86IHN0cmluZyw8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjMzNDogICApOiBzdHJpbmdbXSB7PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj40MTY6ICAgfTwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+NDE3OiAgIGRpciA9IHBhcmVudDs8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjQxODogICB9PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj40MTk6ICAgfTwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+NDIwOiAgIDwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+NDIxOiBmdW5jdGlvbiBjb2xsZWN0QW5jZXN0b3JBZ2VudHNTa2lsbERpcnMoc3RhcnREaXI6IHN0cmluZyk6IHN0cmluZ1tdIHs8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjQyMjogICBjb25zdCBza2lsbERpcnM6IHN0cmluZ1tdID0gW107PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj40MjM6ICAgY29uc3QgcmVzb2x2ZWRTdGFydERpciA9IHJlc29sdmUoc3RhcnREaXIpOzwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+NDI0OiAgIGNvbnN0IGdpdFJlcG9Sb290ID0gZmluZEdpdFJlcG9Sb290KHJlc29sdmVkU3RhcnREaXIpOzwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+NDI1OiAgIDwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUlOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+NDI2OiAgIGxldCBkaXIgPSByZXNvbHZlZFN0YXJ0RGlyOzwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+Jm5ic3A7PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDYxLDEwOCwzNylcIj5tYXRjaGVzOiAyPC9zcGFuPjwvZGl2PiJ9LCJjYWxsX01vUDVkYk8wSk9DdU1RWFRKblhEMGI0UXxmY18wMjdmMWVhMTVkZWYzNTA1MDE2OWYzMGI4M2I5NjQ4MTkxODM5YzU0NGE4MDExODJkMCI6eyJjYWxsSHRtbCI6IjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYig3NCw5NCwxMjkpXCI+PC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDc0LDk0LDEyOSk7Zm9udC13ZWlnaHQ6Ym9sZFwiPkdyZXA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoNzQsOTQsMTI5KVwiPjwvc3Bhbj4gPHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoNzQsOTQsMTI5KVwiPi9yZWxhdGl2ZVxcKHxpdGVtLnBhdGh8ZGlzcGxheU5hbWUvPC9zcGFuPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPmluPTwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMTcsMTIyLDEzMClcIj5wYWNrYWdlcy9jb2RpbmctYWdlbnQvc3JjL21vZGVzL2ludGVyYWN0aXZlL2NvbXBvbmVudHMvY29uZmlnLXNlbGVjdG9yLnRzPC9zcGFuPiA8c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+Y3R4PTwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMTcsMTIyLDEzMClcIj4yPC9zcGFuPiAgICAgICAgICAgICAgICAgIDwvZGl2PiIsInJlc3VsdEh0bWxDb2xsYXBzZWQiOiI8ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoNzQsOTQsMTI5KVwiPmNvbmZpZy1zZWxlY3Rvci50czo8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjM2OiAgIG1ldGFkYXRhOiBQYXRoTWV0YWRhdGE7PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj4zNzogICByZXNvdXJjZVR5cGU6IFJlc291cmNlVHlwZTs8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjM4OiBkaXNwbGF5TmFtZTogc3RyaW5nOzwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+Mzk6ICAgZ3JvdXBLZXk6IHN0cmluZzs8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjQwOiAgIHN1Ymdyb3VwS2V5OiBzdHJpbmc7PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj4xMDE6ICAgY29uc3QgZmlsZU5hbWUgPSBiYXNlbmFtZShwYXRoKTs8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjEwMjogICBjb25zdCBwYXJlbnRGb2xkZXIgPSBiYXNlbmFtZShkaXJuYW1lKHBhdGgpKTs8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjEwMzogbGV0IGRpc3BsYXlOYW1lOiBzdHJpbmc7PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj4xMDQ6ICAgaWYgKHJlc291cmNlVHlwZSA9PT0gJnF1b3Q7ZXh0ZW5zaW9ucyZxdW90OyAmYW1wOyZhbXA7IHBhcmVudEZvbGRlciAhPT0gJnF1b3Q7ZXh0ZW5zaW9ucyZxdW90Oykgezwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+MTA1OiAgIGRpc3BsYXlOYW1lID0gYCR7cGFyZW50Rm9sZGVyfS8ke2ZpbGVOYW1lfWA7PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj4xMDM6ICAgbGV0IGRpc3BsYXlOYW1lOiBzdHJpbmc7PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj4xMDQ6ICAgaWYgKHJlc291cmNlVHlwZSA9PT0gJnF1b3Q7ZXh0ZW5zaW9ucyZxdW90OyAmYW1wOyZhbXA7IHBhcmVudEZvbGRlciAhPT0gJnF1b3Q7ZXh0ZW5zaW9ucyZxdW90Oykgezwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+MTA1OiBkaXNwbGF5TmFtZSA9IGAke3BhcmVudEZvbGRlcn0vJHtmaWxlTmFtZX1gOzwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+MTA2OiAgIH0gZWxzZSBpZiAocmVzb3VyY2VUeXBlID09PSAmcXVvdDtza2lsbHMmcXVvdDsgJmFtcDsmYW1wOyBmaWxlTmFtZSA9PT0gJnF1b3Q7U0tJTEwubWQmcXVvdDspIHs8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjEwNzogICBkaXNwbGF5TmFtZSA9IHBhcmVudEZvbGRlcjs8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjEwNTogICBkaXNwbGF5TmFtZSA9IGAke3BhcmVudEZvbGRlcn0vJHtmaWxlTmFtZX1gOzwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+MTA2OiAgIH0gZWxzZSBpZiAocmVzb3VyY2VUeXBlID09PSAmcXVvdDtza2lsbHMmcXVvdDsgJmFtcDsmYW1wOyBmaWxlTmFtZSA9PT0gJnF1b3Q7U0tJTEwubWQmcXVvdDspIHs8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjEwNzogZGlzcGxheU5hbWUgPSBwYXJlbnRGb2xkZXI7PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj4xMDg6ICAgfSBlbHNlIHs8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjEwOTogICBkaXNwbGF5TmFtZSA9IGZpbGVOYW1lOzwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+MTA3OiAgIGRpc3BsYXlOYW1lID0gcGFyZW50Rm9sZGVyOzwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+MTA4OiAgIH0gZWxzZSB7PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj4xMDk6IGRpc3BsYXlOYW1lID0gZmlsZU5hbWU7PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj4xMTA6ICAgfTwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+MTExOiAgIHN1Ymdyb3VwLml0ZW1zLnB1c2goezwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+MTE0OiAgIG1ldGFkYXRhLDwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+MTE1OiAgIHJlc291cmNlVHlwZSw8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjExNjogZGlzcGxheU5hbWUsPC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj4xMTc6ICAgZ3JvdXBLZXksPC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSU4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj4xMTg6ICAgc3ViZ3JvdXBLZXksPC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj4mbmJzcDs8L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPjQwIG1vcmUgbWF0Y2hlcywgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDExNywxMjIsMTMwKVwiPmN0cmwrbzwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+IHRvIGV4cGFuZDwvc3Bhbj4gLSA8c3BhbiBzdHlsZT1cImNvbG9yOnJnYig2MSwxMDgsMzcpXCI+bWF0Y2hlczogMTQ8L3NwYW4+PC9kaXY+IiwicmVzdWx0SHRtbEV4cGFuZGVkIjoiPGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDc0LDk0LDEyOSlcIj5jb25maWctc2VsZWN0b3IudHM6PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj4zNjogICBtZXRhZGF0YTogUGF0aE1ldGFkYXRhOzwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+Mzc6ICAgcmVzb3VyY2VUeXBlOiBSZXNvdXJjZVR5cGU7PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj4zODogZGlzcGxheU5hbWU6IHN0cmluZzs8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjM5OiAgIGdyb3VwS2V5OiBzdHJpbmc7PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj40MDogICBzdWJncm91cEtleTogc3RyaW5nOzwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+MTAxOiAgIGNvbnN0IGZpbGVOYW1lID0gYmFzZW5hbWUocGF0aCk7PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj4xMDI6ICAgY29uc3QgcGFyZW50Rm9sZGVyID0gYmFzZW5hbWUoZGlybmFtZShwYXRoKSk7PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj4xMDM6IGxldCBkaXNwbGF5TmFtZTogc3RyaW5nOzwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+MTA0OiAgIGlmIChyZXNvdXJjZVR5cGUgPT09ICZxdW90O2V4dGVuc2lvbnMmcXVvdDsgJmFtcDsmYW1wOyBwYXJlbnRGb2xkZXIgIT09ICZxdW90O2V4dGVuc2lvbnMmcXVvdDspIHs8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjEwNTogICBkaXNwbGF5TmFtZSA9IGAke3BhcmVudEZvbGRlcn0vJHtmaWxlTmFtZX1gOzwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+MTAzOiAgIGxldCBkaXNwbGF5TmFtZTogc3RyaW5nOzwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+MTA0OiAgIGlmIChyZXNvdXJjZVR5cGUgPT09ICZxdW90O2V4dGVuc2lvbnMmcXVvdDsgJmFtcDsmYW1wOyBwYXJlbnRGb2xkZXIgIT09ICZxdW90O2V4dGVuc2lvbnMmcXVvdDspIHs8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjEwNTogZGlzcGxheU5hbWUgPSBgJHtwYXJlbnRGb2xkZXJ9LyR7ZmlsZU5hbWV9YDs8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjEwNjogICB9IGVsc2UgaWYgKHJlc291cmNlVHlwZSA9PT0gJnF1b3Q7c2tpbGxzJnF1b3Q7ICZhbXA7JmFtcDsgZmlsZU5hbWUgPT09ICZxdW90O1NLSUxMLm1kJnF1b3Q7KSB7PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj4xMDc6ICAgZGlzcGxheU5hbWUgPSBwYXJlbnRGb2xkZXI7PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj4xMDU6ICAgZGlzcGxheU5hbWUgPSBgJHtwYXJlbnRGb2xkZXJ9LyR7ZmlsZU5hbWV9YDs8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjEwNjogICB9IGVsc2UgaWYgKHJlc291cmNlVHlwZSA9PT0gJnF1b3Q7c2tpbGxzJnF1b3Q7ICZhbXA7JmFtcDsgZmlsZU5hbWUgPT09ICZxdW90O1NLSUxMLm1kJnF1b3Q7KSB7PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj4xMDc6IGRpc3BsYXlOYW1lID0gcGFyZW50Rm9sZGVyOzwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+MTA4OiAgIH0gZWxzZSB7PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj4xMDk6ICAgZGlzcGxheU5hbWUgPSBmaWxlTmFtZTs8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjEwNzogICBkaXNwbGF5TmFtZSA9IHBhcmVudEZvbGRlcjs8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjEwODogICB9IGVsc2Ugezwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+MTA5OiBkaXNwbGF5TmFtZSA9IGZpbGVOYW1lOzwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+MTEwOiAgIH08L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjExMTogICBzdWJncm91cC5pdGVtcy5wdXNoKHs8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjExNDogICBtZXRhZGF0YSw8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjExNTogICByZXNvdXJjZVR5cGUsPC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj4xMTY6IGRpc3BsYXlOYW1lLDwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+MTE3OiAgIGdyb3VwS2V5LDwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+MTE4OiAgIHN1Ymdyb3VwS2V5LDwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+MTQzOiAgIGdyb3VwLnN1Ymdyb3Vwcy5zb3J0KChhLCBiKSA9Jmd0OyB0eXBlT3JkZXJbYS50eXBlXSAtIHR5cGVPcmRlcltiLnR5cGVdKTs8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjE0NDogICBmb3IgKGNvbnN0IHN1Ymdyb3VwIG9mIGdyb3VwLnN1Ymdyb3Vwcykgezwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+MTQ1OiBzdWJncm91cC5pdGVtcy5zb3J0KChhLCBiKSA9Jmd0OyBhLmRpc3BsYXlOYW1lLmxvY2FsZUNvbXBhcmUoYi5kaXNwbGF5TmFtZSkpOzwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+MTQ2OiAgIH08L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjE0NzogICB9PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj4yNTA6ICAgY29uc3QgaXRlbSA9IGVudHJ5Lml0ZW07PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj4yNTE6ICAgaWYgKDwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+MjUyOiBpdGVtLmRpc3BsYXlOYW1lLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMobG93ZXJRdWVyeSkgfHw8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjI1MzogICBpdGVtLnJlc291cmNlVHlwZS50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKGxvd2VyUXVlcnkpIHx8PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj4yNTQ6ICAgaXRlbS5wYXRoLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMobG93ZXJRdWVyeSk8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjI1MjogICBpdGVtLmRpc3BsYXlOYW1lLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMobG93ZXJRdWVyeSkgfHw8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjI1MzogICBpdGVtLnJlc291cmNlVHlwZS50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKGxvd2VyUXVlcnkpIHx8PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj4yNTQ6IGl0ZW0ucGF0aC50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKGxvd2VyUXVlcnkpPC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj4yNTU6ICAgKSB7PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj4yNTY6ICAgbWF0Y2hpbmdJdGVtcy5hZGQoaXRlbSk7PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj4yOTU6ICAgZm9yIChjb25zdCBncm91cCBvZiB0aGlzLmdyb3Vwcykgezwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+Mjk2OiAgIGZvciAoY29uc3Qgc3ViZ3JvdXAgb2YgZ3JvdXAuc3ViZ3JvdXBzKSB7PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj4yOTc6IGNvbnN0IGZvdW5kID0gc3ViZ3JvdXAuaXRlbXMuZmluZCgoaSkgPSZndDsgaS5wYXRoID09PSBpdGVtLnBhdGggJmFtcDsmYW1wOyBpLnJlc291cmNlVHlwZSA9PT08L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPiAgICA8c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj5pdGVtLnJlc291cmNlVHlwZSk7PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj4yOTg6ICAgaWYgKGZvdW5kKSB7PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj4yOTk6ICAgZm91bmQuZW5hYmxlZCA9IGVuYWJsZWQ7PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj4zNDI6ICAgY29uc3QgY3Vyc29yID0gaXNTZWxlY3RlZCA/ICZxdW90OyZndDsgJnF1b3Q7IDogJnF1b3Q7ICAmcXVvdDs7PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj4zNDM6ICAgY29uc3QgY2hlY2tib3ggPSBpdGVtLmVuYWJsZWQgPyB0aGVtZS5mZygmcXVvdDtzdWNjZXNzJnF1b3Q7LCAmcXVvdDtbeF0mcXVvdDspIDogdGhlbWUuZmcoJnF1b3Q7ZGltJnF1b3Q7LCAmcXVvdDtbIF0mcXVvdDspOzwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+MzQ0OiBjb25zdCBuYW1lID0gaXNTZWxlY3RlZCA/IHRoZW1lLmJvbGQoaXRlbS5kaXNwbGF5TmFtZSkgOiBpdGVtLmRpc3BsYXlOYW1lOzwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+MzQ1OiAgIGxpbmVzLnB1c2godHJ1bmNhdGVUb1dpZHRoKGAke2N1cnNvcn0gICAgJHtjaGVja2JveH0gJHtuYW1lfWAsIHdpZHRoLCAmcXVvdDsuLi4mcXVvdDspKTs8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjM0NjogICB9PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj41Mzc6ICAgY29uc3Qgc2NvcGUgPSBpdGVtLm1ldGFkYXRhLnNjb3BlIGFzICZxdW90O3VzZXImcXVvdDsgfCAmcXVvdDtwcm9qZWN0JnF1b3Q7Ozwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+NTM4OiAgIGNvbnN0IGJhc2VEaXIgPSB0aGlzLmdldFRvcExldmVsQmFzZURpcihzY29wZSk7PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj41Mzk6IHJldHVybiByZWxhdGl2ZShiYXNlRGlyLCBpdGVtLnBhdGgpOzwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+NTQwOiAgIH08L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjU0MTogICA8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjU0MTogICA8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjU0MjogICBwcml2YXRlIGdldFBhY2thZ2VSZXNvdXJjZVBhdHRlcm4oaXRlbTogUmVzb3VyY2VJdGVtKTogc3RyaW5nIHs8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjU0MzogY29uc3QgYmFzZURpciA9IGl0ZW0ubWV0YWRhdGEuYmFzZURpciA/PyBkaXJuYW1lKGl0ZW0ucGF0aCk7PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj41NDQ6ICAgcmV0dXJuIHJlbGF0aXZlKGJhc2VEaXIsIGl0ZW0ucGF0aCk7PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj41NDU6ICAgfTwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+NTQyOiAgIHByaXZhdGUgZ2V0UGFja2FnZVJlc291cmNlUGF0dGVybihpdGVtOiBSZXNvdXJjZUl0ZW0pOiBzdHJpbmcgezwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+NTQzOiAgIGNvbnN0IGJhc2VEaXIgPSBpdGVtLm1ldGFkYXRhLmJhc2VEaXIgPz8gZGlybmFtZShpdGVtLnBhdGgpOzwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+NTQ0OiByZXR1cm4gcmVsYXRpdmUoYmFzZURpciwgaXRlbS5wYXRoKTs8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjU0NTogICB9PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSU4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj41NDY6ICAgfTwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+Jm5ic3A7PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDYxLDEwOCwzNylcIj5tYXRjaGVzOiAxNDwvc3Bhbj48L2Rpdj4ifSwiY2FsbF9GdmhIaGh4ZXRSZmxmajNrOWJ0OW0zMmR8ZmNfMDI3ZjFlYTE1ZGVmMzUwNTAxNjlmMzBiOTk0NWMwODE5MTk5MzYzNGFlYTNlODdjMmIiOnsiY2FsbEh0bWwiOiI8ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoNzQsOTQsMTI5KVwiPjwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYig3NCw5NCwxMjkpO2ZvbnQtd2VpZ2h0OmJvbGRcIj5HcmVwPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDc0LDk0LDEyOSlcIj48L3NwYW4+IDxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDc0LDk0LDEyOSlcIj4vbmV3IENvbmZpZ1NlbGVjdG9yQ29tcG9uZW50fENvbmZpZ1NlbGVjdG9yQ29tcG9uZW50Lzwvc3Bhbj4gPHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPmluPTwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMTcsMTIyLDEzMClcIj5wYWNrYWdlcy9jb2RpbmctYWdlbnQvc3JjPC9zcGFuPiA8c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+Z2xvYj08L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTE3LDEyMiwxMzApXCI+Ki50czwvc3Bhbj4gICA8L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPmN0eD08L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTE3LDEyMiwxMzApXCI+NDwvc3Bhbj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PiIsInJlc3VsdEh0bWxFeHBhbmRlZCI6IjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYig3NCw5NCwxMjkpXCI+Y2xpL2NvbmZpZy1zZWxlY3Rvci50czo8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjQ6ICAgPC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj41OiAgIGltcG9ydCB7IFByb2Nlc3NUZXJtaW5hbCwgVFVJIH0gZnJvbSAmcXVvdDtAbWFyaW96ZWNobmVyL3BpLXR1aSZxdW90Ozs8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjY6ICAgaW1wb3J0IHR5cGUgeyBSZXNvbHZlZFBhdGhzIH0gZnJvbSAmcXVvdDsuLi9jb3JlL3BhY2thZ2UtbWFuYWdlci5qcyZxdW90Ozs8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjc6ICAgaW1wb3J0IHR5cGUgeyBTZXR0aW5nc01hbmFnZXIgfSBmcm9tICZxdW90Oy4uL2NvcmUvc2V0dGluZ3MtbWFuYWdlci5qcyZxdW90Ozs8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjg6IGltcG9ydCB7IENvbmZpZ1NlbGVjdG9yQ29tcG9uZW50IH0gZnJvbSAmcXVvdDsuLi9tb2Rlcy9pbnRlcmFjdGl2ZS9jb21wb25lbnRzL2NvbmZpZy1zZWxlY3Rvci5qcyZxdW90Ozs8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjk6ICAgaW1wb3J0IHsgaW5pdFRoZW1lLCBzdG9wVGhlbWVXYXRjaGVyIH0gZnJvbSAmcXVvdDsuLi9tb2Rlcy9pbnRlcmFjdGl2ZS90aGVtZS90aGVtZS5qcyZxdW90Ozs8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjEwOiAgIDwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+MTE6ICAgZXhwb3J0IGludGVyZmFjZSBDb25maWdTZWxlY3Rvck9wdGlvbnMgezwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+MTI6ICAgcmVzb2x2ZWRQYXRoczogUmVzb2x2ZWRQYXRoczs8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjIzOiAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPSZndDsgezwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+MjQ6ICAgY29uc3QgdWkgPSBuZXcgVFVJKG5ldyBQcm9jZXNzVGVybWluYWwoKSk7PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj4yNTogICBsZXQgcmVzb2x2ZWQgPSBmYWxzZTs8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjI2OiAgIDwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+Mjc6IGNvbnN0IHNlbGVjdG9yID0gbmV3IENvbmZpZ1NlbGVjdG9yQ29tcG9uZW50KDwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+Mjg6ICAgb3B0aW9ucy5yZXNvbHZlZFBhdGhzLDwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+Mjk6ICAgb3B0aW9ucy5zZXR0aW5nc01hbmFnZXIsPC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj4zMDogICBvcHRpb25zLmN3ZCw8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJTilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjMxOiAgIG9wdGlvbnMuYWdlbnREaXIsPC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYig3NCw5NCwxMjkpXCI+bW9kZXMvaW50ZXJhY3RpdmUvY29tcG9uZW50cy9jb25maWctc2VsZWN0b3IudHM6PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj41NDQ6ICAgcmV0dXJuIHJlbGF0aXZlKGJhc2VEaXIsIGl0ZW0ucGF0aCk7PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj41NDU6ICAgfTwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+NTQ2OiAgIH08L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjU0NzogICA8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjU0ODogZXhwb3J0IGNsYXNzIENvbmZpZ1NlbGVjdG9yQ29tcG9uZW50IGV4dGVuZHMgQ29udGFpbmVyIGltcGxlbWVudHMgRm9jdXNhYmxlIHs8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjU0OTogICBwcml2YXRlIHJlc291cmNlTGlzdDogUmVzb3VyY2VMaXN0Ozwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+NTUwOiAgIDwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+NTUxOiAgIHByaXZhdGUgX2ZvY3VzZWQgPSBmYWxzZTs8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJTilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjU1MjogICBnZXQgZm9jdXNlZCgpOiBib29sZWFuIHs8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPiZuYnNwOzwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYig2MSwxMDgsMzcpXCI+bWF0Y2hlczogMzwvc3Bhbj48L2Rpdj4ifSwiY2FsbF8zN0Y1ZzZpeXFaOFJ3WVY1YThSVFhJYzN8ZmNfMDI3ZjFlYTE1ZGVmMzUwNTAxNjlmMzBkMzIwOTkwODE5MWFiMWU3YWE1NjY2MzNhZmYiOnsiY2FsbEh0bWwiOiI8ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoNzQsOTQsMTI5KVwiPjwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYig3NCw5NCwxMjkpO2ZvbnQtd2VpZ2h0OmJvbGRcIj5HcmVwPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDc0LDk0LDEyOSlcIj48L3NwYW4+IDxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDc0LDk0LDEyOSlcIj4vc291cmNlOi88L3NwYW4+IDxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj5pbj08L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTE3LDEyMiwxMzApXCI+cGFja2FnZXMvY29kaW5nLWFnZW50L3NyYy9jb3JlPC9zcGFuPiA8c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+Z2xvYj08L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTE3LDEyMiwxMzApXCI+Ki50czwvc3Bhbj4gPHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPmxpbWl0PTwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMTcsMTIyLDEzMClcIj4xMDA8L3NwYW4+IDxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj5jdHg9PC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDExNywxMjIsMTMwKVwiPjI8L3NwYW4+ICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4iLCJyZXN1bHRIdG1sQ29sbGFwc2VkIjoiPGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDc0LDk0LDEyOSlcIj5hZ2VudC1zZXNzaW9uLnRzOjwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+MTMxOTogICBzdHJlYW1pbmdCZWhhdmlvcjogb3B0aW9ucz8uZGVsaXZlckFzLDwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+MTMyMDogICBpbWFnZXMsPC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj4xMzIxOiBzb3VyY2U6ICZxdW90O2V4dGVuc2lvbiZxdW90Oyw8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjEzMjI6ICAgfSk7PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj4xMzIzOiAgIH08L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjEzNzM6ICAgbmV4dE1vZGVsOiBNb2RlbCZsdDthbnkmZ3Q7LDwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+MTM3NDogICBwcmV2aW91c01vZGVsOiBNb2RlbCZsdDthbnkmZ3Q7IHwgdW5kZWZpbmVkLDwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+MTM3NTogc291cmNlOiAmcXVvdDtzZXQmcXVvdDsgfCAmcXVvdDtjeWNsZSZxdW90OyB8ICZxdW90O3Jlc3RvcmUmcXVvdDssPC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj4xMzc2OiAgICk6IFByb21pc2UmbHQ7dm9pZCZndDsgezwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+MTM3NzogICBpZiAobW9kZWxzQXJlRXF1YWwocHJldmlvdXNNb2RlbCwgbmV4dE1vZGVsKSkgcmV0dXJuOzwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+MjA2ODogICBwcml2YXRlIGJ1aWxkRXh0ZW5zaW9uUmVzb3VyY2VQYXRocyhlbnRyaWVzOiBBcnJheSZsdDt7IHBhdGg6IHN0cmluZzsgZXh0ZW5zaW9uUGF0aDogc3RyaW5nPC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj4gICAgPHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+fSZndDspOiBBcnJheSZsdDt7PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj4yMDY5OiAgIHBhdGg6IHN0cmluZzs8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjIwNzA6IG1ldGFkYXRhOiB7IHNvdXJjZTogc3RyaW5nOyBzY29wZTogJnF1b3Q7dGVtcG9yYXJ5JnF1b3Q7OyBvcmlnaW46ICZxdW90O3RvcC1sZXZlbCZxdW90OzsgYmFzZURpcj86IHN0cmluZyB9Ozwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+MjA3MTogICB9Jmd0OyB7PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSU4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj4yMDcyOiAgIHJldHVybiBlbnRyaWVzLm1hcCgoZW50cnkpID0mZ3Q7IHs8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDc0LDk0LDEyOSlcIj5wcm9tcHQtdGVtcGxhdGVzLnRzOjwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+MjI4OiAgIGlmIChpc1VuZGVyUGF0aChyZXNvbHZlZFBhdGgsIGdsb2JhbFByb21wdHNEaXIpKSB7PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj4yMjk6ICAgcmV0dXJuIGNyZWF0ZVN5bnRoZXRpY1NvdXJjZUluZm8ocmVzb2x2ZWRQYXRoLCB7PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj4yMzA6IHNvdXJjZTogJnF1b3Q7bG9jYWwmcXVvdDssPC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj4yMzE6ICAgc2NvcGU6ICZxdW90O3VzZXImcXVvdDssPC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj4yMzI6ICAgYmFzZURpcjogZ2xvYmFsUHJvbXB0c0Rpciw8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjIzNTogICBpZiAoaXNVbmRlclBhdGgocmVzb2x2ZWRQYXRoLCBwcm9qZWN0UHJvbXB0c0RpcikpIHs8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjIzNjogICByZXR1cm4gY3JlYXRlU3ludGhldGljU291cmNlSW5mbyhyZXNvbHZlZFBhdGgsIHs8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjIzNzogc291cmNlOiAmcXVvdDtsb2NhbCZxdW90Oyw8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjIzODogICBzY29wZTogJnF1b3Q7cHJvamVjdCZxdW90Oyw8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjIzOTogICBiYXNlRGlyOiBwcm9qZWN0UHJvbXB0c0Rpciw8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjI0MTogICB9PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj4yNDI6ICAgcmV0dXJuIGNyZWF0ZVN5bnRoZXRpY1NvdXJjZUluZm8ocmVzb2x2ZWRQYXRoLCB7PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj4yNDM6IHNvdXJjZTogJnF1b3Q7bG9jYWwmcXVvdDssPC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj4yNDQ6ICAgYmFzZURpcjogc3RhdFN5bmMocmVzb2x2ZWRQYXRoKS5pc0RpcmVjdG9yeSgpID8gcmVzb2x2ZWRQYXRoIDogZGlybmFtZShyZXNvbHZlZFBhdGgpLDwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUlOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+MjQ1OiAgIH0pOzwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+Jm5ic3A7PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj40NzAgbW9yZSBtYXRjaGVzLCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTE3LDEyMiwxMzApXCI+Y3RybCtvPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj4gdG8gZXhwYW5kPC9zcGFuPiAtIDxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDYxLDEwOCwzNylcIj5tYXRjaGVzOiAxMDA8L3NwYW4+IC0gPHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTYzLDk2LDApXCI+bGltaXQ6IDEwMDwvc3Bhbj48L2Rpdj4iLCJyZXN1bHRIdG1sRXhwYW5kZWQiOiI8ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoNzQsOTQsMTI5KVwiPmFnZW50LXNlc3Npb24udHM6PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj4xMzE5OiAgIHN0cmVhbWluZ0JlaGF2aW9yOiBvcHRpb25zPy5kZWxpdmVyQXMsPC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj4xMzIwOiAgIGltYWdlcyw8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjEzMjE6IHNvdXJjZTogJnF1b3Q7ZXh0ZW5zaW9uJnF1b3Q7LDwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+MTMyMjogICB9KTs8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjEzMjM6ICAgfTwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+MTM3MzogICBuZXh0TW9kZWw6IE1vZGVsJmx0O2FueSZndDssPC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj4xMzc0OiAgIHByZXZpb3VzTW9kZWw6IE1vZGVsJmx0O2FueSZndDsgfCB1bmRlZmluZWQsPC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj4xMzc1OiBzb3VyY2U6ICZxdW90O3NldCZxdW90OyB8ICZxdW90O2N5Y2xlJnF1b3Q7IHwgJnF1b3Q7cmVzdG9yZSZxdW90Oyw8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjEzNzY6ICAgKTogUHJvbWlzZSZsdDt2b2lkJmd0OyB7PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj4xMzc3OiAgIGlmIChtb2RlbHNBcmVFcXVhbChwcmV2aW91c01vZGVsLCBuZXh0TW9kZWwpKSByZXR1cm47PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj4yMDY4OiAgIHByaXZhdGUgYnVpbGRFeHRlbnNpb25SZXNvdXJjZVBhdGhzKGVudHJpZXM6IEFycmF5Jmx0O3sgcGF0aDogc3RyaW5nOyBleHRlbnNpb25QYXRoOiBzdHJpbmc8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPiAgICA8c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj59Jmd0Oyk6IEFycmF5Jmx0O3s8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjIwNjk6ICAgcGF0aDogc3RyaW5nOzwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+MjA3MDogbWV0YWRhdGE6IHsgc291cmNlOiBzdHJpbmc7IHNjb3BlOiAmcXVvdDt0ZW1wb3JhcnkmcXVvdDs7IG9yaWdpbjogJnF1b3Q7dG9wLWxldmVsJnF1b3Q7OyBiYXNlRGlyPzogc3RyaW5nIH07PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj4yMDcxOiAgIH0mZ3Q7IHs8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjIwNzI6ICAgcmV0dXJuIGVudHJpZXMubWFwKChlbnRyeSkgPSZndDsgezwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+MjEyMzogICBuYW1lOiBjb21tYW5kLmludm9jYXRpb25OYW1lLDwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+MjEyNDogICBkZXNjcmlwdGlvbjogY29tbWFuZC5kZXNjcmlwdGlvbiw8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjIxMjU6IHNvdXJjZTogJnF1b3Q7ZXh0ZW5zaW9uJnF1b3Q7LDwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+MjEyNjogICBzb3VyY2VJbmZvOiBjb21tYW5kLnNvdXJjZUluZm8sPC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj4yMTI3OiAgIH0pKTs8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjIxMzA6ICAgbmFtZTogdGVtcGxhdGUubmFtZSw8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjIxMzE6ICAgZGVzY3JpcHRpb246IHRlbXBsYXRlLmRlc2NyaXB0aW9uLDwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+MjEzMjogc291cmNlOiAmcXVvdDtwcm9tcHQmcXVvdDssPC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj4yMTMzOiAgIHNvdXJjZUluZm86IHRlbXBsYXRlLnNvdXJjZUluZm8sPC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj4yMTM0OiAgIH0pKTs8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjIxMzc6ICAgbmFtZTogYHNraWxsOiR7c2tpbGwubmFtZX1gLDwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+MjEzODogICBkZXNjcmlwdGlvbjogc2tpbGwuZGVzY3JpcHRpb24sPC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj4yMTM5OiBzb3VyY2U6ICZxdW90O3NraWxsJnF1b3Q7LDwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+MjE0MDogICBzb3VyY2VJbmZvOiBza2lsbC5zb3VyY2VJbmZvLDwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+MjE0MTogICB9KSk7PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj4yMjM2OiAgIC4uLnRoaXMuX2N1c3RvbVRvb2xzLm1hcCgoZGVmaW5pdGlvbikgPSZndDsgKHs8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjIyMzc6ICAgZGVmaW5pdGlvbiw8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjIyMzg6IHNvdXJjZUluZm86IGNyZWF0ZVN5bnRoZXRpY1NvdXJjZUluZm8oYCZsdDtzZGs6JHtkZWZpbml0aW9uLm5hbWV9Jmd0O2AsIHsgc291cmNlOiAmcXVvdDtzZGsmcXVvdDsgfSksPC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj4yMjM5OiAgIH0pKSw8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjIyNDA6ICAgXS5maWx0ZXIoKHRvb2wpID0mZ3Q7IGlzQWxsb3dlZFRvb2wodG9vbC5kZWZpbml0aW9uLm5hbWUpKTs8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjIyNDY6ICAgezwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+MjI0NzogICBkZWZpbml0aW9uLDwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+MjI0ODogc291cmNlSW5mbzogY3JlYXRlU3ludGhldGljU291cmNlSW5mbyhgJmx0O2J1aWx0aW46JHtuYW1lfSZndDtgLCB7IHNvdXJjZTogJnF1b3Q7YnVpbHRpbiZxdW90OyB9KSw8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjIyNDk6ICAgfSw8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjIyNTA6ICAgXSksPC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj4yMjgwOiAgIC5tYXAoKGRlZmluaXRpb24pID0mZ3Q7ICh7PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj4yMjgxOiAgIGRlZmluaXRpb24sPC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj4yMjgyOiBzb3VyY2VJbmZvOiBjcmVhdGVTeW50aGV0aWNTb3VyY2VJbmZvKGAmbHQ7YnVpbHRpbjoke2RlZmluaXRpb24ubmFtZX0mZ3Q7YCwgeyBzb3VyY2U6ICZxdW90O2J1aWx0aW4mcXVvdDs8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPiAgICA8c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj59KSw8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjIyODM6ICAgfSkpLDwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUlOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+MjI4NDogICBydW5uZXIsPC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYig3NCw5NCwxMjkpXCI+YXV0aC1zdG9yYWdlLnRzOjwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+MzQyOiAgIGdldEF1dGhTdGF0dXMocHJvdmlkZXI6IHN0cmluZyk6IEF1dGhTdGF0dXMgezwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+MzQzOiAgIGlmICh0aGlzLmRhdGFbcHJvdmlkZXJdKSB7PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj4zNDQ6IHJldHVybiB7IGNvbmZpZ3VyZWQ6IHRydWUsIHNvdXJjZTogJnF1b3Q7c3RvcmVkJnF1b3Q7IH07PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj4zNDU6ICAgfTwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+MzQ2OiAgIDwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+MzQ2OiAgIDwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+MzQ3OiAgIGlmICh0aGlzLnJ1bnRpbWVPdmVycmlkZXMuaGFzKHByb3ZpZGVyKSkgezwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+MzQ4OiByZXR1cm4geyBjb25maWd1cmVkOiBmYWxzZSwgc291cmNlOiAmcXVvdDtydW50aW1lJnF1b3Q7LCBsYWJlbDogJnF1b3Q7LS1hcGkta2V5JnF1b3Q7IH07PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj4zNDk6ICAgfTwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+MzUwOiAgIDwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+MzUxOiAgIGNvbnN0IGVudktleXMgPSBmaW5kRW52S2V5cyhwcm92aWRlcik7PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj4zNTI6ICAgaWYgKGVudktleXM/LlswXSkgezwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+MzUzOiByZXR1cm4geyBjb25maWd1cmVkOiBmYWxzZSwgc291cmNlOiAmcXVvdDtlbnZpcm9ubWVudCZxdW90OywgbGFiZWw6IGVudktleXNbMF0gfTs8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjM1NDogICB9PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj4zNTU6ICAgPC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj4zNTU6ICAgPC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj4zNTY6ICAgaWYgKHRoaXMuZmFsbGJhY2tSZXNvbHZlcj8uKHByb3ZpZGVyKSkgezwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+MzU3OiByZXR1cm4geyBjb25maWd1cmVkOiBmYWxzZSwgc291cmNlOiAmcXVvdDtmYWxsYmFjayZxdW90OywgbGFiZWw6ICZxdW90O2N1c3RvbSBwcm92aWRlciBjb25maWcmcXVvdDsgfTs8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjM1ODogICB9PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSU4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj4zNTk6ICAgPC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYig3NCw5NCwxMjkpXCI+ZXh0ZW5zaW9ucy9ydW5uZXIudHM6PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj45OTI6ICAgPC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj45OTM6ICAgLyoqIEVtaXQgaW5wdXQgZXZlbnQuIFRyYW5zZm9ybXMgY2hhaW4sICZxdW90O2hhbmRsZWQmcXVvdDsgc2hvcnQtY2lyY3VpdHMuICovPC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj45OTQ6IGFzeW5jIGVtaXRJbnB1dCh0ZXh0OiBzdHJpbmcsIGltYWdlczogSW1hZ2VDb250ZW50W10gfCB1bmRlZmluZWQsIHNvdXJjZTogSW5wdXRTb3VyY2UpOjwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+ICAgIDxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPlByb21pc2UmbHQ7SW5wdXRFdmVudFJlc3VsdCZndDsgezwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+OTk1OiAgIGNvbnN0IGN0eCA9IHRoaXMuY3JlYXRlQ29udGV4dCgpOzwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUlOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+OTk2OiAgIGxldCBjdXJyZW50VGV4dCA9IHRleHQ7PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYig3NCw5NCwxMjkpXCI+ZXh0ZW5zaW9ucy90eXBlcy50czo8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjcxNjogICBtb2RlbDogTW9kZWwmbHQ7YW55Jmd0Ozs8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjcxNzogICBwcmV2aW91c01vZGVsOiBNb2RlbCZsdDthbnkmZ3Q7IHwgdW5kZWZpbmVkOzwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+NzE4OiBzb3VyY2U6IE1vZGVsU2VsZWN0U291cmNlOzwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+NzE5OiAgIH08L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjcyMDogICA8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjc0OTogICBpbWFnZXM/OiBJbWFnZUNvbnRlbnRbXTs8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjc1MDogICAvKiogV2hlcmUgdGhlIGlucHV0IGNhbWUgZnJvbSAqLzwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+NzUxOiBzb3VyY2U6IElucHV0U291cmNlOzwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+NzUyOiAgIH08L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJTilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjc1MzogICA8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDc0LDk0LDEyOSlcIj5tb2RlbC1yZWdpc3RyeS50czo8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjcyMDogICA8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjcyMTogICBpZiAocHJvdmlkZXJBcGlLZXkuc3RhcnRzV2l0aCgmcXVvdDshJnF1b3Q7KSkgezwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+NzIyOiByZXR1cm4geyBjb25maWd1cmVkOiB0cnVlLCBzb3VyY2U6ICZxdW90O21vZGVsc19qc29uX2NvbW1hbmQmcXVvdDsgfTs8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjcyMzogICB9PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj43MjQ6ICAgPC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj43MjQ6ICAgPC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj43MjU6ICAgaWYgKHByb2Nlc3MuZW52W3Byb3ZpZGVyQXBpS2V5XSkgezwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+NzI2OiByZXR1cm4geyBjb25maWd1cmVkOiB0cnVlLCBzb3VyY2U6ICZxdW90O2Vudmlyb25tZW50JnF1b3Q7LCBsYWJlbDogcHJvdmlkZXJBcGlLZXkgfTs8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjcyNzogICB9PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj43Mjg6ICAgPC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj43Mjc6ICAgfTwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+NzI4OiAgIDwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+NzI5OiByZXR1cm4geyBjb25maWd1cmVkOiB0cnVlLCBzb3VyY2U6ICZxdW90O21vZGVsc19qc29uX2tleSZxdW90OyB9Ozwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+NzMwOiAgIH08L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJTilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjczMTogICA8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDc0LDk0LDEyOSlcIj5wYWNrYWdlLW1hbmFnZXIudHM6PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj40NTogICA8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjQ2OiAgIGV4cG9ydCBpbnRlcmZhY2UgUGF0aE1ldGFkYXRhIHs8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjQ3OiBzb3VyY2U6IHN0cmluZzs8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjQ4OiAgIHNjb3BlOiBTb3VyY2VTY29wZTs8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjQ5OiAgIG9yaWdpbjogJnF1b3Q7cGFja2FnZSZxdW90OyB8ICZxdW90O3RvcC1sZXZlbCZxdW90Ozs8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjY5OiAgIHR5cGU6ICZxdW90O3N0YXJ0JnF1b3Q7IHwgJnF1b3Q7cHJvZ3Jlc3MmcXVvdDsgfCAmcXVvdDtjb21wbGV0ZSZxdW90OyB8ICZxdW90O2Vycm9yJnF1b3Q7Ozwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+NzA6ICAgYWN0aW9uOiAmcXVvdDtpbnN0YWxsJnF1b3Q7IHwgJnF1b3Q7cmVtb3ZlJnF1b3Q7IHwgJnF1b3Q7dXBkYXRlJnF1b3Q7IHwgJnF1b3Q7Y2xvbmUmcXVvdDsgfCAmcXVvdDtwdWxsJnF1b3Q7Ozwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+NzE6IHNvdXJjZTogc3RyaW5nOzwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+NzI6ICAgbWVzc2FnZT86IHN0cmluZzs8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjczOiAgIH08L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjc2OiAgIDwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+Nzc6ICAgZXhwb3J0IGludGVyZmFjZSBQYWNrYWdlVXBkYXRlIHs8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjc4OiBzb3VyY2U6IHN0cmluZzs8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjc5OiAgIGRpc3BsYXlOYW1lOiBzdHJpbmc7PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj44MDogICB0eXBlOiAmcXVvdDtucG0mcXVvdDsgfCAmcXVvdDtnaXQmcXVvdDs7PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj44MzogICA8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjg0OiAgIGV4cG9ydCBpbnRlcmZhY2UgQ29uZmlndXJlZFBhY2thZ2Ugezwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+ODU6IHNvdXJjZTogc3RyaW5nOzwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+ODY6ICAgc2NvcGU6ICZxdW90O3VzZXImcXVvdDsgfCAmcXVvdDtwcm9qZWN0JnF1b3Q7Ozwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+ODc6ICAgZmlsdGVyZWQ6IGJvb2xlYW47PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj45MDogICA8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjkxOiAgIGV4cG9ydCBpbnRlcmZhY2UgUGFja2FnZU1hbmFnZXIgezwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+OTI6IHJlc29sdmUob25NaXNzaW5nPzogKHNvdXJjZTogc3RyaW5nKSA9Jmd0OyBQcm9taXNlJmx0O01pc3NpbmdTb3VyY2VBY3Rpb24mZ3Q7KTo8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPiAgICA8c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj5Qcm9taXNlJmx0O1Jlc29sdmVkUGF0aHMmZ3Q7Ozwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+OTM6ICAgaW5zdGFsbChzb3VyY2U6IHN0cmluZywgb3B0aW9ucz86IHsgbG9jYWw/OiBib29sZWFuIH0pOiBQcm9taXNlJmx0O3ZvaWQmZ3Q7Ozwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+OTQ6ICAgaW5zdGFsbEFuZFBlcnNpc3Qoc291cmNlOiBzdHJpbmcsIG9wdGlvbnM/OiB7IGxvY2FsPzogYm9vbGVhbiB9KTogUHJvbWlzZSZsdDt2b2lkJmd0Ozs8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjkxOiAgIGV4cG9ydCBpbnRlcmZhY2UgUGFja2FnZU1hbmFnZXIgezwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+OTI6ICAgcmVzb2x2ZShvbk1pc3Npbmc/OiAoc291cmNlOiBzdHJpbmcpID0mZ3Q7IFByb21pc2UmbHQ7TWlzc2luZ1NvdXJjZUFjdGlvbiZndDspOjwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+ICAgIDxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPlByb21pc2UmbHQ7UmVzb2x2ZWRQYXRocyZndDs7PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj45MzogaW5zdGFsbChzb3VyY2U6IHN0cmluZywgb3B0aW9ucz86IHsgbG9jYWw/OiBib29sZWFuIH0pOiBQcm9taXNlJmx0O3ZvaWQmZ3Q7Ozwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+OTQ6ICAgaW5zdGFsbEFuZFBlcnNpc3Qoc291cmNlOiBzdHJpbmcsIG9wdGlvbnM/OiB7IGxvY2FsPzogYm9vbGVhbiB9KTogUHJvbWlzZSZsdDt2b2lkJmd0Ozs8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjk1OiAgIHJlbW92ZShzb3VyY2U6IHN0cmluZywgb3B0aW9ucz86IHsgbG9jYWw/OiBib29sZWFuIH0pOiBQcm9taXNlJmx0O3ZvaWQmZ3Q7Ozwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+OTI6ICAgcmVzb2x2ZShvbk1pc3Npbmc/OiAoc291cmNlOiBzdHJpbmcpID0mZ3Q7IFByb21pc2UmbHQ7TWlzc2luZ1NvdXJjZUFjdGlvbiZndDspOjwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+ICAgIDxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPlByb21pc2UmbHQ7UmVzb2x2ZWRQYXRocyZndDs7PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj45MzogICBpbnN0YWxsKHNvdXJjZTogc3RyaW5nLCBvcHRpb25zPzogeyBsb2NhbD86IGJvb2xlYW4gfSk6IFByb21pc2UmbHQ7dm9pZCZndDs7PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj45NDogaW5zdGFsbEFuZFBlcnNpc3Qoc291cmNlOiBzdHJpbmcsIG9wdGlvbnM/OiB7IGxvY2FsPzogYm9vbGVhbiB9KTogUHJvbWlzZSZsdDt2b2lkJmd0Ozs8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjk1OiAgIHJlbW92ZShzb3VyY2U6IHN0cmluZywgb3B0aW9ucz86IHsgbG9jYWw/OiBib29sZWFuIH0pOiBQcm9taXNlJmx0O3ZvaWQmZ3Q7Ozwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+OTY6ICAgcmVtb3ZlQW5kUGVyc2lzdChzb3VyY2U6IHN0cmluZywgb3B0aW9ucz86IHsgbG9jYWw/OiBib29sZWFuIH0pOiBQcm9taXNlJmx0O2Jvb2xlYW4mZ3Q7Ozwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+OTM6ICAgaW5zdGFsbChzb3VyY2U6IHN0cmluZywgb3B0aW9ucz86IHsgbG9jYWw/OiBib29sZWFuIH0pOiBQcm9taXNlJmx0O3ZvaWQmZ3Q7Ozwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+OTQ6ICAgaW5zdGFsbEFuZFBlcnNpc3Qoc291cmNlOiBzdHJpbmcsIG9wdGlvbnM/OiB7IGxvY2FsPzogYm9vbGVhbiB9KTogUHJvbWlzZSZsdDt2b2lkJmd0Ozs8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjk1OiByZW1vdmUoc291cmNlOiBzdHJpbmcsIG9wdGlvbnM/OiB7IGxvY2FsPzogYm9vbGVhbiB9KTogUHJvbWlzZSZsdDt2b2lkJmd0Ozs8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjk2OiAgIHJlbW92ZUFuZFBlcnNpc3Qoc291cmNlOiBzdHJpbmcsIG9wdGlvbnM/OiB7IGxvY2FsPzogYm9vbGVhbiB9KTogUHJvbWlzZSZsdDtib29sZWFuJmd0Ozs8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjk3OiAgIHVwZGF0ZShzb3VyY2U/OiBzdHJpbmcpOiBQcm9taXNlJmx0O3ZvaWQmZ3Q7Ozwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+OTQ6ICAgaW5zdGFsbEFuZFBlcnNpc3Qoc291cmNlOiBzdHJpbmcsIG9wdGlvbnM/OiB7IGxvY2FsPzogYm9vbGVhbiB9KTogUHJvbWlzZSZsdDt2b2lkJmd0Ozs8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjk1OiAgIHJlbW92ZShzb3VyY2U6IHN0cmluZywgb3B0aW9ucz86IHsgbG9jYWw/OiBib29sZWFuIH0pOiBQcm9taXNlJmx0O3ZvaWQmZ3Q7Ozwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+OTY6IHJlbW92ZUFuZFBlcnNpc3Qoc291cmNlOiBzdHJpbmcsIG9wdGlvbnM/OiB7IGxvY2FsPzogYm9vbGVhbiB9KTogUHJvbWlzZSZsdDtib29sZWFuJmd0Ozs8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjk3OiAgIHVwZGF0ZShzb3VyY2U/OiBzdHJpbmcpOiBQcm9taXNlJmx0O3ZvaWQmZ3Q7Ozwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+OTg6ICAgbGlzdENvbmZpZ3VyZWRQYWNrYWdlcygpOiBDb25maWd1cmVkUGFja2FnZVtdOzwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+MTAxOiAgIG9wdGlvbnM/OiB7IGxvY2FsPzogYm9vbGVhbjsgdGVtcG9yYXJ5PzogYm9vbGVhbiB9LDwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+MTAyOiAgICk6IFByb21pc2UmbHQ7UmVzb2x2ZWRQYXRocyZndDs7PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj4xMDM6IGFkZFNvdXJjZVRvU2V0dGluZ3Moc291cmNlOiBzdHJpbmcsIG9wdGlvbnM/OiB7IGxvY2FsPzogYm9vbGVhbiB9KTogYm9vbGVhbjs8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjEwNDogICByZW1vdmVTb3VyY2VGcm9tU2V0dGluZ3Moc291cmNlOiBzdHJpbmcsIG9wdGlvbnM/OiB7IGxvY2FsPzogYm9vbGVhbiB9KTogYm9vbGVhbjs8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjEwNTogICBzZXRQcm9ncmVzc0NhbGxiYWNrKGNhbGxiYWNrOiBQcm9ncmVzc0NhbGxiYWNrIHwgdW5kZWZpbmVkKTogdm9pZDs8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjEwMjogICApOiBQcm9taXNlJmx0O1Jlc29sdmVkUGF0aHMmZ3Q7Ozwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+MTAzOiAgIGFkZFNvdXJjZVRvU2V0dGluZ3Moc291cmNlOiBzdHJpbmcsIG9wdGlvbnM/OiB7IGxvY2FsPzogYm9vbGVhbiB9KTogYm9vbGVhbjs8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjEwNDogcmVtb3ZlU291cmNlRnJvbVNldHRpbmdzKHNvdXJjZTogc3RyaW5nLCBvcHRpb25zPzogeyBsb2NhbD86IGJvb2xlYW4gfSk6IGJvb2xlYW47PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj4xMDU6ICAgc2V0UHJvZ3Jlc3NDYWxsYmFjayhjYWxsYmFjazogUHJvZ3Jlc3NDYWxsYmFjayB8IHVuZGVmaW5lZCk6IHZvaWQ7PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj4xMDY6ICAgZ2V0SW5zdGFsbGVkUGF0aChzb3VyY2U6IHN0cmluZywgc2NvcGU6ICZxdW90O3VzZXImcXVvdDsgfCAmcXVvdDtwcm9qZWN0JnF1b3Q7KTogc3RyaW5nIHwgdW5kZWZpbmVkOzwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+MTA0OiAgIHJlbW92ZVNvdXJjZUZyb21TZXR0aW5ncyhzb3VyY2U6IHN0cmluZywgb3B0aW9ucz86IHsgbG9jYWw/OiBib29sZWFuIH0pOiBib29sZWFuOzwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+MTA1OiAgIHNldFByb2dyZXNzQ2FsbGJhY2soY2FsbGJhY2s6IFByb2dyZXNzQ2FsbGJhY2sgfCB1bmRlZmluZWQpOiB2b2lkOzwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+MTA2OiBnZXRJbnN0YWxsZWRQYXRoKHNvdXJjZTogc3RyaW5nLCBzY29wZTogJnF1b3Q7dXNlciZxdW90OyB8ICZxdW90O3Byb2plY3QmcXVvdDspOiBzdHJpbmcgfCB1bmRlZmluZWQ7PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj4xMDc6ICAgfTwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+MTA4OiAgIDwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+MTMyOiAgIDwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+MTMzOiAgIGludGVyZmFjZSBDb25maWd1cmVkVXBkYXRlU291cmNlIHs8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjEzNDogc291cmNlOiBzdHJpbmc7PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj4xMzU6ICAgc2NvcGU6IEluc3RhbGxlZFNvdXJjZVNjb3BlOzwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+MTM2OiAgIH08L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjE2NDogICAqPC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj4xNjU6ICAgKiBQcmVjZWRlbmNlIChoaWdoZXN0IHRvIGxvd2VzdCk6PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj4xNjY6ICogICAwICBwcm9qZWN0ICsgc2V0dGluZ3MgZW50cnkgKHNvdXJjZTogJnF1b3Q7bG9jYWwmcXVvdDssIHNjb3BlOiAmcXVvdDtwcm9qZWN0JnF1b3Q7KTwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+MTY3OiAgICogICAxICBwcm9qZWN0ICsgYXV0by1kaXNjb3ZlcmVkIChzb3VyY2U6ICZxdW90O2F1dG8mcXVvdDssIHNjb3BlOiAmcXVvdDtwcm9qZWN0JnF1b3Q7KTwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+MTY4OiAgICogICAyICB1c2VyICsgc2V0dGluZ3MgZW50cnkgKHNvdXJjZTogJnF1b3Q7bG9jYWwmcXVvdDssIHNjb3BlOiAmcXVvdDt1c2VyJnF1b3Q7KTwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+MTY1OiAgICogUHJlY2VkZW5jZSAoaGlnaGVzdCB0byBsb3dlc3QpOjwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+MTY2OiAgICogICAwICBwcm9qZWN0ICsgc2V0dGluZ3MgZW50cnkgKHNvdXJjZTogJnF1b3Q7bG9jYWwmcXVvdDssIHNjb3BlOiAmcXVvdDtwcm9qZWN0JnF1b3Q7KTwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+MTY3OiAqICAgMSAgcHJvamVjdCArIGF1dG8tZGlzY292ZXJlZCAoc291cmNlOiAmcXVvdDthdXRvJnF1b3Q7LCBzY29wZTogJnF1b3Q7cHJvamVjdCZxdW90Oyk8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjE2ODogICAqICAgMiAgdXNlciArIHNldHRpbmdzIGVudHJ5IChzb3VyY2U6ICZxdW90O2xvY2FsJnF1b3Q7LCBzY29wZTogJnF1b3Q7dXNlciZxdW90Oyk8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjE2OTogICAqICAgMyAgdXNlciArIGF1dG8tZGlzY292ZXJlZCAoc291cmNlOiAmcXVvdDthdXRvJnF1b3Q7LCBzY29wZTogJnF1b3Q7dXNlciZxdW90Oyk8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjE2NjogICAqICAgMCAgcHJvamVjdCArIHNldHRpbmdzIGVudHJ5IChzb3VyY2U6ICZxdW90O2xvY2FsJnF1b3Q7LCBzY29wZTogJnF1b3Q7cHJvamVjdCZxdW90Oyk8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjE2NzogICAqICAgMSAgcHJvamVjdCArIGF1dG8tZGlzY292ZXJlZCAoc291cmNlOiAmcXVvdDthdXRvJnF1b3Q7LCBzY29wZTogJnF1b3Q7cHJvamVjdCZxdW90Oyk8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjE2ODogKiAgIDIgIHVzZXIgKyBzZXR0aW5ncyBlbnRyeSAoc291cmNlOiAmcXVvdDtsb2NhbCZxdW90Oywgc2NvcGU6ICZxdW90O3VzZXImcXVvdDspPC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj4xNjk6ICAgKiAgIDMgIHVzZXIgKyBhdXRvLWRpc2NvdmVyZWQgKHNvdXJjZTogJnF1b3Q7YXV0byZxdW90Oywgc2NvcGU6ICZxdW90O3VzZXImcXVvdDspPC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj4xNzA6ICAgKiAgIDQgIHBhY2thZ2UgcmVzb3VyY2UgKG9yaWdpbjogJnF1b3Q7cGFja2FnZSZxdW90Oyk8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjE2NzogICAqICAgMSAgcHJvamVjdCArIGF1dG8tZGlzY292ZXJlZCAoc291cmNlOiAmcXVvdDthdXRvJnF1b3Q7LCBzY29wZTogJnF1b3Q7cHJvamVjdCZxdW90Oyk8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjE2ODogICAqICAgMiAgdXNlciArIHNldHRpbmdzIGVudHJ5IChzb3VyY2U6ICZxdW90O2xvY2FsJnF1b3Q7LCBzY29wZTogJnF1b3Q7dXNlciZxdW90Oyk8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjE2OTogKiAgIDMgIHVzZXIgKyBhdXRvLWRpc2NvdmVyZWQgKHNvdXJjZTogJnF1b3Q7YXV0byZxdW90Oywgc2NvcGU6ICZxdW90O3VzZXImcXVvdDspPC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj4xNzA6ICAgKiAgIDQgIHBhY2thZ2UgcmVzb3VyY2UgKG9yaWdpbjogJnF1b3Q7cGFja2FnZSZxdW90Oyk8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjE3MTogICAqLzwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+NzcyOiAgIH08L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjc3MzogICA8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjc3NDogYWRkU291cmNlVG9TZXR0aW5ncyhzb3VyY2U6IHN0cmluZywgb3B0aW9ucz86IHsgbG9jYWw/OiBib29sZWFuIH0pOiBib29sZWFuIHs8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjc3NTogICBjb25zdCBzY29wZTogU291cmNlU2NvcGUgPSBvcHRpb25zPy5sb2NhbCA/ICZxdW90O3Byb2plY3QmcXVvdDsgOiAmcXVvdDt1c2VyJnF1b3Q7Ozwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+Nzc2OiAgIGNvbnN0IGN1cnJlbnRTZXR0aW5ncyA9PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj43OTE6ICAgfTwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+NzkyOiAgIDwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+NzkzOiByZW1vdmVTb3VyY2VGcm9tU2V0dGluZ3Moc291cmNlOiBzdHJpbmcsIG9wdGlvbnM/OiB7IGxvY2FsPzogYm9vbGVhbiB9KTogYm9vbGVhbiB7PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj43OTQ6ICAgY29uc3Qgc2NvcGU6IFNvdXJjZVNjb3BlID0gb3B0aW9ucz8ubG9jYWwgPyAmcXVvdDtwcm9qZWN0JnF1b3Q7IDogJnF1b3Q7dXNlciZxdW90Ozs8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjc5NTogICBjb25zdCBjdXJyZW50U2V0dGluZ3MgPTwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+ODA5OiAgIH08L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjgxMDogICA8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjgxMTogZ2V0SW5zdGFsbGVkUGF0aChzb3VyY2U6IHN0cmluZywgc2NvcGU6ICZxdW90O3VzZXImcXVvdDsgfCAmcXVvdDtwcm9qZWN0JnF1b3Q7KTogc3RyaW5nIHwgdW5kZWZpbmVkIHs8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjgxMjogICBjb25zdCBwYXJzZWQgPSB0aGlzLnBhcnNlU291cmNlKHNvdXJjZSk7PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj44MTM6ICAgaWYgKHBhcnNlZC50eXBlID09PSAmcXVvdDtucG0mcXVvdDspIHs8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjgzMzogICBwcml2YXRlIGFzeW5jIHdpdGhQcm9ncmVzcyg8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjgzNDogICBhY3Rpb246IFByb2dyZXNzRXZlbnRbJnF1b3Q7YWN0aW9uJnF1b3Q7XSw8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjgzNTogc291cmNlOiBzdHJpbmcsPC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj44MzY6ICAgbWVzc2FnZTogc3RyaW5nLDwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+ODM3OiAgIG9wZXJhdGlvbjogKCkgPSZndDsgUHJvbWlzZSZsdDt2b2lkJmd0Oyw8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjg0ODogICB9PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj44NDk6ICAgPC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj44NTA6IGFzeW5jIHJlc29sdmUob25NaXNzaW5nPzogKHNvdXJjZTogc3RyaW5nKSA9Jmd0OyBQcm9taXNlJmx0O01pc3NpbmdTb3VyY2VBY3Rpb24mZ3Q7KTo8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPiAgICA8c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj5Qcm9taXNlJmx0O1Jlc29sdmVkUGF0aHMmZ3Q7IHs8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjg1MTogICBjb25zdCBhY2N1bXVsYXRvciA9IHRoaXMuY3JlYXRlQWNjdW11bGF0b3IoKTs8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjg1MjogICBjb25zdCBnbG9iYWxTZXR0aW5ncyA9IHRoaXMuc2V0dGluZ3NNYW5hZ2VyLmdldEdsb2JhbFNldHRpbmdzKCk7PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj44Nzg6ICAgdGFyZ2V0LDwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+ODc5OiAgIHs8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjg4MDogc291cmNlOiAmcXVvdDtsb2NhbCZxdW90Oyw8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjg4MTogICBzY29wZTogJnF1b3Q7cHJvamVjdCZxdW90Oyw8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjg4MjogICBvcmlnaW46ICZxdW90O3RvcC1sZXZlbCZxdW90Oyw8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjg4OTogICB0YXJnZXQsPC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj44OTA6ICAgezwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+ODkxOiBzb3VyY2U6ICZxdW90O2xvY2FsJnF1b3Q7LDwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+ODkyOiAgIHNjb3BlOiAmcXVvdDt1c2VyJnF1b3Q7LDwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+ODkzOiAgIG9yaWdpbjogJnF1b3Q7dG9wLWxldmVsJnF1b3Q7LDwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+OTQxOiAgIH08L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjk0MjogICA8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjk0MzogYXN5bmMgaW5zdGFsbChzb3VyY2U6IHN0cmluZywgb3B0aW9ucz86IHsgbG9jYWw/OiBib29sZWFuIH0pOiBQcm9taXNlJmx0O3ZvaWQmZ3Q7IHs8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjk0NDogICBjb25zdCBwYXJzZWQgPSB0aGlzLnBhcnNlU291cmNlKHNvdXJjZSk7PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj45NDU6ICAgY29uc3Qgc2NvcGU6IFNvdXJjZVNjb3BlID0gb3B0aW9ucz8ubG9jYWwgPyAmcXVvdDtwcm9qZWN0JnF1b3Q7IDogJnF1b3Q7dXNlciZxdW90Ozs8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjk2MDogICByZXR1cm47PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj45NjE6ICAgfTwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+OTYyOiB0aHJvdyBuZXcgRXJyb3IoYFVuc3VwcG9ydGVkIGluc3RhbGwgc291cmNlOiAke3NvdXJjZX1gKTs8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjk2MzogICB9KTs8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjk2NDogICB9PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj45NjQ6ICAgfTwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+OTY1OiAgIDwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+OTY2OiBhc3luYyBpbnN0YWxsQW5kUGVyc2lzdChzb3VyY2U6IHN0cmluZywgb3B0aW9ucz86IHsgbG9jYWw/OiBib29sZWFuIH0pOiBQcm9taXNlJmx0O3ZvaWQmZ3Q7IHs8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjk2NzogICBhd2FpdCB0aGlzLmluc3RhbGwoc291cmNlLCBvcHRpb25zKTs8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjk2ODogICB0aGlzLmFkZFNvdXJjZVRvU2V0dGluZ3Moc291cmNlLCBvcHRpb25zKTs8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjk2OTogICB9PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj45NzA6ICAgPC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj45NzE6IGFzeW5jIHJlbW92ZShzb3VyY2U6IHN0cmluZywgb3B0aW9ucz86IHsgbG9jYWw/OiBib29sZWFuIH0pOiBQcm9taXNlJmx0O3ZvaWQmZ3Q7IHs8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjk3MjogICBjb25zdCBwYXJzZWQgPSB0aGlzLnBhcnNlU291cmNlKHNvdXJjZSk7PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj45NzM6ICAgY29uc3Qgc2NvcGU6IFNvdXJjZVNjb3BlID0gb3B0aW9ucz8ubG9jYWwgPyAmcXVvdDtwcm9qZWN0JnF1b3Q7IDogJnF1b3Q7dXNlciZxdW90Ozs8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjk4NDogICByZXR1cm47PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj45ODU6ICAgfTwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+OTg2OiB0aHJvdyBuZXcgRXJyb3IoYFVuc3VwcG9ydGVkIHJlbW92ZSBzb3VyY2U6ICR7c291cmNlfWApOzwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+OTg3OiAgIH0pOzwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+OTg4OiAgIH08L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjk4ODogICB9PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj45ODk6ICAgPC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj45OTA6IGFzeW5jIHJlbW92ZUFuZFBlcnNpc3Qoc291cmNlOiBzdHJpbmcsIG9wdGlvbnM/OiB7IGxvY2FsPzogYm9vbGVhbiB9KTogUHJvbWlzZSZsdDtib29sZWFuJmd0OyB7PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj45OTE6ICAgYXdhaXQgdGhpcy5yZW1vdmUoc291cmNlLCBvcHRpb25zKTs8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjk5MjogICByZXR1cm4gdGhpcy5yZW1vdmVTb3VyY2VGcm9tU2V0dGluZ3Moc291cmNlLCBvcHRpb25zKTs8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjEwMDQ6ICAgaWYgKGlkZW50aXR5ICZhbXA7JmFtcDsgdGhpcy5nZXRQYWNrYWdlSWRlbnRpdHkoc291cmNlU3RyLCAmcXVvdDt1c2VyJnF1b3Q7KSAhPT0gaWRlbnRpdHkpIGNvbnRpbnVlOzwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+MTAwNTogICBtYXRjaGVkID0gdHJ1ZTs8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjEwMDY6IHVwZGF0ZVNvdXJjZXMucHVzaCh7IHNvdXJjZTogc291cmNlU3RyLCBzY29wZTogJnF1b3Q7dXNlciZxdW90OyB9KTs8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjEwMDc6ICAgfTwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+MTAwODogICBmb3IgKGNvbnN0IHBrZyBvZiBwcm9qZWN0U2V0dGluZ3MucGFja2FnZXMgPz8gW10pIHs8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjEwMTA6ICAgaWYgKGlkZW50aXR5ICZhbXA7JmFtcDsgdGhpcy5nZXRQYWNrYWdlSWRlbnRpdHkoc291cmNlU3RyLCAmcXVvdDtwcm9qZWN0JnF1b3Q7KSAhPT0gaWRlbnRpdHkpIGNvbnRpbnVlOzwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+MTAxMTogICBtYXRjaGVkID0gdHJ1ZTs8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjEwMTI6IHVwZGF0ZVNvdXJjZXMucHVzaCh7IHNvdXJjZTogc291cmNlU3RyLCBzY29wZTogJnF1b3Q7cHJvamVjdCZxdW90OyB9KTs8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjEwMTM6ICAgfTwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+MTAxNDogICA8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjEwODM6ICAgfTwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+MTA4NDogICA8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjEwODU6IHByaXZhdGUgYXN5bmMgc2hvdWxkVXBkYXRlTnBtU291cmNlKHNvdXJjZTogTnBtU291cmNlLCBzY29wZTogSW5zdGFsbGVkU291cmNlU2NvcGUpOjwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+ICAgIDxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPlByb21pc2UmbHQ7Ym9vbGVhbiZndDsgezwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+MTA4NjogICBjb25zdCBpbnN0YWxsZWRQYXRoID0gdGhpcy5nZXROcG1JbnN0YWxsUGF0aChzb3VyY2UsIHNjb3BlKTs8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjEwODc6ICAgY29uc3QgaW5zdGFsbGVkVmVyc2lvbiA9IGV4aXN0c1N5bmMoaW5zdGFsbGVkUGF0aCkgPzwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+ICAgIDxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPnRoaXMuZ2V0SW5zdGFsbGVkTnBtVmVyc2lvbihpbnN0YWxsZWRQYXRoKSA6IHVuZGVmaW5lZDs8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjExOTE6ICAgc291cmNlczogQXJyYXkmbHQ7eyBwa2c6IFBhY2thZ2VTb3VyY2U7IHNjb3BlOiBTb3VyY2VTY29wZSB9Jmd0Oyw8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjExOTI6ICAgYWNjdW11bGF0b3I6IFJlc291cmNlQWNjdW11bGF0b3IsPC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj4xMTkzOiBvbk1pc3Npbmc/OiAoc291cmNlOiBzdHJpbmcpID0mZ3Q7IFByb21pc2UmbHQ7TWlzc2luZ1NvdXJjZUFjdGlvbiZndDssPC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj4xMTk0OiAgICk6IFByb21pc2UmbHQ7dm9pZCZndDsgezwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+MTE5NTogICBmb3IgKGNvbnN0IHsgcGtnLCBzY29wZSB9IG9mIHNvdXJjZXMpIHs8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjExOTc6ICAgY29uc3QgZmlsdGVyID0gdHlwZW9mIHBrZyA9PT0gJnF1b3Q7b2JqZWN0JnF1b3Q7ID8gcGtnIDogdW5kZWZpbmVkOzwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+MTE5ODogICBjb25zdCBwYXJzZWQgPSB0aGlzLnBhcnNlU291cmNlKHNvdXJjZVN0cik7PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj4xMTk5OiBjb25zdCBtZXRhZGF0YTogUGF0aE1ldGFkYXRhID0geyBzb3VyY2U6IHNvdXJjZVN0ciwgc2NvcGUsIG9yaWdpbjogJnF1b3Q7cGFja2FnZSZxdW90OyB9Ozwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+MTIwMDogICA8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjEyMDE6ICAgaWYgKHBhcnNlZC50eXBlID09PSAmcXVvdDtsb2NhbCZxdW90Oykgezwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+MTIxNTogICBjb25zdCBhY3Rpb24gPSBhd2FpdCBvbk1pc3Npbmcoc291cmNlU3RyKTs8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjEyMTY6ICAgaWYgKGFjdGlvbiA9PT0gJnF1b3Q7c2tpcCZxdW90OykgcmV0dXJuIGZhbHNlOzwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+MTIxNzogaWYgKGFjdGlvbiA9PT0gJnF1b3Q7ZXJyb3ImcXVvdDspIHRocm93IG5ldyBFcnJvcihgTWlzc2luZyBzb3VyY2U6ICR7c291cmNlU3RyfWApOzwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+MTIxODogICBhd2FpdCB0aGlzLmluc3RhbGxQYXJzZWRTb3VyY2UocGFyc2VkLCBzY29wZSk7PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj4xMjE5OiAgIHJldHVybiB0cnVlOzwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+MTI0OTogICA8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjEyNTA6ICAgcHJpdmF0ZSByZXNvbHZlTG9jYWxFeHRlbnNpb25Tb3VyY2UoPC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj4xMjUxOiBzb3VyY2U6IExvY2FsU291cmNlLDwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+MTI1MjogICBhY2N1bXVsYXRvcjogUmVzb3VyY2VBY2N1bXVsYXRvciw8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjEyNTM6ICAgZmlsdGVyOiBQYWNrYWdlRmlsdGVyIHwgdW5kZWZpbmVkLDwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+MTI5NDogICB9PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj4xMjk1OiAgIDwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+MTI5NjogcHJpdmF0ZSBnZXRTb3VyY2VNYXRjaEtleUZvcklucHV0KHNvdXJjZTogc3RyaW5nKTogc3RyaW5nIHs8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjEyOTc6ICAgY29uc3QgcGFyc2VkID0gdGhpcy5wYXJzZVNvdXJjZShzb3VyY2UpOzwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+MTI5ODogICBpZiAocGFyc2VkLnR5cGUgPT09ICZxdW90O25wbSZxdW90Oykgezwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+MTMwNTogICB9PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj4xMzA2OiAgIDwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+MTMwNzogcHJpdmF0ZSBnZXRTb3VyY2VNYXRjaEtleUZvclNldHRpbmdzKHNvdXJjZTogc3RyaW5nLCBzY29wZTogU291cmNlU2NvcGUpOiBzdHJpbmcgezwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+MTMwODogICBjb25zdCBwYXJzZWQgPSB0aGlzLnBhcnNlU291cmNlKHNvdXJjZSk7PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj4xMzA5OiAgIGlmIChwYXJzZWQudHlwZSA9PT0gJnF1b3Q7bnBtJnF1b3Q7KSB7PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj4xMzE3OiAgIH08L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjEzMTg6ICAgPC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj4xMzE5OiBwcml2YXRlIGJ1aWxkTm9NYXRjaGluZ1BhY2thZ2VNZXNzYWdlKHNvdXJjZTogc3RyaW5nLCBjb25maWd1cmVkUGFja2FnZXM6PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj4gICAgPHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+UGFja2FnZVNvdXJjZVtdKTogc3RyaW5nIHs8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjEzMjA6ICAgY29uc3Qgc3VnZ2VzdGlvbiA9IHRoaXMuZmluZFN1Z2dlc3RlZENvbmZpZ3VyZWRTb3VyY2Uoc291cmNlLCBjb25maWd1cmVkUGFja2FnZXMpOzwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+MTMyMTogICBpZiAoIXN1Z2dlc3Rpb24pIHs8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjEzMjU6ICAgfTwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+MTMyNjogICA8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjEzMjc6IHByaXZhdGUgZmluZFN1Z2dlc3RlZENvbmZpZ3VyZWRTb3VyY2Uoc291cmNlOiBzdHJpbmcsIGNvbmZpZ3VyZWRQYWNrYWdlczo8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPiAgICA8c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj5QYWNrYWdlU291cmNlW10pOiBzdHJpbmcgfCB1bmRlZmluZWQgezwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+MTMyODogICBjb25zdCB0cmltbWVkU291cmNlID0gc291cmNlLnRyaW0oKTs8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjEzMjk6ICAgY29uc3Qgc3VnZ2VzdGlvbnMgPSBuZXcgU2V0Jmx0O3N0cmluZyZndDsoKTs8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjEzNTA6ICAgfTwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+MTM1MTogICA8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjEzNTI6IHByaXZhdGUgcGFja2FnZVNvdXJjZXNNYXRjaChleGlzdGluZzogUGFja2FnZVNvdXJjZSwgaW5wdXRTb3VyY2U6IHN0cmluZywgc2NvcGU6PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj4gICAgPHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+U291cmNlU2NvcGUpOiBib29sZWFuIHs8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjEzNTM6ICAgY29uc3QgbGVmdCA9IHRoaXMuZ2V0U291cmNlTWF0Y2hLZXlGb3JTZXR0aW5ncyh0aGlzLmdldFBhY2thZ2VTb3VyY2VTdHJpbmcoZXhpc3RpbmcpLDwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+ICAgIDxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPnNjb3BlKTs8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjEzNTQ6ICAgY29uc3QgcmlnaHQgPSB0aGlzLmdldFNvdXJjZU1hdGNoS2V5Rm9ySW5wdXQoaW5wdXRTb3VyY2UpOzwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+MTM1NjogICB9PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj4xMzU3OiAgIDwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+MTM1ODogcHJpdmF0ZSBub3JtYWxpemVQYWNrYWdlU291cmNlRm9yU2V0dGluZ3Moc291cmNlOiBzdHJpbmcsIHNjb3BlOiBTb3VyY2VTY29wZSk6IHN0cmluZyB7PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj4xMzU5OiAgIGNvbnN0IHBhcnNlZCA9IHRoaXMucGFyc2VTb3VyY2Uoc291cmNlKTs8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjEzNjA6ICAgaWYgKHBhcnNlZC50eXBlICE9PSAmcXVvdDtsb2NhbCZxdW90Oykgezwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+MTM2NzogICB9PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj4xMzY4OiAgIDwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+MTM2OTogcHJpdmF0ZSBwYXJzZVNvdXJjZShzb3VyY2U6IHN0cmluZyk6IFBhcnNlZFNvdXJjZSB7PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj4xMzcwOiAgIGlmIChzb3VyY2Uuc3RhcnRzV2l0aCgmcXVvdDtucG06JnF1b3Q7KSkgezwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+MTM3MTogICBjb25zdCBzcGVjID0gc291cmNlLnNsaWNlKCZxdW90O25wbTomcXVvdDsubGVuZ3RoKS50cmltKCk7PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj4xMzkyOiAgIH08L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjEzOTM6ICAgPC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj4xMzk0OiBwcml2YXRlIGFzeW5jIGluc3RhbGxlZE5wbU1hdGNoZXNQaW5uZWRWZXJzaW9uKHNvdXJjZTogTnBtU291cmNlLCBpbnN0YWxsZWRQYXRoOiBzdHJpbmcpOjwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+ICAgIDxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPlByb21pc2UmbHQ7Ym9vbGVhbiZndDsgezwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+MTM5NTogICBjb25zdCBpbnN0YWxsZWRWZXJzaW9uID0gdGhpcy5nZXRJbnN0YWxsZWROcG1WZXJzaW9uKGluc3RhbGxlZFBhdGgpOzwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+MTM5NjogICBpZiAoIWluc3RhbGxlZFZlcnNpb24pIHs8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjE0MDY6ICAgfTwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+MTQwNzogICA8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjE0MDg6IHByaXZhdGUgYXN5bmMgbnBtSGFzQXZhaWxhYmxlVXBkYXRlKHNvdXJjZTogTnBtU291cmNlLCBpbnN0YWxsZWRQYXRoOiBzdHJpbmcpOjwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+ICAgIDxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPlByb21pc2UmbHQ7Ym9vbGVhbiZndDsgezwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+MTQwOTogICBpZiAoaXNPZmZsaW5lTW9kZUVuYWJsZWQoKSkgezwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+MTQxMDogICByZXR1cm4gZmFsc2U7PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj4xNjAzOiAgICogZm9yIHRoZSBzYW1lIHJlcG9zaXRvcnkgYXJlIHRyZWF0ZWQgYXMgaWRlbnRpY2FsLjwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+MTYwNDogICAqLzwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+MTYwNTogcHJpdmF0ZSBnZXRQYWNrYWdlSWRlbnRpdHkoc291cmNlOiBzdHJpbmcsIHNjb3BlPzogU291cmNlU2NvcGUpOiBzdHJpbmcgezwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+MTYwNjogICBjb25zdCBwYXJzZWQgPSB0aGlzLnBhcnNlU291cmNlKHNvdXJjZSk7PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj4xNjA3OiAgIGlmIChwYXJzZWQudHlwZSA9PT0gJnF1b3Q7bnBtJnF1b3Q7KSB7PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj4xNjg2OiAgIH08L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjE2ODc6ICAgPC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj4xNjg4OiBwcml2YXRlIGFzeW5jIGluc3RhbGxOcG0oc291cmNlOiBOcG1Tb3VyY2UsIHNjb3BlOiBTb3VyY2VTY29wZSwgdGVtcG9yYXJ5OiBib29sZWFuKTo8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPiAgICA8c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj5Qcm9taXNlJmx0O3ZvaWQmZ3Q7IHs8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjE2ODk6ICAgaWYgKHNjb3BlID09PSAmcXVvdDt1c2VyJnF1b3Q7ICZhbXA7JmFtcDsgIXRlbXBvcmFyeSkgezwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+MTY5MDogICBhd2FpdCB0aGlzLnJ1bk5wbUNvbW1hbmQoWyZxdW90O2luc3RhbGwmcXVvdDssICZxdW90Oy1nJnF1b3Q7LCBzb3VyY2Uuc3BlY10pOzwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+MTY5NjogICB9PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj4xNjk3OiAgIDwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+MTY5ODogcHJpdmF0ZSBhc3luYyB1bmluc3RhbGxOcG0oc291cmNlOiBOcG1Tb3VyY2UsIHNjb3BlOiBTb3VyY2VTY29wZSk6IFByb21pc2UmbHQ7dm9pZCZndDsgezwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+MTY5OTogICBpZiAoc2NvcGUgPT09ICZxdW90O3VzZXImcXVvdDspIHs8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjE3MDA6ICAgYXdhaXQgdGhpcy5ydW5OcG1Db21tYW5kKFsmcXVvdDt1bmluc3RhbGwmcXVvdDssICZxdW90Oy1nJnF1b3Q7LCBzb3VyY2UubmFtZV0pOzwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+MTcwODogICB9PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj4xNzA5OiAgIDwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+MTcxMDogcHJpdmF0ZSBhc3luYyBpbnN0YWxsR2l0KHNvdXJjZTogR2l0U291cmNlLCBzY29wZTogU291cmNlU2NvcGUpOiBQcm9taXNlJmx0O3ZvaWQmZ3Q7IHs8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjE3MTE6ICAgY29uc3QgdGFyZ2V0RGlyID0gdGhpcy5nZXRHaXRJbnN0YWxsUGF0aChzb3VyY2UsIHNjb3BlKTs8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjE3MTI6ICAgaWYgKGV4aXN0c1N5bmModGFyZ2V0RGlyKSkgezwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+MTcyOTogICB9PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj4xNzMwOiAgIDwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+MTczMTogcHJpdmF0ZSBhc3luYyB1cGRhdGVHaXQoc291cmNlOiBHaXRTb3VyY2UsIHNjb3BlOiBTb3VyY2VTY29wZSk6IFByb21pc2UmbHQ7dm9pZCZndDsgezwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+MTczMjogICBjb25zdCB0YXJnZXREaXIgPSB0aGlzLmdldEdpdEluc3RhbGxQYXRoKHNvdXJjZSwgc2NvcGUpOzwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+MTczMzogICBpZiAoIWV4aXN0c1N5bmModGFyZ2V0RGlyKSkgezwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+MTc2NDogICB9PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj4xNzY1OiAgIDwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+MTc2NjogcHJpdmF0ZSBhc3luYyByZWZyZXNoVGVtcG9yYXJ5R2l0U291cmNlKHNvdXJjZTogR2l0U291cmNlLCBzb3VyY2VTdHI6IHN0cmluZyk6PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj4gICAgPHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+UHJvbWlzZSZsdDt2b2lkJmd0OyB7PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj4xNzY3OiAgIGlmIChpc09mZmxpbmVNb2RlRW5hYmxlZCgpKSB7PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj4xNzY4OiAgIHJldHVybjs8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjE3Nzc6ICAgfTwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+MTc3ODogICA8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjE3Nzk6IHByaXZhdGUgYXN5bmMgcmVtb3ZlR2l0KHNvdXJjZTogR2l0U291cmNlLCBzY29wZTogU291cmNlU2NvcGUpOiBQcm9taXNlJmx0O3ZvaWQmZ3Q7IHs8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjE3ODA6ICAgY29uc3QgdGFyZ2V0RGlyID0gdGhpcy5nZXRHaXRJbnN0YWxsUGF0aChzb3VyY2UsIHNjb3BlKTs8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjE3ODE6ICAgaWYgKCFleGlzdHNTeW5jKHRhcmdldERpcikpIHJldHVybjs8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjE4NTQ6ICAgfTwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+MTg1NTogICA8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjE4NTY6IHByaXZhdGUgZ2V0TnBtSW5zdGFsbFBhdGgoc291cmNlOiBOcG1Tb3VyY2UsIHNjb3BlOiBTb3VyY2VTY29wZSk6IHN0cmluZyB7PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj4xODU3OiAgIGlmIChzY29wZSA9PT0gJnF1b3Q7dGVtcG9yYXJ5JnF1b3Q7KSB7PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj4xODU4OiAgIHJldHVybiBqb2luKHRoaXMuZ2V0VGVtcG9yYXJ5RGlyKCZxdW90O25wbSZxdW90OyksICZxdW90O25vZGVfbW9kdWxlcyZxdW90Oywgc291cmNlLm5hbWUpOzwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+MTg2NDogICB9PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj4xODY1OiAgIDwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+MTg2NjogcHJpdmF0ZSBnZXRHaXRJbnN0YWxsUGF0aChzb3VyY2U6IEdpdFNvdXJjZSwgc2NvcGU6IFNvdXJjZVNjb3BlKTogc3RyaW5nIHs8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjE4Njc6ICAgaWYgKHNjb3BlID09PSAmcXVvdDt0ZW1wb3JhcnkmcXVvdDspIHs8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjE4Njg6ICAgcmV0dXJuIHRoaXMuZ2V0VGVtcG9yYXJ5RGlyKGBnaXQtJHtzb3VyY2UuaG9zdH1gLCBzb3VyY2UucGF0aCk7PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj4yMTI1OiAgICk6IHZvaWQgezwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+MjEyNjogICBjb25zdCB1c2VyTWV0YWRhdGE6IFBhdGhNZXRhZGF0YSA9IHs8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjIxMjc6IHNvdXJjZTogJnF1b3Q7YXV0byZxdW90Oyw8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjIxMjg6ICAgc2NvcGU6ICZxdW90O3VzZXImcXVvdDssPC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj4yMTI5OiAgIG9yaWdpbjogJnF1b3Q7dG9wLWxldmVsJnF1b3Q7LDwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+MjEzMTogICB9Ozwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+MjEzMjogICBjb25zdCBwcm9qZWN0TWV0YWRhdGE6IFBhdGhNZXRhZGF0YSA9IHs8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjIxMzM6IHNvdXJjZTogJnF1b3Q7YXV0byZxdW90Oyw8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjIxMzQ6ICAgc2NvcGU6ICZxdW90O3Byb2plY3QmcXVvdDssPC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSU4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj4yMTM1OiAgIG9yaWdpbjogJnF1b3Q7dG9wLWxldmVsJnF1b3Q7LDwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoNzQsOTQsMTI5KVwiPnByb21wdC10ZW1wbGF0ZXMudHM6PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj4yMjg6ICAgaWYgKGlzVW5kZXJQYXRoKHJlc29sdmVkUGF0aCwgZ2xvYmFsUHJvbXB0c0RpcikpIHs8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjIyOTogICByZXR1cm4gY3JlYXRlU3ludGhldGljU291cmNlSW5mbyhyZXNvbHZlZFBhdGgsIHs8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjIzMDogc291cmNlOiAmcXVvdDtsb2NhbCZxdW90Oyw8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjIzMTogICBzY29wZTogJnF1b3Q7dXNlciZxdW90Oyw8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjIzMjogICBiYXNlRGlyOiBnbG9iYWxQcm9tcHRzRGlyLDwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+MjM1OiAgIGlmIChpc1VuZGVyUGF0aChyZXNvbHZlZFBhdGgsIHByb2plY3RQcm9tcHRzRGlyKSkgezwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+MjM2OiAgIHJldHVybiBjcmVhdGVTeW50aGV0aWNTb3VyY2VJbmZvKHJlc29sdmVkUGF0aCwgezwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+MjM3OiBzb3VyY2U6ICZxdW90O2xvY2FsJnF1b3Q7LDwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+MjM4OiAgIHNjb3BlOiAmcXVvdDtwcm9qZWN0JnF1b3Q7LDwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+MjM5OiAgIGJhc2VEaXI6IHByb2plY3RQcm9tcHRzRGlyLDwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+MjQxOiAgIH08L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjI0MjogICByZXR1cm4gY3JlYXRlU3ludGhldGljU291cmNlSW5mbyhyZXNvbHZlZFBhdGgsIHs8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjI0Mzogc291cmNlOiAmcXVvdDtsb2NhbCZxdW90Oyw8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjI0NDogICBiYXNlRGlyOiBzdGF0U3luYyhyZXNvbHZlZFBhdGgpLmlzRGlyZWN0b3J5KCkgPyByZXNvbHZlZFBhdGggOiBkaXJuYW1lKHJlc29sdmVkUGF0aCksPC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSU4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj4yNDU6ICAgfSk7PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYig3NCw5NCwxMjkpXCI+cmVzb3VyY2UtbG9hZGVyLnRzOjwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+MzUyOiAgIGNvbnN0IGVuYWJsZWRUaGVtZXMgPSBnZXRFbmFibGVkUGF0aHMocmVzb2x2ZWRQYXRocy50aGVtZXMpOzwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+MzUzOiAgIDwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+MzU0OiBjb25zdCBtYXBTa2lsbFBhdGggPSAocmVzb3VyY2U6IHsgcGF0aDogc3RyaW5nOyBtZXRhZGF0YTogUGF0aE1ldGFkYXRhIH0pOiBzdHJpbmcgPSZndDsgezwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+MzU1OiAgIGlmIChyZXNvdXJjZS5tZXRhZGF0YS5zb3VyY2UgIT09ICZxdW90O2F1dG8mcXVvdDsgJmFtcDsmYW1wOyByZXNvdXJjZS5tZXRhZGF0YS5vcmlnaW4gIT09ICZxdW90O3BhY2thZ2UmcXVvdDspIHs8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjM1NjogICByZXR1cm4gcmVzb3VyY2UucGF0aDs8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjM3OTogICBmb3IgKGNvbnN0IHIgb2YgY2xpRXh0ZW5zaW9uUGF0aHMuZXh0ZW5zaW9ucykgezwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+MzgwOiAgIGlmICghbWV0YWRhdGFCeVBhdGguaGFzKHIucGF0aCkpIHs8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjM4MTogbWV0YWRhdGFCeVBhdGguc2V0KHIucGF0aCwgeyBzb3VyY2U6ICZxdW90O2NsaSZxdW90Oywgc2NvcGU6ICZxdW90O3RlbXBvcmFyeSZxdW90Oywgb3JpZ2luOiAmcXVvdDt0b3AtbGV2ZWwmcXVvdDsgfSk7PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj4zODI6ICAgfTwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+MzgzOiAgIH08L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjM4NDogICBmb3IgKGNvbnN0IHIgb2YgY2xpRXh0ZW5zaW9uUGF0aHMuc2tpbGxzKSB7PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj4zODU6ICAgaWYgKCFtZXRhZGF0YUJ5UGF0aC5oYXMoci5wYXRoKSkgezwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+Mzg2OiBtZXRhZGF0YUJ5UGF0aC5zZXQoci5wYXRoLCB7IHNvdXJjZTogJnF1b3Q7Y2xpJnF1b3Q7LCBzY29wZTogJnF1b3Q7dGVtcG9yYXJ5JnF1b3Q7LCBvcmlnaW46ICZxdW90O3RvcC1sZXZlbCZxdW90OyB9KTs8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjM4NzogICB9PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj4zODg6ICAgfTwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+NjE4OiAgIHJldHVybiB7PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj42MTk6ICAgcGF0aDogZmlsZVBhdGgsPC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj42MjA6IHNvdXJjZTogZmlsZVBhdGguc2xpY2UoMSwgLTEpLnNwbGl0KCZxdW90OzomcXVvdDspWzBdIHx8ICZxdW90O3RlbXBvcmFyeSZxdW90Oyw8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjYyMTogICBzY29wZTogJnF1b3Q7dGVtcG9yYXJ5JnF1b3Q7LDwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+NjIyOiAgIG9yaWdpbjogJnF1b3Q7dG9wLWxldmVsJnF1b3Q7LDwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+NjQwOiAgIGZvciAoY29uc3Qgcm9vdCBvZiBhZ2VudFJvb3RzKSB7PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj42NDE6ICAgaWYgKHRoaXMuaXNVbmRlclBhdGgobm9ybWFsaXplZFBhdGgsIHJvb3QpKSB7PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj42NDI6IHJldHVybiB7IHBhdGg6IGZpbGVQYXRoLCBzb3VyY2U6ICZxdW90O2xvY2FsJnF1b3Q7LCBzY29wZTogJnF1b3Q7dXNlciZxdW90Oywgb3JpZ2luOiAmcXVvdDt0b3AtbGV2ZWwmcXVvdDssIGJhc2VEaXI6IHJvb3Q8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPiAgICA8c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj59Ozwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+NjQzOiAgIH08L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjY0NDogICB9PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj42NDY6ICAgZm9yIChjb25zdCByb290IG9mIHByb2plY3RSb290cykgezwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+NjQ3OiAgIGlmICh0aGlzLmlzVW5kZXJQYXRoKG5vcm1hbGl6ZWRQYXRoLCByb290KSkgezwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+NjQ4OiByZXR1cm4geyBwYXRoOiBmaWxlUGF0aCwgc291cmNlOiAmcXVvdDtsb2NhbCZxdW90Oywgc2NvcGU6ICZxdW90O3Byb2plY3QmcXVvdDssIG9yaWdpbjogJnF1b3Q7dG9wLWxldmVsJnF1b3Q7LCBiYXNlRGlyOjwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+ICAgIDxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPnJvb3QgfTs8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjY0OTogICB9PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj42NTA6ICAgfTwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+NjUyOiAgIHJldHVybiB7PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj42NTM6ICAgcGF0aDogZmlsZVBhdGgsPC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj42NTQ6IHNvdXJjZTogJnF1b3Q7bG9jYWwmcXVvdDssPC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj42NTU6ICAgc2NvcGU6ICZxdW90O3RlbXBvcmFyeSZxdW90Oyw8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJTilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjY1NjogICBvcmlnaW46ICZxdW90O3RvcC1sZXZlbCZxdW90Oyw8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDc0LDk0LDEyOSlcIj5zZXR0aW5ncy1tYW5hZ2VyLnRzOjwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+Njc6ICAgfCBzdHJpbmc8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjY4OiAgIHwgezwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+Njk6IHNvdXJjZTogc3RyaW5nOzwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+NzA6ICAgZXh0ZW5zaW9ucz86IHN0cmluZ1tdOzwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+NzE6ICAgc2tpbGxzPzogc3RyaW5nW107PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj40ODM6ICAgfTwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+NDg0OiAgIDwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+NDg1OiBwcml2YXRlIGNsb25lTW9kaWZpZWROZXN0ZWRGaWVsZHMoc291cmNlOiBNYXAmbHQ7a2V5b2YgU2V0dGluZ3MsIFNldCZsdDtzdHJpbmcmZ3Q7Jmd0Oyk6IE1hcCZsdDtrZXlvZjwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+ICAgIDxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPlNldHRpbmdzLCBTZXQmbHQ7c3RyaW5nJmd0OyZndDsgezwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+NDg2OiAgIGNvbnN0IHNuYXBzaG90ID0gbmV3IE1hcCZsdDtrZXlvZiBTZXR0aW5ncywgU2V0Jmx0O3N0cmluZyZndDsmZ3Q7KCk7PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSU4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj40ODc6ICAgZm9yIChjb25zdCBba2V5LCB2YWx1ZV0gb2Ygc291cmNlLmVudHJpZXMoKSkgezwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoNzQsOTQsMTI5KVwiPnNraWxscy50czo8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjEzNjogICBkaXI6IHN0cmluZzs8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjEzNzogICAvKiogU291cmNlIGlkZW50aWZpZXIgZm9yIHRoZXNlIHNraWxscyAqLzwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+MTM4OiBzb3VyY2U6IHN0cmluZzs8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjEzOTogICB9PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj4xNDA6ICAgPC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj4xMzk6ICAgfTwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+MTQwOiAgIDwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+MTQxOiBmdW5jdGlvbiBjcmVhdGVTa2lsbFNvdXJjZUluZm8oZmlsZVBhdGg6IHN0cmluZywgYmFzZURpcjogc3RyaW5nLCBzb3VyY2U6IHN0cmluZyk6PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj4gICAgPHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+U291cmNlSW5mbyB7PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj4xNDI6ICAgc3dpdGNoIChzb3VyY2UpIHs8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjE0MzogICBjYXNlICZxdW90O3VzZXImcXVvdDs6PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj4xNDM6ICAgY2FzZSAmcXVvdDt1c2VyJnF1b3Q7Ojwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+MTQ0OiAgIHJldHVybiBjcmVhdGVTeW50aGV0aWNTb3VyY2VJbmZvKGZpbGVQYXRoLCB7PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj4xNDU6IHNvdXJjZTogJnF1b3Q7bG9jYWwmcXVvdDssPC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj4xNDY6ICAgc2NvcGU6ICZxdW90O3VzZXImcXVvdDssPC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj4xNDc6ICAgYmFzZURpciw8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjE0OTogICBjYXNlICZxdW90O3Byb2plY3QmcXVvdDs6PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj4xNTA6ICAgcmV0dXJuIGNyZWF0ZVN5bnRoZXRpY1NvdXJjZUluZm8oZmlsZVBhdGgsIHs8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjE1MTogc291cmNlOiAmcXVvdDtsb2NhbCZxdW90Oyw8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjE1MjogICBzY29wZTogJnF1b3Q7cHJvamVjdCZxdW90Oyw8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjE1MzogICBiYXNlRGlyLDwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+MTU1OiAgIGNhc2UgJnF1b3Q7cGF0aCZxdW90Ozo8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjE1NjogICByZXR1cm4gY3JlYXRlU3ludGhldGljU291cmNlSW5mbyhmaWxlUGF0aCwgezwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+MTU3OiBzb3VyY2U6ICZxdW90O2xvY2FsJnF1b3Q7LDwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+MTU4OiAgIGJhc2VEaXIsPC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj4xNTk6ICAgfSk7PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj4xNzg6ICAgZnVuY3Rpb24gbG9hZFNraWxsc0Zyb21EaXJJbnRlcm5hbCg8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjE3OTogICBkaXI6IHN0cmluZyw8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjE4MDogc291cmNlOiBzdHJpbmcsPC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj4xODE6ICAgaW5jbHVkZVJvb3RGaWxlczogYm9vbGVhbiw8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjE4MjogICBpZ25vcmVNYXRjaGVyPzogSWdub3JlTWF0Y2hlciw8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjI4MjogICBmdW5jdGlvbiBsb2FkU2tpbGxGcm9tRmlsZSg8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjI4MzogICBmaWxlUGF0aDogc3RyaW5nLDwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+Mjg0OiBzb3VyY2U6IHN0cmluZyw8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjI4NTogICApOiB7IHNraWxsOiBTa2lsbCB8IG51bGw7IGRpYWdub3N0aWNzOiBSZXNvdXJjZURpYWdub3N0aWNbXSB9IHs8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJTilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjI4NjogICBjb25zdCBkaWFnbm9zdGljczogUmVzb3VyY2VEaWFnbm9zdGljW10gPSBbXTs8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDc0LDk0LDEyOSlcIj5zbGFzaC1jb21tYW5kcy50czo8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjc6ICAgbmFtZTogc3RyaW5nOzwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+ODogICBkZXNjcmlwdGlvbj86IHN0cmluZzs8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjk6IHNvdXJjZTogU2xhc2hDb21tYW5kU291cmNlOzwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+MTA6ICAgc291cmNlSW5mbzogU291cmNlSW5mbzs8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJTilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjExOiAgIH08L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDc0LDk0LDEyOSlcIj5zb3VyY2UtaW5mby50czo8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjY6ICAgZXhwb3J0IGludGVyZmFjZSBTb3VyY2VJbmZvIHs8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjc6ICAgcGF0aDogc3RyaW5nOzwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+ODogc291cmNlOiBzdHJpbmc7PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj45OiAgIHNjb3BlOiBTb3VyY2VTY29wZTs8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjEwOiAgIG9yaWdpbjogU291cmNlT3JpZ2luOzwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+MTU6ICAgcmV0dXJuIHs8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjE2OiAgIHBhdGgsPC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj4xNzogc291cmNlOiBtZXRhZGF0YS5zb3VyY2UsPC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj4xODogICBzY29wZTogbWV0YWRhdGEuc2NvcGUsPC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj4xOTogICBvcmlnaW46IG1ldGFkYXRhLm9yaWdpbiw8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjI1OiAgIHBhdGg6IHN0cmluZyw8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjI2OiAgIG9wdGlvbnM6IHs8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjI3OiBzb3VyY2U6IHN0cmluZzs8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjI4OiAgIHNjb3BlPzogU291cmNlU2NvcGU7PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj4yOTogICBvcmlnaW4/OiBTb3VyY2VPcmlnaW47PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj4zMzogICByZXR1cm4gezwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+MzQ6ICAgcGF0aCw8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjM1OiBzb3VyY2U6IG9wdGlvbnMuc291cmNlLDwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+MzY6ICAgc2NvcGU6IG9wdGlvbnMuc2NvcGUgPz8gJnF1b3Q7dGVtcG9yYXJ5JnF1b3Q7LDwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUlOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+Mzc6ICAgb3JpZ2luOiBvcHRpb25zLm9yaWdpbiA/PyAmcXVvdDt0b3AtbGV2ZWwmcXVvdDssPC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj4mbmJzcDs8L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoNjEsMTA4LDM3KVwiPm1hdGNoZXM6IDEwMDwvc3Bhbj4gLSA8c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxNjMsOTYsMClcIj5saW1pdDogMTAwPC9zcGFuPjwvZGl2PiJ9LCJjYWxsX254cUlMWEhOS0E0aHZ2ZXpaTElQeVg1ZHxmY18wMjdmMWVhMTVkZWYzNTA1MDE2OWYzMGRlMDE3MzQ4MTkxOTAxYmE4Y2Q0MGVmMjE1MiI6eyJjYWxsSHRtbCI6IjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYig3NCw5NCwxMjkpXCI+PC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDc0LDk0LDEyOSk7Zm9udC13ZWlnaHQ6Ym9sZFwiPkdyZXA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoNzQsOTQsMTI5KVwiPjwvc3Bhbj4gPHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoNzQsOTQsMTI5KVwiPi90eXBlIFNvdXJjZVNjb3BlfFNvdXJjZVNjb3BlLzwvc3Bhbj4gPHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPmluPTwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMTcsMTIyLDEzMClcIj5wYWNrYWdlcy9jb2RpbmctYWdlbnQvc3JjPC9zcGFuPiA8c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+Z2xvYj08L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTE3LDEyMiwxMzApXCI+Ki50czwvc3Bhbj4gPHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPmxpbWl0PTwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMTcsMTIyLDEzMClcIj41MDwvc3Bhbj4gPHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPmN0eD08L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTE3LDEyMiwxMzApXCI+Mjwvc3Bhbj4gICAgICAgICAgIDwvZGl2PiIsInJlc3VsdEh0bWxDb2xsYXBzZWQiOiI8ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoNzQsOTQsMTI5KVwiPmNvcmUvcGFja2FnZS1tYW5hZ2VyLnRzOjwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+NDY6ICAgZXhwb3J0IGludGVyZmFjZSBQYXRoTWV0YWRhdGEgezwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+NDc6ICAgc291cmNlOiBzdHJpbmc7PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj40ODogc2NvcGU6IFNvdXJjZVNjb3BlOzwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+NDk6ICAgb3JpZ2luOiAmcXVvdDtwYWNrYWdlJnF1b3Q7IHwgJnF1b3Q7dG9wLWxldmVsJnF1b3Q7Ozwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+NTA6ICAgYmFzZURpcj86IHN0cmluZzs8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjc5OiAgIGRpc3BsYXlOYW1lOiBzdHJpbmc7PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj44MDogICB0eXBlOiAmcXVvdDtucG0mcXVvdDsgfCAmcXVvdDtnaXQmcXVvdDs7PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj44MTogc2NvcGU6IEV4Y2x1ZGUmbHQ7U291cmNlU2NvcGUsICZxdW90O3RlbXBvcmFyeSZxdW90OyZndDs7PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj44MjogICB9PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj44MzogICA8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjExMzogICB9PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj4xMTQ6ICAgPC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj4xMTU6IHR5cGUgU291cmNlU2NvcGUgPSAmcXVvdDt1c2VyJnF1b3Q7IHwgJnF1b3Q7cHJvamVjdCZxdW90OyB8ICZxdW90O3RlbXBvcmFyeSZxdW90Ozs8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjExNjogICA8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjExNzogICB0eXBlIE5wbVNvdXJjZSA9IHs8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjEyOTogICB0eXBlIFBhcnNlZFNvdXJjZSA9IE5wbVNvdXJjZSB8IEdpdFNvdXJjZSB8IExvY2FsU291cmNlOzwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+MTMwOiAgIDwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+MTMxOiB0eXBlIEluc3RhbGxlZFNvdXJjZVNjb3BlID0gRXhjbHVkZSZsdDtTb3VyY2VTY29wZSwgJnF1b3Q7dGVtcG9yYXJ5JnF1b3Q7Jmd0Ozs8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjEzMjogICA8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjEzMzogICBpbnRlcmZhY2UgQ29uZmlndXJlZFVwZGF0ZVNvdXJjZSB7PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj4xMzM6ICAgaW50ZXJmYWNlIENvbmZpZ3VyZWRVcGRhdGVTb3VyY2Ugezwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+MTM0OiAgIHNvdXJjZTogc3RyaW5nOzwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+MTM1OiBzY29wZTogSW5zdGFsbGVkU291cmNlU2NvcGU7PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj4xMzY6ICAgfTwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+MTM3OiAgIDwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+NzczOiAgIDwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+Nzc0OiAgIGFkZFNvdXJjZVRvU2V0dGluZ3Moc291cmNlOiBzdHJpbmcsIG9wdGlvbnM/OiB7IGxvY2FsPzogYm9vbGVhbiB9KTogYm9vbGVhbiB7PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj43NzU6IGNvbnN0IHNjb3BlOiBTb3VyY2VTY29wZSA9IG9wdGlvbnM/LmxvY2FsID8gJnF1b3Q7cHJvamVjdCZxdW90OyA6ICZxdW90O3VzZXImcXVvdDs7PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj43NzY6ICAgY29uc3QgY3VycmVudFNldHRpbmdzID08L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJTilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjc3NzogICBzY29wZSA9PT0gJnF1b3Q7cHJvamVjdCZxdW90OyA/IHRoaXMuc2V0dGluZ3NNYW5hZ2VyLmdldFByb2plY3RTZXR0aW5ncygpIDo8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPiAgICA8c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj50aGlzLnNldHRpbmdzTWFuYWdlci5nZXRHbG9iYWxTZXR0aW5ncygpOzwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+Jm5ic3A7PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj4xNjAgbW9yZSBtYXRjaGVzLCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTE3LDEyMiwxMzApXCI+Y3RybCtvPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj4gdG8gZXhwYW5kPC9zcGFuPiAtIDxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDYxLDEwOCwzNylcIj5tYXRjaGVzOiAzODwvc3Bhbj48L2Rpdj4iLCJyZXN1bHRIdG1sRXhwYW5kZWQiOiI8ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoNzQsOTQsMTI5KVwiPmNvcmUvcGFja2FnZS1tYW5hZ2VyLnRzOjwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+NDY6ICAgZXhwb3J0IGludGVyZmFjZSBQYXRoTWV0YWRhdGEgezwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+NDc6ICAgc291cmNlOiBzdHJpbmc7PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj40ODogc2NvcGU6IFNvdXJjZVNjb3BlOzwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+NDk6ICAgb3JpZ2luOiAmcXVvdDtwYWNrYWdlJnF1b3Q7IHwgJnF1b3Q7dG9wLWxldmVsJnF1b3Q7Ozwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+NTA6ICAgYmFzZURpcj86IHN0cmluZzs8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjc5OiAgIGRpc3BsYXlOYW1lOiBzdHJpbmc7PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj44MDogICB0eXBlOiAmcXVvdDtucG0mcXVvdDsgfCAmcXVvdDtnaXQmcXVvdDs7PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj44MTogc2NvcGU6IEV4Y2x1ZGUmbHQ7U291cmNlU2NvcGUsICZxdW90O3RlbXBvcmFyeSZxdW90OyZndDs7PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj44MjogICB9PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj44MzogICA8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjExMzogICB9PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj4xMTQ6ICAgPC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj4xMTU6IHR5cGUgU291cmNlU2NvcGUgPSAmcXVvdDt1c2VyJnF1b3Q7IHwgJnF1b3Q7cHJvamVjdCZxdW90OyB8ICZxdW90O3RlbXBvcmFyeSZxdW90Ozs8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjExNjogICA8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjExNzogICB0eXBlIE5wbVNvdXJjZSA9IHs8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjEyOTogICB0eXBlIFBhcnNlZFNvdXJjZSA9IE5wbVNvdXJjZSB8IEdpdFNvdXJjZSB8IExvY2FsU291cmNlOzwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+MTMwOiAgIDwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+MTMxOiB0eXBlIEluc3RhbGxlZFNvdXJjZVNjb3BlID0gRXhjbHVkZSZsdDtTb3VyY2VTY29wZSwgJnF1b3Q7dGVtcG9yYXJ5JnF1b3Q7Jmd0Ozs8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjEzMjogICA8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjEzMzogICBpbnRlcmZhY2UgQ29uZmlndXJlZFVwZGF0ZVNvdXJjZSB7PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj4xMzM6ICAgaW50ZXJmYWNlIENvbmZpZ3VyZWRVcGRhdGVTb3VyY2Ugezwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+MTM0OiAgIHNvdXJjZTogc3RyaW5nOzwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+MTM1OiBzY29wZTogSW5zdGFsbGVkU291cmNlU2NvcGU7PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj4xMzY6ICAgfTwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+MTM3OiAgIDwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+NzczOiAgIDwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+Nzc0OiAgIGFkZFNvdXJjZVRvU2V0dGluZ3Moc291cmNlOiBzdHJpbmcsIG9wdGlvbnM/OiB7IGxvY2FsPzogYm9vbGVhbiB9KTogYm9vbGVhbiB7PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj43NzU6IGNvbnN0IHNjb3BlOiBTb3VyY2VTY29wZSA9IG9wdGlvbnM/LmxvY2FsID8gJnF1b3Q7cHJvamVjdCZxdW90OyA6ICZxdW90O3VzZXImcXVvdDs7PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj43NzY6ICAgY29uc3QgY3VycmVudFNldHRpbmdzID08L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjc3NzogICBzY29wZSA9PT0gJnF1b3Q7cHJvamVjdCZxdW90OyA/IHRoaXMuc2V0dGluZ3NNYW5hZ2VyLmdldFByb2plY3RTZXR0aW5ncygpIDo8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPiAgICA8c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj50aGlzLnNldHRpbmdzTWFuYWdlci5nZXRHbG9iYWxTZXR0aW5ncygpOzwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+NzkyOiAgIDwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+NzkzOiAgIHJlbW92ZVNvdXJjZUZyb21TZXR0aW5ncyhzb3VyY2U6IHN0cmluZywgb3B0aW9ucz86IHsgbG9jYWw/OiBib29sZWFuIH0pOiBib29sZWFuIHs8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjc5NDogY29uc3Qgc2NvcGU6IFNvdXJjZVNjb3BlID0gb3B0aW9ucz8ubG9jYWwgPyAmcXVvdDtwcm9qZWN0JnF1b3Q7IDogJnF1b3Q7dXNlciZxdW90Ozs8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjc5NTogICBjb25zdCBjdXJyZW50U2V0dGluZ3MgPTwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+Nzk2OiAgIHNjb3BlID09PSAmcXVvdDtwcm9qZWN0JnF1b3Q7ID8gdGhpcy5zZXR0aW5nc01hbmFnZXIuZ2V0UHJvamVjdFNldHRpbmdzKCkgOjwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+ICAgIDxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPnRoaXMuc2V0dGluZ3NNYW5hZ2VyLmdldEdsb2JhbFNldHRpbmdzKCk7PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj44NTQ6ICAgPC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj44NTU6ICAgLy8gQ29sbGVjdCBhbGwgcGFja2FnZXMgd2l0aCBzY29wZSAocHJvamVjdCBmaXJzdCBzbyBjd2QgcmVzb3VyY2VzIHdpbiBjb2xsaXNpb25zKTwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+ODU2OiBjb25zdCBhbGxQYWNrYWdlczogQXJyYXkmbHQ7eyBwa2c6IFBhY2thZ2VTb3VyY2U7IHNjb3BlOiBTb3VyY2VTY29wZSB9Jmd0OyA9IFtdOzwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+ODU3OiAgIGZvciAoY29uc3QgcGtnIG9mIHByb2plY3RTZXR0aW5ncy5wYWNrYWdlcyA/PyBbXSkgezwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+ODU4OiAgIGFsbFBhY2thZ2VzLnB1c2goeyBwa2csIHNjb3BlOiAmcXVvdDtwcm9qZWN0JnF1b3Q7IH0pOzwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+OTA3OiAgICk6IFByb21pc2UmbHQ7UmVzb2x2ZWRQYXRocyZndDsgezwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+OTA4OiAgIGNvbnN0IGFjY3VtdWxhdG9yID0gdGhpcy5jcmVhdGVBY2N1bXVsYXRvcigpOzwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+OTA5OiBjb25zdCBzY29wZTogU291cmNlU2NvcGUgPSBvcHRpb25zPy50ZW1wb3JhcnkgPyAmcXVvdDt0ZW1wb3JhcnkmcXVvdDsgOiBvcHRpb25zPy5sb2NhbCA/ICZxdW90O3Byb2plY3QmcXVvdDsgOjwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+ICAgIDxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPiZxdW90O3VzZXImcXVvdDs7PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj45MTA6ICAgY29uc3QgcGFja2FnZVNvdXJjZXMgPSBzb3VyY2VzLm1hcCgoc291cmNlKSA9Jmd0OyAoeyBwa2c6IHNvdXJjZSBhcyBQYWNrYWdlU291cmNlLCBzY29wZTwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+ICAgIDxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPn0pKTs8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjkxMTogICBhd2FpdCB0aGlzLnJlc29sdmVQYWNrYWdlU291cmNlcyhwYWNrYWdlU291cmNlcywgYWNjdW11bGF0b3IpOzwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+OTQzOiAgIGFzeW5jIGluc3RhbGwoc291cmNlOiBzdHJpbmcsIG9wdGlvbnM/OiB7IGxvY2FsPzogYm9vbGVhbiB9KTogUHJvbWlzZSZsdDt2b2lkJmd0OyB7PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj45NDQ6ICAgY29uc3QgcGFyc2VkID0gdGhpcy5wYXJzZVNvdXJjZShzb3VyY2UpOzwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+OTQ1OiBjb25zdCBzY29wZTogU291cmNlU2NvcGUgPSBvcHRpb25zPy5sb2NhbCA/ICZxdW90O3Byb2plY3QmcXVvdDsgOiAmcXVvdDt1c2VyJnF1b3Q7Ozwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+OTQ2OiAgIGF3YWl0IHRoaXMud2l0aFByb2dyZXNzKCZxdW90O2luc3RhbGwmcXVvdDssIHNvdXJjZSwgYEluc3RhbGxpbmcgJHtzb3VyY2V9Li4uYCwgYXN5bmMgKCkgPSZndDsgezwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+OTQ3OiAgIGlmIChwYXJzZWQudHlwZSA9PT0gJnF1b3Q7bnBtJnF1b3Q7KSB7PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj45NzE6ICAgYXN5bmMgcmVtb3ZlKHNvdXJjZTogc3RyaW5nLCBvcHRpb25zPzogeyBsb2NhbD86IGJvb2xlYW4gfSk6IFByb21pc2UmbHQ7dm9pZCZndDsgezwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+OTcyOiAgIGNvbnN0IHBhcnNlZCA9IHRoaXMucGFyc2VTb3VyY2Uoc291cmNlKTs8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjk3MzogY29uc3Qgc2NvcGU6IFNvdXJjZVNjb3BlID0gb3B0aW9ucz8ubG9jYWwgPyAmcXVvdDtwcm9qZWN0JnF1b3Q7IDogJnF1b3Q7dXNlciZxdW90Ozs8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjk3NDogICBhd2FpdCB0aGlzLndpdGhQcm9ncmVzcygmcXVvdDtyZW1vdmUmcXVvdDssIHNvdXJjZSwgYFJlbW92aW5nICR7c291cmNlfS4uLmAsIGFzeW5jICgpID0mZ3Q7IHs8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjk3NTogICBpZiAocGFyc2VkLnR5cGUgPT09ICZxdW90O25wbSZxdW90Oykgezwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+MTA4MzogICB9PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj4xMDg0OiAgIDwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+MTA4NTogcHJpdmF0ZSBhc3luYyBzaG91bGRVcGRhdGVOcG1Tb3VyY2Uoc291cmNlOiBOcG1Tb3VyY2UsIHNjb3BlOiBJbnN0YWxsZWRTb3VyY2VTY29wZSk6PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj4gICAgPHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+UHJvbWlzZSZsdDtib29sZWFuJmd0OyB7PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj4xMDg2OiAgIGNvbnN0IGluc3RhbGxlZFBhdGggPSB0aGlzLmdldE5wbUluc3RhbGxQYXRoKHNvdXJjZSwgc2NvcGUpOzwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+MTA4NzogICBjb25zdCBpbnN0YWxsZWRWZXJzaW9uID0gZXhpc3RzU3luYyhpbnN0YWxsZWRQYXRoKSA/PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj4gICAgPHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+dGhpcy5nZXRJbnN0YWxsZWROcG1WZXJzaW9uKGluc3RhbGxlZFBhdGgpIDogdW5kZWZpbmVkOzwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+MTA5OTogICB9PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj4xMTAwOiAgIDwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+MTEwMTogcHJpdmF0ZSBhc3luYyB1cGRhdGVOcG1CYXRjaChzb3VyY2VzOiBOcG1VcGRhdGVUYXJnZXRbXSwgc2NvcGU6IEluc3RhbGxlZFNvdXJjZVNjb3BlKTo8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPiAgICA8c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj5Qcm9taXNlJmx0O3ZvaWQmZ3Q7IHs8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjExMDI6ICAgaWYgKHNvdXJjZXMubGVuZ3RoID09PSAwKSB7PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj4xMTAzOiAgIHJldHVybjs8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjExMTM6ICAgfTwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+MTExNDogICA8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjExMTU6IHByaXZhdGUgYXN5bmMgaW5zdGFsbE5wbUJhdGNoKHNwZWNzOiBzdHJpbmdbXSwgc2NvcGU6IEluc3RhbGxlZFNvdXJjZVNjb3BlKTogUHJvbWlzZSZsdDt2b2lkJmd0Ozwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+ICAgIDxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPns8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjExMTY6ICAgaWYgKHNjb3BlID09PSAmcXVvdDt1c2VyJnF1b3Q7KSB7PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj4xMTE3OiAgIGF3YWl0IHRoaXMucnVuTnBtQ29tbWFuZChbJnF1b3Q7aW5zdGFsbCZxdW90OywgJnF1b3Q7LWcmcXVvdDssIC4uLnNwZWNzXSk7PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj4xMTMwOiAgIGNvbnN0IGdsb2JhbFNldHRpbmdzID0gdGhpcy5zZXR0aW5nc01hbmFnZXIuZ2V0R2xvYmFsU2V0dGluZ3MoKTs8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjExMzE6ICAgY29uc3QgcHJvamVjdFNldHRpbmdzID0gdGhpcy5zZXR0aW5nc01hbmFnZXIuZ2V0UHJvamVjdFNldHRpbmdzKCk7PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj4xMTMyOiBjb25zdCBhbGxQYWNrYWdlczogQXJyYXkmbHQ7eyBwa2c6IFBhY2thZ2VTb3VyY2U7IHNjb3BlOiBTb3VyY2VTY29wZSB9Jmd0OyA9IFtdOzwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+MTEzMzogICBmb3IgKGNvbnN0IHBrZyBvZiBwcm9qZWN0U2V0dGluZ3MucGFja2FnZXMgPz8gW10pIHs8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjExMzQ6ICAgYWxsUGFja2FnZXMucHVzaCh7IHBrZywgc2NvcGU6ICZxdW90O3Byb2plY3QmcXVvdDsgfSk7PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj4xMTQxOiAgIGNvbnN0IGNoZWNrcyA9IHBhY2thZ2VTb3VyY2VzPC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj4xMTQyOiAgIC5maWx0ZXIoPC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj4xMTQzOiAoZW50cnkpOiBlbnRyeSBpcyB7IHBrZzogUGFja2FnZVNvdXJjZTsgc2NvcGU6IEV4Y2x1ZGUmbHQ7U291cmNlU2NvcGUsICZxdW90O3RlbXBvcmFyeSZxdW90OyZndDsgfSA9Jmd0Ozwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+MTE0NDogICBlbnRyeS5zY29wZSAhPT0gJnF1b3Q7dGVtcG9yYXJ5JnF1b3Q7LDwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+MTE0NTogICApPC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj4xMTg5OiAgIDwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+MTE5MDogICBwcml2YXRlIGFzeW5jIHJlc29sdmVQYWNrYWdlU291cmNlcyg8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjExOTE6IHNvdXJjZXM6IEFycmF5Jmx0O3sgcGtnOiBQYWNrYWdlU291cmNlOyBzY29wZTogU291cmNlU2NvcGUgfSZndDssPC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj4xMTkyOiAgIGFjY3VtdWxhdG9yOiBSZXNvdXJjZUFjY3VtdWxhdG9yLDwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+MTE5MzogICBvbk1pc3Npbmc/OiAoc291cmNlOiBzdHJpbmcpID0mZ3Q7IFByb21pc2UmbHQ7TWlzc2luZ1NvdXJjZUFjdGlvbiZndDssPC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj4xMjc5OiAgIH08L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjEyODA6ICAgPC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj4xMjgxOiBwcml2YXRlIGFzeW5jIGluc3RhbGxQYXJzZWRTb3VyY2UocGFyc2VkOiBQYXJzZWRTb3VyY2UsIHNjb3BlOiBTb3VyY2VTY29wZSk6IFByb21pc2UmbHQ7dm9pZCZndDs8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPiAgICA8c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj57PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj4xMjgyOiAgIGlmIChwYXJzZWQudHlwZSA9PT0gJnF1b3Q7bnBtJnF1b3Q7KSB7PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj4xMjgzOiAgIGF3YWl0IHRoaXMuaW5zdGFsbE5wbShwYXJzZWQsIHNjb3BlLCBzY29wZSA9PT0gJnF1b3Q7dGVtcG9yYXJ5JnF1b3Q7KTs8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjEzMDU6ICAgfTwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+MTMwNjogICA8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjEzMDc6IHByaXZhdGUgZ2V0U291cmNlTWF0Y2hLZXlGb3JTZXR0aW5ncyhzb3VyY2U6IHN0cmluZywgc2NvcGU6IFNvdXJjZVNjb3BlKTogc3RyaW5nIHs8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjEzMDg6ICAgY29uc3QgcGFyc2VkID0gdGhpcy5wYXJzZVNvdXJjZShzb3VyY2UpOzwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+MTMwOTogICBpZiAocGFyc2VkLnR5cGUgPT09ICZxdW90O25wbSZxdW90Oykgezwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+MTM1MDogICB9PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj4xMzUxOiAgIDwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+MTM1MjogcHJpdmF0ZSBwYWNrYWdlU291cmNlc01hdGNoKGV4aXN0aW5nOiBQYWNrYWdlU291cmNlLCBpbnB1dFNvdXJjZTogc3RyaW5nLCBzY29wZTo8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPiAgICA8c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj5Tb3VyY2VTY29wZSk6IGJvb2xlYW4gezwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+MTM1MzogICBjb25zdCBsZWZ0ID0gdGhpcy5nZXRTb3VyY2VNYXRjaEtleUZvclNldHRpbmdzKHRoaXMuZ2V0UGFja2FnZVNvdXJjZVN0cmluZyhleGlzdGluZyksPC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj4gICAgPHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+c2NvcGUpOzwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+MTM1NDogICBjb25zdCByaWdodCA9IHRoaXMuZ2V0U291cmNlTWF0Y2hLZXlGb3JJbnB1dChpbnB1dFNvdXJjZSk7PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj4xMzU2OiAgIH08L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjEzNTc6ICAgPC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj4xMzU4OiBwcml2YXRlIG5vcm1hbGl6ZVBhY2thZ2VTb3VyY2VGb3JTZXR0aW5ncyhzb3VyY2U6IHN0cmluZywgc2NvcGU6IFNvdXJjZVNjb3BlKTogc3RyaW5nIHs8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjEzNTk6ICAgY29uc3QgcGFyc2VkID0gdGhpcy5wYXJzZVNvdXJjZShzb3VyY2UpOzwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+MTM2MDogICBpZiAocGFyc2VkLnR5cGUgIT09ICZxdW90O2xvY2FsJnF1b3Q7KSB7PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj4xNjAzOiAgICogZm9yIHRoZSBzYW1lIHJlcG9zaXRvcnkgYXJlIHRyZWF0ZWQgYXMgaWRlbnRpY2FsLjwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+MTYwNDogICAqLzwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+MTYwNTogcHJpdmF0ZSBnZXRQYWNrYWdlSWRlbnRpdHkoc291cmNlOiBzdHJpbmcsIHNjb3BlPzogU291cmNlU2NvcGUpOiBzdHJpbmcgezwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+MTYwNjogICBjb25zdCBwYXJzZWQgPSB0aGlzLnBhcnNlU291cmNlKHNvdXJjZSk7PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj4xNjA3OiAgIGlmIChwYXJzZWQudHlwZSA9PT0gJnF1b3Q7bnBtJnF1b3Q7KSB7PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj4xNjI0OiAgICovPC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj4xNjI1OiAgIHByaXZhdGUgZGVkdXBlUGFja2FnZXMoPC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj4xNjI2OiBwYWNrYWdlczogQXJyYXkmbHQ7eyBwa2c6IFBhY2thZ2VTb3VyY2U7IHNjb3BlOiBTb3VyY2VTY29wZSB9Jmd0Oyw8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjE2Mjc6ICAgKTogQXJyYXkmbHQ7eyBwa2c6IFBhY2thZ2VTb3VyY2U7IHNjb3BlOiBTb3VyY2VTY29wZSB9Jmd0OyB7PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj4xNjI4OiAgIGNvbnN0IHNlZW4gPSBuZXcgTWFwJmx0O3N0cmluZywgeyBwa2c6IFBhY2thZ2VTb3VyY2U7IHNjb3BlOiBTb3VyY2VTY29wZSB9Jmd0OygpOzwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+MTYyNTogICBwcml2YXRlIGRlZHVwZVBhY2thZ2VzKDwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+MTYyNjogICBwYWNrYWdlczogQXJyYXkmbHQ7eyBwa2c6IFBhY2thZ2VTb3VyY2U7IHNjb3BlOiBTb3VyY2VTY29wZSB9Jmd0Oyw8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjE2Mjc6ICk6IEFycmF5Jmx0O3sgcGtnOiBQYWNrYWdlU291cmNlOyBzY29wZTogU291cmNlU2NvcGUgfSZndDsgezwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+MTYyODogICBjb25zdCBzZWVuID0gbmV3IE1hcCZsdDtzdHJpbmcsIHsgcGtnOiBQYWNrYWdlU291cmNlOyBzY29wZTogU291cmNlU2NvcGUgfSZndDsoKTs8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjE2Mjk6ICAgPC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj4xNjI2OiAgIHBhY2thZ2VzOiBBcnJheSZsdDt7IHBrZzogUGFja2FnZVNvdXJjZTsgc2NvcGU6IFNvdXJjZVNjb3BlIH0mZ3Q7LDwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+MTYyNzogICApOiBBcnJheSZsdDt7IHBrZzogUGFja2FnZVNvdXJjZTsgc2NvcGU6IFNvdXJjZVNjb3BlIH0mZ3Q7IHs8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjE2Mjg6IGNvbnN0IHNlZW4gPSBuZXcgTWFwJmx0O3N0cmluZywgeyBwa2c6IFBhY2thZ2VTb3VyY2U7IHNjb3BlOiBTb3VyY2VTY29wZSB9Jmd0OygpOzwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+MTYyOTogICA8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjE2MzA6ICAgZm9yIChjb25zdCBlbnRyeSBvZiBwYWNrYWdlcykgezwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+MTY4NjogICB9PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj4xNjg3OiAgIDwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+MTY4ODogcHJpdmF0ZSBhc3luYyBpbnN0YWxsTnBtKHNvdXJjZTogTnBtU291cmNlLCBzY29wZTogU291cmNlU2NvcGUsIHRlbXBvcmFyeTogYm9vbGVhbik6PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj4gICAgPHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+UHJvbWlzZSZsdDt2b2lkJmd0OyB7PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj4xNjg5OiAgIGlmIChzY29wZSA9PT0gJnF1b3Q7dXNlciZxdW90OyAmYW1wOyZhbXA7ICF0ZW1wb3JhcnkpIHs8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjE2OTA6ICAgYXdhaXQgdGhpcy5ydW5OcG1Db21tYW5kKFsmcXVvdDtpbnN0YWxsJnF1b3Q7LCAmcXVvdDstZyZxdW90Oywgc291cmNlLnNwZWNdKTs8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjE2OTY6ICAgfTwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+MTY5NzogICA8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjE2OTg6IHByaXZhdGUgYXN5bmMgdW5pbnN0YWxsTnBtKHNvdXJjZTogTnBtU291cmNlLCBzY29wZTogU291cmNlU2NvcGUpOiBQcm9taXNlJmx0O3ZvaWQmZ3Q7IHs8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjE2OTk6ICAgaWYgKHNjb3BlID09PSAmcXVvdDt1c2VyJnF1b3Q7KSB7PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj4xNzAwOiAgIGF3YWl0IHRoaXMucnVuTnBtQ29tbWFuZChbJnF1b3Q7dW5pbnN0YWxsJnF1b3Q7LCAmcXVvdDstZyZxdW90Oywgc291cmNlLm5hbWVdKTs8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjE3MDg6ICAgfTwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+MTcwOTogICA8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjE3MTA6IHByaXZhdGUgYXN5bmMgaW5zdGFsbEdpdChzb3VyY2U6IEdpdFNvdXJjZSwgc2NvcGU6IFNvdXJjZVNjb3BlKTogUHJvbWlzZSZsdDt2b2lkJmd0OyB7PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj4xNzExOiAgIGNvbnN0IHRhcmdldERpciA9IHRoaXMuZ2V0R2l0SW5zdGFsbFBhdGgoc291cmNlLCBzY29wZSk7PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj4xNzEyOiAgIGlmIChleGlzdHNTeW5jKHRhcmdldERpcikpIHs8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjE3Mjk6ICAgfTwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+MTczMDogICA8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjE3MzE6IHByaXZhdGUgYXN5bmMgdXBkYXRlR2l0KHNvdXJjZTogR2l0U291cmNlLCBzY29wZTogU291cmNlU2NvcGUpOiBQcm9taXNlJmx0O3ZvaWQmZ3Q7IHs8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjE3MzI6ICAgY29uc3QgdGFyZ2V0RGlyID0gdGhpcy5nZXRHaXRJbnN0YWxsUGF0aChzb3VyY2UsIHNjb3BlKTs8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjE3MzM6ICAgaWYgKCFleGlzdHNTeW5jKHRhcmdldERpcikpIHs8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjE3Nzc6ICAgfTwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+MTc3ODogICA8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjE3Nzk6IHByaXZhdGUgYXN5bmMgcmVtb3ZlR2l0KHNvdXJjZTogR2l0U291cmNlLCBzY29wZTogU291cmNlU2NvcGUpOiBQcm9taXNlJmx0O3ZvaWQmZ3Q7IHs8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjE3ODA6ICAgY29uc3QgdGFyZ2V0RGlyID0gdGhpcy5nZXRHaXRJbnN0YWxsUGF0aChzb3VyY2UsIHNjb3BlKTs8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjE3ODE6ICAgaWYgKCFleGlzdHNTeW5jKHRhcmdldERpcikpIHJldHVybjs8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjE4Mjg6ICAgfTwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+MTgyOTogICA8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjE4MzA6IHByaXZhdGUgZ2V0TnBtSW5zdGFsbFJvb3Qoc2NvcGU6IFNvdXJjZVNjb3BlLCB0ZW1wb3Jhcnk6IGJvb2xlYW4pOiBzdHJpbmcgezwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+MTgzMTogICBpZiAodGVtcG9yYXJ5KSB7PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj4xODMyOiAgIHJldHVybiB0aGlzLmdldFRlbXBvcmFyeURpcigmcXVvdDtucG0mcXVvdDspOzwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+MTg1NDogICB9PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj4xODU1OiAgIDwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+MTg1NjogcHJpdmF0ZSBnZXROcG1JbnN0YWxsUGF0aChzb3VyY2U6IE5wbVNvdXJjZSwgc2NvcGU6IFNvdXJjZVNjb3BlKTogc3RyaW5nIHs8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjE4NTc6ICAgaWYgKHNjb3BlID09PSAmcXVvdDt0ZW1wb3JhcnkmcXVvdDspIHs8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjE4NTg6ICAgcmV0dXJuIGpvaW4odGhpcy5nZXRUZW1wb3JhcnlEaXIoJnF1b3Q7bnBtJnF1b3Q7KSwgJnF1b3Q7bm9kZV9tb2R1bGVzJnF1b3Q7LCBzb3VyY2UubmFtZSk7PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj4xODY0OiAgIH08L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjE4NjU6ICAgPC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj4xODY2OiBwcml2YXRlIGdldEdpdEluc3RhbGxQYXRoKHNvdXJjZTogR2l0U291cmNlLCBzY29wZTogU291cmNlU2NvcGUpOiBzdHJpbmcgezwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+MTg2NzogICBpZiAoc2NvcGUgPT09ICZxdW90O3RlbXBvcmFyeSZxdW90Oykgezwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+MTg2ODogICByZXR1cm4gdGhpcy5nZXRUZW1wb3JhcnlEaXIoYGdpdC0ke3NvdXJjZS5ob3N0fWAsIHNvdXJjZS5wYXRoKTs8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjE4NzQ6ICAgfTwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+MTg3NTogICA8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjE4NzY6IHByaXZhdGUgZ2V0R2l0SW5zdGFsbFJvb3Qoc2NvcGU6IFNvdXJjZVNjb3BlKTogc3RyaW5nIHwgdW5kZWZpbmVkIHs8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjE4Nzc6ICAgaWYgKHNjb3BlID09PSAmcXVvdDt0ZW1wb3JhcnkmcXVvdDspIHs8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjE4Nzg6ICAgcmV0dXJuIHVuZGVmaW5lZDs8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjE4OTI6ICAgfTwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+MTg5MzogICA8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjE4OTQ6IHByaXZhdGUgZ2V0QmFzZURpckZvclNjb3BlKHNjb3BlOiBTb3VyY2VTY29wZSk6IHN0cmluZyB7PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj4xODk1OiAgIGlmIChzY29wZSA9PT0gJnF1b3Q7cHJvamVjdCZxdW90Oykgezwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUlOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+MTg5NjogICByZXR1cm4gam9pbih0aGlzLmN3ZCwgQ09ORklHX0RJUl9OQU1FKTs8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDc0LDk0LDEyOSlcIj5jb3JlL3NvdXJjZS1pbmZvLnRzOjwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+MTogICBpbXBvcnQgdHlwZSB7IFBhdGhNZXRhZGF0YSB9IGZyb20gJnF1b3Q7Li9wYWNrYWdlLW1hbmFnZXIuanMmcXVvdDs7PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj4yOiAgIDwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+MzogZXhwb3J0IHR5cGUgU291cmNlU2NvcGUgPSAmcXVvdDt1c2VyJnF1b3Q7IHwgJnF1b3Q7cHJvamVjdCZxdW90OyB8ICZxdW90O3RlbXBvcmFyeSZxdW90Ozs8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjQ6ICAgZXhwb3J0IHR5cGUgU291cmNlT3JpZ2luID0gJnF1b3Q7cGFja2FnZSZxdW90OyB8ICZxdW90O3RvcC1sZXZlbCZxdW90Ozs8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjU6ICAgPC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj43OiAgIHBhdGg6IHN0cmluZzs8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjg6ICAgc291cmNlOiBzdHJpbmc7PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj45OiBzY29wZTogU291cmNlU2NvcGU7PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj4xMDogICBvcmlnaW46IFNvdXJjZU9yaWdpbjs8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjExOiAgIGJhc2VEaXI/OiBzdHJpbmc7PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj4yNjogICBvcHRpb25zOiB7PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj4yNzogICBzb3VyY2U6IHN0cmluZzs8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjI4OiBzY29wZT86IFNvdXJjZVNjb3BlOzwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+Mjk6ICAgb3JpZ2luPzogU291cmNlT3JpZ2luOzwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUlOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+MzA6ICAgYmFzZURpcj86IHN0cmluZzs8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPiZuYnNwOzwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYig2MSwxMDgsMzcpXCI+bWF0Y2hlczogMzg8L3NwYW4+PC9kaXY+In0sImNhbGxfWW1IYU9sMFZsMGZBa0dNa2ltU2ppaDAxfGZjXzAyN2YxZWExNWRlZjM1MDUwMTY5ZjMwZTI3MzI0ODgxOTE5Y2I1YjE0MDQ0NThjYzRiIjp7ImNhbGxIdG1sIjoiPGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDc0LDk0LDEyOSlcIj48L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoNzQsOTQsMTI5KTtmb250LXdlaWdodDpib2xkXCI+R3JlcDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYig3NCw5NCwxMjkpXCI+PC9zcGFuPiA8c3BhbiBzdHlsZT1cImNvbG9yOnJnYig3NCw5NCwxMjkpXCI+L2Z1bmN0aW9uIGdldEhvbWVEaXIvPC9zcGFuPiA8c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+aW49PC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDExNywxMjIsMTMwKVwiPnBhY2thZ2VzL2NvZGluZy1hZ2VudC9zcmMvY29yZS9wYWNrYWdlLW1hbmFnZXIudHM8L3NwYW4+IDxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj5jdHg9PC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDExNywxMjIsMTMwKVwiPjI8L3NwYW4+ICAgICAgICAgICAgICAgPC9kaXY+IiwicmVzdWx0SHRtbEV4cGFuZGVkIjoiPGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDc0LDk0LDEyOSlcIj5wYWNrYWdlLW1hbmFnZXIudHM6PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj4yMDI6ICAgfTwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+MjAzOiAgIDwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+MjA0OiBmdW5jdGlvbiBnZXRIb21lRGlyKCk6IHN0cmluZyB7PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj4yMDU6ICAgcmV0dXJuIHByb2Nlc3MuZW52LkhPTUUgfHwgaG9tZWRpcigpOzwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUlOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+MjA2OiAgIH08L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPiZuYnNwOzwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYig2MSwxMDgsMzcpXCI+bWF0Y2hlczogMTwvc3Bhbj48L2Rpdj4ifSwiY2FsbF85U3RHNndaenhJSW5UV1dSd2gzcklkN3Z8ZmNfMDI3ZjFlYTE1ZGVmMzUwNTAxNjlmMzc2OTBhOWJjODE5MWFlZGE5NjJiNTI3NDIwZjgiOnsiY2FsbEh0bWwiOiI8ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoNzQsOTQsMTI5KVwiPjwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYig3NCw5NCwxMjkpO2ZvbnQtd2VpZ2h0OmJvbGRcIj5HcmVwPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDc0LDk0LDEyOSlcIj48L3NwYW4+IDxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDc0LDk0LDEyOSlcIj4vY29sbGVjdEFuY2VzdG9yQWdlbnRzU2tpbGxEaXJzfGZpbmRHaXRSZXBvUm9vdHx3aGlsZSBcXCh0cnVlXFwpfGRpcm5hbWVcXChkaXJcXCkvPC9zcGFuPiAgICAgICAgICAgICAgICAgPC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj5pbj08L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTE3LDEyMiwxMzApXCI+cGFja2FnZXMvY29kaW5nLWFnZW50L3NyYzwvc3Bhbj4gPHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPmdsb2I9PC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDExNywxMjIsMTMwKVwiPioudHM8L3NwYW4+IDxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj5saW1pdD08L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTE3LDEyMiwxMzApXCI+MTAwPC9zcGFuPiA8c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+Y3R4PTwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMTcsMTIyLDEzMClcIj4zPC9zcGFuPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4iLCJyZXN1bHRIdG1sQ29sbGFwc2VkIjoiPGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDc0LDk0LDEyOSlcIj5jb25maWcudHM6PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj4yMTc6ICAgfTwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+MjE4OiAgIC8vIE5vZGUuanM6IHdhbGsgdXAgZnJvbSBfX2Rpcm5hbWUgdW50aWwgd2UgZmluZCBwYWNrYWdlLmpzb248L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjIxOTogICBsZXQgZGlyID0gX19kaXJuYW1lOzwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+MjIwOiB3aGlsZSAoZGlyICE9PSBkaXJuYW1lKGRpcikpIHs8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjIyMTogICBpZiAoZXhpc3RzU3luYyhqb2luKGRpciwgJnF1b3Q7cGFja2FnZS5qc29uJnF1b3Q7KSkpIHs8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjIyMjogICByZXR1cm4gZGlyOzwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+MjIzOiAgIH08L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjIyMTogICBpZiAoZXhpc3RzU3luYyhqb2luKGRpciwgJnF1b3Q7cGFja2FnZS5qc29uJnF1b3Q7KSkpIHs8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjIyMjogICByZXR1cm4gZGlyOzwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+MjIzOiAgIH08L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjIyNDogZGlyID0gZGlybmFtZShkaXIpOzwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+MjI1OiAgIH08L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjIyNjogICAvLyBGYWxsYmFjayAoc2hvdWxkbiYjMDM5O3QgaGFwcGVuKTwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUlOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+MjI3OiAgIHJldHVybiBfX2Rpcm5hbWU7PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYig3NCw5NCwxMjkpXCI+Y29yZS9wYWNrYWdlLW1hbmFnZXIudHM6PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj40MDQ6ICAgcmV0dXJuIGNvbGxlY3RTa2lsbEVudHJpZXMoZGlyLCBtb2RlKTs8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjQwNTogICB9PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj40MDY6ICAgPC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj40MDc6IGZ1bmN0aW9uIGZpbmRHaXRSZXBvUm9vdChzdGFydERpcjogc3RyaW5nKTogc3RyaW5nIHwgbnVsbCB7PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj40MDg6ICAgbGV0IGRpciA9IHJlc29sdmUoc3RhcnREaXIpOzwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+NDA5OiAgIHdoaWxlICh0cnVlKSB7PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj40MTA6ICAgaWYgKGV4aXN0c1N5bmMoam9pbihkaXIsICZxdW90Oy5naXQmcXVvdDspKSkgezwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+NDA2OiAgIDwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+NDA3OiAgIGZ1bmN0aW9uIGZpbmRHaXRSZXBvUm9vdChzdGFydERpcjogc3RyaW5nKTogc3RyaW5nIHwgbnVsbCB7PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj40MDg6ICAgbGV0IGRpciA9IHJlc29sdmUoc3RhcnREaXIpOzwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+NDA5OiB3aGlsZSAodHJ1ZSkgezwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+NDEwOiAgIGlmIChleGlzdHNTeW5jKGpvaW4oZGlyLCAmcXVvdDsuZ2l0JnF1b3Q7KSkpIHs8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjQxMTogICByZXR1cm4gZGlyOzwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+NDEyOiAgIH08L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjQxMDogICBpZiAoZXhpc3RzU3luYyhqb2luKGRpciwgJnF1b3Q7LmdpdCZxdW90OykpKSB7PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSU4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj40MTE6ICAgcmV0dXJuIGRpcjs8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPiZuYnNwOzwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+MTEwIG1vcmUgbWF0Y2hlcywgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDExNywxMjIsMTMwKVwiPmN0cmwrbzwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+IHRvIGV4cGFuZDwvc3Bhbj4gLSA8c3BhbiBzdHlsZT1cImNvbG9yOnJnYig2MSwxMDgsMzcpXCI+bWF0Y2hlczogMjA8L3NwYW4+PC9kaXY+IiwicmVzdWx0SHRtbEV4cGFuZGVkIjoiPGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDc0LDk0LDEyOSlcIj5jb25maWcudHM6PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj4yMTc6ICAgfTwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+MjE4OiAgIC8vIE5vZGUuanM6IHdhbGsgdXAgZnJvbSBfX2Rpcm5hbWUgdW50aWwgd2UgZmluZCBwYWNrYWdlLmpzb248L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjIxOTogICBsZXQgZGlyID0gX19kaXJuYW1lOzwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+MjIwOiB3aGlsZSAoZGlyICE9PSBkaXJuYW1lKGRpcikpIHs8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjIyMTogICBpZiAoZXhpc3RzU3luYyhqb2luKGRpciwgJnF1b3Q7cGFja2FnZS5qc29uJnF1b3Q7KSkpIHs8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjIyMjogICByZXR1cm4gZGlyOzwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+MjIzOiAgIH08L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjIyMTogICBpZiAoZXhpc3RzU3luYyhqb2luKGRpciwgJnF1b3Q7cGFja2FnZS5qc29uJnF1b3Q7KSkpIHs8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjIyMjogICByZXR1cm4gZGlyOzwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+MjIzOiAgIH08L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjIyNDogZGlyID0gZGlybmFtZShkaXIpOzwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+MjI1OiAgIH08L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjIyNjogICAvLyBGYWxsYmFjayAoc2hvdWxkbiYjMDM5O3QgaGFwcGVuKTwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUlOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+MjI3OiAgIHJldHVybiBfX2Rpcm5hbWU7PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYig3NCw5NCwxMjkpXCI+Y29yZS9mb290ZXItZGF0YS1wcm92aWRlci50czo8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjE1OiAgICovPC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj4xNjogICBmdW5jdGlvbiBmaW5kR2l0UGF0aHMoY3dkOiBzdHJpbmcpOiBHaXRQYXRocyB8IG51bGwgezwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+MTc6ICAgbGV0IGRpciA9IGN3ZDs8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjE4OiB3aGlsZSAodHJ1ZSkgezwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+MTk6ICAgY29uc3QgZ2l0UGF0aCA9IGpvaW4oZGlyLCAmcXVvdDsuZ2l0JnF1b3Q7KTs8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjIwOiAgIGlmIChleGlzdHNTeW5jKGdpdFBhdGgpKSB7PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj4yMTogICB0cnkgezwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+NDE6ICAgcmV0dXJuIG51bGw7PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj40MjogICB9PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj40MzogICB9PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj40NDogY29uc3QgcGFyZW50ID0gZGlybmFtZShkaXIpOzwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+NDU6ICAgaWYgKHBhcmVudCA9PT0gZGlyKSByZXR1cm4gbnVsbDs8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjQ2OiAgIGRpciA9IHBhcmVudDs8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJTilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjQ3OiAgIH08L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDc0LDk0LDEyOSlcIj5jb3JlL3BhY2thZ2UtbWFuYWdlci50czo8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjQwNDogICByZXR1cm4gY29sbGVjdFNraWxsRW50cmllcyhkaXIsIG1vZGUpOzwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+NDA1OiAgIH08L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjQwNjogICA8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjQwNzogZnVuY3Rpb24gZmluZEdpdFJlcG9Sb290KHN0YXJ0RGlyOiBzdHJpbmcpOiBzdHJpbmcgfCBudWxsIHs8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjQwODogICBsZXQgZGlyID0gcmVzb2x2ZShzdGFydERpcik7PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj40MDk6ICAgd2hpbGUgKHRydWUpIHs8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjQxMDogICBpZiAoZXhpc3RzU3luYyhqb2luKGRpciwgJnF1b3Q7LmdpdCZxdW90OykpKSB7PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj40MDY6ICAgPC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj40MDc6ICAgZnVuY3Rpb24gZmluZEdpdFJlcG9Sb290KHN0YXJ0RGlyOiBzdHJpbmcpOiBzdHJpbmcgfCBudWxsIHs8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjQwODogICBsZXQgZGlyID0gcmVzb2x2ZShzdGFydERpcik7PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj40MDk6IHdoaWxlICh0cnVlKSB7PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj40MTA6ICAgaWYgKGV4aXN0c1N5bmMoam9pbihkaXIsICZxdW90Oy5naXQmcXVvdDspKSkgezwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+NDExOiAgIHJldHVybiBkaXI7PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj40MTI6ICAgfTwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+NDEwOiAgIGlmIChleGlzdHNTeW5jKGpvaW4oZGlyLCAmcXVvdDsuZ2l0JnF1b3Q7KSkpIHs8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjQxMTogICByZXR1cm4gZGlyOzwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+NDEyOiAgIH08L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjQxMzogY29uc3QgcGFyZW50ID0gZGlybmFtZShkaXIpOzwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+NDE0OiAgIGlmIChwYXJlbnQgPT09IGRpcikgezwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+NDE1OiAgIHJldHVybiBudWxsOzwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+NDE2OiAgIH08L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjQxODogICB9PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj40MTk6ICAgfTwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+NDIwOiAgIDwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+NDIxOiBmdW5jdGlvbiBjb2xsZWN0QW5jZXN0b3JBZ2VudHNTa2lsbERpcnMoc3RhcnREaXI6IHN0cmluZyk6IHN0cmluZ1tdIHs8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjQyMjogICBjb25zdCBza2lsbERpcnM6IHN0cmluZ1tdID0gW107PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj40MjM6ICAgY29uc3QgcmVzb2x2ZWRTdGFydERpciA9IHJlc29sdmUoc3RhcnREaXIpOzwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+NDI0OiAgIGNvbnN0IGdpdFJlcG9Sb290ID0gZmluZEdpdFJlcG9Sb290KHJlc29sdmVkU3RhcnREaXIpOzwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+NDIxOiAgIGZ1bmN0aW9uIGNvbGxlY3RBbmNlc3RvckFnZW50c1NraWxsRGlycyhzdGFydERpcjogc3RyaW5nKTogc3RyaW5nW10gezwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+NDIyOiAgIGNvbnN0IHNraWxsRGlyczogc3RyaW5nW10gPSBbXTs8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjQyMzogICBjb25zdCByZXNvbHZlZFN0YXJ0RGlyID0gcmVzb2x2ZShzdGFydERpcik7PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj40MjQ6IGNvbnN0IGdpdFJlcG9Sb290ID0gZmluZEdpdFJlcG9Sb290KHJlc29sdmVkU3RhcnREaXIpOzwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+NDI1OiAgIDwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+NDI2OiAgIGxldCBkaXIgPSByZXNvbHZlZFN0YXJ0RGlyOzwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+NDI3OiAgIHdoaWxlICh0cnVlKSB7PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj40MjQ6ICAgY29uc3QgZ2l0UmVwb1Jvb3QgPSBmaW5kR2l0UmVwb1Jvb3QocmVzb2x2ZWRTdGFydERpcik7PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj40MjU6ICAgPC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj40MjY6ICAgbGV0IGRpciA9IHJlc29sdmVkU3RhcnREaXI7PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj40Mjc6IHdoaWxlICh0cnVlKSB7PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj40Mjg6ICAgc2tpbGxEaXJzLnB1c2goam9pbihkaXIsICZxdW90Oy5hZ2VudHMmcXVvdDssICZxdW90O3NraWxscyZxdW90OykpOzwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+NDI5OiAgIGlmIChnaXRSZXBvUm9vdCAmYW1wOyZhbXA7IGRpciA9PT0gZ2l0UmVwb1Jvb3QpIHs8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjQzMDogICBicmVhazs8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjQyOTogICBpZiAoZ2l0UmVwb1Jvb3QgJmFtcDsmYW1wOyBkaXIgPT09IGdpdFJlcG9Sb290KSB7PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj40MzA6ICAgYnJlYWs7PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj40MzE6ICAgfTwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+NDMyOiBjb25zdCBwYXJlbnQgPSBkaXJuYW1lKGRpcik7PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj40MzM6ICAgaWYgKHBhcmVudCA9PT0gZGlyKSB7PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj40MzQ6ICAgYnJlYWs7PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj40MzU6ICAgfTwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+MTU4MjogICBjb25zdCB3b3JrZXJDb3VudCA9IE1hdGgubWF4KDEsIE1hdGgubWluKGxpbWl0LCB0YXNrcy5sZW5ndGgpKTs8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjE1ODM6ICAgPC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj4xNTg0OiAgIGNvbnN0IHdvcmtlciA9IGFzeW5jICgpID0mZ3Q7IHs8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjE1ODU6IHdoaWxlICh0cnVlKSB7PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj4xNTg2OiAgIGNvbnN0IGluZGV4ID0gbmV4dEluZGV4Ozwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+MTU4NzogICBuZXh0SW5kZXggKz0gMTs8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjE1ODg6ICAgaWYgKGluZGV4ICZndDs9IHRhc2tzLmxlbmd0aCkgezwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+MjE2MzogICB9Ozwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+MjE2NDogICBjb25zdCB1c2VyQWdlbnRzQmFzZURpciA9IGpvaW4oZ2V0SG9tZURpcigpLCAmcXVvdDsuYWdlbnRzJnF1b3Q7KTs8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjIxNjU6ICAgY29uc3QgdXNlckFnZW50c1NraWxsc0RpciA9IGpvaW4odXNlckFnZW50c0Jhc2VEaXIsICZxdW90O3NraWxscyZxdW90Oyk7PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj4yMTY2OiBjb25zdCBwcm9qZWN0QWdlbnRzU2tpbGxEaXJzID0gY29sbGVjdEFuY2VzdG9yQWdlbnRzU2tpbGxEaXJzKHRoaXMuY3dkKS5maWx0ZXIoPC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj4yMTY3OiAgIChkaXIpID0mZ3Q7IHJlc29sdmUoZGlyKSAhPT0gcmVzb2x2ZSh1c2VyQWdlbnRzU2tpbGxzRGlyKSw8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjIxNjg6ICAgKTs8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJTilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjIxNjk6ICAgPC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYig3NCw5NCwxMjkpXCI+Y29yZS9yZXNvdXJjZS1sb2FkZXIudHM6PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj45NDogICBsZXQgY3VycmVudERpciA9IHJlc29sdmVkQ3dkOzwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+OTU6ICAgY29uc3Qgcm9vdCA9IHJlc29sdmUoJnF1b3Q7LyZxdW90Oyk7PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj45NjogICA8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjk3OiB3aGlsZSAodHJ1ZSkgezwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+OTg6ICAgY29uc3QgY29udGV4dEZpbGUgPSBsb2FkQ29udGV4dEZpbGVGcm9tRGlyKGN1cnJlbnREaXIpOzwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+OTk6ICAgaWYgKGNvbnRleHRGaWxlICZhbXA7JmFtcDsgIXNlZW5QYXRocy5oYXMoY29udGV4dEZpbGUucGF0aCkpIHs8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJTilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjEwMDogICBhbmNlc3RvckNvbnRleHRGaWxlcy51bnNoaWZ0KGNvbnRleHRGaWxlKTs8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDc0LDk0LDEyOSlcIj5tb2Rlcy9pbnRlcmFjdGl2ZS9jb21wb25lbnRzL3RyZWUtc2VsZWN0b3IudHM6PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj4xMDMwOiAgIGNvbnN0IGluZGV4QnlFbnRyeUlkID0gbmV3IE1hcCh0aGlzLmZpbHRlcmVkTm9kZXMubWFwKChub2RlLCBpKSA9Jmd0OyBbbm9kZS5ub2RlLmVudHJ5LmlkLDwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+ICAgIDxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPmldKSk7PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj4xMDMxOiAgIGxldCBjdXJyZW50SWQ6IHN0cmluZyA9IHNlbGVjdGVkSWQ7PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj4xMDMyOiAgIGlmIChkaXJlY3Rpb24gPT09ICZxdW90O2Rvd24mcXVvdDspIHs8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjEwMzM6IHdoaWxlICh0cnVlKSB7PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj4xMDM0OiAgIGNvbnN0IGNoaWxkcmVuOiBzdHJpbmdbXSA9IHRoaXMudmlzaWJsZUNoaWxkcmVuTWFwLmdldChjdXJyZW50SWQpID8/IFtdOzwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+MTAzNTogICBpZiAoY2hpbGRyZW4ubGVuZ3RoID09PSAwKSByZXR1cm4gaW5kZXhCeUVudHJ5SWQuZ2V0KGN1cnJlbnRJZCkhOzwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+MTAzNjogICBpZiAoY2hpbGRyZW4ubGVuZ3RoICZndDsgMSkgcmV0dXJuIGluZGV4QnlFbnRyeUlkLmdldChjaGlsZHJlblswXSkhOzwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+MTAzOTogICB9PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj4xMDQwOiAgIDwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+MTA0MTogICAvLyBkaXJlY3Rpb24gPT09ICZxdW90O3VwJnF1b3Q7PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj4xMDQyOiB3aGlsZSAodHJ1ZSkgezwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+MTA0MzogICBjb25zdCBwYXJlbnRJZDogc3RyaW5nIHwgbnVsbCA9IHRoaXMudmlzaWJsZVBhcmVudE1hcC5nZXQoY3VycmVudElkKSA/PyBudWxsOzwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+MTA0NDogICBpZiAocGFyZW50SWQgPT09IG51bGwpIHJldHVybiBpbmRleEJ5RW50cnlJZC5nZXQoY3VycmVudElkKSE7PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSU4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj4xMDQ1OiAgIGNvbnN0IGNoaWxkcmVuID0gdGhpcy52aXNpYmxlQ2hpbGRyZW5NYXAuZ2V0KHBhcmVudElkKSA/PyBbXTs8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDc0LDk0LDEyOSlcIj5tb2Rlcy9pbnRlcmFjdGl2ZS9pbnRlcmFjdGl2ZS1tb2RlLnRzOjwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+NzQyOiAgIH08L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjc0MzogICA8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjc0NDogICAvLyBNYWluIGludGVyYWN0aXZlIGxvb3A8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjc0NTogd2hpbGUgKHRydWUpIHs8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjc0NjogICBjb25zdCB1c2VySW5wdXQgPSBhd2FpdCB0aGlzLmdldFVzZXJJbnB1dCgpOzwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+NzQ3OiAgIHRyeSB7PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj43NDg6ICAgYXdhaXQgdGhpcy5zZXNzaW9uLnByb21wdCh1c2VySW5wdXQpOzwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+NDE1NTogICA8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjQxNTY6ICAgLy8gQ2hlY2sgaWYgd2Ugc2hvdWxkIHNraXAgdGhlIHByb21wdCAodXNlciBwcmVmZXJlbmNlIHRvIGFsd2F5cyBkZWZhdWx0IHRvIG5vIHN1bW1hcnkpPC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj40MTU3OiAgIGlmICghdGhpcy5zZXR0aW5nc01hbmFnZXIuZ2V0QnJhbmNoU3VtbWFyeVNraXBQcm9tcHQoKSkgezwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+NDE1ODogd2hpbGUgKHRydWUpIHs8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjQxNTk6ICAgY29uc3Qgc3VtbWFyeUNob2ljZSA9IGF3YWl0IHRoaXMuc2hvd0V4dGVuc2lvblNlbGVjdG9yKCZxdW90O1N1bW1hcml6ZSBicmFuY2g/JnF1b3Q7LCBbPC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj40MTYwOiAgICZxdW90O05vIHN1bW1hcnkmcXVvdDssPC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSU4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj40MTYxOiAgICZxdW90O1N1bW1hcml6ZSZxdW90Oyw8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDc0LDk0LDEyOSlcIj5tb2Rlcy9ycGMvanNvbmwudHM6PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj4yOTogICBjb25zdCBvbkRhdGEgPSAoY2h1bms6IHN0cmluZyB8IEJ1ZmZlcikgPSZndDsgezwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+MzA6ICAgYnVmZmVyICs9IHR5cGVvZiBjaHVuayA9PT0gJnF1b3Q7c3RyaW5nJnF1b3Q7ID8gY2h1bmsgOiBkZWNvZGVyLndyaXRlKGNodW5rKTs8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjMxOiAgIDwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+MzI6IHdoaWxlICh0cnVlKSB7PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj4zMzogICBjb25zdCBuZXdsaW5lSW5kZXggPSBidWZmZXIuaW5kZXhPZigmcXVvdDtcXG4mcXVvdDspOzwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+MzQ6ICAgaWYgKG5ld2xpbmVJbmRleCA9PT0gLTEpIHs8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJTilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjM1OiAgIHJldHVybjs8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDc0LDk0LDEyOSlcIj51dGlscy9pbWFnZS1yZXNpemUudHM6PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj4xMjI6ICAgbGV0IGN1cnJlbnRXaWR0aCA9IHRhcmdldFdpZHRoOzwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+MTIzOiAgIGxldCBjdXJyZW50SGVpZ2h0ID0gdGFyZ2V0SGVpZ2h0Ozwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+MTI0OiAgIDwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+MTI1OiB3aGlsZSAodHJ1ZSkgezwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+MTI2OiAgIGNvbnN0IGNhbmRpZGF0ZXMgPSB0cnlFbmNvZGluZ3MoY3VycmVudFdpZHRoLCBjdXJyZW50SGVpZ2h0LCBxdWFsaXR5U3RlcHMpOzwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+MTI3OiAgIGZvciAoY29uc3QgY2FuZGlkYXRlIG9mIGNhbmRpZGF0ZXMpIHs8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJTilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjEyODogICBpZiAoY2FuZGlkYXRlLmVuY29kZWRTaXplICZsdDsgb3B0cy5tYXhCeXRlcykgezwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+Jm5ic3A7PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDYxLDEwOCwzNylcIj5tYXRjaGVzOiAyMDwvc3Bhbj48L2Rpdj4ifSwiY2FsbF9tVFBoaUg2UzhFUnVWcXFaQXE3MVFETm18ZmNfMDI3ZjFlYTE1ZGVmMzUwNTAxNjlmMzc3ODFmODgwODE5MTljZmZmZTU3ZTI0NzlmMjEiOnsiY2FsbEh0bWwiOiI8ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoNzQsOTQsMTI5KVwiPjwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYig3NCw5NCwxMjkpO2ZvbnQtd2VpZ2h0OmJvbGRcIj5GaW5kPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDc0LDk0LDEyOSlcIj48L3NwYW4+IDxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDc0LDk0LDEyOSlcIj4qcGFja2FnZSptYW5hZ2VyKi50ZXN0LnRzPC9zcGFuPiA8c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+aW49PC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDExNywxMjIsMTMwKVwiPnBhY2thZ2VzL2NvZGluZy1hZ2VudC90ZXN0PC9zcGFuPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4iLCJyZXN1bHRIdG1sRXhwYW5kZWQiOiI8ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+cGFja2FnZS1tYW5hZ2VyLXNzaC50ZXN0LnRzPC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj5wYWNrYWdlLW1hbmFnZXIudGVzdC50czwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+Jm5ic3A7PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDYxLDEwOCwzNylcIj5yZXN1bHRzOiAyPC9zcGFuPjwvZGl2PiJ9LCJjYWxsX2Q4UDM0SHZ4UEpoWEtqWnRNNnVYZzhaUnxmY18wMjdmMWVhMTVkZWYzNTA1MDE2OWYzNzc4MWY4OTQ4MTkxYjU1OTlhMDk2N2Q2MTRkMCI6eyJjYWxsSHRtbCI6IjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYig3NCw5NCwxMjkpXCI+PC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDc0LDk0LDEyOSk7Zm9udC13ZWlnaHQ6Ym9sZFwiPkZpbmQ8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoNzQsOTQsMTI5KVwiPjwvc3Bhbj4gPHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoNzQsOTQsMTI5KVwiPipjb25maWcqc2VsZWN0b3IqLnRlc3QudHM8L3NwYW4+IDxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj5pbj08L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTE3LDEyMiwxMzApXCI+cGFja2FnZXMvY29kaW5nLWFnZW50L3Rlc3Q8L3NwYW4+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PiIsInJlc3VsdEh0bWxFeHBhbmRlZCI6IjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+Tm8gZmlsZXMgZm91bmQgbWF0Y2hpbmcgdGhlIHBhdHRlcm4uPC9zcGFuPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4ifSwiY2FsbF9lRUlvUGtPNk96eGRib3RrTHg0akJEMXR8ZmNfMDI3ZjFlYTE1ZGVmMzUwNTAxNjlmMzc3ODFmODk4ODE5MTkyZGQ3NDJhMzQ3M2U2NTkiOnsiY2FsbEh0bWwiOiI8ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoNzQsOTQsMTI5KVwiPjwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYig3NCw5NCwxMjkpO2ZvbnQtd2VpZ2h0OmJvbGRcIj5HcmVwPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDc0LDk0LDEyOSlcIj48L3NwYW4+IDxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDc0LDk0LDEyOSlcIj4vRGVmYXVsdFBhY2thZ2VNYW5hZ2VyfFBhY2thZ2VNYW5hZ2VyfHNlbGVjdENvbmZpZ3xDb25maWdTZWxlY3RvckNvbXBvbmVudHxwaSAgICAgICAgICAgICAgICAgIDwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoNzQsOTQsMTI5KVwiPmNvbmZpZ3xyZXNvbHZlZFBhdGhzLzwvc3Bhbj4gPHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPmluPTwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMTcsMTIyLDEzMClcIj5wYWNrYWdlcy9jb2RpbmctYWdlbnQvdGVzdDwvc3Bhbj4gPHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPmdsb2I9PC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDExNywxMjIsMTMwKVwiPioudGVzdC50czwvc3Bhbj4gPHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPmxpbWl0PTwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMTcsMTIyLDEzMClcIj4xMDA8L3NwYW4+IDxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj5jdHg9PC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDExNywxMjIsMTMwKVwiPjI8L3NwYW4+ICAgICAgICAgICAgICAgICAgPC9kaXY+IiwicmVzdWx0SHRtbENvbGxhcHNlZCI6IjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYig3NCw5NCwxMjkpXCI+Z2l0LXVwZGF0ZS50ZXN0LnRzOjwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+MjogICAqIFRlc3RzIGZvciBnaXQtYmFzZWQgZXh0ZW5zaW9uIHVwZGF0ZXMsIHNwZWNpZmljYWxseSBoYW5kbGluZyBmb3JjZS1wdXNoIHNjZW5hcmlvcy48L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjM6ICAgKjwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+NDogKiBUaGVzZSB0ZXN0cyB2ZXJpZnkgdGhhdCBEZWZhdWx0UGFja2FnZU1hbmFnZXIudXBkYXRlKCkgaGFuZGxlczo8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjU6ICAgKiAtIE5vcm1hbCBnaXQgdXBkYXRlcyAobm8gZm9yY2UtcHVzaCk8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjY6ICAgKiAtIEZvcmNlLXB1c2hlZCByZW1vdGVzIGdyYWNlZnVsbHkgKGN1cnJlbnRseSBmYWlscywgZml4IG5lZWRlZCk8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjEzOiAgIGltcG9ydCB7IGpvaW4gfSBmcm9tICZxdW90O25vZGU6cGF0aCZxdW90Ozs8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjE0OiAgIGltcG9ydCB7IGFmdGVyRWFjaCwgYmVmb3JlRWFjaCwgZGVzY3JpYmUsIGV4cGVjdCwgaXQgfSBmcm9tICZxdW90O3ZpdGVzdCZxdW90Ozs8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjE1OiBpbXBvcnQgeyBEZWZhdWx0UGFja2FnZU1hbmFnZXIgfSBmcm9tICZxdW90Oy4uL3NyYy9jb3JlL3BhY2thZ2UtbWFuYWdlci5qcyZxdW90Ozs8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjE2OiAgIGltcG9ydCB7IFNldHRpbmdzTWFuYWdlciB9IGZyb20gJnF1b3Q7Li4vc3JjL2NvcmUvc2V0dGluZ3MtbWFuYWdlci5qcyZxdW90Ozs8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjE3OiAgIDwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+NTI6ICAgfTwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+NTM6ICAgPC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj41NDogZGVzY3JpYmUoJnF1b3Q7RGVmYXVsdFBhY2thZ2VNYW5hZ2VyIGdpdCB1cGRhdGUmcXVvdDssICgpID0mZ3Q7IHs8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjU1OiAgIGxldCB0ZW1wRGlyOiBzdHJpbmc7PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSU4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj41NjogICBsZXQgcmVtb3RlRGlyOiBzdHJpbmc7IC8vIFNpbXVsYXRlcyB0aGUgJnF1b3Q7cmVtb3RlJnF1b3Q7IHJlcG9zaXRvcnk8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDc0LDk0LDEyOSlcIj5wYWNrYWdlLW1hbmFnZXItc3NoLnRlc3QudHM6PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj4zOiAgIGltcG9ydCB7IGpvaW4gfSBmcm9tICZxdW90O25vZGU6cGF0aCZxdW90Ozs8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjQ6ICAgaW1wb3J0IHsgYWZ0ZXJFYWNoLCBiZWZvcmVFYWNoLCBkZXNjcmliZSwgZXhwZWN0LCBpdCB9IGZyb20gJnF1b3Q7dml0ZXN0JnF1b3Q7Ozwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+NTogaW1wb3J0IHsgRGVmYXVsdFBhY2thZ2VNYW5hZ2VyIH0gZnJvbSAmcXVvdDsuLi9zcmMvY29yZS9wYWNrYWdlLW1hbmFnZXIuanMmcXVvdDs7PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj42OiAgIGltcG9ydCB7IFNldHRpbmdzTWFuYWdlciB9IGZyb20gJnF1b3Q7Li4vc3JjL2NvcmUvc2V0dGluZ3MtbWFuYWdlci5qcyZxdW90Ozs8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjc6ICAgPC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj4xMDogICBsZXQgYWdlbnREaXI6IHN0cmluZzs8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjExOiAgIGxldCBzZXR0aW5nc01hbmFnZXI6IFNldHRpbmdzTWFuYWdlcjs8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjEyOiBsZXQgcGFja2FnZU1hbmFnZXI6IERlZmF1bHRQYWNrYWdlTWFuYWdlcjs8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjEzOiAgIDwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+MTQ6ICAgYmVmb3JlRWFjaCgoKSA9Jmd0OyB7PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj4xOTogICA8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjIwOiAgIHNldHRpbmdzTWFuYWdlciA9IFNldHRpbmdzTWFuYWdlci5pbk1lbW9yeSgpOzwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+MjE6IHBhY2thZ2VNYW5hZ2VyID0gbmV3IERlZmF1bHRQYWNrYWdlTWFuYWdlcih7PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj4yMjogICBjd2Q6IHRlbXBEaXIsPC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSU4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj4yMzogICBhZ2VudERpciw8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPiZuYnNwOzwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+NzUgbW9yZSBtYXRjaGVzLCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTE3LDEyMiwxMzApXCI+Y3RybCtvPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj4gdG8gZXhwYW5kPC9zcGFuPiAtIDxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDYxLDEwOCwzNylcIj5tYXRjaGVzOiAyMTwvc3Bhbj48L2Rpdj4iLCJyZXN1bHRIdG1sRXhwYW5kZWQiOiI8ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoNzQsOTQsMTI5KVwiPmdpdC11cGRhdGUudGVzdC50czo8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjI6ICAgKiBUZXN0cyBmb3IgZ2l0LWJhc2VkIGV4dGVuc2lvbiB1cGRhdGVzLCBzcGVjaWZpY2FsbHkgaGFuZGxpbmcgZm9yY2UtcHVzaCBzY2VuYXJpb3MuPC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj4zOiAgICo8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjQ6ICogVGhlc2UgdGVzdHMgdmVyaWZ5IHRoYXQgRGVmYXVsdFBhY2thZ2VNYW5hZ2VyLnVwZGF0ZSgpIGhhbmRsZXM6PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj41OiAgICogLSBOb3JtYWwgZ2l0IHVwZGF0ZXMgKG5vIGZvcmNlLXB1c2gpPC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj42OiAgICogLSBGb3JjZS1wdXNoZWQgcmVtb3RlcyBncmFjZWZ1bGx5IChjdXJyZW50bHkgZmFpbHMsIGZpeCBuZWVkZWQpPC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj4xMzogICBpbXBvcnQgeyBqb2luIH0gZnJvbSAmcXVvdDtub2RlOnBhdGgmcXVvdDs7PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj4xNDogICBpbXBvcnQgeyBhZnRlckVhY2gsIGJlZm9yZUVhY2gsIGRlc2NyaWJlLCBleHBlY3QsIGl0IH0gZnJvbSAmcXVvdDt2aXRlc3QmcXVvdDs7PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj4xNTogaW1wb3J0IHsgRGVmYXVsdFBhY2thZ2VNYW5hZ2VyIH0gZnJvbSAmcXVvdDsuLi9zcmMvY29yZS9wYWNrYWdlLW1hbmFnZXIuanMmcXVvdDs7PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj4xNjogICBpbXBvcnQgeyBTZXR0aW5nc01hbmFnZXIgfSBmcm9tICZxdW90Oy4uL3NyYy9jb3JlL3NldHRpbmdzLW1hbmFnZXIuanMmcXVvdDs7PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj4xNzogICA8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjUyOiAgIH08L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjUzOiAgIDwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+NTQ6IGRlc2NyaWJlKCZxdW90O0RlZmF1bHRQYWNrYWdlTWFuYWdlciBnaXQgdXBkYXRlJnF1b3Q7LCAoKSA9Jmd0OyB7PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj41NTogICBsZXQgdGVtcERpcjogc3RyaW5nOzwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+NTY6ICAgbGV0IHJlbW90ZURpcjogc3RyaW5nOyAvLyBTaW11bGF0ZXMgdGhlICZxdW90O3JlbW90ZSZxdW90OyByZXBvc2l0b3J5PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj41ODogICBsZXQgaW5zdGFsbGVkRGlyOiBzdHJpbmc7IC8vIFRoZSBpbnN0YWxsZWQgZXh0ZW5zaW9uIGRpcmVjdG9yeTwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+NTk6ICAgbGV0IHNldHRpbmdzTWFuYWdlcjogU2V0dGluZ3NNYW5hZ2VyOzwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+NjA6IGxldCBwYWNrYWdlTWFuYWdlcjogRGVmYXVsdFBhY2thZ2VNYW5hZ2VyOzwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+NjE6ICAgPC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj42MjogICAvLyBHaXQgc291cmNlIHRoYXQgbWFwcyB0byBvdXIgaW5zdGFsbGVkIGRpcmVjdG9yeSBzdHJ1Y3R1cmUuPC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj43NzogICA8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjc4OiAgIHNldHRpbmdzTWFuYWdlciA9IFNldHRpbmdzTWFuYWdlci5pbk1lbW9yeSgpOzwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+Nzk6IHBhY2thZ2VNYW5hZ2VyID0gbmV3IERlZmF1bHRQYWNrYWdlTWFuYWdlcih7PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj44MDogICBjd2Q6IHRlbXBEaXIsPC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSU4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj44MTogICBhZ2VudERpciw8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDc0LDk0LDEyOSlcIj5wYWNrYWdlLW1hbmFnZXItc3NoLnRlc3QudHM6PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj4zOiAgIGltcG9ydCB7IGpvaW4gfSBmcm9tICZxdW90O25vZGU6cGF0aCZxdW90Ozs8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjQ6ICAgaW1wb3J0IHsgYWZ0ZXJFYWNoLCBiZWZvcmVFYWNoLCBkZXNjcmliZSwgZXhwZWN0LCBpdCB9IGZyb20gJnF1b3Q7dml0ZXN0JnF1b3Q7Ozwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+NTogaW1wb3J0IHsgRGVmYXVsdFBhY2thZ2VNYW5hZ2VyIH0gZnJvbSAmcXVvdDsuLi9zcmMvY29yZS9wYWNrYWdlLW1hbmFnZXIuanMmcXVvdDs7PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj42OiAgIGltcG9ydCB7IFNldHRpbmdzTWFuYWdlciB9IGZyb20gJnF1b3Q7Li4vc3JjL2NvcmUvc2V0dGluZ3MtbWFuYWdlci5qcyZxdW90Ozs8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjc6ICAgPC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj4xMDogICBsZXQgYWdlbnREaXI6IHN0cmluZzs8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjExOiAgIGxldCBzZXR0aW5nc01hbmFnZXI6IFNldHRpbmdzTWFuYWdlcjs8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjEyOiBsZXQgcGFja2FnZU1hbmFnZXI6IERlZmF1bHRQYWNrYWdlTWFuYWdlcjs8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjEzOiAgIDwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+MTQ6ICAgYmVmb3JlRWFjaCgoKSA9Jmd0OyB7PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj4xOTogICA8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjIwOiAgIHNldHRpbmdzTWFuYWdlciA9IFNldHRpbmdzTWFuYWdlci5pbk1lbW9yeSgpOzwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+MjE6IHBhY2thZ2VNYW5hZ2VyID0gbmV3IERlZmF1bHRQYWNrYWdlTWFuYWdlcih7PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj4yMjogICBjd2Q6IHRlbXBEaXIsPC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSU4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj4yMzogICBhZ2VudERpciw8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDc0LDk0LDEyOSlcIj5wYWNrYWdlLW1hbmFnZXIudGVzdC50czo8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjU6ICAgaW1wb3J0IHsgUGFzc1Rocm91Z2ggfSBmcm9tICZxdW90O25vZGU6c3RyZWFtJnF1b3Q7Ozwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+NjogICBpbXBvcnQgeyBhZnRlckVhY2gsIGJlZm9yZUVhY2gsIGRlc2NyaWJlLCBleHBlY3QsIGl0LCB2aSB9IGZyb20gJnF1b3Q7dml0ZXN0JnF1b3Q7Ozwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+NzogaW1wb3J0IHsgRGVmYXVsdFBhY2thZ2VNYW5hZ2VyLCB0eXBlIFByb2dyZXNzRXZlbnQsIHR5cGUgUmVzb2x2ZWRSZXNvdXJjZSB9IGZyb208L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPiAgICA8c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj4mcXVvdDsuLi9zcmMvY29yZS9wYWNrYWdlLW1hbmFnZXIuanMmcXVvdDs7PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj44OiAgIGltcG9ydCB7IFNldHRpbmdzTWFuYWdlciB9IGZyb20gJnF1b3Q7Li4vc3JjL2NvcmUvc2V0dGluZ3MtbWFuYWdlci5qcyZxdW90Ozs8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjk6ICAgPC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj40MzogICB9Ozwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+NDQ6ICAgPC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj40NTogZGVzY3JpYmUoJnF1b3Q7RGVmYXVsdFBhY2thZ2VNYW5hZ2VyJnF1b3Q7LCAoKSA9Jmd0OyB7PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj40NjogICBsZXQgdGVtcERpcjogc3RyaW5nOzwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+NDc6ICAgbGV0IGFnZW50RGlyOiBzdHJpbmc7PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj40NzogICBsZXQgYWdlbnREaXI6IHN0cmluZzs8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjQ4OiAgIGxldCBzZXR0aW5nc01hbmFnZXI6IFNldHRpbmdzTWFuYWdlcjs8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjQ5OiBsZXQgcGFja2FnZU1hbmFnZXI6IERlZmF1bHRQYWNrYWdlTWFuYWdlcjs8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjUwOiAgIGxldCBwcmV2aW91c09mZmxpbmVFbnY6IHN0cmluZyB8IHVuZGVmaW5lZDs8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjUxOiAgIDwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+NTk6ICAgPC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj42MDogICBzZXR0aW5nc01hbmFnZXIgPSBTZXR0aW5nc01hbmFnZXIuaW5NZW1vcnkoKTs8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjYxOiBwYWNrYWdlTWFuYWdlciA9IG5ldyBEZWZhdWx0UGFja2FnZU1hbmFnZXIoezwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+NjI6ICAgY3dkOiB0ZW1wRGlyLDwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+NjM6ICAgYWdlbnREaXIsPC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj4yODI6ICAgd3JpdGVGaWxlU3luYyhuZXN0ZWRTa2lsbCwgJnF1b3Q7LS0tXFxubmFtZTogbmVzdGVkXFxuZGVzY3JpcHRpb246IG5lc3RlZFxcbi0tLVxcbiZxdW90Oyk7PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj4yODM6ICAgPC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj4yODQ6IGNvbnN0IHBtID0gbmV3IERlZmF1bHRQYWNrYWdlTWFuYWdlcih7PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj4yODU6ICAgY3dkOiBuZXN0ZWRDd2QsPC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj4yODY6ICAgYWdlbnREaXIsPC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj4zMDc6ICAgd3JpdGVGaWxlU3luYyhtaWRkbGVTa2lsbCwgJnF1b3Q7LS0tXFxubmFtZTogbWlkZGxlXFxuZGVzY3JpcHRpb246IG1pZGRsZVxcbi0tLVxcbiZxdW90Oyk7PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj4zMDg6ICAgPC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj4zMDk6IGNvbnN0IHBtID0gbmV3IERlZmF1bHRQYWNrYWdlTWFuYWdlcih7PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj4zMTA6ICAgY3dkOiBuZXN0ZWRDd2QsPC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj4zMTE6ICAgYWdlbnREaXIsPC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj4zMjY6ICAgd3JpdGVGaWxlU3luYyhuZXN0ZWRTa2lsbCwgJnF1b3Q7LS0tXFxubmFtZTogbmVzdGVkLXNraWxsXFxuZGVzY3JpcHRpb246IE5lc3RlZCBza2lsbFxcbi0tLVxcbiZxdW90Oyk7PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj4zMjc6ICAgPC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj4zMjg6IGNvbnN0IHBtID0gbmV3IERlZmF1bHRQYWNrYWdlTWFuYWdlcih7PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj4zMjk6ICAgY3dkOiBqb2luKHRlbXBEaXIsICZxdW90O3dvcmsmcXVvdDspLDwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+MzMwOiAgIGFnZW50RGlyLDwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+MzUzOiAgIHdyaXRlRmlsZVN5bmMoaG9tZVNraWxsLCAmcXVvdDstLS1cXG5uYW1lOiBob21lLXNraWxsXFxuZGVzY3JpcHRpb246IGhvbWVcXG4tLS1cXG4mcXVvdDspOzwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+MzU0OiAgIDwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+MzU1OiBjb25zdCBwbSA9IG5ldyBEZWZhdWx0UGFja2FnZU1hbmFnZXIoezwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+MzU2OiAgIGN3ZCw8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjM1NzogICBhZ2VudERpcjogbG9jYWxBZ2VudERpciw8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjUzNzogICBucG1Db21tYW5kOiBbJnF1b3Q7bWlzZSZxdW90OywgJnF1b3Q7ZXhlYyZxdW90OywgJnF1b3Q7bm9kZUAyMCZxdW90OywgJnF1b3Q7LS0mcXVvdDssICZxdW90O25wbSZxdW90O10sPC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj41Mzg6ICAgfSk7PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj41Mzk6IHBhY2thZ2VNYW5hZ2VyID0gbmV3IERlZmF1bHRQYWNrYWdlTWFuYWdlcih7PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj41NDA6ICAgY3dkOiB0ZW1wRGlyLDwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+NTQxOiAgIGFnZW50RGlyLDwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+NTc2OiAgIG5wbUNvbW1hbmQ6IFsmcXVvdDtwbnBtJnF1b3Q7XSw8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjU3NzogICB9KTs8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjU3ODogcGFja2FnZU1hbmFnZXIgPSBuZXcgRGVmYXVsdFBhY2thZ2VNYW5hZ2VyKHs8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjU3OTogICBjd2Q6IHRlbXBEaXIsPC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj41ODA6ICAgYWdlbnREaXIsPC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj42MzA6ICAgbnBtQ29tbWFuZDogWyZxdW90O21pc2UmcXVvdDssICZxdW90O2V4ZWMmcXVvdDssICZxdW90O25vZGVAMjAmcXVvdDssICZxdW90Oy0tJnF1b3Q7LCAmcXVvdDtwbnBtJnF1b3Q7XSw8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjYzMTogICB9KTs8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjYzMjogcGFja2FnZU1hbmFnZXIgPSBuZXcgRGVmYXVsdFBhY2thZ2VNYW5hZ2VyKHs8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFuc2ktbGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDEwMCw5Miw4NClcIj7ilJzilIDilIAgPC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6cmdiKDM3LDM3LDM3KVwiPjYzMzogICBjd2Q6IHRlbXBEaXIsPC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj42MzQ6ICAgYWdlbnREaXIsPC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhbnNpLWxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigxMDAsOTIsODQpXCI+4pSc4pSA4pSAIDwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOnJnYigzNywzNywzNylcIj42Njg6ICAgbnBtQ29tbWFuZDogWyZxdW90O21pc2UmcXVvdDssICZxdW90O2V4ZWMmcXVvdDssICZxdW90O25vZGVAMjAmcXVvdDssICZxdW90Oy0tJnF1b3Q7LCAmcXVvdDtucG0mcXVvdDtdLDwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+NjY5OiAgIH0pOzwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPuKUnOKUgOKUgCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMzcsMzcsMzcpXCI+NjcwOiBwYWNrYWdlTWFuYWdlciA9IG5ldyBEZWZhdWx0UGFja2FnZU1hbmFnZXIoezwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYW5zaS1saW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjpyZ2IoMTAwLDkyLDg0KVwiPu
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment