/* ../../node_modules/@xyflow/react/dist/style.css */
.react-flow {
  direction: ltr;
  --xy-edge-stroke-default: #b1b1b7;
  --xy-edge-stroke-width-default: 1;
  --xy-edge-stroke-selected-default: #555;
  --xy-connectionline-stroke-default: #b1b1b7;
  --xy-connectionline-stroke-width-default: 1;
  --xy-attribution-background-color-default: rgba(255, 255, 255, 0.5);
  --xy-minimap-background-color-default: #fff;
  --xy-minimap-mask-background-color-default: rgba(240, 240, 240, 0.6);
  --xy-minimap-mask-stroke-color-default: transparent;
  --xy-minimap-mask-stroke-width-default: 1;
  --xy-minimap-node-background-color-default: #e2e2e2;
  --xy-minimap-node-stroke-color-default: transparent;
  --xy-minimap-node-stroke-width-default: 2;
  --xy-background-color-default: transparent;
  --xy-background-pattern-dots-color-default: #91919a;
  --xy-background-pattern-lines-color-default: #eee;
  --xy-background-pattern-cross-color-default: #e2e2e2;
  background-color: var(--xy-background-color, var(--xy-background-color-default));
  --xy-node-color-default: inherit;
  --xy-node-border-default: 1px solid #1a192b;
  --xy-node-background-color-default: #fff;
  --xy-node-group-background-color-default: rgba(240, 240, 240, 0.25);
  --xy-node-boxshadow-hover-default: 0 1px 4px 1px rgba(0, 0, 0, 0.08);
  --xy-node-boxshadow-selected-default: 0 0 0 0.5px #1a192b;
  --xy-node-border-radius-default: 3px;
  --xy-handle-background-color-default: #1a192b;
  --xy-handle-border-color-default: #fff;
  --xy-selection-background-color-default: rgba(0, 89, 220, 0.08);
  --xy-selection-border-default: 1px dotted rgba(0, 89, 220, 0.8);
  --xy-controls-button-background-color-default: #fefefe;
  --xy-controls-button-background-color-hover-default: #f4f4f4;
  --xy-controls-button-color-default: inherit;
  --xy-controls-button-color-hover-default: inherit;
  --xy-controls-button-border-color-default: #eee;
  --xy-controls-box-shadow-default: 0 0 2px 1px rgba(0, 0, 0, 0.08);
  --xy-edge-label-background-color-default: #ffffff;
  --xy-edge-label-color-default: inherit;
  --xy-resize-background-color-default: #3367d9;
}
.react-flow.dark {
  --xy-edge-stroke-default: #3e3e3e;
  --xy-edge-stroke-width-default: 1;
  --xy-edge-stroke-selected-default: #727272;
  --xy-connectionline-stroke-default: #b1b1b7;
  --xy-connectionline-stroke-width-default: 1;
  --xy-attribution-background-color-default: rgba(150, 150, 150, 0.25);
  --xy-minimap-background-color-default: #141414;
  --xy-minimap-mask-background-color-default: rgba(60, 60, 60, 0.6);
  --xy-minimap-mask-stroke-color-default: transparent;
  --xy-minimap-mask-stroke-width-default: 1;
  --xy-minimap-node-background-color-default: #2b2b2b;
  --xy-minimap-node-stroke-color-default: transparent;
  --xy-minimap-node-stroke-width-default: 2;
  --xy-background-color-default: #141414;
  --xy-background-pattern-dots-color-default: #777;
  --xy-background-pattern-lines-color-default: #777;
  --xy-background-pattern-cross-color-default: #777;
  --xy-node-color-default: #f8f8f8;
  --xy-node-border-default: 1px solid #3c3c3c;
  --xy-node-background-color-default: #1e1e1e;
  --xy-node-group-background-color-default: rgba(240, 240, 240, 0.25);
  --xy-node-boxshadow-hover-default: 0 1px 4px 1px rgba(255, 255, 255, 0.08);
  --xy-node-boxshadow-selected-default: 0 0 0 0.5px #999;
  --xy-handle-background-color-default: #bebebe;
  --xy-handle-border-color-default: #1e1e1e;
  --xy-selection-background-color-default: rgba(200, 200, 220, 0.08);
  --xy-selection-border-default: 1px dotted rgba(200, 200, 220, 0.8);
  --xy-controls-button-background-color-default: #2b2b2b;
  --xy-controls-button-background-color-hover-default: #3e3e3e;
  --xy-controls-button-color-default: #f8f8f8;
  --xy-controls-button-color-hover-default: #fff;
  --xy-controls-button-border-color-default: #5b5b5b;
  --xy-controls-box-shadow-default: 0 0 2px 1px rgba(0, 0, 0, 0.08);
  --xy-edge-label-background-color-default: #141414;
  --xy-edge-label-color-default: #f8f8f8;
}
.react-flow__background {
  background-color: var(--xy-background-color-props, var(--xy-background-color, var(--xy-background-color-default)));
  pointer-events: none;
  z-index: -1;
}
.react-flow__container {
  position: absolute;
  width: 100%;
  height: 100%;
  top: 0;
  left: 0;
}
.react-flow__pane {
  z-index: 1;
}
.react-flow__pane.draggable {
  cursor: grab;
}
.react-flow__pane.dragging {
  cursor: grabbing;
}
.react-flow__pane.selection {
  cursor: pointer;
}
.react-flow__viewport {
  transform-origin: 0 0;
  z-index: 2;
  pointer-events: none;
}
.react-flow__renderer {
  z-index: 4;
}
.react-flow__selection {
  z-index: 6;
}
.react-flow__nodesselection-rect:focus,
.react-flow__nodesselection-rect:focus-visible {
  outline: none;
}
.react-flow__edge-path {
  stroke: var(--xy-edge-stroke, var(--xy-edge-stroke-default));
  stroke-width: var(--xy-edge-stroke-width, var(--xy-edge-stroke-width-default));
  fill: none;
}
.react-flow__connection-path {
  stroke: var(--xy-connectionline-stroke, var(--xy-connectionline-stroke-default));
  stroke-width: var(--xy-connectionline-stroke-width, var(--xy-connectionline-stroke-width-default));
  fill: none;
}
.react-flow .react-flow__edges {
  position: absolute;
}
.react-flow .react-flow__edges svg {
  overflow: visible;
  position: absolute;
  pointer-events: none;
}
.react-flow__edge {
  pointer-events: visibleStroke;
}
.react-flow__edge.selectable {
  cursor: pointer;
}
.react-flow__edge.animated path {
  stroke-dasharray: 5;
  animation: dashdraw 0.5s linear infinite;
}
.react-flow__edge.animated path.react-flow__edge-interaction {
  stroke-dasharray: none;
  animation: none;
}
.react-flow__edge.inactive {
  pointer-events: none;
}
.react-flow__edge.selected,
.react-flow__edge:focus,
.react-flow__edge:focus-visible {
  outline: none;
}
.react-flow__edge.selected .react-flow__edge-path,
.react-flow__edge.selectable:focus .react-flow__edge-path,
.react-flow__edge.selectable:focus-visible .react-flow__edge-path {
  stroke: var(--xy-edge-stroke-selected, var(--xy-edge-stroke-selected-default));
}
.react-flow__edge-textwrapper {
  pointer-events: all;
}
.react-flow__edge .react-flow__edge-text {
  pointer-events: none;
  -webkit-user-select: none;
  -moz-user-select: none;
  user-select: none;
}
.react-flow__connection {
  pointer-events: none;
}
.react-flow__connection .animated {
  stroke-dasharray: 5;
  animation: dashdraw 0.5s linear infinite;
}
svg.react-flow__connectionline {
  z-index: 1001;
  overflow: visible;
  position: absolute;
}
.react-flow__nodes {
  pointer-events: none;
  transform-origin: 0 0;
}
.react-flow__node {
  position: absolute;
  -webkit-user-select: none;
  -moz-user-select: none;
  user-select: none;
  pointer-events: all;
  transform-origin: 0 0;
  box-sizing: border-box;
  cursor: default;
}
.react-flow__node.selectable {
  cursor: pointer;
}
.react-flow__node.draggable {
  cursor: grab;
  pointer-events: all;
}
.react-flow__node.draggable.dragging {
  cursor: grabbing;
}
.react-flow__nodesselection {
  z-index: 3;
  transform-origin: left top;
  pointer-events: none;
}
.react-flow__nodesselection-rect {
  position: absolute;
  pointer-events: all;
  cursor: grab;
}
.react-flow__handle {
  position: absolute;
  pointer-events: none;
  min-width: 5px;
  min-height: 5px;
  width: 6px;
  height: 6px;
  background-color: var(--xy-handle-background-color, var(--xy-handle-background-color-default));
  border: 1px solid var(--xy-handle-border-color, var(--xy-handle-border-color-default));
  border-radius: 100%;
}
.react-flow__handle.connectingfrom {
  pointer-events: all;
}
.react-flow__handle.connectionindicator {
  pointer-events: all;
  cursor: crosshair;
}
.react-flow__handle-bottom {
  top: auto;
  left: 50%;
  bottom: 0;
  transform: translate(-50%, 50%);
}
.react-flow__handle-top {
  top: 0;
  left: 50%;
  transform: translate(-50%, -50%);
}
.react-flow__handle-left {
  top: 50%;
  left: 0;
  transform: translate(-50%, -50%);
}
.react-flow__handle-right {
  top: 50%;
  right: 0;
  transform: translate(50%, -50%);
}
.react-flow__edgeupdater {
  cursor: move;
  pointer-events: all;
}
.react-flow__pane.selection .react-flow__panel {
  pointer-events: none;
}
.react-flow__panel {
  position: absolute;
  z-index: 5;
  margin: 15px;
}
.react-flow__panel.top {
  top: 0;
}
.react-flow__panel.bottom {
  bottom: 0;
}
.react-flow__panel.top.center,
.react-flow__panel.bottom.center {
  left: 50%;
  transform: translateX(-15px) translateX(-50%);
}
.react-flow__panel.left {
  left: 0;
}
.react-flow__panel.right {
  right: 0;
}
.react-flow__panel.left.center,
.react-flow__panel.right.center {
  top: 50%;
  transform: translateY(-15px) translateY(-50%);
}
.react-flow__attribution {
  font-size: 10px;
  background: var(--xy-attribution-background-color, var(--xy-attribution-background-color-default));
  padding: 2px 3px;
  margin: 0;
}
.react-flow__attribution a {
  text-decoration: none;
  color: #999;
}
@keyframes dashdraw {
  from {
    stroke-dashoffset: 10;
  }
}
.react-flow__edgelabel-renderer {
  position: absolute;
  width: 100%;
  height: 100%;
  pointer-events: none;
  -webkit-user-select: none;
  -moz-user-select: none;
  user-select: none;
  left: 0;
  top: 0;
}
.react-flow__viewport-portal {
  position: absolute;
  width: 100%;
  height: 100%;
  left: 0;
  top: 0;
  -webkit-user-select: none;
  -moz-user-select: none;
  user-select: none;
}
.react-flow__minimap {
  background: var( --xy-minimap-background-color-props, var(--xy-minimap-background-color, var(--xy-minimap-background-color-default)) );
}
.react-flow__minimap-svg {
  display: block;
}
.react-flow__minimap-mask {
  fill: var( --xy-minimap-mask-background-color-props, var(--xy-minimap-mask-background-color, var(--xy-minimap-mask-background-color-default)) );
  stroke: var( --xy-minimap-mask-stroke-color-props, var(--xy-minimap-mask-stroke-color, var(--xy-minimap-mask-stroke-color-default)) );
  stroke-width: var( --xy-minimap-mask-stroke-width-props, var(--xy-minimap-mask-stroke-width, var(--xy-minimap-mask-stroke-width-default)) );
}
.react-flow__minimap-node {
  fill: var( --xy-minimap-node-background-color-props, var(--xy-minimap-node-background-color, var(--xy-minimap-node-background-color-default)) );
  stroke: var( --xy-minimap-node-stroke-color-props, var(--xy-minimap-node-stroke-color, var(--xy-minimap-node-stroke-color-default)) );
  stroke-width: var( --xy-minimap-node-stroke-width-props, var(--xy-minimap-node-stroke-width, var(--xy-minimap-node-stroke-width-default)) );
}
.react-flow__background-pattern.dots {
  fill: var( --xy-background-pattern-color-props, var(--xy-background-pattern-color, var(--xy-background-pattern-dots-color-default)) );
}
.react-flow__background-pattern.lines {
  stroke: var( --xy-background-pattern-color-props, var(--xy-background-pattern-color, var(--xy-background-pattern-lines-color-default)) );
}
.react-flow__background-pattern.cross {
  stroke: var( --xy-background-pattern-color-props, var(--xy-background-pattern-color, var(--xy-background-pattern-cross-color-default)) );
}
.react-flow__controls {
  display: flex;
  flex-direction: column;
  box-shadow: var(--xy-controls-box-shadow, var(--xy-controls-box-shadow-default));
}
.react-flow__controls.horizontal {
  flex-direction: row;
}
.react-flow__controls-button {
  display: flex;
  justify-content: center;
  align-items: center;
  height: 26px;
  width: 26px;
  padding: 4px;
  border: none;
  background: var(--xy-controls-button-background-color, var(--xy-controls-button-background-color-default));
  border-bottom: 1px solid var( --xy-controls-button-border-color-props, var(--xy-controls-button-border-color, var(--xy-controls-button-border-color-default)) );
  color: var( --xy-controls-button-color-props, var(--xy-controls-button-color, var(--xy-controls-button-color-default)) );
  cursor: pointer;
  -webkit-user-select: none;
  -moz-user-select: none;
  user-select: none;
}
.react-flow__controls-button svg {
  width: 100%;
  max-width: 12px;
  max-height: 12px;
  fill: currentColor;
}
.react-flow__edge.updating .react-flow__edge-path {
  stroke: #777;
}
.react-flow__edge-text {
  font-size: 10px;
}
.react-flow__node.selectable:focus,
.react-flow__node.selectable:focus-visible {
  outline: none;
}
.react-flow__node-input,
.react-flow__node-default,
.react-flow__node-output,
.react-flow__node-group {
  padding: 10px;
  border-radius: var(--xy-node-border-radius, var(--xy-node-border-radius-default));
  width: 150px;
  font-size: 12px;
  color: var(--xy-node-color, var(--xy-node-color-default));
  text-align: center;
  border: var(--xy-node-border, var(--xy-node-border-default));
  background-color: var(--xy-node-background-color, var(--xy-node-background-color-default));
}
.react-flow__node-input.selectable:hover,
.react-flow__node-default.selectable:hover,
.react-flow__node-output.selectable:hover,
.react-flow__node-group.selectable:hover {
  box-shadow: var(--xy-node-boxshadow-hover, var(--xy-node-boxshadow-hover-default));
}
.react-flow__node-input.selectable.selected,
.react-flow__node-input.selectable:focus,
.react-flow__node-input.selectable:focus-visible,
.react-flow__node-default.selectable.selected,
.react-flow__node-default.selectable:focus,
.react-flow__node-default.selectable:focus-visible,
.react-flow__node-output.selectable.selected,
.react-flow__node-output.selectable:focus,
.react-flow__node-output.selectable:focus-visible,
.react-flow__node-group.selectable.selected,
.react-flow__node-group.selectable:focus,
.react-flow__node-group.selectable:focus-visible {
  box-shadow: var(--xy-node-boxshadow-selected, var(--xy-node-boxshadow-selected-default));
}
.react-flow__node-group {
  background-color: var(--xy-node-group-background-color, var(--xy-node-group-background-color-default));
}
.react-flow__nodesselection-rect,
.react-flow__selection {
  background: var(--xy-selection-background-color, var(--xy-selection-background-color-default));
  border: var(--xy-selection-border, var(--xy-selection-border-default));
}
.react-flow__nodesselection-rect:focus,
.react-flow__nodesselection-rect:focus-visible,
.react-flow__selection:focus,
.react-flow__selection:focus-visible {
  outline: none;
}
.react-flow__controls-button:hover {
  background: var( --xy-controls-button-background-color-hover-props, var(--xy-controls-button-background-color-hover, var(--xy-controls-button-background-color-hover-default)) );
  color: var( --xy-controls-button-color-hover-props, var(--xy-controls-button-color-hover, var(--xy-controls-button-color-hover-default)) );
}
.react-flow__controls-button:disabled {
  pointer-events: none;
}
.react-flow__controls-button:disabled svg {
  fill-opacity: 0.4;
}
.react-flow__controls-button:last-child {
  border-bottom: none;
}
.react-flow__controls.horizontal .react-flow__controls-button {
  border-bottom: none;
  border-right: 1px solid var( --xy-controls-button-border-color-props, var(--xy-controls-button-border-color, var(--xy-controls-button-border-color-default)) );
}
.react-flow__controls.horizontal .react-flow__controls-button:last-child {
  border-right: none;
}
.react-flow__resize-control {
  position: absolute;
}
.react-flow__resize-control.left,
.react-flow__resize-control.right {
  cursor: ew-resize;
}
.react-flow__resize-control.top,
.react-flow__resize-control.bottom {
  cursor: ns-resize;
}
.react-flow__resize-control.top.left,
.react-flow__resize-control.bottom.right {
  cursor: nwse-resize;
}
.react-flow__resize-control.bottom.left,
.react-flow__resize-control.top.right {
  cursor: nesw-resize;
}
.react-flow__resize-control.handle {
  width: 5px;
  height: 5px;
  border: 1px solid #fff;
  border-radius: 1px;
  background-color: var(--xy-resize-background-color, var(--xy-resize-background-color-default));
  translate: -50% -50%;
}
.react-flow__resize-control.handle.left {
  left: 0;
  top: 50%;
}
.react-flow__resize-control.handle.right {
  left: 100%;
  top: 50%;
}
.react-flow__resize-control.handle.top {
  left: 50%;
  top: 0;
}
.react-flow__resize-control.handle.bottom {
  left: 50%;
  top: 100%;
}
.react-flow__resize-control.handle.top.left {
  left: 0;
}
.react-flow__resize-control.handle.bottom.left {
  left: 0;
}
.react-flow__resize-control.handle.top.right {
  left: 100%;
}
.react-flow__resize-control.handle.bottom.right {
  left: 100%;
}
.react-flow__resize-control.line {
  border-color: var(--xy-resize-background-color, var(--xy-resize-background-color-default));
  border-width: 0;
  border-style: solid;
}
.react-flow__resize-control.line.left,
.react-flow__resize-control.line.right {
  width: 1px;
  transform: translate(-50%, 0);
  top: 0;
  height: 100%;
}
.react-flow__resize-control.line.left {
  left: 0;
  border-left-width: 1px;
}
.react-flow__resize-control.line.right {
  left: 100%;
  border-right-width: 1px;
}
.react-flow__resize-control.line.top,
.react-flow__resize-control.line.bottom {
  height: 1px;
  transform: translate(0, -50%);
  left: 0;
  width: 100%;
}
.react-flow__resize-control.line.top {
  top: 0;
  border-top-width: 1px;
}
.react-flow__resize-control.line.bottom {
  border-bottom-width: 1px;
  top: 100%;
}
.react-flow__edge-textbg {
  fill: var(--xy-edge-label-background-color, var(--xy-edge-label-background-color-default));
}
.react-flow__edge-text {
  fill: var(--xy-edge-label-color, var(--xy-edge-label-color-default));
}

/* components/wireframe_renderer/wireframe.css */
.wireframe-svg {
  display: block;
  max-width: 100%;
  height: auto;
}
.wireframe-element-wrapper {
  position: relative;
  display: inline-block;
  border-radius: 4px;
  transition: all 0.2s ease;
}
.wireframe-element-label {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 4px 8px;
  background-color: #FFF5E6;
  border-bottom: 1px solid #FFB733;
  font-size: 11px;
  color: #FF8C00;
}
.wireframe-element-label .element-type {
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.5px;
}
.wireframe-element-label .element-title {
  color: #666;
  font-style: italic;
}
.wireframe-element-svg {
  background-color: white;
  border-radius: 0 0 4px 4px;
  overflow: hidden;
}
.wireframe-element-hover {
  box-shadow: 0 2px 8px rgba(255, 165, 0, 0.3);
  transform: translateY(-1px);
}
.wireframe-element-draggable {
  cursor: move;
}
.wireframe-element-draggable:active {
  opacity: 0.8;
}
.wireframe-elements-container {
  display: flex;
  flex-direction: column;
  gap: 4px;
  padding: 8px;
  max-height: 400px;
  overflow-y: auto;
}
.wireframe-element-item {
  border: 1px solid #E5E7EB;
  border-radius: 4px;
  overflow: hidden;
  transition: all 0.2s ease;
}
.wireframe-element-item:hover {
  border-color: #FFA500;
}
.wireframe-compact {
  transform: scale(0.8);
  transform-origin: top left;
}
.wireframe-compact .wireframe-element-label {
  padding: 2px 4px;
  font-size: 9px;
}
.node-wireframe {
  position: absolute;
  bottom: -4px;
  left: 0;
  right: 0;
  background: white;
  border-top: 1px solid #E5E7EB;
  border-radius: 0 0 6px 6px;
  padding: 4px;
  max-height: 100px;
  overflow: hidden;
}
.node-wireframe-mini {
  transform: scale(0.6);
  transform-origin: top center;
  opacity: 0.8;
}
.element-palette-item {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 8px;
  border: 2px solid transparent;
  border-radius: 4px;
  background: #FFF5E6;
  cursor: pointer;
  transition: all 0.2s ease;
  min-height: 60px;
}
.element-palette-item:hover {
  border-color: #FFA500;
  background: #FFE5CC;
  transform: scale(1.05);
}
.element-palette-item.selected {
  border-color: #FF8C00;
  background: #FFD700;
}
.element-palette-icon {
  font-size: 20px;
  color: #FFA500;
  margin-bottom: 4px;
}
.element-palette-label {
  font-size: 10px;
  text-align: center;
  color: #666;
  word-break: break-word;
}
.properties-wireframe {
  margin-top: 8px;
  padding: 8px;
  background: #FFF5E6;
  border-radius: 4px;
  border: 1px solid #FFB733;
}
.properties-wireframe-title {
  font-size: 11px;
  font-weight: 600;
  color: #FF8C00;
  margin-bottom: 8px;
  text-transform: uppercase;
}
.properties-wireframe-preview {
  background: white;
  border-radius: 4px;
  padding: 8px;
  min-height: 60px;
  display: flex;
  align-items: center;
  justify-content: center;
}
.wireframe-empty {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 20px;
  color: #999;
  font-size: 12px;
  text-align: center;
}
.wireframe-empty-icon {
  font-size: 32px;
  margin-bottom: 8px;
  opacity: 0.5;
}
.wireframe-loading {
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 20px;
  color: #FFA500;
}
.wireframe-loading::after {
  content: "";
  width: 20px;
  height: 20px;
  border: 2px solid #FFA500;
  border-top-color: transparent;
  border-radius: 50%;
  animation: wireframe-spin 0.8s linear infinite;
}
@keyframes wireframe-spin {
  to {
    transform: rotate(360deg);
  }
}
.wireframe-export-preview {
  background: white;
  border: 1px solid #E5E7EB;
  border-radius: 4px;
  padding: 16px;
  margin: 16px 0;
  max-height: 400px;
  overflow: auto;
}
.wireframe-export-options {
  display: flex;
  gap: 8px;
  margin-bottom: 16px;
}
.wireframe-export-option {
  flex: 1;
  padding: 8px;
  border: 2px solid #E5E7EB;
  border-radius: 4px;
  background: white;
  cursor: pointer;
  text-align: center;
  transition: all 0.2s ease;
}
.wireframe-export-option:hover {
  border-color: #FFA500;
  background: #FFF5E6;
}
.wireframe-export-option.active {
  border-color: #FF8C00;
  background: #FFD700;
}
@media (max-width: 768px) {
  .wireframe-elements-container {
    max-height: 200px;
  }
  .element-palette-item {
    min-height: 50px;
    padding: 6px;
  }
  .element-palette-icon {
    font-size: 16px;
  }
  .element-palette-label {
    font-size: 9px;
  }
}
/*# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0B4eWZsb3cvcmVhY3QvZGlzdC9zdHlsZS5jc3MiLCAiLi4vLi4vamF2YXNjcmlwdC9jb21wb25lbnRzL3dpcmVmcmFtZV9yZW5kZXJlci93aXJlZnJhbWUuY3NzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKiB0aGlzIGdldHMgZXhwb3J0ZWQgYXMgc3R5bGUuY3NzIGFuZCBjYW4gYmUgdXNlZCBmb3IgdGhlIGRlZmF1bHQgdGhlbWluZyAqL1xuLyogdGhlc2UgYXJlIHRoZSBuZWNlc3Nhcnkgc3R5bGVzIGZvciBSZWFjdC9TdmVsdGUgRmxvdywgdGhleSBnZXQgdXNlZCBieSBiYXNlLmNzcyBhbmQgc3R5bGUuY3NzICovXG4ucmVhY3QtZmxvdyB7XG4gIGRpcmVjdGlvbjogbHRyO1xuXG4gIC0teHktZWRnZS1zdHJva2UtZGVmYXVsdDogI2IxYjFiNztcbiAgLS14eS1lZGdlLXN0cm9rZS13aWR0aC1kZWZhdWx0OiAxO1xuICAtLXh5LWVkZ2Utc3Ryb2tlLXNlbGVjdGVkLWRlZmF1bHQ6ICM1NTU7XG5cbiAgLS14eS1jb25uZWN0aW9ubGluZS1zdHJva2UtZGVmYXVsdDogI2IxYjFiNztcbiAgLS14eS1jb25uZWN0aW9ubGluZS1zdHJva2Utd2lkdGgtZGVmYXVsdDogMTtcblxuICAtLXh5LWF0dHJpYnV0aW9uLWJhY2tncm91bmQtY29sb3ItZGVmYXVsdDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjUpO1xuXG4gIC0teHktbWluaW1hcC1iYWNrZ3JvdW5kLWNvbG9yLWRlZmF1bHQ6ICNmZmY7XG4gIC0teHktbWluaW1hcC1tYXNrLWJhY2tncm91bmQtY29sb3ItZGVmYXVsdDogcmdiYSgyNDAsIDI0MCwgMjQwLCAwLjYpO1xuICAtLXh5LW1pbmltYXAtbWFzay1zdHJva2UtY29sb3ItZGVmYXVsdDogdHJhbnNwYXJlbnQ7XG4gIC0teHktbWluaW1hcC1tYXNrLXN0cm9rZS13aWR0aC1kZWZhdWx0OiAxO1xuICAtLXh5LW1pbmltYXAtbm9kZS1iYWNrZ3JvdW5kLWNvbG9yLWRlZmF1bHQ6ICNlMmUyZTI7XG4gIC0teHktbWluaW1hcC1ub2RlLXN0cm9rZS1jb2xvci1kZWZhdWx0OiB0cmFuc3BhcmVudDtcbiAgLS14eS1taW5pbWFwLW5vZGUtc3Ryb2tlLXdpZHRoLWRlZmF1bHQ6IDI7XG5cbiAgLS14eS1iYWNrZ3JvdW5kLWNvbG9yLWRlZmF1bHQ6IHRyYW5zcGFyZW50O1xuICAtLXh5LWJhY2tncm91bmQtcGF0dGVybi1kb3RzLWNvbG9yLWRlZmF1bHQ6ICM5MTkxOWE7XG4gIC0teHktYmFja2dyb3VuZC1wYXR0ZXJuLWxpbmVzLWNvbG9yLWRlZmF1bHQ6ICNlZWU7XG4gIC0teHktYmFja2dyb3VuZC1wYXR0ZXJuLWNyb3NzLWNvbG9yLWRlZmF1bHQ6ICNlMmUyZTI7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXh5LWJhY2tncm91bmQtY29sb3IsIHZhcigtLXh5LWJhY2tncm91bmQtY29sb3ItZGVmYXVsdCkpO1xuICAtLXh5LW5vZGUtY29sb3ItZGVmYXVsdDogaW5oZXJpdDtcbiAgLS14eS1ub2RlLWJvcmRlci1kZWZhdWx0OiAxcHggc29saWQgIzFhMTkyYjtcbiAgLS14eS1ub2RlLWJhY2tncm91bmQtY29sb3ItZGVmYXVsdDogI2ZmZjtcbiAgLS14eS1ub2RlLWdyb3VwLWJhY2tncm91bmQtY29sb3ItZGVmYXVsdDogcmdiYSgyNDAsIDI0MCwgMjQwLCAwLjI1KTtcbiAgLS14eS1ub2RlLWJveHNoYWRvdy1ob3Zlci1kZWZhdWx0OiAwIDFweCA0cHggMXB4IHJnYmEoMCwgMCwgMCwgMC4wOCk7XG4gIC0teHktbm9kZS1ib3hzaGFkb3ctc2VsZWN0ZWQtZGVmYXVsdDogMCAwIDAgMC41cHggIzFhMTkyYjtcbiAgLS14eS1ub2RlLWJvcmRlci1yYWRpdXMtZGVmYXVsdDogM3B4O1xuXG4gIC0teHktaGFuZGxlLWJhY2tncm91bmQtY29sb3ItZGVmYXVsdDogIzFhMTkyYjtcbiAgLS14eS1oYW5kbGUtYm9yZGVyLWNvbG9yLWRlZmF1bHQ6ICNmZmY7XG5cbiAgLS14eS1zZWxlY3Rpb24tYmFja2dyb3VuZC1jb2xvci1kZWZhdWx0OiByZ2JhKDAsIDg5LCAyMjAsIDAuMDgpO1xuICAtLXh5LXNlbGVjdGlvbi1ib3JkZXItZGVmYXVsdDogMXB4IGRvdHRlZCByZ2JhKDAsIDg5LCAyMjAsIDAuOCk7XG5cbiAgLS14eS1jb250cm9scy1idXR0b24tYmFja2dyb3VuZC1jb2xvci1kZWZhdWx0OiAjZmVmZWZlO1xuICAtLXh5LWNvbnRyb2xzLWJ1dHRvbi1iYWNrZ3JvdW5kLWNvbG9yLWhvdmVyLWRlZmF1bHQ6ICNmNGY0ZjQ7XG4gIC0teHktY29udHJvbHMtYnV0dG9uLWNvbG9yLWRlZmF1bHQ6IGluaGVyaXQ7XG4gIC0teHktY29udHJvbHMtYnV0dG9uLWNvbG9yLWhvdmVyLWRlZmF1bHQ6IGluaGVyaXQ7XG4gIC0teHktY29udHJvbHMtYnV0dG9uLWJvcmRlci1jb2xvci1kZWZhdWx0OiAjZWVlO1xuICAtLXh5LWNvbnRyb2xzLWJveC1zaGFkb3ctZGVmYXVsdDogMCAwIDJweCAxcHggcmdiYSgwLCAwLCAwLCAwLjA4KTtcblxuICAtLXh5LWVkZ2UtbGFiZWwtYmFja2dyb3VuZC1jb2xvci1kZWZhdWx0OiAjZmZmZmZmO1xuICAtLXh5LWVkZ2UtbGFiZWwtY29sb3ItZGVmYXVsdDogaW5oZXJpdDtcbiAgLS14eS1yZXNpemUtYmFja2dyb3VuZC1jb2xvci1kZWZhdWx0OiAjMzM2N2Q5O1xufVxuLnJlYWN0LWZsb3cuZGFyayB7XG4gIC0teHktZWRnZS1zdHJva2UtZGVmYXVsdDogIzNlM2UzZTtcbiAgLS14eS1lZGdlLXN0cm9rZS13aWR0aC1kZWZhdWx0OiAxO1xuICAtLXh5LWVkZ2Utc3Ryb2tlLXNlbGVjdGVkLWRlZmF1bHQ6ICM3MjcyNzI7XG5cbiAgLS14eS1jb25uZWN0aW9ubGluZS1zdHJva2UtZGVmYXVsdDogI2IxYjFiNztcbiAgLS14eS1jb25uZWN0aW9ubGluZS1zdHJva2Utd2lkdGgtZGVmYXVsdDogMTtcblxuICAtLXh5LWF0dHJpYnV0aW9uLWJhY2tncm91bmQtY29sb3ItZGVmYXVsdDogcmdiYSgxNTAsIDE1MCwgMTUwLCAwLjI1KTtcblxuICAtLXh5LW1pbmltYXAtYmFja2dyb3VuZC1jb2xvci1kZWZhdWx0OiAjMTQxNDE0O1xuICAtLXh5LW1pbmltYXAtbWFzay1iYWNrZ3JvdW5kLWNvbG9yLWRlZmF1bHQ6IHJnYmEoNjAsIDYwLCA2MCwgMC42KTtcbiAgLS14eS1taW5pbWFwLW1hc2stc3Ryb2tlLWNvbG9yLWRlZmF1bHQ6IHRyYW5zcGFyZW50O1xuICAtLXh5LW1pbmltYXAtbWFzay1zdHJva2Utd2lkdGgtZGVmYXVsdDogMTtcbiAgLS14eS1taW5pbWFwLW5vZGUtYmFja2dyb3VuZC1jb2xvci1kZWZhdWx0OiAjMmIyYjJiO1xuICAtLXh5LW1pbmltYXAtbm9kZS1zdHJva2UtY29sb3ItZGVmYXVsdDogdHJhbnNwYXJlbnQ7XG4gIC0teHktbWluaW1hcC1ub2RlLXN0cm9rZS13aWR0aC1kZWZhdWx0OiAyO1xuXG4gIC0teHktYmFja2dyb3VuZC1jb2xvci1kZWZhdWx0OiAjMTQxNDE0O1xuICAtLXh5LWJhY2tncm91bmQtcGF0dGVybi1kb3RzLWNvbG9yLWRlZmF1bHQ6ICM3Nzc7XG4gIC0teHktYmFja2dyb3VuZC1wYXR0ZXJuLWxpbmVzLWNvbG9yLWRlZmF1bHQ6ICM3Nzc7XG4gIC0teHktYmFja2dyb3VuZC1wYXR0ZXJuLWNyb3NzLWNvbG9yLWRlZmF1bHQ6ICM3Nzc7XG4gIC0teHktbm9kZS1jb2xvci1kZWZhdWx0OiAjZjhmOGY4O1xuICAtLXh5LW5vZGUtYm9yZGVyLWRlZmF1bHQ6IDFweCBzb2xpZCAjM2MzYzNjO1xuICAtLXh5LW5vZGUtYmFja2dyb3VuZC1jb2xvci1kZWZhdWx0OiAjMWUxZTFlO1xuICAtLXh5LW5vZGUtZ3JvdXAtYmFja2dyb3VuZC1jb2xvci1kZWZhdWx0OiByZ2JhKDI0MCwgMjQwLCAyNDAsIDAuMjUpO1xuICAtLXh5LW5vZGUtYm94c2hhZG93LWhvdmVyLWRlZmF1bHQ6IDAgMXB4IDRweCAxcHggcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjA4KTtcbiAgLS14eS1ub2RlLWJveHNoYWRvdy1zZWxlY3RlZC1kZWZhdWx0OiAwIDAgMCAwLjVweCAjOTk5O1xuXG4gIC0teHktaGFuZGxlLWJhY2tncm91bmQtY29sb3ItZGVmYXVsdDogI2JlYmViZTtcbiAgLS14eS1oYW5kbGUtYm9yZGVyLWNvbG9yLWRlZmF1bHQ6ICMxZTFlMWU7XG5cbiAgLS14eS1zZWxlY3Rpb24tYmFja2dyb3VuZC1jb2xvci1kZWZhdWx0OiByZ2JhKDIwMCwgMjAwLCAyMjAsIDAuMDgpO1xuICAtLXh5LXNlbGVjdGlvbi1ib3JkZXItZGVmYXVsdDogMXB4IGRvdHRlZCByZ2JhKDIwMCwgMjAwLCAyMjAsIDAuOCk7XG5cbiAgLS14eS1jb250cm9scy1idXR0b24tYmFja2dyb3VuZC1jb2xvci1kZWZhdWx0OiAjMmIyYjJiO1xuICAtLXh5LWNvbnRyb2xzLWJ1dHRvbi1iYWNrZ3JvdW5kLWNvbG9yLWhvdmVyLWRlZmF1bHQ6ICMzZTNlM2U7XG4gIC0teHktY29udHJvbHMtYnV0dG9uLWNvbG9yLWRlZmF1bHQ6ICNmOGY4Zjg7XG4gIC0teHktY29udHJvbHMtYnV0dG9uLWNvbG9yLWhvdmVyLWRlZmF1bHQ6ICNmZmY7XG4gIC0teHktY29udHJvbHMtYnV0dG9uLWJvcmRlci1jb2xvci1kZWZhdWx0OiAjNWI1YjViO1xuICAtLXh5LWNvbnRyb2xzLWJveC1zaGFkb3ctZGVmYXVsdDogMCAwIDJweCAxcHggcmdiYSgwLCAwLCAwLCAwLjA4KTtcblxuICAtLXh5LWVkZ2UtbGFiZWwtYmFja2dyb3VuZC1jb2xvci1kZWZhdWx0OiAjMTQxNDE0O1xuICAtLXh5LWVkZ2UtbGFiZWwtY29sb3ItZGVmYXVsdDogI2Y4ZjhmODtcbn1cbi5yZWFjdC1mbG93X19iYWNrZ3JvdW5kIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0teHktYmFja2dyb3VuZC1jb2xvci1wcm9wcywgdmFyKC0teHktYmFja2dyb3VuZC1jb2xvciwgdmFyKC0teHktYmFja2dyb3VuZC1jb2xvci1kZWZhdWx0KSkpO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgei1pbmRleDogLTE7XG59XG4ucmVhY3QtZmxvd19fY29udGFpbmVyIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG59XG4ucmVhY3QtZmxvd19fcGFuZSB7XG4gIHotaW5kZXg6IDE7XG59XG4ucmVhY3QtZmxvd19fcGFuZS5kcmFnZ2FibGUge1xuICAgIGN1cnNvcjogZ3JhYjtcbiAgfVxuLnJlYWN0LWZsb3dfX3BhbmUuZHJhZ2dpbmcge1xuICAgIGN1cnNvcjogZ3JhYmJpbmc7XG4gIH1cbi5yZWFjdC1mbG93X19wYW5lLnNlbGVjdGlvbiB7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICB9XG4ucmVhY3QtZmxvd19fdmlld3BvcnQge1xuICB0cmFuc2Zvcm0tb3JpZ2luOiAwIDA7XG4gIHotaW5kZXg6IDI7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xufVxuLnJlYWN0LWZsb3dfX3JlbmRlcmVyIHtcbiAgei1pbmRleDogNDtcbn1cbi5yZWFjdC1mbG93X19zZWxlY3Rpb24ge1xuICB6LWluZGV4OiA2O1xufVxuLnJlYWN0LWZsb3dfX25vZGVzc2VsZWN0aW9uLXJlY3Q6Zm9jdXMsXG4ucmVhY3QtZmxvd19fbm9kZXNzZWxlY3Rpb24tcmVjdDpmb2N1cy12aXNpYmxlIHtcbiAgb3V0bGluZTogbm9uZTtcbn1cbi5yZWFjdC1mbG93X19lZGdlLXBhdGgge1xuICBzdHJva2U6IHZhcigtLXh5LWVkZ2Utc3Ryb2tlLCB2YXIoLS14eS1lZGdlLXN0cm9rZS1kZWZhdWx0KSk7XG4gIHN0cm9rZS13aWR0aDogdmFyKC0teHktZWRnZS1zdHJva2Utd2lkdGgsIHZhcigtLXh5LWVkZ2Utc3Ryb2tlLXdpZHRoLWRlZmF1bHQpKTtcbiAgZmlsbDogbm9uZTtcbn1cbi5yZWFjdC1mbG93X19jb25uZWN0aW9uLXBhdGgge1xuICBzdHJva2U6IHZhcigtLXh5LWNvbm5lY3Rpb25saW5lLXN0cm9rZSwgdmFyKC0teHktY29ubmVjdGlvbmxpbmUtc3Ryb2tlLWRlZmF1bHQpKTtcbiAgc3Ryb2tlLXdpZHRoOiB2YXIoLS14eS1jb25uZWN0aW9ubGluZS1zdHJva2Utd2lkdGgsIHZhcigtLXh5LWNvbm5lY3Rpb25saW5lLXN0cm9rZS13aWR0aC1kZWZhdWx0KSk7XG4gIGZpbGw6IG5vbmU7XG59XG4ucmVhY3QtZmxvdyAucmVhY3QtZmxvd19fZWRnZXMge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG59XG4ucmVhY3QtZmxvdyAucmVhY3QtZmxvd19fZWRnZXMgc3ZnIHtcbiAgICBvdmVyZmxvdzogdmlzaWJsZTtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIH1cbi5yZWFjdC1mbG93X19lZGdlIHtcbiAgcG9pbnRlci1ldmVudHM6IHZpc2libGVTdHJva2U7XG59XG4ucmVhY3QtZmxvd19fZWRnZS5zZWxlY3RhYmxlIHtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gIH1cbi5yZWFjdC1mbG93X19lZGdlLmFuaW1hdGVkIHBhdGgge1xuICAgIHN0cm9rZS1kYXNoYXJyYXk6IDU7XG4gICAgYW5pbWF0aW9uOiBkYXNoZHJhdyAwLjVzIGxpbmVhciBpbmZpbml0ZTtcbiAgfVxuLnJlYWN0LWZsb3dfX2VkZ2UuYW5pbWF0ZWQgcGF0aC5yZWFjdC1mbG93X19lZGdlLWludGVyYWN0aW9uIHtcbiAgICBzdHJva2UtZGFzaGFycmF5OiBub25lO1xuICAgIGFuaW1hdGlvbjogbm9uZTtcbiAgfVxuLnJlYWN0LWZsb3dfX2VkZ2UuaW5hY3RpdmUge1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICB9XG4ucmVhY3QtZmxvd19fZWRnZS5zZWxlY3RlZCxcbiAgLnJlYWN0LWZsb3dfX2VkZ2U6Zm9jdXMsXG4gIC5yZWFjdC1mbG93X19lZGdlOmZvY3VzLXZpc2libGUge1xuICAgIG91dGxpbmU6IG5vbmU7XG4gIH1cbi5yZWFjdC1mbG93X19lZGdlLnNlbGVjdGVkIC5yZWFjdC1mbG93X19lZGdlLXBhdGgsXG4gIC5yZWFjdC1mbG93X19lZGdlLnNlbGVjdGFibGU6Zm9jdXMgLnJlYWN0LWZsb3dfX2VkZ2UtcGF0aCxcbiAgLnJlYWN0LWZsb3dfX2VkZ2Uuc2VsZWN0YWJsZTpmb2N1cy12aXNpYmxlIC5yZWFjdC1mbG93X19lZGdlLXBhdGgge1xuICAgIHN0cm9rZTogdmFyKC0teHktZWRnZS1zdHJva2Utc2VsZWN0ZWQsIHZhcigtLXh5LWVkZ2Utc3Ryb2tlLXNlbGVjdGVkLWRlZmF1bHQpKTtcbiAgfVxuLnJlYWN0LWZsb3dfX2VkZ2UtdGV4dHdyYXBwZXIge1xuICAgIHBvaW50ZXItZXZlbnRzOiBhbGw7XG4gIH1cbi5yZWFjdC1mbG93X19lZGdlIC5yZWFjdC1mbG93X19lZGdlLXRleHQge1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgICAgLW1vei11c2VyLXNlbGVjdDogbm9uZTtcbiAgICAgICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xuICB9XG4ucmVhY3QtZmxvd19fY29ubmVjdGlvbiB7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xufVxuLnJlYWN0LWZsb3dfX2Nvbm5lY3Rpb24gLmFuaW1hdGVkIHtcbiAgICBzdHJva2UtZGFzaGFycmF5OiA1O1xuICAgIGFuaW1hdGlvbjogZGFzaGRyYXcgMC41cyBsaW5lYXIgaW5maW5pdGU7XG4gIH1cbnN2Zy5yZWFjdC1mbG93X19jb25uZWN0aW9ubGluZSB7XG4gIHotaW5kZXg6IDEwMDE7XG4gIG92ZXJmbG93OiB2aXNpYmxlO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG59XG4ucmVhY3QtZmxvd19fbm9kZXMge1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgdHJhbnNmb3JtLW9yaWdpbjogMCAwO1xufVxuLnJlYWN0LWZsb3dfX25vZGUge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgIC1tb3otdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gIHBvaW50ZXItZXZlbnRzOiBhbGw7XG4gIHRyYW5zZm9ybS1vcmlnaW46IDAgMDtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgY3Vyc29yOiBkZWZhdWx0O1xufVxuLnJlYWN0LWZsb3dfX25vZGUuc2VsZWN0YWJsZSB7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICB9XG4ucmVhY3QtZmxvd19fbm9kZS5kcmFnZ2FibGUge1xuICAgIGN1cnNvcjogZ3JhYjtcbiAgICBwb2ludGVyLWV2ZW50czogYWxsO1xuICB9XG4ucmVhY3QtZmxvd19fbm9kZS5kcmFnZ2FibGUuZHJhZ2dpbmcge1xuICAgICAgY3Vyc29yOiBncmFiYmluZztcbiAgICB9XG4ucmVhY3QtZmxvd19fbm9kZXNzZWxlY3Rpb24ge1xuICB6LWluZGV4OiAzO1xuICB0cmFuc2Zvcm0tb3JpZ2luOiBsZWZ0IHRvcDtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG59XG4ucmVhY3QtZmxvd19fbm9kZXNzZWxlY3Rpb24tcmVjdCB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHBvaW50ZXItZXZlbnRzOiBhbGw7XG4gICAgY3Vyc29yOiBncmFiO1xuICB9XG4ucmVhY3QtZmxvd19faGFuZGxlIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgbWluLXdpZHRoOiA1cHg7XG4gIG1pbi1oZWlnaHQ6IDVweDtcbiAgd2lkdGg6IDZweDtcbiAgaGVpZ2h0OiA2cHg7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXh5LWhhbmRsZS1iYWNrZ3JvdW5kLWNvbG9yLCB2YXIoLS14eS1oYW5kbGUtYmFja2dyb3VuZC1jb2xvci1kZWZhdWx0KSk7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLXh5LWhhbmRsZS1ib3JkZXItY29sb3IsIHZhcigtLXh5LWhhbmRsZS1ib3JkZXItY29sb3ItZGVmYXVsdCkpO1xuICBib3JkZXItcmFkaXVzOiAxMDAlO1xufVxuLnJlYWN0LWZsb3dfX2hhbmRsZS5jb25uZWN0aW5nZnJvbSB7XG4gICAgcG9pbnRlci1ldmVudHM6IGFsbDtcbiAgfVxuLnJlYWN0LWZsb3dfX2hhbmRsZS5jb25uZWN0aW9uaW5kaWNhdG9yIHtcbiAgICBwb2ludGVyLWV2ZW50czogYWxsO1xuICAgIGN1cnNvcjogY3Jvc3NoYWlyO1xuICB9XG4ucmVhY3QtZmxvd19faGFuZGxlLWJvdHRvbSB7XG4gICAgdG9wOiBhdXRvO1xuICAgIGxlZnQ6IDUwJTtcbiAgICBib3R0b206IDA7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgNTAlKTtcbiAgfVxuLnJlYWN0LWZsb3dfX2hhbmRsZS10b3Age1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiA1MCU7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG4gIH1cbi5yZWFjdC1mbG93X19oYW5kbGUtbGVmdCB7XG4gICAgdG9wOiA1MCU7XG4gICAgbGVmdDogMDtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcbiAgfVxuLnJlYWN0LWZsb3dfX2hhbmRsZS1yaWdodCB7XG4gICAgdG9wOiA1MCU7XG4gICAgcmlnaHQ6IDA7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoNTAlLCAtNTAlKTtcbiAgfVxuLnJlYWN0LWZsb3dfX2VkZ2V1cGRhdGVyIHtcbiAgY3Vyc29yOiBtb3ZlO1xuICBwb2ludGVyLWV2ZW50czogYWxsO1xufVxuLnJlYWN0LWZsb3dfX3BhbmUuc2VsZWN0aW9uIC5yZWFjdC1mbG93X19wYW5lbCB7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xufVxuLnJlYWN0LWZsb3dfX3BhbmVsIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB6LWluZGV4OiA1O1xuICBtYXJnaW46IDE1cHg7XG59XG4ucmVhY3QtZmxvd19fcGFuZWwudG9wIHtcbiAgICB0b3A6IDA7XG4gIH1cbi5yZWFjdC1mbG93X19wYW5lbC5ib3R0b20ge1xuICAgIGJvdHRvbTogMDtcbiAgfVxuLnJlYWN0LWZsb3dfX3BhbmVsLnRvcC5jZW50ZXIsIC5yZWFjdC1mbG93X19wYW5lbC5ib3R0b20uY2VudGVyIHtcbiAgICAgIGxlZnQ6IDUwJTtcbiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMTVweCkgdHJhbnNsYXRlWCgtNTAlKTtcbiAgICB9XG4ucmVhY3QtZmxvd19fcGFuZWwubGVmdCB7XG4gICAgbGVmdDogMDtcbiAgfVxuLnJlYWN0LWZsb3dfX3BhbmVsLnJpZ2h0IHtcbiAgICByaWdodDogMDtcbiAgfVxuLnJlYWN0LWZsb3dfX3BhbmVsLmxlZnQuY2VudGVyLCAucmVhY3QtZmxvd19fcGFuZWwucmlnaHQuY2VudGVyIHtcbiAgICAgIHRvcDogNTAlO1xuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xNXB4KSB0cmFuc2xhdGVZKC01MCUpO1xuICAgIH1cbi5yZWFjdC1mbG93X19hdHRyaWJ1dGlvbiB7XG4gIGZvbnQtc2l6ZTogMTBweDtcbiAgYmFja2dyb3VuZDogdmFyKC0teHktYXR0cmlidXRpb24tYmFja2dyb3VuZC1jb2xvciwgdmFyKC0teHktYXR0cmlidXRpb24tYmFja2dyb3VuZC1jb2xvci1kZWZhdWx0KSk7XG4gIHBhZGRpbmc6IDJweCAzcHg7XG4gIG1hcmdpbjogMDtcbn1cbi5yZWFjdC1mbG93X19hdHRyaWJ1dGlvbiBhIHtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgY29sb3I6ICM5OTk7XG4gIH1cbkBrZXlmcmFtZXMgZGFzaGRyYXcge1xuICBmcm9tIHtcbiAgICBzdHJva2UtZGFzaG9mZnNldDogMTA7XG4gIH1cbn1cbi5yZWFjdC1mbG93X19lZGdlbGFiZWwtcmVuZGVyZXIge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAtd2Via2l0LXVzZXItc2VsZWN0OiBub25lO1xuICAgICAtbW96LXVzZXItc2VsZWN0OiBub25lO1xuICAgICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xuICBsZWZ0OiAwO1xuICB0b3A6IDA7XG59XG4ucmVhY3QtZmxvd19fdmlld3BvcnQtcG9ydGFsIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBsZWZ0OiAwO1xuICB0b3A6IDA7XG4gIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgIC1tb3otdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XG59XG4ucmVhY3QtZmxvd19fbWluaW1hcCB7XG4gIGJhY2tncm91bmQ6IHZhcihcbiAgICAtLXh5LW1pbmltYXAtYmFja2dyb3VuZC1jb2xvci1wcm9wcyxcbiAgICB2YXIoLS14eS1taW5pbWFwLWJhY2tncm91bmQtY29sb3IsIHZhcigtLXh5LW1pbmltYXAtYmFja2dyb3VuZC1jb2xvci1kZWZhdWx0KSlcbiAgKTtcbn1cbi5yZWFjdC1mbG93X19taW5pbWFwLXN2ZyB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gIH1cbi5yZWFjdC1mbG93X19taW5pbWFwLW1hc2sge1xuICAgIGZpbGw6IHZhcihcbiAgICAgIC0teHktbWluaW1hcC1tYXNrLWJhY2tncm91bmQtY29sb3ItcHJvcHMsXG4gICAgICB2YXIoLS14eS1taW5pbWFwLW1hc2stYmFja2dyb3VuZC1jb2xvciwgdmFyKC0teHktbWluaW1hcC1tYXNrLWJhY2tncm91bmQtY29sb3ItZGVmYXVsdCkpXG4gICAgKTtcbiAgICBzdHJva2U6IHZhcihcbiAgICAgIC0teHktbWluaW1hcC1tYXNrLXN0cm9rZS1jb2xvci1wcm9wcyxcbiAgICAgIHZhcigtLXh5LW1pbmltYXAtbWFzay1zdHJva2UtY29sb3IsIHZhcigtLXh5LW1pbmltYXAtbWFzay1zdHJva2UtY29sb3ItZGVmYXVsdCkpXG4gICAgKTtcbiAgICBzdHJva2Utd2lkdGg6IHZhcihcbiAgICAgIC0teHktbWluaW1hcC1tYXNrLXN0cm9rZS13aWR0aC1wcm9wcyxcbiAgICAgIHZhcigtLXh5LW1pbmltYXAtbWFzay1zdHJva2Utd2lkdGgsIHZhcigtLXh5LW1pbmltYXAtbWFzay1zdHJva2Utd2lkdGgtZGVmYXVsdCkpXG4gICAgKTtcbiAgfVxuLnJlYWN0LWZsb3dfX21pbmltYXAtbm9kZSB7XG4gICAgZmlsbDogdmFyKFxuICAgICAgLS14eS1taW5pbWFwLW5vZGUtYmFja2dyb3VuZC1jb2xvci1wcm9wcyxcbiAgICAgIHZhcigtLXh5LW1pbmltYXAtbm9kZS1iYWNrZ3JvdW5kLWNvbG9yLCB2YXIoLS14eS1taW5pbWFwLW5vZGUtYmFja2dyb3VuZC1jb2xvci1kZWZhdWx0KSlcbiAgICApO1xuICAgIHN0cm9rZTogdmFyKFxuICAgICAgLS14eS1taW5pbWFwLW5vZGUtc3Ryb2tlLWNvbG9yLXByb3BzLFxuICAgICAgdmFyKC0teHktbWluaW1hcC1ub2RlLXN0cm9rZS1jb2xvciwgdmFyKC0teHktbWluaW1hcC1ub2RlLXN0cm9rZS1jb2xvci1kZWZhdWx0KSlcbiAgICApO1xuICAgIHN0cm9rZS13aWR0aDogdmFyKFxuICAgICAgLS14eS1taW5pbWFwLW5vZGUtc3Ryb2tlLXdpZHRoLXByb3BzLFxuICAgICAgdmFyKC0teHktbWluaW1hcC1ub2RlLXN0cm9rZS13aWR0aCwgdmFyKC0teHktbWluaW1hcC1ub2RlLXN0cm9rZS13aWR0aC1kZWZhdWx0KSlcbiAgICApO1xuICB9XG4ucmVhY3QtZmxvd19fYmFja2dyb3VuZC1wYXR0ZXJuLmRvdHMge1xuICAgIGZpbGw6IHZhcihcbiAgICAgIC0teHktYmFja2dyb3VuZC1wYXR0ZXJuLWNvbG9yLXByb3BzLFxuICAgICAgdmFyKC0teHktYmFja2dyb3VuZC1wYXR0ZXJuLWNvbG9yLCB2YXIoLS14eS1iYWNrZ3JvdW5kLXBhdHRlcm4tZG90cy1jb2xvci1kZWZhdWx0KSlcbiAgICApO1xuICB9XG4ucmVhY3QtZmxvd19fYmFja2dyb3VuZC1wYXR0ZXJuLmxpbmVzIHtcbiAgICBzdHJva2U6IHZhcihcbiAgICAgIC0teHktYmFja2dyb3VuZC1wYXR0ZXJuLWNvbG9yLXByb3BzLFxuICAgICAgdmFyKC0teHktYmFja2dyb3VuZC1wYXR0ZXJuLWNvbG9yLCB2YXIoLS14eS1iYWNrZ3JvdW5kLXBhdHRlcm4tbGluZXMtY29sb3ItZGVmYXVsdCkpXG4gICAgKTtcbiAgfVxuLnJlYWN0LWZsb3dfX2JhY2tncm91bmQtcGF0dGVybi5jcm9zcyB7XG4gICAgc3Ryb2tlOiB2YXIoXG4gICAgICAtLXh5LWJhY2tncm91bmQtcGF0dGVybi1jb2xvci1wcm9wcyxcbiAgICAgIHZhcigtLXh5LWJhY2tncm91bmQtcGF0dGVybi1jb2xvciwgdmFyKC0teHktYmFja2dyb3VuZC1wYXR0ZXJuLWNyb3NzLWNvbG9yLWRlZmF1bHQpKVxuICAgICk7XG4gIH1cbi5yZWFjdC1mbG93X19jb250cm9scyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGJveC1zaGFkb3c6IHZhcigtLXh5LWNvbnRyb2xzLWJveC1zaGFkb3csIHZhcigtLXh5LWNvbnRyb2xzLWJveC1zaGFkb3ctZGVmYXVsdCkpO1xufVxuLnJlYWN0LWZsb3dfX2NvbnRyb2xzLmhvcml6b250YWwge1xuICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gIH1cbi5yZWFjdC1mbG93X19jb250cm9scy1idXR0b24ge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBoZWlnaHQ6IDI2cHg7XG4gICAgd2lkdGg6IDI2cHg7XG4gICAgcGFkZGluZzogNHB4O1xuICAgIGJvcmRlcjogbm9uZTtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS14eS1jb250cm9scy1idXR0b24tYmFja2dyb3VuZC1jb2xvciwgdmFyKC0teHktY29udHJvbHMtYnV0dG9uLWJhY2tncm91bmQtY29sb3ItZGVmYXVsdCkpO1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZFxuICAgICAgdmFyKFxuICAgICAgICAtLXh5LWNvbnRyb2xzLWJ1dHRvbi1ib3JkZXItY29sb3ItcHJvcHMsXG4gICAgICAgIHZhcigtLXh5LWNvbnRyb2xzLWJ1dHRvbi1ib3JkZXItY29sb3IsIHZhcigtLXh5LWNvbnRyb2xzLWJ1dHRvbi1ib3JkZXItY29sb3ItZGVmYXVsdCkpXG4gICAgICApO1xuICAgIGNvbG9yOiB2YXIoXG4gICAgICAtLXh5LWNvbnRyb2xzLWJ1dHRvbi1jb2xvci1wcm9wcyxcbiAgICAgIHZhcigtLXh5LWNvbnRyb2xzLWJ1dHRvbi1jb2xvciwgdmFyKC0teHktY29udHJvbHMtYnV0dG9uLWNvbG9yLWRlZmF1bHQpKVxuICAgICk7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgICAgLW1vei11c2VyLXNlbGVjdDogbm9uZTtcbiAgICAgICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xuICB9XG4ucmVhY3QtZmxvd19fY29udHJvbHMtYnV0dG9uIHN2ZyB7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIG1heC13aWR0aDogMTJweDtcbiAgICAgIG1heC1oZWlnaHQ6IDEycHg7XG4gICAgICBmaWxsOiBjdXJyZW50Q29sb3I7XG4gICAgfVxuLnJlYWN0LWZsb3dfX2VkZ2UudXBkYXRpbmcgLnJlYWN0LWZsb3dfX2VkZ2UtcGF0aCB7XG4gICAgICBzdHJva2U6ICM3Nzc7XG4gICAgfVxuLnJlYWN0LWZsb3dfX2VkZ2UtdGV4dCB7XG4gICAgZm9udC1zaXplOiAxMHB4O1xuICB9XG4ucmVhY3QtZmxvd19fbm9kZS5zZWxlY3RhYmxlOmZvY3VzLFxuICAucmVhY3QtZmxvd19fbm9kZS5zZWxlY3RhYmxlOmZvY3VzLXZpc2libGUge1xuICAgIG91dGxpbmU6IG5vbmU7XG4gIH1cbi5yZWFjdC1mbG93X19ub2RlLWlucHV0LFxuLnJlYWN0LWZsb3dfX25vZGUtZGVmYXVsdCxcbi5yZWFjdC1mbG93X19ub2RlLW91dHB1dCxcbi5yZWFjdC1mbG93X19ub2RlLWdyb3VwIHtcbiAgcGFkZGluZzogMTBweDtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0teHktbm9kZS1ib3JkZXItcmFkaXVzLCB2YXIoLS14eS1ub2RlLWJvcmRlci1yYWRpdXMtZGVmYXVsdCkpO1xuICB3aWR0aDogMTUwcHg7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgY29sb3I6IHZhcigtLXh5LW5vZGUtY29sb3IsIHZhcigtLXh5LW5vZGUtY29sb3ItZGVmYXVsdCkpO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGJvcmRlcjogdmFyKC0teHktbm9kZS1ib3JkZXIsIHZhcigtLXh5LW5vZGUtYm9yZGVyLWRlZmF1bHQpKTtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0teHktbm9kZS1iYWNrZ3JvdW5kLWNvbG9yLCB2YXIoLS14eS1ub2RlLWJhY2tncm91bmQtY29sb3ItZGVmYXVsdCkpO1xufVxuLnJlYWN0LWZsb3dfX25vZGUtaW5wdXQuc2VsZWN0YWJsZTpob3ZlciwgLnJlYWN0LWZsb3dfX25vZGUtZGVmYXVsdC5zZWxlY3RhYmxlOmhvdmVyLCAucmVhY3QtZmxvd19fbm9kZS1vdXRwdXQuc2VsZWN0YWJsZTpob3ZlciwgLnJlYWN0LWZsb3dfX25vZGUtZ3JvdXAuc2VsZWN0YWJsZTpob3ZlciB7XG4gICAgICBib3gtc2hhZG93OiB2YXIoLS14eS1ub2RlLWJveHNoYWRvdy1ob3ZlciwgdmFyKC0teHktbm9kZS1ib3hzaGFkb3ctaG92ZXItZGVmYXVsdCkpO1xuICAgIH1cbi5yZWFjdC1mbG93X19ub2RlLWlucHV0LnNlbGVjdGFibGUuc2VsZWN0ZWQsXG4gICAgLnJlYWN0LWZsb3dfX25vZGUtaW5wdXQuc2VsZWN0YWJsZTpmb2N1cyxcbiAgICAucmVhY3QtZmxvd19fbm9kZS1pbnB1dC5zZWxlY3RhYmxlOmZvY3VzLXZpc2libGUsXG4gICAgLnJlYWN0LWZsb3dfX25vZGUtZGVmYXVsdC5zZWxlY3RhYmxlLnNlbGVjdGVkLFxuICAgIC5yZWFjdC1mbG93X19ub2RlLWRlZmF1bHQuc2VsZWN0YWJsZTpmb2N1cyxcbiAgICAucmVhY3QtZmxvd19fbm9kZS1kZWZhdWx0LnNlbGVjdGFibGU6Zm9jdXMtdmlzaWJsZSxcbiAgICAucmVhY3QtZmxvd19fbm9kZS1vdXRwdXQuc2VsZWN0YWJsZS5zZWxlY3RlZCxcbiAgICAucmVhY3QtZmxvd19fbm9kZS1vdXRwdXQuc2VsZWN0YWJsZTpmb2N1cyxcbiAgICAucmVhY3QtZmxvd19fbm9kZS1vdXRwdXQuc2VsZWN0YWJsZTpmb2N1cy12aXNpYmxlLFxuICAgIC5yZWFjdC1mbG93X19ub2RlLWdyb3VwLnNlbGVjdGFibGUuc2VsZWN0ZWQsXG4gICAgLnJlYWN0LWZsb3dfX25vZGUtZ3JvdXAuc2VsZWN0YWJsZTpmb2N1cyxcbiAgICAucmVhY3QtZmxvd19fbm9kZS1ncm91cC5zZWxlY3RhYmxlOmZvY3VzLXZpc2libGUge1xuICAgICAgYm94LXNoYWRvdzogdmFyKC0teHktbm9kZS1ib3hzaGFkb3ctc2VsZWN0ZWQsIHZhcigtLXh5LW5vZGUtYm94c2hhZG93LXNlbGVjdGVkLWRlZmF1bHQpKTtcbiAgICB9XG4ucmVhY3QtZmxvd19fbm9kZS1ncm91cCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXh5LW5vZGUtZ3JvdXAtYmFja2dyb3VuZC1jb2xvciwgdmFyKC0teHktbm9kZS1ncm91cC1iYWNrZ3JvdW5kLWNvbG9yLWRlZmF1bHQpKTtcbn1cbi5yZWFjdC1mbG93X19ub2Rlc3NlbGVjdGlvbi1yZWN0LFxuLnJlYWN0LWZsb3dfX3NlbGVjdGlvbiB7XG4gIGJhY2tncm91bmQ6IHZhcigtLXh5LXNlbGVjdGlvbi1iYWNrZ3JvdW5kLWNvbG9yLCB2YXIoLS14eS1zZWxlY3Rpb24tYmFja2dyb3VuZC1jb2xvci1kZWZhdWx0KSk7XG4gIGJvcmRlcjogdmFyKC0teHktc2VsZWN0aW9uLWJvcmRlciwgdmFyKC0teHktc2VsZWN0aW9uLWJvcmRlci1kZWZhdWx0KSk7XG59XG4ucmVhY3QtZmxvd19fbm9kZXNzZWxlY3Rpb24tcmVjdDpmb2N1cyxcbiAgLnJlYWN0LWZsb3dfX25vZGVzc2VsZWN0aW9uLXJlY3Q6Zm9jdXMtdmlzaWJsZSxcbiAgLnJlYWN0LWZsb3dfX3NlbGVjdGlvbjpmb2N1cyxcbiAgLnJlYWN0LWZsb3dfX3NlbGVjdGlvbjpmb2N1cy12aXNpYmxlIHtcbiAgICBvdXRsaW5lOiBub25lO1xuICB9XG4ucmVhY3QtZmxvd19fY29udHJvbHMtYnV0dG9uOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQ6IHZhcihcbiAgICAgICAgLS14eS1jb250cm9scy1idXR0b24tYmFja2dyb3VuZC1jb2xvci1ob3Zlci1wcm9wcyxcbiAgICAgICAgdmFyKC0teHktY29udHJvbHMtYnV0dG9uLWJhY2tncm91bmQtY29sb3ItaG92ZXIsIHZhcigtLXh5LWNvbnRyb2xzLWJ1dHRvbi1iYWNrZ3JvdW5kLWNvbG9yLWhvdmVyLWRlZmF1bHQpKVxuICAgICAgKTtcbiAgICAgIGNvbG9yOiB2YXIoXG4gICAgICAgIC0teHktY29udHJvbHMtYnV0dG9uLWNvbG9yLWhvdmVyLXByb3BzLFxuICAgICAgICB2YXIoLS14eS1jb250cm9scy1idXR0b24tY29sb3ItaG92ZXIsIHZhcigtLXh5LWNvbnRyb2xzLWJ1dHRvbi1jb2xvci1ob3Zlci1kZWZhdWx0KSlcbiAgICAgICk7XG4gICAgfVxuLnJlYWN0LWZsb3dfX2NvbnRyb2xzLWJ1dHRvbjpkaXNhYmxlZCB7XG4gICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICB9XG4ucmVhY3QtZmxvd19fY29udHJvbHMtYnV0dG9uOmRpc2FibGVkIHN2ZyB7XG4gICAgICAgIGZpbGwtb3BhY2l0eTogMC40O1xuICAgICAgfVxuLnJlYWN0LWZsb3dfX2NvbnRyb2xzLWJ1dHRvbjpsYXN0LWNoaWxkIHtcbiAgICBib3JkZXItYm90dG9tOiBub25lO1xuICB9XG4ucmVhY3QtZmxvd19fY29udHJvbHMuaG9yaXpvbnRhbCAucmVhY3QtZmxvd19fY29udHJvbHMtYnV0dG9uIHtcbiAgICBib3JkZXItYm90dG9tOiBub25lO1xuICAgIGJvcmRlci1yaWdodDogMXB4IHNvbGlkXG4gICAgICB2YXIoXG4gICAgICAgIC0teHktY29udHJvbHMtYnV0dG9uLWJvcmRlci1jb2xvci1wcm9wcyxcbiAgICAgICAgdmFyKC0teHktY29udHJvbHMtYnV0dG9uLWJvcmRlci1jb2xvciwgdmFyKC0teHktY29udHJvbHMtYnV0dG9uLWJvcmRlci1jb2xvci1kZWZhdWx0KSlcbiAgICAgICk7XG4gIH1cbi5yZWFjdC1mbG93X19jb250cm9scy5ob3Jpem9udGFsIC5yZWFjdC1mbG93X19jb250cm9scy1idXR0b246bGFzdC1jaGlsZCB7XG4gICAgYm9yZGVyLXJpZ2h0OiBub25lO1xuICB9XG4ucmVhY3QtZmxvd19fcmVzaXplLWNvbnRyb2wge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG59XG4ucmVhY3QtZmxvd19fcmVzaXplLWNvbnRyb2wubGVmdCxcbi5yZWFjdC1mbG93X19yZXNpemUtY29udHJvbC5yaWdodCB7XG4gIGN1cnNvcjogZXctcmVzaXplO1xufVxuLnJlYWN0LWZsb3dfX3Jlc2l6ZS1jb250cm9sLnRvcCxcbi5yZWFjdC1mbG93X19yZXNpemUtY29udHJvbC5ib3R0b20ge1xuICBjdXJzb3I6IG5zLXJlc2l6ZTtcbn1cbi5yZWFjdC1mbG93X19yZXNpemUtY29udHJvbC50b3AubGVmdCxcbi5yZWFjdC1mbG93X19yZXNpemUtY29udHJvbC5ib3R0b20ucmlnaHQge1xuICBjdXJzb3I6IG53c2UtcmVzaXplO1xufVxuLnJlYWN0LWZsb3dfX3Jlc2l6ZS1jb250cm9sLmJvdHRvbS5sZWZ0LFxuLnJlYWN0LWZsb3dfX3Jlc2l6ZS1jb250cm9sLnRvcC5yaWdodCB7XG4gIGN1cnNvcjogbmVzdy1yZXNpemU7XG59XG4vKiBoYW5kbGUgc3R5bGVzICovXG4ucmVhY3QtZmxvd19fcmVzaXplLWNvbnRyb2wuaGFuZGxlIHtcbiAgd2lkdGg6IDVweDtcbiAgaGVpZ2h0OiA1cHg7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNmZmY7XG4gIGJvcmRlci1yYWRpdXM6IDFweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0teHktcmVzaXplLWJhY2tncm91bmQtY29sb3IsIHZhcigtLXh5LXJlc2l6ZS1iYWNrZ3JvdW5kLWNvbG9yLWRlZmF1bHQpKTtcbiAgdHJhbnNsYXRlOiAtNTAlIC01MCU7XG59XG4ucmVhY3QtZmxvd19fcmVzaXplLWNvbnRyb2wuaGFuZGxlLmxlZnQge1xuICBsZWZ0OiAwO1xuICB0b3A6IDUwJTtcbn1cbi5yZWFjdC1mbG93X19yZXNpemUtY29udHJvbC5oYW5kbGUucmlnaHQge1xuICBsZWZ0OiAxMDAlO1xuICB0b3A6IDUwJTtcbn1cbi5yZWFjdC1mbG93X19yZXNpemUtY29udHJvbC5oYW5kbGUudG9wIHtcbiAgbGVmdDogNTAlO1xuICB0b3A6IDA7XG59XG4ucmVhY3QtZmxvd19fcmVzaXplLWNvbnRyb2wuaGFuZGxlLmJvdHRvbSB7XG4gIGxlZnQ6IDUwJTtcbiAgdG9wOiAxMDAlO1xufVxuLnJlYWN0LWZsb3dfX3Jlc2l6ZS1jb250cm9sLmhhbmRsZS50b3AubGVmdCB7XG4gIGxlZnQ6IDA7XG59XG4ucmVhY3QtZmxvd19fcmVzaXplLWNvbnRyb2wuaGFuZGxlLmJvdHRvbS5sZWZ0IHtcbiAgbGVmdDogMDtcbn1cbi5yZWFjdC1mbG93X19yZXNpemUtY29udHJvbC5oYW5kbGUudG9wLnJpZ2h0IHtcbiAgbGVmdDogMTAwJTtcbn1cbi5yZWFjdC1mbG93X19yZXNpemUtY29udHJvbC5oYW5kbGUuYm90dG9tLnJpZ2h0IHtcbiAgbGVmdDogMTAwJTtcbn1cbi8qIGxpbmUgc3R5bGVzICovXG4ucmVhY3QtZmxvd19fcmVzaXplLWNvbnRyb2wubGluZSB7XG4gIGJvcmRlci1jb2xvcjogdmFyKC0teHktcmVzaXplLWJhY2tncm91bmQtY29sb3IsIHZhcigtLXh5LXJlc2l6ZS1iYWNrZ3JvdW5kLWNvbG9yLWRlZmF1bHQpKTtcbiAgYm9yZGVyLXdpZHRoOiAwO1xuICBib3JkZXItc3R5bGU6IHNvbGlkO1xufVxuLnJlYWN0LWZsb3dfX3Jlc2l6ZS1jb250cm9sLmxpbmUubGVmdCxcbi5yZWFjdC1mbG93X19yZXNpemUtY29udHJvbC5saW5lLnJpZ2h0IHtcbiAgd2lkdGg6IDFweDtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgMCk7XG4gIHRvcDogMDtcbiAgaGVpZ2h0OiAxMDAlO1xufVxuLnJlYWN0LWZsb3dfX3Jlc2l6ZS1jb250cm9sLmxpbmUubGVmdCB7XG4gIGxlZnQ6IDA7XG4gIGJvcmRlci1sZWZ0LXdpZHRoOiAxcHg7XG59XG4ucmVhY3QtZmxvd19fcmVzaXplLWNvbnRyb2wubGluZS5yaWdodCB7XG4gIGxlZnQ6IDEwMCU7XG4gIGJvcmRlci1yaWdodC13aWR0aDogMXB4O1xufVxuLnJlYWN0LWZsb3dfX3Jlc2l6ZS1jb250cm9sLmxpbmUudG9wLFxuLnJlYWN0LWZsb3dfX3Jlc2l6ZS1jb250cm9sLmxpbmUuYm90dG9tIHtcbiAgaGVpZ2h0OiAxcHg7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIC01MCUpO1xuICBsZWZ0OiAwO1xuICB3aWR0aDogMTAwJTtcbn1cbi5yZWFjdC1mbG93X19yZXNpemUtY29udHJvbC5saW5lLnRvcCB7XG4gIHRvcDogMDtcbiAgYm9yZGVyLXRvcC13aWR0aDogMXB4O1xufVxuLnJlYWN0LWZsb3dfX3Jlc2l6ZS1jb250cm9sLmxpbmUuYm90dG9tIHtcbiAgYm9yZGVyLWJvdHRvbS13aWR0aDogMXB4O1xuICB0b3A6IDEwMCU7XG59XG4ucmVhY3QtZmxvd19fZWRnZS10ZXh0Ymcge1xuICBmaWxsOiB2YXIoLS14eS1lZGdlLWxhYmVsLWJhY2tncm91bmQtY29sb3IsIHZhcigtLXh5LWVkZ2UtbGFiZWwtYmFja2dyb3VuZC1jb2xvci1kZWZhdWx0KSk7XG59XG4ucmVhY3QtZmxvd19fZWRnZS10ZXh0IHtcbiAgZmlsbDogdmFyKC0teHktZWRnZS1sYWJlbC1jb2xvciwgdmFyKC0teHktZWRnZS1sYWJlbC1jb2xvci1kZWZhdWx0KSk7XG59XG4iLCAiLyogV2lyZWZyYW1lIFJlbmRlcmVyIFN0eWxlcyAqL1xuXG4ud2lyZWZyYW1lLXN2ZyB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBtYXgtd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogYXV0bztcbn1cblxuLndpcmVmcmFtZS1lbGVtZW50LXdyYXBwZXIge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgYm9yZGVyLXJhZGl1czogNHB4O1xuICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlO1xufVxuXG4ud2lyZWZyYW1lLWVsZW1lbnQtbGFiZWwge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDhweDtcbiAgcGFkZGluZzogNHB4IDhweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0ZGRjVFNjtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNGRkI3MzM7XG4gIGZvbnQtc2l6ZTogMTFweDtcbiAgY29sb3I6ICNGRjhDMDA7XG59XG5cbi53aXJlZnJhbWUtZWxlbWVudC1sYWJlbCAuZWxlbWVudC10eXBlIHtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgbGV0dGVyLXNwYWNpbmc6IDAuNXB4O1xufVxuXG4ud2lyZWZyYW1lLWVsZW1lbnQtbGFiZWwgLmVsZW1lbnQtdGl0bGUge1xuICBjb2xvcjogIzY2NjtcbiAgZm9udC1zdHlsZTogaXRhbGljO1xufVxuXG4ud2lyZWZyYW1lLWVsZW1lbnQtc3ZnIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG4gIGJvcmRlci1yYWRpdXM6IDAgMCA0cHggNHB4O1xuICBvdmVyZmxvdzogaGlkZGVuO1xufVxuXG4ud2lyZWZyYW1lLWVsZW1lbnQtaG92ZXIge1xuICBib3gtc2hhZG93OiAwIDJweCA4cHggcmdiYSgyNTUsIDE2NSwgMCwgMC4zKTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xcHgpO1xufVxuXG4ud2lyZWZyYW1lLWVsZW1lbnQtZHJhZ2dhYmxlIHtcbiAgY3Vyc29yOiBtb3ZlO1xufVxuXG4ud2lyZWZyYW1lLWVsZW1lbnQtZHJhZ2dhYmxlOmFjdGl2ZSB7XG4gIG9wYWNpdHk6IDAuODtcbn1cblxuLndpcmVmcmFtZS1lbGVtZW50cy1jb250YWluZXIge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBnYXA6IDRweDtcbiAgcGFkZGluZzogOHB4O1xuICBtYXgtaGVpZ2h0OiA0MDBweDtcbiAgb3ZlcmZsb3cteTogYXV0bztcbn1cblxuLndpcmVmcmFtZS1lbGVtZW50LWl0ZW0ge1xuICBib3JkZXI6IDFweCBzb2xpZCAjRTVFN0VCO1xuICBib3JkZXItcmFkaXVzOiA0cHg7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2U7XG59XG5cbi53aXJlZnJhbWUtZWxlbWVudC1pdGVtOmhvdmVyIHtcbiAgYm9yZGVyLWNvbG9yOiAjRkZBNTAwO1xufVxuXG4vKiBDb21wYWN0IG1vZGUgZm9yIG5vZGUgZGlzcGxheSAqL1xuLndpcmVmcmFtZS1jb21wYWN0IHtcbiAgdHJhbnNmb3JtOiBzY2FsZSgwLjgpO1xuICB0cmFuc2Zvcm0tb3JpZ2luOiB0b3AgbGVmdDtcbn1cblxuLndpcmVmcmFtZS1jb21wYWN0IC53aXJlZnJhbWUtZWxlbWVudC1sYWJlbCB7XG4gIHBhZGRpbmc6IDJweCA0cHg7XG4gIGZvbnQtc2l6ZTogOXB4O1xufVxuXG4vKiBOb2RlIHdpcmVmcmFtZSBkaXNwbGF5ICovXG4ubm9kZS13aXJlZnJhbWUge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGJvdHRvbTogLTRweDtcbiAgbGVmdDogMDtcbiAgcmlnaHQ6IDA7XG4gIGJhY2tncm91bmQ6IHdoaXRlO1xuICBib3JkZXItdG9wOiAxcHggc29saWQgI0U1RTdFQjtcbiAgYm9yZGVyLXJhZGl1czogMCAwIDZweCA2cHg7XG4gIHBhZGRpbmc6IDRweDtcbiAgbWF4LWhlaWdodDogMTAwcHg7XG4gIG92ZXJmbG93OiBoaWRkZW47XG59XG5cbi5ub2RlLXdpcmVmcmFtZS1taW5pIHtcbiAgdHJhbnNmb3JtOiBzY2FsZSgwLjYpO1xuICB0cmFuc2Zvcm0tb3JpZ2luOiB0b3AgY2VudGVyO1xuICBvcGFjaXR5OiAwLjg7XG59XG5cbi8qIEVsZW1lbnQgaWNvbnMgaW4gcGFsZXR0ZSAqL1xuLmVsZW1lbnQtcGFsZXR0ZS1pdGVtIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIHBhZGRpbmc6IDhweDtcbiAgYm9yZGVyOiAycHggc29saWQgdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgYmFja2dyb3VuZDogI0ZGRjVFNjtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlO1xuICBtaW4taGVpZ2h0OiA2MHB4O1xufVxuXG4uZWxlbWVudC1wYWxldHRlLWl0ZW06aG92ZXIge1xuICBib3JkZXItY29sb3I6ICNGRkE1MDA7XG4gIGJhY2tncm91bmQ6ICNGRkU1Q0M7XG4gIHRyYW5zZm9ybTogc2NhbGUoMS4wNSk7XG59XG5cbi5lbGVtZW50LXBhbGV0dGUtaXRlbS5zZWxlY3RlZCB7XG4gIGJvcmRlci1jb2xvcjogI0ZGOEMwMDtcbiAgYmFja2dyb3VuZDogI0ZGRDcwMDtcbn1cblxuLmVsZW1lbnQtcGFsZXR0ZS1pY29uIHtcbiAgZm9udC1zaXplOiAyMHB4O1xuICBjb2xvcjogI0ZGQTUwMDtcbiAgbWFyZ2luLWJvdHRvbTogNHB4O1xufVxuXG4uZWxlbWVudC1wYWxldHRlLWxhYmVsIHtcbiAgZm9udC1zaXplOiAxMHB4O1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGNvbG9yOiAjNjY2O1xuICB3b3JkLWJyZWFrOiBicmVhay13b3JkO1xufVxuXG4vKiBXaXJlZnJhbWUgaW4gcHJvcGVydGllcyBwYW5lbCAqL1xuLnByb3BlcnRpZXMtd2lyZWZyYW1lIHtcbiAgbWFyZ2luLXRvcDogOHB4O1xuICBwYWRkaW5nOiA4cHg7XG4gIGJhY2tncm91bmQ6ICNGRkY1RTY7XG4gIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgYm9yZGVyOiAxcHggc29saWQgI0ZGQjczMztcbn1cblxuLnByb3BlcnRpZXMtd2lyZWZyYW1lLXRpdGxlIHtcbiAgZm9udC1zaXplOiAxMXB4O1xuICBmb250LXdlaWdodDogNjAwO1xuICBjb2xvcjogI0ZGOEMwMDtcbiAgbWFyZ2luLWJvdHRvbTogOHB4O1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xufVxuXG4ucHJvcGVydGllcy13aXJlZnJhbWUtcHJldmlldyB7XG4gIGJhY2tncm91bmQ6IHdoaXRlO1xuICBib3JkZXItcmFkaXVzOiA0cHg7XG4gIHBhZGRpbmc6IDhweDtcbiAgbWluLWhlaWdodDogNjBweDtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG59XG5cbi8qIEVtcHR5IHN0YXRlICovXG4ud2lyZWZyYW1lLWVtcHR5IHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIHBhZGRpbmc6IDIwcHg7XG4gIGNvbG9yOiAjOTk5O1xuICBmb250LXNpemU6IDEycHg7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cblxuLndpcmVmcmFtZS1lbXB0eS1pY29uIHtcbiAgZm9udC1zaXplOiAzMnB4O1xuICBtYXJnaW4tYm90dG9tOiA4cHg7XG4gIG9wYWNpdHk6IDAuNTtcbn1cblxuLyogTG9hZGluZyBzdGF0ZSAqL1xuLndpcmVmcmFtZS1sb2FkaW5nIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIHBhZGRpbmc6IDIwcHg7XG4gIGNvbG9yOiAjRkZBNTAwO1xufVxuXG4ud2lyZWZyYW1lLWxvYWRpbmc6OmFmdGVyIHtcbiAgY29udGVudDogJyc7XG4gIHdpZHRoOiAyMHB4O1xuICBoZWlnaHQ6IDIwcHg7XG4gIGJvcmRlcjogMnB4IHNvbGlkICNGRkE1MDA7XG4gIGJvcmRlci10b3AtY29sb3I6IHRyYW5zcGFyZW50O1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG4gIGFuaW1hdGlvbjogd2lyZWZyYW1lLXNwaW4gMC44cyBsaW5lYXIgaW5maW5pdGU7XG59XG5cbkBrZXlmcmFtZXMgd2lyZWZyYW1lLXNwaW4ge1xuICB0byB7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKTtcbiAgfVxufVxuXG4vKiBFeHBvcnQgbW9kYWwgKi9cbi53aXJlZnJhbWUtZXhwb3J0LXByZXZpZXcge1xuICBiYWNrZ3JvdW5kOiB3aGl0ZTtcbiAgYm9yZGVyOiAxcHggc29saWQgI0U1RTdFQjtcbiAgYm9yZGVyLXJhZGl1czogNHB4O1xuICBwYWRkaW5nOiAxNnB4O1xuICBtYXJnaW46IDE2cHggMDtcbiAgbWF4LWhlaWdodDogNDAwcHg7XG4gIG92ZXJmbG93OiBhdXRvO1xufVxuXG4ud2lyZWZyYW1lLWV4cG9ydC1vcHRpb25zIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZ2FwOiA4cHg7XG4gIG1hcmdpbi1ib3R0b206IDE2cHg7XG59XG5cbi53aXJlZnJhbWUtZXhwb3J0LW9wdGlvbiB7XG4gIGZsZXg6IDE7XG4gIHBhZGRpbmc6IDhweDtcbiAgYm9yZGVyOiAycHggc29saWQgI0U1RTdFQjtcbiAgYm9yZGVyLXJhZGl1czogNHB4O1xuICBiYWNrZ3JvdW5kOiB3aGl0ZTtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2U7XG59XG5cbi53aXJlZnJhbWUtZXhwb3J0LW9wdGlvbjpob3ZlciB7XG4gIGJvcmRlci1jb2xvcjogI0ZGQTUwMDtcbiAgYmFja2dyb3VuZDogI0ZGRjVFNjtcbn1cblxuLndpcmVmcmFtZS1leHBvcnQtb3B0aW9uLmFjdGl2ZSB7XG4gIGJvcmRlci1jb2xvcjogI0ZGOEMwMDtcbiAgYmFja2dyb3VuZDogI0ZGRDcwMDtcbn1cblxuLyogUmVzcG9uc2l2ZSBhZGp1c3RtZW50cyAqL1xuQG1lZGlhIChtYXgtd2lkdGg6IDc2OHB4KSB7XG4gIC53aXJlZnJhbWUtZWxlbWVudHMtY29udGFpbmVyIHtcbiAgICBtYXgtaGVpZ2h0OiAyMDBweDtcbiAgfVxuICBcbiAgLmVsZW1lbnQtcGFsZXR0ZS1pdGVtIHtcbiAgICBtaW4taGVpZ2h0OiA1MHB4O1xuICAgIHBhZGRpbmc6IDZweDtcbiAgfVxuICBcbiAgLmVsZW1lbnQtcGFsZXR0ZS1pY29uIHtcbiAgICBmb250LXNpemU6IDE2cHg7XG4gIH1cbiAgXG4gIC5lbGVtZW50LXBhbGV0dGUtbGFiZWwge1xuICAgIGZvbnQtc2l6ZTogOXB4O1xuICB9XG59Il0sCiAgIm1hcHBpbmdzIjogIjtBQUVBLENBQUM7QUFDQyxhQUFXO0FBRVgsNEJBQTBCO0FBQzFCLGtDQUFnQztBQUNoQyxxQ0FBbUM7QUFFbkMsc0NBQW9DO0FBQ3BDLDRDQUEwQztBQUUxQyw2Q0FBMkMsS0FBSyxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRTtBQUUvRCx5Q0FBdUM7QUFDdkMsOENBQTRDLEtBQUssR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUU7QUFDaEUsMENBQXdDO0FB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 */
