@layer primefaces.tokens, primefaces.vendor, primefaces.components, primefaces.behaviors;

/* packages/components/src/icons/lucide.css */
@layer primefaces.tokens {
  :root {
    --p-icon-close: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' %3E%3Cpath d='M18 6 6 18' /%3E%3Cpath d='m6 6 12 12' /%3E%3C/svg%3E");
    --p-icon-clear: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' %3E%3Ccircle cx='12' cy='12' r='10' /%3E%3Cpath d='m15 9-6 6' /%3E%3Cpath d='m9 9 6 6' /%3E%3C/svg%3E");
    --p-icon-check: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' %3E%3Cpath d='M20 6 9 17l-5-5' /%3E%3C/svg%3E");
    --p-icon-indeterminate: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' %3E%3Cpath d='M5 12h14' /%3E%3C/svg%3E");
    --p-icon-plus: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' %3E%3Cpath d='M5 12h14' /%3E%3Cpath d='M12 5v14' /%3E%3C/svg%3E");
    --p-icon-minus: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' %3E%3Cpath d='M5 12h14' /%3E%3C/svg%3E");
    --p-icon-collapsed: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' %3E%3Cpath d='m9 18 6-6-6-6' /%3E%3C/svg%3E");
    --p-icon-expanded: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' %3E%3Cpath d='m6 9 6 6 6-6' /%3E%3C/svg%3E");
    --p-icon-dropdown: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' %3E%3Cpath d='m6 9 6 6 6-6' /%3E%3C/svg%3E");
    --p-icon-up: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' %3E%3Cpath d='m18 15-6-6-6 6' /%3E%3C/svg%3E");
    --p-icon-down: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' %3E%3Cpath d='m6 9 6 6 6-6' /%3E%3C/svg%3E");
    --p-icon-prev: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' %3E%3Cpath d='m15 18-6-6 6-6' /%3E%3C/svg%3E");
    --p-icon-next: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' %3E%3Cpath d='m9 18 6-6-6-6' /%3E%3C/svg%3E");
    --p-icon-first: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' %3E%3Cpath d='m11 17-5-5 5-5' /%3E%3Cpath d='m18 17-5-5 5-5' /%3E%3C/svg%3E");
    --p-icon-last: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' %3E%3Cpath d='m6 17 5-5-5-5' /%3E%3Cpath d='m13 17 5-5-5-5' /%3E%3C/svg%3E");
    --p-icon-top: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' %3E%3Cpath d='m17 11-5-5-5 5' /%3E%3Cpath d='m17 18-5-5-5 5' /%3E%3C/svg%3E");
    --p-icon-bottom: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' %3E%3Cpath d='m7 6 5 5 5-5' /%3E%3Cpath d='m7 13 5 5 5-5' /%3E%3C/svg%3E");
    --p-icon-arrow-up: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' %3E%3Cpath d='m5 12 7-7 7 7' /%3E%3Cpath d='M12 19V5' /%3E%3C/svg%3E");
    --p-icon-arrow-down: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' %3E%3Cpath d='M12 5v14' /%3E%3Cpath d='m19 12-7 7-7-7' /%3E%3C/svg%3E");
    --p-icon-arrow-left: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' %3E%3Cpath d='m12 19-7-7 7-7' /%3E%3Cpath d='M19 12H5' /%3E%3C/svg%3E");
    --p-icon-arrow-right: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' %3E%3Cpath d='M5 12h14' /%3E%3Cpath d='m12 5 7 7-7 7' /%3E%3C/svg%3E");
    --p-icon-sort: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' %3E%3Cpath d='m21 16-4 4-4-4' /%3E%3Cpath d='M17 20V4' /%3E%3Cpath d='m3 8 4-4 4 4' /%3E%3Cpath d='M7 4v16' /%3E%3C/svg%3E");
    --p-icon-sort-asc: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' %3E%3Cpath d='m3 8 4-4 4 4' /%3E%3Cpath d='M7 4v16' /%3E%3Cpath d='M11 12h4' /%3E%3Cpath d='M11 16h7' /%3E%3Cpath d='M11 20h10' /%3E%3C/svg%3E");
    --p-icon-sort-desc: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' %3E%3Cpath d='m3 16 4 4 4-4' /%3E%3Cpath d='M7 20V4' /%3E%3Cpath d='M11 4h10' /%3E%3Cpath d='M11 8h7' /%3E%3Cpath d='M11 12h4' /%3E%3C/svg%3E");
    --p-icon-search: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' %3E%3Cpath d='m21 21-4.34-4.34' /%3E%3Ccircle cx='11' cy='11' r='8' /%3E%3C/svg%3E");
    --p-icon-edit: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' %3E%3Cpath d='M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z' /%3E%3Cpath d='m15 5 4 4' /%3E%3C/svg%3E");
    --p-icon-trash: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' %3E%3Cpath d='M10 11v6' /%3E%3Cpath d='M14 11v6' /%3E%3Cpath d='M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6' /%3E%3Cpath d='M3 6h18' /%3E%3Cpath d='M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2' /%3E%3C/svg%3E");
    --p-icon-file: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' %3E%3Cpath d='M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z' /%3E%3Cpath d='M14 2v5a1 1 0 0 0 1 1h5' /%3E%3Cpath d='M10 9H8' /%3E%3Cpath d='M16 13H8' /%3E%3Cpath d='M16 17H8' /%3E%3C/svg%3E");
    --p-icon-upload: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' %3E%3Cpath d='M12 3v12' /%3E%3Cpath d='m17 8-5-5-5 5' /%3E%3Cpath d='M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4' /%3E%3C/svg%3E");
    --p-icon-list: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' %3E%3Cpath d='M3 5h.01' /%3E%3Cpath d='M3 12h.01' /%3E%3Cpath d='M3 19h.01' /%3E%3Cpath d='M8 5h13' /%3E%3Cpath d='M8 12h13' /%3E%3Cpath d='M8 19h13' /%3E%3C/svg%3E");
    --p-icon-grid: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' %3E%3Crect width='7' height='7' x='3' y='3' rx='1' /%3E%3Crect width='7' height='7' x='14' y='3' rx='1' /%3E%3Crect width='7' height='7' x='14' y='14' rx='1' /%3E%3Crect width='7' height='7' x='3' y='14' rx='1' /%3E%3C/svg%3E");
    --p-icon-options: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' %3E%3Cpath d='M9.671 4.136a2.34 2.34 0 0 1 4.659 0 2.34 2.34 0 0 0 3.319 1.915 2.34 2.34 0 0 1 2.33 4.033 2.34 2.34 0 0 0 0 3.831 2.34 2.34 0 0 1-2.33 4.033 2.34 2.34 0 0 0-3.319 1.915 2.34 2.34 0 0 1-4.659 0 2.34 2.34 0 0 0-3.32-1.915 2.34 2.34 0 0 1-2.33-4.033 2.34 2.34 0 0 0 0-3.831A2.34 2.34 0 0 1 6.35 6.051a2.34 2.34 0 0 0 3.319-1.915' /%3E%3Ccircle cx='12' cy='12' r='3' /%3E%3C/svg%3E");
    --p-icon-home: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' %3E%3Cpath d='M15 21v-8a1 1 0 0 0-1-1h-4a1 1 0 0 0-1 1v8' /%3E%3Cpath d='M3 10a2 2 0 0 1 .709-1.528l7-6a2 2 0 0 1 2.582 0l7 6A2 2 0 0 1 21 10v9a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z' /%3E%3C/svg%3E");
    --p-icon-calendar: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' %3E%3Cpath d='M8 2v3' /%3E%3Cpath d='M16 2v3' /%3E%3Crect x='3' y='3' width='18' height='18' rx='2' /%3E%3Cpath d='M3 9h18' /%3E%3C/svg%3E");
    --p-icon-maximize: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' %3E%3Cpath d='M15 3h6v6' /%3E%3Cpath d='m21 3-7 7' /%3E%3Cpath d='m3 21 7-7' /%3E%3Cpath d='M9 21H3v-6' /%3E%3C/svg%3E");
    --p-icon-restore: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' %3E%3Cpath d='m14 10 7-7' /%3E%3Cpath d='M20 10h-6V4' /%3E%3Cpath d='m3 21 7-7' /%3E%3Cpath d='M4 14h6v6' /%3E%3C/svg%3E");
    --p-icon-show: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' %3E%3Cpath d='M2.062 12.348a1 1 0 0 1 0-.696 10.75 10.75 0 0 1 19.876 0 1 1 0 0 1 0 .696 10.75 10.75 0 0 1-19.876 0' /%3E%3Ccircle cx='12' cy='12' r='3' /%3E%3C/svg%3E");
    --p-icon-hide: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' %3E%3Cpath d='M10.733 5.076a10.744 10.744 0 0 1 11.205 6.575 1 1 0 0 1 0 .696 10.747 10.747 0 0 1-1.444 2.49' /%3E%3Cpath d='M14.084 14.158a3 3 0 0 1-4.242-4.242' /%3E%3Cpath d='M17.479 17.499a10.75 10.75 0 0 1-15.417-5.151 1 1 0 0 1 0-.696 10.75 10.75 0 0 1 4.446-5.143' /%3E%3Cpath d='m2 2 20 20' /%3E%3C/svg%3E");
    --p-icon-zoom-in: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' %3E%3Ccircle cx='11' cy='11' r='8' /%3E%3Cline x1='21' x2='16.65' y1='21' y2='16.65' /%3E%3Cline x1='11' x2='11' y1='8' y2='14' /%3E%3Cline x1='8' x2='14' y1='11' y2='11' /%3E%3C/svg%3E");
    --p-icon-zoom-out: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' %3E%3Ccircle cx='11' cy='11' r='8' /%3E%3Cline x1='21' x2='16.65' y1='21' y2='16.65' /%3E%3Cline x1='8' x2='14' y1='11' y2='11' /%3E%3C/svg%3E");
    --p-icon-star: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' %3E%3Cpath d='M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.123 2.123 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.123 2.123 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.122 2.122 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.122 2.122 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.122 2.122 0 0 0 1.597-1.16z' /%3E%3C/svg%3E");
    --p-icon-star-filled: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='%23000' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' %3E%3Cpath d='M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.123 2.123 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.123 2.123 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.122 2.122 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.122 2.122 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.122 2.122 0 0 0 1.597-1.16z' /%3E%3C/svg%3E");
    --p-icon-info: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' %3E%3Ccircle cx='12' cy='12' r='10' /%3E%3Cpath d='M12 16v-4' /%3E%3Cpath d='M12 8h.01' /%3E%3C/svg%3E");
    --p-icon-success: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' %3E%3Ccircle cx='12' cy='12' r='10' /%3E%3Cpath d='m16 9-5.5 5.5L8 12' /%3E%3C/svg%3E");
    --p-icon-warn: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' %3E%3Cpath d='m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3' /%3E%3Cpath d='M12 9v4' /%3E%3Cpath d='M12 17h.01' /%3E%3C/svg%3E");
    --p-icon-error: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' %3E%3Ccircle cx='12' cy='12' r='10' /%3E%3Cpath d='m15 9-6 6' /%3E%3Cpath d='m9 9 6 6' /%3E%3C/svg%3E");
    --p-icon-fatal: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' %3E%3Ccircle cx='12' cy='12' r='10' /%3E%3Cpath d='M4.929 4.929 19.07 19.071' /%3E%3C/svg%3E");
    --p-icon-loading: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' %3E%3Cpath d='M21 12a9 9 0 1 1-6.219-8.56' /%3E%3C/svg%3E");
  }
}

/* packages/components/src/base/interactions.css */
@layer primefaces.vendor {
  .p-draggable-handle {
    touch-action: none;
  }
  .p-resizable {
    position: relative;
  }
  .p-resizable-handle {
    position: absolute;
    display: block;
    touch-action: none;
  }
  .p-resizable-disabled .p-resizable-handle {
    display: none;
  }
  .p-resizable-n {
    cursor: n-resize;
    height: 7px;
    width: 100%;
    top: -5px;
    left: 0;
  }
  .p-resizable-s {
    cursor: s-resize;
    height: 7px;
    width: 100%;
    bottom: -5px;
    left: 0;
  }
  .p-resizable-e {
    cursor: e-resize;
    width: 7px;
    right: -5px;
    top: 0;
    height: 100%;
  }
  .p-resizable-w {
    cursor: w-resize;
    width: 7px;
    left: -5px;
    top: 0;
    height: 100%;
  }
  .p-resizable-se {
    cursor: se-resize;
    width: 12px;
    height: 12px;
    right: 1px;
    bottom: 1px;
  }
  .p-resizable-sw {
    cursor: sw-resize;
    width: 9px;
    height: 9px;
    left: -5px;
    bottom: -5px;
  }
  .p-resizable-nw {
    cursor: nw-resize;
    width: 9px;
    height: 9px;
    left: -5px;
    top: -5px;
  }
  .p-resizable-ne {
    cursor: ne-resize;
    width: 9px;
    height: 9px;
    right: -5px;
    top: -5px;
  }
  .p-sortable-handle {
    touch-action: none;
  }
  .p-effect-transfer,
  .p-effect-explode {
    pointer-events: none;
  }
  .p-effect-transfer {
    border: 1px dashed var(--p-primary-color, currentColor);
  }
}

/* packages/components/src/base/common.css */
@layer primefaces.components {
  *,
  ::before,
  ::after {
    box-sizing: border-box;
  }
  .p-component {
    font-family: var(--p-typography-font-family);
    font-size: var(--p-typography-font-size);
    font-weight: var(--p-typography-font-weight);
    line-height: var(--p-typography-line-height);
    text-decoration: none;
    :where(.p-component) & {
      font-size: inherit;
    }
  }
  :where(.p-component-content) {
    background: var(--p-component-content-background);
    color: var(--p-component-content-color);
    border-color: var(--p-component-content-border-color);
  }
  :where(.p-component-header) {
    background: var(--p-component-header-background);
    color: var(--p-component-header-color);
    border-color: var(--p-component-header-border-color);
    font-weight: var(--p-component-header-font-weight);
  }
  :where(.p-state-hover) {
    background: var(--p-component-hover-background);
    color: var(--p-component-hover-color);
  }
  :where(.p-state-active) {
    background: var(--p-component-active-background);
    color: var(--p-component-active-color);
  }
  :where(.p-state-highlight) {
    background: var(--p-component-highlight-background);
    color: var(--p-component-highlight-color);
  }
  :where(.p-state-highlight a, .p-state-active a) {
    color: inherit;
  }
  :where(.p-state-error) {
    color: var(--p-component-error-color);
    border-color: var(--p-component-error-border-color);
  }
  :where(.p-state-error-text) {
    color: var(--p-component-error-color);
  }
  .p-state-disabled {
    opacity: var(--p-disabled-opacity);
    cursor: default !important;
    pointer-events: none;
    .p-state-disabled {
      opacity: 1;
    }
  }
  :where(.p-priority-primary) {
    font-weight: 600;
  }
  :where(.p-priority-secondary) {
    opacity: var(--p-disabled-opacity);
    font-weight: var(--p-typography-font-weight);
  }
  .pi,
  .p-button-icon-left,
  .p-button-icon-right,
  .p-menuitem-icon,
  .p-submenu-icon,
  .p-treenode-icon {
    font-size: var(--p-icon-size);
  }
  .p-icon {
    display: inline-block;
    flex-shrink: 0;
    font-size: var(--p-icon-size);
    font-style: normal;
    font-weight: normal;
    line-height: 1;
    vertical-align: baseline;
    &::before {
      content: " ";
      display: inline-block;
      width: 1em;
      height: 1em;
      line-height: 1;
      background: currentColor;
      forced-color-adjust: none;
      mask: var(--_icon, linear-gradient(transparent, transparent)) center / contain no-repeat;
    }
  }
  .p-component-overlay {
    background: var(--p-mask-background);
    color: var(--p-mask-color);
  }
  :where(select, input:not([role=combobox], [type=file], [type=checkbox], [type=radio], [type=range], [type=color], [type=hidden], .p-component, .p-inputfield)) {
    color: var(--p-form-field-color);
    background: var(--p-form-field-background);
    padding: var(--p-form-field-padding-y) var(--p-form-field-padding-x);
    border: 1px solid var(--p-form-field-border-color);
    border-radius: var(--p-form-field-border-radius);
    outline: 0 none;
    font-family: inherit;
    font-size: var(--p-form-field-font-size);
    box-shadow: var(--p-form-field-shadow);
    transition:
      background var(--p-form-field-transition-duration),
      color var(--p-form-field-transition-duration),
      border-color var(--p-form-field-transition-duration),
      outline-color var(--p-form-field-transition-duration),
      box-shadow var(--p-form-field-transition-duration);
  }
  :where(select:hover, input:not([role=combobox], [type=file], [type=checkbox], [type=radio], [type=range], [type=color], [type=hidden], .p-component, .p-inputfield):hover) {
    border-color: var(--p-form-field-hover-border-color);
  }
  :where(select:focus, input:not([role=combobox], [type=file], [type=checkbox], [type=radio], [type=range], [type=color], [type=hidden], .p-component, .p-inputfield):focus) {
    border-color: var(--p-form-field-focus-border-color);
    outline: var(--p-form-field-focus-ring-width) var(--p-form-field-focus-ring-style) var(--p-form-field-focus-ring-color);
    outline-offset: var(--p-form-field-focus-ring-offset);
    box-shadow: var(--p-form-field-focus-ring-shadow);
  }
  @keyframes p-enter {
    from {
      opacity: 0;
      translate: 0 var(--_enter-offset, 0);
    }
  }
  @keyframes fade-in {
    from {
      opacity: 0;
    }
    to {
      opacity: 1;
    }
  }
}

/* packages/components/src/base/core.css */
@layer primefaces.components {
  .p-overlay-visible {
    visibility: visible;
  }
  .p-overflow-hidden {
    overflow: hidden;
  }
  .p-reset {
    margin: 0;
    padding: 0;
    border: 0;
    outline: 0;
    text-decoration: none;
    font-size: 100%;
    list-style: none;
  }
  .p-transparent-pixel {
    content: url(data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw==);
  }
  @media only all {
    th.p-column-p-6,
    td.p-column-p-6,
    th.p-column-p-5,
    td.p-column-p-5,
    th.p-column-p-4,
    td.p-column-p-4,
    th.p-column-p-3,
    td.p-column-p-3,
    th.p-column-p-2,
    td.p-column-p-2,
    th.p-column-p-1,
    td.p-column-p-1 {
      display: none;
    }
  }
  @media screen and (min-width: 20em) {
    th.p-column-p-1,
    td.p-column-p-1 {
      display: table-cell;
    }
  }
  @media screen and (min-width: 30em) {
    th.p-column-p-2,
    td.p-column-p-2 {
      display: table-cell;
    }
  }
  @media screen and (min-width: 40em) {
    th.p-column-p-3,
    td.p-column-p-3 {
      display: table-cell;
    }
  }
  @media screen and (min-width: 50em) {
    th.p-column-p-4,
    td.p-column-p-4 {
      display: table-cell;
    }
  }
  @media screen and (min-width: 60em) {
    th.p-column-p-5,
    td.p-column-p-5 {
      display: table-cell;
    }
  }
  @media screen and (min-width: 70em) {
    th.p-column-p-6,
    td.p-column-p-6 {
      display: table-cell;
    }
  }
  .p-connected-overlay-enter {
    opacity: 0;
    transform: scaleY(0.8);
  }
  .p-connected-overlay-enter-active {
    opacity: 1;
    transform: scaleY(1);
    transition: transform var(--p-overlay-enter-duration) var(--p-transition-easing-enter), opacity var(--p-overlay-enter-duration) var(--p-transition-easing-enter);
  }
  .p-connected-overlay-enter-done {
    transform: none;
  }
  .p-connected-overlay-exit {
    opacity: 1;
  }
  .p-connected-overlay-exit-active {
    opacity: 0;
    transition: opacity var(--p-overlay-leave-duration) var(--p-transition-easing-exit);
  }
}

/* packages/components/src/base/document.css */
@layer primefaces.components {
  :root {
    accent-color: var(--p-primary-color);
  }
  ::selection {
    background: var(--p-highlight-background);
    color: var(--p-highlight-color);
  }
  :where(.p-chips-token-icon, .p-autocomplete-token-icon, .p-selectcheckboxmenu-token-icon, .p-password-icon, .p-chip-remove-icon, .p-breadcrumb-home-icon)::after {
    content: "";
    position: absolute;
    inset: calc(50% - 12px);
  }
  :where(.p-chip-remove-icon, .p-breadcrumb-home-icon) {
    position: relative;
  }
  @media (prefers-reduced-motion: reduce) {
    :root,
    [data-p-scope] {
      --p-transition-duration: 0s;
      --p-ripple-opacity: 0;
    }
    *,
    ::before,
    ::after {
      animation-duration: 0.01ms !important;
      animation-iteration-count: 1 !important;
      transition-duration: 0.01ms !important;
      scroll-behavior: auto !important;
    }
  }
  @media (prefers-reduced-transparency: reduce) {
    :root,
    [data-p-scope] {
      --p-overlay-backdrop-filter: none;
      --p-navigation-backdrop-filter: none;
      --p-button-backdrop-filter: none;
      --p-mask-backdrop-filter: none;
      --p-toast-blur: 0px;
    }
  }
  :root[data-p-animations=off],
  :root[data-p-animations=off] [data-p-scope] {
    --p-message-enter-duration: 0s;
    --p-dataview-content-enter-duration: 0s;
    --p-fileupload-transition-duration: 0s;
    --p-ripple-opacity: 0;
  }
  :root {
    background: var(--p-document-background);
  }
  @media print {
    :root {
      color-scheme: light !important;
    }
    *,
    ::before,
    ::after {
      box-shadow: none !important;
      text-shadow: none !important;
    }
    .p-button,
    .p-badge,
    .p-tag,
    .p-chip,
    .p-chkbox-box,
    .p-radiobutton-box,
    .p-toggleswitch,
    .p-slider,
    .p-progressbar,
    .p-state-highlight,
    .p-state-active {
      -webkit-print-color-adjust: exact;
      print-color-adjust: exact;
    }
    .p-datatable-scrollable-body,
    .p-treetable-scrollable-body,
    .p-datatable-virtualscroll .p-datatable-scrollable-body {
      height: auto !important;
      max-height: none !important;
      overflow: visible !important;
    }
    tr,
    .p-panel,
    .p-card,
    .p-fieldset {
      break-inside: avoid;
    }
    .p-growl,
    .p-tooltip,
    .p-scrolltop,
    .p-blockui,
    .p-component-overlay,
    .p-ajax-status,
    .p-paginator,
    .p-datatable-sticky,
    .p-log,
    .p-stack,
    .p-dock {
      display: none !important;
    }
    .p-sticky {
      position: static !important;
      width: auto !important;
    }
  }
}

/* packages/components/src/base/grid.css */
@layer primefaces.components {
  .ui-grid {
    clear: both;
    padding: 0;
    margin: 0;
    &::before,
    &::after {
      content: "";
      display: table;
    }
    &::after {
      clear: both;
    }
    .ui-grid-row {
      display: flex;
      clear: both;
    }
  }
  .ui-grid-row {
    &::after {
      clear: both;
      content: "";
      display: table;
    }
  }
  .ui-grid-col-1,
  .ui-grid-col-2,
  .ui-grid-col-3,
  .ui-grid-col-4,
  .ui-grid-col-5,
  .ui-grid-col-6,
  .ui-grid-col-7,
  .ui-grid-col-8,
  .ui-grid-col-9,
  .ui-grid-col-10,
  .ui-grid-col-11,
  .ui-grid-col-12 {
    float: left;
  }
  .ui-grid-col-0 {
    display: none;
  }
  .ui-grid-col-1 {
    width: 8.33333333%;
  }
  .ui-grid-col-2 {
    width: 16.66666667%;
  }
  .ui-grid-col-3 {
    width: 25%;
  }
  .ui-grid-col-4 {
    width: 33.33333333%;
  }
  .ui-grid-col-5 {
    width: 41.66666667%;
  }
  .ui-grid-col-6 {
    width: 50%;
  }
  .ui-grid-col-7 {
    width: 58.33333333%;
  }
  .ui-grid-col-8 {
    width: 66.66666667%;
  }
  .ui-grid-col-9 {
    width: 75%;
  }
  .ui-grid-col-10 {
    width: 83.33333333%;
  }
  .ui-grid-col-11 {
    width: 91.66666667%;
  }
  .ui-grid-col-12 {
    width: 100%;
  }
  @media (min-width: 480px) {
    .ui-grid-fixed {
      width: 480px;
    }
  }
  @media (min-width: 768px) {
    .ui-grid-fixed {
      width: 768px;
    }
  }
  @media (min-width: 960px) {
    .ui-grid-fixed {
      width: 960px;
    }
  }
  @media (min-width: 1024px) {
    .ui-grid-fixed {
      width: 1024px;
    }
  }
  @media (max-width: 640px) {
    .ui-grid-responsive {
      .ui-grid-row {
        display: block;
      }
      .ui-grid-col-1,
      .ui-grid-col-2,
      .ui-grid-col-3,
      .ui-grid-col-4,
      .ui-grid-col-5,
      .ui-grid-col-6,
      .ui-grid-col-7,
      .ui-grid-col-8,
      .ui-grid-col-9,
      .ui-grid-col-10,
      .ui-grid-col-11,
      .ui-grid-col-12 {
        width: 100%;
        float: none;
      }
    }
  }
  .ui-grid.ui-grid-pad > .ui-grid-row > div {
    padding: .25em .5em;
  }
  .ui-g {
    display: flex;
    flex-wrap: wrap;
    &::after {
      clear: both;
      content: "";
      display: table;
    }
  }
  .ui-g-1,
  .ui-g-2,
  .ui-g-3,
  .ui-g-4,
  .ui-g-5,
  .ui-g-6,
  .ui-g-7,
  .ui-g-8,
  .ui-g-9,
  .ui-g-10,
  .ui-g-11,
  .ui-g-12 {
    float: left;
    padding: 0.5em;
  }
  .ui-g-0 {
    display: none;
  }
  .ui-g-1 {
    width: 8.33333333%;
  }
  .ui-g-2 {
    width: 16.66666667%;
  }
  .ui-g-3 {
    width: 25%;
  }
  .ui-g-4 {
    width: 33.33333333%;
  }
  .ui-g-5 {
    width: 41.66666667%;
  }
  .ui-g-6 {
    width: 50%;
  }
  .ui-g-7 {
    width: 58.33333333%;
  }
  .ui-g-8 {
    width: 66.66666667%;
  }
  .ui-g-9 {
    width: 75%;
  }
  .ui-g-10 {
    width: 83.33333333%;
  }
  .ui-g-11 {
    width: 91.66666667%;
  }
  .ui-g-12 {
    width: 100%;
  }
  .ui-g-offset-12 {
    margin-left: 100%;
  }
  .ui-g-offset-11 {
    margin-left: 91.66666667%;
  }
  .ui-g-offset-10 {
    margin-left: 83.33333333%;
  }
  .ui-g-offset-9 {
    margin-left: 75%;
  }
  .ui-g-offset-8 {
    margin-left: 66.66666667%;
  }
  .ui-g-offset-7 {
    margin-left: 58.33333333%;
  }
  .ui-g-offset-6 {
    margin-left: 50%;
  }
  .ui-g-offset-5 {
    margin-left: 41.66666667%;
  }
  .ui-g-offset-4 {
    margin-left: 33.33333333%;
  }
  .ui-g-offset-3 {
    margin-left: 25%;
  }
  .ui-g-offset-2 {
    margin-left: 16.66666667%;
  }
  .ui-g-offset-1 {
    margin-left: 8.33333333%;
  }
  .ui-g-offset-0 {
    margin-left: 0%;
  }
  @media screen and (max-width: 40em) {
    .ui-sm-1,
    .ui-sm-2,
    .ui-sm-3,
    .ui-sm-4,
    .ui-sm-5,
    .ui-sm-6,
    .ui-sm-7,
    .ui-sm-8,
    .ui-sm-9,
    .ui-sm-10,
    .ui-sm-11,
    .ui-sm-12 {
      padding: 0.5em;
    }
    .ui-sm-0 {
      display: none;
    }
    .ui-sm-1 {
      width: 8.33333333%;
    }
    .ui-sm-2 {
      width: 16.66666667%;
    }
    .ui-sm-3 {
      width: 25%;
    }
    .ui-sm-4 {
      width: 33.33333333%;
    }
    .ui-sm-5 {
      width: 41.66666667%;
    }
    .ui-sm-6 {
      width: 50%;
    }
    .ui-sm-7 {
      width: 58.33333333%;
    }
    .ui-sm-8 {
      width: 66.66666667%;
    }
    .ui-sm-9 {
      width: 75%;
    }
    .ui-sm-10 {
      width: 83.33333333%;
    }
    .ui-sm-11 {
      width: 91.66666667%;
    }
    .ui-sm-12 {
      width: 100%;
    }
    .ui-sm-offset-12 {
      margin-left: 100%;
    }
    .ui-sm-offset-11 {
      margin-left: 91.66666667%;
    }
    .ui-sm-offset-10 {
      margin-left: 83.33333333%;
    }
    .ui-sm-offset-9 {
      margin-left: 75%;
    }
    .ui-sm-offset-8 {
      margin-left: 66.66666667%;
    }
    .ui-sm-offset-7 {
      margin-left: 58.33333333%;
    }
    .ui-sm-offset-6 {
      margin-left: 50%;
    }
    .ui-sm-offset-5 {
      margin-left: 41.66666667%;
    }
    .ui-sm-offset-4 {
      margin-left: 33.33333333%;
    }
    .ui-sm-offset-3 {
      margin-left: 25%;
    }
    .ui-sm-offset-2 {
      margin-left: 16.66666667%;
    }
    .ui-sm-offset-1 {
      margin-left: 8.33333333%;
    }
    .ui-sm-offset-0 {
      margin-left: 0%;
    }
  }
  @media screen and (min-width: 40.063em) {
    .ui-md-1,
    .ui-md-2,
    .ui-md-3,
    .ui-md-4,
    .ui-md-5,
    .ui-md-6,
    .ui-md-7,
    .ui-md-8,
    .ui-md-9,
    .ui-md-10,
    .ui-md-11,
    .ui-md-12 {
      padding: 0.5em;
    }
    .ui-md-0 {
      display: none;
    }
    .ui-md-1 {
      width: 8.33333333%;
    }
    .ui-md-2 {
      width: 16.66666667%;
    }
    .ui-md-3 {
      width: 25%;
    }
    .ui-md-4 {
      width: 33.33333333%;
    }
    .ui-md-5 {
      width: 41.66666667%;
    }
    .ui-md-6 {
      width: 50%;
    }
    .ui-md-7 {
      width: 58.33333333%;
    }
    .ui-md-8 {
      width: 66.66666667%;
    }
    .ui-md-9 {
      width: 75%;
    }
    .ui-md-10 {
      width: 83.33333333%;
    }
    .ui-md-11 {
      width: 91.66666667%;
    }
    .ui-md-12 {
      width: 100%;
    }
    .ui-md-offset-12 {
      margin-left: 100%;
    }
    .ui-md-offset-11 {
      margin-left: 91.66666667%;
    }
    .ui-md-offset-10 {
      margin-left: 83.33333333%;
    }
    .ui-md-offset-9 {
      margin-left: 75%;
    }
    .ui-md-offset-8 {
      margin-left: 66.66666667%;
    }
    .ui-md-offset-7 {
      margin-left: 58.33333333%;
    }
    .ui-md-offset-6 {
      margin-left: 50%;
    }
    .ui-md-offset-5 {
      margin-left: 41.66666667%;
    }
    .ui-md-offset-4 {
      margin-left: 33.33333333%;
    }
    .ui-md-offset-3 {
      margin-left: 25%;
    }
    .ui-md-offset-2 {
      margin-left: 16.66666667%;
    }
    .ui-md-offset-1 {
      margin-left: 8.33333333%;
    }
    .ui-md-offset-0 {
      margin-left: 0%;
    }
  }
  @media screen and (min-width: 64.063em) {
    .ui-lg-1,
    .ui-lg-2,
    .ui-lg-3,
    .ui-lg-4,
    .ui-lg-5,
    .ui-lg-6,
    .ui-lg-7,
    .ui-lg-8,
    .ui-lg-9,
    .ui-lg-10,
    .ui-lg-11,
    .ui-lg-12 {
      padding: 0.5em;
    }
    .ui-lg-0 {
      display: none;
    }
    .ui-lg-1 {
      width: 8.33333333%;
    }
    .ui-lg-2 {
      width: 16.66666667%;
    }
    .ui-lg-3 {
      width: 25%;
    }
    .ui-lg-4 {
      width: 33.33333333%;
    }
    .ui-lg-5 {
      width: 41.66666667%;
    }
    .ui-lg-6 {
      width: 50%;
    }
    .ui-lg-7 {
      width: 58.33333333%;
    }
    .ui-lg-8 {
      width: 66.66666667%;
    }
    .ui-lg-9 {
      width: 75%;
    }
    .ui-lg-10 {
      width: 83.33333333%;
    }
    .ui-lg-11 {
      width: 91.66666667%;
    }
    .ui-lg-12 {
      width: 100%;
    }
    .ui-lg-offset-12 {
      margin-left: 100%;
    }
    .ui-lg-offset-11 {
      margin-left: 91.66666667%;
    }
    .ui-lg-offset-10 {
      margin-left: 83.33333333%;
    }
    .ui-lg-offset-9 {
      margin-left: 75%;
    }
    .ui-lg-offset-8 {
      margin-left: 66.66666667%;
    }
    .ui-lg-offset-7 {
      margin-left: 58.33333333%;
    }
    .ui-lg-offset-6 {
      margin-left: 50%;
    }
    .ui-lg-offset-5 {
      margin-left: 41.66666667%;
    }
    .ui-lg-offset-4 {
      margin-left: 33.33333333%;
    }
    .ui-lg-offset-3 {
      margin-left: 25%;
    }
    .ui-lg-offset-2 {
      margin-left: 16.66666667%;
    }
    .ui-lg-offset-1 {
      margin-left: 8.33333333%;
    }
    .ui-lg-offset-0 {
      margin-left: 0%;
    }
  }
  @media screen and (min-width: 90.063em) {
    .ui-xl-1,
    .ui-xl-2,
    .ui-xl-3,
    .ui-xl-4,
    .ui-xl-5,
    .ui-xl-6,
    .ui-xl-7,
    .ui-xl-8,
    .ui-xl-9,
    .ui-xl-10,
    .ui-xl-11,
    .ui-xl-12 {
      padding: 0.5em;
    }
    .ui-xl-0 {
      display: none;
    }
    .ui-xl-1 {
      width: 8.33333333%;
    }
    .ui-xl-2 {
      width: 16.66666667%;
    }
    .ui-xl-3 {
      width: 25%;
    }
    .ui-xl-4 {
      width: 33.33333333%;
    }
    .ui-xl-5 {
      width: 41.66666667%;
    }
    .ui-xl-6 {
      width: 50%;
    }
    .ui-xl-7 {
      width: 58.33333333%;
    }
    .ui-xl-8 {
      width: 66.66666667%;
    }
    .ui-xl-9 {
      width: 75%;
    }
    .ui-xl-10 {
      width: 83.33333333%;
    }
    .ui-xl-11 {
      width: 91.66666667%;
    }
    .ui-xl-12 {
      width: 100%;
    }
    .ui-xl-offset-12 {
      margin-left: 100%;
    }
    .ui-xl-offset-11 {
      margin-left: 91.66666667%;
    }
    .ui-xl-offset-10 {
      margin-left: 83.33333333%;
    }
    .ui-xl-offset-9 {
      margin-left: 75%;
    }
    .ui-xl-offset-8 {
      margin-left: 66.66666667%;
    }
    .ui-xl-offset-7 {
      margin-left: 58.33333333%;
    }
    .ui-xl-offset-6 {
      margin-left: 50%;
    }
    .ui-xl-offset-5 {
      margin-left: 41.66666667%;
    }
    .ui-xl-offset-4 {
      margin-left: 33.33333333%;
    }
    .ui-xl-offset-3 {
      margin-left: 25%;
    }
    .ui-xl-offset-2 {
      margin-left: 16.66666667%;
    }
    .ui-xl-offset-1 {
      margin-left: 8.33333333%;
    }
    .ui-xl-offset-0 {
      margin-left: 0%;
    }
  }
  .ui-g-nopad {
    padding: 0;
  }
}

/* packages/components/src/base/helpers.css */
@layer primefaces.components {
  .p-hidden-accessible {
    border: 0;
    clip: rect(0 0 0 0);
    height: 1px;
    margin: -1px;
    overflow: hidden;
    padding: 0;
    position: absolute;
    width: 1px;
  }
  :where(.p-resizable) {
    display: flex;
    flex-direction: column;
    > .p-component-content {
      flex-grow: 1;
    }
  }
}

/* packages/components/src/base/scrollbar.css */
@layer primefaces.components {
  :where(.p-autocomplete-panel, .p-selectonemenu-items-wrapper, .p-selectcheckboxmenu-items-wrapper, .p-splitbuttonmenu-list-wrapper, .p-columntoggler, .p-menu-dynamic-maxheight, .p-slidemenu-content, .p-selectlistbox-listcontainer, .p-multiselectlistbox-listcontainer, .p-picklist-list, .p-orderlist-list, .p-tree-container, .p-log-content, .p-terminal, textarea.p-inputfield, .p-datatable-tablewrapper, .p-datatable-scrollable-body, .p-treetable-scrollable-body, .p-datascroller-inline .p-datascroller-content, .p-carousel-content, .p-dialog, .p-dialog-content, .p-sidebar, .p-accordion-content, .p-panelmenu-content, .p-tabmenu-nav) {
    scrollbar-width: var(--p-scrollbar-width);
    scrollbar-color: var(--p-scrollbar-thumb-color) var(--p-scrollbar-track-color);
  }
}

/* packages/components/src/base/backdrop.css */
@layer primefaces.components {
  :where(.p-sidebar, .p-overlaypanel, .p-confirm-popup, .p-input-overlay:not(.p-cascadeselect-panel), .p-selectonemenu-panel, .p-selectcheckboxmenu-panel, .p-autocomplete-panel, .p-tooltip-text, .p-growl-item-container, .p-password-panel, .p-columntoggler, .p-dialog-docked, .p-log) {
    backdrop-filter: var(--p-overlay-backdrop-filter);
  }
  :where(.p-dialog-box, .p-toolbar)::before {
    content: "";
    position: absolute;
    inset: 0;
    border-radius: inherit;
    pointer-events: none;
  }
  :where(.p-dialog-box)::before {
    z-index: -1;
    backdrop-filter: var(--p-overlay-backdrop-filter);
  }
  :where(.p-toolbar) {
    position: relative;
  }
  :where(.p-toolbar) > * {
    position: relative;
  }
  :where(.p-toolbar)::before {
    backdrop-filter: var(--p-navigation-backdrop-filter);
  }
  :where(.p-menu-dynamic-maxheight) {
    backdrop-filter: var(--p-overlay-backdrop-filter);
  }
  :where(.p-menu-dynamic:not(.p-menu-dynamic-maxheight), .p-menu-child:not(.p-slidemenu *), .p-cascadeselect-items)::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: -1;
    border-radius: inherit;
    pointer-events: none;
    backdrop-filter: var(--p-overlay-backdrop-filter);
  }
  :where(.p-button) {
    backdrop-filter: var(--p-button-backdrop-filter);
  }
  :where(.p-component-overlay, .p-dialog-mask) {
    backdrop-filter: var(--p-mask-backdrop-filter);
  }
}

/* packages/components/src/badge/badge.css */
@layer primefaces.components {
  .p-badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: var(--p-badge-gap);
    padding: var(--p-badge-padding);
    background: var(--p-badge-primary-background);
    color: var(--p-badge-primary-color);
    font-size: var(--p-badge-font-size);
    font-weight: var(--p-badge-font-weight);
    min-width: var(--p-badge-min-width);
    height: var(--p-badge-height);
    line-height: var(--p-badge-height);
    border-radius: var(--p-badge-border-radius);
    text-align: center;
    white-space: nowrap;
    &:not(.p-component) {
      display: inline-block;
      border-radius: 50%;
    }
    &.p-state-hidden {
      display: none;
    }
    .p-badge-icon {
      font-size: inherit;
      line-height: 1;
      margin: 0;
    }
    &.p-badge-secondary {
      background: var(--p-badge-secondary-background);
      color: var(--p-badge-secondary-color);
    }
    &.p-badge-success {
      background: var(--p-badge-success-background);
      color: var(--p-badge-success-color);
    }
    &.p-badge-info {
      background: var(--p-badge-info-background);
      color: var(--p-badge-info-color);
    }
    &.p-badge-warning {
      background: var(--p-badge-warn-background);
      color: var(--p-badge-warn-color);
    }
    &.p-badge-danger {
      background: var(--p-badge-danger-background);
      color: var(--p-badge-danger-color);
    }
    &.p-badge-help {
      background: var(--p-badge-help-background);
      color: var(--p-badge-help-color);
    }
    &.p-badge-contrast {
      background: var(--p-badge-contrast-background);
      color: var(--p-badge-contrast-color);
    }
    &.p-badge-sm {
      font-size: var(--p-badge-sm-font-size);
      min-width: var(--p-badge-sm-min-width);
      height: var(--p-badge-sm-height);
      line-height: var(--p-badge-sm-height);
    }
    &.p-badge-lg {
      font-size: var(--p-badge-lg-font-size);
      min-width: var(--p-badge-lg-min-width);
      height: var(--p-badge-lg-height);
      line-height: var(--p-badge-lg-height);
    }
    &.p-badge-xl {
      font-size: var(--p-badge-xl-font-size);
      min-width: var(--p-badge-xl-min-width);
      height: var(--p-badge-xl-height);
      line-height: var(--p-badge-xl-height);
    }
    &.p-badge-dot {
      width: var(--p-badge-dot-size);
      min-width: var(--p-badge-dot-size);
      height: var(--p-badge-dot-size);
      border-radius: 50%;
      padding: 0;
    }
    &.p-badge-no-gutter {
      padding: 0;
      border-radius: 50%;
    }
  }
  .p-overlay-badge {
    position: relative;
    display: inline-block;
    cursor: pointer;
    .p-badge {
      position: absolute;
      top: 0;
      right: 0;
      transform: translate(50%, -50%);
      transform-origin: 100% 0;
      margin: 0;
      z-index: 1;
      outline: var(--p-overlaybadge-outline-width) solid var(--p-overlaybadge-outline-color);
      &:dir(rtl) {
        right: auto;
        left: 0;
        transform: translate(-50%, -50%);
        transform-origin: 0 0;
      }
    }
  }
}

/* packages/components/src/forms/checkbox.css */
@layer primefaces.components {
  .p-chkbox {
    position: relative;
    display: inline-flex;
    align-items: center;
    vertical-align: middle;
    margin: 0;
    width: auto;
    height: auto;
    .p-chkbox-box {
      display: inline-block;
      cursor: pointer;
      position: relative;
      text-align: center;
      width: var(--p-checkbox-width);
      min-width: var(--p-checkbox-width);
      height: var(--p-checkbox-height);
      background: var(--p-checkbox-background);
      color: var(--p-checkbox-icon-color);
      border: var(--p-checkbox-border-width) solid var(--p-checkbox-border-color);
      border-radius: var(--p-checkbox-border-radius);
      box-shadow: var(--p-checkbox-shadow);
      outline-color: transparent;
      transition:
        background var(--p-checkbox-transition-duration),
        border-color var(--p-checkbox-transition-duration),
        box-shadow var(--p-checkbox-transition-duration),
        outline-color var(--p-checkbox-transition-duration);
      &.p-state-hover:not(.p-chkbox-readonly, .p-state-readonly, .p-state-readonly *),
      &:not(.p-state-disabled, .p-chkbox-readonly, .p-state-readonly, .p-state-readonly *):hover {
        border-color: var(--p-checkbox-hover-border-color);
      }
      &.p-state-focus {
        border-color: var(--p-checkbox-focus-border-color);
        outline: var(--p-checkbox-focus-ring-width) var(--p-checkbox-focus-ring-style) var(--p-checkbox-focus-ring-color);
        outline-offset: var(--p-checkbox-focus-ring-offset);
        box-shadow: var(--p-checkbox-focus-ring-shadow);
      }
      &.p-state-active {
        border-color: var(--p-checkbox-checked-border-color);
        background: var(--p-checkbox-checked-background);
        color: var(--p-checkbox-icon-checked-color);
        &.p-state-hover:not(.p-chkbox-readonly, .p-state-readonly, .p-state-readonly *),
        &:not(.p-state-disabled, .p-chkbox-readonly, .p-state-readonly, .p-state-readonly *):hover {
          border-color: var(--p-checkbox-checked-hover-border-color);
          background: var(--p-checkbox-checked-hover-background);
          color: var(--p-checkbox-icon-checked-hover-color);
        }
        &.p-state-focus {
          border-color: var(--p-checkbox-checked-focus-border-color);
        }
      }
      &.p-state-error,
      &.p-state-error:is(:hover, .p-state-hover, .p-state-focus),
      &.p-state-error.p-state-active:is(:hover, .p-state-hover, .p-state-focus) {
        border-color: var(--p-checkbox-invalid-border-color);
      }
      &.p-state-disabled {
        opacity: 1;
        background: var(--p-checkbox-disabled-background);
        border-color: var(--p-checkbox-checked-disabled-border-color);
        color: var(--p-checkbox-icon-disabled-color);
      }
      .p-chkbox-icon {
        overflow: visible;
        position: absolute;
        left: 50%;
        top: 50%;
        font-size: var(--p-checkbox-icon-size);
        line-height: 1;
        margin-left: calc(-1 * var(--p-checkbox-icon-size) / 2);
        margin-top: calc(-1 * var(--p-checkbox-icon-size) / 2);
        &.p-checkbox-checked-icon {
          --_icon: var(--p-checkbox-checked-icon);
        }
        &.p-checkbox-indeterminate-icon {
          --_icon: var(--p-checkbox-indeterminate-icon);
        }
        &.p-checkbox-crossed-icon {
          --_icon: var(--p-checkbox-crossed-icon);
        }
      }
    }
    .p-chkbox-box.p-chkbox-readonly,
    &.p-state-readonly .p-chkbox-box,
    .p-state-readonly & .p-chkbox-box {
      cursor: default;
    }
    .p-chkbox-label {
      display: inline-block;
      vertical-align: middle;
      cursor: pointer;
      margin: 0;
      padding-inline-start: var(--p-checkbox-label-gap);
      outline: 0 none;
      z-index: 1;
      &.p-chkbox-readonly {
        cursor: default;
      }
    }
  }
  .p-input-filled .p-chkbox .p-chkbox-box {
    background: var(--p-checkbox-filled-background);
    &.p-state-hover:not(.p-chkbox-readonly, .p-state-readonly, .p-state-readonly *),
    &:not(.p-state-disabled, .p-chkbox-readonly, .p-state-readonly, .p-state-readonly *):hover {
      background: var(--p-form-field-filled-hover-background);
    }
    &.p-state-active {
      background: var(--p-checkbox-checked-background);
      &.p-state-hover:not(.p-chkbox-readonly, .p-state-readonly, .p-state-readonly *),
      &:not(.p-state-disabled, .p-chkbox-readonly, .p-state-readonly, .p-state-readonly *):hover {
        background: var(--p-checkbox-checked-hover-background);
      }
    }
    &.p-state-disabled {
      background: var(--p-checkbox-disabled-background);
    }
  }
  .p-chkbox-sm {
    --p-checkbox-width: var(--p-checkbox-sm-width);
    --p-checkbox-height: var(--p-checkbox-sm-height);
    --p-checkbox-icon-size: var(--p-checkbox-icon-sm-size);
  }
  .p-chkbox-lg {
    --p-checkbox-width: var(--p-checkbox-lg-width);
    --p-checkbox-height: var(--p-checkbox-lg-height);
    --p-checkbox-icon-size: var(--p-checkbox-icon-lg-size);
  }
  .p-state-highlight .p-chkbox .p-chkbox-box.p-state-active.p-state-active {
    border-color: var(--p-highlight-color);
  }
  .p-chkbox .p-chkbox-box {
    --_layer-color: var(--p-checkbox-hover-border-color);
    --_layer-opacity: 0%;
    &::before {
      content: "";
      position: absolute;
      top: 50%;
      left: 50%;
      width: var(--p-checkbox-state-layer-size);
      height: var(--p-checkbox-state-layer-size);
      translate: -50% -50%;
      border-radius: 50%;
      background: color-mix(in srgb, var(--_layer-color) var(--_layer-opacity), transparent);
      pointer-events: none;
      transition: background var(--p-checkbox-transition-duration);
    }
    &.p-state-active {
      --_layer-color: var(--p-checkbox-checked-border-color);
    }
    &.p-state-hover:not(.p-chkbox-readonly, .p-state-readonly, .p-state-readonly *),
    &:not(.p-state-disabled, .p-chkbox-readonly, .p-state-readonly, .p-state-readonly *):hover {
      --_layer-opacity: var(--p-checkbox-hover-state-layer-opacity);
    }
  }
  @media (forced-colors: active) {
    .p-chkbox .p-chkbox-box::before {
      display: none;
    }
  }
}

/* packages/components/src/forms/inputfield.css */
@layer primefaces.components {
  @keyframes pf-autofill {
    to {
    }
  }
  input:-webkit-autofill {
    animation-name: pf-autofill;
    animation-duration: 0.1s;
    animation-fill-mode: both;
  }
  .p-sr-only {
    border: 0;
    clip: rect(1px, 1px, 1px, 1px);
    clip-path: inset(50%);
    height: 1px;
    margin: -1px;
    overflow: hidden;
    padding: 0;
    position: absolute;
    width: 1px;
    word-wrap: normal;
  }
  input::placeholder,
  textarea::placeholder {
    color: var(--p-form-field-placeholder-color);
    opacity: 1;
  }
  .p-inputfield {
    font-family: inherit;
    font-size: var(--p-inputtext-font-size);
    font-weight: var(--p-inputtext-font-weight);
    line-height: var(--p-typography-line-height);
    margin: 0;
    padding-block: var(--p-inputtext-padding-y);
    padding-inline: var(--p-inputtext-padding-x);
    color: var(--p-inputtext-color);
    background: var(--p-inputtext-background);
    --_border-color: var(--p-inputtext-border-color);
    border: 1px solid var(--_border-color);
    border-radius: var(--p-inputtext-border-radius);
    box-shadow: var(--p-inputtext-shadow);
    outline: 0 none;
    outline-color: transparent;
    appearance: none;
    transition:
      background var(--p-inputtext-transition-duration),
      color var(--p-inputtext-transition-duration),
      border-color var(--p-inputtext-transition-duration),
      outline-color var(--p-inputtext-transition-duration),
      box-shadow var(--p-inputtext-transition-duration);
    &::placeholder {
      color: var(--p-inputtext-placeholder-color);
    }
    &:not(:disabled, .p-state-disabled):hover,
    &.p-state-hover {
      --_border-color: var(--p-inputtext-hover-border-color);
    }
    &:not(:disabled, .p-state-disabled):focus,
    &.p-state-focus {
      --_border-color: var(--p-inputtext-focus-border-color);
      outline: var(--p-inputtext-focus-ring-width) var(--p-inputtext-focus-ring-style) var(--p-inputtext-focus-ring-color);
      outline-offset: var(--p-inputtext-focus-ring-offset);
      box-shadow: var(--p-inputtext-focus-ring-shadow);
    }
    &.p-state-error,
    &.p-state-error:is(:hover, :focus, .p-state-hover, .p-state-focus) {
      --_border-color: var(--p-inputtext-invalid-border-color);
    }
    &.p-state-error {
      &::placeholder {
        color: var(--p-inputtext-invalid-placeholder-color);
      }
    }
    .p-input-filled &,
    &.p-input-filled {
      --_line-width: var(--p-form-field-filled-indicator-width);
      --_line: linear-gradient(var(--_border-color), var(--_border-color)) bottom / 100% var(--_line-width) no-repeat border-box;
      background: var(--_line), var(--p-inputtext-filled-background);
      border-color: color-mix(in srgb, var(--_border-color) var(--p-form-field-filled-border-opacity), transparent);
      border-end-start-radius: var(--p-form-field-filled-bottom-border-radius);
      border-end-end-radius: var(--p-form-field-filled-bottom-border-radius);
      &:not(:disabled, .p-state-disabled):hover,
      &.p-state-hover {
        background: var(--_line), var(--p-inputtext-filled-hover-background);
      }
      &:focus,
      &.p-state-focus {
        --_line-width: var(--p-form-field-filled-focus-indicator-width);
        background: var(--_line), var(--p-inputtext-filled-focus-background);
        outline-color: color-mix(in srgb, var(--p-inputtext-focus-ring-color) var(--p-form-field-filled-border-opacity), transparent);
      }
      &:disabled,
      &.p-state-disabled {
        background: var(--_line), var(--p-inputtext-disabled-background);
      }
    }
    &:disabled,
    &.p-state-disabled {
      background: var(--p-inputtext-disabled-background);
      color: var(--p-inputtext-disabled-color);
      opacity: 1;
    }
    &.p-inputtext-sm {
      font-size: var(--p-inputtext-sm-font-size);
      padding-block: var(--p-inputtext-sm-padding-y);
      padding-inline: var(--p-inputtext-sm-padding-x);
    }
    &.p-inputtext-lg {
      font-size: var(--p-inputtext-lg-font-size);
      padding-block: var(--p-inputtext-lg-padding-y);
      padding-inline: var(--p-inputtext-lg-padding-x);
    }
  }
  .p-inputtextarea {
    --p-inputtext-font-size: var(--p-textarea-font-size);
    --p-inputtext-font-weight: var(--p-textarea-font-weight);
    --p-inputtext-background: var(--p-textarea-background);
    --p-inputtext-disabled-background: var(--p-textarea-disabled-background);
    --p-inputtext-filled-background: var(--p-textarea-filled-background);
    --p-inputtext-filled-hover-background: var(--p-textarea-filled-hover-background);
    --p-inputtext-filled-focus-background: var(--p-textarea-filled-focus-background);
    --p-inputtext-border-color: var(--p-textarea-border-color);
    --p-inputtext-hover-border-color: var(--p-textarea-hover-border-color);
    --p-inputtext-focus-border-color: var(--p-textarea-focus-border-color);
    --p-inputtext-invalid-border-color: var(--p-textarea-invalid-border-color);
    --p-inputtext-color: var(--p-textarea-color);
    --p-inputtext-disabled-color: var(--p-textarea-disabled-color);
    --p-inputtext-placeholder-color: var(--p-textarea-placeholder-color);
    --p-inputtext-invalid-placeholder-color: var(--p-textarea-invalid-placeholder-color);
    --p-inputtext-shadow: var(--p-textarea-shadow);
    --p-inputtext-padding-x: var(--p-textarea-padding-x);
    --p-inputtext-padding-y: var(--p-textarea-padding-y);
    --p-inputtext-border-radius: var(--p-textarea-border-radius);
    --p-inputtext-focus-ring-width: var(--p-textarea-focus-ring-width);
    --p-inputtext-focus-ring-style: var(--p-textarea-focus-ring-style);
    --p-inputtext-focus-ring-color: var(--p-textarea-focus-ring-color);
    --p-inputtext-focus-ring-offset: var(--p-textarea-focus-ring-offset);
    --p-inputtext-focus-ring-shadow: var(--p-textarea-focus-ring-shadow);
    --p-inputtext-transition-duration: var(--p-textarea-transition-duration);
    --p-inputtext-sm-font-size: var(--p-textarea-sm-font-size);
    --p-inputtext-sm-padding-x: var(--p-textarea-sm-padding-x);
    --p-inputtext-sm-padding-y: var(--p-textarea-sm-padding-y);
    --p-inputtext-lg-font-size: var(--p-textarea-lg-font-size);
    --p-inputtext-lg-padding-x: var(--p-textarea-lg-padding-x);
    --p-inputtext-lg-padding-y: var(--p-textarea-lg-padding-y);
    vertical-align: top;
  }
  .p-inputtextarea-resizable {
    overflow: hidden;
    resize: none;
  }
  .p-inputnumber > .p-inputfield {
    font-variant-numeric: tabular-nums;
  }
  .p-fluid {
    .p-inputfield,
    .p-inputtext,
    .p-inputnumber,
    .p-inputtextarea,
    .p-inputmask {
      width: 100%;
    }
    .p-inputtext[size],
    .p-inputfield[size] {
      width: auto;
    }
  }
  .p-field small.p-state-error,
  .field small.p-state-error {
    color: var(--p-message-error-simple-color);
  }
  .p-float-label {
    display: block;
    position: relative;
    .p-outputlabel {
      display: block;
      min-height: 100%;
      max-width: 95%;
      overflow: hidden;
      text-overflow: ellipsis;
      white-space: nowrap;
    }
    > label {
      position: absolute;
      top: 50%;
      left: var(--p-floatlabel-position-x);
      margin-top: -0.5em;
      margin-left: 0;
      line-height: 1;
      pointer-events: none;
      color: var(--p-floatlabel-color);
      font-size: var(--p-floatlabel-font-size);
      font-weight: var(--p-floatlabel-font-weight);
      transition-property: all;
      transition-timing-function: var(--p-transition-easing);
      transition-duration: var(--p-floatlabel-transition-duration);
    }
    > label.p-outputlabel-rtl {
      left: 0;
      right: var(--p-floatlabel-position-x);
    }
    > textarea ~ label {
      top: var(--p-floatlabel-position-y);
      margin-top: 0;
    }
    > input:focus ~ label,
    > input.p-state-filled ~ label,
    > textarea:focus ~ label,
    > textarea.p-state-filled ~ label,
    > .p-inputwrapper-focus ~ label,
    > .p-selectcheckboxmenu.p-state-focus ~ label,
    > :where(.p-selectcheckboxmenu:has(> .p-hidden-accessible > [aria-expanded=true])) ~ label,
    > .p-inputwrapper-filled ~ label,
    > :where(.p-autocomplete-multiple:has(.p-autocomplete-token), .p-chips:has(.p-chips-token), .p-selectcheckboxmenu:has(> .p-hidden > :checked)) ~ label,
    > input:-webkit-autofill ~ label,
    > textarea:-webkit-autofill ~ label {
      top: var(--p-floatlabel-over-active-top);
      margin-top: 0;
      font-size: var(--p-floatlabel-active-font-size);
      font-weight: var(--p-floatlabel-active-font-weight);
    }
    > input.p-state-filled ~ label,
    > textarea.p-state-filled ~ label,
    > .p-inputwrapper-filled ~ label,
    > :where(.p-autocomplete-multiple:has(.p-autocomplete-token), .p-chips:has(.p-chips-token), .p-selectcheckboxmenu:has(> .p-hidden > :checked)) ~ label {
      color: var(--p-floatlabel-active-color);
    }
    > input:focus ~ label,
    > textarea:focus ~ label,
    > .p-inputwrapper-focus ~ label,
    > .p-selectcheckboxmenu.p-state-focus ~ label,
    > :where(.p-selectcheckboxmenu:has(> .p-hidden-accessible > [aria-expanded=true])) ~ label,
    > input:-webkit-autofill ~ label,
    > textarea:-webkit-autofill ~ label {
      color: var(--p-floatlabel-focus-color);
    }
    > .p-state-error ~ label,
    > .p-state-error:is(:focus, .p-inputwrapper-focus) ~ label {
      color: var(--p-floatlabel-invalid-color);
    }
    &.p-float-label-in {
      > .p-inputfield,
      > * > .p-inputfield {
        padding-block-start: var(--p-floatlabel-in-input-padding-top);
        padding-block-end: var(--p-floatlabel-in-input-padding-bottom);
      }
      > :is(.p-selectonemenu, .p-cascadeselect, .p-autocomplete) > .p-inputfield {
        padding-block-start: var(--p-floatlabel-in-input-padding-top);
        padding-block-end: var(--p-floatlabel-in-input-padding-bottom);
      }
      > .p-chips > .p-chips-container {
        padding-block-start: calc(var(--p-floatlabel-in-input-padding-top) - var(--p-inputchips-padding-y) / 2);
        padding-block-end: calc(var(--p-floatlabel-in-input-padding-bottom) - var(--p-inputchips-padding-y) / 2);
      }
      > .p-autocomplete > .p-autocomplete-multiple-container {
        padding-block-start: calc(var(--p-floatlabel-in-input-padding-top) - var(--p-autocomplete-padding-y) / 2);
        padding-block-end: calc(var(--p-floatlabel-in-input-padding-bottom) - var(--p-autocomplete-padding-y) / 2);
      }
      > .p-selectcheckboxmenu .p-selectcheckboxmenu-label-container {
        padding-block-start: var(--p-floatlabel-in-input-padding-top);
        padding-block-end: var(--p-floatlabel-in-input-padding-bottom);
      }
      > .p-selectcheckboxmenu .p-selectcheckboxmenu-multiple-container.p-inputfield {
        min-height: calc(var(--p-floatlabel-in-input-padding-top) + var(--p-floatlabel-in-input-padding-bottom) + var(--p-typography-line-height) * var(--p-multiselect-font-size));
        padding-block-start: calc(var(--p-floatlabel-in-input-padding-top) - var(--p-multiselect-padding-y) / 2);
        padding-block-end: calc(var(--p-floatlabel-in-input-padding-bottom) - var(--p-multiselect-padding-y) / 2);
      }
      > textarea ~ label {
        top: var(--p-floatlabel-in-input-padding-top);
      }
      > :is(input:focus, input.p-state-filled, textarea:focus, textarea.p-state-filled, .p-inputwrapper-focus, .p-selectcheckboxmenu.p-state-focus, :where(.p-selectcheckboxmenu:has(> .p-hidden-accessible > [aria-expanded=true])), .p-inputwrapper-filled, input:-webkit-autofill, textarea:-webkit-autofill, :where(.p-autocomplete-multiple:has(.p-autocomplete-token), .p-chips:has(.p-chips-token), .p-selectcheckboxmenu:has(> .p-hidden > :checked))) ~ label {
        top: var(--p-floatlabel-in-active-top);
        margin-top: 0;
      }
    }
    &.p-float-label-on {
      > :is(input:focus, input.p-state-filled, textarea:focus, textarea.p-state-filled, .p-inputwrapper-focus, .p-selectcheckboxmenu.p-state-focus, :where(.p-selectcheckboxmenu:has(> .p-hidden-accessible > [aria-expanded=true])), .p-inputwrapper-filled, input:-webkit-autofill, textarea:-webkit-autofill, :where(.p-autocomplete-multiple:has(.p-autocomplete-token), .p-chips:has(.p-chips-token), .p-selectcheckboxmenu:has(> .p-hidden > :checked))) ~ label {
        top: 0;
        min-height: 0;
        margin-top: 0;
        translate: 0 -50%;
        padding: var(--p-floatlabel-on-active-padding);
        background: var(--p-floatlabel-on-active-background);
        border-radius: var(--p-floatlabel-on-border-radius);
        z-index: 1;
      }
    }
  }
  .p-autocomplete.p-autocomplete-dd,
  .p-calendar.p-trigger-calendar {
    border-radius: var(--p-inputtext-border-radius);
    width: fit-content;
    max-width: 100%;
    .p-fluid & {
      width: 100%;
    }
    &:has(> .p-inputfield:not(:disabled, .p-state-disabled):is(:focus-within, .p-state-focus)) {
      outline: var(--p-inputtext-focus-ring-width) var(--p-inputtext-focus-ring-style) var(--p-inputtext-focus-ring-color);
      outline-offset: var(--p-inputtext-focus-ring-offset);
      box-shadow: var(--p-inputtext-focus-ring-shadow);
      > .p-inputfield {
        outline: 0 none;
        box-shadow: none;
      }
      .p-input-filled & {
        outline-color: color-mix(in srgb, var(--p-inputtext-focus-ring-color) var(--p-form-field-filled-border-opacity), transparent);
      }
    }
  }
  .p-input-icon-left,
  .p-input-icon-right {
    position: relative;
    display: inline-block;
    width: fit-content;
    max-width: 100%;
    .p-fluid & {
      display: block;
      width: auto;
    }
    > i {
      position: absolute;
      top: 50%;
      margin-top: calc(-1 * var(--p-icon-size) / 2);
      line-height: 1;
      z-index: 1;
    }
  }
  .p-input-icon-left {
    > i:first-of-type {
      left: var(--p-form-field-padding-x);
      color: var(--p-iconfield-icon-color);
    }
    > .p-inputfield {
      padding-left: calc(var(--p-form-field-padding-x) * 2 + var(--p-icon-size));
    }
  }
  .p-input-icon-right {
    > i:last-of-type {
      right: var(--p-form-field-padding-x);
      color: var(--p-iconfield-icon-color);
    }
    > .p-inputfield {
      padding-right: calc(var(--p-form-field-padding-x) * 2 + var(--p-icon-size));
    }
  }
}

/* packages/components/src/forms/inputgroup.css */
@layer primefaces.components {
  .p-inputgroup {
    display: flex;
    align-items: stretch;
    width: 100%;
    .p-inputgroup-addon + .p-inputgroup-addon {
      border-inline-start: 0 none;
    }
    > .p-password:not(.p-inputfield) {
      padding-inline-start: 0;
    }
    > .p-inputtext:not(:first-child),
    > .p-inputtextarea:not(:first-child),
    > .p-password:not(:first-child),
    > .p-password:not(:first-child) > .p-inputfield,
    > .p-inputnumber:not(:first-child) > .p-inputtext,
    > .p-inputmask:not(:first-child),
    > .p-calendar:not(:first-child) > .p-inputfield,
    > .p-chips:not(:first-child) > .p-chips-container,
    > .p-selectonemenu:not(:first-child),
    > .p-selectonebutton:not(:first-child) > .p-button,
    > .p-autocomplete:not(:first-child) > .p-autocomplete-input,
    > .p-spinner:not(:first-child),
    > .p-spinner:not(:first-child) > .p-spinner-input {
      border-start-start-radius: 0;
      border-end-start-radius: 0;
      border-inline-start: 0 none;
    }
    > .p-inputtext:not(:last-child),
    > .p-inputtextarea:not(:last-child),
    > .p-password:not(:last-child),
    > .p-password:not(:last-child) > .p-inputfield,
    > .p-inputnumber:not(:last-child) > .p-inputtext,
    > .p-inputmask:not(:last-child),
    > .p-selectonemenu:not(:last-child),
    > .p-calendar:not(:last-child) > .p-inputfield,
    > .p-chips:not(:last-child) > .p-chips-container,
    > .p-selectonebutton:not(:last-child) > .p-button,
    > .p-autocomplete:not(:last-child) > .p-autocomplete-input,
    > .p-spinner:not(:last-child),
    > .p-spinner:not(:last-child) > .p-spinner-input,
    > .p-spinner:not(:last-child) > .p-spinner-button {
      border-start-end-radius: 0;
      border-end-end-radius: 0;
      border-inline-end: 0 none;
    }
    > .p-autocomplete:not(:last-child) > .p-autocomplete-dropdown.p-button,
    > .p-calendar:not(:last-child) > .p-button.p-button-icon-only,
    > .p-spinner.p-spinner-horizontal:not(:last-child) > .p-spinner-button.p-spinner-up {
      border-start-end-radius: 0;
      border-end-end-radius: 0;
    }
    .p-button {
      margin-inline-end: 0;
      border-radius: 0;
    }
    > .p-inputfield,
    > .p-inputwrapper,
    > .p-inputnumber,
    > .p-autocomplete,
    > .p-chips,
    > .p-spinner,
    > .p-float-label {
      flex: 1 1 auto;
      width: 1%;
    }
    > .p-inputwrapper > .p-inputfield,
    > .p-inputnumber > .p-inputfield,
    > .p-autocomplete > .p-inputfield,
    > .p-float-label > .p-inputfield {
      width: 100%;
    }
    > .p-button,
    .p-inputgroup-addon,
    .p-inputgroup-addon-checkbox {
      flex: 0 0 auto;
    }
    .p-fluid & {
      .p-button {
        width: auto;
      }
      .p-button-icon-only {
        width: var(--p-button-icon-only-width);
      }
    }
    .p-inputgroup-addon,
    .p-inputgroup-addon-checkbox {
      text-align: center;
      border-width: 1px;
      border-style: solid;
      display: inline-flex;
      align-items: center;
      justify-content: center;
      padding: var(--p-inputgroup-addon-padding);
      min-width: var(--p-inputgroup-addon-min-width);
      background: var(--p-inputgroup-addon-background);
      color: var(--p-inputgroup-addon-color);
      border-color: var(--p-inputgroup-addon-border-color);
      font-size: var(--p-inputgroup-addon-font-size);
      font-weight: var(--p-inputgroup-addon-font-weight);
      &:first-child {
        border-start-start-radius: var(--p-inputgroup-addon-border-radius);
        border-end-start-radius: var(--p-inputgroup-addon-border-radius);
      }
      &:last-child {
        border-start-end-radius: var(--p-inputgroup-addon-border-radius);
        border-end-end-radius: var(--p-inputgroup-addon-border-radius);
      }
    }
    > .p-component,
    > .p-float-label > .p-component {
      border-radius: 0;
    }
    > .p-component:first-child,
    > .p-float-label:first-child > .p-component {
      border-start-start-radius: var(--p-inputgroup-addon-border-radius);
      border-end-start-radius: var(--p-inputgroup-addon-border-radius);
    }
    > .p-component:last-child,
    > .p-float-label:last-child > .p-component {
      border-start-end-radius: var(--p-inputgroup-addon-border-radius);
      border-end-end-radius: var(--p-inputgroup-addon-border-radius);
    }
    button:first-child,
    input:first-child,
    textarea:first-child {
      border-start-start-radius: var(--p-inputgroup-addon-border-radius);
      border-end-start-radius: var(--p-inputgroup-addon-border-radius);
    }
    .p-float-label:first-child {
      input,
      textarea {
        border-inline-end-width: 0;
        border-start-start-radius: var(--p-inputgroup-addon-border-radius);
        border-end-start-radius: var(--p-inputgroup-addon-border-radius);
      }
    }
    button:last-child,
    input:last-child,
    textarea:last-child {
      border-start-end-radius: var(--p-inputgroup-addon-border-radius);
      border-end-end-radius: var(--p-inputgroup-addon-border-radius);
    }
    .p-float-label:last-child {
      input,
      textarea {
        border-inline-start-width: 0;
        border-start-end-radius: var(--p-inputgroup-addon-border-radius);
        border-end-end-radius: var(--p-inputgroup-addon-border-radius);
      }
    }
    > .p-component.p-state-focus,
    > .p-component:focus,
    > .p-float-label > .p-component.p-state-focus,
    > .p-float-label > .p-component:focus {
      z-index: 1;
    }
    > .p-component.p-state-focus ~ label,
    > .p-component:focus ~ label,
    > .p-float-label > .p-component.p-state-focus ~ label,
    > .p-float-label > .p-component:focus ~ label {
      z-index: 1;
    }
    .p-inputgroup-addon-checkbox {
      padding: 0;
      position: relative;
      .p-chkbox {
        margin: 0;
        vertical-align: baseline;
        position: absolute;
        top: 50%;
        inset-inline-start: 50%;
        margin-top: calc(-1 * var(--p-checkbox-height) / 2);
        margin-inline-start: calc(-1 * var(--p-checkbox-width) / 2);
      }
      .p-radiobutton {
        margin: 0;
        position: absolute;
        top: 50%;
        inset-inline-start: 50%;
        margin-top: calc(-1 * var(--p-radiobutton-height) / 2);
        margin-inline-start: calc(-1 * var(--p-radiobutton-width) / 2);
      }
    }
  }
  .p-input-filled .p-inputgroup {
    .p-inputgroup-addon,
    .p-inputgroup-addon-checkbox {
      background: var(--p-inputgroup-addon-filled-background);
      border-block-start-color: color-mix(in srgb, var(--p-inputgroup-addon-border-color) var(--p-form-field-filled-border-opacity), transparent);
      border-inline-color: color-mix(in srgb, var(--p-inputgroup-addon-border-color) var(--p-form-field-filled-border-opacity), transparent);
    }
    > :first-child,
    > :first-child > :is(.p-inputfield, .p-component, input, textarea):first-child {
      border-end-start-radius: var(--p-form-field-filled-bottom-border-radius);
    }
    > :last-child,
    > :last-child > :is(.p-inputfield, .p-component, input, textarea):last-child {
      border-end-end-radius: var(--p-form-field-filled-bottom-border-radius);
    }
  }
}

/* packages/components/src/menu/menu.base.css */
@layer primefaces.components {
  .p-menu {
    --_bg: var(--p-menu-background);
    --_border-color: var(--p-menu-border-color);
    --_border-radius: var(--p-menu-border-radius);
    --_color: var(--p-menu-color);
    --_shadow: var(--p-menu-shadow);
    --_list-padding: var(--p-menu-list-padding);
    --_list-gap: var(--p-menu-list-gap);
    --_transition-duration: var(--p-menu-transition-duration);
    --_item-border-radius: var(--p-menu-item-border-radius);
    --_item-padding: var(--p-menu-item-padding);
    --_item-gap: var(--p-menu-item-gap);
    --_item-color: var(--p-menu-item-color);
    --_item-focus-background: var(--p-menu-item-focus-background);
    --_item-focus-color: var(--p-menu-item-focus-color);
    --_item-active-background: var(--p-menu-item-focus-background);
    --_item-active-color: var(--p-menu-item-focus-color);
    --_item-icon-color: var(--p-menu-item-icon-color);
    --_item-icon-focus-color: var(--p-menu-item-icon-focus-color);
    --_item-icon-active-color: var(--p-menu-item-icon-focus-color);
    --_item-icon-size: var(--p-menu-item-icon-size);
    --_item-label-font-size: var(--p-menu-item-label-font-size);
    --_item-label-font-weight: var(--p-menu-item-label-font-weight);
    --_submenu-icon-color: var(--p-menu-submenu-icon-color);
    --_submenu-icon-focus-color: var(--p-menu-submenu-icon-focus-color);
    --_submenu-icon-size: var(--p-menu-submenu-icon-size);
    --_submenu-icon-active-color: var(--p-menu-item-icon-focus-color);
    --_separator-border-color: var(--p-menu-separator-border-color);
    --_submenu-label-background: var(--p-menu-submenu-label-background);
    --_submenu-label-color: var(--p-menu-submenu-label-color);
    --_submenu-label-font-size: var(--p-menu-submenu-label-font-size);
    --_submenu-label-font-weight: var(--p-menu-submenu-label-font-weight);
    --_submenu-label-padding: var(--p-menu-submenu-label-padding);
    --_submenu-background: var(--p-menu-background);
    --_submenu-border-color: var(--p-menu-border-color);
    --_submenu-border-radius: var(--p-menu-border-radius);
    --_submenu-padding: var(--p-menu-list-padding);
    --_submenu-shadow: var(--p-menu-shadow);
    --_padding: var(--p-menubar-padding);
    --_gap: var(--p-menubar-gap);
    --_base-item-padding: var(--p-menubar-base-item-padding);
    --_base-item-border-radius: var(--p-menubar-base-item-border-radius);
    width: fit-content;
    position: relative;
    outline: 0 none;
    padding: 0;
    background: var(--_bg);
    color: var(--_color);
    border: 1px solid var(--_border-color);
    border-radius: var(--_border-radius);
    &:not(.p-menubar):not([style*=width]) {
      min-width: 12.5rem;
    }
    &.p-menu-dynamic {
      position: absolute;
      display: none;
      z-index: 100000;
      border: 1px solid var(--_border-color);
      box-shadow: var(--_shadow);
    }
    &.p-menu-dynamic-maxheight {
      overflow-y: auto;
    }
    .p-menu-list .p-component-header {
      clear: both;
    }
    .p-menuitem {
      clear: both;
      padding: 0;
    }
    .p-menuitem-link {
      display: flex;
      align-items: center;
      outline: none;
      text-decoration: none;
      cursor: pointer;
    }
    .p-menuitem-link .p-menuitem-icon,
    .p-submenu-icon {
      display: inline-block;
    }
    .p-component-header {
      h1,
      h2,
      h3,
      h4,
      h5,
      h6 {
        display: block;
        margin: 0;
      }
    }
    .p-menu-parent {
      position: relative;
      .p-menu-child {
        display: none;
        width: auto;
        position: absolute;
        margin: 0;
        outline: 0;
        text-decoration: none;
        font-size: 100%;
        list-style: none;
        &:not([style*=width]) {
          min-width: 12.5rem;
        }
      }
    }
    .p-menu-list {
      list-style: none;
      padding: var(--_list-padding);
      margin: 0;
      .p-component-header h3 {
        display: flex;
        align-items: center;
        gap: var(--_item-gap);
      }
      .p-component-header .p-submenu-icon {
        position: static;
        float: none;
        margin: 0;
        color: var(--_item-icon-color);
      }
    }
    .p-menu-list .p-component-header {
      margin: 0;
      width: 100%;
      background: var(--_submenu-label-background);
      color: var(--_submenu-label-color);
      float: none;
      border: 0 none;
      padding: var(--_submenu-label-padding);
      border-radius: 0;
      transition: background var(--_transition-duration), color var(--_transition-duration);
      h3 {
        padding: 0;
        font-size: var(--_submenu-label-font-size);
        font-weight: var(--_submenu-label-font-weight);
        color: var(--_submenu-label-color);
        float: none;
      }
      &.p-state-hover {
        background: var(--_item-focus-background);
        color: var(--_item-focus-color);
        .p-submenu-icon {
          color: var(--_item-icon-focus-color);
        }
      }
    }
    .p-menu-list .p-menuitem {
      margin: 0;
      width: 100%;
      border: 0 none;
      float: none;
      border-radius: var(--_item-border-radius);
      transition: background var(--_transition-duration), color var(--_transition-duration);
      .p-menuitem-link {
        padding: var(--_item-padding);
        width: 100%;
        gap: var(--_item-gap);
        border: 0 none;
        float: none;
        color: var(--_item-color);
        border-radius: var(--_item-border-radius);
        line-height: var(--p-typography-line-height);
        transition: background var(--_transition-duration), color var(--_transition-duration);
        .p-menuitem-icon {
          margin: 0;
          float: none;
          flex-shrink: 0;
          color: var(--_item-icon-color);
          font-size: var(--_item-icon-size);
        }
        .p-menuitem-text {
          float: none;
          color: var(--_item-color);
          font-size: var(--_item-label-font-size);
          font-weight: var(--_item-label-font-weight);
        }
        &:not(.p-state-disabled):hover,
        &.p-state-hover,
        &.p-state-focus,
        &:focus-visible {
          background: var(--_item-focus-background);
        }
        &:focus-visible {
          outline: 0 none;
        }
        &:not(.p-state-disabled):hover .p-menuitem-icon,
        &.p-state-hover .p-menuitem-icon,
        &.p-state-focus .p-menuitem-icon,
        &:focus-visible .p-menuitem-icon {
          color: var(--_item-icon-focus-color);
        }
        &:not(.p-state-disabled):hover .p-menuitem-text,
        &.p-state-hover .p-menuitem-text,
        &.p-state-focus .p-menuitem-text,
        &:focus-visible .p-menuitem-text {
          color: var(--_item-focus-color);
        }
        .p-menu-submenu-icon,
        .p-menubar-submenu-icon {
          margin: 0;
          font-size: var(--_submenu-icon-size);
          color: var(--_submenu-icon-color);
        }
        .p-menu-submenu-icon {
          --_icon: var(--p-menu-submenu-icon);
          &:last-child {
            margin-inline-start: auto;
          }
          &:dir(rtl),
          &:first-child:where(.p-menu-rtl *) {
            scale: -1 1;
          }
        }
        .p-menubar-submenu-icon {
          --_icon: var(--p-menubar-submenu-icon);
        }
        &:not(.p-state-disabled):hover :is(.p-menu-submenu-icon, .p-menubar-submenu-icon),
        &.p-state-hover :is(.p-menu-submenu-icon, .p-menubar-submenu-icon),
        &.p-state-focus :is(.p-menu-submenu-icon, .p-menubar-submenu-icon) {
          color: var(--_submenu-icon-focus-color);
        }
      }
      &.p-state-hover {
        background: var(--_item-focus-background);
        color: var(--_item-focus-color);
        > .p-menuitem-link {
          color: var(--_item-focus-color);
          .p-menuitem-icon,
          .p-icon {
            color: var(--_item-icon-focus-color);
          }
        }
      }
      &.p-menuitem-active > .p-menuitem-link {
        background: var(--_item-active-background);
        .p-menuitem-text {
          color: var(--_item-active-color);
        }
        .p-menuitem-icon {
          color: var(--_item-icon-active-color);
        }
        .p-menu-submenu-icon,
        .p-menubar-submenu-icon {
          color: var(--_submenu-icon-active-color);
        }
      }
    }
    .p-menu-list > :not(:first-child) {
      margin-top: var(--_list-gap);
    }
    .p-menu-list .p-menu-child {
      background: var(--_submenu-background);
      padding: var(--_submenu-padding);
      border-radius: var(--_submenu-border-radius);
      border: 1px solid var(--_submenu-border-color);
      box-shadow: var(--_submenu-shadow);
    }
    .p-divider.p-component.p-divider-vertical {
      display: inline-flex;
      vertical-align: middle;
      margin: var(--p-menu-list-gap) 0;
      &::before {
        border-left-color: var(--_separator-border-color);
      }
    }
    .p-divider.p-component.p-divider-horizontal {
      margin: 0;
      &::before {
        border-top-color: var(--_separator-border-color);
      }
      &:not(:first-child) {
        margin-top: var(--_list-gap);
      }
    }
    &.p-menu-rtl {
      direction: rtl;
      .p-menu-list .p-menuitem .p-menuitem-link {
        flex-direction: row-reverse;
        justify-content: flex-end;
        .p-menu-submenu-icon:first-child {
          margin-inline-start: auto;
        }
      }
    }
    &.p-menubar {
      --_bg: var(--p-menubar-background);
      --_border-color: var(--p-menubar-border-color);
      --_border-radius: var(--p-menubar-border-radius);
      --_color: var(--p-menubar-color);
      --_list-gap: var(--p-menubar-submenu-gap);
      --_transition-duration: var(--p-menubar-transition-duration);
      --_item-border-radius: var(--p-menubar-item-border-radius);
      --_item-padding: var(--p-menubar-item-padding);
      --_item-gap: var(--p-menubar-item-gap);
      --_item-color: var(--p-menubar-item-color);
      --_item-focus-background: var(--p-menubar-item-focus-background);
      --_item-focus-color: var(--p-menubar-item-focus-color);
      --_item-active-background: var(--p-menubar-item-active-background);
      --_item-active-color: var(--p-menubar-item-active-color);
      --_item-icon-color: var(--p-menubar-item-icon-color);
      --_item-icon-focus-color: var(--p-menubar-item-icon-focus-color);
      --_item-icon-active-color: var(--p-menubar-item-icon-active-color);
      --_item-icon-size: var(--p-menubar-item-icon-size);
      --_item-label-font-size: var(--p-menubar-item-label-font-size);
      --_item-label-font-weight: var(--p-menubar-item-label-font-weight);
      --_submenu-icon-color: var(--p-menubar-submenu-icon-color);
      --_submenu-icon-focus-color: var(--p-menubar-submenu-icon-focus-color);
      --_submenu-icon-size: var(--p-menubar-submenu-icon-size);
      --_submenu-icon-active-color: var(--p-menubar-submenu-icon-active-color);
      --_separator-border-color: var(--p-menubar-separator-border-color);
      --_submenu-background: var(--p-menubar-submenu-background);
      --_submenu-border-color: var(--p-menubar-submenu-border-color);
      --_submenu-border-radius: var(--p-menubar-submenu-border-radius);
      --_submenu-padding: var(--p-menubar-submenu-padding);
      --_submenu-shadow: var(--p-menubar-submenu-shadow);
      --_padding: var(--p-menubar-padding);
      --_gap: var(--p-menubar-gap);
      --_base-item-padding: var(--p-menubar-base-item-padding);
      --_base-item-border-radius: var(--p-menubar-base-item-border-radius);
      display: flex;
      align-items: center;
      flex-wrap: wrap;
      gap: var(--_gap);
      padding: var(--_padding);
      background: var(--_bg);
      border-radius: var(--_border-radius);
      > .p-menu-list {
        display: flex;
        align-items: center;
        flex-wrap: wrap;
        gap: var(--_gap);
        padding: 0;
      }
      > .p-menu-list > .p-menuitem {
        width: auto;
        margin: 0;
        > .p-menuitem-link {
          padding: var(--_base-item-padding);
          border-radius: var(--_base-item-border-radius);
        }
      }
      > .p-menubar-start,
      > .p-menubar-options,
      > .p-menubar-end {
        display: flex;
        align-items: center;
      }
      > .p-menubar-options,
      > .p-menubar-end {
        margin-inline-start: auto;
      }
      > .p-menubar-options + .p-menubar-end {
        margin-inline-start: 0;
      }
    }
    &:not(.p-menubar):has(> .p-menubar-start, > .p-menubar-options, > .p-menubar-end) {
      padding: var(--_list-padding);
      > .p-menu-list {
        padding: 0;
      }
      > :not(:first-child) {
        margin-top: var(--_list-gap);
      }
    }
  }
  .p-menu-list {
    position: static;
  }
  .p-menubar {
    width: auto;
    .p-menuitem {
      clear: none;
    }
    .p-menu-child {
      top: 25px;
      left: 0;
    }
    .p-component-header {
      clear: none;
    }
  }
  .p-menuitem-outline {
    outline: var(--p-focus-ring-width) var(--p-focus-ring-style) var(--p-focus-ring-color);
    outline-offset: var(--p-focus-ring-offset);
    z-index: 1;
  }
  .p-fluid .p-menu {
    width: 100%;
  }
}

/* packages/components/src/paginator/paginator.css */
@layer primefaces.components {
  .p-paginator {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: var(--p-paginator-gap);
    margin: 0;
    text-align: center;
    background: var(--p-paginator-background);
    color: var(--p-paginator-color);
    border: 1px solid var(--p-content-border-color);
    border-width: 0;
    border-radius: var(--p-paginator-border-radius);
    padding: var(--p-paginator-padding);
  }
  .p-paginator-center-content,
  .p-paginator.p-paginator-top .p-paginator-top-left-content,
  .p-paginator.p-paginator-top .p-paginator-top-right-content,
  .p-paginator.p-paginator-bottom .p-paginator-bottom-left-content,
  .p-paginator.p-paginator-bottom .p-paginator-bottom-right-content {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--p-paginator-gap);
    margin: 0;
    text-align: center;
    min-width: 5em;
  }
  .p-paginator.p-paginator-top .p-paginator-top-left-content:empty,
  .p-paginator.p-paginator-top .p-paginator-top-right-content:empty,
  .p-paginator.p-paginator-bottom .p-paginator-bottom-left-content:empty,
  .p-paginator.p-paginator-bottom .p-paginator-bottom-right-content:empty {
    min-width: 0;
  }
  .p-paginator-center-content {
    justify-content: center;
  }
  .p-paginator {
    &.p-paginator-top .p-paginator-top-right-content,
    &.p-paginator-bottom .p-paginator-bottom-right-content {
      justify-content: flex-end;
    }
    .p-paginator-page,
    .p-paginator-pages,
    .p-paginator-next,
    .p-paginator-last,
    .p-paginator-first,
    .p-paginator-prev,
    .p-paginator-current {
      text-decoration: none;
    }
    .p-paginator-page,
    .p-paginator-next,
    .p-paginator-last,
    .p-paginator-first,
    .p-paginator-prev {
      cursor: pointer;
    }
    .p-paginator-first,
    .p-paginator-prev,
    .p-paginator-next,
    .p-paginator-last {
      font-style: normal;
      font-weight: normal;
      display: inline-flex;
      align-items: center;
      justify-content: center;
      position: relative;
      overflow: hidden;
      -webkit-user-select: none;
      user-select: none;
      background: var(--p-paginator-nav-button-background);
      color: var(--p-paginator-nav-button-color);
      min-width: var(--p-paginator-nav-button-width);
      height: var(--p-paginator-nav-button-height);
      margin: 0;
      border: 0 none;
      padding: 0;
      border-radius: var(--p-paginator-nav-button-border-radius);
      outline-color: transparent;
      transition:
        background var(--p-paginator-transition-duration),
        color var(--p-paginator-transition-duration),
        outline-color var(--p-paginator-transition-duration),
        box-shadow var(--p-paginator-transition-duration);
      &.p-state-hover,
      &:not(.p-state-disabled):hover {
        background: var(--p-paginator-nav-button-hover-background);
        color: var(--p-paginator-nav-button-hover-color);
      }
      &.p-state-focus,
      &:focus-visible {
        outline: var(--p-paginator-nav-button-focus-ring-width) var(--p-paginator-nav-button-focus-ring-style) var(--p-paginator-nav-button-focus-ring-color);
        outline-offset: var(--p-paginator-nav-button-focus-ring-offset);
        box-shadow: var(--p-paginator-nav-button-focus-ring-shadow);
      }
      &:dir(rtl) {
        transform: rotate(180deg);
      }
    }
    .p-paginator-first-icon {
      --_icon: var(--p-paginator-first-icon);
    }
    .p-paginator-prev-icon {
      --_icon: var(--p-paginator-prev-icon);
    }
    .p-paginator-next-icon {
      --_icon: var(--p-paginator-next-icon);
    }
    .p-paginator-last-icon {
      --_icon: var(--p-paginator-last-icon);
    }
    .p-paginator-current {
      display: inline-block;
      margin: 0;
      padding: 0;
      color: var(--p-paginator-current-page-report-color);
      font-size: var(--p-paginator-current-page-report-font-size);
      font-weight: var(--p-paginator-current-page-report-font-weight);
      font-variant-numeric: tabular-nums;
    }
    .p-paginator-pages {
      display: inline-flex;
      align-items: center;
      gap: var(--p-paginator-gap);
      margin: 0;
      padding: 0;
    }
    .p-paginator-pages .p-paginator-page {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      padding: 0;
      border: 0 none;
      min-width: var(--p-paginator-nav-button-width);
      width: unset;
      height: var(--p-paginator-nav-button-height);
      background: var(--p-paginator-nav-button-background);
      color: var(--p-paginator-nav-button-color);
      font-family: inherit;
      font-size: var(--p-paginator-nav-button-font-size);
      font-weight: var(--p-paginator-nav-button-font-weight);
      font-variant-numeric: tabular-nums;
      margin: 0;
      border-radius: var(--p-paginator-nav-button-border-radius);
      box-shadow: none;
      outline-color: transparent;
      transition:
        background var(--p-paginator-transition-duration),
        color var(--p-paginator-transition-duration),
        outline-color var(--p-paginator-transition-duration),
        box-shadow var(--p-paginator-transition-duration);
      &.p-state-hover,
      &:not(.p-state-disabled, .p-state-active):hover,
      &:not(.p-state-disabled, .p-state-active):active {
        background: var(--p-paginator-nav-button-hover-background);
        color: var(--p-paginator-nav-button-hover-color);
      }
      &.p-state-active {
        background: var(--p-paginator-nav-button-selected-background);
        color: var(--p-paginator-nav-button-selected-color);
      }
      &.p-state-focus,
      &:focus-visible {
        outline: var(--p-paginator-nav-button-focus-ring-width) var(--p-paginator-nav-button-focus-ring-style) var(--p-paginator-nav-button-focus-ring-color);
        outline-offset: var(--p-paginator-nav-button-focus-ring-offset);
        box-shadow: var(--p-paginator-nav-button-focus-ring-shadow);
      }
    }
    .p-paginator-rpp-options,
    .p-paginator-jtp-select {
      display: inline-block;
      vertical-align: middle;
      margin: 0;
      font-family: inherit;
      font-size: var(--p-select-font-size);
      font-weight: var(--p-select-font-weight);
      line-height: var(--p-typography-line-height);
      padding-block: var(--p-select-padding-y);
      padding-inline: var(--p-select-padding-x);
      color: var(--p-select-color);
      background: var(--p-select-background);
      border: 1px solid var(--p-select-border-color);
      border-radius: var(--p-select-border-radius);
      box-shadow: var(--p-select-shadow);
      cursor: pointer;
      outline-color: transparent;
      transition:
        background var(--p-select-transition-duration),
        color var(--p-select-transition-duration),
        border-color var(--p-select-transition-duration),
        outline-color var(--p-select-transition-duration),
        box-shadow var(--p-select-transition-duration);
      &.p-state-hover,
      &:not(:disabled, .p-state-disabled):hover {
        border-color: var(--p-select-hover-border-color);
      }
      &.p-state-focus,
      &:focus-visible {
        border-color: var(--p-select-focus-border-color);
        outline: var(--p-select-focus-ring-width) var(--p-select-focus-ring-style) var(--p-select-focus-ring-color);
        outline-offset: var(--p-select-focus-ring-offset);
        box-shadow: var(--p-select-focus-ring-shadow);
      }
      &:disabled,
      &.p-state-disabled {
        background: var(--p-select-disabled-background);
        color: var(--p-select-disabled-color);
        cursor: default;
      }
      option {
        background: var(--p-select-overlay-background);
        color: var(--p-select-option-color);
        border: 0 none;
        box-shadow: none;
      }
    }
    .p-paginator-jtp-input {
      width: calc(var(--p-jtp-digits, 3) * 1ch + 2.5rem);
      margin: 0;
      text-align: center;
      vertical-align: middle;
    }
    @media (max-width: 640px) {
      .p-paginator-pages {
        display: none;
      }
    }
  }
}

/* packages/components/src/forms/radiobutton.css */
@layer primefaces.components {
  .p-radiobutton {
    position: relative;
    display: inline-block;
    vertical-align: middle;
    margin: 0;
    width: var(--p-radiobutton-width);
    height: var(--p-radiobutton-height);
    line-height: normal;
    .p-radiobutton-box {
      cursor: pointer;
      border: var(--p-radiobutton-border-width) solid var(--p-radiobutton-border-color);
      background: var(--p-radiobutton-background);
      width: var(--p-radiobutton-width);
      height: var(--p-radiobutton-height);
      text-align: center;
      position: relative;
      border-radius: 50%;
      box-shadow: var(--p-radiobutton-shadow);
      outline-color: transparent;
      transition:
        background var(--p-radiobutton-transition-duration),
        color var(--p-radiobutton-transition-duration),
        border-color var(--p-radiobutton-transition-duration),
        box-shadow var(--p-radiobutton-transition-duration),
        outline-color var(--p-radiobutton-transition-duration);
      &.p-state-hover,
      &:not(.p-state-disabled):hover {
        border-color: var(--p-radiobutton-hover-border-color);
      }
      &.p-state-focus {
        border-color: var(--p-radiobutton-focus-border-color);
        outline: var(--p-radiobutton-focus-ring-width) var(--p-radiobutton-focus-ring-style) var(--p-radiobutton-focus-ring-color);
        outline-offset: var(--p-radiobutton-focus-ring-offset);
        box-shadow: var(--p-radiobutton-focus-ring-shadow);
      }
      &.p-state-active {
        border-color: var(--p-radiobutton-checked-border-color);
        background: var(--p-radiobutton-checked-background);
        color: var(--p-radiobutton-icon-checked-color);
        &.p-state-hover,
        &:not(.p-state-disabled):hover {
          border-color: var(--p-radiobutton-checked-hover-border-color);
          background: var(--p-radiobutton-checked-hover-background);
        }
        &.p-state-focus {
          border-color: var(--p-radiobutton-checked-focus-border-color);
        }
        .p-radiobutton-icon {
          background: var(--p-radiobutton-icon-checked-color);
        }
        &.p-state-hover .p-radiobutton-icon,
        &:not(.p-state-disabled):hover .p-radiobutton-icon {
          background: var(--p-radiobutton-icon-checked-hover-color);
        }
      }
      &.p-state-error,
      &.p-state-error:is(:hover, .p-state-hover, .p-state-focus),
      &.p-state-error.p-state-active:is(:hover, .p-state-hover, .p-state-focus) {
        border-color: var(--p-radiobutton-invalid-border-color);
      }
      &.p-state-disabled {
        opacity: 1;
        background: var(--p-radiobutton-disabled-background);
        border-color: var(--p-radiobutton-checked-disabled-border-color);
        &.p-state-active .p-radiobutton-icon {
          background: var(--p-radiobutton-icon-disabled-color);
        }
      }
      .p-radiobutton-icon {
        width: var(--p-radiobutton-icon-size);
        height: var(--p-radiobutton-icon-size);
        vertical-align: middle;
        position: absolute;
        top: 50%;
        left: 50%;
        margin-top: calc(-1 * var(--p-radiobutton-icon-size) / 2);
        margin-left: calc(-1 * var(--p-radiobutton-icon-size) / 2);
        border-radius: 50%;
        background: transparent;
        forced-color-adjust: none;
        transition-duration: var(--p-radiobutton-transition-duration);
      }
    }
  }
  .p-selectoneradio.p-state-readonly .p-radiobutton-box {
    cursor: default;
  }
  .p-input-filled .p-radiobutton .p-radiobutton-box {
    background: var(--p-radiobutton-filled-background);
    &.p-state-hover,
    &:not(.p-state-disabled):hover {
      background: var(--p-form-field-filled-hover-background);
    }
    &.p-state-active {
      background: var(--p-radiobutton-checked-background);
      &.p-state-hover,
      &:not(.p-state-disabled):hover {
        background: var(--p-radiobutton-checked-hover-background);
      }
    }
    &.p-state-disabled {
      background: var(--p-radiobutton-disabled-background);
    }
  }
  .p-radiobutton-sm {
    --p-radiobutton-width: var(--p-radiobutton-sm-width);
    --p-radiobutton-height: var(--p-radiobutton-sm-height);
    --p-radiobutton-icon-size: var(--p-radiobutton-icon-sm-size);
  }
  .p-radiobutton-lg {
    --p-radiobutton-width: var(--p-radiobutton-lg-width);
    --p-radiobutton-height: var(--p-radiobutton-lg-height);
    --p-radiobutton-icon-size: var(--p-radiobutton-icon-lg-size);
  }
  .p-state-highlight .p-radiobutton .p-radiobutton-box.p-state-active.p-state-active {
    border-color: var(--p-highlight-color);
  }
  .p-radiobutton .p-radiobutton-box {
    --_layer-color: var(--p-radiobutton-hover-border-color);
    --_layer-opacity: 0%;
    &::before {
      content: "";
      position: absolute;
      top: 50%;
      left: 50%;
      width: var(--p-radiobutton-state-layer-size);
      height: var(--p-radiobutton-state-layer-size);
      translate: -50% -50%;
      border-radius: 50%;
      background: color-mix(in srgb, var(--_layer-color) var(--_layer-opacity), transparent);
      pointer-events: none;
      transition: background var(--p-radiobutton-transition-duration);
    }
    &.p-state-active {
      --_layer-color: var(--p-radiobutton-checked-border-color);
    }
    &.p-state-hover,
    &:not(.p-state-disabled):hover {
      --_layer-opacity: var(--p-radiobutton-hover-state-layer-opacity);
    }
  }
  @media (forced-colors: active) {
    .p-radiobutton .p-radiobutton-box::before {
      display: none;
    }
  }
}

/* packages/components/src/ripple/ripple.css */
@layer primefaces.components {
  .p-ink-container {
    position: absolute;
    inset: 0;
    overflow: hidden;
    border-radius: inherit;
    pointer-events: none;
  }
  .p-ink-container.p-ink-unbounded {
    inset: auto;
    top: 50%;
    left: 50%;
    width: 2.5rem;
    height: 2.5rem;
    translate: -50% -50%;
    border-radius: 50%;
    color: var(--p-text-color);
    .p-state-active > &,
    .p-toggleswitch-checked & {
      color: var(--p-primary-color);
    }
  }
  .p-ink {
    position: absolute;
    top: 0;
    left: 0;
    border-radius: 50%;
    background:
      radial-gradient(
        closest-side,
        var(--p-ripple-color) max(calc(100% - 70px), 65%),
        transparent 100%);
    opacity: var(--p-ripple-opacity);
    transition-duration: var(--p-ripple-duration);
    transition-timing-function: var(--p-transition-easing);
  }
  @media (forced-colors: active) {
    .p-ink-container {
      display: none;
    }
  }
}

/* packages/components/src/base/rows.css */
@layer primefaces.components {
  .p-rows-gridlines :is(.p-autocomplete-table, table.p-selectlistbox-list) {
    --_table-gridlines: 1px;
  }
  .p-rows-sm :is(.p-autocomplete-table, .p-selectonemenu-table, table.p-selectlistbox-list) {
    --_table-cell-padding: var(--_table-cell-sm-padding);
    --_table-header-cell-padding: var(--_table-header-cell-sm-padding);
  }
  .p-rows-lg :is(.p-autocomplete-table, .p-selectonemenu-table, table.p-selectlistbox-list) {
    --_table-cell-padding: var(--_table-cell-lg-padding);
    --_table-header-cell-padding: var(--_table-header-cell-lg-padding);
  }
  .p-rows-striped {
    li.p-selectlistbox-item:nth-child(even of .p-selectlistbox-item:not(.p-hidden)):not(.p-state-hover, .p-state-highlight, .p-listbox-outline, :focus-visible) {
      background: var(--p-listbox-option-striped-background);
    }
    li.p-selectonemenu-item:nth-child(even of .p-selectonemenu-item:not(.p-hidden)):not(.p-state-hover, .p-state-focus, .p-state-highlight) {
      background: var(--p-select-option-striped-background);
    }
    li.p-autocomplete-list-item:nth-child(even of .p-autocomplete-list-item):not(.p-state-highlight) {
      background: var(--p-autocomplete-option-striped-background);
    }
    :is(tr.p-selectlistbox-item, tr.p-selectonemenu-row, tr.p-autocomplete-row):nth-child(even of :is(.p-selectlistbox-item, .p-selectonemenu-row, .p-autocomplete-row):not(.p-hidden)):not(.p-state-hover, .p-state-focus, .p-state-highlight, .p-listbox-outline, :focus-visible) {
      background: var(--p-datatable-row-striped-background);
    }
  }
}

/* packages/components/src/accordion/accordion.css */
@layer primefaces.components {
  .p-accordion {
    .p-accordion-header {
      position: relative;
      margin: 0;
      padding: var(--p-accordion-header-padding);
      font-size: var(--p-accordion-header-font-size);
      font-weight: var(--p-accordion-header-font-weight);
      color: var(--p-accordion-header-color);
      background: var(--p-accordion-header-background);
      border-style: solid;
      border-width: var(--p-accordion-header-border-width);
      border-color: var(--p-accordion-header-border-color);
      border-radius: var(--p-accordion-header-border-radius);
      cursor: pointer;
      -webkit-user-select: none;
      user-select: none;
      outline: 0 none;
      outline-color: transparent;
      transition:
        background var(--p-accordion-transition-duration),
        color var(--p-accordion-transition-duration),
        outline-color var(--p-accordion-transition-duration),
        box-shadow var(--p-accordion-transition-duration);
    }
    .p-accordion-header:not(.p-state-active)::after,
    .p-accordion-content::after {
      content: "";
      position: absolute;
      inset: 0;
      pointer-events: none;
      border-style: solid;
      border-width: var(--p-accordion-panel-border-width);
      border-color: var(--p-accordion-panel-border-color);
      border-radius: inherit;
    }
    .p-accordion-header:first-child {
      border-width: var(--p-accordion-header-first-border-width);
      border-start-start-radius: var(--p-accordion-header-first-top-border-radius);
      border-start-end-radius: var(--p-accordion-header-first-top-border-radius);
    }
    > .p-accordion-header:not(:has(~ .p-accordion-header)) {
      border-end-start-radius: var(--p-accordion-header-last-bottom-border-radius);
      border-end-end-radius: var(--p-accordion-header-last-bottom-border-radius);
    }
    > .p-accordion-header.p-state-active:not(:has(~ .p-accordion-header)) {
      border-end-start-radius: var(--p-accordion-header-last-active-bottom-border-radius);
      border-end-end-radius: var(--p-accordion-header-last-active-bottom-border-radius);
    }
    .p-accordion-header {
      &.p-state-hover,
      &:not(.p-state-active, .p-state-disabled):hover {
        background: var(--p-accordion-header-hover-background);
        color: var(--p-accordion-header-hover-color);
      }
      &.p-state-active {
        background: var(--p-accordion-header-active-background);
        color: var(--p-accordion-header-active-color);
        &:not(.p-state-disabled):hover {
          background: var(--p-accordion-header-active-hover-background);
          color: var(--p-accordion-header-active-hover-color);
        }
      }
      &:not(.p-state-disabled):focus-visible {
        outline: var(--p-accordion-header-focus-ring-width) var(--p-accordion-header-focus-ring-style) var(--p-accordion-header-focus-ring-color);
        outline-offset: var(--p-accordion-header-focus-ring-offset);
        box-shadow: var(--p-accordion-header-focus-ring-shadow);
      }
      &.p-state-error,
      &.p-state-error:hover,
      &.p-state-error.p-state-active:hover {
        border-color: var(--p-accordion-header-invalid-border-color);
        background: var(--p-accordion-header-invalid-background);
        color: var(--p-accordion-header-invalid-color);
      }
      &.p-state-error::after,
      &.p-state-error + .p-accordion-content,
      &.p-state-error + .p-accordion-content::after {
        border-color: var(--p-accordion-header-invalid-border-color);
      }
      > .p-accordion-toggler {
        float: right;
        line-height: var(--p-typography-line-height);
        color: var(--p-accordion-header-toggle-icon-color);
        transition: color var(--p-accordion-transition-duration);
      }
      &.p-state-hover > .p-accordion-toggler,
      &:not(.p-state-active, .p-state-disabled):hover > .p-accordion-toggler {
        color: var(--p-accordion-header-toggle-icon-hover-color);
      }
      &.p-state-active {
        > .p-accordion-toggler {
          color: var(--p-accordion-header-toggle-icon-active-color);
        }
        &:not(.p-state-disabled):hover > .p-accordion-toggler {
          color: var(--p-accordion-header-toggle-icon-active-hover-color);
        }
      }
      &.p-state-error > .p-accordion-toggler {
        color: inherit;
      }
      .p-accordion-header-icon {
        --_icon: var(--p-accordion-header-collapsed-icon);
      }
      &[aria-expanded=true] .p-accordion-header-icon {
        --_icon: var(--p-accordion-header-expanded-icon);
      }
      .p-panel-titlebar-icon {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        width: var(--p-button-icon-only-width);
        height: var(--p-button-icon-only-width);
        margin: 0;
        margin-block: calc((var(--p-typography-line-height) * 1em - var(--p-button-icon-only-width)) / 2);
        padding: 0;
        background: transparent;
        color: var(--p-button-text-secondary-color);
        border: 0 none;
        border-radius: 50%;
        text-align: center;
        text-decoration: none;
        -webkit-user-select: none;
        user-select: none;
        outline-color: transparent;
        transition:
          background var(--p-button-transition-duration),
          color var(--p-button-transition-duration),
          outline-color var(--p-button-transition-duration),
          box-shadow var(--p-button-transition-duration);
        &:hover {
          background: var(--p-button-text-secondary-hover-background);
          color: var(--p-button-text-secondary-color);
        }
        &:active {
          background: var(--p-button-text-secondary-active-background);
        }
        &:focus-visible {
          outline: var(--p-button-focus-ring-width) var(--p-button-focus-ring-style) var(--p-button-secondary-focus-ring-color);
          outline-offset: var(--p-button-focus-ring-offset);
          box-shadow: var(--p-button-secondary-focus-ring-shadow);
        }
        .p-accordion-header-menu-icon {
          --_icon: var(--p-accordion-header-menu-icon);
        }
      }
    }
    .p-panel-titlebar-icon {
      float: right;
      cursor: pointer;
    }
    .p-panel-actions {
      float: right;
    }
    .p-accordion-content {
      position: relative;
      margin: 0;
      padding: var(--p-accordion-content-padding);
      background: var(--p-accordion-content-background);
      color: var(--p-accordion-content-color);
      border-style: solid;
      border-width: var(--p-accordion-content-border-width);
      border-color: var(--p-accordion-content-border-color);
      overflow: auto;
      &:last-of-type {
        border-end-start-radius: var(--p-accordion-header-last-bottom-border-radius);
        border-end-end-radius: var(--p-accordion-header-last-bottom-border-radius);
      }
    }
    &.p-accordion-rtl {
      direction: rtl;
      .p-accordion-header > .p-accordion-toggler,
      .p-panel-titlebar-icon,
      .p-panel-actions {
        float: left;
      }
    }
  }
}

/* packages/core/src/ajaxstatus/ajaxstatus.css */
@layer primefaces.components {
  @keyframes p-spin {
    from {
      transform: rotate(0deg);
    }
    to {
      transform: rotate(360deg);
    }
  }
  @keyframes p-ajaxstatus-bar-anim {
    from {
      inset-inline-start: -40%;
    }
    to {
      inset-inline-start: 100%;
    }
  }
  .p-icon-loading {
    animation: p-spin var(--p-ajaxstatus-loading-icon-animation-duration) linear infinite;
  }
  .p-ajaxstatus-loading-icon {
    --_icon: var(--p-ajaxstatus-loading-icon);
  }
  .p-ajaxstatus-bar:not(:has(> [id$=_start])),
  .p-ajaxstatus-bar > [id$=_start] {
    position: fixed;
    top: 0;
    inset-inline: 0;
    z-index: 9999;
    height: var(--p-ajaxstatus-bar-height);
    overflow: hidden;
    font-size: 0;
    pointer-events: none;
    background: var(--p-ajaxstatus-bar-background);
    &::before {
      content: "";
      position: absolute;
      top: 0;
      bottom: 0;
      inset-inline-start: -40%;
      width: 40%;
      background: var(--p-ajaxstatus-bar-value-background);
      animation: p-ajaxstatus-bar-anim var(--p-ajaxstatus-bar-animation-duration) linear infinite;
    }
    > * {
      display: none;
    }
  }
}

/* packages/components/src/autocomplete/autocomplete.css */
@layer primefaces.components {
  .p-autocomplete {
    --p-inputtext-background: var(--p-autocomplete-background);
    --p-inputtext-disabled-background: var(--p-autocomplete-disabled-background);
    --p-inputtext-filled-background: var(--p-autocomplete-filled-background);
    --p-inputtext-filled-hover-background: var(--p-autocomplete-filled-hover-background);
    --p-inputtext-filled-focus-background: var(--p-autocomplete-filled-focus-background);
    --p-inputtext-border-color: var(--p-autocomplete-border-color);
    --p-inputtext-hover-border-color: var(--p-autocomplete-hover-border-color);
    --p-inputtext-focus-border-color: var(--p-autocomplete-focus-border-color);
    --p-inputtext-invalid-border-color: var(--p-autocomplete-invalid-border-color);
    --p-inputtext-color: var(--p-autocomplete-color);
    --p-inputtext-disabled-color: var(--p-autocomplete-disabled-color);
    --p-inputtext-placeholder-color: var(--p-autocomplete-placeholder-color);
    --p-inputtext-invalid-placeholder-color: var(--p-autocomplete-invalid-placeholder-color);
    --p-inputtext-shadow: var(--p-autocomplete-shadow);
    --p-inputtext-padding-x: var(--p-autocomplete-padding-x);
    --p-inputtext-padding-y: var(--p-autocomplete-padding-y);
    --p-inputtext-border-radius: var(--p-autocomplete-border-radius);
    --p-inputtext-focus-ring-width: var(--p-autocomplete-focus-ring-width);
    --p-inputtext-focus-ring-style: var(--p-autocomplete-focus-ring-style);
    --p-inputtext-focus-ring-color: var(--p-autocomplete-focus-ring-color);
    --p-inputtext-focus-ring-offset: var(--p-autocomplete-focus-ring-offset);
    --p-inputtext-focus-ring-shadow: var(--p-autocomplete-focus-ring-shadow);
    --p-inputtext-transition-duration: var(--p-autocomplete-transition-duration);
    width: auto;
    cursor: pointer;
    box-shadow: none;
    position: relative;
    display: inline-block;
    &.p-state-disabled {
      opacity: 1;
      > .p-autocomplete-dropdown {
        opacity: var(--p-disabled-opacity);
      }
    }
    &.p-autocomplete-dd {
      display: inline-flex;
      align-items: stretch;
      vertical-align: bottom;
    }
    .p-autocomplete-input.p-autocomplete-dd-input {
      padding-block: var(--p-autocomplete-padding-y);
      padding-inline: var(--p-autocomplete-padding-x);
      border-start-end-radius: 0;
      border-end-end-radius: 0;
    }
    .p-autocomplete-dropdown.p-button {
      --_bg: var(--p-autocomplete-dropdown-background);
      --_hover-bg: var(--p-autocomplete-dropdown-hover-background);
      --_active-bg: var(--p-autocomplete-dropdown-active-background);
      --_border: var(--p-autocomplete-dropdown-border-color);
      --_hover-border: var(--p-autocomplete-dropdown-hover-border-color);
      --_active-border: var(--p-autocomplete-dropdown-active-border-color);
      --_color: var(--p-autocomplete-dropdown-color);
      --_hover-color: var(--p-autocomplete-dropdown-hover-color);
      --_active-color: var(--p-autocomplete-dropdown-active-color);
      --_focus-ring-color: var(--p-autocomplete-dropdown-focus-ring-color);
      --_focus-ring-shadow: var(--p-autocomplete-dropdown-focus-ring-shadow);
      position: relative;
      flex: 0 0 auto;
      height: auto;
      width: var(--p-autocomplete-dropdown-width);
      padding-block: 0;
      margin: 0;
      border-inline-start-width: 0;
      border-start-start-radius: 0;
      border-end-start-radius: 0;
      border-start-end-radius: var(--p-autocomplete-dropdown-border-radius);
      border-end-end-radius: var(--p-autocomplete-dropdown-border-radius);
      transition:
        background var(--p-autocomplete-transition-duration),
        color var(--p-autocomplete-transition-duration),
        border-color var(--p-autocomplete-transition-duration),
        outline-color var(--p-autocomplete-transition-duration),
        box-shadow var(--p-autocomplete-transition-duration);
      &:focus-visible {
        outline: var(--p-autocomplete-dropdown-focus-ring-width) var(--p-autocomplete-dropdown-focus-ring-style) var(--_focus-ring-color);
        outline-offset: var(--p-autocomplete-dropdown-focus-ring-offset);
      }
    }
    .p-autocomplete-dropdown-icon {
      --_icon: var(--p-autocomplete-dropdown-icon);
    }
    .p-icon-loading {
      position: absolute;
      top: 50%;
    }
    &.p-state-loading .p-icon-loading {
      inset-inline-end: var(--p-autocomplete-padding-x);
      margin-top: calc(-1 * var(--p-icon-size) / 2);
      color: var(--p-form-field-icon-color);
    }
    &.p-state-loading.p-autocomplete-dd .p-icon-loading {
      inset-inline-end: calc(var(--p-autocomplete-padding-x) + var(--p-autocomplete-dropdown-width));
    }
  }
  .p-autocomplete.p-autocomplete-dd:has(> .p-inputtext-sm) .p-autocomplete-dropdown.p-button {
    width: var(--p-autocomplete-dropdown-sm-width);
  }
  .p-autocomplete.p-autocomplete-dd:has(> .p-inputtext-lg) .p-autocomplete-dropdown.p-button {
    width: var(--p-autocomplete-dropdown-lg-width);
  }
  .p-autocomplete-dd {
    &:has(> .p-inputfield.p-state-hover, > .p-inputfield:hover) .p-autocomplete-dropdown.p-button {
      --_border: var(--p-autocomplete-hover-border-color);
      --_hover-border: var(--p-autocomplete-hover-border-color);
      --_active-border: var(--p-autocomplete-hover-border-color);
    }
    &:has(> .p-inputfield.p-state-focus, > .p-inputfield:focus) .p-autocomplete-dropdown.p-button {
      --_border: var(--p-autocomplete-focus-border-color);
      --_hover-border: var(--p-autocomplete-focus-border-color);
      --_active-border: var(--p-autocomplete-focus-border-color);
    }
    &:has(> .p-inputfield.p-state-error) .p-autocomplete-dropdown.p-button {
      --_border: var(--p-autocomplete-invalid-border-color);
      --_hover-border: var(--p-autocomplete-invalid-border-color);
      --_active-border: var(--p-autocomplete-invalid-border-color);
    }
  }
  .p-autocomplete-multiple-container {
    clear: left;
    cursor: text;
    list-style-type: none;
    margin: 0;
    min-height: 1px;
    overflow: hidden;
    width: 400px;
    max-width: 100%;
  }
  .p-autocomplete.p-autocomplete-multiple {
    max-width: 100%;
  }
  .p-autocomplete-token {
    cursor: default;
    overflow: hidden;
    white-space: nowrap;
    position: relative;
  }
  .p-autocomplete-token-label,
  .p-autocomplete-token-label-disabled {
    display: block;
  }
  .p-autocomplete-token-icon {
    position: absolute;
    top: 50%;
    cursor: pointer;
  }
  .p-autocomplete-input-token {
    list-style-type: none;
    input {
      border: 0 none;
      width: 140px;
      outline: 0 none;
      background-color: transparent;
      box-shadow: none;
    }
  }
  .p-autocomplete .p-autocomplete-multiple-container {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    padding: calc(var(--p-autocomplete-padding-y) / 2) var(--p-autocomplete-padding-x);
    &.p-autocomplete-dd-multiple-container {
      flex: 1 1 auto;
      padding-inline-end: var(--p-autocomplete-padding-x);
      border-start-end-radius: 0;
      border-end-end-radius: 0;
    }
    .p-autocomplete-token {
      padding: calc(var(--p-autocomplete-padding-y) / 2) 0;
      margin: 0;
      margin-inline-end: calc(var(--p-autocomplete-padding-y) / 2);
      background: var(--p-chip-background);
      color: var(--p-chip-color);
      display: inline-block;
      vertical-align: middle;
      float: none;
      border-radius: var(--p-autocomplete-chip-border-radius);
      transition: background var(--p-autocomplete-transition-duration), color var(--p-autocomplete-transition-duration);
      .p-autocomplete-token-label {
        padding-block: 0;
        padding-inline: var(--p-chip-padding-x) calc(var(--p-chip-padding-x) + var(--p-chip-gap) + var(--p-chip-remove-icon-size));
        font-size: var(--p-chip-label-font-size);
        font-weight: var(--p-chip-label-font-weight);
      }
      .p-autocomplete-token-label-disabled {
        padding-inline: var(--p-chip-padding-x);
      }
      .p-autocomplete-chip-remove-icon {
        --_icon: var(--p-autocomplete-chip-remove-icon);
      }
      .p-autocomplete-token-icon {
        position: absolute;
        inset-inline-end: var(--p-chip-padding-x);
        margin-top: calc(-1 * var(--p-chip-remove-icon-size) / 2);
        font-size: var(--p-chip-remove-icon-size);
        color: var(--p-chip-remove-icon-color);
      }
    }
    .p-autocomplete-input-token {
      margin: 0;
      padding: calc(var(--p-autocomplete-padding-y) / 2) 0;
      display: inline-block;
      vertical-align: middle;
      float: none;
      flex: 1 1 4rem;
      min-width: 4rem;
      input {
        font-family: inherit;
        font-size: var(--p-form-field-font-size);
        font-weight: var(--p-form-field-font-weight);
        line-height: var(--p-typography-line-height);
        color: var(--p-autocomplete-color);
        appearance: none;
        width: 100%;
        padding: 0;
        margin: 0;
      }
      input::placeholder {
        color: var(--p-autocomplete-placeholder-color);
      }
    }
    &.p-state-error .p-autocomplete-input-token input::placeholder {
      color: var(--p-autocomplete-invalid-placeholder-color);
    }
  }
  .p-autocomplete-panel {
    position: absolute;
    overflow: auto;
    padding: 0;
    background: var(--p-autocomplete-overlay-background);
    color: var(--p-autocomplete-overlay-color);
    border: 1px solid var(--p-autocomplete-overlay-border-color);
    border-radius: var(--p-autocomplete-overlay-border-radius);
    box-shadow: var(--p-autocomplete-overlay-shadow);
    .p-autocomplete-item {
      cursor: pointer;
    }
    .p-autocomplete-list {
      border: 0 none;
      margin: 0;
      list-style-type: none;
    }
    .p-autocomplete-list-item {
      text-align: start;
    }
    .p-autocomplete-empty-message {
      border: 0 none;
      margin: 0;
      padding: var(--p-autocomplete-empty-message-padding);
      color: var(--p-autocomplete-option-color);
      border-radius: var(--p-autocomplete-option-border-radius);
    }
    .p-autocomplete-items {
      padding: var(--p-autocomplete-list-padding);
      border: 0 none;
      background: transparent;
      color: inherit;
      .p-autocomplete-item {
        border: 0 none;
        margin: 0;
        padding: var(--p-autocomplete-option-padding);
        color: var(--p-autocomplete-option-color);
        background: transparent;
        font-size: var(--p-autocomplete-option-font-size);
        font-weight: var(--p-autocomplete-option-font-weight);
        border-radius: var(--p-autocomplete-option-border-radius);
        transition:
          background var(--p-list-option-transition-duration),
          color var(--p-list-option-transition-duration),
          border-color var(--p-list-option-transition-duration);
      }
    }
    .p-autocomplete-items:empty {
      padding: 0;
    }
    .p-autocomplete-list .p-autocomplete-item + .p-autocomplete-item {
      margin-top: var(--p-autocomplete-list-gap);
    }
    .p-autocomplete-table {
      --_table-cell-sm-padding: var(--p-autocomplete-table-cell-sm-padding);
      --_table-cell-lg-padding: var(--p-autocomplete-table-cell-lg-padding);
      --_table-header-cell-sm-padding: var(--p-autocomplete-table-cell-sm-padding);
      --_table-header-cell-lg-padding: var(--p-autocomplete-table-cell-lg-padding);
      border-collapse: collapse;
      width: 100%;
      th,
      td {
        border-style: solid;
        border-color: var(--p-autocomplete-table-cell-border-color);
        border-width: 0 var(--_table-gridlines, 0) 1px var(--_table-gridlines, 0);
        padding: var(--_table-cell-padding, var(--p-autocomplete-table-cell-padding));
        text-align: start;
      }
      th {
        border-top-width: var(--_table-gridlines, 0);
        padding: var(--_table-header-cell-padding, var(--p-autocomplete-table-cell-padding));
        background: var(--p-autocomplete-table-header-cell-background);
        color: var(--p-autocomplete-table-header-cell-color);
        font-weight: var(--p-autocomplete-table-header-cell-font-weight);
      }
    }
    .p-autocomplete-items .p-autocomplete-item.p-autocomplete-row {
      border-radius: 0;
      &:first-child > td {
        border-top-width: var(--_table-gridlines, 0);
      }
      &:last-child > td {
        border-bottom-width: var(--_table-gridlines, 0);
      }
    }
    .p-autocomplete-items .p-autocomplete-item.p-state-highlight {
      background: var(--p-autocomplete-option-focus-background);
      color: var(--p-autocomplete-option-focus-color);
    }
    .p-autocomplete-items .p-autocomplete-moretext {
      padding: var(--p-autocomplete-option-padding);
      color: var(--p-autocomplete-more-text-color);
      font-size: var(--p-autocomplete-option-font-size);
      font-weight: var(--p-autocomplete-more-text-font-weight);
    }
    .p-autocomplete-query {
      font-weight: var(--p-autocomplete-query-font-weight);
    }
    .p-autocomplete-group {
      cursor: default;
      padding: var(--p-autocomplete-option-group-padding);
      background: var(--p-autocomplete-option-group-background);
      color: var(--p-autocomplete-option-group-color);
      font-size: var(--p-autocomplete-option-group-font-size);
      font-weight: var(--p-autocomplete-option-group-font-weight);
    }
  }
  .p-autocomplete-list .p-autocomplete-moretext {
    text-align: start;
  }
  .p-autocomplete-empty-message {
    width: 100%;
  }
  .p-autocomplete-itemtip {
    position: absolute;
    display: none;
    &.p-component {
      padding: var(--p-autocomplete-itemtip-padding);
      background: var(--p-autocomplete-itemtip-background);
      color: var(--p-autocomplete-itemtip-color);
      border: 1px solid var(--p-autocomplete-itemtip-border-color);
      border-radius: var(--p-autocomplete-itemtip-border-radius);
      box-shadow: var(--p-autocomplete-itemtip-shadow);
    }
  }
  .p-autocomplete-itemtip-content {
    display: none;
  }
  .p-fluid {
    .p-autocomplete,
    .p-autocomplete-input,
    .p-autocomplete-multiple-container {
      width: 100%;
    }
    .p-autocomplete.p-autocomplete-dd {
      display: flex;
    }
    .p-autocomplete .p-autocomplete-input.p-autocomplete-dd-input,
    .p-autocomplete-multiple-container.p-autocomplete-dd-multiple-container {
      width: 1%;
      flex: 1 1 auto;
    }
    .p-autocomplete .p-autocomplete-dropdown.p-button {
      width: var(--p-autocomplete-dropdown-width);
    }
  }
  .p-input-filled .p-autocomplete-dd > .p-autocomplete-dropdown.p-button {
    --_bg: var(--p-autocomplete-dropdown-filled-background);
    --_hover-bg: var(--p-autocomplete-dropdown-filled-hover-background);
    --_active-bg: var(--p-autocomplete-dropdown-filled-active-background);
    --_line-width: var(--p-form-field-filled-indicator-width);
    --_texture: linear-gradient(var(--_border), var(--_border)) bottom / 100% var(--_line-width) no-repeat border-box, var(--p-button-texture);
    border-color: color-mix(in srgb, var(--_border) var(--p-form-field-filled-border-opacity), transparent);
    border-end-end-radius: var(--p-form-field-filled-bottom-border-radius);
    &:not(:disabled, .p-state-disabled):hover {
      border-color: color-mix(in srgb, var(--_hover-border) var(--p-form-field-filled-border-opacity), transparent);
    }
    &:not(:disabled, .p-state-disabled):active,
    &.p-state-active {
      border-color: color-mix(in srgb, var(--_active-border) var(--p-form-field-filled-border-opacity), transparent);
    }
  }
  .p-input-filled .p-autocomplete-dd:has(> .p-inputfield.p-state-focus, > .p-inputfield:focus) > .p-autocomplete-dropdown.p-button {
    --_line-width: var(--p-form-field-filled-focus-indicator-width);
  }
}

/* packages/components/src/avatar/avatar.css */
@layer primefaces.components {
  .p-avatar {
    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    width: var(--p-avatar-width);
    height: var(--p-avatar-height);
    font-size: var(--p-avatar-font-size);
    font-weight: var(--p-avatar-font-weight);
    background-color: var(--p-avatar-background);
    color: var(--p-avatar-color);
    border-radius: var(--p-avatar-border-radius);
    &:has(> img) {
      background-color: transparent;
    }
    > * {
      position: absolute;
    }
    img {
      width: 100%;
      height: 100%;
      border-radius: inherit;
    }
    .p-avatar-icon {
      font-size: var(--p-avatar-icon-size);
    }
    &.p-avatar-circle,
    &.p-avatar-circle img {
      border-radius: 50%;
    }
    &.p-avatar-lg {
      width: var(--p-avatar-lg-width);
      height: var(--p-avatar-lg-height);
      font-size: var(--p-avatar-lg-font-size);
      .p-avatar-icon {
        font-size: var(--p-avatar-lg-icon-size);
      }
    }
    &.p-avatar-xl {
      width: var(--p-avatar-xl-width);
      height: var(--p-avatar-xl-height);
      font-size: var(--p-avatar-xl-font-size);
      .p-avatar-icon {
        font-size: var(--p-avatar-xl-icon-size);
      }
    }
    &.p-avatar-dark {
      color: var(--p-avatar-dynamic-dark-color);
    }
    &.p-avatar-light {
      color: var(--p-avatar-dynamic-light-color);
    }
  }
  .p-avatar-group {
    display: flex;
    align-items: center;
  }
  .p-avatar-group .p-avatar {
    border: 2px solid var(--p-avatar-group-border-color);
    + .p-avatar {
      margin-inline-start: var(--p-avatar-group-offset);
    }
    &.p-avatar-lg + .p-avatar.p-avatar-lg {
      margin-inline-start: var(--p-avatar-lg-group-offset);
    }
    &.p-avatar-xl + .p-avatar.p-avatar-xl {
      margin-inline-start: var(--p-avatar-xl-group-offset);
    }
  }
}

/* packages/components/src/blockui/blockui.css */
@layer primefaces.components {
  .p-blockui {
    position: absolute;
    text-align: center;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    -webkit-user-select: none;
    user-select: none;
    &.p-component-overlay {
      background: var(--p-blockui-mask-background);
      color: var(--p-blockui-mask-color);
      border-radius: var(--p-blockui-border-radius);
    }
    &.p-component-overlay.p-blockui-light {
      background: var(--p-blockui-light-mask-background);
      color: var(--p-blockui-light-mask-color);
    }
    &:not(:has(> .p-blockui-content:not(:empty)))::before {
      content: " ";
      position: absolute;
      inset: 0;
      width: 1em;
      height: 1em;
      margin: auto;
      line-height: 1;
      font-size: var(--p-blockui-loading-icon-size);
      color: var(--p-blockui-loading-icon-color);
      background: currentColor;
      forced-color-adjust: none;
      mask: var(--p-blockui-loading-icon) center / contain no-repeat;
      animation: p-spin var(--p-blockui-loading-icon-animation-duration) linear infinite;
    }
    &.p-blockui-light:not(:has(> .p-blockui-content:not(:empty)))::before {
      color: var(--p-blockui-light-mask-color);
    }
  }
  .p-blockui-content {
    position: absolute;
    text-align: center;
    &.p-component {
      padding: var(--p-blockui-content-padding);
      background: var(--p-blockui-content-background);
      color: var(--p-blockui-content-color);
      border: 1px solid var(--p-blockui-content-border-color);
      border-radius: var(--p-blockui-content-border-radius);
      box-shadow: var(--p-blockui-content-shadow);
    }
  }
}

/* packages/components/src/menu/breadcrumb.css */
@layer primefaces.components {
  .p-breadcrumb {
    margin: 0;
    overflow-x: auto;
    background: var(--p-breadcrumb-background);
    border: var(--p-breadcrumb-border-width) solid var(--p-breadcrumb-border-color);
    border-radius: var(--p-breadcrumb-border-radius);
    padding: var(--p-breadcrumb-padding);
    &::-webkit-scrollbar {
      display: none;
    }
    .p-menuitem-link {
      text-decoration: none;
    }
    .p-breadcrumb-items {
      margin: 0;
      padding: 0;
      list-style-type: none;
      display: flex;
      align-items: center;
      flex-wrap: nowrap;
      li .p-menuitem-link {
        display: flex;
        align-items: center;
        gap: var(--p-breadcrumb-item-gap);
        margin: 0;
        border-radius: var(--p-breadcrumb-item-border-radius);
        outline-color: transparent;
        color: var(--p-breadcrumb-item-color);
        transition:
          background var(--p-breadcrumb-transition-duration),
          color var(--p-breadcrumb-transition-duration),
          outline-color var(--p-breadcrumb-transition-duration),
          box-shadow var(--p-breadcrumb-transition-duration);
        &:focus-visible {
          outline: var(--p-breadcrumb-item-focus-ring-width) var(--p-breadcrumb-item-focus-ring-style) var(--p-breadcrumb-item-focus-ring-color);
          outline-offset: var(--p-breadcrumb-item-focus-ring-offset);
          box-shadow: var(--p-breadcrumb-item-focus-ring-shadow);
        }
        .p-menuitem-text {
          color: var(--p-breadcrumb-item-color);
          font-size: var(--p-breadcrumb-item-label-font-size);
          font-weight: var(--p-breadcrumb-item-label-font-weight);
          transition: inherit;
        }
        .p-menuitem-icon {
          color: var(--p-breadcrumb-item-icon-color);
          font-size: var(--p-breadcrumb-item-icon-size);
          transition: inherit;
        }
        &:not(.p-state-disabled):hover .p-menuitem-text {
          color: var(--p-breadcrumb-item-hover-color);
        }
        &:not(.p-state-disabled):hover .p-menuitem-icon {
          color: var(--p-breadcrumb-item-icon-hover-color);
        }
        &.p-breadcrumb-home-icon {
          color: var(--p-breadcrumb-item-icon-color);
          font-size: var(--p-breadcrumb-item-icon-size);
          line-height: 1;
          &:not(.p-state-disabled):hover {
            color: var(--p-breadcrumb-item-icon-hover-color);
          }
        }
      }
      li.p-breadcrumb-options {
        margin-inline-start: auto;
      }
      li:not(.p-breadcrumb-options) {
        display: flex;
        align-items: center;
      }
      li:not(.p-breadcrumb-options)::before {
        content: " ";
        background: currentColor;
        forced-color-adjust: none;
        mask: var(--p-breadcrumb-separator-icon) center / contain no-repeat;
        font-style: normal;
        font-weight: normal;
        font-variant: normal;
        text-transform: none;
        display: inline-block;
        margin: 0 var(--p-breadcrumb-gap);
        color: var(--p-breadcrumb-separator-color);
      }
      li:not(.p-breadcrumb-options):dir(rtl)::before {
        scale: -1 1;
      }
      li:first-child::before {
        display: none;
      }
      li:first-child a.p-breadcrumb-home-icon {
        --_icon: var(--p-breadcrumb-home-icon);
        span {
          display: none;
        }
      }
    }
  }
  .p-breadcrumb-home-icon .p-menuitem-text {
    display: none;
  }
}

/* packages/components/src/forms/button.css */
@layer primefaces.components {
  .p-fluid {
    .p-button {
      width: 100%;
    }
    .p-buttonset {
      width: 100%;
    }
  }
  .p-button {
    --_bg: var(--p-button-primary-background);
    --_hover-bg: var(--p-button-primary-hover-background);
    --_active-bg: var(--p-button-primary-active-background);
    --_border: var(--p-button-primary-border-color);
    --_hover-border: var(--p-button-primary-hover-border-color);
    --_active-border: var(--p-button-primary-active-border-color);
    --_color: var(--p-button-primary-color);
    --_hover-color: var(--p-button-primary-hover-color);
    --_active-color: var(--p-button-primary-active-color);
    --_focus-ring-color: var(--p-button-primary-focus-ring-color);
    --_focus-ring-shadow: var(--p-button-primary-focus-ring-shadow);
    --_outlined-hover-bg: var(--p-button-outlined-primary-hover-background);
    --_outlined-active-bg: var(--p-button-outlined-primary-active-background);
    --_outlined-border: var(--p-button-outlined-primary-border-color);
    --_outlined-color: var(--p-button-outlined-primary-color);
    --_text-hover-bg: var(--p-button-text-primary-hover-background);
    --_text-active-bg: var(--p-button-text-primary-active-background);
    --_text-color: var(--p-button-text-primary-color);
    --_shadow: var(--p-button-shadow);
    --_active-shadow: var(--p-button-active-shadow);
    --_label-shadow: var(--p-button-label-shadow);
    --_texture: var(--p-button-texture);
    text-decoration: none !important;
    text-align: center;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: var(--p-button-gap);
    position: relative;
    margin: 0;
    padding: var(--p-button-padding-y) var(--p-button-padding-x);
    vertical-align: bottom;
    overflow: hidden;
    cursor: pointer;
    -webkit-user-select: none;
    user-select: none;
    font-size: var(--p-button-font-size);
    font-weight: var(--p-button-label-font-weight);
    background: var(--_texture), var(--_bg);
    color: var(--_color);
    border: 1px solid var(--_border);
    border-radius: var(--p-button-border-radius);
    box-shadow: var(--_shadow);
    outline-color: transparent;
    transition:
      background var(--p-button-transition-duration),
      color var(--p-button-transition-duration),
      border-color var(--p-button-transition-duration),
      outline-color var(--p-button-transition-duration),
      box-shadow var(--p-button-transition-duration),
      translate var(--p-button-transition-duration);
    .p-button-text {
      display: block;
      padding: 0;
      line-height: var(--p-typography-line-height);
      font-weight: var(--p-button-label-font-weight);
      text-shadow: var(--_label-shadow);
    }
    .p-button-icon-left,
    .p-button-icon-right,
    .p-icon {
      position: static;
      margin: 0;
      line-height: 1;
    }
    .p-button-icon-right {
      order: 1;
    }
    &.p-button-icon-only {
      width: var(--p-button-icon-only-width);
      padding-inline: 0;
      gap: 0;
      .p-button-text {
        visibility: hidden;
        width: 0;
        min-height: calc(1em * var(--p-typography-line-height));
        padding: 0;
        overflow: hidden;
        white-space: nowrap;
      }
      &.rounded-button {
        border-radius: 50%;
        height: var(--p-button-icon-only-width);
      }
    }
    &.p-linkbutton {
      padding: 0;
      > a {
        display: inline-flex;
        align-items: center;
        gap: var(--p-button-gap);
        padding: var(--p-button-padding-y) var(--p-button-padding-x);
        color: inherit;
        text-decoration: none;
        outline: 0 none;
      }
    }
    &:not(:disabled, .p-state-disabled):hover {
      background: var(--_texture), var(--_hover-bg);
      border-color: var(--_hover-border);
      color: var(--_hover-color);
    }
    &:not(:disabled, .p-state-disabled):active,
    &.p-state-active {
      background: var(--_texture), var(--_active-bg);
      border-color: var(--_active-border);
      color: var(--_active-color);
    }
    &:not(:disabled, .p-state-disabled):active {
      box-shadow: var(--_active-shadow);
      translate: 0 var(--p-button-active-offset);
    }
    &:focus-visible,
    &.p-linkbutton:has(> a:focus-visible) {
      outline: var(--p-button-focus-ring-width) var(--p-button-focus-ring-style) var(--_focus-ring-color);
      outline-offset: var(--p-button-focus-ring-offset);
      box-shadow: var(--_focus-ring-shadow);
    }
    &:disabled,
    &.p-state-disabled {
      cursor: default;
    }
    &:disabled {
      opacity: var(--p-disabled-opacity);
    }
    .p-button-dropdown-icon {
      --_icon: var(--p-button-dropdown-icon);
    }
    &.p-state-loading :is(.p-button-icon-left, .p-button-icon-right, .p-icon):not(.p-icon-loading) {
      display: none;
    }
  }
  .p-button-group {
    display: inline-flex;
    border-radius: var(--p-button-border-radius);
    &:has(.p-button-raised) {
      box-shadow: var(--p-button-raised-shadow);
    }
    .p-button {
      margin: 0;
      border-radius: 0;
      &:not(:nth-last-child(1 of .p-button)) {
        border-inline-end-width: 0;
      }
      &:nth-child(1 of .p-button) {
        border-start-start-radius: var(--p-button-border-radius);
        border-end-start-radius: var(--p-button-border-radius);
      }
      &:nth-last-child(1 of .p-button) {
        border-start-end-radius: var(--p-button-border-radius);
        border-end-end-radius: var(--p-button-border-radius);
      }
      &:focus-visible {
        z-index: 1;
      }
      &.p-button-raised:not(:focus-visible) {
        box-shadow: none;
      }
    }
  }
  .p-buttonset .p-button {
    margin-left: 0;
    margin-right: 0;
  }
  button.p-button::-moz-focus-inner {
    border: 0;
    padding: 0;
  }
  .p-menubutton {
    display: inline-flex;
    position: relative;
    padding: 0;
    .p-button {
      margin: 0;
    }
  }
  .p-button.p-button-secondary,
  :is(.p-splitbutton, .p-menubutton).p-button-secondary > .p-button {
    --_bg: var(--p-button-secondary-background);
    --_hover-bg: var(--p-button-secondary-hover-background);
    --_active-bg: var(--p-button-secondary-active-background);
    --_border: var(--p-button-secondary-border-color);
    --_hover-border: var(--p-button-secondary-hover-border-color);
    --_active-border: var(--p-button-secondary-active-border-color);
    --_color: var(--p-button-secondary-color);
    --_hover-color: var(--p-button-secondary-hover-color);
    --_active-color: var(--p-button-secondary-active-color);
    --_focus-ring-color: var(--p-button-secondary-focus-ring-color);
    --_focus-ring-shadow: var(--p-button-secondary-focus-ring-shadow);
    --_label-shadow: var(--p-button-outlined-label-shadow);
    --_outlined-hover-bg: var(--p-button-outlined-secondary-hover-background);
    --_outlined-active-bg: var(--p-button-outlined-secondary-active-background);
    --_outlined-border: var(--p-button-outlined-secondary-border-color);
    --_outlined-color: var(--p-button-outlined-secondary-color);
    --_text-hover-bg: var(--p-button-text-secondary-hover-background);
    --_text-active-bg: var(--p-button-text-secondary-active-background);
    --_text-color: var(--p-button-text-secondary-color);
  }
  .p-button.p-button-info,
  :is(.p-splitbutton, .p-menubutton).p-button-info > .p-button {
    --_bg: var(--p-button-info-background);
    --_hover-bg: var(--p-button-info-hover-background);
    --_active-bg: var(--p-button-info-active-background);
    --_border: var(--p-button-info-border-color);
    --_hover-border: var(--p-button-info-hover-border-color);
    --_active-border: var(--p-button-info-active-border-color);
    --_color: var(--p-button-info-color);
    --_hover-color: var(--p-button-info-hover-color);
    --_active-color: var(--p-button-info-active-color);
    --_focus-ring-color: var(--p-button-info-focus-ring-color);
    --_focus-ring-shadow: var(--p-button-info-focus-ring-shadow);
    --_outlined-hover-bg: var(--p-button-outlined-info-hover-background);
    --_outlined-active-bg: var(--p-button-outlined-info-active-background);
    --_outlined-border: var(--p-button-outlined-info-border-color);
    --_outlined-color: var(--p-button-outlined-info-color);
    --_text-hover-bg: var(--p-button-text-info-hover-background);
    --_text-active-bg: var(--p-button-text-info-active-background);
    --_text-color: var(--p-button-text-info-color);
  }
  .p-button.p-button-success,
  :is(.p-splitbutton, .p-menubutton).p-button-success > .p-button {
    --_bg: var(--p-button-success-background);
    --_hover-bg: var(--p-button-success-hover-background);
    --_active-bg: var(--p-button-success-active-background);
    --_border: var(--p-button-success-border-color);
    --_hover-border: var(--p-button-success-hover-border-color);
    --_active-border: var(--p-button-success-active-border-color);
    --_color: var(--p-button-success-color);
    --_hover-color: var(--p-button-success-hover-color);
    --_active-color: var(--p-button-success-active-color);
    --_focus-ring-color: var(--p-button-success-focus-ring-color);
    --_focus-ring-shadow: var(--p-button-success-focus-ring-shadow);
    --_outlined-hover-bg: var(--p-button-outlined-success-hover-background);
    --_outlined-active-bg: var(--p-button-outlined-success-active-background);
    --_outlined-border: var(--p-button-outlined-success-border-color);
    --_outlined-color: var(--p-button-outlined-success-color);
    --_text-hover-bg: var(--p-button-text-success-hover-background);
    --_text-active-bg: var(--p-button-text-success-active-background);
    --_text-color: var(--p-button-text-success-color);
  }
  .p-button.p-button-warning,
  :is(.p-splitbutton, .p-menubutton).p-button-warning > .p-button {
    --_bg: var(--p-button-warn-background);
    --_hover-bg: var(--p-button-warn-hover-background);
    --_active-bg: var(--p-button-warn-active-background);
    --_border: var(--p-button-warn-border-color);
    --_hover-border: var(--p-button-warn-hover-border-color);
    --_active-border: var(--p-button-warn-active-border-color);
    --_color: var(--p-button-warn-color);
    --_hover-color: var(--p-button-warn-hover-color);
    --_active-color: var(--p-button-warn-active-color);
    --_focus-ring-color: var(--p-button-warn-focus-ring-color);
    --_focus-ring-shadow: var(--p-button-warn-focus-ring-shadow);
    --_outlined-hover-bg: var(--p-button-outlined-warn-hover-background);
    --_outlined-active-bg: var(--p-button-outlined-warn-active-background);
    --_outlined-border: var(--p-button-outlined-warn-border-color);
    --_outlined-color: var(--p-button-outlined-warn-color);
    --_text-hover-bg: var(--p-button-text-warn-hover-background);
    --_text-active-bg: var(--p-button-text-warn-active-background);
    --_text-color: var(--p-button-text-warn-color);
  }
  .p-button.p-button-help,
  :is(.p-splitbutton, .p-menubutton).p-button-help > .p-button {
    --_bg: var(--p-button-help-background);
    --_hover-bg: var(--p-button-help-hover-background);
    --_active-bg: var(--p-button-help-active-background);
    --_border: var(--p-button-help-border-color);
    --_hover-border: var(--p-button-help-hover-border-color);
    --_active-border: var(--p-button-help-active-border-color);
    --_color: var(--p-button-help-color);
    --_hover-color: var(--p-button-help-hover-color);
    --_active-color: var(--p-button-help-active-color);
    --_focus-ring-color: var(--p-button-help-focus-ring-color);
    --_focus-ring-shadow: var(--p-button-help-focus-ring-shadow);
    --_outlined-hover-bg: var(--p-button-outlined-help-hover-background);
    --_outlined-active-bg: var(--p-button-outlined-help-active-background);
    --_outlined-border: var(--p-button-outlined-help-border-color);
    --_outlined-color: var(--p-button-outlined-help-color);
    --_text-hover-bg: var(--p-button-text-help-hover-background);
    --_text-active-bg: var(--p-button-text-help-active-background);
    --_text-color: var(--p-button-text-help-color);
  }
  .p-button.p-button-danger,
  :is(.p-splitbutton, .p-menubutton).p-button-danger > .p-button {
    --_bg: var(--p-button-danger-background);
    --_hover-bg: var(--p-button-danger-hover-background);
    --_active-bg: var(--p-button-danger-active-background);
    --_border: var(--p-button-danger-border-color);
    --_hover-border: var(--p-button-danger-hover-border-color);
    --_active-border: var(--p-button-danger-active-border-color);
    --_color: var(--p-button-danger-color);
    --_hover-color: var(--p-button-danger-hover-color);
    --_active-color: var(--p-button-danger-active-color);
    --_focus-ring-color: var(--p-button-danger-focus-ring-color);
    --_focus-ring-shadow: var(--p-button-danger-focus-ring-shadow);
    --_outlined-hover-bg: var(--p-button-outlined-danger-hover-background);
    --_outlined-active-bg: var(--p-button-outlined-danger-active-background);
    --_outlined-border: var(--p-button-outlined-danger-border-color);
    --_outlined-color: var(--p-button-outlined-danger-color);
    --_text-hover-bg: var(--p-button-text-danger-hover-background);
    --_text-active-bg: var(--p-button-text-danger-active-background);
    --_text-color: var(--p-button-text-danger-color);
  }
  .p-button.p-button-contrast,
  :is(.p-splitbutton, .p-menubutton).p-button-contrast > .p-button {
    --_bg: var(--p-button-contrast-background);
    --_hover-bg: var(--p-button-contrast-hover-background);
    --_active-bg: var(--p-button-contrast-active-background);
    --_border: var(--p-button-contrast-border-color);
    --_hover-border: var(--p-button-contrast-hover-border-color);
    --_active-border: var(--p-button-contrast-active-border-color);
    --_color: var(--p-button-contrast-color);
    --_hover-color: var(--p-button-contrast-hover-color);
    --_active-color: var(--p-button-contrast-active-color);
    --_focus-ring-color: var(--p-button-contrast-focus-ring-color);
    --_focus-ring-shadow: var(--p-button-contrast-focus-ring-shadow);
    --_outlined-hover-bg: var(--p-button-outlined-contrast-hover-background);
    --_outlined-active-bg: var(--p-button-outlined-contrast-active-background);
    --_outlined-border: var(--p-button-outlined-contrast-border-color);
    --_outlined-color: var(--p-button-outlined-contrast-color);
    --_text-hover-bg: var(--p-button-text-contrast-hover-background);
    --_text-active-bg: var(--p-button-text-contrast-active-background);
    --_text-color: var(--p-button-text-contrast-color);
  }
  .p-button.p-button-plain,
  :is(.p-splitbutton, .p-menubutton).p-button-plain > .p-button {
    --_outlined-hover-bg: var(--p-button-outlined-plain-hover-background);
    --_outlined-active-bg: var(--p-button-outlined-plain-active-background);
    --_outlined-border: var(--p-button-outlined-plain-border-color);
    --_outlined-color: var(--p-button-outlined-plain-color);
    --_text-hover-bg: var(--p-button-text-plain-hover-background);
    --_text-active-bg: var(--p-button-text-plain-active-background);
    --_text-color: var(--p-button-text-plain-color);
  }
  .p-button.p-button-outlined,
  :is(.p-splitbutton, .p-menubutton).p-button-outlined > .p-button {
    --_bg: var(--p-button-outlined-background);
    --_label-shadow: var(--p-button-outlined-label-shadow);
    --_hover-bg: var(--_outlined-hover-bg);
    --_active-bg: var(--_outlined-active-bg);
    --_border: var(--_outlined-border);
    --_hover-border: var(--_outlined-border);
    --_active-border: var(--_outlined-border);
    --_color: var(--_outlined-color);
    --_hover-color: var(--_outlined-color);
    --_active-color: var(--_outlined-color);
  }
  .p-button.p-button-flat,
  :is(.p-splitbutton, .p-menubutton).p-button-flat > .p-button {
    --_bg: transparent;
    --_hover-bg: var(--_text-hover-bg);
    --_active-bg: var(--_text-active-bg);
    --_border: transparent;
    --_hover-border: transparent;
    --_active-border: transparent;
    --_shadow: none;
    --_active-shadow: none;
    --_texture: none;
    --_label-shadow: var(--p-button-outlined-label-shadow);
    --_color: var(--_text-color);
    --_hover-color: var(--_text-color);
    --_active-color: var(--_text-color);
  }
  .p-button.p-button-raised,
  :is(.p-splitbutton, .p-menubutton).p-button-raised > .p-button {
    --_shadow: var(--p-button-raised-shadow);
    --_active-shadow: var(--p-button-raised-shadow);
  }
  .p-button {
    &.rounded-button {
      border-radius: var(--p-button-rounded-border-radius);
    }
    &.p-button-sm {
      font-size: var(--p-button-sm-font-size);
      padding: var(--p-button-sm-padding-y) var(--p-button-sm-padding-x);
      .p-button-icon-left,
      .p-button-icon-right,
      .p-icon {
        font-size: var(--p-button-sm-font-size);
      }
      &.p-button-icon-only {
        width: var(--p-button-sm-icon-only-width);
        padding-inline: 0;
        &.rounded-button {
          height: var(--p-button-sm-icon-only-width);
        }
      }
    }
    &.p-button-lg {
      font-size: var(--p-button-lg-font-size);
      padding: var(--p-button-lg-padding-y) var(--p-button-lg-padding-x);
      .p-button-icon-left,
      .p-button-icon-right,
      .p-icon {
        font-size: var(--p-button-lg-font-size);
      }
      &.p-button-icon-only {
        width: var(--p-button-lg-icon-only-width);
        padding-inline: 0;
        &.rounded-button {
          height: var(--p-button-lg-icon-only-width);
        }
      }
    }
    &.p-linkbutton {
      &.p-button-sm,
      &.p-button-lg {
        padding: 0;
      }
      &.p-button-sm > a {
        padding: var(--p-button-sm-padding-y) var(--p-button-sm-padding-x);
      }
      &.p-button-lg > a {
        padding: var(--p-button-lg-padding-y) var(--p-button-lg-padding-x);
      }
      &.p-button-icon-only > a {
        flex: 1 1 auto;
        align-self: stretch;
        justify-content: center;
        padding-inline: 0;
        gap: 0;
      }
    }
    .p-badge {
      min-width: var(--p-button-badge-size);
      height: var(--p-button-badge-size);
      line-height: var(--p-button-badge-size);
    }
  }
  .p-commandlink,
  .p-link {
    color: var(--p-button-link-color);
    border-radius: var(--p-border-radius-xs);
    outline-color: transparent;
    transition: color var(--p-button-transition-duration), outline-color var(--p-button-transition-duration);
    &:hover {
      color: var(--p-button-link-hover-color);
      text-decoration: underline;
    }
    &:active {
      color: var(--p-button-link-active-color);
    }
    &:focus-visible {
      outline: var(--p-focus-ring-width) var(--p-focus-ring-style) var(--p-focus-ring-color);
      outline-offset: var(--p-focus-ring-offset);
      box-shadow: var(--p-focus-ring-shadow);
    }
  }
  .p-commandlink.p-state-loading {
    cursor: progress;
    text-decoration: none;
    &::after {
      content: " ";
      display: inline-block;
      line-height: 1;
      margin-inline-start: var(--p-button-link-loading-icon-gap);
      vertical-align: -0.125em;
      background: currentColor;
      forced-color-adjust: none;
      mask: var(--p-button-link-loading-icon) center / contain no-repeat;
      animation: p-spin var(--p-ajaxstatus-loading-icon-animation-duration) linear infinite;
    }
  }
}

/* packages/components/src/card/card.css */
@layer primefaces.components {
  .p-card-header img {
    display: block;
    width: 100%;
  }
  .p-card {
    display: flex;
    flex-direction: column;
    background: var(--p-card-background);
    color: var(--p-card-color);
    border: 0 none;
    box-shadow: var(--p-card-shadow);
    border-radius: var(--p-card-border-radius);
    .p-card-header {
      overflow: hidden;
      border-start-start-radius: var(--p-card-border-radius);
      border-start-end-radius: var(--p-card-border-radius);
    }
    .p-card-body {
      display: flex;
      flex-direction: column;
      gap: var(--p-card-body-gap);
      padding: var(--p-card-body-padding);
    }
    .p-card-title {
      margin: 0;
      font-size: var(--p-card-title-font-size);
      font-weight: var(--p-card-title-font-weight);
    }
    .p-card-subtitle {
      margin: 0;
      color: var(--p-card-subtitle-color);
      font-size: var(--p-card-subtitle-font-size);
      font-weight: var(--p-card-subtitle-font-weight);
    }
    .p-card-title + .p-card-subtitle {
      margin-top: calc(var(--p-card-caption-gap) - var(--p-card-body-gap));
    }
  }
}

/* packages/components/src/carousel/carousel.css */
@layer primefaces.components {
  .p-carousel {
    display: flex;
    flex-direction: column;
    .p-carousel-content {
      .p-carousel-prev,
      .p-carousel-next {
        width: var(--p-button-icon-only-width);
        height: var(--p-button-icon-only-width);
        margin: var(--p-carousel-content-gap);
        padding: 0;
        background: transparent;
        color: var(--p-button-text-secondary-color);
        border: 0 none;
        border-radius: 50%;
        text-align: center;
        line-height: var(--p-button-icon-only-width);
        -webkit-user-select: none;
        user-select: none;
        outline-color: transparent;
        transition:
          background var(--p-carousel-transition-duration),
          color var(--p-carousel-transition-duration),
          outline-color var(--p-carousel-transition-duration),
          box-shadow var(--p-carousel-transition-duration);
      }
      .p-carousel-prev-icon {
        --_icon: var(--p-carousel-prev-icon);
      }
      .p-carousel-next-icon {
        --_icon: var(--p-carousel-next-icon);
      }
      .p-carousel-prev-vertical-icon {
        --_icon: var(--p-carousel-prev-vertical-icon);
      }
      .p-carousel-next-vertical-icon {
        --_icon: var(--p-carousel-next-vertical-icon);
      }
      .p-carousel-prev:hover,
      .p-carousel-next:hover {
        background: var(--p-button-text-secondary-hover-background);
        color: var(--p-button-text-secondary-color);
        text-decoration: none;
      }
      .p-carousel-prev:active,
      .p-carousel-next:active {
        background: var(--p-button-text-secondary-active-background);
      }
      .p-carousel-prev:focus-visible,
      .p-carousel-next:focus-visible {
        outline: var(--p-focus-ring-width) var(--p-focus-ring-style) var(--p-focus-ring-color);
        outline-offset: var(--p-focus-ring-offset);
        box-shadow: var(--p-focus-ring-shadow);
      }
      .p-carousel-prev.p-state-disabled,
      .p-carousel-next.p-state-disabled {
        opacity: var(--p-disabled-opacity);
      }
    }
    .p-carousel-indicators {
      padding: var(--p-carousel-indicator-list-padding);
      gap: var(--p-carousel-indicator-list-gap);
      .p-carousel-indicator {
        margin: 0;
        button {
          background: var(--p-carousel-indicator-background);
          width: var(--p-carousel-indicator-width);
          height: var(--p-carousel-indicator-height);
          border: 0 none;
          border-radius: var(--p-carousel-indicator-border-radius);
          outline-color: transparent;
          transition:
            background var(--p-carousel-transition-duration),
            color var(--p-carousel-transition-duration),
            outline-color var(--p-carousel-transition-duration),
            box-shadow var(--p-carousel-transition-duration);
        }
        button:hover {
          background: var(--p-carousel-indicator-hover-background);
        }
        button:focus-visible {
          outline: var(--p-carousel-indicator-focus-ring-width) var(--p-carousel-indicator-focus-ring-style) var(--p-carousel-indicator-focus-ring-color);
          outline-offset: var(--p-carousel-indicator-focus-ring-offset);
          box-shadow: var(--p-carousel-indicator-focus-ring-shadow);
        }
        &.p-state-highlight button {
          background: var(--p-carousel-indicator-active-background);
          color: var(--p-primary-contrast-color);
        }
      }
    }
  }
  .p-carousel-content {
    display: flex;
    flex-direction: column;
    overflow: auto;
  }
  .p-carousel-prev,
  .p-carousel-next {
    align-self: center;
    flex-grow: 0;
    flex-shrink: 0;
    display: flex;
    justify-content: center;
    align-items: center;
    overflow: hidden;
    position: relative;
    cursor: pointer;
  }
  .p-carousel-prev.p-state-disabled,
  .p-carousel-next.p-state-disabled {
    pointer-events: none;
  }
  .p-carousel-container {
    display: flex;
    flex-direction: row;
  }
  .p-carousel-items-content {
    overflow: hidden;
    width: 100%;
  }
  .p-carousel-items-container {
    display: flex;
    flex-direction: row;
  }
  .p-carousel-indicators {
    display: flex;
    flex-direction: row;
    justify-content: center;
    flex-wrap: wrap;
    margin: 0;
    list-style: none;
  }
  .p-carousel-indicator > button {
    display: flex;
    align-items: center;
    justify-content: center;
    &.p-link {
      text-align: left;
      margin: 0;
      padding: 0;
      cursor: pointer;
      -webkit-user-select: none;
      user-select: none;
    }
  }
  .p-carousel-vertical {
    .p-carousel-container {
      flex-direction: column;
    }
    .p-carousel-items-container {
      flex-direction: column;
      height: 100%;
    }
  }
  .p-items-hidden .p-carousel-item {
    visibility: hidden;
    &.p-carousel-item-active {
      visibility: visible;
    }
  }
}

/* packages/components/src/forms/cascadeselect.css */
@layer primefaces.components {
  .p-cascadeselect {
    display: inline-flex;
    cursor: pointer;
    position: relative;
    -webkit-user-select: none;
    user-select: none;
    background: var(--p-cascadeselect-background);
    color: var(--p-cascadeselect-color);
    --_border-color: var(--p-cascadeselect-border-color);
    border: 1px solid var(--_border-color);
    border-radius: var(--p-cascadeselect-border-radius);
    box-shadow: var(--p-cascadeselect-shadow);
    outline-color: transparent;
    transition:
      background var(--p-cascadeselect-transition-duration),
      color var(--p-cascadeselect-transition-duration),
      border-color var(--p-cascadeselect-transition-duration),
      outline-color var(--p-cascadeselect-transition-duration),
      box-shadow var(--p-cascadeselect-transition-duration);
    &:not(.p-state-disabled):hover {
      --_border-color: var(--p-cascadeselect-hover-border-color);
    }
    &:not(.p-state-disabled).p-state-focus {
      --_border-color: var(--p-cascadeselect-focus-border-color);
      outline: var(--p-cascadeselect-focus-ring-width) var(--p-cascadeselect-focus-ring-style) var(--p-cascadeselect-focus-ring-color);
      outline-offset: var(--p-cascadeselect-focus-ring-offset);
      box-shadow: var(--p-cascadeselect-focus-ring-shadow);
    }
    &.p-state-error,
    &.p-state-error:is(:hover, .p-state-focus) {
      --_border-color: var(--p-cascadeselect-invalid-border-color);
    }
    &.p-state-disabled {
      background: var(--p-cascadeselect-disabled-background);
      opacity: 1;
    }
    .p-cascadeselect-label.p-inputfield,
    .p-cascadeselect-label.p-inputfield:not(.p-state-disabled):hover,
    .p-cascadeselect-label.p-inputfield:not(.p-state-disabled):focus {
      background: transparent;
      border: 0 none;
      border-radius: 0;
      outline: 0 none;
      box-shadow: none;
    }
    .p-cascadeselect-label.p-inputfield {
      padding-block: var(--p-cascadeselect-padding-y);
      padding-inline: var(--p-cascadeselect-padding-x);
      font-size: var(--p-cascadeselect-font-size);
      font-weight: var(--p-cascadeselect-font-weight);
      color: var(--p-cascadeselect-color);
    }
    .p-cascadeselect-label.p-inputfield.p-cascadeselect-label-placeholder {
      color: var(--p-cascadeselect-placeholder-color);
    }
    &.p-state-error .p-cascadeselect-label.p-inputfield.p-cascadeselect-label-placeholder {
      color: var(--p-cascadeselect-invalid-placeholder-color);
    }
    &.p-state-disabled .p-cascadeselect-label.p-inputfield {
      color: var(--p-cascadeselect-disabled-color);
    }
    .p-cascadeselect-dropdown-icon {
      --_icon: var(--p-cascadeselect-dropdown-icon);
    }
    .p-cascadeselect-trigger {
      background: transparent;
      color: var(--p-cascadeselect-dropdown-color);
      width: var(--p-cascadeselect-dropdown-width);
      border-start-end-radius: var(--p-cascadeselect-border-radius);
      border-end-end-radius: var(--p-cascadeselect-border-radius);
    }
    &.p-cascadeselect-sm {
      --p-cascadeselect-font-size: var(--p-cascadeselect-sm-font-size);
      --p-cascadeselect-padding-x: var(--p-cascadeselect-sm-padding-x);
      --p-cascadeselect-padding-y: var(--p-cascadeselect-sm-padding-y);
    }
    &.p-cascadeselect-lg {
      --p-cascadeselect-font-size: var(--p-cascadeselect-lg-font-size);
      --p-cascadeselect-padding-x: var(--p-cascadeselect-lg-padding-x);
      --p-cascadeselect-padding-y: var(--p-cascadeselect-lg-padding-y);
    }
    &.p-cascadeselect-sm .p-cascadeselect-trigger .p-cascadeselect-trigger-icon,
    &.p-cascadeselect-lg .p-cascadeselect-trigger .p-cascadeselect-trigger-icon {
      font-size: var(--p-cascadeselect-font-size);
    }
  }
  .p-cascadeselect-trigger {
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
  }
  .p-cascadeselect-label {
    display: block;
    white-space: nowrap;
    overflow: hidden;
    flex: 1 1 auto;
    width: 1%;
    text-overflow: ellipsis;
    cursor: pointer;
  }
  .p-cascadeselect-label:empty::before {
    content: "​";
  }
  .p-cascadeselect-panel {
    min-width: 100%;
    position: absolute;
  }
  .p-cascadeselect-panel.p-cascadeselect-items {
    padding: var(--p-cascadeselect-list-padding);
    background: var(--p-cascadeselect-overlay-background);
    color: var(--p-cascadeselect-overlay-color);
    border: 1px solid var(--p-cascadeselect-overlay-border-color);
    border-radius: var(--p-cascadeselect-overlay-border-radius);
    box-shadow: var(--p-cascadeselect-overlay-shadow);
  }
  .p-cascadeselect-items {
    margin: 0;
    padding: 0;
    list-style-type: none;
  }
  .p-cascadeselect-item {
    cursor: pointer;
    white-space: nowrap;
  }
  .p-cascadeselect-item-content {
    display: flex;
    align-items: center;
    overflow: hidden;
    position: relative;
    .p-cascadeselect-group-icon {
      margin-inline-start: auto;
    }
  }
  .p-cascadeselect-panel .p-cascadeselect-items .p-cascadeselect-item {
    margin: 0;
    border: 0 none;
    color: var(--p-cascadeselect-option-color);
    background: transparent;
    font-size: var(--p-cascadeselect-option-font-size);
    font-weight: var(--p-cascadeselect-option-font-weight);
    border-radius: var(--p-cascadeselect-option-border-radius);
    transition:
      background var(--p-list-option-transition-duration),
      color var(--p-list-option-transition-duration),
      border-color var(--p-list-option-transition-duration),
      box-shadow var(--p-list-option-transition-duration),
      outline-color var(--p-list-option-transition-duration);
    & + .p-cascadeselect-item {
      margin-top: var(--p-cascadeselect-list-gap);
    }
    .p-cascadeselect-item-content {
      padding: var(--p-cascadeselect-option-padding);
      border-radius: var(--p-cascadeselect-option-border-radius);
      outline-color: transparent;
      &:focus {
        outline: var(--p-focus-ring-width) var(--p-focus-ring-style) var(--p-focus-ring-color);
        outline-offset: calc(-1 * var(--p-focus-ring-width));
        box-shadow: var(--p-focus-ring-shadow);
      }
    }
    &.p-state-highlight {
      color: var(--p-cascadeselect-option-focus-color);
      background: var(--p-cascadeselect-option-focus-background);
    }
    &:not(.p-state-highlight):not(.p-state-disabled):hover {
      color: var(--p-cascadeselect-option-focus-color);
      background: var(--p-cascadeselect-option-focus-background);
    }
    &.p-state-active {
      color: var(--p-cascadeselect-option-selected-color);
      background: var(--p-cascadeselect-option-selected-background);
      &.p-state-highlight,
      &:not(.p-state-disabled):hover {
        color: var(--p-cascadeselect-option-selected-focus-color);
        background: var(--p-cascadeselect-option-selected-focus-background);
      }
    }
    .p-cascadeselect-group-icon {
      --_icon: var(--p-cascadeselect-group-icon);
      font-size: var(--p-cascadeselect-option-icon-size);
      color: var(--p-cascadeselect-option-icon-color);
    }
    &.p-state-highlight > .p-cascadeselect-item-content .p-cascadeselect-group-icon,
    &:not(.p-state-disabled):hover > .p-cascadeselect-item-content .p-cascadeselect-group-icon {
      color: var(--p-cascadeselect-option-icon-focus-color);
    }
  }
  .p-cascadeselect-sublist {
    position: absolute;
    min-width: 100%;
    z-index: 1;
    display: none;
  }
  .p-cascadeselect-item-active > .p-cascadeselect-sublist {
    display: block;
    left: 100%;
    top: 0;
  }
  .p-input-filled .p-cascadeselect {
    --_line-width: var(--p-form-field-filled-indicator-width);
    --_line: linear-gradient(var(--_border-color), var(--_border-color)) bottom / 100% var(--_line-width) no-repeat border-box;
    background: var(--_line), var(--p-cascadeselect-filled-background);
    border-color: color-mix(in srgb, var(--_border-color) var(--p-form-field-filled-border-opacity), transparent);
    border-end-start-radius: var(--p-form-field-filled-bottom-border-radius);
    border-end-end-radius: var(--p-form-field-filled-bottom-border-radius);
    &:not(.p-state-disabled):hover {
      background: var(--_line), var(--p-cascadeselect-filled-hover-background);
    }
    &:not(.p-state-disabled).p-state-focus {
      --_line-width: var(--p-form-field-filled-focus-indicator-width);
      background: var(--_line), var(--p-cascadeselect-filled-focus-background);
      outline-color: color-mix(in srgb, var(--p-cascadeselect-focus-ring-color) var(--p-form-field-filled-border-opacity), transparent);
    }
    &.p-state-disabled {
      background: var(--_line), var(--p-cascadeselect-disabled-background);
    }
  }
  .p-fluid .p-cascadeselect {
    display: flex;
    .p-cascadeselect-label {
      width: 1%;
    }
  }
}

/* packages/components/src/chip/chip.css */
@layer primefaces.components {
  .p-chip {
    display: inline-flex;
    align-items: center;
    gap: var(--p-chip-gap);
    background-color: var(--p-chip-background);
    color: var(--p-chip-color);
    border-radius: var(--p-chip-border-radius);
    padding-block: var(--p-chip-padding-y);
    padding-inline: var(--p-chip-padding-x);
    &:has(> .p-chip-remove-icon) {
      padding-inline-end: var(--p-chip-padding-y);
    }
    &.p-chip-image {
      padding-block: calc(var(--p-chip-padding-y) / 2);
    }
    .p-chip-text {
      margin: 0;
      line-height: var(--p-typography-line-height);
      font-size: var(--p-chip-label-font-size);
      font-weight: var(--p-chip-label-font-weight);
    }
    .p-chip-icon {
      margin: 0;
      line-height: 1;
      color: var(--p-chip-icon-color);
      font-size: var(--p-chip-icon-size);
      width: var(--p-chip-icon-size);
      height: var(--p-chip-icon-size);
      flex-shrink: 0;
    }
    img {
      border-radius: 50%;
      flex-shrink: 0;
      width: var(--p-chip-image-width);
      height: var(--p-chip-image-height);
      margin-block: 0;
      margin-inline: calc(-1 * var(--p-chip-padding-y)) 0;
    }
    .p-chip-remove-icon {
      --_icon: var(--p-chip-remove-icon);
      cursor: pointer;
      flex-shrink: 0;
      margin: 0;
      line-height: 1;
      color: var(--p-chip-remove-icon-color);
      font-size: var(--p-chip-remove-icon-size);
      width: var(--p-chip-remove-icon-size);
      height: var(--p-chip-remove-icon-size);
      border-radius: 50%;
      outline-color: transparent;
      transition: outline-color var(--p-chip-transition-duration), box-shadow var(--p-chip-transition-duration);
      &:focus-visible {
        outline: var(--p-chip-remove-icon-focus-ring-width) var(--p-chip-remove-icon-focus-ring-style) var(--p-chip-remove-icon-focus-ring-color);
        outline-offset: var(--p-chip-remove-icon-focus-ring-offset);
        box-shadow: var(--p-chip-remove-icon-focus-ring-shadow);
      }
    }
    &:has(> .p-chip-remove-icon:focus-visible) {
      background-color: var(--p-chip-focus-background);
    }
  }
}

/* packages/components/src/chips/chips.css */
@layer primefaces.components {
  .p-chips {
    --p-inputtext-background: var(--p-inputchips-background);
    --p-inputtext-disabled-background: var(--p-inputchips-disabled-background);
    --p-inputtext-filled-background: var(--p-inputchips-filled-background);
    --p-inputtext-filled-focus-background: var(--p-inputchips-filled-focus-background);
    --p-inputtext-border-color: var(--p-inputchips-border-color);
    --p-inputtext-hover-border-color: var(--p-inputchips-hover-border-color);
    --p-inputtext-focus-border-color: var(--p-inputchips-focus-border-color);
    --p-inputtext-invalid-border-color: var(--p-inputchips-invalid-border-color);
    --p-inputtext-color: var(--p-inputchips-color);
    --p-inputtext-disabled-color: var(--p-inputchips-disabled-color);
    --p-inputtext-placeholder-color: var(--p-inputchips-placeholder-color);
    --p-inputtext-shadow: var(--p-inputchips-shadow);
    --p-inputtext-padding-x: var(--p-inputchips-padding-x);
    --p-inputtext-padding-y: var(--p-inputchips-padding-y);
    --p-inputtext-border-radius: var(--p-inputchips-border-radius);
    --p-inputtext-focus-ring-width: var(--p-inputchips-focus-ring-width);
    --p-inputtext-focus-ring-style: var(--p-inputchips-focus-ring-style);
    --p-inputtext-focus-ring-color: var(--p-inputchips-focus-ring-color);
    --p-inputtext-focus-ring-offset: var(--p-inputchips-focus-ring-offset);
    --p-inputtext-focus-ring-shadow: var(--p-inputchips-focus-ring-shadow);
    --p-inputtext-transition-duration: var(--p-inputchips-transition-duration);
    box-shadow: none;
    cursor: pointer;
    display: inline-flex;
    position: relative;
    .p-chips-container {
      padding: calc(var(--p-inputchips-padding-y) / 2) var(--p-inputchips-padding-x);
      gap: calc(var(--p-inputchips-padding-y) / 2);
      .p-chips-token {
        padding: calc(var(--p-inputchips-padding-y) / 2) 0;
        margin: 0;
        background: var(--p-chip-background);
        color: var(--p-inputchips-chip-color);
        border-radius: var(--p-inputchips-chip-border-radius);
        transition: background var(--p-inputchips-transition-duration), color var(--p-inputchips-transition-duration);
        .p-chips-token-label {
          padding-block: 0;
          padding-inline: var(--p-chip-padding-x) calc(var(--p-chip-padding-x) + var(--p-chip-gap) + var(--p-chip-remove-icon-size));
          font-size: var(--p-chip-label-font-size);
          font-weight: var(--p-chip-label-font-weight);
        }
        .p-chips-chip-remove-icon {
          --_icon: var(--p-inputchips-chip-remove-icon);
        }
        .p-chips-token-icon {
          inset-inline-end: var(--p-chip-padding-x);
          margin-top: calc(-1 * var(--p-chip-remove-icon-size) / 2);
          font-size: var(--p-chip-remove-icon-size);
          color: var(--p-chip-remove-icon-color);
        }
      }
      .p-chips-input-token {
        margin: 0;
        padding: calc(var(--p-inputchips-padding-y) / 2) 0;
        input {
          font-family: inherit;
          font-size: var(--p-form-field-font-size);
          font-weight: var(--p-form-field-font-weight);
          line-height: var(--p-typography-line-height);
          color: var(--p-inputchips-color);
          appearance: none;
        }
        input::placeholder {
          color: var(--p-inputchips-placeholder-color);
        }
      }
      &.p-state-error .p-chips-input-token input::placeholder {
        color: var(--p-form-field-invalid-placeholder-color);
      }
      &.p-state-disabled .p-chips-input-token input {
        color: var(--p-inputchips-disabled-color);
      }
    }
  }
  .p-chips-container {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    clear: left;
    cursor: text;
    list-style-type: none;
    margin: 0;
    min-height: 1px;
    overflow: hidden;
  }
  .p-chips-token {
    cursor: default;
    display: inline-flex;
    align-items: center;
    flex: 0 0 auto;
    overflow: hidden;
    position: relative;
    .p-chips-token-label {
      display: block;
    }
    .p-chips-token-icon {
      cursor: pointer;
      position: absolute;
      top: 50%;
    }
  }
  .p-chips-input-token {
    display: inline-flex;
    align-items: center;
    flex: 1 1 4rem;
    min-width: 4rem;
    input {
      min-width: 0;
      background-color: transparent;
      border: 0 none;
      outline: 0 none;
      padding: 0;
      margin: 0;
      box-shadow: none;
      border-radius: 0;
      width: 100%;
    }
  }
  .p-fluid .p-chips {
    display: flex;
    flex: 1 1 auto;
    .p-chips-container {
      width: 100%;
    }
  }
}

/* packages/components/src/chronoline/chronoline.css */
@layer primefaces.components {
  .p-chronoline {
    display: flex;
    flex-grow: 1;
    flex-direction: column;
    .p-chronoline-event {
      min-height: var(--p-chronoline-event-min-height);
      &:last-child {
        min-height: 0;
      }
    }
    .p-chronoline-event-marker {
      align-items: center;
      justify-content: center;
      position: relative;
      border-width: var(--p-chronoline-event-marker-border-width);
      border-style: solid;
      border-color: var(--p-chronoline-event-marker-border-color);
      border-radius: var(--p-chronoline-event-marker-border-radius);
      width: var(--p-chronoline-event-marker-size);
      height: var(--p-chronoline-event-marker-size);
      background: var(--p-chronoline-event-marker-background);
      &::before {
        content: " ";
        border-radius: var(--p-chronoline-event-marker-content-border-radius);
        width: var(--p-chronoline-event-marker-content-size);
        height: var(--p-chronoline-event-marker-content-size);
        background: var(--p-chronoline-event-marker-content-background);
      }
      &::after {
        content: " ";
        position: absolute;
        width: 100%;
        height: 100%;
        border-radius: var(--p-chronoline-event-marker-border-radius);
        box-shadow: var(--p-chronoline-event-marker-content-inset-shadow);
      }
    }
    .p-chronoline-event-connector {
      background: var(--p-chronoline-event-connector-color);
    }
    &.p-chronoline-vertical {
      .p-chronoline-event-opposite,
      .p-chronoline-event-content {
        padding: var(--p-chronoline-vertical-event-content-padding);
      }
      .p-chronoline-event-connector {
        width: var(--p-chronoline-event-connector-size);
      }
    }
    &.p-chronoline-horizontal {
      .p-chronoline-event-opposite,
      .p-chronoline-event-content {
        padding: var(--p-chronoline-horizontal-event-content-padding);
      }
      .p-chronoline-event-connector {
        height: var(--p-chronoline-event-connector-size);
      }
    }
  }
  .p-chronoline-left {
    .p-chronoline-event-opposite {
      text-align: end;
    }
    .p-chronoline-event-content {
      text-align: start;
    }
  }
  .p-chronoline-right {
    .p-chronoline-event {
      flex-direction: row-reverse;
    }
    .p-chronoline-event-opposite {
      text-align: start;
    }
    .p-chronoline-event-content {
      text-align: end;
    }
  }
  .p-chronoline-vertical.p-chronoline-alternate .p-chronoline-event {
    &:nth-child(even) {
      flex-direction: row-reverse;
    }
    &:nth-child(odd) {
      .p-chronoline-event-opposite {
        text-align: end;
      }
      .p-chronoline-event-content {
        text-align: start;
      }
    }
    &:nth-child(even) {
      .p-chronoline-event-opposite {
        text-align: start;
      }
      .p-chronoline-event-content {
        text-align: end;
      }
    }
  }
  .p-chronoline-event {
    display: flex;
    position: relative;
  }
  .p-chronoline-event-opposite {
    flex: 1;
  }
  .p-chronoline-event-content {
    flex: 1;
  }
  .p-chronoline-event-separator {
    flex: 0;
    display: flex;
    align-items: center;
    flex-direction: column;
  }
  .p-chronoline-event-marker {
    display: flex;
    align-self: baseline;
  }
  .p-chronoline-event-connector {
    flex-grow: 1;
  }
  .p-chronoline-horizontal {
    flex-direction: row;
    .p-chronoline-event {
      flex-direction: column;
      flex: 1;
      &:last-child {
        flex: 0;
      }
    }
    .p-chronoline-event-separator {
      flex-direction: row;
    }
    .p-chronoline-event-connector {
      width: 100%;
    }
    &.p-chronoline-alternate .p-chronoline-event:nth-child(even) {
      flex-direction: column-reverse;
    }
  }
  .p-chronoline-bottom .p-chronoline-event {
    flex-direction: column-reverse;
  }
}

/* packages/components/src/columntoggler/columntoggler.css */
@layer primefaces.components {
  .p-columntoggler {
    padding: 0;
    position: absolute;
    overflow: auto;
    display: none;
    background: var(--p-columntoggler-background);
    color: var(--p-columntoggler-color);
    border: 1px solid var(--p-columntoggler-border-color);
    border-radius: var(--p-columntoggler-border-radius);
    box-shadow: var(--p-columntoggler-shadow);
    .p-columntoggler-close {
      display: none;
    }
    .p-columntoggler-close-icon {
      --_icon: var(--p-columntoggler-close-icon);
    }
    .p-columntoggler-items {
      display: flex;
      flex-direction: column;
      border: 0 none;
      margin: 0;
      list-style: none;
      padding: var(--p-columntoggler-list-padding);
      gap: var(--p-columntoggler-list-gap);
    }
    .p-columntoggler-item,
    .p-columntoggler-all {
      cursor: pointer;
      margin: 0;
      text-align: start;
      white-space: nowrap;
      display: flex;
      align-items: center;
      position: relative;
    }
    .p-columntoggler-item .p-chkbox,
    .p-columntoggler-all .p-chkbox {
      position: static;
      flex: 0 0 auto;
      margin: 0;
    }
    .p-columntoggler-item label,
    .p-columntoggler-all label {
      display: block;
      flex: 1 1 auto;
      padding: 0;
      cursor: pointer;
    }
    .p-columntoggler-items {
      .p-columntoggler-item {
        gap: var(--p-columntoggler-option-gap);
        padding: var(--p-columntoggler-option-padding);
        border: 0 none;
        background: transparent;
        color: var(--p-columntoggler-option-color);
        font-size: var(--p-columntoggler-option-font-size);
        font-weight: normal;
        border-radius: var(--p-columntoggler-option-border-radius);
        transition: background var(--p-columntoggler-transition-duration), color var(--p-columntoggler-transition-duration);
        &:hover,
        &:has(.p-chkbox-box.p-state-focus) {
          background: var(--p-columntoggler-option-focus-background);
          color: var(--p-columntoggler-option-focus-color);
        }
      }
      .p-columntoggler-all {
        gap: var(--p-columntoggler-option-gap);
        padding: var(--p-columntoggler-header-padding);
        background: transparent;
        color: var(--p-columntoggler-header-color);
        font-weight: var(--p-columntoggler-header-font-weight);
        border: 0 none;
        border-bottom: 1px solid var(--p-columntoggler-header-border-color);
        border-radius: 0;
      }
    }
  }
  @media only all {
    .p-columntoggler .p-columntoggler-item.p-column-p-1,
    .p-columntoggler .p-columntoggler-item.p-column-p-2,
    .p-columntoggler .p-columntoggler-item.p-column-p-3,
    .p-columntoggler .p-columntoggler-item.p-column-p-4,
    .p-columntoggler .p-columntoggler-item.p-column-p-5,
    .p-columntoggler .p-columntoggler-item.p-column-p-6 {
      display: none;
    }
    th.p-hidden,
    td.p-hidden {
      display: none;
    }
  }
  @media screen and (min-width: 20em) {
    .p-columntoggler .p-columntoggler-item.p-column-p-1 {
      display: flex;
    }
  }
  @media screen and (min-width: 30em) {
    .p-columntoggler .p-columntoggler-item.p-column-p-2 {
      display: flex;
    }
  }
  @media screen and (min-width: 40em) {
    .p-columntoggler .p-columntoggler-item.p-column-p-3 {
      display: flex;
    }
  }
  @media screen and (min-width: 50em) {
    .p-columntoggler .p-columntoggler-item.p-column-p-4 {
      display: flex;
    }
  }
  @media screen and (min-width: 60em) {
    .p-columntoggler .p-columntoggler-item.p-column-p-5 {
      display: flex;
    }
  }
  @media screen and (min-width: 70em) {
    .p-columntoggler .p-columntoggler-item.p-column-p-6 {
      display: flex;
    }
  }
}

/* packages/components/src/confirmpopup/confirmpopup.css */
@layer primefaces.components {
  .p-confirm-popup {
    position: absolute;
    display: none;
    margin-top: var(--p-confirmpopup-gutter);
    background: var(--p-confirmpopup-background);
    color: var(--p-confirmpopup-color);
    border: 1px solid var(--p-confirmpopup-border-color);
    border-radius: var(--p-confirmpopup-border-radius);
    box-shadow: var(--p-confirmpopup-shadow);
    &.p-confirm-popup-flipped {
      margin-top: 0;
      margin-bottom: var(--p-confirmpopup-gutter);
    }
    .p-confirm-popup-content {
      display: flex;
      align-items: center;
      background: transparent;
      color: inherit;
      border: 0 none;
      gap: var(--p-confirmpopup-content-gap);
      padding: var(--p-confirmpopup-content-padding);
    }
    .p-confirm-popup-icon {
      flex-shrink: 0;
      font-size: var(--p-confirmpopup-icon-size);
      color: var(--p-confirmpopup-icon-color);
    }
    .p-confirm-popup-message {
      margin: 0;
      color: var(--p-confirmpopup-message-color);
      font-size: var(--p-confirmpopup-message-font-size);
      font-weight: var(--p-confirmpopup-message-font-weight);
    }
    .p-confirm-popup-footer {
      background: transparent;
      color: inherit;
      border: 0 none;
      text-align: end;
      padding: var(--p-confirmpopup-footer-padding);
      button {
        margin: 0;
        margin-inline-end: var(--p-confirmpopup-footer-gap);
        width: auto;
        &:last-child {
          margin: 0;
        }
      }
    }
    &::after,
    &::before {
      content: " ";
      position: absolute;
      bottom: 100%;
      left: calc(var(--overlayArrowLeft, 0px) + var(--p-confirmpopup-arrow-offset));
      width: 0;
      height: 0;
      pointer-events: none;
    }
    &::after {
      border-width: calc(var(--p-confirmpopup-gutter) - 2px);
      margin-left: calc(-1 * (var(--p-confirmpopup-gutter) - 2px));
      border-style: solid;
      border-color: transparent;
      border-bottom-color: var(--p-confirmpopup-background);
    }
    &::before {
      border-width: var(--p-confirmpopup-gutter);
      margin-left: calc(-1 * var(--p-confirmpopup-gutter));
      border-style: solid;
      border-color: transparent;
      border-bottom-color: var(--p-confirmpopup-border-color);
    }
    &.p-confirm-popup-flipped {
      &::after,
      &::before {
        bottom: auto;
        top: 100%;
      }
      &::after {
        border-bottom-color: transparent;
        border-top-color: var(--p-confirmpopup-background);
      }
      &::before {
        border-bottom-color: transparent;
        border-top-color: var(--p-confirmpopup-border-color);
      }
    }
  }
}

/* packages/components/src/menu/contextmenu.css */
@layer primefaces.components {
  .p-touch-selection-disabled {
    -webkit-touch-callout: none;
    -webkit-user-select: none;
    user-select: none;
    -webkit-tap-highlight-color: transparent;
  }
  .p-menu.p-contextmenu {
    --_bg: var(--p-contextmenu-background);
    --_border-color: var(--p-contextmenu-border-color);
    --_border-radius: var(--p-contextmenu-border-radius);
    --_color: var(--p-contextmenu-color);
    --_shadow: var(--p-contextmenu-shadow);
    --_list-padding: var(--p-contextmenu-list-padding);
    --_list-gap: var(--p-contextmenu-list-gap);
    --_transition-duration: var(--p-contextmenu-transition-duration);
    --_item-border-radius: var(--p-contextmenu-item-border-radius);
    --_item-padding: var(--p-contextmenu-item-padding);
    --_item-gap: var(--p-contextmenu-item-gap);
    --_item-color: var(--p-contextmenu-item-color);
    --_item-focus-background: var(--p-contextmenu-item-focus-background);
    --_item-focus-color: var(--p-contextmenu-item-focus-color);
    --_item-active-background: var(--p-contextmenu-item-active-background);
    --_item-active-color: var(--p-contextmenu-item-active-color);
    --_item-icon-color: var(--p-contextmenu-item-icon-color);
    --_item-icon-focus-color: var(--p-contextmenu-item-icon-focus-color);
    --_item-icon-active-color: var(--p-contextmenu-item-icon-active-color);
    --_item-icon-size: var(--p-contextmenu-item-icon-size);
    --_item-label-font-size: var(--p-contextmenu-item-label-font-size);
    --_item-label-font-weight: var(--p-contextmenu-item-label-font-weight);
    --_submenu-icon-color: var(--p-contextmenu-submenu-icon-color);
    --_submenu-icon-focus-color: var(--p-contextmenu-submenu-icon-focus-color);
    --_submenu-icon-size: var(--p-contextmenu-submenu-icon-size);
    --_submenu-icon-active-color: var(--p-contextmenu-submenu-icon-active-color);
    --_separator-border-color: var(--p-contextmenu-separator-border-color);
    --_submenu-label-background: var(--p-contextmenu-submenu-label-background);
    --_submenu-label-color: var(--p-contextmenu-submenu-label-color);
    --_submenu-label-font-size: var(--p-contextmenu-submenu-label-font-size);
    --_submenu-label-font-weight: var(--p-contextmenu-submenu-label-font-weight);
    --_submenu-label-padding: var(--p-contextmenu-submenu-label-padding);
    --_submenu-background: var(--p-contextmenu-background);
    --_submenu-border-color: var(--p-contextmenu-border-color);
    --_submenu-border-radius: var(--p-contextmenu-border-radius);
    --_submenu-padding: var(--p-contextmenu-list-padding);
    --_submenu-shadow: var(--p-contextmenu-shadow);
  }
}

/* packages/components/src/dashboard/dashboard.css */
@layer primefaces.components {
  .p-dashboard-column {
    float: left;
    padding-bottom: 100px;
  }
  .p-dashboard-column .p-panel-titlebar,
  .p-dashboard-panel .p-panel-titlebar {
    cursor: move;
  }
  .p-dashboard {
    &::after {
      content: "";
      display: table;
      clear: both;
    }
    .p-dashboard-column {
      padding-inline-end: var(--p-dashboard-gap);
      > .p-panel,
      > .p-sortable-placeholder {
        margin-bottom: var(--p-dashboard-gap);
      }
    }
    &.p-state-disabled .p-panel-titlebar {
      cursor: default;
    }
    .p-sortable-placeholder {
      background: var(--p-dashboard-placeholder-background);
      border: 1px dashed var(--p-dashboard-placeholder-border-color);
      border-radius: var(--p-dashboard-placeholder-border-radius);
    }
  }
}

/* packages/components/src/datagrid/datagrid.css */
@layer primefaces.components {
  .p-datagrid {
    .p-datagrid-header {
      text-align: center;
      background: var(--p-dataview-header-background);
      color: var(--p-dataview-header-color);
      padding: var(--p-dataview-header-padding);
      font-weight: var(--p-dataview-header-font-weight);
      border: 1px solid var(--p-dataview-header-border-color);
      border-width: var(--p-dataview-header-border-width);
      border-radius: var(--p-dataview-header-border-radius);
    }
    .p-datagrid-footer {
      text-align: center;
      background: var(--p-dataview-footer-background);
      color: var(--p-dataview-footer-color);
      padding: var(--p-dataview-footer-padding);
      font-weight: var(--p-dataview-footer-font-weight);
      border: 1px solid var(--p-dataview-footer-border-color);
      border-width: var(--p-dataview-footer-border-width);
      border-radius: var(--p-dataview-footer-border-radius);
    }
    .p-datagrid-content {
      border: 1px solid var(--p-dataview-content-border-color);
      border-width: var(--p-dataview-content-border-width);
      border-radius: var(--p-dataview-content-border-radius);
      background: var(--p-dataview-content-background);
      color: var(--p-dataview-content-color);
      padding: var(--p-dataview-content-padding);
      &.p-datagrid-content-empty {
        padding: var(--p-dataview-empty-message-padding);
        color: var(--p-dataview-empty-message-color);
      }
    }
    .p-paginator {
      text-align: center;
      padding: var(--p-paginator-padding);
      &.p-paginator-top {
        border-style: solid;
        border-color: var(--p-dataview-paginator-top-border-color);
        border-width: var(--p-dataview-paginator-top-border-width);
        border-radius: 0;
      }
      &.p-paginator-bottom {
        border-style: solid;
        border-color: var(--p-dataview-paginator-bottom-border-color);
        border-width: var(--p-dataview-paginator-bottom-border-width);
        border-radius: 0;
      }
    }
  }
  .p-datagrid-data {
    width: 100%;
  }
  .p-datagrid-column {
    padding: var(--p-dataview-grid-column-padding);
  }
}

/* packages/components/src/datalist/datalist.css */
@layer primefaces.components {
  .p-datalist {
    .p-datalist-header {
      text-align: center;
      background: var(--p-dataview-header-background);
      color: var(--p-dataview-header-color);
      padding: var(--p-dataview-header-padding);
      font-weight: var(--p-dataview-header-font-weight);
      border: 1px solid var(--p-dataview-header-border-color);
      border-width: var(--p-dataview-header-border-width);
      border-radius: var(--p-dataview-header-border-radius);
    }
    .p-datalist-footer {
      text-align: center;
      background: var(--p-dataview-footer-background);
      color: var(--p-dataview-footer-color);
      padding: var(--p-dataview-footer-padding);
      font-weight: var(--p-dataview-footer-font-weight);
      border: 1px solid var(--p-dataview-footer-border-color);
      border-width: var(--p-dataview-footer-border-width);
      border-radius: var(--p-dataview-footer-border-radius);
    }
    .p-datalist-content {
      border: 1px solid var(--p-dataview-content-border-color);
      border-width: var(--p-dataview-content-border-width);
      border-radius: var(--p-dataview-content-border-radius);
      background: var(--p-dataview-content-background);
      color: var(--p-dataview-content-color);
      padding: var(--p-dataview-content-padding);
    }
    .p-datalist-nobullets {
      list-style-type: none;
    }
    .p-datalist-empty-message {
      padding: var(--p-dataview-empty-message-padding);
      color: var(--p-dataview-empty-message-color);
    }
    .p-paginator {
      padding: var(--p-paginator-padding);
      &.p-paginator-top {
        border-style: solid;
        border-color: var(--p-dataview-paginator-top-border-color);
        border-width: var(--p-dataview-paginator-top-border-width);
        border-radius: 0;
      }
      &.p-paginator-bottom {
        border-style: solid;
        border-color: var(--p-dataview-paginator-bottom-border-color);
        border-width: var(--p-dataview-paginator-bottom-border-width);
        border-radius: 0;
      }
    }
  }
}

/* packages/components/src/datascroller/datascroller.css */
@layer primefaces.components {
  .p-datascroller {
    .p-datascroller-header {
      text-align: center;
      background: var(--p-dataview-header-background);
      color: var(--p-dataview-header-color);
      padding: var(--p-dataview-header-padding);
      font-weight: var(--p-dataview-header-font-weight);
      border: 1px solid var(--p-dataview-header-border-color);
      border-width: var(--p-dataview-header-border-width);
      border-radius: var(--p-dataview-header-border-radius);
    }
    .p-datascroller-content {
      border: 1px solid var(--p-dataview-content-border-color);
      border-width: var(--p-dataview-content-border-width);
      border-radius: var(--p-dataview-content-border-radius);
      background: var(--p-dataview-content-background);
      color: var(--p-dataview-content-color);
      padding: var(--p-dataview-content-padding);
    }
    .p-datascroller-list {
      list-style-type: none;
      margin: 0;
      padding: 0;
    }
    .p-datascroller-item {
      border: 1px solid var(--p-dataview-item-border-color);
      border-width: 0 0 1px 0;
      &:last-child {
        border-bottom-width: 0;
      }
    }
    .p-datascroller-content > .p-datascroller-list > .p-datascroller-item {
      --_enter-offset: var(--p-dataview-content-enter-offset);
      animation: p-enter var(--p-dataview-content-enter-duration) var(--p-transition-easing-enter);
    }
    .p-datascroller-virtualscroll-wrapper {
      position: relative;
      .p-datascroller-list {
        top: 0;
        left: 0;
        position: absolute;
      }
    }
    .p-datascroller-loader:not(:empty) {
      display: flex;
      justify-content: center;
      align-items: center;
      padding: var(--p-dataview-loader-padding);
    }
    .p-datascroller-loading-icon {
      --_icon: var(--p-dataview-loading-icon);
    }
    .p-datascroller-loading .p-datascroller-loading-default {
      display: block;
      width: var(--p-dataview-loading-icon-size);
      height: var(--p-dataview-loading-icon-size);
      margin: 0 auto;
      padding: 0;
      font-size: var(--p-dataview-loading-icon-size);
      color: var(--p-dataview-loading-icon-color);
      animation: p-spin var(--p-dataview-loading-icon-animation-duration) linear infinite;
    }
  }
  .p-datascroller-inline .p-datascroller-content {
    overflow: auto;
  }
}

/* packages/components/src/datatable/datatable.css */
@layer primefaces.components {
  .p-datatable {
    .p-datatable-header {
      background: var(--p-datatable-header-background);
      color: var(--p-datatable-header-color);
      border: 1px solid var(--p-datatable-header-border-color);
      border-width: var(--p-datatable-header-border-width);
      padding: var(--p-datatable-header-padding);
      font-weight: var(--p-datatable-header-font-weight);
      text-align: start;
      border-start-start-radius: var(--p-content-border-radius);
      border-start-end-radius: var(--p-content-border-radius);
    }
    .p-datatable-footer {
      background: var(--p-datatable-footer-background);
      color: var(--p-datatable-footer-color);
      border: 1px solid var(--p-datatable-footer-border-color);
      border-width: var(--p-datatable-footer-border-width);
      padding: var(--p-datatable-footer-padding);
      font-weight: var(--p-datatable-footer-font-weight);
      text-align: start;
      border-end-start-radius: var(--p-content-border-radius);
      border-end-end-radius: var(--p-content-border-radius);
    }
    .p-paginator {
      padding: var(--p-paginator-padding);
      &.p-paginator-top {
        border-style: solid;
        border-color: var(--p-datatable-paginator-top-border-color);
        border-width: var(--p-datatable-paginator-top-border-width);
        border-radius: 0;
      }
      &.p-paginator-bottom {
        border-style: solid;
        border-color: var(--p-datatable-paginator-bottom-border-color);
        border-width: var(--p-datatable-paginator-bottom-border-width);
        border-radius: 0;
      }
    }
    table {
      width: 100%;
      table-layout: fixed;
      border-collapse: collapse;
    }
    thead th,
    tbody td,
    tbody th,
    tfoot td,
    tfoot th {
      overflow: hidden;
      border-style: solid;
    }
    thead th {
      background: var(--p-datatable-header-cell-background);
      color: var(--p-datatable-header-cell-color);
      padding: var(--p-datatable-header-cell-padding);
      border: 1px solid var(--p-datatable-header-cell-border-color);
      border-width: 0 0 1px 0;
      font-weight: normal;
      text-align: start;
      box-sizing: content-box;
      outline-color: transparent;
      transition:
        background var(--p-datatable-transition-duration),
        color var(--p-datatable-transition-duration),
        border-color var(--p-datatable-transition-duration),
        outline-color var(--p-datatable-transition-duration),
        box-shadow var(--p-datatable-transition-duration);
      .p-column-title {
        font-weight: var(--p-datatable-column-title-font-weight);
        font-size: var(--p-datatable-column-title-font-size);
        vertical-align: middle;
      }
      .p-sortable-column-icon {
        display: inline-block;
        vertical-align: middle;
        margin: 0;
        margin-inline-start: var(--p-datatable-header-cell-gap);
        color: var(--p-datatable-sort-icon-color);
        font-size: var(--p-datatable-sort-icon-size);
        transition: color var(--p-datatable-transition-duration);
        &.p-datatable-sort-icon {
          --_icon: var(--p-datatable-sort-icon);
        }
        &.p-datatable-sort-asc-icon {
          --_icon: var(--p-datatable-sort-asc-icon);
        }
        &.p-datatable-sort-desc-icon {
          --_icon: var(--p-datatable-sort-desc-icon);
        }
      }
      .p-sortable-column-badge {
        border-radius: var(--p-badge-border-radius);
        padding: var(--p-badge-padding);
        height: var(--p-badge-height);
        min-width: var(--p-badge-min-width);
        line-height: var(--p-badge-height);
        color: var(--p-badge-primary-color);
        background: var(--p-badge-primary-background);
        margin-inline-start: var(--p-datatable-header-cell-gap);
        font-size: var(--p-badge-font-size);
        font-weight: var(--p-badge-font-weight);
        text-align: center;
        vertical-align: middle;
      }
      &.p-sortable-column.p-state-focus,
      &.p-sortable-column:focus-visible {
        outline: var(--p-datatable-header-cell-focus-ring-width) var(--p-datatable-header-cell-focus-ring-style) var(--p-datatable-header-cell-focus-ring-color);
        outline-offset: var(--p-datatable-header-cell-focus-ring-offset);
        box-shadow: var(--p-datatable-header-cell-focus-ring-shadow);
      }
      &.p-state-hover {
        background: var(--p-datatable-header-cell-hover-background);
        color: var(--p-datatable-header-cell-hover-color);
        .p-sortable-column-icon {
          color: var(--p-datatable-sort-icon-hover-color);
        }
      }
    }
    thead th.p-state-active {
      &,
      &.p-state-hover {
        background: var(--p-datatable-header-cell-selected-background);
        color: var(--p-datatable-header-cell-selected-color);
      }
      .p-sortable-column-icon {
        color: var(--p-datatable-header-cell-selected-color);
      }
    }
    .p-sortable-column {
      cursor: pointer;
      -webkit-user-select: none;
      user-select: none;
    }
    .p-sortable-column-badge {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      vertical-align: middle;
      &.p-hidden {
        display: none;
      }
    }
    .p-column-filter {
      display: block;
      box-sizing: border-box;
      width: 100%;
      margin: var(--p-datatable-column-filter-gap) auto auto auto;
    }
    .p-column-filter .p-inputfield,
    .p-column-customfilter .p-inputfield,
    .p-column-customfilter .p-selectonemenu {
      width: 100%;
      max-width: 100%;
    }
    .p-column-customfilter {
      margin: var(--p-datatable-column-filter-gap) auto auto auto;
    }
    &.p-filter-toggleable thead :is(.p-column-filter, .p-column-customfilter) {
      display: none;
    }
    tbody.p-datatable-data {
      outline: 0;
      &:focus-visible {
        outline: var(--p-datatable-row-focus-ring-width) var(--p-datatable-row-focus-ring-style) var(--p-datatable-row-focus-ring-color);
        outline-offset: calc(-1 * var(--p-datatable-row-focus-ring-width));
      }
    }
    tr.p-state-highlight {
      cursor: pointer;
    }
    .p-datatable-data tr.p-state-hover {
      cursor: pointer;
    }
    .p-datatable-data > tr {
      background: var(--p-datatable-row-background);
      color: var(--p-datatable-row-color);
      outline-color: transparent;
      transition:
        background var(--p-datatable-transition-duration),
        color var(--p-datatable-transition-duration),
        border-color var(--p-datatable-transition-duration),
        outline-color var(--p-datatable-transition-duration),
        box-shadow var(--p-datatable-transition-duration);
      > td,
      > th {
        padding: var(--p-datatable-body-cell-padding);
        border: 1px solid var(--p-datatable-body-cell-border-color);
        border-width: 0 0 1px 0;
        font-size: var(--p-datatable-body-cell-font-size);
        font-weight: var(--p-datatable-body-cell-font-weight);
        text-align: start;
      }
      &.p-datatable-empty-message > td {
        color: var(--p-datatable-empty-message-color);
      }
      > td.p-datatable-subtable-header {
        background: var(--p-datatable-subtable-header-background);
        border: 1px solid var(--p-datatable-subtable-header-border-color);
        border-width: 0 0 1px 0;
        color: var(--p-datatable-subtable-header-color);
        font-weight: var(--p-datatable-subtable-header-font-weight);
      }
      > td.p-datatable-subtable-footer {
        background: var(--p-datatable-footer-cell-background);
        color: var(--p-datatable-footer-cell-color);
        font-weight: var(--p-datatable-column-footer-font-weight);
      }
      &.p-state-hover {
        background: var(--p-datatable-row-hover-background);
        color: var(--p-datatable-row-hover-color);
      }
      &.p-state-highlight {
        background: var(--p-datatable-row-selected-background);
        color: var(--p-datatable-row-selected-color);
        .p-row-toggler,
        .p-row-editor > a {
          color: var(--p-datatable-row-selected-color);
        }
        .p-row-toggler.p-icon:hover,
        .p-row-editor > a:hover {
          background: var(--p-datatable-row-toggle-button-selected-hover-background);
          color: var(--p-datatable-row-toggle-button-selected-hover-color);
        }
      }
      &.p-state-highlight > td,
      &.p-state-highlight > th,
      &:has(+ tr.p-state-highlight) > td,
      &:has(+ tr.p-state-highlight) > th {
        border-bottom-color: var(--p-datatable-body-cell-selected-border-color);
      }
      &.p-datatable-selectable {
        cursor: pointer;
        > .p-grouped-column {
          background: var(--p-datatable-row-background);
          color: var(--p-datatable-row-color);
          cursor: default;
        }
      }
      &.p-rowgroup-header {
        background: var(--p-datatable-row-group-header-background);
        color: var(--p-datatable-row-group-header-color);
        font-weight: var(--p-datatable-row-group-header-font-weight);
      }
      &.p-datatable-summaryrow {
        background: var(--p-datatable-summary-row-background);
        color: var(--p-datatable-summary-row-color);
        font-weight: var(--p-datatable-summary-row-font-weight);
      }
      &.p-datatable-rowordering {
        background: var(--p-datatable-row-selected-background);
      }
    }
    .p-row-toggler {
      cursor: pointer;
    }
    .p-cell-editor-input {
      display: none;
    }
    .p-row-editing {
      .p-cell-editor .p-cell-editor-output {
        display: none;
      }
      .p-cell-editor .p-cell-editor-input {
        display: block;
      }
      .p-row-editor .p-row-editor-pencil {
        display: none;
      }
      .p-row-editor .p-row-editor-check,
      .p-row-editor .p-row-editor-close {
        display: inline-flex;
      }
    }
    .p-row-editor {
      span {
        cursor: pointer;
      }
      .p-row-editor-pencil {
        display: inline-flex;
      }
      .p-row-editor-check,
      .p-row-editor-close {
        display: none;
      }
    }
    .p-datatable-data tr.p-row-editing td.p-editable-column,
    .p-datatable-data tr.p-row-editing th.p-editable-column,
    .p-datatable-data td.p-cell-editing,
    .p-datatable-data th.p-cell-editing {
      padding-top: 0;
      padding-bottom: 0;
      margin-top: 0;
      margin-bottom: 0;
    }
    .p-row-editor {
      display: inline-flex;
      align-items: center;
      vertical-align: middle;
    }
    .p-datatable-data > tr .p-row-toggler.p-icon,
    .p-datatable-data > tr .p-rowgroup-toggler .p-rowgroup-toggler-icon {
      display: inline-flex;
    }
    .p-datatable-data > tr .p-row-editor > a,
    .p-datatable-data > tr .p-row-toggler.p-icon,
    .p-datatable-data > tr .p-rowgroup-toggler .p-rowgroup-toggler-icon {
      align-items: center;
      justify-content: center;
      vertical-align: middle;
      width: var(--p-datatable-row-toggle-button-size);
      height: var(--p-datatable-row-toggle-button-size);
      background: transparent;
      color: var(--p-datatable-row-toggle-button-color);
      border: 0 none;
      border-radius: var(--p-datatable-row-toggle-button-border-radius);
      text-align: center;
      text-decoration: none;
      padding: 0;
      -webkit-user-select: none;
      user-select: none;
      outline-color: transparent;
      transition:
        background var(--p-datatable-transition-duration),
        color var(--p-datatable-transition-duration),
        outline-color var(--p-datatable-transition-duration),
        box-shadow var(--p-datatable-transition-duration);
    }
    .p-datatable-data > tr {
      .p-row-toggler:not(.p-icon) {
        color: var(--p-primary-color);
      }
      .p-row-editor > a:hover,
      .p-row-toggler.p-icon:hover,
      .p-rowgroup-toggler .p-rowgroup-toggler-icon:hover {
        background: var(--p-datatable-row-toggle-button-hover-background);
        color: var(--p-datatable-row-toggle-button-hover-color);
        border-color: transparent;
      }
      .p-row-editor > a:focus-visible,
      .p-row-editor > a.p-row-editor-outline,
      .p-row-toggler:focus-visible,
      .p-rowgroup-toggler:focus-visible .p-rowgroup-toggler-icon,
      .p-rowgroup-toggler .p-rowgroup-toggler-icon:focus-visible {
        outline: var(--p-datatable-row-toggle-button-focus-ring-width) var(--p-datatable-row-toggle-button-focus-ring-style) var(--p-datatable-row-toggle-button-focus-ring-color);
        outline-offset: var(--p-datatable-row-toggle-button-focus-ring-offset);
        box-shadow: var(--p-datatable-row-toggle-button-focus-ring-shadow);
      }
      .p-rowgroup-toggler {
        margin-inline-end: var(--p-datatable-header-cell-gap);
        &:focus-visible {
          outline: 0 none;
        }
      }
      .p-row-editor {
        > a.p-row-editor-check {
          margin-inline-end: var(--p-datatable-header-cell-gap);
        }
        .p-datatable-row-edit-icon {
          --_icon: var(--p-datatable-row-edit-icon);
        }
        .p-datatable-row-save-icon {
          --_icon: var(--p-datatable-row-save-icon);
        }
        .p-datatable-row-cancel-icon {
          --_icon: var(--p-datatable-row-cancel-icon);
        }
      }
      .p-datatable-row-toggle-icon {
        --_icon: var(--p-datatable-row-toggle-expanded-icon);
      }
      .p-row-toggler.p-datatable-row-toggle-icon[aria-expanded=false],
      .p-rowgroup-toggler[aria-expanded=false] > .p-datatable-row-toggle-icon {
        --_icon: var(--p-datatable-row-toggle-collapsed-icon);
        &:dir(rtl) {
          transform: rotate(180deg);
        }
      }
    }
    .p-rowgroup-header {
      > td > a.p-rowgroup-toggler {
        display: inline-flex;
        vertical-align: middle;
        position: relative;
        padding: 0;
      }
      .p-rowgroup-toggler-icon {
        position: static;
        margin: 0;
      }
    }
    .p-datatable-data > tr.p-expanded-row-content {
      background: var(--p-datatable-row-background);
      color: var(--p-datatable-row-color);
    }
    .p-column-resizer {
      position: absolute;
      top: 0;
      inset-inline-end: 0;
      margin: 0;
      width: var(--p-datatable-column-resizer-width);
      height: 100%;
      padding: 0;
      cursor: col-resize;
      border: 1px solid transparent;
      box-sizing: border-box;
    }
    .p-column-resizer-helper {
      width: var(--p-datatable-resize-indicator-width);
      position: absolute;
      z-index: 10;
      display: none;
      background: var(--p-datatable-resize-indicator-color);
    }
    tfoot td,
    tfoot th {
      background: var(--p-datatable-footer-cell-background);
      border: 1px solid var(--p-datatable-footer-cell-border-color);
      border-width: 0 0 1px 0;
      color: var(--p-datatable-footer-cell-color);
      padding: var(--p-datatable-footer-cell-padding);
      font-weight: var(--p-datatable-column-footer-font-weight);
      font-size: var(--p-datatable-column-footer-font-size);
      text-align: start;
      box-sizing: content-box;
    }
    > .p-datatable-column-reorder-top-icon,
    > .p-datatable-column-reorder-bottom-icon {
      color: var(--p-datatable-drop-point-color);
    }
    > .p-datatable-column-reorder-top-icon {
      --_icon: var(--p-datatable-column-reorder-top-icon);
      visibility: hidden;
    }
    > .p-datatable-column-reorder-bottom-icon {
      --_icon: var(--p-datatable-column-reorder-bottom-icon);
      padding-top: var(--p-datatable-drop-point-offset);
    }
    .p-datatable-scrollable-body {
      min-height: 0%;
      outline: 0 none;
    }
    .p-datatable-scrollable-header {
      background: var(--p-datatable-header-cell-background);
    }
    .p-datatable-scrollable-footer {
      background: var(--p-datatable-footer-cell-background);
    }
    .p-datatable-virtualscroll-wrapper {
      position: relative;
    }
    .p-datatable-virtualscroll-table {
      top: 0;
      left: 0;
      position: absolute;
    }
    .p-selection-column .p-chkbox-all {
      display: inline-flex;
      vertical-align: middle;
      margin: 0;
      width: var(--p-checkbox-width);
      height: var(--p-checkbox-height);
    }
    table.p-datatable-fs {
      width: auto;
    }
    .p-datatable-frozenlayout-left,
    .p-datatable-frozenlayout-right {
      padding: 0;
      border: 0 none;
      vertical-align: top;
    }
    .p-datatable-frozen-container {
      margin-inline-end: -1px;
      .p-row-toggler {
        margin-top: -2px;
        margin-bottom: -2px;
      }
      .p-row-editor {
        margin-top: -2px;
        margin-bottom: -2px;
      }
    }
    &.p-datatable-striped .p-datatable-data > tr.p-datatable-odd {
      background: var(--p-datatable-row-striped-background);
      &.p-state-hover {
        background: var(--p-datatable-row-hover-background);
        color: var(--p-datatable-row-hover-color);
      }
      &.p-state-highlight {
        background: var(--p-datatable-row-selected-background);
        color: var(--p-datatable-row-selected-color);
      }
    }
    &.p-datatable-sm {
      .p-datatable-header {
        padding: var(--p-datatable-header-sm-padding);
      }
      thead > tr > th {
        padding: var(--p-datatable-header-cell-sm-padding);
      }
      .p-datatable-data > tr > td,
      .p-datatable-data > tr > th {
        padding: var(--p-datatable-body-cell-sm-padding);
      }
      tfoot > tr > td {
        padding: var(--p-datatable-footer-cell-sm-padding);
      }
      .p-datatable-footer {
        padding: var(--p-datatable-footer-sm-padding);
      }
    }
    &.p-datatable-lg {
      .p-datatable-header {
        padding: var(--p-datatable-header-lg-padding);
      }
      thead > tr > th {
        padding: var(--p-datatable-header-cell-lg-padding);
      }
      .p-datatable-data > tr > td,
      .p-datatable-data > tr > th {
        padding: var(--p-datatable-body-cell-lg-padding);
      }
      tfoot > tr > td {
        padding: var(--p-datatable-footer-cell-lg-padding);
      }
      .p-datatable-footer {
        padding: var(--p-datatable-footer-lg-padding);
      }
    }
    &.p-datatable-sm .p-datatable-scrollable-theadclone > tr > th,
    &.p-datatable-lg .p-datatable-scrollable-theadclone > tr > th {
      padding-top: 0;
      padding-bottom: 0;
    }
    &.p-datatable-gridlines {
      .p-datatable-header {
        border-width: 1px 1px 0 1px;
      }
      .p-datatable-footer {
        border-width: 0 1px 1px 1px;
      }
      .p-paginator {
        &.p-paginator-top {
          border-width: 1px 1px 0 1px;
        }
        &.p-paginator-bottom {
          border-width: 0 1px 1px 1px;
        }
      }
      thead > tr > th,
      .p-datatable-data > tr > td,
      .p-datatable-data > tr > th,
      tfoot > tr > td {
        border-width: 1px;
      }
      .p-datatable-scrollable-theadclone > tr > th {
        padding-top: 0;
        padding-bottom: 0;
        border-bottom: 0 none;
        border-top: 0 none;
      }
    }
    &.p-datatable-sticky {
      &.p-sticky {
        box-shadow: var(--p-overlay-select-shadow);
      }
      > table {
        > thead {
          background: var(--p-datatable-header-cell-background);
        }
        > tfoot {
          background: var(--p-datatable-footer-cell-background);
        }
      }
    }
  }
  .p-datatable-tablewrapper {
    overflow: auto;
  }
  .p-datatable-summary {
    display: none;
  }
  .p-datatable-scrollable-body {
    overflow: auto;
  }
  .p-datatable-scrollable-header,
  .p-datatable-scrollable-footer {
    overflow: hidden;
    border: 0 none;
  }
  .p-datatable-scrollable {
    .p-datatable-scrollable-header,
    .p-datatable-scrollable-footer {
      position: relative;
    }
    .p-datatable-scrollable-header td {
      font-weight: normal;
    }
  }
  .p-datatable-scrollable-theadclone {
    height: 0;
    tr {
      height: 0;
    }
    th {
      &.p-state-default {
        height: 0 !important;
        border-bottom-width: 0;
        border-top-width: 0;
        padding-top: 0;
        padding-bottom: 0;
        outline: 0 none;
      }
      span.p-column-title {
        display: block;
        height: 0;
      }
    }
  }
  .p-datatable-resizable {
    padding-bottom: 1px;
    overflow: auto;
    thead th,
    tbody td,
    tbody th,
    tfoot td {
      white-space: nowrap;
    }
    th.p-resizable-column {
      background-clip: padding-box;
      position: relative;
    }
  }
  .p-datatable-rtl {
    direction: rtl;
  }
  .p-datatable-frozen-container .p-datatable-scrollable-body {
    overflow: hidden;
  }
  .p-datatable-frozenlayout-right .p-datatable-empty-message td {
    text-indent: -9999px;
    > * {
      visibility: hidden;
    }
  }
  .p-datatable-data td[role=gridcell]:focus,
  .p-datatable-data th[role=rowheader]:focus,
  .p-datatable-data td[role=grid] [tabindex="0"]:focus {
    outline: var(--p-datatable-row-focus-ring-width) var(--p-datatable-row-focus-ring-style) var(--p-datatable-row-focus-ring-color);
    outline-offset: var(--p-datatable-row-focus-ring-offset);
    box-shadow: var(--p-datatable-row-focus-ring-shadow);
  }
  .p-datatable-reflow {
    .p-datatable-data td[role=gridcell] .p-column-title,
    .p-datatable-data th[role=rowheader] .p-column-title,
    .p-expanded-row-content td .p-column-title {
      display: none;
    }
    .p-reflow-label,
    .p-reflow-dropdown {
      margin-bottom: var(--p-datatable-reflow-gap);
      display: none;
    }
    .p-reflow-dropdown {
      font-family: inherit;
      font-size: var(--p-select-font-size);
      padding-block: var(--p-select-padding-y);
      padding-inline: var(--p-select-padding-x);
      color: var(--p-select-color);
      background: var(--p-select-background);
      border: 1px solid var(--p-select-border-color);
      border-radius: var(--p-select-border-radius);
      outline-color: transparent;
      &:hover {
        border-color: var(--p-select-hover-border-color);
      }
      &:focus-visible {
        border-color: var(--p-select-focus-border-color);
        outline: var(--p-select-focus-ring-width) var(--p-select-focus-ring-style) var(--p-select-focus-ring-color);
        outline-offset: var(--p-select-focus-ring-offset);
        box-shadow: var(--p-select-focus-ring-shadow);
      }
    }
  }
  @media (max-width: 640px) {
    .p-datatable-reflow thead th,
    .p-datatable-reflow tfoot td {
      display: none;
    }
    .p-datatable-reflow {
      thead th.p-filter-column {
        box-sizing: border-box;
        display: block;
        float: inline-start;
        clear: inline-start;
        width: 100% !important;
        border: 0 none;
        text-align: start;
        .p-column-title {
          display: block;
          font-weight: var(--p-datatable-reflow-title-font-weight);
          margin: 0 0 var(--p-datatable-reflow-gap) 0;
          padding: 0;
        }
        .p-sortable-column-icon,
        .p-sortable-column-badge,
        .p-column-resizer {
          display: none;
        }
        .p-column-filter,
        .p-column-customfilter {
          display: block;
          box-sizing: border-box;
          width: 100% !important;
          margin: 0;
        }
      }
      &.p-filter-toggleable thead th.p-filter-column :is(.p-column-filter, .p-column-customfilter) {
        display: none;
      }
      .p-datatable-data {
        td[role=gridcell]:not(.p-hidden),
        th[role=rowheader]:not(.p-hidden) {
          box-sizing: border-box;
          clear: inline-start;
          float: inline-start;
          border: 0 none;
          display: block;
          text-align: start !important;
          width: 100% !important;
        }
        &.p-component-content {
          border: 0 none;
        }
        tr.p-component-content {
          border-left: 0 none;
          border-right: 0 none;
        }
        td[role=gridcell] .p-column-title,
        th[role=rowheader] .p-column-title {
          display: inline-block;
          font-weight: var(--p-datatable-reflow-title-font-weight);
          margin: 0;
          margin-inline-end: var(--p-datatable-reflow-gap);
          min-width: 30%;
          max-width: 35%;
          padding: 0;
        }
        tr {
          border-bottom: 1px solid var(--p-datatable-body-cell-border-color);
          &:hover,
          &.p-state-highlight {
            border-left: 0 none;
            border-right: 0 none;
            border-bottom: 1px solid var(--p-datatable-body-cell-border-color);
          }
          &.p-expanded-row-content > td {
            display: block;
            width: 100%;
          }
        }
      }
      .p-reflow-label,
      .p-reflow-dropdown {
        display: inline-block;
      }
      .p-reflow-dropdown {
        margin-inline-start: var(--p-datatable-reflow-gap);
      }
      tr.p-datatable-empty-message > td {
        display: block;
        border: 0 none;
      }
    }
  }
}

/* packages/components/src/dataview/dataview.css */
@layer primefaces.components {
  .p-dataview {
    position: relative;
    border: 1px solid var(--p-dataview-border-color);
    border-width: var(--p-dataview-border-width);
    border-radius: var(--p-dataview-border-radius);
    padding: var(--p-dataview-padding);
    .p-paginator {
      &.p-paginator-top {
        border-style: solid;
        border-color: var(--p-dataview-paginator-top-border-color);
        border-width: var(--p-dataview-paginator-top-border-width);
        border-radius: 0;
      }
      &.p-paginator-bottom {
        border-style: solid;
        border-color: var(--p-dataview-paginator-bottom-border-color);
        border-width: var(--p-dataview-paginator-bottom-border-width);
        border-radius: 0;
      }
    }
    .p-dataview-header {
      display: flow-root;
      text-align: center;
      background: var(--p-dataview-header-background);
      color: var(--p-dataview-header-color);
      padding: var(--p-dataview-header-padding);
      font-weight: var(--p-dataview-header-font-weight);
      border: 1px solid var(--p-dataview-header-border-color);
      border-width: var(--p-dataview-header-border-width);
      border-radius: var(--p-dataview-header-border-radius);
      .p-dataview-layout-options {
        float: inline-end;
      }
    }
    .p-dataview-footer {
      text-align: center;
      background: var(--p-dataview-footer-background);
      color: var(--p-dataview-footer-color);
      border: 1px solid var(--p-dataview-footer-border-color);
      border-width: var(--p-dataview-footer-border-width);
      padding: var(--p-dataview-footer-padding);
      font-weight: var(--p-dataview-footer-font-weight);
      border-radius: var(--p-dataview-footer-border-radius);
    }
    .p-dataview-content {
      border: 1px solid var(--p-dataview-content-border-color);
      border-width: var(--p-dataview-content-border-width);
      border-radius: var(--p-dataview-content-border-radius);
      background: var(--p-dataview-content-background);
      color: var(--p-dataview-content-color);
      padding: var(--p-dataview-content-padding);
      > * {
        --_enter-offset: var(--p-dataview-content-enter-offset);
        animation: p-enter var(--p-dataview-content-enter-duration) var(--p-transition-easing-enter);
      }
    }
    &.p-dataview-list .p-dataview-row {
      border: 1px solid var(--p-dataview-item-border-color);
      border-width: 0 0 1px 0;
      &:last-child {
        border-bottom-width: 0;
      }
    }
    &.p-dataview-grid .p-dataview-column {
      padding: var(--p-dataview-grid-column-padding);
    }
    .p-dataview-layout-options {
      display: inline-flex;
      gap: 0;
      background: var(--p-togglebutton-background);
      border: 1px solid var(--p-togglebutton-border-color);
      border-radius: var(--p-togglebutton-border-radius);
      padding: var(--p-togglebutton-padding);
      .p-button {
        margin: 0;
        width: auto;
        padding: var(--p-togglebutton-content-padding);
        background: transparent;
        color: var(--p-togglebutton-icon-color);
        border: 0 none;
        border-radius: var(--p-togglebutton-content-border-radius);
        box-shadow: none;
        transition:
          background var(--p-togglebutton-transition-duration),
          color var(--p-togglebutton-transition-duration),
          box-shadow var(--p-togglebutton-transition-duration),
          outline-color var(--p-togglebutton-transition-duration);
        .p-button-text {
          display: none;
        }
        .p-dataview-list-layout-icon {
          --_icon: var(--p-dataview-list-layout-icon);
        }
        .p-dataview-grid-layout-icon {
          --_icon: var(--p-dataview-grid-layout-icon);
        }
        &::before {
          content: none;
        }
        &:first-child,
        &:last-child {
          border-radius: var(--p-togglebutton-content-border-radius);
        }
        &:not(.p-state-active):hover,
        &.p-state-hover:not(.p-state-active) {
          background: transparent;
          color: var(--p-togglebutton-icon-hover-color);
        }
        &.p-state-active,
        &.p-state-active:not(.p-state-disabled):hover {
          background: var(--p-togglebutton-content-checked-background);
          color: var(--p-togglebutton-icon-checked-color);
          box-shadow: var(--p-togglebutton-content-checked-shadow);
        }
        &.p-state-focus,
        &:focus-visible {
          outline: var(--p-togglebutton-focus-ring-width) var(--p-togglebutton-focus-ring-style) var(--p-togglebutton-focus-ring-color);
          outline-offset: calc(var(--p-togglebutton-focus-ring-width) * -1);
        }
      }
    }
  }
  .p-dataview-list .p-dataview-list-container {
    list-style-type: none;
    margin: 0;
    padding: 0;
  }
  .p-fluid .p-dataview-layout-options.p-buttonset {
    width: auto;
  }
}

/* packages/components/src/dialog/dialog.css */
@layer primefaces.components {
  body.p-dialog-open {
    position: relative;
  }
  .p-dialog {
    display: none;
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    padding: var(--p-overlay-modal-padding);
    overflow-x: hidden;
    overflow-y: auto;
    outline: 0;
    &:not([aria-modal=true]) {
      pointer-events: none;
    }
    &.p-dialog-absolute {
      position: absolute;
    }
    &.p-overlay-hidden {
      display: block;
    }
    .p-dialog-titlebar {
      position: relative;
    }
    .p-dialog-content {
      position: relative;
      overflow: auto;
    }
    .p-dialog-box .p-dialog-content.p-df-content {
      overflow: hidden;
      padding: 0;
    }
    .p-resizable-se {
      position: absolute;
      width: 9px;
      height: 9px;
      right: -5px;
      bottom: -5px;
    }
    .p-dialog-titlebar-close,
    .p-dialog-titlebar-minimize,
    .p-dialog-titlebar-maximize {
      cursor: pointer;
    }
    &.p-overflow-hidden,
    &.p-dialog-absolute,
    &.p-dialog-fitviewport {
      overflow-y: hidden;
    }
    &.p-dialog-absolute .p-dialog-box {
      position: absolute;
    }
    .p-dialog-box {
      position: relative;
      display: inline-flex;
      pointer-events: auto;
      flex-direction: column;
      max-width: 100%;
      background: var(--p-dialog-background);
      color: var(--p-dialog-color);
      border: 1px solid var(--p-dialog-border-color);
      border-radius: var(--p-dialog-border-radius);
      box-shadow: var(--p-dialog-shadow);
      .p-dialog-titlebar {
        display: flex;
        align-items: center;
        flex-shrink: 0;
        background: transparent;
        color: var(--p-dialog-color);
        font-weight: var(--p-dialog-title-font-weight);
        border: 0 none;
        border-radius: 0;
        padding: var(--p-dialog-header-padding);
        .p-dialog-title {
          flex: 1 1 auto;
          font-size: var(--p-dialog-title-font-size);
          font-weight: var(--p-dialog-title-font-weight);
          text-wrap: balance;
          overflow: hidden;
          text-overflow: ellipsis;
        }
        .p-dialog-actions {
          order: 1;
          display: inline-flex;
          align-items: center;
          margin-inline-start: var(--p-dialog-header-gap);
        }
        > .p-dialog-titlebar-minimize {
          order: 2;
        }
        > .p-dialog-titlebar-maximize {
          order: 3;
        }
        > .p-dialog-titlebar-close {
          order: 4;
        }
        .p-dialog-titlebar-icon {
          display: inline-flex;
          align-items: center;
          justify-content: center;
          flex-shrink: 0;
          width: var(--p-button-icon-only-width);
          height: var(--p-button-icon-only-width);
          margin: 0;
          margin-inline-start: var(--p-dialog-header-gap);
          padding: 0;
          border: 0 none;
          border-radius: 50%;
          background: transparent;
          color: var(--p-button-text-secondary-color);
          text-decoration: none;
          -webkit-user-select: none;
          user-select: none;
          outline-color: transparent;
          transition:
            background var(--p-button-transition-duration),
            color var(--p-button-transition-duration),
            outline-color var(--p-button-transition-duration),
            box-shadow var(--p-button-transition-duration);
        }
        .p-dialog-titlebar-icon:hover {
          background: var(--p-button-text-secondary-hover-background);
          color: var(--p-button-text-secondary-color);
        }
        .p-dialog-titlebar-icon:active {
          background: var(--p-button-text-secondary-active-background);
        }
        .p-dialog-titlebar-icon:focus-visible {
          outline: var(--p-button-focus-ring-width) var(--p-button-focus-ring-style) var(--p-button-secondary-focus-ring-color);
          outline-offset: var(--p-button-focus-ring-offset);
          box-shadow: var(--p-button-secondary-focus-ring-shadow);
        }
      }
    }
    .p-dialog-close-icon {
      --_icon: var(--p-dialog-close-icon);
    }
    .p-dialog-minimize-icon {
      --_icon: var(--p-dialog-minimize-icon);
    }
    .p-dialog-maximize-icon {
      --_icon: var(--p-dialog-maximize-icon);
    }
    &.p-dialog-maximized > .p-dialog-box > .p-dialog-titlebar .p-dialog-maximize-icon {
      --_icon: var(--p-dialog-unmaximize-icon);
    }
    .p-dialog-box {
      .p-dialog-content {
        flex-grow: 1;
        background: transparent;
        color: var(--p-dialog-color);
        border: 0 none;
        padding: var(--p-dialog-content-padding);
      }
      .p-dialog-footer {
        flex-shrink: 0;
        background: transparent;
        color: var(--p-dialog-color);
        border: 0 none;
        padding: var(--p-dialog-footer-padding);
        margin: 0;
        text-align: end;
        button {
          margin: 0;
          margin-inline-start: var(--p-dialog-footer-gap);
          width: auto;
        }
      }
    }
    &.p-dialog-maximized {
      padding: 0;
      .p-dialog-box {
        width: 100% !important;
        height: 100% !important;
        top: 0 !important;
        left: 0 !important;
        border-radius: 0;
      }
    }
    &.p-confirm-dialog .p-dialog-box .p-dialog-content,
    &.p-message-dialog .p-dialog-box .p-dialog-content {
      display: flex;
      align-items: center;
      gap: var(--p-confirmdialog-content-gap);
    }
    &.p-confirm-dialog .p-dialog-box .p-dialog-content > span,
    &.p-message-dialog .p-dialog-box .p-dialog-content > span {
      display: inline-block;
      margin: 0;
      color: var(--p-confirmdialog-message-color);
      font-size: var(--p-confirmdialog-message-font-size);
      font-weight: var(--p-confirmdialog-message-font-weight);
    }
    &.p-confirm-dialog .p-dialog-box .p-dialog-content > span.p-confirm-dialog-severity,
    &.p-message-dialog .p-dialog-box .p-dialog-content > span.p-dialog-message {
      flex-shrink: 0;
      line-height: 1;
      color: var(--p-confirmdialog-icon-color);
      font-size: var(--p-confirmdialog-icon-size);
    }
    .p-dialog-warn-icon {
      --_icon: var(--p-dialog-warn-icon);
    }
    .p-dialog-info-icon {
      --_icon: var(--p-dialog-info-icon);
    }
    .p-dialog-error-icon {
      --_icon: var(--p-dialog-error-icon);
    }
    .p-dialog-fatal-icon {
      --_icon: var(--p-dialog-fatal-icon);
    }
  }
  .p-draggable .p-dialog-titlebar {
    cursor: move;
  }
  .p-dialog-docking-zone {
    position: fixed;
    bottom: 0;
    left: 0;
    display: flex;
    flex-wrap: wrap;
    align-items: flex-end;
    gap: var(--p-dialog-header-gap);
    padding: var(--p-dialog-header-gap);
  }
  .p-dialog-docked {
    display: flex;
    align-items: center;
    gap: var(--p-dialog-header-gap);
    max-width: 20rem;
    padding: var(--p-dialog-header-gap) var(--p-dialog-header-gap) var(--p-dialog-header-gap) var(--p-dialog-header-padding);
    background: var(--p-dialog-background);
    color: var(--p-dialog-color);
    border: 1px solid var(--p-dialog-border-color);
    border-radius: var(--p-dialog-border-radius);
    box-shadow: var(--p-dialog-shadow);
    .p-dialog-docked-title {
      flex: 1 1 auto;
      font-weight: var(--p-dialog-title-font-weight);
      white-space: nowrap;
      overflow: hidden;
      text-overflow: ellipsis;
    }
    .p-dialog-docked-icon {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      flex-shrink: 0;
      width: var(--p-button-icon-only-width);
      height: var(--p-button-icon-only-width);
      border-radius: 50%;
      color: var(--p-button-text-secondary-color);
      text-decoration: none;
      cursor: pointer;
      outline-color: transparent;
      transition: background var(--p-button-transition-duration), color var(--p-button-transition-duration);
      &:hover {
        background: var(--p-button-text-secondary-hover-background);
      }
      &:active {
        background: var(--p-button-text-secondary-active-background);
      }
      &:focus-visible {
        outline: var(--p-button-focus-ring-width) var(--p-button-focus-ring-style) var(--p-button-secondary-focus-ring-color);
        outline-offset: var(--p-button-focus-ring-offset);
        box-shadow: var(--p-button-secondary-focus-ring-shadow);
      }
    }
    .p-dialog-docked-restore .p-icon {
      --_icon: var(--p-dialog-unminimize-icon);
    }
    .p-dialog-docked-maximize .p-icon {
      --_icon: var(--p-dialog-maximize-icon);
    }
    .p-dialog-docked-close .p-icon {
      --_icon: var(--p-dialog-close-icon);
    }
  }
  .p-dialog-minimizing {
    border: 1px dashed var(--p-primary-color);
    border-radius: var(--p-dialog-border-radius);
  }
  .p-dialog-mask {
    position: fixed;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    -webkit-user-select: none;
    user-select: none;
  }
  .p-dialog-rtl {
    direction: rtl;
  }
}

/* packages/components/src/divider/divider.css */
@layer primefaces.components {
  .p-divider-horizontal {
    display: flex;
    width: 100%;
    position: relative;
    align-items: center;
    &::before {
      position: absolute;
      display: block;
      top: 50%;
      left: 0;
      width: 100%;
      content: "";
    }
    &.p-divider-left {
      justify-content: flex-start;
    }
    &.p-divider-right {
      justify-content: flex-end;
    }
    &.p-divider-center {
      justify-content: center;
    }
  }
  .p-divider-content {
    z-index: 1;
  }
  .p-divider-vertical {
    min-height: 100%;
    display: flex;
    position: relative;
    justify-content: center;
    &::before {
      position: absolute;
      display: block;
      top: 0;
      left: 50%;
      height: 100%;
      content: "";
    }
    &.p-divider-top {
      align-items: flex-start;
    }
    &.p-divider-center {
      align-items: center;
    }
    &.p-divider-bottom {
      align-items: flex-end;
    }
  }
  .p-divider {
    &.p-divider-solid {
      &.p-divider-horizontal::before {
        border-top-style: solid;
      }
      &.p-divider-vertical::before {
        border-left-style: solid;
      }
    }
    &.p-divider-dashed {
      &.p-divider-horizontal::before {
        border-top-style: dashed;
      }
      &.p-divider-vertical::before {
        border-left-style: dashed;
      }
    }
    &.p-divider-dotted {
      &.p-divider-horizontal::before {
        border-top-style: dotted;
      }
      &.p-divider-vertical::before {
        border-left-style: dotted;
      }
    }
    .p-divider-content {
      background-color: var(--p-divider-content-background);
      color: var(--p-divider-content-color);
    }
    &.p-divider-horizontal {
      margin: var(--p-divider-horizontal-margin);
      padding: var(--p-divider-horizontal-padding);
      &::before {
        border-top-width: 1px;
        border-top-color: var(--p-divider-border-color);
      }
      .p-divider-content {
        padding: var(--p-divider-horizontal-content-padding);
      }
    }
    &.p-divider-vertical {
      margin: var(--p-divider-vertical-margin);
      padding: var(--p-divider-vertical-padding);
      &::before {
        border-left-width: 1px;
        border-left-color: var(--p-divider-border-color);
      }
      .p-divider-content {
        padding: var(--p-divider-vertical-content-padding);
      }
    }
  }
}

/* packages/components/src/fieldset/fieldset.css */
@layer primefaces.components {
  .p-fieldset-toggleable .p-fieldset-legend {
    outline: 0;
  }
  .p-fieldset {
    margin: 0;
    padding: var(--p-fieldset-padding);
    background: var(--p-fieldset-background);
    color: var(--p-fieldset-color);
    border: 1px solid var(--p-fieldset-border-color);
    border-radius: var(--p-fieldset-border-radius);
    .p-fieldset-legend {
      display: flex;
      align-items: center;
      gap: var(--p-fieldset-legend-gap);
      padding: var(--p-fieldset-legend-padding);
      font-size: var(--p-fieldset-legend-font-size);
      font-weight: var(--p-fieldset-legend-font-weight);
      background: var(--p-fieldset-legend-background);
      color: var(--p-fieldset-legend-color);
      border-style: solid;
      border-width: var(--p-fieldset-legend-border-width);
      border-color: var(--p-fieldset-legend-border-color);
      border-radius: var(--p-fieldset-legend-border-radius);
      -webkit-user-select: none;
      user-select: none;
      outline-color: transparent;
      transition:
        background var(--p-fieldset-transition-duration),
        color var(--p-fieldset-transition-duration),
        outline-color var(--p-fieldset-transition-duration),
        box-shadow var(--p-fieldset-transition-duration);
    }
    &.p-fieldset-toggleable .p-fieldset-legend {
      cursor: pointer;
    }
    .p-fieldset-legend {
      .p-fieldset-toggler {
        color: var(--p-fieldset-toggle-icon-color);
        transition: color var(--p-fieldset-transition-duration);
      }
      .p-fieldset-toggle-icon {
        --_icon: var(--p-fieldset-toggle-expanded-icon);
      }
      &[aria-expanded=false] .p-fieldset-toggle-icon {
        --_icon: var(--p-fieldset-toggle-collapsed-icon);
      }
    }
    .p-fieldset-legend.p-state-hover,
    &.p-fieldset-toggleable .p-fieldset-legend:hover {
      background: var(--p-fieldset-legend-hover-background);
      color: var(--p-fieldset-legend-hover-color);
    }
    .p-fieldset-legend.p-state-hover .p-fieldset-toggler,
    &.p-fieldset-toggleable .p-fieldset-legend:hover .p-fieldset-toggler {
      color: var(--p-fieldset-toggle-icon-hover-color);
    }
    .p-fieldset-legend:focus-visible {
      outline: var(--p-fieldset-legend-focus-ring-width) var(--p-fieldset-legend-focus-ring-style) var(--p-fieldset-legend-focus-ring-color);
      outline-offset: var(--p-fieldset-legend-focus-ring-offset);
      box-shadow: var(--p-fieldset-legend-focus-ring-shadow);
    }
    .p-fieldset-content {
      padding: var(--p-fieldset-content-padding);
    }
  }
}

/* packages/components/src/growl/growl.css */
@layer primefaces.components {
  .p-growl {
    position: fixed;
    top: var(--p-growl-offset);
    right: var(--p-growl-offset);
    width: var(--p-toast-width);
    max-width: calc(100dvw - 2 * var(--p-growl-offset));
    .p-growl-item-container {
      --_bg: var(--p-toast-info-background);
      --_border-color: var(--p-toast-info-border-color);
      --_color: var(--p-toast-info-color);
      --_detail-color: var(--p-toast-info-detail-color);
      --_shadow: var(--p-toast-info-shadow);
      --_close-hover-bg: var(--p-toast-info-close-button-hover-background);
      --_close-focus-ring-color: var(--p-toast-info-close-button-focus-ring-color);
      --_close-focus-ring-shadow: var(--p-toast-info-close-button-focus-ring-shadow);
      --_outlined-color: var(--p-toast-info-outlined-color);
      --_outlined-border-color: var(--p-toast-info-outlined-border-color);
      --_simple-color: var(--p-toast-info-simple-color);
      margin: 0 0 var(--p-growl-gap) 0;
      background: var(--_bg);
      border-width: var(--p-toast-border-width);
      border-style: solid;
      border-color: var(--_border-color);
      color: var(--_color);
      border-radius: var(--p-toast-border-radius);
      box-shadow: var(--_shadow);
      backdrop-filter: blur(var(--p-toast-blur));
      &.p-growl-success {
        --_bg: var(--p-toast-success-background);
        --_border-color: var(--p-toast-success-border-color);
        --_color: var(--p-toast-success-color);
        --_detail-color: var(--p-toast-success-detail-color);
        --_shadow: var(--p-toast-success-shadow);
        --_close-hover-bg: var(--p-toast-success-close-button-hover-background);
        --_close-focus-ring-color: var(--p-toast-success-close-button-focus-ring-color);
        --_close-focus-ring-shadow: var(--p-toast-success-close-button-focus-ring-shadow);
        --_outlined-color: var(--p-toast-success-outlined-color);
        --_outlined-border-color: var(--p-toast-success-outlined-border-color);
        --_simple-color: var(--p-toast-success-simple-color);
      }
      &.p-growl-warn {
        --_bg: var(--p-toast-warn-background);
        --_border-color: var(--p-toast-warn-border-color);
        --_color: var(--p-toast-warn-color);
        --_detail-color: var(--p-toast-warn-detail-color);
        --_shadow: var(--p-toast-warn-shadow);
        --_close-hover-bg: var(--p-toast-warn-close-button-hover-background);
        --_close-focus-ring-color: var(--p-toast-warn-close-button-focus-ring-color);
        --_close-focus-ring-shadow: var(--p-toast-warn-close-button-focus-ring-shadow);
        --_outlined-color: var(--p-toast-warn-outlined-color);
        --_outlined-border-color: var(--p-toast-warn-outlined-border-color);
        --_simple-color: var(--p-toast-warn-simple-color);
      }
      &.p-growl-error {
        --_bg: var(--p-toast-error-background);
        --_border-color: var(--p-toast-error-border-color);
        --_color: var(--p-toast-error-color);
        --_detail-color: var(--p-toast-error-detail-color);
        --_shadow: var(--p-toast-error-shadow);
        --_close-hover-bg: var(--p-toast-error-close-button-hover-background);
        --_close-focus-ring-color: var(--p-toast-error-close-button-focus-ring-color);
        --_close-focus-ring-shadow: var(--p-toast-error-close-button-focus-ring-shadow);
        --_outlined-color: var(--p-toast-error-outlined-color);
        --_outlined-border-color: var(--p-toast-error-outlined-border-color);
        --_simple-color: var(--p-toast-error-simple-color);
      }
      &.p-growl-fatal {
        --_bg: var(--p-growl-fatal-background);
        --_border-color: var(--p-growl-fatal-border-color);
        --_color: var(--p-growl-fatal-color);
        --_detail-color: var(--p-growl-fatal-detail-color);
        --_shadow: var(--p-growl-fatal-shadow);
        --_close-hover-bg: var(--p-growl-fatal-close-button-hover-background);
        --_close-focus-ring-color: var(--p-growl-fatal-close-button-focus-ring-color);
        --_close-focus-ring-shadow: var(--p-growl-fatal-close-button-focus-ring-shadow);
        --_outlined-color: var(--p-growl-fatal-outlined-color);
        --_outlined-border-color: var(--p-growl-fatal-outlined-border-color);
        --_simple-color: var(--p-growl-fatal-simple-color);
      }
      .p-growl-item {
        display: flex;
        align-items: flex-start;
        gap: var(--p-toast-content-gap);
        padding: var(--p-toast-content-padding);
      }
      .p-growl-icon-close {
        display: inline-flex;
        position: absolute;
        top: calc(var(--p-toast-content-gap) / 2);
        inset-inline-end: calc(var(--p-toast-content-gap) / 2);
        align-items: center;
        justify-content: center;
        width: var(--p-toast-close-button-width);
        height: var(--p-toast-close-button-height);
        font-size: var(--p-toast-close-icon-size);
        border-radius: var(--p-toast-close-button-border-radius);
        color: var(--_color);
        outline-color: transparent;
        transition:
          background var(--p-toast-transition-duration),
          color var(--p-toast-transition-duration),
          outline-color var(--p-toast-transition-duration),
          box-shadow var(--p-toast-transition-duration);
        &:hover {
          background: var(--_close-hover-bg);
        }
        &:focus-visible {
          outline: var(--p-toast-close-button-focus-ring-width) var(--p-toast-close-button-focus-ring-style) var(--_close-focus-ring-color);
          outline-offset: var(--p-toast-close-button-focus-ring-offset);
          box-shadow: var(--_close-focus-ring-shadow);
        }
      }
      .p-growl-close-icon {
        --_icon: var(--p-toast-close-icon);
      }
      .p-growl-image {
        flex-shrink: 0;
        width: var(--p-toast-icon-size);
        height: var(--p-toast-icon-size);
        margin: 0;
        margin-block-start: calc((var(--p-typography-line-height) * var(--p-toast-summary-font-size) - var(--p-toast-icon-size)) / 2);
        font-size: var(--p-toast-icon-size);
        line-height: 1;
        color: var(--_color);
      }
      .p-growl-info-icon {
        --_icon: var(--p-toast-info-icon);
      }
      .p-growl-success-icon {
        --_icon: var(--p-toast-success-icon);
      }
      .p-growl-warn-icon {
        --_icon: var(--p-toast-warn-icon);
      }
      .p-growl-error-icon {
        --_icon: var(--p-toast-error-icon);
      }
      .p-growl-fatal-icon {
        --_icon: var(--p-toast-fatal-icon);
      }
      .p-growl-message {
        flex: 1 1 auto;
        min-width: 0;
        padding-inline-end: var(--p-toast-close-button-width);
        display: flex;
        flex-direction: column;
        gap: var(--p-toast-text-gap);
        overflow-wrap: break-word;
      }
      .p-growl-title {
        font-size: var(--p-toast-summary-font-size);
        font-weight: var(--p-toast-summary-font-weight);
        line-height: var(--p-typography-line-height);
      }
      .p-growl-message p {
        font-size: var(--p-toast-detail-font-size);
        font-weight: var(--p-toast-detail-font-weight);
        color: var(--_detail-color);
        text-wrap: pretty;
      }
    }
  }
  :is(.p-growl-outlined.p-growl, .p-growl-outlined .p-growl) .p-growl-item-container {
    --_bg: var(--p-toast-outlined-background);
    --_border-color: var(--_outlined-border-color);
    --_color: var(--_outlined-color);
    --_detail-color: var(--p-toast-outlined-detail-color);
    --_shadow: var(--p-toast-outlined-shadow);
    --_close-hover-bg: var(--p-toast-outlined-close-button-hover-background);
    border-width: var(--p-toast-outlined-border-width);
  }
  :is(.p-growl-simple.p-growl, .p-growl-simple .p-growl) .p-growl-item-container {
    --_bg: var(--p-toast-simple-background);
    --_border-color: transparent;
    --_color: var(--_simple-color);
    --_detail-color: var(--p-toast-simple-detail-color);
    --_shadow: var(--p-toast-simple-shadow);
    --_close-hover-bg: var(--p-toast-simple-close-button-hover-background);
  }
  .p-growl-item-container {
    position: relative;
  }
  .p-growl-item p {
    padding: 0;
    margin: 0;
  }
  .p-growl-icon-close {
    position: absolute;
    cursor: pointer;
  }
  .p-growl-title {
    display: block;
  }
}

/* packages/components/src/inplace/inplace.css */
@layer primefaces.components {
  .p-inplace {
    &.p-inplace-password .p-masked::before {
      content: "••••••";
    }
    .p-inplace-display,
    .p-inplace-display-disabled {
      display: inline-block;
      border: 0 none;
      padding: var(--p-inplace-padding);
      border-radius: var(--p-inplace-border-radius);
    }
    .p-inplace-display {
      cursor: pointer;
      outline-color: transparent;
      transition:
        background var(--p-inplace-transition-duration),
        color var(--p-inplace-transition-duration),
        outline-color var(--p-inplace-transition-duration),
        box-shadow var(--p-inplace-transition-duration);
      &.p-state-highlight {
        background: var(--p-inplace-display-hover-background);
        color: var(--p-inplace-display-hover-color);
      }
      &.p-state-focus {
        outline: var(--p-inplace-focus-ring-width) var(--p-inplace-focus-ring-style) var(--p-inplace-focus-ring-color);
        outline-offset: var(--p-inplace-focus-ring-offset);
        box-shadow: var(--p-inplace-focus-ring-shadow);
      }
    }
    .p-inplace-display-disabled {
      cursor: default;
      opacity: var(--p-disabled-opacity);
    }
    .p-inplace-save-icon {
      --_icon: var(--p-inplace-save-icon);
    }
    .p-inplace-cancel-icon {
      --_icon: var(--p-inplace-cancel-icon);
    }
    .p-inplace-editor {
      margin-inline-start: var(--p-inplace-editor-gap);
    }
    .p-inplace-cancel {
      margin-inline-start: var(--p-inplace-editor-button-gap);
    }
  }
}

/* packages/components/src/menu/megamenu.css */
@layer primefaces.components {
  .p-megamenu {
    > .p-menu-list > .p-menuitem-selected > .p-menuitem-link {
      text-decoration: underline;
      text-underline-offset: 0.25em;
      text-decoration-thickness: 0.125em;
    }
    td {
      vertical-align: top;
    }
    .p-component-header span {
      display: block;
    }
  }
  .p-megamenu-vertical {
    width: fit-content;
    &:not([style*=width]) {
      min-width: 12.5rem;
    }
    .p-menu-parent {
      clear: both;
      width: 100%;
    }
  }
  .p-menu.p-megamenu {
    --_bg: var(--p-megamenu-background);
    --_border-color: var(--p-megamenu-border-color);
    --_border-radius: var(--p-megamenu-border-radius);
    --_color: var(--p-megamenu-color);
    --_list-padding: var(--p-megamenu-submenu-padding);
    --_list-gap: var(--p-megamenu-submenu-gap);
    --_transition-duration: var(--p-megamenu-transition-duration);
    --_item-border-radius: var(--p-megamenu-item-border-radius);
    --_item-padding: var(--p-megamenu-item-padding);
    --_item-gap: var(--p-megamenu-item-gap);
    --_item-color: var(--p-megamenu-item-color);
    --_item-focus-background: var(--p-megamenu-item-focus-background);
    --_item-focus-color: var(--p-megamenu-item-focus-color);
    --_item-active-background: var(--p-megamenu-item-active-background);
    --_item-active-color: var(--p-megamenu-item-active-color);
    --_item-icon-color: var(--p-megamenu-item-icon-color);
    --_item-icon-focus-color: var(--p-megamenu-item-icon-focus-color);
    --_item-icon-active-color: var(--p-megamenu-item-icon-active-color);
    --_item-icon-size: var(--p-megamenu-item-icon-size);
    --_item-label-font-size: var(--p-megamenu-item-label-font-size);
    --_item-label-font-weight: var(--p-megamenu-item-label-font-weight);
    --_submenu-icon-color: var(--p-megamenu-submenu-icon-color);
    --_submenu-icon-focus-color: var(--p-megamenu-submenu-icon-focus-color);
    --_submenu-icon-size: var(--p-megamenu-submenu-icon-size);
    --_submenu-icon-active-color: var(--p-megamenu-submenu-icon-active-color);
    --_separator-border-color: var(--p-megamenu-separator-border-color);
    --_submenu-label-background: var(--p-megamenu-submenu-label-background);
    --_submenu-label-color: var(--p-megamenu-submenu-label-color);
    --_submenu-label-font-size: var(--p-megamenu-submenu-label-font-size);
    --_submenu-label-font-weight: var(--p-megamenu-submenu-label-font-weight);
    --_submenu-label-padding: var(--p-megamenu-submenu-label-padding);
    --_submenu-background: var(--p-megamenu-overlay-background);
    --_submenu-border-color: var(--p-megamenu-overlay-border-color);
    --_submenu-border-radius: var(--p-megamenu-overlay-border-radius);
    --_submenu-padding: var(--p-megamenu-overlay-padding);
    --_submenu-shadow: var(--p-megamenu-overlay-shadow);
    --_padding: var(--p-megamenu-horizontal-orientation-padding);
    --_gap: var(--p-megamenu-horizontal-orientation-gap);
    --_base-item-padding: var(--p-megamenu-base-item-padding);
    --_base-item-border-radius: var(--p-megamenu-base-item-border-radius);
    .p-component-header {
      margin: 0;
      width: 100%;
      background: var(--_submenu-label-background);
      color: var(--_submenu-label-color);
      float: none;
      border: 0 none;
      padding: var(--_submenu-label-padding);
      font-weight: var(--_submenu-label-font-weight);
      font-size: var(--_submenu-label-font-size);
      border-radius: 0;
      transition: background var(--_transition-duration), color var(--_transition-duration);
    }
    .p-menu-child .p-menu-list {
      min-width: 12.5rem;
    }
    > .p-menu-list {
      padding: 0;
    }
    .p-menu-child {
      color: var(--p-megamenu-overlay-color);
    }
    .p-menu-list > table > tbody > tr > td {
      padding: var(--p-megamenu-overlay-gap);
    }
    td > hr.p-divider {
      margin: var(--_list-gap) 0;
      border: 0 none;
      border-block-start: 1px solid var(--_separator-border-color);
    }
    .p-menu-list .p-menuitem-link {
      border-radius: var(--_item-border-radius);
    }
    &.p-megamenu-vertical {
      background: var(--_bg);
      padding: var(--p-megamenu-vertical-orientation-padding);
      &,
      > .p-menu-list {
        flex-direction: column;
        flex-wrap: nowrap;
        align-items: stretch;
        gap: var(--p-megamenu-vertical-orientation-gap);
      }
      > .p-menu-list .p-menuitem {
        width: 100%;
        > .p-menuitem-link {
          border-radius: var(--_item-border-radius);
        }
      }
      > :is(.p-menubar-options, .p-menubar-end) {
        margin-inline-start: 0;
      }
    }
  }
}

/* packages/components/src/menu/menu.css */
@layer primefaces.components {
  .p-menu.p-menu-toggleable {
    li.p-component-header {
      position: relative;
      min-height: 0;
      cursor: pointer;
    }
    .p-menu-list .p-component-header {
      .p-menu-toggle-icon {
        --_icon: var(--p-menu-toggle-collapsed-icon);
        color: var(--_submenu-icon-color);
        font-size: var(--_submenu-icon-size);
      }
      &[aria-expanded=true] .p-menu-toggle-icon {
        --_icon: var(--p-menu-toggle-expanded-icon);
      }
      &:not([aria-expanded=true]) .p-menu-toggle-icon:dir(rtl) {
        scale: -1 1;
      }
      .p-submenu-icon {
        color: var(--_item-icon-color);
        font-size: var(--_item-icon-size);
      }
      &.p-state-hover {
        .p-menu-toggle-icon {
          color: var(--_submenu-icon-focus-color);
        }
        .p-submenu-icon {
          color: var(--_item-icon-focus-color);
        }
      }
    }
  }
}

/* packages/components/src/messages/message.css */
@layer primefaces.components {
  .p-message {
    --_bg: var(--p-message-info-background);
    --_border-color: var(--p-message-info-border-color);
    --_color: var(--p-message-info-color);
    --_shadow: var(--p-message-info-shadow);
    --_outlined-color: var(--p-message-info-outlined-color);
    --_outlined-border-color: var(--p-message-info-outlined-border-color);
    --_simple-color: var(--p-message-info-simple-color);
    --_close-hover-bg: var(--p-message-info-close-button-hover-background);
    --_close-focus-ring-color: var(--p-message-info-close-button-focus-ring-color);
    --_close-focus-ring-shadow: var(--p-message-info-close-button-focus-ring-shadow);
    --_border-width: var(--p-message-border-width);
    --_padding: var(--p-message-content-padding);
    --_font-size: var(--p-message-text-font-size);
    --_icon-size: var(--p-message-icon-size);
    --_close-icon-size: var(--p-message-close-icon-size);
    display: inline-block;
    vertical-align: middle;
    border-radius: var(--p-message-border-radius);
    font-size: var(--_font-size);
    font-weight: var(--p-message-text-font-weight);
    outline-color: transparent;
    transition:
      background var(--p-message-transition-duration),
      color var(--p-message-transition-duration),
      border-color var(--p-message-transition-duration);
    &:not(.p-staticmessage) {
      --_enter-offset: var(--p-message-enter-offset);
      animation: p-enter var(--p-message-enter-duration) var(--p-transition-easing-enter);
    }
    &.p-message-info,
    &.p-message-success,
    &.p-message-warn,
    &.p-message-error,
    &.p-message-fatal,
    &.p-message-secondary,
    &.p-message-contrast {
      padding: var(--_padding);
      background: var(--_bg);
      border: var(--_border-width) solid var(--_border-color);
      color: var(--_color);
      box-shadow: var(--_shadow);
    }
    &.p-message-success {
      --_bg: var(--p-message-success-background);
      --_border-color: var(--p-message-success-border-color);
      --_color: var(--p-message-success-color);
      --_shadow: var(--p-message-success-shadow);
      --_outlined-color: var(--p-message-success-outlined-color);
      --_outlined-border-color: var(--p-message-success-outlined-border-color);
      --_simple-color: var(--p-message-success-simple-color);
      --_close-hover-bg: var(--p-message-success-close-button-hover-background);
      --_close-focus-ring-color: var(--p-message-success-close-button-focus-ring-color);
      --_close-focus-ring-shadow: var(--p-message-success-close-button-focus-ring-shadow);
    }
    &.p-message-warn {
      --_bg: var(--p-message-warn-background);
      --_border-color: var(--p-message-warn-border-color);
      --_color: var(--p-message-warn-color);
      --_shadow: var(--p-message-warn-shadow);
      --_outlined-color: var(--p-message-warn-outlined-color);
      --_outlined-border-color: var(--p-message-warn-outlined-border-color);
      --_simple-color: var(--p-message-warn-simple-color);
      --_close-hover-bg: var(--p-message-warn-close-button-hover-background);
      --_close-focus-ring-color: var(--p-message-warn-close-button-focus-ring-color);
      --_close-focus-ring-shadow: var(--p-message-warn-close-button-focus-ring-shadow);
    }
    &.p-message-error {
      --_bg: var(--p-message-error-background);
      --_border-color: var(--p-message-error-border-color);
      --_color: var(--p-message-error-color);
      --_shadow: var(--p-message-error-shadow);
      --_outlined-color: var(--p-message-error-outlined-color);
      --_outlined-border-color: var(--p-message-error-outlined-border-color);
      --_simple-color: var(--p-message-error-simple-color);
      --_close-hover-bg: var(--p-message-error-close-button-hover-background);
      --_close-focus-ring-color: var(--p-message-error-close-button-focus-ring-color);
      --_close-focus-ring-shadow: var(--p-message-error-close-button-focus-ring-shadow);
    }
    &.p-message-fatal {
      --_bg: var(--p-message-fatal-background);
      --_border-color: var(--p-message-fatal-border-color);
      --_color: var(--p-message-fatal-color);
      --_shadow: var(--p-message-fatal-shadow);
      --_outlined-color: var(--p-message-fatal-outlined-color);
      --_outlined-border-color: var(--p-message-fatal-outlined-border-color);
      --_simple-color: var(--p-message-fatal-simple-color);
      --_close-hover-bg: var(--p-message-fatal-close-button-hover-background);
      --_close-focus-ring-color: var(--p-message-fatal-close-button-focus-ring-color);
      --_close-focus-ring-shadow: var(--p-message-fatal-close-button-focus-ring-shadow);
    }
    &.p-message-secondary {
      --_bg: var(--p-message-secondary-background);
      --_border-color: var(--p-message-secondary-border-color);
      --_color: var(--p-message-secondary-color);
      --_shadow: var(--p-message-secondary-shadow);
      --_outlined-color: var(--p-message-secondary-outlined-color);
      --_outlined-border-color: var(--p-message-secondary-outlined-border-color);
      --_simple-color: var(--p-message-secondary-simple-color);
      --_close-hover-bg: var(--p-message-secondary-close-button-hover-background);
      --_close-focus-ring-color: var(--p-message-secondary-close-button-focus-ring-color);
      --_close-focus-ring-shadow: var(--p-message-secondary-close-button-focus-ring-shadow);
    }
    &.p-message-contrast {
      --_bg: var(--p-message-contrast-background);
      --_border-color: var(--p-message-contrast-border-color);
      --_color: var(--p-message-contrast-color);
      --_shadow: var(--p-message-contrast-shadow);
      --_outlined-color: var(--p-message-contrast-outlined-color);
      --_outlined-border-color: var(--p-message-contrast-outlined-border-color);
      --_simple-color: var(--p-message-contrast-simple-color);
      --_close-hover-bg: var(--p-message-contrast-close-button-hover-background);
      --_close-focus-ring-color: var(--p-message-contrast-close-button-focus-ring-color);
      --_close-focus-ring-shadow: var(--p-message-contrast-close-button-focus-ring-shadow);
    }
    &.p-message-sm {
      --_padding: var(--p-message-content-sm-padding);
      --_font-size: var(--p-message-text-sm-font-size);
      --_icon-size: var(--p-message-icon-sm-size);
      --_close-icon-size: var(--p-message-close-icon-sm-size);
    }
    &.p-message-lg {
      --_padding: var(--p-message-content-lg-padding);
      --_font-size: var(--p-message-text-lg-font-size);
      --_icon-size: var(--p-message-icon-lg-size);
      --_close-icon-size: var(--p-message-close-icon-lg-size);
    }
    &.p-message-outlined {
      --_bg: transparent;
      --_border-width: var(--p-message-outlined-border-width);
      --_border-color: var(--_outlined-border-color);
      --_color: var(--_outlined-color);
      --_shadow: none;
    }
    &.p-message-simple {
      --_bg: transparent;
      --_border-width: 0;
      --_color: var(--_simple-color);
      --_shadow: none;
      --_padding: var(--p-message-simple-content-padding);
    }
    > div {
      display: flex;
      align-items: center;
      gap: var(--p-message-content-gap);
      min-height: calc(var(--p-typography-line-height) * 1em);
    }
    .p-message-info-icon,
    .p-message-success-icon,
    .p-message-warn-icon,
    .p-message-error-icon,
    .p-message-fatal-icon,
    .p-message-secondary-icon,
    .p-message-contrast-icon {
      flex-shrink: 0;
      color: var(--_color);
      font-size: var(--_icon-size);
      line-height: 1;
    }
    .p-message-info-icon {
      --_icon: var(--p-message-info-icon);
    }
    .p-message-success-icon {
      --_icon: var(--p-message-success-icon);
    }
    .p-message-warn-icon {
      --_icon: var(--p-message-warn-icon);
    }
    .p-message-error-icon {
      --_icon: var(--p-message-error-icon);
    }
    .p-message-fatal-icon {
      --_icon: var(--p-message-fatal-icon);
    }
    .p-message-secondary-icon {
      --_icon: var(--p-message-secondary-icon);
    }
    .p-message-contrast-icon {
      --_icon: var(--p-message-contrast-icon);
    }
    .p-message-info-summary,
    .p-message-success-summary,
    .p-message-warn-summary,
    .p-message-error-summary,
    .p-message-fatal-summary,
    .p-message-secondary-summary,
    .p-message-contrast-summary {
      font-weight: var(--p-message-summary-font-weight);
    }
    .p-message-info-detail,
    .p-message-success-detail,
    .p-message-warn-detail,
    .p-message-error-detail,
    .p-message-fatal-detail,
    .p-message-secondary-detail,
    .p-message-contrast-detail {
      font-weight: var(--p-message-detail-font-weight);
      overflow-wrap: break-word;
      text-wrap: pretty;
    }
    .p-message-info-summary:empty,
    .p-message-success-summary:empty,
    .p-message-warn-summary:empty,
    .p-message-error-summary:empty,
    .p-message-fatal-summary:empty,
    .p-message-secondary-summary:empty,
    .p-message-contrast-summary:empty,
    .p-message-info-detail:empty,
    .p-message-success-detail:empty,
    .p-message-warn-detail:empty,
    .p-message-error-detail:empty,
    .p-message-fatal-detail:empty,
    .p-message-secondary-detail:empty,
    .p-message-contrast-detail:empty {
      display: none;
    }
    &.p-hidden {
      display: none;
    }
  }
  .p-component + .p-message:not(.p-staticmessage) {
    margin-inline-start: var(--p-message-content-gap);
  }
}

/* packages/components/src/messages/messages.css */
@layer primefaces.components {
  .p-messages {
    --_padding: var(--p-message-content-lg-padding);
    --_font-size: var(--p-message-text-font-size);
    --_icon-size: var(--p-message-icon-lg-size);
    --_close-icon-size: var(--p-message-close-icon-size);
    font-size: var(--_font-size);
    font-weight: var(--p-message-text-font-weight);
    position: relative;
    border-radius: var(--p-message-border-radius);
    > div {
      --_bg: var(--p-message-info-background);
      --_border-color: var(--p-message-info-border-color);
      --_color: var(--p-message-info-color);
      --_shadow: var(--p-message-info-shadow);
      --_outlined-color: var(--p-message-info-outlined-color);
      --_outlined-border-color: var(--p-message-info-outlined-border-color);
      --_simple-color: var(--p-message-info-simple-color);
      --_close-hover-bg: var(--p-message-info-close-button-hover-background);
      --_close-focus-ring-color: var(--p-message-info-close-button-focus-ring-color);
      --_close-focus-ring-shadow: var(--p-message-info-close-button-focus-ring-shadow);
      --_border-width: var(--p-message-border-width);
      display: flex;
      align-items: flex-start;
      gap: var(--p-message-content-gap);
      padding: var(--_padding);
      margin: var(--p-messages-gap) 0;
      border-radius: var(--p-message-border-radius);
      outline-color: transparent;
      transition:
        background var(--p-message-transition-duration),
        color var(--p-message-transition-duration),
        border-color var(--p-message-transition-duration);
      --_enter-offset: var(--p-message-enter-offset);
      animation: p-enter var(--p-message-enter-duration) var(--p-transition-easing-enter);
    }
    .p-messages-info,
    .p-messages-success,
    .p-messages-warn,
    .p-messages-error,
    .p-messages-fatal {
      background: var(--_bg);
      border: var(--_border-width) solid var(--_border-color);
      color: var(--_color);
      box-shadow: var(--_shadow);
    }
    .p-messages-success {
      --_bg: var(--p-message-success-background);
      --_border-color: var(--p-message-success-border-color);
      --_color: var(--p-message-success-color);
      --_shadow: var(--p-message-success-shadow);
      --_outlined-color: var(--p-message-success-outlined-color);
      --_outlined-border-color: var(--p-message-success-outlined-border-color);
      --_simple-color: var(--p-message-success-simple-color);
      --_close-hover-bg: var(--p-message-success-close-button-hover-background);
      --_close-focus-ring-color: var(--p-message-success-close-button-focus-ring-color);
      --_close-focus-ring-shadow: var(--p-message-success-close-button-focus-ring-shadow);
    }
    .p-messages-warn {
      --_bg: var(--p-message-warn-background);
      --_border-color: var(--p-message-warn-border-color);
      --_color: var(--p-message-warn-color);
      --_shadow: var(--p-message-warn-shadow);
      --_outlined-color: var(--p-message-warn-outlined-color);
      --_outlined-border-color: var(--p-message-warn-outlined-border-color);
      --_simple-color: var(--p-message-warn-simple-color);
      --_close-hover-bg: var(--p-message-warn-close-button-hover-background);
      --_close-focus-ring-color: var(--p-message-warn-close-button-focus-ring-color);
      --_close-focus-ring-shadow: var(--p-message-warn-close-button-focus-ring-shadow);
    }
    .p-messages-error {
      --_bg: var(--p-message-error-background);
      --_border-color: var(--p-message-error-border-color);
      --_color: var(--p-message-error-color);
      --_shadow: var(--p-message-error-shadow);
      --_outlined-color: var(--p-message-error-outlined-color);
      --_outlined-border-color: var(--p-message-error-outlined-border-color);
      --_simple-color: var(--p-message-error-simple-color);
      --_close-hover-bg: var(--p-message-error-close-button-hover-background);
      --_close-focus-ring-color: var(--p-message-error-close-button-focus-ring-color);
      --_close-focus-ring-shadow: var(--p-message-error-close-button-focus-ring-shadow);
    }
    .p-messages-fatal {
      --_bg: var(--p-message-fatal-background);
      --_border-color: var(--p-message-fatal-border-color);
      --_color: var(--p-message-fatal-color);
      --_shadow: var(--p-message-fatal-shadow);
      --_outlined-color: var(--p-message-fatal-outlined-color);
      --_outlined-border-color: var(--p-message-fatal-outlined-border-color);
      --_simple-color: var(--p-message-fatal-simple-color);
      --_close-hover-bg: var(--p-message-fatal-close-button-hover-background);
      --_close-focus-ring-color: var(--p-message-fatal-close-button-focus-ring-color);
      --_close-focus-ring-shadow: var(--p-message-fatal-close-button-focus-ring-shadow);
    }
    &.p-message-sm {
      --_padding: var(--p-message-content-sm-padding);
      --_font-size: var(--p-message-text-sm-font-size);
      --_icon-size: var(--p-message-icon-sm-size);
      --_close-icon-size: var(--p-message-close-icon-sm-size);
    }
    &.p-message-lg {
      --_font-size: var(--p-message-text-lg-font-size);
      --_close-icon-size: var(--p-message-close-icon-lg-size);
    }
    &.p-message-simple {
      --_padding: var(--p-message-simple-content-padding);
    }
    &.p-message-outlined > div {
      --_bg: transparent;
      --_border-width: var(--p-message-outlined-border-width);
      --_border-color: var(--_outlined-border-color);
      --_color: var(--_outlined-color);
      --_shadow: none;
    }
    &.p-message-simple > div {
      --_bg: transparent;
      --_border-width: 0;
      --_color: var(--_simple-color);
      --_shadow: none;
    }
    ul {
      flex: 1 1 auto;
      min-width: 0;
      margin: 0;
      padding: 0;
      list-style-type: none;
      > li {
        display: flex;
        flex-wrap: wrap;
        align-items: baseline;
        column-gap: var(--p-messages-text-gap);
        + li {
          margin-top: var(--p-message-content-gap);
        }
      }
      .p-messages-info-summary,
      .p-messages-success-summary,
      .p-messages-warn-summary,
      .p-messages-error-summary,
      .p-messages-fatal-summary {
        font-weight: var(--p-message-summary-font-weight);
      }
      .p-messages-info-detail,
      .p-messages-success-detail,
      .p-messages-warn-detail,
      .p-messages-error-detail,
      .p-messages-fatal-detail {
        font-weight: var(--p-message-detail-font-weight);
        overflow-wrap: break-word;
        text-wrap: pretty;
        min-width: 0;
      }
    }
    .p-messages-info-icon,
    .p-messages-success-icon,
    .p-messages-warn-icon,
    .p-messages-error-icon,
    .p-messages-fatal-icon {
      flex-shrink: 0;
      font-size: var(--_icon-size);
      line-height: 1;
      margin: calc((var(--p-typography-line-height) * var(--_font-size) - var(--_icon-size)) / 2) 0 0;
      color: var(--_color);
    }
    .p-messages-info-icon {
      --_icon: var(--p-message-info-icon);
    }
    .p-messages-success-icon {
      --_icon: var(--p-message-success-icon);
    }
    .p-messages-warn-icon {
      --_icon: var(--p-message-warn-icon);
    }
    .p-messages-error-icon {
      --_icon: var(--p-message-error-icon);
    }
    .p-messages-fatal-icon {
      --_icon: var(--p-message-fatal-icon);
    }
    .p-messages-close {
      order: 1;
      display: inline-flex;
      flex-shrink: 0;
      align-items: center;
      justify-content: center;
      width: var(--p-message-close-button-width);
      height: var(--p-message-close-button-height);
      padding: 0;
      border: 0 none;
      border-radius: var(--p-message-close-button-border-radius);
      background: transparent;
      color: var(--_color);
      text-align: center;
      text-decoration: none;
      cursor: pointer;
      -webkit-user-select: none;
      user-select: none;
      outline-color: transparent;
      transition:
        background var(--p-message-transition-duration),
        color var(--p-message-transition-duration),
        outline-color var(--p-message-transition-duration),
        box-shadow var(--p-message-transition-duration);
      &:hover {
        background: var(--_close-hover-bg);
      }
      &:focus-visible {
        outline: var(--p-message-close-button-focus-ring-width) var(--p-message-close-button-focus-ring-style) var(--_close-focus-ring-color);
        outline-offset: var(--p-message-close-button-focus-ring-offset);
        box-shadow: var(--_close-focus-ring-shadow);
      }
      .p-messages-close-icon {
        --_icon: var(--p-message-close-icon);
        font-size: var(--_close-icon-size);
        color: inherit;
      }
    }
  }
}

/* packages/components/src/forms/multiselectlistbox.css */
@layer primefaces.components {
  .p-multiselectlistbox {
    display: flow-root;
    .p-multiselectlistbox-listcontainer {
      float: inline-start;
      overflow: auto;
      width: auto;
      min-width: var(--p-multiselectlistbox-list-min-width);
      margin: 0;
      margin-inline-end: var(--p-multiselectlistbox-gap);
      padding: 0;
      background: var(--p-listbox-background);
      color: var(--p-listbox-color);
      border: 1px solid var(--p-listbox-border-color);
      border-radius: var(--p-listbox-border-radius);
      box-shadow: var(--p-listbox-shadow);
      &:last-child {
        margin-inline-end: 0;
      }
      .p-multiselectlistbox-header {
        padding: var(--p-multiselectlistbox-header-padding);
        margin: 0;
        border: 0 none;
        border-bottom: 1px solid var(--p-multiselectlistbox-header-border-color);
        border-start-start-radius: var(--p-listbox-border-radius);
        border-start-end-radius: var(--p-listbox-border-radius);
        background: var(--p-multiselectlistbox-header-background);
        color: var(--p-multiselectlistbox-header-color);
        font-size: var(--p-multiselectlistbox-header-font-size);
        font-weight: var(--p-multiselectlistbox-header-font-weight);
      }
      .p-multiselectlistbox-list,
      .p-multiselectlistbox-list:not(.p-state-disabled):hover,
      .p-multiselectlistbox-list:not(.p-state-disabled):focus {
        width: 100%;
        padding: var(--p-listbox-list-padding);
        background: transparent;
        color: inherit;
        border: 0 none;
        border-radius: 0;
        outline: 0 none;
        box-shadow: none;
      }
      .p-multiselectlistbox-list .p-multiselectlistbox-item {
        display: flex;
        align-items: center;
        gap: var(--p-multiselectlistbox-gap);
        padding: var(--p-listbox-option-padding);
        margin: 0;
        background: transparent;
        color: var(--p-listbox-option-color);
        font-size: var(--p-listbox-option-font-size);
        font-weight: var(--p-listbox-option-font-weight);
        border-radius: var(--p-listbox-option-border-radius);
        transition:
          background var(--p-list-option-transition-duration),
          color var(--p-list-option-transition-duration),
          border-color var(--p-list-option-transition-duration);
        & + .p-multiselectlistbox-item {
          margin-top: var(--p-listbox-list-gap);
        }
        &.p-state-hover {
          background: var(--p-listbox-option-focus-background);
          color: var(--p-listbox-option-focus-color);
        }
        &.p-state-highlight {
          background: var(--p-listbox-option-selected-background);
          color: var(--p-listbox-option-selected-color);
          font-weight: var(--p-listbox-option-selected-font-weight);
        }
      }
    }
    .p-multiselectlistbox-list {
      list-style-type: none;
      margin: 0;
    }
    .p-multiselectlistbox-header {
      text-align: center;
    }
    .p-multiselectlistbox-item {
      cursor: pointer;
      white-space: nowrap;
      border: 0 none;
      &:has(> ul)::after {
        content: " ";
        background: currentColor;
        forced-color-adjust: none;
        mask: var(--p-multiselectlistbox-submenu-icon) center / contain no-repeat;
        margin-inline-start: auto;
        font-style: normal;
        font-weight: normal;
        font-size: var(--p-icon-size);
        line-height: 1;
        color: var(--p-multiselectlistbox-item-icon-color);
      }
      &:has(> ul):dir(rtl)::after {
        scale: -1 1;
      }
      &.p-state-highlight:has(> ul)::after {
        color: inherit;
      }
    }
    &.p-state-disabled {
      opacity: 1;
      .p-multiselectlistbox-item {
        cursor: default;
      }
      .p-multiselectlistbox-listcontainer {
        background: var(--p-listbox-disabled-background);
        color: var(--p-listbox-disabled-color);
      }
      .p-multiselectlistbox-listcontainer .p-multiselectlistbox-list .p-multiselectlistbox-item {
        color: var(--p-listbox-disabled-color);
        &.p-state-highlight {
          color: var(--p-listbox-option-selected-color);
        }
      }
    }
  }
}

/* packages/components/src/notificationbar/notificationbar.css */
@layer primefaces.components {
  .p-notificationbar {
    display: none;
    position: fixed;
    left: 0;
    width: 100%;
    min-height: 100px;
    padding: var(--p-notificationbar-padding);
    background: var(--p-notificationbar-background);
    color: var(--p-notificationbar-color);
    border: 0 none;
    border-block: 1px solid var(--p-notificationbar-border-color);
    box-shadow: var(--p-notificationbar-shadow);
    .p-notificationbar-close {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      top: var(--p-notificationbar-close-button-offset);
      inset-inline-end: var(--p-notificationbar-close-button-offset);
      width: var(--p-notificationbar-close-button-width);
      height: var(--p-notificationbar-close-button-height);
      border-radius: var(--p-notificationbar-close-button-border-radius);
      background: transparent;
      color: var(--p-notificationbar-close-button-color);
      text-decoration: none;
      outline-color: transparent;
      transition:
        background var(--p-notificationbar-transition-duration),
        color var(--p-notificationbar-transition-duration),
        outline-color var(--p-notificationbar-transition-duration),
        box-shadow var(--p-notificationbar-transition-duration);
      &:hover {
        background: var(--p-notificationbar-close-button-hover-background);
        color: var(--p-notificationbar-close-button-hover-color);
      }
      &:focus-visible {
        outline: var(--p-notificationbar-close-button-focus-ring-width) var(--p-notificationbar-close-button-focus-ring-style) var(--p-notificationbar-close-button-focus-ring-color);
        outline-offset: var(--p-notificationbar-close-button-focus-ring-offset);
        box-shadow: var(--p-notificationbar-close-button-focus-ring-shadow);
      }
      .pi {
        font-size: var(--p-message-close-icon-size);
      }
    }
  }
  .p-notificationbar-close {
    position: absolute;
    cursor: pointer;
  }
}

/* packages/components/src/orderlist/orderlist.css */
@layer primefaces.components {
  .p-orderlist {
    display: table;
    .p-orderlist-caption {
      width: 200px;
      text-align: center;
      background: linear-gradient(var(--p-orderlist-caption-background), var(--p-orderlist-caption-background)), var(--p-listbox-background);
      border: 1px solid var(--p-orderlist-caption-border-color);
      border-bottom: 0 none;
      color: var(--p-orderlist-caption-color);
      padding: var(--p-orderlist-caption-padding);
      font-weight: var(--p-orderlist-caption-font-weight);
      border-radius: var(--p-listbox-border-radius) var(--p-listbox-border-radius) 0 0;
    }
    .p-orderlist-list {
      list-style-type: none;
      margin: 0;
      overflow: auto;
      height: 200px;
      width: 200px;
      border: 1px solid var(--p-listbox-border-color);
      background: var(--p-listbox-background);
      color: var(--p-listbox-color);
      padding: var(--p-listbox-list-padding);
      box-shadow: var(--p-listbox-shadow);
      border-radius: 0 0 var(--p-listbox-border-radius) var(--p-listbox-border-radius);
      .p-orderlist-item {
        padding: var(--p-listbox-option-padding);
        margin: 0;
        border: 0 none;
        color: var(--p-listbox-option-color);
        font-size: var(--p-listbox-option-font-size);
        font-weight: var(--p-listbox-option-font-weight);
        border-radius: var(--p-listbox-option-border-radius);
        transition:
          background var(--p-listbox-transition-duration),
          color var(--p-listbox-transition-duration),
          border-color var(--p-listbox-transition-duration),
          box-shadow var(--p-listbox-transition-duration);
      }
      .p-orderlist-item + .p-orderlist-item {
        margin-top: var(--p-listbox-list-gap);
      }
      .p-orderlist-item:not(.p-state-highlight):hover,
      .p-orderlist-item.p-state-hover {
        background: var(--p-listbox-option-focus-background);
        color: var(--p-listbox-option-focus-color);
      }
      .p-orderlist-item.p-state-highlight {
        background: var(--p-listbox-option-selected-background);
        color: var(--p-listbox-option-selected-color);
        font-weight: var(--p-listbox-option-selected-font-weight);
      }
      .p-orderlist-item.p-state-highlight.p-sortable-placeholder {
        background: var(--p-listbox-option-selected-focus-background);
      }
      &:first-child {
        border-radius: var(--p-listbox-border-radius);
      }
    }
    .p-button {
      display: flex;
    }
    .p-orderlist-item {
      cursor: pointer;
    }
    table {
      width: 100%;
      border-collapse: collapse;
    }
    .p-orderlist-controls {
      display: flex;
      flex-direction: column;
      align-items: center;
      justify-content: center;
      .p-button {
        margin-bottom: var(--p-orderlist-controls-gap);
      }
      .p-orderlist-move-up-icon {
        --_icon: var(--p-orderlist-move-up-icon);
      }
      .p-orderlist-move-top-icon {
        --_icon: var(--p-orderlist-move-top-icon);
      }
      .p-orderlist-move-down-icon {
        --_icon: var(--p-orderlist-move-down-icon);
      }
      .p-orderlist-move-bottom-icon {
        --_icon: var(--p-orderlist-move-bottom-icon);
      }
    }
    .ui-g > div {
      padding: 0;
      &.p-orderlist-controls {
        padding: 0;
        padding-inline-end: var(--p-orderlist-gap);
      }
    }
    &.p-orderlist-controls-right .ui-g > div.p-orderlist-controls {
      padding: 0;
      padding-inline-start: var(--p-orderlist-gap);
    }
    &.p-state-disabled {
      .p-orderlist-item,
      .p-button {
        cursor: default;
      }
      .p-orderlist-list {
        overflow: hidden;
        background: var(--p-listbox-disabled-background);
        color: var(--p-listbox-disabled-color);
      }
    }
    &.ui-grid-responsive {
      display: block;
      width: 100%;
      .p-orderlist-list,
      .p-orderlist-caption {
        width: 100%;
      }
      .p-orderlist-controls .p-button {
        width: 100%;
      }
    }
  }
  @media (max-width: 640px) {
    .p-orderlist.ui-grid-responsive .ui-g > div {
      width: 100%;
      &.p-orderlist-controls {
        text-align: center;
        padding: 0;
        flex-direction: row;
        .p-button {
          display: inline-flex;
          width: 20%;
          margin-top: var(--p-orderlist-controls-gap);
          margin-inline-end: var(--p-orderlist-controls-gap);
        }
        .p-button:last-child {
          margin-inline-end: 0;
        }
      }
    }
  }
}

/* packages/components/src/forms/outputlabel.css */
@layer primefaces.components {
  .p-outputlabel {
    color: var(--p-label-text-color);
    font-size: var(--p-label-font-size);
    font-weight: var(--p-label-font-weight);
    .p-outputlabel-label {
      overflow: hidden;
    }
    &.p-state-error {
      color: var(--p-label-invalid-color);
    }
    &.p-state-disabled {
      opacity: var(--p-label-disabled-opacity);
    }
    .p-outputlabel-rfi {
      margin-left: var(--p-label-required-indicator-gap);
      color: var(--p-label-required-indicator-color);
    }
  }
  .p-outputlabel-rtl .p-outputlabel-rfi {
    margin-left: 0;
    margin-right: var(--p-label-required-indicator-gap);
  }
}

/* packages/components/src/outputpanel/outputpanel.css */
@layer primefaces.components {
  div.p-outputpanel:has(> .p-outputpanel-loading) {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: var(--p-outputpanel-loading-padding);
  }
  .p-outputpanel .p-outputpanel-loading {
    font-size: var(--p-outputpanel-loading-icon-size);
    color: var(--p-outputpanel-loading-icon-color);
    animation: p-spin var(--p-outputpanel-loading-icon-animation-duration) linear infinite;
  }
  .p-outputpanel-loading-icon {
    --_icon: var(--p-outputpanel-loading-icon);
  }
}

/* packages/components/src/overlaypanel/overlaypanel.css */
@layer primefaces.components {
  .p-overlaypanel {
    position: absolute;
    display: none;
    margin: 0;
    background: var(--p-popover-background);
    color: var(--p-popover-color);
    border: 1px solid var(--p-popover-border-color);
    border-radius: var(--p-popover-border-radius);
    box-shadow: var(--p-popover-shadow);
    .p-overlaypanel-content {
      padding: var(--p-popover-content-padding);
    }
    .p-overlaypanel-close {
      position: absolute;
      display: inline-flex;
      align-items: center;
      justify-content: center;
      width: var(--p-overlaypanel-close-button-size);
      height: var(--p-overlaypanel-close-button-size);
      inset-inline-end: calc(-1 * var(--p-overlaypanel-close-button-size) / 2);
      top: calc(-1 * var(--p-overlaypanel-close-button-size) / 2);
      background: var(--p-overlaypanel-close-button-background);
      color: var(--p-overlaypanel-close-button-color);
      border: 0 none;
      border-radius: 50%;
      padding: 0;
      text-decoration: none;
      outline-color: transparent;
      transition:
        background var(--p-overlaypanel-close-button-transition-duration),
        color var(--p-overlaypanel-close-button-transition-duration),
        outline-color var(--p-overlaypanel-close-button-transition-duration),
        box-shadow var(--p-overlaypanel-close-button-transition-duration);
      &:hover,
      &.p-state-hover {
        background: var(--p-overlaypanel-close-button-hover-background);
        color: var(--p-overlaypanel-close-button-hover-color);
      }
      &:focus-visible {
        outline: var(--p-overlaypanel-close-button-focus-ring-width) var(--p-overlaypanel-close-button-focus-ring-style) var(--p-overlaypanel-close-button-focus-ring-color);
        outline-offset: var(--p-overlaypanel-close-button-focus-ring-offset);
        box-shadow: var(--p-overlaypanel-close-button-focus-ring-shadow);
      }
      .p-overlaypanel-close-icon {
        --_icon: var(--p-overlaypanel-close-icon);
        color: inherit;
      }
    }
  }
}

/* packages/components/src/panel/panel.css */
@layer primefaces.components {
  .p-panel {
    background: var(--p-panel-background);
    color: var(--p-panel-color);
    border: 1px solid var(--p-panel-border-color);
    border-radius: var(--p-panel-border-radius);
    .p-panel-titlebar {
      display: flex;
      align-items: center;
      padding: var(--p-panel-header-padding);
      background: var(--p-panel-header-background);
      color: var(--p-panel-header-color);
      font-weight: var(--p-panel-title-font-weight);
      border-style: solid;
      border-width: var(--p-panel-header-border-width);
      border-color: var(--p-panel-header-border-color);
      border-radius: var(--p-panel-header-border-radius);
      &:has(> .p-panel-titlebar-icon) {
        padding: var(--p-panel-toggleable-header-padding);
      }
    }
    .p-panel-titlebar-toggleable {
      cursor: pointer;
    }
    .p-panel-title {
      margin: 0;
      margin-inline-end: auto;
      font-size: var(--p-panel-title-font-size);
      font-weight: var(--p-panel-title-font-weight);
      text-wrap: balance;
    }
    .p-panel-titlebar {
      > .p-panel-actions {
        order: 1;
      }
      > .p-panel-titlebar-icon {
        &[id$=_menu] {
          order: 2;
        }
        &[id$=_toggler] {
          order: 3;
        }
        &[id$=_closer] {
          order: 4;
        }
      }
      .p-panel-titlebar-icon {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        flex-shrink: 0;
        width: var(--p-button-icon-only-width);
        height: var(--p-button-icon-only-width);
        margin: 0;
        padding: 0;
        background: transparent;
        color: var(--p-button-text-secondary-color);
        border: 0 none;
        border-radius: 50%;
        text-align: center;
        text-decoration: none;
        -webkit-user-select: none;
        user-select: none;
        outline-color: transparent;
        transition:
          background var(--p-button-transition-duration),
          color var(--p-button-transition-duration),
          outline-color var(--p-button-transition-duration),
          box-shadow var(--p-button-transition-duration);
        &:hover {
          background: var(--p-button-text-secondary-hover-background);
          color: var(--p-button-text-secondary-color);
        }
        &:active {
          background: var(--p-button-text-secondary-active-background);
        }
        &:focus-visible {
          outline: var(--p-button-focus-ring-width) var(--p-button-focus-ring-style) var(--p-button-secondary-focus-ring-color);
          outline-offset: var(--p-button-focus-ring-offset);
          box-shadow: var(--p-button-secondary-focus-ring-shadow);
        }
        .p-panel-close-icon {
          --_icon: var(--p-panel-close-icon);
        }
        .p-panel-toggle-icon {
          --_icon: var(--p-panel-toggle-expanded-icon);
        }
        &[aria-expanded=false] .p-panel-toggle-icon {
          --_icon: var(--p-panel-toggle-collapsed-icon);
        }
        .p-panel-menu-icon {
          --_icon: var(--p-panel-menu-icon);
        }
      }
    }
    .p-panel-titlebar-icon {
      cursor: pointer;
    }
    .p-panel-content {
      padding: var(--p-panel-content-padding);
      background: transparent;
      color: inherit;
      border: 0 none;
    }
    > .p-panel-content:first-child {
      padding-top: var(--p-panel-header-padding);
    }
    .p-panel-footer {
      margin: 0;
      padding: var(--p-panel-footer-padding);
      background: transparent;
      color: inherit;
      border: 0 none;
      text-align: start;
    }
    &.p-panel-collapsed .p-panel-titlebar,
    &:not(:has(> .p-panel-footer)):has(> .p-panel-content[style*="display:none"]) > .p-panel-titlebar {
      border-end-start-radius: var(--p-panel-border-radius);
      border-end-end-radius: var(--p-panel-border-radius);
    }
    &.p-panel-collapsed-h {
      width: 42px;
      .p-panel-title {
        display: none;
      }
      .p-panel-titlebar {
        position: relative;
        justify-content: center;
        padding-inline: 0;
      }
    }
  }
}

/* packages/components/src/panelgrid/panelgrid.css */
@layer primefaces.components {
  .p-panelgrid {
    border-collapse: collapse;
    .p-panelgrid-header {
      text-align: center;
    }
    .p-panelgrid-footer {
      text-align: start;
    }
    .p-panelgrid-cell {
      padding: var(--p-panelgrid-cell-padding);
      background: var(--p-panelgrid-cell-background);
      color: var(--p-panelgrid-cell-color);
      border: 1px solid var(--p-panelgrid-cell-border-color);
    }
    .p-panelgrid-cell.p-component-header,
    > div.p-panelgrid-header,
    > div.p-panelgrid-footer {
      padding: var(--p-panelgrid-header-cell-padding);
      background: var(--p-panelgrid-header-cell-background);
      color: var(--p-panelgrid-header-cell-color);
      border: 1px solid var(--p-panelgrid-header-cell-border-color);
      font-size: var(--p-panelgrid-header-cell-font-size);
      font-weight: var(--p-panelgrid-header-cell-font-weight);
    }
    > div {
      &.p-panelgrid-content {
        background: var(--p-panelgrid-cell-background);
        color: var(--p-panelgrid-cell-color);
        border: 1px solid var(--p-panelgrid-cell-border-color);
      }
      &.p-panelgrid-header + div.p-panelgrid-content,
      &.p-panelgrid-content + div.p-panelgrid-footer {
        border-top: 0 none;
      }
    }
    &.p-noborder .p-component-content,
    &.p-noborder .p-component-header,
    &.p-noborder .p-panelgrid-cell,
    &.p-noborder .p-panelgrid-cell.p-component-header,
    &.p-noborder > div.p-panelgrid-header,
    &.p-noborder > div.p-panelgrid-content,
    &.p-noborder > div.p-panelgrid-footer,
    .grid .p-panelgrid-cell,
    .p-grid .p-panelgrid-cell,
    .ui-grid-responsive .p-panelgrid-cell {
      border: 0 none;
    }
    &.p-panelgrid-blank .p-panelgrid-content.p-component-content,
    &.p-panelgrid-blank .p-panelgrid-header.p-component-header,
    &.p-panelgrid-blank .p-panelgrid-footer.p-component-header,
    &.p-panelgrid-blank .p-panelgrid-header > tr.p-component-header,
    &.p-panelgrid-blank .p-panelgrid-footer > tr.p-component-header,
    &.p-panelgrid-blank tbody > tr.p-component-content,
    &.p-panelgrid-blank tbody > tr.p-component-content > td.p-panelgrid-cell,
    &.p-panelgrid-blank .p-panelgrid-cell,
    &.p-panelgrid-blank > div.p-panelgrid-header,
    &.p-panelgrid-blank > div.p-panelgrid-content,
    &.p-panelgrid-blank > div.p-panelgrid-footer {
      background: none;
      border: 0 none;
    }
    .p-panelgrid-cell.p-panelgrid-nopad {
      padding: 0;
    }
  }
  @media (max-width: 640px) {
    .p-panelgrid {
      .ui-grid-responsive .ui-grid-row {
        border-top: 1px solid var(--p-panelgrid-cell-border-color);
        &:first-child {
          border-top: 0 none;
        }
      }
      &.p-noborder .ui-grid-responsive .ui-grid-row {
        border: 0 none;
      }
    }
  }
}

/* packages/components/src/menu/panelmenu.css */
@layer primefaces.components {
  .p-panelmenu {
    width: auto;
    display: flex;
    flex-direction: column;
    gap: var(--p-panelmenu-gap);
    .p-panelmenu-panel {
      margin: 0;
      background: var(--p-panelmenu-panel-background);
      color: var(--p-panelmenu-panel-color);
      border-style: solid;
      border-width: var(--p-panelmenu-panel-border-width);
      border-color: var(--p-panelmenu-panel-border-color);
      border-radius: var(--p-panelmenu-panel-border-radius);
      padding: var(--p-panelmenu-panel-padding);
      &:first-child {
        border-width: var(--p-panelmenu-panel-first-border-width);
        border-start-start-radius: var(--p-panelmenu-panel-first-top-border-radius);
        border-start-end-radius: var(--p-panelmenu-panel-first-top-border-radius);
      }
      &:last-child {
        border-width: var(--p-panelmenu-panel-last-border-width);
        border-end-start-radius: var(--p-panelmenu-panel-last-bottom-border-radius);
        border-end-end-radius: var(--p-panelmenu-panel-last-bottom-border-radius);
      }
    }
    .p-panelmenu-header {
      cursor: pointer;
      position: relative;
      margin: 0;
      &.p-state-disabled,
      &.p-state-disabled a {
        cursor: default;
      }
    }
    h3.p-panelmenu-header {
      display: flex;
      align-items: center;
      gap: var(--p-panelmenu-item-gap);
      padding: var(--p-panelmenu-item-padding);
      background: transparent;
      color: var(--p-panelmenu-item-color);
      border: 0 none;
      border-radius: var(--p-panelmenu-item-border-radius);
      font-size: var(--p-panelmenu-item-label-font-size);
      font-weight: var(--p-panelmenu-item-label-font-weight);
      -webkit-user-select: none;
      user-select: none;
      outline: 0 none;
      transition:
        background var(--p-panelmenu-transition-duration),
        color var(--p-panelmenu-transition-duration),
        outline-color var(--p-panelmenu-transition-duration),
        box-shadow var(--p-panelmenu-transition-duration);
      a {
        display: block;
        flex: 1 1 auto;
        padding: 0;
        outline: 0 none;
        color: inherit;
        text-decoration: none;
      }
      :is(.p-menuitem-icon, .p-submenu-icon) {
        color: var(--p-panelmenu-item-icon-color);
        font-size: var(--p-panelmenu-item-icon-size);
      }
      .p-panelmenu-header-icon {
        --_icon: var(--p-panelmenu-header-collapsed-icon);
        font-size: var(--p-panelmenu-item-icon-size);
        color: var(--p-panelmenu-submenu-icon-color);
      }
      &.p-state-active .p-panelmenu-header-icon {
        --_icon: var(--p-panelmenu-header-expanded-icon);
      }
      &:not(.p-state-active) .p-panelmenu-header-icon:dir(rtl) {
        scale: -1 1;
      }
      &:not(.p-state-disabled):hover,
      &.p-state-hover,
      &:not(.p-state-disabled):focus-visible,
      &:not(.p-state-disabled):has(> a:focus-visible) {
        background: var(--p-panelmenu-item-focus-background);
        color: var(--p-panelmenu-item-focus-color);
      }
      &:not(.p-state-disabled):hover :is(.p-menuitem-icon, .p-submenu-icon),
      &.p-state-hover :is(.p-menuitem-icon, .p-submenu-icon),
      &:not(.p-state-disabled):focus-visible :is(.p-menuitem-icon, .p-submenu-icon),
      &:not(.p-state-disabled):has(> a:focus-visible) :is(.p-menuitem-icon, .p-submenu-icon) {
        color: var(--p-panelmenu-item-icon-focus-color);
      }
      &:not(.p-state-disabled):hover .p-panelmenu-header-icon,
      &.p-state-hover .p-panelmenu-header-icon,
      &:not(.p-state-disabled):focus-visible .p-panelmenu-header-icon,
      &:not(.p-state-disabled):has(> a:focus-visible) .p-panelmenu-header-icon {
        color: var(--p-panelmenu-submenu-icon-focus-color);
      }
    }
    .p-panelmenu-content {
      position: relative;
      overflow: auto;
      outline: none;
      padding: 0;
      margin: 0;
      background: transparent;
      color: inherit;
      border: 0 none;
    }
    .p-menu-list {
      list-style: none;
      padding: 0;
      margin: 0;
      .p-menu-list {
        padding: 0;
        padding-inline-start: var(--p-panelmenu-submenu-indent);
        margin: 0;
      }
    }
    .p-menuitem {
      margin: 0;
      padding: 0;
    }
    .p-menuitem-link {
      outline: none;
      text-decoration: none;
      cursor: pointer;
      position: relative;
    }
    .p-panelmenu-content .p-menuitem-link {
      display: flex;
      align-items: center;
      gap: var(--p-panelmenu-item-gap);
      padding: var(--p-panelmenu-item-padding);
      color: var(--p-panelmenu-item-color);
      border: 0 none;
      border-radius: var(--p-panelmenu-item-border-radius);
      line-height: inherit;
      -webkit-user-select: none;
      user-select: none;
      overflow: hidden;
      outline-color: transparent;
      transition:
        background var(--p-panelmenu-transition-duration),
        color var(--p-panelmenu-transition-duration),
        outline-color var(--p-panelmenu-transition-duration),
        box-shadow var(--p-panelmenu-transition-duration);
      > span:is(.p-menuitem-icon, .p-submenu-icon) {
        color: var(--p-panelmenu-item-icon-color);
        font-size: var(--p-panelmenu-item-icon-size);
      }
      > .p-panelmenu-submenu-icon {
        --_icon: var(--p-panelmenu-submenu-collapsed-icon);
        font-size: var(--p-panelmenu-item-icon-size);
        color: var(--p-panelmenu-submenu-icon-color);
      }
      &[aria-expanded=true] > .p-panelmenu-submenu-icon {
        --_icon: var(--p-panelmenu-submenu-expanded-icon);
      }
      &:not([aria-expanded=true]) > .p-panelmenu-submenu-icon:dir(rtl) {
        scale: -1 1;
      }
      .p-menuitem-text {
        display: inline-block;
        font-size: var(--p-panelmenu-item-label-font-size);
        font-weight: var(--p-panelmenu-item-label-font-weight);
      }
      &:not(.p-state-disabled):hover,
      &.p-state-hover,
      &:has(> .p-menuitem-outline),
      &:not(.p-state-disabled):focus-visible {
        background: var(--p-panelmenu-item-focus-background);
        color: var(--p-panelmenu-item-focus-color);
      }
      .p-menuitem-text.p-menuitem-outline {
        outline: 0 none;
      }
      &:not(.p-state-disabled):hover span:is(.p-menuitem-icon, .p-submenu-icon),
      &.p-state-hover span:is(.p-menuitem-icon, .p-submenu-icon),
      &:has(> .p-menuitem-outline) span:is(.p-menuitem-icon, .p-submenu-icon),
      &:not(.p-state-disabled):focus-visible span:is(.p-menuitem-icon, .p-submenu-icon) {
        color: var(--p-panelmenu-item-icon-focus-color);
      }
      &:not(.p-state-disabled):hover span.p-panelmenu-icon,
      &.p-state-hover span.p-panelmenu-icon,
      &:has(> .p-menuitem-outline) span.p-panelmenu-icon,
      &:not(.p-state-disabled):focus-visible span.p-panelmenu-icon {
        color: var(--p-panelmenu-submenu-icon-focus-color);
      }
      &:not(.p-state-disabled):hover .p-menuitem-text,
      &.p-state-hover .p-menuitem-text,
      &:has(> .p-menuitem-outline) .p-menuitem-text,
      &:not(.p-state-disabled):focus-visible .p-menuitem-text {
        color: var(--p-panelmenu-item-focus-color);
      }
    }
  }
}

/* packages/components/src/forms/password.css */
@layer primefaces.components {
  .p-password-panel-overlay {
    position: absolute;
  }
  .p-password-masked.p-password,
  .p-password-unmasked.p-password {
    > input::-ms-reveal,
    > input::-ms-clear {
      display: none;
    }
  }
  .p-password {
    .p-password-icon {
      cursor: pointer;
      font-size: inherit;
      color: var(--p-password-icon-color);
      border-radius: var(--p-border-radius-xs);
      outline-color: transparent;
      &:focus-visible {
        outline: var(--p-focus-ring-width) var(--p-focus-ring-style) var(--p-focus-ring-color);
        outline-offset: var(--p-focus-ring-offset);
        box-shadow: var(--p-focus-ring-shadow);
      }
    }
    .p-password-toggle-icon {
      --_icon: var(--p-password-show-icon);
    }
    &.p-password-unmasked .p-password-toggle-icon {
      --_icon: var(--p-password-hide-icon);
    }
  }
  .p-password-panel {
    &.p-component {
      background: var(--p-password-overlay-background);
      color: var(--p-password-overlay-color);
      padding: var(--p-password-overlay-padding);
      border: 1px solid var(--p-password-overlay-border-color);
      margin: 0;
      width: auto;
      min-width: 150px;
      box-shadow: var(--p-password-overlay-shadow);
      border-radius: var(--p-password-overlay-border-radius);
    }
    &.p-password-panel-inline {
      margin-top: var(--p-password-content-gap);
      box-shadow: none;
    }
    .p-password-meter {
      height: var(--p-password-meter-height);
      max-height: 10px;
      padding: 0;
      margin: 0;
      overflow: hidden;
      font-size: 0;
      line-height: 0;
      border-radius: var(--p-password-meter-border-radius);
      background-color: var(--p-password-meter-background);
      background-image:
        linear-gradient(
          to bottom,
          transparent 10px,
          var(--p-password-strength-weak-background) 10px,
          var(--p-password-strength-weak-background) 20px,
          transparent 20px),
        linear-gradient(
          to bottom,
          transparent 20px,
          var(--p-password-strength-medium-background) 20px,
          var(--p-password-strength-medium-background) 30px,
          transparent 30px),
        linear-gradient(
          to bottom,
          transparent 30px,
          var(--p-password-strength-strong-background) 30px);
      background-size:
        33.333% 40px,
        66.666% 40px,
        100% 40px;
      background-repeat: no-repeat;
    }
    .p-password-info {
      margin-top: var(--p-password-content-gap);
      font-size: var(--p-password-meter-text-font-size);
      font-weight: var(--p-password-meter-text-font-weight);
    }
  }
  .p-fluid .p-password,
  .p-fluid .p-password input {
    width: 100%;
  }
}

/* packages/components/src/picklist/picklist.css */
@layer primefaces.components {
  .p-picklist {
    display: table;
    > div {
      float: none;
      display: table-cell;
      vertical-align: top;
    }
    .p-picklist-buttons {
      height: 200px;
      vertical-align: middle;
      padding: 0 var(--p-picklist-gap);
      button {
        pointer-events: auto;
      }
      .p-button {
        margin-bottom: var(--p-picklist-controls-gap);
      }
      .p-picklist-move-up-icon {
        --_icon: var(--p-picklist-move-up-icon);
      }
      .p-picklist-move-top-icon {
        --_icon: var(--p-picklist-move-top-icon);
      }
      .p-picklist-move-down-icon {
        --_icon: var(--p-picklist-move-down-icon);
      }
      .p-picklist-move-bottom-icon {
        --_icon: var(--p-picklist-move-bottom-icon);
      }
      .p-picklist-move-to-target-icon {
        --_icon: var(--p-picklist-move-to-target-icon);
      }
      .p-picklist-move-all-to-target-icon {
        --_icon: var(--p-picklist-move-all-to-target-icon);
      }
      .p-picklist-move-to-source-icon {
        --_icon: var(--p-picklist-move-to-source-icon);
      }
      .p-picklist-move-all-to-source-icon {
        --_icon: var(--p-picklist-move-all-to-source-icon);
      }
      .p-picklist-move-to-target-vertical-icon {
        --_icon: var(--p-picklist-move-to-target-vertical-icon);
      }
      .p-picklist-move-all-to-target-vertical-icon {
        --_icon: var(--p-picklist-move-all-to-target-vertical-icon);
      }
      .p-picklist-move-to-source-vertical-icon {
        --_icon: var(--p-picklist-move-to-source-vertical-icon);
      }
      .p-picklist-move-all-to-source-vertical-icon {
        --_icon: var(--p-picklist-move-all-to-source-vertical-icon);
      }
    }
    .p-button {
      display: flex;
    }
    .p-button-text-icon-left {
      width: 100%;
    }
    .p-picklist-caption {
      text-align: center;
      background: linear-gradient(var(--p-picklist-caption-background), var(--p-picklist-caption-background)), var(--p-listbox-background);
      border: 1px solid var(--p-picklist-caption-border-color);
      border-bottom: 0 none;
      color: var(--p-picklist-caption-color);
      padding: var(--p-picklist-caption-padding);
      font-weight: var(--p-picklist-caption-font-weight);
      border-radius: var(--p-listbox-border-radius) var(--p-listbox-border-radius) 0 0;
    }
    table {
      width: 100%;
      border-collapse: collapse;
    }
    .p-picklist-filter {
      width: 100%;
      box-sizing: border-box;
    }
    .p-picklist-filter-container {
      position: relative;
      margin: 0;
      padding: 0;
      .p-picklist-filter {
        padding-block: var(--p-inputtext-padding-y);
        padding-inline: var(--p-inputtext-padding-x);
        padding-inline-start: calc(2 * var(--p-inputtext-padding-x) + var(--p-icon-size));
        margin-bottom: var(--p-picklist-controls-gap);
      }
      .p-picklist-filter-icon {
        --_icon: var(--p-picklist-filter-icon);
        position: absolute;
        inset-inline-start: var(--p-inputtext-padding-x);
        top: 50%;
        margin-top: calc(-1 * var(--p-icon-size) / 2 - var(--p-picklist-controls-gap) / 2);
        color: var(--p-form-field-icon-color);
      }
    }
    .p-picklist-list {
      list-style-type: none;
      margin: 0;
      overflow: auto;
      height: 200px;
      width: 200px;
      border: 1px solid var(--p-listbox-border-color);
      background: var(--p-listbox-background);
      color: var(--p-listbox-color);
      padding: var(--p-listbox-list-padding);
      box-shadow: var(--p-listbox-shadow);
      border-radius: var(--p-listbox-border-radius);
      li {
        overflow-wrap: break-word;
      }
    }
    .p-picklist-caption + .p-picklist-list {
      border-top-left-radius: 0;
      border-top-right-radius: 0;
    }
    .p-picklist-item {
      cursor: pointer;
    }
    .p-picklist-list .p-picklist-item {
      padding: var(--p-listbox-option-padding);
      border: 0 none;
      margin: 0;
      color: var(--p-listbox-option-color);
      font-size: var(--p-listbox-option-font-size);
      font-weight: var(--p-listbox-option-font-weight);
      border-radius: var(--p-listbox-option-border-radius);
      transition:
        background var(--p-listbox-transition-duration),
        color var(--p-listbox-transition-duration),
        border-color var(--p-listbox-transition-duration),
        box-shadow var(--p-listbox-transition-duration);
      + .p-picklist-item {
        margin-top: var(--p-listbox-list-gap);
      }
      &:not(.p-state-highlight, .p-state-disabled):hover,
      &.p-state-hover {
        background: var(--p-listbox-option-focus-background);
        color: var(--p-listbox-option-focus-color);
      }
      &.p-state-highlight {
        background: var(--p-listbox-option-selected-background);
        color: var(--p-listbox-option-selected-color);
        font-weight: var(--p-listbox-option-selected-font-weight);
      }
      &.p-state-highlight.p-sortable-placeholder {
        background: var(--p-listbox-option-selected-focus-background);
      }
      &.p-picklist-outline {
        outline: var(--p-focus-ring-width) var(--p-focus-ring-style) var(--p-focus-ring-color);
        outline-offset: calc(-1 * var(--p-focus-ring-width));
        box-shadow: var(--p-focus-ring-shadow);
      }
      .p-chkbox {
        margin-inline-end: var(--p-listbox-checkmark-gutter-end);
      }
    }
    &.p-picklist-vertical {
      > div {
        float: none;
        display: table-row;
        vertical-align: top;
      }
      .p-picklist-buttons {
        text-align: center;
        height: auto;
        padding: var(--p-picklist-controls-gap) 0;
        .p-button {
          display: inline-flex;
          margin: 0;
          margin-inline-end: var(--p-picklist-controls-gap);
        }
      }
    }
    &.p-picklist-responsive {
      width: 100%;
      * {
        box-sizing: border-box;
      }
      .p-picklist-buttons button {
        width: 100%;
      }
      .p-picklist-list {
        width: auto;
      }
    }
    &.p-picklist-responsive:not(.p-picklist-vertical) {
      display: grid;
      grid-template-columns: 45% 10% 45%;
      &:has(> .p-picklist-source-controls) {
        grid-template-columns: auto 35% 10% 45%;
      }
      &:has(> .p-picklist-target-controls) {
        grid-template-columns: 45% 10% 35% auto;
      }
      &:has(> .p-picklist-source-controls):has(> .p-picklist-target-controls) {
        grid-template-columns: auto 35% 10% 35% auto;
      }
      > div {
        display: block;
      }
      > .p-picklist-buttons {
        display: flex;
        flex-direction: column;
        justify-content: center;
        height: auto;
      }
    }
    &.p-picklist-responsive.p-picklist-vertical {
      display: block;
      > div {
        display: block;
      }
      > :where(.p-picklist-buttons) {
        padding: 0;
      }
    }
  }
  .p-picklist-list.p-picklist-source,
  .p-picklist-list.p-picklist-target {
    outline: none;
  }
  .p-picklist-outline {
    z-index: 1;
  }
  @media (max-width: 640px) {
    .p-picklist.p-picklist-responsive {
      > div {
        grid-column: 1 / -1;
      }
      > div.p-hidden-accessible {
        display: none;
      }
      .p-picklist-buttons {
        text-align: center;
        height: auto;
        padding: var(--p-picklist-controls-gap) 0;
        button {
          display: inline-flex;
          width: 20%;
        }
        .p-button {
          margin-top: var(--p-picklist-controls-gap);
          margin-inline-end: var(--p-picklist-controls-gap);
        }
        .p-button:last-child {
          margin-inline-end: 0;
        }
        .p-button .p-picklist-move-to-target-icon {
          --_icon: var(--p-picklist-move-to-target-vertical-icon);
        }
        .p-button .p-picklist-move-all-to-target-icon {
          --_icon: var(--p-picklist-move-all-to-target-vertical-icon);
        }
        .p-button .p-picklist-move-to-source-icon {
          --_icon: var(--p-picklist-move-to-source-vertical-icon);
        }
        .p-button .p-picklist-move-all-to-source-icon {
          --_icon: var(--p-picklist-move-all-to-source-vertical-icon);
        }
      }
    }
  }
  .p-picklist .p-picklist-list:focus-visible {
    outline: var(--p-focus-ring-width) var(--p-focus-ring-style) var(--p-focus-ring-color);
    outline-offset: calc(-1 * var(--p-focus-ring-width));
    box-shadow: var(--p-focus-ring-shadow);
  }
}

/* packages/components/src/progressbar/progressbar.css */
@layer primefaces.components {
  .p-progressbar {
    --_value-bg: var(--p-progressbar-value-background);
    --_label-color: var(--p-progressbar-label-color);
    position: relative;
    overflow: hidden;
    text-align: left;
    height: var(--p-progressbar-height);
    background: var(--p-progressbar-background);
    border-radius: var(--p-progressbar-border-radius);
    .p-progressbar-value {
      border: 0 none;
      background: var(--_value-bg);
      border-radius: var(--p-progressbar-border-radius);
    }
    .p-progressbar-label {
      color: var(--_label-color);
      font-size: var(--p-progressbar-label-font-size);
      font-weight: var(--p-progressbar-label-font-weight);
      line-height: var(--p-progressbar-height);
      font-variant-numeric: tabular-nums;
    }
    &.p-progressbar-success {
      --_value-bg: var(--p-progressbar-success-value-background);
      --_label-color: var(--p-progressbar-success-label-color);
    }
    &.p-progressbar-info {
      --_value-bg: var(--p-progressbar-info-value-background);
      --_label-color: var(--p-progressbar-info-label-color);
    }
    &.p-progressbar-warning {
      --_value-bg: var(--p-progressbar-warn-value-background);
      --_label-color: var(--p-progressbar-warn-label-color);
    }
    &.p-progressbar-danger {
      --_value-bg: var(--p-progressbar-danger-value-background);
      --_label-color: var(--p-progressbar-danger-label-color);
    }
  }
  .p-state-highlight .p-progressbar {
    background: color-mix(in srgb, var(--p-highlight-color), transparent 70%);
    &:not(.p-progressbar-success, .p-progressbar-info, .p-progressbar-warning, .p-progressbar-danger) {
      --_value-bg: var(--p-highlight-color);
      --_label-color: var(--p-highlight-background);
    }
  }
  .p-progressbar-determinate {
    .p-progressbar-value {
      height: 100%;
      width: 0%;
      position: absolute;
      display: none;
      overflow: hidden;
    }
    .p-progressbar-label {
      text-align: center;
      height: 100%;
      width: 100%;
      position: absolute;
      display: none;
      white-space: nowrap;
      padding-inline: calc(var(--p-progressbar-height) / 2);
    }
  }
  .p-progressbar-indeterminate .p-progressbar-value {
    &::before,
    &::after {
      content: "";
      position: absolute;
      background-color: inherit;
      top: 0;
      left: 0;
      bottom: 0;
      width: 100%;
      transform-origin: left center;
      transform: scaleX(0);
      will-change: transform;
    }
    &::before {
      animation: p-progressbar-indeterminate-anim 2.1s cubic-bezier(0.65, 0.815, 0.735, 0.395) infinite;
    }
    &::after {
      animation: p-progressbar-indeterminate-anim-short 2.1s cubic-bezier(0.165, 0.84, 0.44, 1) infinite;
      animation-delay: 1.15s;
    }
    @media (prefers-reduced-motion: reduce) {
      &::before {
        transform: none;
        animation: none;
        opacity: 0.5;
      }
      &::after {
        content: none;
      }
    }
  }
  @keyframes p-progressbar-indeterminate-anim {
    0% {
      transform: translateX(-35%) scaleX(0.35);
    }
    60% {
      transform: translateX(100%) scaleX(0.9);
    }
    100% {
      transform: translateX(100%) scaleX(0.9);
    }
  }
  @keyframes p-progressbar-indeterminate-anim-short {
    0% {
      transform: translateX(-200%) scaleX(2);
    }
    60% {
      transform: translateX(107%) scaleX(0.01);
    }
    100% {
      transform: translateX(107%) scaleX(0.01);
    }
  }
}

/* packages/components/src/rating/rating.css */
@layer primefaces.components {
  .p-rating-star,
  .p-rating-cancel {
    display: inline-block;
    cursor: pointer;
    a {
      display: block;
      text-decoration: none;
    }
  }
  .p-rating {
    display: inline-flex;
    align-items: center;
    gap: var(--p-rating-gap);
    &.p-state-disabled .p-rating-star,
    &.p-state-readonly .p-rating-star,
    &.p-state-readonly .p-rating-cancel,
    &.p-state-disabled .p-rating-cancel {
      cursor: default;
    }
    .p-rating-cancel,
    .p-rating-star {
      border-radius: 50%;
      outline-color: transparent;
      transition: outline-color var(--p-rating-transition-duration), box-shadow var(--p-rating-transition-duration);
      &.p-state-focus {
        outline: var(--p-rating-focus-ring-width) var(--p-rating-focus-ring-style) var(--p-rating-focus-ring-color);
        outline-offset: var(--p-rating-focus-ring-offset);
        box-shadow: var(--p-rating-focus-ring-shadow);
      }
      a {
        font-style: normal;
        font-weight: normal;
        font-size: var(--p-rating-icon-size);
        line-height: 1;
        height: var(--p-rating-icon-size);
        width: var(--p-rating-icon-size);
        transition: color var(--p-rating-transition-duration);
      }
    }
    .p-rating-cancel a {
      color: var(--p-rating-cancel-icon-color);
    }
    .p-rating-cancel-icon {
      --_icon: var(--p-rating-cancel-icon);
    }
    &:not(.p-state-disabled, .p-state-readonly) .p-rating-cancel.p-rating-cancel-hover a,
    &:not(.p-state-disabled, .p-state-readonly) .p-rating-cancel a:hover {
      color: var(--p-rating-cancel-icon-hover-color);
    }
    .p-rating-star a {
      color: var(--p-rating-icon-color);
    }
    .p-rating-icon {
      --_icon: var(--p-rating-off-icon);
    }
    &:not(.p-state-disabled, .p-state-readonly) .p-rating-star a:hover {
      color: var(--p-rating-icon-hover-color);
    }
    .p-rating-star-on a {
      color: var(--p-rating-icon-active-color);
    }
    .p-rating-star-on .p-rating-icon {
      --_icon: var(--p-rating-on-icon);
    }
    &.p-state-error .p-rating-star a {
      color: var(--p-rating-invalid-icon-color);
    }
  }
  .p-state-highlight .p-rating-star a,
  .p-state-highlight .p-rating-star-on a {
    color: var(--p-highlight-color);
  }
}

/* packages/components/src/scrolltop/scrolltop.css */
@layer primefaces.components {
  .p-scrolltop {
    position: fixed;
    bottom: 20px;
    inset-inline-end: 20px;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    width: var(--p-button-lg-icon-only-width);
    height: var(--p-button-lg-icon-only-width);
    border-radius: 50%;
    background: var(--p-button-primary-background);
    color: var(--p-button-primary-color);
    border: 1px solid var(--p-button-primary-border-color);
    box-shadow: var(--p-button-raised-shadow);
    text-decoration: none;
    outline-color: transparent;
    transition:
      background var(--p-button-transition-duration),
      color var(--p-button-transition-duration),
      border-color var(--p-button-transition-duration),
      outline-color var(--p-button-transition-duration),
      box-shadow var(--p-button-transition-duration);
    &:hover {
      background: var(--p-button-primary-hover-background);
      color: var(--p-button-primary-hover-color);
      border-color: var(--p-button-primary-hover-border-color);
    }
    &:active {
      background: var(--p-button-primary-active-background);
      color: var(--p-button-primary-active-color);
      border-color: var(--p-button-primary-active-border-color);
    }
    &:focus-visible {
      outline: var(--p-button-focus-ring-width) var(--p-button-focus-ring-style) var(--p-button-primary-focus-ring-color);
      outline-offset: var(--p-button-focus-ring-offset);
    }
    .p-scrolltop-icon {
      --_icon: var(--p-scrolltop-icon);
      font-size: var(--p-button-lg-font-size);
      color: inherit;
    }
    &.p-scrolltop-sticky {
      width: var(--p-button-icon-only-width);
      height: var(--p-button-icon-only-width);
      .p-scrolltop-icon {
        font-size: var(--p-icon-size);
      }
    }
  }
  .p-scrolltop-sticky {
    position: sticky;
    margin-inline-start: auto;
  }
}

/* packages/components/src/forms/selectbooleancheckbox.css */
@layer primefaces.components {
  .p-fluid .p-selectbooleancheckbox {
    width: 100%;
  }
}

/* packages/components/src/forms/selectcheckboxmenu.css */
@layer primefaces.components {
  .p-selectcheckboxmenu {
    display: inline-block;
    width: auto;
    cursor: pointer;
    vertical-align: baseline;
    --_border-color: var(--p-multiselect-border-color);
    border: 1px solid var(--_border-color);
    position: relative;
    background: var(--p-multiselect-background);
    color: var(--p-multiselect-color);
    border-radius: var(--p-multiselect-border-radius);
    box-shadow: var(--p-multiselect-shadow);
    outline-color: transparent;
    transition:
      background var(--p-multiselect-transition-duration),
      color var(--p-multiselect-transition-duration),
      border-color var(--p-multiselect-transition-duration),
      outline-color var(--p-multiselect-transition-duration),
      box-shadow var(--p-multiselect-transition-duration);
    .p-selectcheckboxmenu-label {
      display: block;
      width: auto;
      border: 0 none;
      cursor: pointer;
      white-space: nowrap;
      overflow: hidden;
      text-overflow: ellipsis;
      &::after {
        content: "p";
        display: inline-flex;
        visibility: hidden;
        overflow: hidden;
        width: 0;
        clip: rect(0, 0, 0, 0);
      }
    }
    .p-selectcheckboxmenu-label-container {
      padding: var(--p-multiselect-padding-y) var(--p-multiselect-padding-x);
      padding-inline-end: var(--p-multiselect-dropdown-width);
      display: block;
      background: transparent;
      border-radius: var(--p-multiselect-border-radius);
      .p-selectcheckboxmenu-label {
        padding: 0;
        background: transparent;
        color: var(--p-multiselect-color);
        font-size: var(--p-multiselect-font-size);
        font-weight: var(--p-multiselect-font-weight);
      }
    }
    .p-selectcheckboxmenu-trigger {
      border: 0 none;
      cursor: pointer;
      height: 100%;
      position: absolute;
      top: 0;
      inset-inline-end: 0;
      padding: 0;
      display: flex;
      align-items: center;
      justify-content: center;
      width: var(--p-multiselect-dropdown-width);
      background: transparent;
      color: var(--p-multiselect-dropdown-color);
      border-start-end-radius: var(--p-multiselect-border-radius);
      border-end-end-radius: var(--p-multiselect-border-radius);
      .p-selectcheckboxmenu-dropdown-icon {
        --_icon: var(--p-multiselect-dropdown-icon);
        color: var(--p-multiselect-dropdown-color);
      }
    }
    &.p-state-disabled .p-selectcheckboxmenu-trigger,
    &.p-state-disabled .p-selectcheckboxmenu-label {
      cursor: auto;
    }
    &.p-state-hover,
    &:not(.p-state-disabled):hover {
      --_border-color: var(--p-multiselect-hover-border-color);
    }
    &.p-state-focus {
      --_border-color: var(--p-multiselect-focus-border-color);
      outline: var(--p-multiselect-focus-ring-width) var(--p-multiselect-focus-ring-style) var(--p-multiselect-focus-ring-color);
      outline-offset: var(--p-multiselect-focus-ring-offset);
      box-shadow: var(--p-multiselect-focus-ring-shadow);
    }
    &.p-state-error,
    &.p-state-error:is(:hover, .p-state-focus) {
      --_border-color: var(--p-multiselect-invalid-border-color);
    }
    &.p-state-disabled {
      opacity: 1;
      background: var(--p-multiselect-disabled-background);
      .p-selectcheckboxmenu-label {
        color: var(--p-multiselect-disabled-color);
      }
    }
    &.p-selectcheckboxmenu-sm {
      --p-multiselect-font-size: var(--p-multiselect-sm-font-size);
      --p-multiselect-padding-x: var(--p-multiselect-sm-padding-x);
      --p-multiselect-padding-y: var(--p-multiselect-sm-padding-y);
    }
    &.p-selectcheckboxmenu-lg {
      --p-multiselect-font-size: var(--p-multiselect-lg-font-size);
      --p-multiselect-padding-x: var(--p-multiselect-lg-padding-x);
      --p-multiselect-padding-y: var(--p-multiselect-lg-padding-y);
    }
    &.p-selectcheckboxmenu-sm .p-selectcheckboxmenu-trigger .p-selectcheckboxmenu-dropdown-icon,
    &.p-selectcheckboxmenu-lg .p-selectcheckboxmenu-trigger .p-selectcheckboxmenu-dropdown-icon {
      font-size: var(--p-multiselect-font-size);
    }
    .p-selectcheckboxmenu-multiple-container.p-inputfield {
      display: flex;
      flex-wrap: wrap;
      align-items: center;
      row-gap: calc(var(--p-multiselect-padding-y) / 2);
      min-height: calc(2 * var(--p-multiselect-padding-y) + var(--p-typography-line-height) * var(--p-multiselect-font-size));
      padding: calc(var(--p-multiselect-padding-y) / 2) calc(var(--p-multiselect-padding-x) / 2);
      padding-inline-end: var(--p-multiselect-dropdown-width);
      background: transparent;
      border: 0 none;
      box-shadow: none;
      outline: 0 none;
    }
    .p-selectcheckboxmenu-multiple-container .p-selectcheckboxmenu-emptylabel {
      color: var(--p-multiselect-placeholder-color);
      white-space: nowrap;
    }
    &.p-state-error .p-selectcheckboxmenu-multiple-container .p-selectcheckboxmenu-emptylabel {
      color: var(--p-multiselect-invalid-placeholder-color);
    }
    .p-selectcheckboxmenu-multiple-container .p-selectcheckboxmenu-token {
      padding-block: calc(var(--p-multiselect-padding-y) / 2);
      padding-inline: 0;
      margin: 0;
      margin-inline-end: calc(var(--p-multiselect-padding-y) / 2);
      background: var(--p-chip-background);
      color: var(--p-chip-color);
      border-radius: var(--p-multiselect-chip-border-radius);
      .p-selectcheckboxmenu-token-label {
        padding-block: 0;
        padding-inline: calc(var(--p-icon-size) / 2) calc(2 * var(--p-icon-size));
        font-size: var(--p-chip-label-font-size);
        font-weight: var(--p-chip-label-font-weight);
      }
      .p-selectcheckboxmenu-chip-remove-icon {
        --_icon: var(--p-multiselect-chip-remove-icon);
      }
      .p-selectcheckboxmenu-token-icon {
        margin-top: calc(-1 * var(--p-icon-size) / 2);
        position: absolute;
        color: var(--p-chip-remove-icon-color);
        font-size: var(--p-chip-remove-icon-size);
      }
    }
  }
  .p-selectcheckboxmenu-multiple-container {
    clear: left;
    cursor: pointer;
    list-style-type: none;
    margin: 0;
    overflow: hidden;
    min-width: 100px;
    &:empty::after {
      content: attr(data-label);
      white-space: nowrap;
      display: inline-block;
      color: var(--p-multiselect-placeholder-color);
    }
  }
  .p-selectcheckboxmenu-token {
    cursor: default;
    overflow: hidden;
    white-space: nowrap;
    position: relative;
  }
  .p-selectcheckboxmenu-token-label {
    display: block;
  }
  .p-selectcheckboxmenu-token-icon {
    position: absolute;
    top: 50%;
    inset-inline-end: calc(var(--p-icon-size) / 2);
    cursor: pointer;
  }
  .p-input-filled .p-selectcheckboxmenu {
    --_line-width: var(--p-form-field-filled-indicator-width);
    --_line: linear-gradient(var(--_border-color), var(--_border-color)) bottom / 100% var(--_line-width) no-repeat border-box;
    background: var(--_line), var(--p-multiselect-filled-background);
    border-color: color-mix(in srgb, var(--_border-color) var(--p-form-field-filled-border-opacity), transparent);
    border-end-start-radius: var(--p-form-field-filled-bottom-border-radius);
    border-end-end-radius: var(--p-form-field-filled-bottom-border-radius);
    &.p-state-hover,
    &:not(.p-state-disabled):hover {
      background: var(--_line), var(--p-multiselect-filled-hover-background);
    }
    &.p-state-focus {
      --_line-width: var(--p-form-field-filled-focus-indicator-width);
      background: var(--_line), var(--p-multiselect-filled-focus-background);
      outline-color: color-mix(in srgb, var(--p-multiselect-focus-ring-color) var(--p-form-field-filled-border-opacity), transparent);
    }
    &.p-state-disabled {
      background: var(--_line), var(--p-multiselect-disabled-background);
    }
    .p-selectcheckboxmenu-multiple-container.p-inputfield,
    .p-selectcheckboxmenu-multiple-container.p-inputfield:hover {
      background: transparent;
    }
  }
  .p-fluid .p-selectcheckboxmenu {
    width: 100%;
  }
  .p-selectcheckboxmenu-panel {
    position: absolute;
    overflow: hidden;
    padding: 0;
    background: var(--p-multiselect-overlay-background);
    color: var(--p-multiselect-overlay-color);
    border: 1px solid var(--p-multiselect-overlay-border-color);
    box-shadow: var(--p-multiselect-overlay-shadow);
    border-radius: var(--p-multiselect-overlay-border-radius);
    .p-selectcheckboxmenu-items-wrapper {
      overflow: auto;
      position: relative;
      padding: 0;
    }
    .p-selectcheckboxmenu-item {
      cursor: pointer;
    }
    .p-selectcheckboxmenu-list {
      border: 0 none;
      margin: 0;
      list-style-type: none;
    }
    .p-selectcheckboxmenu-list-item {
      border: 0 none;
      display: flex;
      align-items: center;
      position: relative;
      text-align: start;
      white-space: nowrap;
    }
    .p-selectcheckboxmenu-table {
      border-collapse: collapse;
      width: 100%;
      th,
      td {
        border-width: 1px;
        border-style: solid;
        border-color: var(--p-datatable-body-cell-border-color);
      }
      th:first-of-type,
      td:first-of-type {
        width: 1%;
        white-space: nowrap;
      }
    }
    .p-selectcheckboxmenu-header {
      padding: var(--p-multiselect-list-header-padding);
      margin: 0;
      border: 0 none;
      border-radius: 0;
      background: transparent;
      color: var(--p-multiselect-overlay-color);
      position: relative;
      display: flex;
      align-items: center;
      .p-chkbox {
        margin-inline-end: var(--p-multiselect-option-gap);
      }
      .p-selectcheckboxmenu-filter-container {
        padding: 0;
        margin: 0;
        margin-inline-end: var(--p-multiselect-option-gap);
        flex: 1 1 0;
        .p-inputfield {
          width: 100%;
          padding-block: var(--p-multiselect-padding-y);
          padding-inline: var(--p-multiselect-padding-x);
          padding-inline-start: calc(2 * var(--p-multiselect-padding-x) + var(--p-icon-size));
        }
        .p-selectcheckboxmenu-filter-icon {
          --_icon: var(--p-multiselect-filter-icon);
          position: absolute;
          inset-inline-start: var(--p-multiselect-padding-x);
          top: 50%;
          margin-top: calc(-1 * var(--p-icon-size) / 2);
          color: var(--p-form-field-icon-color);
        }
      }
      .p-selectcheckboxmenu-close {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        width: var(--p-button-icon-only-width);
        height: var(--p-button-icon-only-width);
        padding: 0;
        margin-inline: auto 0;
        text-align: center;
        -webkit-user-select: none;
        user-select: none;
        background: transparent;
        color: var(--p-button-text-plain-color);
        border: 0 none;
        border-radius: 50%;
        outline-color: transparent;
        transition:
          background var(--p-button-transition-duration),
          color var(--p-button-transition-duration),
          outline-color var(--p-button-transition-duration),
          box-shadow var(--p-button-transition-duration);
        &:hover,
        &.p-state-hover {
          background: var(--p-button-text-plain-hover-background);
          color: var(--p-button-text-plain-color);
        }
        &:focus-visible {
          outline: var(--p-focus-ring-width) var(--p-focus-ring-style) var(--p-focus-ring-color);
          outline-offset: var(--p-focus-ring-offset);
          box-shadow: var(--p-focus-ring-shadow);
        }
        .p-selectcheckboxmenu-close-icon {
          --_icon: var(--p-multiselect-close-icon);
        }
      }
    }
    .p-selectcheckboxmenu-items,
    .p-selectcheckboxmenu-list {
      background: transparent;
    }
    .p-selectcheckboxmenu-items {
      padding: var(--p-multiselect-list-padding);
      &.p-selectcheckboxmenu-list {
        display: flex;
        flex-direction: column;
        gap: var(--p-multiselect-list-gap);
      }
      &.p-selectcheckboxmenu-table > thead tr th {
        background: var(--p-datatable-header-cell-background);
        border: 1px solid var(--p-datatable-header-cell-border-color);
        color: var(--p-datatable-header-cell-color);
        font-weight: var(--p-datatable-column-title-font-weight);
        padding: var(--p-datatable-header-cell-padding);
      }
      .p-selectcheckboxmenu-item {
        padding: var(--p-multiselect-option-padding);
        margin: 0;
        outline: 0 none;
        background: transparent;
        color: var(--p-multiselect-option-color);
        font-size: var(--p-multiselect-option-font-size);
        font-weight: var(--p-multiselect-option-font-weight);
        border-radius: var(--p-multiselect-option-border-radius);
        transition:
          background var(--p-list-option-transition-duration),
          color var(--p-list-option-transition-duration),
          border-color var(--p-list-option-transition-duration),
          box-shadow var(--p-list-option-transition-duration),
          outline-color var(--p-list-option-transition-duration);
        &.p-state-hover {
          background: var(--p-multiselect-option-focus-background);
          color: var(--p-multiselect-option-focus-color);
        }
        &.p-state-highlight {
          background: var(--p-multiselect-option-selected-background);
          color: var(--p-multiselect-option-selected-color);
          font-weight: var(--p-multiselect-option-selected-font-weight);
        }
        &.p-state-highlight.p-state-hover {
          background: var(--p-multiselect-option-selected-focus-background);
          color: var(--p-multiselect-option-selected-focus-color);
        }
        .p-chkbox {
          position: static;
          margin-inline-end: var(--p-multiselect-option-gap);
        }
        > label {
          display: inline;
          vertical-align: middle;
        }
        &.p-selectcheckboxmenu-row {
          background: var(--p-datatable-row-background);
          color: var(--p-datatable-row-color);
          border: 1px solid var(--p-datatable-body-cell-border-color);
          border-radius: 0;
        }
        &.p-selectcheckboxmenu-row > td {
          padding: var(--p-datatable-body-cell-padding);
          border-color: var(--p-datatable-body-cell-border-color);
        }
        &.p-selectcheckboxmenu-row:first-child {
          border-top-color: transparent;
        }
      }
      .p-selectcheckboxmenu-item-group {
        margin: 0;
        padding: var(--p-multiselect-option-group-padding);
        background: var(--p-multiselect-option-group-background);
        color: var(--p-multiselect-option-group-color);
        font-weight: var(--p-multiselect-option-group-font-weight);
        font-size: var(--p-multiselect-option-group-font-size);
      }
    }
  }
  .p-selectcheckboxmenu-header {
    .p-chkbox {
      cursor: pointer;
    }
    .p-selectcheckboxmenu-filter-container {
      position: relative;
    }
  }
  .p-selectcheckboxmenu-footer {
    border: 0 none;
    margin: 0;
    padding: var(--p-multiselect-list-header-padding);
  }
}

/* packages/components/src/forms/selectmanycheckbox.css */
@layer primefaces.components {
  .p-selectmanycheckbox {
    &.layout-line-direction.ui-grid-responsive > div,
    &.layout-line-direction.ui-grid-responsive > div label {
      display: inline;
    }
    &.ui-grid-responsive > div > div {
      display: inline-flex;
      align-items: center;
    }
    &.ui-grid-responsive > div label {
      flex-grow: 1;
    }
    &.ui-grid-responsive .ui-g > div {
      padding: var(--p-selectmanycheckbox-cell-padding);
    }
    .ui-g-1,
    .ui-g-2,
    .ui-g-3,
    .ui-g-4,
    .ui-g-5,
    .ui-g-6,
    .ui-g-7,
    .ui-g-8,
    .ui-g-9,
    .ui-g-10,
    .ui-g-11,
    .ui-g-12 {
      float: none;
    }
    label {
      display: inline-block;
      vertical-align: middle;
      cursor: pointer;
      margin: 0;
      padding-inline-start: var(--p-checkbox-label-gap);
      margin-inline-end: var(--p-selectmanycheckbox-gap);
      outline: 0 none;
      z-index: 1;
      &.p-state-disabled {
        cursor: default;
      }
    }
    .p-chkbox .p-chkbox-box {
      display: block;
    }
    .p-selectmanycheckbox-item-group {
      color: var(--p-selectmanycheckbox-group-color);
      font-weight: var(--p-selectmanycheckbox-group-font-weight);
    }
    .p-selectmanycheckbox-responsive-group {
      padding: var(--p-selectmanycheckbox-group-padding);
    }
  }
}

/* packages/components/src/forms/selectonebutton.css */
@layer primefaces.components {
  .p-selectonebutton,
  .p-selectmanybutton {
    display: inline-flex;
    width: fit-content;
    max-width: 100%;
    vertical-align: bottom;
    -webkit-user-select: none;
    user-select: none;
    padding: 0;
    border-radius: var(--p-selectbutton-border-radius);
    outline-color: transparent;
    &.p-state-error {
      outline: 1px solid var(--p-selectbutton-invalid-border-color);
      outline-offset: 0;
    }
    .p-button.p-state-focus {
      position: relative;
      z-index: 1;
    }
  }
  .p-selectonebutton > .p-button,
  .p-selectmanybutton > .p-button,
  .p-button.p-selectbooleanbutton {
    --_bg: var(--p-togglebutton-background);
    --_hover-bg: var(--p-togglebutton-hover-background);
    --_active-bg: var(--p-togglebutton-checked-background);
    --_border: var(--p-togglebutton-border-color);
    --_hover-border: var(--p-togglebutton-border-color);
    --_active-border: var(--p-togglebutton-checked-border-color);
    --_color: var(--p-togglebutton-color);
    --_hover-color: var(--p-togglebutton-hover-color);
    --_active-color: var(--p-togglebutton-checked-color);
    --_focus-ring-color: var(--p-togglebutton-focus-ring-color);
    --_focus-ring-shadow: var(--p-togglebutton-focus-ring-shadow);
    --_label-shadow: var(--p-button-outlined-label-shadow);
    position: relative;
    gap: var(--p-togglebutton-gap);
    padding: var(--p-togglebutton-padding);
    font-size: var(--p-togglebutton-font-size);
    font-weight: var(--p-togglebutton-font-weight);
    background: var(--p-togglebutton-background);
    color: var(--p-togglebutton-color);
    border: 1px solid var(--p-togglebutton-border-color);
    border-radius: var(--p-togglebutton-border-radius);
    outline-color: transparent;
    transition:
      background var(--p-togglebutton-transition-duration),
      color var(--p-togglebutton-transition-duration),
      border-color var(--p-togglebutton-transition-duration),
      outline-color var(--p-togglebutton-transition-duration),
      box-shadow var(--p-togglebutton-transition-duration);
    &::before {
      content: "";
      position: absolute;
      inset: var(--p-togglebutton-padding);
      background: transparent;
      border-radius: var(--p-togglebutton-content-border-radius);
      transition: background var(--p-togglebutton-transition-duration), box-shadow var(--p-togglebutton-transition-duration);
    }
    &.p-state-hover:not(.p-state-active, .p-state-disabled),
    &:not(.p-state-active, .p-state-disabled):hover {
      background: var(--p-togglebutton-hover-background);
      border-color: var(--p-togglebutton-border-color);
      color: var(--p-togglebutton-hover-color);
    }
    &.p-state-active,
    &.p-state-active:not(.p-state-disabled):hover {
      background: var(--p-togglebutton-checked-background);
      border-color: var(--p-togglebutton-checked-border-color);
      color: var(--p-togglebutton-checked-color);
    }
    &.p-state-active::before {
      background: var(--p-togglebutton-content-checked-background);
      box-shadow: var(--p-togglebutton-content-checked-shadow);
    }
    &.p-state-focus,
    &:focus-visible {
      outline: var(--p-togglebutton-focus-ring-width) var(--p-togglebutton-focus-ring-style) var(--p-togglebutton-focus-ring-color);
      outline-offset: var(--p-togglebutton-focus-ring-offset);
      box-shadow: var(--p-togglebutton-focus-ring-shadow);
    }
  }
  .p-selectonebutton > .p-button > .p-button-text,
  .p-selectmanybutton > .p-button > .p-button-text,
  .p-button.p-selectbooleanbutton > .p-button-text,
  .p-selectonebutton > .p-button > .p-button-icon-left,
  .p-selectmanybutton > .p-button > .p-button-icon-left,
  .p-button.p-selectbooleanbutton > .p-button-icon-left {
    position: relative;
    padding: var(--p-togglebutton-content-padding);
    font-weight: var(--p-togglebutton-font-weight);
    cursor: inherit;
  }
  .p-selectonebutton > .p-button,
  .p-selectmanybutton > .p-button,
  .p-button.p-selectbooleanbutton {
    > .p-button-icon-left {
      padding-inline-end: 0;
      color: var(--p-togglebutton-icon-color);
    }
    > .p-button-icon-left + .p-button-text {
      padding-inline-start: 0;
    }
    &.p-button-icon-only {
      width: auto;
      > .p-button-icon-left {
        padding: var(--p-togglebutton-content-padding);
      }
      > .p-button-text {
        padding: 0;
      }
    }
    &:not(.p-state-active, .p-state-disabled):hover > .p-button-icon-left {
      color: var(--p-togglebutton-icon-hover-color);
    }
    &.p-state-active > .p-button-icon-left {
      color: var(--p-togglebutton-icon-checked-color);
    }
  }
  .p-button.p-selectbooleanbutton.p-state-error,
  .p-button.p-selectbooleanbutton.p-state-error:is(:hover, .p-state-hover),
  .p-button.p-selectbooleanbutton.p-state-error.p-state-active:hover {
    border-color: var(--p-togglebutton-invalid-border-color);
  }
  .p-selectonebutton > .p-button,
  .p-selectmanybutton > .p-button,
  .p-button.p-selectbooleanbutton {
    &.p-state-disabled {
      opacity: 1;
      cursor: default;
      background: var(--p-togglebutton-disabled-background);
      border-color: var(--p-togglebutton-disabled-border-color);
      color: var(--p-togglebutton-disabled-color);
    }
    &.p-state-disabled::before {
      background: transparent;
      box-shadow: none;
    }
  }
  .p-selectonebutton > .p-button.p-state-disabled > .p-button-icon-left,
  .p-selectmanybutton > .p-button.p-state-disabled > .p-button-icon-left,
  .p-button.p-selectbooleanbutton.p-state-disabled > .p-button-icon-left {
    color: var(--p-togglebutton-icon-disabled-color);
  }
  .p-selectonebutton > .p-button,
  .p-selectmanybutton > .p-button,
  .p-button.p-selectbooleanbutton {
    &.p-button-sm {
      padding: var(--p-togglebutton-sm-padding);
      font-size: var(--p-togglebutton-sm-font-size);
      &::before {
        inset: var(--p-togglebutton-sm-padding);
      }
      > .p-button-text {
        padding: var(--p-togglebutton-content-sm-padding);
      }
    }
    &.p-button-lg {
      padding: var(--p-togglebutton-lg-padding);
      font-size: var(--p-togglebutton-lg-font-size);
      &::before {
        inset: var(--p-togglebutton-lg-padding);
      }
      > .p-button-text {
        padding: var(--p-togglebutton-content-lg-padding);
      }
    }
  }
  .p-selectonebutton,
  .p-selectmanybutton {
    > .p-button {
      margin: 0;
      border-radius: 0;
      border-width: 1px;
      border-inline-start-width: 0;
      &:first-child {
        border-inline-start-width: 1px;
        border-start-start-radius: var(--p-selectbutton-border-radius);
        border-end-start-radius: var(--p-selectbutton-border-radius);
      }
      &:last-child {
        border-start-end-radius: var(--p-selectbutton-border-radius);
        border-end-end-radius: var(--p-selectbutton-border-radius);
      }
    }
  }
  .p-fluid .p-selectonebutton,
  .p-fluid .p-selectmanybutton {
    display: flex;
    width: 100%;
    > .p-button {
      flex: 1 1 0;
      width: auto;
    }
  }
  @media (max-width: 640px) {
    .p-fluid .p-selectonebutton,
    .p-fluid .p-selectmanybutton {
      flex-direction: column;
      > .p-button {
        flex: 0 0 auto;
        width: 100%;
        border-radius: 0;
        border-inline-start-width: 1px;
        border-block-start-width: 0;
        &:first-child {
          border-block-start-width: 1px;
          border-start-start-radius: var(--p-selectbutton-border-radius);
          border-start-end-radius: var(--p-selectbutton-border-radius);
        }
        &:last-child {
          border-end-start-radius: var(--p-selectbutton-border-radius);
          border-end-end-radius: var(--p-selectbutton-border-radius);
        }
      }
    }
  }
}

/* packages/components/src/forms/selectonelistbox.css */
@layer primefaces.components {
  .p-selectonelistbox,
  .p-selectmanymenu {
    padding: 0;
    width: auto;
    min-width: 12rem;
    background: var(--p-listbox-background);
    color: var(--p-listbox-color);
    --_border-color: var(--p-listbox-border-color);
    border: 1px solid var(--_border-color);
    border-radius: var(--p-listbox-border-radius);
    box-shadow: var(--p-listbox-shadow);
    transition:
      background var(--p-listbox-transition-duration),
      color var(--p-listbox-transition-duration),
      border-color var(--p-listbox-transition-duration),
      box-shadow var(--p-listbox-transition-duration),
      outline-color var(--p-listbox-transition-duration);
    &.p-state-error,
    &.p-state-error:is(:hover, :focus, .p-state-hover, .p-state-focus) {
      --_border-color: var(--p-listbox-invalid-border-color);
    }
    &.p-state-disabled {
      opacity: 1;
      background: var(--p-listbox-disabled-background);
      color: var(--p-listbox-disabled-color);
      .p-selectlistbox-listcontainer {
        overflow: hidden;
      }
      .p-selectlistbox-item {
        cursor: default;
        color: var(--p-listbox-disabled-color);
      }
    }
    .p-selectlistbox-filter-container {
      display: flex;
      align-items: center;
      padding: var(--p-listbox-list-header-padding);
      margin: 0;
      border-bottom: 0 none;
      background: transparent;
      color: var(--p-listbox-color);
      border-start-start-radius: var(--p-listbox-border-radius);
      border-start-end-radius: var(--p-listbox-border-radius);
      .p-selectlistbox-filter.p-inputfield {
        padding-block: var(--p-form-field-padding-y);
        padding-inline: var(--p-form-field-padding-x);
        padding-inline-start: calc(2 * var(--p-form-field-padding-x) + var(--p-icon-size));
      }
      .p-selectlistbox-filter-icon {
        --_icon: var(--p-listbox-filter-icon);
        margin: 0;
        margin-inline-start: var(--p-form-field-padding-x);
        color: var(--p-form-field-icon-color);
      }
    }
    .p-selectmanymenu-header {
      display: flex;
      align-items: center;
      gap: var(--p-multiselect-option-gap);
      padding: var(--p-listbox-list-header-padding);
      .p-selectlistbox-filter-container {
        flex: 1 1 0;
        padding: 0;
      }
    }
    .p-selectmanymenu-footer {
      padding: var(--p-listbox-list-header-padding);
    }
    .p-selectlistbox-listcontainer {
      overflow: auto;
      padding: var(--p-listbox-list-padding);
      line-height: var(--p-typography-line-height);
      border: 0 none;
      ul.p-selectlistbox-list {
        display: flex;
        flex-direction: column;
        gap: var(--p-listbox-list-gap);
      }
    }
    .p-selectlistbox-list {
      list-style-type: none;
      margin: 0;
      padding: 0;
    }
    table.p-selectlistbox-list {
      --_table-cell-sm-padding: var(--p-datatable-body-cell-sm-padding);
      --_table-cell-lg-padding: var(--p-datatable-body-cell-lg-padding);
      border-collapse: collapse;
      width: 100%;
    }
    .p-selectlistbox-item {
      cursor: pointer;
    }
    .p-selectlistbox-listcontainer .p-selectlistbox-list .p-selectlistbox-item {
      border: 0 none;
      margin: 0;
      padding: var(--p-listbox-option-padding);
      background: transparent;
      color: var(--p-listbox-option-color);
      font-size: var(--p-listbox-option-font-size);
      font-weight: var(--p-listbox-option-font-weight);
      border-radius: var(--p-listbox-option-border-radius);
      transition:
        background var(--p-list-option-transition-duration),
        color var(--p-list-option-transition-duration),
        border-color var(--p-list-option-transition-duration),
        box-shadow var(--p-list-option-transition-duration),
        outline-color var(--p-list-option-transition-duration);
      &.p-state-hover {
        background: var(--p-listbox-option-focus-background);
        color: var(--p-listbox-option-focus-color);
      }
      &.p-state-highlight {
        background: var(--p-listbox-option-selected-background);
        color: var(--p-listbox-option-selected-color);
        font-weight: var(--p-listbox-option-selected-font-weight);
      }
      &.p-state-highlight.p-state-hover {
        background: var(--p-listbox-option-selected-focus-background);
        color: var(--p-listbox-option-selected-focus-color);
      }
      .p-chkbox {
        margin-inline-end: var(--p-multiselect-option-gap);
        vertical-align: middle;
      }
      > td {
        padding: var(--_table-cell-padding, var(--p-datatable-body-cell-padding));
        border: var(--_table-gridlines, 0) solid var(--p-datatable-body-cell-border-color);
      }
    }
    &.p-listbox-checkmark .p-selectlistbox-listcontainer .p-selectlistbox-list li.p-selectlistbox-item {
      display: flex;
      align-items: center;
      &::before {
        content: " ";
        flex-shrink: 0;
        font-size: var(--p-icon-size);
        line-height: 1;
        margin-inline-start: var(--p-listbox-checkmark-gutter-start);
        margin-inline-end: var(--p-listbox-checkmark-gutter-end);
        color: var(--p-listbox-checkmark-color);
        background: transparent;
        forced-color-adjust: none;
        mask: var(--p-listbox-checkmark-icon) center / contain no-repeat;
      }
      &.p-state-highlight::before {
        background: currentColor;
      }
    }
    .p-selectlistbox-listcontainer .p-selectlistbox-list .p-listbox-outline {
      outline: 0 none;
      background: var(--p-listbox-option-focus-background);
      color: var(--p-listbox-option-focus-color);
      &.p-state-highlight {
        background: var(--p-listbox-option-selected-focus-background);
        color: var(--p-listbox-option-selected-focus-color);
      }
    }
    .p-selectlistbox-listcontainer .p-selectlistbox-list .p-selectlistbox-item:focus-visible {
      outline: 0 none;
      background: var(--p-listbox-option-focus-background);
      color: var(--p-listbox-option-focus-color);
      &.p-state-highlight {
        background: var(--p-listbox-option-selected-focus-background);
        color: var(--p-listbox-option-selected-focus-color);
      }
    }
  }
  .p-selectmanymenu .p-selectlistbox-chkbox {
    width: var(--p-checkbox-width);
  }
  .p-selectlistbox-filter.p-inputfield {
    width: 100%;
    box-shadow: none;
  }
  .p-selectlistbox-filter-container {
    position: relative;
    .p-selectlistbox-filter-icon {
      position: absolute;
    }
  }
  .p-listbox-outline {
    outline: 0 none;
    z-index: 1;
  }
  .p-input-filled .p-selectonelistbox.p-inputfield,
  .p-input-filled .p-selectmanymenu.p-inputfield,
  .p-input-filled .p-selectonelistbox.p-inputfield:hover,
  .p-input-filled .p-selectmanymenu.p-inputfield:hover {
    background: var(--p-listbox-background);
    border-color: var(--_border-color);
    border-radius: var(--p-listbox-border-radius);
  }
  .p-input-filled .p-selectonelistbox.p-inputfield:is(:focus, .p-state-focus),
  .p-input-filled .p-selectmanymenu.p-inputfield:is(:focus, .p-state-focus) {
    outline-color: var(--p-inputtext-focus-ring-color);
  }
  .p-fluid .p-selectonelistbox,
  .p-fluid .p-selectmanymenu {
    width: 100%;
  }
}

/* packages/components/src/forms/selectonemenu.css */
@layer primefaces.components {
  .p-selectonemenu {
    display: inline-block;
    width: auto;
    cursor: pointer;
    vertical-align: middle;
    --_border-color: var(--p-select-border-color);
    border: 1px solid var(--_border-color);
    position: relative;
    padding: 0;
    background: var(--p-select-background);
    border-radius: var(--p-select-border-radius);
    box-shadow: var(--p-select-shadow);
    outline-color: transparent;
    transition:
      background var(--p-select-transition-duration),
      color var(--p-select-transition-duration),
      border-color var(--p-select-transition-duration),
      outline-color var(--p-select-transition-duration),
      box-shadow var(--p-select-transition-duration);
    .p-selectonemenu-label {
      display: block;
      width: 100%;
      white-space: nowrap;
      overflow: hidden;
      text-overflow: ellipsis;
      text-align: start;
    }
    .p-selectonemenu-label.p-inputfield {
      background: transparent;
      border: 0 none;
      border-radius: 0;
      box-shadow: none;
      outline: 0 none;
      color: var(--p-select-color);
      font-size: var(--p-select-font-size);
      font-weight: var(--p-select-font-weight);
      padding-block: var(--p-select-padding-y);
      padding-inline: var(--p-select-padding-x);
      padding-inline-end: var(--p-select-dropdown-width);
    }
    .p-selectonemenu-label.p-selectonemenu-label-placeholder {
      color: var(--p-select-placeholder-color);
    }
    &.p-state-error .p-selectonemenu-label.p-selectonemenu-label-placeholder {
      color: var(--p-select-invalid-placeholder-color);
    }
    &.p-state-disabled .p-selectonemenu-trigger,
    &.p-state-disabled .p-selectonemenu-label {
      cursor: default;
    }
    label.p-selectonemenu-label {
      cursor: pointer;
    }
    input.p-selectonemenu-label {
      cursor: text;
    }
    .p-selectonemenu-trigger {
      border: 0 none;
      cursor: pointer;
      height: 100%;
      position: absolute;
      top: 0;
      inset-inline-end: 0;
      padding: 0;
      display: flex;
      align-items: center;
      justify-content: center;
      width: var(--p-select-dropdown-width);
      background: transparent;
      color: var(--p-select-dropdown-color);
      border-start-end-radius: var(--p-select-border-radius);
      border-end-end-radius: var(--p-select-border-radius);
      .p-selectonemenu-dropdown-icon {
        --_icon: var(--p-select-dropdown-icon);
        color: var(--p-select-dropdown-color);
      }
    }
    .p-icon-loading {
      position: absolute;
      top: 50%;
      inset-inline-end: 100%;
      margin-top: calc(-1 * var(--p-icon-size) / 2);
      margin-inline: 0;
      color: var(--p-select-dropdown-color);
    }
    &.p-state-hover,
    &:not(.p-state-disabled):hover {
      --_border-color: var(--p-select-hover-border-color);
    }
    &.p-state-focus,
    &:has(> .p-selectonemenu-label:focus-visible) {
      --_border-color: var(--p-select-focus-border-color);
      outline: var(--p-select-focus-ring-width) var(--p-select-focus-ring-style) var(--p-select-focus-ring-color);
      outline-offset: var(--p-select-focus-ring-offset);
      box-shadow: var(--p-select-focus-ring-shadow);
    }
    &.p-state-error,
    &.p-state-error:is(:hover, .p-state-focus, :focus-within) {
      --_border-color: var(--p-select-invalid-border-color);
    }
    &.p-state-disabled {
      opacity: 1;
      background: var(--p-select-disabled-background);
      .p-selectonemenu-label.p-inputfield {
        color: var(--p-select-disabled-color);
      }
    }
    &.p-selectonemenu-sm {
      --p-select-font-size: var(--p-select-sm-font-size);
      --p-select-padding-x: var(--p-select-sm-padding-x);
      --p-select-padding-y: var(--p-select-sm-padding-y);
    }
    &.p-selectonemenu-lg {
      --p-select-font-size: var(--p-select-lg-font-size);
      --p-select-padding-x: var(--p-select-lg-padding-x);
      --p-select-padding-y: var(--p-select-lg-padding-y);
    }
    &.p-selectonemenu-sm .p-selectonemenu-trigger .p-selectonemenu-dropdown-icon,
    &.p-selectonemenu-lg .p-selectonemenu-trigger .p-selectonemenu-dropdown-icon {
      font-size: var(--p-select-font-size);
    }
  }
  .p-selectonemenu-rtl {
    direction: rtl;
  }
  .p-input-filled .p-selectonemenu {
    --_line-width: var(--p-form-field-filled-indicator-width);
    --_line: linear-gradient(var(--_border-color), var(--_border-color)) bottom / 100% var(--_line-width) no-repeat border-box;
    background: var(--_line), var(--p-select-filled-background);
    border-color: color-mix(in srgb, var(--_border-color) var(--p-form-field-filled-border-opacity), transparent);
    border-end-start-radius: var(--p-form-field-filled-bottom-border-radius);
    border-end-end-radius: var(--p-form-field-filled-bottom-border-radius);
    &.p-state-hover,
    &:not(.p-state-disabled):hover {
      background: var(--_line), var(--p-select-filled-hover-background);
    }
    &.p-state-focus,
    &:has(> .p-selectonemenu-label:focus-visible) {
      --_line-width: var(--p-form-field-filled-focus-indicator-width);
      background: var(--_line), var(--p-select-filled-focus-background);
      outline-color: color-mix(in srgb, var(--p-select-focus-ring-color) var(--p-form-field-filled-border-opacity), transparent);
    }
    &.p-state-disabled {
      background: var(--_line), var(--p-select-disabled-background);
    }
    .p-selectonemenu-label.p-inputfield,
    .p-selectonemenu-label.p-inputfield:hover,
    .p-selectonemenu-label.p-inputfield:focus {
      background: transparent;
    }
  }
  .p-fluid .p-selectonemenu {
    width: 100%;
    .p-selectonemenu-label.p-inputfield {
      width: calc(100% - var(--p-select-dropdown-width));
      padding-inline: var(--p-select-padding-x);
    }
  }
  .p-selectonemenu-panel {
    position: absolute;
    height: auto;
    background: var(--p-select-overlay-background);
    color: var(--p-select-overlay-color);
    border: 1px solid var(--p-select-overlay-border-color);
    box-shadow: var(--p-select-overlay-shadow);
    border-radius: var(--p-select-overlay-border-radius);
    &.p-selectonemenu-panel-rtl {
      direction: rtl;
    }
    .p-selectonemenu-items-wrapper {
      overflow: auto;
    }
    .p-selectonemenu-filter-container {
      position: relative;
      width: 100%;
      display: flex;
      align-items: center;
      padding: var(--p-select-list-header-padding);
      margin: 0;
      border-bottom: 0 none;
      background: transparent;
      color: var(--p-select-overlay-color);
      .p-selectonemenu-filter.p-inputfield {
        width: 100%;
        padding-block: var(--p-select-padding-y);
        padding-inline: var(--p-select-padding-x);
        padding-inline-start: calc(2 * var(--p-select-padding-x) + var(--p-icon-size));
      }
      .p-selectonemenu-filter-icon {
        --_icon: var(--p-select-filter-icon);
        position: absolute;
        margin: 0;
        margin-inline-start: var(--p-select-padding-x);
        color: var(--p-form-field-icon-color);
      }
    }
    .p-selectonemenu-item {
      cursor: pointer;
    }
    .p-selectonemenu-list {
      display: flex;
      flex-direction: column;
      gap: var(--p-select-list-gap);
      border: 0 none;
      margin: 0;
      padding: 0;
      list-style-type: none;
    }
    .p-selectonemenu-list-item {
      border: 0 none;
      text-align: start;
      white-space: nowrap;
    }
    .p-selectonemenu-table {
      --_table-cell-sm-padding: var(--p-datatable-body-cell-sm-padding);
      --_table-cell-lg-padding: var(--p-datatable-body-cell-lg-padding);
      --_table-header-cell-sm-padding: var(--p-datatable-header-cell-sm-padding);
      --_table-header-cell-lg-padding: var(--p-datatable-header-cell-lg-padding);
      border-collapse: collapse;
      width: 100%;
      td {
        border-color: inherit;
      }
      th,
      td {
        border-width: 1px;
        border-style: solid;
      }
    }
    .p-selectonemenu-items,
    .p-selectonemenu-list {
      background: transparent;
    }
    .p-selectonemenu-items {
      padding: var(--p-select-list-padding);
      &.p-selectonemenu-table > thead tr th {
        background: var(--p-datatable-header-cell-background);
        border: 1px solid var(--p-datatable-header-cell-border-color);
        color: var(--p-datatable-header-cell-color);
        font-weight: var(--p-datatable-column-title-font-weight);
        padding: var(--_table-header-cell-padding, var(--p-datatable-header-cell-padding));
      }
    }
    .p-selectonemenu-items .p-selectonemenu-item {
      margin: 0;
      padding: var(--p-select-option-padding);
      background: transparent;
      color: var(--p-select-option-color);
      font-size: var(--p-select-option-font-size);
      font-weight: var(--p-select-option-font-weight);
      outline: 0 none;
      border-radius: var(--p-select-option-border-radius);
      transition:
        background var(--p-list-option-transition-duration),
        color var(--p-list-option-transition-duration),
        border-color var(--p-list-option-transition-duration),
        box-shadow var(--p-list-option-transition-duration),
        outline-color var(--p-list-option-transition-duration);
      &.p-selectonemenu-row {
        background: var(--p-datatable-row-background);
        color: var(--p-datatable-row-color);
        border: 1px solid var(--p-datatable-body-cell-border-color);
        border-radius: 0;
      }
      &.p-selectonemenu-row > td {
        padding: var(--_table-cell-padding, var(--p-datatable-body-cell-padding));
        border-color: var(--p-datatable-body-cell-border-color);
      }
      &.p-selectonemenu-row:first-child {
        border-top-color: transparent;
      }
      &.p-state-hover,
      &.p-state-focus {
        background: var(--p-select-option-focus-background);
        color: var(--p-select-option-focus-color);
      }
      &.p-state-highlight {
        background: var(--p-select-option-selected-background);
        color: var(--p-select-option-selected-color);
        font-weight: var(--p-select-option-selected-font-weight);
        overflow: auto;
      }
      &.p-state-highlight.p-state-hover,
      &.p-state-highlight.p-state-focus {
        background: var(--p-select-option-selected-focus-background);
        color: var(--p-select-option-selected-focus-color);
      }
    }
    .p-selectonemenu-items .p-selectonemenu-item-group {
      margin: 0;
      padding: var(--p-select-option-group-padding);
      background: var(--p-select-option-group-background);
      color: var(--p-select-option-group-color);
      font-weight: var(--p-select-option-group-font-weight);
      font-size: var(--p-select-option-group-font-size);
    }
    &.p-select-checkmark .p-selectonemenu-items li.p-selectonemenu-item {
      display: flex;
      align-items: center;
      &::before {
        content: " ";
        flex-shrink: 0;
        font-size: var(--p-icon-size);
        line-height: 1;
        margin-inline-start: var(--p-select-checkmark-gutter-start);
        margin-inline-end: var(--p-select-checkmark-gutter-end);
        color: var(--p-select-checkmark-color);
        background: transparent;
        forced-color-adjust: none;
        mask: var(--p-select-checkmark-icon) center / contain no-repeat;
      }
      &.p-state-highlight::before {
        background: currentColor;
      }
    }
  }
  .p-selectonemenu-footer {
    border: 0 none;
    margin: 0;
    padding: var(--p-select-list-header-padding);
  }
}

/* packages/components/src/forms/selectoneradio.css */
@layer primefaces.components {
  .p-selectoneradio {
    label {
      display: inline-block;
      vertical-align: middle;
      cursor: pointer;
      margin: 0;
      margin-inline-end: var(--p-selectoneradio-gap);
      padding: 0;
      padding-inline-start: var(--p-radiobutton-label-gap);
    }
    label.p-state-disabled,
    &.p-state-readonly label {
      cursor: default;
    }
    &.ui-grid-responsive {
      label {
        display: inline;
      }
      > div > div {
        display: inline-flex;
        align-items: center;
      }
    }
    &.ui-grid-responsive .ui-g > div {
      padding: var(--p-selectoneradio-cell-padding);
    }
    &.layout-line-direction {
      > div,
      > div label {
        display: inline;
      }
    }
  }
  .p-selectoneradio.p-state-readonly .p-radiobutton .p-radiobutton-box {
    &:not(.p-state-error):hover {
      --_layer-opacity: 0%;
      border-color: var(--p-radiobutton-border-color);
    }
    &.p-state-active:not(.p-state-error):hover {
      border-color: var(--p-radiobutton-checked-border-color);
    }
    &.p-state-active:hover {
      background: var(--p-radiobutton-checked-background);
      .p-radiobutton-icon {
        background: var(--p-radiobutton-icon-checked-color);
      }
    }
  }
}

/* packages/components/src/sidebar/sidebar.css */
@layer primefaces.components {
  .p-sidebar {
    position: fixed;
    visibility: hidden;
    transition: transform var(--p-sidebar-transition-duration) var(--p-transition-easing), visibility var(--p-sidebar-transition-duration);
    display: flow-root;
    overflow-y: auto;
    background: var(--p-drawer-background);
    color: var(--p-drawer-color);
    padding: var(--p-drawer-header-padding);
    border: 0 solid var(--p-drawer-border-color);
    box-shadow: none;
    &.p-sidebar-left {
      border-right-width: 1px;
      border-top-right-radius: var(--p-sidebar-border-radius);
      border-bottom-right-radius: var(--p-sidebar-border-radius);
    }
    &.p-sidebar-right {
      border-left-width: 1px;
      border-top-left-radius: var(--p-sidebar-border-radius);
      border-bottom-left-radius: var(--p-sidebar-border-radius);
    }
    &.p-sidebar-top {
      border-block-end-width: 1px;
      border-bottom-left-radius: var(--p-sidebar-border-radius);
      border-bottom-right-radius: var(--p-sidebar-border-radius);
    }
    &.p-sidebar-bottom {
      border-block-start-width: 1px;
      border-top-left-radius: var(--p-sidebar-border-radius);
      border-top-right-radius: var(--p-sidebar-border-radius);
    }
    &.p-sidebar-full {
      border-width: 1px;
      border-radius: 0;
    }
    &.p-sidebar-active {
      box-shadow: var(--p-drawer-shadow);
    }
    .p-sidebar-content {
      background: transparent;
      color: inherit;
      border: 0 none;
    }
    .p-sidebar-close {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      width: var(--p-sidebar-close-button-size);
      height: var(--p-sidebar-close-button-size);
      float: inline-end;
      padding: 0;
      border: 0 none;
      border-radius: 50%;
      background: transparent;
      color: var(--p-sidebar-close-button-color);
      text-decoration: none;
      -webkit-user-select: none;
      user-select: none;
      outline-color: transparent;
      transition:
        background var(--p-sidebar-close-button-transition-duration),
        color var(--p-sidebar-close-button-transition-duration),
        outline-color var(--p-sidebar-close-button-transition-duration),
        box-shadow var(--p-sidebar-close-button-transition-duration);
      &:hover {
        background: var(--p-sidebar-close-button-hover-background);
        color: var(--p-sidebar-close-button-color);
      }
      &:active {
        background: var(--p-sidebar-close-button-active-background);
      }
      &:focus-visible {
        outline: var(--p-sidebar-close-button-focus-ring-width) var(--p-sidebar-close-button-focus-ring-style) var(--p-sidebar-close-button-focus-ring-color);
        outline-offset: var(--p-sidebar-close-button-focus-ring-offset);
        box-shadow: var(--p-sidebar-close-button-focus-ring-shadow);
      }
      .p-sidebar-close-icon {
        --_icon: var(--p-sidebar-close-icon);
        color: inherit;
      }
    }
  }
  .p-sidebar-left {
    top: 0;
    left: 0;
    width: 20em;
    height: 100%;
    transform: translateX(-100%);
  }
  .p-sidebar-right {
    top: 0;
    right: 0;
    width: 20em;
    height: 100%;
    transform: translateX(100%);
  }
  .p-sidebar-top {
    top: 0;
    left: 0;
    width: 100%;
    height: auto;
    transform: translateY(-100%);
  }
  .p-sidebar-bottom {
    bottom: 0;
    left: 0;
    width: 100%;
    height: auto;
    transform: translateY(100%);
  }
  .p-sidebar-full {
    width: 100%;
    height: 100%;
    left: 0;
    transition: transform 0s;
  }
  .p-sidebar-left.p-sidebar-active,
  .p-sidebar-right.p-sidebar-active {
    visibility: visible;
    transform: translateX(0);
  }
  .p-sidebar-left.p-sidebar-sm,
  .p-sidebar-right.p-sidebar-sm {
    width: 20em;
  }
  .p-sidebar-left.p-sidebar-md,
  .p-sidebar-right.p-sidebar-md {
    width: 40em;
  }
  .p-sidebar-left.p-sidebar-lg,
  .p-sidebar-right.p-sidebar-lg {
    width: 60em;
  }
  .p-sidebar-top.p-sidebar-active,
  .p-sidebar-bottom.p-sidebar-active {
    visibility: visible;
    transform: translateY(0);
  }
  .p-sidebar-top.p-sidebar-sm,
  .p-sidebar-bottom.p-sidebar-sm {
    height: 10em;
  }
  .p-sidebar-top.p-sidebar-md,
  .p-sidebar-bottom.p-sidebar-md {
    height: 20em;
  }
  .p-sidebar-top.p-sidebar-lg,
  .p-sidebar-bottom.p-sidebar-lg {
    height: 30em;
  }
  @media screen and (max-width: 64em) {
    .p-sidebar-left.p-sidebar-lg,
    .p-sidebar-left.p-sidebar-md,
    .p-sidebar-right.p-sidebar-lg,
    .p-sidebar-right.p-sidebar-md {
      width: 20em;
    }
  }
}

/* packages/components/src/skeleton/skeleton.css */
@layer primefaces.components {
  .p-skeleton {
    position: relative;
    overflow: hidden;
    background-color: var(--p-skeleton-background);
    border-radius: var(--p-skeleton-border-radius);
    &:after {
      content: "";
      animation: p-skeleton-animation 1.2s infinite;
      height: 100%;
      left: 0;
      position: absolute;
      right: 0;
      top: 0;
      transform: translateX(-100%);
      z-index: 1;
      background:
        linear-gradient(
          90deg,
          transparent,
          var(--p-skeleton-animation-background),
          transparent);
    }
    &:dir(rtl):after {
      animation-name: p-skeleton-animation-rtl;
    }
    &.p-skeleton-animation-none:after {
      animation: none;
    }
    &.p-skeleton-circle {
      border-radius: 50%;
    }
  }
  @keyframes p-skeleton-animation {
    from {
      transform: translateX(-100%);
    }
    to {
      transform: translateX(100%);
    }
  }
  @keyframes p-skeleton-animation-rtl {
    from {
      transform: translateX(100%);
    }
    to {
      transform: translateX(-100%);
    }
  }
}

/* packages/components/src/menu/slidemenu.css */
@layer primefaces.components {
  .p-slidemenu {
    width: 12.5rem;
    .p-slidemenu-wrapper {
      position: relative;
    }
    .p-slidemenu-content {
      overflow-x: hidden;
      overflow-y: auto;
      position: relative;
    }
    .p-menu-list {
      position: absolute;
      top: 0;
    }
    .p-menu-parent {
      position: static;
    }
    .p-menu-child {
      box-shadow: none;
      border: 0 none;
    }
  }
  .p-slidemenu-backward {
    position: absolute;
    cursor: pointer;
  }
  .p-menu.p-slidemenu {
    --_bg: var(--p-slidemenu-background);
    --_border-color: var(--p-slidemenu-border-color);
    --_border-radius: var(--p-slidemenu-border-radius);
    --_color: var(--p-slidemenu-color);
    --_shadow: var(--p-slidemenu-shadow);
    --_list-padding: var(--p-slidemenu-list-padding);
    --_list-gap: var(--p-slidemenu-list-gap);
    --_transition-duration: var(--p-slidemenu-transition-duration);
    --_item-border-radius: var(--p-slidemenu-item-border-radius);
    --_item-padding: var(--p-slidemenu-item-padding);
    --_item-gap: var(--p-slidemenu-item-gap);
    --_item-color: var(--p-slidemenu-item-color);
    --_item-focus-background: var(--p-slidemenu-item-focus-background);
    --_item-focus-color: var(--p-slidemenu-item-focus-color);
    --_item-active-background: var(--p-slidemenu-item-active-background);
    --_item-active-color: var(--p-slidemenu-item-active-color);
    --_item-icon-color: var(--p-slidemenu-item-icon-color);
    --_item-icon-focus-color: var(--p-slidemenu-item-icon-focus-color);
    --_item-icon-active-color: var(--p-slidemenu-item-icon-active-color);
    --_item-icon-size: var(--p-slidemenu-item-icon-size);
    --_item-label-font-size: var(--p-slidemenu-item-label-font-size);
    --_item-label-font-weight: var(--p-slidemenu-item-label-font-weight);
    --_submenu-icon-color: var(--p-slidemenu-submenu-icon-color);
    --_submenu-icon-focus-color: var(--p-slidemenu-submenu-icon-focus-color);
    --_submenu-icon-size: var(--p-slidemenu-submenu-icon-size);
    --_submenu-icon-active-color: var(--p-slidemenu-item-icon-active-color);
    --_submenu-label-background: var(--p-slidemenu-back-background);
    --_submenu-label-color: var(--p-slidemenu-back-color);
    --_submenu-label-font-weight: var(--p-slidemenu-back-font-weight);
    --_submenu-background: var(--p-slidemenu-background);
    --_submenu-border-color: var(--p-slidemenu-border-color);
    --_submenu-border-radius: var(--p-slidemenu-border-radius);
    --_submenu-padding: var(--p-slidemenu-list-padding);
    --_submenu-shadow: var(--p-slidemenu-shadow);
    .p-slidemenu-backward {
      padding: 0;
      color: var(--_submenu-label-color);
      width: 100%;
      border: 0 none;
      background: var(--_submenu-label-background);
      margin-bottom: 0;
      border-radius: 0;
      .p-menuitem-link {
        color: var(--_submenu-label-color);
        padding: var(--_item-padding);
        width: 100%;
        border: 0 none;
        float: none;
        border-radius: var(--_item-border-radius);
        transition: background var(--_transition-duration), color var(--_transition-duration);
        .p-menuitem-text {
          color: var(--_submenu-label-color);
          font-weight: var(--_submenu-label-font-weight);
        }
        .p-slidemenu-back-icon {
          --_icon: var(--p-slidemenu-back-icon);
          position: relative;
          float: none;
          margin: 0;
          font-size: var(--_submenu-icon-size);
          color: var(--_submenu-icon-color);
        }
        &:not(.p-state-disabled):hover .p-slidemenu-back-icon,
        &.p-state-hover .p-slidemenu-back-icon,
        &.p-state-focus .p-slidemenu-back-icon {
          color: var(--_submenu-icon-focus-color);
        }
      }
    }
    .p-menu-child {
      box-shadow: none;
      border: 0 none;
    }
  }
}

/* packages/components/src/slider/slider.css */
@layer primefaces.components {
  .p-slider {
    position: relative;
    text-align: start;
    background: var(--p-slider-track-background);
    border: 0 none;
    border-radius: var(--p-slider-track-border-radius);
    .p-slider-handle {
      position: absolute;
      z-index: 2;
      cursor: grab;
      touch-action: none;
      display: flex;
      justify-content: center;
      align-items: center;
      width: var(--p-slider-handle-width);
      height: var(--p-slider-handle-height);
      background: var(--p-slider-handle-background);
      border: 0 none;
      border-radius: var(--p-slider-handle-border-radius);
      outline-color: transparent;
      transition:
        background var(--p-slider-transition-duration),
        color var(--p-slider-transition-duration),
        border-color var(--p-slider-transition-duration),
        box-shadow var(--p-slider-transition-duration),
        outline-color var(--p-slider-transition-duration);
      &::before {
        content: "";
        display: block;
        width: var(--p-slider-handle-content-width);
        height: var(--p-slider-handle-content-height);
        background: var(--p-slider-handle-content-background);
        border-radius: var(--p-slider-handle-content-border-radius);
        box-shadow: var(--p-slider-handle-content-shadow);
        transition: background var(--p-slider-transition-duration);
      }
      &:active {
        cursor: grabbing;
      }
      &:focus-visible {
        outline: var(--p-slider-handle-focus-ring-width) var(--p-slider-handle-focus-ring-style) var(--p-slider-handle-focus-ring-color);
        outline-offset: var(--p-slider-handle-focus-ring-offset);
        box-shadow: var(--p-slider-handle-focus-ring-shadow);
      }
    }
    &.p-state-disabled .p-slider-handle {
      cursor: default;
    }
    &:not(.p-state-disabled) .p-slider-handle:hover {
      background: var(--p-slider-handle-hover-background);
    }
    &:not(.p-state-disabled) .p-slider-handle:hover::before {
      background: var(--p-slider-handle-content-hover-background);
    }
    &.p-slider-horizontal {
      height: var(--p-slider-track-size);
      margin-block: calc((var(--p-slider-handle-height) - var(--p-slider-track-size)) / 2);
      touch-action: pan-y;
      .p-slider-range {
        top: 0;
        height: 100%;
      }
      .p-slider-range-min {
        left: 0;
      }
      .p-slider-range-max {
        right: 0;
      }
      .p-slider-handle {
        top: calc(var(--p-slider-track-size) / 2 - var(--p-slider-handle-height) / 2);
        margin-left: calc(-1 * var(--p-slider-handle-width) / 2);
      }
    }
    &.p-slider-vertical {
      width: var(--p-slider-track-size);
      height: 100px;
      margin-inline: calc((var(--p-slider-handle-width) - var(--p-slider-track-size)) / 2);
      touch-action: pan-x;
      .p-slider-range {
        left: 0;
        width: 100%;
      }
      .p-slider-range-min {
        bottom: 0;
      }
      .p-slider-range-max {
        top: 0;
      }
      .p-slider-handle {
        left: calc(var(--p-slider-track-size) / 2 - var(--p-slider-handle-width) / 2);
        margin-left: 0;
        margin-top: 0;
        margin-bottom: calc(-1 * var(--p-slider-handle-height) / 2);
      }
    }
    .p-slider-range {
      position: absolute;
      z-index: 1;
      display: block;
      border: 0;
      background: var(--p-slider-range-background);
      border-radius: var(--p-slider-track-border-radius);
    }
  }
  .p-slider.p-slider-animate {
    .p-slider-handle,
    .p-slider-range {
      transition-property:
        left,
        bottom,
        width,
        height,
        background,
        color,
        border-color,
        box-shadow,
        outline-color;
      transition-duration: var(--p-slider-transition-duration);
    }
  }
  .p-inputtext + .p-slider-horizontal {
    margin-bottom: max(var(--p-form-field-padding-y), calc((var(--p-slider-handle-height) - var(--p-slider-track-size)) / 2));
  }
}

/* packages/components/src/speeddial/speeddial.css */
@layer primefaces.components {
  .p-speeddial {
    position: absolute;
    display: flex;
    z-index: 1;
    .p-speeddial-show-icon {
      --_icon: var(--p-speeddial-show-icon);
    }
    .p-speeddial-rotate .p-button-icon-left + .p-button-icon-left {
      transform: rotate(-90deg);
    }
    .p-speeddial-button .p-button-icon-left + .p-button-icon-left {
      position: absolute;
      opacity: 0;
    }
  }
  .p-speeddial-list {
    margin: 0;
    padding: 0;
    list-style: none;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: top 0s linear var(--p-speeddial-transition-duration);
    pointer-events: none;
  }
  .p-speeddial-item {
    transform: scale(0);
    opacity: 0;
    transition: transform var(--p-speeddial-transition-duration) var(--p-transition-easing), opacity var(--p-speeddial-item-fade-duration);
    will-change: transform;
  }
  .p-speeddial-action {
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    position: relative;
    overflow: hidden;
    width: var(--p-button-sm-icon-only-width);
    height: var(--p-button-sm-icon-only-width);
    font-size: var(--p-button-sm-font-size);
    background: var(--p-button-secondary-background);
    color: var(--p-button-secondary-color);
    border: 1px solid var(--p-button-secondary-border-color);
    outline-color: transparent;
    text-decoration: none;
    cursor: pointer;
    transition:
      background var(--p-speeddial-transition-duration),
      color var(--p-speeddial-transition-duration),
      border-color var(--p-speeddial-transition-duration),
      outline-color var(--p-speeddial-transition-duration),
      box-shadow var(--p-speeddial-transition-duration);
    .p-speeddial-action-icon {
      font-size: var(--p-button-sm-font-size);
    }
    .p-menuitem-text:empty {
      display: none;
    }
    &:not(.p-disabled):hover {
      background: var(--p-button-secondary-hover-background);
      color: var(--p-button-secondary-hover-color);
      border-color: var(--p-button-secondary-hover-border-color);
    }
    &:not(.p-disabled):active {
      background: var(--p-button-secondary-active-background);
      color: var(--p-button-secondary-active-color);
      border-color: var(--p-button-secondary-active-border-color);
    }
    &:focus-visible {
      outline: var(--p-button-focus-ring-width) var(--p-button-focus-ring-style) var(--p-button-secondary-focus-ring-color);
      outline-offset: var(--p-button-focus-ring-offset);
      box-shadow: var(--p-button-secondary-focus-ring-shadow);
    }
  }
  .p-speeddial.p-disabled .p-speeddial-button,
  .p-speeddial-action.p-disabled {
    opacity: var(--p-disabled-opacity);
    cursor: default;
  }
  .p-speeddial-button.p-speeddial-rotate .p-button-icon-left {
    transition-duration: var(--p-speeddial-rotate-duration);
    transition-timing-function: var(--p-transition-easing);
    transition-property: opacity, transform;
  }
  .p-speeddial-mask {
    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    opacity: 0;
    background-color: var(--p-mask-background);
    border-radius: var(--p-content-border-radius);
    transition: opacity var(--p-speeddial-mask-hide-duration) var(--p-transition-easing-exit);
  }
  .p-speeddial-mask-visible {
    pointer-events: none;
    opacity: 1;
    transition: opacity var(--p-speeddial-mask-show-duration) var(--p-transition-easing-enter);
  }
  .p-speeddial-opened {
    &.p-speeddial {
      z-index: 2;
    }
    .p-speeddial-list {
      pointer-events: auto;
    }
    .p-speeddial-item {
      transform: scale(1);
      opacity: 1;
    }
    .p-speeddial-rotate .p-button-icon-left {
      transform: rotate(45deg);
    }
    .p-speeddial-dual-icon .p-button-icon-left {
      opacity: 0;
    }
    .p-button-icon-left + .p-button-icon-left,
    .p-speeddial-button .p-button-icon-left + .p-button-icon-left {
      opacity: 1;
    }
    .p-speeddial-rotate.p-speeddial-dual-icon .p-button-icon-left {
      transform: rotate(90deg);
    }
    .p-speeddial-rotate .p-button-icon-left + .p-button-icon-left {
      transform: rotate(0deg);
    }
  }
  .p-speeddial-direction-up {
    align-items: center;
    flex-direction: column-reverse;
    .p-speeddial-list {
      flex-direction: column-reverse;
    }
    .p-speeddial-item {
      margin: calc(var(--p-speeddial-gap) / 2) 0;
      &:first-child {
        margin-bottom: var(--p-speeddial-gap);
      }
    }
  }
  .p-speeddial-direction-down {
    align-items: center;
    flex-direction: column;
    .p-speeddial-list {
      flex-direction: column;
    }
    .p-speeddial-item {
      margin: calc(var(--p-speeddial-gap) / 2) 0;
      &:first-child {
        margin-top: var(--p-speeddial-gap);
      }
    }
  }
  .p-speeddial-direction-left {
    justify-content: center;
    flex-direction: row-reverse;
    .p-speeddial-list {
      flex-direction: row-reverse;
    }
    .p-speeddial-item {
      margin: 0 calc(var(--p-speeddial-gap) / 2);
      &:first-child {
        margin-right: var(--p-speeddial-gap);
      }
    }
  }
  .p-speeddial-direction-right {
    justify-content: center;
    flex-direction: row;
    .p-speeddial-list {
      flex-direction: row;
    }
    .p-speeddial-item {
      margin: 0 calc(var(--p-speeddial-gap) / 2);
      &:first-child {
        margin-left: var(--p-speeddial-gap);
      }
    }
  }
  .p-speeddial-circle,
  .p-speeddial-semi-circle,
  .p-speeddial-quarter-circle {
    .p-speeddial-item {
      position: absolute;
      margin: 0;
    }
    .p-speeddial-item:first-child {
      margin: 0;
    }
  }
}

/* packages/components/src/spinner/spinner.css */
@layer primefaces.components {
  .p-spinner {
    display: inline-block;
    overflow: visible;
    padding: 0;
    position: relative;
    vertical-align: middle;
    &.p-state-disabled {
      opacity: 1;
      > .p-spinner-button {
        opacity: var(--p-disabled-opacity);
      }
    }
    .p-spinner-input {
      vertical-align: middle;
      text-align: right;
      width: 100%;
      font-variant-numeric: tabular-nums;
      &[dir=rtl] {
        text-align: left;
      }
    }
    &.text-left .p-spinner-input {
      text-align: left;
    }
    &.text-center .p-spinner-input {
      text-align: center;
    }
    &.text-right .p-spinner-input {
      text-align: right;
    }
    .p-spinner-button {
      cursor: default;
      display: block;
      margin: 0;
      overflow: hidden;
      padding: 0;
      position: absolute;
      right: 0;
      text-align: center;
      vertical-align: middle;
      z-index: 1;
    }
    .p-spinner-up {
      top: 0;
    }
    .p-spinner-down {
      bottom: 0;
    }
    .p-spinner-button.p-button {
      --_bg: var(--p-inputnumber-button-background);
      --_hover-bg: var(--p-inputnumber-button-hover-background);
      --_active-bg: var(--p-inputnumber-button-active-background);
      --_border: var(--p-inputnumber-button-border-color);
      --_hover-border: var(--p-inputnumber-button-hover-border-color);
      --_active-border: var(--p-inputnumber-button-active-border-color);
      --_color: var(--p-inputnumber-button-color);
      --_hover-color: var(--p-inputnumber-button-hover-color);
      --_active-color: var(--p-inputnumber-button-active-color);
      padding: 0;
      border-radius: 0;
      width: var(--p-inputnumber-button-width);
      transition:
        background var(--p-inputnumber-transition-duration),
        color var(--p-inputnumber-transition-duration),
        border-color var(--p-inputnumber-transition-duration),
        outline-color var(--p-inputnumber-transition-duration);
      .p-button-text {
        padding: 0;
      }
      .p-icon {
        position: absolute;
        top: 50%;
        left: 50%;
        margin: 0;
        transform: translate(-50%, -50%);
        font-size: var(--p-icon-size);
        line-height: 1;
      }
      &.p-state-error {
        --_border: var(--p-form-field-invalid-border-color);
        --_hover-border: var(--p-form-field-invalid-border-color);
        --_active-border: var(--p-form-field-invalid-border-color);
      }
    }
    .p-spinner-increment-icon {
      --_icon: var(--p-inputnumber-increment-icon);
    }
    .p-spinner-decrement-icon {
      --_icon: var(--p-inputnumber-decrement-icon);
    }
    &:is(.p-spinner-horizontal, .p-spinner-horizontal-after, .p-spinner-vertical) {
      .p-spinner-increment-icon {
        --_icon: var(--p-icon-plus);
      }
      .p-spinner-decrement-icon {
        --_icon: var(--p-icon-minus);
      }
    }
    &.p-spinner-stacked {
      .p-spinner-input {
        padding-inline-end: calc(var(--p-inputnumber-button-width) + var(--p-form-field-padding-x));
      }
      .p-spinner-button.p-button {
        --_border: transparent;
        --_hover-border: transparent;
        --_active-border: transparent;
        height: calc(50% - 1px);
        right: 1px;
      }
      .p-spinner-button.p-spinner-up {
        top: 1px;
        border-top-right-radius: calc(var(--p-inputnumber-button-border-radius) - 1px);
      }
      .p-spinner-button.p-spinner-down {
        bottom: 1px;
        border-bottom-right-radius: calc(var(--p-inputnumber-button-border-radius) - 1px);
      }
    }
    &.p-spinner-stacked.p-spinner-rtl {
      .p-spinner-button.p-button {
        right: auto;
        left: 1px;
      }
      .p-spinner-button.p-spinner-up {
        border-top-right-radius: 0;
        border-top-left-radius: calc(var(--p-inputnumber-button-border-radius) - 1px);
      }
      .p-spinner-button.p-spinner-down {
        border-bottom-right-radius: 0;
        border-bottom-left-radius: calc(var(--p-inputnumber-button-border-radius) - 1px);
      }
    }
    &.p-spinner-horizontal .p-spinner-input {
      text-align: center;
      padding-inline: calc(var(--p-inputnumber-button-width) + var(--p-form-field-padding-x));
    }
    &.p-spinner-horizontal .p-spinner-button.p-button,
    &.p-spinner-horizontal-after .p-spinner-button.p-button {
      top: 0;
      bottom: auto;
      height: 100%;
    }
    &.p-spinner-horizontal {
      .p-spinner-button.p-spinner-up {
        right: 0;
        left: auto;
        border-radius: 0 var(--p-inputnumber-button-border-radius) var(--p-inputnumber-button-border-radius) 0;
      }
      .p-spinner-button.p-spinner-down {
        left: 0;
        right: auto;
        border-radius: var(--p-inputnumber-button-border-radius) 0 0 var(--p-inputnumber-button-border-radius);
      }
    }
    &.p-spinner-horizontal.p-spinner-rtl {
      .p-spinner-button.p-spinner-up {
        right: auto;
        left: 0;
        border-radius: var(--p-inputnumber-button-border-radius) 0 0 var(--p-inputnumber-button-border-radius);
      }
      .p-spinner-button.p-spinner-down {
        left: auto;
        right: 0;
        border-radius: 0 var(--p-inputnumber-button-border-radius) var(--p-inputnumber-button-border-radius) 0;
      }
    }
    &.p-spinner-horizontal-after {
      .p-spinner-input {
        padding-inline-end: calc(var(--p-inputnumber-button-width) * 2 + var(--p-form-field-padding-x));
      }
      .p-spinner-button.p-spinner-up {
        right: 0;
        border-radius: 0 var(--p-inputnumber-button-border-radius) var(--p-inputnumber-button-border-radius) 0;
      }
      .p-spinner-button.p-spinner-down {
        right: calc(var(--p-inputnumber-button-width) - 1px);
        border-radius: 0;
      }
    }
    &.p-spinner-horizontal-after.p-spinner-rtl {
      .p-spinner-input {
        padding-inline-end: var(--p-form-field-padding-x);
        padding-inline-start: calc(var(--p-inputnumber-button-width) * 2 + var(--p-form-field-padding-x));
      }
      .p-spinner-button.p-spinner-up {
        right: auto;
        left: 0;
        border-radius: var(--p-inputnumber-button-border-radius) 0 0 var(--p-inputnumber-button-border-radius);
      }
      .p-spinner-button.p-spinner-down {
        right: auto;
        left: calc(var(--p-inputnumber-button-width) - 1px);
      }
    }
    &.p-spinner-vertical {
      .p-spinner-input {
        text-align: center;
        padding-block: calc(var(--p-inputnumber-button-width) + var(--p-form-field-padding-y));
        padding-inline: var(--p-form-field-padding-x);
      }
      .p-spinner-button.p-button {
        left: 0;
        right: auto;
        width: 100%;
        height: var(--p-inputnumber-button-width);
      }
      .p-spinner-button.p-spinner-up {
        top: 0;
        border-radius: var(--p-inputnumber-button-border-radius) var(--p-inputnumber-button-border-radius) 0 0;
      }
      .p-spinner-button.p-spinner-down {
        bottom: 0;
        border-radius: 0 0 var(--p-inputnumber-button-border-radius) var(--p-inputnumber-button-border-radius);
      }
    }
    &:has(> .p-inputtext-sm) .p-spinner-button .p-icon {
      font-size: var(--p-form-field-sm-font-size);
    }
    &:has(> .p-inputtext-lg) .p-spinner-button .p-icon {
      font-size: var(--p-form-field-lg-font-size);
    }
  }
  .p-fluid .p-spinner {
    width: 100%;
    .p-spinner-input {
      width: 100%;
    }
  }
  .p-spinner.p-state-error {
    .p-spinner-input,
    .p-spinner-input:is(:hover, :focus, .p-state-hover, .p-state-focus) {
      border-color: var(--p-inputtext-invalid-border-color);
    }
    .p-spinner-button {
      --_border: var(--p-form-field-invalid-border-color);
      --_hover-border: var(--p-form-field-invalid-border-color);
      --_active-border: var(--p-form-field-invalid-border-color);
    }
  }
}

/* packages/components/src/forms/splitbutton.css */
@layer primefaces.components {
  .p-splitbutton {
    display: inline-flex;
    position: relative;
    border-radius: var(--p-splitbutton-border-radius);
    > .p-button {
      margin: 0;
      &:has(+ .p-splitbutton-menubutton) {
        border-start-end-radius: 0;
        border-end-end-radius: 0;
        border-inline-end-width: 0;
      }
      &:focus-visible {
        z-index: 1;
      }
    }
    .p-button.p-splitbutton-menubutton {
      border-start-start-radius: 0;
      border-end-start-radius: 0;
      .p-splitbutton-dropdown-icon {
        --_icon: var(--p-splitbutton-dropdown-icon);
      }
    }
    &.p-button-raised {
      box-shadow: var(--p-splitbutton-raised-shadow);
      > .p-button:not(:focus-visible) {
        box-shadow: none;
      }
    }
    &.rounded-button {
      border-radius: var(--p-splitbutton-rounded-border-radius);
      > .p-button:first-child {
        border-start-start-radius: var(--p-splitbutton-rounded-border-radius);
        border-end-start-radius: var(--p-splitbutton-rounded-border-radius);
      }
      .p-button.p-splitbutton-menubutton {
        border-start-end-radius: var(--p-splitbutton-rounded-border-radius);
        border-end-end-radius: var(--p-splitbutton-rounded-border-radius);
      }
    }
    .p-splitbuttonmenu {
      min-width: 100%;
    }
  }
  .p-splitbuttonmenu {
    width: auto;
    .p-splitbuttonmenu-filter-container {
      position: relative;
      display: block;
      margin: 0;
      padding: var(--p-list-header-padding);
      padding-inline: var(--p-form-field-padding-x);
      border-bottom: 0 none;
      background: var(--p-menu-background);
      color: var(--p-menu-color);
      .p-splitbuttonmenu-filter.p-inputfield {
        padding: var(--p-form-field-padding-y) var(--p-form-field-padding-x);
        padding-inline-start: calc(2 * var(--p-form-field-padding-x) + var(--p-icon-size));
      }
      .p-splitbutton-filter-icon {
        --_icon: var(--p-splitbutton-filter-icon);
        position: absolute;
        inset-inline-start: calc(2 * var(--p-form-field-padding-x));
        top: 50%;
        margin-top: calc(var(--p-icon-size) / -2);
        color: var(--p-form-field-icon-color);
      }
    }
    .p-splitbuttonmenu-filter {
      width: 100%;
    }
    .p-splitbuttonmenu-list-wrapper {
      overflow: auto;
    }
    .p-divider-horizontal {
      width: auto;
    }
  }
  .p-fluid {
    .p-splitbutton {
      display: flex;
      width: 100%;
      .p-button {
        flex: 1 1 auto;
        width: 100%;
        &.p-splitbutton-menubutton {
          flex: 0 0 auto;
          width: var(--p-button-icon-only-width);
          &.p-button-sm {
            width: var(--p-button-sm-icon-only-width);
          }
          &.p-button-lg {
            width: var(--p-button-lg-icon-only-width);
          }
        }
      }
    }
  }
}

/* packages/components/src/splitter/splitter.css */
@layer primefaces.components {
  .p-splitter {
    display: flex;
    flex-wrap: nowrap;
    background: var(--p-splitter-background);
    color: var(--p-splitter-color);
    border: 1px solid var(--p-splitter-border-color);
    border-radius: var(--p-border-radius-md);
    .p-splitter-gutter {
      position: relative;
      z-index: 1;
      background: var(--p-splitter-gutter-background);
      transition: background var(--p-splitter-transition-duration);
      .p-splitter-gutter-handle {
        background: var(--p-splitter-handle-background);
        border-radius: var(--p-splitter-handle-border-radius);
        outline-color: transparent;
        transition:
          background var(--p-splitter-transition-duration),
          outline-color var(--p-splitter-transition-duration),
          box-shadow var(--p-splitter-transition-duration);
      }
      &:focus-visible {
        outline: 0 none;
      }
      &:focus-visible > .p-splitter-gutter-handle,
      .p-splitter-gutter-handle:focus-visible {
        outline: var(--p-splitter-handle-focus-ring-width) var(--p-splitter-handle-focus-ring-style) var(--p-splitter-handle-focus-ring-color);
        outline-offset: var(--p-splitter-handle-focus-ring-offset);
        box-shadow: var(--p-splitter-handle-focus-ring-shadow);
      }
    }
    .p-splitter-gutter-resizing {
      background: var(--p-splitter-gutter-resizing-background);
    }
  }
  .p-splitter-panel {
    flex-grow: 1;
  }
  .p-splitter-panel-nested {
    display: flex;
  }
  .p-splitter-panel .p-splitter {
    flex-grow: 1;
    border: 0 none;
    border-radius: 0;
  }
  .p-splitter-gutter {
    flex-grow: 0;
    flex-shrink: 0;
    display: flex;
    align-items: center;
    justify-content: center;
  }
  .p-splitter-horizontal {
    &.p-splitter-resizing {
      cursor: col-resize;
      -webkit-user-select: none;
      user-select: none;
    }
    > .p-splitter-gutter {
      cursor: col-resize;
      > .p-splitter-gutter-handle {
        width: 100%;
        height: var(--p-splitter-handle-size);
      }
    }
  }
  .p-splitter-vertical {
    flex-direction: column;
    &.p-splitter-resizing {
      cursor: row-resize;
      -webkit-user-select: none;
      user-select: none;
    }
    > .p-splitter-gutter {
      cursor: row-resize;
      > .p-splitter-gutter-handle {
        width: var(--p-splitter-handle-size);
        height: 100%;
      }
    }
  }
}

/* packages/components/src/spotlight/spotlight.css */
@layer primefaces.components {
  .p-spotlight.p-component-overlay {
    position: fixed;
    background: var(--p-spotlight-mask-background);
    color: var(--p-spotlight-mask-color);
    transition: background var(--p-spotlight-transition-duration);
  }
}

/* packages/components/src/staticmessage/staticmessage.css */
@layer primefaces.components {
  .p-staticmessage {
    position: relative;
    .p-messages-close {
      position: absolute;
      cursor: pointer;
      top: -.75rem;
      inset-inline-end: -.75rem;
      width: 2rem;
      height: 2rem;
      padding: 0;
      -webkit-user-select: none;
      user-select: none;
      text-align: center;
    }
  }
  .p-message.p-staticmessage {
    display: flex;
    align-items: center;
    gap: var(--p-message-content-gap);
    &.p-message-icon-only {
      display: inline-flex;
    }
    > .pi {
      flex-shrink: 0;
      color: var(--_color);
      font-size: var(--_icon-size);
    }
    .p-messages-close {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      border: var(--p-message-border-width) solid var(--_border-color);
      border-radius: 50%;
      background: var(--_bg);
      color: var(--_color);
      box-shadow: var(--_shadow);
      text-decoration: none;
      outline-color: transparent;
      transition:
        background var(--p-message-transition-duration),
        color var(--p-message-transition-duration),
        outline-color var(--p-message-transition-duration),
        box-shadow var(--p-message-transition-duration);
      &:hover {
        background-image: linear-gradient(var(--_close-hover-bg), var(--_close-hover-bg));
      }
      &:focus-visible {
        outline: var(--p-message-close-button-focus-ring-width) var(--p-message-close-button-focus-ring-style) var(--_close-focus-ring-color);
        outline-offset: var(--p-message-close-button-focus-ring-offset);
        box-shadow: var(--_close-focus-ring-shadow);
      }
      .p-message-close-icon {
        --_icon: var(--p-message-close-icon);
        color: inherit;
        font-size: var(--_close-icon-size);
      }
    }
    &.p-message-outlined .p-messages-close,
    &.p-message-simple .p-messages-close {
      position: static;
      order: 1;
      flex-shrink: 0;
      margin-inline-start: auto;
      width: var(--p-message-close-button-width);
      height: var(--p-message-close-button-height);
      border: 0 none;
      border-radius: var(--p-message-close-button-border-radius);
    }
  }
}

/* packages/components/src/menu/steps.css */
@layer primefaces.components {
  .p-steps {
    position: relative;
    ul {
      list-style-type: none;
      padding: 0;
      margin: 0;
      display: flex;
    }
    .p-steps-item {
      position: relative;
      display: flex;
      justify-content: center;
      flex: 1 1 0;
      background: transparent;
      text-align: center;
      opacity: 1;
      &::before {
        content: " ";
        border-top: 2px solid var(--p-steps-separator-background);
        width: 100%;
        top: calc(var(--p-steps-item-number-size) / 2 - 1px);
        inset-inline-start: 0;
        display: block;
        position: absolute;
      }
      &:first-child::before {
        width: 50%;
        inset-inline-start: 50%;
      }
      &:last-child::before {
        width: 50%;
      }
      &:only-child::before {
        display: none;
      }
      .p-menuitem-link {
        text-decoration: none;
        position: relative;
        text-align: center;
        display: inline-flex;
        flex-direction: column;
        align-items: center;
        gap: var(--p-steps-item-link-gap);
        max-width: 100%;
        background: transparent;
        padding: 0;
        border-radius: var(--p-steps-item-link-border-radius);
        outline-color: transparent;
        transition: outline-color var(--p-steps-transition-duration), box-shadow var(--p-steps-transition-duration);
        &:focus-visible {
          outline: var(--p-steps-item-link-focus-ring-width) var(--p-steps-item-link-focus-ring-style) var(--p-steps-item-link-focus-ring-color);
          outline-offset: var(--p-steps-item-link-focus-ring-offset);
          box-shadow: var(--p-steps-item-link-focus-ring-shadow);
        }
        .p-steps-number {
          display: flex;
          align-items: center;
          justify-content: center;
          position: relative;
          z-index: 1;
          color: var(--p-steps-item-number-color);
          background: var(--p-steps-item-number-background);
          border: 2px solid var(--p-steps-item-number-border-color);
          box-shadow: var(--p-steps-item-number-shadow);
          min-width: var(--p-steps-item-number-size);
          height: var(--p-steps-item-number-size);
          line-height: var(--p-steps-item-number-size);
          font-size: var(--p-steps-item-number-font-size);
          font-weight: var(--p-steps-item-number-font-weight);
          padding: 0;
          margin: 0;
          border-radius: var(--p-steps-item-number-border-radius);
          .p-steps-number-icon {
            font-size: var(--p-icon-size);
            line-height: 1;
          }
        }
        .p-steps-title {
          max-width: 100%;
          overflow: hidden;
          text-overflow: ellipsis;
          padding: 0;
          color: var(--p-steps-item-label-color);
          font-weight: var(--p-steps-item-label-font-weight);
        }
      }
      &.p-state-highlight {
        .p-steps-number {
          background: var(--p-steps-item-number-active-background);
          color: var(--p-steps-item-number-active-color);
          border-color: var(--p-steps-item-number-active-border-color);
        }
        .p-steps-title {
          color: var(--p-steps-item-label-active-color);
        }
      }
    }
    .p-steps-item.p-state-highlight:not(.p-steps-item-executable) .p-menuitem-link,
    .p-steps-item.p-state-disabled .p-menuitem-link {
      cursor: default;
    }
    .p-steps-title {
      display: block;
      white-space: nowrap;
    }
    @media (max-width: 640px) {
      .p-steps-item .p-steps-title {
        display: none;
      }
    }
  }
  .p-steps:not(.p-steps-readonly) .p-steps-item.p-steps-item-executable .p-menuitem-link {
    cursor: pointer;
  }
}

/* packages/components/src/menu/tabmenu.css */
@layer primefaces.components {
  .p-tabmenu {
    .p-tabmenu-nav {
      margin: calc(var(--p-badge-height) / -2) 0 0 0;
      padding: calc(var(--p-badge-height) / 2) 0 0 0;
      background: var(--p-tabmenu-tablist-background);
      display: flex;
      flex-wrap: nowrap;
      position: relative;
      overflow-x: auto;
      &::before {
        content: "";
        display: block;
        position: absolute;
        border-style: solid;
        border-width: var(--p-tabmenu-tablist-border-width);
        border-color: var(--p-tabmenu-tablist-border-color);
        left: 0;
        bottom: 0;
        width: 100%;
      }
      .p-tabmenuitem {
        position: relative;
        list-style: none;
        padding: 0;
        white-space: nowrap;
        background: var(--p-tabmenu-item-background);
        color: var(--p-tabmenu-item-color);
        margin: 0;
        border-style: solid;
        border-width: var(--p-tabmenu-item-border-width);
        border-color: var(--p-tabmenu-item-border-color);
        cursor: pointer;
        display: flex;
        align-items: center;
        flex-shrink: 0;
        outline-color: transparent;
        transition:
          background var(--p-tabmenu-transition-duration),
          border-color var(--p-tabmenu-transition-duration),
          color var(--p-tabmenu-transition-duration),
          outline-color var(--p-tabmenu-transition-duration),
          box-shadow var(--p-tabmenu-transition-duration);
        a {
          color: var(--p-tabmenu-item-color);
          padding: var(--p-tabmenu-item-padding);
          font-weight: var(--p-tabmenu-item-font-weight);
          display: flex;
          align-items: center;
          gap: var(--p-tabmenu-item-gap);
          line-height: 1;
          text-decoration: none;
          outline: 0 none;
          transition: color var(--p-tabmenu-transition-duration);
          .p-menuitem-icon {
            color: var(--p-tabmenu-item-icon-color);
            transition: color var(--p-tabmenu-transition-duration);
          }
        }
        &:not(.p-state-active):not(.p-state-disabled):hover,
        &.p-state-hover {
          background: var(--p-tabmenu-item-hover-background);
          border-color: var(--p-tabmenu-item-hover-border-color);
        }
        &:not(.p-state-active):not(.p-state-disabled):hover a,
        &.p-state-hover a {
          color: var(--p-tabmenu-item-hover-color);
        }
        &:not(.p-state-active):not(.p-state-disabled):hover a .p-menuitem-icon,
        &.p-state-hover a .p-menuitem-icon {
          color: var(--p-tabmenu-item-icon-hover-color);
        }
        &.p-state-active {
          background: var(--p-tabmenu-item-active-background);
          border-color: var(--p-tabmenu-item-active-border-color);
          a {
            color: var(--p-tabmenu-item-active-color);
            .p-menuitem-icon {
              color: var(--p-tabmenu-item-icon-active-color);
            }
          }
        }
        &.p-menuitem-outline:focus-visible,
        &:has(> a:focus-visible) {
          outline: var(--p-tabmenu-item-focus-ring-width) var(--p-tabmenu-item-focus-ring-style) var(--p-tabmenu-item-focus-ring-color);
          outline-offset: var(--p-tabmenu-item-focus-ring-offset);
          box-shadow: var(--p-tabmenu-item-focus-ring-shadow);
          z-index: 1;
        }
      }
    }
  }
  .p-tabmenu.p-tabs-bottom .p-tabmenu-nav {
    &::before {
      border-width: 1px 0 0 0;
      bottom: auto;
      top: 0;
    }
    .p-tabmenuitem {
      border-width: 1px 0 0 0;
    }
  }
  .p-tabmenu.p-tabs-left .p-tabmenu-nav {
    flex-direction: column;
    &::before {
      border-width: 0 1px 0 0;
      left: auto;
      right: 0;
      width: auto;
      height: 100%;
    }
    .p-tabmenuitem {
      border-width: 0 1px 0 0;
    }
  }
  .p-tabmenu.p-tabs-right .p-tabmenu-nav {
    flex-direction: column;
    &::before {
      border-width: 0 0 0 1px;
      width: auto;
      height: 100%;
    }
    .p-tabmenuitem {
      border-width: 0 0 0 1px;
    }
  }
  .p-tabmenu:is(.p-tabs-bottom, .p-tabs-left, .p-tabs-right) .p-tabmenu-nav .p-tabmenuitem {
    &.p-state-hover {
      border-color: var(--p-tabmenu-item-hover-border-color);
    }
    &.p-state-active {
      border-color: var(--p-tabmenu-item-active-border-color);
    }
  }
}

/* packages/components/src/tabview/tabview.css */
@layer primefaces.components {
  .p-tabs {
    position: relative;
    .p-tabs-nav {
      display: flex;
      position: relative;
      margin: 0;
      padding: 0;
      background: var(--p-tabs-tablist-background);
      border-style: solid;
      border-color: var(--p-tabs-tablist-border-color);
      border-width: var(--p-tabs-tablist-border-width);
      border-radius: 0;
      li {
        list-style: none;
        position: relative;
        margin: 0;
        padding: 0;
        white-space: nowrap;
        display: inline-block;
        vertical-align: top;
        .p-menu-list {
          white-space: initial;
        }
        a {
          text-decoration: none;
          outline: none;
          cursor: pointer;
        }
        &.p-tabs-selected a,
        &.p-state-disabled a {
          cursor: text;
        }
        > .p-tabs-close-icon {
          cursor: pointer;
        }
        &.p-tabs-header {
          display: flex;
          align-items: center;
          gap: var(--p-tabs-tab-gap);
          flex-shrink: 0;
          margin: var(--p-tabs-tab-margin);
          padding: var(--p-tabs-tab-padding);
          cursor: pointer;
          -webkit-user-select: none;
          user-select: none;
          font-size: var(--p-tabs-tab-font-size);
          font-weight: var(--p-tabs-tab-font-weight);
          background: var(--p-tabs-tab-background);
          color: var(--p-tabs-tab-color);
          border-style: solid;
          border-width: var(--p-tabs-tab-border-width);
          border-color: var(--p-tabs-tab-border-color);
          border-radius: 0;
          outline-color: transparent;
          transition:
            background var(--p-tabs-transition-duration),
            border-color var(--p-tabs-transition-duration),
            color var(--p-tabs-transition-duration),
            outline-color var(--p-tabs-transition-duration),
            box-shadow var(--p-tabs-transition-duration);
        }
        &.p-tabs-header a {
          display: block;
          color: inherit;
          font-weight: var(--p-tabs-tab-font-weight);
          line-height: var(--p-typography-line-height);
        }
        &.p-tabs-header .p-tabs-close-icon {
          --_icon: var(--p-tabs-close-icon);
        }
        &.p-tabs-header::after {
          content: "";
          display: block;
          position: absolute;
          z-index: 1;
          inset-inline: 0;
          bottom: var(--p-tabs-active-bar-bottom);
          height: var(--p-tabs-active-bar-height);
          background: transparent;
          pointer-events: none;
          transition: background var(--p-tabs-transition-duration);
        }
        &.p-tabs-header.p-state-hover,
        &.p-tabs-header:not(.p-state-active, .p-state-disabled):hover {
          background: var(--p-tabs-tab-hover-background);
          border-color: var(--p-tabs-tab-hover-border-color);
          color: var(--p-tabs-tab-hover-color);
        }
        &.p-tabs-header.p-state-active {
          background: var(--p-tabs-tab-active-background);
          border-color: var(--p-tabs-tab-active-border-color);
          color: var(--p-tabs-tab-active-color);
        }
        &.p-tabs-header.p-state-active::after {
          background: var(--p-tabs-active-bar-background);
        }
        &.p-tabs-header.p-state-error,
        &.p-tabs-header.p-state-error:not(.p-state-disabled):hover {
          color: var(--p-tabs-tab-invalid-color);
          border-color: var(--p-tabs-tab-invalid-border-color);
        }
        &.p-tabs-header.p-state-error.p-state-active,
        &.p-tabs-header.p-state-error.p-state-active:not(.p-state-disabled):hover {
          color: var(--p-tabs-tab-active-invalid-color);
        }
        &.p-tabs-header.p-state-error.p-state-active::after {
          background: var(--p-tabs-active-bar-invalid-background);
        }
        &.p-tabs-header:not(.p-state-disabled):has(> a:focus-visible) {
          z-index: 1;
          outline: var(--p-tabs-tab-focus-ring-width) var(--p-tabs-tab-focus-ring-style) var(--p-tabs-tab-focus-ring-color);
          outline-offset: var(--p-tabs-tab-focus-ring-offset);
          box-shadow: var(--p-tabs-tab-focus-ring-shadow);
        }
        &.p-tabs-actions {
          order: 1;
          margin-inline-start: auto;
          align-self: center;
        }
      }
    }
    li.p-tabs-actions.p-hidden {
      display: none;
    }
    .p-tabs-footer {
      padding: var(--p-tabs-tabpanel-padding);
      background: var(--p-tabs-tabpanel-background);
      color: var(--p-tabs-tabpanel-color);
    }
    .p-tabs-panels {
      background: var(--p-tabs-tabpanel-background);
      color: var(--p-tabs-tabpanel-color);
      .p-tabs-panel {
        padding: var(--p-tabs-tabpanel-padding);
        outline-color: transparent;
        &:focus-visible {
          outline: var(--p-tabs-tabpanel-focus-ring-width) var(--p-tabs-tabpanel-focus-ring-style) var(--p-tabs-tabpanel-focus-ring-color);
          outline-offset: var(--p-tabs-tabpanel-focus-ring-offset);
          box-shadow: var(--p-tabs-tabpanel-focus-ring-shadow);
        }
      }
    }
    .p-tabs-panel {
      border-width: 0;
      background: none;
    }
    &.p-tabs-top > .p-tabs-nav,
    &.p-tabs-bottom > .p-tabs-nav {
      flex-wrap: wrap;
    }
    &.p-tabs-bottom {
      > .p-tabs-nav,
      > .p-tabs-navscroller > .p-tabs-nav {
        border-width: 0;
        border-top: 1px solid var(--p-tabs-tablist-border-color);
      }
      > .p-tabs-nav > li.p-tabs-header::after,
      > .p-tabs-navscroller > .p-tabs-nav > li.p-tabs-header::after {
        top: var(--p-tabs-active-bar-bottom);
        bottom: auto;
      }
    }
    &.p-tabs-left > .p-tabs-nav,
    &.p-tabs-right > .p-tabs-nav {
      flex-direction: column;
      width: 25%;
      border-width: 0;
    }
    &.p-tabs-left > .p-tabs-nav li,
    &.p-tabs-right > .p-tabs-nav li {
      white-space: normal;
    }
    &.p-tabs-left > .p-tabs-nav li a,
    &.p-tabs-right > .p-tabs-nav li a {
      width: 90%;
    }
    &.p-tabs-left > .p-tabs-nav > li.p-tabs-header,
    &.p-tabs-right > .p-tabs-nav > li.p-tabs-header {
      width: 100%;
    }
    &.p-tabs-left > .p-tabs-panels,
    &.p-tabs-right > .p-tabs-panels {
      width: 75%;
    }
    &.p-tabs-left .p-tabs-actions,
    &.p-tabs-right .p-tabs-actions {
      position: absolute;
      bottom: 0;
    }
    &.p-tabs-left > .p-tabs-nav {
      border-right: 1px solid var(--p-tabs-tablist-border-color);
    }
    &.p-tabs-right {
      > .p-tabs-nav {
        float: right;
        border-left: 1px solid var(--p-tabs-tablist-border-color);
      }
      > .p-tabs-panels {
        float: left;
      }
    }
    &.p-tabs-left > .p-tabs-nav > li.p-tabs-header::after,
    &.p-tabs-right > .p-tabs-nav > li.p-tabs-header::after {
      inset-block: 0;
      width: var(--p-tabs-active-bar-height);
      height: auto;
    }
    &.p-tabs-left > .p-tabs-nav > li.p-tabs-header::after {
      inset-inline: auto var(--p-tabs-active-bar-bottom);
    }
    &.p-tabs-right > .p-tabs-nav > li.p-tabs-header::after {
      inset-inline: var(--p-tabs-active-bar-bottom) auto;
    }
    .p-tabs-navscroller {
      position: relative;
      overflow: hidden;
      padding-left: var(--p-tabs-nav-button-width);
      &.p-tabs-navscroller-btn-hidden {
        padding-left: 0;
      }
      .p-tabs-navscroller-btn {
        display: flex;
        align-items: center;
        justify-content: center;
        z-index: 2;
        top: 0;
        height: 100%;
        width: var(--p-tabs-nav-button-width);
        background: var(--p-tabs-nav-button-background);
        color: var(--p-tabs-nav-button-color);
        border: 0 none;
        box-shadow: var(--p-tabs-nav-button-shadow);
        outline: 0 none;
        outline-color: transparent;
        transition:
          color var(--p-tabs-transition-duration),
          outline-color var(--p-tabs-transition-duration),
          box-shadow var(--p-tabs-transition-duration);
        &.p-tabs-navscroller-btn-left {
          left: 0;
        }
        &.p-tabs-navscroller-btn-right {
          right: 0;
        }
        .p-tabs-prev-icon {
          --_icon: var(--p-tabs-prev-icon);
        }
        .p-tabs-next-icon {
          --_icon: var(--p-tabs-next-icon);
        }
        &.p-state-hover,
        &:not(.p-state-disabled):hover {
          background: var(--p-tabs-nav-button-background);
          color: var(--p-tabs-nav-button-hover-color);
        }
        &:focus-visible {
          z-index: 3;
          outline: var(--p-tabs-nav-button-focus-ring-width) var(--p-tabs-nav-button-focus-ring-style) var(--p-tabs-nav-button-focus-ring-color);
          outline-offset: var(--p-tabs-nav-button-focus-ring-offset);
          box-shadow: var(--p-tabs-nav-button-focus-ring-shadow);
        }
      }
    }
    .p-tabs-navscroller-btn {
      position: absolute;
      cursor: pointer;
    }
    .p-tabs-navscroller.p-tabs-navscroller-btn-hidden .p-tabs-navscroller-btn {
      display: none;
    }
  }
  .p-tabs-left::after,
  .p-tabs-right::after {
    clear: both;
    content: ".";
    display: block;
    height: 0;
    visibility: hidden;
  }
  .p-tabs-left {
    > .p-tabs-nav {
      float: left;
    }
    > .p-tabs-panels {
      overflow: hidden;
    }
  }
  .p-tabs-rtl {
    direction: rtl;
  }
  .p-tabs-scrollable > .p-tabs-navscroller > .p-tabs-nav {
    width: 5000px;
  }
  .p-tabs-outline {
    z-index: 1;
  }
}

/* packages/components/src/tag/tag.css */
@layer primefaces.components {
  .p-tag {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: var(--p-tag-gap);
    background: var(--p-tag-primary-background);
    color: var(--p-tag-primary-color);
    font-size: var(--p-tag-font-size);
    font-weight: var(--p-tag-font-weight);
    padding: var(--p-tag-padding);
    border-radius: var(--p-tag-border-radius);
    .p-tag-icon,
    .p-tag-value {
      line-height: var(--p-typography-line-height);
    }
    &:not(.p-component) {
      display: inline-block;
      text-align: center;
      line-height: 1;
    }
    &.p-tag-success {
      background: var(--p-tag-success-background);
      color: var(--p-tag-success-color);
    }
    &.p-tag-info {
      background: var(--p-tag-info-background);
      color: var(--p-tag-info-color);
    }
    &.p-tag-warning {
      background: var(--p-tag-warn-background);
      color: var(--p-tag-warn-color);
    }
    &.p-tag-danger {
      background: var(--p-tag-danger-background);
      color: var(--p-tag-danger-color);
    }
    &.p-tag-secondary {
      background: var(--p-tag-secondary-background);
      color: var(--p-tag-secondary-color);
    }
    &.p-tag-help {
      background: var(--p-tag-help-background);
      color: var(--p-tag-help-color);
    }
    &.p-tag-contrast {
      background: var(--p-tag-contrast-background);
      color: var(--p-tag-contrast-color);
    }
    &.p-tag-outlined {
      --_border-color: var(--p-tag-outlined-primary-border-color);
      background: var(--p-tag-outlined-background);
      color: var(--p-tag-outlined-primary-color);
      box-shadow: inset 0 0 0 var(--p-tag-outlined-border-width) var(--_border-color);
      &.p-tag-success {
        --_border-color: var(--p-tag-outlined-success-border-color);
        color: var(--p-tag-outlined-success-color);
      }
      &.p-tag-info {
        --_border-color: var(--p-tag-outlined-info-border-color);
        color: var(--p-tag-outlined-info-color);
      }
      &.p-tag-warning {
        --_border-color: var(--p-tag-outlined-warn-border-color);
        color: var(--p-tag-outlined-warn-color);
      }
      &.p-tag-danger {
        --_border-color: var(--p-tag-outlined-danger-border-color);
        color: var(--p-tag-outlined-danger-color);
      }
      &.p-tag-secondary {
        --_border-color: var(--p-tag-outlined-secondary-border-color);
        color: var(--p-tag-outlined-secondary-color);
      }
      &.p-tag-help {
        --_border-color: var(--p-tag-outlined-help-border-color);
        color: var(--p-tag-outlined-help-color);
      }
      &.p-tag-contrast {
        --_border-color: var(--p-tag-outlined-contrast-border-color);
        color: var(--p-tag-outlined-contrast-color);
      }
    }
    &.p-tag-rounded {
      border-radius: var(--p-tag-rounded-border-radius);
    }
    .p-tag-icon {
      margin: 0;
      font-size: var(--p-tag-icon-size);
    }
    &:not(.p-component) .p-tag-icon {
      margin-inline-end: var(--p-tag-gap);
    }
  }
}

/* packages/components/src/tagcloud/tagcloud.css */
@layer primefaces.components {
  .p-tagcloud {
    width: 250px;
    border: 1px solid var(--p-tagcloud-border-color);
    background: var(--p-tagcloud-background);
    color: var(--p-tagcloud-color);
    padding: var(--p-tagcloud-padding);
    border-radius: var(--p-tagcloud-border-radius);
    ul {
      margin: 0;
      padding: 0;
      text-align: center;
      display: flex;
      flex-wrap: wrap;
      justify-content: center;
      align-items: center;
      gap: var(--p-tagcloud-gap);
    }
    li {
      margin: 0;
      padding: 0;
      list-style: none;
      display: inline-block;
    }
    li a {
      display: inline-block;
      text-decoration: none;
      padding: var(--p-tagcloud-item-padding);
      color: var(--p-tagcloud-item-color);
      border-radius: var(--p-tagcloud-item-border-radius);
      outline-color: transparent;
      transition:
        background var(--p-tagcloud-transition-duration),
        color var(--p-tagcloud-transition-duration),
        outline-color var(--p-tagcloud-transition-duration),
        box-shadow var(--p-tagcloud-transition-duration);
      &:hover,
      &.p-state-hover {
        background: var(--p-tagcloud-item-hover-background);
        color: var(--p-tagcloud-item-hover-color);
      }
      &:focus-visible {
        outline: var(--p-tagcloud-item-focus-ring-width) var(--p-tagcloud-item-focus-ring-style) var(--p-tagcloud-item-focus-ring-color);
        outline-offset: var(--p-tagcloud-item-focus-ring-offset);
        box-shadow: var(--p-tagcloud-item-focus-ring-shadow);
      }
    }
  }
  .p-tagcloud-strength-1 {
    font-size: var(--p-tagcloud-strength-1-font-size);
  }
  .p-tagcloud-strength-2 {
    font-size: var(--p-tagcloud-strength-2-font-size);
  }
  .p-tagcloud-strength-3 {
    font-size: var(--p-tagcloud-strength-3-font-size);
  }
  .p-tagcloud-strength-4 {
    font-size: var(--p-tagcloud-strength-4-font-size);
  }
  .p-tagcloud-strength-5 {
    font-size: var(--p-tagcloud-strength-5-font-size);
  }
}

/* packages/components/src/menu/tieredmenu.css */
@layer primefaces.components {
  .p-menu.p-tieredmenu {
    --_bg: var(--p-tieredmenu-background);
    --_border-color: var(--p-tieredmenu-border-color);
    --_border-radius: var(--p-tieredmenu-border-radius);
    --_color: var(--p-tieredmenu-color);
    --_shadow: var(--p-tieredmenu-shadow);
    --_list-padding: var(--p-tieredmenu-list-padding);
    --_list-gap: var(--p-tieredmenu-list-gap);
    --_transition-duration: var(--p-tieredmenu-transition-duration);
    --_item-border-radius: var(--p-tieredmenu-item-border-radius);
    --_item-padding: var(--p-tieredmenu-item-padding);
    --_item-gap: var(--p-tieredmenu-item-gap);
    --_item-color: var(--p-tieredmenu-item-color);
    --_item-focus-background: var(--p-tieredmenu-item-focus-background);
    --_item-focus-color: var(--p-tieredmenu-item-focus-color);
    --_item-active-background: var(--p-tieredmenu-item-active-background);
    --_item-active-color: var(--p-tieredmenu-item-active-color);
    --_item-icon-color: var(--p-tieredmenu-item-icon-color);
    --_item-icon-focus-color: var(--p-tieredmenu-item-icon-focus-color);
    --_item-icon-active-color: var(--p-tieredmenu-item-icon-active-color);
    --_item-icon-size: var(--p-tieredmenu-item-icon-size);
    --_item-label-font-size: var(--p-tieredmenu-item-label-font-size);
    --_item-label-font-weight: var(--p-tieredmenu-item-label-font-weight);
    --_submenu-icon-color: var(--p-tieredmenu-submenu-icon-color);
    --_submenu-icon-focus-color: var(--p-tieredmenu-submenu-icon-focus-color);
    --_submenu-icon-size: var(--p-tieredmenu-submenu-icon-size);
    --_submenu-icon-active-color: var(--p-tieredmenu-submenu-icon-active-color);
    --_separator-border-color: var(--p-tieredmenu-separator-border-color);
    --_submenu-background: var(--p-tieredmenu-background);
    --_submenu-border-color: var(--p-tieredmenu-border-color);
    --_submenu-border-radius: var(--p-tieredmenu-border-radius);
    --_submenu-padding: var(--p-tieredmenu-list-padding);
    --_submenu-shadow: var(--p-tieredmenu-shadow);
  }
}

/* packages/components/src/toggleswitch/toggleswitch.css */
@layer primefaces.components {
  .p-toggleswitch-handler {
    display: flex;
    align-items: center;
    justify-content: center;
  }
  .p-toggleswitch-dual-icon {
    .p-toggleswitch-handler > span:not(.p-ink-container) {
      position: absolute;
      transition-duration: var(--p-toggleswitch-slide-duration);
      transition-timing-function: var(--p-transition-easing);
      transition-property: opacity, transform;
      opacity: 0;
      transform: rotate(-90deg);
      & + span {
        opacity: 1;
        transform: rotate(0deg);
      }
    }
    &.p-toggleswitch-checked .p-toggleswitch-handler > span:not(.p-ink-container) {
      opacity: 1;
      transform: rotate(0deg);
      & + span {
        opacity: 0;
        transform: rotate(90deg);
      }
    }
    &:dir(rtl) .p-toggleswitch-handler > span:not(.p-ink-container) {
      transform: rotate(90deg);
      & + span {
        transform: rotate(0deg);
      }
    }
    &.p-toggleswitch-checked:dir(rtl) .p-toggleswitch-handler > span:not(.p-ink-container) {
      transform: rotate(0deg);
      & + span {
        transform: rotate(-90deg);
      }
    }
  }
  .p-toggleswitch {
    --_width: var(--_toggleswitch-width, var(--p-toggleswitch-width));
    --_height: var(--_toggleswitch-height, var(--p-toggleswitch-height));
    --_gap: var(--_toggleswitch-gap, var(--p-toggleswitch-gap));
    --_handle-size: var(--_toggleswitch-handle-size, var(--p-toggleswitch-handle-size));
    --_handle-icon-size: var(--_toggleswitch-handle-icon-size, var(--p-toggleswitch-handle-icon-size));
    position: relative;
    display: inline-block;
    width: var(--_width);
    height: var(--_height);
    .p-toggleswitch-slider {
      position: absolute;
      cursor: pointer;
      top: 0;
      left: 0;
      right: 0;
      bottom: 0;
      background: var(--p-toggleswitch-background);
      border: var(--p-toggleswitch-border-width) solid var(--p-toggleswitch-border-color);
      border-radius: var(--p-toggleswitch-border-radius);
      box-shadow: var(--p-toggleswitch-shadow);
      outline-color: transparent;
      transition:
        background var(--p-toggleswitch-transition-duration),
        color var(--p-toggleswitch-transition-duration),
        border-color var(--p-toggleswitch-transition-duration),
        outline-color var(--p-toggleswitch-transition-duration),
        box-shadow var(--p-toggleswitch-transition-duration);
    }
    .p-toggleswitch-handler {
      position: absolute;
      top: 50%;
      background: var(--p-toggleswitch-handle-background);
      color: var(--p-toggleswitch-handle-color);
      width: var(--_handle-size);
      height: var(--_handle-size);
      inset-inline-start: calc(var(--_gap) - var(--p-toggleswitch-border-width));
      margin-top: calc(-1 * var(--_handle-size) / 2);
      border-radius: var(--p-toggleswitch-handle-border-radius);
      box-shadow: var(--p-toggleswitch-handle-shadow);
      font-size: var(--_handle-icon-size);
      line-height: var(--_handle-size);
      transition:
        background var(--p-toggleswitch-transition-duration),
        color var(--p-toggleswitch-transition-duration),
        transform var(--p-toggleswitch-slide-duration) var(--p-transition-easing),
        box-shadow var(--p-toggleswitch-slide-duration);
    }
    .p-toggleswitch-handler > span:not(.p-ink-container) {
      font-size: var(--_handle-icon-size);
      line-height: var(--_handle-size);
    }
    &.p-toggleswitch-checked {
      .p-toggleswitch-slider {
        background: var(--p-toggleswitch-checked-background);
        border-color: var(--p-toggleswitch-checked-border-color);
      }
      .p-toggleswitch-handler {
        background: var(--p-toggleswitch-handle-checked-background);
        color: var(--p-toggleswitch-handle-checked-color);
        transform: translateX(calc(var(--_width) - var(--_handle-size) - 2 * var(--_gap)));
        &:dir(rtl) {
          transform: translateX(calc(-1 * (var(--_width) - var(--_handle-size) - 2 * var(--_gap))));
        }
      }
    }
    &:not(.p-state-disabled, .p-state-readonly):hover {
      .p-toggleswitch-slider {
        background: var(--p-toggleswitch-hover-background);
        border-color: var(--p-toggleswitch-hover-border-color);
      }
      .p-toggleswitch-handler {
        background: var(--p-toggleswitch-handle-hover-background);
        color: var(--p-toggleswitch-handle-hover-color);
      }
    }
    &.p-toggleswitch-checked:not(.p-state-disabled, .p-state-readonly):hover {
      .p-toggleswitch-slider {
        background: var(--p-toggleswitch-checked-hover-background);
        border-color: var(--p-toggleswitch-checked-hover-border-color);
      }
      .p-toggleswitch-handler {
        background: var(--p-toggleswitch-handle-checked-hover-background);
        color: var(--p-toggleswitch-handle-checked-hover-color);
      }
    }
    &.p-toggleswitch-focus .p-toggleswitch-slider {
      outline: var(--p-toggleswitch-focus-ring-width) var(--p-toggleswitch-focus-ring-style) var(--p-toggleswitch-focus-ring-color);
      outline-offset: var(--p-toggleswitch-focus-ring-offset);
      box-shadow: var(--p-toggleswitch-focus-ring-shadow);
    }
    .p-toggleswitch-slider.p-state-error,
    &:hover .p-toggleswitch-slider.p-state-error,
    &.p-toggleswitch-checked:hover .p-toggleswitch-slider.p-state-error {
      border-color: var(--p-toggleswitch-invalid-border-color);
    }
    &.p-state-disabled {
      opacity: var(--p-toggleswitch-disabled-opacity);
      .p-toggleswitch-slider {
        cursor: default;
        background: var(--p-toggleswitch-disabled-background);
      }
      .p-toggleswitch-handler {
        background: var(--p-toggleswitch-handle-disabled-background);
      }
      &.p-toggleswitch-checked {
        .p-toggleswitch-slider {
          background: var(--p-toggleswitch-checked-disabled-background);
        }
        .p-toggleswitch-handler {
          background: var(--p-toggleswitch-handle-checked-disabled-background);
        }
      }
    }
    &.p-state-readonly .p-toggleswitch-slider {
      cursor: default;
    }
  }
  .p-toggleswitch-sm {
    --_toggleswitch-width: var(--p-toggleswitch-sm-width);
    --_toggleswitch-height: var(--p-toggleswitch-sm-height);
    --_toggleswitch-gap: var(--p-toggleswitch-sm-gap);
    --_toggleswitch-handle-size: var(--p-toggleswitch-handle-sm-size);
    --_toggleswitch-handle-icon-size: var(--p-toggleswitch-handle-sm-icon-size);
  }
  .p-toggleswitch-lg {
    --_toggleswitch-width: var(--p-toggleswitch-lg-width);
    --_toggleswitch-height: var(--p-toggleswitch-lg-height);
    --_toggleswitch-gap: var(--p-toggleswitch-lg-gap);
    --_toggleswitch-handle-size: var(--p-toggleswitch-handle-lg-size);
    --_toggleswitch-handle-icon-size: var(--p-toggleswitch-handle-lg-icon-size);
  }
}

/* packages/components/src/toolbar/toolbar.css */
@layer primefaces.components {
  .p-toolbar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: var(--p-toolbar-gap);
    padding: var(--p-toolbar-padding);
    background: var(--p-toolbar-background);
    color: var(--p-toolbar-color);
    border: 1px solid var(--p-toolbar-border-color);
    border-radius: var(--p-toolbar-border-radius);
    font-weight: inherit;
    .p-toolbar-group-left,
    .p-toolbar-group-right {
      gap: var(--p-toolbar-gap);
    }
    .p-toolbar-group-right {
      margin-inline-start: auto;
    }
  }
  .p-toolbar-group-left,
  .p-toolbar-group-right {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
  }
}

/* packages/components/src/tooltip/tooltip.css */
@layer primefaces.components {
  .p-tooltip {
    position: absolute;
    display: none;
    max-width: var(--p-tooltip-max-width);
    &.p-tooltip-right,
    &.p-tooltip-left {
      padding: 0 var(--p-tooltip-gutter);
    }
    &.p-tooltip-top,
    &.p-tooltip-bottom {
      padding: var(--p-tooltip-gutter) 0;
    }
    .p-tooltip-text {
      word-break: break-word;
      background: var(--p-tooltip-background);
      color: var(--p-tooltip-color);
      padding: var(--p-tooltip-padding);
      box-shadow: var(--p-tooltip-shadow);
      border-radius: var(--p-tooltip-border-radius);
      font-size: var(--p-tooltip-font-size);
      font-weight: var(--p-tooltip-font-weight);
      img,
      svg,
      video,
      canvas {
        display: block;
        max-width: 100%;
        height: auto;
      }
    }
    &.p-tooltip-right .p-tooltip-arrow {
      margin-top: calc(-1 * var(--p-tooltip-gutter));
      border-width: var(--p-tooltip-gutter) var(--p-tooltip-gutter) var(--p-tooltip-gutter) 0;
      border-right-color: var(--p-tooltip-background);
    }
    &.p-tooltip-left .p-tooltip-arrow {
      margin-top: calc(-1 * var(--p-tooltip-gutter));
      border-width: var(--p-tooltip-gutter) 0 var(--p-tooltip-gutter) var(--p-tooltip-gutter);
      border-left-color: var(--p-tooltip-background);
    }
    &.p-tooltip-top .p-tooltip-arrow {
      margin-left: calc(-1 * var(--p-tooltip-gutter));
      border-width: var(--p-tooltip-gutter) var(--p-tooltip-gutter) 0 var(--p-tooltip-gutter);
      border-top-color: var(--p-tooltip-background);
    }
    &.p-tooltip-bottom .p-tooltip-arrow {
      margin-left: calc(-1 * var(--p-tooltip-gutter));
      border-width: 0 var(--p-tooltip-gutter) var(--p-tooltip-gutter) var(--p-tooltip-gutter);
      border-bottom-color: var(--p-tooltip-background);
    }
    .p-tooltip-text.p-state-error {
      background: var(--p-tooltip-invalid-background);
      color: var(--p-tooltip-invalid-color);
    }
    &.p-tooltip-right .p-tooltip-arrow.p-state-error {
      border-right-color: var(--p-tooltip-invalid-background);
    }
    &.p-tooltip-left .p-tooltip-arrow.p-state-error {
      border-left-color: var(--p-tooltip-invalid-background);
    }
    &.p-tooltip-top .p-tooltip-arrow.p-state-error {
      border-top-color: var(--p-tooltip-invalid-background);
    }
    &.p-tooltip-bottom .p-tooltip-arrow.p-state-error {
      border-bottom-color: var(--p-tooltip-invalid-background);
    }
  }
  .p-tooltip-arrow {
    position: absolute;
    width: 0;
    height: 0;
    border-color: transparent;
    border-style: solid;
  }
  .p-tooltip-right .p-tooltip-arrow {
    top: 50%;
    left: 0;
  }
  .p-tooltip-left .p-tooltip-arrow {
    top: 50%;
    right: 0;
  }
  .p-tooltip-top .p-tooltip-arrow {
    bottom: 0;
    left: 50%;
  }
  .p-tooltip-bottom .p-tooltip-arrow {
    top: 0;
    left: 50%;
  }
}

/* packages/components/src/tree/tree.css */
@layer primefaces.components {
  .p-tree {
    position: relative;
    border: 1px solid var(--p-tree-border-color);
    background: var(--p-tree-background);
    color: var(--p-tree-color);
    padding: var(--p-tree-padding);
    width: 100%;
    border-radius: var(--p-tree-border-radius);
    .p-treenode {
      list-style: none outside none;
      margin: 0;
    }
    .p-tree-toggler {
      cursor: pointer;
      display: inline-block;
      vertical-align: middle;
    }
    .p-treenode-icon {
      display: inline-block;
      vertical-align: middle;
    }
    .p-treenode-label {
      display: inline-block;
      vertical-align: middle;
      cursor: default;
    }
    .p-tree-selectable .p-treenode-content,
    .p-treenode-content.p-tree-selectable,
    .p-treenode-content.p-tree-selectable .p-treenode-label {
      cursor: pointer;
    }
    .p-treenode-leaf-icon {
      display: inline-block;
    }
    .p-chkbox-box {
      cursor: pointer;
    }
    .p-treenode-hidden {
      display: none;
    }
    &.p-noborder {
      border: 0;
      padding: 0;
      .p-tree-container {
        padding: 0;
        margin: 0;
      }
    }
    &.p-state-disabled .p-tree-toggler,
    &.p-state-disabled .p-tree-selectable .p-treenode-content,
    &.p-state-disabled .p-treenode-content.p-tree-selectable,
    &.p-state-disabled .p-treenode-content.p-tree-selectable .p-treenode-label,
    &.p-state-disabled .p-tree-selectable .p-treenode-icon,
    &.p-state-disabled .p-chkbox-box {
      cursor: default;
    }
    .p-treenode-content .p-chkbox.p-selection {
      display: none;
    }
    .p-treenode-content.p-tree-selectable .p-chkbox.p-selection,
    &.p-tree-checkbox-all .p-treenode-content .p-chkbox.p-selection {
      display: inline-flex;
    }
    &.p-tree-rtl {
      direction: rtl;
    }
    .p-tree-scrollertop,
    .p-tree-scrollerbottom {
      height: 10px;
      width: 100%;
      position: absolute;
    }
    .p-tree-scrollertop {
      top: 0;
    }
    .p-tree-scrollerbottom {
      bottom: 0;
    }
    .p-tree-container {
      white-space: nowrap;
      overflow: auto;
      padding: 0.375rem;
      margin: -0.375rem;
      .p-treenode {
        padding: var(--p-tree-gap) 0 0 0;
      }
      .p-treenode .p-treenode-content * {
        flex: none;
      }
      .p-treenode .p-treenode-content {
        display: flex;
        align-items: center;
        padding: var(--p-tree-node-padding);
        color: var(--p-tree-node-color);
        border-radius: var(--p-tree-node-border-radius);
        outline-color: transparent;
        transition:
          background var(--p-tree-transition-duration),
          color var(--p-tree-transition-duration),
          outline-color var(--p-tree-transition-duration),
          box-shadow var(--p-tree-transition-duration);
      }
      .p-treenode .p-treenode-content .p-tree-toggler {
        margin: 0 var(--p-tree-node-gap) 0 0;
        width: var(--p-tree-node-toggle-button-size);
        height: var(--p-tree-node-toggle-button-size);
        line-height: var(--p-tree-node-toggle-button-size);
        text-align: center;
        padding: 0;
        -webkit-user-select: none;
        user-select: none;
        background: transparent;
        color: var(--p-tree-node-toggle-button-color);
        border: 0 none;
        border-radius: var(--p-tree-node-toggle-button-border-radius);
        outline-color: transparent;
        transition:
          background var(--p-tree-transition-duration),
          color var(--p-tree-transition-duration),
          outline-color var(--p-tree-transition-duration),
          box-shadow var(--p-tree-transition-duration);
      }
      .p-treenode .p-treenode-content .p-tree-toggler:hover {
        background: var(--p-tree-node-toggle-button-hover-background);
        color: var(--p-tree-node-toggle-button-hover-color);
      }
      .p-treenode .p-treenode-content .p-tree-toggler:focus-visible {
        outline: var(--p-tree-node-toggle-button-focus-ring-width) var(--p-tree-node-toggle-button-focus-ring-style) var(--p-tree-node-toggle-button-focus-ring-color);
        outline-offset: var(--p-tree-node-toggle-button-focus-ring-offset);
        box-shadow: var(--p-tree-node-toggle-button-focus-ring-shadow);
      }
      .p-tree-toggle-icon {
        --_icon: var(--p-tree-toggle-expanded-icon);
      }
      .p-treenode[aria-expanded=false] > .p-treenode-content > .p-tree-toggle-icon {
        --_icon: var(--p-tree-toggle-collapsed-icon);
      }
      .p-treenode .p-treenode-content .p-treenode-leaf-icon {
        width: var(--p-tree-node-toggle-button-size);
        height: var(--p-tree-node-toggle-button-size);
        margin: 0 var(--p-tree-node-gap) 0 0;
      }
      .p-treenode .p-treenode-content .p-treenode-icon {
        margin: 0 var(--p-tree-node-gap) 0 0;
        color: var(--p-tree-node-icon-color);
        transition: color var(--p-tree-transition-duration);
      }
    }
    .p-treenode-children {
      margin: 0;
      padding: 0 0 0 var(--p-tree-indent);
    }
    &.p-tree-rtl .p-treenode-children {
      padding: 0 var(--p-tree-indent) 0 0;
    }
    .p-tree-container {
      .p-treenode .p-treenode-content .p-treenode-label {
        margin: 0;
        padding: 0;
        font-size: var(--p-tree-node-label-font-size);
        font-weight: var(--p-tree-node-label-font-weight);
        border-radius: var(--p-tree-node-border-radius);
      }
      .p-treenode .p-treenode-content .p-chkbox {
        margin-right: calc(2 * var(--p-tree-node-gap));
      }
      .p-treenode .p-treenode-content .p-chkbox .p-checkbox-indeterminate-icon {
        color: var(--p-tree-color);
      }
      .p-treenode .p-treenode-content.p-state-highlight {
        background: var(--p-tree-node-selected-background);
        color: var(--p-tree-node-selected-color);
      }
      .p-treenode .p-treenode-content.p-state-highlight .p-treenode-label {
        font-weight: var(--p-tree-node-label-selected-font-weight);
      }
      .p-treenode .p-treenode-content.p-state-highlight .p-tree-toggler,
      .p-treenode .p-treenode-content.p-state-highlight .p-treenode-icon {
        color: var(--p-tree-node-icon-selected-color);
      }
      .p-treenode .p-treenode-content.p-state-highlight .p-tree-toggler:hover {
        background: var(--p-tree-node-toggle-button-selected-hover-background);
        color: var(--p-tree-node-toggle-button-selected-hover-color);
      }
      .p-treenode .p-treenode-content.p-state-highlight .p-treenode-icon:hover {
        color: var(--p-tree-node-icon-selected-color);
      }
      .p-treenode .p-treenode-content.p-tree-selectable:not(.p-state-highlight):hover,
      .p-treenode .p-treenode-content.p-tree-selectable:not(.p-state-highlight).p-state-hover {
        background: var(--p-tree-node-hover-background);
        color: var(--p-tree-node-hover-color);
      }
      .p-treenode .p-treenode-content.p-tree-selectable:not(.p-state-highlight):hover .p-treenode-icon,
      .p-treenode .p-treenode-content.p-tree-selectable:not(.p-state-highlight).p-state-hover .p-treenode-icon {
        color: var(--p-tree-node-icon-hover-color);
      }
      .p-tree-droppoint.p-state-hover {
        background: var(--p-tree-droppoint-active-background);
        border: 0 none;
      }
      .p-treenode-outline {
        outline: var(--p-tree-node-focus-ring-width) var(--p-tree-node-focus-ring-style) var(--p-tree-node-focus-ring-color);
        outline-offset: var(--p-tree-node-focus-ring-offset);
        box-shadow: var(--p-tree-node-focus-ring-shadow);
      }
    }
    .p-tree-droppoint {
      height: var(--p-tree-droppoint-height);
    }
    &.p-tree-rtl .p-tree-container .p-treenode .p-treenode-content {
      .p-tree-toggler {
        margin-right: 0;
        margin-left: var(--p-tree-node-gap);
      }
      .p-treenode-leaf-icon {
        margin: 0 0 0 var(--p-tree-node-gap);
      }
      .p-treenode-icon {
        margin: 0 0 0 var(--p-tree-node-gap);
      }
      .p-chkbox {
        margin-right: 0;
        margin-left: calc(2 * var(--p-tree-node-gap));
      }
    }
    &:is(.p-tree-rtl, :dir(rtl)) .p-tree-container .p-treenode[aria-expanded=false] > .p-treenode-content > .p-tree-toggle-icon {
      scale: -1 1;
    }
    .p-tree-filter-container {
      margin: var(--p-tree-filter-margin);
      .p-tree-filter-icon {
        --_icon: var(--p-tree-filter-icon);
        position: absolute;
        inset-inline-start: var(--p-inputtext-padding-x);
        top: 50%;
        margin-top: calc(-1 * var(--p-icon-size) / 2);
        color: var(--p-form-field-icon-color);
      }
      .p-inputfield {
        padding-block: var(--p-inputtext-padding-y);
        padding-inline: var(--p-inputtext-padding-x);
        padding-inline-start: calc(2 * var(--p-inputtext-padding-x) + var(--p-icon-size));
      }
    }
  }
  .p-tree-droppoint {
    list-style: none outside none;
    margin: 0;
    padding: 0;
  }
  .p-tree-filter-container {
    padding: 0;
    position: relative;
  }
  .p-tree-filter.p-inputfield {
    width: 100%;
    box-sizing: border-box;
  }
  .p-tree-horizontal {
    width: auto;
    overflow: auto;
    .p-treenode-content {
      position: relative;
      z-index: 1;
      outline: 0 none;
    }
    .p-treenode-parent .p-treenode-content {
      white-space: nowrap;
    }
  }
  .p-tree.p-tree-horizontal {
    padding-left: 0;
    padding-right: 0;
    table,
    tr,
    td {
      border-collapse: collapse;
      margin: 0;
      padding: 0;
      vertical-align: middle;
    }
    table {
      height: 0;
    }
    .p-treenode {
      background: linear-gradient(var(--p-tree-connector-color), var(--p-tree-connector-color)) repeat-x left center / 100% 1px;
      padding: 5px 40px;
      position: relative;
    }
    .p-treenode.p-treenode-leaf,
    .p-treenode.p-treenode-collapsed {
      padding-inline-end: 0;
    }
    .p-treenode-children {
      padding: 0;
      margin: 0;
    }
    .p-treenode-connector {
      width: 1px;
    }
    .p-treenode-connector-table {
      height: 100%;
      width: 1px;
    }
    .p-treenode-connector-line {
      background: linear-gradient(var(--p-tree-connector-color), var(--p-tree-connector-color)) repeat-y left top / 1px 100%;
      width: 1px;
    }
    .p-treenode-content {
      font-weight: var(--p-tree-node-label-font-weight);
      border: 1px solid var(--p-tree-horizontal-node-border-color);
      background: var(--p-tree-horizontal-node-background);
      color: var(--p-tree-node-color);
      padding: var(--p-tree-horizontal-node-padding);
      border-radius: var(--p-tree-node-border-radius);
      transition: background var(--p-tree-transition-duration), color var(--p-tree-transition-duration);
      &.p-state-hover {
        background: var(--p-tree-node-hover-background);
        color: var(--p-tree-node-hover-color);
      }
      &.p-state-highlight {
        background: var(--p-tree-node-selected-background);
        color: var(--p-tree-node-selected-color);
      }
      .p-tree-toggler {
        margin-inline-end: var(--p-tree-node-gap);
        vertical-align: middle;
      }
      .p-tree-horizontal-toggle-icon {
        --_icon: var(--p-tree-horizontal-toggle-expanded-icon);
      }
      .p-treenode-icon {
        vertical-align: middle;
        margin-inline-end: var(--p-tree-node-gap);
      }
      .p-treenode-label {
        padding: 0;
        vertical-align: middle;
      }
      .p-chkbox {
        margin-inline-end: var(--p-tree-node-gap);
      }
      .p-chkbox .p-checkbox-indeterminate-icon {
        color: var(--p-tree-color);
      }
    }
    .p-treenode-collapsed > .p-treenode-content > .p-tree-horizontal-toggle-icon {
      --_icon: var(--p-tree-horizontal-toggle-collapsed-icon);
    }
    .p-treenode::before {
      background-color: var(--p-tree-background);
    }
  }
  .p-tree-horizontal .p-treenode {
    &::before {
      content: " ";
      position: absolute;
      top: 0;
      inset-inline-start: 40px;
      height: 100%;
      width: calc(100% - 80px);
      pointer-events: none;
    }
    &.p-treenode-collapsed::before,
    &.p-treenode-leaf::before {
      width: calc(100% - 40px);
    }
  }
  .p-tree-draghelper,
  .p-tree-draghelper.p-state-highlight {
    background: var(--p-tree-draghelper-background);
    color: var(--p-tree-node-color);
    border: 1px solid var(--p-tree-draghelper-border-color);
    border-radius: var(--p-tree-node-border-radius);
  }
  .p-fluid .p-tree {
    width: 100%;
  }
}

/* packages/components/src/treetable/treetable.css */
@layer primefaces.components {
  .p-treetable {
    .p-treetable-header {
      background: var(--p-treetable-header-background);
      color: var(--p-treetable-header-color);
      border: 1px solid var(--p-treetable-header-border-color);
      border-width: var(--p-treetable-header-border-width);
      padding: var(--p-treetable-header-padding);
      font-weight: var(--p-treetable-header-font-weight);
      text-align: start;
    }
    .p-treetable-footer {
      background: var(--p-treetable-footer-background);
      color: var(--p-treetable-footer-color);
      border: 1px solid var(--p-treetable-footer-border-color);
      border-width: var(--p-treetable-footer-border-width);
      padding: var(--p-treetable-footer-padding);
      font-weight: var(--p-treetable-footer-font-weight);
      text-align: start;
    }
    .p-paginator {
      padding: var(--p-paginator-padding);
      &.p-paginator-top {
        border-style: solid;
        border-color: var(--p-treetable-paginator-top-border-color);
        border-width: var(--p-treetable-paginator-top-border-width);
        border-radius: 0;
      }
      &.p-paginator-bottom {
        border-style: solid;
        border-color: var(--p-treetable-paginator-bottom-border-color);
        border-width: var(--p-treetable-paginator-bottom-border-width);
        border-radius: 0;
      }
    }
    table {
      border-collapse: collapse;
      width: 100%;
      table-layout: fixed;
    }
    thead th,
    tbody td,
    tfoot td {
      overflow: hidden;
      white-space: nowrap;
      border-style: solid;
    }
    thead th {
      background: var(--p-treetable-header-cell-background);
      color: var(--p-treetable-header-cell-color);
      padding: var(--p-treetable-header-cell-padding);
      border: 1px solid var(--p-treetable-header-cell-border-color);
      border-width: 0 0 1px 0;
      font-weight: normal;
      text-align: start;
      box-sizing: content-box;
      outline-color: transparent;
      transition:
        background var(--p-treetable-transition-duration),
        color var(--p-treetable-transition-duration),
        border-color var(--p-treetable-transition-duration),
        outline-color var(--p-treetable-transition-duration),
        box-shadow var(--p-treetable-transition-duration);
      .p-column-title {
        font-weight: var(--p-treetable-column-title-font-weight);
        font-size: var(--p-treetable-column-title-font-size);
        vertical-align: middle;
      }
      .p-sortable-column-icon {
        display: inline-block;
        vertical-align: middle;
        margin: 0;
        margin-inline-start: var(--p-treetable-header-cell-gap);
        color: var(--p-treetable-sort-icon-color);
        font-size: var(--p-treetable-sort-icon-size);
        transition: color var(--p-treetable-transition-duration);
        &.p-treetable-sort-icon {
          --_icon: var(--p-treetable-sort-icon);
        }
        &.p-treetable-sort-asc-icon {
          --_icon: var(--p-treetable-sort-asc-icon);
        }
        &.p-treetable-sort-desc-icon {
          --_icon: var(--p-treetable-sort-desc-icon);
        }
      }
      .p-sortable-column-badge {
        border-radius: var(--p-badge-border-radius);
        padding: var(--p-badge-padding);
        height: var(--p-badge-height);
        min-width: var(--p-badge-min-width);
        line-height: var(--p-badge-height);
        color: var(--p-badge-primary-color);
        background: var(--p-badge-primary-background);
        margin-inline-start: var(--p-treetable-header-cell-gap);
        font-size: var(--p-badge-font-size);
        font-weight: var(--p-badge-font-weight);
        text-align: center;
        vertical-align: middle;
      }
      &.p-sortable-column.p-state-focus,
      &.p-sortable-column:focus-visible {
        outline: var(--p-treetable-header-cell-focus-ring-width) var(--p-treetable-header-cell-focus-ring-style) var(--p-treetable-header-cell-focus-ring-color);
        outline-offset: var(--p-treetable-header-cell-focus-ring-offset);
        box-shadow: var(--p-treetable-header-cell-focus-ring-shadow);
      }
      &.p-state-hover {
        background: var(--p-treetable-header-cell-hover-background);
        color: var(--p-treetable-header-cell-hover-color);
        .p-sortable-column-icon {
          color: var(--p-treetable-sort-icon-hover-color);
        }
      }
    }
    thead th.p-state-active {
      &,
      &.p-state-hover {
        background: var(--p-treetable-header-cell-selected-background);
        color: var(--p-treetable-header-cell-selected-color);
      }
      .p-sortable-column-icon {
        color: var(--p-treetable-header-cell-selected-color);
      }
    }
    .p-sortable-column {
      cursor: pointer;
      -webkit-user-select: none;
      user-select: none;
    }
    .p-sortable-column-badge {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      vertical-align: middle;
      &.p-hidden {
        display: none;
      }
    }
    .p-column-filter {
      display: block;
      box-sizing: border-box;
      width: 100%;
      margin: var(--p-treetable-column-filter-gap) auto auto auto;
    }
    .p-column-customfilter {
      margin: var(--p-treetable-column-filter-gap) auto auto auto;
      .p-inputfield,
      .p-selectonemenu {
        width: 100%;
        max-width: 100%;
      }
    }
    .p-treetable-data tr.p-state-hover {
      cursor: pointer;
    }
    .p-treetable-data > tr {
      background: var(--p-treetable-row-background);
      color: var(--p-treetable-row-color);
      outline-color: transparent;
      transition:
        background var(--p-treetable-transition-duration),
        color var(--p-treetable-transition-duration),
        border-color var(--p-treetable-transition-duration),
        outline-color var(--p-treetable-transition-duration),
        box-shadow var(--p-treetable-transition-duration);
      > td {
        padding: var(--p-treetable-body-cell-padding);
        border: 1px solid var(--p-treetable-body-cell-border-color);
        border-width: 0 0 1px 0;
        font-size: var(--p-treetable-body-cell-font-size);
        font-weight: var(--p-treetable-body-cell-font-weight);
        text-align: start;
      }
      &:focus-visible {
        outline: var(--p-treetable-row-focus-ring-width) var(--p-treetable-row-focus-ring-style) var(--p-treetable-row-focus-ring-color);
        outline-offset: var(--p-treetable-row-focus-ring-offset);
        box-shadow: var(--p-treetable-row-focus-ring-shadow);
      }
      &.p-treetable-empty-message > td {
        color: var(--p-treetable-empty-message-color);
      }
      > td .p-treetable-toggler {
        margin: 0;
        margin-inline-end: var(--p-treetable-body-cell-gap);
        width: var(--p-treetable-node-toggle-button-size);
        height: var(--p-treetable-node-toggle-button-size);
        background: transparent;
        color: var(--p-treetable-node-toggle-button-color);
        border: 0 none;
        border-radius: var(--p-treetable-node-toggle-button-border-radius);
        text-align: center;
        padding: 0;
        -webkit-user-select: none;
        user-select: none;
        outline-color: transparent;
        transition:
          background var(--p-treetable-transition-duration),
          color var(--p-treetable-transition-duration),
          outline-color var(--p-treetable-transition-duration),
          box-shadow var(--p-treetable-transition-duration);
        &:hover {
          background: var(--p-treetable-node-toggle-button-hover-background);
          color: var(--p-treetable-node-toggle-button-hover-color);
          border-color: transparent;
        }
        &:focus-visible {
          outline: var(--p-treetable-node-toggle-button-focus-ring-width) var(--p-treetable-node-toggle-button-focus-ring-style) var(--p-treetable-node-toggle-button-focus-ring-color);
          outline-offset: var(--p-treetable-node-toggle-button-focus-ring-offset);
          box-shadow: var(--p-treetable-node-toggle-button-focus-ring-shadow);
        }
        &.p-treetable-toggle-icon {
          --_icon: var(--p-treetable-toggle-expanded-icon);
        }
      }
      &[aria-expanded=false] > td > .p-treetable-toggle-icon {
        --_icon: var(--p-treetable-toggle-collapsed-icon);
        &:dir(rtl) {
          transform: rotate(180deg);
        }
      }
      > td .p-chkbox.p-selection {
        vertical-align: middle;
        margin: 0;
        margin-inline-end: var(--p-treetable-body-cell-gap);
      }
      > td > :is(.p-treetable-toggler, .p-chkbox.p-selection) {
        translate: 0 -0.15em;
      }
      &.p-state-hover {
        background: var(--p-treetable-row-hover-background);
        color: var(--p-treetable-row-hover-color);
      }
      &.p-state-highlight {
        background: var(--p-treetable-row-selected-background);
        color: var(--p-treetable-row-selected-color);
        cursor: default;
        .p-treetable-toggler {
          color: inherit;
        }
        .p-treetable-toggler:hover {
          background: var(--p-treetable-node-toggle-button-selected-hover-background);
          color: var(--p-treetable-node-toggle-button-selected-hover-color);
        }
      }
      &.p-state-highlight > td,
      &:has(+ tr.p-state-highlight) > td {
        border-bottom-color: var(--p-treetable-body-cell-selected-border-color);
      }
    }
    .p-treetable-toggler {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      vertical-align: middle;
      cursor: pointer;
    }
    .p-treetable-indent {
      display: inline-block;
      vertical-align: middle;
      width: var(--p-treetable-node-indent);
      height: var(--p-treetable-node-indent);
    }
    .p-chkbox.p-selection {
      display: none;
    }
    .p-treetable-selectable-node .p-chkbox.p-selection {
      display: inline-flex;
    }
    &.p-treetable-checkbox-all .p-chkbox.p-selection {
      display: inline-flex;
    }
    .p-editable-column .p-cell-editor {
      display: inline-block;
      vertical-align: middle;
    }
    .p-cell-editor-input {
      display: none;
    }
    .p-row-editing {
      .p-cell-editor .p-cell-editor-output {
        display: none;
      }
      .p-cell-editor .p-cell-editor-input {
        display: block;
      }
      .p-row-editor .p-row-editor-pencil {
        display: none;
      }
      .p-row-editor .p-row-editor-check,
      .p-row-editor .p-row-editor-close {
        display: inline-flex;
      }
    }
    .p-row-editor {
      span {
        cursor: pointer;
      }
      .p-row-editor-pencil {
        display: inline-flex;
      }
      .p-row-editor-check,
      .p-row-editor-close {
        display: none;
      }
    }
    .p-treetable-data tr.p-row-editing td.p-editable-column,
    .p-treetable-data td.p-cell-editing {
      padding-top: 0;
      padding-bottom: 0;
      margin-top: 0;
      margin-bottom: 0;
    }
    .p-row-editor {
      display: inline-flex;
      align-items: center;
      vertical-align: middle;
      > a {
        align-items: center;
        justify-content: center;
        text-decoration: none;
      }
    }
    .p-treetable-data > tr {
      .p-row-editor .p-icon {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        width: var(--p-treetable-node-toggle-button-size);
        height: var(--p-treetable-node-toggle-button-size);
        background: transparent;
        color: var(--p-treetable-node-toggle-button-color);
        border: 0 none;
        border-radius: var(--p-treetable-node-toggle-button-border-radius);
        text-align: center;
        padding: 0;
        -webkit-user-select: none;
        user-select: none;
        outline-color: transparent;
        transition:
          background var(--p-treetable-transition-duration),
          color var(--p-treetable-transition-duration),
          outline-color var(--p-treetable-transition-duration),
          box-shadow var(--p-treetable-transition-duration);
      }
      .p-row-editor .p-icon:hover {
        background: var(--p-treetable-node-toggle-button-hover-background);
        color: var(--p-treetable-node-toggle-button-hover-color);
        border-color: transparent;
      }
      .p-row-editor .p-icon:focus-visible,
      .p-row-editor a:focus-visible .p-icon {
        outline: var(--p-treetable-node-toggle-button-focus-ring-width) var(--p-treetable-node-toggle-button-focus-ring-style) var(--p-treetable-node-toggle-button-focus-ring-color);
        outline-offset: var(--p-treetable-node-toggle-button-focus-ring-offset);
        box-shadow: var(--p-treetable-node-toggle-button-focus-ring-shadow);
      }
      .p-row-editor a:focus-visible {
        outline: 0 none;
      }
      .p-row-editor .p-treetable-row-edit-icon {
        --_icon: var(--p-treetable-row-edit-icon);
      }
      .p-row-editor .p-row-editor-check {
        margin-inline-end: var(--p-treetable-body-cell-gap);
      }
      .p-row-editor .p-treetable-row-save-icon {
        --_icon: var(--p-treetable-row-save-icon);
      }
      .p-row-editor .p-treetable-row-cancel-icon {
        --_icon: var(--p-treetable-row-cancel-icon);
      }
      &.p-state-highlight .p-row-editor .p-icon {
        color: var(--p-treetable-row-selected-color);
      }
      &.p-state-highlight .p-row-editor .p-icon:hover {
        background: var(--p-treetable-node-toggle-button-selected-hover-background);
        color: var(--p-treetable-node-toggle-button-selected-hover-color);
      }
    }
    tfoot td {
      background: var(--p-treetable-footer-cell-background);
      border: 1px solid var(--p-treetable-footer-cell-border-color);
      border-width: 0 0 1px 0;
      color: var(--p-treetable-footer-cell-color);
      padding: var(--p-treetable-footer-cell-padding);
      font-weight: var(--p-treetable-column-footer-font-weight);
      font-size: var(--p-treetable-column-footer-font-size);
      text-align: start;
      box-sizing: content-box;
    }
    &.p-treetable-scrollable {
      .p-treetable-scrollable-theadclone tr th > * {
        display: none;
      }
    }
    .p-treetable-scrollable-header {
      background: var(--p-treetable-header-cell-background);
    }
    .p-treetable-scrollable-footer {
      background: var(--p-treetable-footer-cell-background);
    }
    .p-column-resizer {
      position: absolute;
      top: 0;
      inset-inline-end: 0;
      width: var(--p-treetable-column-resizer-width);
      height: 100%;
      margin: 0;
      padding: 0;
      cursor: col-resize;
      border: 1px solid transparent;
      box-sizing: border-box;
    }
    .p-column-resizer-helper {
      width: var(--p-treetable-resize-indicator-width);
      position: absolute;
      z-index: 10;
      display: none;
      background: var(--p-treetable-resize-indicator-color);
    }
    &.p-treetable-striped .p-treetable-data > tr:nth-child(even):not(.p-state-hover, .p-state-highlight) {
      background: var(--p-treetable-row-striped-background);
    }
    &.p-treetable-sm {
      .p-treetable-header {
        padding: var(--p-treetable-header-sm-padding);
      }
      thead > tr > th {
        padding: var(--p-treetable-header-cell-sm-padding);
      }
      .p-treetable-data > tr > td {
        padding: var(--p-treetable-body-cell-sm-padding);
      }
      tfoot > tr > td {
        padding: var(--p-treetable-footer-cell-sm-padding);
      }
      .p-treetable-footer {
        padding: var(--p-treetable-footer-sm-padding);
      }
    }
    &.p-treetable-lg {
      .p-treetable-header {
        padding: var(--p-treetable-header-lg-padding);
      }
      thead > tr > th {
        padding: var(--p-treetable-header-cell-lg-padding);
      }
      .p-treetable-data > tr > td {
        padding: var(--p-treetable-body-cell-lg-padding);
      }
      tfoot > tr > td {
        padding: var(--p-treetable-footer-cell-lg-padding);
      }
      .p-treetable-footer {
        padding: var(--p-treetable-footer-lg-padding);
      }
    }
    &.p-treetable-sm .p-treetable-scrollable-theadclone > tr > th,
    &.p-treetable-lg .p-treetable-scrollable-theadclone > tr > th {
      padding-top: 0;
      padding-bottom: 0;
    }
    &.p-treetable-gridlines {
      .p-treetable-header {
        border-width: 1px 1px 0 1px;
      }
      .p-treetable-footer {
        border-width: 0 1px 1px 1px;
      }
      .p-paginator {
        &.p-paginator-top {
          border-width: 1px 1px 0 1px;
        }
        &.p-paginator-bottom {
          border-width: 0 1px 1px 1px;
        }
      }
      thead > tr > th,
      .p-treetable-data > tr > td,
      tfoot > tr > td {
        border-width: 1px;
      }
      .p-treetable-scrollable-theadclone > tr > th {
        padding-top: 0;
        padding-bottom: 0;
        border-bottom: 0 none;
        border-top: 0 none;
      }
    }
  }
  .p-treetable-scrollable-body {
    overflow: auto;
  }
  .p-treetable-scrollable-header,
  .p-treetable-scrollable-footer {
    overflow: hidden;
    border: 0 none;
  }
  .p-treetable-scrollable .p-treetable-scrollable-header,
  .p-treetable-scrollable .p-treetable-scrollable-footer {
    position: relative;
  }
  .p-treetable-scrollable-theadclone {
    height: 0;
    tr {
      height: 0;
    }
    th {
      &.p-state-default {
        height: 0;
        border-bottom-width: 0;
        border-top-width: 0;
        padding-top: 0;
        padding-bottom: 0;
        outline: 0 none;
      }
      span {
        display: block;
        height: 0;
      }
    }
  }
  .p-treetable-resizable {
    padding-bottom: 1px;
    overflow: auto;
    th.p-resizable-column {
      background-clip: padding-box;
      position: relative;
    }
  }
  .p-treetable-reflow {
    .p-treetable-data td .p-column-title {
      display: none;
    }
  }
  @media (max-width: 640px) {
    .p-treetable-reflow thead th,
    .p-treetable-reflow tfoot td {
      display: none;
    }
    .p-treetable-reflow {
      thead th.p-filter-column {
        box-sizing: border-box;
        display: block;
        float: inline-start;
        clear: inline-start;
        width: 100% !important;
        border: 0 none;
        text-align: start;
        .p-column-title {
          display: block;
          font-weight: var(--p-treetable-reflow-title-font-weight);
          margin: 0 0 var(--p-treetable-reflow-gap) 0;
          padding: 0;
        }
        .p-sortable-column-icon,
        .p-sortable-column-badge,
        .p-column-resizer {
          display: none;
        }
        .p-column-filter,
        .p-column-customfilter {
          display: block;
          box-sizing: border-box;
          width: 100% !important;
          margin: 0;
        }
      }
      .p-treetable-data {
        td {
          text-align: start;
          display: block;
          border: 0 none;
          width: 100%;
          box-sizing: border-box;
          float: inline-start;
          clear: inline-start;
        }
        &.p-component-content {
          border: 0 none;
        }
        tr.p-component-content {
          border-left: 0 none;
          border-right: 0 none;
        }
        td .p-column-title {
          display: inline-block;
          min-width: 30%;
          margin: 0;
          margin-inline-end: var(--p-treetable-reflow-gap);
          padding: 0;
          font-weight: var(--p-treetable-reflow-title-font-weight);
        }
      }
    }
  }
}

/* packages/components/src/wizard/wizard.css */
@layer primefaces.components {
  .p-wizard {
    display: flex;
    flex-direction: column;
    gap: var(--p-wizard-gap);
    .p-wizard-step-titles {
      display: flex;
      flex-wrap: wrap;
      margin: 0;
      padding: 0;
      list-style-type: none;
      .p-wizard-step-title {
        flex: 1 1 0;
        margin: 0;
        padding: var(--p-wizard-step-padding);
        list-style-type: none;
        font-size: var(--p-wizard-step-font-size);
        font-weight: var(--p-wizard-step-font-weight);
        text-align: center;
        background: var(--p-wizard-step-background);
        color: var(--p-wizard-step-color);
        border: 1px solid var(--p-wizard-step-border-color);
        border-inline-end-width: 0;
        border-radius: 0;
        transition:
          background var(--p-wizard-transition-duration),
          color var(--p-wizard-transition-duration),
          border-color var(--p-wizard-transition-duration);
        &:first-child {
          border-start-start-radius: var(--p-wizard-step-border-radius);
          border-end-start-radius: var(--p-wizard-step-border-radius);
        }
        &:last-child {
          border-inline-end-width: 1px;
          border-start-end-radius: var(--p-wizard-step-border-radius);
          border-end-end-radius: var(--p-wizard-step-border-radius);
        }
        &.p-state-highlight {
          background: var(--p-wizard-step-active-background);
          color: var(--p-wizard-step-active-color);
          border-color: var(--p-wizard-step-active-border-color);
        }
      }
    }
    .p-wizard-content {
      margin: 0;
      padding: var(--p-wizard-content-padding);
      background: var(--p-wizard-content-background);
      color: var(--p-wizard-content-color);
    }
    .p-wizard-navbar {
      display: flex;
      align-items: center;
      gap: var(--p-wizard-gap);
      .p-wizard-nav-next {
        margin-inline-start: auto;
      }
    }
    .p-wizard-back-icon {
      --_icon: var(--p-wizard-back-icon);
    }
    .p-wizard-next-icon {
      --_icon: var(--p-wizard-next-icon);
    }
    .p-wizard-back-icon:dir(rtl),
    .p-wizard-next-icon:dir(rtl) {
      scale: -1 1;
    }
  }
}

/* packages/components/src/base/hidden.css */
@layer primefaces.behaviors {
  .p-hidden {
    display: none;
  }
  .p-overlay-hidden {
    visibility: hidden;
    * {
      visibility: hidden;
    }
  }
}

/* packages/components/src/dragdrop/dragdrop.css */
@layer primefaces.behaviors {
  .p-draggable-dragging {
    box-shadow: var(--p-dragdrop-dragging-shadow);
  }
  .p-droppable {
    transition: background var(--p-dragdrop-transition-duration), outline-color var(--p-dragdrop-transition-duration);
  }
  .p-droppable-active {
    outline: var(--p-dragdrop-droppable-active-outline-width) dashed var(--p-dragdrop-droppable-active-outline-color);
    outline-offset: var(--p-dragdrop-droppable-active-outline-offset);
  }
  .p-droppable-hover {
    background: var(--p-dragdrop-droppable-hover-background);
    color: var(--p-dragdrop-droppable-hover-color);
  }
}

/* packages/components/src/resizable/resizable.css */
@layer primefaces.behaviors {
  .p-resizable-se {
    right: var(--p-resizable-handle-inset);
    bottom: var(--p-resizable-handle-inset);
    background:
      linear-gradient(
        135deg,
        transparent 0 55%,
        var(--p-resizable-handle-color) 55% 63%,
        transparent 63% 75%,
        var(--p-resizable-handle-color) 75% 83%,
        transparent 83%);
    &:hover {
      background:
        linear-gradient(
          135deg,
          transparent 0 55%,
          var(--p-resizable-handle-hover-color) 55% 63%,
          transparent 63% 75%,
          var(--p-resizable-handle-hover-color) 75% 83%,
          transparent 83%);
    }
  }
  .p-resizable-ghost {
    opacity: var(--p-resizable-ghost-opacity);
  }
  .p-resizable-proxy,
  .p-resizable-helper {
    border: 1px dashed var(--p-resizable-helper-border-color);
    background: var(--p-resizable-helper-background);
    border-radius: var(--p-resizable-helper-border-radius);
  }
}

/* packages/components/src/sticky/sticky.css */
@layer primefaces.behaviors {
  .p-sticky {
    box-shadow: var(--p-sticky-shadow);
  }
  .p-sticky-ghost {
    visibility: hidden;
  }
}

/* packages/components/index.css */
/*# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vLi4vc3JjL21haW4vZnJvbnRlbmQvcGFja2FnZXMvY29tcG9uZW50cy9zcmMvaWNvbnMvbHVjaWRlLmNzcyIsICIuLi8uLi8uLi8uLi8uLi9zcmMvbWFpbi9mcm9udGVuZC9wYWNrYWdlcy9jb21wb25lbnRzL3NyYy9iYXNlL2ludGVyYWN0aW9ucy5jc3MiLCAiLi4vLi4vLi4vLi4vLi4vc3JjL21haW4vZnJvbnRlbmQvcGFja2FnZXMvY29tcG9uZW50cy9zcmMvYmFzZS9jb21tb24uY3NzIiwgIi4uLy4uLy4uLy4uLy4uL3NyYy9tYWluL2Zyb250ZW5kL3BhY2thZ2VzL2NvbXBvbmVudHMvc3JjL2Jhc2UvY29yZS5jc3MiLCAiLi4vLi4vLi4vLi4vLi4vc3JjL21haW4vZnJvbnRlbmQvcGFja2FnZXMvY29tcG9uZW50cy9zcmMvYmFzZS9kb2N1bWVudC5jc3MiLCAiLi4vLi4vLi4vLi4vLi4vc3JjL21haW4vZnJvbnRlbmQvcGFja2FnZXMvY29tcG9uZW50cy9zcmMvYmFzZS9ncmlkLmNzcyIsICIuLi8uLi8uLi8uLi8uLi9zcmMvbWFpbi9mcm9udGVuZC9wYWNrYWdlcy9jb21wb25lbnRzL3NyYy9iYXNlL2hlbHBlcnMuY3NzIiwgIi4uLy4uLy4uLy4uLy4uL3NyYy9tYWluL2Zyb250ZW5kL3BhY2thZ2VzL2NvbXBvbmVudHMvc3JjL2Jhc2Uvc2Nyb2xsYmFyLmNzcyIsICIuLi8uLi8uLi8uLi8uLi9zcmMvbWFpbi9mcm9udGVuZC9wYWNrYWdlcy9jb21wb25lbnRzL3NyYy9iYXNlL2JhY2tkcm9wLmNzcyIsICIuLi8uLi8uLi8uLi8uLi9zcmMvbWFpbi9mcm9udGVuZC9wYWNrYWdlcy9jb21wb25lbnRzL3NyYy9iYWRnZS9iYWRnZS5jc3MiLCAiLi4vLi4vLi4vLi4vLi4vc3JjL21haW4vZnJvbnRlbmQvcGFja2FnZXMvY29tcG9uZW50cy9zcmMvZm9ybXMvY2hlY2tib3guY3NzIiwgIi4uLy4uLy4uLy4uLy4uL3NyYy9tYWluL2Zyb250ZW5kL3BhY2thZ2VzL2NvbXBvbmVudHMvc3JjL2Zvcm1zL2lucHV0ZmllbGQuY3NzIiwgIi4uLy4uLy4uLy4uLy4uL3NyYy9tYWluL2Zyb250ZW5kL3BhY2thZ2VzL2NvbXBvbmVudHMvc3JjL2Zvcm1zL2lucHV0Z3JvdXAuY3NzIiwgIi4uLy4uLy4uLy4uLy4uL3NyYy9tYWluL2Zyb250ZW5kL3BhY2thZ2VzL2NvbXBvbmVudHMvc3JjL21lbnUvbWVudS5iYXNlLmNzcyIsICIuLi8uLi8uLi8uLi8uLi9zcmMvbWFpbi9mcm9udGVuZC9wYWNrYWdlcy9jb21wb25lbnRzL3NyYy9wYWdpbmF0b3IvcGFnaW5hdG9yLmNzcyIsICIuLi8uLi8uLi8uLi8uLi9zcmMvbWFpbi9mcm9udGVuZC9wYWNrYWdlcy9jb21wb25lbnRzL3NyYy9mb3Jtcy9yYWRpb2J1dHRvbi5jc3MiLCAiLi4vLi4vLi4vLi4vLi4vc3JjL21haW4vZnJvbnRlbmQvcGFja2FnZXMvY29tcG9uZW50cy9zcmMvcmlwcGxlL3JpcHBsZS5jc3MiLCAiLi4vLi4vLi4vLi4vLi4vc3JjL21haW4vZnJvbnRlbmQvcGFja2FnZXMvY29tcG9uZW50cy9zcmMvYmFzZS9yb3dzLmNzcyIsICIuLi8uLi8uLi8uLi8uLi9zcmMvbWFpbi9mcm9udGVuZC9wYWNrYWdlcy9jb21wb25lbnRzL3NyYy9hY2NvcmRpb24vYWNjb3JkaW9uLmNzcyIsICIuLi8uLi8uLi8uLi8uLi9zcmMvbWFpbi9mcm9udGVuZC9wYWNrYWdlcy9jb3JlL3NyYy9hamF4c3RhdHVzL2FqYXhzdGF0dXMuY3NzIiwgIi4uLy4uLy4uLy4uLy4uL3NyYy9tYWluL2Zyb250ZW5kL3BhY2thZ2VzL2NvbXBvbmVudHMvc3JjL2F1dG9jb21wbGV0ZS9hdXRvY29tcGxldGUuY3NzIiwgIi4uLy4uLy4uLy4uLy4uL3NyYy9tYWluL2Zyb250ZW5kL3BhY2thZ2VzL2NvbXBvbmVudHMvc3JjL2F2YXRhci9hdmF0YXIuY3NzIiwgIi4uLy4uLy4uLy4uLy4uL3NyYy9tYWluL2Zyb250ZW5kL3BhY2thZ2VzL2NvbXBvbmVudHMvc3JjL2Jsb2NrdWkvYmxvY2t1aS5jc3MiLCAiLi4vLi4vLi4vLi4vLi4vc3JjL21haW4vZnJvbnRlbmQvcGFja2FnZXMvY29tcG9uZW50cy9zcmMvbWVudS9icmVhZGNydW1iLmNzcyIsICIuLi8uLi8uLi8uLi8uLi9zcmMvbWFpbi9mcm9udGVuZC9wYWNrYWdlcy9jb21wb25lbnRzL3NyYy9mb3Jtcy9idXR0b24uY3NzIiwgIi4uLy4uLy4uLy4uLy4uL3NyYy9tYWluL2Zyb250ZW5kL3BhY2thZ2VzL2NvbXBvbmVudHMvc3JjL2NhcmQvY2FyZC5jc3MiLCAiLi4vLi4vLi4vLi4vLi4vc3JjL21haW4vZnJvbnRlbmQvcGFja2FnZXMvY29tcG9uZW50cy9zcmMvY2Fyb3VzZWwvY2Fyb3VzZWwuY3NzIiwgIi4uLy4uLy4uLy4uLy4uL3NyYy9tYWluL2Zyb250ZW5kL3BhY2thZ2VzL2NvbXBvbmVudHMvc3JjL2Zvcm1zL2Nhc2NhZGVzZWxlY3QuY3NzIiwgIi4uLy4uLy4uLy4uLy4uL3NyYy9tYWluL2Zyb250ZW5kL3BhY2thZ2VzL2NvbXBvbmVudHMvc3JjL2NoaXAvY2hpcC5jc3MiLCAiLi4vLi4vLi4vLi4vLi4vc3JjL21haW4vZnJvbnRlbmQvcGFja2FnZXMvY29tcG9uZW50cy9zcmMvY2hpcHMvY2hpcHMuY3NzIiwgIi4uLy4uLy4uLy4uLy4uL3NyYy9tYWluL2Zyb250ZW5kL3BhY2thZ2VzL2NvbXBvbmVudHMvc3JjL2Nocm9ub2xpbmUvY2hyb25vbGluZS5jc3MiLCAiLi4vLi4vLi4vLi4vLi4vc3JjL21haW4vZnJvbnRlbmQvcGFja2FnZXMvY29tcG9uZW50cy9zcmMvY29sdW1udG9nZ2xlci9jb2x1bW50b2dnbGVyLmNzcyIsICIuLi8uLi8uLi8uLi8uLi9zcmMvbWFpbi9mcm9udGVuZC9wYWNrYWdlcy9jb21wb25lbnRzL3NyYy9jb25maXJtcG9wdXAvY29uZmlybXBvcHVwLmNzcyIsICIuLi8uLi8uLi8uLi8uLi9zcmMvbWFpbi9mcm9udGVuZC9wYWNrYWdlcy9jb21wb25lbnRzL3NyYy9tZW51L2NvbnRleHRtZW51LmNzcyIsICIuLi8uLi8uLi8uLi8uLi9zcmMvbWFpbi9mcm9udGVuZC9wYWNrYWdlcy9jb21wb25lbnRzL3NyYy9kYXNoYm9hcmQvZGFzaGJvYXJkLmNzcyIsICIuLi8uLi8uLi8uLi8uLi9zcmMvbWFpbi9mcm9udGVuZC9wYWNrYWdlcy9jb21wb25lbnRzL3NyYy9kYXRhZ3JpZC9kYXRhZ3JpZC5jc3MiLCAiLi4vLi4vLi4vLi4vLi4vc3JjL21haW4vZnJvbnRlbmQvcGFja2FnZXMvY29tcG9uZW50cy9zcmMvZGF0YWxpc3QvZGF0YWxpc3QuY3NzIiwgIi4uLy4uLy4uLy4uLy4uL3NyYy9tYWluL2Zyb250ZW5kL3BhY2thZ2VzL2NvbXBvbmVudHMvc3JjL2RhdGFzY3JvbGxlci9kYXRhc2Nyb2xsZXIuY3NzIiwgIi4uLy4uLy4uLy4uLy4uL3NyYy9tYWluL2Zyb250ZW5kL3BhY2thZ2VzL2NvbXBvbmVudHMvc3JjL2RhdGF0YWJsZS9kYXRhdGFibGUuY3NzIiwgIi4uLy4uLy4uLy4uLy4uL3NyYy9tYWluL2Zyb250ZW5kL3BhY2thZ2VzL2NvbXBvbmVudHMvc3JjL2RhdGF2aWV3L2RhdGF2aWV3LmNzcyIsICIuLi8uLi8uLi8uLi8uLi9zcmMvbWFpbi9mcm9udGVuZC9wYWNrYWdlcy9jb21wb25lbnRzL3NyYy9kaWFsb2cvZGlhbG9nLmNzcyIsICIuLi8uLi8uLi8uLi8uLi9zcmMvbWFpbi9mcm9udGVuZC9wYWNrYWdlcy9jb21wb25lbnRzL3NyYy9kaXZpZGVyL2RpdmlkZXIuY3NzIiwgIi4uLy4uLy4uLy4uLy4uL3NyYy9tYWluL2Zyb250ZW5kL3BhY2thZ2VzL2NvbXBvbmVudHMvc3JjL2ZpZWxkc2V0L2ZpZWxkc2V0LmNzcyIsICIuLi8uLi8uLi8uLi8uLi9zcmMvbWFpbi9mcm9udGVuZC9wYWNrYWdlcy9jb21wb25lbnRzL3NyYy9ncm93bC9ncm93bC5jc3MiLCAiLi4vLi4vLi4vLi4vLi4vc3JjL21haW4vZnJvbnRlbmQvcGFja2FnZXMvY29tcG9uZW50cy9zcmMvaW5wbGFjZS9pbnBsYWNlLmNzcyIsICIuLi8uLi8uLi8uLi8uLi9zcmMvbWFpbi9mcm9udGVuZC9wYWNrYWdlcy9jb21wb25lbnRzL3NyYy9tZW51L21lZ2FtZW51LmNzcyIsICIuLi8uLi8uLi8uLi8uLi9zcmMvbWFpbi9mcm9udGVuZC9wYWNrYWdlcy9jb21wb25lbnRzL3NyYy9tZW51L21lbnUuY3NzIiwgIi4uLy4uLy4uLy4uLy4uL3NyYy9tYWluL2Zyb250ZW5kL3BhY2thZ2VzL2NvbXBvbmVudHMvc3JjL21lc3NhZ2VzL21lc3NhZ2UuY3NzIiwgIi4uLy4uLy4uLy4uLy4uL3NyYy9tYWluL2Zyb250ZW5kL3BhY2thZ2VzL2NvbXBvbmVudHMvc3JjL21lc3NhZ2VzL21lc3NhZ2VzLmNzcyIsICIuLi8uLi8uLi8uLi8uLi9zcmMvbWFpbi9mcm9udGVuZC9wYWNrYWdlcy9jb21wb25lbnRzL3NyYy9mb3Jtcy9tdWx0aXNlbGVjdGxpc3Rib3guY3NzIiwgIi4uLy4uLy4uLy4uLy4uL3NyYy9tYWluL2Zyb250ZW5kL3BhY2thZ2VzL2NvbXBvbmVudHMvc3JjL25vdGlmaWNhdGlvbmJhci9ub3RpZmljYXRpb25iYXIuY3NzIiwgIi4uLy4uLy4uLy4uLy4uL3NyYy9tYWluL2Zyb250ZW5kL3BhY2thZ2VzL2NvbXBvbmVudHMvc3JjL29yZGVybGlzdC9vcmRlcmxpc3QuY3NzIiwgIi4uLy4uLy4uLy4uLy4uL3NyYy9tYWluL2Zyb250ZW5kL3BhY2thZ2VzL2NvbXBvbmVudHMvc3JjL2Zvcm1zL291dHB1dGxhYmVsLmNzcyIsICIuLi8uLi8uLi8uLi8uLi9zcmMvbWFpbi9mcm9udGVuZC9wYWNrYWdlcy9jb21wb25lbnRzL3NyYy9vdXRwdXRwYW5lbC9vdXRwdXRwYW5lbC5jc3MiLCAiLi4vLi4vLi4vLi4vLi4vc3JjL21haW4vZnJvbnRlbmQvcGFja2FnZXMvY29tcG9uZW50cy9zcmMvb3ZlcmxheXBhbmVsL292ZXJsYXlwYW5lbC5jc3MiLCAiLi4vLi4vLi4vLi4vLi4vc3JjL21haW4vZnJvbnRlbmQvcGFja2FnZXMvY29tcG9uZW50cy9zcmMvcGFuZWwvcGFuZWwuY3NzIiwgIi4uLy4uLy4uLy4uLy4uL3NyYy9tYWluL2Zyb250ZW5kL3BhY2thZ2VzL2NvbXBvbmVudHMvc3JjL3BhbmVsZ3JpZC9wYW5lbGdyaWQuY3NzIiwgIi4uLy4uLy4uLy4uLy4uL3NyYy9tYWluL2Zyb250ZW5kL3BhY2thZ2VzL2NvbXBvbmVudHMvc3JjL21lbnUvcGFuZWxtZW51LmNzcyIsICIuLi8uLi8uLi8uLi8uLi9zcmMvbWFpbi9mcm9udGVuZC9wYWNrYWdlcy9jb21wb25lbnRzL3NyYy9mb3Jtcy9wYXNzd29yZC5jc3MiLCAiLi4vLi4vLi4vLi4vLi4vc3JjL21haW4vZnJvbnRlbmQvcGFja2FnZXMvY29tcG9uZW50cy9zcmMvcGlja2xpc3QvcGlja2xpc3QuY3NzIiwgIi4uLy4uLy4uLy4uLy4uL3NyYy9tYWluL2Zyb250ZW5kL3BhY2thZ2VzL2NvbXBvbmVudHMvc3JjL3Byb2dyZXNzYmFyL3Byb2dyZXNzYmFyLmNzcyIsICIuLi8uLi8uLi8uLi8uLi9zcmMvbWFpbi9mcm9udGVuZC9wYWNrYWdlcy9jb21wb25lbnRzL3NyYy9yYXRpbmcvcmF0aW5nLmNzcyIsICIuLi8uLi8uLi8uLi8uLi9zcmMvbWFpbi9mcm9udGVuZC9wYWNrYWdlcy9jb21wb25lbnRzL3NyYy9zY3JvbGx0b3Avc2Nyb2xsdG9wLmNzcyIsICIuLi8uLi8uLi8uLi8uLi9zcmMvbWFpbi9mcm9udGVuZC9wYWNrYWdlcy9jb21wb25lbnRzL3NyYy9mb3Jtcy9zZWxlY3Rib29sZWFuY2hlY2tib3guY3NzIiwgIi4uLy4uLy4uLy4uLy4uL3NyYy9tYWluL2Zyb250ZW5kL3BhY2thZ2VzL2NvbXBvbmVudHMvc3JjL2Zvcm1zL3NlbGVjdGNoZWNrYm94bWVudS5jc3MiLCAiLi4vLi4vLi4vLi4vLi4vc3JjL21haW4vZnJvbnRlbmQvcGFja2FnZXMvY29tcG9uZW50cy9zcmMvZm9ybXMvc2VsZWN0bWFueWNoZWNrYm94LmNzcyIsICIuLi8uLi8uLi8uLi8uLi9zcmMvbWFpbi9mcm9udGVuZC9wYWNrYWdlcy9jb21wb25lbnRzL3NyYy9mb3Jtcy9zZWxlY3RvbmVidXR0b24uY3NzIiwgIi4uLy4uLy4uLy4uLy4uL3NyYy9tYWluL2Zyb250ZW5kL3BhY2thZ2VzL2NvbXBvbmVudHMvc3JjL2Zvcm1zL3NlbGVjdG9uZWxpc3Rib3guY3NzIiwgIi4uLy4uLy4uLy4uLy4uL3NyYy9tYWluL2Zyb250ZW5kL3BhY2thZ2VzL2NvbXBvbmVudHMvc3JjL2Zvcm1zL3NlbGVjdG9uZW1lbnUuY3NzIiwgIi4uLy4uLy4uLy4uLy4uL3NyYy9tYWluL2Zyb250ZW5kL3BhY2thZ2VzL2NvbXBvbmVudHMvc3JjL2Zvcm1zL3NlbGVjdG9uZXJhZGlvLmNzcyIsICIuLi8uLi8uLi8uLi8uLi9zcmMvbWFpbi9mcm9udGVuZC9wYWNrYWdlcy9jb21wb25lbnRzL3NyYy9zaWRlYmFyL3NpZGViYXIuY3NzIiwgIi4uLy4uLy4uLy4uLy4uL3NyYy9tYWluL2Zyb250ZW5kL3BhY2thZ2VzL2NvbXBvbmVudHMvc3JjL3NrZWxldG9uL3NrZWxldG9uLmNzcyIsICIuLi8uLi8uLi8uLi8uLi9zcmMvbWFpbi9mcm9udGVuZC9wYWNrYWdlcy9jb21wb25lbnRzL3NyYy9tZW51L3NsaWRlbWVudS5jc3MiLCAiLi4vLi4vLi4vLi4vLi4vc3JjL21haW4vZnJvbnRlbmQvcGFja2FnZXMvY29tcG9uZW50cy9zcmMvc2xpZGVyL3NsaWRlci5jc3MiLCAiLi4vLi4vLi4vLi4vLi4vc3JjL21haW4vZnJvbnRlbmQvcGFja2FnZXMvY29tcG9uZW50cy9zcmMvc3BlZWRkaWFsL3NwZWVkZGlhbC5jc3MiLCAiLi4vLi4vLi4vLi4vLi4vc3JjL21haW4vZnJvbnRlbmQvcGFja2FnZXMvY29tcG9uZW50cy9zcmMvc3Bpbm5lci9zcGlubmVyLmNzcyIsICIuLi8uLi8uLi8uLi8uLi9zcmMvbWFpbi9mcm9udGVuZC9wYWNrYWdlcy9jb21wb25lbnRzL3NyYy9mb3Jtcy9zcGxpdGJ1dHRvbi5jc3MiLCAiLi4vLi4vLi4vLi4vLi4vc3JjL21haW4vZnJvbnRlbmQvcGFja2FnZXMvY29tcG9uZW50cy9zcmMvc3BsaXR0ZXIvc3BsaXR0ZXIuY3NzIiwgIi4uLy4uLy4uLy4uLy4uL3NyYy9tYWluL2Zyb250ZW5kL3BhY2thZ2VzL2NvbXBvbmVudHMvc3JjL3Nwb3RsaWdodC9zcG90bGlnaHQuY3NzIiwgIi4uLy4uLy4uLy4uLy4uL3NyYy9tYWluL2Zyb250ZW5kL3BhY2thZ2VzL2NvbXBvbmVudHMvc3JjL3N0YXRpY21lc3NhZ2Uvc3RhdGljbWVzc2FnZS5jc3MiLCAiLi4vLi4vLi4vLi4vLi4vc3JjL21haW4vZnJvbnRlbmQvcGFja2FnZXMvY29tcG9uZW50cy9zcmMvbWVudS9zdGVwcy5jc3MiLCAiLi4vLi4vLi4vLi4vLi4vc3JjL21haW4vZnJvbnRlbmQvcGFja2FnZXMvY29tcG9uZW50cy9zcmMvbWVudS90YWJtZW51LmNzcyIsICIuLi8uLi8uLi8uLi8uLi9zcmMvbWFpbi9mcm9udGVuZC9wYWNrYWdlcy9jb21wb25lbnRzL3NyYy90YWJ2aWV3L3RhYnZpZXcuY3NzIiwgIi4uLy4uLy4uLy4uLy4uL3NyYy9tYWluL2Zyb250ZW5kL3BhY2thZ2VzL2NvbXBvbmVudHMvc3JjL3RhZy90YWcuY3NzIiwgIi4uLy4uLy4uLy4uLy4uL3NyYy9tYWluL2Zyb250ZW5kL3BhY2thZ2VzL2NvbXBvbmVudHMvc3JjL3RhZ2Nsb3VkL3RhZ2Nsb3VkLmNzcyIsICIuLi8uLi8uLi8uLi8uLi9zcmMvbWFpbi9mcm9udGVuZC9wYWNrYWdlcy9jb21wb25lbnRzL3NyYy9tZW51L3RpZXJlZG1lbnUuY3NzIiwgIi4uLy4uLy4uLy4uLy4uL3NyYy9tYWluL2Zyb250ZW5kL3BhY2thZ2VzL2NvbXBvbmVudHMvc3JjL3RvZ2dsZXN3aXRjaC90b2dnbGVzd2l0Y2guY3NzIiwgIi4uLy4uLy4uLy4uLy4uL3NyYy9tYWluL2Zyb250ZW5kL3BhY2thZ2VzL2NvbXBvbmVudHMvc3JjL3Rvb2xiYXIvdG9vbGJhci5jc3MiLCAiLi4vLi4vLi4vLi4vLi4vc3JjL21haW4vZnJvbnRlbmQvcGFja2FnZXMvY29tcG9uZW50cy9zcmMvdG9vbHRpcC90b29sdGlwLmNzcyIsICIuLi8uLi8uLi8uLi8uLi9zcmMvbWFpbi9mcm9udGVuZC9wYWNrYWdlcy9jb21wb25lbnRzL3NyYy90cmVlL3RyZWUuY3NzIiwgIi4uLy4uLy4uLy4uLy4uL3NyYy9tYWluL2Zyb250ZW5kL3BhY2thZ2VzL2NvbXBvbmVudHMvc3JjL3RyZWV0YWJsZS90cmVldGFibGUuY3NzIiwgIi4uLy4uLy4uLy4uLy4uL3NyYy9tYWluL2Zyb250ZW5kL3BhY2thZ2VzL2NvbXBvbmVudHMvc3JjL3dpemFyZC93aXphcmQuY3NzIiwgIi4uLy4uLy4uLy4uLy4uL3NyYy9tYWluL2Zyb250ZW5kL3BhY2thZ2VzL2NvbXBvbmVudHMvc3JjL2Jhc2UvaGlkZGVuLmNzcyIsICIuLi8uLi8uLi8uLi8uLi9zcmMvbWFpbi9mcm9udGVuZC9wYWNrYWdlcy9jb21wb25lbnRzL3NyYy9kcmFnZHJvcC9kcmFnZHJvcC5jc3MiLCAiLi4vLi4vLi4vLi4vLi4vc3JjL21haW4vZnJvbnRlbmQvcGFja2FnZXMvY29tcG9uZW50cy9zcmMvcmVzaXphYmxlL3Jlc2l6YWJsZS5jc3MiLCAiLi4vLi4vLi4vLi4vLi4vc3JjL21haW4vZnJvbnRlbmQvcGFja2FnZXMvY29tcG9uZW50cy9zcmMvc3RpY2t5L3N0aWNreS5jc3MiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qIVxuICogTHVjaWRlIGljb25zIChsdWNpZGUtc3RhdGljIDEuNTEuMClcbiAqIGh0dHBzOi8vbHVjaWRlLmRldlxuICpcbiAqIElTQyBMaWNlbnNlXG4gKlxuICogQ29weXJpZ2h0IChjKSAyMDI2IEx1Y2lkZSBJY29ucyBhbmQgQ29udHJpYnV0b3JzXG4gKlxuICogUGVybWlzc2lvbiB0byB1c2UsIGNvcHksIG1vZGlmeSwgYW5kL29yIGRpc3RyaWJ1dGUgdGhpcyBzb2Z0d2FyZSBmb3IgYW55XG4gKiBwdXJwb3NlIHdpdGggb3Igd2l0aG91dCBmZWUgaXMgaGVyZWJ5IGdyYW50ZWQsIHByb3ZpZGVkIHRoYXQgdGhlIGFib3ZlXG4gKiBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIGFwcGVhciBpbiBhbGwgY29waWVzLlxuICpcbiAqIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIgQU5EIFRIRSBBVVRIT1IgRElTQ0xBSU1TIEFMTCBXQVJSQU5USUVTXG4gKiBXSVRIIFJFR0FSRCBUTyBUSElTIFNPRlRXQVJFIElOQ0xVRElORyBBTEwgSU1QTElFRCBXQVJSQU5USUVTIE9GXG4gKiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1IgQkUgTElBQkxFIEZPUlxuICogQU5ZIFNQRUNJQUwsIERJUkVDVCwgSU5ESVJFQ1QsIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyBPUiBBTlkgREFNQUdFU1xuICogV0hBVFNPRVZFUiBSRVNVTFRJTkcgRlJPTSBMT1NTIE9GIFVTRSwgREFUQSBPUiBQUk9GSVRTLCBXSEVUSEVSIElOIEFOXG4gKiBBQ1RJT04gT0YgQ09OVFJBQ1QsIE5FR0xJR0VOQ0UgT1IgT1RIRVIgVE9SVElPVVMgQUNUSU9OLCBBUklTSU5HIE9VVCBPRlxuICogT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBVU0UgT1IgUEVSRk9STUFOQ0UgT0YgVEhJUyBTT0ZUV0FSRS5cbiAqXG4gKiAtLS1cbiAqXG4gKiBTb21lIEx1Y2lkZSBpY29ucyBhcmUgZGVyaXZlZCBmcm9tIHRoZSBGZWF0aGVyIHByb2plY3RcbiAqIChodHRwczovL2dpdGh1Yi5jb20vZmVhdGhlcmljb25zL2ZlYXRoZXIpLCBzZWVcbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9sdWNpZGUtaWNvbnMvbHVjaWRlL2Jsb2IvbWFpbi9MSUNFTlNFIGZvciB0aGUgbGlzdC5cbiAqXG4gKiBUaGUgTUlUIExpY2Vuc2UgKE1JVCkgKGZvciB0aGUgaWNvbnMgZGVyaXZlZCBmcm9tIEZlYXRoZXIpXG4gKlxuICogQ29weXJpZ2h0IChjKSAyMDEzLXByZXNlbnQgQ29sZSBCZW1pc1xuICpcbiAqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHlcbiAqIG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlIFwiU29mdHdhcmVcIiksIHRvIGRlYWxcbiAqIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHNcbiAqIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGxcbiAqIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpc1xuICogZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczpcbiAqXG4gKiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpbiBhbGxcbiAqIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuXG4gKlxuICogVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUlxuICogSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksXG4gKiBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEVcbiAqIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVJcbiAqIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sXG4gKiBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRIRVxuICogU09GVFdBUkUuXG4gKi9cblxuLypcbiAqIEljb24gc2V0OiBMdWNpZGUgKGh0dHBzOi8vbHVjaWRlLmRldiwgSVNDKS4gTWFwcyBldmVyeSBpY29uIG1lYW5pbmcgdGhlIHRoZW1lIHVzZXMgdG8gYW4gU1ZHLlxuICogVGhlIGNvbXBvbmVudCB0b2tlbnMgb2YgdGhlIHByZXNldHMgKGUuZy4gLS1wLXRyZWUtdG9nZ2xlLWNvbGxhcHNlZC1pY29uKSByZWZlcmVuY2UgdGhlc2UsIHNvIHJlcGxhY2luZyB0aGlzIGZpbGVcbiAqIChvciBvdmVycmlkaW5nIHNpbmdsZSAtLXAtaWNvbi0qIHRva2VucykgY2hhbmdlcyB0aGUgaWNvbnMgb2YgYWxsIGNvbXBvbmVudHMuXG4gKlxuICogVmFsdWVzIGFyZSB1cmwoKXMgb2YgU1ZHIGZpbGVzOiBcInBhY2thZ2UvcGF0aC5zdmdcIiBpcyByZXNvbHZlZCBpbiBub2RlX21vZHVsZXMgYW5kIGlubGluZWQgYXMgZGF0YSBVUkkgYnlcbiAqIGJ1aWxkL3NjcmlwdHMvYnVuZGxlLm1qcywgXCI/ZmlsbFwiIGZpbGxzIHRoZSBvdXRsaW5lLiBUaGUgU1ZHIG9ubHkgc2VydmVzIGFzIG1hc2ssIHRoZSBjb2xvciBpcyBjdXJyZW50Q29sb3IuXG4gKi9cbkBsYXllciBwcmltZWZhY2VzLnRva2VucyB7XG4gICAgOnJvb3Qge1xuICAgICAgICAtLXAtaWNvbi1jbG9zZTogdXJsKFwibHVjaWRlLXN0YXRpYy9pY29ucy94LnN2Z1wiKTtcbiAgICAgICAgLS1wLWljb24tY2xlYXI6IHVybChcImx1Y2lkZS1zdGF0aWMvaWNvbnMvY2lyY2xlLXguc3ZnXCIpO1xuICAgICAgICAtLXAtaWNvbi1jaGVjazogdXJsKFwibHVjaWRlLXN0YXRpYy9pY29ucy9jaGVjay5zdmdcIik7XG4gICAgICAgIC0tcC1pY29uLWluZGV0ZXJtaW5hdGU6IHVybChcImx1Y2lkZS1zdGF0aWMvaWNvbnMvbWludXMuc3ZnXCIpO1xuICAgICAgICAtLXAtaWNvbi1wbHVzOiB1cmwoXCJsdWNpZGUtc3RhdGljL2ljb25zL3BsdXMuc3ZnXCIpO1xuICAgICAgICAtLXAtaWNvbi1taW51czogdXJsKFwibHVjaWRlLXN0YXRpYy9pY29ucy9taW51cy5zdmdcIik7XG4gICAgICAgIC0tcC1pY29uLWNvbGxhcHNlZDogdXJsKFwibHVjaWRlLXN0YXRpYy9pY29ucy9jaGV2cm9uLXJpZ2h0LnN2Z1wiKTtcbiAgICAgICAgLS1wLWljb24tZXhwYW5kZWQ6IHVybChcImx1Y2lkZS1zdGF0aWMvaWNvbnMvY2hldnJvbi1kb3duLnN2Z1wiKTtcbiAgICAgICAgLS1wLWljb24tZHJvcGRvd246IHVybChcImx1Y2lkZS1zdGF0aWMvaWNvbnMvY2hldnJvbi1kb3duLnN2Z1wiKTtcbiAgICAgICAgLS1wLWljb24tdXA6IHVybChcImx1Y2lkZS1zdGF0aWMvaWNvbnMvY2hldnJvbi11cC5zdmdcIik7XG4gICAgICAgIC0tcC1pY29uLWRvd246IHVybChcImx1Y2lkZS1zdGF0aWMvaWNvbnMvY2hldnJvbi1kb3duLnN2Z1wiKTtcbiAgICAgICAgLS1wLWljb24tcHJldjogdXJsKFwibHVjaWRlLXN0YXRpYy9pY29ucy9jaGV2cm9uLWxlZnQuc3ZnXCIpO1xuICAgICAgICAtLXAtaWNvbi1uZXh0OiB1cmwoXCJsdWNpZGUtc3RhdGljL2ljb25zL2NoZXZyb24tcmlnaHQuc3ZnXCIpO1xuICAgICAgICAtLXAtaWNvbi1maXJzdDogdXJsKFwibHVjaWRlLXN0YXRpYy9pY29ucy9jaGV2cm9ucy1sZWZ0LnN2Z1wiKTtcbiAgICAgICAgLS1wLWljb24tbGFzdDogdXJsKFwibHVjaWRlLXN0YXRpYy9pY29ucy9jaGV2cm9ucy1yaWdodC5zdmdcIik7XG4gICAgICAgIC0tcC1pY29uLXRvcDogdXJsKFwibHVjaWRlLXN0YXRpYy9pY29ucy9jaGV2cm9ucy11cC5zdmdcIik7XG4gICAgICAgIC0tcC1pY29uLWJvdHRvbTogdXJsKFwibHVjaWRlLXN0YXRpYy9pY29ucy9jaGV2cm9ucy1kb3duLnN2Z1wiKTtcbiAgICAgICAgLS1wLWljb24tYXJyb3ctdXA6IHVybChcImx1Y2lkZS1zdGF0aWMvaWNvbnMvYXJyb3ctdXAuc3ZnXCIpO1xuICAgICAgICAtLXAtaWNvbi1hcnJvdy1kb3duOiB1cmwoXCJsdWNpZGUtc3RhdGljL2ljb25zL2Fycm93LWRvd24uc3ZnXCIpO1xuICAgICAgICAtLXAtaWNvbi1hcnJvdy1sZWZ0OiB1cmwoXCJsdWNpZGUtc3RhdGljL2ljb25zL2Fycm93LWxlZnQuc3ZnXCIpO1xuICAgICAgICAtLXAtaWNvbi1hcnJvdy1yaWdodDogdXJsKFwibHVjaWRlLXN0YXRpYy9pY29ucy9hcnJvdy1yaWdodC5zdmdcIik7XG4gICAgICAgIC0tcC1pY29uLXNvcnQ6IHVybChcImx1Y2lkZS1zdGF0aWMvaWNvbnMvYXJyb3ctdXAtZG93bi5zdmdcIik7XG4gICAgICAgIC0tcC1pY29uLXNvcnQtYXNjOiB1cmwoXCJsdWNpZGUtc3RhdGljL2ljb25zL2Fycm93LXVwLW5hcnJvdy13aWRlLnN2Z1wiKTtcbiAgICAgICAgLS1wLWljb24tc29ydC1kZXNjOiB1cmwoXCJsdWNpZGUtc3RhdGljL2ljb25zL2Fycm93LWRvd24td2lkZS1uYXJyb3cuc3ZnXCIpO1xuICAgICAgICAtLXAtaWNvbi1zZWFyY2g6IHVybChcImx1Y2lkZS1zdGF0aWMvaWNvbnMvc2VhcmNoLnN2Z1wiKTtcbiAgICAgICAgLS1wLWljb24tZWRpdDogdXJsKFwibHVjaWRlLXN0YXRpYy9pY29ucy9wZW5jaWwuc3ZnXCIpO1xuICAgICAgICAtLXAtaWNvbi10cmFzaDogdXJsKFwibHVjaWRlLXN0YXRpYy9pY29ucy90cmFzaC0yLnN2Z1wiKTtcbiAgICAgICAgLS1wLWljb24tZmlsZTogdXJsKFwibHVjaWRlLXN0YXRpYy9pY29ucy9maWxlLXRleHQuc3ZnXCIpO1xuICAgICAgICAtLXAtaWNvbi11cGxvYWQ6IHVybChcImx1Y2lkZS1zdGF0aWMvaWNvbnMvdXBsb2FkLnN2Z1wiKTtcbiAgICAgICAgLS1wLWljb24tbGlzdDogdXJsKFwibHVjaWRlLXN0YXRpYy9pY29ucy9saXN0LnN2Z1wiKTtcbiAgICAgICAgLS1wLWljb24tZ3JpZDogdXJsKFwibHVjaWRlLXN0YXRpYy9pY29ucy9sYXlvdXQtZ3JpZC5zdmdcIik7XG4gICAgICAgIC0tcC1pY29uLW9wdGlvbnM6IHVybChcImx1Y2lkZS1zdGF0aWMvaWNvbnMvc2V0dGluZ3Muc3ZnXCIpO1xuICAgICAgICAtLXAtaWNvbi1ob21lOiB1cmwoXCJsdWNpZGUtc3RhdGljL2ljb25zL2hvdXNlLnN2Z1wiKTtcbiAgICAgICAgLS1wLWljb24tY2FsZW5kYXI6IHVybChcImx1Y2lkZS1zdGF0aWMvaWNvbnMvY2FsZW5kYXIuc3ZnXCIpO1xuICAgICAgICAtLXAtaWNvbi1tYXhpbWl6ZTogdXJsKFwibHVjaWRlLXN0YXRpYy9pY29ucy9tYXhpbWl6ZS0yLnN2Z1wiKTtcbiAgICAgICAgLS1wLWljb24tcmVzdG9yZTogdXJsKFwibHVjaWRlLXN0YXRpYy9pY29ucy9taW5pbWl6ZS0yLnN2Z1wiKTtcbiAgICAgICAgLS1wLWljb24tc2hvdzogdXJsKFwibHVjaWRlLXN0YXRpYy9pY29ucy9leWUuc3ZnXCIpO1xuICAgICAgICAtLXAtaWNvbi1oaWRlOiB1cmwoXCJsdWNpZGUtc3RhdGljL2ljb25zL2V5ZS1vZmYuc3ZnXCIpO1xuICAgICAgICAtLXAtaWNvbi16b29tLWluOiB1cmwoXCJsdWNpZGUtc3RhdGljL2ljb25zL3pvb20taW4uc3ZnXCIpO1xuICAgICAgICAtLXAtaWNvbi16b29tLW91dDogdXJsKFwibHVjaWRlLXN0YXRpYy9pY29ucy96b29tLW91dC5zdmdcIik7XG4gICAgICAgIC0tcC1pY29uLXN0YXI6IHVybChcImx1Y2lkZS1zdGF0aWMvaWNvbnMvc3Rhci5zdmdcIik7XG4gICAgICAgIC0tcC1pY29uLXN0YXItZmlsbGVkOiB1cmwoXCJsdWNpZGUtc3RhdGljL2ljb25zL3N0YXIuc3ZnP2ZpbGxcIik7XG4gICAgICAgIC0tcC1pY29uLWluZm86IHVybChcImx1Y2lkZS1zdGF0aWMvaWNvbnMvaW5mby5zdmdcIik7XG4gICAgICAgIC0tcC1pY29uLXN1Y2Nlc3M6IHVybChcImx1Y2lkZS1zdGF0aWMvaWNvbnMvY2lyY2xlLWNoZWNrLnN2Z1wiKTtcbiAgICAgICAgLS1wLWljb24td2FybjogdXJsKFwibHVjaWRlLXN0YXRpYy9pY29ucy90cmlhbmdsZS1hbGVydC5zdmdcIik7XG4gICAgICAgIC0tcC1pY29uLWVycm9yOiB1cmwoXCJsdWNpZGUtc3RhdGljL2ljb25zL2NpcmNsZS14LnN2Z1wiKTtcbiAgICAgICAgLS1wLWljb24tZmF0YWw6IHVybChcImx1Y2lkZS1zdGF0aWMvaWNvbnMvYmFuLnN2Z1wiKTtcbiAgICAgICAgLS1wLWljb24tbG9hZGluZzogdXJsKFwibHVjaWRlLXN0YXRpYy9pY29ucy9sb2FkZXItY2lyY2xlLnN2Z1wiKTtcbiAgICB9XG59XG4iLCAiLypcbiAqIEJhc2UgcnVsZXMgb2YgdGhlIGludGVyYWN0aW9ucyAoZHJhZ2dhYmxlLCByZXNpemFibGUsIHNvcnRhYmxlKSwgbG9hZGVkIGluIHRoZSB2ZW5kb3IgbGF5ZXIuIFRha2VuIGZyb20gdGhlIGpRdWVyeSBVSVxuICogYmFzZSB0aGVtZSAoZHJhZ2dhYmxlLmNzcywgcmVzaXphYmxlLmNzcywgc29ydGFibGUuY3NzKSwgQ29weXJpZ2h0IE9wZW5KUyBGb3VuZGF0aW9uIGFuZCBvdGhlciBjb250cmlidXRvcnMsIHJlbGVhc2VkXG4gKiB1bmRlciB0aGUgTUlUIGxpY2Vuc2UuXG4gKi9cblxuLnAtZHJhZ2dhYmxlLWhhbmRsZSB7XG4gICAgdG91Y2gtYWN0aW9uOiBub25lO1xufVxuLnAtcmVzaXphYmxlIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG4ucC1yZXNpemFibGUtaGFuZGxlIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgdG91Y2gtYWN0aW9uOiBub25lO1xufVxuLnAtcmVzaXphYmxlLWRpc2FibGVkIC5wLXJlc2l6YWJsZS1oYW5kbGUge1xuICAgIGRpc3BsYXk6IG5vbmU7XG59XG4ucC1yZXNpemFibGUtbiB7XG4gICAgY3Vyc29yOiBuLXJlc2l6ZTtcbiAgICBoZWlnaHQ6IDdweDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICB0b3A6IC01cHg7XG4gICAgbGVmdDogMDtcbn1cbi5wLXJlc2l6YWJsZS1zIHtcbiAgICBjdXJzb3I6IHMtcmVzaXplO1xuICAgIGhlaWdodDogN3B4O1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGJvdHRvbTogLTVweDtcbiAgICBsZWZ0OiAwO1xufVxuLnAtcmVzaXphYmxlLWUge1xuICAgIGN1cnNvcjogZS1yZXNpemU7XG4gICAgd2lkdGg6IDdweDtcbiAgICByaWdodDogLTVweDtcbiAgICB0b3A6IDA7XG4gICAgaGVpZ2h0OiAxMDAlO1xufVxuLnAtcmVzaXphYmxlLXcge1xuICAgIGN1cnNvcjogdy1yZXNpemU7XG4gICAgd2lkdGg6IDdweDtcbiAgICBsZWZ0OiAtNXB4O1xuICAgIHRvcDogMDtcbiAgICBoZWlnaHQ6IDEwMCU7XG59XG4ucC1yZXNpemFibGUtc2Uge1xuICAgIGN1cnNvcjogc2UtcmVzaXplO1xuICAgIHdpZHRoOiAxMnB4O1xuICAgIGhlaWdodDogMTJweDtcbiAgICByaWdodDogMXB4O1xuICAgIGJvdHRvbTogMXB4O1xufVxuLnAtcmVzaXphYmxlLXN3IHtcbiAgICBjdXJzb3I6IHN3LXJlc2l6ZTtcbiAgICB3aWR0aDogOXB4O1xuICAgIGhlaWdodDogOXB4O1xuICAgIGxlZnQ6IC01cHg7XG4gICAgYm90dG9tOiAtNXB4O1xufVxuLnAtcmVzaXphYmxlLW53IHtcbiAgICBjdXJzb3I6IG53LXJlc2l6ZTtcbiAgICB3aWR0aDogOXB4O1xuICAgIGhlaWdodDogOXB4O1xuICAgIGxlZnQ6IC01cHg7XG4gICAgdG9wOiAtNXB4O1xufVxuLnAtcmVzaXphYmxlLW5lIHtcbiAgICBjdXJzb3I6IG5lLXJlc2l6ZTtcbiAgICB3aWR0aDogOXB4O1xuICAgIGhlaWdodDogOXB4O1xuICAgIHJpZ2h0OiAtNXB4O1xuICAgIHRvcDogLTVweDtcbn1cbi5wLXNvcnRhYmxlLWhhbmRsZSB7XG4gICAgdG91Y2gtYWN0aW9uOiBub25lO1xufVxuXG4vKiBlbGVtZW50cyBjcmVhdGVkIGJ5IFByaW1lRmFjZXMuZWZmZWN0cyAqL1xuLnAtZWZmZWN0LXRyYW5zZmVyLFxuLnAtZWZmZWN0LWV4cGxvZGUge1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xufVxuLnAtZWZmZWN0LXRyYW5zZmVyIHtcbiAgICBib3JkZXI6IDFweCBkYXNoZWQgdmFyKC0tcC1wcmltYXJ5LWNvbG9yLCBjdXJyZW50Q29sb3IpO1xufVxuIiwgIi8qXG4gKiBTaGFyZWQgc3R5bGluZyBmb3IgYWxsIGNvbXBvbmVudHMgKGNvdW50ZXJwYXJ0IG9mIHRoZSBQcmltZVVJWCBiYXNlIHN0eWxlKS5cbiAqXG4gKiBHZW5lcmljIHN0eWxlIGNsYXNzZXMgKHAtY29tcG9uZW50LWhlYWRlci9jb250ZW50LCBwLXN0YXRlLSopIGFyZSB3cmFwcGVkIGluXG4gKiA6d2hlcmUoKSwgc28gdGhleSBoYXZlIHplcm8gc3BlY2lmaWNpdHk6IHRoZXkgc3R5bGUgcGxhaW4gbWFya3VwIChlLmcuIDxkaXYgY2xhc3M9XCJwLWNvbXBvbmVudC1jb250ZW50XCI+KSBidXQgZXZlcnlcbiAqIGNvbXBvbmVudCBydWxlIHdpbnMsIGluZGVwZW5kZW50IG9mIHRoZSBmaWxlIG9yZGVyLlxuICovXG4qLFxuOjpiZWZvcmUsXG46OmFmdGVyIHtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xufVxuXG4ucC1jb21wb25lbnQge1xuICAgIGZvbnQtZmFtaWx5OiB2YXIoLS1wLXR5cG9ncmFwaHktZm9udC1mYW1pbHkpO1xuICAgIGZvbnQtc2l6ZTogdmFyKC0tcC10eXBvZ3JhcGh5LWZvbnQtc2l6ZSk7XG4gICAgZm9udC13ZWlnaHQ6IHZhcigtLXAtdHlwb2dyYXBoeS1mb250LXdlaWdodCk7XG4gICAgbGluZS1oZWlnaHQ6IHZhcigtLXAtdHlwb2dyYXBoeS1saW5lLWhlaWdodCk7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuXG4gICAgLyogbmVzdGVkIGNvbXBvbmVudCAoPSA6d2hlcmUoLnAtY29tcG9uZW50KSAucC1jb21wb25lbnQsIHNwZWNpZmljaXR5IG9mIG9uZSBjbGFzcyk6IGNvbXBvbmVudCBydWxlcyB3aXRoIHRoZWlyIG93blxuICAgICAgIGZvbnQgc2l6ZSB0b2tlbiAoZS5nLiAucC1iYWRnZSBpbnNpZGUgYSBwYW5lbCBvciB0b29sYmFyKSBtdXN0IHN0aWxsIHdpbiAqL1xuICAgIDp3aGVyZSgucC1jb21wb25lbnQpICYge1xuICAgICAgICBmb250LXNpemU6IGluaGVyaXQ7XG4gICAgfVxufVxuXG46d2hlcmUoLnAtY29tcG9uZW50LWNvbnRlbnQpIHtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1wLWNvbXBvbmVudC1jb250ZW50LWJhY2tncm91bmQpO1xuICAgIGNvbG9yOiB2YXIoLS1wLWNvbXBvbmVudC1jb250ZW50LWNvbG9yKTtcbiAgICBib3JkZXItY29sb3I6IHZhcigtLXAtY29tcG9uZW50LWNvbnRlbnQtYm9yZGVyLWNvbG9yKTtcbn1cblxuOndoZXJlKC5wLWNvbXBvbmVudC1oZWFkZXIpIHtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1wLWNvbXBvbmVudC1oZWFkZXItYmFja2dyb3VuZCk7XG4gICAgY29sb3I6IHZhcigtLXAtY29tcG9uZW50LWhlYWRlci1jb2xvcik7XG4gICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1wLWNvbXBvbmVudC1oZWFkZXItYm9yZGVyLWNvbG9yKTtcbiAgICBmb250LXdlaWdodDogdmFyKC0tcC1jb21wb25lbnQtaGVhZGVyLWZvbnQtd2VpZ2h0KTtcbn1cblxuOndoZXJlKC5wLXN0YXRlLWhvdmVyKSB7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tcC1jb21wb25lbnQtaG92ZXItYmFja2dyb3VuZCk7XG4gICAgY29sb3I6IHZhcigtLXAtY29tcG9uZW50LWhvdmVyLWNvbG9yKTtcbn1cblxuOndoZXJlKC5wLXN0YXRlLWFjdGl2ZSkge1xuICAgIGJhY2tncm91bmQ6IHZhcigtLXAtY29tcG9uZW50LWFjdGl2ZS1iYWNrZ3JvdW5kKTtcbiAgICBjb2xvcjogdmFyKC0tcC1jb21wb25lbnQtYWN0aXZlLWNvbG9yKTtcbn1cblxuOndoZXJlKC5wLXN0YXRlLWhpZ2hsaWdodCkge1xuICAgIGJhY2tncm91bmQ6IHZhcigtLXAtY29tcG9uZW50LWhpZ2hsaWdodC1iYWNrZ3JvdW5kKTtcbiAgICBjb2xvcjogdmFyKC0tcC1jb21wb25lbnQtaGlnaGxpZ2h0LWNvbG9yKTtcbn1cblxuOndoZXJlKC5wLXN0YXRlLWhpZ2hsaWdodCBhLCAucC1zdGF0ZS1hY3RpdmUgYSkge1xuICAgIGNvbG9yOiBpbmhlcml0O1xufVxuXG4vKiBvbmx5IHRleHQgYW5kIGJvcmRlcjogcC1zdGF0ZS1lcnJvciBpcyBhbHNvIHNldCBvbiBsYWJlbHMgYW5kIGlucHV0cywgd2hpY2gga2VlcCB0aGVpciBvd24gYmFja2dyb3VuZCAqL1xuOndoZXJlKC5wLXN0YXRlLWVycm9yKSB7XG4gICAgY29sb3I6IHZhcigtLXAtY29tcG9uZW50LWVycm9yLWNvbG9yKTtcbiAgICBib3JkZXItY29sb3I6IHZhcigtLXAtY29tcG9uZW50LWVycm9yLWJvcmRlci1jb2xvcik7XG59XG5cbjp3aGVyZSgucC1zdGF0ZS1lcnJvci10ZXh0KSB7XG4gICAgY29sb3I6IHZhcigtLXAtY29tcG9uZW50LWVycm9yLWNvbG9yKTtcbn1cblxuLnAtc3RhdGUtZGlzYWJsZWQge1xuICAgIG9wYWNpdHk6IHZhcigtLXAtZGlzYWJsZWQtb3BhY2l0eSk7XG4gICAgY3Vyc29yOiBkZWZhdWx0ICFpbXBvcnRhbnQ7XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG5cbiAgICAucC1zdGF0ZS1kaXNhYmxlZCB7XG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgfVxufVxuXG46d2hlcmUoLnAtcHJpb3JpdHktcHJpbWFyeSkge1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG59XG5cbjp3aGVyZSgucC1wcmlvcml0eS1zZWNvbmRhcnkpIHtcbiAgICBvcGFjaXR5OiB2YXIoLS1wLWRpc2FibGVkLW9wYWNpdHkpO1xuICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1wLXR5cG9ncmFwaHktZm9udC13ZWlnaHQpO1xufVxuXG4vKiBpY29ucyB0aGUgYXBwbGljYXRpb24gc2V0cyAoaWNvbj1cInBpIHBpLWNoZWNrXCIsIEZvbnQgQXdlc29tZSwgLi4uKTogdGhlIGljb24gc2l6ZSBvZiB0aGUgdGhlbWUsIGJ5IHRoZWlyIHNsb3QgY2xhc3MgKi9cbi5waSxcbi5wLWJ1dHRvbi1pY29uLWxlZnQsXG4ucC1idXR0b24taWNvbi1yaWdodCxcbi5wLW1lbnVpdGVtLWljb24sXG4ucC1zdWJtZW51LWljb24sXG4ucC10cmVlbm9kZS1pY29uIHtcbiAgICBmb250LXNpemU6IHZhcigtLXAtaWNvbi1zaXplKTtcbn1cblxuLypcbiAqIEljb25zIHRoZSBjb21wb25lbnRzIGRyYXcgdGhlbXNlbHZlczogPHNwYW4gY2xhc3M9XCJwLWljb24gcC1jbG9zZS1pY29uIHAtcGFuZWwtY2xvc2UtaWNvblwiPi4gVGhlIGdlbmVyaWMgY2xhc3MgZHJhd3NcbiAqIHRoZSBTVkcgb2YgLS1faWNvbiBhcyBtYXNrIGluIHRoZSB0ZXh0IGNvbG9yLCB0aGUgY29tcG9uZW50IENTUyBtYXBzIGl0cyBjbGFzcyAoYW5kIHN0YXRlKSB0byB0aGUgaWNvbiB0b2tlbiBvbmNlOlxuICogLnAtcGFuZWwtY2xvc2UtaWNvbiB7IC0tX2ljb246IHZhcigtLXAtcGFuZWwtY2xvc2UtaWNvbik7IH0uIFRoZSBtZWFuaW5nIGNsYXNzIChwLWNsb3NlLWljb24pIGlzIGEgaG9vayBmb3JcbiAqIGFwcGxpY2F0aW9uIENTUyBvbmx5LiBXaXRob3V0IC0tX2ljb24gKGUuZy4gYW4gdW5jaGVja2VkIGNoZWNrYm94KSBub3RoaW5nIGlzIGRyYXduLlxuICovXG4ucC1pY29uIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgZmxleC1zaHJpbms6IDA7XG4gICAgZm9udC1zaXplOiB2YXIoLS1wLWljb24tc2l6ZSk7XG4gICAgZm9udC1zdHlsZTogbm9ybWFsO1xuICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xuXG4gICAgLypcbiAgICAgKiBpbmxpbmUtYmxvY2sgMWVtIHggMWVtOiBhbiBpbmxpbmUgYm94IHBhaW50cyB0aGUgZm9udCdzIHdob2xlIGNvbnRlbnQgYXJlYSAodGFsbGVyIHRoYW4gMWVtIG9uIGlPUyksIFdlYktpdFxuICAgICAqIGxlYXZlcyB0aGF0IG92ZXJoYW5nIHVubWFza2VkIChzdHJpcGVzIGFib3ZlL2JlbG93IHRoZSBpY29uKS4gbGluZS1oZWlnaHQgMSBrZWVwcyB0aGUgYmFzZWxpbmUgb2YgdGhlIGdseXBoIHdoZW5cbiAgICAgKiB0aGUgaWNvbiBlbGVtZW50IGhhcyBhIHRhbGxlciBsaW5lLWhlaWdodCAoZS5nLiB0cmVlIHRvZ2dsZXIpLiBSVEwgcnVsZXMgbWlycm9yIHRoZSBpY29uIGVsZW1lbnQgKHNjYWxlOiAtMSAxKS5cbiAgICAgKi9cbiAgICAmOjpiZWZvcmUge1xuICAgICAgICBjb250ZW50OiBcIlxcMjAwM1wiO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHdpZHRoOiAxZW07XG4gICAgICAgIGhlaWdodDogMWVtO1xuICAgICAgICBsaW5lLWhlaWdodDogMTtcbiAgICAgICAgYmFja2dyb3VuZDogY3VycmVudENvbG9yO1xuICAgICAgICBmb3JjZWQtY29sb3ItYWRqdXN0OiBub25lO1xuICAgICAgICBtYXNrOiB2YXIoLS1faWNvbiwgbGluZWFyLWdyYWRpZW50KHRyYW5zcGFyZW50LCB0cmFuc3BhcmVudCkpIGNlbnRlciAvIGNvbnRhaW4gbm8tcmVwZWF0O1xuICAgIH1cbn1cblxuLnAtY29tcG9uZW50LW92ZXJsYXkge1xuICAgIGJhY2tncm91bmQ6IHZhcigtLXAtbWFzay1iYWNrZ3JvdW5kKTtcbiAgICBjb2xvcjogdmFyKC0tcC1tYXNrLWNvbG9yKTtcbn1cblxuLypcbiAqIE5hdGl2ZSBmb3JtIGVsZW1lbnRzIG91dHNpZGUgb2YgY29tcG9uZW50cy4gSW4gOndoZXJlKCk6IG90aGVyd2lzZSB0aGUgOmhvdmVyIC8gOmZvY3VzIHJ1bGVzIHdvdWxkIGJlYXQgdGhlIGlucHV0c1xuICogaW5zaWRlIGNvbXBvbmVudHMgKHA6YXV0b0NvbXBsZXRlIG11bHRpcGxlLCBwOmNoaXBzLCBwOnNlbGVjdENoZWNrYm94TWVudSwgcDprbm9iLCAuLi4pLlxuICovXG46d2hlcmUoc2VsZWN0LFxuaW5wdXQ6bm90KFtyb2xlPVwiY29tYm9ib3hcIl0sIFt0eXBlPVwiZmlsZVwiXSwgW3R5cGU9XCJjaGVja2JveFwiXSwgW3R5cGU9XCJyYWRpb1wiXSwgW3R5cGU9XCJyYW5nZVwiXSwgW3R5cGU9XCJjb2xvclwiXSwgW3R5cGU9XCJoaWRkZW5cIl0sXG4gICAgLnAtY29tcG9uZW50LCAucC1pbnB1dGZpZWxkKSkge1xuICAgIGNvbG9yOiB2YXIoLS1wLWZvcm0tZmllbGQtY29sb3IpO1xuICAgIGJhY2tncm91bmQ6IHZhcigtLXAtZm9ybS1maWVsZC1iYWNrZ3JvdW5kKTtcbiAgICBwYWRkaW5nOiB2YXIoLS1wLWZvcm0tZmllbGQtcGFkZGluZy15KSB2YXIoLS1wLWZvcm0tZmllbGQtcGFkZGluZy14KTtcbiAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1wLWZvcm0tZmllbGQtYm9yZGVyLWNvbG9yKTtcbiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1wLWZvcm0tZmllbGQtYm9yZGVyLXJhZGl1cyk7XG4gICAgb3V0bGluZTogMCBub25lO1xuICAgIGZvbnQtZmFtaWx5OiBpbmhlcml0O1xuICAgIGZvbnQtc2l6ZTogdmFyKC0tcC1mb3JtLWZpZWxkLWZvbnQtc2l6ZSk7XG4gICAgYm94LXNoYWRvdzogdmFyKC0tcC1mb3JtLWZpZWxkLXNoYWRvdyk7XG4gICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCB2YXIoLS1wLWZvcm0tZmllbGQtdHJhbnNpdGlvbi1kdXJhdGlvbiksIGNvbG9yIHZhcigtLXAtZm9ybS1maWVsZC10cmFuc2l0aW9uLWR1cmF0aW9uKSxcbiAgICAgICAgYm9yZGVyLWNvbG9yIHZhcigtLXAtZm9ybS1maWVsZC10cmFuc2l0aW9uLWR1cmF0aW9uKSwgb3V0bGluZS1jb2xvciB2YXIoLS1wLWZvcm0tZmllbGQtdHJhbnNpdGlvbi1kdXJhdGlvbiksXG4gICAgICAgIGJveC1zaGFkb3cgdmFyKC0tcC1mb3JtLWZpZWxkLXRyYW5zaXRpb24tZHVyYXRpb24pO1xufVxuXG46d2hlcmUoc2VsZWN0OmhvdmVyLFxuaW5wdXQ6bm90KFtyb2xlPVwiY29tYm9ib3hcIl0sIFt0eXBlPVwiZmlsZVwiXSwgW3R5cGU9XCJjaGVja2JveFwiXSwgW3R5cGU9XCJyYWRpb1wiXSwgW3R5cGU9XCJyYW5nZVwiXSwgW3R5cGU9XCJjb2xvclwiXSwgW3R5cGU9XCJoaWRkZW5cIl0sXG4gICAgLnAtY29tcG9uZW50LCAucC1pbnB1dGZpZWxkKTpob3Zlcikge1xuICAgIGJvcmRlci1jb2xvcjogdmFyKC0tcC1mb3JtLWZpZWxkLWhvdmVyLWJvcmRlci1jb2xvcik7XG59XG5cbjp3aGVyZShzZWxlY3Q6Zm9jdXMsXG5pbnB1dDpub3QoW3JvbGU9XCJjb21ib2JveFwiXSwgW3R5cGU9XCJmaWxlXCJdLCBbdHlwZT1cImNoZWNrYm94XCJdLCBbdHlwZT1cInJhZGlvXCJdLCBbdHlwZT1cInJhbmdlXCJdLCBbdHlwZT1cImNvbG9yXCJdLCBbdHlwZT1cImhpZGRlblwiXSxcbiAgICAucC1jb21wb25lbnQsIC5wLWlucHV0ZmllbGQpOmZvY3VzKSB7XG4gICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1wLWZvcm0tZmllbGQtZm9jdXMtYm9yZGVyLWNvbG9yKTtcbiAgICBvdXRsaW5lOiB2YXIoLS1wLWZvcm0tZmllbGQtZm9jdXMtcmluZy13aWR0aCkgdmFyKC0tcC1mb3JtLWZpZWxkLWZvY3VzLXJpbmctc3R5bGUpIHZhcigtLXAtZm9ybS1maWVsZC1mb2N1cy1yaW5nLWNvbG9yKTtcbiAgICBvdXRsaW5lLW9mZnNldDogdmFyKC0tcC1mb3JtLWZpZWxkLWZvY3VzLXJpbmctb2Zmc2V0KTtcbiAgICBib3gtc2hhZG93OiB2YXIoLS1wLWZvcm0tZmllbGQtZm9jdXMtcmluZy1zaGFkb3cpO1xufVxuXG4vKlxuICogY29udGVudCBhIGNvbXBvbmVudCBpbnNlcnRzIGJ5IGFqYXggKG5ldyBtZXNzYWdlcywgaXRlbXMgb2YgZGF0YVZpZXcgLyBkYXRhU2Nyb2xsZXIpOiBhbiBhbmltYXRpb24gcnVucyB3aGVuIGFuIGVsZW1lbnQgaXNcbiAqIGluc2VydGVkLCBzbyBpdCBmYWRlcyBpbiAoYW5kIHNsaWRlcyBieSAtLV9lbnRlci1vZmZzZXQpIHdpdGggQ1NTIG9ubHk7IGFsc28gb24gcGFnZSBsb2FkLCByZWR1Y2VkIG1vdGlvbjpcbiAqIGJhc2UvZG9jdW1lbnQuY3NzXG4gKi9cbkBrZXlmcmFtZXMgcC1lbnRlciB7XG4gICAgZnJvbSB7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgIHRyYW5zbGF0ZTogMCB2YXIoLS1fZW50ZXItb2Zmc2V0LCAwKTtcbiAgICB9XG59XG5cbkBrZXlmcmFtZXMgZmFkZS1pbiB7XG4gICAgZnJvbSB7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgfVxuXG4gICAgdG8ge1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgIH1cbn1cbiIsICIvKlxuICogQ29yZSBoZWxwZXJzIG9mIFByaW1lRmFjZXM6IG92ZXJsYXkgdmlzaWJpbGl0eSwgcmVzZXQsIHJlc3BvbnNpdmUgY29sdW1uIHByaW9yaXRpZXMsIGNvbm5lY3RlZCBvdmVybGF5IGFuaW1hdGlvbnMuXG4gKi9cbi5wLW92ZXJsYXktdmlzaWJsZSB7XG4gICAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbn1cblxuLnAtb3ZlcmZsb3ctaGlkZGVuIHtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xufVxuXG4ucC1yZXNldCB7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgYm9yZGVyOiAwO1xuICAgIG91dGxpbmU6IDA7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIGZvbnQtc2l6ZTogMTAwJTtcbiAgICBsaXN0LXN0eWxlOiBub25lO1xufVxuXG4ucC10cmFuc3BhcmVudC1waXhlbCB7XG4gICAgY29udGVudDogdXJsKGRhdGE6aW1hZ2UvZ2lmO2Jhc2U2NCxSMGxHT0RsaEFRQUJBSUFBQVAvLy93QUFBQ0g1QkFFQUFBQUFMQUFBQUFBQkFBRUFBQUlDUkFFQU93PT0pO1xufVxuXG4vKiBjb2x1bW4gcHJpb3JpdGllcyAocDpjb2x1bW4gcHJpb3JpdHk9XCIxLTZcIik6IGhpZGRlbiwgc2hvd24gZnJvbSAyMGVtICgxKSB1cCB0byA3MGVtICg2KSAqL1xuQG1lZGlhIG9ubHkgYWxsIHtcbiAgICB0aC5wLWNvbHVtbi1wLTYsXG4gICAgdGQucC1jb2x1bW4tcC02LFxuICAgIHRoLnAtY29sdW1uLXAtNSxcbiAgICB0ZC5wLWNvbHVtbi1wLTUsXG4gICAgdGgucC1jb2x1bW4tcC00LFxuICAgIHRkLnAtY29sdW1uLXAtNCxcbiAgICB0aC5wLWNvbHVtbi1wLTMsXG4gICAgdGQucC1jb2x1bW4tcC0zLFxuICAgIHRoLnAtY29sdW1uLXAtMixcbiAgICB0ZC5wLWNvbHVtbi1wLTIsXG4gICAgdGgucC1jb2x1bW4tcC0xLFxuICAgIHRkLnAtY29sdW1uLXAtMSB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxufVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAyMGVtKSB7XG4gICAgdGgucC1jb2x1bW4tcC0xLFxuICAgIHRkLnAtY29sdW1uLXAtMSB7XG4gICAgICAgIGRpc3BsYXk6IHRhYmxlLWNlbGw7XG4gICAgfVxufVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAzMGVtKSB7XG4gICAgdGgucC1jb2x1bW4tcC0yLFxuICAgIHRkLnAtY29sdW1uLXAtMiB7XG4gICAgICAgIGRpc3BsYXk6IHRhYmxlLWNlbGw7XG4gICAgfVxufVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gICAgdGgucC1jb2x1bW4tcC0zLFxuICAgIHRkLnAtY29sdW1uLXAtMyB7XG4gICAgICAgIGRpc3BsYXk6IHRhYmxlLWNlbGw7XG4gICAgfVxufVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA1MGVtKSB7XG4gICAgdGgucC1jb2x1bW4tcC00LFxuICAgIHRkLnAtY29sdW1uLXAtNCB7XG4gICAgICAgIGRpc3BsYXk6IHRhYmxlLWNlbGw7XG4gICAgfVxufVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2MGVtKSB7XG4gICAgdGgucC1jb2x1bW4tcC01LFxuICAgIHRkLnAtY29sdW1uLXAtNSB7XG4gICAgICAgIGRpc3BsYXk6IHRhYmxlLWNlbGw7XG4gICAgfVxufVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA3MGVtKSB7XG4gICAgdGgucC1jb2x1bW4tcC02LFxuICAgIHRkLnAtY29sdW1uLXAtNiB7XG4gICAgICAgIGRpc3BsYXk6IHRhYmxlLWNlbGw7XG4gICAgfVxufVxuXG4vKiBjb25uZWN0ZWQgb3ZlcmxheSBhbmltYXRpb25zICh0aGUgb3ZlcmxheSBKUyByZWxpZXMgb24gdGhlc2UgdHJhbnNpdGlvbnMpICovXG4ucC1jb25uZWN0ZWQtb3ZlcmxheS1lbnRlciB7XG4gICAgb3BhY2l0eTogMDtcbiAgICB0cmFuc2Zvcm06IHNjYWxlWSgwLjgpO1xufVxuXG4ucC1jb25uZWN0ZWQtb3ZlcmxheS1lbnRlci1hY3RpdmUge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgdHJhbnNmb3JtOiBzY2FsZVkoMSk7XG4gICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIHZhcigtLXAtb3ZlcmxheS1lbnRlci1kdXJhdGlvbikgdmFyKC0tcC10cmFuc2l0aW9uLWVhc2luZy1lbnRlciksXG4gICAgICAgIG9wYWNpdHkgdmFyKC0tcC1vdmVybGF5LWVudGVyLWR1cmF0aW9uKSB2YXIoLS1wLXRyYW5zaXRpb24tZWFzaW5nLWVudGVyKTtcbn1cblxuLnAtY29ubmVjdGVkLW92ZXJsYXktZW50ZXItZG9uZSB7XG4gICAgdHJhbnNmb3JtOiBub25lO1xufVxuXG4ucC1jb25uZWN0ZWQtb3ZlcmxheS1leGl0IHtcbiAgICBvcGFjaXR5OiAxO1xufVxuXG4ucC1jb25uZWN0ZWQtb3ZlcmxheS1leGl0LWFjdGl2ZSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IHZhcigtLXAtb3ZlcmxheS1sZWF2ZS1kdXJhdGlvbikgdmFyKC0tcC10cmFuc2l0aW9uLWVhc2luZy1leGl0KTtcbn1cbiIsICIvKlxuICogRG9jdW1lbnQgbGV2ZWwgZGVmYXVsdHMgYW5kIHVzZXIgcHJlZmVyZW5jZXM6IG5hdGl2ZSBjb250cm9scywgdGV4dCBzZWxlY3Rpb24sIHJlZHVjZWQgbW90aW9uLCBwcmludC5cbiAqL1xuOnJvb3Qge1xuICAgIC8qIG5hdGl2ZSBjaGVja2JveGVzLCByYWRpb3MsIHJhbmdlcywgcHJvZ3Jlc3Mgb2YgdGhlIGFwcGxpY2F0aW9uIGluIHRoZSBwcmltYXJ5IGNvbG9yICovXG4gICAgYWNjZW50LWNvbG9yOiB2YXIoLS1wLXByaW1hcnktY29sb3IpO1xufVxuXG46OnNlbGVjdGlvbiB7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tcC1oaWdobGlnaHQtYmFja2dyb3VuZCk7XG4gICAgY29sb3I6IHZhcigtLXAtaGlnaGxpZ2h0LWNvbG9yKTtcbn1cblxuLyogV0NBRyAyLjIgdGFyZ2V0IHNpemU6IHNtYWxsIGljb24gY29udHJvbHMgZ2V0IGFuIGludmlzaWJsZSAyNHB4IGhpdCBhcmVhIChjZW50ZXJlZCksIHRoZSBsYXlvdXQgc3RheXMgdGhlIHNhbWUgKi9cbjp3aGVyZSgucC1jaGlwcy10b2tlbi1pY29uLCAucC1hdXRvY29tcGxldGUtdG9rZW4taWNvbiwgLnAtc2VsZWN0Y2hlY2tib3htZW51LXRva2VuLWljb24sIC5wLXBhc3N3b3JkLWljb24sXG4gICAgLnAtY2hpcC1yZW1vdmUtaWNvbiwgLnAtYnJlYWRjcnVtYi1ob21lLWljb24pOjphZnRlciB7XG4gICAgY29udGVudDogXCJcIjtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgaW5zZXQ6IGNhbGMoNTAlIC0gMTJweCk7XG59XG5cbjp3aGVyZSgucC1jaGlwLXJlbW92ZS1pY29uLCAucC1icmVhZGNydW1iLWhvbWUtaWNvbikge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cblxuQG1lZGlhIChwcmVmZXJzLXJlZHVjZWQtbW90aW9uOiByZWR1Y2UpIHtcbiAgICA6cm9vdCxcbiAgICBbZGF0YS1wLXNjb3BlXSB7XG4gICAgICAgIC0tcC10cmFuc2l0aW9uLWR1cmF0aW9uOiAwcztcbiAgICAgICAgLS1wLXJpcHBsZS1vcGFjaXR5OiAwO1xuICAgIH1cblxuICAgIC8qIGZpeGVkIGR1cmF0aW9ucyAoa2V5ZnJhbWVzLCBzcGVlZCBkaWFsLCBkb2NrKTsgMC4wMW1zIGluc3RlYWQgb2Ygbm9uZSBzbyBhbmltYXRpb24gZXZlbnRzIHN0aWxsIGZpcmVcbiAgICAgICAodGhlIGF1dG9maWxsIGRldGVjdGlvbiBvZiB0aGUgaW5wdXQgZmllbGRzIGxpc3RlbnMgdG8gYW5pbWF0aW9uc3RhcnQpICovXG4gICAgKixcbiAgICA6OmJlZm9yZSxcbiAgICA6OmFmdGVyIHtcbiAgICAgICAgYW5pbWF0aW9uLWR1cmF0aW9uOiAwLjAxbXMgIWltcG9ydGFudDtcbiAgICAgICAgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogMSAhaW1wb3J0YW50O1xuICAgICAgICB0cmFuc2l0aW9uLWR1cmF0aW9uOiAwLjAxbXMgIWltcG9ydGFudDtcbiAgICAgICAgc2Nyb2xsLWJlaGF2aW9yOiBhdXRvICFpbXBvcnRhbnQ7XG4gICAgfVxufVxuXG4vKiByZWR1Y2VkIHRyYW5zcGFyZW5jeTogbm8gYmx1ciBiZWhpbmQgZmxvYXRpbmcgbGF5ZXJzIChHbGFzcywgZ3Jvd2wpICovXG5AbWVkaWEgKHByZWZlcnMtcmVkdWNlZC10cmFuc3BhcmVuY3k6IHJlZHVjZSkge1xuICAgIDpyb290LFxuICAgIFtkYXRhLXAtc2NvcGVdIHtcbiAgICAgICAgLS1wLW92ZXJsYXktYmFja2Ryb3AtZmlsdGVyOiBub25lO1xuICAgICAgICAtLXAtbmF2aWdhdGlvbi1iYWNrZHJvcC1maWx0ZXI6IG5vbmU7XG4gICAgICAgIC0tcC1idXR0b24tYmFja2Ryb3AtZmlsdGVyOiBub25lO1xuICAgICAgICAtLXAtbWFzay1iYWNrZHJvcC1maWx0ZXI6IG5vbmU7XG4gICAgICAgIC0tcC10b2FzdC1ibHVyOiAwcHg7XG4gICAgfVxufVxuXG4vKlxuICogUHJpbWVGYWNlcy51dGlscy5kaXNhYmxlQW5pbWF0aW9ucygpIChhbHNvIGNhbGxlZCBieSBQcmltZUZhY2VzIFNlbGVuaXVtKTogY29udGVudCB0aGF0IGZhZGVzIGluIHdoZW4gaXQgaXMgaW5zZXJ0ZWRcbiAqIGFwcGVhcnMgYXQgb25jZS4gVGhlc2UgYW5pbWF0aW9ucyBzdGFydCBhdCBvcGFjaXR5IDAsIHNvIHRoZSBjb250ZW50IHdvdWxkIGJlIGludmlzaWJsZSBpbiBpdHMgZmlyc3QgZnJhbWUuXG4gKiBBbHNvIG9uIHNjb3Blcywgd2hpY2ggcmUtZGVjbGFyZSB0aGUgdG9rZW5zLlxuICovXG46cm9vdFtkYXRhLXAtYW5pbWF0aW9ucz1cIm9mZlwiXSxcbjpyb290W2RhdGEtcC1hbmltYXRpb25zPVwib2ZmXCJdIFtkYXRhLXAtc2NvcGVdIHtcbiAgICAtLXAtbWVzc2FnZS1lbnRlci1kdXJhdGlvbjogMHM7XG4gICAgLS1wLWRhdGF2aWV3LWNvbnRlbnQtZW50ZXItZHVyYXRpb246IDBzO1xuICAgIC0tcC1maWxldXBsb2FkLXRyYW5zaXRpb24tZHVyYXRpb246IDBzO1xuICAgIC0tcC1yaXBwbGUtb3BhY2l0eTogMDtcbn1cblxuLypcbiAqIFBhZ2UgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgaW4gbW9zdCBwcmVzZXRzICh0aGUgcGFnZSBrZWVwcyBpdHMgb3duIGJhY2tncm91bmQpLCBhIHdhbGxwYXBlciBpbiB0cmFuc2x1Y2VudCBwcmVzZXRzXG4gKiAoR2xhc3MpLCB3aGljaCBuZWVkIHNvbWV0aGluZyBjb2xvcmZ1bCBiZWhpbmQgdGhlaXIgZ2xhc3MuIEFwcGxpY2F0aW9uIENTUyAodW5sYXllcmVkKSB3aW5zLlxuICovXG46cm9vdCB7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tcC1kb2N1bWVudC1iYWNrZ3JvdW5kKTtcbn1cblxuQG1lZGlhIHByaW50IHtcbiAgICAvKiBsaWdodCBvbiBwYXBlciwgYWxzbyBvdmVyIGFuIGFwcGxpY2F0aW9uIGNvbG9yLXNjaGVtZTogZGFyayAoYSBsYXllcmVkICFpbXBvcnRhbnQgYmVhdHMgdW5sYXllcmVkIENTUykgKi9cbiAgICA6cm9vdCB7XG4gICAgICAgIGNvbG9yLXNjaGVtZTogbGlnaHQgIWltcG9ydGFudDtcbiAgICB9XG5cbiAgICAqLFxuICAgIDo6YmVmb3JlLFxuICAgIDo6YWZ0ZXIge1xuICAgICAgICBib3gtc2hhZG93OiBub25lICFpbXBvcnRhbnQ7XG4gICAgICAgIHRleHQtc2hhZG93OiBub25lICFpbXBvcnRhbnQ7XG4gICAgfVxuXG4gICAgLypcbiAgICAgKiBCcm93c2VycyBkcm9wIGJhY2tncm91bmRzIHdoZW4gcHJpbnRpbmcgKHVubGVzcyB0aGUgdXNlciBlbmFibGVzIGJhY2tncm91bmQgZ3JhcGhpY3MpIGJ1dCBrZWVwIHRoZSB0ZXh0IGNvbG9yOlxuICAgICAqIHdoaXRlIHRleHQgb24gYSBwcmltYXJ5IGJ1dHRvbiB3b3VsZCB2YW5pc2gsIGNoZWNrZWQgYm94ZXMgLyBzd2l0Y2hlcyAvIHNlbGVjdGlvbnMgd291bGQgbG9zZSB0aGVpciBzdGF0ZS4gVGhlc2VcbiAgICAgKiBzbWFsbCBlbGVtZW50cyBwcmludCB0aGVpciBiYWNrZ3JvdW5kIChpbmhlcml0ZWQgYnkgdGhlaXIgcGFydHMpOyBsYXJnZSBhcmVhcyBzdGF5IGluayBzYXZpbmcuXG4gICAgICovXG4gICAgLnAtYnV0dG9uLFxuICAgIC5wLWJhZGdlLFxuICAgIC5wLXRhZyxcbiAgICAucC1jaGlwLFxuICAgIC5wLWNoa2JveC1ib3gsXG4gICAgLnAtcmFkaW9idXR0b24tYm94LFxuICAgIC5wLXRvZ2dsZXN3aXRjaCxcbiAgICAucC1zbGlkZXIsXG4gICAgLnAtcHJvZ3Jlc3NiYXIsXG4gICAgLnAtc3RhdGUtaGlnaGxpZ2h0LFxuICAgIC5wLXN0YXRlLWFjdGl2ZSB7XG4gICAgICAgIC13ZWJraXQtcHJpbnQtY29sb3ItYWRqdXN0OiBleGFjdDtcbiAgICAgICAgcHJpbnQtY29sb3ItYWRqdXN0OiBleGFjdDtcbiAgICB9XG5cbiAgICAvKiBzY3JvbGxhYmxlIHRhYmxlcyBwcmludCBhbGwgcm93cyAqL1xuICAgIC5wLWRhdGF0YWJsZS1zY3JvbGxhYmxlLWJvZHksXG4gICAgLnAtdHJlZXRhYmxlLXNjcm9sbGFibGUtYm9keSxcbiAgICAucC1kYXRhdGFibGUtdmlydHVhbHNjcm9sbCAucC1kYXRhdGFibGUtc2Nyb2xsYWJsZS1ib2R5IHtcbiAgICAgICAgaGVpZ2h0OiBhdXRvICFpbXBvcnRhbnQ7XG4gICAgICAgIG1heC1oZWlnaHQ6IG5vbmUgIWltcG9ydGFudDtcbiAgICAgICAgb3ZlcmZsb3c6IHZpc2libGUgIWltcG9ydGFudDtcbiAgICB9XG5cbiAgICB0cixcbiAgICAucC1wYW5lbCxcbiAgICAucC1jYXJkLFxuICAgIC5wLWZpZWxkc2V0IHtcbiAgICAgICAgYnJlYWstaW5zaWRlOiBhdm9pZDtcbiAgICB9XG5cbiAgICAvKiBvdmVybGF5cywgYW5kIHRoZSBmaXhlZCBoZWxwZXJzIGJyb3dzZXJzIHdvdWxkIHJlcGVhdCBvbiBldmVyeSBwYWdlOiB0aGUgc3RpY2t5IGhlYWRlciBjbG9uZSBvZiBhIGRhdGFUYWJsZSxcbiAgICAgICBwOmxvZywgcDpzdGFjaywgcDpkb2NrICovXG4gICAgLnAtZ3Jvd2wsXG4gICAgLnAtdG9vbHRpcCxcbiAgICAucC1zY3JvbGx0b3AsXG4gICAgLnAtYmxvY2t1aSxcbiAgICAucC1jb21wb25lbnQtb3ZlcmxheSxcbiAgICAucC1hamF4LXN0YXR1cyxcbiAgICAucC1wYWdpbmF0b3IsXG4gICAgLnAtZGF0YXRhYmxlLXN0aWNreSxcbiAgICAucC1sb2csXG4gICAgLnAtc3RhY2ssXG4gICAgLnAtZG9jayB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgICB9XG5cbiAgICAvKiBhIHBpbm5lZCBwOnN0aWNreSB0YXJnZXQgcHJpbnRzIGluIGl0cyBwbGFjZSAodGhlIGNvbXBvbmVudCBzZXRzIHBvc2l0aW9uIGZpeGVkIGlubGluZSkgKi9cbiAgICAucC1zdGlja3kge1xuICAgICAgICBwb3NpdGlvbjogc3RhdGljICFpbXBvcnRhbnQ7XG4gICAgICAgIHdpZHRoOiBhdXRvICFpbXBvcnRhbnQ7XG4gICAgfVxufVxuIiwgIi8qXG4gKiBHcmlkIENTUzogdWktZ3JpZCAoZGVwcmVjYXRlZCkgYW5kIHVpLWcgKHJlc3BvbnNpdmUgMTIgY29sdW1uIGZsZXggZ3JpZCBpbmNsLiB1aS1zbS9tZC9sZy94bC0qIGFuZCBvZmZzZXRzKS5cbiAqIFB1cmUgbGF5b3V0LCBubyBsb29rLCBzbyBubyB0b2tlbnMgbmVlZGVkLlxuICovXG5cbi8qIHVpLWdyaWQgKGRlcHJlY2F0ZWQpICovXG4udWktZ3JpZCB7XG4gICAgY2xlYXI6IGJvdGg7XG4gICAgcGFkZGluZzogMDtcbiAgICBtYXJnaW46IDA7XG5cbiAgICAmOjpiZWZvcmUsXG4gICAgJjo6YWZ0ZXIge1xuICAgICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgICBkaXNwbGF5OiB0YWJsZTtcbiAgICB9XG5cbiAgICAmOjphZnRlciB7XG4gICAgICAgIGNsZWFyOiBib3RoO1xuICAgIH1cblxuICAgIC51aS1ncmlkLXJvdyB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGNsZWFyOiBib3RoO1xuICAgIH1cbn1cblxuLnVpLWdyaWQtcm93IHtcbiAgICAmOjphZnRlciB7XG4gICAgICAgIGNsZWFyOiBib3RoO1xuICAgICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgICBkaXNwbGF5OiB0YWJsZTtcbiAgICB9XG59XG5cbi51aS1ncmlkLWNvbC0xLFxuLnVpLWdyaWQtY29sLTIsXG4udWktZ3JpZC1jb2wtMyxcbi51aS1ncmlkLWNvbC00LFxuLnVpLWdyaWQtY29sLTUsXG4udWktZ3JpZC1jb2wtNixcbi51aS1ncmlkLWNvbC03LFxuLnVpLWdyaWQtY29sLTgsXG4udWktZ3JpZC1jb2wtOSxcbi51aS1ncmlkLWNvbC0xMCxcbi51aS1ncmlkLWNvbC0xMSxcbi51aS1ncmlkLWNvbC0xMiB7XG4gICAgZmxvYXQ6IGxlZnQ7XG59XG5cbi51aS1ncmlkLWNvbC0wIHtcbiAgICBkaXNwbGF5OiBub25lO1xufVxuXG4udWktZ3JpZC1jb2wtMSB7XG4gICAgd2lkdGg6IDguMzMzMzMzMzMlO1xufVxuXG4udWktZ3JpZC1jb2wtMiB7XG4gICAgd2lkdGg6IDE2LjY2NjY2NjY3JTtcbn1cblxuLnVpLWdyaWQtY29sLTMge1xuICAgIHdpZHRoOiAyNSU7XG59XG5cbi51aS1ncmlkLWNvbC00IHtcbiAgICB3aWR0aDogMzMuMzMzMzMzMzMlO1xufVxuXG4udWktZ3JpZC1jb2wtNSB7XG4gICAgd2lkdGg6IDQxLjY2NjY2NjY3JTtcbn1cblxuLnVpLWdyaWQtY29sLTYge1xuICAgIHdpZHRoOiA1MCU7XG59XG5cbi51aS1ncmlkLWNvbC03IHtcbiAgICB3aWR0aDogNTguMzMzMzMzMzMlO1xufVxuXG4udWktZ3JpZC1jb2wtOCB7XG4gICAgd2lkdGg6IDY2LjY2NjY2NjY3JTtcbn1cblxuLnVpLWdyaWQtY29sLTkge1xuICAgIHdpZHRoOiA3NSU7XG59XG5cbi51aS1ncmlkLWNvbC0xMCB7XG4gICAgd2lkdGg6IDgzLjMzMzMzMzMzJTtcbn1cblxuLnVpLWdyaWQtY29sLTExIHtcbiAgICB3aWR0aDogOTEuNjY2NjY2NjclO1xufVxuXG4udWktZ3JpZC1jb2wtMTIge1xuICAgIHdpZHRoOiAxMDAlO1xufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogNDgwcHgpIHtcbiAgICAudWktZ3JpZC1maXhlZCB7XG4gICAgICAgIHdpZHRoOiA0ODBweDtcbiAgICB9XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkge1xuICAgIC51aS1ncmlkLWZpeGVkIHtcbiAgICAgICAgd2lkdGg6IDc2OHB4O1xuICAgIH1cbn1cblxuQG1lZGlhIChtaW4td2lkdGg6IDk2MHB4KSB7XG4gICAgLnVpLWdyaWQtZml4ZWQge1xuICAgICAgICB3aWR0aDogOTYwcHg7XG4gICAgfVxufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogMTAyNHB4KSB7XG4gICAgLnVpLWdyaWQtZml4ZWQge1xuICAgICAgICB3aWR0aDogMTAyNHB4O1xuICAgIH1cbn1cblxuLyogdWktZ3JpZC1yZXNwb25zaXZlICovXG5AbWVkaWEgKG1heC13aWR0aDogNjQwcHgpIHtcbiAgICAudWktZ3JpZC1yZXNwb25zaXZlIHtcbiAgICAgICAgLnVpLWdyaWQtcm93IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgLnVpLWdyaWQtY29sLTEsXG4gICAgICAgIC51aS1ncmlkLWNvbC0yLFxuICAgICAgICAudWktZ3JpZC1jb2wtMyxcbiAgICAgICAgLnVpLWdyaWQtY29sLTQsXG4gICAgICAgIC51aS1ncmlkLWNvbC01LFxuICAgICAgICAudWktZ3JpZC1jb2wtNixcbiAgICAgICAgLnVpLWdyaWQtY29sLTcsXG4gICAgICAgIC51aS1ncmlkLWNvbC04LFxuICAgICAgICAudWktZ3JpZC1jb2wtOSxcbiAgICAgICAgLnVpLWdyaWQtY29sLTEwLFxuICAgICAgICAudWktZ3JpZC1jb2wtMTEsXG4gICAgICAgIC51aS1ncmlkLWNvbC0xMiB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGZsb2F0OiBub25lO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4udWktZ3JpZC51aS1ncmlkLXBhZCA+IC51aS1ncmlkLXJvdyA+IGRpdiB7XG4gICAgcGFkZGluZzogLjI1ZW0gLjVlbTtcbn1cblxuLyogdWktZyAqL1xuLnVpLWcge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuXG4gICAgJjo6YWZ0ZXIge1xuICAgICAgICBjbGVhcjogYm90aDtcbiAgICAgICAgY29udGVudDogXCJcIjtcbiAgICAgICAgZGlzcGxheTogdGFibGU7XG4gICAgfVxufVxuXG4udWktZy0xLFxuLnVpLWctMixcbi51aS1nLTMsXG4udWktZy00LFxuLnVpLWctNSxcbi51aS1nLTYsXG4udWktZy03LFxuLnVpLWctOCxcbi51aS1nLTksXG4udWktZy0xMCxcbi51aS1nLTExLFxuLnVpLWctMTIge1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIHBhZGRpbmc6IDAuNWVtO1xufVxuXG4udWktZy0wIHtcbiAgICBkaXNwbGF5OiBub25lO1xufVxuXG4udWktZy0xIHtcbiAgICB3aWR0aDogOC4zMzMzMzMzMyU7XG59XG5cbi51aS1nLTIge1xuICAgIHdpZHRoOiAxNi42NjY2NjY2NyU7XG59XG5cbi51aS1nLTMge1xuICAgIHdpZHRoOiAyNSU7XG59XG5cbi51aS1nLTQge1xuICAgIHdpZHRoOiAzMy4zMzMzMzMzMyU7XG59XG5cbi51aS1nLTUge1xuICAgIHdpZHRoOiA0MS42NjY2NjY2NyU7XG59XG5cbi51aS1nLTYge1xuICAgIHdpZHRoOiA1MCU7XG59XG5cbi51aS1nLTcge1xuICAgIHdpZHRoOiA1OC4zMzMzMzMzMyU7XG59XG5cbi51aS1nLTgge1xuICAgIHdpZHRoOiA2Ni42NjY2NjY2NyU7XG59XG5cbi51aS1nLTkge1xuICAgIHdpZHRoOiA3NSU7XG59XG5cbi51aS1nLTEwIHtcbiAgICB3aWR0aDogODMuMzMzMzMzMzMlO1xufVxuXG4udWktZy0xMSB7XG4gICAgd2lkdGg6IDkxLjY2NjY2NjY3JTtcbn1cblxuLnVpLWctMTIge1xuICAgIHdpZHRoOiAxMDAlO1xufVxuXG4udWktZy1vZmZzZXQtMTIge1xuICAgIG1hcmdpbi1sZWZ0OiAxMDAlO1xufVxuXG4udWktZy1vZmZzZXQtMTEge1xuICAgIG1hcmdpbi1sZWZ0OiA5MS42NjY2NjY2NyU7XG59XG5cbi51aS1nLW9mZnNldC0xMCB7XG4gICAgbWFyZ2luLWxlZnQ6IDgzLjMzMzMzMzMzJTtcbn1cblxuLnVpLWctb2Zmc2V0LTkge1xuICAgIG1hcmdpbi1sZWZ0OiA3NSU7XG59XG5cbi51aS1nLW9mZnNldC04IHtcbiAgICBtYXJnaW4tbGVmdDogNjYuNjY2NjY2NjclO1xufVxuXG4udWktZy1vZmZzZXQtNyB7XG4gICAgbWFyZ2luLWxlZnQ6IDU4LjMzMzMzMzMzJTtcbn1cblxuLnVpLWctb2Zmc2V0LTYge1xuICAgIG1hcmdpbi1sZWZ0OiA1MCU7XG59XG5cbi51aS1nLW9mZnNldC01IHtcbiAgICBtYXJnaW4tbGVmdDogNDEuNjY2NjY2NjclO1xufVxuXG4udWktZy1vZmZzZXQtNCB7XG4gICAgbWFyZ2luLWxlZnQ6IDMzLjMzMzMzMzMzJTtcbn1cblxuLnVpLWctb2Zmc2V0LTMge1xuICAgIG1hcmdpbi1sZWZ0OiAyNSU7XG59XG5cbi51aS1nLW9mZnNldC0yIHtcbiAgICBtYXJnaW4tbGVmdDogMTYuNjY2NjY2NjclO1xufVxuXG4udWktZy1vZmZzZXQtMSB7XG4gICAgbWFyZ2luLWxlZnQ6IDguMzMzMzMzMzMlO1xufVxuXG4udWktZy1vZmZzZXQtMCB7XG4gICAgbWFyZ2luLWxlZnQ6IDAlO1xufVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA0MGVtKSB7XG4gICAgLnVpLXNtLTEsXG4gICAgLnVpLXNtLTIsXG4gICAgLnVpLXNtLTMsXG4gICAgLnVpLXNtLTQsXG4gICAgLnVpLXNtLTUsXG4gICAgLnVpLXNtLTYsXG4gICAgLnVpLXNtLTcsXG4gICAgLnVpLXNtLTgsXG4gICAgLnVpLXNtLTksXG4gICAgLnVpLXNtLTEwLFxuICAgIC51aS1zbS0xMSxcbiAgICAudWktc20tMTIge1xuICAgICAgICBwYWRkaW5nOiAwLjVlbTtcbiAgICB9XG5cbiAgICAudWktc20tMCB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuXG4gICAgLnVpLXNtLTEge1xuICAgICAgICB3aWR0aDogOC4zMzMzMzMzMyU7XG4gICAgfVxuXG4gICAgLnVpLXNtLTIge1xuICAgICAgICB3aWR0aDogMTYuNjY2NjY2NjclO1xuICAgIH1cblxuICAgIC51aS1zbS0zIHtcbiAgICAgICAgd2lkdGg6IDI1JTtcbiAgICB9XG5cbiAgICAudWktc20tNCB7XG4gICAgICAgIHdpZHRoOiAzMy4zMzMzMzMzMyU7XG4gICAgfVxuXG4gICAgLnVpLXNtLTUge1xuICAgICAgICB3aWR0aDogNDEuNjY2NjY2NjclO1xuICAgIH1cblxuICAgIC51aS1zbS02IHtcbiAgICAgICAgd2lkdGg6IDUwJTtcbiAgICB9XG5cbiAgICAudWktc20tNyB7XG4gICAgICAgIHdpZHRoOiA1OC4zMzMzMzMzMyU7XG4gICAgfVxuXG4gICAgLnVpLXNtLTgge1xuICAgICAgICB3aWR0aDogNjYuNjY2NjY2NjclO1xuICAgIH1cblxuICAgIC51aS1zbS05IHtcbiAgICAgICAgd2lkdGg6IDc1JTtcbiAgICB9XG5cbiAgICAudWktc20tMTAge1xuICAgICAgICB3aWR0aDogODMuMzMzMzMzMzMlO1xuICAgIH1cblxuICAgIC51aS1zbS0xMSB7XG4gICAgICAgIHdpZHRoOiA5MS42NjY2NjY2NyU7XG4gICAgfVxuXG4gICAgLnVpLXNtLTEyIHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgfVxuXG4gICAgLnVpLXNtLW9mZnNldC0xMiB7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAxMDAlO1xuICAgIH1cblxuICAgIC51aS1zbS1vZmZzZXQtMTEge1xuICAgICAgICBtYXJnaW4tbGVmdDogOTEuNjY2NjY2NjclO1xuICAgIH1cblxuICAgIC51aS1zbS1vZmZzZXQtMTAge1xuICAgICAgICBtYXJnaW4tbGVmdDogODMuMzMzMzMzMzMlO1xuICAgIH1cblxuICAgIC51aS1zbS1vZmZzZXQtOSB7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiA3NSU7XG4gICAgfVxuXG4gICAgLnVpLXNtLW9mZnNldC04IHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDY2LjY2NjY2NjY3JTtcbiAgICB9XG5cbiAgICAudWktc20tb2Zmc2V0LTcge1xuICAgICAgICBtYXJnaW4tbGVmdDogNTguMzMzMzMzMzMlO1xuICAgIH1cblxuICAgIC51aS1zbS1vZmZzZXQtNiB7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiA1MCU7XG4gICAgfVxuXG4gICAgLnVpLXNtLW9mZnNldC01IHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDQxLjY2NjY2NjY3JTtcbiAgICB9XG5cbiAgICAudWktc20tb2Zmc2V0LTQge1xuICAgICAgICBtYXJnaW4tbGVmdDogMzMuMzMzMzMzMzMlO1xuICAgIH1cblxuICAgIC51aS1zbS1vZmZzZXQtMyB7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAyNSU7XG4gICAgfVxuXG4gICAgLnVpLXNtLW9mZnNldC0yIHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDE2LjY2NjY2NjY3JTtcbiAgICB9XG5cbiAgICAudWktc20tb2Zmc2V0LTEge1xuICAgICAgICBtYXJnaW4tbGVmdDogOC4zMzMzMzMzMyU7XG4gICAgfVxuXG4gICAgLnVpLXNtLW9mZnNldC0wIHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDAlO1xuICAgIH1cbn1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDAuMDYzZW0pIHtcbiAgICAudWktbWQtMSxcbiAgICAudWktbWQtMixcbiAgICAudWktbWQtMyxcbiAgICAudWktbWQtNCxcbiAgICAudWktbWQtNSxcbiAgICAudWktbWQtNixcbiAgICAudWktbWQtNyxcbiAgICAudWktbWQtOCxcbiAgICAudWktbWQtOSxcbiAgICAudWktbWQtMTAsXG4gICAgLnVpLW1kLTExLFxuICAgIC51aS1tZC0xMiB7XG4gICAgICAgIHBhZGRpbmc6IDAuNWVtO1xuICAgIH1cblxuICAgIC51aS1tZC0wIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG5cbiAgICAudWktbWQtMSB7XG4gICAgICAgIHdpZHRoOiA4LjMzMzMzMzMzJTtcbiAgICB9XG5cbiAgICAudWktbWQtMiB7XG4gICAgICAgIHdpZHRoOiAxNi42NjY2NjY2NyU7XG4gICAgfVxuXG4gICAgLnVpLW1kLTMge1xuICAgICAgICB3aWR0aDogMjUlO1xuICAgIH1cblxuICAgIC51aS1tZC00IHtcbiAgICAgICAgd2lkdGg6IDMzLjMzMzMzMzMzJTtcbiAgICB9XG5cbiAgICAudWktbWQtNSB7XG4gICAgICAgIHdpZHRoOiA0MS42NjY2NjY2NyU7XG4gICAgfVxuXG4gICAgLnVpLW1kLTYge1xuICAgICAgICB3aWR0aDogNTAlO1xuICAgIH1cblxuICAgIC51aS1tZC03IHtcbiAgICAgICAgd2lkdGg6IDU4LjMzMzMzMzMzJTtcbiAgICB9XG5cbiAgICAudWktbWQtOCB7XG4gICAgICAgIHdpZHRoOiA2Ni42NjY2NjY2NyU7XG4gICAgfVxuXG4gICAgLnVpLW1kLTkge1xuICAgICAgICB3aWR0aDogNzUlO1xuICAgIH1cblxuICAgIC51aS1tZC0xMCB7XG4gICAgICAgIHdpZHRoOiA4My4zMzMzMzMzMyU7XG4gICAgfVxuXG4gICAgLnVpLW1kLTExIHtcbiAgICAgICAgd2lkdGg6IDkxLjY2NjY2NjY3JTtcbiAgICB9XG5cbiAgICAudWktbWQtMTIge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICB9XG5cbiAgICAudWktbWQtb2Zmc2V0LTEyIHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDEwMCU7XG4gICAgfVxuXG4gICAgLnVpLW1kLW9mZnNldC0xMSB7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiA5MS42NjY2NjY2NyU7XG4gICAgfVxuXG4gICAgLnVpLW1kLW9mZnNldC0xMCB7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiA4My4zMzMzMzMzMyU7XG4gICAgfVxuXG4gICAgLnVpLW1kLW9mZnNldC05IHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDc1JTtcbiAgICB9XG5cbiAgICAudWktbWQtb2Zmc2V0LTgge1xuICAgICAgICBtYXJnaW4tbGVmdDogNjYuNjY2NjY2NjclO1xuICAgIH1cblxuICAgIC51aS1tZC1vZmZzZXQtNyB7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiA1OC4zMzMzMzMzMyU7XG4gICAgfVxuXG4gICAgLnVpLW1kLW9mZnNldC02IHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDUwJTtcbiAgICB9XG5cbiAgICAudWktbWQtb2Zmc2V0LTUge1xuICAgICAgICBtYXJnaW4tbGVmdDogNDEuNjY2NjY2NjclO1xuICAgIH1cblxuICAgIC51aS1tZC1vZmZzZXQtNCB7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAzMy4zMzMzMzMzMyU7XG4gICAgfVxuXG4gICAgLnVpLW1kLW9mZnNldC0zIHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDI1JTtcbiAgICB9XG5cbiAgICAudWktbWQtb2Zmc2V0LTIge1xuICAgICAgICBtYXJnaW4tbGVmdDogMTYuNjY2NjY2NjclO1xuICAgIH1cblxuICAgIC51aS1tZC1vZmZzZXQtMSB7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiA4LjMzMzMzMzMzJTtcbiAgICB9XG5cbiAgICAudWktbWQtb2Zmc2V0LTAge1xuICAgICAgICBtYXJnaW4tbGVmdDogMCU7XG4gICAgfVxufVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NC4wNjNlbSkge1xuICAgIC51aS1sZy0xLFxuICAgIC51aS1sZy0yLFxuICAgIC51aS1sZy0zLFxuICAgIC51aS1sZy00LFxuICAgIC51aS1sZy01LFxuICAgIC51aS1sZy02LFxuICAgIC51aS1sZy03LFxuICAgIC51aS1sZy04LFxuICAgIC51aS1sZy05LFxuICAgIC51aS1sZy0xMCxcbiAgICAudWktbGctMTEsXG4gICAgLnVpLWxnLTEyIHtcbiAgICAgICAgcGFkZGluZzogMC41ZW07XG4gICAgfVxuXG4gICAgLnVpLWxnLTAge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cblxuICAgIC51aS1sZy0xIHtcbiAgICAgICAgd2lkdGg6IDguMzMzMzMzMzMlO1xuICAgIH1cblxuICAgIC51aS1sZy0yIHtcbiAgICAgICAgd2lkdGg6IDE2LjY2NjY2NjY3JTtcbiAgICB9XG5cbiAgICAudWktbGctMyB7XG4gICAgICAgIHdpZHRoOiAyNSU7XG4gICAgfVxuXG4gICAgLnVpLWxnLTQge1xuICAgICAgICB3aWR0aDogMzMuMzMzMzMzMzMlO1xuICAgIH1cblxuICAgIC51aS1sZy01IHtcbiAgICAgICAgd2lkdGg6IDQxLjY2NjY2NjY3JTtcbiAgICB9XG5cbiAgICAudWktbGctNiB7XG4gICAgICAgIHdpZHRoOiA1MCU7XG4gICAgfVxuXG4gICAgLnVpLWxnLTcge1xuICAgICAgICB3aWR0aDogNTguMzMzMzMzMzMlO1xuICAgIH1cblxuICAgIC51aS1sZy04IHtcbiAgICAgICAgd2lkdGg6IDY2LjY2NjY2NjY3JTtcbiAgICB9XG5cbiAgICAudWktbGctOSB7XG4gICAgICAgIHdpZHRoOiA3NSU7XG4gICAgfVxuXG4gICAgLnVpLWxnLTEwIHtcbiAgICAgICAgd2lkdGg6IDgzLjMzMzMzMzMzJTtcbiAgICB9XG5cbiAgICAudWktbGctMTEge1xuICAgICAgICB3aWR0aDogOTEuNjY2NjY2NjclO1xuICAgIH1cblxuICAgIC51aS1sZy0xMiB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgIH1cblxuICAgIC51aS1sZy1vZmZzZXQtMTIge1xuICAgICAgICBtYXJnaW4tbGVmdDogMTAwJTtcbiAgICB9XG5cbiAgICAudWktbGctb2Zmc2V0LTExIHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDkxLjY2NjY2NjY3JTtcbiAgICB9XG5cbiAgICAudWktbGctb2Zmc2V0LTEwIHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDgzLjMzMzMzMzMzJTtcbiAgICB9XG5cbiAgICAudWktbGctb2Zmc2V0LTkge1xuICAgICAgICBtYXJnaW4tbGVmdDogNzUlO1xuICAgIH1cblxuICAgIC51aS1sZy1vZmZzZXQtOCB7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiA2Ni42NjY2NjY2NyU7XG4gICAgfVxuXG4gICAgLnVpLWxnLW9mZnNldC03IHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDU4LjMzMzMzMzMzJTtcbiAgICB9XG5cbiAgICAudWktbGctb2Zmc2V0LTYge1xuICAgICAgICBtYXJnaW4tbGVmdDogNTAlO1xuICAgIH1cblxuICAgIC51aS1sZy1vZmZzZXQtNSB7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiA0MS42NjY2NjY2NyU7XG4gICAgfVxuXG4gICAgLnVpLWxnLW9mZnNldC00IHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDMzLjMzMzMzMzMzJTtcbiAgICB9XG5cbiAgICAudWktbGctb2Zmc2V0LTMge1xuICAgICAgICBtYXJnaW4tbGVmdDogMjUlO1xuICAgIH1cblxuICAgIC51aS1sZy1vZmZzZXQtMiB7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAxNi42NjY2NjY2NyU7XG4gICAgfVxuXG4gICAgLnVpLWxnLW9mZnNldC0xIHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDguMzMzMzMzMzMlO1xuICAgIH1cblxuICAgIC51aS1sZy1vZmZzZXQtMCB7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAwJTtcbiAgICB9XG59XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDkwLjA2M2VtKSB7XG4gICAgLnVpLXhsLTEsXG4gICAgLnVpLXhsLTIsXG4gICAgLnVpLXhsLTMsXG4gICAgLnVpLXhsLTQsXG4gICAgLnVpLXhsLTUsXG4gICAgLnVpLXhsLTYsXG4gICAgLnVpLXhsLTcsXG4gICAgLnVpLXhsLTgsXG4gICAgLnVpLXhsLTksXG4gICAgLnVpLXhsLTEwLFxuICAgIC51aS14bC0xMSxcbiAgICAudWkteGwtMTIge1xuICAgICAgICBwYWRkaW5nOiAwLjVlbTtcbiAgICB9XG5cbiAgICAudWkteGwtMCB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuXG4gICAgLnVpLXhsLTEge1xuICAgICAgICB3aWR0aDogOC4zMzMzMzMzMyU7XG4gICAgfVxuXG4gICAgLnVpLXhsLTIge1xuICAgICAgICB3aWR0aDogMTYuNjY2NjY2NjclO1xuICAgIH1cblxuICAgIC51aS14bC0zIHtcbiAgICAgICAgd2lkdGg6IDI1JTtcbiAgICB9XG5cbiAgICAudWkteGwtNCB7XG4gICAgICAgIHdpZHRoOiAzMy4zMzMzMzMzMyU7XG4gICAgfVxuXG4gICAgLnVpLXhsLTUge1xuICAgICAgICB3aWR0aDogNDEuNjY2NjY2NjclO1xuICAgIH1cblxuICAgIC51aS14bC02IHtcbiAgICAgICAgd2lkdGg6IDUwJTtcbiAgICB9XG5cbiAgICAudWkteGwtNyB7XG4gICAgICAgIHdpZHRoOiA1OC4zMzMzMzMzMyU7XG4gICAgfVxuXG4gICAgLnVpLXhsLTgge1xuICAgICAgICB3aWR0aDogNjYuNjY2NjY2NjclO1xuICAgIH1cblxuICAgIC51aS14bC05IHtcbiAgICAgICAgd2lkdGg6IDc1JTtcbiAgICB9XG5cbiAgICAudWkteGwtMTAge1xuICAgICAgICB3aWR0aDogODMuMzMzMzMzMzMlO1xuICAgIH1cblxuICAgIC51aS14bC0xMSB7XG4gICAgICAgIHdpZHRoOiA5MS42NjY2NjY2NyU7XG4gICAgfVxuXG4gICAgLnVpLXhsLTEyIHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgfVxuXG4gICAgLnVpLXhsLW9mZnNldC0xMiB7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAxMDAlO1xuICAgIH1cblxuICAgIC51aS14bC1vZmZzZXQtMTEge1xuICAgICAgICBtYXJnaW4tbGVmdDogOTEuNjY2NjY2NjclO1xuICAgIH1cblxuICAgIC51aS14bC1vZmZzZXQtMTAge1xuICAgICAgICBtYXJnaW4tbGVmdDogODMuMzMzMzMzMzMlO1xuICAgIH1cblxuICAgIC51aS14bC1vZmZzZXQtOSB7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiA3NSU7XG4gICAgfVxuXG4gICAgLnVpLXhsLW9mZnNldC04IHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDY2LjY2NjY2NjY3JTtcbiAgICB9XG5cbiAgICAudWkteGwtb2Zmc2V0LTcge1xuICAgICAgICBtYXJnaW4tbGVmdDogNTguMzMzMzMzMzMlO1xuICAgIH1cblxuICAgIC51aS14bC1vZmZzZXQtNiB7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiA1MCU7XG4gICAgfVxuXG4gICAgLnVpLXhsLW9mZnNldC01IHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDQxLjY2NjY2NjY3JTtcbiAgICB9XG5cbiAgICAudWkteGwtb2Zmc2V0LTQge1xuICAgICAgICBtYXJnaW4tbGVmdDogMzMuMzMzMzMzMzMlO1xuICAgIH1cblxuICAgIC51aS14bC1vZmZzZXQtMyB7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAyNSU7XG4gICAgfVxuXG4gICAgLnVpLXhsLW9mZnNldC0yIHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDE2LjY2NjY2NjY3JTtcbiAgICB9XG5cbiAgICAudWkteGwtb2Zmc2V0LTEge1xuICAgICAgICBtYXJnaW4tbGVmdDogOC4zMzMzMzMzMyU7XG4gICAgfVxuXG4gICAgLnVpLXhsLW9mZnNldC0wIHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDAlO1xuICAgIH1cbn1cblxuLnVpLWctbm9wYWQge1xuICAgIHBhZGRpbmc6IDA7XG59XG4iLCAiLypcbiAqIEhlbHBlcnMgYW5kIG92ZXJyaWRlcyBvZiB0aGUgYmFzZSBydWxlcyBpbiBiYXNlL2ludGVyYWN0aW9ucy5jc3MgKHZlbmRvciBsYXllcjogZHJhZ2dhYmxlLCByZXNpemFibGUsIHNvcnRhYmxlKS5cbiAqL1xuLypcbiAqIHAtaGlkZGVuLWFjY2Vzc2libGU6IHZpc3VhbGx5IGhpZGRlbiwgYnV0IHN0aWxsIGZvY3VzYWJsZSBhbmQgcmVhZCBieSBzY3JlZW4gcmVhZGVycyAodGhlIG5hdGl2ZSBpbnB1dHMgYmVoaW5kIHRoZVxuICogY2hlY2tib3gsIHJhZGlvLCBzZWxlY3QsIC4uLiBjb21wb25lbnRzKS5cbiAqL1xuLnAtaGlkZGVuLWFjY2Vzc2libGUge1xuICAgIGJvcmRlcjogMDtcbiAgICBjbGlwOiByZWN0KDAgMCAwIDApO1xuICAgIGhlaWdodDogMXB4O1xuICAgIG1hcmdpbjogLTFweDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHdpZHRoOiAxcHg7XG59XG5cbi8qIHA6cmVzaXphYmxlOiB0aGUgcmVzaXplZCBjb250ZW50IGdyb3dzIHdpdGggdGhlIGNvbnRhaW5lci4gSW4gOndoZXJlKCksIHNvIHRoZSBkaXNwbGF5IG9mIGV2ZXJ5IGNvbXBvbmVudCB3aW5zICovXG46d2hlcmUoLnAtcmVzaXphYmxlKSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXG4gICAgPiAucC1jb21wb25lbnQtY29udGVudCB7XG4gICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICB9XG59XG4iLCAiLypcbiAqIFNjcm9sbGJhcnM6IHRoaW4sIHRoZW1lZCBzY3JvbGxiYXJzIGZvciB0aGUgc2Nyb2xsIGNvbnRhaW5lcnMgb2YgdGhlIGNvbXBvbmVudHMgKC0tcC1zY3JvbGxiYXItKiBzZW1hbnRpYyB0b2tlbnMpLlxuICpcbiAqIENvbXBvbmVudCBzY29wZWQgb24gcHVycG9zZSwgbm90IGdsb2JhbDogdGhlIHBhZ2UgYW5kIHRoZSBzY3JvbGwgYXJlYXMgb2YgdGhlIGFwcGxpY2F0aW9uIGtlZXAgdGhlIHNjcm9sbGJhcnMgb2YgdGhlXG4gKiBicm93c2VyIC8gT1MgKGFuIGFwcGxpY2F0aW9uIG9wdHMgaW4gd2l0aCB0aGUgc2FtZSB0d28gZGVjbGFyYXRpb25zIG9uIDpyb290IG9yIGl0cyBvd24gY29udGFpbmVycykuXG4gKiA6d2hlcmUoKSBrZWVwcyB0aGUgc3BlY2lmaWNpdHkgYXQgMCwgc28gYW55IGNvbXBvbmVudCBvciBhcHBsaWNhdGlvbiBydWxlIG92ZXJyaWRlcyBpdC5cbiAqIHNjcm9sbGJhci1jb2xvciBpcyBpbmhlcml0ZWQ6IHNjcm9sbCBhcmVhcyBvZiB0aGUgYXBwbGljYXRpb24gaW5zaWRlIGEgZGlhbG9nIC8gc2lkZWJhciBnZXQgdGhlIHRoZW1lZCBjb2xvcnMgdG9vXG4gKiAobm90IHRoZSB0aGluIHdpZHRoLCB3aGljaCBpcyBub3QgaW5oZXJpdGVkKS4gVGhlIGZvcmNlZCBjb2xvcnMgbW9kZSByZXNldHMgYm90aCB0byB0aGUgc3lzdGVtIHNjcm9sbGJhcnMuXG4gKiBwOnNjcm9sbFBhbmVsIGRyYXdzIGl0cyBvd24gc2Nyb2xsYmFycyAoc2Nyb2xscGFuZWwvc2Nyb2xscGFuZWwvc3JjL3Njcm9sbHBhbmVsLmNzcyksIHRoZSB0YWJWaWV3IG5hdmlnYXRvciBzY3JvbGxzIHdpdGggYnV0dG9ucy5cbiAqL1xuOndoZXJlKFxuICAgIC8qIG92ZXJsYXlzIGFuZCBkcm9wZG93biBsaXN0cyAqL1xuICAgIC5wLWF1dG9jb21wbGV0ZS1wYW5lbCwgLnAtc2VsZWN0b25lbWVudS1pdGVtcy13cmFwcGVyLCAucC1zZWxlY3RjaGVja2JveG1lbnUtaXRlbXMtd3JhcHBlcixcbiAgICAucC1zcGxpdGJ1dHRvbm1lbnUtbGlzdC13cmFwcGVyLCAucC1jb2x1bW50b2dnbGVyLCAucC1tZW51LWR5bmFtaWMtbWF4aGVpZ2h0LCAucC1zbGlkZW1lbnUtY29udGVudCxcbiAgICAvKiBsaXN0cyAqL1xuICAgIC5wLXNlbGVjdGxpc3Rib3gtbGlzdGNvbnRhaW5lciwgLnAtbXVsdGlzZWxlY3RsaXN0Ym94LWxpc3Rjb250YWluZXIsIC5wLXBpY2tsaXN0LWxpc3QsIC5wLW9yZGVybGlzdC1saXN0LFxuICAgIC5wLXRyZWUtY29udGFpbmVyLCAucC1sb2ctY29udGVudCwgLnAtdGVybWluYWwsIHRleHRhcmVhLnAtaW5wdXRmaWVsZCxcbiAgICAvKiBkYXRhICovXG4gICAgLnAtZGF0YXRhYmxlLXRhYmxld3JhcHBlciwgLnAtZGF0YXRhYmxlLXNjcm9sbGFibGUtYm9keSwgLnAtdHJlZXRhYmxlLXNjcm9sbGFibGUtYm9keSxcbiAgICAucC1kYXRhc2Nyb2xsZXItaW5saW5lIC5wLWRhdGFzY3JvbGxlci1jb250ZW50LCAucC1jYXJvdXNlbC1jb250ZW50LFxuICAgIC8qIHBhbmVscywgZGlhbG9ncywgbmF2aWdhdGlvbiAqL1xuICAgIC5wLWRpYWxvZywgLnAtZGlhbG9nLWNvbnRlbnQsIC5wLXNpZGViYXIsIC5wLWFjY29yZGlvbi1jb250ZW50LCAucC1wYW5lbG1lbnUtY29udGVudCwgLnAtdGFibWVudS1uYXZcbikge1xuICAgIHNjcm9sbGJhci13aWR0aDogdmFyKC0tcC1zY3JvbGxiYXItd2lkdGgpO1xuICAgIHNjcm9sbGJhci1jb2xvcjogdmFyKC0tcC1zY3JvbGxiYXItdGh1bWItY29sb3IpIHZhcigtLXAtc2Nyb2xsYmFyLXRyYWNrLWNvbG9yKTtcbn1cbiIsICIvKlxuICogQmFja2Ryb3A6IHRyYW5zbHVjZW50IHByZXNldHMgKEdsYXNzKSBibHVyIGFuZCBzYXR1cmF0ZSB3aGF0IGxpZXMgYmVoaW5kIHRoZSBmbG9hdGluZyBsYXllci4gQWxsIHRva2VucyBhcmUgXCJub25lXCJcbiAqIGluIHRoZSBvdGhlciBwcmVzZXRzLlxuICpcbiAqIE9ubHkgZWxlbWVudHMgdGhhdCBmbG9hdCBvciBmb3JtIGEgYmFyIGdldCBhIGJhY2tkcm9wIGZpbHRlcjogb3ZlcmxheXMgKGRpYWxvZ3MsIG1pbmltaXplZCBkaWFsb2dzIGluIHRoZSBkb2NraW5nXG4gKiB6b25lLCBwb3BvdmVycywgZHJvcGRvd24gcGFuZWxzLCBtZW51cywgdG9vbHRpcHMsIGdyb3dsLCBsb2cpLCB0aGUgdG9vbGJhciBhbmQgYnV0dG9ucy4gQW4gZWxlbWVudCB3aXRoIGEgYmFja2Ryb3AgZmlsdGVyXG4gKiBpcyB0aGUgYmFja2Ryb3Agcm9vdCBvZiBpdHMgZGVzY2VuZGFudHMgKGEgbmVzdGVkIG92ZXJsYXkgd291bGQgb25seSBibHVyIHdoYXQgbGllcyBpbnNpZGUgaXRzIHBhcmVudCksIHNvIG92ZXJsYXlzXG4gKiB3aXRoIG5lc3RlZCBvdmVybGF5cyAobWVudXMgd2l0aCBzdWJtZW51cywgY2FzY2FkZXNlbGVjdCBsaXN0cykgYmx1ciB3aXRoIGEgOjpiZWZvcmUgKHNlZSBiZWxvdykuIENhc2NhZGVTZWxlY3Q6IHRoZVxuICogcm9vdCBwYW5lbCBpcyBvbmx5IHRoZSBhbmNob3IgKG5vIGhlaWdodCwgaXRzIGZpcnN0IGxpc3QgaXMgYWJzb2x1dGVseSBwb3NpdGlvbmVkKSBhbmQgZ2V0cyBubyBmaWx0ZXIuXG4gKiBDb250ZW50IGNvbnRhaW5lcnMgKHBhbmVsLCBjYXJkLCB0YWJsZSkgc3RheSB3aXRob3V0IG9uZTogYSBiYWNrZHJvcCBmaWx0ZXIgbWFrZXMgdGhlIGVsZW1lbnQgdGhlIGNvbnRhaW5pbmcgYmxvY2tcbiAqIG9mIGl0cyBhYnNvbHV0ZWx5IC8gZml4ZWQgcG9zaXRpb25lZCBkZXNjZW5kYW50cyAob3ZlcmxheXMgYXBwZW5kZWQgaW5zaWRlIGl0IHdvdWxkIGJlIHBvc2l0aW9uZWQgd3JvbmcpLCBhbmRcbiAqIHRyYW5zbHVjZW5jeSBiZWxvbmdzIHRvIHRoZSBjb250cm9scyBsYXllciBhYm92ZSB0aGUgY29udGVudCAoQXBwbGUgSElHKS5cbiAqIFplcm8gc3BlY2lmaWNpdHkgKDp3aGVyZSksIHNvIGNvbXBvbmVudCBydWxlcyBhbmQgYXBwbGljYXRpb24gQ1NTIHdpbi5cbiAqL1xuOndoZXJlKC5wLXNpZGViYXIsIC5wLW92ZXJsYXlwYW5lbCwgLnAtY29uZmlybS1wb3B1cCwgLnAtaW5wdXQtb3ZlcmxheTpub3QoLnAtY2FzY2FkZXNlbGVjdC1wYW5lbCksXG4gICAgLnAtc2VsZWN0b25lbWVudS1wYW5lbCwgLnAtc2VsZWN0Y2hlY2tib3htZW51LXBhbmVsLCAucC1hdXRvY29tcGxldGUtcGFuZWwsIC5wLXRvb2x0aXAtdGV4dCwgLnAtZ3Jvd2wtaXRlbS1jb250YWluZXIsXG4gICAgLnAtcGFzc3dvcmQtcGFuZWwsIC5wLWNvbHVtbnRvZ2dsZXIsIC5wLWRpYWxvZy1kb2NrZWQsIC5wLWxvZykge1xuICAgIGJhY2tkcm9wLWZpbHRlcjogdmFyKC0tcC1vdmVybGF5LWJhY2tkcm9wLWZpbHRlcik7XG59XG5cbi8qXG4gKiBkaWFsb2cgYm94IGFuZCB0b29sYmFyOiB0aGUgZmlsdGVyIGlzIG9uIGEgOjpiZWZvcmUgYmVoaW5kIHRoZSBlbGVtZW50LCBub3Qgb24gdGhlIGVsZW1lbnQuIC5wLWRpYWxvZyBpcyB0aGVcbiAqIHRyYW5zcGFyZW50IGZ1bGwgdmlld3BvcnQgY29udGFpbmVyIChhIGZpbHRlciB0aGVyZSBibHVycyB0aGUgd2hvbGUgcGFnZSwgYWxzbyBmb3IgYSBub24tbW9kYWwgZGlhbG9nKSwgYW5kIGEgZmlsdGVyXG4gKiBvbiB0aGUgYm94IG9yIHRoZSB0b29sYmFyIG1ha2VzIGl0IHRoZSBzdGFja2luZyBjb250ZXh0IGFuZCBjb250YWluaW5nIGJsb2NrIG9mIGl0cyBkZXNjZW5kYW50czogdGhlIGRyb3Bkb3ducyBpbnNpZGVcbiAqIGEgdG9vbGJhciB3b3VsZCBiZSBwYWludGVkIHVuZGVyIHRoZSBjb250ZW50IHRoYXQgZm9sbG93cyBpdC5cbiAqIFRvb2xiYXIgb25seSAobm90IG1lbnViYXIgLyBtZWdhbWVudSk6IGFuIGVsZW1lbnQgd2l0aCBhIGJhY2tkcm9wIGZpbHRlciBpcyB0aGUgYmFja2Ryb3Agcm9vdCBvZiBpdHMgZGVzY2VuZGFudHMsIHRoZVxuICogc3VibWVudXMgd291bGQgb25seSBibHVyIHdoYXQgbGllcyBpbnNpZGUgdGhlIGJhci5cbiAqL1xuOndoZXJlKC5wLWRpYWxvZy1ib3gsIC5wLXRvb2xiYXIpOjpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGluc2V0OiAwO1xuICAgIGJvcmRlci1yYWRpdXM6IGluaGVyaXQ7XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG59XG5cbi8qIGJlaGluZCB0aGUgYm94OiB0aGUgZGlhbG9nIGNvbnRhaW5lciBpcyBhIHN0YWNraW5nIGNvbnRleHQgKHotaW5kZXggb2YgdGhlIGNvbXBvbmVudCksIHRoZSBib3ggYmFja2dyb3VuZCBwYWludHMgb3ZlciBpdCAqL1xuOndoZXJlKC5wLWRpYWxvZy1ib3gpOjpiZWZvcmUge1xuICAgIHotaW5kZXg6IC0xO1xuICAgIGJhY2tkcm9wLWZpbHRlcjogdmFyKC0tcC1vdmVybGF5LWJhY2tkcm9wLWZpbHRlcik7XG59XG5cbi8qIG5vIHN0YWNraW5nIGNvbnRleHQgb24gdGhlIHRvb2xiYXI6IHRoZSA6OmJlZm9yZSBjb21lcyBmaXJzdCBpbiB0aGUgcG9zaXRpb25lZCBsYXllciwgdGhlIHBvc2l0aW9uZWQgY2hpbGRyZW4gZm9sbG93ICovXG46d2hlcmUoLnAtdG9vbGJhcikge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cblxuOndoZXJlKC5wLXRvb2xiYXIpID4gKiB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG46d2hlcmUoLnAtdG9vbGJhcik6OmJlZm9yZSB7XG4gICAgYmFja2Ryb3AtZmlsdGVyOiB2YXIoLS1wLW5hdmlnYXRpb24tYmFja2Ryb3AtZmlsdGVyKTtcbn1cblxuLypcbiAqIG1lbnVzIGFuZCBjYXNjYWRlc2VsZWN0IGxpc3RzOiB0aGUgZmlsdGVyIG9uIGEgOjpiZWZvcmUgYmVoaW5kIHRoZSBjb250ZW50LCBhIGZpbHRlciBvbiB0aGUgb3ZlcmxheSBpdHNlbGYgd291bGQgbWFrZVxuICogaXQgdGhlIGJhY2tkcm9wIHJvb3Qgb2YgaXRzIHN1Ym1lbnVzIC8gc3VibGlzdHMgKHRoZXkgd291bGQgb25seSBibHVyIHdoYXQgbGllcyBpbnNpZGUgdGhlaXIgcGFyZW50KS4gVGhlIG92ZXJsYXlcbiAqIG1lbnVzIGFuZCBjb250ZXh0bWVudXMgKC5wLW1lbnUtZHluYW1pYywgei1pbmRleCAxMDAwMDApLCB0aGUgc3VibWVudXMgYW5kIHRoZSBjYXNjYWRlc2VsZWN0IHBhbmVsIGFuZCBzdWJsaXN0cyBhcmUgc3RhY2tpbmcgY29udGV4dHMgKHotaW5kZXggb2YgdGhlXG4gKiBjb21wb25lbnQpLCBzbyB6LWluZGV4IC0xIHN0YXlzIGluc2lkZSB0aGVtLiBOb3QgdGhlIHNsaWRlbWVudSBsaXN0cyAoc2xpZGVzLCBub3QgZmxvYXRpbmcgc3VibWVudXMpIGFuZCBub3QgYVxuICogc2Nyb2xsaW5nIG1lbnUgKG1heEhlaWdodCwgdGhlIDo6YmVmb3JlIHdvdWxkIHNjcm9sbCBhd2F5IHdpdGggdGhlIGNvbnRlbnQsIG5vIHN1Ym1lbnVzKTogZmlsdGVyIG9uIHRoZSBlbGVtZW50LlxuICovXG46d2hlcmUoLnAtbWVudS1keW5hbWljLW1heGhlaWdodCkge1xuICAgIGJhY2tkcm9wLWZpbHRlcjogdmFyKC0tcC1vdmVybGF5LWJhY2tkcm9wLWZpbHRlcik7XG59XG5cbjp3aGVyZSgucC1tZW51LWR5bmFtaWM6bm90KC5wLW1lbnUtZHluYW1pYy1tYXhoZWlnaHQpLCAucC1tZW51LWNoaWxkOm5vdCgucC1zbGlkZW1lbnUgKiksXG4gICAgLnAtY2FzY2FkZXNlbGVjdC1pdGVtcyk6OmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcIjtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgaW5zZXQ6IDA7XG4gICAgei1pbmRleDogLTE7XG4gICAgYm9yZGVyLXJhZGl1czogaW5oZXJpdDtcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICBiYWNrZHJvcC1maWx0ZXI6IHZhcigtLXAtb3ZlcmxheS1iYWNrZHJvcC1maWx0ZXIpO1xufVxuXG46d2hlcmUoLnAtYnV0dG9uKSB7XG4gICAgYmFja2Ryb3AtZmlsdGVyOiB2YXIoLS1wLWJ1dHRvbi1iYWNrZHJvcC1maWx0ZXIpO1xufVxuXG4vKiBtb2RhbCBtYXNrOiBibHVycyB0aGUgcGFnZSBiZWhpbmQgYSBtb2RhbCBkaWFsb2cgLyBzaWRlYmFyIC8gYmxvY2tVSSAqL1xuOndoZXJlKC5wLWNvbXBvbmVudC1vdmVybGF5LCAucC1kaWFsb2ctbWFzaykge1xuICAgIGJhY2tkcm9wLWZpbHRlcjogdmFyKC0tcC1tYXNrLWJhY2tkcm9wLWZpbHRlcik7XG59XG4iLCAiLypcbiAqIEJhZGdlIChzaGFyZWQpOiBwOmJhZGdlIChzdGFuZGFsb25lIGFuZCBhcyB3cmFwcGVyID0gb3ZlcmxheSBiYWRnZSkgYW5kIHRoZSBiYWRnZSBhdHRyaWJ1dGUgb2Ygb3RoZXIgY29tcG9uZW50c1xuICpcbiAqIE1hcmt1cDogc3Bhbi5wLWJhZGdlID4gc3Bhbi5wLWJhZGdlLWljb24/IHNwYW4ucC1iYWRnZS1sYWJlbD8sIHdyYXBwZXIgZGl2LnAtb3ZlcmxheS1iYWRnZVxuICogU3VwcG9ydGVkIGNsYXNzZXM6IHAtYmFkZ2Utc2Vjb25kYXJ5IHwgLXN1Y2Nlc3MgfCAtaW5mbyB8IC13YXJuaW5nIHwgLWRhbmdlciB8IC1oZWxwLFxuICogICAgICAgICAgICAgICAgICAgIHAtYmFkZ2UtbGcsIHAtYmFkZ2UteGwsIHAtYmFkZ2UtZG90LCBwLWJhZGdlLW5vLWd1dHRlciwgcC1zdGF0ZS1oaWRkZW5cbiAqIHN0eWxlQ2xhc3Mgb25seSAodGhlIHNldmVyaXR5IC8gc2l6ZSBhdHRyaWJ1dGVzIGRvIG5vdCBrbm93IHRoZW0pOiBwLWJhZGdlLWNvbnRyYXN0LCBwLWJhZGdlLXNtXG4gKi9cbi5wLWJhZGdlIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGdhcDogdmFyKC0tcC1iYWRnZS1nYXApO1xuICAgIHBhZGRpbmc6IHZhcigtLXAtYmFkZ2UtcGFkZGluZyk7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tcC1iYWRnZS1wcmltYXJ5LWJhY2tncm91bmQpO1xuICAgIGNvbG9yOiB2YXIoLS1wLWJhZGdlLXByaW1hcnktY29sb3IpO1xuICAgIGZvbnQtc2l6ZTogdmFyKC0tcC1iYWRnZS1mb250LXNpemUpO1xuICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1wLWJhZGdlLWZvbnQtd2VpZ2h0KTtcbiAgICBtaW4td2lkdGg6IHZhcigtLXAtYmFkZ2UtbWluLXdpZHRoKTtcbiAgICBoZWlnaHQ6IHZhcigtLXAtYmFkZ2UtaGVpZ2h0KTtcbiAgICBsaW5lLWhlaWdodDogdmFyKC0tcC1iYWRnZS1oZWlnaHQpO1xuICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXAtYmFkZ2UtYm9yZGVyLXJhZGl1cyk7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG5cbiAgICAvKiBiYWRnZSB1c2VkIGFzIHBsYWluIHN0eWxlQ2xhc3MgKGUuZy4gPHNwYW4gY2xhc3M9XCJwLWJhZGdlXCI+KSAqL1xuICAgICY6bm90KC5wLWNvbXBvbmVudCkge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICB9XG5cbiAgICAvKiBhZnRlciA6bm90KC5wLWNvbXBvbmVudCkgKHNhbWUgc3BlY2lmaWNpdHkpICovXG4gICAgJi5wLXN0YXRlLWhpZGRlbiB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuXG4gICAgLyogdGhlIGljb24gZm9sbG93cyB0aGUgYmFkZ2UgZm9udCBzaXplIChsZyAvIHhsKSBpbnN0ZWFkIG9mIHRoZSBnbG9iYWwgaWNvbiBzaXplICovXG4gICAgLnAtYmFkZ2UtaWNvbiB7XG4gICAgICAgIGZvbnQtc2l6ZTogaW5oZXJpdDtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICB9XG5cbiAgICAmLnAtYmFkZ2Utc2Vjb25kYXJ5IHtcbiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tcC1iYWRnZS1zZWNvbmRhcnktYmFja2dyb3VuZCk7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1wLWJhZGdlLXNlY29uZGFyeS1jb2xvcik7XG4gICAgfVxuXG4gICAgJi5wLWJhZGdlLXN1Y2Nlc3Mge1xuICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1wLWJhZGdlLXN1Y2Nlc3MtYmFja2dyb3VuZCk7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1wLWJhZGdlLXN1Y2Nlc3MtY29sb3IpO1xuICAgIH1cblxuICAgICYucC1iYWRnZS1pbmZvIHtcbiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tcC1iYWRnZS1pbmZvLWJhY2tncm91bmQpO1xuICAgICAgICBjb2xvcjogdmFyKC0tcC1iYWRnZS1pbmZvLWNvbG9yKTtcbiAgICB9XG5cbiAgICAmLnAtYmFkZ2Utd2FybmluZyB7XG4gICAgICAgIGJhY2tncm91bmQ6IHZhcigtLXAtYmFkZ2Utd2Fybi1iYWNrZ3JvdW5kKTtcbiAgICAgICAgY29sb3I6IHZhcigtLXAtYmFkZ2Utd2Fybi1jb2xvcik7XG4gICAgfVxuXG4gICAgJi5wLWJhZGdlLWRhbmdlciB7XG4gICAgICAgIGJhY2tncm91bmQ6IHZhcigtLXAtYmFkZ2UtZGFuZ2VyLWJhY2tncm91bmQpO1xuICAgICAgICBjb2xvcjogdmFyKC0tcC1iYWRnZS1kYW5nZXItY29sb3IpO1xuICAgIH1cblxuICAgICYucC1iYWRnZS1oZWxwIHtcbiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tcC1iYWRnZS1oZWxwLWJhY2tncm91bmQpO1xuICAgICAgICBjb2xvcjogdmFyKC0tcC1iYWRnZS1oZWxwLWNvbG9yKTtcbiAgICB9XG5cbiAgICAmLnAtYmFkZ2UtY29udHJhc3Qge1xuICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1wLWJhZGdlLWNvbnRyYXN0LWJhY2tncm91bmQpO1xuICAgICAgICBjb2xvcjogdmFyKC0tcC1iYWRnZS1jb250cmFzdC1jb2xvcik7XG4gICAgfVxuXG4gICAgJi5wLWJhZGdlLXNtIHtcbiAgICAgICAgZm9udC1zaXplOiB2YXIoLS1wLWJhZGdlLXNtLWZvbnQtc2l6ZSk7XG4gICAgICAgIG1pbi13aWR0aDogdmFyKC0tcC1iYWRnZS1zbS1taW4td2lkdGgpO1xuICAgICAgICBoZWlnaHQ6IHZhcigtLXAtYmFkZ2Utc20taGVpZ2h0KTtcbiAgICAgICAgbGluZS1oZWlnaHQ6IHZhcigtLXAtYmFkZ2Utc20taGVpZ2h0KTtcbiAgICB9XG5cbiAgICAmLnAtYmFkZ2UtbGcge1xuICAgICAgICBmb250LXNpemU6IHZhcigtLXAtYmFkZ2UtbGctZm9udC1zaXplKTtcbiAgICAgICAgbWluLXdpZHRoOiB2YXIoLS1wLWJhZGdlLWxnLW1pbi13aWR0aCk7XG4gICAgICAgIGhlaWdodDogdmFyKC0tcC1iYWRnZS1sZy1oZWlnaHQpO1xuICAgICAgICBsaW5lLWhlaWdodDogdmFyKC0tcC1iYWRnZS1sZy1oZWlnaHQpO1xuICAgIH1cblxuICAgICYucC1iYWRnZS14bCB7XG4gICAgICAgIGZvbnQtc2l6ZTogdmFyKC0tcC1iYWRnZS14bC1mb250LXNpemUpO1xuICAgICAgICBtaW4td2lkdGg6IHZhcigtLXAtYmFkZ2UteGwtbWluLXdpZHRoKTtcbiAgICAgICAgaGVpZ2h0OiB2YXIoLS1wLWJhZGdlLXhsLWhlaWdodCk7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiB2YXIoLS1wLWJhZGdlLXhsLWhlaWdodCk7XG4gICAgfVxuXG4gICAgJi5wLWJhZGdlLWRvdCB7XG4gICAgICAgIHdpZHRoOiB2YXIoLS1wLWJhZGdlLWRvdC1zaXplKTtcbiAgICAgICAgbWluLXdpZHRoOiB2YXIoLS1wLWJhZGdlLWRvdC1zaXplKTtcbiAgICAgICAgaGVpZ2h0OiB2YXIoLS1wLWJhZGdlLWRvdC1zaXplKTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgIH1cblxuICAgICYucC1iYWRnZS1uby1ndXR0ZXIge1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgfVxufVxuXG4ucC1vdmVybGF5LWJhZGdlIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgIC5wLWJhZGdlIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSg1MCUsIC01MCUpO1xuICAgICAgICB0cmFuc2Zvcm0tb3JpZ2luOiAxMDAlIDA7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgei1pbmRleDogMTtcbiAgICAgICAgLyogcmluZyBpbiB0aGUgc3Vycm91bmRpbmcgYmFja2dyb3VuZCBjb2xvciBsaWtlIFByaW1lVUlYIG92ZXJsYXliYWRnZSAqL1xuICAgICAgICBvdXRsaW5lOiB2YXIoLS1wLW92ZXJsYXliYWRnZS1vdXRsaW5lLXdpZHRoKSBzb2xpZCB2YXIoLS1wLW92ZXJsYXliYWRnZS1vdXRsaW5lLWNvbG9yKTtcblxuICAgICAgICAmOmRpcihydGwpIHtcbiAgICAgICAgICAgIHJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xuICAgICAgICAgICAgdHJhbnNmb3JtLW9yaWdpbjogMCAwO1xuICAgICAgICB9XG4gICAgfVxufVxuIiwgIi8qXG4gKiBDaGVja2JveCAoc2hhcmVkKTogdGhlIGdlbmVyaWMgLnAtY2hrYm94IHVzZWQgYnkgcDpzZWxlY3RCb29sZWFuQ2hlY2tib3gsIHA6c2VsZWN0TWFueUNoZWNrYm94LCBwOnRyaVN0YXRlQ2hlY2tib3gsXG4gKiByb3cgc2VsZWN0aW9uIG9mIHA6ZGF0YVRhYmxlIC8gcDp0cmVlVGFibGUsIHA6c2VsZWN0Q2hlY2tib3hNZW51LCAuLi5cbiAqXG4gKiBTdXBwb3J0ZWQgY2xhc3NlcyBvbiAucC1jaGtib3gtYm94OiBwLXN0YXRlLWhvdmVyLCBwLXN0YXRlLWZvY3VzLCBwLXN0YXRlLWFjdGl2ZSAoY2hlY2tlZCksXG4gKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcC1zdGF0ZS1lcnJvciAoaW52YWxpZCksIHAtc3RhdGUtZGlzYWJsZWQsIHAtY2hrYm94LXJlYWRvbmx5LFxuICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHAtaW5wdXQtZmlsbGVkIChvbiBhIHBhcmVudCksIHAtc3RhdGUtcmVhZG9ubHkgKG9uIGEgcGFyZW50KVxuICogU2l6ZXM6IHAtY2hrYm94LXNtLCBwLWNoa2JveC1sZyAob24gdGhlIC5wLWNoa2JveCBvciBhIHBhcmVudClcbiAqIEljb25zICgucC1jaGtib3gtaWNvbi5wLWljb24ucC1jaGVja2JveC1pY29uKTogcC1jaGVja2JveC1jaGVja2VkLWljb24sIHAtY2hlY2tib3gtaW5kZXRlcm1pbmF0ZS1pY29uIChwYXJ0aWFsbHkgY2hlY2tlZCksXG4gKiAgICAgICAgcC1jaGVja2JveC1jcm9zc2VkLWljb24gKHRyaSBzdGF0ZSBcImZhbHNlXCIpLCBub25lICh1bmNoZWNrZWQpXG4gKi9cbi5wLWNoa2JveCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICBtYXJnaW46IDA7XG4gICAgd2lkdGg6IGF1dG87XG4gICAgaGVpZ2h0OiBhdXRvO1xuXG4gICAgLnAtY2hrYm94LWJveCB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgd2lkdGg6IHZhcigtLXAtY2hlY2tib3gtd2lkdGgpO1xuICAgICAgICBtaW4td2lkdGg6IHZhcigtLXAtY2hlY2tib3gtd2lkdGgpO1xuICAgICAgICBoZWlnaHQ6IHZhcigtLXAtY2hlY2tib3gtaGVpZ2h0KTtcbiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tcC1jaGVja2JveC1iYWNrZ3JvdW5kKTtcbiAgICAgICAgY29sb3I6IHZhcigtLXAtY2hlY2tib3gtaWNvbi1jb2xvcik7XG4gICAgICAgIGJvcmRlcjogdmFyKC0tcC1jaGVja2JveC1ib3JkZXItd2lkdGgpIHNvbGlkIHZhcigtLXAtY2hlY2tib3gtYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogdmFyKC0tcC1jaGVja2JveC1ib3JkZXItcmFkaXVzKTtcbiAgICAgICAgYm94LXNoYWRvdzogdmFyKC0tcC1jaGVja2JveC1zaGFkb3cpO1xuICAgICAgICBvdXRsaW5lLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCB2YXIoLS1wLWNoZWNrYm94LXRyYW5zaXRpb24tZHVyYXRpb24pLCBib3JkZXItY29sb3IgdmFyKC0tcC1jaGVja2JveC10cmFuc2l0aW9uLWR1cmF0aW9uKSxcbiAgICAgICAgICAgIGJveC1zaGFkb3cgdmFyKC0tcC1jaGVja2JveC10cmFuc2l0aW9uLWR1cmF0aW9uKSwgb3V0bGluZS1jb2xvciB2YXIoLS1wLWNoZWNrYm94LXRyYW5zaXRpb24tZHVyYXRpb24pO1xuXG4gICAgICAgIC8qIHJlYWRvbmx5IChwLXN0YXRlLXJlYWRvbmx5IG9uIHRoZSBib3ggb3IgYSBwYXJlbnQsIHAtY2hrYm94LXJlYWRvbmx5KTogbm8gaG92ZXIgZmVlZGJhY2ssIGFsc28gbm90IGZyb20gdGhlXG4gICAgICAgICAgIHAtc3RhdGUtaG92ZXIgdGhlIGNvbXBvbmVudHMgc2V0IG9uIG1vdXNlZW50ZXIgKi9cbiAgICAgICAgJi5wLXN0YXRlLWhvdmVyOm5vdCgucC1jaGtib3gtcmVhZG9ubHksIC5wLXN0YXRlLXJlYWRvbmx5LCAucC1zdGF0ZS1yZWFkb25seSAqKSxcbiAgICAgICAgJjpub3QoLnAtc3RhdGUtZGlzYWJsZWQsIC5wLWNoa2JveC1yZWFkb25seSwgLnAtc3RhdGUtcmVhZG9ubHksIC5wLXN0YXRlLXJlYWRvbmx5ICopOmhvdmVyIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tcC1jaGVja2JveC1ob3Zlci1ib3JkZXItY29sb3IpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi5wLXN0YXRlLWZvY3VzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tcC1jaGVja2JveC1mb2N1cy1ib3JkZXItY29sb3IpO1xuICAgICAgICAgICAgb3V0bGluZTogdmFyKC0tcC1jaGVja2JveC1mb2N1cy1yaW5nLXdpZHRoKSB2YXIoLS1wLWNoZWNrYm94LWZvY3VzLXJpbmctc3R5bGUpIHZhcigtLXAtY2hlY2tib3gtZm9jdXMtcmluZy1jb2xvcik7XG4gICAgICAgICAgICBvdXRsaW5lLW9mZnNldDogdmFyKC0tcC1jaGVja2JveC1mb2N1cy1yaW5nLW9mZnNldCk7XG4gICAgICAgICAgICBib3gtc2hhZG93OiB2YXIoLS1wLWNoZWNrYm94LWZvY3VzLXJpbmctc2hhZG93KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYucC1zdGF0ZS1hY3RpdmUge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1wLWNoZWNrYm94LWNoZWNrZWQtYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHZhcigtLXAtY2hlY2tib3gtY2hlY2tlZC1iYWNrZ3JvdW5kKTtcbiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1wLWNoZWNrYm94LWljb24tY2hlY2tlZC1jb2xvcik7XG5cbiAgICAgICAgICAgICYucC1zdGF0ZS1ob3Zlcjpub3QoLnAtY2hrYm94LXJlYWRvbmx5LCAucC1zdGF0ZS1yZWFkb25seSwgLnAtc3RhdGUtcmVhZG9ubHkgKiksXG4gICAgICAgICAgICAmOm5vdCgucC1zdGF0ZS1kaXNhYmxlZCwgLnAtY2hrYm94LXJlYWRvbmx5LCAucC1zdGF0ZS1yZWFkb25seSwgLnAtc3RhdGUtcmVhZG9ubHkgKik6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tcC1jaGVja2JveC1jaGVja2VkLWhvdmVyLWJvcmRlci1jb2xvcik7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tcC1jaGVja2JveC1jaGVja2VkLWhvdmVyLWJhY2tncm91bmQpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1wLWNoZWNrYm94LWljb24tY2hlY2tlZC1ob3Zlci1jb2xvcik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYucC1zdGF0ZS1mb2N1cyB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1wLWNoZWNrYm94LWNoZWNrZWQtZm9jdXMtYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC8qIGludmFsaWQ6IHRoZSBib3JkZXIgYWxzbyB3aW5zIG92ZXIgaG92ZXIsIGZvY3VzIGFuZCBjaGVja2VkIChzYW1lIG9yIGhpZ2hlciBzcGVjaWZpY2l0eSwgbGF0ZXIpLCB0aGUgZm9jdXMgcmluZyBzdGF5cyAqL1xuICAgICAgICAmLnAtc3RhdGUtZXJyb3IsXG4gICAgICAgICYucC1zdGF0ZS1lcnJvcjppcyg6aG92ZXIsIC5wLXN0YXRlLWhvdmVyLCAucC1zdGF0ZS1mb2N1cyksXG4gICAgICAgICYucC1zdGF0ZS1lcnJvci5wLXN0YXRlLWFjdGl2ZTppcyg6aG92ZXIsIC5wLXN0YXRlLWhvdmVyLCAucC1zdGF0ZS1mb2N1cykge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1wLWNoZWNrYm94LWludmFsaWQtYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYucC1zdGF0ZS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tcC1jaGVja2JveC1kaXNhYmxlZC1iYWNrZ3JvdW5kKTtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tcC1jaGVja2JveC1jaGVja2VkLWRpc2FibGVkLWJvcmRlci1jb2xvcik7XG4gICAgICAgICAgICBjb2xvcjogdmFyKC0tcC1jaGVja2JveC1pY29uLWRpc2FibGVkLWNvbG9yKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5wLWNoa2JveC1pY29uIHtcbiAgICAgICAgICAgIG92ZXJmbG93OiB2aXNpYmxlO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbGVmdDogNTAlO1xuICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICBmb250LXNpemU6IHZhcigtLXAtY2hlY2tib3gtaWNvbi1zaXplKTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGNhbGMoLTEgKiB2YXIoLS1wLWNoZWNrYm94LWljb24tc2l6ZSkgLyAyKTtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IGNhbGMoLTEgKiB2YXIoLS1wLWNoZWNrYm94LWljb24tc2l6ZSkgLyAyKTtcblxuICAgICAgICAgICAgJi5wLWNoZWNrYm94LWNoZWNrZWQtaWNvbiB7XG4gICAgICAgICAgICAgICAgLS1faWNvbjogdmFyKC0tcC1jaGVja2JveC1jaGVja2VkLWljb24pO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLnAtY2hlY2tib3gtaW5kZXRlcm1pbmF0ZS1pY29uIHtcbiAgICAgICAgICAgICAgICAtLV9pY29uOiB2YXIoLS1wLWNoZWNrYm94LWluZGV0ZXJtaW5hdGUtaWNvbik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYucC1jaGVja2JveC1jcm9zc2VkLWljb24ge1xuICAgICAgICAgICAgICAgIC0tX2ljb246IHZhcigtLXAtY2hlY2tib3gtY3Jvc3NlZC1pY29uKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qIHJlYWRvbmx5ICh0aGUgZGlzYWJsZWQgY3Vyc29yIGNvbWVzIGZyb20gYmFzZS9jb21tb24uY3NzKSAqL1xuICAgIC5wLWNoa2JveC1ib3gucC1jaGtib3gtcmVhZG9ubHksXG4gICAgJi5wLXN0YXRlLXJlYWRvbmx5IC5wLWNoa2JveC1ib3gsXG4gICAgLnAtc3RhdGUtcmVhZG9ubHkgJiAucC1jaGtib3gtYm94IHtcbiAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuICAgIH1cblxuICAgIC5wLWNoa2JveC1sYWJlbCB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIC8qIHRoZSBnYXAgaXMgcGFkZGluZyBvZiB0aGUgbGFiZWw6IGEgY2xpY2sgYmV0d2VlbiBib3ggYW5kIGxhYmVsIHRvZ2dsZXMgdG9vICovXG4gICAgICAgIHBhZGRpbmctaW5saW5lLXN0YXJ0OiB2YXIoLS1wLWNoZWNrYm94LWxhYmVsLWdhcCk7XG4gICAgICAgIG91dGxpbmU6IDAgbm9uZTtcbiAgICAgICAgei1pbmRleDogMTtcblxuICAgICAgICAmLnAtY2hrYm94LXJlYWRvbmx5IHtcbiAgICAgICAgICAgIGN1cnNvcjogZGVmYXVsdDtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLyogZmlsbGVkICovXG4ucC1pbnB1dC1maWxsZWQgLnAtY2hrYm94IC5wLWNoa2JveC1ib3gge1xuICAgIGJhY2tncm91bmQ6IHZhcigtLXAtY2hlY2tib3gtZmlsbGVkLWJhY2tncm91bmQpO1xuXG4gICAgLyogbm8gdG9rZW46IGNoZWNrYm94IGhhcyBubyBmaWxsZWQgaG92ZXIgYmFja2dyb3VuZCwgdXNlIHRoZSBmb3JtIGZpZWxkIG9uZSAqL1xuICAgICYucC1zdGF0ZS1ob3Zlcjpub3QoLnAtY2hrYm94LXJlYWRvbmx5LCAucC1zdGF0ZS1yZWFkb25seSwgLnAtc3RhdGUtcmVhZG9ubHkgKiksXG4gICAgJjpub3QoLnAtc3RhdGUtZGlzYWJsZWQsIC5wLWNoa2JveC1yZWFkb25seSwgLnAtc3RhdGUtcmVhZG9ubHksIC5wLXN0YXRlLXJlYWRvbmx5ICopOmhvdmVyIHtcbiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tcC1mb3JtLWZpZWxkLWZpbGxlZC1ob3Zlci1iYWNrZ3JvdW5kKTtcbiAgICB9XG5cbiAgICAmLnAtc3RhdGUtYWN0aXZlIHtcbiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tcC1jaGVja2JveC1jaGVja2VkLWJhY2tncm91bmQpO1xuXG4gICAgICAgICYucC1zdGF0ZS1ob3Zlcjpub3QoLnAtY2hrYm94LXJlYWRvbmx5LCAucC1zdGF0ZS1yZWFkb25seSwgLnAtc3RhdGUtcmVhZG9ubHkgKiksXG4gICAgICAgICY6bm90KC5wLXN0YXRlLWRpc2FibGVkLCAucC1jaGtib3gtcmVhZG9ubHksIC5wLXN0YXRlLXJlYWRvbmx5LCAucC1zdGF0ZS1yZWFkb25seSAqKTpob3ZlciB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1wLWNoZWNrYm94LWNoZWNrZWQtaG92ZXItYmFja2dyb3VuZCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLnAtc3RhdGUtZGlzYWJsZWQge1xuICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1wLWNoZWNrYm94LWRpc2FibGVkLWJhY2tncm91bmQpO1xuICAgIH1cbn1cblxuLypcbiAqIHNpemVzOiBwLWNoa2JveC1zbSAvIHAtY2hrYm94LWxnIG9uIHRoZSAucC1jaGtib3ggKHA6c2VsZWN0Qm9vbGVhbkNoZWNrYm94IHN0eWxlQ2xhc3MpIG9yIG9uIGFueSBwYXJlbnRcbiAqIChwOnNlbGVjdE1hbnlDaGVja2JveCAvIHA6dHJpU3RhdGVDaGVja2JveCBzdHlsZUNsYXNzLCBhIHdyYXBwZXIpOiB0aGUgc2l6ZSB0b2tlbnMgcmVwbGFjZSB0aGUgYmFzZSBvbmVzXG4gKi9cbi5wLWNoa2JveC1zbSB7XG4gICAgLS1wLWNoZWNrYm94LXdpZHRoOiB2YXIoLS1wLWNoZWNrYm94LXNtLXdpZHRoKTtcbiAgICAtLXAtY2hlY2tib3gtaGVpZ2h0OiB2YXIoLS1wLWNoZWNrYm94LXNtLWhlaWdodCk7XG4gICAgLS1wLWNoZWNrYm94LWljb24tc2l6ZTogdmFyKC0tcC1jaGVja2JveC1pY29uLXNtLXNpemUpO1xufVxuXG4ucC1jaGtib3gtbGcge1xuICAgIC0tcC1jaGVja2JveC13aWR0aDogdmFyKC0tcC1jaGVja2JveC1sZy13aWR0aCk7XG4gICAgLS1wLWNoZWNrYm94LWhlaWdodDogdmFyKC0tcC1jaGVja2JveC1sZy1oZWlnaHQpO1xuICAgIC0tcC1jaGVja2JveC1pY29uLXNpemU6IHZhcigtLXAtY2hlY2tib3gtaWNvbi1sZy1zaXplKTtcbn1cblxuLypcbiAqIGNoZWNrZWQgaW5zaWRlIGEgc2VsZWN0aW9uIChzZWxlY3RlZCByb3cgLyBpdGVtLCBoaWdobGlnaHQgYmFja2dyb3VuZCk6IHRoZSBib3ggY2FuIGhhdmUgdGhlIGNvbG9yIG9mIHRoZSBzZWxlY3Rpb25cbiAqIChOb3JhOiBwcmltYXJ5LCBNZXRhbDogZ3JhcGhpdGUpLCBhIHJpbSBpbiB0aGUgc2VsZWN0aW9uIHRleHQgY29sb3Iga2VlcHMgaXQgdmlzaWJsZS4gVGhlIGRvdWJsZWQgY2xhc3Mgd2lucyBvdmVyIHRoZVxuICogaG92ZXIgLyBmb2N1cyBydWxlcyBhYm92ZS5cbiAqL1xuLnAtc3RhdGUtaGlnaGxpZ2h0IC5wLWNoa2JveCAucC1jaGtib3gtYm94LnAtc3RhdGUtYWN0aXZlLnAtc3RhdGUtYWN0aXZlIHtcbiAgICBib3JkZXItY29sb3I6IHZhcigtLXAtaGlnaGxpZ2h0LWNvbG9yKTtcbn1cblxuLypcbiAqIFN0YXRlIGxheWVyIChNYXRlcmlhbCAzKTogYSBjaXJjbGUgb2YgLS1wLWNoZWNrYm94LXN0YXRlLWxheWVyLXNpemUgYXJvdW5kIHRoZSBib3ggb24gaG92ZXIsIGluIHRoZSBob3ZlciBib3JkZXJcbiAqIGNvbG9yLCBjaGVja2VkIGluIHRoZSBjaGVja2VkIGJvcmRlciBjb2xvciAoLS1wLWNoZWNrYm94LWhvdmVyLXN0YXRlLWxheWVyLW9wYWNpdHksIDAlIGluIHRoZSBwcmVzZXRzIHdpdGhvdXQgaXQpLlxuICogVGhlIHJpcHBsZSBvZiB0aGUgcHJlc3MgZHJhd3MgdGhlIHNhbWUgY2lyY2xlIChyaXBwbGUvcmlwcGxlLmNzcykuIE5vIGZvY3VzIGxheWVyOiB0aGUgY29tcG9uZW50IGZvY3VzZXMgdGhlIGlucHV0IGJ5XG4gKiBzY3JpcHQsIHNvIGl0IHdvdWxkIHN0YXkgYWZ0ZXIgYSBjbGljayAoOmZvY3VzLXZpc2libGUpOyBrZXlib2FyZCBmb2N1cyBoYXMgdGhlIGZvY3VzIHJpbmcuXG4gKi9cbi5wLWNoa2JveCAucC1jaGtib3gtYm94IHtcbiAgICAtLV9sYXllci1jb2xvcjogdmFyKC0tcC1jaGVja2JveC1ob3Zlci1ib3JkZXItY29sb3IpO1xuICAgIC0tX2xheWVyLW9wYWNpdHk6IDAlO1xuXG4gICAgJjo6YmVmb3JlIHtcbiAgICAgICAgY29udGVudDogXCJcIjtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgbGVmdDogNTAlO1xuICAgICAgICB3aWR0aDogdmFyKC0tcC1jaGVja2JveC1zdGF0ZS1sYXllci1zaXplKTtcbiAgICAgICAgaGVpZ2h0OiB2YXIoLS1wLWNoZWNrYm94LXN0YXRlLWxheWVyLXNpemUpO1xuICAgICAgICB0cmFuc2xhdGU6IC01MCUgLTUwJTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgICAgICBiYWNrZ3JvdW5kOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tX2xheWVyLWNvbG9yKSB2YXIoLS1fbGF5ZXItb3BhY2l0eSksIHRyYW5zcGFyZW50KTtcbiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgdmFyKC0tcC1jaGVja2JveC10cmFuc2l0aW9uLWR1cmF0aW9uKTtcbiAgICB9XG5cbiAgICAmLnAtc3RhdGUtYWN0aXZlIHtcbiAgICAgICAgLS1fbGF5ZXItY29sb3I6IHZhcigtLXAtY2hlY2tib3gtY2hlY2tlZC1ib3JkZXItY29sb3IpO1xuICAgIH1cblxuICAgICYucC1zdGF0ZS1ob3Zlcjpub3QoLnAtY2hrYm94LXJlYWRvbmx5LCAucC1zdGF0ZS1yZWFkb25seSwgLnAtc3RhdGUtcmVhZG9ubHkgKiksXG4gICAgJjpub3QoLnAtc3RhdGUtZGlzYWJsZWQsIC5wLWNoa2JveC1yZWFkb25seSwgLnAtc3RhdGUtcmVhZG9ubHksIC5wLXN0YXRlLXJlYWRvbmx5ICopOmhvdmVyIHtcbiAgICAgICAgLS1fbGF5ZXItb3BhY2l0eTogdmFyKC0tcC1jaGVja2JveC1ob3Zlci1zdGF0ZS1sYXllci1vcGFjaXR5KTtcbiAgICB9XG59XG5cbkBtZWRpYSAoZm9yY2VkLWNvbG9yczogYWN0aXZlKSB7XG4gICAgLnAtY2hrYm94IC5wLWNoa2JveC1ib3g6OmJlZm9yZSB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxufVxuIiwgIi8qXG4gKiBJbnB1dEZpZWxkIChzaGFyZWQpOiBldmVyeSAucC1pbnB1dGZpZWxkIChwOmlucHV0VGV4dCwgcDppbnB1dFRleHRhcmVhLCBwOnBhc3N3b3JkLCAuLi4pXG4gKlxuICogU3VwcG9ydGVkIGNsYXNzZXM6IHAtc3RhdGUtaG92ZXIsIHAtc3RhdGUtZm9jdXMsIHAtc3RhdGUtZXJyb3IgKGludmFsaWQpLCBwLXN0YXRlLWRpc2FibGVkLFxuICogICAgICAgICAgICAgICAgICAgIHAtaW5wdXQtZmlsbGVkIChvbiB0aGUgZmllbGQgb3IgYSBwYXJlbnQpLCBwLWlucHV0dGV4dC1zbSwgcC1pbnB1dHRleHQtbGdcbiAqIEFsc286IHBsYWNlaG9sZGVycywgLmZpZWxkIC8gLnAtZmllbGQgc21hbGwucC1zdGF0ZS1lcnJvciwgLnAtZmxvYXQtbGFiZWwgKCsgcC1mbG9hdC1sYWJlbC1pbiAvIHAtZmxvYXQtbGFiZWwtb24pLFxuICogICAgICAgLnAtaW5wdXQtaWNvbi1sZWZ0IC8gLXJpZ2h0LCBwOmlucHV0VGV4dGFyZWEgYXV0b1Jlc2l6ZSwgcDppbnB1dE51bWJlciAvIHA6aW5wdXRNYXNrIChwbGFpbiAucC1pbnB1dGZpZWxkKSxcbiAqICAgICAgIC5wLXNyLW9ubHlcbiAqL1xuXG4vKiBhdXRvZmlsbCBkZXRlY3Rpb24gKGFuaW1hdGlvbnN0YXJ0KSwgc2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9wcmltZWZhY2VzL3ByaW1lZmFjZXMvaXNzdWVzLzEyNDQ0ICovXG5Aa2V5ZnJhbWVzIHBmLWF1dG9maWxsIHtcbiAgICB0byB7XG4gICAgICAgIC8qIGVtcHR5IG9uIHB1cnBvc2UgKi9cbiAgICB9XG59XG5cbmlucHV0Oi13ZWJraXQtYXV0b2ZpbGwge1xuICAgIGFuaW1hdGlvbi1uYW1lOiBwZi1hdXRvZmlsbDtcbiAgICBhbmltYXRpb24tZHVyYXRpb246IDAuMXM7XG4gICAgYW5pbWF0aW9uLWZpbGwtbW9kZTogYm90aDtcbn1cblxuLyogdmlzdWFsbHkgaGlkZGVuLCBzdGlsbCBhdmFpbGFibGUgZm9yIGFzc2lzdGl2ZSB0ZWNobm9sb2d5ICovXG4ucC1zci1vbmx5IHtcbiAgICBib3JkZXI6IDA7XG4gICAgY2xpcDogcmVjdCgxcHgsIDFweCwgMXB4LCAxcHgpO1xuICAgIGNsaXAtcGF0aDogaW5zZXQoNTAlKTtcbiAgICBoZWlnaHQ6IDFweDtcbiAgICBtYXJnaW46IC0xcHg7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBwYWRkaW5nOiAwO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB3aWR0aDogMXB4O1xuICAgIHdvcmQtd3JhcDogbm9ybWFsO1xufVxuXG5pbnB1dDo6cGxhY2Vob2xkZXIsXG50ZXh0YXJlYTo6cGxhY2Vob2xkZXIge1xuICAgIGNvbG9yOiB2YXIoLS1wLWZvcm0tZmllbGQtcGxhY2Vob2xkZXItY29sb3IpO1xuICAgIG9wYWNpdHk6IDE7XG59XG5cbi5wLWlucHV0ZmllbGQge1xuICAgIGZvbnQtZmFtaWx5OiBpbmhlcml0O1xuICAgIGZvbnQtc2l6ZTogdmFyKC0tcC1pbnB1dHRleHQtZm9udC1zaXplKTtcbiAgICBmb250LXdlaWdodDogdmFyKC0tcC1pbnB1dHRleHQtZm9udC13ZWlnaHQpO1xuICAgIGxpbmUtaGVpZ2h0OiB2YXIoLS1wLXR5cG9ncmFwaHktbGluZS1oZWlnaHQpO1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nLWJsb2NrOiB2YXIoLS1wLWlucHV0dGV4dC1wYWRkaW5nLXkpO1xuICAgIHBhZGRpbmctaW5saW5lOiB2YXIoLS1wLWlucHV0dGV4dC1wYWRkaW5nLXgpO1xuICAgIGNvbG9yOiB2YXIoLS1wLWlucHV0dGV4dC1jb2xvcik7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tcC1pbnB1dHRleHQtYmFja2dyb3VuZCk7XG4gICAgLyogdGhlIHN0YXRlcyBzZXQgLS1fYm9yZGVyLWNvbG9yLCB0aGUgZmlsbGVkIHZhcmlhbnQgZHJhd3MgaXRzIGxpbmUgd2l0aCBpdCAqL1xuICAgIC0tX2JvcmRlci1jb2xvcjogdmFyKC0tcC1pbnB1dHRleHQtYm9yZGVyLWNvbG9yKTtcbiAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1fYm9yZGVyLWNvbG9yKTtcbiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1wLWlucHV0dGV4dC1ib3JkZXItcmFkaXVzKTtcbiAgICBib3gtc2hhZG93OiB2YXIoLS1wLWlucHV0dGV4dC1zaGFkb3cpO1xuICAgIG91dGxpbmU6IDAgbm9uZTtcbiAgICBvdXRsaW5lLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICBhcHBlYXJhbmNlOiBub25lO1xuICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgdmFyKC0tcC1pbnB1dHRleHQtdHJhbnNpdGlvbi1kdXJhdGlvbiksIGNvbG9yIHZhcigtLXAtaW5wdXR0ZXh0LXRyYW5zaXRpb24tZHVyYXRpb24pLFxuICAgICAgICBib3JkZXItY29sb3IgdmFyKC0tcC1pbnB1dHRleHQtdHJhbnNpdGlvbi1kdXJhdGlvbiksIG91dGxpbmUtY29sb3IgdmFyKC0tcC1pbnB1dHRleHQtdHJhbnNpdGlvbi1kdXJhdGlvbiksXG4gICAgICAgIGJveC1zaGFkb3cgdmFyKC0tcC1pbnB1dHRleHQtdHJhbnNpdGlvbi1kdXJhdGlvbik7XG5cbiAgICAmOjpwbGFjZWhvbGRlciB7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1wLWlucHV0dGV4dC1wbGFjZWhvbGRlci1jb2xvcik7XG4gICAgfVxuXG4gICAgJjpub3QoOmRpc2FibGVkLCAucC1zdGF0ZS1kaXNhYmxlZCk6aG92ZXIsXG4gICAgJi5wLXN0YXRlLWhvdmVyIHtcbiAgICAgICAgLS1fYm9yZGVyLWNvbG9yOiB2YXIoLS1wLWlucHV0dGV4dC1ob3Zlci1ib3JkZXItY29sb3IpO1xuICAgIH1cblxuICAgICY6bm90KDpkaXNhYmxlZCwgLnAtc3RhdGUtZGlzYWJsZWQpOmZvY3VzLFxuICAgICYucC1zdGF0ZS1mb2N1cyB7XG4gICAgICAgIC0tX2JvcmRlci1jb2xvcjogdmFyKC0tcC1pbnB1dHRleHQtZm9jdXMtYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgb3V0bGluZTogdmFyKC0tcC1pbnB1dHRleHQtZm9jdXMtcmluZy13aWR0aCkgdmFyKC0tcC1pbnB1dHRleHQtZm9jdXMtcmluZy1zdHlsZSkgdmFyKC0tcC1pbnB1dHRleHQtZm9jdXMtcmluZy1jb2xvcik7XG4gICAgICAgIG91dGxpbmUtb2Zmc2V0OiB2YXIoLS1wLWlucHV0dGV4dC1mb2N1cy1yaW5nLW9mZnNldCk7XG4gICAgICAgIGJveC1zaGFkb3c6IHZhcigtLXAtaW5wdXR0ZXh0LWZvY3VzLXJpbmctc2hhZG93KTtcbiAgICB9XG5cbiAgICAvKiBpbnZhbGlkOiB0aGUgYm9yZGVyIGFsc28gd2lucyBvdmVyIGhvdmVyIGFuZCBmb2N1cyAoc2FtZSBzcGVjaWZpY2l0eSwgbGF0ZXIpLCB0aGUgZm9jdXMgcmluZyBzdGF5cyAqL1xuICAgICYucC1zdGF0ZS1lcnJvcixcbiAgICAmLnAtc3RhdGUtZXJyb3I6aXMoOmhvdmVyLCA6Zm9jdXMsIC5wLXN0YXRlLWhvdmVyLCAucC1zdGF0ZS1mb2N1cykge1xuICAgICAgICAtLV9ib3JkZXItY29sb3I6IHZhcigtLXAtaW5wdXR0ZXh0LWludmFsaWQtYm9yZGVyLWNvbG9yKTtcbiAgICB9XG5cbiAgICAmLnAtc3RhdGUtZXJyb3Ige1xuICAgICAgICAmOjpwbGFjZWhvbGRlciB7XG4gICAgICAgICAgICBjb2xvcjogdmFyKC0tcC1pbnB1dHRleHQtaW52YWxpZC1wbGFjZWhvbGRlci1jb2xvcik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiBmaWxsZWQ6IGJvdGggYWx0ZXJuYXRpdmVzIGhhdmUgdGhlIHNhbWUgc3BlY2lmaWNpdHkuIEJvcmRlciBhbmQgZm9jdXMgcmluZyBhcmUgc2hvd24gd2l0aFxuICAgICAgIC0tcC1mb3JtLWZpZWxkLWZpbGxlZC1ib3JkZXItb3BhY2l0eSwgYSBsaW5lIGluIHRoZSBib3JkZXIgY29sb3IgaXMgZHJhd24gYXQgdGhlIGJvdHRvbVxuICAgICAgICgtLXAtZm9ybS1maWVsZC1maWxsZWQtaW5kaWNhdG9yLXdpZHRoLCB0aGlja2VyIG9uIGZvY3VzKTogTWF0ZXJpYWwgMCUgYW5kIGEgbGluZSwgdGhlIE0zIGZpbGxlZCBmaWVsZCAqL1xuICAgIC5wLWlucHV0LWZpbGxlZCAmLFxuICAgICYucC1pbnB1dC1maWxsZWQge1xuICAgICAgICAtLV9saW5lLXdpZHRoOiB2YXIoLS1wLWZvcm0tZmllbGQtZmlsbGVkLWluZGljYXRvci13aWR0aCk7XG4gICAgICAgIC0tX2xpbmU6IGxpbmVhci1ncmFkaWVudCh2YXIoLS1fYm9yZGVyLWNvbG9yKSwgdmFyKC0tX2JvcmRlci1jb2xvcikpIGJvdHRvbSAvIDEwMCUgdmFyKC0tX2xpbmUtd2lkdGgpIG5vLXJlcGVhdFxuICAgICAgICAgICAgYm9yZGVyLWJveDtcbiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tX2xpbmUpLCB2YXIoLS1wLWlucHV0dGV4dC1maWxsZWQtYmFja2dyb3VuZCk7XG4gICAgICAgIGJvcmRlci1jb2xvcjogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLV9ib3JkZXItY29sb3IpIHZhcigtLXAtZm9ybS1maWVsZC1maWxsZWQtYm9yZGVyLW9wYWNpdHkpLCB0cmFuc3BhcmVudCk7XG4gICAgICAgIGJvcmRlci1lbmQtc3RhcnQtcmFkaXVzOiB2YXIoLS1wLWZvcm0tZmllbGQtZmlsbGVkLWJvdHRvbS1ib3JkZXItcmFkaXVzKTtcbiAgICAgICAgYm9yZGVyLWVuZC1lbmQtcmFkaXVzOiB2YXIoLS1wLWZvcm0tZmllbGQtZmlsbGVkLWJvdHRvbS1ib3JkZXItcmFkaXVzKTtcblxuICAgICAgICAmOm5vdCg6ZGlzYWJsZWQsIC5wLXN0YXRlLWRpc2FibGVkKTpob3ZlcixcbiAgICAgICAgJi5wLXN0YXRlLWhvdmVyIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHZhcigtLV9saW5lKSwgdmFyKC0tcC1pbnB1dHRleHQtZmlsbGVkLWhvdmVyLWJhY2tncm91bmQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJjpmb2N1cyxcbiAgICAgICAgJi5wLXN0YXRlLWZvY3VzIHtcbiAgICAgICAgICAgIC0tX2xpbmUtd2lkdGg6IHZhcigtLXAtZm9ybS1maWVsZC1maWxsZWQtZm9jdXMtaW5kaWNhdG9yLXdpZHRoKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHZhcigtLV9saW5lKSwgdmFyKC0tcC1pbnB1dHRleHQtZmlsbGVkLWZvY3VzLWJhY2tncm91bmQpO1xuICAgICAgICAgICAgb3V0bGluZS1jb2xvcjogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLXAtaW5wdXR0ZXh0LWZvY3VzLXJpbmctY29sb3IpIHZhcigtLXAtZm9ybS1maWVsZC1maWxsZWQtYm9yZGVyLW9wYWNpdHkpLFxuICAgICAgICAgICAgICAgIHRyYW5zcGFyZW50KTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6ZGlzYWJsZWQsXG4gICAgICAgICYucC1zdGF0ZS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1fbGluZSksIHZhcigtLXAtaW5wdXR0ZXh0LWRpc2FibGVkLWJhY2tncm91bmQpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyogYWZ0ZXIgZmlsbGVkIChzYW1lIHNwZWNpZmljaXR5KSwgZmlsbGVkIGRpc2FibGVkIGFib3ZlOiB0aGUgZGlzYWJsZWQgYmFja2dyb3VuZCwgbGlrZSBQcmltZVVJWCAqL1xuICAgICY6ZGlzYWJsZWQsXG4gICAgJi5wLXN0YXRlLWRpc2FibGVkIHtcbiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tcC1pbnB1dHRleHQtZGlzYWJsZWQtYmFja2dyb3VuZCk7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1wLWlucHV0dGV4dC1kaXNhYmxlZC1jb2xvcik7XG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgfVxuXG4gICAgJi5wLWlucHV0dGV4dC1zbSB7XG4gICAgICAgIGZvbnQtc2l6ZTogdmFyKC0tcC1pbnB1dHRleHQtc20tZm9udC1zaXplKTtcbiAgICAgICAgcGFkZGluZy1ibG9jazogdmFyKC0tcC1pbnB1dHRleHQtc20tcGFkZGluZy15KTtcbiAgICAgICAgcGFkZGluZy1pbmxpbmU6IHZhcigtLXAtaW5wdXR0ZXh0LXNtLXBhZGRpbmcteCk7XG4gICAgfVxuXG4gICAgJi5wLWlucHV0dGV4dC1sZyB7XG4gICAgICAgIGZvbnQtc2l6ZTogdmFyKC0tcC1pbnB1dHRleHQtbGctZm9udC1zaXplKTtcbiAgICAgICAgcGFkZGluZy1ibG9jazogdmFyKC0tcC1pbnB1dHRleHQtbGctcGFkZGluZy15KTtcbiAgICAgICAgcGFkZGluZy1pbmxpbmU6IHZhcigtLXAtaW5wdXR0ZXh0LWxnLXBhZGRpbmcteCk7XG4gICAgfVxufVxuXG4vKlxuICogcDppbnB1dFRleHRhcmVhOiB0aGUgLnAtaW5wdXRmaWVsZCBydWxlcyBhYm92ZSByZWFkIHRoZSBpbnB1dHRleHQgdG9rZW5zLCBhIHRleHRhcmVhIHBvaW50cyB0aGVtIHRvIGl0cyBvd25cbiAqIHRleHRhcmVhIHRva2VucyAoc2FtZSBkZWZhdWx0cyksIHNvIG92ZXJyaWRpbmcgYSAtLXAtdGV4dGFyZWEtKiB0b2tlbiBzdHlsZXMgZXZlcnkgc3RhdGUgb2YgdGhlIHRleHRhcmVhXG4gKi9cbi5wLWlucHV0dGV4dGFyZWEge1xuICAgIC0tcC1pbnB1dHRleHQtZm9udC1zaXplOiB2YXIoLS1wLXRleHRhcmVhLWZvbnQtc2l6ZSk7XG4gICAgLS1wLWlucHV0dGV4dC1mb250LXdlaWdodDogdmFyKC0tcC10ZXh0YXJlYS1mb250LXdlaWdodCk7XG4gICAgLS1wLWlucHV0dGV4dC1iYWNrZ3JvdW5kOiB2YXIoLS1wLXRleHRhcmVhLWJhY2tncm91bmQpO1xuICAgIC0tcC1pbnB1dHRleHQtZGlzYWJsZWQtYmFja2dyb3VuZDogdmFyKC0tcC10ZXh0YXJlYS1kaXNhYmxlZC1iYWNrZ3JvdW5kKTtcbiAgICAtLXAtaW5wdXR0ZXh0LWZpbGxlZC1iYWNrZ3JvdW5kOiB2YXIoLS1wLXRleHRhcmVhLWZpbGxlZC1iYWNrZ3JvdW5kKTtcbiAgICAtLXAtaW5wdXR0ZXh0LWZpbGxlZC1ob3Zlci1iYWNrZ3JvdW5kOiB2YXIoLS1wLXRleHRhcmVhLWZpbGxlZC1ob3Zlci1iYWNrZ3JvdW5kKTtcbiAgICAtLXAtaW5wdXR0ZXh0LWZpbGxlZC1mb2N1cy1iYWNrZ3JvdW5kOiB2YXIoLS1wLXRleHRhcmVhLWZpbGxlZC1mb2N1cy1iYWNrZ3JvdW5kKTtcbiAgICAtLXAtaW5wdXR0ZXh0LWJvcmRlci1jb2xvcjogdmFyKC0tcC10ZXh0YXJlYS1ib3JkZXItY29sb3IpO1xuICAgIC0tcC1pbnB1dHRleHQtaG92ZXItYm9yZGVyLWNvbG9yOiB2YXIoLS1wLXRleHRhcmVhLWhvdmVyLWJvcmRlci1jb2xvcik7XG4gICAgLS1wLWlucHV0dGV4dC1mb2N1cy1ib3JkZXItY29sb3I6IHZhcigtLXAtdGV4dGFyZWEtZm9jdXMtYm9yZGVyLWNvbG9yKTtcbiAgICAtLXAtaW5wdXR0ZXh0LWludmFsaWQtYm9yZGVyLWNvbG9yOiB2YXIoLS1wLXRleHRhcmVhLWludmFsaWQtYm9yZGVyLWNvbG9yKTtcbiAgICAtLXAtaW5wdXR0ZXh0LWNvbG9yOiB2YXIoLS1wLXRleHRhcmVhLWNvbG9yKTtcbiAgICAtLXAtaW5wdXR0ZXh0LWRpc2FibGVkLWNvbG9yOiB2YXIoLS1wLXRleHRhcmVhLWRpc2FibGVkLWNvbG9yKTtcbiAgICAtLXAtaW5wdXR0ZXh0LXBsYWNlaG9sZGVyLWNvbG9yOiB2YXIoLS1wLXRleHRhcmVhLXBsYWNlaG9sZGVyLWNvbG9yKTtcbiAgICAtLXAtaW5wdXR0ZXh0LWludmFsaWQtcGxhY2Vob2xkZXItY29sb3I6IHZhcigtLXAtdGV4dGFyZWEtaW52YWxpZC1wbGFjZWhvbGRlci1jb2xvcik7XG4gICAgLS1wLWlucHV0dGV4dC1zaGFkb3c6IHZhcigtLXAtdGV4dGFyZWEtc2hhZG93KTtcbiAgICAtLXAtaW5wdXR0ZXh0LXBhZGRpbmcteDogdmFyKC0tcC10ZXh0YXJlYS1wYWRkaW5nLXgpO1xuICAgIC0tcC1pbnB1dHRleHQtcGFkZGluZy15OiB2YXIoLS1wLXRleHRhcmVhLXBhZGRpbmcteSk7XG4gICAgLS1wLWlucHV0dGV4dC1ib3JkZXItcmFkaXVzOiB2YXIoLS1wLXRleHRhcmVhLWJvcmRlci1yYWRpdXMpO1xuICAgIC0tcC1pbnB1dHRleHQtZm9jdXMtcmluZy13aWR0aDogdmFyKC0tcC10ZXh0YXJlYS1mb2N1cy1yaW5nLXdpZHRoKTtcbiAgICAtLXAtaW5wdXR0ZXh0LWZvY3VzLXJpbmctc3R5bGU6IHZhcigtLXAtdGV4dGFyZWEtZm9jdXMtcmluZy1zdHlsZSk7XG4gICAgLS1wLWlucHV0dGV4dC1mb2N1cy1yaW5nLWNvbG9yOiB2YXIoLS1wLXRleHRhcmVhLWZvY3VzLXJpbmctY29sb3IpO1xuICAgIC0tcC1pbnB1dHRleHQtZm9jdXMtcmluZy1vZmZzZXQ6IHZhcigtLXAtdGV4dGFyZWEtZm9jdXMtcmluZy1vZmZzZXQpO1xuICAgIC0tcC1pbnB1dHRleHQtZm9jdXMtcmluZy1zaGFkb3c6IHZhcigtLXAtdGV4dGFyZWEtZm9jdXMtcmluZy1zaGFkb3cpO1xuICAgIC0tcC1pbnB1dHRleHQtdHJhbnNpdGlvbi1kdXJhdGlvbjogdmFyKC0tcC10ZXh0YXJlYS10cmFuc2l0aW9uLWR1cmF0aW9uKTtcbiAgICAtLXAtaW5wdXR0ZXh0LXNtLWZvbnQtc2l6ZTogdmFyKC0tcC10ZXh0YXJlYS1zbS1mb250LXNpemUpO1xuICAgIC0tcC1pbnB1dHRleHQtc20tcGFkZGluZy14OiB2YXIoLS1wLXRleHRhcmVhLXNtLXBhZGRpbmcteCk7XG4gICAgLS1wLWlucHV0dGV4dC1zbS1wYWRkaW5nLXk6IHZhcigtLXAtdGV4dGFyZWEtc20tcGFkZGluZy15KTtcbiAgICAtLXAtaW5wdXR0ZXh0LWxnLWZvbnQtc2l6ZTogdmFyKC0tcC10ZXh0YXJlYS1sZy1mb250LXNpemUpO1xuICAgIC0tcC1pbnB1dHRleHQtbGctcGFkZGluZy14OiB2YXIoLS1wLXRleHRhcmVhLWxnLXBhZGRpbmcteCk7XG4gICAgLS1wLWlucHV0dGV4dC1sZy1wYWRkaW5nLXk6IHZhcigtLXAtdGV4dGFyZWEtbGctcGFkZGluZy15KTtcblxuICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG59XG5cbi8qIHA6aW5wdXRUZXh0YXJlYSBhdXRvUmVzaXplICovXG4ucC1pbnB1dHRleHRhcmVhLXJlc2l6YWJsZSB7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICByZXNpemU6IG5vbmU7XG59XG5cbi8qIHA6aW5wdXROdW1iZXI6IGRpZ2l0cyBvZiBlcXVhbCB3aWR0aCwgdGhlIHZhbHVlIGRvZXMgbm90IGp1bXAgd2hpbGUgdHlwaW5nICovXG4ucC1pbnB1dG51bWJlciA+IC5wLWlucHV0ZmllbGQge1xuICAgIGZvbnQtdmFyaWFudC1udW1lcmljOiB0YWJ1bGFyLW51bXM7XG59XG5cbi8qIGZsdWlkOiBJbnB1dFRleHQsIElucHV0TnVtYmVyLCBJbnB1dFRleHRhcmVhLCBJbnB1dE1hc2sgYW5kIGFueSBvdGhlciAucC1pbnB1dGZpZWxkIChlLmcuIHA6a2V5Ym9hcmQpICovXG4ucC1mbHVpZCB7XG4gICAgLnAtaW5wdXRmaWVsZCxcbiAgICAucC1pbnB1dHRleHQsXG4gICAgLnAtaW5wdXRudW1iZXIsXG4gICAgLnAtaW5wdXR0ZXh0YXJlYSxcbiAgICAucC1pbnB1dG1hc2sge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICB9XG5cbiAgICAucC1pbnB1dHRleHRbc2l6ZV0sXG4gICAgLnAtaW5wdXRmaWVsZFtzaXplXSB7XG4gICAgICAgIHdpZHRoOiBhdXRvO1xuICAgIH1cbn1cblxuLyogdmFsaWRhdGlvbiBtZXNzYWdlIGJlbG93IGEgZmllbGQgKi9cbi5wLWZpZWxkIHNtYWxsLnAtc3RhdGUtZXJyb3IsXG4uZmllbGQgc21hbGwucC1zdGF0ZS1lcnJvciB7XG4gICAgY29sb3I6IHZhcigtLXAtbWVzc2FnZS1lcnJvci1zaW1wbGUtY29sb3IpO1xufVxuXG4ucC1mbG9hdC1sYWJlbCB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgLnAtb3V0cHV0bGFiZWwge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgbWluLWhlaWdodDogMTAwJTtcbiAgICAgICAgbWF4LXdpZHRoOiA5NSU7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIH1cblxuICAgID4gbGFiZWwge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogNTAlO1xuICAgICAgICBsZWZ0OiB2YXIoLS1wLWZsb2F0bGFiZWwtcG9zaXRpb24teCk7XG4gICAgICAgIG1hcmdpbi10b3A6IC0wLjVlbTtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgY29sb3I6IHZhcigtLXAtZmxvYXRsYWJlbC1jb2xvcik7XG4gICAgICAgIGZvbnQtc2l6ZTogdmFyKC0tcC1mbG9hdGxhYmVsLWZvbnQtc2l6ZSk7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1wLWZsb2F0bGFiZWwtZm9udC13ZWlnaHQpO1xuICAgICAgICB0cmFuc2l0aW9uLXByb3BlcnR5OiBhbGw7XG4gICAgICAgIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiB2YXIoLS1wLXRyYW5zaXRpb24tZWFzaW5nKTtcbiAgICAgICAgdHJhbnNpdGlvbi1kdXJhdGlvbjogdmFyKC0tcC1mbG9hdGxhYmVsLXRyYW5zaXRpb24tZHVyYXRpb24pO1xuICAgIH1cblxuICAgID4gbGFiZWwucC1vdXRwdXRsYWJlbC1ydGwge1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogdmFyKC0tcC1mbG9hdGxhYmVsLXBvc2l0aW9uLXgpO1xuICAgIH1cblxuICAgID4gdGV4dGFyZWEgfiBsYWJlbCB7XG4gICAgICAgIHRvcDogdmFyKC0tcC1mbG9hdGxhYmVsLXBvc2l0aW9uLXkpO1xuICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgIH1cblxuICAgID4gaW5wdXQ6Zm9jdXMgfiBsYWJlbCxcbiAgICA+IGlucHV0LnAtc3RhdGUtZmlsbGVkIH4gbGFiZWwsXG4gICAgPiB0ZXh0YXJlYTpmb2N1cyB+IGxhYmVsLFxuICAgID4gdGV4dGFyZWEucC1zdGF0ZS1maWxsZWQgfiBsYWJlbCxcbiAgICA+IC5wLWlucHV0d3JhcHBlci1mb2N1cyB+IGxhYmVsLFxuICAgID4gLnAtc2VsZWN0Y2hlY2tib3htZW51LnAtc3RhdGUtZm9jdXMgfiBsYWJlbCxcbiAgICA+IDp3aGVyZSgucC1zZWxlY3RjaGVja2JveG1lbnU6aGFzKD4gLnAtaGlkZGVuLWFjY2Vzc2libGUgPiBbYXJpYS1leHBhbmRlZD1cInRydWVcIl0pKSB+IGxhYmVsLFxuICAgID4gLnAtaW5wdXR3cmFwcGVyLWZpbGxlZCB+IGxhYmVsLFxuICAgID4gOndoZXJlKC5wLWF1dG9jb21wbGV0ZS1tdWx0aXBsZTpoYXMoLnAtYXV0b2NvbXBsZXRlLXRva2VuKSwgLnAtY2hpcHM6aGFzKC5wLWNoaXBzLXRva2VuKSxcbiAgICAgICAgLnAtc2VsZWN0Y2hlY2tib3htZW51Omhhcyg+IC5wLWhpZGRlbiA+IDpjaGVja2VkKSkgfiBsYWJlbCxcbiAgICA+IGlucHV0Oi13ZWJraXQtYXV0b2ZpbGwgfiBsYWJlbCxcbiAgICA+IHRleHRhcmVhOi13ZWJraXQtYXV0b2ZpbGwgfiBsYWJlbCB7XG4gICAgICAgIHRvcDogdmFyKC0tcC1mbG9hdGxhYmVsLW92ZXItYWN0aXZlLXRvcCk7XG4gICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICAgIGZvbnQtc2l6ZTogdmFyKC0tcC1mbG9hdGxhYmVsLWFjdGl2ZS1mb250LXNpemUpO1xuICAgICAgICBmb250LXdlaWdodDogdmFyKC0tcC1mbG9hdGxhYmVsLWFjdGl2ZS1mb250LXdlaWdodCk7XG4gICAgfVxuXG4gICAgPiBpbnB1dC5wLXN0YXRlLWZpbGxlZCB+IGxhYmVsLFxuICAgID4gdGV4dGFyZWEucC1zdGF0ZS1maWxsZWQgfiBsYWJlbCxcbiAgICA+IC5wLWlucHV0d3JhcHBlci1maWxsZWQgfiBsYWJlbCxcbiAgICA+IDp3aGVyZSgucC1hdXRvY29tcGxldGUtbXVsdGlwbGU6aGFzKC5wLWF1dG9jb21wbGV0ZS10b2tlbiksIC5wLWNoaXBzOmhhcygucC1jaGlwcy10b2tlbiksXG4gICAgICAgIC5wLXNlbGVjdGNoZWNrYm94bWVudTpoYXMoPiAucC1oaWRkZW4gPiA6Y2hlY2tlZCkpIH4gbGFiZWwge1xuICAgICAgICBjb2xvcjogdmFyKC0tcC1mbG9hdGxhYmVsLWFjdGl2ZS1jb2xvcik7XG4gICAgfVxuXG4gICAgPiBpbnB1dDpmb2N1cyB+IGxhYmVsLFxuICAgID4gdGV4dGFyZWE6Zm9jdXMgfiBsYWJlbCxcbiAgICA+IC5wLWlucHV0d3JhcHBlci1mb2N1cyB+IGxhYmVsLFxuICAgID4gLnAtc2VsZWN0Y2hlY2tib3htZW51LnAtc3RhdGUtZm9jdXMgfiBsYWJlbCxcbiAgICA+IDp3aGVyZSgucC1zZWxlY3RjaGVja2JveG1lbnU6aGFzKD4gLnAtaGlkZGVuLWFjY2Vzc2libGUgPiBbYXJpYS1leHBhbmRlZD1cInRydWVcIl0pKSB+IGxhYmVsLFxuICAgID4gaW5wdXQ6LXdlYmtpdC1hdXRvZmlsbCB+IGxhYmVsLFxuICAgID4gdGV4dGFyZWE6LXdlYmtpdC1hdXRvZmlsbCB+IGxhYmVsIHtcbiAgICAgICAgY29sb3I6IHZhcigtLXAtZmxvYXRsYWJlbC1mb2N1cy1jb2xvcik7XG4gICAgfVxuXG4gICAgPiAucC1zdGF0ZS1lcnJvciB+IGxhYmVsLFxuICAgID4gLnAtc3RhdGUtZXJyb3I6aXMoOmZvY3VzLCAucC1pbnB1dHdyYXBwZXItZm9jdXMpIH4gbGFiZWwge1xuICAgICAgICBjb2xvcjogdmFyKC0tcC1mbG9hdGxhYmVsLWludmFsaWQtY29sb3IpO1xuICAgIH1cblxuICAgIC8qXG4gICAgICogdmFyaWFudCBcImluXCIgKFByaW1lVUlYIEZsb2F0TGFiZWwgdmFyaWFudD1cImluXCIgLyBJZnRhTGFiZWwpOiB0aGUgbGFiZWwgc2l0cyBpbnNpZGUgdGhlIGZpZWxkIGF0IHRoZSB0b3AsIHRoZSBmaWVsZFxuICAgICAqIGdldHMgbW9yZSBzcGFjZSBhYm92ZSB0aGUgdGV4dC4gQ29sb3JzIGFuZCB0aGUgYWN0aXZlIGZvbnQgY29tZSBmcm9tIHRoZSBydWxlcyBhYm92ZS5cbiAgICAgKi9cbiAgICAmLnAtZmxvYXQtbGFiZWwtaW4ge1xuICAgICAgICAvKiB0aGUgYm94IG9mIHRoZSBmaWVsZDogcGxhaW4gaW5wdXQgLyB0ZXh0YXJlYSwgb3IgdGhlIGlucHV0IG9mIGEgd3JhcHBlciAocDpwYXNzd29yZCwgcDppbnB1dE51bWJlciwgcDpkYXRlUGlja2VyLCAuLi4pICovXG4gICAgICAgID4gLnAtaW5wdXRmaWVsZCxcbiAgICAgICAgPiAqID4gLnAtaW5wdXRmaWVsZCB7XG4gICAgICAgICAgICBwYWRkaW5nLWJsb2NrLXN0YXJ0OiB2YXIoLS1wLWZsb2F0bGFiZWwtaW4taW5wdXQtcGFkZGluZy10b3ApO1xuICAgICAgICAgICAgcGFkZGluZy1ibG9jay1lbmQ6IHZhcigtLXAtZmxvYXRsYWJlbC1pbi1pbnB1dC1wYWRkaW5nLWJvdHRvbSk7XG4gICAgICAgIH1cblxuICAgICAgICAvKiBjb21wb25lbnRzIHdob3NlIG93biBsYWJlbCAvIGlucHV0IHJ1bGUgaXMgbW9yZSBzcGVjaWZpYyB0aGFuIHRoZSBvbmUgYWJvdmUgKi9cbiAgICAgICAgPiA6aXMoLnAtc2VsZWN0b25lbWVudSwgLnAtY2FzY2FkZXNlbGVjdCwgLnAtYXV0b2NvbXBsZXRlKSA+IC5wLWlucHV0ZmllbGQge1xuICAgICAgICAgICAgcGFkZGluZy1ibG9jay1zdGFydDogdmFyKC0tcC1mbG9hdGxhYmVsLWluLWlucHV0LXBhZGRpbmctdG9wKTtcbiAgICAgICAgICAgIHBhZGRpbmctYmxvY2stZW5kOiB2YXIoLS1wLWZsb2F0bGFiZWwtaW4taW5wdXQtcGFkZGluZy1ib3R0b20pO1xuICAgICAgICB9XG5cbiAgICAgICAgLyogY2hpcHMgY29udGFpbmVyczogaGFsZiBvZiB0aGUgcGFkZGluZyBpcyBvbiB0aGUgY29udGFpbmVyLCB0aGUgb3RoZXIgaGFsZiBvbiB0aGUgY2hpcHMgLyBpbnB1dCB0b2tlbiAqL1xuICAgICAgICA+IC5wLWNoaXBzID4gLnAtY2hpcHMtY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBhZGRpbmctYmxvY2stc3RhcnQ6IGNhbGModmFyKC0tcC1mbG9hdGxhYmVsLWluLWlucHV0LXBhZGRpbmctdG9wKSAtIHZhcigtLXAtaW5wdXRjaGlwcy1wYWRkaW5nLXkpIC8gMik7XG4gICAgICAgICAgICBwYWRkaW5nLWJsb2NrLWVuZDogY2FsYyh2YXIoLS1wLWZsb2F0bGFiZWwtaW4taW5wdXQtcGFkZGluZy1ib3R0b20pIC0gdmFyKC0tcC1pbnB1dGNoaXBzLXBhZGRpbmcteSkgLyAyKTtcbiAgICAgICAgfVxuXG4gICAgICAgID4gLnAtYXV0b2NvbXBsZXRlID4gLnAtYXV0b2NvbXBsZXRlLW11bHRpcGxlLWNvbnRhaW5lciB7XG4gICAgICAgICAgICBwYWRkaW5nLWJsb2NrLXN0YXJ0OiBjYWxjKHZhcigtLXAtZmxvYXRsYWJlbC1pbi1pbnB1dC1wYWRkaW5nLXRvcCkgLSB2YXIoLS1wLWF1dG9jb21wbGV0ZS1wYWRkaW5nLXkpIC8gMik7XG4gICAgICAgICAgICBwYWRkaW5nLWJsb2NrLWVuZDogY2FsYyh2YXIoLS1wLWZsb2F0bGFiZWwtaW4taW5wdXQtcGFkZGluZy1ib3R0b20pIC0gdmFyKC0tcC1hdXRvY29tcGxldGUtcGFkZGluZy15KSAvIDIpO1xuICAgICAgICB9XG5cbiAgICAgICAgLyogc2VsZWN0Q2hlY2tib3hNZW51OiBsYWJlbCBjb250YWluZXIgKHNpbmdsZSksIHRva2VuIGNvbnRhaW5lciBsaWtlIHRoZSBjaGlwcyAobXVsdGlwbGUpICovXG4gICAgICAgID4gLnAtc2VsZWN0Y2hlY2tib3htZW51IC5wLXNlbGVjdGNoZWNrYm94bWVudS1sYWJlbC1jb250YWluZXIge1xuICAgICAgICAgICAgcGFkZGluZy1ibG9jay1zdGFydDogdmFyKC0tcC1mbG9hdGxhYmVsLWluLWlucHV0LXBhZGRpbmctdG9wKTtcbiAgICAgICAgICAgIHBhZGRpbmctYmxvY2stZW5kOiB2YXIoLS1wLWZsb2F0bGFiZWwtaW4taW5wdXQtcGFkZGluZy1ib3R0b20pO1xuICAgICAgICB9XG5cbiAgICAgICAgPiAucC1zZWxlY3RjaGVja2JveG1lbnUgLnAtc2VsZWN0Y2hlY2tib3htZW51LW11bHRpcGxlLWNvbnRhaW5lci5wLWlucHV0ZmllbGQge1xuICAgICAgICAgICAgbWluLWhlaWdodDogY2FsYyh2YXIoLS1wLWZsb2F0bGFiZWwtaW4taW5wdXQtcGFkZGluZy10b3ApICsgdmFyKC0tcC1mbG9hdGxhYmVsLWluLWlucHV0LXBhZGRpbmctYm90dG9tKVxuICAgICAgICAgICAgICAgICsgdmFyKC0tcC10eXBvZ3JhcGh5LWxpbmUtaGVpZ2h0KSAqIHZhcigtLXAtbXVsdGlzZWxlY3QtZm9udC1zaXplKSk7XG4gICAgICAgICAgICBwYWRkaW5nLWJsb2NrLXN0YXJ0OiBjYWxjKHZhcigtLXAtZmxvYXRsYWJlbC1pbi1pbnB1dC1wYWRkaW5nLXRvcCkgLSB2YXIoLS1wLW11bHRpc2VsZWN0LXBhZGRpbmcteSkgLyAyKTtcbiAgICAgICAgICAgIHBhZGRpbmctYmxvY2stZW5kOiBjYWxjKHZhcigtLXAtZmxvYXRsYWJlbC1pbi1pbnB1dC1wYWRkaW5nLWJvdHRvbSkgLSB2YXIoLS1wLW11bHRpc2VsZWN0LXBhZGRpbmcteSkgLyAyKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8qIHRleHRhcmVhOiB0aGUgZW1wdHkgbGFiZWwgc3RheXMgb24gdGhlIGZpcnN0IGxpbmUgKi9cbiAgICAgICAgPiB0ZXh0YXJlYSB+IGxhYmVsIHtcbiAgICAgICAgICAgIHRvcDogdmFyKC0tcC1mbG9hdGxhYmVsLWluLWlucHV0LXBhZGRpbmctdG9wKTtcbiAgICAgICAgfVxuXG4gICAgICAgID4gOmlzKGlucHV0OmZvY3VzLCBpbnB1dC5wLXN0YXRlLWZpbGxlZCwgdGV4dGFyZWE6Zm9jdXMsIHRleHRhcmVhLnAtc3RhdGUtZmlsbGVkLCAucC1pbnB1dHdyYXBwZXItZm9jdXMsXG4gICAgICAgICAgICAucC1zZWxlY3RjaGVja2JveG1lbnUucC1zdGF0ZS1mb2N1cyxcbiAgICAgICAgICAgIDp3aGVyZSgucC1zZWxlY3RjaGVja2JveG1lbnU6aGFzKD4gLnAtaGlkZGVuLWFjY2Vzc2libGUgPiBbYXJpYS1leHBhbmRlZD1cInRydWVcIl0pKSxcbiAgICAgICAgICAgIC5wLWlucHV0d3JhcHBlci1maWxsZWQsIGlucHV0Oi13ZWJraXQtYXV0b2ZpbGwsIHRleHRhcmVhOi13ZWJraXQtYXV0b2ZpbGwsXG4gICAgICAgICAgICA6d2hlcmUoLnAtYXV0b2NvbXBsZXRlLW11bHRpcGxlOmhhcygucC1hdXRvY29tcGxldGUtdG9rZW4pLCAucC1jaGlwczpoYXMoLnAtY2hpcHMtdG9rZW4pLFxuICAgICAgICAgICAgICAgIC5wLXNlbGVjdGNoZWNrYm94bWVudTpoYXMoPiAucC1oaWRkZW4gPiA6Y2hlY2tlZCkpKSB+IGxhYmVsIHtcbiAgICAgICAgICAgIHRvcDogdmFyKC0tcC1mbG9hdGxhYmVsLWluLWFjdGl2ZS10b3ApO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qIHZhcmlhbnQgXCJvblwiIChQcmltZVVJWCBGbG9hdExhYmVsIHZhcmlhbnQ9XCJvblwiKTogdGhlIGFjdGl2ZSBsYWJlbCBzaXRzIG9uIHRoZSB0b3AgYm9yZGVyLCBvbiBhIGJhY2tncm91bmQgKi9cbiAgICAmLnAtZmxvYXQtbGFiZWwtb24ge1xuICAgICAgICA+IDppcyhpbnB1dDpmb2N1cywgaW5wdXQucC1zdGF0ZS1maWxsZWQsIHRleHRhcmVhOmZvY3VzLCB0ZXh0YXJlYS5wLXN0YXRlLWZpbGxlZCwgLnAtaW5wdXR3cmFwcGVyLWZvY3VzLFxuICAgICAgICAgICAgLnAtc2VsZWN0Y2hlY2tib3htZW51LnAtc3RhdGUtZm9jdXMsXG4gICAgICAgICAgICA6d2hlcmUoLnAtc2VsZWN0Y2hlY2tib3htZW51Omhhcyg+IC5wLWhpZGRlbi1hY2Nlc3NpYmxlID4gW2FyaWEtZXhwYW5kZWQ9XCJ0cnVlXCJdKSksXG4gICAgICAgICAgICAucC1pbnB1dHdyYXBwZXItZmlsbGVkLCBpbnB1dDotd2Via2l0LWF1dG9maWxsLCB0ZXh0YXJlYTotd2Via2l0LWF1dG9maWxsLFxuICAgICAgICAgICAgOndoZXJlKC5wLWF1dG9jb21wbGV0ZS1tdWx0aXBsZTpoYXMoLnAtYXV0b2NvbXBsZXRlLXRva2VuKSwgLnAtY2hpcHM6aGFzKC5wLWNoaXBzLXRva2VuKSxcbiAgICAgICAgICAgICAgICAucC1zZWxlY3RjaGVja2JveG1lbnU6aGFzKD4gLnAtaGlkZGVuID4gOmNoZWNrZWQpKSkgfiBsYWJlbCB7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAvKiAucC1vdXRwdXRsYWJlbCBzcGFucyB0aGUgZmllbGQgaGVpZ2h0IChtaW4taGVpZ2h0OiAxMDAlKTsgb24gdGhlIGJvcmRlciBvbmx5IHRoZSB0ZXh0IGdldHMgdGhlIGJhY2tncm91bmQgKi9cbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDA7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgICAgICAgdHJhbnNsYXRlOiAwIC01MCU7XG4gICAgICAgICAgICBwYWRkaW5nOiB2YXIoLS1wLWZsb2F0bGFiZWwtb24tYWN0aXZlLXBhZGRpbmcpO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tcC1mbG9hdGxhYmVsLW9uLWFjdGl2ZS1iYWNrZ3JvdW5kKTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXAtZmxvYXRsYWJlbC1vbi1ib3JkZXItcmFkaXVzKTtcbiAgICAgICAgICAgIHotaW5kZXg6IDE7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi8qXG4gKiBmaWVsZHMgd2l0aCBhIHRyaWdnZXIgYnV0dG9uIG5leHQgdG8gdGhlIGlucHV0IChwOmF1dG9Db21wbGV0ZSBkcm9wZG93biwgcDpkYXRlUGlja2VyIHNob3dJY29uKTogdGhlIGZvY3VzXG4gKiByaW5nIGVuY2xvc2VzIGlucHV0IGFuZCBidXR0b24sIGxpa2UgYSBmaWVsZCB3aXRoIHRoZSBpY29uIGluc2lkZSAocGFzc3dvcmQsIGNvbG9yUGlja2VyKTsgdGhlIGlucHV0IGtlZXBzIGl0cyBmb2N1c1xuICogYm9yZGVyLiBUaGUgLS1wLWlucHV0dGV4dC0qIHRva2VucyBhcmUgdGhlIG9uZXMgb2YgdGhlIGNvbXBvbmVudCAoYXV0b2NvbXBsZXRlLmNzcyByZW1hcHMgdGhlbSkuXG4gKi9cbi5wLWF1dG9jb21wbGV0ZS5wLWF1dG9jb21wbGV0ZS1kZCxcbi5wLWNhbGVuZGFyLnAtdHJpZ2dlci1jYWxlbmRhciB7XG4gICAgYm9yZGVyLXJhZGl1czogdmFyKC0tcC1pbnB1dHRleHQtYm9yZGVyLXJhZGl1cyk7XG4gICAgLyogdGhlIHJpbmcgZm9sbG93cyB0aGUgd3JhcHBlcjogaXQgd3JhcHMgaW5wdXQgYW5kIGJ1dHRvbiwgYWxzbyBhcyBhIHN0cmV0Y2hlZCBmbGV4IC8gZ3JpZCBpdGVtICovXG4gICAgd2lkdGg6IGZpdC1jb250ZW50O1xuICAgIG1heC13aWR0aDogMTAwJTtcblxuICAgIC5wLWZsdWlkICYge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICB9XG5cbiAgICAmOmhhcyg+IC5wLWlucHV0ZmllbGQ6bm90KDpkaXNhYmxlZCwgLnAtc3RhdGUtZGlzYWJsZWQpOmlzKDpmb2N1cy13aXRoaW4sIC5wLXN0YXRlLWZvY3VzKSkge1xuICAgICAgICBvdXRsaW5lOiB2YXIoLS1wLWlucHV0dGV4dC1mb2N1cy1yaW5nLXdpZHRoKSB2YXIoLS1wLWlucHV0dGV4dC1mb2N1cy1yaW5nLXN0eWxlKSB2YXIoLS1wLWlucHV0dGV4dC1mb2N1cy1yaW5nLWNvbG9yKTtcbiAgICAgICAgb3V0bGluZS1vZmZzZXQ6IHZhcigtLXAtaW5wdXR0ZXh0LWZvY3VzLXJpbmctb2Zmc2V0KTtcbiAgICAgICAgYm94LXNoYWRvdzogdmFyKC0tcC1pbnB1dHRleHQtZm9jdXMtcmluZy1zaGFkb3cpO1xuXG4gICAgICAgID4gLnAtaW5wdXRmaWVsZCB7XG4gICAgICAgICAgICBvdXRsaW5lOiAwIG5vbmU7XG4gICAgICAgICAgICBib3gtc2hhZG93OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgLyogZmlsbGVkOiB0aGUgcmluZyBsaWtlIHRoZSBvbmUgb2YgYSBmaWxsZWQgaW5wdXQgKGFib3ZlKSAqL1xuICAgICAgICAucC1pbnB1dC1maWxsZWQgJiB7XG4gICAgICAgICAgICBvdXRsaW5lLWNvbG9yOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tcC1pbnB1dHRleHQtZm9jdXMtcmluZy1jb2xvcikgdmFyKC0tcC1mb3JtLWZpZWxkLWZpbGxlZC1ib3JkZXItb3BhY2l0eSksXG4gICAgICAgICAgICAgICAgdHJhbnNwYXJlbnQpO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4vKiBpbnB1dCB3aXRoIGljb24gKi9cbi5wLWlucHV0LWljb24tbGVmdCxcbi5wLWlucHV0LWljb24tcmlnaHQge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgLyogdGhlIGljb24gaXMgcG9zaXRpb25lZCBhdCB0aGUgZWRnZSBvZiB0aGUgd3JhcHBlcjogaXQgd3JhcHMgaXRzIGlucHV0LCBhbHNvIGFzIGEgc3RyZXRjaGVkIGZsZXggLyBncmlkIGl0ZW0gKi9cbiAgICB3aWR0aDogZml0LWNvbnRlbnQ7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuXG4gICAgLnAtZmx1aWQgJiB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB3aWR0aDogYXV0bztcbiAgICB9XG5cbiAgICA+IGkge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogNTAlO1xuICAgICAgICBtYXJnaW4tdG9wOiBjYWxjKC0xICogdmFyKC0tcC1pY29uLXNpemUpIC8gMik7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgICAgICB6LWluZGV4OiAxO1xuICAgIH1cbn1cblxuLypcbiAqIHBoeXNpY2FsIHNpZGVzIG9uIHB1cnBvc2U6IHRoZSBjbGFzcyBuYW1lcyB0aGUgc2lkZSwgdGhlIHJlbmRlcmVycyBzd2FwIHRoZSBjbGFzcyBmb3IgUlRMIChwOnBhc3N3b3JkIHRvZ2dsZU1hc2spLFxuICogYW5kIGRpcj1cInJ0bFwiIGlzIG9mdGVuIG9ubHkgd3JpdHRlbiBvbiB0aGUgaW5wdXQsIHNvIGxvZ2ljYWwgc2lkZXMgb2YgdGhlIHdyYXBwZXIgLyBpY29uIHdvdWxkIHJlc29sdmUgTFRSXG4gKi9cbi5wLWlucHV0LWljb24tbGVmdCB7XG4gICAgPiBpOmZpcnN0LW9mLXR5cGUge1xuICAgICAgICBsZWZ0OiB2YXIoLS1wLWZvcm0tZmllbGQtcGFkZGluZy14KTtcbiAgICAgICAgY29sb3I6IHZhcigtLXAtaWNvbmZpZWxkLWljb24tY29sb3IpO1xuICAgIH1cblxuICAgID4gLnAtaW5wdXRmaWVsZCB7XG4gICAgICAgIHBhZGRpbmctbGVmdDogY2FsYyh2YXIoLS1wLWZvcm0tZmllbGQtcGFkZGluZy14KSAqIDIgKyB2YXIoLS1wLWljb24tc2l6ZSkpO1xuICAgIH1cbn1cblxuLnAtaW5wdXQtaWNvbi1yaWdodCB7XG4gICAgPiBpOmxhc3Qtb2YtdHlwZSB7XG4gICAgICAgIHJpZ2h0OiB2YXIoLS1wLWZvcm0tZmllbGQtcGFkZGluZy14KTtcbiAgICAgICAgY29sb3I6IHZhcigtLXAtaWNvbmZpZWxkLWljb24tY29sb3IpO1xuICAgIH1cblxuICAgID4gLnAtaW5wdXRmaWVsZCB7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IGNhbGModmFyKC0tcC1mb3JtLWZpZWxkLXBhZGRpbmcteCkgKiAyICsgdmFyKC0tcC1pY29uLXNpemUpKTtcbiAgICB9XG59XG4iLCAiLypcbiAqIElucHV0R3JvdXAgKHNoYXJlZCk6IC5wLWlucHV0Z3JvdXAgd2l0aCAucC1pbnB1dGdyb3VwLWFkZG9uIC8gLnAtaW5wdXRncm91cC1hZGRvbi1jaGVja2JveFxuICpcbiAqIE9ubHkgdGhlIG91dGVyIGNvcm5lcnMgYXJlIHJvdW5kZWQsIGlubmVyIGJvcmRlcnMgYXJlIHNxdWFyZSBhbmQgY29sbGFwc2VkOyBhIGZvY3VzZWQgaW5wdXQgaXMgbGlmdGVkIGFib3ZlIGl0c1xuICogbmVpZ2hib3Vycy4gQWRkb25zIG1heSBjb250YWluIHRleHQsIGljb25zLCBidXR0b25zIG9yIGEgcDpzZWxlY3RCb29sZWFuQ2hlY2tib3ggLyBwOnNlbGVjdE9uZVJhZGlvLlxuICovXG4ucC1pbnB1dGdyb3VwIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBzdHJldGNoO1xuICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgLnAtaW5wdXRncm91cC1hZGRvbiArIC5wLWlucHV0Z3JvdXAtYWRkb24ge1xuICAgICAgICBib3JkZXItaW5saW5lLXN0YXJ0OiAwIG5vbmU7XG4gICAgfVxuXG4gICAgPiAucC1wYXNzd29yZDpub3QoLnAtaW5wdXRmaWVsZCkge1xuICAgICAgICBwYWRkaW5nLWlubGluZS1zdGFydDogMDtcbiAgICB9XG5cbiAgICAvKiBpbm5lciBib3JkZXJzOiBjb2xsYXBzZSB0aGUgYm9yZGVyIGJldHdlZW4gdHdvIG5laWdoYm91cnMgKi9cbiAgICA+IC5wLWlucHV0dGV4dDpub3QoOmZpcnN0LWNoaWxkKSxcbiAgICA+IC5wLWlucHV0dGV4dGFyZWE6bm90KDpmaXJzdC1jaGlsZCksXG4gICAgPiAucC1wYXNzd29yZDpub3QoOmZpcnN0LWNoaWxkKSxcbiAgICA+IC5wLXBhc3N3b3JkOm5vdCg6Zmlyc3QtY2hpbGQpID4gLnAtaW5wdXRmaWVsZCxcbiAgICA+IC5wLWlucHV0bnVtYmVyOm5vdCg6Zmlyc3QtY2hpbGQpID4gLnAtaW5wdXR0ZXh0LFxuICAgID4gLnAtaW5wdXRtYXNrOm5vdCg6Zmlyc3QtY2hpbGQpLFxuICAgID4gLnAtY2FsZW5kYXI6bm90KDpmaXJzdC1jaGlsZCkgPiAucC1pbnB1dGZpZWxkLFxuICAgID4gLnAtY2hpcHM6bm90KDpmaXJzdC1jaGlsZCkgPiAucC1jaGlwcy1jb250YWluZXIsXG4gICAgPiAucC1zZWxlY3RvbmVtZW51Om5vdCg6Zmlyc3QtY2hpbGQpLFxuICAgID4gLnAtc2VsZWN0b25lYnV0dG9uOm5vdCg6Zmlyc3QtY2hpbGQpID4gLnAtYnV0dG9uLFxuICAgID4gLnAtYXV0b2NvbXBsZXRlOm5vdCg6Zmlyc3QtY2hpbGQpID4gLnAtYXV0b2NvbXBsZXRlLWlucHV0LFxuICAgID4gLnAtc3Bpbm5lcjpub3QoOmZpcnN0LWNoaWxkKSxcbiAgICA+IC5wLXNwaW5uZXI6bm90KDpmaXJzdC1jaGlsZCkgPiAucC1zcGlubmVyLWlucHV0IHtcbiAgICAgICAgYm9yZGVyLXN0YXJ0LXN0YXJ0LXJhZGl1czogMDtcbiAgICAgICAgYm9yZGVyLWVuZC1zdGFydC1yYWRpdXM6IDA7XG4gICAgICAgIGJvcmRlci1pbmxpbmUtc3RhcnQ6IDAgbm9uZTtcbiAgICB9XG5cbiAgICA+IC5wLWlucHV0dGV4dDpub3QoOmxhc3QtY2hpbGQpLFxuICAgID4gLnAtaW5wdXR0ZXh0YXJlYTpub3QoOmxhc3QtY2hpbGQpLFxuICAgID4gLnAtcGFzc3dvcmQ6bm90KDpsYXN0LWNoaWxkKSxcbiAgICA+IC5wLXBhc3N3b3JkOm5vdCg6bGFzdC1jaGlsZCkgPiAucC1pbnB1dGZpZWxkLFxuICAgID4gLnAtaW5wdXRudW1iZXI6bm90KDpsYXN0LWNoaWxkKSA+IC5wLWlucHV0dGV4dCxcbiAgICA+IC5wLWlucHV0bWFzazpub3QoOmxhc3QtY2hpbGQpLFxuICAgID4gLnAtc2VsZWN0b25lbWVudTpub3QoOmxhc3QtY2hpbGQpLFxuICAgID4gLnAtY2FsZW5kYXI6bm90KDpsYXN0LWNoaWxkKSA+IC5wLWlucHV0ZmllbGQsXG4gICAgPiAucC1jaGlwczpub3QoOmxhc3QtY2hpbGQpID4gLnAtY2hpcHMtY29udGFpbmVyLFxuICAgID4gLnAtc2VsZWN0b25lYnV0dG9uOm5vdCg6bGFzdC1jaGlsZCkgPiAucC1idXR0b24sXG4gICAgPiAucC1hdXRvY29tcGxldGU6bm90KDpsYXN0LWNoaWxkKSA+IC5wLWF1dG9jb21wbGV0ZS1pbnB1dCxcbiAgICA+IC5wLXNwaW5uZXI6bm90KDpsYXN0LWNoaWxkKSxcbiAgICA+IC5wLXNwaW5uZXI6bm90KDpsYXN0LWNoaWxkKSA+IC5wLXNwaW5uZXItaW5wdXQsXG4gICAgPiAucC1zcGlubmVyOm5vdCg6bGFzdC1jaGlsZCkgPiAucC1zcGlubmVyLWJ1dHRvbiB7XG4gICAgICAgIGJvcmRlci1zdGFydC1lbmQtcmFkaXVzOiAwO1xuICAgICAgICBib3JkZXItZW5kLWVuZC1yYWRpdXM6IDA7XG4gICAgICAgIGJvcmRlci1pbmxpbmUtZW5kOiAwIG5vbmU7XG4gICAgfVxuXG4gICAgLyogdGhlIHRyYWlsaW5nIGJ1dHRvbnMgb2YgY29tcG9zaXRlIGZpZWxkczogdGhlaXIgb3duIHJ1bGVzIChhdXRvY29tcGxldGUuY3NzLCBzcGlubmVyLmNzcywgZGF0ZXBpY2tlci5jc3MpIGFyZVxuICAgICAgIGJ1bmRsZWQgbGF0ZXIgb3Igc3Ryb25nZXIsIHNvIHRoZXNlIG5lZWQgdGhlIGhpZ2hlciBzcGVjaWZpY2l0eSAqL1xuICAgID4gLnAtYXV0b2NvbXBsZXRlOm5vdCg6bGFzdC1jaGlsZCkgPiAucC1hdXRvY29tcGxldGUtZHJvcGRvd24ucC1idXR0b24sXG4gICAgPiAucC1jYWxlbmRhcjpub3QoOmxhc3QtY2hpbGQpID4gLnAtYnV0dG9uLnAtYnV0dG9uLWljb24tb25seSxcbiAgICA+IC5wLXNwaW5uZXIucC1zcGlubmVyLWhvcml6b250YWw6bm90KDpsYXN0LWNoaWxkKSA+IC5wLXNwaW5uZXItYnV0dG9uLnAtc3Bpbm5lci11cCB7XG4gICAgICAgIGJvcmRlci1zdGFydC1lbmQtcmFkaXVzOiAwO1xuICAgICAgICBib3JkZXItZW5kLWVuZC1yYWRpdXM6IDA7XG4gICAgfVxuXG4gICAgLnAtYnV0dG9uIHtcbiAgICAgICAgbWFyZ2luLWlubGluZS1lbmQ6IDA7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgfVxuXG4gICAgLyogaW5wdXRzIGdyb3csIGFkZG9ucyBhbmQgYnV0dG9ucyBrZWVwIHRoZWlyIHNpemUgKi9cbiAgICA+IC5wLWlucHV0ZmllbGQsXG4gICAgPiAucC1pbnB1dHdyYXBwZXIsXG4gICAgPiAucC1pbnB1dG51bWJlcixcbiAgICA+IC5wLWF1dG9jb21wbGV0ZSxcbiAgICA+IC5wLWNoaXBzLFxuICAgID4gLnAtc3Bpbm5lcixcbiAgICA+IC5wLWZsb2F0LWxhYmVsIHtcbiAgICAgICAgZmxleDogMSAxIGF1dG87XG4gICAgICAgIHdpZHRoOiAxJTtcbiAgICB9XG5cbiAgICA+IC5wLWlucHV0d3JhcHBlciA+IC5wLWlucHV0ZmllbGQsXG4gICAgPiAucC1pbnB1dG51bWJlciA+IC5wLWlucHV0ZmllbGQsXG4gICAgPiAucC1hdXRvY29tcGxldGUgPiAucC1pbnB1dGZpZWxkLFxuICAgID4gLnAtZmxvYXQtbGFiZWwgPiAucC1pbnB1dGZpZWxkIHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgfVxuXG4gICAgPiAucC1idXR0b24sXG4gICAgLnAtaW5wdXRncm91cC1hZGRvbixcbiAgICAucC1pbnB1dGdyb3VwLWFkZG9uLWNoZWNrYm94IHtcbiAgICAgICAgZmxleDogMCAwIGF1dG87XG4gICAgfVxuXG4gICAgLnAtZmx1aWQgJiB7XG4gICAgICAgIC5wLWJ1dHRvbiB7XG4gICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgIC5wLWJ1dHRvbi1pY29uLW9ubHkge1xuICAgICAgICAgICAgd2lkdGg6IHZhcigtLXAtYnV0dG9uLWljb24tb25seS13aWR0aCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAucC1pbnB1dGdyb3VwLWFkZG9uLFxuICAgIC5wLWlucHV0Z3JvdXAtYWRkb24tY2hlY2tib3gge1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGJvcmRlci13aWR0aDogMXB4O1xuICAgICAgICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIHBhZGRpbmc6IHZhcigtLXAtaW5wdXRncm91cC1hZGRvbi1wYWRkaW5nKTtcbiAgICAgICAgbWluLXdpZHRoOiB2YXIoLS1wLWlucHV0Z3JvdXAtYWRkb24tbWluLXdpZHRoKTtcbiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tcC1pbnB1dGdyb3VwLWFkZG9uLWJhY2tncm91bmQpO1xuICAgICAgICBjb2xvcjogdmFyKC0tcC1pbnB1dGdyb3VwLWFkZG9uLWNvbG9yKTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1wLWlucHV0Z3JvdXAtYWRkb24tYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZm9udC1zaXplOiB2YXIoLS1wLWlucHV0Z3JvdXAtYWRkb24tZm9udC1zaXplKTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IHZhcigtLXAtaW5wdXRncm91cC1hZGRvbi1mb250LXdlaWdodCk7XG5cbiAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICBib3JkZXItc3RhcnQtc3RhcnQtcmFkaXVzOiB2YXIoLS1wLWlucHV0Z3JvdXAtYWRkb24tYm9yZGVyLXJhZGl1cyk7XG4gICAgICAgICAgICBib3JkZXItZW5kLXN0YXJ0LXJhZGl1czogdmFyKC0tcC1pbnB1dGdyb3VwLWFkZG9uLWJvcmRlci1yYWRpdXMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgIGJvcmRlci1zdGFydC1lbmQtcmFkaXVzOiB2YXIoLS1wLWlucHV0Z3JvdXAtYWRkb24tYm9yZGVyLXJhZGl1cyk7XG4gICAgICAgICAgICBib3JkZXItZW5kLWVuZC1yYWRpdXM6IHZhcigtLXAtaW5wdXRncm91cC1hZGRvbi1ib3JkZXItcmFkaXVzKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgID4gLnAtY29tcG9uZW50LFxuICAgID4gLnAtZmxvYXQtbGFiZWwgPiAucC1jb21wb25lbnQge1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgIH1cblxuICAgIC8qIG91dGVyIGNvcm5lcnMgb2YgY29tcG9uZW50cyB0aGF0IGFyZSBub3QgYSBwbGFpbiBpbnB1dCAvIGJ1dHRvbiAocDpzZWxlY3RPbmVNZW51LCBwOnNlbGVjdENoZWNrYm94TWVudSwgLi4uKSwgbGlrZSBQcmltZVVJWCAqL1xuICAgID4gLnAtY29tcG9uZW50OmZpcnN0LWNoaWxkLFxuICAgID4gLnAtZmxvYXQtbGFiZWw6Zmlyc3QtY2hpbGQgPiAucC1jb21wb25lbnQge1xuICAgICAgICBib3JkZXItc3RhcnQtc3RhcnQtcmFkaXVzOiB2YXIoLS1wLWlucHV0Z3JvdXAtYWRkb24tYm9yZGVyLXJhZGl1cyk7XG4gICAgICAgIGJvcmRlci1lbmQtc3RhcnQtcmFkaXVzOiB2YXIoLS1wLWlucHV0Z3JvdXAtYWRkb24tYm9yZGVyLXJhZGl1cyk7XG4gICAgfVxuXG4gICAgPiAucC1jb21wb25lbnQ6bGFzdC1jaGlsZCxcbiAgICA+IC5wLWZsb2F0LWxhYmVsOmxhc3QtY2hpbGQgPiAucC1jb21wb25lbnQge1xuICAgICAgICBib3JkZXItc3RhcnQtZW5kLXJhZGl1czogdmFyKC0tcC1pbnB1dGdyb3VwLWFkZG9uLWJvcmRlci1yYWRpdXMpO1xuICAgICAgICBib3JkZXItZW5kLWVuZC1yYWRpdXM6IHZhcigtLXAtaW5wdXRncm91cC1hZGRvbi1ib3JkZXItcmFkaXVzKTtcbiAgICB9XG5cbiAgICBidXR0b246Zmlyc3QtY2hpbGQsXG4gICAgaW5wdXQ6Zmlyc3QtY2hpbGQsXG4gICAgdGV4dGFyZWE6Zmlyc3QtY2hpbGQge1xuICAgICAgICBib3JkZXItc3RhcnQtc3RhcnQtcmFkaXVzOiB2YXIoLS1wLWlucHV0Z3JvdXAtYWRkb24tYm9yZGVyLXJhZGl1cyk7XG4gICAgICAgIGJvcmRlci1lbmQtc3RhcnQtcmFkaXVzOiB2YXIoLS1wLWlucHV0Z3JvdXAtYWRkb24tYm9yZGVyLXJhZGl1cyk7XG4gICAgfVxuXG4gICAgLnAtZmxvYXQtbGFiZWw6Zmlyc3QtY2hpbGQge1xuICAgICAgICBpbnB1dCxcbiAgICAgICAgdGV4dGFyZWEge1xuICAgICAgICAgICAgYm9yZGVyLWlubGluZS1lbmQtd2lkdGg6IDA7XG4gICAgICAgICAgICBib3JkZXItc3RhcnQtc3RhcnQtcmFkaXVzOiB2YXIoLS1wLWlucHV0Z3JvdXAtYWRkb24tYm9yZGVyLXJhZGl1cyk7XG4gICAgICAgICAgICBib3JkZXItZW5kLXN0YXJ0LXJhZGl1czogdmFyKC0tcC1pbnB1dGdyb3VwLWFkZG9uLWJvcmRlci1yYWRpdXMpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgYnV0dG9uOmxhc3QtY2hpbGQsXG4gICAgaW5wdXQ6bGFzdC1jaGlsZCxcbiAgICB0ZXh0YXJlYTpsYXN0LWNoaWxkIHtcbiAgICAgICAgYm9yZGVyLXN0YXJ0LWVuZC1yYWRpdXM6IHZhcigtLXAtaW5wdXRncm91cC1hZGRvbi1ib3JkZXItcmFkaXVzKTtcbiAgICAgICAgYm9yZGVyLWVuZC1lbmQtcmFkaXVzOiB2YXIoLS1wLWlucHV0Z3JvdXAtYWRkb24tYm9yZGVyLXJhZGl1cyk7XG4gICAgfVxuXG4gICAgLnAtZmxvYXQtbGFiZWw6bGFzdC1jaGlsZCB7XG4gICAgICAgIGlucHV0LFxuICAgICAgICB0ZXh0YXJlYSB7XG4gICAgICAgICAgICBib3JkZXItaW5saW5lLXN0YXJ0LXdpZHRoOiAwO1xuICAgICAgICAgICAgYm9yZGVyLXN0YXJ0LWVuZC1yYWRpdXM6IHZhcigtLXAtaW5wdXRncm91cC1hZGRvbi1ib3JkZXItcmFkaXVzKTtcbiAgICAgICAgICAgIGJvcmRlci1lbmQtZW5kLXJhZGl1czogdmFyKC0tcC1pbnB1dGdyb3VwLWFkZG9uLWJvcmRlci1yYWRpdXMpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgPiAucC1jb21wb25lbnQucC1zdGF0ZS1mb2N1cyxcbiAgICA+IC5wLWNvbXBvbmVudDpmb2N1cyxcbiAgICA+IC5wLWZsb2F0LWxhYmVsID4gLnAtY29tcG9uZW50LnAtc3RhdGUtZm9jdXMsXG4gICAgPiAucC1mbG9hdC1sYWJlbCA+IC5wLWNvbXBvbmVudDpmb2N1cyB7XG4gICAgICAgIHotaW5kZXg6IDE7XG4gICAgfVxuXG4gICAgPiAucC1jb21wb25lbnQucC1zdGF0ZS1mb2N1cyB+IGxhYmVsLFxuICAgID4gLnAtY29tcG9uZW50OmZvY3VzIH4gbGFiZWwsXG4gICAgPiAucC1mbG9hdC1sYWJlbCA+IC5wLWNvbXBvbmVudC5wLXN0YXRlLWZvY3VzIH4gbGFiZWwsXG4gICAgPiAucC1mbG9hdC1sYWJlbCA+IC5wLWNvbXBvbmVudDpmb2N1cyB+IGxhYmVsIHtcbiAgICAgICAgei1pbmRleDogMTtcbiAgICB9XG5cbiAgICAvKiBjaGVja2JveCAvIHJhZGlvIGFkZG9uOiB0aGUgY29udHJvbCBpcyBjZW50ZXJlZCBpbiB0aGUgYWRkb24gYm94ICovXG4gICAgLnAtaW5wdXRncm91cC1hZGRvbi1jaGVja2JveCB7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAucC1jaGtib3gge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICBpbnNldC1pbmxpbmUtc3RhcnQ6IDUwJTtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IGNhbGMoLTEgKiB2YXIoLS1wLWNoZWNrYm94LWhlaWdodCkgLyAyKTtcbiAgICAgICAgICAgIG1hcmdpbi1pbmxpbmUtc3RhcnQ6IGNhbGMoLTEgKiB2YXIoLS1wLWNoZWNrYm94LXdpZHRoKSAvIDIpO1xuICAgICAgICB9XG5cbiAgICAgICAgLnAtcmFkaW9idXR0b24ge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICBpbnNldC1pbmxpbmUtc3RhcnQ6IDUwJTtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IGNhbGMoLTEgKiB2YXIoLS1wLXJhZGlvYnV0dG9uLWhlaWdodCkgLyAyKTtcbiAgICAgICAgICAgIG1hcmdpbi1pbmxpbmUtc3RhcnQ6IGNhbGMoLTEgKiB2YXIoLS1wLXJhZGlvYnV0dG9uLXdpZHRoKSAvIDIpO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4vKiBmaWxsZWQgKGZvcm1zL2lucHV0ZmllbGQuY3NzKTogdGhlIGFkZG9ucyBsaWtlIHRoZSBmaWVsZHMgKGZpbGxlZCBiYWNrZ3JvdW5kLCBmcmFtZSB3aXRoXG4gICAtLXAtZm9ybS1maWVsZC1maWxsZWQtYm9yZGVyLW9wYWNpdHksIHRoZSBib3R0b20gYm9yZGVyIGFzIGxpbmUpIGFuZCB0aGUgYm90dG9tIGNvcm5lcnMgb2YgdGhlIG91dGVyIHBhcnRzICovXG4ucC1pbnB1dC1maWxsZWQgLnAtaW5wdXRncm91cCB7XG4gICAgLnAtaW5wdXRncm91cC1hZGRvbixcbiAgICAucC1pbnB1dGdyb3VwLWFkZG9uLWNoZWNrYm94IHtcbiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tcC1pbnB1dGdyb3VwLWFkZG9uLWZpbGxlZC1iYWNrZ3JvdW5kKTtcbiAgICAgICAgYm9yZGVyLWJsb2NrLXN0YXJ0LWNvbG9yOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tcC1pbnB1dGdyb3VwLWFkZG9uLWJvcmRlci1jb2xvcikgdmFyKC0tcC1mb3JtLWZpZWxkLWZpbGxlZC1ib3JkZXItb3BhY2l0eSksXG4gICAgICAgICAgICB0cmFuc3BhcmVudCk7XG4gICAgICAgIGJvcmRlci1pbmxpbmUtY29sb3I6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1wLWlucHV0Z3JvdXAtYWRkb24tYm9yZGVyLWNvbG9yKSB2YXIoLS1wLWZvcm0tZmllbGQtZmlsbGVkLWJvcmRlci1vcGFjaXR5KSxcbiAgICAgICAgICAgIHRyYW5zcGFyZW50KTtcbiAgICB9XG5cbiAgICA+IDpmaXJzdC1jaGlsZCxcbiAgICA+IDpmaXJzdC1jaGlsZCA+IDppcygucC1pbnB1dGZpZWxkLCAucC1jb21wb25lbnQsIGlucHV0LCB0ZXh0YXJlYSk6Zmlyc3QtY2hpbGQge1xuICAgICAgICBib3JkZXItZW5kLXN0YXJ0LXJhZGl1czogdmFyKC0tcC1mb3JtLWZpZWxkLWZpbGxlZC1ib3R0b20tYm9yZGVyLXJhZGl1cyk7XG4gICAgfVxuXG4gICAgPiA6bGFzdC1jaGlsZCxcbiAgICA+IDpsYXN0LWNoaWxkID4gOmlzKC5wLWlucHV0ZmllbGQsIC5wLWNvbXBvbmVudCwgaW5wdXQsIHRleHRhcmVhKTpsYXN0LWNoaWxkIHtcbiAgICAgICAgYm9yZGVyLWVuZC1lbmQtcmFkaXVzOiB2YXIoLS1wLWZvcm0tZmllbGQtZmlsbGVkLWJvdHRvbS1ib3JkZXItcmFkaXVzKTtcbiAgICB9XG59XG4iLCAiLypcbiAqIE1lbnUgZmFtaWx5IChzaGFyZWQgcGFydCk6IHA6bWVudSwgcDptZW51YmFyLCBwOm1lZ2FNZW51LCBwOnRpZXJlZE1lbnUsIHA6c2xpZGVNZW51LCBwOmNvbnRleHRNZW51LCBwOm1lbnVCdXR0b25cbiAqIChhbmQgdGhlIHA6c3BsaXRCdXR0b24gbWVudSkuIFRoZXkgYWxsIHNoYXJlIC5wLW1lbnUsIC5wLW1lbnUtbGlzdCwgLnAtbWVudWl0ZW0sIC5wLW1lbnVpdGVtLWxpbmsgbWFya3VwLlxuICogVGhpcyBmaWxlIHN0eWxlcyB0aGF0IGNvbW1vbiBtYXJrdXA7IHRoZSB0YWcgc3BlY2lmaWMgcnVsZXMgYXJlIGluIG1lbnUvbWVudS5jc3MgKHA6bWVudSB0b2dnbGVhYmxlKSxcbiAqIG1lZ2FtZW51LmNzcywgc2xpZGVtZW51LmNzcywgdGllcmVkbWVudS5jc3MgYW5kIGNvbnRleHRtZW51LmNzcyAoYnVuZGxlZCBhZnRlciB0aGlzIGZpbGUpLlxuICogVGhlIC5wLW1lbnViYXIgcnVsZXMgc3RheSBoZXJlIHRvbzogcDptZWdhTWVudSBhbHNvIHJlbmRlcnMgLnAtbWVudWJhciwgc28gdGhleSBzdHlsZSBib3RoIHA6bWVudWJhciBhbmQgcDptZWdhTWVudVxuICogYW5kIG11c3QgY29tZSBiZWZvcmUgbWVnYW1lbnUuY3NzIChzbyBwOm1lbnViYXIgaGFzIG5vIGZpbGUgb2YgaXRzIG93biBpbiBjb21wb25lbnRzLykuXG4gKlxuICogVGhlIGNvbXBvbmVudCBjbGFzc2VzIG9ubHkgc3dpdGNoIHRoZSBwcml2YXRlIC0tXyogdmFyaWFibGVzLCB0aGUgdmlzdWFsIHJ1bGVzIGV4aXN0IG9uY2U6XG4gKiAgIC5wLW1lbnUgKG1lbnUsIHNsaWRlbWVudSwgbWVudWJ1dHRvbikgLT4gbWVudSB0b2tlbnNcbiAqICAgLnAtdGllcmVkbWVudSAtPiB0aWVyZWRtZW51LCAucC1jb250ZXh0bWVudSAtPiBjb250ZXh0bWVudSwgLnAtbWVudWJhciAtPiBtZW51YmFyLCAucC1tZWdhbWVudSAtPiBtZWdhbWVudVxuICogU3RhdGUgY2xhc3NlcyBzZXQgYnkgdGhlIGNvbXBvbmVudHM6IHAtc3RhdGUtaG92ZXIgLyBwLXN0YXRlLWZvY3VzIChrZXlib2FyZCArIG1vdXNlKSwgcC1tZW51aXRlbS1hY3RpdmUgKG9wZW4gc3VibWVudSkuXG4gKi9cbi5wLW1lbnUge1xuICAgIC0tX2JnOiB2YXIoLS1wLW1lbnUtYmFja2dyb3VuZCk7XG4gICAgLS1fYm9yZGVyLWNvbG9yOiB2YXIoLS1wLW1lbnUtYm9yZGVyLWNvbG9yKTtcbiAgICAtLV9ib3JkZXItcmFkaXVzOiB2YXIoLS1wLW1lbnUtYm9yZGVyLXJhZGl1cyk7XG4gICAgLS1fY29sb3I6IHZhcigtLXAtbWVudS1jb2xvcik7XG4gICAgLS1fc2hhZG93OiB2YXIoLS1wLW1lbnUtc2hhZG93KTtcbiAgICAtLV9saXN0LXBhZGRpbmc6IHZhcigtLXAtbWVudS1saXN0LXBhZGRpbmcpO1xuICAgIC0tX2xpc3QtZ2FwOiB2YXIoLS1wLW1lbnUtbGlzdC1nYXApO1xuICAgIC0tX3RyYW5zaXRpb24tZHVyYXRpb246IHZhcigtLXAtbWVudS10cmFuc2l0aW9uLWR1cmF0aW9uKTtcbiAgICAtLV9pdGVtLWJvcmRlci1yYWRpdXM6IHZhcigtLXAtbWVudS1pdGVtLWJvcmRlci1yYWRpdXMpO1xuICAgIC0tX2l0ZW0tcGFkZGluZzogdmFyKC0tcC1tZW51LWl0ZW0tcGFkZGluZyk7XG4gICAgLS1faXRlbS1nYXA6IHZhcigtLXAtbWVudS1pdGVtLWdhcCk7XG4gICAgLS1faXRlbS1jb2xvcjogdmFyKC0tcC1tZW51LWl0ZW0tY29sb3IpO1xuICAgIC0tX2l0ZW0tZm9jdXMtYmFja2dyb3VuZDogdmFyKC0tcC1tZW51LWl0ZW0tZm9jdXMtYmFja2dyb3VuZCk7XG4gICAgLS1faXRlbS1mb2N1cy1jb2xvcjogdmFyKC0tcC1tZW51LWl0ZW0tZm9jdXMtY29sb3IpO1xuICAgIC0tX2l0ZW0tYWN0aXZlLWJhY2tncm91bmQ6IHZhcigtLXAtbWVudS1pdGVtLWZvY3VzLWJhY2tncm91bmQpO1xuICAgIC0tX2l0ZW0tYWN0aXZlLWNvbG9yOiB2YXIoLS1wLW1lbnUtaXRlbS1mb2N1cy1jb2xvcik7XG4gICAgLS1faXRlbS1pY29uLWNvbG9yOiB2YXIoLS1wLW1lbnUtaXRlbS1pY29uLWNvbG9yKTtcbiAgICAtLV9pdGVtLWljb24tZm9jdXMtY29sb3I6IHZhcigtLXAtbWVudS1pdGVtLWljb24tZm9jdXMtY29sb3IpO1xuICAgIC0tX2l0ZW0taWNvbi1hY3RpdmUtY29sb3I6IHZhcigtLXAtbWVudS1pdGVtLWljb24tZm9jdXMtY29sb3IpO1xuICAgIC0tX2l0ZW0taWNvbi1zaXplOiB2YXIoLS1wLW1lbnUtaXRlbS1pY29uLXNpemUpO1xuICAgIC0tX2l0ZW0tbGFiZWwtZm9udC1zaXplOiB2YXIoLS1wLW1lbnUtaXRlbS1sYWJlbC1mb250LXNpemUpO1xuICAgIC0tX2l0ZW0tbGFiZWwtZm9udC13ZWlnaHQ6IHZhcigtLXAtbWVudS1pdGVtLWxhYmVsLWZvbnQtd2VpZ2h0KTtcbiAgICAtLV9zdWJtZW51LWljb24tY29sb3I6IHZhcigtLXAtbWVudS1zdWJtZW51LWljb24tY29sb3IpO1xuICAgIC0tX3N1Ym1lbnUtaWNvbi1mb2N1cy1jb2xvcjogdmFyKC0tcC1tZW51LXN1Ym1lbnUtaWNvbi1mb2N1cy1jb2xvcik7XG4gICAgLS1fc3VibWVudS1pY29uLXNpemU6IHZhcigtLXAtbWVudS1zdWJtZW51LWljb24tc2l6ZSk7XG4gICAgLS1fc3VibWVudS1pY29uLWFjdGl2ZS1jb2xvcjogdmFyKC0tcC1tZW51LWl0ZW0taWNvbi1mb2N1cy1jb2xvcik7XG4gICAgLS1fc2VwYXJhdG9yLWJvcmRlci1jb2xvcjogdmFyKC0tcC1tZW51LXNlcGFyYXRvci1ib3JkZXItY29sb3IpO1xuICAgIC0tX3N1Ym1lbnUtbGFiZWwtYmFja2dyb3VuZDogdmFyKC0tcC1tZW51LXN1Ym1lbnUtbGFiZWwtYmFja2dyb3VuZCk7XG4gICAgLS1fc3VibWVudS1sYWJlbC1jb2xvcjogdmFyKC0tcC1tZW51LXN1Ym1lbnUtbGFiZWwtY29sb3IpO1xuICAgIC0tX3N1Ym1lbnUtbGFiZWwtZm9udC1zaXplOiB2YXIoLS1wLW1lbnUtc3VibWVudS1sYWJlbC1mb250LXNpemUpO1xuICAgIC0tX3N1Ym1lbnUtbGFiZWwtZm9udC13ZWlnaHQ6IHZhcigtLXAtbWVudS1zdWJtZW51LWxhYmVsLWZvbnQtd2VpZ2h0KTtcbiAgICAtLV9zdWJtZW51LWxhYmVsLXBhZGRpbmc6IHZhcigtLXAtbWVudS1zdWJtZW51LWxhYmVsLXBhZGRpbmcpO1xuICAgIC8qIG92ZXJsYXkgc3VibWVudXMgKC5wLW1lbnUtY2hpbGQpICovXG4gICAgLS1fc3VibWVudS1iYWNrZ3JvdW5kOiB2YXIoLS1wLW1lbnUtYmFja2dyb3VuZCk7XG4gICAgLS1fc3VibWVudS1ib3JkZXItY29sb3I6IHZhcigtLXAtbWVudS1ib3JkZXItY29sb3IpO1xuICAgIC0tX3N1Ym1lbnUtYm9yZGVyLXJhZGl1czogdmFyKC0tcC1tZW51LWJvcmRlci1yYWRpdXMpO1xuICAgIC0tX3N1Ym1lbnUtcGFkZGluZzogdmFyKC0tcC1tZW51LWxpc3QtcGFkZGluZyk7XG4gICAgLS1fc3VibWVudS1zaGFkb3c6IHZhcigtLXAtbWVudS1zaGFkb3cpO1xuICAgIC8qIGhvcml6b250YWwgbWVudXMgKG1lbnViYXIsIG1lZ2FtZW51KSAqL1xuICAgIC0tX3BhZGRpbmc6IHZhcigtLXAtbWVudWJhci1wYWRkaW5nKTtcbiAgICAtLV9nYXA6IHZhcigtLXAtbWVudWJhci1nYXApO1xuICAgIC0tX2Jhc2UtaXRlbS1wYWRkaW5nOiB2YXIoLS1wLW1lbnViYXItYmFzZS1pdGVtLXBhZGRpbmcpO1xuICAgIC0tX2Jhc2UtaXRlbS1ib3JkZXItcmFkaXVzOiB2YXIoLS1wLW1lbnViYXItYmFzZS1pdGVtLWJvcmRlci1yYWRpdXMpO1xuXG4gICAgLyogZml0LWNvbnRlbnQ6IGEgc3RhdGljIG1lbnUgZG9lcyBub3Qgc3RyZXRjaCB0byB0aGUgZnVsbCByb3cgKi9cbiAgICB3aWR0aDogZml0LWNvbnRlbnQ7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIG91dGxpbmU6IDAgbm9uZTtcbiAgICBwYWRkaW5nOiAwO1xuICAgIGJhY2tncm91bmQ6IHZhcigtLV9iZyk7XG4gICAgY29sb3I6IHZhcigtLV9jb2xvcik7XG4gICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tX2JvcmRlci1jb2xvcik7XG4gICAgYm9yZGVyLXJhZGl1czogdmFyKC0tX2JvcmRlci1yYWRpdXMpO1xuXG4gICAgLyogUHJpbWVVSVggbWluLXdpZHRoLCBvbmx5IHdpdGhvdXQgYW4gaW5saW5lIHdpZHRoIChzdHlsZT1cIndpZHRoOiAuLi5cIiBvciB0aGUgd2lkdGggdGhlIHNsaWRlbWVudSBjb21wb25lbnQgd3JpdGVzKSAqL1xuICAgICY6bm90KC5wLW1lbnViYXIpOm5vdChbc3R5bGUqPVwid2lkdGhcIl0pIHtcbiAgICAgICAgbWluLXdpZHRoOiAxMi41cmVtO1xuICAgIH1cblxuICAgIC8qIG92ZXJsYXkgbWVudXMgKi9cbiAgICAmLnAtbWVudS1keW5hbWljIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB6LWluZGV4OiAxMDAwMDA7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLV9ib3JkZXItY29sb3IpO1xuICAgICAgICBib3gtc2hhZG93OiB2YXIoLS1fc2hhZG93KTtcbiAgICB9XG5cbiAgICAmLnAtbWVudS1keW5hbWljLW1heGhlaWdodCB7XG4gICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgfVxuXG4gICAgLnAtbWVudS1saXN0IC5wLWNvbXBvbmVudC1oZWFkZXIge1xuICAgICAgICBjbGVhcjogYm90aDtcbiAgICB9XG5cbiAgICAucC1tZW51aXRlbSB7XG4gICAgICAgIGNsZWFyOiBib3RoO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgIH1cblxuICAgIC5wLW1lbnVpdGVtLWxpbmsge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBvdXRsaW5lOiBub25lO1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB9XG5cbiAgICAucC1tZW51aXRlbS1saW5rIC5wLW1lbnVpdGVtLWljb24sXG4gICAgLnAtc3VibWVudS1pY29uIHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIH1cblxuICAgIC5wLWNvbXBvbmVudC1oZWFkZXIge1xuICAgICAgICBoMSxcbiAgICAgICAgaDIsXG4gICAgICAgIGgzLFxuICAgICAgICBoNCxcbiAgICAgICAgaDUsXG4gICAgICAgIGg2IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLnAtbWVudS1wYXJlbnQge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgLyogbWluLXdpZHRoIG9ubHkgd2l0aG91dCBhbiBpbmxpbmUgd2lkdGggKHRoZSBzbGlkZW1lbnUgY29tcG9uZW50IHdyaXRlcyBvbmUgb24gaXRzIGxpc3RzKSAqL1xuICAgICAgICAucC1tZW51LWNoaWxkIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgIG91dGxpbmU6IDA7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICBmb250LXNpemU6IDEwMCU7XG4gICAgICAgICAgICBsaXN0LXN0eWxlOiBub25lO1xuXG4gICAgICAgICAgICAmOm5vdChbc3R5bGUqPVwid2lkdGhcIl0pIHtcbiAgICAgICAgICAgICAgICBtaW4td2lkdGg6IDEyLjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAucC1tZW51LWxpc3Qge1xuICAgICAgICBsaXN0LXN0eWxlOiBub25lO1xuICAgICAgICBwYWRkaW5nOiB2YXIoLS1fbGlzdC1wYWRkaW5nKTtcbiAgICAgICAgbWFyZ2luOiAwO1xuXG4gICAgICAgIC8qIHN1Ym1lbnUgaGVhZGVyIGNvbnRlbnQgKHA6bWVudSk6IFt0b2dnbGUgaWNvbl0gW3N1Ym1lbnUgaWNvbl0gbGFiZWwgKi9cbiAgICAgICAgLnAtY29tcG9uZW50LWhlYWRlciBoMyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIGdhcDogdmFyKC0tX2l0ZW0tZ2FwKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5wLWNvbXBvbmVudC1oZWFkZXIgLnAtc3VibWVudS1pY29uIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBzdGF0aWM7XG4gICAgICAgICAgICBmbG9hdDogbm9uZTtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1faXRlbS1pY29uLWNvbG9yKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qIHN1Ym1lbnUgaGVhZGVycyAqL1xuICAgIC5wLW1lbnUtbGlzdCAucC1jb21wb25lbnQtaGVhZGVyIHtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tX3N1Ym1lbnUtbGFiZWwtYmFja2dyb3VuZCk7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1fc3VibWVudS1sYWJlbC1jb2xvcik7XG4gICAgICAgIGZsb2F0OiBub25lO1xuICAgICAgICBib3JkZXI6IDAgbm9uZTtcbiAgICAgICAgcGFkZGluZzogdmFyKC0tX3N1Ym1lbnUtbGFiZWwtcGFkZGluZyk7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgdmFyKC0tX3RyYW5zaXRpb24tZHVyYXRpb24pLCBjb2xvciB2YXIoLS1fdHJhbnNpdGlvbi1kdXJhdGlvbik7XG5cbiAgICAgICAgaDMge1xuICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogdmFyKC0tX3N1Ym1lbnUtbGFiZWwtZm9udC1zaXplKTtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1fc3VibWVudS1sYWJlbC1mb250LXdlaWdodCk7XG4gICAgICAgICAgICBjb2xvcjogdmFyKC0tX3N1Ym1lbnUtbGFiZWwtY29sb3IpO1xuICAgICAgICAgICAgZmxvYXQ6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLnAtc3RhdGUtaG92ZXIge1xuICAgICAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tX2l0ZW0tZm9jdXMtYmFja2dyb3VuZCk7XG4gICAgICAgICAgICBjb2xvcjogdmFyKC0tX2l0ZW0tZm9jdXMtY29sb3IpO1xuXG4gICAgICAgICAgICAucC1zdWJtZW51LWljb24ge1xuICAgICAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1faXRlbS1pY29uLWZvY3VzLWNvbG9yKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5wLW1lbnUtbGlzdCAucC1tZW51aXRlbSB7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIGJvcmRlcjogMCBub25lO1xuICAgICAgICBmbG9hdDogbm9uZTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogdmFyKC0tX2l0ZW0tYm9yZGVyLXJhZGl1cyk7XG4gICAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgdmFyKC0tX3RyYW5zaXRpb24tZHVyYXRpb24pLCBjb2xvciB2YXIoLS1fdHJhbnNpdGlvbi1kdXJhdGlvbik7XG5cbiAgICAgICAgLyogbGluayA9IFByaW1lVUlYIGl0ZW0gbGluazogZmxleCByb3csIGljb24gLyBsYWJlbCAvIHN1Ym1lbnUgaWNvbiBzZXBhcmF0ZWQgYnkgdGhlIGl0ZW0gZ2FwICovXG4gICAgICAgIC5wLW1lbnVpdGVtLWxpbmsge1xuICAgICAgICAgICAgcGFkZGluZzogdmFyKC0tX2l0ZW0tcGFkZGluZyk7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGdhcDogdmFyKC0tX2l0ZW0tZ2FwKTtcbiAgICAgICAgICAgIGJvcmRlcjogMCBub25lO1xuICAgICAgICAgICAgZmxvYXQ6IG5vbmU7XG4gICAgICAgICAgICBjb2xvcjogdmFyKC0tX2l0ZW0tY29sb3IpO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogdmFyKC0tX2l0ZW0tYm9yZGVyLXJhZGl1cyk7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogdmFyKC0tcC10eXBvZ3JhcGh5LWxpbmUtaGVpZ2h0KTtcbiAgICAgICAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgdmFyKC0tX3RyYW5zaXRpb24tZHVyYXRpb24pLCBjb2xvciB2YXIoLS1fdHJhbnNpdGlvbi1kdXJhdGlvbik7XG5cbiAgICAgICAgICAgIC8qIG1hcmdpbiAwOiB0aGUgZ2FwIHNlcGFyYXRlcyB0aGUgcGFydHMgKi9cbiAgICAgICAgICAgIC5wLW1lbnVpdGVtLWljb24ge1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgICAgICBmbG9hdDogbm9uZTtcbiAgICAgICAgICAgICAgICBmbGV4LXNocmluazogMDtcbiAgICAgICAgICAgICAgICBjb2xvcjogdmFyKC0tX2l0ZW0taWNvbi1jb2xvcik7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiB2YXIoLS1faXRlbS1pY29uLXNpemUpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAucC1tZW51aXRlbS10ZXh0IHtcbiAgICAgICAgICAgICAgICBmbG9hdDogbm9uZTtcbiAgICAgICAgICAgICAgICBjb2xvcjogdmFyKC0tX2l0ZW0tY29sb3IpO1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogdmFyKC0tX2l0ZW0tbGFiZWwtZm9udC1zaXplKTtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogdmFyKC0tX2l0ZW0tbGFiZWwtZm9udC13ZWlnaHQpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOm5vdCgucC1zdGF0ZS1kaXNhYmxlZCk6aG92ZXIsXG4gICAgICAgICAgICAmLnAtc3RhdGUtaG92ZXIsXG4gICAgICAgICAgICAmLnAtc3RhdGUtZm9jdXMsXG4gICAgICAgICAgICAmOmZvY3VzLXZpc2libGUge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IHZhcigtLV9pdGVtLWZvY3VzLWJhY2tncm91bmQpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvKiBrZXlib2FyZCBmb2N1cyAodGFiIHRvIGEgbGluayB3aXRoIGhyZWYpOiB0aGUgYmFja2dyb3VuZCBpcyB0aGUgaW5kaWNhdG9yLCBhcyBmb3IgdGhlIGNvbXBvbmVudCBmb2N1cyAqL1xuICAgICAgICAgICAgJjpmb2N1cy12aXNpYmxlIHtcbiAgICAgICAgICAgICAgICBvdXRsaW5lOiAwIG5vbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bm90KC5wLXN0YXRlLWRpc2FibGVkKTpob3ZlciAucC1tZW51aXRlbS1pY29uLFxuICAgICAgICAgICAgJi5wLXN0YXRlLWhvdmVyIC5wLW1lbnVpdGVtLWljb24sXG4gICAgICAgICAgICAmLnAtc3RhdGUtZm9jdXMgLnAtbWVudWl0ZW0taWNvbixcbiAgICAgICAgICAgICY6Zm9jdXMtdmlzaWJsZSAucC1tZW51aXRlbS1pY29uIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogdmFyKC0tX2l0ZW0taWNvbi1mb2N1cy1jb2xvcik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bm90KC5wLXN0YXRlLWRpc2FibGVkKTpob3ZlciAucC1tZW51aXRlbS10ZXh0LFxuICAgICAgICAgICAgJi5wLXN0YXRlLWhvdmVyIC5wLW1lbnVpdGVtLXRleHQsXG4gICAgICAgICAgICAmLnAtc3RhdGUtZm9jdXMgLnAtbWVudWl0ZW0tdGV4dCxcbiAgICAgICAgICAgICY6Zm9jdXMtdmlzaWJsZSAucC1tZW51aXRlbS10ZXh0IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogdmFyKC0tX2l0ZW0tZm9jdXMtY29sb3IpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvKiBzdWJtZW51IGluZGljYXRvcnM6IHZlcnRpY2FsIHN1Ym1lbnVzLCBtZW51YmFyIHJvb3QgaXRlbXMgKi9cbiAgICAgICAgICAgIC5wLW1lbnUtc3VibWVudS1pY29uLFxuICAgICAgICAgICAgLnAtbWVudWJhci1zdWJtZW51LWljb24ge1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IHZhcigtLV9zdWJtZW51LWljb24tc2l6ZSk7XG4gICAgICAgICAgICAgICAgY29sb3I6IHZhcigtLV9zdWJtZW51LWljb24tY29sb3IpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAucC1tZW51LXN1Ym1lbnUtaWNvbiB7XG4gICAgICAgICAgICAgICAgLS1faWNvbjogdmFyKC0tcC1tZW51LXN1Ym1lbnUtaWNvbik7XG5cbiAgICAgICAgICAgICAgICAvKiBwdXNoZWQgdG8gdGhlIGVuZCwgbGlrZSB0aGUgUHJpbWVVSVggc3VibWVudSBpY29uIChtYXJnaW4taW5saW5lLXN0YXJ0OiBhdXRvKTsgUlRMOiBzZWUgLnAtbWVudS1ydGwgKi9cbiAgICAgICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4taW5saW5lLXN0YXJ0OiBhdXRvO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIC8qIFJUTCAocmVuZGVyZWQgUlRMIGluIC5wLW1lbnUtcnRsOiB0aGUgaWNvbiBjb21lcyBmaXJzdDsgb3IgZGlyPVwicnRsXCIgb25seSk6IHRoZSBpY29uIHBvaW50cyB0byB0aGUgc3RhcnQuXG4gICAgICAgICAgICAgICAgICAgTm90IGEgYmFyZSA6Zmlyc3QtY2hpbGQ6IGluIExUUiBhIHN1Ym1lbnUgd2l0aG91dCBsYWJlbCBhbmQgaWNvbiBoYXMgdGhlIGluZGljYXRvciBhcyBvbmx5IGNoaWxkICovXG4gICAgICAgICAgICAgICAgJjpkaXIocnRsKSxcbiAgICAgICAgICAgICAgICAmOmZpcnN0LWNoaWxkOndoZXJlKC5wLW1lbnUtcnRsICopIHtcbiAgICAgICAgICAgICAgICAgICAgc2NhbGU6IC0xIDE7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAucC1tZW51YmFyLXN1Ym1lbnUtaWNvbiB7XG4gICAgICAgICAgICAgICAgLS1faWNvbjogdmFyKC0tcC1tZW51YmFyLXN1Ym1lbnUtaWNvbik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bm90KC5wLXN0YXRlLWRpc2FibGVkKTpob3ZlciA6aXMoLnAtbWVudS1zdWJtZW51LWljb24sIC5wLW1lbnViYXItc3VibWVudS1pY29uKSxcbiAgICAgICAgICAgICYucC1zdGF0ZS1ob3ZlciA6aXMoLnAtbWVudS1zdWJtZW51LWljb24sIC5wLW1lbnViYXItc3VibWVudS1pY29uKSxcbiAgICAgICAgICAgICYucC1zdGF0ZS1mb2N1cyA6aXMoLnAtbWVudS1zdWJtZW51LWljb24sIC5wLW1lbnViYXItc3VibWVudS1pY29uKSB7XG4gICAgICAgICAgICAgICAgY29sb3I6IHZhcigtLV9zdWJtZW51LWljb24tZm9jdXMtY29sb3IpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLyogaXRlbSAobGkpIGhvdmVyLCB1c2VkIGJ5IHRoZSB0aWVyZWQgbWVudXMgKi9cbiAgICAgICAgJi5wLXN0YXRlLWhvdmVyIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHZhcigtLV9pdGVtLWZvY3VzLWJhY2tncm91bmQpO1xuICAgICAgICAgICAgY29sb3I6IHZhcigtLV9pdGVtLWZvY3VzLWNvbG9yKTtcblxuICAgICAgICAgICAgPiAucC1tZW51aXRlbS1saW5rIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogdmFyKC0tX2l0ZW0tZm9jdXMtY29sb3IpO1xuXG4gICAgICAgICAgICAgICAgLnAtbWVudWl0ZW0taWNvbixcbiAgICAgICAgICAgICAgICAucC1pY29uIHtcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6IHZhcigtLV9pdGVtLWljb24tZm9jdXMtY29sb3IpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC8qIGl0ZW0gd2l0aCBhbiBvcGVuIHN1Ym1lbnUgKi9cbiAgICAgICAgJi5wLW1lbnVpdGVtLWFjdGl2ZSA+IC5wLW1lbnVpdGVtLWxpbmsge1xuICAgICAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tX2l0ZW0tYWN0aXZlLWJhY2tncm91bmQpO1xuXG4gICAgICAgICAgICAucC1tZW51aXRlbS10ZXh0IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogdmFyKC0tX2l0ZW0tYWN0aXZlLWNvbG9yKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLnAtbWVudWl0ZW0taWNvbiB7XG4gICAgICAgICAgICAgICAgY29sb3I6IHZhcigtLV9pdGVtLWljb24tYWN0aXZlLWNvbG9yKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLnAtbWVudS1zdWJtZW51LWljb24sXG4gICAgICAgICAgICAucC1tZW51YmFyLXN1Ym1lbnUtaWNvbiB7XG4gICAgICAgICAgICAgICAgY29sb3I6IHZhcigtLV9zdWJtZW51LWljb24tYWN0aXZlLWNvbG9yKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qXG4gICAgICogbGlzdCBnYXA6IFByaW1lVUlYIGxpc3RzIGFyZSBmbGV4IGNvbHVtbnMgd2l0aCBnYXA6IDxtZW51Pi5saXN0LmdhcCAobWVudWJhciAvIG1lZ2FtZW51OiBzdWJtZW51LmdhcCkuIEhlcmUgaXQgaXMgYVxuICAgICAqIG1hcmdpbiBiZXR3ZWVuIHRoZSBsaXN0IGNoaWxkcmVuIGluc3RlYWQsIGJlY2F1c2UgdGhlIGNvbXBvbmVudHMgb3BlbiB0aGUgb3ZlcmxheSBzdWJtZW51cyB3aXRoIGpRdWVyeSAuc2hvdygpLFxuICAgICAqIHdoaWNoIHdyaXRlcyBhbiBpbmxpbmUgXCJkaXNwbGF5OiBibG9ja1wiIHRoYXQgd291bGQgZHJvcCBhIGRpc3BsYXk6IGZsZXggb2YgdGhlIGxpc3QuIFNhbWUgdmlzdWFsIHJlc3VsdC5cbiAgICAgKiBNdXN0IGNvbWUgYWZ0ZXIgdGhlIGl0ZW0gLyBoZWFkZXIgXCJtYXJnaW46IDBcIiBydWxlcyAoc2FtZSBzcGVjaWZpY2l0eSkuXG4gICAgICovXG4gICAgLnAtbWVudS1saXN0ID4gOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgICAgICAgbWFyZ2luLXRvcDogdmFyKC0tX2xpc3QtZ2FwKTtcbiAgICB9XG5cbiAgICAvKiBvdmVybGF5IHN1Ym1lbnVzICovXG4gICAgLnAtbWVudS1saXN0IC5wLW1lbnUtY2hpbGQge1xuICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1fc3VibWVudS1iYWNrZ3JvdW5kKTtcbiAgICAgICAgcGFkZGluZzogdmFyKC0tX3N1Ym1lbnUtcGFkZGluZyk7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLV9zdWJtZW51LWJvcmRlci1yYWRpdXMpO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1fc3VibWVudS1ib3JkZXItY29sb3IpO1xuICAgICAgICBib3gtc2hhZG93OiB2YXIoLS1fc3VibWVudS1zaGFkb3cpO1xuICAgIH1cblxuICAgIC8qIHNlcGFyYXRvcnMgKHA6ZGl2aWRlciBpbnNpZGUgbWVudXMpICovXG4gICAgLnAtZGl2aWRlci5wLWNvbXBvbmVudC5wLWRpdmlkZXItdmVydGljYWwge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgbWFyZ2luOiB2YXIoLS1wLW1lbnUtbGlzdC1nYXApIDA7XG5cbiAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgIGJvcmRlci1sZWZ0LWNvbG9yOiB2YXIoLS1fc2VwYXJhdG9yLWJvcmRlci1jb2xvcik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAucC1kaXZpZGVyLnAtY29tcG9uZW50LnAtZGl2aWRlci1ob3Jpem9udGFsIHtcbiAgICAgICAgbWFyZ2luOiAwO1xuXG4gICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICBib3JkZXItdG9wLWNvbG9yOiB2YXIoLS1fc2VwYXJhdG9yLWJvcmRlci1jb2xvcik7XG4gICAgICAgIH1cblxuICAgICAgICAvKiBsaXN0IGdhcCBhYm92ZSB0aGUgc2VwYXJhdG9yICh0aGUgb25lIGJlbG93IGNvbWVzIGZyb20gdGhlIG5leHQgaXRlbSksIGxpa2UgdGhlIFByaW1lVUlYIHNlcGFyYXRvciBsaSAqL1xuICAgICAgICAmOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IHZhcigtLV9saXN0LWdhcCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKlxuICAgICAqIFJUTCAoLnAtbWVudS1ydGw6IHA6bWVudWJhciwgcDptZWdhTWVudSwgcDp0aWVyZWRNZW51KTogYW4gZXhwbGljaXQgcnRsIGRpcmVjdGlvbiwgc28gdGhlIG1lbnViYXIgcm9vdCByb3cgc3RhcnRzXG4gICAgICogYXQgdGhlIHJpZ2h0IGFuZCB0aGUgZmFjZXRzIC8gc3VibWVudSBpY29ucyB1c2UgdGhlIGxvZ2ljYWwgbWFyZ2lucywgaW5kZXBlbmRlbnQgb2YgdGhlIHBhZ2UgZGlyZWN0aW9uLlxuICAgICAqIFRoZSByZW5kZXJlcnMgd3JpdGUgdGhlIGxpbmsgY29udGVudCBpbiByZXZlcnNlZCBvcmRlciBmb3IgUlRMIChbc3VibWVudSBpY29uXSBsYWJlbCBbaWNvbl0sIGxhYmVsIFtpY29uXSksXG4gICAgICogcm93LXJldmVyc2UgcmVzdG9yZXMgdGhlIHZpc3VhbCBvcmRlciAoaWNvbiBhdCB0aGUgcmlnaHQgZWRnZSksIGZsZXgtZW5kIGtlZXBzIGl0IGF0IHRoZSByaWdodCBlZGdlLlxuICAgICAqL1xuICAgICYucC1tZW51LXJ0bCB7XG4gICAgICAgIGRpcmVjdGlvbjogcnRsO1xuXG4gICAgICAgIC5wLW1lbnUtbGlzdCAucC1tZW51aXRlbSAucC1tZW51aXRlbS1saW5rIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3ctcmV2ZXJzZTtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG5cbiAgICAgICAgICAgIC8qIHN1Ym1lbnUgaWNvbiAocG9pbnRpbmcgbGVmdCkgcHVzaGVkIHRvIHRoZSBsZWZ0IGVuZCwgbGlrZSB0aGUgUHJpbWVVSVggc3VibWVudSBpY29uIDpkaXIocnRsKSAqL1xuICAgICAgICAgICAgLnAtbWVudS1zdWJtZW51LWljb246Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1pbmxpbmUtc3RhcnQ6IGF1dG87XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiBtZW51YmFyIHRva2VuczogdGhleSBhbHNvIGhpdCBwOm1lZ2FNZW51IChpdCBjYXJyaWVzIC5wLW1lbnViYXIpLCBtZW51L21lZ2FtZW51LmNzcyBvdmVycmlkZXMgYWxsIG9mIHRoZW0gKi9cbiAgICAmLnAtbWVudWJhciB7XG4gICAgICAgIC0tX2JnOiB2YXIoLS1wLW1lbnViYXItYmFja2dyb3VuZCk7XG4gICAgICAgIC0tX2JvcmRlci1jb2xvcjogdmFyKC0tcC1tZW51YmFyLWJvcmRlci1jb2xvcik7XG4gICAgICAgIC0tX2JvcmRlci1yYWRpdXM6IHZhcigtLXAtbWVudWJhci1ib3JkZXItcmFkaXVzKTtcbiAgICAgICAgLS1fY29sb3I6IHZhcigtLXAtbWVudWJhci1jb2xvcik7XG4gICAgICAgIC8qIHZlcnRpY2FsIGxpc3RzIG9mIHRoZSBtZW51YmFyID0gaXRzIHN1Ym1lbnVzICh0aGUgcm9vdCByb3cgdXNlcyAtLV9nYXApICovXG4gICAgICAgIC0tX2xpc3QtZ2FwOiB2YXIoLS1wLW1lbnViYXItc3VibWVudS1nYXApO1xuICAgICAgICAtLV90cmFuc2l0aW9uLWR1cmF0aW9uOiB2YXIoLS1wLW1lbnViYXItdHJhbnNpdGlvbi1kdXJhdGlvbik7XG4gICAgICAgIC0tX2l0ZW0tYm9yZGVyLXJhZGl1czogdmFyKC0tcC1tZW51YmFyLWl0ZW0tYm9yZGVyLXJhZGl1cyk7XG4gICAgICAgIC0tX2l0ZW0tcGFkZGluZzogdmFyKC0tcC1tZW51YmFyLWl0ZW0tcGFkZGluZyk7XG4gICAgICAgIC0tX2l0ZW0tZ2FwOiB2YXIoLS1wLW1lbnViYXItaXRlbS1nYXApO1xuICAgICAgICAtLV9pdGVtLWNvbG9yOiB2YXIoLS1wLW1lbnViYXItaXRlbS1jb2xvcik7XG4gICAgICAgIC0tX2l0ZW0tZm9jdXMtYmFja2dyb3VuZDogdmFyKC0tcC1tZW51YmFyLWl0ZW0tZm9jdXMtYmFja2dyb3VuZCk7XG4gICAgICAgIC0tX2l0ZW0tZm9jdXMtY29sb3I6IHZhcigtLXAtbWVudWJhci1pdGVtLWZvY3VzLWNvbG9yKTtcbiAgICAgICAgLS1faXRlbS1hY3RpdmUtYmFja2dyb3VuZDogdmFyKC0tcC1tZW51YmFyLWl0ZW0tYWN0aXZlLWJhY2tncm91bmQpO1xuICAgICAgICAtLV9pdGVtLWFjdGl2ZS1jb2xvcjogdmFyKC0tcC1tZW51YmFyLWl0ZW0tYWN0aXZlLWNvbG9yKTtcbiAgICAgICAgLS1faXRlbS1pY29uLWNvbG9yOiB2YXIoLS1wLW1lbnViYXItaXRlbS1pY29uLWNvbG9yKTtcbiAgICAgICAgLS1faXRlbS1pY29uLWZvY3VzLWNvbG9yOiB2YXIoLS1wLW1lbnViYXItaXRlbS1pY29uLWZvY3VzLWNvbG9yKTtcbiAgICAgICAgLS1faXRlbS1pY29uLWFjdGl2ZS1jb2xvcjogdmFyKC0tcC1tZW51YmFyLWl0ZW0taWNvbi1hY3RpdmUtY29sb3IpO1xuICAgICAgICAtLV9pdGVtLWljb24tc2l6ZTogdmFyKC0tcC1tZW51YmFyLWl0ZW0taWNvbi1zaXplKTtcbiAgICAgICAgLS1faXRlbS1sYWJlbC1mb250LXNpemU6IHZhcigtLXAtbWVudWJhci1pdGVtLWxhYmVsLWZvbnQtc2l6ZSk7XG4gICAgICAgIC0tX2l0ZW0tbGFiZWwtZm9udC13ZWlnaHQ6IHZhcigtLXAtbWVudWJhci1pdGVtLWxhYmVsLWZvbnQtd2VpZ2h0KTtcbiAgICAgICAgLS1fc3VibWVudS1pY29uLWNvbG9yOiB2YXIoLS1wLW1lbnViYXItc3VibWVudS1pY29uLWNvbG9yKTtcbiAgICAgICAgLS1fc3VibWVudS1pY29uLWZvY3VzLWNvbG9yOiB2YXIoLS1wLW1lbnViYXItc3VibWVudS1pY29uLWZvY3VzLWNvbG9yKTtcbiAgICAgICAgLS1fc3VibWVudS1pY29uLXNpemU6IHZhcigtLXAtbWVudWJhci1zdWJtZW51LWljb24tc2l6ZSk7XG4gICAgICAgIC0tX3N1Ym1lbnUtaWNvbi1hY3RpdmUtY29sb3I6IHZhcigtLXAtbWVudWJhci1zdWJtZW51LWljb24tYWN0aXZlLWNvbG9yKTtcbiAgICAgICAgLS1fc2VwYXJhdG9yLWJvcmRlci1jb2xvcjogdmFyKC0tcC1tZW51YmFyLXNlcGFyYXRvci1ib3JkZXItY29sb3IpO1xuICAgICAgICAtLV9zdWJtZW51LWJhY2tncm91bmQ6IHZhcigtLXAtbWVudWJhci1zdWJtZW51LWJhY2tncm91bmQpO1xuICAgICAgICAtLV9zdWJtZW51LWJvcmRlci1jb2xvcjogdmFyKC0tcC1tZW51YmFyLXN1Ym1lbnUtYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgLS1fc3VibWVudS1ib3JkZXItcmFkaXVzOiB2YXIoLS1wLW1lbnViYXItc3VibWVudS1ib3JkZXItcmFkaXVzKTtcbiAgICAgICAgLS1fc3VibWVudS1wYWRkaW5nOiB2YXIoLS1wLW1lbnViYXItc3VibWVudS1wYWRkaW5nKTtcbiAgICAgICAgLS1fc3VibWVudS1zaGFkb3c6IHZhcigtLXAtbWVudWJhci1zdWJtZW51LXNoYWRvdyk7XG4gICAgICAgIC0tX3BhZGRpbmc6IHZhcigtLXAtbWVudWJhci1wYWRkaW5nKTtcbiAgICAgICAgLS1fZ2FwOiB2YXIoLS1wLW1lbnViYXItZ2FwKTtcbiAgICAgICAgLS1fYmFzZS1pdGVtLXBhZGRpbmc6IHZhcigtLXAtbWVudWJhci1iYXNlLWl0ZW0tcGFkZGluZyk7XG4gICAgICAgIC0tX2Jhc2UtaXRlbS1ib3JkZXItcmFkaXVzOiB2YXIoLS1wLW1lbnViYXItYmFzZS1pdGVtLWJvcmRlci1yYWRpdXMpO1xuXG4gICAgICAgIC8qXG4gICAgICAgICAqIGJhcjogYSBmbGV4IHJvdyB3aXRoIHRoZSBtZW51YmFyIGdhcCBvZiBbc3RhcnQgZmFjZXRdIFtyb290IGxpc3RdIFtvcHRpb25zIGZhY2V0XSBbZW5kIGZhY2V0XTsgdGhlIGZhY2V0c1xuICAgICAgICAgKiBhcmUgcmVuZGVyZWQgbmV4dCB0byB0aGUgbGlzdCAoYSByb2xlPVwibWVudWJhclwiIG11c3Qgb25seSBjb250YWluIG1lbnUgaXRlbXMpLCBzbyB0aGUgcm93IGlzIHRoZSBiYXIgYW5kXG4gICAgICAgICAqIHRoZSBsaXN0IGlzIG9uZSB3cmFwcGluZyBmbGV4IGl0ZW0gb2YgaXQuIFRoZSB2ZXJ0aWNhbCBtZWdhbWVudSB0dXJucyBib3RoIGludG8gYSBjb2x1bW4gKG1lZ2FtZW51LmNzcykuXG4gICAgICAgICAqL1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgICAgIGdhcDogdmFyKC0tX2dhcCk7XG4gICAgICAgIHBhZGRpbmc6IHZhcigtLV9wYWRkaW5nKTtcbiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tX2JnKTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogdmFyKC0tX2JvcmRlci1yYWRpdXMpO1xuXG4gICAgICAgIC8qIHJvb3QgbGlzdDogYSBmbGV4IHJvdyB3aXRoIHRoZSBtZW51YmFyIGdhcCBsaWtlIHRoZSBQcmltZVVJWCBtZW51YmFyIC8gbWVnYW1lbnUgcm9vdCBsaXN0LCBubyBsaXN0IHBhZGRpbmcgKi9cbiAgICAgICAgPiAucC1tZW51LWxpc3Qge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgICAgICAgICBnYXA6IHZhcigtLV9nYXApO1xuICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIC8qIG1hcmdpbiAwOiBubyBsaXN0IGdhcCBtYXJnaW4gaW4gdGhlIHJvdyAodGhlIGZsZXggZ2FwIHNlcGFyYXRlcyB0aGUgaXRlbXMpICovXG4gICAgICAgID4gLnAtbWVudS1saXN0ID4gLnAtbWVudWl0ZW0ge1xuICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW46IDA7XG5cbiAgICAgICAgICAgID4gLnAtbWVudWl0ZW0tbGluayB7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogdmFyKC0tX2Jhc2UtaXRlbS1wYWRkaW5nKTtcbiAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1fYmFzZS1pdGVtLWJvcmRlci1yYWRpdXMpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLyogZmFjZXRzIChQcmltZVVJWCBzdGFydCAvIGVuZCk6IHN0YXJ0IGJlZm9yZSB0aGUgaXRlbXMsIG9wdGlvbnMgYW5kIGVuZCBwdXNoZWQgdG8gdGhlIGVuZCBvZiB0aGUgcm93ICovXG4gICAgICAgID4gLnAtbWVudWJhci1zdGFydCxcbiAgICAgICAgPiAucC1tZW51YmFyLW9wdGlvbnMsXG4gICAgICAgID4gLnAtbWVudWJhci1lbmQge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICA+IC5wLW1lbnViYXItb3B0aW9ucyxcbiAgICAgICAgPiAucC1tZW51YmFyLWVuZCB7XG4gICAgICAgICAgICBtYXJnaW4taW5saW5lLXN0YXJ0OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgPiAucC1tZW51YmFyLW9wdGlvbnMgKyAucC1tZW51YmFyLWVuZCB7XG4gICAgICAgICAgICBtYXJnaW4taW5saW5lLXN0YXJ0OiAwO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLypcbiAgICAgKiBzdGFydCAvIGVuZCBmYWNldHMgb2YgdGhlIHZlcnRpY2FsIG1lbnVzIChwOnRpZXJlZE1lbnUsIHA6Y29udGV4dE1lbnUpLCByZW5kZXJlZCBuZXh0IHRvIHRoZSBsaXN0OiB0aGUgbWVudSBnZXRzXG4gICAgICogdGhlIGxpc3QgcGFkZGluZyBhbmQgdGhlIGxpc3QgZ2FwIHNlcGFyYXRlcyB0aGUgZmFjZXRzIGZyb20gdGhlIGxpc3QsIHRoZSBzYW1lIHNwYWNpbmcgYXMgbGlzdCBpdGVtc1xuICAgICAqL1xuICAgICY6bm90KC5wLW1lbnViYXIpOmhhcyg+IC5wLW1lbnViYXItc3RhcnQsID4gLnAtbWVudWJhci1vcHRpb25zLCA+IC5wLW1lbnViYXItZW5kKSB7XG4gICAgICAgIHBhZGRpbmc6IHZhcigtLV9saXN0LXBhZGRpbmcpO1xuXG4gICAgICAgID4gLnAtbWVudS1saXN0IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIH1cblxuICAgICAgICA+IDpub3QoOmZpcnN0LWNoaWxkKSB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiB2YXIoLS1fbGlzdC1nYXApO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4ucC1tZW51LWxpc3Qge1xuICAgIHBvc2l0aW9uOiBzdGF0aWM7XG59XG5cbi8qIG1lbnViYXIgKHA6bWVudWJhciBhbmQgcDptZWdhTWVudSkgKi9cbi5wLW1lbnViYXIge1xuICAgIHdpZHRoOiBhdXRvO1xuXG4gICAgLnAtbWVudWl0ZW0ge1xuICAgICAgICBjbGVhcjogbm9uZTtcbiAgICB9XG5cbiAgICAucC1tZW51LWNoaWxkIHtcbiAgICAgICAgdG9wOiAyNXB4O1xuICAgICAgICBsZWZ0OiAwO1xuICAgIH1cblxuICAgIC5wLWNvbXBvbmVudC1oZWFkZXIge1xuICAgICAgICBjbGVhcjogbm9uZTtcbiAgICB9XG59XG5cbi8qIGtleWJvYXJkIGZvY3VzIG91dGxpbmUgdXNlZCBieSB0aGUgcGFuZWxtZW51IC8gdGFibWVudSBjb21wb25lbnRzICovXG4ucC1tZW51aXRlbS1vdXRsaW5lIHtcbiAgICBvdXRsaW5lOiB2YXIoLS1wLWZvY3VzLXJpbmctd2lkdGgpIHZhcigtLXAtZm9jdXMtcmluZy1zdHlsZSkgdmFyKC0tcC1mb2N1cy1yaW5nLWNvbG9yKTtcbiAgICBvdXRsaW5lLW9mZnNldDogdmFyKC0tcC1mb2N1cy1yaW5nLW9mZnNldCk7XG4gICAgei1pbmRleDogMTtcbn1cblxuLnAtZmx1aWQgLnAtbWVudSB7XG4gICAgd2lkdGg6IDEwMCU7XG59XG4iLCAiLypcbiAqIFBhZ2luYXRvciAoc2hhcmVkKTogdGhlIHBhZ2luYXRvciBvZiBwOmRhdGFUYWJsZSwgcDp0cmVlVGFibGUsIHA6ZGF0YVZpZXcsIHA6ZGF0YUdyaWQsIHA6ZGF0YUxpc3QsIC4uLlxuICpcbiAqIE1hcmt1cDogLnAtcGFnaW5hdG9yID4gKGxlZnQgY29udGVudCB8IC5wLXBhZ2luYXRvci1jZW50ZXItY29udGVudCB8IHJpZ2h0IGNvbnRlbnQpLCB0ZW1wbGF0ZSBlbGVtZW50cyBpbiB0aGUgY2VudGVyLlxuICogUGFnZSBsaW5rcyBhcmUgYWxzbyAucC1idXR0b24ucC1idXR0b24tZmxhdCwgc28gdGhlaXIgcnVsZXMgYXJlIHdyaXR0ZW4gdG8gYmVhdCBidXR0b24uY3NzIGJ5IHNwZWNpZmljaXR5LlxuICogUm93cyBwZXIgcGFnZSAvIGp1bXAgdG8gcGFnZSBkcm9wZG93bnMgYXJlIG5hdGl2ZSA8c2VsZWN0PnMsIGp1bXAgdG8gcGFnZSBpbnB1dCBpcyBhIC5wLWlucHV0ZmllbGQuXG4gKiBTdGF0ZXMgKHNldCBieSB0aGUgY29tcG9uZW50KTogcC1zdGF0ZS1ob3ZlciwgcC1zdGF0ZS1mb2N1cywgcC1zdGF0ZS1hY3RpdmUgKGN1cnJlbnQgcGFnZSksIHAtc3RhdGUtZGlzYWJsZWRcbiAqL1xuLnAtcGFnaW5hdG9yIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICBnYXA6IHZhcigtLXAtcGFnaW5hdG9yLWdhcCk7XG4gICAgbWFyZ2luOiAwO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1wLXBhZ2luYXRvci1iYWNrZ3JvdW5kKTtcbiAgICBjb2xvcjogdmFyKC0tcC1wYWdpbmF0b3ItY29sb3IpO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLXAtY29udGVudC1ib3JkZXItY29sb3IpO1xuICAgIGJvcmRlci13aWR0aDogMDtcbiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1wLXBhZ2luYXRvci1ib3JkZXItcmFkaXVzKTtcbiAgICBwYWRkaW5nOiB2YXIoLS1wLXBhZ2luYXRvci1wYWRkaW5nKTtcbn1cblxuLyogZmxhdDogdGhlIGFsdGVybmF0aXZlcyBoYXZlIGRpZmZlcmVudCBzcGVjaWZpY2l0eSAqL1xuLnAtcGFnaW5hdG9yLWNlbnRlci1jb250ZW50LFxuLnAtcGFnaW5hdG9yLnAtcGFnaW5hdG9yLXRvcCAucC1wYWdpbmF0b3ItdG9wLWxlZnQtY29udGVudCxcbi5wLXBhZ2luYXRvci5wLXBhZ2luYXRvci10b3AgLnAtcGFnaW5hdG9yLXRvcC1yaWdodC1jb250ZW50LFxuLnAtcGFnaW5hdG9yLnAtcGFnaW5hdG9yLWJvdHRvbSAucC1wYWdpbmF0b3ItYm90dG9tLWxlZnQtY29udGVudCxcbi5wLXBhZ2luYXRvci5wLXBhZ2luYXRvci1ib3R0b20gLnAtcGFnaW5hdG9yLWJvdHRvbS1yaWdodC1jb250ZW50IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogdmFyKC0tcC1wYWdpbmF0b3ItZ2FwKTtcbiAgICBtYXJnaW46IDA7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIG1pbi13aWR0aDogNWVtO1xufVxuXG4vKiBlbXB0eSBsZWZ0L3JpZ2h0IGZhY2V0cyBtdXN0IG5vdCB0YWtlIHNwYWNlLCBvdGhlcndpc2UgdGhlIHBhZ2UgbGlua3MgYXJlIHB1c2hlZCBvZmYgY2VudGVyIG9yIHdyYXAgKi9cbi5wLXBhZ2luYXRvci5wLXBhZ2luYXRvci10b3AgLnAtcGFnaW5hdG9yLXRvcC1sZWZ0LWNvbnRlbnQ6ZW1wdHksXG4ucC1wYWdpbmF0b3IucC1wYWdpbmF0b3ItdG9wIC5wLXBhZ2luYXRvci10b3AtcmlnaHQtY29udGVudDplbXB0eSxcbi5wLXBhZ2luYXRvci5wLXBhZ2luYXRvci1ib3R0b20gLnAtcGFnaW5hdG9yLWJvdHRvbS1sZWZ0LWNvbnRlbnQ6ZW1wdHksXG4ucC1wYWdpbmF0b3IucC1wYWdpbmF0b3ItYm90dG9tIC5wLXBhZ2luYXRvci1ib3R0b20tcmlnaHQtY29udGVudDplbXB0eSB7XG4gICAgbWluLXdpZHRoOiAwO1xufVxuXG4ucC1wYWdpbmF0b3ItY2VudGVyLWNvbnRlbnQge1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xufVxuXG4ucC1wYWdpbmF0b3Ige1xuICAgICYucC1wYWdpbmF0b3ItdG9wIC5wLXBhZ2luYXRvci10b3AtcmlnaHQtY29udGVudCxcbiAgICAmLnAtcGFnaW5hdG9yLWJvdHRvbSAucC1wYWdpbmF0b3ItYm90dG9tLXJpZ2h0LWNvbnRlbnQge1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuICAgIH1cblxuICAgIC5wLXBhZ2luYXRvci1wYWdlLFxuICAgIC5wLXBhZ2luYXRvci1wYWdlcyxcbiAgICAucC1wYWdpbmF0b3ItbmV4dCxcbiAgICAucC1wYWdpbmF0b3ItbGFzdCxcbiAgICAucC1wYWdpbmF0b3ItZmlyc3QsXG4gICAgLnAtcGFnaW5hdG9yLXByZXYsXG4gICAgLnAtcGFnaW5hdG9yLWN1cnJlbnQge1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgfVxuXG4gICAgLnAtcGFnaW5hdG9yLXBhZ2UsXG4gICAgLnAtcGFnaW5hdG9yLW5leHQsXG4gICAgLnAtcGFnaW5hdG9yLWxhc3QsXG4gICAgLnAtcGFnaW5hdG9yLWZpcnN0LFxuICAgIC5wLXBhZ2luYXRvci1wcmV2IHtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIH1cblxuICAgIC8qIGZpcnN0IC8gcHJldiAvIG5leHQgLyBsYXN0ICovXG4gICAgLnAtcGFnaW5hdG9yLWZpcnN0LFxuICAgIC5wLXBhZ2luYXRvci1wcmV2LFxuICAgIC5wLXBhZ2luYXRvci1uZXh0LFxuICAgIC5wLXBhZ2luYXRvci1sYXN0IHtcbiAgICAgICAgZm9udC1zdHlsZTogbm9ybWFsO1xuICAgICAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgLXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTtcbiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgICAgIGJhY2tncm91bmQ6IHZhcigtLXAtcGFnaW5hdG9yLW5hdi1idXR0b24tYmFja2dyb3VuZCk7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1wLXBhZ2luYXRvci1uYXYtYnV0dG9uLWNvbG9yKTtcbiAgICAgICAgbWluLXdpZHRoOiB2YXIoLS1wLXBhZ2luYXRvci1uYXYtYnV0dG9uLXdpZHRoKTtcbiAgICAgICAgaGVpZ2h0OiB2YXIoLS1wLXBhZ2luYXRvci1uYXYtYnV0dG9uLWhlaWdodCk7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgYm9yZGVyOiAwIG5vbmU7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXAtcGFnaW5hdG9yLW5hdi1idXR0b24tYm9yZGVyLXJhZGl1cyk7XG4gICAgICAgIG91dGxpbmUtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIHZhcigtLXAtcGFnaW5hdG9yLXRyYW5zaXRpb24tZHVyYXRpb24pLCBjb2xvciB2YXIoLS1wLXBhZ2luYXRvci10cmFuc2l0aW9uLWR1cmF0aW9uKSxcbiAgICAgICAgICAgIG91dGxpbmUtY29sb3IgdmFyKC0tcC1wYWdpbmF0b3ItdHJhbnNpdGlvbi1kdXJhdGlvbiksIGJveC1zaGFkb3cgdmFyKC0tcC1wYWdpbmF0b3ItdHJhbnNpdGlvbi1kdXJhdGlvbik7XG5cbiAgICAgICAgJi5wLXN0YXRlLWhvdmVyLFxuICAgICAgICAmOm5vdCgucC1zdGF0ZS1kaXNhYmxlZCk6aG92ZXIge1xuICAgICAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tcC1wYWdpbmF0b3ItbmF2LWJ1dHRvbi1ob3Zlci1iYWNrZ3JvdW5kKTtcbiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1wLXBhZ2luYXRvci1uYXYtYnV0dG9uLWhvdmVyLWNvbG9yKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYucC1zdGF0ZS1mb2N1cyxcbiAgICAgICAgJjpmb2N1cy12aXNpYmxlIHtcbiAgICAgICAgICAgIG91dGxpbmU6IHZhcigtLXAtcGFnaW5hdG9yLW5hdi1idXR0b24tZm9jdXMtcmluZy13aWR0aCkgdmFyKC0tcC1wYWdpbmF0b3ItbmF2LWJ1dHRvbi1mb2N1cy1yaW5nLXN0eWxlKSB2YXIoLS1wLXBhZ2luYXRvci1uYXYtYnV0dG9uLWZvY3VzLXJpbmctY29sb3IpO1xuICAgICAgICAgICAgb3V0bGluZS1vZmZzZXQ6IHZhcigtLXAtcGFnaW5hdG9yLW5hdi1idXR0b24tZm9jdXMtcmluZy1vZmZzZXQpO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogdmFyKC0tcC1wYWdpbmF0b3ItbmF2LWJ1dHRvbi1mb2N1cy1yaW5nLXNoYWRvdyk7XG4gICAgICAgIH1cblxuICAgICAgICAmOmRpcihydGwpIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDE4MGRlZyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAucC1wYWdpbmF0b3ItZmlyc3QtaWNvbiB7XG4gICAgICAgIC0tX2ljb246IHZhcigtLXAtcGFnaW5hdG9yLWZpcnN0LWljb24pO1xuICAgIH1cblxuICAgIC5wLXBhZ2luYXRvci1wcmV2LWljb24ge1xuICAgICAgICAtLV9pY29uOiB2YXIoLS1wLXBhZ2luYXRvci1wcmV2LWljb24pO1xuICAgIH1cblxuICAgIC5wLXBhZ2luYXRvci1uZXh0LWljb24ge1xuICAgICAgICAtLV9pY29uOiB2YXIoLS1wLXBhZ2luYXRvci1uZXh0LWljb24pO1xuICAgIH1cblxuICAgIC5wLXBhZ2luYXRvci1sYXN0LWljb24ge1xuICAgICAgICAtLV9pY29uOiB2YXIoLS1wLXBhZ2luYXRvci1sYXN0LWljb24pO1xuICAgIH1cblxuICAgIC8qIGN1cnJlbnQgcGFnZSByZXBvcnQgKi9cbiAgICAucC1wYWdpbmF0b3ItY3VycmVudCB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBjb2xvcjogdmFyKC0tcC1wYWdpbmF0b3ItY3VycmVudC1wYWdlLXJlcG9ydC1jb2xvcik7XG4gICAgICAgIGZvbnQtc2l6ZTogdmFyKC0tcC1wYWdpbmF0b3ItY3VycmVudC1wYWdlLXJlcG9ydC1mb250LXNpemUpO1xuICAgICAgICBmb250LXdlaWdodDogdmFyKC0tcC1wYWdpbmF0b3ItY3VycmVudC1wYWdlLXJlcG9ydC1mb250LXdlaWdodCk7XG4gICAgICAgIGZvbnQtdmFyaWFudC1udW1lcmljOiB0YWJ1bGFyLW51bXM7XG4gICAgfVxuXG4gICAgLyogcGFnZSBsaW5rcyAqL1xuICAgIC5wLXBhZ2luYXRvci1wYWdlcyB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBnYXA6IHZhcigtLXAtcGFnaW5hdG9yLWdhcCk7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICB9XG5cbiAgICAucC1wYWdpbmF0b3ItcGFnZXMgLnAtcGFnaW5hdG9yLXBhZ2Uge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIGJvcmRlcjogMCBub25lO1xuICAgICAgICBtaW4td2lkdGg6IHZhcigtLXAtcGFnaW5hdG9yLW5hdi1idXR0b24td2lkdGgpO1xuICAgICAgICB3aWR0aDogdW5zZXQ7XG4gICAgICAgIGhlaWdodDogdmFyKC0tcC1wYWdpbmF0b3ItbmF2LWJ1dHRvbi1oZWlnaHQpO1xuICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1wLXBhZ2luYXRvci1uYXYtYnV0dG9uLWJhY2tncm91bmQpO1xuICAgICAgICBjb2xvcjogdmFyKC0tcC1wYWdpbmF0b3ItbmF2LWJ1dHRvbi1jb2xvcik7XG4gICAgICAgIC8qIG5hdGl2ZSA8YnV0dG9uPnMgKG5vIC5wLWNvbXBvbmVudCkgZG8gbm90IGluaGVyaXQgdGhlIHBhZ2UgZm9udCAqL1xuICAgICAgICBmb250LWZhbWlseTogaW5oZXJpdDtcbiAgICAgICAgZm9udC1zaXplOiB2YXIoLS1wLXBhZ2luYXRvci1uYXYtYnV0dG9uLWZvbnQtc2l6ZSk7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1wLXBhZ2luYXRvci1uYXYtYnV0dG9uLWZvbnQtd2VpZ2h0KTtcbiAgICAgICAgLyogZXF1YWwgd2lkdGggZGlnaXRzOiB0aGUgbGlua3MgZG8gbm90IHNoaWZ0IHdoZW4gdGhlIHBhZ2UgbnVtYmVycyBjaGFuZ2UgKi9cbiAgICAgICAgZm9udC12YXJpYW50LW51bWVyaWM6IHRhYnVsYXItbnVtcztcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1wLXBhZ2luYXRvci1uYXYtYnV0dG9uLWJvcmRlci1yYWRpdXMpO1xuICAgICAgICBib3gtc2hhZG93OiBub25lO1xuICAgICAgICBvdXRsaW5lLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCB2YXIoLS1wLXBhZ2luYXRvci10cmFuc2l0aW9uLWR1cmF0aW9uKSwgY29sb3IgdmFyKC0tcC1wYWdpbmF0b3ItdHJhbnNpdGlvbi1kdXJhdGlvbiksXG4gICAgICAgICAgICBvdXRsaW5lLWNvbG9yIHZhcigtLXAtcGFnaW5hdG9yLXRyYW5zaXRpb24tZHVyYXRpb24pLCBib3gtc2hhZG93IHZhcigtLXAtcGFnaW5hdG9yLXRyYW5zaXRpb24tZHVyYXRpb24pO1xuXG4gICAgICAgICYucC1zdGF0ZS1ob3ZlcixcbiAgICAgICAgJjpub3QoLnAtc3RhdGUtZGlzYWJsZWQsIC5wLXN0YXRlLWFjdGl2ZSk6aG92ZXIsXG4gICAgICAgICY6bm90KC5wLXN0YXRlLWRpc2FibGVkLCAucC1zdGF0ZS1hY3RpdmUpOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1wLXBhZ2luYXRvci1uYXYtYnV0dG9uLWhvdmVyLWJhY2tncm91bmQpO1xuICAgICAgICAgICAgY29sb3I6IHZhcigtLXAtcGFnaW5hdG9yLW5hdi1idXR0b24taG92ZXItY29sb3IpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi5wLXN0YXRlLWFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1wLXBhZ2luYXRvci1uYXYtYnV0dG9uLXNlbGVjdGVkLWJhY2tncm91bmQpO1xuICAgICAgICAgICAgY29sb3I6IHZhcigtLXAtcGFnaW5hdG9yLW5hdi1idXR0b24tc2VsZWN0ZWQtY29sb3IpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi5wLXN0YXRlLWZvY3VzLFxuICAgICAgICAmOmZvY3VzLXZpc2libGUge1xuICAgICAgICAgICAgb3V0bGluZTogdmFyKC0tcC1wYWdpbmF0b3ItbmF2LWJ1dHRvbi1mb2N1cy1yaW5nLXdpZHRoKSB2YXIoLS1wLXBhZ2luYXRvci1uYXYtYnV0dG9uLWZvY3VzLXJpbmctc3R5bGUpIHZhcigtLXAtcGFnaW5hdG9yLW5hdi1idXR0b24tZm9jdXMtcmluZy1jb2xvcik7XG4gICAgICAgICAgICBvdXRsaW5lLW9mZnNldDogdmFyKC0tcC1wYWdpbmF0b3ItbmF2LWJ1dHRvbi1mb2N1cy1yaW5nLW9mZnNldCk7XG4gICAgICAgICAgICBib3gtc2hhZG93OiB2YXIoLS1wLXBhZ2luYXRvci1uYXYtYnV0dG9uLWZvY3VzLXJpbmctc2hhZG93KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qIHJvd3MgcGVyIHBhZ2UgLyBqdW1wIHRvIHBhZ2UgZHJvcGRvd25zIChuYXRpdmUgc2VsZWN0cywgc2tpbm5lZCBsaWtlIHA6c2VsZWN0T25lTWVudSkgKi9cbiAgICAucC1wYWdpbmF0b3ItcnBwLW9wdGlvbnMsXG4gICAgLnAtcGFnaW5hdG9yLWp0cC1zZWxlY3Qge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgZm9udC1mYW1pbHk6IGluaGVyaXQ7XG4gICAgICAgIGZvbnQtc2l6ZTogdmFyKC0tcC1zZWxlY3QtZm9udC1zaXplKTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IHZhcigtLXAtc2VsZWN0LWZvbnQtd2VpZ2h0KTtcbiAgICAgICAgbGluZS1oZWlnaHQ6IHZhcigtLXAtdHlwb2dyYXBoeS1saW5lLWhlaWdodCk7XG4gICAgICAgIHBhZGRpbmctYmxvY2s6IHZhcigtLXAtc2VsZWN0LXBhZGRpbmcteSk7XG4gICAgICAgIHBhZGRpbmctaW5saW5lOiB2YXIoLS1wLXNlbGVjdC1wYWRkaW5nLXgpO1xuICAgICAgICBjb2xvcjogdmFyKC0tcC1zZWxlY3QtY29sb3IpO1xuICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1wLXNlbGVjdC1iYWNrZ3JvdW5kKTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tcC1zZWxlY3QtYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogdmFyKC0tcC1zZWxlY3QtYm9yZGVyLXJhZGl1cyk7XG4gICAgICAgIGJveC1zaGFkb3c6IHZhcigtLXAtc2VsZWN0LXNoYWRvdyk7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgb3V0bGluZS1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgdmFyKC0tcC1zZWxlY3QtdHJhbnNpdGlvbi1kdXJhdGlvbiksIGNvbG9yIHZhcigtLXAtc2VsZWN0LXRyYW5zaXRpb24tZHVyYXRpb24pLFxuICAgICAgICAgICAgYm9yZGVyLWNvbG9yIHZhcigtLXAtc2VsZWN0LXRyYW5zaXRpb24tZHVyYXRpb24pLCBvdXRsaW5lLWNvbG9yIHZhcigtLXAtc2VsZWN0LXRyYW5zaXRpb24tZHVyYXRpb24pLFxuICAgICAgICAgICAgYm94LXNoYWRvdyB2YXIoLS1wLXNlbGVjdC10cmFuc2l0aW9uLWR1cmF0aW9uKTtcblxuICAgICAgICAmLnAtc3RhdGUtaG92ZXIsXG4gICAgICAgICY6bm90KDpkaXNhYmxlZCwgLnAtc3RhdGUtZGlzYWJsZWQpOmhvdmVyIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tcC1zZWxlY3QtaG92ZXItYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYucC1zdGF0ZS1mb2N1cyxcbiAgICAgICAgJjpmb2N1cy12aXNpYmxlIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tcC1zZWxlY3QtZm9jdXMtYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgICAgIG91dGxpbmU6IHZhcigtLXAtc2VsZWN0LWZvY3VzLXJpbmctd2lkdGgpIHZhcigtLXAtc2VsZWN0LWZvY3VzLXJpbmctc3R5bGUpIHZhcigtLXAtc2VsZWN0LWZvY3VzLXJpbmctY29sb3IpO1xuICAgICAgICAgICAgb3V0bGluZS1vZmZzZXQ6IHZhcigtLXAtc2VsZWN0LWZvY3VzLXJpbmctb2Zmc2V0KTtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IHZhcigtLXAtc2VsZWN0LWZvY3VzLXJpbmctc2hhZG93KTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6ZGlzYWJsZWQsXG4gICAgICAgICYucC1zdGF0ZS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1wLXNlbGVjdC1kaXNhYmxlZC1iYWNrZ3JvdW5kKTtcbiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1wLXNlbGVjdC1kaXNhYmxlZC1jb2xvcik7XG4gICAgICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG4gICAgICAgIH1cblxuICAgICAgICBvcHRpb24ge1xuICAgICAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tcC1zZWxlY3Qtb3ZlcmxheS1iYWNrZ3JvdW5kKTtcbiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1wLXNlbGVjdC1vcHRpb24tY29sb3IpO1xuICAgICAgICAgICAgYm9yZGVyOiAwIG5vbmU7XG4gICAgICAgICAgICBib3gtc2hhZG93OiBub25lO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLnAtcGFnaW5hdG9yLWp0cC1pbnB1dCB7XG4gICAgICAgIC8qIGZpdCB0aGUgbGl2ZSBwYWdlIGNvdW50ICgtLXAtanRwLWRpZ2l0cyBpcyB3cml0dGVuIGlubGluZSBieSB0aGUgcmVuZGVyZXIpOiBvbmUgY2ggcGVyIGRpZ2l0IHBsdXMgcGFkZGluZyBhbmQgc3Bpbm5lciByb29tICovXG4gICAgICAgIHdpZHRoOiBjYWxjKHZhcigtLXAtanRwLWRpZ2l0cywgMykgKiAxY2ggKyAyLjVyZW0pO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICB9XG5cbiAgICAvKiBhZnRlciB0aGUgZGlzcGxheSBvZiAucC1wYWdpbmF0b3ItcGFnZXMgKHNhbWUgc3BlY2lmaWNpdHkpICovXG4gICAgQG1lZGlhIChtYXgtd2lkdGg6IDY0MHB4KSB7XG4gICAgICAgIC5wLXBhZ2luYXRvci1wYWdlcyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG4gICAgfVxufVxuIiwgIi8qXG4gKiBSYWRpb0J1dHRvbiAoc2hhcmVkKTogdGhlIHJhZGlvIGJveCAucC1yYWRpb2J1dHRvbiBvZiBwOnNlbGVjdE9uZVJhZGlvIGFuZCBwOnJhZGlvQnV0dG9uXG4gKiAobGF5b3V0cyBhbmQgdGhlIHJlYWRvbmx5IHN0YXRlIG9mIHA6c2VsZWN0T25lUmFkaW86IGZvcm1zL3NlbGVjdG9uZXJhZGlvLmNzcylcbiAqXG4gKiBTdGF0ZXMgb24gLnAtcmFkaW9idXR0b24tYm94OiBwLXN0YXRlLWhvdmVyLCBwLXN0YXRlLWZvY3VzLCBwLXN0YXRlLWFjdGl2ZSAoY2hlY2tlZCksIHAtc3RhdGUtZXJyb3IsXG4gKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcC1zdGF0ZS1kaXNhYmxlZCwgcC1pbnB1dC1maWxsZWQgKG9uIGEgcGFyZW50KSwgcC1zdGF0ZS1yZWFkb25seSAob24gLnAtc2VsZWN0b25lcmFkaW8pXG4gKiBTaXplczogcC1yYWRpb2J1dHRvbi1zbSwgcC1yYWRpb2J1dHRvbi1sZyAob24gdGhlIC5wLXJhZGlvYnV0dG9uIG9yIGEgcGFyZW50KVxuICovXG4ucC1yYWRpb2J1dHRvbiB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgIG1hcmdpbjogMDtcbiAgICB3aWR0aDogdmFyKC0tcC1yYWRpb2J1dHRvbi13aWR0aCk7XG4gICAgaGVpZ2h0OiB2YXIoLS1wLXJhZGlvYnV0dG9uLWhlaWdodCk7XG4gICAgbGluZS1oZWlnaHQ6IG5vcm1hbDtcblxuICAgIC5wLXJhZGlvYnV0dG9uLWJveCB7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgYm9yZGVyOiB2YXIoLS1wLXJhZGlvYnV0dG9uLWJvcmRlci13aWR0aCkgc29saWQgdmFyKC0tcC1yYWRpb2J1dHRvbi1ib3JkZXItY29sb3IpO1xuICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1wLXJhZGlvYnV0dG9uLWJhY2tncm91bmQpO1xuICAgICAgICB3aWR0aDogdmFyKC0tcC1yYWRpb2J1dHRvbi13aWR0aCk7XG4gICAgICAgIGhlaWdodDogdmFyKC0tcC1yYWRpb2J1dHRvbi1oZWlnaHQpO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgICAgICBib3gtc2hhZG93OiB2YXIoLS1wLXJhZGlvYnV0dG9uLXNoYWRvdyk7XG4gICAgICAgIG91dGxpbmUtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIHZhcigtLXAtcmFkaW9idXR0b24tdHJhbnNpdGlvbi1kdXJhdGlvbiksIGNvbG9yIHZhcigtLXAtcmFkaW9idXR0b24tdHJhbnNpdGlvbi1kdXJhdGlvbiksXG4gICAgICAgICAgICBib3JkZXItY29sb3IgdmFyKC0tcC1yYWRpb2J1dHRvbi10cmFuc2l0aW9uLWR1cmF0aW9uKSwgYm94LXNoYWRvdyB2YXIoLS1wLXJhZGlvYnV0dG9uLXRyYW5zaXRpb24tZHVyYXRpb24pLFxuICAgICAgICAgICAgb3V0bGluZS1jb2xvciB2YXIoLS1wLXJhZGlvYnV0dG9uLXRyYW5zaXRpb24tZHVyYXRpb24pO1xuXG4gICAgICAgICYucC1zdGF0ZS1ob3ZlcixcbiAgICAgICAgJjpub3QoLnAtc3RhdGUtZGlzYWJsZWQpOmhvdmVyIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tcC1yYWRpb2J1dHRvbi1ob3Zlci1ib3JkZXItY29sb3IpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi5wLXN0YXRlLWZvY3VzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tcC1yYWRpb2J1dHRvbi1mb2N1cy1ib3JkZXItY29sb3IpO1xuICAgICAgICAgICAgb3V0bGluZTogdmFyKC0tcC1yYWRpb2J1dHRvbi1mb2N1cy1yaW5nLXdpZHRoKSB2YXIoLS1wLXJhZGlvYnV0dG9uLWZvY3VzLXJpbmctc3R5bGUpIHZhcigtLXAtcmFkaW9idXR0b24tZm9jdXMtcmluZy1jb2xvcik7XG4gICAgICAgICAgICBvdXRsaW5lLW9mZnNldDogdmFyKC0tcC1yYWRpb2J1dHRvbi1mb2N1cy1yaW5nLW9mZnNldCk7XG4gICAgICAgICAgICBib3gtc2hhZG93OiB2YXIoLS1wLXJhZGlvYnV0dG9uLWZvY3VzLXJpbmctc2hhZG93KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYucC1zdGF0ZS1hY3RpdmUge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1wLXJhZGlvYnV0dG9uLWNoZWNrZWQtYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHZhcigtLXAtcmFkaW9idXR0b24tY2hlY2tlZC1iYWNrZ3JvdW5kKTtcbiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1wLXJhZGlvYnV0dG9uLWljb24tY2hlY2tlZC1jb2xvcik7XG5cbiAgICAgICAgICAgICYucC1zdGF0ZS1ob3ZlcixcbiAgICAgICAgICAgICY6bm90KC5wLXN0YXRlLWRpc2FibGVkKTpob3ZlciB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1wLXJhZGlvYnV0dG9uLWNoZWNrZWQtaG92ZXItYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1wLXJhZGlvYnV0dG9uLWNoZWNrZWQtaG92ZXItYmFja2dyb3VuZCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYucC1zdGF0ZS1mb2N1cyB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1wLXJhZGlvYnV0dG9uLWNoZWNrZWQtZm9jdXMtYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLnAtcmFkaW9idXR0b24taWNvbiB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tcC1yYWRpb2J1dHRvbi1pY29uLWNoZWNrZWQtY29sb3IpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLnAtc3RhdGUtaG92ZXIgLnAtcmFkaW9idXR0b24taWNvbixcbiAgICAgICAgICAgICY6bm90KC5wLXN0YXRlLWRpc2FibGVkKTpob3ZlciAucC1yYWRpb2J1dHRvbi1pY29uIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1wLXJhZGlvYnV0dG9uLWljb24tY2hlY2tlZC1ob3Zlci1jb2xvcik7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAvKiByZWFkb25seSAobm8gaG92ZXIgZmVlZGJhY2spOiBmb3Jtcy9zZWxlY3RvbmVyYWRpby5jc3MsIGl0IHdpbnMgYnkgc3BlY2lmaWNpdHkgKi9cblxuICAgICAgICAvKiBpbnZhbGlkOiB0aGUgYm9yZGVyIGFsc28gd2lucyBvdmVyIGhvdmVyLCBmb2N1cyBhbmQgY2hlY2tlZCAoc2FtZSBvciBoaWdoZXIgc3BlY2lmaWNpdHksIGxhdGVyKSwgdGhlIGZvY3VzIHJpbmcgc3RheXMgKi9cbiAgICAgICAgJi5wLXN0YXRlLWVycm9yLFxuICAgICAgICAmLnAtc3RhdGUtZXJyb3I6aXMoOmhvdmVyLCAucC1zdGF0ZS1ob3ZlciwgLnAtc3RhdGUtZm9jdXMpLFxuICAgICAgICAmLnAtc3RhdGUtZXJyb3IucC1zdGF0ZS1hY3RpdmU6aXMoOmhvdmVyLCAucC1zdGF0ZS1ob3ZlciwgLnAtc3RhdGUtZm9jdXMpIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tcC1yYWRpb2J1dHRvbi1pbnZhbGlkLWJvcmRlci1jb2xvcik7XG4gICAgICAgIH1cblxuICAgICAgICAmLnAtc3RhdGUtZGlzYWJsZWQge1xuICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHZhcigtLXAtcmFkaW9idXR0b24tZGlzYWJsZWQtYmFja2dyb3VuZCk7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IHZhcigtLXAtcmFkaW9idXR0b24tY2hlY2tlZC1kaXNhYmxlZC1ib3JkZXItY29sb3IpO1xuXG4gICAgICAgICAgICAmLnAtc3RhdGUtYWN0aXZlIC5wLXJhZGlvYnV0dG9uLWljb24ge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IHZhcigtLXAtcmFkaW9idXR0b24taWNvbi1kaXNhYmxlZC1jb2xvcik7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAucC1yYWRpb2J1dHRvbi1pY29uIHtcbiAgICAgICAgICAgIHdpZHRoOiB2YXIoLS1wLXJhZGlvYnV0dG9uLWljb24tc2l6ZSk7XG4gICAgICAgICAgICBoZWlnaHQ6IHZhcigtLXAtcmFkaW9idXR0b24taWNvbi1zaXplKTtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IGNhbGMoLTEgKiB2YXIoLS1wLXJhZGlvYnV0dG9uLWljb24tc2l6ZSkgLyAyKTtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBjYWxjKC0xICogdmFyKC0tcC1yYWRpb2J1dHRvbi1pY29uLXNpemUpIC8gMik7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIC8qIHRoZSBkb3QgaXMgYSBiYWNrZ3JvdW5kOiBrZWVwIGl0IGluIGZvcmNlZCBjb2xvcnMgKHRoZSBjaGVja21hcmsgb2YgdGhlIGNoZWNrYm94IGlzIGEgbWFzaywgc2VlIGJhc2UvY29tbW9uLmNzcykgKi9cbiAgICAgICAgICAgIGZvcmNlZC1jb2xvci1hZGp1c3Q6IG5vbmU7XG4gICAgICAgICAgICB0cmFuc2l0aW9uLWR1cmF0aW9uOiB2YXIoLS1wLXJhZGlvYnV0dG9uLXRyYW5zaXRpb24tZHVyYXRpb24pO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4vKiByZWFkb25seSAodGhlIGRpc2FibGVkIGN1cnNvciBjb21lcyBmcm9tIGJhc2UvY29tbW9uLmNzcykgKi9cbi5wLXNlbGVjdG9uZXJhZGlvLnAtc3RhdGUtcmVhZG9ubHkgLnAtcmFkaW9idXR0b24tYm94IHtcbiAgICBjdXJzb3I6IGRlZmF1bHQ7XG59XG5cbi8qIGZpbGxlZCB2YXJpYW50ICovXG4ucC1pbnB1dC1maWxsZWQgLnAtcmFkaW9idXR0b24gLnAtcmFkaW9idXR0b24tYm94IHtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1wLXJhZGlvYnV0dG9uLWZpbGxlZC1iYWNrZ3JvdW5kKTtcblxuICAgIC8qIG5vIHJhZGlvYnV0dG9uIHRva2VuIGZvciB0aGUgZmlsbGVkIGhvdmVyIHN0YXRlICovXG4gICAgJi5wLXN0YXRlLWhvdmVyLFxuICAgICY6bm90KC5wLXN0YXRlLWRpc2FibGVkKTpob3ZlciB7XG4gICAgICAgIGJhY2tncm91bmQ6IHZhcigtLXAtZm9ybS1maWVsZC1maWxsZWQtaG92ZXItYmFja2dyb3VuZCk7XG4gICAgfVxuXG4gICAgJi5wLXN0YXRlLWFjdGl2ZSB7XG4gICAgICAgIGJhY2tncm91bmQ6IHZhcigtLXAtcmFkaW9idXR0b24tY2hlY2tlZC1iYWNrZ3JvdW5kKTtcblxuICAgICAgICAmLnAtc3RhdGUtaG92ZXIsXG4gICAgICAgICY6bm90KC5wLXN0YXRlLWRpc2FibGVkKTpob3ZlciB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1wLXJhZGlvYnV0dG9uLWNoZWNrZWQtaG92ZXItYmFja2dyb3VuZCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLnAtc3RhdGUtZGlzYWJsZWQge1xuICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1wLXJhZGlvYnV0dG9uLWRpc2FibGVkLWJhY2tncm91bmQpO1xuICAgIH1cbn1cblxuLypcbiAqIHNpemVzOiBwLXJhZGlvYnV0dG9uLXNtIC8gcC1yYWRpb2J1dHRvbi1sZyBvbiB0aGUgLnAtcmFkaW9idXR0b24gb3Igb24gYW55IHBhcmVudCAocDpzZWxlY3RPbmVSYWRpbyBzdHlsZUNsYXNzLFxuICogYSB3cmFwcGVyKTogdGhlIHNpemUgdG9rZW5zIHJlcGxhY2UgdGhlIGJhc2Ugb25lc1xuICovXG4ucC1yYWRpb2J1dHRvbi1zbSB7XG4gICAgLS1wLXJhZGlvYnV0dG9uLXdpZHRoOiB2YXIoLS1wLXJhZGlvYnV0dG9uLXNtLXdpZHRoKTtcbiAgICAtLXAtcmFkaW9idXR0b24taGVpZ2h0OiB2YXIoLS1wLXJhZGlvYnV0dG9uLXNtLWhlaWdodCk7XG4gICAgLS1wLXJhZGlvYnV0dG9uLWljb24tc2l6ZTogdmFyKC0tcC1yYWRpb2J1dHRvbi1pY29uLXNtLXNpemUpO1xufVxuXG4ucC1yYWRpb2J1dHRvbi1sZyB7XG4gICAgLS1wLXJhZGlvYnV0dG9uLXdpZHRoOiB2YXIoLS1wLXJhZGlvYnV0dG9uLWxnLXdpZHRoKTtcbiAgICAtLXAtcmFkaW9idXR0b24taGVpZ2h0OiB2YXIoLS1wLXJhZGlvYnV0dG9uLWxnLWhlaWdodCk7XG4gICAgLS1wLXJhZGlvYnV0dG9uLWljb24tc2l6ZTogdmFyKC0tcC1yYWRpb2J1dHRvbi1pY29uLWxnLXNpemUpO1xufVxuXG4vKiBjaGVja2VkIGluc2lkZSBhIHNlbGVjdGlvbiAoc2VsZWN0ZWQgcm93IC8gaXRlbSk6IGEgcmltIGluIHRoZSBzZWxlY3Rpb24gdGV4dCBjb2xvciwgc2VlIGNoZWNrYm94LmNzcyAqL1xuLnAtc3RhdGUtaGlnaGxpZ2h0IC5wLXJhZGlvYnV0dG9uIC5wLXJhZGlvYnV0dG9uLWJveC5wLXN0YXRlLWFjdGl2ZS5wLXN0YXRlLWFjdGl2ZSB7XG4gICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1wLWhpZ2hsaWdodC1jb2xvcik7XG59XG5cbi8qXG4gKiBTdGF0ZSBsYXllciAoTWF0ZXJpYWwgMyk6IGEgY2lyY2xlIG9mIC0tcC1yYWRpb2J1dHRvbi1zdGF0ZS1sYXllci1zaXplIGFyb3VuZCB0aGUgYm94IG9uIGhvdmVyLCBpbiB0aGUgaG92ZXIgYm9yZGVyXG4gKiBjb2xvciwgY2hlY2tlZCBpbiB0aGUgY2hlY2tlZCBib3JkZXIgY29sb3IgKC0tcC1yYWRpb2J1dHRvbi1ob3Zlci1zdGF0ZS1sYXllci1vcGFjaXR5LCAwJSBpbiB0aGUgcHJlc2V0cyB3aXRob3V0IGl0KS5cbiAqIFRoZSByaXBwbGUgb2YgdGhlIHByZXNzIGRyYXdzIHRoZSBzYW1lIGNpcmNsZSAocmlwcGxlL3JpcHBsZS5jc3MpLiBObyBmb2N1cyBsYXllcjogdGhlIGNvbXBvbmVudCBmb2N1c2VzIHRoZSBpbnB1dCBieVxuICogc2NyaXB0LCBzbyBpdCB3b3VsZCBzdGF5IGFmdGVyIGEgY2xpY2sgKDpmb2N1cy12aXNpYmxlKTsga2V5Ym9hcmQgZm9jdXMgaGFzIHRoZSBmb2N1cyByaW5nLlxuICovXG4ucC1yYWRpb2J1dHRvbiAucC1yYWRpb2J1dHRvbi1ib3gge1xuICAgIC0tX2xheWVyLWNvbG9yOiB2YXIoLS1wLXJhZGlvYnV0dG9uLWhvdmVyLWJvcmRlci1jb2xvcik7XG4gICAgLS1fbGF5ZXItb3BhY2l0eTogMCU7XG5cbiAgICAmOjpiZWZvcmUge1xuICAgICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogNTAlO1xuICAgICAgICBsZWZ0OiA1MCU7XG4gICAgICAgIHdpZHRoOiB2YXIoLS1wLXJhZGlvYnV0dG9uLXN0YXRlLWxheWVyLXNpemUpO1xuICAgICAgICBoZWlnaHQ6IHZhcigtLXAtcmFkaW9idXR0b24tc3RhdGUtbGF5ZXItc2l6ZSk7XG4gICAgICAgIHRyYW5zbGF0ZTogLTUwJSAtNTAlO1xuICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgICAgIGJhY2tncm91bmQ6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1fbGF5ZXItY29sb3IpIHZhcigtLV9sYXllci1vcGFjaXR5KSwgdHJhbnNwYXJlbnQpO1xuICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCB2YXIoLS1wLXJhZGlvYnV0dG9uLXRyYW5zaXRpb24tZHVyYXRpb24pO1xuICAgIH1cblxuICAgICYucC1zdGF0ZS1hY3RpdmUge1xuICAgICAgICAtLV9sYXllci1jb2xvcjogdmFyKC0tcC1yYWRpb2J1dHRvbi1jaGVja2VkLWJvcmRlci1jb2xvcik7XG4gICAgfVxuXG4gICAgJi5wLXN0YXRlLWhvdmVyLFxuICAgICY6bm90KC5wLXN0YXRlLWRpc2FibGVkKTpob3ZlciB7XG4gICAgICAgIC0tX2xheWVyLW9wYWNpdHk6IHZhcigtLXAtcmFkaW9idXR0b24taG92ZXItc3RhdGUtbGF5ZXItb3BhY2l0eSk7XG4gICAgfVxufVxuXG5AbWVkaWEgKGZvcmNlZC1jb2xvcnM6IGFjdGl2ZSkge1xuICAgIC5wLXJhZGlvYnV0dG9uIC5wLXJhZGlvYnV0dG9uLWJveDo6YmVmb3JlIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG59XG4iLCAiLypcbiAqIFJpcHBsZSAoTWF0ZXJpYWwpOiBhbiBpbmsgY2lyY2xlIHNwcmVhZHMgd2hlbiBhIGJ1dHRvbiwgbWVudSBpdGVtLCBsaXN0IG9wdGlvbiwgdGFiLCAuLi4gaXMgcHJlc3NlZC5cbiAqIHJpcHBsZS50cyBhZGRzIHNwYW4ucC1pbmstY29udGFpbmVyID4gc3Bhbi5wLWluayB0byB0aGUgcHJlc3NlZCBlbGVtZW50IGlmIC0tcC1yaXBwbGUtb3BhY2l0eSBpcyBhYm92ZSAwICh0aGUgcmlwcGxlXG4gKiBibG9jayBvZiBwcmVzZXRzLyouY3NzOiAwID0gb2ZmLCBNYXRlcmlhbCAwLjEyKSwgYW5pbWF0ZXMgaXQgKGdyb3cgZnJvbSB0aGUgcG9pbnRlciB0byB0aGUgY2VudGVyIG92ZXJcbiAqIC0tcC1yaXBwbGUtZHVyYXRpb24sIGZhZGUgaW4gLyBvdXQpIGFuZCByZW1vdmVzIGl0IGFmdGVyIHRoZSByZWxlYXNlLlxuICovXG4vKiBvdmVyIHRoZSBwcmVzc2VkIGVsZW1lbnQ6IGluc2V0IDAgaWYgaXQgaXMgcG9zaXRpb25lZCwgZWxzZSByaXBwbGUudHMgcGxhY2VzIGl0ICovXG4ucC1pbmstY29udGFpbmVyIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgaW5zZXQ6IDA7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBib3JkZXItcmFkaXVzOiBpbmhlcml0O1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xufVxuXG4vKiBjaGVja2JveCwgcmFkaW8gYnV0dG9uLCBzd2l0Y2ggaGFuZGxlOiB0aGUgNDBweCBjaXJjbGUgb2YgdGhlIE1hdGVyaWFsIDMgc3RhdGUgbGF5ZXIgYXJvdW5kIHRoZSBjb250cm9sLCBpbiB0aGUgdGV4dFxuICAgY29sb3IsIGNoZWNrZWQgaW4gdGhlIHByaW1hcnkgY29sb3IgKi9cbi5wLWluay1jb250YWluZXIucC1pbmstdW5ib3VuZGVkIHtcbiAgICBpbnNldDogYXV0bztcbiAgICB0b3A6IDUwJTtcbiAgICBsZWZ0OiA1MCU7XG4gICAgd2lkdGg6IDIuNXJlbTtcbiAgICBoZWlnaHQ6IDIuNXJlbTtcbiAgICB0cmFuc2xhdGU6IC01MCUgLTUwJTtcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgY29sb3I6IHZhcigtLXAtdGV4dC1jb2xvcik7XG5cbiAgICAucC1zdGF0ZS1hY3RpdmUgPiAmLFxuICAgIC5wLXRvZ2dsZXN3aXRjaC1jaGVja2VkICYge1xuICAgICAgICBjb2xvcjogdmFyKC0tcC1wcmltYXJ5LWNvbG9yKTtcbiAgICB9XG59XG5cbi8qIHRoZSBzb2Z0IGVkZ2Ugb2YgdGhlIE1hdGVyaWFsIDMgcmlwcGxlOyByaXBwbGUudHMgc2V0cyB0aGUgc2l6ZSBhbmQgYW5pbWF0ZXMgdGhlIHRyYW5zZm9ybSBhbmQgdGhlIG9wYWNpdHksIGZyb20gdGhlXG4gICB2YWx1ZXMgaGVyZTogdGhlIG9wYWNpdHkgd2hpbGUgcHJlc3NlZCwgdGhlIGdyb3cgZHVyYXRpb24gYW5kIGN1cnZlICovXG4ucC1pbmsge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogMDtcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgYmFja2dyb3VuZDogcmFkaWFsLWdyYWRpZW50KGNsb3Nlc3Qtc2lkZSwgdmFyKC0tcC1yaXBwbGUtY29sb3IpIG1heChjYWxjKDEwMCUgLSA3MHB4KSwgNjUlKSwgdHJhbnNwYXJlbnQgMTAwJSk7XG4gICAgb3BhY2l0eTogdmFyKC0tcC1yaXBwbGUtb3BhY2l0eSk7XG4gICAgdHJhbnNpdGlvbi1kdXJhdGlvbjogdmFyKC0tcC1yaXBwbGUtZHVyYXRpb24pO1xuICAgIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiB2YXIoLS1wLXRyYW5zaXRpb24tZWFzaW5nKTtcbn1cblxuQG1lZGlhIChmb3JjZWQtY29sb3JzOiBhY3RpdmUpIHtcbiAgICAucC1pbmstY29udGFpbmVyIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG59XG4iLCAiLypcbiAqIFJvdyB2YXJpYW50cyBvZiB0aGUgY29tcG9uZW50cyB3aG9zZSBpdGVtcyBhcmUgcm93czogcDpzZWxlY3RPbmVMaXN0Ym94LCBwOnNlbGVjdE1hbnlNZW51IChzdHlsZUNsYXNzLCB0aGUgcm9vdFxuICogY29udGFpbnMgdGhlIGl0ZW1zKSBhbmQgcDpzZWxlY3RPbmVNZW51LCBwOmF1dG9Db21wbGV0ZSAocGFuZWxTdHlsZUNsYXNzLCB0aGUgcGFuZWwgY29udGFpbnMgdGhlIGl0ZW1zKS5cbiAqXG4gKiBTdXBwb3J0ZWQgY2xhc3NlczogcC1yb3dzLXN0cmlwZWQgKHN0cmlwZWQgcm93czsgbGlzdCBtb2RlIGFuZCB0YWJsZSBtb2RlIG9mIHA6Y29sdW1uIGNoaWxkcmVuKSxcbiAqICAgICAgICAgICAgICAgICAgICBwLXJvd3MtZ3JpZGxpbmVzIChjZWxsIGJvcmRlcnM7IHRhYmxlIG1vZGUsIHA6c2VsZWN0T25lTWVudSBhbHdheXMgaGFzIHRoZW0pLFxuICogICAgICAgICAgICAgICAgICAgIHAtcm93cy1zbSwgcC1yb3dzLWxnIChjZWxsIHBhZGRpbmc7IHRhYmxlIG1vZGUpXG4gKlxuICogR3JpZGxpbmVzIGFuZCBzaXplcyBvbmx5IHNldCBwcml2YXRlIHZhcmlhYmxlcywgd2hpY2ggdGhlIGNvbXBvbmVudCBDU1MgcmVhZHMgb24gaXRzIGNlbGxzOlxuICogICAtLV90YWJsZS1ncmlkbGluZXMgICAgICAgICAgICAgICAgICAgIGJvcmRlciB3aWR0aCBvZiB0aGUgZ3JpZGxpbmVzICh1bnNldDogdGhlIGNvbXBvbmVudCdzIG93biBib3JkZXJzKVxuICogICAtLV90YWJsZS1jZWxsLXBhZGRpbmcgICAgICAgICAgICAgICAgIGJvZHkgY2VsbCBwYWRkaW5nICh1bnNldDogdGhlIHJlZ3VsYXIgcGFkZGluZyBvZiB0aGUgY29tcG9uZW50KVxuICogICAtLV90YWJsZS1oZWFkZXItY2VsbC1wYWRkaW5nICAgICAgICAgIGhlYWRlciBjZWxsIHBhZGRpbmdcbiAqIFRoZSBjb21wb25lbnQgbWFwcyB0aGUgc2l6ZXMgdG8gaXRzIG93biB0b2tlbnMgb24gdGhlIHRhYmxlICgtLV90YWJsZS1jZWxsLXNtLXBhZGRpbmcsIC0tX3RhYmxlLWNlbGwtbGctcGFkZGluZyxcbiAqIC0tX3RhYmxlLWhlYWRlci1jZWxsLXNtLXBhZGRpbmcsIC0tX3RhYmxlLWhlYWRlci1jZWxsLWxnLXBhZGRpbmcpLCBzbyBhIHNpemUgaXMgcmVsYXRpdmUgdG8gdGhlIHJlZ3VsYXIgY2VsbC5cbiAqIEEgdmFyaWFudCBzbyBuZXZlciBjb21wZXRlcyB3aXRoIHRoZSBydWxlcyBvZiB0aGUgY29tcG9uZW50IChyb3cgc3RhdGVzLCB0aGUgbGFzdCByb3cgd2l0aG91dCBib3R0b20gYm9yZGVyKS5cbiAqL1xuLnAtcm93cy1ncmlkbGluZXMgOmlzKC5wLWF1dG9jb21wbGV0ZS10YWJsZSwgdGFibGUucC1zZWxlY3RsaXN0Ym94LWxpc3QpIHtcbiAgICAtLV90YWJsZS1ncmlkbGluZXM6IDFweDtcbn1cblxuLnAtcm93cy1zbSA6aXMoLnAtYXV0b2NvbXBsZXRlLXRhYmxlLCAucC1zZWxlY3RvbmVtZW51LXRhYmxlLCB0YWJsZS5wLXNlbGVjdGxpc3Rib3gtbGlzdCkge1xuICAgIC0tX3RhYmxlLWNlbGwtcGFkZGluZzogdmFyKC0tX3RhYmxlLWNlbGwtc20tcGFkZGluZyk7XG4gICAgLS1fdGFibGUtaGVhZGVyLWNlbGwtcGFkZGluZzogdmFyKC0tX3RhYmxlLWhlYWRlci1jZWxsLXNtLXBhZGRpbmcpO1xufVxuXG4ucC1yb3dzLWxnIDppcygucC1hdXRvY29tcGxldGUtdGFibGUsIC5wLXNlbGVjdG9uZW1lbnUtdGFibGUsIHRhYmxlLnAtc2VsZWN0bGlzdGJveC1saXN0KSB7XG4gICAgLS1fdGFibGUtY2VsbC1wYWRkaW5nOiB2YXIoLS1fdGFibGUtY2VsbC1sZy1wYWRkaW5nKTtcbiAgICAtLV90YWJsZS1oZWFkZXItY2VsbC1wYWRkaW5nOiB2YXIoLS1fdGFibGUtaGVhZGVyLWNlbGwtbGctcGFkZGluZyk7XG59XG5cbi8qXG4gKiBzdHJpcGVkOiBldmVyeSBzZWNvbmQgdmlzaWJsZSBpdGVtLiBUaGUgZmlsdGVycyBvZiBwOnNlbGVjdE9uZU1lbnUgLyBwOnNlbGVjdE9uZUxpc3Rib3ggLyBwOnNlbGVjdE1hbnlNZW51IGhpZGUgdGhlXG4gKiBpdGVtcyB0aGV5IGZpbHRlciBvdXQgd2l0aCBwLWhpZGRlbiwgd2hpY2ggXCJvZiBTXCIgc2tpcHM7IGdyb3VwIGhlYWRlcnMgYW5kIHRoZSBtb3JlVGV4dCByb3cgb2YgcDphdXRvQ29tcGxldGUgYXJlIG5vXG4gKiBpdGVtcy4gSXRlbXMgd2l0aCBhIHN0YXRlIChob3Zlciwga2V5Ym9hcmQgZm9jdXMsIHNlbGVjdGVkKSBrZWVwIHRoZWlyIG93biBiYWNrZ3JvdW5kLlxuICogTGlzdCBtb2RlIHVzZXMgdGhlIG9wdGlvbiB0b2tlbiBvZiB0aGUgY29tcG9uZW50LCB0YWJsZSBtb2RlIHRoZSBEYXRhVGFibGUgcm93IHRva2VuLlxuICovXG4ucC1yb3dzLXN0cmlwZWQge1xuICAgIGxpLnAtc2VsZWN0bGlzdGJveC1pdGVtOm50aC1jaGlsZChldmVuIG9mIC5wLXNlbGVjdGxpc3Rib3gtaXRlbTpub3QoLnAtaGlkZGVuKSk6bm90KC5wLXN0YXRlLWhvdmVyLFxuICAgICAgICAucC1zdGF0ZS1oaWdobGlnaHQsIC5wLWxpc3Rib3gtb3V0bGluZSwgOmZvY3VzLXZpc2libGUpIHtcbiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tcC1saXN0Ym94LW9wdGlvbi1zdHJpcGVkLWJhY2tncm91bmQpO1xuICAgIH1cblxuICAgIGxpLnAtc2VsZWN0b25lbWVudS1pdGVtOm50aC1jaGlsZChldmVuIG9mIC5wLXNlbGVjdG9uZW1lbnUtaXRlbTpub3QoLnAtaGlkZGVuKSk6bm90KC5wLXN0YXRlLWhvdmVyLFxuICAgICAgICAucC1zdGF0ZS1mb2N1cywgLnAtc3RhdGUtaGlnaGxpZ2h0KSB7XG4gICAgICAgIGJhY2tncm91bmQ6IHZhcigtLXAtc2VsZWN0LW9wdGlvbi1zdHJpcGVkLWJhY2tncm91bmQpO1xuICAgIH1cblxuICAgIGxpLnAtYXV0b2NvbXBsZXRlLWxpc3QtaXRlbTpudGgtY2hpbGQoZXZlbiBvZiAucC1hdXRvY29tcGxldGUtbGlzdC1pdGVtKTpub3QoLnAtc3RhdGUtaGlnaGxpZ2h0KSB7XG4gICAgICAgIGJhY2tncm91bmQ6IHZhcigtLXAtYXV0b2NvbXBsZXRlLW9wdGlvbi1zdHJpcGVkLWJhY2tncm91bmQpO1xuICAgIH1cblxuICAgIDppcyh0ci5wLXNlbGVjdGxpc3Rib3gtaXRlbSwgdHIucC1zZWxlY3RvbmVtZW51LXJvdywgdHIucC1hdXRvY29tcGxldGUtcm93KTpudGgtY2hpbGQoZXZlbiBvZiA6aXMoLnAtc2VsZWN0bGlzdGJveC1pdGVtLFxuICAgICAgICAucC1zZWxlY3RvbmVtZW51LXJvdywgLnAtYXV0b2NvbXBsZXRlLXJvdyk6bm90KC5wLWhpZGRlbikpOm5vdCgucC1zdGF0ZS1ob3ZlciwgLnAtc3RhdGUtZm9jdXMsIC5wLXN0YXRlLWhpZ2hsaWdodCxcbiAgICAgICAgLnAtbGlzdGJveC1vdXRsaW5lLCA6Zm9jdXMtdmlzaWJsZSkge1xuICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1wLWRhdGF0YWJsZS1yb3ctc3RyaXBlZC1iYWNrZ3JvdW5kKTtcbiAgICB9XG59XG4iLCAiLypcbiAqIEFjY29yZGlvbjogcDphY2NvcmRpb25QYW5lbFxuICpcbiAqIFBGIHJlbmRlcnMgaGVhZGVyL2NvbnRlbnQgcGFpcnMgYXMgc2libGluZ3MgKG5vIHBhbmVsIHdyYXBwZXIpLCBzbyB0aGUgUHJpbWVVSVggXCJwYW5lbFwiIGJvcmRlclxuICogKGFjY29yZGlvbi5wYW5lbC5ib3JkZXIuKikgaXMgZHJhd24gYnkgYW4gOjphZnRlciBvdmVybGF5IG9uIHRoZSBsYXN0IHZpc2libGUgZWxlbWVudCBvZiBlYWNoIHBhaXI6XG4gKiB0aGUgaGVhZGVyIHdoaWxlIGNvbGxhcHNlZCwgdGhlIGNvbnRlbnQgd2hpbGUgZXhwYW5kZWQuXG4gKiBTdGF0ZXM6IHAtc3RhdGUtYWN0aXZlLCBwLXN0YXRlLWhvdmVyLCBwLXN0YXRlLWRpc2FibGVkLCBwLXN0YXRlLWVycm9yLCBwLWFjY29yZGlvbi1ydGxcbiAqL1xuLnAtYWNjb3JkaW9uIHtcbiAgICAucC1hY2NvcmRpb24taGVhZGVyIHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIHBhZGRpbmc6IHZhcigtLXAtYWNjb3JkaW9uLWhlYWRlci1wYWRkaW5nKTtcbiAgICAgICAgZm9udC1zaXplOiB2YXIoLS1wLWFjY29yZGlvbi1oZWFkZXItZm9udC1zaXplKTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IHZhcigtLXAtYWNjb3JkaW9uLWhlYWRlci1mb250LXdlaWdodCk7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1wLWFjY29yZGlvbi1oZWFkZXItY29sb3IpO1xuICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1wLWFjY29yZGlvbi1oZWFkZXItYmFja2dyb3VuZCk7XG4gICAgICAgIGJvcmRlci1zdHlsZTogc29saWQ7XG4gICAgICAgIGJvcmRlci13aWR0aDogdmFyKC0tcC1hY2NvcmRpb24taGVhZGVyLWJvcmRlci13aWR0aCk7XG4gICAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tcC1hY2NvcmRpb24taGVhZGVyLWJvcmRlci1jb2xvcik7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXAtYWNjb3JkaW9uLWhlYWRlci1ib3JkZXItcmFkaXVzKTtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAtd2Via2l0LXVzZXItc2VsZWN0OiBub25lO1xuICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgICAgICAgb3V0bGluZTogMCBub25lO1xuICAgICAgICBvdXRsaW5lLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCB2YXIoLS1wLWFjY29yZGlvbi10cmFuc2l0aW9uLWR1cmF0aW9uKSwgY29sb3IgdmFyKC0tcC1hY2NvcmRpb24tdHJhbnNpdGlvbi1kdXJhdGlvbiksXG4gICAgICAgICAgICBvdXRsaW5lLWNvbG9yIHZhcigtLXAtYWNjb3JkaW9uLXRyYW5zaXRpb24tZHVyYXRpb24pLCBib3gtc2hhZG93IHZhcigtLXAtYWNjb3JkaW9uLXRyYW5zaXRpb24tZHVyYXRpb24pO1xuICAgIH1cblxuICAgIC5wLWFjY29yZGlvbi1oZWFkZXI6bm90KC5wLXN0YXRlLWFjdGl2ZSk6OmFmdGVyLFxuICAgIC5wLWFjY29yZGlvbi1jb250ZW50OjphZnRlciB7XG4gICAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgaW5zZXQ6IDA7XG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICAgICAgICBib3JkZXItd2lkdGg6IHZhcigtLXAtYWNjb3JkaW9uLXBhbmVsLWJvcmRlci13aWR0aCk7XG4gICAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tcC1hY2NvcmRpb24tcGFuZWwtYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogaW5oZXJpdDtcbiAgICB9XG5cbiAgICAucC1hY2NvcmRpb24taGVhZGVyOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgYm9yZGVyLXdpZHRoOiB2YXIoLS1wLWFjY29yZGlvbi1oZWFkZXItZmlyc3QtYm9yZGVyLXdpZHRoKTtcbiAgICAgICAgYm9yZGVyLXN0YXJ0LXN0YXJ0LXJhZGl1czogdmFyKC0tcC1hY2NvcmRpb24taGVhZGVyLWZpcnN0LXRvcC1ib3JkZXItcmFkaXVzKTtcbiAgICAgICAgYm9yZGVyLXN0YXJ0LWVuZC1yYWRpdXM6IHZhcigtLXAtYWNjb3JkaW9uLWhlYWRlci1maXJzdC10b3AtYm9yZGVyLXJhZGl1cyk7XG4gICAgfVxuXG4gICAgPiAucC1hY2NvcmRpb24taGVhZGVyOm5vdCg6aGFzKH4gLnAtYWNjb3JkaW9uLWhlYWRlcikpIHtcbiAgICAgICAgYm9yZGVyLWVuZC1zdGFydC1yYWRpdXM6IHZhcigtLXAtYWNjb3JkaW9uLWhlYWRlci1sYXN0LWJvdHRvbS1ib3JkZXItcmFkaXVzKTtcbiAgICAgICAgYm9yZGVyLWVuZC1lbmQtcmFkaXVzOiB2YXIoLS1wLWFjY29yZGlvbi1oZWFkZXItbGFzdC1ib3R0b20tYm9yZGVyLXJhZGl1cyk7XG4gICAgfVxuXG4gICAgPiAucC1hY2NvcmRpb24taGVhZGVyLnAtc3RhdGUtYWN0aXZlOm5vdCg6aGFzKH4gLnAtYWNjb3JkaW9uLWhlYWRlcikpIHtcbiAgICAgICAgYm9yZGVyLWVuZC1zdGFydC1yYWRpdXM6IHZhcigtLXAtYWNjb3JkaW9uLWhlYWRlci1sYXN0LWFjdGl2ZS1ib3R0b20tYm9yZGVyLXJhZGl1cyk7XG4gICAgICAgIGJvcmRlci1lbmQtZW5kLXJhZGl1czogdmFyKC0tcC1hY2NvcmRpb24taGVhZGVyLWxhc3QtYWN0aXZlLWJvdHRvbS1ib3JkZXItcmFkaXVzKTtcbiAgICB9XG5cbiAgICAucC1hY2NvcmRpb24taGVhZGVyIHtcbiAgICAgICAgJi5wLXN0YXRlLWhvdmVyLFxuICAgICAgICAmOm5vdCgucC1zdGF0ZS1hY3RpdmUsIC5wLXN0YXRlLWRpc2FibGVkKTpob3ZlciB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1wLWFjY29yZGlvbi1oZWFkZXItaG92ZXItYmFja2dyb3VuZCk7XG4gICAgICAgICAgICBjb2xvcjogdmFyKC0tcC1hY2NvcmRpb24taGVhZGVyLWhvdmVyLWNvbG9yKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYucC1zdGF0ZS1hY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tcC1hY2NvcmRpb24taGVhZGVyLWFjdGl2ZS1iYWNrZ3JvdW5kKTtcbiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1wLWFjY29yZGlvbi1oZWFkZXItYWN0aXZlLWNvbG9yKTtcblxuICAgICAgICAgICAgJjpub3QoLnAtc3RhdGUtZGlzYWJsZWQpOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1wLWFjY29yZGlvbi1oZWFkZXItYWN0aXZlLWhvdmVyLWJhY2tncm91bmQpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1wLWFjY29yZGlvbi1oZWFkZXItYWN0aXZlLWhvdmVyLWNvbG9yKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICY6bm90KC5wLXN0YXRlLWRpc2FibGVkKTpmb2N1cy12aXNpYmxlIHtcbiAgICAgICAgICAgIG91dGxpbmU6IHZhcigtLXAtYWNjb3JkaW9uLWhlYWRlci1mb2N1cy1yaW5nLXdpZHRoKSB2YXIoLS1wLWFjY29yZGlvbi1oZWFkZXItZm9jdXMtcmluZy1zdHlsZSkgdmFyKC0tcC1hY2NvcmRpb24taGVhZGVyLWZvY3VzLXJpbmctY29sb3IpO1xuICAgICAgICAgICAgb3V0bGluZS1vZmZzZXQ6IHZhcigtLXAtYWNjb3JkaW9uLWhlYWRlci1mb2N1cy1yaW5nLW9mZnNldCk7XG4gICAgICAgICAgICBib3gtc2hhZG93OiB2YXIoLS1wLWFjY29yZGlvbi1oZWFkZXItZm9jdXMtcmluZy1zaGFkb3cpO1xuICAgICAgICB9XG5cbiAgICAgICAgLyogaW52YWxpZDogUHJpbWVGYWNlcyB0b2tlbnMgKi9cbiAgICAgICAgJi5wLXN0YXRlLWVycm9yLFxuICAgICAgICAmLnAtc3RhdGUtZXJyb3I6aG92ZXIsXG4gICAgICAgICYucC1zdGF0ZS1lcnJvci5wLXN0YXRlLWFjdGl2ZTpob3ZlciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IHZhcigtLXAtYWNjb3JkaW9uLWhlYWRlci1pbnZhbGlkLWJvcmRlci1jb2xvcik7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1wLWFjY29yZGlvbi1oZWFkZXItaW52YWxpZC1iYWNrZ3JvdW5kKTtcbiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1wLWFjY29yZGlvbi1oZWFkZXItaW52YWxpZC1jb2xvcik7XG4gICAgICAgIH1cblxuICAgICAgICAmLnAtc3RhdGUtZXJyb3I6OmFmdGVyLFxuICAgICAgICAmLnAtc3RhdGUtZXJyb3IgKyAucC1hY2NvcmRpb24tY29udGVudCxcbiAgICAgICAgJi5wLXN0YXRlLWVycm9yICsgLnAtYWNjb3JkaW9uLWNvbnRlbnQ6OmFmdGVyIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tcC1hY2NvcmRpb24taGVhZGVyLWludmFsaWQtYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8qIHRvZ2dsZSBpY29uLCBhdCB0aGUgZW5kIGxpa2UgUHJpbWVVSVggKi9cbiAgICAgICAgPiAucC1hY2NvcmRpb24tdG9nZ2xlciB7XG4gICAgICAgICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogdmFyKC0tcC10eXBvZ3JhcGh5LWxpbmUtaGVpZ2h0KTtcbiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1wLWFjY29yZGlvbi1oZWFkZXItdG9nZ2xlLWljb24tY29sb3IpO1xuICAgICAgICAgICAgdHJhbnNpdGlvbjogY29sb3IgdmFyKC0tcC1hY2NvcmRpb24tdHJhbnNpdGlvbi1kdXJhdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLnAtc3RhdGUtaG92ZXIgPiAucC1hY2NvcmRpb24tdG9nZ2xlcixcbiAgICAgICAgJjpub3QoLnAtc3RhdGUtYWN0aXZlLCAucC1zdGF0ZS1kaXNhYmxlZCk6aG92ZXIgPiAucC1hY2NvcmRpb24tdG9nZ2xlciB7XG4gICAgICAgICAgICBjb2xvcjogdmFyKC0tcC1hY2NvcmRpb24taGVhZGVyLXRvZ2dsZS1pY29uLWhvdmVyLWNvbG9yKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYucC1zdGF0ZS1hY3RpdmUge1xuICAgICAgICAgICAgPiAucC1hY2NvcmRpb24tdG9nZ2xlciB7XG4gICAgICAgICAgICAgICAgY29sb3I6IHZhcigtLXAtYWNjb3JkaW9uLWhlYWRlci10b2dnbGUtaWNvbi1hY3RpdmUtY29sb3IpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOm5vdCgucC1zdGF0ZS1kaXNhYmxlZCk6aG92ZXIgPiAucC1hY2NvcmRpb24tdG9nZ2xlciB7XG4gICAgICAgICAgICAgICAgY29sb3I6IHZhcigtLXAtYWNjb3JkaW9uLWhlYWRlci10b2dnbGUtaWNvbi1hY3RpdmUtaG92ZXItY29sb3IpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi5wLXN0YXRlLWVycm9yID4gLnAtYWNjb3JkaW9uLXRvZ2dsZXIge1xuICAgICAgICAgICAgY29sb3I6IGluaGVyaXQ7XG4gICAgICAgIH1cblxuICAgICAgICAucC1hY2NvcmRpb24taGVhZGVyLWljb24ge1xuICAgICAgICAgICAgLS1faWNvbjogdmFyKC0tcC1hY2NvcmRpb24taGVhZGVyLWNvbGxhcHNlZC1pY29uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbYXJpYS1leHBhbmRlZD1cInRydWVcIl0gLnAtYWNjb3JkaW9uLWhlYWRlci1pY29uIHtcbiAgICAgICAgICAgIC0tX2ljb246IHZhcigtLXAtYWNjb3JkaW9uLWhlYWRlci1leHBhbmRlZC1pY29uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8qIG9wdGlvbnMgbWVudSB0cmlnZ2VyOiB0ZXh0L3NlY29uZGFyeSByb3VuZGVkIGljb24gYnV0dG9uIGxpa2UgdGhlIFByaW1lVUlYIHBhbmVsIGhlYWRlciBidXR0b25zICovXG4gICAgICAgIC5wLXBhbmVsLXRpdGxlYmFyLWljb24ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICB3aWR0aDogdmFyKC0tcC1idXR0b24taWNvbi1vbmx5LXdpZHRoKTtcbiAgICAgICAgICAgIGhlaWdodDogdmFyKC0tcC1idXR0b24taWNvbi1vbmx5LXdpZHRoKTtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgIC8qIG5vIHRva2VuOiB2ZXJ0aWNhbGx5IGNlbnRlciB0aGUgaWNvbiBidXR0b24gb24gdGhlIGhlYWRlciBsaW5lICovXG4gICAgICAgICAgICBtYXJnaW4tYmxvY2s6IGNhbGMoKHZhcigtLXAtdHlwb2dyYXBoeS1saW5lLWhlaWdodCkgKiAxZW0gLSB2YXIoLS1wLWJ1dHRvbi1pY29uLW9ubHktd2lkdGgpKSAvIDIpO1xuICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6IHZhcigtLXAtYnV0dG9uLXRleHQtc2Vjb25kYXJ5LWNvbG9yKTtcbiAgICAgICAgICAgIGJvcmRlcjogMCBub25lO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgLXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTtcbiAgICAgICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xuICAgICAgICAgICAgb3V0bGluZS1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIHZhcigtLXAtYnV0dG9uLXRyYW5zaXRpb24tZHVyYXRpb24pLCBjb2xvciB2YXIoLS1wLWJ1dHRvbi10cmFuc2l0aW9uLWR1cmF0aW9uKSxcbiAgICAgICAgICAgICAgICBvdXRsaW5lLWNvbG9yIHZhcigtLXAtYnV0dG9uLXRyYW5zaXRpb24tZHVyYXRpb24pLCBib3gtc2hhZG93IHZhcigtLXAtYnV0dG9uLXRyYW5zaXRpb24tZHVyYXRpb24pO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1wLWJ1dHRvbi10ZXh0LXNlY29uZGFyeS1ob3Zlci1iYWNrZ3JvdW5kKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogdmFyKC0tcC1idXR0b24tdGV4dC1zZWNvbmRhcnktY29sb3IpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tcC1idXR0b24tdGV4dC1zZWNvbmRhcnktYWN0aXZlLWJhY2tncm91bmQpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmZvY3VzLXZpc2libGUge1xuICAgICAgICAgICAgICAgIG91dGxpbmU6IHZhcigtLXAtYnV0dG9uLWZvY3VzLXJpbmctd2lkdGgpIHZhcigtLXAtYnV0dG9uLWZvY3VzLXJpbmctc3R5bGUpIHZhcigtLXAtYnV0dG9uLXNlY29uZGFyeS1mb2N1cy1yaW5nLWNvbG9yKTtcbiAgICAgICAgICAgICAgICBvdXRsaW5lLW9mZnNldDogdmFyKC0tcC1idXR0b24tZm9jdXMtcmluZy1vZmZzZXQpO1xuICAgICAgICAgICAgICAgIGJveC1zaGFkb3c6IHZhcigtLXAtYnV0dG9uLXNlY29uZGFyeS1mb2N1cy1yaW5nLXNoYWRvdyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5wLWFjY29yZGlvbi1oZWFkZXItbWVudS1pY29uIHtcbiAgICAgICAgICAgICAgICAtLV9pY29uOiB2YXIoLS1wLWFjY29yZGlvbi1oZWFkZXItbWVudS1pY29uKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5wLXBhbmVsLXRpdGxlYmFyLWljb24ge1xuICAgICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB9XG5cbiAgICAucC1wYW5lbC1hY3Rpb25zIHtcbiAgICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgIH1cblxuICAgIC5wLWFjY29yZGlvbi1jb250ZW50IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIHBhZGRpbmc6IHZhcigtLXAtYWNjb3JkaW9uLWNvbnRlbnQtcGFkZGluZyk7XG4gICAgICAgIGJhY2tncm91bmQ6IHZhcigtLXAtYWNjb3JkaW9uLWNvbnRlbnQtYmFja2dyb3VuZCk7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1wLWFjY29yZGlvbi1jb250ZW50LWNvbG9yKTtcbiAgICAgICAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgICAgICAgYm9yZGVyLXdpZHRoOiB2YXIoLS1wLWFjY29yZGlvbi1jb250ZW50LWJvcmRlci13aWR0aCk7XG4gICAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tcC1hY2NvcmRpb24tY29udGVudC1ib3JkZXItY29sb3IpO1xuICAgICAgICBvdmVyZmxvdzogYXV0bztcblxuICAgICAgICAvKiBubyB0b2tlbjogdGhlIGxhc3QgY29udGVudCBjbG9zZXMgdGhlIHJvdW5kZWQgYm94IG9wZW5lZCBieSB0aGUgZmlyc3QgaGVhZGVyICovXG4gICAgICAgICY6bGFzdC1vZi10eXBlIHtcbiAgICAgICAgICAgIGJvcmRlci1lbmQtc3RhcnQtcmFkaXVzOiB2YXIoLS1wLWFjY29yZGlvbi1oZWFkZXItbGFzdC1ib3R0b20tYm9yZGVyLXJhZGl1cyk7XG4gICAgICAgICAgICBib3JkZXItZW5kLWVuZC1yYWRpdXM6IHZhcigtLXAtYWNjb3JkaW9uLWhlYWRlci1sYXN0LWJvdHRvbS1ib3JkZXItcmFkaXVzKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qIFJUTDogdGhlIGZsb2F0cyAodG9nZ2xlIGljb24sIG9wdGlvbnMgbWVudSwgYWN0aW9ucykgbW92ZSB0byB0aGUgbGVmdCAoPSBlbmQpIGVkZ2UgKi9cbiAgICAmLnAtYWNjb3JkaW9uLXJ0bCB7XG4gICAgICAgIGRpcmVjdGlvbjogcnRsO1xuXG4gICAgICAgIC5wLWFjY29yZGlvbi1oZWFkZXIgPiAucC1hY2NvcmRpb24tdG9nZ2xlcixcbiAgICAgICAgLnAtcGFuZWwtdGl0bGViYXItaWNvbixcbiAgICAgICAgLnAtcGFuZWwtYWN0aW9ucyB7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsICIvKlxuICogQWpheFN0YXR1czogcDphamF4U3RhdHVzICsgdGhlIGlubGluZSBhamF4IHN0YXR1cyBvZiB0aGUgY29tcG9uZW50cyAoUHJpbWVGYWNlcyBvbmx5IHRva2VuczogdGhlIGFqYXhzdGF0dXMgYmxvY2tcbiAqIG9mIHByZXNldHMvKi5jc3MpXG4gKlxuICogTWFya3VwOiBkaXYjaWQgKHN0eWxlQ2xhc3MpID4gZGl2I2lkX3N0YXJ0IHwgX3N1Y2Nlc3MgfCBfY29tcGxldGUgfCBfZXJyb3IgKGRpc3BsYXk6bm9uZSwgdGhlIGNvbXBvbmVudCBzaG93cyB0aGVcbiAqICAgICAgICAgZmFjZXQgb2YgdGhlIGN1cnJlbnQgcmVxdWVzdCBwaGFzZSkgYW5kIGRpdiNpZF9kZWZhdWx0IChhbHdheXMgc2hvd24pLlxuICpcbiAqIFN1cHBvcnRlZCBjbGFzc2VzOlxuICogICBwLWFqYXhzdGF0dXMtYmFyICBhbiBpbmRldGVybWluYXRlIHByb2dyZXNzIGJhciBmaXhlZCBhdCB0aGUgdG9wIG9mIHRoZSB2aWV3cG9ydCB3aGlsZSBhIHJlcXVlc3QgcnVucy4gRWl0aGVyIG9uXG4gKiAgICAgICAgICAgICAgICAgICAgICBhbiBlbGVtZW50IGluIHRoZSBzdGFydCBmYWNldCAoPGY6ZmFjZXQgbmFtZT1cInN0YXJ0XCI+PGRpdiBjbGFzcz1cInAtYWpheHN0YXR1cy1iYXJcIi8+PC9mOmZhY2V0PilcbiAqICAgICAgICAgICAgICAgICAgICAgIG9yIGFzIHN0eWxlQ2xhc3Mgb2YgcDphamF4U3RhdHVzIGl0c2VsZiwgd2hpY2ggdGhlbiBuZWVkcyBhIHN0YXJ0IGZhY2V0IChpdHMgY29udGVudCBpcyBoaWRkZW4pLlxuICpcbiAqIElubGluZSBhamF4IHN0YXR1czogYnV0dG9ucyAoZnJvbSB0aGUgY29yZSksIHA6YXV0b0NvbXBsZXRlIGFuZCBwOnNlbGVjdE9uZU1lbnUgZ2V0IGEgc3Bpbm5lclxuICogPHNwYW4gY2xhc3M9XCJwLWljb24tbG9hZGluZyBwLWljb24gcC1sb2FkaW5nLWljb24gcC1hamF4c3RhdHVzLWxvYWRpbmctaWNvblwiPiB3aGlsZSB0aGVpciByZXF1ZXN0IHJ1bnMgKHRoZVxuICogLS1wLWFqYXhzdGF0dXMtbG9hZGluZy1pY29uIHRva2VuLCByb3RhdGVkIGJ5IHRoZSBwLXNwaW4gYW5pbWF0aW9uIGJlbG93KS5cbiAqL1xuXG4vKiB0aGUgcm90YXRpb24gb2YgZXZlcnkgc3Bpbm5lciBvZiB0aGUgdGhlbWUgKGJsb2NrVUksIGNvbW1hbmRMaW5rLCBkYXRhU2Nyb2xsZXIsIG91dHB1dFBhbmVsLCBpbmxpbmUgYWpheCBzdGF0dXMpO1xuICAgcHJlZmVycy1yZWR1Y2VkLW1vdGlvbiBzdG9wcyBpdCAoYmFzZS9kb2N1bWVudC5jc3MpICovXG5Aa2V5ZnJhbWVzIHAtc3BpbiB7XG4gICAgZnJvbSB7XG4gICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDBkZWcpO1xuICAgIH1cblxuICAgIHRvIHtcbiAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKTtcbiAgICB9XG59XG5cbkBrZXlmcmFtZXMgcC1hamF4c3RhdHVzLWJhci1hbmltIHtcbiAgICBmcm9tIHtcbiAgICAgICAgaW5zZXQtaW5saW5lLXN0YXJ0OiAtNDAlO1xuICAgIH1cblxuICAgIHRvIHtcbiAgICAgICAgaW5zZXQtaW5saW5lLXN0YXJ0OiAxMDAlO1xuICAgIH1cbn1cblxuLnAtaWNvbi1sb2FkaW5nIHtcbiAgICBhbmltYXRpb246IHAtc3BpbiB2YXIoLS1wLWFqYXhzdGF0dXMtbG9hZGluZy1pY29uLWFuaW1hdGlvbi1kdXJhdGlvbikgbGluZWFyIGluZmluaXRlO1xufVxuXG4ucC1hamF4c3RhdHVzLWxvYWRpbmctaWNvbiB7XG4gICAgLS1faWNvbjogdmFyKC0tcC1hamF4c3RhdHVzLWxvYWRpbmctaWNvbik7XG59XG5cbi8qIHRoZSBiYXI6IGFuIGVsZW1lbnQgaW4gdGhlIHN0YXJ0IGZhY2V0LCBvciB0aGUgc3RhcnQgZmFjZXQgb2YgcDphamF4U3RhdHVzIHN0eWxlQ2xhc3M9XCJwLWFqYXhzdGF0dXMtYmFyXCIgKi9cbi5wLWFqYXhzdGF0dXMtYmFyOm5vdCg6aGFzKD4gW2lkJD1cIl9zdGFydFwiXSkpLFxuLnAtYWpheHN0YXR1cy1iYXIgPiBbaWQkPVwiX3N0YXJ0XCJdIHtcbiAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgdG9wOiAwO1xuICAgIGluc2V0LWlubGluZTogMDtcbiAgICB6LWluZGV4OiA5OTk5O1xuICAgIGhlaWdodDogdmFyKC0tcC1hamF4c3RhdHVzLWJhci1oZWlnaHQpO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgZm9udC1zaXplOiAwO1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgIGJhY2tncm91bmQ6IHZhcigtLXAtYWpheHN0YXR1cy1iYXItYmFja2dyb3VuZCk7XG5cbiAgICAmOjpiZWZvcmUge1xuICAgICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICBpbnNldC1pbmxpbmUtc3RhcnQ6IC00MCU7XG4gICAgICAgIHdpZHRoOiA0MCU7XG4gICAgICAgIGJhY2tncm91bmQ6IHZhcigtLXAtYWpheHN0YXR1cy1iYXItdmFsdWUtYmFja2dyb3VuZCk7XG4gICAgICAgIGFuaW1hdGlvbjogcC1hamF4c3RhdHVzLWJhci1hbmltIHZhcigtLXAtYWpheHN0YXR1cy1iYXItYW5pbWF0aW9uLWR1cmF0aW9uKSBsaW5lYXIgaW5maW5pdGU7XG4gICAgfVxuXG4gICAgLyogdGhlIGNvbnRlbnQgb2YgdGhlIHN0YXJ0IGZhY2V0IHdoZW4gdGhlIGNsYXNzIGlzIG9uIHA6YWpheFN0YXR1cyAqL1xuICAgID4gKiB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxufVxuIiwgIi8qXG4gKiBBdXRvQ29tcGxldGU6IHA6YXV0b0NvbXBsZXRlIChzaW5nbGUsIG11bHRpcGxlLCBkcm9wZG93biwgZ3JvdXBzLCBpdGVtIHRhYmxlLCBpdGVtdGlwLCBtb3JlVGV4dCwgZm9vdGVyKVxuICpcbiAqIFRoZSBpbnB1dCAvIG11bHRpcGxlIGNvbnRhaW5lciBhcmUgLnAtaW5wdXRmaWVsZCAoZm9ybXMvaW5wdXRmaWVsZC5jc3MpLCBvbmx5IHRoZSBkaWZmZXJlbmNlcyBsaXZlIGhlcmUuXG4gKiBUaGUgZHJvcGRvd24gaXMgYSAucC1idXR0b246IGl0IG9ubHkgcmVtYXBzIHRoZSBwcml2YXRlIC0tXyogYnV0dG9uIHZhcmlhYmxlcyB0byB0aGUgYXV0b2NvbXBsZXRlIGRyb3Bkb3duIHRva2Vucy5cbiAqIFN1cHBvcnRlZCBjbGFzc2VzOiBwLWF1dG9jb21wbGV0ZS1kZCwgcC1hdXRvY29tcGxldGUtbXVsdGlwbGUsIHAtc3RhdGUtbG9hZGluZyAob24gLnAtYXV0b2NvbXBsZXRlKSxcbiAqICAgICAgICAgICAgICAgICAgICBwLXN0YXRlLWhpZ2hsaWdodCAoZm9jdXNlZCBpdGVtKSwgcC1zdGF0ZS1kaXNhYmxlZFxuICogUm93cyAocGFuZWxTdHlsZUNsYXNzLCBiYXNlL3Jvd3MuY3NzKTogcC1yb3dzLXN0cmlwZWQ7IHRhYmxlIG1vZGUgKHA6Y29sdW1uIGNoaWxkcmVuKTogcC1yb3dzLWdyaWRsaW5lcyxcbiAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwLXJvd3Mtc20sIHAtcm93cy1sZ1xuICovXG4ucC1hdXRvY29tcGxldGUge1xuICAgIC8qIHRoZSBpbnB1dCAvIG11bHRpcGxlIGNvbnRhaW5lciAoLnAtaW5wdXRmaWVsZCkgcmVhZCB0aGUgaW5wdXR0ZXh0IHRva2VuczogcG9pbnQgdGhlbSB0byB0aGUgYXV0b2NvbXBsZXRlIHRva2VucyAqL1xuICAgIC0tcC1pbnB1dHRleHQtYmFja2dyb3VuZDogdmFyKC0tcC1hdXRvY29tcGxldGUtYmFja2dyb3VuZCk7XG4gICAgLS1wLWlucHV0dGV4dC1kaXNhYmxlZC1iYWNrZ3JvdW5kOiB2YXIoLS1wLWF1dG9jb21wbGV0ZS1kaXNhYmxlZC1iYWNrZ3JvdW5kKTtcbiAgICAtLXAtaW5wdXR0ZXh0LWZpbGxlZC1iYWNrZ3JvdW5kOiB2YXIoLS1wLWF1dG9jb21wbGV0ZS1maWxsZWQtYmFja2dyb3VuZCk7XG4gICAgLS1wLWlucHV0dGV4dC1maWxsZWQtaG92ZXItYmFja2dyb3VuZDogdmFyKC0tcC1hdXRvY29tcGxldGUtZmlsbGVkLWhvdmVyLWJhY2tncm91bmQpO1xuICAgIC0tcC1pbnB1dHRleHQtZmlsbGVkLWZvY3VzLWJhY2tncm91bmQ6IHZhcigtLXAtYXV0b2NvbXBsZXRlLWZpbGxlZC1mb2N1cy1iYWNrZ3JvdW5kKTtcbiAgICAtLXAtaW5wdXR0ZXh0LWJvcmRlci1jb2xvcjogdmFyKC0tcC1hdXRvY29tcGxldGUtYm9yZGVyLWNvbG9yKTtcbiAgICAtLXAtaW5wdXR0ZXh0LWhvdmVyLWJvcmRlci1jb2xvcjogdmFyKC0tcC1hdXRvY29tcGxldGUtaG92ZXItYm9yZGVyLWNvbG9yKTtcbiAgICAtLXAtaW5wdXR0ZXh0LWZvY3VzLWJvcmRlci1jb2xvcjogdmFyKC0tcC1hdXRvY29tcGxldGUtZm9jdXMtYm9yZGVyLWNvbG9yKTtcbiAgICAtLXAtaW5wdXR0ZXh0LWludmFsaWQtYm9yZGVyLWNvbG9yOiB2YXIoLS1wLWF1dG9jb21wbGV0ZS1pbnZhbGlkLWJvcmRlci1jb2xvcik7XG4gICAgLS1wLWlucHV0dGV4dC1jb2xvcjogdmFyKC0tcC1hdXRvY29tcGxldGUtY29sb3IpO1xuICAgIC0tcC1pbnB1dHRleHQtZGlzYWJsZWQtY29sb3I6IHZhcigtLXAtYXV0b2NvbXBsZXRlLWRpc2FibGVkLWNvbG9yKTtcbiAgICAtLXAtaW5wdXR0ZXh0LXBsYWNlaG9sZGVyLWNvbG9yOiB2YXIoLS1wLWF1dG9jb21wbGV0ZS1wbGFjZWhvbGRlci1jb2xvcik7XG4gICAgLS1wLWlucHV0dGV4dC1pbnZhbGlkLXBsYWNlaG9sZGVyLWNvbG9yOiB2YXIoLS1wLWF1dG9jb21wbGV0ZS1pbnZhbGlkLXBsYWNlaG9sZGVyLWNvbG9yKTtcbiAgICAtLXAtaW5wdXR0ZXh0LXNoYWRvdzogdmFyKC0tcC1hdXRvY29tcGxldGUtc2hhZG93KTtcbiAgICAtLXAtaW5wdXR0ZXh0LXBhZGRpbmcteDogdmFyKC0tcC1hdXRvY29tcGxldGUtcGFkZGluZy14KTtcbiAgICAtLXAtaW5wdXR0ZXh0LXBhZGRpbmcteTogdmFyKC0tcC1hdXRvY29tcGxldGUtcGFkZGluZy15KTtcbiAgICAtLXAtaW5wdXR0ZXh0LWJvcmRlci1yYWRpdXM6IHZhcigtLXAtYXV0b2NvbXBsZXRlLWJvcmRlci1yYWRpdXMpO1xuICAgIC0tcC1pbnB1dHRleHQtZm9jdXMtcmluZy13aWR0aDogdmFyKC0tcC1hdXRvY29tcGxldGUtZm9jdXMtcmluZy13aWR0aCk7XG4gICAgLS1wLWlucHV0dGV4dC1mb2N1cy1yaW5nLXN0eWxlOiB2YXIoLS1wLWF1dG9jb21wbGV0ZS1mb2N1cy1yaW5nLXN0eWxlKTtcbiAgICAtLXAtaW5wdXR0ZXh0LWZvY3VzLXJpbmctY29sb3I6IHZhcigtLXAtYXV0b2NvbXBsZXRlLWZvY3VzLXJpbmctY29sb3IpO1xuICAgIC0tcC1pbnB1dHRleHQtZm9jdXMtcmluZy1vZmZzZXQ6IHZhcigtLXAtYXV0b2NvbXBsZXRlLWZvY3VzLXJpbmctb2Zmc2V0KTtcbiAgICAtLXAtaW5wdXR0ZXh0LWZvY3VzLXJpbmctc2hhZG93OiB2YXIoLS1wLWF1dG9jb21wbGV0ZS1mb2N1cy1yaW5nLXNoYWRvdyk7XG4gICAgLS1wLWlucHV0dGV4dC10cmFuc2l0aW9uLWR1cmF0aW9uOiB2YXIoLS1wLWF1dG9jb21wbGV0ZS10cmFuc2l0aW9uLWR1cmF0aW9uKTtcblxuICAgIHdpZHRoOiBhdXRvO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBib3gtc2hhZG93OiBub25lO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAvKiBkaXNhYmxlZDogdGhlIHJvb3QgY2FycmllcyBwLXN0YXRlLWRpc2FibGVkIHRvbzsgdGhlIGlucHV0IHNob3dzIHRoZSBkaXNhYmxlZCBmaWVsZCBsb29rIChsaWtlIHA6aW5wdXRUZXh0KSwgc29cbiAgICAgICB0aGUgcm9vdCBpcyBub3QgZmFkZWQgb24gdG9wIG9mIGl0LCBvbmx5IHRoZSBkcm9wZG93biBidXR0b24gKi9cbiAgICAmLnAtc3RhdGUtZGlzYWJsZWQge1xuICAgICAgICBvcGFjaXR5OiAxO1xuXG4gICAgICAgID4gLnAtYXV0b2NvbXBsZXRlLWRyb3Bkb3duIHtcbiAgICAgICAgICAgIG9wYWNpdHk6IHZhcigtLXAtZGlzYWJsZWQtb3BhY2l0eSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiBkcm9wZG93bjogaW5wdXQgKG9yIG11bHRpcGxlIGNvbnRhaW5lcikgYW5kIGJ1dHRvbiBzaWRlIGJ5IHNpZGUsIHRoZSBidXR0b24gc3RyZXRjaGVzIHRvIHRoZSBpbnB1dCBoZWlnaHQgKi9cbiAgICAmLnAtYXV0b2NvbXBsZXRlLWRkIHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBzdHJldGNoO1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogYm90dG9tO1xuICAgIH1cblxuICAgIC5wLWF1dG9jb21wbGV0ZS1pbnB1dC5wLWF1dG9jb21wbGV0ZS1kZC1pbnB1dCB7XG4gICAgICAgIHBhZGRpbmctYmxvY2s6IHZhcigtLXAtYXV0b2NvbXBsZXRlLXBhZGRpbmcteSk7XG4gICAgICAgIHBhZGRpbmctaW5saW5lOiB2YXIoLS1wLWF1dG9jb21wbGV0ZS1wYWRkaW5nLXgpO1xuICAgICAgICBib3JkZXItc3RhcnQtZW5kLXJhZGl1czogMDtcbiAgICAgICAgYm9yZGVyLWVuZC1lbmQtcmFkaXVzOiAwO1xuICAgIH1cblxuICAgIC5wLWF1dG9jb21wbGV0ZS1kcm9wZG93bi5wLWJ1dHRvbiB7XG4gICAgICAgIC0tX2JnOiB2YXIoLS1wLWF1dG9jb21wbGV0ZS1kcm9wZG93bi1iYWNrZ3JvdW5kKTtcbiAgICAgICAgLS1faG92ZXItYmc6IHZhcigtLXAtYXV0b2NvbXBsZXRlLWRyb3Bkb3duLWhvdmVyLWJhY2tncm91bmQpO1xuICAgICAgICAtLV9hY3RpdmUtYmc6IHZhcigtLXAtYXV0b2NvbXBsZXRlLWRyb3Bkb3duLWFjdGl2ZS1iYWNrZ3JvdW5kKTtcbiAgICAgICAgLS1fYm9yZGVyOiB2YXIoLS1wLWF1dG9jb21wbGV0ZS1kcm9wZG93bi1ib3JkZXItY29sb3IpO1xuICAgICAgICAtLV9ob3Zlci1ib3JkZXI6IHZhcigtLXAtYXV0b2NvbXBsZXRlLWRyb3Bkb3duLWhvdmVyLWJvcmRlci1jb2xvcik7XG4gICAgICAgIC0tX2FjdGl2ZS1ib3JkZXI6IHZhcigtLXAtYXV0b2NvbXBsZXRlLWRyb3Bkb3duLWFjdGl2ZS1ib3JkZXItY29sb3IpO1xuICAgICAgICAtLV9jb2xvcjogdmFyKC0tcC1hdXRvY29tcGxldGUtZHJvcGRvd24tY29sb3IpO1xuICAgICAgICAtLV9ob3Zlci1jb2xvcjogdmFyKC0tcC1hdXRvY29tcGxldGUtZHJvcGRvd24taG92ZXItY29sb3IpO1xuICAgICAgICAtLV9hY3RpdmUtY29sb3I6IHZhcigtLXAtYXV0b2NvbXBsZXRlLWRyb3Bkb3duLWFjdGl2ZS1jb2xvcik7XG4gICAgICAgIC0tX2ZvY3VzLXJpbmctY29sb3I6IHZhcigtLXAtYXV0b2NvbXBsZXRlLWRyb3Bkb3duLWZvY3VzLXJpbmctY29sb3IpO1xuICAgICAgICAtLV9mb2N1cy1yaW5nLXNoYWRvdzogdmFyKC0tcC1hdXRvY29tcGxldGUtZHJvcGRvd24tZm9jdXMtcmluZy1zaGFkb3cpO1xuXG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZmxleDogMCAwIGF1dG87XG4gICAgICAgIGhlaWdodDogYXV0bztcbiAgICAgICAgd2lkdGg6IHZhcigtLXAtYXV0b2NvbXBsZXRlLWRyb3Bkb3duLXdpZHRoKTtcbiAgICAgICAgLyogc3RyZXRjaGVkIHRvIHRoZSBpbnB1dCBoZWlnaHQgYnkgdGhlIGZsZXggcm93IChhbHNvIGZvciBwLWlucHV0dGV4dC1zbSAvIC1sZykgKi9cbiAgICAgICAgcGFkZGluZy1ibG9jazogMDtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBib3JkZXItaW5saW5lLXN0YXJ0LXdpZHRoOiAwO1xuICAgICAgICBib3JkZXItc3RhcnQtc3RhcnQtcmFkaXVzOiAwO1xuICAgICAgICBib3JkZXItZW5kLXN0YXJ0LXJhZGl1czogMDtcbiAgICAgICAgYm9yZGVyLXN0YXJ0LWVuZC1yYWRpdXM6IHZhcigtLXAtYXV0b2NvbXBsZXRlLWRyb3Bkb3duLWJvcmRlci1yYWRpdXMpO1xuICAgICAgICBib3JkZXItZW5kLWVuZC1yYWRpdXM6IHZhcigtLXAtYXV0b2NvbXBsZXRlLWRyb3Bkb3duLWJvcmRlci1yYWRpdXMpO1xuICAgICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIHZhcigtLXAtYXV0b2NvbXBsZXRlLXRyYW5zaXRpb24tZHVyYXRpb24pLCBjb2xvciB2YXIoLS1wLWF1dG9jb21wbGV0ZS10cmFuc2l0aW9uLWR1cmF0aW9uKSxcbiAgICAgICAgICAgIGJvcmRlci1jb2xvciB2YXIoLS1wLWF1dG9jb21wbGV0ZS10cmFuc2l0aW9uLWR1cmF0aW9uKSwgb3V0bGluZS1jb2xvciB2YXIoLS1wLWF1dG9jb21wbGV0ZS10cmFuc2l0aW9uLWR1cmF0aW9uKSxcbiAgICAgICAgICAgIGJveC1zaGFkb3cgdmFyKC0tcC1hdXRvY29tcGxldGUtdHJhbnNpdGlvbi1kdXJhdGlvbik7XG5cbiAgICAgICAgJjpmb2N1cy12aXNpYmxlIHtcbiAgICAgICAgICAgIG91dGxpbmU6IHZhcigtLXAtYXV0b2NvbXBsZXRlLWRyb3Bkb3duLWZvY3VzLXJpbmctd2lkdGgpIHZhcigtLXAtYXV0b2NvbXBsZXRlLWRyb3Bkb3duLWZvY3VzLXJpbmctc3R5bGUpIHZhcigtLV9mb2N1cy1yaW5nLWNvbG9yKTtcbiAgICAgICAgICAgIG91dGxpbmUtb2Zmc2V0OiB2YXIoLS1wLWF1dG9jb21wbGV0ZS1kcm9wZG93bi1mb2N1cy1yaW5nLW9mZnNldCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAucC1hdXRvY29tcGxldGUtZHJvcGRvd24taWNvbiB7XG4gICAgICAgIC0tX2ljb246IHZhcigtLXAtYXV0b2NvbXBsZXRlLWRyb3Bkb3duLWljb24pO1xuICAgIH1cblxuICAgIC5wLWljb24tbG9hZGluZyB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiA1MCU7XG4gICAgfVxuXG4gICAgJi5wLXN0YXRlLWxvYWRpbmcgLnAtaWNvbi1sb2FkaW5nIHtcbiAgICAgICAgaW5zZXQtaW5saW5lLWVuZDogdmFyKC0tcC1hdXRvY29tcGxldGUtcGFkZGluZy14KTtcbiAgICAgICAgbWFyZ2luLXRvcDogY2FsYygtMSAqIHZhcigtLXAtaWNvbi1zaXplKSAvIDIpO1xuICAgICAgICBjb2xvcjogdmFyKC0tcC1mb3JtLWZpZWxkLWljb24tY29sb3IpO1xuICAgIH1cblxuICAgICYucC1zdGF0ZS1sb2FkaW5nLnAtYXV0b2NvbXBsZXRlLWRkIC5wLWljb24tbG9hZGluZyB7XG4gICAgICAgIGluc2V0LWlubGluZS1lbmQ6IGNhbGModmFyKC0tcC1hdXRvY29tcGxldGUtcGFkZGluZy14KSArIHZhcigtLXAtYXV0b2NvbXBsZXRlLWRyb3Bkb3duLXdpZHRoKSk7XG4gICAgfVxufVxuXG4vKiBzaXplczogdGhlIGlucHV0IGNhcnJpZXMgcC1pbnB1dHRleHQtc20gLyAtbGcgKGZvcm1zL2lucHV0ZmllbGQuY3NzKSwgdGhlIGRyb3Bkb3duIHdpZHRoIGZvbGxvd3MgbGlrZSBQcmltZVVJWCAqL1xuLnAtYXV0b2NvbXBsZXRlLnAtYXV0b2NvbXBsZXRlLWRkOmhhcyg+IC5wLWlucHV0dGV4dC1zbSkgLnAtYXV0b2NvbXBsZXRlLWRyb3Bkb3duLnAtYnV0dG9uIHtcbiAgICB3aWR0aDogdmFyKC0tcC1hdXRvY29tcGxldGUtZHJvcGRvd24tc20td2lkdGgpO1xufVxuXG4ucC1hdXRvY29tcGxldGUucC1hdXRvY29tcGxldGUtZGQ6aGFzKD4gLnAtaW5wdXR0ZXh0LWxnKSAucC1hdXRvY29tcGxldGUtZHJvcGRvd24ucC1idXR0b24ge1xuICAgIHdpZHRoOiB2YXIoLS1wLWF1dG9jb21wbGV0ZS1kcm9wZG93bi1sZy13aWR0aCk7XG59XG5cbi8qIHRoZSBkcm9wZG93biBib3JkZXIgZm9sbG93cyB0aGUgaG92ZXIgLyBmb2N1cyAvIGludmFsaWQgc3RhdGUgb2YgdGhlIGlucHV0ICovXG4ucC1hdXRvY29tcGxldGUtZGQge1xuICAgICY6aGFzKD4gLnAtaW5wdXRmaWVsZC5wLXN0YXRlLWhvdmVyLCA+IC5wLWlucHV0ZmllbGQ6aG92ZXIpIC5wLWF1dG9jb21wbGV0ZS1kcm9wZG93bi5wLWJ1dHRvbiB7XG4gICAgICAgIC0tX2JvcmRlcjogdmFyKC0tcC1hdXRvY29tcGxldGUtaG92ZXItYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgLS1faG92ZXItYm9yZGVyOiB2YXIoLS1wLWF1dG9jb21wbGV0ZS1ob3Zlci1ib3JkZXItY29sb3IpO1xuICAgICAgICAtLV9hY3RpdmUtYm9yZGVyOiB2YXIoLS1wLWF1dG9jb21wbGV0ZS1ob3Zlci1ib3JkZXItY29sb3IpO1xuICAgIH1cblxuICAgICY6aGFzKD4gLnAtaW5wdXRmaWVsZC5wLXN0YXRlLWZvY3VzLCA+IC5wLWlucHV0ZmllbGQ6Zm9jdXMpIC5wLWF1dG9jb21wbGV0ZS1kcm9wZG93bi5wLWJ1dHRvbiB7XG4gICAgICAgIC0tX2JvcmRlcjogdmFyKC0tcC1hdXRvY29tcGxldGUtZm9jdXMtYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgLS1faG92ZXItYm9yZGVyOiB2YXIoLS1wLWF1dG9jb21wbGV0ZS1mb2N1cy1ib3JkZXItY29sb3IpO1xuICAgICAgICAtLV9hY3RpdmUtYm9yZGVyOiB2YXIoLS1wLWF1dG9jb21wbGV0ZS1mb2N1cy1ib3JkZXItY29sb3IpO1xuICAgIH1cblxuICAgICY6aGFzKD4gLnAtaW5wdXRmaWVsZC5wLXN0YXRlLWVycm9yKSAucC1hdXRvY29tcGxldGUtZHJvcGRvd24ucC1idXR0b24ge1xuICAgICAgICAtLV9ib3JkZXI6IHZhcigtLXAtYXV0b2NvbXBsZXRlLWludmFsaWQtYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgLS1faG92ZXItYm9yZGVyOiB2YXIoLS1wLWF1dG9jb21wbGV0ZS1pbnZhbGlkLWJvcmRlci1jb2xvcik7XG4gICAgICAgIC0tX2FjdGl2ZS1ib3JkZXI6IHZhcigtLXAtYXV0b2NvbXBsZXRlLWludmFsaWQtYm9yZGVyLWNvbG9yKTtcbiAgICB9XG59XG5cbi8qIG11bHRpcGxlIG1vZGUgKi9cbi5wLWF1dG9jb21wbGV0ZS1tdWx0aXBsZS1jb250YWluZXIge1xuICAgIGNsZWFyOiBsZWZ0O1xuICAgIGN1cnNvcjogdGV4dDtcbiAgICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7XG4gICAgbWFyZ2luOiAwO1xuICAgIG1pbi1oZWlnaHQ6IDFweDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIC8qIGxlZ2FjeSBkZWZhdWx0IHdpZHRoOyBuZXZlciB3aWRlciB0aGFuIGl0cyBjb250YWluZXIgKGdyaWQgY2VsbCwgZml4ZWQgd2lkdGggcGFyZW50KSAqL1xuICAgIHdpZHRoOiA0MDBweDtcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG59XG5cbi8qIHRoZSByb290IGlzIGFuIGlubGluZS1ibG9jayB0aGF0IHNocmlua3MgdG8gdGhlIGNvbnRhaW5lcjogaXQgbmVlZHMgdGhlIGxpbWl0IHRvbyAqL1xuLnAtYXV0b2NvbXBsZXRlLnAtYXV0b2NvbXBsZXRlLW11bHRpcGxlIHtcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG59XG5cbi5wLWF1dG9jb21wbGV0ZS10b2tlbiB7XG4gICAgY3Vyc29yOiBkZWZhdWx0O1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbi5wLWF1dG9jb21wbGV0ZS10b2tlbi1sYWJlbCxcbi5wLWF1dG9jb21wbGV0ZS10b2tlbi1sYWJlbC1kaXNhYmxlZCB7XG4gICAgZGlzcGxheTogYmxvY2s7XG59XG5cbi5wLWF1dG9jb21wbGV0ZS10b2tlbi1pY29uIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiA1MCU7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xufVxuXG4ucC1hdXRvY29tcGxldGUtaW5wdXQtdG9rZW4ge1xuICAgIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTtcblxuICAgIGlucHV0IHtcbiAgICAgICAgYm9yZGVyOiAwIG5vbmU7XG4gICAgICAgIHdpZHRoOiAxNDBweDtcbiAgICAgICAgb3V0bGluZTogMCBub25lO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICB9XG59XG5cbi8qIHRva2VucyBhbmQgaW5wdXQgd3JhcCBhcyBhIGZsZXggcm93LCB0aGUgaW5wdXQgdGFrZXMgdGhlIHJlc3Qgb2YgdGhlIGxpbmUgKGF0IGxlYXN0IDRyZW0pIGluc3RlYWQgb2YgYSBmaXhlZCB3aWR0aCAqL1xuLnAtYXV0b2NvbXBsZXRlIC5wLWF1dG9jb21wbGV0ZS1tdWx0aXBsZS1jb250YWluZXIge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgcGFkZGluZzogY2FsYyh2YXIoLS1wLWF1dG9jb21wbGV0ZS1wYWRkaW5nLXkpIC8gMikgdmFyKC0tcC1hdXRvY29tcGxldGUtcGFkZGluZy14KTtcblxuICAgICYucC1hdXRvY29tcGxldGUtZGQtbXVsdGlwbGUtY29udGFpbmVyIHtcbiAgICAgICAgZmxleDogMSAxIGF1dG87XG4gICAgICAgIHBhZGRpbmctaW5saW5lLWVuZDogdmFyKC0tcC1hdXRvY29tcGxldGUtcGFkZGluZy14KTtcbiAgICAgICAgYm9yZGVyLXN0YXJ0LWVuZC1yYWRpdXM6IDA7XG4gICAgICAgIGJvcmRlci1lbmQtZW5kLXJhZGl1czogMDtcbiAgICB9XG5cbiAgICAucC1hdXRvY29tcGxldGUtdG9rZW4ge1xuICAgICAgICBwYWRkaW5nOiBjYWxjKHZhcigtLXAtYXV0b2NvbXBsZXRlLXBhZGRpbmcteSkgLyAyKSAwO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIG1hcmdpbi1pbmxpbmUtZW5kOiBjYWxjKHZhcigtLXAtYXV0b2NvbXBsZXRlLXBhZGRpbmcteSkgLyAyKTtcbiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tcC1jaGlwLWJhY2tncm91bmQpO1xuICAgICAgICBjb2xvcjogdmFyKC0tcC1jaGlwLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICBmbG9hdDogbm9uZTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogdmFyKC0tcC1hdXRvY29tcGxldGUtY2hpcC1ib3JkZXItcmFkaXVzKTtcbiAgICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCB2YXIoLS1wLWF1dG9jb21wbGV0ZS10cmFuc2l0aW9uLWR1cmF0aW9uKSwgY29sb3IgdmFyKC0tcC1hdXRvY29tcGxldGUtdHJhbnNpdGlvbi1kdXJhdGlvbik7XG5cbiAgICAgICAgLnAtYXV0b2NvbXBsZXRlLXRva2VuLWxhYmVsIHtcbiAgICAgICAgICAgIHBhZGRpbmctYmxvY2s6IDA7XG4gICAgICAgICAgICBwYWRkaW5nLWlubGluZTogdmFyKC0tcC1jaGlwLXBhZGRpbmcteCkgY2FsYyh2YXIoLS1wLWNoaXAtcGFkZGluZy14KSArIHZhcigtLXAtY2hpcC1nYXApICsgdmFyKC0tcC1jaGlwLXJlbW92ZS1pY29uLXNpemUpKTtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogdmFyKC0tcC1jaGlwLWxhYmVsLWZvbnQtc2l6ZSk7XG4gICAgICAgICAgICBmb250LXdlaWdodDogdmFyKC0tcC1jaGlwLWxhYmVsLWZvbnQtd2VpZ2h0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5wLWF1dG9jb21wbGV0ZS10b2tlbi1sYWJlbC1kaXNhYmxlZCB7XG4gICAgICAgICAgICBwYWRkaW5nLWlubGluZTogdmFyKC0tcC1jaGlwLXBhZGRpbmcteCk7XG4gICAgICAgIH1cblxuICAgICAgICAucC1hdXRvY29tcGxldGUtY2hpcC1yZW1vdmUtaWNvbiB7XG4gICAgICAgICAgICAtLV9pY29uOiB2YXIoLS1wLWF1dG9jb21wbGV0ZS1jaGlwLXJlbW92ZS1pY29uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5wLWF1dG9jb21wbGV0ZS10b2tlbi1pY29uIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGluc2V0LWlubGluZS1lbmQ6IHZhcigtLXAtY2hpcC1wYWRkaW5nLXgpO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogY2FsYygtMSAqIHZhcigtLXAtY2hpcC1yZW1vdmUtaWNvbi1zaXplKSAvIDIpO1xuICAgICAgICAgICAgZm9udC1zaXplOiB2YXIoLS1wLWNoaXAtcmVtb3ZlLWljb24tc2l6ZSk7XG4gICAgICAgICAgICBjb2xvcjogdmFyKC0tcC1jaGlwLXJlbW92ZS1pY29uLWNvbG9yKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5wLWF1dG9jb21wbGV0ZS1pbnB1dC10b2tlbiB7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgcGFkZGluZzogY2FsYyh2YXIoLS1wLWF1dG9jb21wbGV0ZS1wYWRkaW5nLXkpIC8gMikgMDtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICBmbG9hdDogbm9uZTtcbiAgICAgICAgZmxleDogMSAxIDRyZW07XG4gICAgICAgIG1pbi13aWR0aDogNHJlbTtcblxuICAgICAgICAvKiBzYW1lIGxpbmUgaGVpZ2h0IGFzIGFuIGlucHV0OiBwYWRkaW5nLXkgLyAyIChjb250YWluZXIpICsgcGFkZGluZy15IC8gMiAoaGVyZSkgKyBsaW5lID0gaW5wdXQgaGVpZ2h0ICovXG4gICAgICAgIGlucHV0IHtcbiAgICAgICAgICAgIGZvbnQtZmFtaWx5OiBpbmhlcml0O1xuICAgICAgICAgICAgZm9udC1zaXplOiB2YXIoLS1wLWZvcm0tZmllbGQtZm9udC1zaXplKTtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1wLWZvcm0tZmllbGQtZm9udC13ZWlnaHQpO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IHZhcigtLXAtdHlwb2dyYXBoeS1saW5lLWhlaWdodCk7XG4gICAgICAgICAgICBjb2xvcjogdmFyKC0tcC1hdXRvY29tcGxldGUtY29sb3IpO1xuICAgICAgICAgICAgYXBwZWFyYW5jZTogbm9uZTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIGlucHV0OjpwbGFjZWhvbGRlciB7XG4gICAgICAgICAgICBjb2xvcjogdmFyKC0tcC1hdXRvY29tcGxldGUtcGxhY2Vob2xkZXItY29sb3IpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi5wLXN0YXRlLWVycm9yIC5wLWF1dG9jb21wbGV0ZS1pbnB1dC10b2tlbiBpbnB1dDo6cGxhY2Vob2xkZXIge1xuICAgICAgICBjb2xvcjogdmFyKC0tcC1hdXRvY29tcGxldGUtaW52YWxpZC1wbGFjZWhvbGRlci1jb2xvcik7XG4gICAgfVxufVxuXG4vKiBvdmVybGF5ICovXG4ucC1hdXRvY29tcGxldGUtcGFuZWwge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBvdmVyZmxvdzogYXV0bztcbiAgICBwYWRkaW5nOiAwO1xuICAgIGJhY2tncm91bmQ6IHZhcigtLXAtYXV0b2NvbXBsZXRlLW92ZXJsYXktYmFja2dyb3VuZCk7XG4gICAgY29sb3I6IHZhcigtLXAtYXV0b2NvbXBsZXRlLW92ZXJsYXktY29sb3IpO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLXAtYXV0b2NvbXBsZXRlLW92ZXJsYXktYm9yZGVyLWNvbG9yKTtcbiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1wLWF1dG9jb21wbGV0ZS1vdmVybGF5LWJvcmRlci1yYWRpdXMpO1xuICAgIGJveC1zaGFkb3c6IHZhcigtLXAtYXV0b2NvbXBsZXRlLW92ZXJsYXktc2hhZG93KTtcblxuICAgIC5wLWF1dG9jb21wbGV0ZS1pdGVtIHtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIH1cblxuICAgIC5wLWF1dG9jb21wbGV0ZS1saXN0IHtcbiAgICAgICAgYm9yZGVyOiAwIG5vbmU7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgbGlzdC1zdHlsZS10eXBlOiBub25lO1xuICAgIH1cblxuICAgIC5wLWF1dG9jb21wbGV0ZS1saXN0LWl0ZW0ge1xuICAgICAgICB0ZXh0LWFsaWduOiBzdGFydDtcbiAgICB9XG5cbiAgICAucC1hdXRvY29tcGxldGUtZW1wdHktbWVzc2FnZSB7XG4gICAgICAgIGJvcmRlcjogMCBub25lO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIHBhZGRpbmc6IHZhcigtLXAtYXV0b2NvbXBsZXRlLWVtcHR5LW1lc3NhZ2UtcGFkZGluZyk7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1wLWF1dG9jb21wbGV0ZS1vcHRpb24tY29sb3IpO1xuICAgICAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1wLWF1dG9jb21wbGV0ZS1vcHRpb24tYm9yZGVyLXJhZGl1cyk7XG4gICAgfVxuXG4gICAgLnAtYXV0b2NvbXBsZXRlLWl0ZW1zIHtcbiAgICAgICAgcGFkZGluZzogdmFyKC0tcC1hdXRvY29tcGxldGUtbGlzdC1wYWRkaW5nKTtcbiAgICAgICAgYm9yZGVyOiAwIG5vbmU7XG4gICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgICAgICBjb2xvcjogaW5oZXJpdDtcblxuICAgICAgICAucC1hdXRvY29tcGxldGUtaXRlbSB7XG4gICAgICAgICAgICBib3JkZXI6IDAgbm9uZTtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgIHBhZGRpbmc6IHZhcigtLXAtYXV0b2NvbXBsZXRlLW9wdGlvbi1wYWRkaW5nKTtcbiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1wLWF1dG9jb21wbGV0ZS1vcHRpb24tY29sb3IpO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBmb250LXNpemU6IHZhcigtLXAtYXV0b2NvbXBsZXRlLW9wdGlvbi1mb250LXNpemUpO1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IHZhcigtLXAtYXV0b2NvbXBsZXRlLW9wdGlvbi1mb250LXdlaWdodCk7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1wLWF1dG9jb21wbGV0ZS1vcHRpb24tYm9yZGVyLXJhZGl1cyk7XG4gICAgICAgICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIHZhcigtLXAtbGlzdC1vcHRpb24tdHJhbnNpdGlvbi1kdXJhdGlvbiksIGNvbG9yIHZhcigtLXAtbGlzdC1vcHRpb24tdHJhbnNpdGlvbi1kdXJhdGlvbiksXG4gICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yIHZhcigtLXAtbGlzdC1vcHRpb24tdHJhbnNpdGlvbi1kdXJhdGlvbik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAucC1hdXRvY29tcGxldGUtaXRlbXM6ZW1wdHkge1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgIH1cblxuICAgIC5wLWF1dG9jb21wbGV0ZS1saXN0IC5wLWF1dG9jb21wbGV0ZS1pdGVtICsgLnAtYXV0b2NvbXBsZXRlLWl0ZW0ge1xuICAgICAgICBtYXJnaW4tdG9wOiB2YXIoLS1wLWF1dG9jb21wbGV0ZS1saXN0LWdhcCk7XG4gICAgfVxuXG4gICAgLyogdGFibGUgbW9kZSAocDpjb2x1bW4gY2hpbGRyZW4pOyB0aGUgcC1yb3dzLSogdmFyaWFudHMgb2YgYmFzZS9yb3dzLmNzcyBzZXQgLS1fdGFibGUtZ3JpZGxpbmVzIGFuZFxuICAgICAgIC0tX3RhYmxlLShoZWFkZXItKWNlbGwtcGFkZGluZywgdGhlIHNpemVzIGFyZSB0aGUgYXV0b2NvbXBsZXRlIG9uZXMgKGhlYWRlciBhbmQgYm9keSBzaGFyZSBvbmUgdG9rZW4pICovXG4gICAgLnAtYXV0b2NvbXBsZXRlLXRhYmxlIHtcbiAgICAgICAgLS1fdGFibGUtY2VsbC1zbS1wYWRkaW5nOiB2YXIoLS1wLWF1dG9jb21wbGV0ZS10YWJsZS1jZWxsLXNtLXBhZGRpbmcpO1xuICAgICAgICAtLV90YWJsZS1jZWxsLWxnLXBhZGRpbmc6IHZhcigtLXAtYXV0b2NvbXBsZXRlLXRhYmxlLWNlbGwtbGctcGFkZGluZyk7XG4gICAgICAgIC0tX3RhYmxlLWhlYWRlci1jZWxsLXNtLXBhZGRpbmc6IHZhcigtLXAtYXV0b2NvbXBsZXRlLXRhYmxlLWNlbGwtc20tcGFkZGluZyk7XG4gICAgICAgIC0tX3RhYmxlLWhlYWRlci1jZWxsLWxnLXBhZGRpbmc6IHZhcigtLXAtYXV0b2NvbXBsZXRlLXRhYmxlLWNlbGwtbGctcGFkZGluZyk7XG4gICAgICAgIGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICAgIHRoLFxuICAgICAgICB0ZCB7XG4gICAgICAgICAgICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1wLWF1dG9jb21wbGV0ZS10YWJsZS1jZWxsLWJvcmRlci1jb2xvcik7XG4gICAgICAgICAgICBib3JkZXItd2lkdGg6IDAgdmFyKC0tX3RhYmxlLWdyaWRsaW5lcywgMCkgMXB4IHZhcigtLV90YWJsZS1ncmlkbGluZXMsIDApO1xuICAgICAgICAgICAgcGFkZGluZzogdmFyKC0tX3RhYmxlLWNlbGwtcGFkZGluZywgdmFyKC0tcC1hdXRvY29tcGxldGUtdGFibGUtY2VsbC1wYWRkaW5nKSk7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBzdGFydDtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoIHtcbiAgICAgICAgICAgIGJvcmRlci10b3Atd2lkdGg6IHZhcigtLV90YWJsZS1ncmlkbGluZXMsIDApO1xuICAgICAgICAgICAgcGFkZGluZzogdmFyKC0tX3RhYmxlLWhlYWRlci1jZWxsLXBhZGRpbmcsIHZhcigtLXAtYXV0b2NvbXBsZXRlLXRhYmxlLWNlbGwtcGFkZGluZykpO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tcC1hdXRvY29tcGxldGUtdGFibGUtaGVhZGVyLWNlbGwtYmFja2dyb3VuZCk7XG4gICAgICAgICAgICBjb2xvcjogdmFyKC0tcC1hdXRvY29tcGxldGUtdGFibGUtaGVhZGVyLWNlbGwtY29sb3IpO1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IHZhcigtLXAtYXV0b2NvbXBsZXRlLXRhYmxlLWhlYWRlci1jZWxsLWZvbnQtd2VpZ2h0KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5wLWF1dG9jb21wbGV0ZS1pdGVtcyAucC1hdXRvY29tcGxldGUtaXRlbS5wLWF1dG9jb21wbGV0ZS1yb3cge1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuXG4gICAgICAgIC8qIHRoZSBmaXJzdCByb3cgaGFzIG5vIHRvcCBib3JkZXIgKHRoZXJlIGlzIG5vIHRoZWFkIHdpdGhvdXQgYSBjb2x1bW4gaGVhZGVyKSBhbmQgdGhlIGxhc3Qgcm93IG5vIGJvdHRvbVxuICAgICAgICAgICBib3JkZXIsIHVubGVzcyBncmlkbGluZXMgY2xvc2UgdGhlIHRhYmxlICovXG4gICAgICAgICY6Zmlyc3QtY2hpbGQgPiB0ZCB7XG4gICAgICAgICAgICBib3JkZXItdG9wLXdpZHRoOiB2YXIoLS1fdGFibGUtZ3JpZGxpbmVzLCAwKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6bGFzdC1jaGlsZCA+IHRkIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b20td2lkdGg6IHZhcigtLV90YWJsZS1ncmlkbGluZXMsIDApO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyogcC1zdGF0ZS1oaWdobGlnaHQgPSB0aGUgaXRlbSB1bmRlciB0aGUgbW91c2UgLyBrZXlib2FyZCBjdXJzb3IgKi9cbiAgICAucC1hdXRvY29tcGxldGUtaXRlbXMgLnAtYXV0b2NvbXBsZXRlLWl0ZW0ucC1zdGF0ZS1oaWdobGlnaHQge1xuICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1wLWF1dG9jb21wbGV0ZS1vcHRpb24tZm9jdXMtYmFja2dyb3VuZCk7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1wLWF1dG9jb21wbGV0ZS1vcHRpb24tZm9jdXMtY29sb3IpO1xuICAgIH1cblxuICAgIC5wLWF1dG9jb21wbGV0ZS1pdGVtcyAucC1hdXRvY29tcGxldGUtbW9yZXRleHQge1xuICAgICAgICBwYWRkaW5nOiB2YXIoLS1wLWF1dG9jb21wbGV0ZS1vcHRpb24tcGFkZGluZyk7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1wLWF1dG9jb21wbGV0ZS1tb3JlLXRleHQtY29sb3IpO1xuICAgICAgICBmb250LXNpemU6IHZhcigtLXAtYXV0b2NvbXBsZXRlLW9wdGlvbi1mb250LXNpemUpO1xuICAgICAgICBmb250LXdlaWdodDogdmFyKC0tcC1hdXRvY29tcGxldGUtbW9yZS10ZXh0LWZvbnQtd2VpZ2h0KTtcbiAgICB9XG5cbiAgICAvKiBtYXRjaGVkIHBhcnQgb2YgYW4gaXRlbSBsYWJlbCAqL1xuICAgIC5wLWF1dG9jb21wbGV0ZS1xdWVyeSB7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1wLWF1dG9jb21wbGV0ZS1xdWVyeS1mb250LXdlaWdodCk7XG4gICAgfVxuXG4gICAgLnAtYXV0b2NvbXBsZXRlLWdyb3VwIHtcbiAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuICAgICAgICBwYWRkaW5nOiB2YXIoLS1wLWF1dG9jb21wbGV0ZS1vcHRpb24tZ3JvdXAtcGFkZGluZyk7XG4gICAgICAgIGJhY2tncm91bmQ6IHZhcigtLXAtYXV0b2NvbXBsZXRlLW9wdGlvbi1ncm91cC1iYWNrZ3JvdW5kKTtcbiAgICAgICAgY29sb3I6IHZhcigtLXAtYXV0b2NvbXBsZXRlLW9wdGlvbi1ncm91cC1jb2xvcik7XG4gICAgICAgIGZvbnQtc2l6ZTogdmFyKC0tcC1hdXRvY29tcGxldGUtb3B0aW9uLWdyb3VwLWZvbnQtc2l6ZSk7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1wLWF1dG9jb21wbGV0ZS1vcHRpb24tZ3JvdXAtZm9udC13ZWlnaHQpO1xuICAgIH1cbn1cblxuLnAtYXV0b2NvbXBsZXRlLWxpc3QgLnAtYXV0b2NvbXBsZXRlLW1vcmV0ZXh0IHtcbiAgICB0ZXh0LWFsaWduOiBzdGFydDtcbn1cblxuLnAtYXV0b2NvbXBsZXRlLWVtcHR5LW1lc3NhZ2Uge1xuICAgIHdpZHRoOiAxMDAlO1xufVxuXG4vKiBpdGVtdGlwOiBzbWFsbCBwb3BvdmVyIG5leHQgdG8gdGhlIGZvY3VzZWQgaXRlbSAodGhlIGVsZW1lbnQgYWxzbyBjYXJyaWVzIHAtc3RhdGUtaGlnaGxpZ2h0KSAqL1xuLnAtYXV0b2NvbXBsZXRlLWl0ZW10aXAge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBkaXNwbGF5OiBub25lO1xuXG4gICAgJi5wLWNvbXBvbmVudCB7XG4gICAgICAgIHBhZGRpbmc6IHZhcigtLXAtYXV0b2NvbXBsZXRlLWl0ZW10aXAtcGFkZGluZyk7XG4gICAgICAgIGJhY2tncm91bmQ6IHZhcigtLXAtYXV0b2NvbXBsZXRlLWl0ZW10aXAtYmFja2dyb3VuZCk7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1wLWF1dG9jb21wbGV0ZS1pdGVtdGlwLWNvbG9yKTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tcC1hdXRvY29tcGxldGUtaXRlbXRpcC1ib3JkZXItY29sb3IpO1xuICAgICAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1wLWF1dG9jb21wbGV0ZS1pdGVtdGlwLWJvcmRlci1yYWRpdXMpO1xuICAgICAgICBib3gtc2hhZG93OiB2YXIoLS1wLWF1dG9jb21wbGV0ZS1pdGVtdGlwLXNoYWRvdyk7XG4gICAgfVxufVxuXG4ucC1hdXRvY29tcGxldGUtaXRlbXRpcC1jb250ZW50IHtcbiAgICBkaXNwbGF5OiBub25lO1xufVxuXG4ucC1mbHVpZCB7XG4gICAgLnAtYXV0b2NvbXBsZXRlLFxuICAgIC5wLWF1dG9jb21wbGV0ZS1pbnB1dCxcbiAgICAucC1hdXRvY29tcGxldGUtbXVsdGlwbGUtY29udGFpbmVyIHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgfVxuXG4gICAgLnAtYXV0b2NvbXBsZXRlLnAtYXV0b2NvbXBsZXRlLWRkIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICB9XG5cbiAgICAucC1hdXRvY29tcGxldGUgLnAtYXV0b2NvbXBsZXRlLWlucHV0LnAtYXV0b2NvbXBsZXRlLWRkLWlucHV0LFxuICAgIC5wLWF1dG9jb21wbGV0ZS1tdWx0aXBsZS1jb250YWluZXIucC1hdXRvY29tcGxldGUtZGQtbXVsdGlwbGUtY29udGFpbmVyIHtcbiAgICAgICAgd2lkdGg6IDElO1xuICAgICAgICBmbGV4OiAxIDEgYXV0bztcbiAgICB9XG5cbiAgICAucC1hdXRvY29tcGxldGUgLnAtYXV0b2NvbXBsZXRlLWRyb3Bkb3duLnAtYnV0dG9uIHtcbiAgICAgICAgd2lkdGg6IHZhcigtLXAtYXV0b2NvbXBsZXRlLWRyb3Bkb3duLXdpZHRoKTtcbiAgICB9XG59XG5cbi8qIGZpbGxlZCAoZm9ybXMvaW5wdXRmaWVsZC5jc3MpOiB0aGUgZHJvcGRvd24gY29udGludWVzIHRoZSBmaWVsZCAoaXRzIGZpbGxlZCBiYWNrZ3JvdW5kcyksIGl0cyBmcmFtZSB3aXRoXG4gICAtLXAtZm9ybS1maWVsZC1maWxsZWQtYm9yZGVyLW9wYWNpdHksIHRoZSBsaW5lIGF0IHRoZSBib3R0b20gaW4gaXRzIGJvcmRlciBjb2xvciAodGhlIHN0YXRlIG9mIHRoZSBpbnB1dCwgdGhpY2tlciB3aGlsZVxuICAgdGhlIGlucHV0IGhhcyB0aGUgZm9jdXMpICovXG4ucC1pbnB1dC1maWxsZWQgLnAtYXV0b2NvbXBsZXRlLWRkID4gLnAtYXV0b2NvbXBsZXRlLWRyb3Bkb3duLnAtYnV0dG9uIHtcbiAgICAtLV9iZzogdmFyKC0tcC1hdXRvY29tcGxldGUtZHJvcGRvd24tZmlsbGVkLWJhY2tncm91bmQpO1xuICAgIC0tX2hvdmVyLWJnOiB2YXIoLS1wLWF1dG9jb21wbGV0ZS1kcm9wZG93bi1maWxsZWQtaG92ZXItYmFja2dyb3VuZCk7XG4gICAgLS1fYWN0aXZlLWJnOiB2YXIoLS1wLWF1dG9jb21wbGV0ZS1kcm9wZG93bi1maWxsZWQtYWN0aXZlLWJhY2tncm91bmQpO1xuICAgIC0tX2xpbmUtd2lkdGg6IHZhcigtLXAtZm9ybS1maWVsZC1maWxsZWQtaW5kaWNhdG9yLXdpZHRoKTtcbiAgICAtLV90ZXh0dXJlOiBsaW5lYXItZ3JhZGllbnQodmFyKC0tX2JvcmRlciksIHZhcigtLV9ib3JkZXIpKSBib3R0b20gLyAxMDAlIHZhcigtLV9saW5lLXdpZHRoKSBuby1yZXBlYXQgYm9yZGVyLWJveCxcbiAgICAgICAgdmFyKC0tcC1idXR0b24tdGV4dHVyZSk7XG4gICAgYm9yZGVyLWNvbG9yOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tX2JvcmRlcikgdmFyKC0tcC1mb3JtLWZpZWxkLWZpbGxlZC1ib3JkZXItb3BhY2l0eSksIHRyYW5zcGFyZW50KTtcbiAgICBib3JkZXItZW5kLWVuZC1yYWRpdXM6IHZhcigtLXAtZm9ybS1maWVsZC1maWxsZWQtYm90dG9tLWJvcmRlci1yYWRpdXMpO1xuXG4gICAgJjpub3QoOmRpc2FibGVkLCAucC1zdGF0ZS1kaXNhYmxlZCk6aG92ZXIge1xuICAgICAgICBib3JkZXItY29sb3I6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1faG92ZXItYm9yZGVyKSB2YXIoLS1wLWZvcm0tZmllbGQtZmlsbGVkLWJvcmRlci1vcGFjaXR5KSwgdHJhbnNwYXJlbnQpO1xuICAgIH1cblxuICAgICY6bm90KDpkaXNhYmxlZCwgLnAtc3RhdGUtZGlzYWJsZWQpOmFjdGl2ZSxcbiAgICAmLnAtc3RhdGUtYWN0aXZlIHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tX2FjdGl2ZS1ib3JkZXIpIHZhcigtLXAtZm9ybS1maWVsZC1maWxsZWQtYm9yZGVyLW9wYWNpdHkpLCB0cmFuc3BhcmVudCk7XG4gICAgfVxufVxuXG4ucC1pbnB1dC1maWxsZWQgLnAtYXV0b2NvbXBsZXRlLWRkOmhhcyg+IC5wLWlucHV0ZmllbGQucC1zdGF0ZS1mb2N1cywgPiAucC1pbnB1dGZpZWxkOmZvY3VzKSA+IC5wLWF1dG9jb21wbGV0ZS1kcm9wZG93bi5wLWJ1dHRvbiB7XG4gICAgLS1fbGluZS13aWR0aDogdmFyKC0tcC1mb3JtLWZpZWxkLWZpbGxlZC1mb2N1cy1pbmRpY2F0b3Itd2lkdGgpO1xufVxuIiwgIi8qXG4gKiBBdmF0YXI6IHA6YXZhdGFyLCBwOmF2YXRhckdyb3VwXG4gKlxuICogU3VwcG9ydGVkIGNsYXNzZXM6IHAtYXZhdGFyLWNpcmNsZSwgcC1hdmF0YXItbGcsIHAtYXZhdGFyLXhsLCBwLWF2YXRhci1kYXJrIC8gcC1hdmF0YXItbGlnaHQgKGR5bmFtaWNDb2xvcilcbiAqL1xuXG4ucC1hdmF0YXIge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgIHdpZHRoOiB2YXIoLS1wLWF2YXRhci13aWR0aCk7XG4gICAgaGVpZ2h0OiB2YXIoLS1wLWF2YXRhci1oZWlnaHQpO1xuICAgIGZvbnQtc2l6ZTogdmFyKC0tcC1hdmF0YXItZm9udC1zaXplKTtcbiAgICBmb250LXdlaWdodDogdmFyKC0tcC1hdmF0YXItZm9udC13ZWlnaHQpO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXAtYXZhdGFyLWJhY2tncm91bmQpO1xuICAgIGNvbG9yOiB2YXIoLS1wLWF2YXRhci1jb2xvcik7XG4gICAgYm9yZGVyLXJhZGl1czogdmFyKC0tcC1hdmF0YXItYm9yZGVyLXJhZGl1cyk7XG5cbiAgICAvKiBpbWFnZSBhdmF0YXI6IG5vIGJhY2tncm91bmQgYmVoaW5kIHRoZSBwaWN0dXJlICovXG4gICAgJjpoYXMoPiBpbWcpIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgfVxuXG4gICAgPiAqIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIH1cblxuICAgIGltZyB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IGluaGVyaXQ7XG4gICAgfVxuXG4gICAgLnAtYXZhdGFyLWljb24ge1xuICAgICAgICBmb250LXNpemU6IHZhcigtLXAtYXZhdGFyLWljb24tc2l6ZSk7XG4gICAgfVxuXG4gICAgJi5wLWF2YXRhci1jaXJjbGUsXG4gICAgJi5wLWF2YXRhci1jaXJjbGUgaW1nIHtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgIH1cblxuICAgICYucC1hdmF0YXItbGcge1xuICAgICAgICB3aWR0aDogdmFyKC0tcC1hdmF0YXItbGctd2lkdGgpO1xuICAgICAgICBoZWlnaHQ6IHZhcigtLXAtYXZhdGFyLWxnLWhlaWdodCk7XG4gICAgICAgIGZvbnQtc2l6ZTogdmFyKC0tcC1hdmF0YXItbGctZm9udC1zaXplKTtcblxuICAgICAgICAucC1hdmF0YXItaWNvbiB7XG4gICAgICAgICAgICBmb250LXNpemU6IHZhcigtLXAtYXZhdGFyLWxnLWljb24tc2l6ZSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLnAtYXZhdGFyLXhsIHtcbiAgICAgICAgd2lkdGg6IHZhcigtLXAtYXZhdGFyLXhsLXdpZHRoKTtcbiAgICAgICAgaGVpZ2h0OiB2YXIoLS1wLWF2YXRhci14bC1oZWlnaHQpO1xuICAgICAgICBmb250LXNpemU6IHZhcigtLXAtYXZhdGFyLXhsLWZvbnQtc2l6ZSk7XG5cbiAgICAgICAgLnAtYXZhdGFyLWljb24ge1xuICAgICAgICAgICAgZm9udC1zaXplOiB2YXIoLS1wLWF2YXRhci14bC1pY29uLXNpemUpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyogZHluYW1pY0NvbG9yOiBiYWNrZ3JvdW5kIGNvbWVzIGlubGluZSBmcm9tIHRoZSByZW5kZXJlciwgdGV4dCBjb2xvciBkZXBlbmRzIG9uIGl0cyBsaWdodG5lc3MgKi9cbiAgICAmLnAtYXZhdGFyLWRhcmsge1xuICAgICAgICBjb2xvcjogdmFyKC0tcC1hdmF0YXItZHluYW1pYy1kYXJrLWNvbG9yKTtcbiAgICB9XG5cbiAgICAmLnAtYXZhdGFyLWxpZ2h0IHtcbiAgICAgICAgY29sb3I6IHZhcigtLXAtYXZhdGFyLWR5bmFtaWMtbGlnaHQtY29sb3IpO1xuICAgIH1cbn1cblxuLnAtYXZhdGFyLWdyb3VwIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG59XG5cbi8qIGdyb3VwICh0aGUgMnB4IHJpbmcgd2lkdGggaXMgZml4ZWQgaW4gUHJpbWVVSVggdG9vKSAqL1xuLnAtYXZhdGFyLWdyb3VwIC5wLWF2YXRhciB7XG4gICAgYm9yZGVyOiAycHggc29saWQgdmFyKC0tcC1hdmF0YXItZ3JvdXAtYm9yZGVyLWNvbG9yKTtcblxuICAgICsgLnAtYXZhdGFyIHtcbiAgICAgICAgbWFyZ2luLWlubGluZS1zdGFydDogdmFyKC0tcC1hdmF0YXItZ3JvdXAtb2Zmc2V0KTtcbiAgICB9XG5cbiAgICAmLnAtYXZhdGFyLWxnICsgLnAtYXZhdGFyLnAtYXZhdGFyLWxnIHtcbiAgICAgICAgbWFyZ2luLWlubGluZS1zdGFydDogdmFyKC0tcC1hdmF0YXItbGctZ3JvdXAtb2Zmc2V0KTtcbiAgICB9XG5cbiAgICAmLnAtYXZhdGFyLXhsICsgLnAtYXZhdGFyLnAtYXZhdGFyLXhsIHtcbiAgICAgICAgbWFyZ2luLWlubGluZS1zdGFydDogdmFyKC0tcC1hdmF0YXIteGwtZ3JvdXAtb2Zmc2V0KTtcbiAgICB9XG59XG4iLCAiLypcbiAqIEJsb2NrVUk6IHA6YmxvY2tVSVxuICogTWFya3VwOiBtYXNrIGRpdi5wLWJsb2NrdWkucC1jb21wb25lbnQtb3ZlcmxheSAoYXBwZW5kZWQgdG8gYm9keSwgc2l6ZWQvcG9zaXRpb25lZCB0byB0aGUgdGFyZ2V0IGJ5IHRoZSBjb21wb25lbnQpXG4gKiAgICAgICAgIGNvbnRhaW5pbmcgZGl2LnAtYmxvY2t1aS1jb250ZW50LnAtY29tcG9uZW50LnAtY29tcG9uZW50LWNvbnRlbnQgKG9wdGlvbmFsIGNvbnRlbnQpLlxuICogICAgICAgICBUaGUgY29tcG9uZW50IHNldHMgYXJpYS1idXN5IG9uIHRoZSBibG9ja2VkIHRhcmdldC5cbiAqIFdpdGhvdXQgY29udGVudCAobm8gY2hpbGRyZW4pIGEgc3Bpbm5lciAoLS1wLWJsb2NrdWktbG9hZGluZy1pY29uKSBpcyBzaG93biBjZW50ZXJlZCBvbiB0aGUgbWFzay4gV2l0aCBzZXZlcmFsXG4gKiB0YXJnZXRzIHRoZSBjb250ZW50IGlzIG9ubHkgYXBwZW5kZWQgdG8gb25lIG1hc2ssIHRoZSBvdGhlcnMgaGF2ZSBubyAucC1ibG9ja3VpLWNvbnRlbnQgYXQgYWxsLlxuICogU3VwcG9ydGVkIGNsYXNzZXMgKHN0eWxlQ2xhc3MsIGVuZHMgdXAgb24gZXZlcnkgbWFzayk6IHAtYmxvY2t1aS1saWdodCAoYSBsaWdodCB0cmFuc2x1Y2VudCBtYXNrIGluc3RlYWQgb2YgdGhlXG4gKiAgICAgICAgICAgICAgICAgICAgbW9kYWwgbWFzaywgZS5nLiB3aGlsZSBhIHRhYmxlIG9yIHBhbmVsIGxvYWRzKS5cbiAqIFByaW1lVUlYOiBibG9ja3VpIChib3JkZXIgcmFkaXVzKSArIG1hc2sgdG9rZW5zOyBQcmltZUZhY2VzIG9ubHkgdG9rZW5zOiB0aGUgYmxvY2t1aSBibG9jayBvZiBwcmVzZXRzLyouY3NzLlxuICovXG5cbi5wLWJsb2NrdWkge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgdG9wOiAwO1xuICAgIHJpZ2h0OiAwO1xuICAgIGJvdHRvbTogMDtcbiAgICBsZWZ0OiAwO1xuICAgIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgdXNlci1zZWxlY3Q6IG5vbmU7XG5cbiAgICAmLnAtY29tcG9uZW50LW92ZXJsYXkge1xuICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1wLWJsb2NrdWktbWFzay1iYWNrZ3JvdW5kKTtcbiAgICAgICAgY29sb3I6IHZhcigtLXAtYmxvY2t1aS1tYXNrLWNvbG9yKTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogdmFyKC0tcC1ibG9ja3VpLWJvcmRlci1yYWRpdXMpO1xuICAgIH1cblxuICAgICYucC1jb21wb25lbnQtb3ZlcmxheS5wLWJsb2NrdWktbGlnaHQge1xuICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1wLWJsb2NrdWktbGlnaHQtbWFzay1iYWNrZ3JvdW5kKTtcbiAgICAgICAgY29sb3I6IHZhcigtLXAtYmxvY2t1aS1saWdodC1tYXNrLWNvbG9yKTtcbiAgICB9XG5cbiAgICAvKiBubyBjb250ZW50OiBhIHNwaW5uZXIgY2VudGVyZWQgb24gdGhlIG1hc2sgKi9cbiAgICAmOm5vdCg6aGFzKD4gLnAtYmxvY2t1aS1jb250ZW50Om5vdCg6ZW1wdHkpKSk6OmJlZm9yZSB7XG4gICAgICAgIGNvbnRlbnQ6IFwiXFwyMDAzXCI7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgaW5zZXQ6IDA7XG4gICAgICAgIHdpZHRoOiAxZW07XG4gICAgICAgIGhlaWdodDogMWVtO1xuICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgICAgICBmb250LXNpemU6IHZhcigtLXAtYmxvY2t1aS1sb2FkaW5nLWljb24tc2l6ZSk7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1wLWJsb2NrdWktbG9hZGluZy1pY29uLWNvbG9yKTtcbiAgICAgICAgYmFja2dyb3VuZDogY3VycmVudENvbG9yO1xuICAgICAgICBmb3JjZWQtY29sb3ItYWRqdXN0OiBub25lO1xuICAgICAgICBtYXNrOiB2YXIoLS1wLWJsb2NrdWktbG9hZGluZy1pY29uKSBjZW50ZXIgLyBjb250YWluIG5vLXJlcGVhdDtcbiAgICAgICAgYW5pbWF0aW9uOiBwLXNwaW4gdmFyKC0tcC1ibG9ja3VpLWxvYWRpbmctaWNvbi1hbmltYXRpb24tZHVyYXRpb24pIGxpbmVhciBpbmZpbml0ZTtcbiAgICB9XG5cbiAgICAmLnAtYmxvY2t1aS1saWdodDpub3QoOmhhcyg+IC5wLWJsb2NrdWktY29udGVudDpub3QoOmVtcHR5KSkpOjpiZWZvcmUge1xuICAgICAgICBjb2xvcjogdmFyKC0tcC1ibG9ja3VpLWxpZ2h0LW1hc2stY29sb3IpO1xuICAgIH1cbn1cblxuLnAtYmxvY2t1aS1jb250ZW50IHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgJi5wLWNvbXBvbmVudCB7XG4gICAgICAgIHBhZGRpbmc6IHZhcigtLXAtYmxvY2t1aS1jb250ZW50LXBhZGRpbmcpO1xuICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1wLWJsb2NrdWktY29udGVudC1iYWNrZ3JvdW5kKTtcbiAgICAgICAgY29sb3I6IHZhcigtLXAtYmxvY2t1aS1jb250ZW50LWNvbG9yKTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tcC1ibG9ja3VpLWNvbnRlbnQtYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogdmFyKC0tcC1ibG9ja3VpLWNvbnRlbnQtYm9yZGVyLXJhZGl1cyk7XG4gICAgICAgIGJveC1zaGFkb3c6IHZhcigtLXAtYmxvY2t1aS1jb250ZW50LXNoYWRvdyk7XG4gICAgfVxufVxuIiwgIi8qXG4gKiBCcmVhZENydW1iOiBwOmJyZWFkQ3J1bWJcbiAqXG4gKiBNYXJrdXA6IG5hdi5wLWJyZWFkY3J1bWIgPiBvbC5wLWJyZWFkY3J1bWItaXRlbXMgPiBsaSA+IGEucC1tZW51aXRlbS1saW5rICg+IC5wLW1lbnVpdGVtLWljb24sIC5wLW1lbnVpdGVtLXRleHQpXG4gKiAgICAgICAgIChkaXNhYmxlZCAvIGxhc3QgaXRlbTogc3Bhbi5wLW1lbnVpdGVtLWxpbmsucC1zdGF0ZS1kaXNhYmxlZCksIGxpLnAtYnJlYWRjcnVtYi1vcHRpb25zIChvcHRpb25zIGZhY2V0KS5cbiAqICAgICAgICAgaG9tZURpc3BsYXk9XCJpY29uXCI6IHRoZSBmaXJzdCBsaW5rIGlzIHRoZSBpY29uICgucC1icmVhZGNydW1iLWhvbWUtaWNvbi5wLWljb24ucC1icmVhZGNydW1iLWhvbWUtaWNvbikuXG4gKiBTZXBhcmF0b3JzIGFyZSByZW5kZXJlZCB3aXRoIDo6YmVmb3JlIG9uIGV2ZXJ5IGxpIGV4Y2VwdCB0aGUgZmlyc3Qgb25lLlxuICogVGhlIGJvcmRlciBpcyBQcmltZUZhY2VzIG9ubHkgKHRoZSBicmVhZGNydW1iIGJsb2NrIG9mIHByZXNldHMvKi5jc3MpLCBQcmltZVVJWCBicmVhZGNydW1iIGhhcyBub25lLlxuICovXG4ucC1icmVhZGNydW1iIHtcbiAgICBtYXJnaW46IDA7XG4gICAgb3ZlcmZsb3cteDogYXV0bztcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1wLWJyZWFkY3J1bWItYmFja2dyb3VuZCk7XG4gICAgYm9yZGVyOiB2YXIoLS1wLWJyZWFkY3J1bWItYm9yZGVyLXdpZHRoKSBzb2xpZCB2YXIoLS1wLWJyZWFkY3J1bWItYm9yZGVyLWNvbG9yKTtcbiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1wLWJyZWFkY3J1bWItYm9yZGVyLXJhZGl1cyk7XG4gICAgcGFkZGluZzogdmFyKC0tcC1icmVhZGNydW1iLXBhZGRpbmcpO1xuXG4gICAgJjo6LXdlYmtpdC1zY3JvbGxiYXIge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cblxuICAgIC5wLW1lbnVpdGVtLWxpbmsge1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgfVxuXG4gICAgLnAtYnJlYWRjcnVtYi1pdGVtcyB7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgbGlzdC1zdHlsZS10eXBlOiBub25lO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBmbGV4LXdyYXA6IG5vd3JhcDtcblxuICAgICAgICBsaSAucC1tZW51aXRlbS1saW5rIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgZ2FwOiB2YXIoLS1wLWJyZWFkY3J1bWItaXRlbS1nYXApO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogdmFyKC0tcC1icmVhZGNydW1iLWl0ZW0tYm9yZGVyLXJhZGl1cyk7XG4gICAgICAgICAgICBvdXRsaW5lLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1wLWJyZWFkY3J1bWItaXRlbS1jb2xvcik7XG4gICAgICAgICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIHZhcigtLXAtYnJlYWRjcnVtYi10cmFuc2l0aW9uLWR1cmF0aW9uKSwgY29sb3IgdmFyKC0tcC1icmVhZGNydW1iLXRyYW5zaXRpb24tZHVyYXRpb24pLFxuICAgICAgICAgICAgICAgIG91dGxpbmUtY29sb3IgdmFyKC0tcC1icmVhZGNydW1iLXRyYW5zaXRpb24tZHVyYXRpb24pLCBib3gtc2hhZG93IHZhcigtLXAtYnJlYWRjcnVtYi10cmFuc2l0aW9uLWR1cmF0aW9uKTtcblxuICAgICAgICAgICAgJjpmb2N1cy12aXNpYmxlIHtcbiAgICAgICAgICAgICAgICBvdXRsaW5lOiB2YXIoLS1wLWJyZWFkY3J1bWItaXRlbS1mb2N1cy1yaW5nLXdpZHRoKSB2YXIoLS1wLWJyZWFkY3J1bWItaXRlbS1mb2N1cy1yaW5nLXN0eWxlKSB2YXIoLS1wLWJyZWFkY3J1bWItaXRlbS1mb2N1cy1yaW5nLWNvbG9yKTtcbiAgICAgICAgICAgICAgICBvdXRsaW5lLW9mZnNldDogdmFyKC0tcC1icmVhZGNydW1iLWl0ZW0tZm9jdXMtcmluZy1vZmZzZXQpO1xuICAgICAgICAgICAgICAgIGJveC1zaGFkb3c6IHZhcigtLXAtYnJlYWRjcnVtYi1pdGVtLWZvY3VzLXJpbmctc2hhZG93KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLnAtbWVudWl0ZW0tdGV4dCB7XG4gICAgICAgICAgICAgICAgY29sb3I6IHZhcigtLXAtYnJlYWRjcnVtYi1pdGVtLWNvbG9yKTtcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IHZhcigtLXAtYnJlYWRjcnVtYi1pdGVtLWxhYmVsLWZvbnQtc2l6ZSk7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IHZhcigtLXAtYnJlYWRjcnVtYi1pdGVtLWxhYmVsLWZvbnQtd2VpZ2h0KTtcbiAgICAgICAgICAgICAgICB0cmFuc2l0aW9uOiBpbmhlcml0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAucC1tZW51aXRlbS1pY29uIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogdmFyKC0tcC1icmVhZGNydW1iLWl0ZW0taWNvbi1jb2xvcik7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiB2YXIoLS1wLWJyZWFkY3J1bWItaXRlbS1pY29uLXNpemUpO1xuICAgICAgICAgICAgICAgIHRyYW5zaXRpb246IGluaGVyaXQ7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bm90KC5wLXN0YXRlLWRpc2FibGVkKTpob3ZlciAucC1tZW51aXRlbS10ZXh0IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogdmFyKC0tcC1icmVhZGNydW1iLWl0ZW0taG92ZXItY29sb3IpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOm5vdCgucC1zdGF0ZS1kaXNhYmxlZCk6aG92ZXIgLnAtbWVudWl0ZW0taWNvbiB7XG4gICAgICAgICAgICAgICAgY29sb3I6IHZhcigtLXAtYnJlYWRjcnVtYi1pdGVtLWljb24taG92ZXItY29sb3IpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvKiBob21lIGljb24gKGhvbWVEaXNwbGF5PVwiaWNvblwiKTogdGhlIGxpbmsgaXRzZWxmIGlzIHRoZSBpY29uICovXG4gICAgICAgICAgICAmLnAtYnJlYWRjcnVtYi1ob21lLWljb24ge1xuICAgICAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1wLWJyZWFkY3J1bWItaXRlbS1pY29uLWNvbG9yKTtcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IHZhcigtLXAtYnJlYWRjcnVtYi1pdGVtLWljb24tc2l6ZSk7XG4gICAgICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDE7XG5cbiAgICAgICAgICAgICAgICAmOm5vdCgucC1zdGF0ZS1kaXNhYmxlZCk6aG92ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogdmFyKC0tcC1icmVhZGNydW1iLWl0ZW0taWNvbi1ob3Zlci1jb2xvcik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgbGkucC1icmVhZGNydW1iLW9wdGlvbnMge1xuICAgICAgICAgICAgbWFyZ2luLWlubGluZS1zdGFydDogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgIC8qIHNlcGFyYXRvciAqL1xuICAgICAgICBsaTpub3QoLnAtYnJlYWRjcnVtYi1vcHRpb25zKSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIGxpOm5vdCgucC1icmVhZGNydW1iLW9wdGlvbnMpOjpiZWZvcmUge1xuICAgICAgICAgICAgY29udGVudDogXCJcXDIwMDNcIjtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IGN1cnJlbnRDb2xvcjtcbiAgICAgICAgICAgIGZvcmNlZC1jb2xvci1hZGp1c3Q6IG5vbmU7XG4gICAgICAgICAgICBtYXNrOiB2YXIoLS1wLWJyZWFkY3J1bWItc2VwYXJhdG9yLWljb24pIGNlbnRlciAvIGNvbnRhaW4gbm8tcmVwZWF0O1xuICAgICAgICAgICAgZm9udC1zdHlsZTogbm9ybWFsO1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICAgICAgICAgIGZvbnQtdmFyaWFudDogbm9ybWFsO1xuICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IDAgdmFyKC0tcC1icmVhZGNydW1iLWdhcCk7XG4gICAgICAgICAgICBjb2xvcjogdmFyKC0tcC1icmVhZGNydW1iLXNlcGFyYXRvci1jb2xvcik7XG4gICAgICAgIH1cblxuICAgICAgICBsaTpub3QoLnAtYnJlYWRjcnVtYi1vcHRpb25zKTpkaXIocnRsKTo6YmVmb3JlIHtcbiAgICAgICAgICAgIHNjYWxlOiAtMSAxO1xuICAgICAgICB9XG5cbiAgICAgICAgbGk6Zmlyc3QtY2hpbGQ6OmJlZm9yZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgLyogaG9tZSBpY29uOiBvbmx5IHRoZSBpY29uIG9mIHRoZSBsaW5rIGlzIHNob3duICovXG4gICAgICAgIGxpOmZpcnN0LWNoaWxkIGEucC1icmVhZGNydW1iLWhvbWUtaWNvbiB7XG4gICAgICAgICAgICAtLV9pY29uOiB2YXIoLS1wLWJyZWFkY3J1bWItaG9tZS1pY29uKTtcblxuICAgICAgICAgICAgc3BhbiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cblxuLnAtYnJlYWRjcnVtYi1ob21lLWljb24gLnAtbWVudWl0ZW0tdGV4dCB7XG4gICAgZGlzcGxheTogbm9uZTtcbn1cbiIsICIvKlxuICogQnV0dG9uOiBwOmNvbW1hbmRCdXR0b24sIHA6YnV0dG9uLCBwOmxpbmtCdXR0b24sIC4uLlxuICpcbiAqIFNldmVyaXR5IGNsYXNzZXMgb25seSBzd2l0Y2ggdGhlIHByaXZhdGUgLS1fKiB2YXJpYWJsZXMsIHRoZSB2aXN1YWwgcnVsZXMgZXhpc3Qgb25jZS5cbiAqIFN1cHBvcnRlZCBjbGFzc2VzOiBwLWJ1dHRvbi1zZWNvbmRhcnkgfCAtaW5mbyB8IC1zdWNjZXNzIHwgLXdhcm5pbmcgfCAtaGVscCB8IC1kYW5nZXIgfCAtY29udHJhc3QsXG4gKiAgICAgICAgICAgICAgICAgICAgcC1idXR0b24tb3V0bGluZWQsIHAtYnV0dG9uLWZsYXQgKHRleHQpLCBwLWJ1dHRvbi1wbGFpbiwgcC1idXR0b24tcmFpc2VkLFxuICogICAgICAgICAgICAgICAgICAgIHJvdW5kZWQtYnV0dG9uLCBwLWJ1dHRvbi1zbSwgcC1idXR0b24tbGdcbiAqIEFsc286IHAtc3RhdGUtbG9hZGluZyAoaW5saW5lIGFqYXggc3RhdHVzKSwgcC1idXR0b25zZXQgLyBwLWJ1dHRvbi1ncm91cCwgcDptZW51QnV0dG9uIHRyaWdnZXIsIGxpbmtzLlxuICovXG5cbi8qIGJlZm9yZSB0aGUgLnAtYnV0dG9uIHJ1bGVzOiBpY29uIG9ubHkgYnV0dG9ucyBrZWVwIHRoZWlyIHdpZHRoIChzYW1lIHNwZWNpZmljaXR5KSAqL1xuLnAtZmx1aWQge1xuICAgIC5wLWJ1dHRvbiB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgIH1cblxuICAgIC8qIHRoZSBvcHRpb25zIG9mIHA6c2VsZWN0T25lQnV0dG9uIC8gcDpzZWxlY3RNYW55QnV0dG9uIChwLWJ1dHRvbnNldC1OKSBzaGFyZSB0aGUgd2lkdGg6IGZvcm1zL3NlbGVjdG9uZWJ1dHRvbi5jc3MgKi9cbiAgICAucC1idXR0b25zZXQge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICB9XG59XG5cbi5wLWJ1dHRvbiB7XG4gICAgLS1fYmc6IHZhcigtLXAtYnV0dG9uLXByaW1hcnktYmFja2dyb3VuZCk7XG4gICAgLS1faG92ZXItYmc6IHZhcigtLXAtYnV0dG9uLXByaW1hcnktaG92ZXItYmFja2dyb3VuZCk7XG4gICAgLS1fYWN0aXZlLWJnOiB2YXIoLS1wLWJ1dHRvbi1wcmltYXJ5LWFjdGl2ZS1iYWNrZ3JvdW5kKTtcbiAgICAtLV9ib3JkZXI6IHZhcigtLXAtYnV0dG9uLXByaW1hcnktYm9yZGVyLWNvbG9yKTtcbiAgICAtLV9ob3Zlci1ib3JkZXI6IHZhcigtLXAtYnV0dG9uLXByaW1hcnktaG92ZXItYm9yZGVyLWNvbG9yKTtcbiAgICAtLV9hY3RpdmUtYm9yZGVyOiB2YXIoLS1wLWJ1dHRvbi1wcmltYXJ5LWFjdGl2ZS1ib3JkZXItY29sb3IpO1xuICAgIC0tX2NvbG9yOiB2YXIoLS1wLWJ1dHRvbi1wcmltYXJ5LWNvbG9yKTtcbiAgICAtLV9ob3Zlci1jb2xvcjogdmFyKC0tcC1idXR0b24tcHJpbWFyeS1ob3Zlci1jb2xvcik7XG4gICAgLS1fYWN0aXZlLWNvbG9yOiB2YXIoLS1wLWJ1dHRvbi1wcmltYXJ5LWFjdGl2ZS1jb2xvcik7XG4gICAgLS1fZm9jdXMtcmluZy1jb2xvcjogdmFyKC0tcC1idXR0b24tcHJpbWFyeS1mb2N1cy1yaW5nLWNvbG9yKTtcbiAgICAtLV9mb2N1cy1yaW5nLXNoYWRvdzogdmFyKC0tcC1idXR0b24tcHJpbWFyeS1mb2N1cy1yaW5nLXNoYWRvdyk7XG4gICAgLS1fb3V0bGluZWQtaG92ZXItYmc6IHZhcigtLXAtYnV0dG9uLW91dGxpbmVkLXByaW1hcnktaG92ZXItYmFja2dyb3VuZCk7XG4gICAgLS1fb3V0bGluZWQtYWN0aXZlLWJnOiB2YXIoLS1wLWJ1dHRvbi1vdXRsaW5lZC1wcmltYXJ5LWFjdGl2ZS1iYWNrZ3JvdW5kKTtcbiAgICAtLV9vdXRsaW5lZC1ib3JkZXI6IHZhcigtLXAtYnV0dG9uLW91dGxpbmVkLXByaW1hcnktYm9yZGVyLWNvbG9yKTtcbiAgICAtLV9vdXRsaW5lZC1jb2xvcjogdmFyKC0tcC1idXR0b24tb3V0bGluZWQtcHJpbWFyeS1jb2xvcik7XG4gICAgLS1fdGV4dC1ob3Zlci1iZzogdmFyKC0tcC1idXR0b24tdGV4dC1wcmltYXJ5LWhvdmVyLWJhY2tncm91bmQpO1xuICAgIC0tX3RleHQtYWN0aXZlLWJnOiB2YXIoLS1wLWJ1dHRvbi10ZXh0LXByaW1hcnktYWN0aXZlLWJhY2tncm91bmQpO1xuICAgIC0tX3RleHQtY29sb3I6IHZhcigtLXAtYnV0dG9uLXRleHQtcHJpbWFyeS1jb2xvcik7XG4gICAgLS1fc2hhZG93OiB2YXIoLS1wLWJ1dHRvbi1zaGFkb3cpO1xuICAgIC0tX2FjdGl2ZS1zaGFkb3c6IHZhcigtLXAtYnV0dG9uLWFjdGl2ZS1zaGFkb3cpO1xuICAgIC0tX2xhYmVsLXNoYWRvdzogdmFyKC0tcC1idXR0b24tbGFiZWwtc2hhZG93KTtcbiAgICAvKiB0ZXh0dXJlIGxheWVyIGFib3ZlIHRoZSBiYWNrZ3JvdW5kIChlLmcuIGJydXNoZWQgbWV0YWwpLCBub25lIGJ5IGRlZmF1bHQgKi9cbiAgICAtLV90ZXh0dXJlOiB2YXIoLS1wLWJ1dHRvbi10ZXh0dXJlKTtcblxuICAgIC8qICFpbXBvcnRhbnQ6IGFsc28gYWdhaW5zdCB1bmxheWVyZWQgYXBwbGljYXRpb24gcnVsZXMgbGlrZSBhOmhvdmVyICovXG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lICFpbXBvcnRhbnQ7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgZ2FwOiB2YXIoLS1wLWJ1dHRvbi1nYXApO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogdmFyKC0tcC1idXR0b24tcGFkZGluZy15KSB2YXIoLS1wLWJ1dHRvbi1wYWRkaW5nLXgpO1xuICAgIHZlcnRpY2FsLWFsaWduOiBib3R0b207XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgLXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTtcbiAgICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgICBmb250LXNpemU6IHZhcigtLXAtYnV0dG9uLWZvbnQtc2l6ZSk7XG4gICAgZm9udC13ZWlnaHQ6IHZhcigtLXAtYnV0dG9uLWxhYmVsLWZvbnQtd2VpZ2h0KTtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1fdGV4dHVyZSksIHZhcigtLV9iZyk7XG4gICAgY29sb3I6IHZhcigtLV9jb2xvcik7XG4gICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tX2JvcmRlcik7XG4gICAgYm9yZGVyLXJhZGl1czogdmFyKC0tcC1idXR0b24tYm9yZGVyLXJhZGl1cyk7XG4gICAgYm94LXNoYWRvdzogdmFyKC0tX3NoYWRvdyk7XG4gICAgb3V0bGluZS1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCB2YXIoLS1wLWJ1dHRvbi10cmFuc2l0aW9uLWR1cmF0aW9uKSwgY29sb3IgdmFyKC0tcC1idXR0b24tdHJhbnNpdGlvbi1kdXJhdGlvbiksXG4gICAgICAgIGJvcmRlci1jb2xvciB2YXIoLS1wLWJ1dHRvbi10cmFuc2l0aW9uLWR1cmF0aW9uKSwgb3V0bGluZS1jb2xvciB2YXIoLS1wLWJ1dHRvbi10cmFuc2l0aW9uLWR1cmF0aW9uKSxcbiAgICAgICAgYm94LXNoYWRvdyB2YXIoLS1wLWJ1dHRvbi10cmFuc2l0aW9uLWR1cmF0aW9uKSwgdHJhbnNsYXRlIHZhcigtLXAtYnV0dG9uLXRyYW5zaXRpb24tZHVyYXRpb24pO1xuXG4gICAgLnAtYnV0dG9uLXRleHQge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgbGluZS1oZWlnaHQ6IHZhcigtLXAtdHlwb2dyYXBoeS1saW5lLWhlaWdodCk7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1wLWJ1dHRvbi1sYWJlbC1mb250LXdlaWdodCk7XG4gICAgICAgIHRleHQtc2hhZG93OiB2YXIoLS1fbGFiZWwtc2hhZG93KTtcbiAgICB9XG5cbiAgICAvKiB0aGUgaWNvbiBpcyBhIGZsZXggaXRlbSAoYWxzbyBpY29ucyB3aXRob3V0IFwiLnAtY1wiLCBlLmcuIGRhdGVwaWNrZXIgdHJpZ2dlciwgbWVudUJ1dHRvbiBkcm9wZG93biBpY29uKSAqL1xuICAgIC5wLWJ1dHRvbi1pY29uLWxlZnQsXG4gICAgLnAtYnV0dG9uLWljb24tcmlnaHQsXG4gICAgLnAtaWNvbiB7XG4gICAgICAgIHBvc2l0aW9uOiBzdGF0aWM7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgfVxuXG4gICAgLnAtYnV0dG9uLWljb24tcmlnaHQge1xuICAgICAgICBvcmRlcjogMTtcbiAgICB9XG5cbiAgICAvKiBpY29uIG9ubHk6IGtlZXAgdGhlIChoaWRkZW4pIGxhYmVsIGluIHRoZSBmbG93IHNvIHRoZSBoZWlnaHQgbWF0Y2hlcyB0ZXh0IGJ1dHRvbnMgKi9cbiAgICAmLnAtYnV0dG9uLWljb24tb25seSB7XG4gICAgICAgIHdpZHRoOiB2YXIoLS1wLWJ1dHRvbi1pY29uLW9ubHktd2lkdGgpO1xuICAgICAgICBwYWRkaW5nLWlubGluZTogMDtcbiAgICAgICAgZ2FwOiAwO1xuXG4gICAgICAgIC5wLWJ1dHRvbi10ZXh0IHtcbiAgICAgICAgICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICAgICAgICAgIHdpZHRoOiAwO1xuICAgICAgICAgICAgLyogYW4gZW1wdHkgbGFiZWwgKHZhbHVlPVwiXCIpIG11c3Qgc3RpbGwgZ2l2ZSB0aGUgYnV0dG9uIHRoZSBoZWlnaHQgb2YgYSB0ZXh0IGJ1dHRvbiAqL1xuICAgICAgICAgICAgbWluLWhlaWdodDogY2FsYygxZW0gKiB2YXIoLS1wLXR5cG9ncmFwaHktbGluZS1oZWlnaHQpKTtcbiAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgfVxuXG4gICAgICAgICYucm91bmRlZC1idXR0b24ge1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgICAgICAgICAgaGVpZ2h0OiB2YXIoLS1wLWJ1dHRvbi1pY29uLW9ubHktd2lkdGgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyogcDpsaW5rQnV0dG9uIHJlbmRlcnMgc3Bhbi5wLWJ1dHRvbiA+IGEgKi9cbiAgICAmLnAtbGlua2J1dHRvbiB7XG4gICAgICAgIHBhZGRpbmc6IDA7XG5cbiAgICAgICAgPiBhIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIGdhcDogdmFyKC0tcC1idXR0b24tZ2FwKTtcbiAgICAgICAgICAgIHBhZGRpbmc6IHZhcigtLXAtYnV0dG9uLXBhZGRpbmcteSkgdmFyKC0tcC1idXR0b24tcGFkZGluZy14KTtcbiAgICAgICAgICAgIGNvbG9yOiBpbmhlcml0O1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgb3V0bGluZTogMCBub25lO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyogc3RhdGVzICovXG4gICAgJjpub3QoOmRpc2FibGVkLCAucC1zdGF0ZS1kaXNhYmxlZCk6aG92ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1fdGV4dHVyZSksIHZhcigtLV9ob3Zlci1iZyk7XG4gICAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tX2hvdmVyLWJvcmRlcik7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1faG92ZXItY29sb3IpO1xuICAgIH1cblxuICAgICY6bm90KDpkaXNhYmxlZCwgLnAtc3RhdGUtZGlzYWJsZWQpOmFjdGl2ZSxcbiAgICAmLnAtc3RhdGUtYWN0aXZlIHtcbiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tX3RleHR1cmUpLCB2YXIoLS1fYWN0aXZlLWJnKTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1fYWN0aXZlLWJvcmRlcik7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1fYWN0aXZlLWNvbG9yKTtcbiAgICB9XG5cbiAgICAvKiBwcmVzc2VkIChub3QgdGhlIHBlcnNpc3RlbnQgcC1zdGF0ZS1hY3RpdmUgb2YgdG9nZ2xlIGJ1dHRvbnMpOiBlLmcuIHB1c2hlZCBpbnRvIHRoZSBzdXJmYWNlICovXG4gICAgJjpub3QoOmRpc2FibGVkLCAucC1zdGF0ZS1kaXNhYmxlZCk6YWN0aXZlIHtcbiAgICAgICAgYm94LXNoYWRvdzogdmFyKC0tX2FjdGl2ZS1zaGFkb3cpO1xuICAgICAgICB0cmFuc2xhdGU6IDAgdmFyKC0tcC1idXR0b24tYWN0aXZlLW9mZnNldCk7XG4gICAgfVxuXG4gICAgJjpmb2N1cy12aXNpYmxlLFxuICAgICYucC1saW5rYnV0dG9uOmhhcyg+IGE6Zm9jdXMtdmlzaWJsZSkge1xuICAgICAgICBvdXRsaW5lOiB2YXIoLS1wLWJ1dHRvbi1mb2N1cy1yaW5nLXdpZHRoKSB2YXIoLS1wLWJ1dHRvbi1mb2N1cy1yaW5nLXN0eWxlKSB2YXIoLS1fZm9jdXMtcmluZy1jb2xvcik7XG4gICAgICAgIG91dGxpbmUtb2Zmc2V0OiB2YXIoLS1wLWJ1dHRvbi1mb2N1cy1yaW5nLW9mZnNldCk7XG4gICAgICAgIGJveC1zaGFkb3c6IHZhcigtLV9mb2N1cy1yaW5nLXNoYWRvdyk7XG4gICAgfVxuXG4gICAgJjpkaXNhYmxlZCxcbiAgICAmLnAtc3RhdGUtZGlzYWJsZWQge1xuICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG4gICAgfVxuXG4gICAgLyogZGlzYWJsZWQgYXR0cmlidXRlIHdpdGhvdXQgLnAtc3RhdGUtZGlzYWJsZWQgKGUuZy4gZGlzYWJsZWQgYnkgdGhlIGFqYXggc3RhdHVzKSwgc2FtZSBsb29rIGFzIC5wLXN0YXRlLWRpc2FibGVkICovXG4gICAgJjpkaXNhYmxlZCB7XG4gICAgICAgIG9wYWNpdHk6IHZhcigtLXAtZGlzYWJsZWQtb3BhY2l0eSk7XG4gICAgfVxuXG4gICAgLyogZHJvcGRvd24gaWNvbiBvZiBwOm1lbnVCdXR0b24gKi9cbiAgICAucC1idXR0b24tZHJvcGRvd24taWNvbiB7XG4gICAgICAgIC0tX2ljb246IHZhcigtLXAtYnV0dG9uLWRyb3Bkb3duLWljb24pO1xuICAgIH1cblxuICAgIC8qXG4gICAgICogaW5saW5lIGFqYXggc3RhdHVzOiB0aGUgY29yZSBwcmVwZW5kcyBhIHNwaW5uZXIgLnAtaWNvbi1sb2FkaW5nIHdoaWxlIHRoZSByZXF1ZXN0IHJ1bnMuIEl0IHRha2VzIHRoZSBwbGFjZSBvZlxuICAgICAqIHRoZSBpY29uIChpdCBnZXRzIHAtYnV0dG9uLWljb24tbGVmdCAvIC1yaWdodCBsaWtlIGl0KTsgYSBidXR0b24gd2l0aG91dCBpY29uIHNob3dzIGl0IG5leHQgdG8gdGhlIGxhYmVsLlxuICAgICAqL1xuICAgICYucC1zdGF0ZS1sb2FkaW5nIDppcygucC1idXR0b24taWNvbi1sZWZ0LCAucC1idXR0b24taWNvbi1yaWdodCwgLnAtaWNvbik6bm90KC5wLWljb24tbG9hZGluZykge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbn1cblxuLyogYnV0dG9uIGdyb3VwczogLnAtYnV0dG9uLWdyb3VwIChqb2luZWQgYnV0dG9ucykgKi9cbi8qXG4gKiBmaXJzdCAvIGxhc3QgYXJlIGNvdW50ZWQgYW1vbmcgdGhlIGJ1dHRvbnMgb25seSAoXCJvZiAucC1idXR0b25cIik6IGV2ZXJ5IFByaW1lRmFjZXMgYnV0dG9uIHJlbmRlcnMgaXRzIGNvbXBvbmVudFxuICogPHNjcmlwdD4gcmlnaHQgYWZ0ZXIgaXRzZWxmLCBzbyA6bGFzdC1jaGlsZCB3b3VsZCBuZXZlciBiZSB0aGUgbGFzdCBidXR0b24uXG4gKi9cbi5wLWJ1dHRvbi1ncm91cCB7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgYm9yZGVyLXJhZGl1czogdmFyKC0tcC1idXR0b24tYm9yZGVyLXJhZGl1cyk7XG5cbiAgICAvKiByYWlzZWQ6IG9uZSBzaGFkb3cgYXJvdW5kIHRoZSB3aG9sZSBncm91cCAobGlrZSBQcmltZVVJWCkgKi9cbiAgICAmOmhhcygucC1idXR0b24tcmFpc2VkKSB7XG4gICAgICAgIGJveC1zaGFkb3c6IHZhcigtLXAtYnV0dG9uLXJhaXNlZC1zaGFkb3cpO1xuICAgIH1cblxuICAgIC5wLWJ1dHRvbiB7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcblxuICAgICAgICAmOm5vdCg6bnRoLWxhc3QtY2hpbGQoMSBvZiAucC1idXR0b24pKSB7XG4gICAgICAgICAgICBib3JkZXItaW5saW5lLWVuZC13aWR0aDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICY6bnRoLWNoaWxkKDEgb2YgLnAtYnV0dG9uKSB7XG4gICAgICAgICAgICBib3JkZXItc3RhcnQtc3RhcnQtcmFkaXVzOiB2YXIoLS1wLWJ1dHRvbi1ib3JkZXItcmFkaXVzKTtcbiAgICAgICAgICAgIGJvcmRlci1lbmQtc3RhcnQtcmFkaXVzOiB2YXIoLS1wLWJ1dHRvbi1ib3JkZXItcmFkaXVzKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6bnRoLWxhc3QtY2hpbGQoMSBvZiAucC1idXR0b24pIHtcbiAgICAgICAgICAgIGJvcmRlci1zdGFydC1lbmQtcmFkaXVzOiB2YXIoLS1wLWJ1dHRvbi1ib3JkZXItcmFkaXVzKTtcbiAgICAgICAgICAgIGJvcmRlci1lbmQtZW5kLXJhZGl1czogdmFyKC0tcC1idXR0b24tYm9yZGVyLXJhZGl1cyk7XG4gICAgICAgIH1cblxuICAgICAgICAmOmZvY3VzLXZpc2libGUge1xuICAgICAgICAgICAgei1pbmRleDogMTtcbiAgICAgICAgfVxuXG4gICAgICAgICYucC1idXR0b24tcmFpc2VkOm5vdCg6Zm9jdXMtdmlzaWJsZSkge1xuICAgICAgICAgICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLnAtYnV0dG9uc2V0IC5wLWJ1dHRvbiB7XG4gICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgbWFyZ2luLXJpZ2h0OiAwO1xufVxuXG5idXR0b24ucC1idXR0b246Oi1tb3otZm9jdXMtaW5uZXIge1xuICAgIGJvcmRlcjogMDtcbiAgICBwYWRkaW5nOiAwO1xufVxuXG4vKiBwOm1lbnVCdXR0b246IHNwYW4ucC1tZW51YnV0dG9uID4gYnV0dG9uLnAtYnV0dG9uICsgb3ZlcmxheSAucC1tZW51IChzdHlsZWQgYnkgbWVudS9tZW51LmJhc2UuY3NzKSAqL1xuLnAtbWVudWJ1dHRvbiB7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHBhZGRpbmc6IDA7XG5cbiAgICAucC1idXR0b24ge1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgfVxufVxuXG4vKiBzZXZlcml0aWVzICovXG4ucC1idXR0b24ucC1idXR0b24tc2Vjb25kYXJ5LFxuOmlzKC5wLXNwbGl0YnV0dG9uLCAucC1tZW51YnV0dG9uKS5wLWJ1dHRvbi1zZWNvbmRhcnkgPiAucC1idXR0b24ge1xuICAgIC0tX2JnOiB2YXIoLS1wLWJ1dHRvbi1zZWNvbmRhcnktYmFja2dyb3VuZCk7XG4gICAgLS1faG92ZXItYmc6IHZhcigtLXAtYnV0dG9uLXNlY29uZGFyeS1ob3Zlci1iYWNrZ3JvdW5kKTtcbiAgICAtLV9hY3RpdmUtYmc6IHZhcigtLXAtYnV0dG9uLXNlY29uZGFyeS1hY3RpdmUtYmFja2dyb3VuZCk7XG4gICAgLS1fYm9yZGVyOiB2YXIoLS1wLWJ1dHRvbi1zZWNvbmRhcnktYm9yZGVyLWNvbG9yKTtcbiAgICAtLV9ob3Zlci1ib3JkZXI6IHZhcigtLXAtYnV0dG9uLXNlY29uZGFyeS1ob3Zlci1ib3JkZXItY29sb3IpO1xuICAgIC0tX2FjdGl2ZS1ib3JkZXI6IHZhcigtLXAtYnV0dG9uLXNlY29uZGFyeS1hY3RpdmUtYm9yZGVyLWNvbG9yKTtcbiAgICAtLV9jb2xvcjogdmFyKC0tcC1idXR0b24tc2Vjb25kYXJ5LWNvbG9yKTtcbiAgICAtLV9ob3Zlci1jb2xvcjogdmFyKC0tcC1idXR0b24tc2Vjb25kYXJ5LWhvdmVyLWNvbG9yKTtcbiAgICAtLV9hY3RpdmUtY29sb3I6IHZhcigtLXAtYnV0dG9uLXNlY29uZGFyeS1hY3RpdmUtY29sb3IpO1xuICAgIC0tX2ZvY3VzLXJpbmctY29sb3I6IHZhcigtLXAtYnV0dG9uLXNlY29uZGFyeS1mb2N1cy1yaW5nLWNvbG9yKTtcbiAgICAtLV9mb2N1cy1yaW5nLXNoYWRvdzogdmFyKC0tcC1idXR0b24tc2Vjb25kYXJ5LWZvY3VzLXJpbmctc2hhZG93KTtcbiAgICAtLV9sYWJlbC1zaGFkb3c6IHZhcigtLXAtYnV0dG9uLW91dGxpbmVkLWxhYmVsLXNoYWRvdyk7XG4gICAgLS1fb3V0bGluZWQtaG92ZXItYmc6IHZhcigtLXAtYnV0dG9uLW91dGxpbmVkLXNlY29uZGFyeS1ob3Zlci1iYWNrZ3JvdW5kKTtcbiAgICAtLV9vdXRsaW5lZC1hY3RpdmUtYmc6IHZhcigtLXAtYnV0dG9uLW91dGxpbmVkLXNlY29uZGFyeS1hY3RpdmUtYmFja2dyb3VuZCk7XG4gICAgLS1fb3V0bGluZWQtYm9yZGVyOiB2YXIoLS1wLWJ1dHRvbi1vdXRsaW5lZC1zZWNvbmRhcnktYm9yZGVyLWNvbG9yKTtcbiAgICAtLV9vdXRsaW5lZC1jb2xvcjogdmFyKC0tcC1idXR0b24tb3V0bGluZWQtc2Vjb25kYXJ5LWNvbG9yKTtcbiAgICAtLV90ZXh0LWhvdmVyLWJnOiB2YXIoLS1wLWJ1dHRvbi10ZXh0LXNlY29uZGFyeS1ob3Zlci1iYWNrZ3JvdW5kKTtcbiAgICAtLV90ZXh0LWFjdGl2ZS1iZzogdmFyKC0tcC1idXR0b24tdGV4dC1zZWNvbmRhcnktYWN0aXZlLWJhY2tncm91bmQpO1xuICAgIC0tX3RleHQtY29sb3I6IHZhcigtLXAtYnV0dG9uLXRleHQtc2Vjb25kYXJ5LWNvbG9yKTtcbn1cblxuLnAtYnV0dG9uLnAtYnV0dG9uLWluZm8sXG46aXMoLnAtc3BsaXRidXR0b24sIC5wLW1lbnVidXR0b24pLnAtYnV0dG9uLWluZm8gPiAucC1idXR0b24ge1xuICAgIC0tX2JnOiB2YXIoLS1wLWJ1dHRvbi1pbmZvLWJhY2tncm91bmQpO1xuICAgIC0tX2hvdmVyLWJnOiB2YXIoLS1wLWJ1dHRvbi1pbmZvLWhvdmVyLWJhY2tncm91bmQpO1xuICAgIC0tX2FjdGl2ZS1iZzogdmFyKC0tcC1idXR0b24taW5mby1hY3RpdmUtYmFja2dyb3VuZCk7XG4gICAgLS1fYm9yZGVyOiB2YXIoLS1wLWJ1dHRvbi1pbmZvLWJvcmRlci1jb2xvcik7XG4gICAgLS1faG92ZXItYm9yZGVyOiB2YXIoLS1wLWJ1dHRvbi1pbmZvLWhvdmVyLWJvcmRlci1jb2xvcik7XG4gICAgLS1fYWN0aXZlLWJvcmRlcjogdmFyKC0tcC1idXR0b24taW5mby1hY3RpdmUtYm9yZGVyLWNvbG9yKTtcbiAgICAtLV9jb2xvcjogdmFyKC0tcC1idXR0b24taW5mby1jb2xvcik7XG4gICAgLS1faG92ZXItY29sb3I6IHZhcigtLXAtYnV0dG9uLWluZm8taG92ZXItY29sb3IpO1xuICAgIC0tX2FjdGl2ZS1jb2xvcjogdmFyKC0tcC1idXR0b24taW5mby1hY3RpdmUtY29sb3IpO1xuICAgIC0tX2ZvY3VzLXJpbmctY29sb3I6IHZhcigtLXAtYnV0dG9uLWluZm8tZm9jdXMtcmluZy1jb2xvcik7XG4gICAgLS1fZm9jdXMtcmluZy1zaGFkb3c6IHZhcigtLXAtYnV0dG9uLWluZm8tZm9jdXMtcmluZy1zaGFkb3cpO1xuICAgIC0tX291dGxpbmVkLWhvdmVyLWJnOiB2YXIoLS1wLWJ1dHRvbi1vdXRsaW5lZC1pbmZvLWhvdmVyLWJhY2tncm91bmQpO1xuICAgIC0tX291dGxpbmVkLWFjdGl2ZS1iZzogdmFyKC0tcC1idXR0b24tb3V0bGluZWQtaW5mby1hY3RpdmUtYmFja2dyb3VuZCk7XG4gICAgLS1fb3V0bGluZWQtYm9yZGVyOiB2YXIoLS1wLWJ1dHRvbi1vdXRsaW5lZC1pbmZvLWJvcmRlci1jb2xvcik7XG4gICAgLS1fb3V0bGluZWQtY29sb3I6IHZhcigtLXAtYnV0dG9uLW91dGxpbmVkLWluZm8tY29sb3IpO1xuICAgIC0tX3RleHQtaG92ZXItYmc6IHZhcigtLXAtYnV0dG9uLXRleHQtaW5mby1ob3Zlci1iYWNrZ3JvdW5kKTtcbiAgICAtLV90ZXh0LWFjdGl2ZS1iZzogdmFyKC0tcC1idXR0b24tdGV4dC1pbmZvLWFjdGl2ZS1iYWNrZ3JvdW5kKTtcbiAgICAtLV90ZXh0LWNvbG9yOiB2YXIoLS1wLWJ1dHRvbi10ZXh0LWluZm8tY29sb3IpO1xufVxuXG4ucC1idXR0b24ucC1idXR0b24tc3VjY2VzcyxcbjppcygucC1zcGxpdGJ1dHRvbiwgLnAtbWVudWJ1dHRvbikucC1idXR0b24tc3VjY2VzcyA+IC5wLWJ1dHRvbiB7XG4gICAgLS1fYmc6IHZhcigtLXAtYnV0dG9uLXN1Y2Nlc3MtYmFja2dyb3VuZCk7XG4gICAgLS1faG92ZXItYmc6IHZhcigtLXAtYnV0dG9uLXN1Y2Nlc3MtaG92ZXItYmFja2dyb3VuZCk7XG4gICAgLS1fYWN0aXZlLWJnOiB2YXIoLS1wLWJ1dHRvbi1zdWNjZXNzLWFjdGl2ZS1iYWNrZ3JvdW5kKTtcbiAgICAtLV9ib3JkZXI6IHZhcigtLXAtYnV0dG9uLXN1Y2Nlc3MtYm9yZGVyLWNvbG9yKTtcbiAgICAtLV9ob3Zlci1ib3JkZXI6IHZhcigtLXAtYnV0dG9uLXN1Y2Nlc3MtaG92ZXItYm9yZGVyLWNvbG9yKTtcbiAgICAtLV9hY3RpdmUtYm9yZGVyOiB2YXIoLS1wLWJ1dHRvbi1zdWNjZXNzLWFjdGl2ZS1ib3JkZXItY29sb3IpO1xuICAgIC0tX2NvbG9yOiB2YXIoLS1wLWJ1dHRvbi1zdWNjZXNzLWNvbG9yKTtcbiAgICAtLV9ob3Zlci1jb2xvcjogdmFyKC0tcC1idXR0b24tc3VjY2Vzcy1ob3Zlci1jb2xvcik7XG4gICAgLS1fYWN0aXZlLWNvbG9yOiB2YXIoLS1wLWJ1dHRvbi1zdWNjZXNzLWFjdGl2ZS1jb2xvcik7XG4gICAgLS1fZm9jdXMtcmluZy1jb2xvcjogdmFyKC0tcC1idXR0b24tc3VjY2Vzcy1mb2N1cy1yaW5nLWNvbG9yKTtcbiAgICAtLV9mb2N1cy1yaW5nLXNoYWRvdzogdmFyKC0tcC1idXR0b24tc3VjY2Vzcy1mb2N1cy1yaW5nLXNoYWRvdyk7XG4gICAgLS1fb3V0bGluZWQtaG92ZXItYmc6IHZhcigtLXAtYnV0dG9uLW91dGxpbmVkLXN1Y2Nlc3MtaG92ZXItYmFja2dyb3VuZCk7XG4gICAgLS1fb3V0bGluZWQtYWN0aXZlLWJnOiB2YXIoLS1wLWJ1dHRvbi1vdXRsaW5lZC1zdWNjZXNzLWFjdGl2ZS1iYWNrZ3JvdW5kKTtcbiAgICAtLV9vdXRsaW5lZC1ib3JkZXI6IHZhcigtLXAtYnV0dG9uLW91dGxpbmVkLXN1Y2Nlc3MtYm9yZGVyLWNvbG9yKTtcbiAgICAtLV9vdXRsaW5lZC1jb2xvcjogdmFyKC0tcC1idXR0b24tb3V0bGluZWQtc3VjY2Vzcy1jb2xvcik7XG4gICAgLS1fdGV4dC1ob3Zlci1iZzogdmFyKC0tcC1idXR0b24tdGV4dC1zdWNjZXNzLWhvdmVyLWJhY2tncm91bmQpO1xuICAgIC0tX3RleHQtYWN0aXZlLWJnOiB2YXIoLS1wLWJ1dHRvbi10ZXh0LXN1Y2Nlc3MtYWN0aXZlLWJhY2tncm91bmQpO1xuICAgIC0tX3RleHQtY29sb3I6IHZhcigtLXAtYnV0dG9uLXRleHQtc3VjY2Vzcy1jb2xvcik7XG59XG5cbi5wLWJ1dHRvbi5wLWJ1dHRvbi13YXJuaW5nLFxuOmlzKC5wLXNwbGl0YnV0dG9uLCAucC1tZW51YnV0dG9uKS5wLWJ1dHRvbi13YXJuaW5nID4gLnAtYnV0dG9uIHtcbiAgICAtLV9iZzogdmFyKC0tcC1idXR0b24td2Fybi1iYWNrZ3JvdW5kKTtcbiAgICAtLV9ob3Zlci1iZzogdmFyKC0tcC1idXR0b24td2Fybi1ob3Zlci1iYWNrZ3JvdW5kKTtcbiAgICAtLV9hY3RpdmUtYmc6IHZhcigtLXAtYnV0dG9uLXdhcm4tYWN0aXZlLWJhY2tncm91bmQpO1xuICAgIC0tX2JvcmRlcjogdmFyKC0tcC1idXR0b24td2Fybi1ib3JkZXItY29sb3IpO1xuICAgIC0tX2hvdmVyLWJvcmRlcjogdmFyKC0tcC1idXR0b24td2Fybi1ob3Zlci1ib3JkZXItY29sb3IpO1xuICAgIC0tX2FjdGl2ZS1ib3JkZXI6IHZhcigtLXAtYnV0dG9uLXdhcm4tYWN0aXZlLWJvcmRlci1jb2xvcik7XG4gICAgLS1fY29sb3I6IHZhcigtLXAtYnV0dG9uLXdhcm4tY29sb3IpO1xuICAgIC0tX2hvdmVyLWNvbG9yOiB2YXIoLS1wLWJ1dHRvbi13YXJuLWhvdmVyLWNvbG9yKTtcbiAgICAtLV9hY3RpdmUtY29sb3I6IHZhcigtLXAtYnV0dG9uLXdhcm4tYWN0aXZlLWNvbG9yKTtcbiAgICAtLV9mb2N1cy1yaW5nLWNvbG9yOiB2YXIoLS1wLWJ1dHRvbi13YXJuLWZvY3VzLXJpbmctY29sb3IpO1xuICAgIC0tX2ZvY3VzLXJpbmctc2hhZG93OiB2YXIoLS1wLWJ1dHRvbi13YXJuLWZvY3VzLXJpbmctc2hhZG93KTtcbiAgICAtLV9vdXRsaW5lZC1ob3Zlci1iZzogdmFyKC0tcC1idXR0b24tb3V0bGluZWQtd2Fybi1ob3Zlci1iYWNrZ3JvdW5kKTtcbiAgICAtLV9vdXRsaW5lZC1hY3RpdmUtYmc6IHZhcigtLXAtYnV0dG9uLW91dGxpbmVkLXdhcm4tYWN0aXZlLWJhY2tncm91bmQpO1xuICAgIC0tX291dGxpbmVkLWJvcmRlcjogdmFyKC0tcC1idXR0b24tb3V0bGluZWQtd2Fybi1ib3JkZXItY29sb3IpO1xuICAgIC0tX291dGxpbmVkLWNvbG9yOiB2YXIoLS1wLWJ1dHRvbi1vdXRsaW5lZC13YXJuLWNvbG9yKTtcbiAgICAtLV90ZXh0LWhvdmVyLWJnOiB2YXIoLS1wLWJ1dHRvbi10ZXh0LXdhcm4taG92ZXItYmFja2dyb3VuZCk7XG4gICAgLS1fdGV4dC1hY3RpdmUtYmc6IHZhcigtLXAtYnV0dG9uLXRleHQtd2Fybi1hY3RpdmUtYmFja2dyb3VuZCk7XG4gICAgLS1fdGV4dC1jb2xvcjogdmFyKC0tcC1idXR0b24tdGV4dC13YXJuLWNvbG9yKTtcbn1cblxuLnAtYnV0dG9uLnAtYnV0dG9uLWhlbHAsXG46aXMoLnAtc3BsaXRidXR0b24sIC5wLW1lbnVidXR0b24pLnAtYnV0dG9uLWhlbHAgPiAucC1idXR0b24ge1xuICAgIC0tX2JnOiB2YXIoLS1wLWJ1dHRvbi1oZWxwLWJhY2tncm91bmQpO1xuICAgIC0tX2hvdmVyLWJnOiB2YXIoLS1wLWJ1dHRvbi1oZWxwLWhvdmVyLWJhY2tncm91bmQpO1xuICAgIC0tX2FjdGl2ZS1iZzogdmFyKC0tcC1idXR0b24taGVscC1hY3RpdmUtYmFja2dyb3VuZCk7XG4gICAgLS1fYm9yZGVyOiB2YXIoLS1wLWJ1dHRvbi1oZWxwLWJvcmRlci1jb2xvcik7XG4gICAgLS1faG92ZXItYm9yZGVyOiB2YXIoLS1wLWJ1dHRvbi1oZWxwLWhvdmVyLWJvcmRlci1jb2xvcik7XG4gICAgLS1fYWN0aXZlLWJvcmRlcjogdmFyKC0tcC1idXR0b24taGVscC1hY3RpdmUtYm9yZGVyLWNvbG9yKTtcbiAgICAtLV9jb2xvcjogdmFyKC0tcC1idXR0b24taGVscC1jb2xvcik7XG4gICAgLS1faG92ZXItY29sb3I6IHZhcigtLXAtYnV0dG9uLWhlbHAtaG92ZXItY29sb3IpO1xuICAgIC0tX2FjdGl2ZS1jb2xvcjogdmFyKC0tcC1idXR0b24taGVscC1hY3RpdmUtY29sb3IpO1xuICAgIC0tX2ZvY3VzLXJpbmctY29sb3I6IHZhcigtLXAtYnV0dG9uLWhlbHAtZm9jdXMtcmluZy1jb2xvcik7XG4gICAgLS1fZm9jdXMtcmluZy1zaGFkb3c6IHZhcigtLXAtYnV0dG9uLWhlbHAtZm9jdXMtcmluZy1zaGFkb3cpO1xuICAgIC0tX291dGxpbmVkLWhvdmVyLWJnOiB2YXIoLS1wLWJ1dHRvbi1vdXRsaW5lZC1oZWxwLWhvdmVyLWJhY2tncm91bmQpO1xuICAgIC0tX291dGxpbmVkLWFjdGl2ZS1iZzogdmFyKC0tcC1idXR0b24tb3V0bGluZWQtaGVscC1hY3RpdmUtYmFja2dyb3VuZCk7XG4gICAgLS1fb3V0bGluZWQtYm9yZGVyOiB2YXIoLS1wLWJ1dHRvbi1vdXRsaW5lZC1oZWxwLWJvcmRlci1jb2xvcik7XG4gICAgLS1fb3V0bGluZWQtY29sb3I6IHZhcigtLXAtYnV0dG9uLW91dGxpbmVkLWhlbHAtY29sb3IpO1xuICAgIC0tX3RleHQtaG92ZXItYmc6IHZhcigtLXAtYnV0dG9uLXRleHQtaGVscC1ob3Zlci1iYWNrZ3JvdW5kKTtcbiAgICAtLV90ZXh0LWFjdGl2ZS1iZzogdmFyKC0tcC1idXR0b24tdGV4dC1oZWxwLWFjdGl2ZS1iYWNrZ3JvdW5kKTtcbiAgICAtLV90ZXh0LWNvbG9yOiB2YXIoLS1wLWJ1dHRvbi10ZXh0LWhlbHAtY29sb3IpO1xufVxuXG4ucC1idXR0b24ucC1idXR0b24tZGFuZ2VyLFxuOmlzKC5wLXNwbGl0YnV0dG9uLCAucC1tZW51YnV0dG9uKS5wLWJ1dHRvbi1kYW5nZXIgPiAucC1idXR0b24ge1xuICAgIC0tX2JnOiB2YXIoLS1wLWJ1dHRvbi1kYW5nZXItYmFja2dyb3VuZCk7XG4gICAgLS1faG92ZXItYmc6IHZhcigtLXAtYnV0dG9uLWRhbmdlci1ob3Zlci1iYWNrZ3JvdW5kKTtcbiAgICAtLV9hY3RpdmUtYmc6IHZhcigtLXAtYnV0dG9uLWRhbmdlci1hY3RpdmUtYmFja2dyb3VuZCk7XG4gICAgLS1fYm9yZGVyOiB2YXIoLS1wLWJ1dHRvbi1kYW5nZXItYm9yZGVyLWNvbG9yKTtcbiAgICAtLV9ob3Zlci1ib3JkZXI6IHZhcigtLXAtYnV0dG9uLWRhbmdlci1ob3Zlci1ib3JkZXItY29sb3IpO1xuICAgIC0tX2FjdGl2ZS1ib3JkZXI6IHZhcigtLXAtYnV0dG9uLWRhbmdlci1hY3RpdmUtYm9yZGVyLWNvbG9yKTtcbiAgICAtLV9jb2xvcjogdmFyKC0tcC1idXR0b24tZGFuZ2VyLWNvbG9yKTtcbiAgICAtLV9ob3Zlci1jb2xvcjogdmFyKC0tcC1idXR0b24tZGFuZ2VyLWhvdmVyLWNvbG9yKTtcbiAgICAtLV9hY3RpdmUtY29sb3I6IHZhcigtLXAtYnV0dG9uLWRhbmdlci1hY3RpdmUtY29sb3IpO1xuICAgIC0tX2ZvY3VzLXJpbmctY29sb3I6IHZhcigtLXAtYnV0dG9uLWRhbmdlci1mb2N1cy1yaW5nLWNvbG9yKTtcbiAgICAtLV9mb2N1cy1yaW5nLXNoYWRvdzogdmFyKC0tcC1idXR0b24tZGFuZ2VyLWZvY3VzLXJpbmctc2hhZG93KTtcbiAgICAtLV9vdXRsaW5lZC1ob3Zlci1iZzogdmFyKC0tcC1idXR0b24tb3V0bGluZWQtZGFuZ2VyLWhvdmVyLWJhY2tncm91bmQpO1xuICAgIC0tX291dGxpbmVkLWFjdGl2ZS1iZzogdmFyKC0tcC1idXR0b24tb3V0bGluZWQtZGFuZ2VyLWFjdGl2ZS1iYWNrZ3JvdW5kKTtcbiAgICAtLV9vdXRsaW5lZC1ib3JkZXI6IHZhcigtLXAtYnV0dG9uLW91dGxpbmVkLWRhbmdlci1ib3JkZXItY29sb3IpO1xuICAgIC0tX291dGxpbmVkLWNvbG9yOiB2YXIoLS1wLWJ1dHRvbi1vdXRsaW5lZC1kYW5nZXItY29sb3IpO1xuICAgIC0tX3RleHQtaG92ZXItYmc6IHZhcigtLXAtYnV0dG9uLXRleHQtZGFuZ2VyLWhvdmVyLWJhY2tncm91bmQpO1xuICAgIC0tX3RleHQtYWN0aXZlLWJnOiB2YXIoLS1wLWJ1dHRvbi10ZXh0LWRhbmdlci1hY3RpdmUtYmFja2dyb3VuZCk7XG4gICAgLS1fdGV4dC1jb2xvcjogdmFyKC0tcC1idXR0b24tdGV4dC1kYW5nZXItY29sb3IpO1xufVxuXG4ucC1idXR0b24ucC1idXR0b24tY29udHJhc3QsXG46aXMoLnAtc3BsaXRidXR0b24sIC5wLW1lbnVidXR0b24pLnAtYnV0dG9uLWNvbnRyYXN0ID4gLnAtYnV0dG9uIHtcbiAgICAtLV9iZzogdmFyKC0tcC1idXR0b24tY29udHJhc3QtYmFja2dyb3VuZCk7XG4gICAgLS1faG92ZXItYmc6IHZhcigtLXAtYnV0dG9uLWNvbnRyYXN0LWhvdmVyLWJhY2tncm91bmQpO1xuICAgIC0tX2FjdGl2ZS1iZzogdmFyKC0tcC1idXR0b24tY29udHJhc3QtYWN0aXZlLWJhY2tncm91bmQpO1xuICAgIC0tX2JvcmRlcjogdmFyKC0tcC1idXR0b24tY29udHJhc3QtYm9yZGVyLWNvbG9yKTtcbiAgICAtLV9ob3Zlci1ib3JkZXI6IHZhcigtLXAtYnV0dG9uLWNvbnRyYXN0LWhvdmVyLWJvcmRlci1jb2xvcik7XG4gICAgLS1fYWN0aXZlLWJvcmRlcjogdmFyKC0tcC1idXR0b24tY29udHJhc3QtYWN0aXZlLWJvcmRlci1jb2xvcik7XG4gICAgLS1fY29sb3I6IHZhcigtLXAtYnV0dG9uLWNvbnRyYXN0LWNvbG9yKTtcbiAgICAtLV9ob3Zlci1jb2xvcjogdmFyKC0tcC1idXR0b24tY29udHJhc3QtaG92ZXItY29sb3IpO1xuICAgIC0tX2FjdGl2ZS1jb2xvcjogdmFyKC0tcC1idXR0b24tY29udHJhc3QtYWN0aXZlLWNvbG9yKTtcbiAgICAtLV9mb2N1cy1yaW5nLWNvbG9yOiB2YXIoLS1wLWJ1dHRvbi1jb250cmFzdC1mb2N1cy1yaW5nLWNvbG9yKTtcbiAgICAtLV9mb2N1cy1yaW5nLXNoYWRvdzogdmFyKC0tcC1idXR0b24tY29udHJhc3QtZm9jdXMtcmluZy1zaGFkb3cpO1xuICAgIC0tX291dGxpbmVkLWhvdmVyLWJnOiB2YXIoLS1wLWJ1dHRvbi1vdXRsaW5lZC1jb250cmFzdC1ob3Zlci1iYWNrZ3JvdW5kKTtcbiAgICAtLV9vdXRsaW5lZC1hY3RpdmUtYmc6IHZhcigtLXAtYnV0dG9uLW91dGxpbmVkLWNvbnRyYXN0LWFjdGl2ZS1iYWNrZ3JvdW5kKTtcbiAgICAtLV9vdXRsaW5lZC1ib3JkZXI6IHZhcigtLXAtYnV0dG9uLW91dGxpbmVkLWNvbnRyYXN0LWJvcmRlci1jb2xvcik7XG4gICAgLS1fb3V0bGluZWQtY29sb3I6IHZhcigtLXAtYnV0dG9uLW91dGxpbmVkLWNvbnRyYXN0LWNvbG9yKTtcbiAgICAtLV90ZXh0LWhvdmVyLWJnOiB2YXIoLS1wLWJ1dHRvbi10ZXh0LWNvbnRyYXN0LWhvdmVyLWJhY2tncm91bmQpO1xuICAgIC0tX3RleHQtYWN0aXZlLWJnOiB2YXIoLS1wLWJ1dHRvbi10ZXh0LWNvbnRyYXN0LWFjdGl2ZS1iYWNrZ3JvdW5kKTtcbiAgICAtLV90ZXh0LWNvbG9yOiB2YXIoLS1wLWJ1dHRvbi10ZXh0LWNvbnRyYXN0LWNvbG9yKTtcbn1cblxuLyogcGxhaW46IG5ldXRyYWwgY29sb3JzIGZvciBvdXRsaW5lZCAvIHRleHQgYnV0dG9ucyAqL1xuLnAtYnV0dG9uLnAtYnV0dG9uLXBsYWluLFxuOmlzKC5wLXNwbGl0YnV0dG9uLCAucC1tZW51YnV0dG9uKS5wLWJ1dHRvbi1wbGFpbiA+IC5wLWJ1dHRvbiB7XG4gICAgLS1fb3V0bGluZWQtaG92ZXItYmc6IHZhcigtLXAtYnV0dG9uLW91dGxpbmVkLXBsYWluLWhvdmVyLWJhY2tncm91bmQpO1xuICAgIC0tX291dGxpbmVkLWFjdGl2ZS1iZzogdmFyKC0tcC1idXR0b24tb3V0bGluZWQtcGxhaW4tYWN0aXZlLWJhY2tncm91bmQpO1xuICAgIC0tX291dGxpbmVkLWJvcmRlcjogdmFyKC0tcC1idXR0b24tb3V0bGluZWQtcGxhaW4tYm9yZGVyLWNvbG9yKTtcbiAgICAtLV9vdXRsaW5lZC1jb2xvcjogdmFyKC0tcC1idXR0b24tb3V0bGluZWQtcGxhaW4tY29sb3IpO1xuICAgIC0tX3RleHQtaG92ZXItYmc6IHZhcigtLXAtYnV0dG9uLXRleHQtcGxhaW4taG92ZXItYmFja2dyb3VuZCk7XG4gICAgLS1fdGV4dC1hY3RpdmUtYmc6IHZhcigtLXAtYnV0dG9uLXRleHQtcGxhaW4tYWN0aXZlLWJhY2tncm91bmQpO1xuICAgIC0tX3RleHQtY29sb3I6IHZhcigtLXAtYnV0dG9uLXRleHQtcGxhaW4tY29sb3IpO1xufVxuXG4vKiB2YXJpYW50czogdGhleSBvbmx5IHJlbWFwIHRoZSBiYXNlIHZhcmlhYmxlcywgc28gYWxsIHN0YXRlcyBhYm92ZSBrZWVwIHdvcmtpbmcgKi9cbi5wLWJ1dHRvbi5wLWJ1dHRvbi1vdXRsaW5lZCxcbjppcygucC1zcGxpdGJ1dHRvbiwgLnAtbWVudWJ1dHRvbikucC1idXR0b24tb3V0bGluZWQgPiAucC1idXR0b24ge1xuICAgIC0tX2JnOiB2YXIoLS1wLWJ1dHRvbi1vdXRsaW5lZC1iYWNrZ3JvdW5kKTtcbiAgICAtLV9sYWJlbC1zaGFkb3c6IHZhcigtLXAtYnV0dG9uLW91dGxpbmVkLWxhYmVsLXNoYWRvdyk7XG4gICAgLS1faG92ZXItYmc6IHZhcigtLV9vdXRsaW5lZC1ob3Zlci1iZyk7XG4gICAgLS1fYWN0aXZlLWJnOiB2YXIoLS1fb3V0bGluZWQtYWN0aXZlLWJnKTtcbiAgICAtLV9ib3JkZXI6IHZhcigtLV9vdXRsaW5lZC1ib3JkZXIpO1xuICAgIC0tX2hvdmVyLWJvcmRlcjogdmFyKC0tX291dGxpbmVkLWJvcmRlcik7XG4gICAgLS1fYWN0aXZlLWJvcmRlcjogdmFyKC0tX291dGxpbmVkLWJvcmRlcik7XG4gICAgLS1fY29sb3I6IHZhcigtLV9vdXRsaW5lZC1jb2xvcik7XG4gICAgLS1faG92ZXItY29sb3I6IHZhcigtLV9vdXRsaW5lZC1jb2xvcik7XG4gICAgLS1fYWN0aXZlLWNvbG9yOiB2YXIoLS1fb3V0bGluZWQtY29sb3IpO1xufVxuXG4ucC1idXR0b24ucC1idXR0b24tZmxhdCxcbjppcygucC1zcGxpdGJ1dHRvbiwgLnAtbWVudWJ1dHRvbikucC1idXR0b24tZmxhdCA+IC5wLWJ1dHRvbiB7XG4gICAgLS1fYmc6IHRyYW5zcGFyZW50O1xuICAgIC0tX2hvdmVyLWJnOiB2YXIoLS1fdGV4dC1ob3Zlci1iZyk7XG4gICAgLS1fYWN0aXZlLWJnOiB2YXIoLS1fdGV4dC1hY3RpdmUtYmcpO1xuICAgIC0tX2JvcmRlcjogdHJhbnNwYXJlbnQ7XG4gICAgLS1faG92ZXItYm9yZGVyOiB0cmFuc3BhcmVudDtcbiAgICAtLV9hY3RpdmUtYm9yZGVyOiB0cmFuc3BhcmVudDtcbiAgICAtLV9zaGFkb3c6IG5vbmU7XG4gICAgLS1fYWN0aXZlLXNoYWRvdzogbm9uZTtcbiAgICAtLV90ZXh0dXJlOiBub25lO1xuICAgIC0tX2xhYmVsLXNoYWRvdzogdmFyKC0tcC1idXR0b24tb3V0bGluZWQtbGFiZWwtc2hhZG93KTtcbiAgICAtLV9jb2xvcjogdmFyKC0tX3RleHQtY29sb3IpO1xuICAgIC0tX2hvdmVyLWNvbG9yOiB2YXIoLS1fdGV4dC1jb2xvcik7XG4gICAgLS1fYWN0aXZlLWNvbG9yOiB2YXIoLS1fdGV4dC1jb2xvcik7XG59XG5cbi5wLWJ1dHRvbi5wLWJ1dHRvbi1yYWlzZWQsXG46aXMoLnAtc3BsaXRidXR0b24sIC5wLW1lbnVidXR0b24pLnAtYnV0dG9uLXJhaXNlZCA+IC5wLWJ1dHRvbiB7XG4gICAgLS1fc2hhZG93OiB2YXIoLS1wLWJ1dHRvbi1yYWlzZWQtc2hhZG93KTtcbiAgICAtLV9hY3RpdmUtc2hhZG93OiB2YXIoLS1wLWJ1dHRvbi1yYWlzZWQtc2hhZG93KTtcbn1cblxuLyogc2hhcGUgYW5kIHNpemVzIChhZnRlciB0aGUgZ3JvdXBzLCBzbyAucm91bmRlZC1idXR0b24gd2lucyBvdmVyIFwiLnAtYnV0dG9uLWdyb3VwIC5wLWJ1dHRvblwiKSAqL1xuLnAtYnV0dG9uIHtcbiAgICAmLnJvdW5kZWQtYnV0dG9uIHtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogdmFyKC0tcC1idXR0b24tcm91bmRlZC1ib3JkZXItcmFkaXVzKTtcbiAgICB9XG5cbiAgICAmLnAtYnV0dG9uLXNtIHtcbiAgICAgICAgZm9udC1zaXplOiB2YXIoLS1wLWJ1dHRvbi1zbS1mb250LXNpemUpO1xuICAgICAgICBwYWRkaW5nOiB2YXIoLS1wLWJ1dHRvbi1zbS1wYWRkaW5nLXkpIHZhcigtLXAtYnV0dG9uLXNtLXBhZGRpbmcteCk7XG5cbiAgICAgICAgLnAtYnV0dG9uLWljb24tbGVmdCxcbiAgICAgICAgLnAtYnV0dG9uLWljb24tcmlnaHQsXG4gICAgICAgIC5wLWljb24ge1xuICAgICAgICAgICAgZm9udC1zaXplOiB2YXIoLS1wLWJ1dHRvbi1zbS1mb250LXNpemUpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi5wLWJ1dHRvbi1pY29uLW9ubHkge1xuICAgICAgICAgICAgd2lkdGg6IHZhcigtLXAtYnV0dG9uLXNtLWljb24tb25seS13aWR0aCk7XG4gICAgICAgICAgICBwYWRkaW5nLWlubGluZTogMDtcblxuICAgICAgICAgICAgJi5yb3VuZGVkLWJ1dHRvbiB7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiB2YXIoLS1wLWJ1dHRvbi1zbS1pY29uLW9ubHktd2lkdGgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi5wLWJ1dHRvbi1sZyB7XG4gICAgICAgIGZvbnQtc2l6ZTogdmFyKC0tcC1idXR0b24tbGctZm9udC1zaXplKTtcbiAgICAgICAgcGFkZGluZzogdmFyKC0tcC1idXR0b24tbGctcGFkZGluZy15KSB2YXIoLS1wLWJ1dHRvbi1sZy1wYWRkaW5nLXgpO1xuXG4gICAgICAgIC5wLWJ1dHRvbi1pY29uLWxlZnQsXG4gICAgICAgIC5wLWJ1dHRvbi1pY29uLXJpZ2h0LFxuICAgICAgICAucC1pY29uIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogdmFyKC0tcC1idXR0b24tbGctZm9udC1zaXplKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYucC1idXR0b24taWNvbi1vbmx5IHtcbiAgICAgICAgICAgIHdpZHRoOiB2YXIoLS1wLWJ1dHRvbi1sZy1pY29uLW9ubHktd2lkdGgpO1xuICAgICAgICAgICAgcGFkZGluZy1pbmxpbmU6IDA7XG5cbiAgICAgICAgICAgICYucm91bmRlZC1idXR0b24ge1xuICAgICAgICAgICAgICAgIGhlaWdodDogdmFyKC0tcC1idXR0b24tbGctaWNvbi1vbmx5LXdpZHRoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qIHA6bGlua0J1dHRvbjogdGhlIHBhZGRpbmcgc2l0cyBvbiB0aGUgaW5uZXIgbGluayAoc2VlIGFib3ZlKSwgYWxzbyBmb3IgdGhlIHNpemVzIGFuZCBpY29uIG9ubHkgKi9cbiAgICAmLnAtbGlua2J1dHRvbiB7XG4gICAgICAgICYucC1idXR0b24tc20sXG4gICAgICAgICYucC1idXR0b24tbGcge1xuICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYucC1idXR0b24tc20gPiBhIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IHZhcigtLXAtYnV0dG9uLXNtLXBhZGRpbmcteSkgdmFyKC0tcC1idXR0b24tc20tcGFkZGluZy14KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYucC1idXR0b24tbGcgPiBhIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IHZhcigtLXAtYnV0dG9uLWxnLXBhZGRpbmcteSkgdmFyKC0tcC1idXR0b24tbGctcGFkZGluZy14KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYucC1idXR0b24taWNvbi1vbmx5ID4gYSB7XG4gICAgICAgICAgICBmbGV4OiAxIDEgYXV0bztcbiAgICAgICAgICAgIGFsaWduLXNlbGY6IHN0cmV0Y2g7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmctaW5saW5lOiAwO1xuICAgICAgICAgICAgZ2FwOiAwO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLnAtYmFkZ2Uge1xuICAgICAgICBtaW4td2lkdGg6IHZhcigtLXAtYnV0dG9uLWJhZGdlLXNpemUpO1xuICAgICAgICBoZWlnaHQ6IHZhcigtLXAtYnV0dG9uLWJhZGdlLXNpemUpO1xuICAgICAgICBsaW5lLWhlaWdodDogdmFyKC0tcC1idXR0b24tYmFkZ2Utc2l6ZSk7XG4gICAgfVxufVxuXG4vKiBsaW5rcyAqL1xuLnAtY29tbWFuZGxpbmssXG4ucC1saW5rIHtcbiAgICBjb2xvcjogdmFyKC0tcC1idXR0b24tbGluay1jb2xvcik7XG4gICAgYm9yZGVyLXJhZGl1czogdmFyKC0tcC1ib3JkZXItcmFkaXVzLXhzKTtcbiAgICBvdXRsaW5lLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICB0cmFuc2l0aW9uOiBjb2xvciB2YXIoLS1wLWJ1dHRvbi10cmFuc2l0aW9uLWR1cmF0aW9uKSwgb3V0bGluZS1jb2xvciB2YXIoLS1wLWJ1dHRvbi10cmFuc2l0aW9uLWR1cmF0aW9uKTtcblxuICAgICY6aG92ZXIge1xuICAgICAgICBjb2xvcjogdmFyKC0tcC1idXR0b24tbGluay1ob3Zlci1jb2xvcik7XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgIH1cblxuICAgICY6YWN0aXZlIHtcbiAgICAgICAgY29sb3I6IHZhcigtLXAtYnV0dG9uLWxpbmstYWN0aXZlLWNvbG9yKTtcbiAgICB9XG5cbiAgICAmOmZvY3VzLXZpc2libGUge1xuICAgICAgICBvdXRsaW5lOiB2YXIoLS1wLWZvY3VzLXJpbmctd2lkdGgpIHZhcigtLXAtZm9jdXMtcmluZy1zdHlsZSkgdmFyKC0tcC1mb2N1cy1yaW5nLWNvbG9yKTtcbiAgICAgICAgb3V0bGluZS1vZmZzZXQ6IHZhcigtLXAtZm9jdXMtcmluZy1vZmZzZXQpO1xuICAgICAgICBib3gtc2hhZG93OiB2YXIoLS1wLWZvY3VzLXJpbmctc2hhZG93KTtcbiAgICB9XG59XG5cbi8qIHA6Y29tbWFuZExpbmsgaW5saW5lIGFqYXggc3RhdHVzOiB0aGUgY29tcG9uZW50IGFkZHMgcC1zdGF0ZS1sb2FkaW5nICgrIHAtc3RhdGUtZGlzYWJsZWQpIHdoaWxlIGl0cyByZXF1ZXN0IHJ1bnMsXG4gICBhIHNwaW5uZXIgZm9sbG93cyB0aGUgdGV4dCAodGhlIGlubGluZSBhamF4IHN0YXR1cyB0b2tlbnMsIGFqYXhzdGF0dXMvYWpheHN0YXR1cy5jc3MpICovXG4ucC1jb21tYW5kbGluay5wLXN0YXRlLWxvYWRpbmcge1xuICAgIGN1cnNvcjogcHJvZ3Jlc3M7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuXG4gICAgJjo6YWZ0ZXIge1xuICAgICAgICBjb250ZW50OiBcIlxcMjAwM1wiO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgICAgICBtYXJnaW4taW5saW5lLXN0YXJ0OiB2YXIoLS1wLWJ1dHRvbi1saW5rLWxvYWRpbmctaWNvbi1nYXApO1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogLTAuMTI1ZW07XG4gICAgICAgIGJhY2tncm91bmQ6IGN1cnJlbnRDb2xvcjtcbiAgICAgICAgZm9yY2VkLWNvbG9yLWFkanVzdDogbm9uZTtcbiAgICAgICAgbWFzazogdmFyKC0tcC1idXR0b24tbGluay1sb2FkaW5nLWljb24pIGNlbnRlciAvIGNvbnRhaW4gbm8tcmVwZWF0O1xuICAgICAgICBhbmltYXRpb246IHAtc3BpbiB2YXIoLS1wLWFqYXhzdGF0dXMtbG9hZGluZy1pY29uLWFuaW1hdGlvbi1kdXJhdGlvbikgbGluZWFyIGluZmluaXRlO1xuICAgIH1cbn1cbiIsICIvKlxuICogQ2FyZDogcDpjYXJkIChoZWFkZXIgZmFjZXQvaW1hZ2UsIHRpdGxlLCBzdWJ0aXRsZSwgY29udGVudCwgZm9vdGVyKVxuICovXG5cbi5wLWNhcmQtaGVhZGVyIGltZyB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDEwMCU7XG59XG5cbi5wLWNhcmQge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1wLWNhcmQtYmFja2dyb3VuZCk7XG4gICAgY29sb3I6IHZhcigtLXAtY2FyZC1jb2xvcik7XG4gICAgYm9yZGVyOiAwIG5vbmU7XG4gICAgYm94LXNoYWRvdzogdmFyKC0tcC1jYXJkLXNoYWRvdyk7XG4gICAgYm9yZGVyLXJhZGl1czogdmFyKC0tcC1jYXJkLWJvcmRlci1yYWRpdXMpO1xuXG4gICAgLyogaGVhZGVyIChpbWFnZSk6IGNsaXBwZWQgdG8gdGhlIHJvdW5kZWQgdG9wIGNvcm5lcnMgb2YgdGhlIGNhcmQgKi9cbiAgICAucC1jYXJkLWhlYWRlciB7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIGJvcmRlci1zdGFydC1zdGFydC1yYWRpdXM6IHZhcigtLXAtY2FyZC1ib3JkZXItcmFkaXVzKTtcbiAgICAgICAgYm9yZGVyLXN0YXJ0LWVuZC1yYWRpdXM6IHZhcigtLXAtY2FyZC1ib3JkZXItcmFkaXVzKTtcbiAgICB9XG5cbiAgICAucC1jYXJkLWJvZHkge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBnYXA6IHZhcigtLXAtY2FyZC1ib2R5LWdhcCk7XG4gICAgICAgIHBhZGRpbmc6IHZhcigtLXAtY2FyZC1ib2R5LXBhZGRpbmcpO1xuICAgIH1cblxuICAgIC5wLWNhcmQtdGl0bGUge1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIGZvbnQtc2l6ZTogdmFyKC0tcC1jYXJkLXRpdGxlLWZvbnQtc2l6ZSk7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1wLWNhcmQtdGl0bGUtZm9udC13ZWlnaHQpO1xuICAgIH1cblxuICAgIC5wLWNhcmQtc3VidGl0bGUge1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1wLWNhcmQtc3VidGl0bGUtY29sb3IpO1xuICAgICAgICBmb250LXNpemU6IHZhcigtLXAtY2FyZC1zdWJ0aXRsZS1mb250LXNpemUpO1xuICAgICAgICBmb250LXdlaWdodDogdmFyKC0tcC1jYXJkLXN1YnRpdGxlLWZvbnQtd2VpZ2h0KTtcbiAgICB9XG5cbiAgICAvKiB0aXRsZSArIHN1YnRpdGxlIGZvcm0gdGhlIFByaW1lVUlYIGNhcHRpb246IHRoZXkgc2l0IGNsb3NlciB0b2dldGhlciAqL1xuICAgIC5wLWNhcmQtdGl0bGUgKyAucC1jYXJkLXN1YnRpdGxlIHtcbiAgICAgICAgLyogbm8gdG9rZW46IHJlcGxhY2VzIHRoZSBib2R5IGdhcCB3aXRoIHRoZSBjYXB0aW9uIGdhcCAqL1xuICAgICAgICBtYXJnaW4tdG9wOiBjYWxjKHZhcigtLXAtY2FyZC1jYXB0aW9uLWdhcCkgLSB2YXIoLS1wLWNhcmQtYm9keS1nYXApKTtcbiAgICB9XG59XG4iLCAiLypcbiAqIENhcm91c2VsOiBwOmNhcm91c2VsXG4gKlxuICogUHJldi9uZXh0IGJ1dHRvbnMgYXJlIHN0eWxlZCBsaWtlIGEgcm91bmRlZCBzZWNvbmRhcnkgdGV4dCBidXR0b24gKGFzIFByaW1lVUlYIGRvZXMpLCBpbmRpY2F0b3JzIHVzZSB0aGUgY2Fyb3VzZWwgdG9rZW5zLlxuICogSWNvbnM6IHAtY2Fyb3VzZWwtcHJldi1pY29uIC8gcC1jYXJvdXNlbC1uZXh0LWljb24gKHZlcnRpY2FsOiBwLWNhcm91c2VsLXByZXYtdmVydGljYWwtaWNvbiAvIHAtY2Fyb3VzZWwtbmV4dC12ZXJ0aWNhbC1pY29uKS5cbiAqIFN1cHBvcnRlZCBjbGFzc2VzOiBwLWNhcm91c2VsLWhvcml6b250YWwsIHAtY2Fyb3VzZWwtdmVydGljYWxcbiAqL1xuLnAtY2Fyb3VzZWwge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblxuICAgIC5wLWNhcm91c2VsLWNvbnRlbnQge1xuICAgICAgICAucC1jYXJvdXNlbC1wcmV2LFxuICAgICAgICAucC1jYXJvdXNlbC1uZXh0IHtcbiAgICAgICAgICAgIHdpZHRoOiB2YXIoLS1wLWJ1dHRvbi1pY29uLW9ubHktd2lkdGgpO1xuICAgICAgICAgICAgaGVpZ2h0OiB2YXIoLS1wLWJ1dHRvbi1pY29uLW9ubHktd2lkdGgpO1xuICAgICAgICAgICAgbWFyZ2luOiB2YXIoLS1wLWNhcm91c2VsLWNvbnRlbnQtZ2FwKTtcbiAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1wLWJ1dHRvbi10ZXh0LXNlY29uZGFyeS1jb2xvcik7XG4gICAgICAgICAgICBib3JkZXI6IDAgbm9uZTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiB2YXIoLS1wLWJ1dHRvbi1pY29uLW9ubHktd2lkdGgpO1xuICAgICAgICAgICAgLXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTtcbiAgICAgICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xuICAgICAgICAgICAgb3V0bGluZS1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIHZhcigtLXAtY2Fyb3VzZWwtdHJhbnNpdGlvbi1kdXJhdGlvbiksIGNvbG9yIHZhcigtLXAtY2Fyb3VzZWwtdHJhbnNpdGlvbi1kdXJhdGlvbiksXG4gICAgICAgICAgICAgICAgb3V0bGluZS1jb2xvciB2YXIoLS1wLWNhcm91c2VsLXRyYW5zaXRpb24tZHVyYXRpb24pLCBib3gtc2hhZG93IHZhcigtLXAtY2Fyb3VzZWwtdHJhbnNpdGlvbi1kdXJhdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAucC1jYXJvdXNlbC1wcmV2LWljb24ge1xuICAgICAgICAgICAgLS1faWNvbjogdmFyKC0tcC1jYXJvdXNlbC1wcmV2LWljb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgLnAtY2Fyb3VzZWwtbmV4dC1pY29uIHtcbiAgICAgICAgICAgIC0tX2ljb246IHZhcigtLXAtY2Fyb3VzZWwtbmV4dC1pY29uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5wLWNhcm91c2VsLXByZXYtdmVydGljYWwtaWNvbiB7XG4gICAgICAgICAgICAtLV9pY29uOiB2YXIoLS1wLWNhcm91c2VsLXByZXYtdmVydGljYWwtaWNvbik7XG4gICAgICAgIH1cblxuICAgICAgICAucC1jYXJvdXNlbC1uZXh0LXZlcnRpY2FsLWljb24ge1xuICAgICAgICAgICAgLS1faWNvbjogdmFyKC0tcC1jYXJvdXNlbC1uZXh0LXZlcnRpY2FsLWljb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgLnAtY2Fyb3VzZWwtcHJldjpob3ZlcixcbiAgICAgICAgLnAtY2Fyb3VzZWwtbmV4dDpob3ZlciB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1wLWJ1dHRvbi10ZXh0LXNlY29uZGFyeS1ob3Zlci1iYWNrZ3JvdW5kKTtcbiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1wLWJ1dHRvbi10ZXh0LXNlY29uZGFyeS1jb2xvcik7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAucC1jYXJvdXNlbC1wcmV2OmFjdGl2ZSxcbiAgICAgICAgLnAtY2Fyb3VzZWwtbmV4dDphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tcC1idXR0b24tdGV4dC1zZWNvbmRhcnktYWN0aXZlLWJhY2tncm91bmQpO1xuICAgICAgICB9XG5cbiAgICAgICAgLnAtY2Fyb3VzZWwtcHJldjpmb2N1cy12aXNpYmxlLFxuICAgICAgICAucC1jYXJvdXNlbC1uZXh0OmZvY3VzLXZpc2libGUge1xuICAgICAgICAgICAgb3V0bGluZTogdmFyKC0tcC1mb2N1cy1yaW5nLXdpZHRoKSB2YXIoLS1wLWZvY3VzLXJpbmctc3R5bGUpIHZhcigtLXAtZm9jdXMtcmluZy1jb2xvcik7XG4gICAgICAgICAgICBvdXRsaW5lLW9mZnNldDogdmFyKC0tcC1mb2N1cy1yaW5nLW9mZnNldCk7XG4gICAgICAgICAgICBib3gtc2hhZG93OiB2YXIoLS1wLWZvY3VzLXJpbmctc2hhZG93KTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5wLWNhcm91c2VsLXByZXYucC1zdGF0ZS1kaXNhYmxlZCxcbiAgICAgICAgLnAtY2Fyb3VzZWwtbmV4dC5wLXN0YXRlLWRpc2FibGVkIHtcbiAgICAgICAgICAgIG9wYWNpdHk6IHZhcigtLXAtZGlzYWJsZWQtb3BhY2l0eSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiBzcGFjaW5nIGJldHdlZW4gaW5kaWNhdG9ycyBjb21lcyBmcm9tIHRoZSBnYXAgb2YgdGhlIGxpc3QgKi9cbiAgICAucC1jYXJvdXNlbC1pbmRpY2F0b3JzIHtcbiAgICAgICAgcGFkZGluZzogdmFyKC0tcC1jYXJvdXNlbC1pbmRpY2F0b3ItbGlzdC1wYWRkaW5nKTtcbiAgICAgICAgZ2FwOiB2YXIoLS1wLWNhcm91c2VsLWluZGljYXRvci1saXN0LWdhcCk7XG5cbiAgICAgICAgLnAtY2Fyb3VzZWwtaW5kaWNhdG9yIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcblxuICAgICAgICAgICAgYnV0dG9uIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1wLWNhcm91c2VsLWluZGljYXRvci1iYWNrZ3JvdW5kKTtcbiAgICAgICAgICAgICAgICB3aWR0aDogdmFyKC0tcC1jYXJvdXNlbC1pbmRpY2F0b3Itd2lkdGgpO1xuICAgICAgICAgICAgICAgIGhlaWdodDogdmFyKC0tcC1jYXJvdXNlbC1pbmRpY2F0b3ItaGVpZ2h0KTtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDAgbm9uZTtcbiAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1wLWNhcm91c2VsLWluZGljYXRvci1ib3JkZXItcmFkaXVzKTtcbiAgICAgICAgICAgICAgICBvdXRsaW5lLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIHZhcigtLXAtY2Fyb3VzZWwtdHJhbnNpdGlvbi1kdXJhdGlvbiksIGNvbG9yIHZhcigtLXAtY2Fyb3VzZWwtdHJhbnNpdGlvbi1kdXJhdGlvbiksXG4gICAgICAgICAgICAgICAgICAgIG91dGxpbmUtY29sb3IgdmFyKC0tcC1jYXJvdXNlbC10cmFuc2l0aW9uLWR1cmF0aW9uKSwgYm94LXNoYWRvdyB2YXIoLS1wLWNhcm91c2VsLXRyYW5zaXRpb24tZHVyYXRpb24pO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBidXR0b246aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IHZhcigtLXAtY2Fyb3VzZWwtaW5kaWNhdG9yLWhvdmVyLWJhY2tncm91bmQpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBidXR0b246Zm9jdXMtdmlzaWJsZSB7XG4gICAgICAgICAgICAgICAgb3V0bGluZTogdmFyKC0tcC1jYXJvdXNlbC1pbmRpY2F0b3ItZm9jdXMtcmluZy13aWR0aCkgdmFyKC0tcC1jYXJvdXNlbC1pbmRpY2F0b3ItZm9jdXMtcmluZy1zdHlsZSkgdmFyKC0tcC1jYXJvdXNlbC1pbmRpY2F0b3ItZm9jdXMtcmluZy1jb2xvcik7XG4gICAgICAgICAgICAgICAgb3V0bGluZS1vZmZzZXQ6IHZhcigtLXAtY2Fyb3VzZWwtaW5kaWNhdG9yLWZvY3VzLXJpbmctb2Zmc2V0KTtcbiAgICAgICAgICAgICAgICBib3gtc2hhZG93OiB2YXIoLS1wLWNhcm91c2VsLWluZGljYXRvci1mb2N1cy1yaW5nLXNoYWRvdyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYucC1zdGF0ZS1oaWdobGlnaHQgYnV0dG9uIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1wLWNhcm91c2VsLWluZGljYXRvci1hY3RpdmUtYmFja2dyb3VuZCk7XG4gICAgICAgICAgICAgICAgY29sb3I6IHZhcigtLXAtcHJpbWFyeS1jb250cmFzdC1jb2xvcik7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5wLWNhcm91c2VsLWNvbnRlbnQge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBvdmVyZmxvdzogYXV0bztcbn1cblxuLnAtY2Fyb3VzZWwtcHJldixcbi5wLWNhcm91c2VsLW5leHQge1xuICAgIGFsaWduLXNlbGY6IGNlbnRlcjtcbiAgICBmbGV4LWdyb3c6IDA7XG4gICAgZmxleC1zaHJpbms6IDA7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbn1cblxuLnAtY2Fyb3VzZWwtcHJldi5wLXN0YXRlLWRpc2FibGVkLFxuLnAtY2Fyb3VzZWwtbmV4dC5wLXN0YXRlLWRpc2FibGVkIHtcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cblxuLnAtY2Fyb3VzZWwtY29udGFpbmVyIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG59XG5cbi5wLWNhcm91c2VsLWl0ZW1zLWNvbnRlbnQge1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgd2lkdGg6IDEwMCU7XG59XG5cbi5wLWNhcm91c2VsLWl0ZW1zLWNvbnRhaW5lciB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xufVxuXG4ucC1jYXJvdXNlbC1pbmRpY2F0b3JzIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICAgIG1hcmdpbjogMDtcbiAgICBsaXN0LXN0eWxlOiBub25lO1xufVxuXG4ucC1jYXJvdXNlbC1pbmRpY2F0b3IgPiBidXR0b24ge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcblxuICAgICYucC1saW5rIHtcbiAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xuICAgIH1cbn1cblxuLnAtY2Fyb3VzZWwtdmVydGljYWwge1xuICAgIC5wLWNhcm91c2VsLWNvbnRhaW5lciB7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgfVxuXG4gICAgLnAtY2Fyb3VzZWwtaXRlbXMtY29udGFpbmVyIHtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgIH1cbn1cblxuLyoga2V5Ym9hcmQgc3VwcG9ydDogb25seSB0aGUgdmlzaWJsZSBpdGVtcyBhcmUgZm9jdXNhYmxlICovXG4ucC1pdGVtcy1oaWRkZW4gLnAtY2Fyb3VzZWwtaXRlbSB7XG4gICAgdmlzaWJpbGl0eTogaGlkZGVuO1xuXG4gICAgJi5wLWNhcm91c2VsLWl0ZW0tYWN0aXZlIHtcbiAgICAgICAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbiAgICB9XG59XG4iLCAiLypcbiAqIENhc2NhZGVTZWxlY3Q6IHA6Y2FzY2FkZVNlbGVjdFxuICpcbiAqIFN1cHBvcnRlZCBjbGFzc2VzOiBwLXN0YXRlLWZvY3VzLCBwLXN0YXRlLWVycm9yLCBwLXN0YXRlLWRpc2FibGVkLCBwLWlucHV0LWZpbGxlZCAob24gYSBwYXJlbnQpLFxuICogICAgICAgICAgICAgICAgICAgIHAtY2FzY2FkZXNlbGVjdC1zbSwgcC1jYXNjYWRlc2VsZWN0LWxnIChzdHlsZUNsYXNzKVxuICogTGFiZWw6IC5wLWNhc2NhZGVzZWxlY3QtbGFiZWwgKCsgcC1jYXNjYWRlc2VsZWN0LWxhYmVsLXBsYWNlaG9sZGVyIHdoaWxlIGl0IHNob3dzIHRoZSBwbGFjZWhvbGRlcik7IGl0IGlzIGFsc28gYVxuICogLnAtaW5wdXRmaWVsZCwgc28gaXRzIGlucHV0IGxvb2sgKGJvcmRlciwgYmFja2dyb3VuZCwgZm9jdXMgcmluZykgaXMgcmVzZXQgaGVyZS5cbiAqIEl0ZW1zOiBwLXN0YXRlLWhpZ2hsaWdodCAoZXhwYW5kZWQgLyBmb2N1c2VkKSwgcC1zdGF0ZS1hY3RpdmUgKHNlbGVjdGVkKS4gSWNvbnM6IHAtY2FzY2FkZXNlbGVjdC1kcm9wZG93bi1pY29uLFxuICogcC1jYXNjYWRlc2VsZWN0LWdyb3VwLWljb24uXG4gKi9cbi5wLWNhc2NhZGVzZWxlY3Qge1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgLXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTtcbiAgICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1wLWNhc2NhZGVzZWxlY3QtYmFja2dyb3VuZCk7XG4gICAgY29sb3I6IHZhcigtLXAtY2FzY2FkZXNlbGVjdC1jb2xvcik7XG4gICAgLyogdGhlIHN0YXRlcyBzZXQgLS1fYm9yZGVyLWNvbG9yLCB0aGUgZmlsbGVkIHZhcmlhbnQgZHJhd3MgaXRzIGxpbmUgd2l0aCBpdCAqL1xuICAgIC0tX2JvcmRlci1jb2xvcjogdmFyKC0tcC1jYXNjYWRlc2VsZWN0LWJvcmRlci1jb2xvcik7XG4gICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tX2JvcmRlci1jb2xvcik7XG4gICAgYm9yZGVyLXJhZGl1czogdmFyKC0tcC1jYXNjYWRlc2VsZWN0LWJvcmRlci1yYWRpdXMpO1xuICAgIGJveC1zaGFkb3c6IHZhcigtLXAtY2FzY2FkZXNlbGVjdC1zaGFkb3cpO1xuICAgIG91dGxpbmUtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgdmFyKC0tcC1jYXNjYWRlc2VsZWN0LXRyYW5zaXRpb24tZHVyYXRpb24pLCBjb2xvciB2YXIoLS1wLWNhc2NhZGVzZWxlY3QtdHJhbnNpdGlvbi1kdXJhdGlvbiksXG4gICAgICAgIGJvcmRlci1jb2xvciB2YXIoLS1wLWNhc2NhZGVzZWxlY3QtdHJhbnNpdGlvbi1kdXJhdGlvbiksIG91dGxpbmUtY29sb3IgdmFyKC0tcC1jYXNjYWRlc2VsZWN0LXRyYW5zaXRpb24tZHVyYXRpb24pLFxuICAgICAgICBib3gtc2hhZG93IHZhcigtLXAtY2FzY2FkZXNlbGVjdC10cmFuc2l0aW9uLWR1cmF0aW9uKTtcblxuICAgICY6bm90KC5wLXN0YXRlLWRpc2FibGVkKTpob3ZlciB7XG4gICAgICAgIC0tX2JvcmRlci1jb2xvcjogdmFyKC0tcC1jYXNjYWRlc2VsZWN0LWhvdmVyLWJvcmRlci1jb2xvcik7XG4gICAgfVxuXG4gICAgJjpub3QoLnAtc3RhdGUtZGlzYWJsZWQpLnAtc3RhdGUtZm9jdXMge1xuICAgICAgICAtLV9ib3JkZXItY29sb3I6IHZhcigtLXAtY2FzY2FkZXNlbGVjdC1mb2N1cy1ib3JkZXItY29sb3IpO1xuICAgICAgICBvdXRsaW5lOiB2YXIoLS1wLWNhc2NhZGVzZWxlY3QtZm9jdXMtcmluZy13aWR0aCkgdmFyKC0tcC1jYXNjYWRlc2VsZWN0LWZvY3VzLXJpbmctc3R5bGUpIHZhcigtLXAtY2FzY2FkZXNlbGVjdC1mb2N1cy1yaW5nLWNvbG9yKTtcbiAgICAgICAgb3V0bGluZS1vZmZzZXQ6IHZhcigtLXAtY2FzY2FkZXNlbGVjdC1mb2N1cy1yaW5nLW9mZnNldCk7XG4gICAgICAgIGJveC1zaGFkb3c6IHZhcigtLXAtY2FzY2FkZXNlbGVjdC1mb2N1cy1yaW5nLXNoYWRvdyk7XG4gICAgfVxuXG4gICAgLyogaW52YWxpZDogdGhlIGJvcmRlciBhbHNvIHdpbnMgb3ZlciBob3ZlciBhbmQgZm9jdXMgKHNhbWUgc3BlY2lmaWNpdHksIGxhdGVyKSwgdGhlIGZvY3VzIHJpbmcgc3RheXMgKi9cbiAgICAmLnAtc3RhdGUtZXJyb3IsXG4gICAgJi5wLXN0YXRlLWVycm9yOmlzKDpob3ZlciwgLnAtc3RhdGUtZm9jdXMpIHtcbiAgICAgICAgLS1fYm9yZGVyLWNvbG9yOiB2YXIoLS1wLWNhc2NhZGVzZWxlY3QtaW52YWxpZC1ib3JkZXItY29sb3IpO1xuICAgIH1cblxuICAgICYucC1zdGF0ZS1kaXNhYmxlZCB7XG4gICAgICAgIGJhY2tncm91bmQ6IHZhcigtLXAtY2FzY2FkZXNlbGVjdC1kaXNhYmxlZC1iYWNrZ3JvdW5kKTtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICB9XG5cbiAgICAvKiBsYWJlbDogcmVzZXQgdGhlIC5wLWlucHV0ZmllbGQgbG9vayBpbiBldmVyeSBzdGF0ZSwgdGhlIHdyYXBwZXIgZHJhd3MgYm9yZGVyIGFuZCBiYWNrZ3JvdW5kICovXG4gICAgLnAtY2FzY2FkZXNlbGVjdC1sYWJlbC5wLWlucHV0ZmllbGQsXG4gICAgLnAtY2FzY2FkZXNlbGVjdC1sYWJlbC5wLWlucHV0ZmllbGQ6bm90KC5wLXN0YXRlLWRpc2FibGVkKTpob3ZlcixcbiAgICAucC1jYXNjYWRlc2VsZWN0LWxhYmVsLnAtaW5wdXRmaWVsZDpub3QoLnAtc3RhdGUtZGlzYWJsZWQpOmZvY3VzIHtcbiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgICAgIGJvcmRlcjogMCBub25lO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICBvdXRsaW5lOiAwIG5vbmU7XG4gICAgICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgfVxuXG4gICAgLnAtY2FzY2FkZXNlbGVjdC1sYWJlbC5wLWlucHV0ZmllbGQge1xuICAgICAgICBwYWRkaW5nLWJsb2NrOiB2YXIoLS1wLWNhc2NhZGVzZWxlY3QtcGFkZGluZy15KTtcbiAgICAgICAgcGFkZGluZy1pbmxpbmU6IHZhcigtLXAtY2FzY2FkZXNlbGVjdC1wYWRkaW5nLXgpO1xuICAgICAgICBmb250LXNpemU6IHZhcigtLXAtY2FzY2FkZXNlbGVjdC1mb250LXNpemUpO1xuICAgICAgICBmb250LXdlaWdodDogdmFyKC0tcC1jYXNjYWRlc2VsZWN0LWZvbnQtd2VpZ2h0KTtcbiAgICAgICAgY29sb3I6IHZhcigtLXAtY2FzY2FkZXNlbGVjdC1jb2xvcik7XG4gICAgfVxuXG4gICAgLnAtY2FzY2FkZXNlbGVjdC1sYWJlbC5wLWlucHV0ZmllbGQucC1jYXNjYWRlc2VsZWN0LWxhYmVsLXBsYWNlaG9sZGVyIHtcbiAgICAgICAgY29sb3I6IHZhcigtLXAtY2FzY2FkZXNlbGVjdC1wbGFjZWhvbGRlci1jb2xvcik7XG4gICAgfVxuXG4gICAgJi5wLXN0YXRlLWVycm9yIC5wLWNhc2NhZGVzZWxlY3QtbGFiZWwucC1pbnB1dGZpZWxkLnAtY2FzY2FkZXNlbGVjdC1sYWJlbC1wbGFjZWhvbGRlciB7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1wLWNhc2NhZGVzZWxlY3QtaW52YWxpZC1wbGFjZWhvbGRlci1jb2xvcik7XG4gICAgfVxuXG4gICAgJi5wLXN0YXRlLWRpc2FibGVkIC5wLWNhc2NhZGVzZWxlY3QtbGFiZWwucC1pbnB1dGZpZWxkIHtcbiAgICAgICAgY29sb3I6IHZhcigtLXAtY2FzY2FkZXNlbGVjdC1kaXNhYmxlZC1jb2xvcik7XG4gICAgfVxuXG4gICAgLnAtY2FzY2FkZXNlbGVjdC1kcm9wZG93bi1pY29uIHtcbiAgICAgICAgLS1faWNvbjogdmFyKC0tcC1jYXNjYWRlc2VsZWN0LWRyb3Bkb3duLWljb24pO1xuICAgIH1cblxuICAgIC5wLWNhc2NhZGVzZWxlY3QtdHJpZ2dlciB7XG4gICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgICAgICBjb2xvcjogdmFyKC0tcC1jYXNjYWRlc2VsZWN0LWRyb3Bkb3duLWNvbG9yKTtcbiAgICAgICAgd2lkdGg6IHZhcigtLXAtY2FzY2FkZXNlbGVjdC1kcm9wZG93bi13aWR0aCk7XG4gICAgICAgIGJvcmRlci1zdGFydC1lbmQtcmFkaXVzOiB2YXIoLS1wLWNhc2NhZGVzZWxlY3QtYm9yZGVyLXJhZGl1cyk7XG4gICAgICAgIGJvcmRlci1lbmQtZW5kLXJhZGl1czogdmFyKC0tcC1jYXNjYWRlc2VsZWN0LWJvcmRlci1yYWRpdXMpO1xuICAgIH1cblxuICAgIC8qIHNpemVzIChzdHlsZUNsYXNzKTogdGhlIHNpemUgdG9rZW5zIHJlcGxhY2UgdGhlIGJhc2Ugb25lcywgdGhlIGljb24gZm9sbG93cyAqL1xuICAgICYucC1jYXNjYWRlc2VsZWN0LXNtIHtcbiAgICAgICAgLS1wLWNhc2NhZGVzZWxlY3QtZm9udC1zaXplOiB2YXIoLS1wLWNhc2NhZGVzZWxlY3Qtc20tZm9udC1zaXplKTtcbiAgICAgICAgLS1wLWNhc2NhZGVzZWxlY3QtcGFkZGluZy14OiB2YXIoLS1wLWNhc2NhZGVzZWxlY3Qtc20tcGFkZGluZy14KTtcbiAgICAgICAgLS1wLWNhc2NhZGVzZWxlY3QtcGFkZGluZy15OiB2YXIoLS1wLWNhc2NhZGVzZWxlY3Qtc20tcGFkZGluZy15KTtcbiAgICB9XG5cbiAgICAmLnAtY2FzY2FkZXNlbGVjdC1sZyB7XG4gICAgICAgIC0tcC1jYXNjYWRlc2VsZWN0LWZvbnQtc2l6ZTogdmFyKC0tcC1jYXNjYWRlc2VsZWN0LWxnLWZvbnQtc2l6ZSk7XG4gICAgICAgIC0tcC1jYXNjYWRlc2VsZWN0LXBhZGRpbmcteDogdmFyKC0tcC1jYXNjYWRlc2VsZWN0LWxnLXBhZGRpbmcteCk7XG4gICAgICAgIC0tcC1jYXNjYWRlc2VsZWN0LXBhZGRpbmcteTogdmFyKC0tcC1jYXNjYWRlc2VsZWN0LWxnLXBhZGRpbmcteSk7XG4gICAgfVxuXG4gICAgJi5wLWNhc2NhZGVzZWxlY3Qtc20gLnAtY2FzY2FkZXNlbGVjdC10cmlnZ2VyIC5wLWNhc2NhZGVzZWxlY3QtdHJpZ2dlci1pY29uLFxuICAgICYucC1jYXNjYWRlc2VsZWN0LWxnIC5wLWNhc2NhZGVzZWxlY3QtdHJpZ2dlciAucC1jYXNjYWRlc2VsZWN0LXRyaWdnZXItaWNvbiB7XG4gICAgICAgIGZvbnQtc2l6ZTogdmFyKC0tcC1jYXNjYWRlc2VsZWN0LWZvbnQtc2l6ZSk7XG4gICAgfVxufVxuXG4ucC1jYXNjYWRlc2VsZWN0LXRyaWdnZXIge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBmbGV4LXNocmluazogMDtcbn1cblxuLnAtY2FzY2FkZXNlbGVjdC1sYWJlbCB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIGZsZXg6IDEgMSBhdXRvO1xuICAgIHdpZHRoOiAxJTtcbiAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG59XG5cbi8qIG5vIHZhbHVlIGFuZCBubyBwbGFjZWhvbGRlcjogYW4gZW1wdHkgYmxvY2sgaGFzIG5vIGxpbmUgYm94LCB0aGUgZmllbGQga2VlcHMgaXRzIGhlaWdodCAqL1xuLnAtY2FzY2FkZXNlbGVjdC1sYWJlbDplbXB0eTo6YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlxcMjAwYlwiO1xufVxuXG4vKlxuICogb3ZlcmxheTogdGhlIHJvb3QgcGFuZWwgYW5kIGV2ZXJ5IChzdWIpbGlzdCBjYXJyeSBwLWNhc2NhZGVzZWxlY3QtcGFuZWwuIFRoZSByb290IHBhbmVsIGlzIG9ubHkgdGhlIGFuY2hvciAobm9cbiAqIGhlaWdodCwgaXRzIGZpcnN0IGxpc3QgaXMgYWJzb2x1dGVseSBwb3NpdGlvbmVkKSwgc28gb25seSB0aGUgbGlzdHMgZHJhdyB0aGUgb3ZlcmxheS5cbiAqL1xuLnAtY2FzY2FkZXNlbGVjdC1wYW5lbCB7XG4gICAgbWluLXdpZHRoOiAxMDAlO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbn1cblxuLnAtY2FzY2FkZXNlbGVjdC1wYW5lbC5wLWNhc2NhZGVzZWxlY3QtaXRlbXMge1xuICAgIHBhZGRpbmc6IHZhcigtLXAtY2FzY2FkZXNlbGVjdC1saXN0LXBhZGRpbmcpO1xuICAgIGJhY2tncm91bmQ6IHZhcigtLXAtY2FzY2FkZXNlbGVjdC1vdmVybGF5LWJhY2tncm91bmQpO1xuICAgIGNvbG9yOiB2YXIoLS1wLWNhc2NhZGVzZWxlY3Qtb3ZlcmxheS1jb2xvcik7XG4gICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tcC1jYXNjYWRlc2VsZWN0LW92ZXJsYXktYm9yZGVyLWNvbG9yKTtcbiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1wLWNhc2NhZGVzZWxlY3Qtb3ZlcmxheS1ib3JkZXItcmFkaXVzKTtcbiAgICBib3gtc2hhZG93OiB2YXIoLS1wLWNhc2NhZGVzZWxlY3Qtb3ZlcmxheS1zaGFkb3cpO1xufVxuXG4ucC1jYXNjYWRlc2VsZWN0LWl0ZW1zIHtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogMDtcbiAgICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7XG59XG5cbi5wLWNhc2NhZGVzZWxlY3QtaXRlbSB7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG5cbi5wLWNhc2NhZGVzZWxlY3QtaXRlbS1jb250ZW50IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAucC1jYXNjYWRlc2VsZWN0LWdyb3VwLWljb24ge1xuICAgICAgICBtYXJnaW4taW5saW5lLXN0YXJ0OiBhdXRvO1xuICAgIH1cbn1cblxuLnAtY2FzY2FkZXNlbGVjdC1wYW5lbCAucC1jYXNjYWRlc2VsZWN0LWl0ZW1zIC5wLWNhc2NhZGVzZWxlY3QtaXRlbSB7XG4gICAgbWFyZ2luOiAwO1xuICAgIGJvcmRlcjogMCBub25lO1xuICAgIGNvbG9yOiB2YXIoLS1wLWNhc2NhZGVzZWxlY3Qtb3B0aW9uLWNvbG9yKTtcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICBmb250LXNpemU6IHZhcigtLXAtY2FzY2FkZXNlbGVjdC1vcHRpb24tZm9udC1zaXplKTtcbiAgICBmb250LXdlaWdodDogdmFyKC0tcC1jYXNjYWRlc2VsZWN0LW9wdGlvbi1mb250LXdlaWdodCk7XG4gICAgYm9yZGVyLXJhZGl1czogdmFyKC0tcC1jYXNjYWRlc2VsZWN0LW9wdGlvbi1ib3JkZXItcmFkaXVzKTtcbiAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIHZhcigtLXAtbGlzdC1vcHRpb24tdHJhbnNpdGlvbi1kdXJhdGlvbiksIGNvbG9yIHZhcigtLXAtbGlzdC1vcHRpb24tdHJhbnNpdGlvbi1kdXJhdGlvbiksXG4gICAgICAgIGJvcmRlci1jb2xvciB2YXIoLS1wLWxpc3Qtb3B0aW9uLXRyYW5zaXRpb24tZHVyYXRpb24pLCBib3gtc2hhZG93IHZhcigtLXAtbGlzdC1vcHRpb24tdHJhbnNpdGlvbi1kdXJhdGlvbiksXG4gICAgICAgIG91dGxpbmUtY29sb3IgdmFyKC0tcC1saXN0LW9wdGlvbi10cmFuc2l0aW9uLWR1cmF0aW9uKTtcblxuICAgICYgKyAucC1jYXNjYWRlc2VsZWN0LWl0ZW0ge1xuICAgICAgICBtYXJnaW4tdG9wOiB2YXIoLS1wLWNhc2NhZGVzZWxlY3QtbGlzdC1nYXApO1xuICAgIH1cblxuICAgIC5wLWNhc2NhZGVzZWxlY3QtaXRlbS1jb250ZW50IHtcbiAgICAgICAgcGFkZGluZzogdmFyKC0tcC1jYXNjYWRlc2VsZWN0LW9wdGlvbi1wYWRkaW5nKTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogdmFyKC0tcC1jYXNjYWRlc2VsZWN0LW9wdGlvbi1ib3JkZXItcmFkaXVzKTtcbiAgICAgICAgb3V0bGluZS1jb2xvcjogdHJhbnNwYXJlbnQ7XG5cbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBvdXRsaW5lOiB2YXIoLS1wLWZvY3VzLXJpbmctd2lkdGgpIHZhcigtLXAtZm9jdXMtcmluZy1zdHlsZSkgdmFyKC0tcC1mb2N1cy1yaW5nLWNvbG9yKTtcbiAgICAgICAgICAgIG91dGxpbmUtb2Zmc2V0OiBjYWxjKC0xICogdmFyKC0tcC1mb2N1cy1yaW5nLXdpZHRoKSk7XG4gICAgICAgICAgICBib3gtc2hhZG93OiB2YXIoLS1wLWZvY3VzLXJpbmctc2hhZG93KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qIHAtc3RhdGUtaGlnaGxpZ2h0ID0gdGhlIGFjdGl2ZSAoZXhwYW5kZWQpIGl0ZW0gKi9cbiAgICAmLnAtc3RhdGUtaGlnaGxpZ2h0IHtcbiAgICAgICAgY29sb3I6IHZhcigtLXAtY2FzY2FkZXNlbGVjdC1vcHRpb24tZm9jdXMtY29sb3IpO1xuICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1wLWNhc2NhZGVzZWxlY3Qtb3B0aW9uLWZvY3VzLWJhY2tncm91bmQpO1xuICAgIH1cblxuICAgICY6bm90KC5wLXN0YXRlLWhpZ2hsaWdodCk6bm90KC5wLXN0YXRlLWRpc2FibGVkKTpob3ZlciB7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1wLWNhc2NhZGVzZWxlY3Qtb3B0aW9uLWZvY3VzLWNvbG9yKTtcbiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tcC1jYXNjYWRlc2VsZWN0LW9wdGlvbi1mb2N1cy1iYWNrZ3JvdW5kKTtcbiAgICB9XG5cbiAgICAvKiBwLXN0YXRlLWFjdGl2ZSA9IHRoZSBzZWxlY3RlZCBpdGVtICh0aGUgdmFsdWUgb2YgdGhlIGNvbXBvbmVudCkgKi9cbiAgICAmLnAtc3RhdGUtYWN0aXZlIHtcbiAgICAgICAgY29sb3I6IHZhcigtLXAtY2FzY2FkZXNlbGVjdC1vcHRpb24tc2VsZWN0ZWQtY29sb3IpO1xuICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1wLWNhc2NhZGVzZWxlY3Qtb3B0aW9uLXNlbGVjdGVkLWJhY2tncm91bmQpO1xuXG4gICAgICAgICYucC1zdGF0ZS1oaWdobGlnaHQsXG4gICAgICAgICY6bm90KC5wLXN0YXRlLWRpc2FibGVkKTpob3ZlciB7XG4gICAgICAgICAgICBjb2xvcjogdmFyKC0tcC1jYXNjYWRlc2VsZWN0LW9wdGlvbi1zZWxlY3RlZC1mb2N1cy1jb2xvcik7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1wLWNhc2NhZGVzZWxlY3Qtb3B0aW9uLXNlbGVjdGVkLWZvY3VzLWJhY2tncm91bmQpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLnAtY2FzY2FkZXNlbGVjdC1ncm91cC1pY29uIHtcbiAgICAgICAgLS1faWNvbjogdmFyKC0tcC1jYXNjYWRlc2VsZWN0LWdyb3VwLWljb24pO1xuICAgICAgICBmb250LXNpemU6IHZhcigtLXAtY2FzY2FkZXNlbGVjdC1vcHRpb24taWNvbi1zaXplKTtcbiAgICAgICAgY29sb3I6IHZhcigtLXAtY2FzY2FkZXNlbGVjdC1vcHRpb24taWNvbi1jb2xvcik7XG4gICAgfVxuXG4gICAgJi5wLXN0YXRlLWhpZ2hsaWdodCA+IC5wLWNhc2NhZGVzZWxlY3QtaXRlbS1jb250ZW50IC5wLWNhc2NhZGVzZWxlY3QtZ3JvdXAtaWNvbixcbiAgICAmOm5vdCgucC1zdGF0ZS1kaXNhYmxlZCk6aG92ZXIgPiAucC1jYXNjYWRlc2VsZWN0LWl0ZW0tY29udGVudCAucC1jYXNjYWRlc2VsZWN0LWdyb3VwLWljb24ge1xuICAgICAgICBjb2xvcjogdmFyKC0tcC1jYXNjYWRlc2VsZWN0LW9wdGlvbi1pY29uLWZvY3VzLWNvbG9yKTtcbiAgICB9XG59XG5cbi8qIHN1Ymxpc3RzIGFyZSBwb3NpdGlvbmVkIGJ5IHRoZSBjb21wb25lbnQgKGlubGluZSBsZWZ0IC8gdG9wKSAqL1xuLnAtY2FzY2FkZXNlbGVjdC1zdWJsaXN0IHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgbWluLXdpZHRoOiAxMDAlO1xuICAgIHotaW5kZXg6IDE7XG4gICAgZGlzcGxheTogbm9uZTtcbn1cblxuLnAtY2FzY2FkZXNlbGVjdC1pdGVtLWFjdGl2ZSA+IC5wLWNhc2NhZGVzZWxlY3Qtc3VibGlzdCB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgbGVmdDogMTAwJTtcbiAgICB0b3A6IDA7XG59XG5cbi8qIGZpbGxlZCB2YXJpYW50IChib3JkZXIsIGZvY3VzIHJpbmcgYW5kIGxpbmUgYXQgdGhlIGJvdHRvbTogc2VlIGZvcm1zL2lucHV0ZmllbGQuY3NzKSAqL1xuLnAtaW5wdXQtZmlsbGVkIC5wLWNhc2NhZGVzZWxlY3Qge1xuICAgIC0tX2xpbmUtd2lkdGg6IHZhcigtLXAtZm9ybS1maWVsZC1maWxsZWQtaW5kaWNhdG9yLXdpZHRoKTtcbiAgICAtLV9saW5lOiBsaW5lYXItZ3JhZGllbnQodmFyKC0tX2JvcmRlci1jb2xvciksIHZhcigtLV9ib3JkZXItY29sb3IpKSBib3R0b20gLyAxMDAlIHZhcigtLV9saW5lLXdpZHRoKSBuby1yZXBlYXRcbiAgICAgICAgYm9yZGVyLWJveDtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1fbGluZSksIHZhcigtLXAtY2FzY2FkZXNlbGVjdC1maWxsZWQtYmFja2dyb3VuZCk7XG4gICAgYm9yZGVyLWNvbG9yOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tX2JvcmRlci1jb2xvcikgdmFyKC0tcC1mb3JtLWZpZWxkLWZpbGxlZC1ib3JkZXItb3BhY2l0eSksIHRyYW5zcGFyZW50KTtcbiAgICBib3JkZXItZW5kLXN0YXJ0LXJhZGl1czogdmFyKC0tcC1mb3JtLWZpZWxkLWZpbGxlZC1ib3R0b20tYm9yZGVyLXJhZGl1cyk7XG4gICAgYm9yZGVyLWVuZC1lbmQtcmFkaXVzOiB2YXIoLS1wLWZvcm0tZmllbGQtZmlsbGVkLWJvdHRvbS1ib3JkZXItcmFkaXVzKTtcblxuICAgICY6bm90KC5wLXN0YXRlLWRpc2FibGVkKTpob3ZlciB7XG4gICAgICAgIGJhY2tncm91bmQ6IHZhcigtLV9saW5lKSwgdmFyKC0tcC1jYXNjYWRlc2VsZWN0LWZpbGxlZC1ob3Zlci1iYWNrZ3JvdW5kKTtcbiAgICB9XG5cbiAgICAmOm5vdCgucC1zdGF0ZS1kaXNhYmxlZCkucC1zdGF0ZS1mb2N1cyB7XG4gICAgICAgIC0tX2xpbmUtd2lkdGg6IHZhcigtLXAtZm9ybS1maWVsZC1maWxsZWQtZm9jdXMtaW5kaWNhdG9yLXdpZHRoKTtcbiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tX2xpbmUpLCB2YXIoLS1wLWNhc2NhZGVzZWxlY3QtZmlsbGVkLWZvY3VzLWJhY2tncm91bmQpO1xuICAgICAgICBvdXRsaW5lLWNvbG9yOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tcC1jYXNjYWRlc2VsZWN0LWZvY3VzLXJpbmctY29sb3IpIHZhcigtLXAtZm9ybS1maWVsZC1maWxsZWQtYm9yZGVyLW9wYWNpdHkpLCB0cmFuc3BhcmVudCk7XG4gICAgfVxuXG4gICAgJi5wLXN0YXRlLWRpc2FibGVkIHtcbiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tX2xpbmUpLCB2YXIoLS1wLWNhc2NhZGVzZWxlY3QtZGlzYWJsZWQtYmFja2dyb3VuZCk7XG4gICAgfVxufVxuXG4ucC1mbHVpZCAucC1jYXNjYWRlc2VsZWN0IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuXG4gICAgLnAtY2FzY2FkZXNlbGVjdC1sYWJlbCB7XG4gICAgICAgIHdpZHRoOiAxJTtcbiAgICB9XG59XG4iLCAiLypcbiAqIENoaXA6IHA6Y2hpcFxuICpcbiAqIE1hcmt1cDogLnAtY2hpcCA+IGltZyB8IC5wLWNoaXAtaWNvbiwgLnAtY2hpcC10ZXh0LCAucC1jaGlwLXJlbW92ZS1pY29uXG4gKi9cblxuLnAtY2hpcCB7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IHZhcigtLXAtY2hpcC1nYXApO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXAtY2hpcC1iYWNrZ3JvdW5kKTtcbiAgICBjb2xvcjogdmFyKC0tcC1jaGlwLWNvbG9yKTtcbiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1wLWNoaXAtYm9yZGVyLXJhZGl1cyk7XG4gICAgcGFkZGluZy1ibG9jazogdmFyKC0tcC1jaGlwLXBhZGRpbmcteSk7XG4gICAgcGFkZGluZy1pbmxpbmU6IHZhcigtLXAtY2hpcC1wYWRkaW5nLXgpO1xuXG4gICAgJjpoYXMoPiAucC1jaGlwLXJlbW92ZS1pY29uKSB7XG4gICAgICAgIHBhZGRpbmctaW5saW5lLWVuZDogdmFyKC0tcC1jaGlwLXBhZGRpbmcteSk7XG4gICAgfVxuXG4gICAgJi5wLWNoaXAtaW1hZ2Uge1xuICAgICAgICBwYWRkaW5nLWJsb2NrOiBjYWxjKHZhcigtLXAtY2hpcC1wYWRkaW5nLXkpIC8gMik7XG4gICAgfVxuXG4gICAgLnAtY2hpcC10ZXh0IHtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBsaW5lLWhlaWdodDogdmFyKC0tcC10eXBvZ3JhcGh5LWxpbmUtaGVpZ2h0KTtcbiAgICAgICAgZm9udC1zaXplOiB2YXIoLS1wLWNoaXAtbGFiZWwtZm9udC1zaXplKTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IHZhcigtLXAtY2hpcC1sYWJlbC1mb250LXdlaWdodCk7XG4gICAgfVxuXG4gICAgLyogaWNvbiBib3hlcyA9IGljb24gc2l6ZSAobGlrZSBQcmltZVVJWCksIHNvIGFuIGljb24gbmV2ZXIgbWFrZXMgdGhlIGNoaXAgdGFsbGVyIHRoYW4gdGhlIGxhYmVsICovXG4gICAgLnAtY2hpcC1pY29uIHtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBsaW5lLWhlaWdodDogMTtcbiAgICAgICAgY29sb3I6IHZhcigtLXAtY2hpcC1pY29uLWNvbG9yKTtcbiAgICAgICAgZm9udC1zaXplOiB2YXIoLS1wLWNoaXAtaWNvbi1zaXplKTtcbiAgICAgICAgd2lkdGg6IHZhcigtLXAtY2hpcC1pY29uLXNpemUpO1xuICAgICAgICBoZWlnaHQ6IHZhcigtLXAtY2hpcC1pY29uLXNpemUpO1xuICAgICAgICBmbGV4LXNocmluazogMDtcbiAgICB9XG5cbiAgICBpbWcge1xuICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgICAgICB3aWR0aDogdmFyKC0tcC1jaGlwLWltYWdlLXdpZHRoKTtcbiAgICAgICAgaGVpZ2h0OiB2YXIoLS1wLWNoaXAtaW1hZ2UtaGVpZ2h0KTtcbiAgICAgICAgbWFyZ2luLWJsb2NrOiAwO1xuICAgICAgICBtYXJnaW4taW5saW5lOiBjYWxjKC0xICogdmFyKC0tcC1jaGlwLXBhZGRpbmcteSkpIDA7XG4gICAgfVxuXG4gICAgLyogcmVtb3ZlIGljb246IC0tcC1jaGlwLXJlbW92ZS1pY29uIChkZWZhdWx0OiB0aGUgY2xlYXIgaWNvbiBvZiB0aGUgaWNvbiBzZXQsIGEgY2lyY2xlZCB4KSAqL1xuICAgIC5wLWNoaXAtcmVtb3ZlLWljb24ge1xuICAgICAgICAtLV9pY29uOiB2YXIoLS1wLWNoaXAtcmVtb3ZlLWljb24pO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgICAgICBjb2xvcjogdmFyKC0tcC1jaGlwLXJlbW92ZS1pY29uLWNvbG9yKTtcbiAgICAgICAgZm9udC1zaXplOiB2YXIoLS1wLWNoaXAtcmVtb3ZlLWljb24tc2l6ZSk7XG4gICAgICAgIHdpZHRoOiB2YXIoLS1wLWNoaXAtcmVtb3ZlLWljb24tc2l6ZSk7XG4gICAgICAgIGhlaWdodDogdmFyKC0tcC1jaGlwLXJlbW92ZS1pY29uLXNpemUpO1xuICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgICAgIG91dGxpbmUtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICB0cmFuc2l0aW9uOiBvdXRsaW5lLWNvbG9yIHZhcigtLXAtY2hpcC10cmFuc2l0aW9uLWR1cmF0aW9uKSwgYm94LXNoYWRvdyB2YXIoLS1wLWNoaXAtdHJhbnNpdGlvbi1kdXJhdGlvbik7XG5cbiAgICAgICAgJjpmb2N1cy12aXNpYmxlIHtcbiAgICAgICAgICAgIG91dGxpbmU6IHZhcigtLXAtY2hpcC1yZW1vdmUtaWNvbi1mb2N1cy1yaW5nLXdpZHRoKSB2YXIoLS1wLWNoaXAtcmVtb3ZlLWljb24tZm9jdXMtcmluZy1zdHlsZSkgdmFyKC0tcC1jaGlwLXJlbW92ZS1pY29uLWZvY3VzLXJpbmctY29sb3IpO1xuICAgICAgICAgICAgb3V0bGluZS1vZmZzZXQ6IHZhcigtLXAtY2hpcC1yZW1vdmUtaWNvbi1mb2N1cy1yaW5nLW9mZnNldCk7XG4gICAgICAgICAgICBib3gtc2hhZG93OiB2YXIoLS1wLWNoaXAtcmVtb3ZlLWljb24tZm9jdXMtcmluZy1zaGFkb3cpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJjpoYXMoPiAucC1jaGlwLXJlbW92ZS1pY29uOmZvY3VzLXZpc2libGUpIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tcC1jaGlwLWZvY3VzLWJhY2tncm91bmQpO1xuICAgIH1cbn1cbiIsICIvKlxuICogQ2hpcHM6IHA6Y2hpcHMgKFByaW1lVUlYOiBpbnB1dGNoaXBzKVxuICpcbiAqIFRoZSBjb250YWluZXIgaXMgYSAucC1pbnB1dGZpZWxkIChmb3Jtcy9pbnB1dGZpZWxkLmNzczogaG92ZXIsIGZvY3VzLCBlcnJvciwgZGlzYWJsZWQsIGZpbGxlZCksIG9ubHkgdGhlIGNoaXBzIGxpdmUgaGVyZS5cbiAqIFN1cHBvcnRlZCBjbGFzc2VzOiBwLXN0YXRlLWhvdmVyIC8gcC1zdGF0ZS1mb2N1cyAvIHAtc3RhdGUtZXJyb3IgLyBwLXN0YXRlLWRpc2FibGVkIChvbiAucC1jaGlwcy1jb250YWluZXIpLFxuICogICAgICAgICAgICAgICAgICAgIHAtaW5wdXR3cmFwcGVyLWZvY3VzIChvbiAucC1jaGlwcywgZmxvYXQgbGFiZWwpXG4gKi9cbi5wLWNoaXBzIHtcbiAgICAvKiB0aGUgY29udGFpbmVyICgucC1pbnB1dGZpZWxkKSByZWFkcyB0aGUgaW5wdXR0ZXh0IHRva2VuczogcG9pbnQgdGhlbSB0byB0aGUgaW5wdXRjaGlwcyB0b2tlbnMgKi9cbiAgICAtLXAtaW5wdXR0ZXh0LWJhY2tncm91bmQ6IHZhcigtLXAtaW5wdXRjaGlwcy1iYWNrZ3JvdW5kKTtcbiAgICAtLXAtaW5wdXR0ZXh0LWRpc2FibGVkLWJhY2tncm91bmQ6IHZhcigtLXAtaW5wdXRjaGlwcy1kaXNhYmxlZC1iYWNrZ3JvdW5kKTtcbiAgICAtLXAtaW5wdXR0ZXh0LWZpbGxlZC1iYWNrZ3JvdW5kOiB2YXIoLS1wLWlucHV0Y2hpcHMtZmlsbGVkLWJhY2tncm91bmQpO1xuICAgIC0tcC1pbnB1dHRleHQtZmlsbGVkLWZvY3VzLWJhY2tncm91bmQ6IHZhcigtLXAtaW5wdXRjaGlwcy1maWxsZWQtZm9jdXMtYmFja2dyb3VuZCk7XG4gICAgLS1wLWlucHV0dGV4dC1ib3JkZXItY29sb3I6IHZhcigtLXAtaW5wdXRjaGlwcy1ib3JkZXItY29sb3IpO1xuICAgIC0tcC1pbnB1dHRleHQtaG92ZXItYm9yZGVyLWNvbG9yOiB2YXIoLS1wLWlucHV0Y2hpcHMtaG92ZXItYm9yZGVyLWNvbG9yKTtcbiAgICAtLXAtaW5wdXR0ZXh0LWZvY3VzLWJvcmRlci1jb2xvcjogdmFyKC0tcC1pbnB1dGNoaXBzLWZvY3VzLWJvcmRlci1jb2xvcik7XG4gICAgLS1wLWlucHV0dGV4dC1pbnZhbGlkLWJvcmRlci1jb2xvcjogdmFyKC0tcC1pbnB1dGNoaXBzLWludmFsaWQtYm9yZGVyLWNvbG9yKTtcbiAgICAtLXAtaW5wdXR0ZXh0LWNvbG9yOiB2YXIoLS1wLWlucHV0Y2hpcHMtY29sb3IpO1xuICAgIC0tcC1pbnB1dHRleHQtZGlzYWJsZWQtY29sb3I6IHZhcigtLXAtaW5wdXRjaGlwcy1kaXNhYmxlZC1jb2xvcik7XG4gICAgLS1wLWlucHV0dGV4dC1wbGFjZWhvbGRlci1jb2xvcjogdmFyKC0tcC1pbnB1dGNoaXBzLXBsYWNlaG9sZGVyLWNvbG9yKTtcbiAgICAtLXAtaW5wdXR0ZXh0LXNoYWRvdzogdmFyKC0tcC1pbnB1dGNoaXBzLXNoYWRvdyk7XG4gICAgLS1wLWlucHV0dGV4dC1wYWRkaW5nLXg6IHZhcigtLXAtaW5wdXRjaGlwcy1wYWRkaW5nLXgpO1xuICAgIC0tcC1pbnB1dHRleHQtcGFkZGluZy15OiB2YXIoLS1wLWlucHV0Y2hpcHMtcGFkZGluZy15KTtcbiAgICAtLXAtaW5wdXR0ZXh0LWJvcmRlci1yYWRpdXM6IHZhcigtLXAtaW5wdXRjaGlwcy1ib3JkZXItcmFkaXVzKTtcbiAgICAtLXAtaW5wdXR0ZXh0LWZvY3VzLXJpbmctd2lkdGg6IHZhcigtLXAtaW5wdXRjaGlwcy1mb2N1cy1yaW5nLXdpZHRoKTtcbiAgICAtLXAtaW5wdXR0ZXh0LWZvY3VzLXJpbmctc3R5bGU6IHZhcigtLXAtaW5wdXRjaGlwcy1mb2N1cy1yaW5nLXN0eWxlKTtcbiAgICAtLXAtaW5wdXR0ZXh0LWZvY3VzLXJpbmctY29sb3I6IHZhcigtLXAtaW5wdXRjaGlwcy1mb2N1cy1yaW5nLWNvbG9yKTtcbiAgICAtLXAtaW5wdXR0ZXh0LWZvY3VzLXJpbmctb2Zmc2V0OiB2YXIoLS1wLWlucHV0Y2hpcHMtZm9jdXMtcmluZy1vZmZzZXQpO1xuICAgIC0tcC1pbnB1dHRleHQtZm9jdXMtcmluZy1zaGFkb3c6IHZhcigtLXAtaW5wdXRjaGlwcy1mb2N1cy1yaW5nLXNoYWRvdyk7XG4gICAgLS1wLWlucHV0dGV4dC10cmFuc2l0aW9uLWR1cmF0aW9uOiB2YXIoLS1wLWlucHV0Y2hpcHMtdHJhbnNpdGlvbi1kdXJhdGlvbik7XG5cbiAgICBib3gtc2hhZG93OiBub25lO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAucC1jaGlwcy1jb250YWluZXIge1xuICAgICAgICBwYWRkaW5nOiBjYWxjKHZhcigtLXAtaW5wdXRjaGlwcy1wYWRkaW5nLXkpIC8gMikgdmFyKC0tcC1pbnB1dGNoaXBzLXBhZGRpbmcteCk7XG4gICAgICAgIGdhcDogY2FsYyh2YXIoLS1wLWlucHV0Y2hpcHMtcGFkZGluZy15KSAvIDIpO1xuXG4gICAgICAgIC5wLWNoaXBzLXRva2VuIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IGNhbGModmFyKC0tcC1pbnB1dGNoaXBzLXBhZGRpbmcteSkgLyAyKSAwO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tcC1jaGlwLWJhY2tncm91bmQpO1xuICAgICAgICAgICAgY29sb3I6IHZhcigtLXAtaW5wdXRjaGlwcy1jaGlwLWNvbG9yKTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXAtaW5wdXRjaGlwcy1jaGlwLWJvcmRlci1yYWRpdXMpO1xuICAgICAgICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCB2YXIoLS1wLWlucHV0Y2hpcHMtdHJhbnNpdGlvbi1kdXJhdGlvbiksIGNvbG9yIHZhcigtLXAtaW5wdXRjaGlwcy10cmFuc2l0aW9uLWR1cmF0aW9uKTtcblxuICAgICAgICAgICAgLnAtY2hpcHMtdG9rZW4tbGFiZWwge1xuICAgICAgICAgICAgICAgIHBhZGRpbmctYmxvY2s6IDA7XG4gICAgICAgICAgICAgICAgcGFkZGluZy1pbmxpbmU6IHZhcigtLXAtY2hpcC1wYWRkaW5nLXgpIGNhbGModmFyKC0tcC1jaGlwLXBhZGRpbmcteCkgKyB2YXIoLS1wLWNoaXAtZ2FwKSArIHZhcigtLXAtY2hpcC1yZW1vdmUtaWNvbi1zaXplKSk7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiB2YXIoLS1wLWNoaXAtbGFiZWwtZm9udC1zaXplKTtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogdmFyKC0tcC1jaGlwLWxhYmVsLWZvbnQtd2VpZ2h0KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLnAtY2hpcHMtY2hpcC1yZW1vdmUtaWNvbiB7XG4gICAgICAgICAgICAgICAgLS1faWNvbjogdmFyKC0tcC1pbnB1dGNoaXBzLWNoaXAtcmVtb3ZlLWljb24pO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAucC1jaGlwcy10b2tlbi1pY29uIHtcbiAgICAgICAgICAgICAgICBpbnNldC1pbmxpbmUtZW5kOiB2YXIoLS1wLWNoaXAtcGFkZGluZy14KTtcbiAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiBjYWxjKC0xICogdmFyKC0tcC1jaGlwLXJlbW92ZS1pY29uLXNpemUpIC8gMik7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiB2YXIoLS1wLWNoaXAtcmVtb3ZlLWljb24tc2l6ZSk7XG4gICAgICAgICAgICAgICAgY29sb3I6IHZhcigtLXAtY2hpcC1yZW1vdmUtaWNvbi1jb2xvcik7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAucC1jaGlwcy1pbnB1dC10b2tlbiB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICBwYWRkaW5nOiBjYWxjKHZhcigtLXAtaW5wdXRjaGlwcy1wYWRkaW5nLXkpIC8gMikgMDtcblxuICAgICAgICAgICAgLyogc2FtZSBsaW5lIGhlaWdodCBhcyBhbiBpbnB1dDogcGFkZGluZy15IC8gMiAoY29udGFpbmVyKSArIHBhZGRpbmcteSAvIDIgKGhlcmUpICsgbGluZSA9IGlucHV0IGhlaWdodCAqL1xuICAgICAgICAgICAgaW5wdXQge1xuICAgICAgICAgICAgICAgIGZvbnQtZmFtaWx5OiBpbmhlcml0O1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogdmFyKC0tcC1mb3JtLWZpZWxkLWZvbnQtc2l6ZSk7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IHZhcigtLXAtZm9ybS1maWVsZC1mb250LXdlaWdodCk7XG4gICAgICAgICAgICAgICAgbGluZS1oZWlnaHQ6IHZhcigtLXAtdHlwb2dyYXBoeS1saW5lLWhlaWdodCk7XG4gICAgICAgICAgICAgICAgY29sb3I6IHZhcigtLXAtaW5wdXRjaGlwcy1jb2xvcik7XG4gICAgICAgICAgICAgICAgYXBwZWFyYW5jZTogbm9uZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaW5wdXQ6OnBsYWNlaG9sZGVyIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogdmFyKC0tcC1pbnB1dGNoaXBzLXBsYWNlaG9sZGVyLWNvbG9yKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYucC1zdGF0ZS1lcnJvciAucC1jaGlwcy1pbnB1dC10b2tlbiBpbnB1dDo6cGxhY2Vob2xkZXIge1xuICAgICAgICAgICAgY29sb3I6IHZhcigtLXAtZm9ybS1maWVsZC1pbnZhbGlkLXBsYWNlaG9sZGVyLWNvbG9yKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYucC1zdGF0ZS1kaXNhYmxlZCAucC1jaGlwcy1pbnB1dC10b2tlbiBpbnB1dCB7XG4gICAgICAgICAgICBjb2xvcjogdmFyKC0tcC1pbnB1dGNoaXBzLWRpc2FibGVkLWNvbG9yKTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLnAtY2hpcHMtY29udGFpbmVyIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGNsZWFyOiBsZWZ0O1xuICAgIGN1cnNvcjogdGV4dDtcbiAgICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7XG4gICAgbWFyZ2luOiAwO1xuICAgIG1pbi1oZWlnaHQ6IDFweDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xufVxuXG4ucC1jaGlwcy10b2tlbiB7XG4gICAgY3Vyc29yOiBkZWZhdWx0O1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZmxleDogMCAwIGF1dG87XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAucC1jaGlwcy10b2tlbi1sYWJlbCB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIH1cblxuICAgIC5wLWNoaXBzLXRva2VuLWljb24ge1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiA1MCU7XG4gICAgfVxufVxuXG4ucC1jaGlwcy1pbnB1dC10b2tlbiB7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAvKiBmaWxscyB0aGUgcmVzdCBvZiB0aGUgbGluZSwgd3JhcHMgb25seSBiZWxvdyA0cmVtIChub3QgYXQgdGhlIGludHJpbnNpYyB3aWR0aCBvZiB0aGUgaW5wdXQpICovXG4gICAgZmxleDogMSAxIDRyZW07XG4gICAgbWluLXdpZHRoOiA0cmVtO1xuXG4gICAgaW5wdXQge1xuICAgICAgICBtaW4td2lkdGg6IDA7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICBib3JkZXI6IDAgbm9uZTtcbiAgICAgICAgb3V0bGluZTogMCBub25lO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgIH1cbn1cblxuLnAtZmx1aWQgLnAtY2hpcHMge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleDogMSAxIGF1dG87XG5cbiAgICAucC1jaGlwcy1jb250YWluZXIge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICB9XG59XG4iLCAiLypcbiAqIENocm9ub2xpbmU6IHA6Y2hyb25vbGluZSAoUHJpbWVVSVggdGltZWxpbmUgdG9rZW5zKVxuICpcbiAqIFRoZSBkZWZhdWx0IG1hcmtlciBpcyBhIHJpbmcgd2l0aCBhIHByaW1hcnkgZG90ICg6OmJlZm9yZSkgbGlrZSB0aGUgUHJpbWVVSVggdGltZWxpbmU7IGEgY3VzdG9tIG1hcmtlciBmYWNldCBpcyBub3Qgc3R5bGVkLlxuICogU3VwcG9ydGVkIGNsYXNzZXM6IHAtY2hyb25vbGluZS12ZXJ0aWNhbCwgcC1jaHJvbm9saW5lLWhvcml6b250YWwsIHAtY2hyb25vbGluZS1sZWZ0LCBwLWNocm9ub2xpbmUtcmlnaHQsXG4gKiAgICAgICAgICAgICAgICAgICAgcC1jaHJvbm9saW5lLXRvcCwgcC1jaHJvbm9saW5lLWJvdHRvbSwgcC1jaHJvbm9saW5lLWFsdGVybmF0ZVxuICovXG4ucC1jaHJvbm9saW5lIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZ3JvdzogMTtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXG4gICAgLnAtY2hyb25vbGluZS1ldmVudCB7XG4gICAgICAgIG1pbi1oZWlnaHQ6IHZhcigtLXAtY2hyb25vbGluZS1ldmVudC1taW4taGVpZ2h0KTtcblxuICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgbWluLWhlaWdodDogMDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5wLWNocm9ub2xpbmUtZXZlbnQtbWFya2VyIHtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgYm9yZGVyLXdpZHRoOiB2YXIoLS1wLWNocm9ub2xpbmUtZXZlbnQtbWFya2VyLWJvcmRlci13aWR0aCk7XG4gICAgICAgIGJvcmRlci1zdHlsZTogc29saWQ7XG4gICAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tcC1jaHJvbm9saW5lLWV2ZW50LW1hcmtlci1ib3JkZXItY29sb3IpO1xuICAgICAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1wLWNocm9ub2xpbmUtZXZlbnQtbWFya2VyLWJvcmRlci1yYWRpdXMpO1xuICAgICAgICB3aWR0aDogdmFyKC0tcC1jaHJvbm9saW5lLWV2ZW50LW1hcmtlci1zaXplKTtcbiAgICAgICAgaGVpZ2h0OiB2YXIoLS1wLWNocm9ub2xpbmUtZXZlbnQtbWFya2VyLXNpemUpO1xuICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1wLWNocm9ub2xpbmUtZXZlbnQtbWFya2VyLWJhY2tncm91bmQpO1xuXG4gICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICBjb250ZW50OiBcIiBcIjtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXAtY2hyb25vbGluZS1ldmVudC1tYXJrZXItY29udGVudC1ib3JkZXItcmFkaXVzKTtcbiAgICAgICAgICAgIHdpZHRoOiB2YXIoLS1wLWNocm9ub2xpbmUtZXZlbnQtbWFya2VyLWNvbnRlbnQtc2l6ZSk7XG4gICAgICAgICAgICBoZWlnaHQ6IHZhcigtLXAtY2hyb25vbGluZS1ldmVudC1tYXJrZXItY29udGVudC1zaXplKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHZhcigtLXAtY2hyb25vbGluZS1ldmVudC1tYXJrZXItY29udGVudC1iYWNrZ3JvdW5kKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgIGNvbnRlbnQ6IFwiIFwiO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1wLWNocm9ub2xpbmUtZXZlbnQtbWFya2VyLWJvcmRlci1yYWRpdXMpO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogdmFyKC0tcC1jaHJvbm9saW5lLWV2ZW50LW1hcmtlci1jb250ZW50LWluc2V0LXNoYWRvdyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAucC1jaHJvbm9saW5lLWV2ZW50LWNvbm5lY3RvciB7XG4gICAgICAgIGJhY2tncm91bmQ6IHZhcigtLXAtY2hyb25vbGluZS1ldmVudC1jb25uZWN0b3ItY29sb3IpO1xuICAgIH1cblxuICAgICYucC1jaHJvbm9saW5lLXZlcnRpY2FsIHtcbiAgICAgICAgLnAtY2hyb25vbGluZS1ldmVudC1vcHBvc2l0ZSxcbiAgICAgICAgLnAtY2hyb25vbGluZS1ldmVudC1jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IHZhcigtLXAtY2hyb25vbGluZS12ZXJ0aWNhbC1ldmVudC1jb250ZW50LXBhZGRpbmcpO1xuICAgICAgICB9XG5cbiAgICAgICAgLnAtY2hyb25vbGluZS1ldmVudC1jb25uZWN0b3Ige1xuICAgICAgICAgICAgd2lkdGg6IHZhcigtLXAtY2hyb25vbGluZS1ldmVudC1jb25uZWN0b3Itc2l6ZSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLnAtY2hyb25vbGluZS1ob3Jpem9udGFsIHtcbiAgICAgICAgLnAtY2hyb25vbGluZS1ldmVudC1vcHBvc2l0ZSxcbiAgICAgICAgLnAtY2hyb25vbGluZS1ldmVudC1jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IHZhcigtLXAtY2hyb25vbGluZS1ob3Jpem9udGFsLWV2ZW50LWNvbnRlbnQtcGFkZGluZyk7XG4gICAgICAgIH1cblxuICAgICAgICAucC1jaHJvbm9saW5lLWV2ZW50LWNvbm5lY3RvciB7XG4gICAgICAgICAgICBoZWlnaHQ6IHZhcigtLXAtY2hyb25vbGluZS1ldmVudC1jb25uZWN0b3Itc2l6ZSk7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi8qIG9wcG9zaXRlIGFuZCBjb250ZW50IGFyZSBhbGlnbmVkIHRvd2FyZHMgdGhlIGxpbmUgKi9cbi5wLWNocm9ub2xpbmUtbGVmdCB7XG4gICAgLnAtY2hyb25vbGluZS1ldmVudC1vcHBvc2l0ZSB7XG4gICAgICAgIHRleHQtYWxpZ246IGVuZDtcbiAgICB9XG5cbiAgICAucC1jaHJvbm9saW5lLWV2ZW50LWNvbnRlbnQge1xuICAgICAgICB0ZXh0LWFsaWduOiBzdGFydDtcbiAgICB9XG59XG5cbi5wLWNocm9ub2xpbmUtcmlnaHQge1xuICAgIC5wLWNocm9ub2xpbmUtZXZlbnQge1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93LXJldmVyc2U7XG4gICAgfVxuXG4gICAgLnAtY2hyb25vbGluZS1ldmVudC1vcHBvc2l0ZSB7XG4gICAgICAgIHRleHQtYWxpZ246IHN0YXJ0O1xuICAgIH1cblxuICAgIC5wLWNocm9ub2xpbmUtZXZlbnQtY29udGVudCB7XG4gICAgICAgIHRleHQtYWxpZ246IGVuZDtcbiAgICB9XG59XG5cbi5wLWNocm9ub2xpbmUtdmVydGljYWwucC1jaHJvbm9saW5lLWFsdGVybmF0ZSAucC1jaHJvbm9saW5lLWV2ZW50IHtcbiAgICAmOm50aC1jaGlsZChldmVuKSB7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3ctcmV2ZXJzZTtcbiAgICB9XG5cbiAgICAmOm50aC1jaGlsZChvZGQpIHtcbiAgICAgICAgLnAtY2hyb25vbGluZS1ldmVudC1vcHBvc2l0ZSB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBlbmQ7XG4gICAgICAgIH1cblxuICAgICAgICAucC1jaHJvbm9saW5lLWV2ZW50LWNvbnRlbnQge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogc3RhcnQ7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmOm50aC1jaGlsZChldmVuKSB7XG4gICAgICAgIC5wLWNocm9ub2xpbmUtZXZlbnQtb3Bwb3NpdGUge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogc3RhcnQ7XG4gICAgICAgIH1cblxuICAgICAgICAucC1jaHJvbm9saW5lLWV2ZW50LWNvbnRlbnQge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogZW5kO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4ucC1jaHJvbm9saW5lLWV2ZW50IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cblxuLnAtY2hyb25vbGluZS1ldmVudC1vcHBvc2l0ZSB7XG4gICAgZmxleDogMTtcbn1cblxuLnAtY2hyb25vbGluZS1ldmVudC1jb250ZW50IHtcbiAgICBmbGV4OiAxO1xufVxuXG4ucC1jaHJvbm9saW5lLWV2ZW50LXNlcGFyYXRvciB7XG4gICAgZmxleDogMDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbn1cblxuLnAtY2hyb25vbGluZS1ldmVudC1tYXJrZXIge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24tc2VsZjogYmFzZWxpbmU7XG59XG5cbi5wLWNocm9ub2xpbmUtZXZlbnQtY29ubmVjdG9yIHtcbiAgICBmbGV4LWdyb3c6IDE7XG59XG5cbi5wLWNocm9ub2xpbmUtaG9yaXpvbnRhbCB7XG4gICAgZmxleC1kaXJlY3Rpb246IHJvdztcblxuICAgIC5wLWNocm9ub2xpbmUtZXZlbnQge1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBmbGV4OiAxO1xuXG4gICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICBmbGV4OiAwO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLnAtY2hyb25vbGluZS1ldmVudC1zZXBhcmF0b3Ige1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgIH1cblxuICAgIC5wLWNocm9ub2xpbmUtZXZlbnQtY29ubmVjdG9yIHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgfVxuXG4gICAgJi5wLWNocm9ub2xpbmUtYWx0ZXJuYXRlIC5wLWNocm9ub2xpbmUtZXZlbnQ6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbi1yZXZlcnNlO1xuICAgIH1cbn1cblxuLnAtY2hyb25vbGluZS1ib3R0b20gLnAtY2hyb25vbGluZS1ldmVudCB7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbi1yZXZlcnNlO1xufVxuIiwgIi8qXG4gKiBDb2x1bW5Ub2dnbGVyOiBwOmNvbHVtblRvZ2dsZXIgb3ZlcmxheSBvZiBwOmRhdGFUYWJsZSAvIHA6dHJlZVRhYmxlICgrIHJlc3BvbnNpdmUgY29sdW1uIHByaW9yaXRpZXMpXG4gKlxuICogTWFya3VwIChidWlsdCBieSB0aGUgY29tcG9uZW50KTogLnAtY29sdW1udG9nZ2xlciA+IHVsLnAtY29sdW1udG9nZ2xlci1pdGVtcyA+IGxpLnAtY29sdW1udG9nZ2xlci1hbGwgLyBsaS5wLWNvbHVtbnRvZ2dsZXItaXRlbVxuICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWFjaCB3aXRoIGEgLnAtY2hrYm94IGFuZCBhIGxhYmVsXG4gKiBUb2tlbnM6IHRoZSBjb2x1bW50b2dnbGVyIGJsb2NrIG9mIHByZXNldHMvKi5jc3MgKG1vZGVsbGVkIG9uIHRoZSBQcmltZVVJWCBtdWx0aXNlbGVjdCBvdmVybGF5KVxuICovXG4ucC1jb2x1bW50b2dnbGVyIHtcbiAgICBwYWRkaW5nOiAwO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBvdmVyZmxvdzogYXV0bztcbiAgICBkaXNwbGF5OiBub25lO1xuICAgIGJhY2tncm91bmQ6IHZhcigtLXAtY29sdW1udG9nZ2xlci1iYWNrZ3JvdW5kKTtcbiAgICBjb2xvcjogdmFyKC0tcC1jb2x1bW50b2dnbGVyLWNvbG9yKTtcbiAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1wLWNvbHVtbnRvZ2dsZXItYm9yZGVyLWNvbG9yKTtcbiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1wLWNvbHVtbnRvZ2dsZXItYm9yZGVyLXJhZGl1cyk7XG4gICAgYm94LXNoYWRvdzogdmFyKC0tcC1jb2x1bW50b2dnbGVyLXNoYWRvdyk7XG5cbiAgICAvKiB0aGUgb3ZlcmxheSBjbG9zZXMgb24gb3V0c2lkZSBjbGljayAvIGVzY2FwZSAqL1xuICAgIC5wLWNvbHVtbnRvZ2dsZXItY2xvc2Uge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cblxuICAgIC5wLWNvbHVtbnRvZ2dsZXItY2xvc2UtaWNvbiB7XG4gICAgICAgIC0tX2ljb246IHZhcigtLXAtY29sdW1udG9nZ2xlci1jbG9zZS1pY29uKTtcbiAgICB9XG5cbiAgICAucC1jb2x1bW50b2dnbGVyLWl0ZW1zIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgYm9yZGVyOiAwIG5vbmU7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICAgICAgcGFkZGluZzogdmFyKC0tcC1jb2x1bW50b2dnbGVyLWxpc3QtcGFkZGluZyk7XG4gICAgICAgIGdhcDogdmFyKC0tcC1jb2x1bW50b2dnbGVyLWxpc3QtZ2FwKTtcbiAgICB9XG5cbiAgICAucC1jb2x1bW50b2dnbGVyLWl0ZW0sXG4gICAgLnAtY29sdW1udG9nZ2xlci1hbGwge1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgdGV4dC1hbGlnbjogc3RhcnQ7XG4gICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB9XG5cbiAgICAucC1jb2x1bW50b2dnbGVyLWl0ZW0gLnAtY2hrYm94LFxuICAgIC5wLWNvbHVtbnRvZ2dsZXItYWxsIC5wLWNoa2JveCB7XG4gICAgICAgIHBvc2l0aW9uOiBzdGF0aWM7XG4gICAgICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgfVxuXG4gICAgLnAtY29sdW1udG9nZ2xlci1pdGVtIGxhYmVsLFxuICAgIC5wLWNvbHVtbnRvZ2dsZXItYWxsIGxhYmVsIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGZsZXg6IDEgMSBhdXRvO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgfVxuXG4gICAgLnAtY29sdW1udG9nZ2xlci1pdGVtcyB7XG4gICAgICAgIC5wLWNvbHVtbnRvZ2dsZXItaXRlbSB7XG4gICAgICAgICAgICBnYXA6IHZhcigtLXAtY29sdW1udG9nZ2xlci1vcHRpb24tZ2FwKTtcbiAgICAgICAgICAgIHBhZGRpbmc6IHZhcigtLXAtY29sdW1udG9nZ2xlci1vcHRpb24tcGFkZGluZyk7XG4gICAgICAgICAgICBib3JkZXI6IDAgbm9uZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6IHZhcigtLXAtY29sdW1udG9nZ2xlci1vcHRpb24tY29sb3IpO1xuICAgICAgICAgICAgZm9udC1zaXplOiB2YXIoLS1wLWNvbHVtbnRvZ2dsZXItb3B0aW9uLWZvbnQtc2l6ZSk7XG4gICAgICAgICAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogdmFyKC0tcC1jb2x1bW50b2dnbGVyLW9wdGlvbi1ib3JkZXItcmFkaXVzKTtcbiAgICAgICAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgdmFyKC0tcC1jb2x1bW50b2dnbGVyLXRyYW5zaXRpb24tZHVyYXRpb24pLCBjb2xvciB2YXIoLS1wLWNvbHVtbnRvZ2dsZXItdHJhbnNpdGlvbi1kdXJhdGlvbik7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmhhcygucC1jaGtib3gtYm94LnAtc3RhdGUtZm9jdXMpIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1wLWNvbHVtbnRvZ2dsZXItb3B0aW9uLWZvY3VzLWJhY2tncm91bmQpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1wLWNvbHVtbnRvZ2dsZXItb3B0aW9uLWZvY3VzLWNvbG9yKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5wLWNvbHVtbnRvZ2dsZXItYWxsIHtcbiAgICAgICAgICAgIGdhcDogdmFyKC0tcC1jb2x1bW50b2dnbGVyLW9wdGlvbi1nYXApO1xuICAgICAgICAgICAgcGFkZGluZzogdmFyKC0tcC1jb2x1bW50b2dnbGVyLWhlYWRlci1wYWRkaW5nKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6IHZhcigtLXAtY29sdW1udG9nZ2xlci1oZWFkZXItY29sb3IpO1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IHZhcigtLXAtY29sdW1udG9nZ2xlci1oZWFkZXItZm9udC13ZWlnaHQpO1xuICAgICAgICAgICAgYm9yZGVyOiAwIG5vbmU7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgdmFyKC0tcC1jb2x1bW50b2dnbGVyLWhlYWRlci1ib3JkZXItY29sb3IpO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLyogY29sdW1uIHByaW9yaXRpZXM6IHByaW9yaXR5IG4gaXMgc2hvd24gZnJvbSAzMjBweCArIChuIC0gMSkgKiAxNjBweCBvbiAqL1xuQG1lZGlhIG9ubHkgYWxsIHtcbiAgICAucC1jb2x1bW50b2dnbGVyIC5wLWNvbHVtbnRvZ2dsZXItaXRlbS5wLWNvbHVtbi1wLTEsXG4gICAgLnAtY29sdW1udG9nZ2xlciAucC1jb2x1bW50b2dnbGVyLWl0ZW0ucC1jb2x1bW4tcC0yLFxuICAgIC5wLWNvbHVtbnRvZ2dsZXIgLnAtY29sdW1udG9nZ2xlci1pdGVtLnAtY29sdW1uLXAtMyxcbiAgICAucC1jb2x1bW50b2dnbGVyIC5wLWNvbHVtbnRvZ2dsZXItaXRlbS5wLWNvbHVtbi1wLTQsXG4gICAgLnAtY29sdW1udG9nZ2xlciAucC1jb2x1bW50b2dnbGVyLWl0ZW0ucC1jb2x1bW4tcC01LFxuICAgIC5wLWNvbHVtbnRvZ2dsZXIgLnAtY29sdW1udG9nZ2xlci1pdGVtLnAtY29sdW1uLXAtNiB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuXG4gICAgdGgucC1oaWRkZW4sXG4gICAgdGQucC1oaWRkZW4ge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbn1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMjBlbSkge1xuICAgIC5wLWNvbHVtbnRvZ2dsZXIgLnAtY29sdW1udG9nZ2xlci1pdGVtLnAtY29sdW1uLXAtMSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgfVxufVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAzMGVtKSB7XG4gICAgLnAtY29sdW1udG9nZ2xlciAucC1jb2x1bW50b2dnbGVyLWl0ZW0ucC1jb2x1bW4tcC0yIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICB9XG59XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgICAucC1jb2x1bW50b2dnbGVyIC5wLWNvbHVtbnRvZ2dsZXItaXRlbS5wLWNvbHVtbi1wLTMge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgIH1cbn1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNTBlbSkge1xuICAgIC5wLWNvbHVtbnRvZ2dsZXIgLnAtY29sdW1udG9nZ2xlci1pdGVtLnAtY29sdW1uLXAtNCB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgfVxufVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2MGVtKSB7XG4gICAgLnAtY29sdW1udG9nZ2xlciAucC1jb2x1bW50b2dnbGVyLWl0ZW0ucC1jb2x1bW4tcC01IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICB9XG59XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDcwZW0pIHtcbiAgICAucC1jb2x1bW50b2dnbGVyIC5wLWNvbHVtbnRvZ2dsZXItaXRlbS5wLWNvbHVtbi1wLTYge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgIH1cbn1cbiIsICIvKlxuICogQ29uZmlybVBvcHVwOiBwOmNvbmZpcm1Qb3B1cFxuICpcbiAqIE1hcmt1cDogLnAtY29uZmlybS1wb3B1cCA+IC5wLWNvbmZpcm0tcG9wdXAtY29udGVudCAoPiAucC1jb25maXJtLXBvcHVwLWljb24sIC5wLWNvbmZpcm0tcG9wdXAtbWVzc2FnZSksIC5wLWNvbmZpcm0tcG9wdXAtZm9vdGVyXG4gKiBUaGUgYXJyb3cgaXMgZHJhd24gd2l0aCA6OmJlZm9yZSAoYm9yZGVyKSBhbmQgOjphZnRlciAoYmFja2dyb3VuZCk7IC0tb3ZlcmxheUFycm93TGVmdCBpcyBzZXQgYnkgdGhlIFBGIEphdmFTY3JpcHQuXG4gKiBTdGF0ZXM6IHAtY29uZmlybS1wb3B1cC1mbGlwcGVkIChzaG93biBhYm92ZSB0aGUgdGFyZ2V0KVxuICovXG5cbi5wLWNvbmZpcm0tcG9wdXAge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBkaXNwbGF5OiBub25lO1xuICAgIG1hcmdpbi10b3A6IHZhcigtLXAtY29uZmlybXBvcHVwLWd1dHRlcik7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tcC1jb25maXJtcG9wdXAtYmFja2dyb3VuZCk7XG4gICAgY29sb3I6IHZhcigtLXAtY29uZmlybXBvcHVwLWNvbG9yKTtcbiAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1wLWNvbmZpcm1wb3B1cC1ib3JkZXItY29sb3IpO1xuICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXAtY29uZmlybXBvcHVwLWJvcmRlci1yYWRpdXMpO1xuICAgIGJveC1zaGFkb3c6IHZhcigtLXAtY29uZmlybXBvcHVwLXNoYWRvdyk7XG5cbiAgICAmLnAtY29uZmlybS1wb3B1cC1mbGlwcGVkIHtcbiAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogdmFyKC0tcC1jb25maXJtcG9wdXAtZ3V0dGVyKTtcbiAgICB9XG5cbiAgICAucC1jb25maXJtLXBvcHVwLWNvbnRlbnQge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICAgICAgY29sb3I6IGluaGVyaXQ7XG4gICAgICAgIGJvcmRlcjogMCBub25lO1xuICAgICAgICBnYXA6IHZhcigtLXAtY29uZmlybXBvcHVwLWNvbnRlbnQtZ2FwKTtcbiAgICAgICAgcGFkZGluZzogdmFyKC0tcC1jb25maXJtcG9wdXAtY29udGVudC1wYWRkaW5nKTtcbiAgICB9XG5cbiAgICAucC1jb25maXJtLXBvcHVwLWljb24ge1xuICAgICAgICBmbGV4LXNocmluazogMDtcbiAgICAgICAgZm9udC1zaXplOiB2YXIoLS1wLWNvbmZpcm1wb3B1cC1pY29uLXNpemUpO1xuICAgICAgICBjb2xvcjogdmFyKC0tcC1jb25maXJtcG9wdXAtaWNvbi1jb2xvcik7XG4gICAgfVxuXG4gICAgLnAtY29uZmlybS1wb3B1cC1tZXNzYWdlIHtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBjb2xvcjogdmFyKC0tcC1jb25maXJtcG9wdXAtbWVzc2FnZS1jb2xvcik7XG4gICAgICAgIGZvbnQtc2l6ZTogdmFyKC0tcC1jb25maXJtcG9wdXAtbWVzc2FnZS1mb250LXNpemUpO1xuICAgICAgICBmb250LXdlaWdodDogdmFyKC0tcC1jb25maXJtcG9wdXAtbWVzc2FnZS1mb250LXdlaWdodCk7XG4gICAgfVxuXG4gICAgLnAtY29uZmlybS1wb3B1cC1mb290ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICAgICAgY29sb3I6IGluaGVyaXQ7XG4gICAgICAgIGJvcmRlcjogMCBub25lO1xuICAgICAgICB0ZXh0LWFsaWduOiBlbmQ7XG4gICAgICAgIHBhZGRpbmc6IHZhcigtLXAtY29uZmlybXBvcHVwLWZvb3Rlci1wYWRkaW5nKTtcblxuICAgICAgICBidXR0b24ge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgbWFyZ2luLWlubGluZS1lbmQ6IHZhcigtLXAtY29uZmlybXBvcHVwLWZvb3Rlci1nYXApO1xuICAgICAgICAgICAgd2lkdGg6IGF1dG87XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyogYXJyb3cgKGdlb21ldHJ5IGxpa2UgUHJpbWVVSVg6IHRoZSBpbm5lciB0cmlhbmdsZSBpcyAycHggc21hbGxlciB0aGFuIHRoZSBndXR0ZXIpICovXG4gICAgJjo6YWZ0ZXIsXG4gICAgJjo6YmVmb3JlIHtcbiAgICAgICAgY29udGVudDogXCIgXCI7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgYm90dG9tOiAxMDAlO1xuICAgICAgICBsZWZ0OiBjYWxjKHZhcigtLW92ZXJsYXlBcnJvd0xlZnQsIDBweCkgKyB2YXIoLS1wLWNvbmZpcm1wb3B1cC1hcnJvdy1vZmZzZXQpKTtcbiAgICAgICAgd2lkdGg6IDA7XG4gICAgICAgIGhlaWdodDogMDtcbiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgfVxuXG4gICAgJjo6YWZ0ZXIge1xuICAgICAgICBib3JkZXItd2lkdGg6IGNhbGModmFyKC0tcC1jb25maXJtcG9wdXAtZ3V0dGVyKSAtIDJweCk7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiBjYWxjKC0xICogKHZhcigtLXAtY29uZmlybXBvcHVwLWd1dHRlcikgLSAycHgpKTtcbiAgICAgICAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogdmFyKC0tcC1jb25maXJtcG9wdXAtYmFja2dyb3VuZCk7XG4gICAgfVxuXG4gICAgJjo6YmVmb3JlIHtcbiAgICAgICAgYm9yZGVyLXdpZHRoOiB2YXIoLS1wLWNvbmZpcm1wb3B1cC1ndXR0ZXIpO1xuICAgICAgICBtYXJnaW4tbGVmdDogY2FsYygtMSAqIHZhcigtLXAtY29uZmlybXBvcHVwLWd1dHRlcikpO1xuICAgICAgICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICAgICAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICBib3JkZXItYm90dG9tLWNvbG9yOiB2YXIoLS1wLWNvbmZpcm1wb3B1cC1ib3JkZXItY29sb3IpO1xuICAgIH1cblxuICAgICYucC1jb25maXJtLXBvcHVwLWZsaXBwZWQge1xuICAgICAgICAmOjphZnRlcixcbiAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgIGJvdHRvbTogYXV0bztcbiAgICAgICAgICAgIHRvcDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b20tY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyLXRvcC1jb2xvcjogdmFyKC0tcC1jb25maXJtcG9wdXAtYmFja2dyb3VuZCk7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXItdG9wLWNvbG9yOiB2YXIoLS1wLWNvbmZpcm1wb3B1cC1ib3JkZXItY29sb3IpO1xuICAgICAgICB9XG4gICAgfVxufVxuIiwgIi8qXG4gKiBDb250ZXh0TWVudTogcDpjb250ZXh0TWVudVxuICpcbiAqIFJlbmRlcnMgdGhlIHRpZXJlZCAucC1tZW51IG1hcmt1cCAoc3R5bGVkIGJ5IG1lbnUvbWVudS5iYXNlLmNzcykgYXMgYW4gb3ZlcmxheTsgdGhpcyBmaWxlIG1hcHMgdGhlIGNvbnRleHRtZW51IHRva2Vucy5cbiAqL1xuXG4vKiBzZXQgYnkgdGhlIGNvbXBvbmVudCBvbiB0aGUgdGFyZ2V0OiBkaXNhYmxlcyB0aGUgbW9iaWxlIGJyb3dzZXIgY29udGV4dCBtZW51ICovXG4ucC10b3VjaC1zZWxlY3Rpb24tZGlzYWJsZWQge1xuICAgIC13ZWJraXQtdG91Y2gtY2FsbG91dDogbm9uZTtcbiAgICAtd2Via2l0LXVzZXItc2VsZWN0OiBub25lO1xuICAgIHVzZXItc2VsZWN0OiBub25lO1xuICAgIC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogdHJhbnNwYXJlbnQ7XG59XG5cbi5wLW1lbnUucC1jb250ZXh0bWVudSB7XG4gICAgLS1fYmc6IHZhcigtLXAtY29udGV4dG1lbnUtYmFja2dyb3VuZCk7XG4gICAgLS1fYm9yZGVyLWNvbG9yOiB2YXIoLS1wLWNvbnRleHRtZW51LWJvcmRlci1jb2xvcik7XG4gICAgLS1fYm9yZGVyLXJhZGl1czogdmFyKC0tcC1jb250ZXh0bWVudS1ib3JkZXItcmFkaXVzKTtcbiAgICAtLV9jb2xvcjogdmFyKC0tcC1jb250ZXh0bWVudS1jb2xvcik7XG4gICAgLS1fc2hhZG93OiB2YXIoLS1wLWNvbnRleHRtZW51LXNoYWRvdyk7XG4gICAgLS1fbGlzdC1wYWRkaW5nOiB2YXIoLS1wLWNvbnRleHRtZW51LWxpc3QtcGFkZGluZyk7XG4gICAgLS1fbGlzdC1nYXA6IHZhcigtLXAtY29udGV4dG1lbnUtbGlzdC1nYXApO1xuICAgIC0tX3RyYW5zaXRpb24tZHVyYXRpb246IHZhcigtLXAtY29udGV4dG1lbnUtdHJhbnNpdGlvbi1kdXJhdGlvbik7XG4gICAgLS1faXRlbS1ib3JkZXItcmFkaXVzOiB2YXIoLS1wLWNvbnRleHRtZW51LWl0ZW0tYm9yZGVyLXJhZGl1cyk7XG4gICAgLS1faXRlbS1wYWRkaW5nOiB2YXIoLS1wLWNvbnRleHRtZW51LWl0ZW0tcGFkZGluZyk7XG4gICAgLS1faXRlbS1nYXA6IHZhcigtLXAtY29udGV4dG1lbnUtaXRlbS1nYXApO1xuICAgIC0tX2l0ZW0tY29sb3I6IHZhcigtLXAtY29udGV4dG1lbnUtaXRlbS1jb2xvcik7XG4gICAgLS1faXRlbS1mb2N1cy1iYWNrZ3JvdW5kOiB2YXIoLS1wLWNvbnRleHRtZW51LWl0ZW0tZm9jdXMtYmFja2dyb3VuZCk7XG4gICAgLS1faXRlbS1mb2N1cy1jb2xvcjogdmFyKC0tcC1jb250ZXh0bWVudS1pdGVtLWZvY3VzLWNvbG9yKTtcbiAgICAtLV9pdGVtLWFjdGl2ZS1iYWNrZ3JvdW5kOiB2YXIoLS1wLWNvbnRleHRtZW51LWl0ZW0tYWN0aXZlLWJhY2tncm91bmQpO1xuICAgIC0tX2l0ZW0tYWN0aXZlLWNvbG9yOiB2YXIoLS1wLWNvbnRleHRtZW51LWl0ZW0tYWN0aXZlLWNvbG9yKTtcbiAgICAtLV9pdGVtLWljb24tY29sb3I6IHZhcigtLXAtY29udGV4dG1lbnUtaXRlbS1pY29uLWNvbG9yKTtcbiAgICAtLV9pdGVtLWljb24tZm9jdXMtY29sb3I6IHZhcigtLXAtY29udGV4dG1lbnUtaXRlbS1pY29uLWZvY3VzLWNvbG9yKTtcbiAgICAtLV9pdGVtLWljb24tYWN0aXZlLWNvbG9yOiB2YXIoLS1wLWNvbnRleHRtZW51LWl0ZW0taWNvbi1hY3RpdmUtY29sb3IpO1xuICAgIC0tX2l0ZW0taWNvbi1zaXplOiB2YXIoLS1wLWNvbnRleHRtZW51LWl0ZW0taWNvbi1zaXplKTtcbiAgICAtLV9pdGVtLWxhYmVsLWZvbnQtc2l6ZTogdmFyKC0tcC1jb250ZXh0bWVudS1pdGVtLWxhYmVsLWZvbnQtc2l6ZSk7XG4gICAgLS1faXRlbS1sYWJlbC1mb250LXdlaWdodDogdmFyKC0tcC1jb250ZXh0bWVudS1pdGVtLWxhYmVsLWZvbnQtd2VpZ2h0KTtcbiAgICAtLV9zdWJtZW51LWljb24tY29sb3I6IHZhcigtLXAtY29udGV4dG1lbnUtc3VibWVudS1pY29uLWNvbG9yKTtcbiAgICAtLV9zdWJtZW51LWljb24tZm9jdXMtY29sb3I6IHZhcigtLXAtY29udGV4dG1lbnUtc3VibWVudS1pY29uLWZvY3VzLWNvbG9yKTtcbiAgICAtLV9zdWJtZW51LWljb24tc2l6ZTogdmFyKC0tcC1jb250ZXh0bWVudS1zdWJtZW51LWljb24tc2l6ZSk7XG4gICAgLS1fc3VibWVudS1pY29uLWFjdGl2ZS1jb2xvcjogdmFyKC0tcC1jb250ZXh0bWVudS1zdWJtZW51LWljb24tYWN0aXZlLWNvbG9yKTtcbiAgICAtLV9zZXBhcmF0b3ItYm9yZGVyLWNvbG9yOiB2YXIoLS1wLWNvbnRleHRtZW51LXNlcGFyYXRvci1ib3JkZXItY29sb3IpO1xuICAgIC0tX3N1Ym1lbnUtbGFiZWwtYmFja2dyb3VuZDogdmFyKC0tcC1jb250ZXh0bWVudS1zdWJtZW51LWxhYmVsLWJhY2tncm91bmQpO1xuICAgIC0tX3N1Ym1lbnUtbGFiZWwtY29sb3I6IHZhcigtLXAtY29udGV4dG1lbnUtc3VibWVudS1sYWJlbC1jb2xvcik7XG4gICAgLS1fc3VibWVudS1sYWJlbC1mb250LXNpemU6IHZhcigtLXAtY29udGV4dG1lbnUtc3VibWVudS1sYWJlbC1mb250LXNpemUpO1xuICAgIC0tX3N1Ym1lbnUtbGFiZWwtZm9udC13ZWlnaHQ6IHZhcigtLXAtY29udGV4dG1lbnUtc3VibWVudS1sYWJlbC1mb250LXdlaWdodCk7XG4gICAgLS1fc3VibWVudS1sYWJlbC1wYWRkaW5nOiB2YXIoLS1wLWNvbnRleHRtZW51LXN1Ym1lbnUtbGFiZWwtcGFkZGluZyk7XG4gICAgLS1fc3VibWVudS1iYWNrZ3JvdW5kOiB2YXIoLS1wLWNvbnRleHRtZW51LWJhY2tncm91bmQpO1xuICAgIC0tX3N1Ym1lbnUtYm9yZGVyLWNvbG9yOiB2YXIoLS1wLWNvbnRleHRtZW51LWJvcmRlci1jb2xvcik7XG4gICAgLS1fc3VibWVudS1ib3JkZXItcmFkaXVzOiB2YXIoLS1wLWNvbnRleHRtZW51LWJvcmRlci1yYWRpdXMpO1xuICAgIC0tX3N1Ym1lbnUtcGFkZGluZzogdmFyKC0tcC1jb250ZXh0bWVudS1saXN0LXBhZGRpbmcpO1xuICAgIC0tX3N1Ym1lbnUtc2hhZG93OiB2YXIoLS1wLWNvbnRleHRtZW51LXNoYWRvdyk7XG59XG4iLCAiLypcbiAqIERhc2hib2FyZDogcDpkYXNoYm9hcmQgKGxlZ2FjeSBjb2x1bW5zIGFuZCByZXNwb25zaXZlIG1vZGUpOyB0aGUgcGFuZWxzIHRoZW1zZWx2ZXMgYXJlIHN0eWxlZCBieSBwYW5lbC5jc3MuXG4gKlxuICogRHJhZyBzdGF0ZXM6IC5wLXNvcnRhYmxlLXBsYWNlaG9sZGVyIChsZWdhY3ksIHNvcnRhYmxlKSwgLnAtc3RhdGUtZGlzYWJsZWQgKGRpc2FibGVkIGRhc2hib2FyZCkuIFRoZSBkcm9wIHRhcmdldHMgb2YgdGhlXG4gKiByZXNwb25zaXZlIG1vZGUgZ2V0IC5wLWRyb3BwYWJsZS1hY3RpdmUgLyAucC1kcm9wcGFibGUtaG92ZXIgKHN0eWxlZCBieSBkcmFnZHJvcC5jc3MpIGFuZCwgYXMgaG9va3MgZm9yIGFwcGxpY2F0aW9ucyxcbiAqIC5wLWRhc2hib2FyZC1hY3RpdmUgLyAucC1kYXNoYm9hcmQtaG92ZXIuXG4gKi9cblxuLnAtZGFzaGJvYXJkLWNvbHVtbiB7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgLyogZHJvcCBhcmVhIGJlbG93IHRoZSBsYXN0IHBhbmVsICovXG4gICAgcGFkZGluZy1ib3R0b206IDEwMHB4O1xufVxuXG4ucC1kYXNoYm9hcmQtY29sdW1uIC5wLXBhbmVsLXRpdGxlYmFyLFxuLnAtZGFzaGJvYXJkLXBhbmVsIC5wLXBhbmVsLXRpdGxlYmFyIHtcbiAgICBjdXJzb3I6IG1vdmU7XG59XG5cbi5wLWRhc2hib2FyZCB7XG4gICAgJjo6YWZ0ZXIge1xuICAgICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgICBkaXNwbGF5OiB0YWJsZTtcbiAgICAgICAgY2xlYXI6IGJvdGg7XG4gICAgfVxuXG4gICAgLnAtZGFzaGJvYXJkLWNvbHVtbiB7XG4gICAgICAgIHBhZGRpbmctaW5saW5lLWVuZDogdmFyKC0tcC1kYXNoYm9hcmQtZ2FwKTtcblxuICAgICAgICA+IC5wLXBhbmVsLFxuICAgICAgICA+IC5wLXNvcnRhYmxlLXBsYWNlaG9sZGVyIHtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IHZhcigtLXAtZGFzaGJvYXJkLWdhcCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLnAtc3RhdGUtZGlzYWJsZWQgLnAtcGFuZWwtdGl0bGViYXIge1xuICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG4gICAgfVxuXG4gICAgLyogZHJvcCBwbGFjZWhvbGRlciAobGVnYWN5KSAqL1xuICAgIC5wLXNvcnRhYmxlLXBsYWNlaG9sZGVyIHtcbiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tcC1kYXNoYm9hcmQtcGxhY2Vob2xkZXItYmFja2dyb3VuZCk7XG4gICAgICAgIGJvcmRlcjogMXB4IGRhc2hlZCB2YXIoLS1wLWRhc2hib2FyZC1wbGFjZWhvbGRlci1ib3JkZXItY29sb3IpO1xuICAgICAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1wLWRhc2hib2FyZC1wbGFjZWhvbGRlci1ib3JkZXItcmFkaXVzKTtcbiAgICB9XG59XG4iLCAiLypcbiAqIERhdGFHcmlkOiBwOmRhdGFHcmlkXG4gKlxuICogTm8gb3duIFByaW1lVUlYIGNvbXBvbmVudDogc3R5bGVkIHdpdGggdGhlIGRhdGF2aWV3IHRva2VucyAoKyBQcmltZUZhY2VzIGRhdGF2aWV3IHRva2VucykuXG4gKi9cbi5wLWRhdGFncmlkIHtcbiAgICAucC1kYXRhZ3JpZC1oZWFkZXIge1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGJhY2tncm91bmQ6IHZhcigtLXAtZGF0YXZpZXctaGVhZGVyLWJhY2tncm91bmQpO1xuICAgICAgICBjb2xvcjogdmFyKC0tcC1kYXRhdmlldy1oZWFkZXItY29sb3IpO1xuICAgICAgICBwYWRkaW5nOiB2YXIoLS1wLWRhdGF2aWV3LWhlYWRlci1wYWRkaW5nKTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IHZhcigtLXAtZGF0YXZpZXctaGVhZGVyLWZvbnQtd2VpZ2h0KTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tcC1kYXRhdmlldy1oZWFkZXItYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgYm9yZGVyLXdpZHRoOiB2YXIoLS1wLWRhdGF2aWV3LWhlYWRlci1ib3JkZXItd2lkdGgpO1xuICAgICAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1wLWRhdGF2aWV3LWhlYWRlci1ib3JkZXItcmFkaXVzKTtcbiAgICB9XG5cbiAgICAucC1kYXRhZ3JpZC1mb290ZXIge1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGJhY2tncm91bmQ6IHZhcigtLXAtZGF0YXZpZXctZm9vdGVyLWJhY2tncm91bmQpO1xuICAgICAgICBjb2xvcjogdmFyKC0tcC1kYXRhdmlldy1mb290ZXItY29sb3IpO1xuICAgICAgICBwYWRkaW5nOiB2YXIoLS1wLWRhdGF2aWV3LWZvb3Rlci1wYWRkaW5nKTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IHZhcigtLXAtZGF0YXZpZXctZm9vdGVyLWZvbnQtd2VpZ2h0KTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tcC1kYXRhdmlldy1mb290ZXItYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgYm9yZGVyLXdpZHRoOiB2YXIoLS1wLWRhdGF2aWV3LWZvb3Rlci1ib3JkZXItd2lkdGgpO1xuICAgICAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1wLWRhdGF2aWV3LWZvb3Rlci1ib3JkZXItcmFkaXVzKTtcbiAgICB9XG5cbiAgICAucC1kYXRhZ3JpZC1jb250ZW50IHtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tcC1kYXRhdmlldy1jb250ZW50LWJvcmRlci1jb2xvcik7XG4gICAgICAgIGJvcmRlci13aWR0aDogdmFyKC0tcC1kYXRhdmlldy1jb250ZW50LWJvcmRlci13aWR0aCk7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXAtZGF0YXZpZXctY29udGVudC1ib3JkZXItcmFkaXVzKTtcbiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tcC1kYXRhdmlldy1jb250ZW50LWJhY2tncm91bmQpO1xuICAgICAgICBjb2xvcjogdmFyKC0tcC1kYXRhdmlldy1jb250ZW50LWNvbG9yKTtcbiAgICAgICAgcGFkZGluZzogdmFyKC0tcC1kYXRhdmlldy1jb250ZW50LXBhZGRpbmcpO1xuXG4gICAgICAgICYucC1kYXRhZ3JpZC1jb250ZW50LWVtcHR5IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IHZhcigtLXAtZGF0YXZpZXctZW1wdHktbWVzc2FnZS1wYWRkaW5nKTtcbiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1wLWRhdGF2aWV3LWVtcHR5LW1lc3NhZ2UtY29sb3IpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLnAtcGFnaW5hdG9yIHtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBwYWRkaW5nOiB2YXIoLS1wLXBhZ2luYXRvci1wYWRkaW5nKTtcblxuICAgICAgICAmLnAtcGFnaW5hdG9yLXRvcCB7XG4gICAgICAgICAgICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1wLWRhdGF2aWV3LXBhZ2luYXRvci10b3AtYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgICAgIGJvcmRlci13aWR0aDogdmFyKC0tcC1kYXRhdmlldy1wYWdpbmF0b3ItdG9wLWJvcmRlci13aWR0aCk7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi5wLXBhZ2luYXRvci1ib3R0b20ge1xuICAgICAgICAgICAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tcC1kYXRhdmlldy1wYWdpbmF0b3ItYm90dG9tLWJvcmRlci1jb2xvcik7XG4gICAgICAgICAgICBib3JkZXItd2lkdGg6IHZhcigtLXAtZGF0YXZpZXctcGFnaW5hdG9yLWJvdHRvbS1ib3JkZXItd2lkdGgpO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLnAtZGF0YWdyaWQtZGF0YSB7XG4gICAgd2lkdGg6IDEwMCU7XG59XG5cbi5wLWRhdGFncmlkLWNvbHVtbiB7XG4gICAgcGFkZGluZzogdmFyKC0tcC1kYXRhdmlldy1ncmlkLWNvbHVtbi1wYWRkaW5nKTtcbn1cbiIsICIvKlxuICogRGF0YUxpc3Q6IHA6ZGF0YUxpc3QgKHVub3JkZXJlZCwgb3JkZXJlZCBhbmQgZGVmaW5pdGlvbiBsaXN0KVxuICpcbiAqIE5vIG93biBQcmltZVVJWCBjb21wb25lbnQ6IHN0eWxlZCB3aXRoIHRoZSBkYXRhdmlldyB0b2tlbnMgKCsgUHJpbWVGYWNlcyBkYXRhdmlldyB0b2tlbnMpLlxuICogU3VwcG9ydGVkIGNsYXNzZXM6IHAtZGF0YWxpc3Qtbm9idWxsZXRzIChpdGVtVHlwZT1cIm5vbmVcIilcbiAqL1xuLnAtZGF0YWxpc3Qge1xuICAgIC5wLWRhdGFsaXN0LWhlYWRlciB7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tcC1kYXRhdmlldy1oZWFkZXItYmFja2dyb3VuZCk7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1wLWRhdGF2aWV3LWhlYWRlci1jb2xvcik7XG4gICAgICAgIHBhZGRpbmc6IHZhcigtLXAtZGF0YXZpZXctaGVhZGVyLXBhZGRpbmcpO1xuICAgICAgICBmb250LXdlaWdodDogdmFyKC0tcC1kYXRhdmlldy1oZWFkZXItZm9udC13ZWlnaHQpO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1wLWRhdGF2aWV3LWhlYWRlci1ib3JkZXItY29sb3IpO1xuICAgICAgICBib3JkZXItd2lkdGg6IHZhcigtLXAtZGF0YXZpZXctaGVhZGVyLWJvcmRlci13aWR0aCk7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXAtZGF0YXZpZXctaGVhZGVyLWJvcmRlci1yYWRpdXMpO1xuICAgIH1cblxuICAgIC5wLWRhdGFsaXN0LWZvb3RlciB7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tcC1kYXRhdmlldy1mb290ZXItYmFja2dyb3VuZCk7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1wLWRhdGF2aWV3LWZvb3Rlci1jb2xvcik7XG4gICAgICAgIHBhZGRpbmc6IHZhcigtLXAtZGF0YXZpZXctZm9vdGVyLXBhZGRpbmcpO1xuICAgICAgICBmb250LXdlaWdodDogdmFyKC0tcC1kYXRhdmlldy1mb290ZXItZm9udC13ZWlnaHQpO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1wLWRhdGF2aWV3LWZvb3Rlci1ib3JkZXItY29sb3IpO1xuICAgICAgICBib3JkZXItd2lkdGg6IHZhcigtLXAtZGF0YXZpZXctZm9vdGVyLWJvcmRlci13aWR0aCk7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXAtZGF0YXZpZXctZm9vdGVyLWJvcmRlci1yYWRpdXMpO1xuICAgIH1cblxuICAgIC5wLWRhdGFsaXN0LWNvbnRlbnQge1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1wLWRhdGF2aWV3LWNvbnRlbnQtYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgYm9yZGVyLXdpZHRoOiB2YXIoLS1wLWRhdGF2aWV3LWNvbnRlbnQtYm9yZGVyLXdpZHRoKTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogdmFyKC0tcC1kYXRhdmlldy1jb250ZW50LWJvcmRlci1yYWRpdXMpO1xuICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1wLWRhdGF2aWV3LWNvbnRlbnQtYmFja2dyb3VuZCk7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1wLWRhdGF2aWV3LWNvbnRlbnQtY29sb3IpO1xuICAgICAgICBwYWRkaW5nOiB2YXIoLS1wLWRhdGF2aWV3LWNvbnRlbnQtcGFkZGluZyk7XG4gICAgfVxuXG4gICAgLnAtZGF0YWxpc3Qtbm9idWxsZXRzIHtcbiAgICAgICAgbGlzdC1zdHlsZS10eXBlOiBub25lO1xuICAgIH1cblxuICAgIC5wLWRhdGFsaXN0LWVtcHR5LW1lc3NhZ2Uge1xuICAgICAgICBwYWRkaW5nOiB2YXIoLS1wLWRhdGF2aWV3LWVtcHR5LW1lc3NhZ2UtcGFkZGluZyk7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1wLWRhdGF2aWV3LWVtcHR5LW1lc3NhZ2UtY29sb3IpO1xuICAgIH1cblxuICAgIC5wLXBhZ2luYXRvciB7XG4gICAgICAgIHBhZGRpbmc6IHZhcigtLXAtcGFnaW5hdG9yLXBhZGRpbmcpO1xuXG4gICAgICAgICYucC1wYWdpbmF0b3ItdG9wIHtcbiAgICAgICAgICAgIGJvcmRlci1zdHlsZTogc29saWQ7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IHZhcigtLXAtZGF0YXZpZXctcGFnaW5hdG9yLXRvcC1ib3JkZXItY29sb3IpO1xuICAgICAgICAgICAgYm9yZGVyLXdpZHRoOiB2YXIoLS1wLWRhdGF2aWV3LXBhZ2luYXRvci10b3AtYm9yZGVyLXdpZHRoKTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLnAtcGFnaW5hdG9yLWJvdHRvbSB7XG4gICAgICAgICAgICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1wLWRhdGF2aWV3LXBhZ2luYXRvci1ib3R0b20tYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgICAgIGJvcmRlci13aWR0aDogdmFyKC0tcC1kYXRhdmlldy1wYWdpbmF0b3ItYm90dG9tLWJvcmRlci13aWR0aCk7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICB9XG4gICAgfVxufVxuIiwgIi8qXG4gKiBEYXRhU2Nyb2xsZXI6IHA6ZGF0YVNjcm9sbGVyIChkb2N1bWVudCBhbmQgaW5saW5lIG1vZGUsIGxvYWRlciBmYWNldCwgdmlydHVhbCBzY3JvbGwpXG4gKlxuICogTm8gb3duIFByaW1lVUlYIGNvbXBvbmVudDogc3R5bGVkIHdpdGggdGhlIGRhdGF2aWV3IHRva2VucyAoKyBQcmltZUZhY2VzIGRhdGF2aWV3IHRva2VucykuXG4gKiBUaGUgZGVmYXVsdCBsb2FkaW5nIGluZGljYXRvciAoZGl2LnAtZGF0YXNjcm9sbGVyLWxvYWRpbmctZGVmYXVsdC5wLWljb24ucC1sb2FkaW5nLWljb24ucC1kYXRhc2Nyb2xsZXItbG9hZGluZy1pY29uXG4gKiB3aXRob3V0IGxvYWRpbmcgZmFjZXQpIGlzIHRoZSAtLXAtZGF0YXZpZXctbG9hZGluZy1pY29uIHNwaW5uZXIgKHAtc3BpbiBrZXlmcmFtZXMgb2YgYWpheHN0YXR1cy9hamF4c3RhdHVzLmNzcykuXG4gKi9cblxuLnAtZGF0YXNjcm9sbGVyIHtcbiAgICAucC1kYXRhc2Nyb2xsZXItaGVhZGVyIHtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1wLWRhdGF2aWV3LWhlYWRlci1iYWNrZ3JvdW5kKTtcbiAgICAgICAgY29sb3I6IHZhcigtLXAtZGF0YXZpZXctaGVhZGVyLWNvbG9yKTtcbiAgICAgICAgcGFkZGluZzogdmFyKC0tcC1kYXRhdmlldy1oZWFkZXItcGFkZGluZyk7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1wLWRhdGF2aWV3LWhlYWRlci1mb250LXdlaWdodCk7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLXAtZGF0YXZpZXctaGVhZGVyLWJvcmRlci1jb2xvcik7XG4gICAgICAgIGJvcmRlci13aWR0aDogdmFyKC0tcC1kYXRhdmlldy1oZWFkZXItYm9yZGVyLXdpZHRoKTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogdmFyKC0tcC1kYXRhdmlldy1oZWFkZXItYm9yZGVyLXJhZGl1cyk7XG4gICAgfVxuXG4gICAgLnAtZGF0YXNjcm9sbGVyLWNvbnRlbnQge1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1wLWRhdGF2aWV3LWNvbnRlbnQtYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgYm9yZGVyLXdpZHRoOiB2YXIoLS1wLWRhdGF2aWV3LWNvbnRlbnQtYm9yZGVyLXdpZHRoKTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogdmFyKC0tcC1kYXRhdmlldy1jb250ZW50LWJvcmRlci1yYWRpdXMpO1xuICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1wLWRhdGF2aWV3LWNvbnRlbnQtYmFja2dyb3VuZCk7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1wLWRhdGF2aWV3LWNvbnRlbnQtY29sb3IpO1xuICAgICAgICBwYWRkaW5nOiB2YXIoLS1wLWRhdGF2aWV3LWNvbnRlbnQtcGFkZGluZyk7XG4gICAgfVxuXG4gICAgLnAtZGF0YXNjcm9sbGVyLWxpc3Qge1xuICAgICAgICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICB9XG5cbiAgICAucC1kYXRhc2Nyb2xsZXItaXRlbSB7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLXAtZGF0YXZpZXctaXRlbS1ib3JkZXItY29sb3IpO1xuICAgICAgICBib3JkZXItd2lkdGg6IDAgMCAxcHggMDtcblxuICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbS13aWR0aDogMDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qIGxvYWRlZCBpdGVtcyBmYWRlIGFuZCBzbGlkZSBpbiAoYmFzZS9jb21tb24uY3NzKTsgbm90IHdpdGggdmlydHVhbCBzY3JvbGxpbmcsIGl0IHJlcGxhY2VzIHRoZSBpdGVtcyB3aGlsZSBzY3JvbGxpbmcgKi9cbiAgICAucC1kYXRhc2Nyb2xsZXItY29udGVudCA+IC5wLWRhdGFzY3JvbGxlci1saXN0ID4gLnAtZGF0YXNjcm9sbGVyLWl0ZW0ge1xuICAgICAgICAtLV9lbnRlci1vZmZzZXQ6IHZhcigtLXAtZGF0YXZpZXctY29udGVudC1lbnRlci1vZmZzZXQpO1xuICAgICAgICBhbmltYXRpb246IHAtZW50ZXIgdmFyKC0tcC1kYXRhdmlldy1jb250ZW50LWVudGVyLWR1cmF0aW9uKSB2YXIoLS1wLXRyYW5zaXRpb24tZWFzaW5nLWVudGVyKTtcbiAgICB9XG5cbiAgICAucC1kYXRhc2Nyb2xsZXItdmlydHVhbHNjcm9sbC13cmFwcGVyIHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgIC5wLWRhdGFzY3JvbGxlci1saXN0IHtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiBsb2FkZXIgZmFjZXQgKGUuZy4gYSBcIm1vcmVcIiBidXR0b24pICovXG4gICAgLnAtZGF0YXNjcm9sbGVyLWxvYWRlcjpub3QoOmVtcHR5KSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBwYWRkaW5nOiB2YXIoLS1wLWRhdGF2aWV3LWxvYWRlci1wYWRkaW5nKTtcbiAgICB9XG5cbiAgICAucC1kYXRhc2Nyb2xsZXItbG9hZGluZy1pY29uIHtcbiAgICAgICAgLS1faWNvbjogdmFyKC0tcC1kYXRhdmlldy1sb2FkaW5nLWljb24pO1xuICAgIH1cblxuICAgIC5wLWRhdGFzY3JvbGxlci1sb2FkaW5nIC5wLWRhdGFzY3JvbGxlci1sb2FkaW5nLWRlZmF1bHQge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgd2lkdGg6IHZhcigtLXAtZGF0YXZpZXctbG9hZGluZy1pY29uLXNpemUpO1xuICAgICAgICBoZWlnaHQ6IHZhcigtLXAtZGF0YXZpZXctbG9hZGluZy1pY29uLXNpemUpO1xuICAgICAgICBtYXJnaW46IDAgYXV0bztcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgZm9udC1zaXplOiB2YXIoLS1wLWRhdGF2aWV3LWxvYWRpbmctaWNvbi1zaXplKTtcbiAgICAgICAgY29sb3I6IHZhcigtLXAtZGF0YXZpZXctbG9hZGluZy1pY29uLWNvbG9yKTtcbiAgICAgICAgYW5pbWF0aW9uOiBwLXNwaW4gdmFyKC0tcC1kYXRhdmlldy1sb2FkaW5nLWljb24tYW5pbWF0aW9uLWR1cmF0aW9uKSBsaW5lYXIgaW5maW5pdGU7XG4gICAgfVxufVxuXG4ucC1kYXRhc2Nyb2xsZXItaW5saW5lIC5wLWRhdGFzY3JvbGxlci1jb250ZW50IHtcbiAgICBvdmVyZmxvdzogYXV0bztcbn1cbiIsICIvKlxuICogRGF0YVRhYmxlOiBwOmRhdGFUYWJsZSAoKyBwOnN1YlRhYmxlLCBwOmhlYWRlclJvdywgcDpzdW1tYXJ5Um93LCBwOnJvd1RvZ2dsZXIsIHA6cm93RWRpdG9yLCBwOmNlbGxFZGl0b3IpXG4gKiBUaGUgcDpjb2x1bW5Ub2dnbGVyIG92ZXJsYXkgbGl2ZXMgaW4gY29sdW1udG9nZ2xlci5jc3MuXG4gKlxuICogU3VwcG9ydGVkIGNsYXNzZXM6IHAtZGF0YXRhYmxlLXN0cmlwZWQsIHAtZGF0YXRhYmxlLWdyaWRsaW5lcywgcC1kYXRhdGFibGUtc20sIHAtZGF0YXRhYmxlLWxnLFxuICogICAgICAgICAgICAgICAgICAgIHAtZGF0YXRhYmxlLXN0aWNreSwgcC1kYXRhdGFibGUtcmVmbG93LCBwLWRhdGF0YWJsZS1zY3JvbGxhYmxlLCBwLWRhdGF0YWJsZS1yZXNpemFibGUsXG4gKiAgICAgICAgICAgICAgICAgICAgcC1kYXRhdGFibGUtZnJvemVuY29sdW1uLCBwLWRhdGF0YWJsZS1ydGwsIHAtZmlsdGVyLXRvZ2dsZWFibGUgKGZpbHRlcnMgaGlkZGVuIHVudGlsIHRvZ2dsZUZpbHRlcigpKVxuICogU3RhdGVzIChzZXQgYnkgdGhlIGNvbXBvbmVudCk6IHRoLnAtc3RhdGUtaG92ZXIgLyBwLXN0YXRlLWFjdGl2ZSAoc29ydGVkKSAvIHAtc3RhdGUtZm9jdXMsXG4gKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHIucC1zdGF0ZS1ob3ZlciAvIHAtc3RhdGUtaGlnaGxpZ2h0IChzZWxlY3RlZCksIHRyLnAtZGF0YXRhYmxlLW9kZCAoc3RyaXBlZCksXG4gKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHIucC1yb3ctZWRpdGluZywgdGQucC1jZWxsLWVkaXRpbmdcbiAqL1xuLnAtZGF0YXRhYmxlIHtcbiAgICAvKiBoZWFkZXIgLyBmb290ZXIgZmFjZXRzICovXG4gICAgLnAtZGF0YXRhYmxlLWhlYWRlciB7XG4gICAgICAgIGJhY2tncm91bmQ6IHZhcigtLXAtZGF0YXRhYmxlLWhlYWRlci1iYWNrZ3JvdW5kKTtcbiAgICAgICAgY29sb3I6IHZhcigtLXAtZGF0YXRhYmxlLWhlYWRlci1jb2xvcik7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLXAtZGF0YXRhYmxlLWhlYWRlci1ib3JkZXItY29sb3IpO1xuICAgICAgICBib3JkZXItd2lkdGg6IHZhcigtLXAtZGF0YXRhYmxlLWhlYWRlci1ib3JkZXItd2lkdGgpO1xuICAgICAgICBwYWRkaW5nOiB2YXIoLS1wLWRhdGF0YWJsZS1oZWFkZXItcGFkZGluZyk7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1wLWRhdGF0YWJsZS1oZWFkZXItZm9udC13ZWlnaHQpO1xuICAgICAgICB0ZXh0LWFsaWduOiBzdGFydDtcbiAgICAgICAgYm9yZGVyLXN0YXJ0LXN0YXJ0LXJhZGl1czogdmFyKC0tcC1jb250ZW50LWJvcmRlci1yYWRpdXMpO1xuICAgICAgICBib3JkZXItc3RhcnQtZW5kLXJhZGl1czogdmFyKC0tcC1jb250ZW50LWJvcmRlci1yYWRpdXMpO1xuICAgIH1cblxuICAgIC5wLWRhdGF0YWJsZS1mb290ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1wLWRhdGF0YWJsZS1mb290ZXItYmFja2dyb3VuZCk7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1wLWRhdGF0YWJsZS1mb290ZXItY29sb3IpO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1wLWRhdGF0YWJsZS1mb290ZXItYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgYm9yZGVyLXdpZHRoOiB2YXIoLS1wLWRhdGF0YWJsZS1mb290ZXItYm9yZGVyLXdpZHRoKTtcbiAgICAgICAgcGFkZGluZzogdmFyKC0tcC1kYXRhdGFibGUtZm9vdGVyLXBhZGRpbmcpO1xuICAgICAgICBmb250LXdlaWdodDogdmFyKC0tcC1kYXRhdGFibGUtZm9vdGVyLWZvbnQtd2VpZ2h0KTtcbiAgICAgICAgdGV4dC1hbGlnbjogc3RhcnQ7XG4gICAgICAgIGJvcmRlci1lbmQtc3RhcnQtcmFkaXVzOiB2YXIoLS1wLWNvbnRlbnQtYm9yZGVyLXJhZGl1cyk7XG4gICAgICAgIGJvcmRlci1lbmQtZW5kLXJhZGl1czogdmFyKC0tcC1jb250ZW50LWJvcmRlci1yYWRpdXMpO1xuICAgIH1cblxuICAgIC5wLXBhZ2luYXRvciB7XG4gICAgICAgIHBhZGRpbmc6IHZhcigtLXAtcGFnaW5hdG9yLXBhZGRpbmcpO1xuXG4gICAgICAgICYucC1wYWdpbmF0b3ItdG9wIHtcbiAgICAgICAgICAgIGJvcmRlci1zdHlsZTogc29saWQ7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IHZhcigtLXAtZGF0YXRhYmxlLXBhZ2luYXRvci10b3AtYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgICAgIGJvcmRlci13aWR0aDogdmFyKC0tcC1kYXRhdGFibGUtcGFnaW5hdG9yLXRvcC1ib3JkZXItd2lkdGgpO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYucC1wYWdpbmF0b3ItYm90dG9tIHtcbiAgICAgICAgICAgIGJvcmRlci1zdHlsZTogc29saWQ7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IHZhcigtLXAtZGF0YXRhYmxlLXBhZ2luYXRvci1ib3R0b20tYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgICAgIGJvcmRlci13aWR0aDogdmFyKC0tcC1kYXRhdGFibGUtcGFnaW5hdG9yLWJvdHRvbS1ib3JkZXItd2lkdGgpO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHRhYmxlIHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIHRhYmxlLWxheW91dDogZml4ZWQ7XG4gICAgICAgIGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7XG4gICAgfVxuXG4gICAgdGhlYWQgdGgsXG4gICAgdGJvZHkgdGQsXG4gICAgdGJvZHkgdGgsXG4gICAgdGZvb3QgdGQsXG4gICAgdGZvb3QgdGgge1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICAgIH1cblxuICAgIC8qIGNvbHVtbiBoZWFkZXJzICovXG4gICAgdGhlYWQgdGgge1xuICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1wLWRhdGF0YWJsZS1oZWFkZXItY2VsbC1iYWNrZ3JvdW5kKTtcbiAgICAgICAgY29sb3I6IHZhcigtLXAtZGF0YXRhYmxlLWhlYWRlci1jZWxsLWNvbG9yKTtcbiAgICAgICAgcGFkZGluZzogdmFyKC0tcC1kYXRhdGFibGUtaGVhZGVyLWNlbGwtcGFkZGluZyk7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLXAtZGF0YXRhYmxlLWhlYWRlci1jZWxsLWJvcmRlci1jb2xvcik7XG4gICAgICAgIGJvcmRlci13aWR0aDogMCAwIDFweCAwO1xuICAgICAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgICAgICB0ZXh0LWFsaWduOiBzdGFydDtcbiAgICAgICAgYm94LXNpemluZzogY29udGVudC1ib3g7XG4gICAgICAgIG91dGxpbmUtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIHZhcigtLXAtZGF0YXRhYmxlLXRyYW5zaXRpb24tZHVyYXRpb24pLCBjb2xvciB2YXIoLS1wLWRhdGF0YWJsZS10cmFuc2l0aW9uLWR1cmF0aW9uKSxcbiAgICAgICAgICAgIGJvcmRlci1jb2xvciB2YXIoLS1wLWRhdGF0YWJsZS10cmFuc2l0aW9uLWR1cmF0aW9uKSwgb3V0bGluZS1jb2xvciB2YXIoLS1wLWRhdGF0YWJsZS10cmFuc2l0aW9uLWR1cmF0aW9uKSxcbiAgICAgICAgICAgIGJveC1zaGFkb3cgdmFyKC0tcC1kYXRhdGFibGUtdHJhbnNpdGlvbi1kdXJhdGlvbik7XG5cbiAgICAgICAgLnAtY29sdW1uLXRpdGxlIHtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1wLWRhdGF0YWJsZS1jb2x1bW4tdGl0bGUtZm9udC13ZWlnaHQpO1xuICAgICAgICAgICAgZm9udC1zaXplOiB2YXIoLS1wLWRhdGF0YWJsZS1jb2x1bW4tdGl0bGUtZm9udC1zaXplKTtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIH1cblxuICAgICAgICAucC1zb3J0YWJsZS1jb2x1bW4taWNvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgbWFyZ2luLWlubGluZS1zdGFydDogdmFyKC0tcC1kYXRhdGFibGUtaGVhZGVyLWNlbGwtZ2FwKTtcbiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1wLWRhdGF0YWJsZS1zb3J0LWljb24tY29sb3IpO1xuICAgICAgICAgICAgZm9udC1zaXplOiB2YXIoLS1wLWRhdGF0YWJsZS1zb3J0LWljb24tc2l6ZSk7XG4gICAgICAgICAgICB0cmFuc2l0aW9uOiBjb2xvciB2YXIoLS1wLWRhdGF0YWJsZS10cmFuc2l0aW9uLWR1cmF0aW9uKTtcblxuICAgICAgICAgICAgLyogdGhlIHNvcnQgb3JkZXIgaXMgdGhlIHN0YXRlIGNsYXNzIG9mIHRoZSBpY29uICh0aGUgY29tcG9uZW50IHJlYWRzIGl0LCBhcmlhLXNvcnQgaXMgb24gb25lIGNvbHVtbiBvbmx5KSAqL1xuICAgICAgICAgICAgJi5wLWRhdGF0YWJsZS1zb3J0LWljb24ge1xuICAgICAgICAgICAgICAgIC0tX2ljb246IHZhcigtLXAtZGF0YXRhYmxlLXNvcnQtaWNvbik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYucC1kYXRhdGFibGUtc29ydC1hc2MtaWNvbiB7XG4gICAgICAgICAgICAgICAgLS1faWNvbjogdmFyKC0tcC1kYXRhdGFibGUtc29ydC1hc2MtaWNvbik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYucC1kYXRhdGFibGUtc29ydC1kZXNjLWljb24ge1xuICAgICAgICAgICAgICAgIC0tX2ljb246IHZhcigtLXAtZGF0YXRhYmxlLXNvcnQtZGVzYy1pY29uKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5wLXNvcnRhYmxlLWNvbHVtbi1iYWRnZSB7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1wLWJhZGdlLWJvcmRlci1yYWRpdXMpO1xuICAgICAgICAgICAgcGFkZGluZzogdmFyKC0tcC1iYWRnZS1wYWRkaW5nKTtcbiAgICAgICAgICAgIGhlaWdodDogdmFyKC0tcC1iYWRnZS1oZWlnaHQpO1xuICAgICAgICAgICAgbWluLXdpZHRoOiB2YXIoLS1wLWJhZGdlLW1pbi13aWR0aCk7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogdmFyKC0tcC1iYWRnZS1oZWlnaHQpO1xuICAgICAgICAgICAgY29sb3I6IHZhcigtLXAtYmFkZ2UtcHJpbWFyeS1jb2xvcik7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1wLWJhZGdlLXByaW1hcnktYmFja2dyb3VuZCk7XG4gICAgICAgICAgICBtYXJnaW4taW5saW5lLXN0YXJ0OiB2YXIoLS1wLWRhdGF0YWJsZS1oZWFkZXItY2VsbC1nYXApO1xuICAgICAgICAgICAgZm9udC1zaXplOiB2YXIoLS1wLWJhZGdlLWZvbnQtc2l6ZSk7XG4gICAgICAgICAgICBmb250LXdlaWdodDogdmFyKC0tcC1iYWRnZS1mb250LXdlaWdodCk7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi5wLXNvcnRhYmxlLWNvbHVtbi5wLXN0YXRlLWZvY3VzLFxuICAgICAgICAmLnAtc29ydGFibGUtY29sdW1uOmZvY3VzLXZpc2libGUge1xuICAgICAgICAgICAgb3V0bGluZTogdmFyKC0tcC1kYXRhdGFibGUtaGVhZGVyLWNlbGwtZm9jdXMtcmluZy13aWR0aCkgdmFyKC0tcC1kYXRhdGFibGUtaGVhZGVyLWNlbGwtZm9jdXMtcmluZy1zdHlsZSkgdmFyKC0tcC1kYXRhdGFibGUtaGVhZGVyLWNlbGwtZm9jdXMtcmluZy1jb2xvcik7XG4gICAgICAgICAgICBvdXRsaW5lLW9mZnNldDogdmFyKC0tcC1kYXRhdGFibGUtaGVhZGVyLWNlbGwtZm9jdXMtcmluZy1vZmZzZXQpO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogdmFyKC0tcC1kYXRhdGFibGUtaGVhZGVyLWNlbGwtZm9jdXMtcmluZy1zaGFkb3cpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi5wLXN0YXRlLWhvdmVyIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHZhcigtLXAtZGF0YXRhYmxlLWhlYWRlci1jZWxsLWhvdmVyLWJhY2tncm91bmQpO1xuICAgICAgICAgICAgY29sb3I6IHZhcigtLXAtZGF0YXRhYmxlLWhlYWRlci1jZWxsLWhvdmVyLWNvbG9yKTtcblxuICAgICAgICAgICAgLnAtc29ydGFibGUtY29sdW1uLWljb24ge1xuICAgICAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1wLWRhdGF0YWJsZS1zb3J0LWljb24taG92ZXItY29sb3IpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyogc29ydGVkIGNvbHVtbiAoUHJpbWVVSVggaGFzIG5vIHNlcGFyYXRlIGhvdmVyIGxvb2sgZm9yIGl0KSAqL1xuICAgIHRoZWFkIHRoLnAtc3RhdGUtYWN0aXZlIHtcbiAgICAgICAgJixcbiAgICAgICAgJi5wLXN0YXRlLWhvdmVyIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHZhcigtLXAtZGF0YXRhYmxlLWhlYWRlci1jZWxsLXNlbGVjdGVkLWJhY2tncm91bmQpO1xuICAgICAgICAgICAgY29sb3I6IHZhcigtLXAtZGF0YXRhYmxlLWhlYWRlci1jZWxsLXNlbGVjdGVkLWNvbG9yKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5wLXNvcnRhYmxlLWNvbHVtbi1pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1wLWRhdGF0YWJsZS1oZWFkZXItY2VsbC1zZWxlY3RlZC1jb2xvcik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAucC1zb3J0YWJsZS1jb2x1bW4ge1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xuICAgIH1cblxuICAgIC8qIG11bHRpcGxlIHNvcnQgbnVtYmVyIGJhZGdlcyAqL1xuICAgIC5wLXNvcnRhYmxlLWNvbHVtbi1iYWRnZSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcblxuICAgICAgICAmLnAtaGlkZGVuIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAucC1jb2x1bW4tZmlsdGVyIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBtYXJnaW46IHZhcigtLXAtZGF0YXRhYmxlLWNvbHVtbi1maWx0ZXItZ2FwKSBhdXRvIGF1dG8gYXV0bztcbiAgICB9XG5cbiAgICAucC1jb2x1bW4tZmlsdGVyIC5wLWlucHV0ZmllbGQsXG4gICAgLnAtY29sdW1uLWN1c3RvbWZpbHRlciAucC1pbnB1dGZpZWxkLFxuICAgIC5wLWNvbHVtbi1jdXN0b21maWx0ZXIgLnAtc2VsZWN0b25lbWVudSB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgfVxuXG4gICAgLnAtY29sdW1uLWN1c3RvbWZpbHRlciB7XG4gICAgICAgIG1hcmdpbjogdmFyKC0tcC1kYXRhdGFibGUtY29sdW1uLWZpbHRlci1nYXApIGF1dG8gYXV0byBhdXRvO1xuICAgIH1cblxuICAgIC8qIHAtZmlsdGVyLXRvZ2dsZWFibGUgKHN0eWxlQ2xhc3MpOiB0aGUgZmlsdGVycyBhcmUgaGlkZGVuIHVudGlsIHRoZSBjb21wb25lbnQgc2hvd3MgdGhlbSB3aXRoIHRvZ2dsZUZpbHRlcigpICovXG4gICAgJi5wLWZpbHRlci10b2dnbGVhYmxlIHRoZWFkIDppcygucC1jb2x1bW4tZmlsdGVyLCAucC1jb2x1bW4tY3VzdG9tZmlsdGVyKSB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuXG4gICAgLyogZm9jdXNhYmxlIGZvciB0aGUga2V5Ym9hcmQgcm93IG5hdmlnYXRpb246IHJpbmcgaW5zaWRlIG9uIGtleWJvYXJkIGZvY3VzLCB0aGUgdGFibGUgd291bGQgY2xpcCBhbiBvdXRlciBvbmUgKi9cbiAgICB0Ym9keS5wLWRhdGF0YWJsZS1kYXRhIHtcbiAgICAgICAgb3V0bGluZTogMDtcblxuICAgICAgICAmOmZvY3VzLXZpc2libGUge1xuICAgICAgICAgICAgb3V0bGluZTogdmFyKC0tcC1kYXRhdGFibGUtcm93LWZvY3VzLXJpbmctd2lkdGgpIHZhcigtLXAtZGF0YXRhYmxlLXJvdy1mb2N1cy1yaW5nLXN0eWxlKSB2YXIoLS1wLWRhdGF0YWJsZS1yb3ctZm9jdXMtcmluZy1jb2xvcik7XG4gICAgICAgICAgICBvdXRsaW5lLW9mZnNldDogY2FsYygtMSAqIHZhcigtLXAtZGF0YXRhYmxlLXJvdy1mb2N1cy1yaW5nLXdpZHRoKSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICB0ci5wLXN0YXRlLWhpZ2hsaWdodCB7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB9XG5cbiAgICAucC1kYXRhdGFibGUtZGF0YSB0ci5wLXN0YXRlLWhvdmVyIHtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIH1cblxuICAgIC8qIHJvd3MgKi9cbiAgICAucC1kYXRhdGFibGUtZGF0YSA+IHRyIHtcbiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tcC1kYXRhdGFibGUtcm93LWJhY2tncm91bmQpO1xuICAgICAgICBjb2xvcjogdmFyKC0tcC1kYXRhdGFibGUtcm93LWNvbG9yKTtcbiAgICAgICAgb3V0bGluZS1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgdmFyKC0tcC1kYXRhdGFibGUtdHJhbnNpdGlvbi1kdXJhdGlvbiksIGNvbG9yIHZhcigtLXAtZGF0YXRhYmxlLXRyYW5zaXRpb24tZHVyYXRpb24pLFxuICAgICAgICAgICAgYm9yZGVyLWNvbG9yIHZhcigtLXAtZGF0YXRhYmxlLXRyYW5zaXRpb24tZHVyYXRpb24pLCBvdXRsaW5lLWNvbG9yIHZhcigtLXAtZGF0YXRhYmxlLXRyYW5zaXRpb24tZHVyYXRpb24pLFxuICAgICAgICAgICAgYm94LXNoYWRvdyB2YXIoLS1wLWRhdGF0YWJsZS10cmFuc2l0aW9uLWR1cmF0aW9uKTtcblxuICAgICAgICA+IHRkLFxuICAgICAgICA+IHRoIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IHZhcigtLXAtZGF0YXRhYmxlLWJvZHktY2VsbC1wYWRkaW5nKTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLXAtZGF0YXRhYmxlLWJvZHktY2VsbC1ib3JkZXItY29sb3IpO1xuICAgICAgICAgICAgYm9yZGVyLXdpZHRoOiAwIDAgMXB4IDA7XG4gICAgICAgICAgICBmb250LXNpemU6IHZhcigtLXAtZGF0YXRhYmxlLWJvZHktY2VsbC1mb250LXNpemUpO1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IHZhcigtLXAtZGF0YXRhYmxlLWJvZHktY2VsbC1mb250LXdlaWdodCk7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBzdGFydDtcbiAgICAgICAgfVxuXG4gICAgICAgICYucC1kYXRhdGFibGUtZW1wdHktbWVzc2FnZSA+IHRkIHtcbiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1wLWRhdGF0YWJsZS1lbXB0eS1tZXNzYWdlLWNvbG9yKTtcbiAgICAgICAgfVxuXG4gICAgICAgID4gdGQucC1kYXRhdGFibGUtc3VidGFibGUtaGVhZGVyIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHZhcigtLXAtZGF0YXRhYmxlLXN1YnRhYmxlLWhlYWRlci1iYWNrZ3JvdW5kKTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLXAtZGF0YXRhYmxlLXN1YnRhYmxlLWhlYWRlci1ib3JkZXItY29sb3IpO1xuICAgICAgICAgICAgYm9yZGVyLXdpZHRoOiAwIDAgMXB4IDA7XG4gICAgICAgICAgICBjb2xvcjogdmFyKC0tcC1kYXRhdGFibGUtc3VidGFibGUtaGVhZGVyLWNvbG9yKTtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1wLWRhdGF0YWJsZS1zdWJ0YWJsZS1oZWFkZXItZm9udC13ZWlnaHQpO1xuICAgICAgICB9XG5cbiAgICAgICAgLyogZm9vdGVyIGZhY2V0IG9mIHA6c3ViVGFibGUgKG5vIG93biB0b2tlbnM6IGNvbHVtbiBmb290ZXIgbG9vaykgKi9cbiAgICAgICAgPiB0ZC5wLWRhdGF0YWJsZS1zdWJ0YWJsZS1mb290ZXIge1xuICAgICAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tcC1kYXRhdGFibGUtZm9vdGVyLWNlbGwtYmFja2dyb3VuZCk7XG4gICAgICAgICAgICBjb2xvcjogdmFyKC0tcC1kYXRhdGFibGUtZm9vdGVyLWNlbGwtY29sb3IpO1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IHZhcigtLXAtZGF0YXRhYmxlLWNvbHVtbi1mb290ZXItZm9udC13ZWlnaHQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi5wLXN0YXRlLWhvdmVyIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHZhcigtLXAtZGF0YXRhYmxlLXJvdy1ob3Zlci1iYWNrZ3JvdW5kKTtcbiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1wLWRhdGF0YWJsZS1yb3ctaG92ZXItY29sb3IpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi5wLXN0YXRlLWhpZ2hsaWdodCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1wLWRhdGF0YWJsZS1yb3ctc2VsZWN0ZWQtYmFja2dyb3VuZCk7XG4gICAgICAgICAgICBjb2xvcjogdmFyKC0tcC1kYXRhdGFibGUtcm93LXNlbGVjdGVkLWNvbG9yKTtcblxuICAgICAgICAgICAgLnAtcm93LXRvZ2dsZXIsXG4gICAgICAgICAgICAucC1yb3ctZWRpdG9yID4gYSB7XG4gICAgICAgICAgICAgICAgY29sb3I6IHZhcigtLXAtZGF0YXRhYmxlLXJvdy1zZWxlY3RlZC1jb2xvcik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5wLXJvdy10b2dnbGVyLnAtaWNvbjpob3ZlcixcbiAgICAgICAgICAgIC5wLXJvdy1lZGl0b3IgPiBhOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1wLWRhdGF0YWJsZS1yb3ctdG9nZ2xlLWJ1dHRvbi1zZWxlY3RlZC1ob3Zlci1iYWNrZ3JvdW5kKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogdmFyKC0tcC1kYXRhdGFibGUtcm93LXRvZ2dsZS1idXR0b24tc2VsZWN0ZWQtaG92ZXItY29sb3IpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi5wLXN0YXRlLWhpZ2hsaWdodCA+IHRkLFxuICAgICAgICAmLnAtc3RhdGUtaGlnaGxpZ2h0ID4gdGgsXG4gICAgICAgICY6aGFzKCsgdHIucC1zdGF0ZS1oaWdobGlnaHQpID4gdGQsXG4gICAgICAgICY6aGFzKCsgdHIucC1zdGF0ZS1oaWdobGlnaHQpID4gdGgge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogdmFyKC0tcC1kYXRhdGFibGUtYm9keS1jZWxsLXNlbGVjdGVkLWJvcmRlci1jb2xvcik7XG4gICAgICAgIH1cblxuICAgICAgICAmLnAtZGF0YXRhYmxlLXNlbGVjdGFibGUge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICA+IC5wLWdyb3VwZWQtY29sdW1uIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1wLWRhdGF0YWJsZS1yb3ctYmFja2dyb3VuZCk7XG4gICAgICAgICAgICAgICAgY29sb3I6IHZhcigtLXAtZGF0YXRhYmxlLXJvdy1jb2xvcik7XG4gICAgICAgICAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLyogcm93IGdyb3VwaW5nOiBwOmhlYWRlclJvdyAvIHA6c3VtbWFyeVJvdyAqL1xuICAgICAgICAmLnAtcm93Z3JvdXAtaGVhZGVyIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHZhcigtLXAtZGF0YXRhYmxlLXJvdy1ncm91cC1oZWFkZXItYmFja2dyb3VuZCk7XG4gICAgICAgICAgICBjb2xvcjogdmFyKC0tcC1kYXRhdGFibGUtcm93LWdyb3VwLWhlYWRlci1jb2xvcik7XG4gICAgICAgICAgICBmb250LXdlaWdodDogdmFyKC0tcC1kYXRhdGFibGUtcm93LWdyb3VwLWhlYWRlci1mb250LXdlaWdodCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLnAtZGF0YXRhYmxlLXN1bW1hcnlyb3cge1xuICAgICAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tcC1kYXRhdGFibGUtc3VtbWFyeS1yb3ctYmFja2dyb3VuZCk7XG4gICAgICAgICAgICBjb2xvcjogdmFyKC0tcC1kYXRhdGFibGUtc3VtbWFyeS1yb3ctY29sb3IpO1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IHZhcigtLXAtZGF0YXRhYmxlLXN1bW1hcnktcm93LWZvbnQtd2VpZ2h0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYucC1kYXRhdGFibGUtcm93b3JkZXJpbmcge1xuICAgICAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tcC1kYXRhdGFibGUtcm93LXNlbGVjdGVkLWJhY2tncm91bmQpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLnAtcm93LXRvZ2dsZXIge1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgfVxuXG4gICAgLyogaW4tY2VsbCBlZGl0aW5nICovXG4gICAgLnAtY2VsbC1lZGl0b3ItaW5wdXQge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cblxuICAgIC5wLXJvdy1lZGl0aW5nIHtcbiAgICAgICAgLnAtY2VsbC1lZGl0b3IgLnAtY2VsbC1lZGl0b3Itb3V0cHV0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAucC1jZWxsLWVkaXRvciAucC1jZWxsLWVkaXRvci1pbnB1dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgIC5wLXJvdy1lZGl0b3IgLnAtcm93LWVkaXRvci1wZW5jaWwge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5wLXJvdy1lZGl0b3IgLnAtcm93LWVkaXRvci1jaGVjayxcbiAgICAgICAgLnAtcm93LWVkaXRvciAucC1yb3ctZWRpdG9yLWNsb3NlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLnAtcm93LWVkaXRvciB7XG4gICAgICAgIHNwYW4ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgLnAtcm93LWVkaXRvci1wZW5jaWwge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgICAgIH1cblxuICAgICAgICAucC1yb3ctZWRpdG9yLWNoZWNrLFxuICAgICAgICAucC1yb3ctZWRpdG9yLWNsb3NlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAucC1kYXRhdGFibGUtZGF0YSB0ci5wLXJvdy1lZGl0aW5nIHRkLnAtZWRpdGFibGUtY29sdW1uLFxuICAgIC5wLWRhdGF0YWJsZS1kYXRhIHRyLnAtcm93LWVkaXRpbmcgdGgucC1lZGl0YWJsZS1jb2x1bW4sXG4gICAgLnAtZGF0YXRhYmxlLWRhdGEgdGQucC1jZWxsLWVkaXRpbmcsXG4gICAgLnAtZGF0YXRhYmxlLWRhdGEgdGgucC1jZWxsLWVkaXRpbmcge1xuICAgICAgICBwYWRkaW5nLXRvcDogMDtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgfVxuXG4gICAgLyogYWN0aW9uIGljb25zOiByb3cgZWRpdG9yIChhLnAtcm93LWVkaXRvci1wZW5jaWwgLyAtY2hlY2sgLyAtY2xvc2UpLCByb3cgdG9nZ2xlciwgcm93IGdyb3VwIHRvZ2dsZXIgKi9cbiAgICAucC1yb3ctZWRpdG9yIHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgfVxuXG4gICAgLnAtZGF0YXRhYmxlLWRhdGEgPiB0ciAucC1yb3ctdG9nZ2xlci5wLWljb24sXG4gICAgLnAtZGF0YXRhYmxlLWRhdGEgPiB0ciAucC1yb3dncm91cC10b2dnbGVyIC5wLXJvd2dyb3VwLXRvZ2dsZXItaWNvbiB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIH1cblxuICAgIC8qIG5vIGRpc3BsYXkgaGVyZTogaXQgd291bGQgd2luIG92ZXIgdGhlIHBlbmNpbCAvIGNoZWNrIC8gY2xvc2Ugc3dpdGNoaW5nIG9mIHRoZSBpbi1jZWxsIGVkaXRpbmcgcnVsZXMgKi9cbiAgICAucC1kYXRhdGFibGUtZGF0YSA+IHRyIC5wLXJvdy1lZGl0b3IgPiBhLFxuICAgIC5wLWRhdGF0YWJsZS1kYXRhID4gdHIgLnAtcm93LXRvZ2dsZXIucC1pY29uLFxuICAgIC5wLWRhdGF0YWJsZS1kYXRhID4gdHIgLnAtcm93Z3JvdXAtdG9nZ2xlciAucC1yb3dncm91cC10b2dnbGVyLWljb24ge1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgd2lkdGg6IHZhcigtLXAtZGF0YXRhYmxlLXJvdy10b2dnbGUtYnV0dG9uLXNpemUpO1xuICAgICAgICBoZWlnaHQ6IHZhcigtLXAtZGF0YXRhYmxlLXJvdy10b2dnbGUtYnV0dG9uLXNpemUpO1xuICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICAgICAgY29sb3I6IHZhcigtLXAtZGF0YXRhYmxlLXJvdy10b2dnbGUtYnV0dG9uLWNvbG9yKTtcbiAgICAgICAgYm9yZGVyOiAwIG5vbmU7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXAtZGF0YXRhYmxlLXJvdy10b2dnbGUtYnV0dG9uLWJvcmRlci1yYWRpdXMpO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgLXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTtcbiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgICAgIG91dGxpbmUtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIHZhcigtLXAtZGF0YXRhYmxlLXRyYW5zaXRpb24tZHVyYXRpb24pLCBjb2xvciB2YXIoLS1wLWRhdGF0YWJsZS10cmFuc2l0aW9uLWR1cmF0aW9uKSxcbiAgICAgICAgICAgIG91dGxpbmUtY29sb3IgdmFyKC0tcC1kYXRhdGFibGUtdHJhbnNpdGlvbi1kdXJhdGlvbiksIGJveC1zaGFkb3cgdmFyKC0tcC1kYXRhdGFibGUtdHJhbnNpdGlvbi1kdXJhdGlvbik7XG4gICAgfVxuXG4gICAgLnAtZGF0YXRhYmxlLWRhdGEgPiB0ciB7XG4gICAgICAgIC8qIHRleHQgdG9nZ2xlciAoZXhwYW5kTGFiZWwgLyBjb2xsYXBzZUxhYmVsKSAqL1xuICAgICAgICAucC1yb3ctdG9nZ2xlcjpub3QoLnAtaWNvbikge1xuICAgICAgICAgICAgY29sb3I6IHZhcigtLXAtcHJpbWFyeS1jb2xvcik7XG4gICAgICAgIH1cblxuICAgICAgICAucC1yb3ctZWRpdG9yID4gYTpob3ZlcixcbiAgICAgICAgLnAtcm93LXRvZ2dsZXIucC1pY29uOmhvdmVyLFxuICAgICAgICAucC1yb3dncm91cC10b2dnbGVyIC5wLXJvd2dyb3VwLXRvZ2dsZXItaWNvbjpob3ZlciB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1wLWRhdGF0YWJsZS1yb3ctdG9nZ2xlLWJ1dHRvbi1ob3Zlci1iYWNrZ3JvdW5kKTtcbiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1wLWRhdGF0YWJsZS1yb3ctdG9nZ2xlLWJ1dHRvbi1ob3Zlci1jb2xvcik7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgLyogcC1yb3ctZWRpdG9yLW91dGxpbmU6IGtleWJvYXJkIGZvY3VzIG9mIGEgcm93IGVkaXRvciBsaW5rIChzZXQgYnkgdGhlIGNvbXBvbmVudCkgKi9cbiAgICAgICAgLnAtcm93LWVkaXRvciA+IGE6Zm9jdXMtdmlzaWJsZSxcbiAgICAgICAgLnAtcm93LWVkaXRvciA+IGEucC1yb3ctZWRpdG9yLW91dGxpbmUsXG4gICAgICAgIC5wLXJvdy10b2dnbGVyOmZvY3VzLXZpc2libGUsXG4gICAgICAgIC5wLXJvd2dyb3VwLXRvZ2dsZXI6Zm9jdXMtdmlzaWJsZSAucC1yb3dncm91cC10b2dnbGVyLWljb24sXG4gICAgICAgIC5wLXJvd2dyb3VwLXRvZ2dsZXIgLnAtcm93Z3JvdXAtdG9nZ2xlci1pY29uOmZvY3VzLXZpc2libGUge1xuICAgICAgICAgICAgb3V0bGluZTogdmFyKC0tcC1kYXRhdGFibGUtcm93LXRvZ2dsZS1idXR0b24tZm9jdXMtcmluZy13aWR0aCkgdmFyKC0tcC1kYXRhdGFibGUtcm93LXRvZ2dsZS1idXR0b24tZm9jdXMtcmluZy1zdHlsZSkgdmFyKC0tcC1kYXRhdGFibGUtcm93LXRvZ2dsZS1idXR0b24tZm9jdXMtcmluZy1jb2xvcik7XG4gICAgICAgICAgICBvdXRsaW5lLW9mZnNldDogdmFyKC0tcC1kYXRhdGFibGUtcm93LXRvZ2dsZS1idXR0b24tZm9jdXMtcmluZy1vZmZzZXQpO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogdmFyKC0tcC1kYXRhdGFibGUtcm93LXRvZ2dsZS1idXR0b24tZm9jdXMtcmluZy1zaGFkb3cpO1xuICAgICAgICB9XG5cbiAgICAgICAgLnAtcm93Z3JvdXAtdG9nZ2xlciB7XG4gICAgICAgICAgICBtYXJnaW4taW5saW5lLWVuZDogdmFyKC0tcC1kYXRhdGFibGUtaGVhZGVyLWNlbGwtZ2FwKTtcblxuICAgICAgICAgICAgJjpmb2N1cy12aXNpYmxlIHtcbiAgICAgICAgICAgICAgICBvdXRsaW5lOiAwIG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAucC1yb3ctZWRpdG9yIHtcbiAgICAgICAgICAgID4gYS5wLXJvdy1lZGl0b3ItY2hlY2sge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1pbmxpbmUtZW5kOiB2YXIoLS1wLWRhdGF0YWJsZS1oZWFkZXItY2VsbC1nYXApO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAucC1kYXRhdGFibGUtcm93LWVkaXQtaWNvbiB7XG4gICAgICAgICAgICAgICAgLS1faWNvbjogdmFyKC0tcC1kYXRhdGFibGUtcm93LWVkaXQtaWNvbik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5wLWRhdGF0YWJsZS1yb3ctc2F2ZS1pY29uIHtcbiAgICAgICAgICAgICAgICAtLV9pY29uOiB2YXIoLS1wLWRhdGF0YWJsZS1yb3ctc2F2ZS1pY29uKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLnAtZGF0YXRhYmxlLXJvdy1jYW5jZWwtaWNvbiB7XG4gICAgICAgICAgICAgICAgLS1faWNvbjogdmFyKC0tcC1kYXRhdGFibGUtcm93LWNhbmNlbC1pY29uKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC8qIHJvdyB0b2dnbGVyICh0aGUgdG9nZ2xlciBpcyB0aGUgaWNvbikgLyByb3cgZ3JvdXAgdG9nZ2xlcjogdGhlIHN0YXRlIGlzIGFyaWEtZXhwYW5kZWQgb2YgdGhlIHRvZ2dsZXIgKi9cbiAgICAgICAgLnAtZGF0YXRhYmxlLXJvdy10b2dnbGUtaWNvbiB7XG4gICAgICAgICAgICAtLV9pY29uOiB2YXIoLS1wLWRhdGF0YWJsZS1yb3ctdG9nZ2xlLWV4cGFuZGVkLWljb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgLnAtcm93LXRvZ2dsZXIucC1kYXRhdGFibGUtcm93LXRvZ2dsZS1pY29uW2FyaWEtZXhwYW5kZWQ9XCJmYWxzZVwiXSxcbiAgICAgICAgLnAtcm93Z3JvdXAtdG9nZ2xlclthcmlhLWV4cGFuZGVkPVwiZmFsc2VcIl0gPiAucC1kYXRhdGFibGUtcm93LXRvZ2dsZS1pY29uIHtcbiAgICAgICAgICAgIC0tX2ljb246IHZhcigtLXAtZGF0YXRhYmxlLXJvdy10b2dnbGUtY29sbGFwc2VkLWljb24pO1xuXG4gICAgICAgICAgICAmOmRpcihydGwpIHtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgxODBkZWcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLnAtcm93Z3JvdXAtaGVhZGVyIHtcbiAgICAgICAgPiB0ZCA+IGEucC1yb3dncm91cC10b2dnbGVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAucC1yb3dncm91cC10b2dnbGVyLWljb24ge1xuICAgICAgICAgICAgcG9zaXRpb246IHN0YXRpYztcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5wLWRhdGF0YWJsZS1kYXRhID4gdHIucC1leHBhbmRlZC1yb3ctY29udGVudCB7XG4gICAgICAgIGJhY2tncm91bmQ6IHZhcigtLXAtZGF0YXRhYmxlLXJvdy1iYWNrZ3JvdW5kKTtcbiAgICAgICAgY29sb3I6IHZhcigtLXAtZGF0YXRhYmxlLXJvdy1jb2xvcik7XG4gICAgfVxuXG4gICAgLnAtY29sdW1uLXJlc2l6ZXIge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgaW5zZXQtaW5saW5lLWVuZDogMDtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB3aWR0aDogdmFyKC0tcC1kYXRhdGFibGUtY29sdW1uLXJlc2l6ZXItd2lkdGgpO1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIGN1cnNvcjogY29sLXJlc2l6ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgfVxuXG4gICAgLnAtY29sdW1uLXJlc2l6ZXItaGVscGVyIHtcbiAgICAgICAgd2lkdGg6IHZhcigtLXAtZGF0YXRhYmxlLXJlc2l6ZS1pbmRpY2F0b3Itd2lkdGgpO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHotaW5kZXg6IDEwO1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1wLWRhdGF0YWJsZS1yZXNpemUtaW5kaWNhdG9yLWNvbG9yKTtcbiAgICB9XG5cbiAgICAvKiBjb2x1bW4gZm9vdGVycyAqL1xuICAgIHRmb290IHRkLFxuICAgIHRmb290IHRoIHtcbiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tcC1kYXRhdGFibGUtZm9vdGVyLWNlbGwtYmFja2dyb3VuZCk7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLXAtZGF0YXRhYmxlLWZvb3Rlci1jZWxsLWJvcmRlci1jb2xvcik7XG4gICAgICAgIGJvcmRlci13aWR0aDogMCAwIDFweCAwO1xuICAgICAgICBjb2xvcjogdmFyKC0tcC1kYXRhdGFibGUtZm9vdGVyLWNlbGwtY29sb3IpO1xuICAgICAgICBwYWRkaW5nOiB2YXIoLS1wLWRhdGF0YWJsZS1mb290ZXItY2VsbC1wYWRkaW5nKTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IHZhcigtLXAtZGF0YXRhYmxlLWNvbHVtbi1mb290ZXItZm9udC13ZWlnaHQpO1xuICAgICAgICBmb250LXNpemU6IHZhcigtLXAtZGF0YXRhYmxlLWNvbHVtbi1mb290ZXItZm9udC1zaXplKTtcbiAgICAgICAgdGV4dC1hbGlnbjogc3RhcnQ7XG4gICAgICAgIGJveC1zaXppbmc6IGNvbnRlbnQtYm94O1xuICAgIH1cblxuICAgIC8qIGNvbHVtbiByZW9yZGVyIGluZGljYXRvcnMgKHRoZSBjb21wb25lbnQgc2hvd3MgLyBwb3NpdGlvbnMgdGhlbSB3aXRoIGlubGluZSBzdHlsZXMpICovXG4gICAgPiAucC1kYXRhdGFibGUtY29sdW1uLXJlb3JkZXItdG9wLWljb24sXG4gICAgPiAucC1kYXRhdGFibGUtY29sdW1uLXJlb3JkZXItYm90dG9tLWljb24ge1xuICAgICAgICBjb2xvcjogdmFyKC0tcC1kYXRhdGFibGUtZHJvcC1wb2ludC1jb2xvcik7XG4gICAgfVxuXG4gICAgPiAucC1kYXRhdGFibGUtY29sdW1uLXJlb3JkZXItdG9wLWljb24ge1xuICAgICAgICAtLV9pY29uOiB2YXIoLS1wLWRhdGF0YWJsZS1jb2x1bW4tcmVvcmRlci10b3AtaWNvbik7XG4gICAgICAgIC8qIG5vdCBzaG93bjogalF1ZXJ5IHNob3coKSB3cml0ZXMgYW4gaW5saW5lIGRpc3BsYXksIHZpc2liaWxpdHkga2VlcHMgaXQgaGlkZGVuIHdpdGhvdXQgIWltcG9ydGFudCAqL1xuICAgICAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgfVxuXG4gICAgPiAucC1kYXRhdGFibGUtY29sdW1uLXJlb3JkZXItYm90dG9tLWljb24ge1xuICAgICAgICAtLV9pY29uOiB2YXIoLS1wLWRhdGF0YWJsZS1jb2x1bW4tcmVvcmRlci1ib3R0b20taWNvbik7XG4gICAgICAgIC8qIHB1c2ggdGhlIHVwIGFycm93IGJlbG93IHRoZSBoZWFkZXIgKi9cbiAgICAgICAgcGFkZGluZy10b3A6IHZhcigtLXAtZGF0YXRhYmxlLWRyb3AtcG9pbnQtb2Zmc2V0KTtcbiAgICB9XG5cbiAgICAucC1kYXRhdGFibGUtc2Nyb2xsYWJsZS1ib2R5IHtcbiAgICAgICAgbWluLWhlaWdodDogMCU7XG4gICAgICAgIG91dGxpbmU6IDAgbm9uZTtcbiAgICB9XG5cbiAgICAucC1kYXRhdGFibGUtc2Nyb2xsYWJsZS1oZWFkZXIge1xuICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1wLWRhdGF0YWJsZS1oZWFkZXItY2VsbC1iYWNrZ3JvdW5kKTtcbiAgICB9XG5cbiAgICAucC1kYXRhdGFibGUtc2Nyb2xsYWJsZS1mb290ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1wLWRhdGF0YWJsZS1mb290ZXItY2VsbC1iYWNrZ3JvdW5kKTtcbiAgICB9XG5cbiAgICAucC1kYXRhdGFibGUtdmlydHVhbHNjcm9sbC13cmFwcGVyIHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIH1cblxuICAgIC5wLWRhdGF0YWJsZS12aXJ0dWFsc2Nyb2xsLXRhYmxlIHtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgfVxuXG4gICAgLyogc2VsZWN0aW9uIGNvbHVtbjogdGhlIHNlbGVjdCBhbGwgY2hlY2tib3ggZm9sbG93cyB0aGUgdGV4dC1hbGlnbiBvZiB0aGUgY29sdW1uIGxpa2UgdGhlIHJvdyBjaGVja2JveGVzICovXG4gICAgLnAtc2VsZWN0aW9uLWNvbHVtbiAucC1jaGtib3gtYWxsIHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgd2lkdGg6IHZhcigtLXAtY2hlY2tib3gtd2lkdGgpO1xuICAgICAgICBoZWlnaHQ6IHZhcigtLXAtY2hlY2tib3gtaGVpZ2h0KTtcbiAgICB9XG5cbiAgICAvKiBmcm96ZW4gY29sdW1ucyAqL1xuICAgIHRhYmxlLnAtZGF0YXRhYmxlLWZzIHtcbiAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgfVxuXG4gICAgLnAtZGF0YXRhYmxlLWZyb3plbmxheW91dC1sZWZ0LFxuICAgIC5wLWRhdGF0YWJsZS1mcm96ZW5sYXlvdXQtcmlnaHQge1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBib3JkZXI6IDAgbm9uZTtcbiAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICB9XG5cbiAgICAucC1kYXRhdGFibGUtZnJvemVuLWNvbnRhaW5lciB7XG4gICAgICAgIC8qIHRoZSBmcm96ZW4gY29udGFpbmVyIGNvbWVzIGZpcnN0OiBpdHMgaW5uZXIgZWRnZSBvdmVybGFwcyB0aGUgYm9yZGVyIG9mIHRoZSBzY3JvbGxhYmxlIG9uZSAoYWxzbyBpbiBSVEwpICovXG4gICAgICAgIG1hcmdpbi1pbmxpbmUtZW5kOiAtMXB4O1xuXG4gICAgICAgIC5wLXJvdy10b2dnbGVyIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IC0ycHg7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAtMnB4O1xuICAgICAgICB9XG5cbiAgICAgICAgLnAtcm93LWVkaXRvciB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAtMnB4O1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogLTJweDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICYucC1kYXRhdGFibGUtc3RyaXBlZCAucC1kYXRhdGFibGUtZGF0YSA+IHRyLnAtZGF0YXRhYmxlLW9kZCB7XG4gICAgICAgIGJhY2tncm91bmQ6IHZhcigtLXAtZGF0YXRhYmxlLXJvdy1zdHJpcGVkLWJhY2tncm91bmQpO1xuXG4gICAgICAgICYucC1zdGF0ZS1ob3ZlciB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1wLWRhdGF0YWJsZS1yb3ctaG92ZXItYmFja2dyb3VuZCk7XG4gICAgICAgICAgICBjb2xvcjogdmFyKC0tcC1kYXRhdGFibGUtcm93LWhvdmVyLWNvbG9yKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYucC1zdGF0ZS1oaWdobGlnaHQge1xuICAgICAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tcC1kYXRhdGFibGUtcm93LXNlbGVjdGVkLWJhY2tncm91bmQpO1xuICAgICAgICAgICAgY29sb3I6IHZhcigtLXAtZGF0YXRhYmxlLXJvdy1zZWxlY3RlZC1jb2xvcik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiBzaXplcyAqL1xuICAgICYucC1kYXRhdGFibGUtc20ge1xuICAgICAgICAucC1kYXRhdGFibGUtaGVhZGVyIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IHZhcigtLXAtZGF0YXRhYmxlLWhlYWRlci1zbS1wYWRkaW5nKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoZWFkID4gdHIgPiB0aCB7XG4gICAgICAgICAgICBwYWRkaW5nOiB2YXIoLS1wLWRhdGF0YWJsZS1oZWFkZXItY2VsbC1zbS1wYWRkaW5nKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5wLWRhdGF0YWJsZS1kYXRhID4gdHIgPiB0ZCxcbiAgICAgICAgLnAtZGF0YXRhYmxlLWRhdGEgPiB0ciA+IHRoIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IHZhcigtLXAtZGF0YXRhYmxlLWJvZHktY2VsbC1zbS1wYWRkaW5nKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRmb290ID4gdHIgPiB0ZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiB2YXIoLS1wLWRhdGF0YWJsZS1mb290ZXItY2VsbC1zbS1wYWRkaW5nKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5wLWRhdGF0YWJsZS1mb290ZXIge1xuICAgICAgICAgICAgcGFkZGluZzogdmFyKC0tcC1kYXRhdGFibGUtZm9vdGVyLXNtLXBhZGRpbmcpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi5wLWRhdGF0YWJsZS1sZyB7XG4gICAgICAgIC5wLWRhdGF0YWJsZS1oZWFkZXIge1xuICAgICAgICAgICAgcGFkZGluZzogdmFyKC0tcC1kYXRhdGFibGUtaGVhZGVyLWxnLXBhZGRpbmcpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhlYWQgPiB0ciA+IHRoIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IHZhcigtLXAtZGF0YXRhYmxlLWhlYWRlci1jZWxsLWxnLXBhZGRpbmcpO1xuICAgICAgICB9XG5cbiAgICAgICAgLnAtZGF0YXRhYmxlLWRhdGEgPiB0ciA+IHRkLFxuICAgICAgICAucC1kYXRhdGFibGUtZGF0YSA+IHRyID4gdGgge1xuICAgICAgICAgICAgcGFkZGluZzogdmFyKC0tcC1kYXRhdGFibGUtYm9keS1jZWxsLWxnLXBhZGRpbmcpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGZvb3QgPiB0ciA+IHRkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IHZhcigtLXAtZGF0YXRhYmxlLWZvb3Rlci1jZWxsLWxnLXBhZGRpbmcpO1xuICAgICAgICB9XG5cbiAgICAgICAgLnAtZGF0YXRhYmxlLWZvb3RlciB7XG4gICAgICAgICAgICBwYWRkaW5nOiB2YXIoLS1wLWRhdGF0YWJsZS1mb290ZXItbGctcGFkZGluZyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLnAtZGF0YXRhYmxlLXNtIC5wLWRhdGF0YWJsZS1zY3JvbGxhYmxlLXRoZWFkY2xvbmUgPiB0ciA+IHRoLFxuICAgICYucC1kYXRhdGFibGUtbGcgLnAtZGF0YXRhYmxlLXNjcm9sbGFibGUtdGhlYWRjbG9uZSA+IHRyID4gdGgge1xuICAgICAgICBwYWRkaW5nLXRvcDogMDtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgfVxuXG4gICAgJi5wLWRhdGF0YWJsZS1ncmlkbGluZXMge1xuICAgICAgICAucC1kYXRhdGFibGUtaGVhZGVyIHtcbiAgICAgICAgICAgIGJvcmRlci13aWR0aDogMXB4IDFweCAwIDFweDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5wLWRhdGF0YWJsZS1mb290ZXIge1xuICAgICAgICAgICAgYm9yZGVyLXdpZHRoOiAwIDFweCAxcHggMXB4O1xuICAgICAgICB9XG5cbiAgICAgICAgLnAtcGFnaW5hdG9yIHtcbiAgICAgICAgICAgICYucC1wYWdpbmF0b3ItdG9wIHtcbiAgICAgICAgICAgICAgICBib3JkZXItd2lkdGg6IDFweCAxcHggMCAxcHg7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYucC1wYWdpbmF0b3ItYm90dG9tIHtcbiAgICAgICAgICAgICAgICBib3JkZXItd2lkdGg6IDAgMXB4IDFweCAxcHg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICB0aGVhZCA+IHRyID4gdGgsXG4gICAgICAgIC5wLWRhdGF0YWJsZS1kYXRhID4gdHIgPiB0ZCxcbiAgICAgICAgLnAtZGF0YXRhYmxlLWRhdGEgPiB0ciA+IHRoLFxuICAgICAgICB0Zm9vdCA+IHRyID4gdGQge1xuICAgICAgICAgICAgYm9yZGVyLXdpZHRoOiAxcHg7XG4gICAgICAgIH1cblxuICAgICAgICAucC1kYXRhdGFibGUtc2Nyb2xsYWJsZS10aGVhZGNsb25lID4gdHIgPiB0aCB7XG4gICAgICAgICAgICBwYWRkaW5nLXRvcDogMDtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMCBub25lO1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogMCBub25lO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi5wLWRhdGF0YWJsZS1zdGlja3kge1xuICAgICAgICAmLnAtc3RpY2t5IHtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IHZhcigtLXAtb3ZlcmxheS1zZWxlY3Qtc2hhZG93KTtcbiAgICAgICAgfVxuXG4gICAgICAgID4gdGFibGUge1xuICAgICAgICAgICAgPiB0aGVhZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tcC1kYXRhdGFibGUtaGVhZGVyLWNlbGwtYmFja2dyb3VuZCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgID4gdGZvb3Qge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IHZhcigtLXAtZGF0YXRhYmxlLWZvb3Rlci1jZWxsLWJhY2tncm91bmQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuXG4ucC1kYXRhdGFibGUtdGFibGV3cmFwcGVyIHtcbiAgICBvdmVyZmxvdzogYXV0bztcbn1cblxuLnAtZGF0YXRhYmxlLXN1bW1hcnkge1xuICAgIGRpc3BsYXk6IG5vbmU7XG59XG5cbi5wLWRhdGF0YWJsZS1zY3JvbGxhYmxlLWJvZHkge1xuICAgIG92ZXJmbG93OiBhdXRvO1xufVxuXG4ucC1kYXRhdGFibGUtc2Nyb2xsYWJsZS1oZWFkZXIsXG4ucC1kYXRhdGFibGUtc2Nyb2xsYWJsZS1mb290ZXIge1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgYm9yZGVyOiAwIG5vbmU7XG59XG5cbi5wLWRhdGF0YWJsZS1zY3JvbGxhYmxlIHtcbiAgICAucC1kYXRhdGFibGUtc2Nyb2xsYWJsZS1oZWFkZXIsXG4gICAgLnAtZGF0YXRhYmxlLXNjcm9sbGFibGUtZm9vdGVyIHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIH1cblxuICAgIC5wLWRhdGF0YWJsZS1zY3JvbGxhYmxlLWhlYWRlciB0ZCB7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgfVxufVxuXG4ucC1kYXRhdGFibGUtc2Nyb2xsYWJsZS10aGVhZGNsb25lIHtcbiAgICBoZWlnaHQ6IDA7XG5cbiAgICB0ciB7XG4gICAgICAgIGhlaWdodDogMDtcbiAgICB9XG5cbiAgICB0aCB7XG4gICAgICAgICYucC1zdGF0ZS1kZWZhdWx0IHtcbiAgICAgICAgICAgIGhlaWdodDogMCAhaW1wb3J0YW50OyAvKiAjMTI5MDggKi9cbiAgICAgICAgICAgIGJvcmRlci1ib3R0b20td2lkdGg6IDA7XG4gICAgICAgICAgICBib3JkZXItdG9wLXdpZHRoOiAwO1xuICAgICAgICAgICAgcGFkZGluZy10b3A6IDA7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgICAgICAgIG91dGxpbmU6IDAgbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgIHNwYW4ucC1jb2x1bW4tdGl0bGUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBoZWlnaHQ6IDA7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5wLWRhdGF0YWJsZS1yZXNpemFibGUge1xuICAgIHBhZGRpbmctYm90dG9tOiAxcHg7IC8qIGZpeCBmb3Igd2Via2l0IG92ZXJmbG93ICovXG4gICAgb3ZlcmZsb3c6IGF1dG87XG5cbiAgICB0aGVhZCB0aCxcbiAgICB0Ym9keSB0ZCxcbiAgICB0Ym9keSB0aCxcbiAgICB0Zm9vdCB0ZCB7XG4gICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgfVxuXG4gICAgdGgucC1yZXNpemFibGUtY29sdW1uIHtcbiAgICAgICAgYmFja2dyb3VuZC1jbGlwOiBwYWRkaW5nLWJveDtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIH1cbn1cblxuLnAtZGF0YXRhYmxlLXJ0bCB7XG4gICAgZGlyZWN0aW9uOiBydGw7XG59XG5cbi5wLWRhdGF0YWJsZS1mcm96ZW4tY29udGFpbmVyIC5wLWRhdGF0YWJsZS1zY3JvbGxhYmxlLWJvZHkge1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG59XG5cbi5wLWRhdGF0YWJsZS1mcm96ZW5sYXlvdXQtcmlnaHQgLnAtZGF0YXRhYmxlLWVtcHR5LW1lc3NhZ2UgdGQge1xuICAgIHRleHQtaW5kZW50OiAtOTk5OXB4O1xuXG4gICAgPiAqIHtcbiAgICAgICAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgIH1cbn1cblxuLyoga2V5Ym9hcmQgY2VsbCBuYXZpZ2F0aW9uIChjZWxsTmF2aWdhdGlvbj1cInRydWVcIikgKi9cbi5wLWRhdGF0YWJsZS1kYXRhIHRkW3JvbGU9XCJncmlkY2VsbFwiXTpmb2N1cyxcbi5wLWRhdGF0YWJsZS1kYXRhIHRoW3JvbGU9XCJyb3doZWFkZXJcIl06Zm9jdXMsXG4ucC1kYXRhdGFibGUtZGF0YSB0ZFtyb2xlPVwiZ3JpZFwiXSBbdGFiaW5kZXg9XCIwXCJdOmZvY3VzIHtcbiAgICBvdXRsaW5lOiB2YXIoLS1wLWRhdGF0YWJsZS1yb3ctZm9jdXMtcmluZy13aWR0aCkgdmFyKC0tcC1kYXRhdGFibGUtcm93LWZvY3VzLXJpbmctc3R5bGUpIHZhcigtLXAtZGF0YXRhYmxlLXJvdy1mb2N1cy1yaW5nLWNvbG9yKTtcbiAgICBvdXRsaW5lLW9mZnNldDogdmFyKC0tcC1kYXRhdGFibGUtcm93LWZvY3VzLXJpbmctb2Zmc2V0KTtcbiAgICBib3gtc2hhZG93OiB2YXIoLS1wLWRhdGF0YWJsZS1yb3ctZm9jdXMtcmluZy1zaGFkb3cpO1xufVxuXG4ucC1kYXRhdGFibGUtcmVmbG93IHtcbiAgICAucC1kYXRhdGFibGUtZGF0YSB0ZFtyb2xlPVwiZ3JpZGNlbGxcIl0gLnAtY29sdW1uLXRpdGxlLFxuICAgIC5wLWRhdGF0YWJsZS1kYXRhIHRoW3JvbGU9XCJyb3doZWFkZXJcIl0gLnAtY29sdW1uLXRpdGxlLFxuICAgIC5wLWV4cGFuZGVkLXJvdy1jb250ZW50IHRkIC5wLWNvbHVtbi10aXRsZSB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuXG4gICAgLnAtcmVmbG93LWxhYmVsLFxuICAgIC5wLXJlZmxvdy1kcm9wZG93biB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IHZhcigtLXAtZGF0YXRhYmxlLXJlZmxvdy1nYXApO1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cblxuICAgIC8qIHNvcnQgZHJvcGRvd24gKG5hdGl2ZSBzZWxlY3QpICovXG4gICAgLnAtcmVmbG93LWRyb3Bkb3duIHtcbiAgICAgICAgZm9udC1mYW1pbHk6IGluaGVyaXQ7XG4gICAgICAgIGZvbnQtc2l6ZTogdmFyKC0tcC1zZWxlY3QtZm9udC1zaXplKTtcbiAgICAgICAgcGFkZGluZy1ibG9jazogdmFyKC0tcC1zZWxlY3QtcGFkZGluZy15KTtcbiAgICAgICAgcGFkZGluZy1pbmxpbmU6IHZhcigtLXAtc2VsZWN0LXBhZGRpbmcteCk7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1wLXNlbGVjdC1jb2xvcik7XG4gICAgICAgIGJhY2tncm91bmQ6IHZhcigtLXAtc2VsZWN0LWJhY2tncm91bmQpO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1wLXNlbGVjdC1ib3JkZXItY29sb3IpO1xuICAgICAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1wLXNlbGVjdC1ib3JkZXItcmFkaXVzKTtcbiAgICAgICAgb3V0bGluZS1jb2xvcjogdHJhbnNwYXJlbnQ7XG5cbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IHZhcigtLXAtc2VsZWN0LWhvdmVyLWJvcmRlci1jb2xvcik7XG4gICAgICAgIH1cblxuICAgICAgICAmOmZvY3VzLXZpc2libGUge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1wLXNlbGVjdC1mb2N1cy1ib3JkZXItY29sb3IpO1xuICAgICAgICAgICAgb3V0bGluZTogdmFyKC0tcC1zZWxlY3QtZm9jdXMtcmluZy13aWR0aCkgdmFyKC0tcC1zZWxlY3QtZm9jdXMtcmluZy1zdHlsZSkgdmFyKC0tcC1zZWxlY3QtZm9jdXMtcmluZy1jb2xvcik7XG4gICAgICAgICAgICBvdXRsaW5lLW9mZnNldDogdmFyKC0tcC1zZWxlY3QtZm9jdXMtcmluZy1vZmZzZXQpO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogdmFyKC0tcC1zZWxlY3QtZm9jdXMtcmluZy1zaGFkb3cpO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5AbWVkaWEgKG1heC13aWR0aDogNjQwcHgpIHtcbiAgICAucC1kYXRhdGFibGUtcmVmbG93IHRoZWFkIHRoLFxuICAgIC5wLWRhdGF0YWJsZS1yZWZsb3cgdGZvb3QgdGQge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cblxuICAgIC8qIGtlZXAgY29sdW1uIGZpbHRlcnMgdXNhYmxlIGluIHJlZmxvdyBtb2RlOiBzdGFjayB0aGUgZmlsdGVyYWJsZSBoZWFkZXIgY2VsbHMgaW5zdGVhZCBvZiBoaWRpbmcgdGhlIHdob2xlIHRoZWFkICovXG4gICAgLnAtZGF0YXRhYmxlLXJlZmxvdyB7XG4gICAgICAgIHRoZWFkIHRoLnAtZmlsdGVyLWNvbHVtbiB7XG4gICAgICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBmbG9hdDogaW5saW5lLXN0YXJ0O1xuICAgICAgICAgICAgY2xlYXI6IGlubGluZS1zdGFydDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICBib3JkZXI6IDAgbm9uZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IHN0YXJ0O1xuXG4gICAgICAgICAgICAucC1jb2x1bW4tdGl0bGUge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1wLWRhdGF0YWJsZS1yZWZsb3ctdGl0bGUtZm9udC13ZWlnaHQpO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMCAwIHZhcigtLXAtZGF0YXRhYmxlLXJlZmxvdy1nYXApIDA7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLnAtc29ydGFibGUtY29sdW1uLWljb24sXG4gICAgICAgICAgICAucC1zb3J0YWJsZS1jb2x1bW4tYmFkZ2UsXG4gICAgICAgICAgICAucC1jb2x1bW4tcmVzaXplciB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLnAtY29sdW1uLWZpbHRlcixcbiAgICAgICAgICAgIC5wLWNvbHVtbi1jdXN0b21maWx0ZXIge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbiAgICAgICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLnAtZmlsdGVyLXRvZ2dsZWFibGUgdGhlYWQgdGgucC1maWx0ZXItY29sdW1uIDppcygucC1jb2x1bW4tZmlsdGVyLCAucC1jb2x1bW4tY3VzdG9tZmlsdGVyKSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgLnAtZGF0YXRhYmxlLWRhdGEge1xuICAgICAgICAgICAgdGRbcm9sZT1cImdyaWRjZWxsXCJdOm5vdCgucC1oaWRkZW4pLFxuICAgICAgICAgICAgdGhbcm9sZT1cInJvd2hlYWRlclwiXTpub3QoLnAtaGlkZGVuKSB7XG4gICAgICAgICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgICAgICAgICAgICBjbGVhcjogaW5saW5lLXN0YXJ0O1xuICAgICAgICAgICAgICAgIGZsb2F0OiBpbmxpbmUtc3RhcnQ7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAwIG5vbmU7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogc3RhcnQgIWltcG9ydGFudDtcbiAgICAgICAgICAgICAgICB3aWR0aDogMTAwJSAhaW1wb3J0YW50O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLnAtY29tcG9uZW50LWNvbnRlbnQge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMCBub25lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB0ci5wLWNvbXBvbmVudC1jb250ZW50IHtcbiAgICAgICAgICAgICAgICBib3JkZXItbGVmdDogMCBub25lO1xuICAgICAgICAgICAgICAgIGJvcmRlci1yaWdodDogMCBub25lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB0ZFtyb2xlPVwiZ3JpZGNlbGxcIl0gLnAtY29sdW1uLXRpdGxlLFxuICAgICAgICAgICAgdGhbcm9sZT1cInJvd2hlYWRlclwiXSAucC1jb2x1bW4tdGl0bGUge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogdmFyKC0tcC1kYXRhdGFibGUtcmVmbG93LXRpdGxlLWZvbnQtd2VpZ2h0KTtcbiAgICAgICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWlubGluZS1lbmQ6IHZhcigtLXAtZGF0YXRhYmxlLXJlZmxvdy1nYXApO1xuICAgICAgICAgICAgICAgIG1pbi13aWR0aDogMzAlO1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogMzUlO1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHRyIHtcbiAgICAgICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgdmFyKC0tcC1kYXRhdGFibGUtYm9keS1jZWxsLWJvcmRlci1jb2xvcik7XG5cbiAgICAgICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgICAgICYucC1zdGF0ZS1oaWdobGlnaHQge1xuICAgICAgICAgICAgICAgICAgICBib3JkZXItbGVmdDogMCBub25lO1xuICAgICAgICAgICAgICAgICAgICBib3JkZXItcmlnaHQ6IDAgbm9uZTtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLXAtZGF0YXRhYmxlLWJvZHktY2VsbC1ib3JkZXItY29sb3IpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICYucC1leHBhbmRlZC1yb3ctY29udGVudCA+IHRkIHtcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5wLXJlZmxvdy1sYWJlbCxcbiAgICAgICAgLnAtcmVmbG93LWRyb3Bkb3duIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgIC5wLXJlZmxvdy1kcm9wZG93biB7XG4gICAgICAgICAgICBtYXJnaW4taW5saW5lLXN0YXJ0OiB2YXIoLS1wLWRhdGF0YWJsZS1yZWZsb3ctZ2FwKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRyLnAtZGF0YXRhYmxlLWVtcHR5LW1lc3NhZ2UgPiB0ZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIGJvcmRlcjogMCBub25lO1xuICAgICAgICB9XG4gICAgfVxufVxuIiwgIi8qXG4gKiBEYXRhVmlldzogcDpkYXRhVmlldyAobGlzdCBhbmQgZ3JpZCBsYXlvdXQpLCBQcmltZVVJWCBkYXRhdmlldyB0b2tlbnMgKyBQcmltZUZhY2VzIGRhdGF2aWV3IHRva2Vuc1xuICpcbiAqIFN1cHBvcnRlZCBjbGFzc2VzOiBwLWRhdGF2aWV3LWxpc3QsIHAtZGF0YXZpZXctZ3JpZCwgcC1kYXRhdmlldy1sYXlvdXQtb3B0aW9ucyAobGF5b3V0IHN3aXRjaCwgc3R5bGVkIGxpa2UgYSBzZWxlY3QgYnV0dG9uKVxuICovXG4ucC1kYXRhdmlldyB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLXAtZGF0YXZpZXctYm9yZGVyLWNvbG9yKTtcbiAgICBib3JkZXItd2lkdGg6IHZhcigtLXAtZGF0YXZpZXctYm9yZGVyLXdpZHRoKTtcbiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1wLWRhdGF2aWV3LWJvcmRlci1yYWRpdXMpO1xuICAgIHBhZGRpbmc6IHZhcigtLXAtZGF0YXZpZXctcGFkZGluZyk7XG5cbiAgICAucC1wYWdpbmF0b3Ige1xuICAgICAgICAmLnAtcGFnaW5hdG9yLXRvcCB7XG4gICAgICAgICAgICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1wLWRhdGF2aWV3LXBhZ2luYXRvci10b3AtYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgICAgIGJvcmRlci13aWR0aDogdmFyKC0tcC1kYXRhdmlldy1wYWdpbmF0b3ItdG9wLWJvcmRlci13aWR0aCk7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi5wLXBhZ2luYXRvci1ib3R0b20ge1xuICAgICAgICAgICAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tcC1kYXRhdmlldy1wYWdpbmF0b3ItYm90dG9tLWJvcmRlci1jb2xvcik7XG4gICAgICAgICAgICBib3JkZXItd2lkdGg6IHZhcigtLXAtZGF0YXZpZXctcGFnaW5hdG9yLWJvdHRvbS1ib3JkZXItd2lkdGgpO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5wLWRhdGF2aWV3LWhlYWRlciB7XG4gICAgICAgIC8qIGNvbnRhaW5zIHRoZSBmbG9hdGVkIGxheW91dCBvcHRpb25zICovXG4gICAgICAgIGRpc3BsYXk6IGZsb3ctcm9vdDtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1wLWRhdGF2aWV3LWhlYWRlci1iYWNrZ3JvdW5kKTtcbiAgICAgICAgY29sb3I6IHZhcigtLXAtZGF0YXZpZXctaGVhZGVyLWNvbG9yKTtcbiAgICAgICAgcGFkZGluZzogdmFyKC0tcC1kYXRhdmlldy1oZWFkZXItcGFkZGluZyk7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1wLWRhdGF2aWV3LWhlYWRlci1mb250LXdlaWdodCk7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLXAtZGF0YXZpZXctaGVhZGVyLWJvcmRlci1jb2xvcik7XG4gICAgICAgIGJvcmRlci13aWR0aDogdmFyKC0tcC1kYXRhdmlldy1oZWFkZXItYm9yZGVyLXdpZHRoKTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogdmFyKC0tcC1kYXRhdmlldy1oZWFkZXItYm9yZGVyLXJhZGl1cyk7XG5cbiAgICAgICAgLnAtZGF0YXZpZXctbGF5b3V0LW9wdGlvbnMge1xuICAgICAgICAgICAgZmxvYXQ6IGlubGluZS1lbmQ7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAucC1kYXRhdmlldy1mb290ZXIge1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGJhY2tncm91bmQ6IHZhcigtLXAtZGF0YXZpZXctZm9vdGVyLWJhY2tncm91bmQpO1xuICAgICAgICBjb2xvcjogdmFyKC0tcC1kYXRhdmlldy1mb290ZXItY29sb3IpO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1wLWRhdGF2aWV3LWZvb3Rlci1ib3JkZXItY29sb3IpO1xuICAgICAgICBib3JkZXItd2lkdGg6IHZhcigtLXAtZGF0YXZpZXctZm9vdGVyLWJvcmRlci13aWR0aCk7XG4gICAgICAgIHBhZGRpbmc6IHZhcigtLXAtZGF0YXZpZXctZm9vdGVyLXBhZGRpbmcpO1xuICAgICAgICBmb250LXdlaWdodDogdmFyKC0tcC1kYXRhdmlldy1mb290ZXItZm9udC13ZWlnaHQpO1xuICAgICAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1wLWRhdGF2aWV3LWZvb3Rlci1ib3JkZXItcmFkaXVzKTtcbiAgICB9XG5cbiAgICAucC1kYXRhdmlldy1jb250ZW50IHtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tcC1kYXRhdmlldy1jb250ZW50LWJvcmRlci1jb2xvcik7XG4gICAgICAgIGJvcmRlci13aWR0aDogdmFyKC0tcC1kYXRhdmlldy1jb250ZW50LWJvcmRlci13aWR0aCk7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXAtZGF0YXZpZXctY29udGVudC1ib3JkZXItcmFkaXVzKTtcbiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tcC1kYXRhdmlldy1jb250ZW50LWJhY2tncm91bmQpO1xuICAgICAgICBjb2xvcjogdmFyKC0tcC1kYXRhdmlldy1jb250ZW50LWNvbG9yKTtcbiAgICAgICAgcGFkZGluZzogdmFyKC0tcC1kYXRhdmlldy1jb250ZW50LXBhZGRpbmcpO1xuXG4gICAgICAgIC8qIHRoZSBjb21wb25lbnQgcmVwbGFjZXMgdGhlIGl0ZW1zIG9uIGEgbGF5b3V0IHN3aXRjaCBhbmQgb24gcGFnaW5nOiB0aGUgbmV3IG9uZXMgZmFkZSBhbmQgc2xpZGUgaW4gKGJhc2UvY29tbW9uLmNzcykgKi9cbiAgICAgICAgPiAqIHtcbiAgICAgICAgICAgIC0tX2VudGVyLW9mZnNldDogdmFyKC0tcC1kYXRhdmlldy1jb250ZW50LWVudGVyLW9mZnNldCk7XG4gICAgICAgICAgICBhbmltYXRpb246IHAtZW50ZXIgdmFyKC0tcC1kYXRhdmlldy1jb250ZW50LWVudGVyLWR1cmF0aW9uKSB2YXIoLS1wLXRyYW5zaXRpb24tZWFzaW5nLWVudGVyKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICYucC1kYXRhdmlldy1saXN0IC5wLWRhdGF2aWV3LXJvdyB7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLXAtZGF0YXZpZXctaXRlbS1ib3JkZXItY29sb3IpO1xuICAgICAgICBib3JkZXItd2lkdGg6IDAgMCAxcHggMDtcblxuICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbS13aWR0aDogMDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICYucC1kYXRhdmlldy1ncmlkIC5wLWRhdGF2aWV3LWNvbHVtbiB7XG4gICAgICAgIHBhZGRpbmc6IHZhcigtLXAtZGF0YXZpZXctZ3JpZC1jb2x1bW4tcGFkZGluZyk7XG4gICAgfVxuXG4gICAgLyogbGF5b3V0IHN3aXRjaDogYSBzZWxlY3QgYnV0dG9uIChQcmltZVVJWCBzZWxlY3RidXR0b24gPSB0b2dnbGVidXR0b24gdG9rZW5zKSAqL1xuICAgIC5wLWRhdGF2aWV3LWxheW91dC1vcHRpb25zIHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgICAgIGdhcDogMDtcbiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tcC10b2dnbGVidXR0b24tYmFja2dyb3VuZCk7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLXAtdG9nZ2xlYnV0dG9uLWJvcmRlci1jb2xvcik7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXAtdG9nZ2xlYnV0dG9uLWJvcmRlci1yYWRpdXMpO1xuICAgICAgICBwYWRkaW5nOiB2YXIoLS1wLXRvZ2dsZWJ1dHRvbi1wYWRkaW5nKTtcblxuICAgICAgICAucC1idXR0b24ge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgICBwYWRkaW5nOiB2YXIoLS1wLXRvZ2dsZWJ1dHRvbi1jb250ZW50LXBhZGRpbmcpO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogdmFyKC0tcC10b2dnbGVidXR0b24taWNvbi1jb2xvcik7XG4gICAgICAgICAgICBib3JkZXI6IDAgbm9uZTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXAtdG9nZ2xlYnV0dG9uLWNvbnRlbnQtYm9yZGVyLXJhZGl1cyk7XG4gICAgICAgICAgICBib3gtc2hhZG93OiBub25lO1xuICAgICAgICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCB2YXIoLS1wLXRvZ2dsZWJ1dHRvbi10cmFuc2l0aW9uLWR1cmF0aW9uKSwgY29sb3IgdmFyKC0tcC10b2dnbGVidXR0b24tdHJhbnNpdGlvbi1kdXJhdGlvbiksXG4gICAgICAgICAgICAgICAgYm94LXNoYWRvdyB2YXIoLS1wLXRvZ2dsZWJ1dHRvbi10cmFuc2l0aW9uLWR1cmF0aW9uKSwgb3V0bGluZS1jb2xvciB2YXIoLS1wLXRvZ2dsZWJ1dHRvbi10cmFuc2l0aW9uLWR1cmF0aW9uKTtcblxuICAgICAgICAgICAgLnAtYnV0dG9uLXRleHQge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5wLWRhdGF2aWV3LWxpc3QtbGF5b3V0LWljb24ge1xuICAgICAgICAgICAgICAgIC0tX2ljb246IHZhcigtLXAtZGF0YXZpZXctbGlzdC1sYXlvdXQtaWNvbik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5wLWRhdGF2aWV3LWdyaWQtbGF5b3V0LWljb24ge1xuICAgICAgICAgICAgICAgIC0tX2ljb246IHZhcigtLXAtZGF0YXZpZXctZ3JpZC1sYXlvdXQtaWNvbik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC8qIHRoZSBidXR0b24gaXRzZWxmIGlzIHRoZSBwaWxsLCB0aGUgOjpiZWZvcmUgcGlsbCBvZiBzZWxlY3RvbmVidXR0b24uY3NzIHdvdWxkIGNvdmVyIHRoZSBpY29uICovXG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6IG5vbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC8qIGJlYXRzIHRoZSBvdXRlciBjb3JuZXIgcmFkaXVzIG9mIGdyb3VwZWQgYnV0dG9ucyAoc2VsZWN0b25lYnV0dG9uLmNzcykgKi9cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQsXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXAtdG9nZ2xlYnV0dG9uLWNvbnRlbnQtYm9yZGVyLXJhZGl1cyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bm90KC5wLXN0YXRlLWFjdGl2ZSk6aG92ZXIsXG4gICAgICAgICAgICAmLnAtc3RhdGUtaG92ZXI6bm90KC5wLXN0YXRlLWFjdGl2ZSkge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1wLXRvZ2dsZWJ1dHRvbi1pY29uLWhvdmVyLWNvbG9yKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLyogdGhlIDpob3ZlciB2YXJpYW50IGJlYXRzIHRoZSBjaGVja2VkIGhvdmVyIG9mIHNlbGVjdG9uZWJ1dHRvbi5jc3MgKi9cbiAgICAgICAgICAgICYucC1zdGF0ZS1hY3RpdmUsXG4gICAgICAgICAgICAmLnAtc3RhdGUtYWN0aXZlOm5vdCgucC1zdGF0ZS1kaXNhYmxlZCk6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IHZhcigtLXAtdG9nZ2xlYnV0dG9uLWNvbnRlbnQtY2hlY2tlZC1iYWNrZ3JvdW5kKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogdmFyKC0tcC10b2dnbGVidXR0b24taWNvbi1jaGVja2VkLWNvbG9yKTtcbiAgICAgICAgICAgICAgICBib3gtc2hhZG93OiB2YXIoLS1wLXRvZ2dsZWJ1dHRvbi1jb250ZW50LWNoZWNrZWQtc2hhZG93KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLyogaW5zaWRlIHRoZSBwaWxsOiB0aGUgZ3JvdXAgcGFkZGluZyBpcyBvbmx5IGFzIHdpZGUgYXMgd2lkdGggKyBvZmZzZXQgb2YgdGhlIHJpbmcgKEdsYXNzKSBvciAwIChNYXRlcmlhbCksXG4gICAgICAgICAgICAgICBhbiBvdXRlciByaW5nIHdvdWxkIGNvdmVyIHRoZSBncm91cCBib3JkZXIgYW5kIHN0aWNrIG91dCBvZiBpdHMgcm91bmRlZCBjb3JuZXJzICovXG4gICAgICAgICAgICAmLnAtc3RhdGUtZm9jdXMsXG4gICAgICAgICAgICAmOmZvY3VzLXZpc2libGUge1xuICAgICAgICAgICAgICAgIG91dGxpbmU6IHZhcigtLXAtdG9nZ2xlYnV0dG9uLWZvY3VzLXJpbmctd2lkdGgpIHZhcigtLXAtdG9nZ2xlYnV0dG9uLWZvY3VzLXJpbmctc3R5bGUpIHZhcigtLXAtdG9nZ2xlYnV0dG9uLWZvY3VzLXJpbmctY29sb3IpO1xuICAgICAgICAgICAgICAgIG91dGxpbmUtb2Zmc2V0OiBjYWxjKHZhcigtLXAtdG9nZ2xlYnV0dG9uLWZvY3VzLXJpbmctd2lkdGgpICogLTEpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuXG4ucC1kYXRhdmlldy1saXN0IC5wLWRhdGF2aWV3LWxpc3QtY29udGFpbmVyIHtcbiAgICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDA7XG59XG5cbi5wLWZsdWlkIC5wLWRhdGF2aWV3LWxheW91dC1vcHRpb25zLnAtYnV0dG9uc2V0IHtcbiAgICB3aWR0aDogYXV0bztcbn1cbiIsICIvKlxuICogRGlhbG9nOiBwOmRpYWxvZywgcDpjb25maXJtRGlhbG9nLCBQcmltZUZhY2VzLnNob3dNZXNzYWdlSW5EaWFsb2cgKHAtbWVzc2FnZS1kaWFsb2cpLCBEaWFsb2cgRnJhbWV3b3JrXG4gKlxuICogTWFya3VwOiAucC1kaWFsb2cgKGZpeGVkIGZ1bGwtdmlld3BvcnQgY29udGFpbmVyKSA+IC5wLWRpYWxvZy1ib3ggPiAucC1kaWFsb2ctdGl0bGViYXIsIC5wLWRpYWxvZy1jb250ZW50LCAucC1kaWFsb2ctZm9vdGVyXG4gKiBTdGF0ZXM6IHAtZGlhbG9nLWFic29sdXRlLCBwLWRpYWxvZy1maXR2aWV3cG9ydCwgcC1vdmVyZmxvdy1oaWRkZW4sIHAtcmVzaXphYmxlLCBwLWRpYWxvZy1ydGwsXG4gKiAgICAgICAgIHAtZGlhbG9nLW1heGltaXplZCwgcC1jb25maXJtLWRpYWxvZywgcC1tZXNzYWdlLWRpYWxvZ1xuICogTWluaW1pemVkOiB0aGUgZGlhbG9nIGlzIGhpZGRlbiwgLnAtZGlhbG9nLWRvY2tpbmctem9uZSA+IC5wLWRpYWxvZy1kb2NrZWQgaXMgYW4gb3duIGJhciB3aXRoIHRpdGxlIGFuZCBpY29uc1xuICovXG5ib2R5LnAtZGlhbG9nLW9wZW4ge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cblxuLnAtZGlhbG9nIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogMDtcbiAgICByaWdodDogMDtcbiAgICBib3R0b206IDA7XG4gICAgLyogbm8gdG9rZW46IHZpZXdwb3J0IGd1dHRlciBhcm91bmQgdGhlIGRpYWxvZyBib3gsIHJldXNlcyB0aGUgbW9kYWwgcGFkZGluZyAqL1xuICAgIHBhZGRpbmc6IHZhcigtLXAtb3ZlcmxheS1tb2RhbC1wYWRkaW5nKTtcbiAgICBvdmVyZmxvdy14OiBoaWRkZW47XG4gICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICBvdXRsaW5lOiAwO1xuICAgIC8qIG5vbiBtb2RhbDogdGhlIGNvbnRhaW5lciBjb3ZlcnMgdGhlIHZpZXdwb3J0LCBvbmx5IHRoZSBib3ggdGFrZXMgdGhlIHBvaW50ZXIsIHNvIHRoZSBwYWdlIGFyb3VuZCB0aGUgZGlhbG9nIHN0YXlzXG4gICAgICAgdXNhYmxlIChzY3JvbGxpbmcgb3ZlciB0aGUgYm94IHN0aWxsIHNjcm9sbHMgdGhlIGNvbnRhaW5lcik7IGEgbW9kYWwgZGlhbG9nIGtlZXBzIGl0IGZvciBpdHMgc2Nyb2xsYmFyICovXG4gICAgJjpub3QoW2FyaWEtbW9kYWw9XCJ0cnVlXCJdKSB7XG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgIH1cblxuICAgICYucC1kaWFsb2ctYWJzb2x1dGUge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgfVxuXG4gICAgLyogZGlhbG9nIGZyYW1ld29yazogaGlkZGVuIGJ5IHZpc2liaWxpdHkgdW50aWwgc2hvd24gKi9cbiAgICAmLnAtb3ZlcmxheS1oaWRkZW4ge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICB9XG5cbiAgICAucC1kaWFsb2ctdGl0bGViYXIge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgfVxuXG4gICAgLnAtZGlhbG9nLWNvbnRlbnQge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIG92ZXJmbG93OiBhdXRvO1xuICAgIH1cblxuICAgIC5wLWRpYWxvZy1ib3ggLnAtZGlhbG9nLWNvbnRlbnQucC1kZi1jb250ZW50IHtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICB9XG5cbiAgICAucC1yZXNpemFibGUtc2Uge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHdpZHRoOiA5cHg7XG4gICAgICAgIGhlaWdodDogOXB4O1xuICAgICAgICByaWdodDogLTVweDtcbiAgICAgICAgYm90dG9tOiAtNXB4O1xuICAgIH1cblxuICAgIC5wLWRpYWxvZy10aXRsZWJhci1jbG9zZSxcbiAgICAucC1kaWFsb2ctdGl0bGViYXItbWluaW1pemUsXG4gICAgLnAtZGlhbG9nLXRpdGxlYmFyLW1heGltaXplIHtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIH1cblxuICAgICYucC1vdmVyZmxvdy1oaWRkZW4sXG4gICAgJi5wLWRpYWxvZy1hYnNvbHV0ZSxcbiAgICAmLnAtZGlhbG9nLWZpdHZpZXdwb3J0IHtcbiAgICAgICAgb3ZlcmZsb3cteTogaGlkZGVuO1xuICAgIH1cblxuICAgICYucC1kaWFsb2ctYWJzb2x1dGUgLnAtZGlhbG9nLWJveCB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB9XG5cbiAgICAucC1kaWFsb2ctYm94IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICAgICAgcG9pbnRlci1ldmVudHM6IGF1dG87XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tcC1kaWFsb2ctYmFja2dyb3VuZCk7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1wLWRpYWxvZy1jb2xvcik7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLXAtZGlhbG9nLWJvcmRlci1jb2xvcik7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXAtZGlhbG9nLWJvcmRlci1yYWRpdXMpO1xuICAgICAgICBib3gtc2hhZG93OiB2YXIoLS1wLWRpYWxvZy1zaGFkb3cpO1xuXG4gICAgICAgIC8qIGhlYWRlcjogZmxleCByb3cgbGlrZSBQcmltZVVJWDsgdGhlIGljb25zIGFyZSByZW5kZXJlZCBjbG9zZSwgbWF4aW1pemUsIG1pbmltaXplLCBhY3Rpb25zIGFuZCBhcmUgcmVvcmRlcmVkICovXG4gICAgICAgIC5wLWRpYWxvZy10aXRsZWJhciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogdmFyKC0tcC1kaWFsb2ctY29sb3IpO1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IHZhcigtLXAtZGlhbG9nLXRpdGxlLWZvbnQtd2VpZ2h0KTtcbiAgICAgICAgICAgIGJvcmRlcjogMCBub25lO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgICAgICAgIHBhZGRpbmc6IHZhcigtLXAtZGlhbG9nLWhlYWRlci1wYWRkaW5nKTtcblxuICAgICAgICAgICAgLnAtZGlhbG9nLXRpdGxlIHtcbiAgICAgICAgICAgICAgICBmbGV4OiAxIDEgYXV0bztcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IHZhcigtLXAtZGlhbG9nLXRpdGxlLWZvbnQtc2l6ZSk7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IHZhcigtLXAtZGlhbG9nLXRpdGxlLWZvbnQtd2VpZ2h0KTtcbiAgICAgICAgICAgICAgICB0ZXh0LXdyYXA6IGJhbGFuY2U7XG4gICAgICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLnAtZGlhbG9nLWFjdGlvbnMge1xuICAgICAgICAgICAgICAgIG9yZGVyOiAxO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWlubGluZS1zdGFydDogdmFyKC0tcC1kaWFsb2ctaGVhZGVyLWdhcCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgID4gLnAtZGlhbG9nLXRpdGxlYmFyLW1pbmltaXplIHtcbiAgICAgICAgICAgICAgICBvcmRlcjogMjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgPiAucC1kaWFsb2ctdGl0bGViYXItbWF4aW1pemUge1xuICAgICAgICAgICAgICAgIG9yZGVyOiAzO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICA+IC5wLWRpYWxvZy10aXRsZWJhci1jbG9zZSB7XG4gICAgICAgICAgICAgICAgb3JkZXI6IDQ7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC8qIGhlYWRlciBpY29uczogcm91bmRlZCB0ZXh0IHNlY29uZGFyeSBpY29uLW9ubHkgYnV0dG9uIGxpa2UgUHJpbWVVSVggKi9cbiAgICAgICAgICAgIC5wLWRpYWxvZy10aXRsZWJhci1pY29uIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgICAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgICAgICAgICAgICAgIHdpZHRoOiB2YXIoLS1wLWJ1dHRvbi1pY29uLW9ubHktd2lkdGgpO1xuICAgICAgICAgICAgICAgIGhlaWdodDogdmFyKC0tcC1idXR0b24taWNvbi1vbmx5LXdpZHRoKTtcbiAgICAgICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWlubGluZS1zdGFydDogdmFyKC0tcC1kaWFsb2ctaGVhZGVyLWdhcCk7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDAgbm9uZTtcbiAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICAgICAgY29sb3I6IHZhcigtLXAtYnV0dG9uLXRleHQtc2Vjb25kYXJ5LWNvbG9yKTtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICAgICAgLXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTtcbiAgICAgICAgICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgICAgICAgICAgICAgICBvdXRsaW5lLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIHZhcigtLXAtYnV0dG9uLXRyYW5zaXRpb24tZHVyYXRpb24pLCBjb2xvciB2YXIoLS1wLWJ1dHRvbi10cmFuc2l0aW9uLWR1cmF0aW9uKSxcbiAgICAgICAgICAgICAgICAgICAgb3V0bGluZS1jb2xvciB2YXIoLS1wLWJ1dHRvbi10cmFuc2l0aW9uLWR1cmF0aW9uKSwgYm94LXNoYWRvdyB2YXIoLS1wLWJ1dHRvbi10cmFuc2l0aW9uLWR1cmF0aW9uKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLnAtZGlhbG9nLXRpdGxlYmFyLWljb246aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IHZhcigtLXAtYnV0dG9uLXRleHQtc2Vjb25kYXJ5LWhvdmVyLWJhY2tncm91bmQpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1wLWJ1dHRvbi10ZXh0LXNlY29uZGFyeS1jb2xvcik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5wLWRpYWxvZy10aXRsZWJhci1pY29uOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tcC1idXR0b24tdGV4dC1zZWNvbmRhcnktYWN0aXZlLWJhY2tncm91bmQpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAucC1kaWFsb2ctdGl0bGViYXItaWNvbjpmb2N1cy12aXNpYmxlIHtcbiAgICAgICAgICAgICAgICBvdXRsaW5lOiB2YXIoLS1wLWJ1dHRvbi1mb2N1cy1yaW5nLXdpZHRoKSB2YXIoLS1wLWJ1dHRvbi1mb2N1cy1yaW5nLXN0eWxlKSB2YXIoLS1wLWJ1dHRvbi1zZWNvbmRhcnktZm9jdXMtcmluZy1jb2xvcik7XG4gICAgICAgICAgICAgICAgb3V0bGluZS1vZmZzZXQ6IHZhcigtLXAtYnV0dG9uLWZvY3VzLXJpbmctb2Zmc2V0KTtcbiAgICAgICAgICAgICAgICBib3gtc2hhZG93OiB2YXIoLS1wLWJ1dHRvbi1zZWNvbmRhcnktZm9jdXMtcmluZy1zaGFkb3cpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLnAtZGlhbG9nLWNsb3NlLWljb24ge1xuICAgICAgICAtLV9pY29uOiB2YXIoLS1wLWRpYWxvZy1jbG9zZS1pY29uKTtcbiAgICB9XG5cbiAgICAucC1kaWFsb2ctbWluaW1pemUtaWNvbiB7XG4gICAgICAgIC0tX2ljb246IHZhcigtLXAtZGlhbG9nLW1pbmltaXplLWljb24pO1xuICAgIH1cblxuICAgIC5wLWRpYWxvZy1tYXhpbWl6ZS1pY29uIHtcbiAgICAgICAgLS1faWNvbjogdmFyKC0tcC1kaWFsb2ctbWF4aW1pemUtaWNvbik7XG4gICAgfVxuXG4gICAgLyogdGhlIG1heGltaXplZCBkaWFsb2cgc2hvd3MgdGhlIHJlc3RvcmUgaWNvbiBvZiBtYXhpbWl6ZSAob25seSBpdHMgb3duIHRpdGxlYmFyLCBub3QgdGhlIG9uZSBvZiBhIGRpYWxvZyBuZXN0ZWQgaW5cbiAgICAgICBpdHMgY29udGVudCkgKi9cbiAgICAmLnAtZGlhbG9nLW1heGltaXplZCA+IC5wLWRpYWxvZy1ib3ggPiAucC1kaWFsb2ctdGl0bGViYXIgLnAtZGlhbG9nLW1heGltaXplLWljb24ge1xuICAgICAgICAtLV9pY29uOiB2YXIoLS1wLWRpYWxvZy11bm1heGltaXplLWljb24pO1xuICAgIH1cblxuICAgIC5wLWRpYWxvZy1ib3gge1xuICAgICAgICAucC1kaWFsb2ctY29udGVudCB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1wLWRpYWxvZy1jb2xvcik7XG4gICAgICAgICAgICBib3JkZXI6IDAgbm9uZTtcbiAgICAgICAgICAgIHBhZGRpbmc6IHZhcigtLXAtZGlhbG9nLWNvbnRlbnQtcGFkZGluZyk7XG4gICAgICAgIH1cblxuICAgICAgICAvKiBmb290ZXIgKHA6ZGlhbG9nIGZvb3RlciBmYWNldCwgcDpjb25maXJtRGlhbG9nIGJ1dHRvbiBwYW5lKSAqL1xuICAgICAgICAucC1kaWFsb2ctZm9vdGVyIHtcbiAgICAgICAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogdmFyKC0tcC1kaWFsb2ctY29sb3IpO1xuICAgICAgICAgICAgYm9yZGVyOiAwIG5vbmU7XG4gICAgICAgICAgICBwYWRkaW5nOiB2YXIoLS1wLWRpYWxvZy1mb290ZXItcGFkZGluZyk7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBlbmQ7XG5cbiAgICAgICAgICAgIGJ1dHRvbiB7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1pbmxpbmUtc3RhcnQ6IHZhcigtLXAtZGlhbG9nLWZvb3Rlci1nYXApO1xuICAgICAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyogbWF4aW1pemVkOiB0aGUgY29tcG9uZW50IHNpemVzIHRoZSBjb250YWluZXIgdG8gdGhlIHdpbmRvdywgdGhlIGJveCBmb2xsb3dzIGl0ICghaW1wb3J0YW50IGJlYXRzIHRoZSBpbmxpbmUgc2l6ZSkgKi9cbiAgICAmLnAtZGlhbG9nLW1heGltaXplZCB7XG4gICAgICAgIHBhZGRpbmc6IDA7XG5cbiAgICAgICAgLnAtZGlhbG9nLWJveCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJSAhaW1wb3J0YW50O1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICB0b3A6IDAgIWltcG9ydGFudDtcbiAgICAgICAgICAgIGxlZnQ6IDAgIWltcG9ydGFudDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiBjb25maXJtIGRpYWxvZyBhbmQgbWVzc2FnZSBkaWFsb2cgKi9cbiAgICAmLnAtY29uZmlybS1kaWFsb2cgLnAtZGlhbG9nLWJveCAucC1kaWFsb2ctY29udGVudCxcbiAgICAmLnAtbWVzc2FnZS1kaWFsb2cgLnAtZGlhbG9nLWJveCAucC1kaWFsb2ctY29udGVudCB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGdhcDogdmFyKC0tcC1jb25maXJtZGlhbG9nLWNvbnRlbnQtZ2FwKTtcbiAgICB9XG5cbiAgICAmLnAtY29uZmlybS1kaWFsb2cgLnAtZGlhbG9nLWJveCAucC1kaWFsb2ctY29udGVudCA+IHNwYW4sXG4gICAgJi5wLW1lc3NhZ2UtZGlhbG9nIC5wLWRpYWxvZy1ib3ggLnAtZGlhbG9nLWNvbnRlbnQgPiBzcGFuIHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1wLWNvbmZpcm1kaWFsb2ctbWVzc2FnZS1jb2xvcik7XG4gICAgICAgIGZvbnQtc2l6ZTogdmFyKC0tcC1jb25maXJtZGlhbG9nLW1lc3NhZ2UtZm9udC1zaXplKTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IHZhcigtLXAtY29uZmlybWRpYWxvZy1tZXNzYWdlLWZvbnQtd2VpZ2h0KTtcbiAgICB9XG5cbiAgICAmLnAtY29uZmlybS1kaWFsb2cgLnAtZGlhbG9nLWJveCAucC1kaWFsb2ctY29udGVudCA+IHNwYW4ucC1jb25maXJtLWRpYWxvZy1zZXZlcml0eSxcbiAgICAmLnAtbWVzc2FnZS1kaWFsb2cgLnAtZGlhbG9nLWJveCAucC1kaWFsb2ctY29udGVudCA+IHNwYW4ucC1kaWFsb2ctbWVzc2FnZSB7XG4gICAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgICAgICBsaW5lLWhlaWdodDogMTtcbiAgICAgICAgY29sb3I6IHZhcigtLXAtY29uZmlybWRpYWxvZy1pY29uLWNvbG9yKTtcbiAgICAgICAgZm9udC1zaXplOiB2YXIoLS1wLWNvbmZpcm1kaWFsb2ctaWNvbi1zaXplKTtcbiAgICB9XG5cbiAgICAvKiBzZXZlcml0eSBpY29uOiBwOmNvbmZpcm1EaWFsb2cgc2V2ZXJpdHksIG1lc3NhZ2UgZGlhbG9nIHNldmVyaXR5ICovXG4gICAgLnAtZGlhbG9nLXdhcm4taWNvbiB7XG4gICAgICAgIC0tX2ljb246IHZhcigtLXAtZGlhbG9nLXdhcm4taWNvbik7XG4gICAgfVxuXG4gICAgLnAtZGlhbG9nLWluZm8taWNvbiB7XG4gICAgICAgIC0tX2ljb246IHZhcigtLXAtZGlhbG9nLWluZm8taWNvbik7XG4gICAgfVxuXG4gICAgLnAtZGlhbG9nLWVycm9yLWljb24ge1xuICAgICAgICAtLV9pY29uOiB2YXIoLS1wLWRpYWxvZy1lcnJvci1pY29uKTtcbiAgICB9XG5cbiAgICAucC1kaWFsb2ctZmF0YWwtaWNvbiB7XG4gICAgICAgIC0tX2ljb246IHZhcigtLXAtZGlhbG9nLWZhdGFsLWljb24pO1xuICAgIH1cbn1cblxuLnAtZHJhZ2dhYmxlIC5wLWRpYWxvZy10aXRsZWJhciB7XG4gICAgY3Vyc29yOiBtb3ZlO1xufVxuXG4ucC1kaWFsb2ctZG9ja2luZy16b25lIHtcbiAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgYm90dG9tOiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xuICAgIGdhcDogdmFyKC0tcC1kaWFsb2ctaGVhZGVyLWdhcCk7XG4gICAgcGFkZGluZzogdmFyKC0tcC1kaWFsb2ctaGVhZGVyLWdhcCk7XG59XG5cbi8qIG1pbmltaXplZDogdGhlIGRpYWxvZyBpcyBoaWRkZW4sIHRoZSBkb2NraW5nIHpvbmUgc2hvd3MgYW4gb3duIGJhciBmb3IgaXQgd2l0aCB0aGUgdGl0bGUgYW5kIHRoZSB0aXRsZSBiYXIgaWNvbnMgKi9cbi5wLWRpYWxvZy1kb2NrZWQge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IHZhcigtLXAtZGlhbG9nLWhlYWRlci1nYXApO1xuICAgIG1heC13aWR0aDogMjByZW07XG4gICAgcGFkZGluZzogdmFyKC0tcC1kaWFsb2ctaGVhZGVyLWdhcCkgdmFyKC0tcC1kaWFsb2ctaGVhZGVyLWdhcCkgdmFyKC0tcC1kaWFsb2ctaGVhZGVyLWdhcCkgdmFyKC0tcC1kaWFsb2ctaGVhZGVyLXBhZGRpbmcpO1xuICAgIGJhY2tncm91bmQ6IHZhcigtLXAtZGlhbG9nLWJhY2tncm91bmQpO1xuICAgIGNvbG9yOiB2YXIoLS1wLWRpYWxvZy1jb2xvcik7XG4gICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tcC1kaWFsb2ctYm9yZGVyLWNvbG9yKTtcbiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1wLWRpYWxvZy1ib3JkZXItcmFkaXVzKTtcbiAgICBib3gtc2hhZG93OiB2YXIoLS1wLWRpYWxvZy1zaGFkb3cpO1xuXG4gICAgLnAtZGlhbG9nLWRvY2tlZC10aXRsZSB7XG4gICAgICAgIGZsZXg6IDEgMSBhdXRvO1xuICAgICAgICBmb250LXdlaWdodDogdmFyKC0tcC1kaWFsb2ctdGl0bGUtZm9udC13ZWlnaHQpO1xuICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICB9XG5cbiAgICAvKiByb3VuZGVkIHRleHQgc2Vjb25kYXJ5IGljb24tb25seSBidXR0b24gbGlrZSB0aGUgdGl0bGUgYmFyIGljb25zICovXG4gICAgLnAtZGlhbG9nLWRvY2tlZC1pY29uIHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICBmbGV4LXNocmluazogMDtcbiAgICAgICAgd2lkdGg6IHZhcigtLXAtYnV0dG9uLWljb24tb25seS13aWR0aCk7XG4gICAgICAgIGhlaWdodDogdmFyKC0tcC1idXR0b24taWNvbi1vbmx5LXdpZHRoKTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgICAgICBjb2xvcjogdmFyKC0tcC1idXR0b24tdGV4dC1zZWNvbmRhcnktY29sb3IpO1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgb3V0bGluZS1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgdmFyKC0tcC1idXR0b24tdHJhbnNpdGlvbi1kdXJhdGlvbiksIGNvbG9yIHZhcigtLXAtYnV0dG9uLXRyYW5zaXRpb24tZHVyYXRpb24pO1xuXG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tcC1idXR0b24tdGV4dC1zZWNvbmRhcnktaG92ZXItYmFja2dyb3VuZCk7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1wLWJ1dHRvbi10ZXh0LXNlY29uZGFyeS1hY3RpdmUtYmFja2dyb3VuZCk7XG4gICAgICAgIH1cblxuICAgICAgICAmOmZvY3VzLXZpc2libGUge1xuICAgICAgICAgICAgb3V0bGluZTogdmFyKC0tcC1idXR0b24tZm9jdXMtcmluZy13aWR0aCkgdmFyKC0tcC1idXR0b24tZm9jdXMtcmluZy1zdHlsZSkgdmFyKC0tcC1idXR0b24tc2Vjb25kYXJ5LWZvY3VzLXJpbmctY29sb3IpO1xuICAgICAgICAgICAgb3V0bGluZS1vZmZzZXQ6IHZhcigtLXAtYnV0dG9uLWZvY3VzLXJpbmctb2Zmc2V0KTtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IHZhcigtLXAtYnV0dG9uLXNlY29uZGFyeS1mb2N1cy1yaW5nLXNoYWRvdyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAucC1kaWFsb2ctZG9ja2VkLXJlc3RvcmUgLnAtaWNvbiB7XG4gICAgICAgIC0tX2ljb246IHZhcigtLXAtZGlhbG9nLXVubWluaW1pemUtaWNvbik7XG4gICAgfVxuXG4gICAgLnAtZGlhbG9nLWRvY2tlZC1tYXhpbWl6ZSAucC1pY29uIHtcbiAgICAgICAgLS1faWNvbjogdmFyKC0tcC1kaWFsb2ctbWF4aW1pemUtaWNvbik7XG4gICAgfVxuXG4gICAgLnAtZGlhbG9nLWRvY2tlZC1jbG9zZSAucC1pY29uIHtcbiAgICAgICAgLS1faWNvbjogdmFyKC0tcC1kaWFsb2ctY2xvc2UtaWNvbik7XG4gICAgfVxufVxuXG4vKiB0cmFuc2ZlciBlZmZlY3Qgd2hpbGUgbWluaW1pemluZyAqL1xuLnAtZGlhbG9nLW1pbmltaXppbmcge1xuICAgIGJvcmRlcjogMXB4IGRhc2hlZCB2YXIoLS1wLXByaW1hcnktY29sb3IpO1xuICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXAtZGlhbG9nLWJvcmRlci1yYWRpdXMpO1xufVxuXG4ucC1kaWFsb2ctbWFzayB7XG4gICAgcG9zaXRpb246IGZpeGVkO1xuICAgIHRvcDogMDtcbiAgICByaWdodDogMDtcbiAgICBib3R0b206IDA7XG4gICAgbGVmdDogMDtcbiAgICAtd2Via2l0LXVzZXItc2VsZWN0OiBub25lO1xuICAgIHVzZXItc2VsZWN0OiBub25lO1xufVxuXG4ucC1kaWFsb2ctcnRsIHtcbiAgICBkaXJlY3Rpb246IHJ0bDtcbn1cbiIsICIvKlxuICogRGl2aWRlcjogcDpkaXZpZGVyIChsYXlvdXQgaG9yaXpvbnRhbCB8IHZlcnRpY2FsLCB0eXBlIHNvbGlkIHwgZGFzaGVkIHwgZG90dGVkLCBhbGlnbiBsZWZ0IHwgY2VudGVyIHwgcmlnaHQgfCB0b3AgfCBib3R0b20pXG4gKi9cblxuLnAtZGl2aWRlci1ob3Jpem9udGFsIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuXG4gICAgJjo6YmVmb3JlIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBjb250ZW50OiBcIlwiO1xuICAgIH1cblxuICAgICYucC1kaXZpZGVyLWxlZnQge1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG4gICAgfVxuXG4gICAgJi5wLWRpdmlkZXItcmlnaHQge1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuICAgIH1cblxuICAgICYucC1kaXZpZGVyLWNlbnRlciB7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIH1cbn1cblxuLnAtZGl2aWRlci1jb250ZW50IHtcbiAgICB6LWluZGV4OiAxO1xufVxuXG4ucC1kaXZpZGVyLXZlcnRpY2FsIHtcbiAgICBtaW4taGVpZ2h0OiAxMDAlO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuXG4gICAgJjo6YmVmb3JlIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiA1MCU7XG4gICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgY29udGVudDogXCJcIjtcbiAgICB9XG5cbiAgICAmLnAtZGl2aWRlci10b3Age1xuICAgICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICB9XG5cbiAgICAmLnAtZGl2aWRlci1jZW50ZXIge1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIH1cblxuICAgICYucC1kaXZpZGVyLWJvdHRvbSB7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcbiAgICB9XG59XG5cbi5wLWRpdmlkZXIge1xuICAgICYucC1kaXZpZGVyLXNvbGlkIHtcbiAgICAgICAgJi5wLWRpdmlkZXItaG9yaXpvbnRhbDo6YmVmb3JlIHtcbiAgICAgICAgICAgIGJvcmRlci10b3Atc3R5bGU6IHNvbGlkO1xuICAgICAgICB9XG5cbiAgICAgICAgJi5wLWRpdmlkZXItdmVydGljYWw6OmJlZm9yZSB7XG4gICAgICAgICAgICBib3JkZXItbGVmdC1zdHlsZTogc29saWQ7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLnAtZGl2aWRlci1kYXNoZWQge1xuICAgICAgICAmLnAtZGl2aWRlci1ob3Jpem9udGFsOjpiZWZvcmUge1xuICAgICAgICAgICAgYm9yZGVyLXRvcC1zdHlsZTogZGFzaGVkO1xuICAgICAgICB9XG5cbiAgICAgICAgJi5wLWRpdmlkZXItdmVydGljYWw6OmJlZm9yZSB7XG4gICAgICAgICAgICBib3JkZXItbGVmdC1zdHlsZTogZGFzaGVkO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi5wLWRpdmlkZXItZG90dGVkIHtcbiAgICAgICAgJi5wLWRpdmlkZXItaG9yaXpvbnRhbDo6YmVmb3JlIHtcbiAgICAgICAgICAgIGJvcmRlci10b3Atc3R5bGU6IGRvdHRlZDtcbiAgICAgICAgfVxuXG4gICAgICAgICYucC1kaXZpZGVyLXZlcnRpY2FsOjpiZWZvcmUge1xuICAgICAgICAgICAgYm9yZGVyLWxlZnQtc3R5bGU6IGRvdHRlZDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5wLWRpdmlkZXItY29udGVudCB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXAtZGl2aWRlci1jb250ZW50LWJhY2tncm91bmQpO1xuICAgICAgICBjb2xvcjogdmFyKC0tcC1kaXZpZGVyLWNvbnRlbnQtY29sb3IpO1xuICAgIH1cblxuICAgICYucC1kaXZpZGVyLWhvcml6b250YWwge1xuICAgICAgICBtYXJnaW46IHZhcigtLXAtZGl2aWRlci1ob3Jpem9udGFsLW1hcmdpbik7XG4gICAgICAgIHBhZGRpbmc6IHZhcigtLXAtZGl2aWRlci1ob3Jpem9udGFsLXBhZGRpbmcpO1xuXG4gICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICBib3JkZXItdG9wLXdpZHRoOiAxcHg7XG4gICAgICAgICAgICBib3JkZXItdG9wLWNvbG9yOiB2YXIoLS1wLWRpdmlkZXItYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5wLWRpdmlkZXItY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiB2YXIoLS1wLWRpdmlkZXItaG9yaXpvbnRhbC1jb250ZW50LXBhZGRpbmcpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi5wLWRpdmlkZXItdmVydGljYWwge1xuICAgICAgICBtYXJnaW46IHZhcigtLXAtZGl2aWRlci12ZXJ0aWNhbC1tYXJnaW4pO1xuICAgICAgICBwYWRkaW5nOiB2YXIoLS1wLWRpdmlkZXItdmVydGljYWwtcGFkZGluZyk7XG5cbiAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgIGJvcmRlci1sZWZ0LXdpZHRoOiAxcHg7XG4gICAgICAgICAgICBib3JkZXItbGVmdC1jb2xvcjogdmFyKC0tcC1kaXZpZGVyLWJvcmRlci1jb2xvcik7XG4gICAgICAgIH1cblxuICAgICAgICAucC1kaXZpZGVyLWNvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogdmFyKC0tcC1kaXZpZGVyLXZlcnRpY2FsLWNvbnRlbnQtcGFkZGluZyk7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCAiLypcbiAqIEZpZWxkc2V0OiBwOmZpZWxkc2V0XG4gKlxuICogU3RhdGVzOiBwLWZpZWxkc2V0LXRvZ2dsZWFibGUsIHAtc3RhdGUtaG92ZXIgb24gdGhlIGxlZ2VuZCAoc2V0IGJ5IHRoZSBjb21wb25lbnQpXG4gKi9cblxuLyogdGhlIHRvZ2dsZWFibGUgbGVnZW5kIGlzIGZvY3VzYWJsZSAodGFiaW5kZXgpOyBrZXlib2FyZCBmb2N1cyByaW5nIGJlbG93ICovXG4ucC1maWVsZHNldC10b2dnbGVhYmxlIC5wLWZpZWxkc2V0LWxlZ2VuZCB7XG4gICAgb3V0bGluZTogMDtcbn1cblxuLnAtZmllbGRzZXQge1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiB2YXIoLS1wLWZpZWxkc2V0LXBhZGRpbmcpO1xuICAgIGJhY2tncm91bmQ6IHZhcigtLXAtZmllbGRzZXQtYmFja2dyb3VuZCk7XG4gICAgY29sb3I6IHZhcigtLXAtZmllbGRzZXQtY29sb3IpO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLXAtZmllbGRzZXQtYm9yZGVyLWNvbG9yKTtcbiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1wLWZpZWxkc2V0LWJvcmRlci1yYWRpdXMpO1xuXG4gICAgLnAtZmllbGRzZXQtbGVnZW5kIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgZ2FwOiB2YXIoLS1wLWZpZWxkc2V0LWxlZ2VuZC1nYXApO1xuICAgICAgICBwYWRkaW5nOiB2YXIoLS1wLWZpZWxkc2V0LWxlZ2VuZC1wYWRkaW5nKTtcbiAgICAgICAgZm9udC1zaXplOiB2YXIoLS1wLWZpZWxkc2V0LWxlZ2VuZC1mb250LXNpemUpO1xuICAgICAgICBmb250LXdlaWdodDogdmFyKC0tcC1maWVsZHNldC1sZWdlbmQtZm9udC13ZWlnaHQpO1xuICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1wLWZpZWxkc2V0LWxlZ2VuZC1iYWNrZ3JvdW5kKTtcbiAgICAgICAgY29sb3I6IHZhcigtLXAtZmllbGRzZXQtbGVnZW5kLWNvbG9yKTtcbiAgICAgICAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgICAgICAgYm9yZGVyLXdpZHRoOiB2YXIoLS1wLWZpZWxkc2V0LWxlZ2VuZC1ib3JkZXItd2lkdGgpO1xuICAgICAgICBib3JkZXItY29sb3I6IHZhcigtLXAtZmllbGRzZXQtbGVnZW5kLWJvcmRlci1jb2xvcik7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXAtZmllbGRzZXQtbGVnZW5kLWJvcmRlci1yYWRpdXMpO1xuICAgICAgICAtd2Via2l0LXVzZXItc2VsZWN0OiBub25lO1xuICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgICAgICAgb3V0bGluZS1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgdmFyKC0tcC1maWVsZHNldC10cmFuc2l0aW9uLWR1cmF0aW9uKSwgY29sb3IgdmFyKC0tcC1maWVsZHNldC10cmFuc2l0aW9uLWR1cmF0aW9uKSxcbiAgICAgICAgICAgIG91dGxpbmUtY29sb3IgdmFyKC0tcC1maWVsZHNldC10cmFuc2l0aW9uLWR1cmF0aW9uKSwgYm94LXNoYWRvdyB2YXIoLS1wLWZpZWxkc2V0LXRyYW5zaXRpb24tZHVyYXRpb24pO1xuICAgIH1cblxuICAgICYucC1maWVsZHNldC10b2dnbGVhYmxlIC5wLWZpZWxkc2V0LWxlZ2VuZCB7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB9XG5cbiAgICAucC1maWVsZHNldC1sZWdlbmQge1xuICAgICAgICAucC1maWVsZHNldC10b2dnbGVyIHtcbiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1wLWZpZWxkc2V0LXRvZ2dsZS1pY29uLWNvbG9yKTtcbiAgICAgICAgICAgIHRyYW5zaXRpb246IGNvbG9yIHZhcigtLXAtZmllbGRzZXQtdHJhbnNpdGlvbi1kdXJhdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAucC1maWVsZHNldC10b2dnbGUtaWNvbiB7XG4gICAgICAgICAgICAtLV9pY29uOiB2YXIoLS1wLWZpZWxkc2V0LXRvZ2dsZS1leHBhbmRlZC1pY29uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbYXJpYS1leHBhbmRlZD1cImZhbHNlXCJdIC5wLWZpZWxkc2V0LXRvZ2dsZS1pY29uIHtcbiAgICAgICAgICAgIC0tX2ljb246IHZhcigtLXAtZmllbGRzZXQtdG9nZ2xlLWNvbGxhcHNlZC1pY29uKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5wLWZpZWxkc2V0LWxlZ2VuZC5wLXN0YXRlLWhvdmVyLFxuICAgICYucC1maWVsZHNldC10b2dnbGVhYmxlIC5wLWZpZWxkc2V0LWxlZ2VuZDpob3ZlciB7XG4gICAgICAgIGJhY2tncm91bmQ6IHZhcigtLXAtZmllbGRzZXQtbGVnZW5kLWhvdmVyLWJhY2tncm91bmQpO1xuICAgICAgICBjb2xvcjogdmFyKC0tcC1maWVsZHNldC1sZWdlbmQtaG92ZXItY29sb3IpO1xuICAgIH1cblxuICAgIC5wLWZpZWxkc2V0LWxlZ2VuZC5wLXN0YXRlLWhvdmVyIC5wLWZpZWxkc2V0LXRvZ2dsZXIsXG4gICAgJi5wLWZpZWxkc2V0LXRvZ2dsZWFibGUgLnAtZmllbGRzZXQtbGVnZW5kOmhvdmVyIC5wLWZpZWxkc2V0LXRvZ2dsZXIge1xuICAgICAgICBjb2xvcjogdmFyKC0tcC1maWVsZHNldC10b2dnbGUtaWNvbi1ob3Zlci1jb2xvcik7XG4gICAgfVxuXG4gICAgLyoga2V5Ym9hcmQgb25seSAodGhlIGNvbXBvbmVudCBhbHNvIHNldHMgcC1zdGF0ZS1mb2N1cyBvbiBtb3VzZSBmb2N1cykgKi9cbiAgICAucC1maWVsZHNldC1sZWdlbmQ6Zm9jdXMtdmlzaWJsZSB7XG4gICAgICAgIG91dGxpbmU6IHZhcigtLXAtZmllbGRzZXQtbGVnZW5kLWZvY3VzLXJpbmctd2lkdGgpIHZhcigtLXAtZmllbGRzZXQtbGVnZW5kLWZvY3VzLXJpbmctc3R5bGUpIHZhcigtLXAtZmllbGRzZXQtbGVnZW5kLWZvY3VzLXJpbmctY29sb3IpO1xuICAgICAgICBvdXRsaW5lLW9mZnNldDogdmFyKC0tcC1maWVsZHNldC1sZWdlbmQtZm9jdXMtcmluZy1vZmZzZXQpO1xuICAgICAgICBib3gtc2hhZG93OiB2YXIoLS1wLWZpZWxkc2V0LWxlZ2VuZC1mb2N1cy1yaW5nLXNoYWRvdyk7XG4gICAgfVxuXG4gICAgLnAtZmllbGRzZXQtY29udGVudCB7XG4gICAgICAgIHBhZGRpbmc6IHZhcigtLXAtZmllbGRzZXQtY29udGVudC1wYWRkaW5nKTtcbiAgICB9XG59XG4iLCAiLypcbiAqIEdyb3dsOiBwOmdyb3dsIChQcmltZVVJWCB0b2FzdClcbiAqXG4gKiBNYXJrdXA6IC5wLWdyb3dsID4gLnAtZ3Jvd2wtaXRlbS1jb250YWluZXIucC1ncm93bC08c2V2ZXJpdHk+ID4gLnAtZ3Jvd2wtaXRlbVxuICogICAgICAgICA+IC5wLWdyb3dsLWljb24tY2xvc2UucC1ncm93bC1jbG9zZS1pY29uICsgc3Bhbi5wLWdyb3dsLWltYWdlLnAtZ3Jvd2wtPHNldmVyaXR5Pi1pY29uICsgLnAtZ3Jvd2wtbWVzc2FnZSAoPiAucC1ncm93bC10aXRsZSArIHApXG4gKiBTZXZlcml0eSBjbGFzc2VzIG9ubHkgc3dpdGNoIHRoZSBwcml2YXRlIC0tXyogdmFyaWFibGVzOiBwLWdyb3dsLWluZm8gfCAtc3VjY2VzcyB8IC13YXJuIHwgLWVycm9yIHwgLWZhdGFsXG4gKiBTdGF0ZXM6IHAtZ3Jvd2wtc3RpY2t5LiBQRiBvbmx5IHRva2VucyAob2Zmc2V0LCBnYXAsIGZhdGFsKTogdGhlIGdyb3dsIGJsb2NrIG9mIHByZXNldHMvKi5jc3NcbiAqIFZhcmlhbnRzOiBwLWdyb3dsLW91dGxpbmVkIHwgcC1ncm93bC1zaW1wbGUsIG9uIHRoZSAucC1ncm93bCBjb250YWluZXIgb3IgYW55IGFuY2VzdG9yLiBwOmdyb3dsIGhhcyBubyBzdHlsZUNsYXNzXG4gKiBhbmQgYXBwZW5kcyBpdHMgY29udGFpbmVyIHRvIHRoZSBib2R5LCBzbyB0b2RheTogb24gdGhlIGJvZHkgKGFsbCBncm93bHMpIG9yIGFkZGVkIHRvIHRoZSBjb21wb25lbnQgY29udGFpbmVyXG4gKiAoUEYoJ2dyb3dsJykuanEuYWRkQ2xhc3MoJ3AtZ3Jvd2wtb3V0bGluZWQnKSk7IGEgc3R5bGVDbGFzcyAvIHZhcmlhbnQgYXR0cmlidXRlIGluIHRoZSBjb3JlIHdvdWxkIHNldCBpdCB0aGVyZS5cbiAqL1xuXG4ucC1ncm93bCB7XG4gICAgcG9zaXRpb246IGZpeGVkO1xuICAgIHRvcDogdmFyKC0tcC1ncm93bC1vZmZzZXQpO1xuICAgIHJpZ2h0OiB2YXIoLS1wLWdyb3dsLW9mZnNldCk7XG4gICAgd2lkdGg6IHZhcigtLXAtdG9hc3Qtd2lkdGgpO1xuICAgIG1heC13aWR0aDogY2FsYygxMDBkdncgLSAyICogdmFyKC0tcC1ncm93bC1vZmZzZXQpKTtcblxuICAgIC5wLWdyb3dsLWl0ZW0tY29udGFpbmVyIHtcbiAgICAgICAgLS1fYmc6IHZhcigtLXAtdG9hc3QtaW5mby1iYWNrZ3JvdW5kKTtcbiAgICAgICAgLS1fYm9yZGVyLWNvbG9yOiB2YXIoLS1wLXRvYXN0LWluZm8tYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgLS1fY29sb3I6IHZhcigtLXAtdG9hc3QtaW5mby1jb2xvcik7XG4gICAgICAgIC0tX2RldGFpbC1jb2xvcjogdmFyKC0tcC10b2FzdC1pbmZvLWRldGFpbC1jb2xvcik7XG4gICAgICAgIC0tX3NoYWRvdzogdmFyKC0tcC10b2FzdC1pbmZvLXNoYWRvdyk7XG4gICAgICAgIC0tX2Nsb3NlLWhvdmVyLWJnOiB2YXIoLS1wLXRvYXN0LWluZm8tY2xvc2UtYnV0dG9uLWhvdmVyLWJhY2tncm91bmQpO1xuICAgICAgICAtLV9jbG9zZS1mb2N1cy1yaW5nLWNvbG9yOiB2YXIoLS1wLXRvYXN0LWluZm8tY2xvc2UtYnV0dG9uLWZvY3VzLXJpbmctY29sb3IpO1xuICAgICAgICAtLV9jbG9zZS1mb2N1cy1yaW5nLXNoYWRvdzogdmFyKC0tcC10b2FzdC1pbmZvLWNsb3NlLWJ1dHRvbi1mb2N1cy1yaW5nLXNoYWRvdyk7XG4gICAgICAgIC0tX291dGxpbmVkLWNvbG9yOiB2YXIoLS1wLXRvYXN0LWluZm8tb3V0bGluZWQtY29sb3IpO1xuICAgICAgICAtLV9vdXRsaW5lZC1ib3JkZXItY29sb3I6IHZhcigtLXAtdG9hc3QtaW5mby1vdXRsaW5lZC1ib3JkZXItY29sb3IpO1xuICAgICAgICAtLV9zaW1wbGUtY29sb3I6IHZhcigtLXAtdG9hc3QtaW5mby1zaW1wbGUtY29sb3IpO1xuXG4gICAgICAgIG1hcmdpbjogMCAwIHZhcigtLXAtZ3Jvd2wtZ2FwKSAwO1xuICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1fYmcpO1xuICAgICAgICBib3JkZXItd2lkdGg6IHZhcigtLXAtdG9hc3QtYm9yZGVyLXdpZHRoKTtcbiAgICAgICAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1fYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgY29sb3I6IHZhcigtLV9jb2xvcik7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXAtdG9hc3QtYm9yZGVyLXJhZGl1cyk7XG4gICAgICAgIGJveC1zaGFkb3c6IHZhcigtLV9zaGFkb3cpO1xuICAgICAgICBiYWNrZHJvcC1maWx0ZXI6IGJsdXIodmFyKC0tcC10b2FzdC1ibHVyKSk7XG5cbiAgICAgICAgJi5wLWdyb3dsLXN1Y2Nlc3Mge1xuICAgICAgICAgICAgLS1fYmc6IHZhcigtLXAtdG9hc3Qtc3VjY2Vzcy1iYWNrZ3JvdW5kKTtcbiAgICAgICAgICAgIC0tX2JvcmRlci1jb2xvcjogdmFyKC0tcC10b2FzdC1zdWNjZXNzLWJvcmRlci1jb2xvcik7XG4gICAgICAgICAgICAtLV9jb2xvcjogdmFyKC0tcC10b2FzdC1zdWNjZXNzLWNvbG9yKTtcbiAgICAgICAgICAgIC0tX2RldGFpbC1jb2xvcjogdmFyKC0tcC10b2FzdC1zdWNjZXNzLWRldGFpbC1jb2xvcik7XG4gICAgICAgICAgICAtLV9zaGFkb3c6IHZhcigtLXAtdG9hc3Qtc3VjY2Vzcy1zaGFkb3cpO1xuICAgICAgICAgICAgLS1fY2xvc2UtaG92ZXItYmc6IHZhcigtLXAtdG9hc3Qtc3VjY2Vzcy1jbG9zZS1idXR0b24taG92ZXItYmFja2dyb3VuZCk7XG4gICAgICAgICAgICAtLV9jbG9zZS1mb2N1cy1yaW5nLWNvbG9yOiB2YXIoLS1wLXRvYXN0LXN1Y2Nlc3MtY2xvc2UtYnV0dG9uLWZvY3VzLXJpbmctY29sb3IpO1xuICAgICAgICAgICAgLS1fY2xvc2UtZm9jdXMtcmluZy1zaGFkb3c6IHZhcigtLXAtdG9hc3Qtc3VjY2Vzcy1jbG9zZS1idXR0b24tZm9jdXMtcmluZy1zaGFkb3cpO1xuICAgICAgICAgICAgLS1fb3V0bGluZWQtY29sb3I6IHZhcigtLXAtdG9hc3Qtc3VjY2Vzcy1vdXRsaW5lZC1jb2xvcik7XG4gICAgICAgICAgICAtLV9vdXRsaW5lZC1ib3JkZXItY29sb3I6IHZhcigtLXAtdG9hc3Qtc3VjY2Vzcy1vdXRsaW5lZC1ib3JkZXItY29sb3IpO1xuICAgICAgICAgICAgLS1fc2ltcGxlLWNvbG9yOiB2YXIoLS1wLXRvYXN0LXN1Y2Nlc3Mtc2ltcGxlLWNvbG9yKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYucC1ncm93bC13YXJuIHtcbiAgICAgICAgICAgIC0tX2JnOiB2YXIoLS1wLXRvYXN0LXdhcm4tYmFja2dyb3VuZCk7XG4gICAgICAgICAgICAtLV9ib3JkZXItY29sb3I6IHZhcigtLXAtdG9hc3Qtd2Fybi1ib3JkZXItY29sb3IpO1xuICAgICAgICAgICAgLS1fY29sb3I6IHZhcigtLXAtdG9hc3Qtd2Fybi1jb2xvcik7XG4gICAgICAgICAgICAtLV9kZXRhaWwtY29sb3I6IHZhcigtLXAtdG9hc3Qtd2Fybi1kZXRhaWwtY29sb3IpO1xuICAgICAgICAgICAgLS1fc2hhZG93OiB2YXIoLS1wLXRvYXN0LXdhcm4tc2hhZG93KTtcbiAgICAgICAgICAgIC0tX2Nsb3NlLWhvdmVyLWJnOiB2YXIoLS1wLXRvYXN0LXdhcm4tY2xvc2UtYnV0dG9uLWhvdmVyLWJhY2tncm91bmQpO1xuICAgICAgICAgICAgLS1fY2xvc2UtZm9jdXMtcmluZy1jb2xvcjogdmFyKC0tcC10b2FzdC13YXJuLWNsb3NlLWJ1dHRvbi1mb2N1cy1yaW5nLWNvbG9yKTtcbiAgICAgICAgICAgIC0tX2Nsb3NlLWZvY3VzLXJpbmctc2hhZG93OiB2YXIoLS1wLXRvYXN0LXdhcm4tY2xvc2UtYnV0dG9uLWZvY3VzLXJpbmctc2hhZG93KTtcbiAgICAgICAgICAgIC0tX291dGxpbmVkLWNvbG9yOiB2YXIoLS1wLXRvYXN0LXdhcm4tb3V0bGluZWQtY29sb3IpO1xuICAgICAgICAgICAgLS1fb3V0bGluZWQtYm9yZGVyLWNvbG9yOiB2YXIoLS1wLXRvYXN0LXdhcm4tb3V0bGluZWQtYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgICAgIC0tX3NpbXBsZS1jb2xvcjogdmFyKC0tcC10b2FzdC13YXJuLXNpbXBsZS1jb2xvcik7XG4gICAgICAgIH1cblxuICAgICAgICAmLnAtZ3Jvd2wtZXJyb3Ige1xuICAgICAgICAgICAgLS1fYmc6IHZhcigtLXAtdG9hc3QtZXJyb3ItYmFja2dyb3VuZCk7XG4gICAgICAgICAgICAtLV9ib3JkZXItY29sb3I6IHZhcigtLXAtdG9hc3QtZXJyb3ItYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgICAgIC0tX2NvbG9yOiB2YXIoLS1wLXRvYXN0LWVycm9yLWNvbG9yKTtcbiAgICAgICAgICAgIC0tX2RldGFpbC1jb2xvcjogdmFyKC0tcC10b2FzdC1lcnJvci1kZXRhaWwtY29sb3IpO1xuICAgICAgICAgICAgLS1fc2hhZG93OiB2YXIoLS1wLXRvYXN0LWVycm9yLXNoYWRvdyk7XG4gICAgICAgICAgICAtLV9jbG9zZS1ob3Zlci1iZzogdmFyKC0tcC10b2FzdC1lcnJvci1jbG9zZS1idXR0b24taG92ZXItYmFja2dyb3VuZCk7XG4gICAgICAgICAgICAtLV9jbG9zZS1mb2N1cy1yaW5nLWNvbG9yOiB2YXIoLS1wLXRvYXN0LWVycm9yLWNsb3NlLWJ1dHRvbi1mb2N1cy1yaW5nLWNvbG9yKTtcbiAgICAgICAgICAgIC0tX2Nsb3NlLWZvY3VzLXJpbmctc2hhZG93OiB2YXIoLS1wLXRvYXN0LWVycm9yLWNsb3NlLWJ1dHRvbi1mb2N1cy1yaW5nLXNoYWRvdyk7XG4gICAgICAgICAgICAtLV9vdXRsaW5lZC1jb2xvcjogdmFyKC0tcC10b2FzdC1lcnJvci1vdXRsaW5lZC1jb2xvcik7XG4gICAgICAgICAgICAtLV9vdXRsaW5lZC1ib3JkZXItY29sb3I6IHZhcigtLXAtdG9hc3QtZXJyb3Itb3V0bGluZWQtYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgICAgIC0tX3NpbXBsZS1jb2xvcjogdmFyKC0tcC10b2FzdC1lcnJvci1zaW1wbGUtY29sb3IpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi5wLWdyb3dsLWZhdGFsIHtcbiAgICAgICAgICAgIC0tX2JnOiB2YXIoLS1wLWdyb3dsLWZhdGFsLWJhY2tncm91bmQpO1xuICAgICAgICAgICAgLS1fYm9yZGVyLWNvbG9yOiB2YXIoLS1wLWdyb3dsLWZhdGFsLWJvcmRlci1jb2xvcik7XG4gICAgICAgICAgICAtLV9jb2xvcjogdmFyKC0tcC1ncm93bC1mYXRhbC1jb2xvcik7XG4gICAgICAgICAgICAtLV9kZXRhaWwtY29sb3I6IHZhcigtLXAtZ3Jvd2wtZmF0YWwtZGV0YWlsLWNvbG9yKTtcbiAgICAgICAgICAgIC0tX3NoYWRvdzogdmFyKC0tcC1ncm93bC1mYXRhbC1zaGFkb3cpO1xuICAgICAgICAgICAgLS1fY2xvc2UtaG92ZXItYmc6IHZhcigtLXAtZ3Jvd2wtZmF0YWwtY2xvc2UtYnV0dG9uLWhvdmVyLWJhY2tncm91bmQpO1xuICAgICAgICAgICAgLS1fY2xvc2UtZm9jdXMtcmluZy1jb2xvcjogdmFyKC0tcC1ncm93bC1mYXRhbC1jbG9zZS1idXR0b24tZm9jdXMtcmluZy1jb2xvcik7XG4gICAgICAgICAgICAtLV9jbG9zZS1mb2N1cy1yaW5nLXNoYWRvdzogdmFyKC0tcC1ncm93bC1mYXRhbC1jbG9zZS1idXR0b24tZm9jdXMtcmluZy1zaGFkb3cpO1xuICAgICAgICAgICAgLS1fb3V0bGluZWQtY29sb3I6IHZhcigtLXAtZ3Jvd2wtZmF0YWwtb3V0bGluZWQtY29sb3IpO1xuICAgICAgICAgICAgLS1fb3V0bGluZWQtYm9yZGVyLWNvbG9yOiB2YXIoLS1wLWdyb3dsLWZhdGFsLW91dGxpbmVkLWJvcmRlci1jb2xvcik7XG4gICAgICAgICAgICAtLV9zaW1wbGUtY29sb3I6IHZhcigtLXAtZ3Jvd2wtZmF0YWwtc2ltcGxlLWNvbG9yKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5wLWdyb3dsLWl0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgICAgICAgICAgZ2FwOiB2YXIoLS1wLXRvYXN0LWNvbnRlbnQtZ2FwKTtcbiAgICAgICAgICAgIHBhZGRpbmc6IHZhcigtLXAtdG9hc3QtY29udGVudC1wYWRkaW5nKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8qIGNsb3NlIGljb24gKHNob3duIG9uIGhvdmVyIGJ5IHRoZSBjb21wb25lbnQpICovXG4gICAgICAgIC5wLWdyb3dsLWljb24tY2xvc2Uge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7IC8qIHRoZSBpbmxpbmUgZGlzcGxheTpub25lIG9mIHRoZSBjb21wb25lbnQgc3RpbGwgaGlkZXMgaXQgKi9cbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogY2FsYyh2YXIoLS1wLXRvYXN0LWNvbnRlbnQtZ2FwKSAvIDIpO1xuICAgICAgICAgICAgaW5zZXQtaW5saW5lLWVuZDogY2FsYyh2YXIoLS1wLXRvYXN0LWNvbnRlbnQtZ2FwKSAvIDIpO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgICAgd2lkdGg6IHZhcigtLXAtdG9hc3QtY2xvc2UtYnV0dG9uLXdpZHRoKTtcbiAgICAgICAgICAgIGhlaWdodDogdmFyKC0tcC10b2FzdC1jbG9zZS1idXR0b24taGVpZ2h0KTtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogdmFyKC0tcC10b2FzdC1jbG9zZS1pY29uLXNpemUpO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogdmFyKC0tcC10b2FzdC1jbG9zZS1idXR0b24tYm9yZGVyLXJhZGl1cyk7XG4gICAgICAgICAgICBjb2xvcjogdmFyKC0tX2NvbG9yKTtcbiAgICAgICAgICAgIG91dGxpbmUtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCB2YXIoLS1wLXRvYXN0LXRyYW5zaXRpb24tZHVyYXRpb24pLCBjb2xvciB2YXIoLS1wLXRvYXN0LXRyYW5zaXRpb24tZHVyYXRpb24pLFxuICAgICAgICAgICAgICAgIG91dGxpbmUtY29sb3IgdmFyKC0tcC10b2FzdC10cmFuc2l0aW9uLWR1cmF0aW9uKSwgYm94LXNoYWRvdyB2YXIoLS1wLXRvYXN0LXRyYW5zaXRpb24tZHVyYXRpb24pO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1fY2xvc2UtaG92ZXItYmcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmZvY3VzLXZpc2libGUge1xuICAgICAgICAgICAgICAgIG91dGxpbmU6IHZhcigtLXAtdG9hc3QtY2xvc2UtYnV0dG9uLWZvY3VzLXJpbmctd2lkdGgpIHZhcigtLXAtdG9hc3QtY2xvc2UtYnV0dG9uLWZvY3VzLXJpbmctc3R5bGUpIHZhcigtLV9jbG9zZS1mb2N1cy1yaW5nLWNvbG9yKTtcbiAgICAgICAgICAgICAgICBvdXRsaW5lLW9mZnNldDogdmFyKC0tcC10b2FzdC1jbG9zZS1idXR0b24tZm9jdXMtcmluZy1vZmZzZXQpO1xuICAgICAgICAgICAgICAgIGJveC1zaGFkb3c6IHZhcigtLV9jbG9zZS1mb2N1cy1yaW5nLXNoYWRvdyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAucC1ncm93bC1jbG9zZS1pY29uIHtcbiAgICAgICAgICAgIC0tX2ljb246IHZhcigtLXAtdG9hc3QtY2xvc2UtaWNvbik7XG4gICAgICAgIH1cblxuICAgICAgICAvKiBzZXZlcml0eSBpY29uICovXG4gICAgICAgIC5wLWdyb3dsLWltYWdlIHtcbiAgICAgICAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgICAgICAgICAgd2lkdGg6IHZhcigtLXAtdG9hc3QtaWNvbi1zaXplKTtcbiAgICAgICAgICAgIGhlaWdodDogdmFyKC0tcC10b2FzdC1pY29uLXNpemUpO1xuICAgICAgICAgICAgLyogY2VudGVyZWQgb24gdGhlIGZpcnN0IGxpbmUgb2YgdGhlIHRpdGxlICh0aGUgY29udGVudCBpcyB0b3AgYWxpZ25lZCBmb3IgbXVsdGkgbGluZSB0ZXh0cykgKi9cbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgIG1hcmdpbi1ibG9jay1zdGFydDogY2FsYygodmFyKC0tcC10eXBvZ3JhcGh5LWxpbmUtaGVpZ2h0KSAqIHZhcigtLXAtdG9hc3Qtc3VtbWFyeS1mb250LXNpemUpIC0gdmFyKC0tcC10b2FzdC1pY29uLXNpemUpKSAvIDIpO1xuICAgICAgICAgICAgZm9udC1zaXplOiB2YXIoLS1wLXRvYXN0LWljb24tc2l6ZSk7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMTtcbiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1fY29sb3IpO1xuICAgICAgICB9XG5cbiAgICAgICAgLnAtZ3Jvd2wtaW5mby1pY29uIHtcbiAgICAgICAgICAgIC0tX2ljb246IHZhcigtLXAtdG9hc3QtaW5mby1pY29uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5wLWdyb3dsLXN1Y2Nlc3MtaWNvbiB7XG4gICAgICAgICAgICAtLV9pY29uOiB2YXIoLS1wLXRvYXN0LXN1Y2Nlc3MtaWNvbik7XG4gICAgICAgIH1cblxuICAgICAgICAucC1ncm93bC13YXJuLWljb24ge1xuICAgICAgICAgICAgLS1faWNvbjogdmFyKC0tcC10b2FzdC13YXJuLWljb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgLnAtZ3Jvd2wtZXJyb3ItaWNvbiB7XG4gICAgICAgICAgICAtLV9pY29uOiB2YXIoLS1wLXRvYXN0LWVycm9yLWljb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgLnAtZ3Jvd2wtZmF0YWwtaWNvbiB7XG4gICAgICAgICAgICAtLV9pY29uOiB2YXIoLS1wLXRvYXN0LWZhdGFsLWljb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgLyogdGV4dHMgKi9cbiAgICAgICAgLnAtZ3Jvd2wtbWVzc2FnZSB7XG4gICAgICAgICAgICBmbGV4OiAxIDEgYXV0bztcbiAgICAgICAgICAgIG1pbi13aWR0aDogMDtcbiAgICAgICAgICAgIC8qIHRoZSBjbG9zZSBpY29uIGlzIHBvc2l0aW9uZWQgb3ZlciB0aGUgY29udGVudDoga2VlcCBsb25nIHRleHRzIGNsZWFyIG9mIGl0ICovXG4gICAgICAgICAgICBwYWRkaW5nLWlubGluZS1lbmQ6IHZhcigtLXAtdG9hc3QtY2xvc2UtYnV0dG9uLXdpZHRoKTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgZ2FwOiB2YXIoLS1wLXRvYXN0LXRleHQtZ2FwKTtcbiAgICAgICAgICAgIG92ZXJmbG93LXdyYXA6IGJyZWFrLXdvcmQ7XG4gICAgICAgIH1cblxuICAgICAgICAucC1ncm93bC10aXRsZSB7XG4gICAgICAgICAgICBmb250LXNpemU6IHZhcigtLXAtdG9hc3Qtc3VtbWFyeS1mb250LXNpemUpO1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IHZhcigtLXAtdG9hc3Qtc3VtbWFyeS1mb250LXdlaWdodCk7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogdmFyKC0tcC10eXBvZ3JhcGh5LWxpbmUtaGVpZ2h0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5wLWdyb3dsLW1lc3NhZ2UgcCB7XG4gICAgICAgICAgICBmb250LXNpemU6IHZhcigtLXAtdG9hc3QtZGV0YWlsLWZvbnQtc2l6ZSk7XG4gICAgICAgICAgICBmb250LXdlaWdodDogdmFyKC0tcC10b2FzdC1kZXRhaWwtZm9udC13ZWlnaHQpO1xuICAgICAgICAgICAgY29sb3I6IHZhcigtLV9kZXRhaWwtY29sb3IpO1xuICAgICAgICAgICAgdGV4dC13cmFwOiBwcmV0dHk7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi8qXG4gKiBWYXJpYW50cy4gOmlzKCkgZ2l2ZXMgKDAsMywwKSB3aGV0aGVyIHRoZSBjbGFzcyBpcyBvbiB0aGUgY29udGFpbmVyIGl0c2VsZiBvciBvbiBhbiBhbmNlc3Rvciwgc28gdGhlIHZhcmlhbnQgd2luc1xuICogb3ZlciB0aGUgc2V2ZXJpdHkgcnVsZXMgKHNhbWUgc3BlY2lmaWNpdHksIGxhdGVyKSwgd2hpY2ggc3dpdGNoIHRoZSBzYW1lIHByaXZhdGUgdmFyaWFibGVzLlxuICogb3V0bGluZWQ6IG92ZXJsYXkgc3VyZmFjZSwgY29sb3JlZCBib3JkZXIsIHN1bW1hcnkgYW5kIGljb24gKGxpa2UgcC1tZXNzYWdlLW91dGxpbmVkKS5cbiAqIHNpbXBsZTogbm8gYm9yZGVyIGFuZCBubyBzZXZlcml0eSB0aW50LCBjb2xvcmVkIHN1bW1hcnkgYW5kIGljb24uIFRoZSBvdmVybGF5IGJhY2tncm91bmQgYW5kIHNoYWRvdyBzdGF5OiB0aGUgZ3Jvd2xcbiAqIGZsb2F0cyBvdmVyIGFyYml0cmFyeSBjb250ZW50IGFuZCB3b3VsZCBiZSB1bnJlYWRhYmxlIChhbmQgaW5kaXN0aW5ndWlzaGFibGUgZnJvbSBpdCkgd2l0aG91dCB0aGVtLlxuICovXG46aXMoLnAtZ3Jvd2wtb3V0bGluZWQucC1ncm93bCwgLnAtZ3Jvd2wtb3V0bGluZWQgLnAtZ3Jvd2wpIC5wLWdyb3dsLWl0ZW0tY29udGFpbmVyIHtcbiAgICAtLV9iZzogdmFyKC0tcC10b2FzdC1vdXRsaW5lZC1iYWNrZ3JvdW5kKTtcbiAgICAtLV9ib3JkZXItY29sb3I6IHZhcigtLV9vdXRsaW5lZC1ib3JkZXItY29sb3IpO1xuICAgIC0tX2NvbG9yOiB2YXIoLS1fb3V0bGluZWQtY29sb3IpO1xuICAgIC0tX2RldGFpbC1jb2xvcjogdmFyKC0tcC10b2FzdC1vdXRsaW5lZC1kZXRhaWwtY29sb3IpO1xuICAgIC0tX3NoYWRvdzogdmFyKC0tcC10b2FzdC1vdXRsaW5lZC1zaGFkb3cpO1xuICAgIC0tX2Nsb3NlLWhvdmVyLWJnOiB2YXIoLS1wLXRvYXN0LW91dGxpbmVkLWNsb3NlLWJ1dHRvbi1ob3Zlci1iYWNrZ3JvdW5kKTtcblxuICAgIGJvcmRlci13aWR0aDogdmFyKC0tcC10b2FzdC1vdXRsaW5lZC1ib3JkZXItd2lkdGgpO1xufVxuXG46aXMoLnAtZ3Jvd2wtc2ltcGxlLnAtZ3Jvd2wsIC5wLWdyb3dsLXNpbXBsZSAucC1ncm93bCkgLnAtZ3Jvd2wtaXRlbS1jb250YWluZXIge1xuICAgIC0tX2JnOiB2YXIoLS1wLXRvYXN0LXNpbXBsZS1iYWNrZ3JvdW5kKTtcbiAgICAtLV9ib3JkZXItY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIC0tX2NvbG9yOiB2YXIoLS1fc2ltcGxlLWNvbG9yKTtcbiAgICAtLV9kZXRhaWwtY29sb3I6IHZhcigtLXAtdG9hc3Qtc2ltcGxlLWRldGFpbC1jb2xvcik7XG4gICAgLS1fc2hhZG93OiB2YXIoLS1wLXRvYXN0LXNpbXBsZS1zaGFkb3cpO1xuICAgIC0tX2Nsb3NlLWhvdmVyLWJnOiB2YXIoLS1wLXRvYXN0LXNpbXBsZS1jbG9zZS1idXR0b24taG92ZXItYmFja2dyb3VuZCk7XG59XG5cbi5wLWdyb3dsLWl0ZW0tY29udGFpbmVyIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbi5wLWdyb3dsLWl0ZW0gcCB7XG4gICAgcGFkZGluZzogMDtcbiAgICBtYXJnaW46IDA7XG59XG5cbi5wLWdyb3dsLWljb24tY2xvc2Uge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG59XG5cbi5wLWdyb3dsLXRpdGxlIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbn1cbiIsICIvKlxuICogSW5wbGFjZTogcDppbnBsYWNlXG4gKlxuICogU3RhdGVzIG9mIC5wLWlucGxhY2UtZGlzcGxheTogcC1zdGF0ZS1oaWdobGlnaHQgKGhvdmVyLCBzZXQgYnkgdGhlIGNvbXBvbmVudCksIHAtc3RhdGUtZm9jdXNcbiAqIEVkaXRvciBtb2RlOiAucC1pbnBsYWNlLWNvbnRlbnQgZm9sbG93ZWQgYnkgdGhlIHNhdmUgLyBjYW5jZWwgYnV0dG9ucyAoLnAtaW5wbGFjZS1lZGl0b3IpXG4gKi9cblxuLnAtaW5wbGFjZSB7XG4gICAgJi5wLWlucGxhY2UtcGFzc3dvcmQgLnAtbWFza2VkOjpiZWZvcmUge1xuICAgICAgICBjb250ZW50OiAnXFwyMDIyXFwyMDIyXFwyMDIyXFwyMDIyXFwyMDIyXFwyMDIyJztcbiAgICB9XG5cbiAgICAvKiBhIGRpc2FibGVkIGlucGxhY2UgcmVuZGVycyAucC1pbnBsYWNlLWRpc3BsYXktZGlzYWJsZWQgaW5zdGVhZCBvZiAucC1pbnBsYWNlLWRpc3BsYXkgKi9cbiAgICAucC1pbnBsYWNlLWRpc3BsYXksXG4gICAgLnAtaW5wbGFjZS1kaXNwbGF5LWRpc2FibGVkIHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBib3JkZXI6IDAgbm9uZTtcbiAgICAgICAgcGFkZGluZzogdmFyKC0tcC1pbnBsYWNlLXBhZGRpbmcpO1xuICAgICAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1wLWlucGxhY2UtYm9yZGVyLXJhZGl1cyk7XG4gICAgfVxuXG4gICAgLnAtaW5wbGFjZS1kaXNwbGF5IHtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICBvdXRsaW5lLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCB2YXIoLS1wLWlucGxhY2UtdHJhbnNpdGlvbi1kdXJhdGlvbiksIGNvbG9yIHZhcigtLXAtaW5wbGFjZS10cmFuc2l0aW9uLWR1cmF0aW9uKSxcbiAgICAgICAgICAgIG91dGxpbmUtY29sb3IgdmFyKC0tcC1pbnBsYWNlLXRyYW5zaXRpb24tZHVyYXRpb24pLCBib3gtc2hhZG93IHZhcigtLXAtaW5wbGFjZS10cmFuc2l0aW9uLWR1cmF0aW9uKTtcblxuICAgICAgICAmLnAtc3RhdGUtaGlnaGxpZ2h0IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHZhcigtLXAtaW5wbGFjZS1kaXNwbGF5LWhvdmVyLWJhY2tncm91bmQpO1xuICAgICAgICAgICAgY29sb3I6IHZhcigtLXAtaW5wbGFjZS1kaXNwbGF5LWhvdmVyLWNvbG9yKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYucC1zdGF0ZS1mb2N1cyB7XG4gICAgICAgICAgICBvdXRsaW5lOiB2YXIoLS1wLWlucGxhY2UtZm9jdXMtcmluZy13aWR0aCkgdmFyKC0tcC1pbnBsYWNlLWZvY3VzLXJpbmctc3R5bGUpIHZhcigtLXAtaW5wbGFjZS1mb2N1cy1yaW5nLWNvbG9yKTtcbiAgICAgICAgICAgIG91dGxpbmUtb2Zmc2V0OiB2YXIoLS1wLWlucGxhY2UtZm9jdXMtcmluZy1vZmZzZXQpO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogdmFyKC0tcC1pbnBsYWNlLWZvY3VzLXJpbmctc2hhZG93KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5wLWlucGxhY2UtZGlzcGxheS1kaXNhYmxlZCB7XG4gICAgICAgIGN1cnNvcjogZGVmYXVsdDtcbiAgICAgICAgb3BhY2l0eTogdmFyKC0tcC1kaXNhYmxlZC1vcGFjaXR5KTtcbiAgICB9XG5cbiAgICAucC1pbnBsYWNlLXNhdmUtaWNvbiB7XG4gICAgICAgIC0tX2ljb246IHZhcigtLXAtaW5wbGFjZS1zYXZlLWljb24pO1xuICAgIH1cblxuICAgIC5wLWlucGxhY2UtY2FuY2VsLWljb24ge1xuICAgICAgICAtLV9pY29uOiB2YXIoLS1wLWlucGxhY2UtY2FuY2VsLWljb24pO1xuICAgIH1cblxuICAgIC5wLWlucGxhY2UtZWRpdG9yIHtcbiAgICAgICAgbWFyZ2luLWlubGluZS1zdGFydDogdmFyKC0tcC1pbnBsYWNlLWVkaXRvci1nYXApO1xuICAgIH1cblxuICAgIC5wLWlucGxhY2UtY2FuY2VsIHtcbiAgICAgICAgbWFyZ2luLWlubGluZS1zdGFydDogdmFyKC0tcC1pbnBsYWNlLWVkaXRvci1idXR0b24tZ2FwKTtcbiAgICB9XG59XG4iLCAiLypcbiAqIE1lZ2FNZW51OiBwOm1lZ2FNZW51ICgucC1tZWdhbWVudSwgLnAtbWVnYW1lbnUtdmVydGljYWwpXG4gKlxuICogVGhlIG1lZ2FtZW51IGFsc28gY2FycmllcyAucC1tZW51YmFyOiB0aGUgY29tbW9uIC5wLW1lbnUgYW5kIC5wLW1lbnViYXIgcnVsZXMgYXJlIGluIG1lbnUvbWVudS5iYXNlLmNzc1xuICogKGJ1bmRsZWQgYmVmb3JlIHRoaXMgZmlsZSwgc28gdGhlIG1lZ2FtZW51IHRva2VucyBiZWxvdyBvdmVycmlkZSB0aGUgbWVudWJhciBvbmVzKS5cbiAqIFN1Ym1lbnUgb3ZlcmxheTogLnAtbWVudS1jaGlsZCA+IHRhYmxlID4gdGJvZHkgPiB0ciA+IHRkIChjb2x1bW4pID4gdWwucC1tZW51LWxpc3QgPiBsaS5wLWNvbXBvbmVudC1oZWFkZXIgPiBzcGFuLlxuICovXG4ucC1tZWdhbWVudSB7XG4gICAgPiAucC1tZW51LWxpc3QgPiAucC1tZW51aXRlbS1zZWxlY3RlZCA+IC5wLW1lbnVpdGVtLWxpbmsge1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgdGV4dC11bmRlcmxpbmUtb2Zmc2V0OiAwLjI1ZW07XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbi10aGlja25lc3M6IDAuMTI1ZW07XG4gICAgfVxuXG4gICAgdGQge1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgIH1cblxuICAgIC5wLWNvbXBvbmVudC1oZWFkZXIgc3BhbiB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIH1cbn1cblxuLyogUHJpbWVVSVggbWluLXdpZHRoIDEyLjVyZW0gKG9ubHkgd2l0aG91dCBhbiBpbmxpbmUgd2lkdGgsIHNlZSBtZW51L21lbnUuYmFzZS5jc3MpICovXG4ucC1tZWdhbWVudS12ZXJ0aWNhbCB7XG4gICAgd2lkdGg6IGZpdC1jb250ZW50O1xuXG4gICAgJjpub3QoW3N0eWxlKj1cIndpZHRoXCJdKSB7XG4gICAgICAgIG1pbi13aWR0aDogMTIuNXJlbTtcbiAgICB9XG5cbiAgICAucC1tZW51LXBhcmVudCB7XG4gICAgICAgIGNsZWFyOiBib3RoO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICB9XG59XG5cbi5wLW1lbnUucC1tZWdhbWVudSB7XG4gICAgLS1fYmc6IHZhcigtLXAtbWVnYW1lbnUtYmFja2dyb3VuZCk7XG4gICAgLS1fYm9yZGVyLWNvbG9yOiB2YXIoLS1wLW1lZ2FtZW51LWJvcmRlci1jb2xvcik7XG4gICAgLS1fYm9yZGVyLXJhZGl1czogdmFyKC0tcC1tZWdhbWVudS1ib3JkZXItcmFkaXVzKTtcbiAgICAtLV9jb2xvcjogdmFyKC0tcC1tZWdhbWVudS1jb2xvcik7XG4gICAgLS1fbGlzdC1wYWRkaW5nOiB2YXIoLS1wLW1lZ2FtZW51LXN1Ym1lbnUtcGFkZGluZyk7XG4gICAgLS1fbGlzdC1nYXA6IHZhcigtLXAtbWVnYW1lbnUtc3VibWVudS1nYXApO1xuICAgIC0tX3RyYW5zaXRpb24tZHVyYXRpb246IHZhcigtLXAtbWVnYW1lbnUtdHJhbnNpdGlvbi1kdXJhdGlvbik7XG4gICAgLS1faXRlbS1ib3JkZXItcmFkaXVzOiB2YXIoLS1wLW1lZ2FtZW51LWl0ZW0tYm9yZGVyLXJhZGl1cyk7XG4gICAgLS1faXRlbS1wYWRkaW5nOiB2YXIoLS1wLW1lZ2FtZW51LWl0ZW0tcGFkZGluZyk7XG4gICAgLS1faXRlbS1nYXA6IHZhcigtLXAtbWVnYW1lbnUtaXRlbS1nYXApO1xuICAgIC0tX2l0ZW0tY29sb3I6IHZhcigtLXAtbWVnYW1lbnUtaXRlbS1jb2xvcik7XG4gICAgLS1faXRlbS1mb2N1cy1iYWNrZ3JvdW5kOiB2YXIoLS1wLW1lZ2FtZW51LWl0ZW0tZm9jdXMtYmFja2dyb3VuZCk7XG4gICAgLS1faXRlbS1mb2N1cy1jb2xvcjogdmFyKC0tcC1tZWdhbWVudS1pdGVtLWZvY3VzLWNvbG9yKTtcbiAgICAtLV9pdGVtLWFjdGl2ZS1iYWNrZ3JvdW5kOiB2YXIoLS1wLW1lZ2FtZW51LWl0ZW0tYWN0aXZlLWJhY2tncm91bmQpO1xuICAgIC0tX2l0ZW0tYWN0aXZlLWNvbG9yOiB2YXIoLS1wLW1lZ2FtZW51LWl0ZW0tYWN0aXZlLWNvbG9yKTtcbiAgICAtLV9pdGVtLWljb24tY29sb3I6IHZhcigtLXAtbWVnYW1lbnUtaXRlbS1pY29uLWNvbG9yKTtcbiAgICAtLV9pdGVtLWljb24tZm9jdXMtY29sb3I6IHZhcigtLXAtbWVnYW1lbnUtaXRlbS1pY29uLWZvY3VzLWNvbG9yKTtcbiAgICAtLV9pdGVtLWljb24tYWN0aXZlLWNvbG9yOiB2YXIoLS1wLW1lZ2FtZW51LWl0ZW0taWNvbi1hY3RpdmUtY29sb3IpO1xuICAgIC0tX2l0ZW0taWNvbi1zaXplOiB2YXIoLS1wLW1lZ2FtZW51LWl0ZW0taWNvbi1zaXplKTtcbiAgICAtLV9pdGVtLWxhYmVsLWZvbnQtc2l6ZTogdmFyKC0tcC1tZWdhbWVudS1pdGVtLWxhYmVsLWZvbnQtc2l6ZSk7XG4gICAgLS1faXRlbS1sYWJlbC1mb250LXdlaWdodDogdmFyKC0tcC1tZWdhbWVudS1pdGVtLWxhYmVsLWZvbnQtd2VpZ2h0KTtcbiAgICAtLV9zdWJtZW51LWljb24tY29sb3I6IHZhcigtLXAtbWVnYW1lbnUtc3VibWVudS1pY29uLWNvbG9yKTtcbiAgICAtLV9zdWJtZW51LWljb24tZm9jdXMtY29sb3I6IHZhcigtLXAtbWVnYW1lbnUtc3VibWVudS1pY29uLWZvY3VzLWNvbG9yKTtcbiAgICAtLV9zdWJtZW51LWljb24tc2l6ZTogdmFyKC0tcC1tZWdhbWVudS1zdWJtZW51LWljb24tc2l6ZSk7XG4gICAgLS1fc3VibWVudS1pY29uLWFjdGl2ZS1jb2xvcjogdmFyKC0tcC1tZWdhbWVudS1zdWJtZW51LWljb24tYWN0aXZlLWNvbG9yKTtcbiAgICAtLV9zZXBhcmF0b3ItYm9yZGVyLWNvbG9yOiB2YXIoLS1wLW1lZ2FtZW51LXNlcGFyYXRvci1ib3JkZXItY29sb3IpO1xuICAgIC0tX3N1Ym1lbnUtbGFiZWwtYmFja2dyb3VuZDogdmFyKC0tcC1tZWdhbWVudS1zdWJtZW51LWxhYmVsLWJhY2tncm91bmQpO1xuICAgIC0tX3N1Ym1lbnUtbGFiZWwtY29sb3I6IHZhcigtLXAtbWVnYW1lbnUtc3VibWVudS1sYWJlbC1jb2xvcik7XG4gICAgLS1fc3VibWVudS1sYWJlbC1mb250LXNpemU6IHZhcigtLXAtbWVnYW1lbnUtc3VibWVudS1sYWJlbC1mb250LXNpemUpO1xuICAgIC0tX3N1Ym1lbnUtbGFiZWwtZm9udC13ZWlnaHQ6IHZhcigtLXAtbWVnYW1lbnUtc3VibWVudS1sYWJlbC1mb250LXdlaWdodCk7XG4gICAgLS1fc3VibWVudS1sYWJlbC1wYWRkaW5nOiB2YXIoLS1wLW1lZ2FtZW51LXN1Ym1lbnUtbGFiZWwtcGFkZGluZyk7XG4gICAgLS1fc3VibWVudS1iYWNrZ3JvdW5kOiB2YXIoLS1wLW1lZ2FtZW51LW92ZXJsYXktYmFja2dyb3VuZCk7XG4gICAgLS1fc3VibWVudS1ib3JkZXItY29sb3I6IHZhcigtLXAtbWVnYW1lbnUtb3ZlcmxheS1ib3JkZXItY29sb3IpO1xuICAgIC0tX3N1Ym1lbnUtYm9yZGVyLXJhZGl1czogdmFyKC0tcC1tZWdhbWVudS1vdmVybGF5LWJvcmRlci1yYWRpdXMpO1xuICAgIC0tX3N1Ym1lbnUtcGFkZGluZzogdmFyKC0tcC1tZWdhbWVudS1vdmVybGF5LXBhZGRpbmcpO1xuICAgIC0tX3N1Ym1lbnUtc2hhZG93OiB2YXIoLS1wLW1lZ2FtZW51LW92ZXJsYXktc2hhZG93KTtcbiAgICAtLV9wYWRkaW5nOiB2YXIoLS1wLW1lZ2FtZW51LWhvcml6b250YWwtb3JpZW50YXRpb24tcGFkZGluZyk7XG4gICAgLS1fZ2FwOiB2YXIoLS1wLW1lZ2FtZW51LWhvcml6b250YWwtb3JpZW50YXRpb24tZ2FwKTtcbiAgICAtLV9iYXNlLWl0ZW0tcGFkZGluZzogdmFyKC0tcC1tZWdhbWVudS1iYXNlLWl0ZW0tcGFkZGluZyk7XG4gICAgLS1fYmFzZS1pdGVtLWJvcmRlci1yYWRpdXM6IHZhcigtLXAtbWVnYW1lbnUtYmFzZS1pdGVtLWJvcmRlci1yYWRpdXMpO1xuXG4gICAgLnAtY29tcG9uZW50LWhlYWRlciB7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIGJhY2tncm91bmQ6IHZhcigtLV9zdWJtZW51LWxhYmVsLWJhY2tncm91bmQpO1xuICAgICAgICBjb2xvcjogdmFyKC0tX3N1Ym1lbnUtbGFiZWwtY29sb3IpO1xuICAgICAgICBmbG9hdDogbm9uZTtcbiAgICAgICAgYm9yZGVyOiAwIG5vbmU7XG4gICAgICAgIHBhZGRpbmc6IHZhcigtLV9zdWJtZW51LWxhYmVsLXBhZGRpbmcpO1xuICAgICAgICBmb250LXdlaWdodDogdmFyKC0tX3N1Ym1lbnUtbGFiZWwtZm9udC13ZWlnaHQpO1xuICAgICAgICBmb250LXNpemU6IHZhcigtLV9zdWJtZW51LWxhYmVsLWZvbnQtc2l6ZSk7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgdmFyKC0tX3RyYW5zaXRpb24tZHVyYXRpb24pLCBjb2xvciB2YXIoLS1fdHJhbnNpdGlvbi1kdXJhdGlvbik7XG4gICAgfVxuXG4gICAgLyogY29sdW1ucyAqL1xuICAgIC5wLW1lbnUtY2hpbGQgLnAtbWVudS1saXN0IHtcbiAgICAgICAgbWluLXdpZHRoOiAxMi41cmVtO1xuICAgIH1cblxuICAgIC8qIHJvb3QgbGlzdDogbm8gb3duIHBhZGRpbmcsIHRoZSBjb250YWluZXIgaGFzIHRoZSBvcmllbnRhdGlvbiBwYWRkaW5nICgtLV9saXN0LXBhZGRpbmcgaXMgZm9yIHRoZSBjb2x1bW5zKSAqL1xuICAgID4gLnAtbWVudS1saXN0IHtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICB9XG5cbiAgICAvKiBvdmVybGF5OiBQcmltZVVJWCBvdmVybGF5IGNvbG9yLCB0aGUgY29sdW1ucyBhcmUgc2VwYXJhdGVkIGJ5IHRoZSBvdmVybGF5IGdhcCAocGFkZGluZyBvZiBlYWNoIGNvbHVtbikgKi9cbiAgICAucC1tZW51LWNoaWxkIHtcbiAgICAgICAgY29sb3I6IHZhcigtLXAtbWVnYW1lbnUtb3ZlcmxheS1jb2xvcik7XG4gICAgfVxuXG4gICAgLnAtbWVudS1saXN0ID4gdGFibGUgPiB0Ym9keSA+IHRyID4gdGQge1xuICAgICAgICBwYWRkaW5nOiB2YXIoLS1wLW1lZ2FtZW51LW92ZXJsYXktZ2FwKTtcbiAgICB9XG5cbiAgICAvKiBzZXBhcmF0b3IgYmV0d2VlbiB0aGUgc3VibWVudXMgb2YgYSBjb2x1bW4gKGFuIGhyLCBzZWUgTWVnYU1lbnVSZW5kZXJlciNlbmNvZGVTdWJtZW51U2VwYXJhdG9yKSAqL1xuICAgIHRkID4gaHIucC1kaXZpZGVyIHtcbiAgICAgICAgbWFyZ2luOiB2YXIoLS1fbGlzdC1nYXApIDA7XG4gICAgICAgIGJvcmRlcjogMCBub25lO1xuICAgICAgICBib3JkZXItYmxvY2stc3RhcnQ6IDFweCBzb2xpZCB2YXIoLS1fc2VwYXJhdG9yLWJvcmRlci1jb2xvcik7XG4gICAgfVxuXG4gICAgLnAtbWVudS1saXN0IC5wLW1lbnVpdGVtLWxpbmsge1xuICAgICAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1faXRlbS1ib3JkZXItcmFkaXVzKTtcbiAgICB9XG5cbiAgICAmLnAtbWVnYW1lbnUtdmVydGljYWwge1xuICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1fYmcpO1xuICAgICAgICBwYWRkaW5nOiB2YXIoLS1wLW1lZ2FtZW51LXZlcnRpY2FsLW9yaWVudGF0aW9uLXBhZGRpbmcpO1xuXG4gICAgICAgIC8qIGJhciBhbmQgcm9vdCBsaXN0OiBjb2x1bW4gaW5zdGVhZCBvZiB0aGUgbWVudWJhciByb3cgKi9cbiAgICAgICAgJixcbiAgICAgICAgPiAucC1tZW51LWxpc3Qge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgIGZsZXgtd3JhcDogbm93cmFwO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7XG4gICAgICAgICAgICBnYXA6IHZhcigtLXAtbWVnYW1lbnUtdmVydGljYWwtb3JpZW50YXRpb24tZ2FwKTtcbiAgICAgICAgfVxuXG4gICAgICAgID4gLnAtbWVudS1saXN0IC5wLW1lbnVpdGVtIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICAgICAgICA+IC5wLW1lbnVpdGVtLWxpbmsge1xuICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLV9pdGVtLWJvcmRlci1yYWRpdXMpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLyogbm8gYXV0byBtYXJnaW4gb2YgdGhlIG1lbnViYXIgZmFjZXRzIGluIHRoZSBjb2x1bW4gKGl0IHdvdWxkIHJpZ2h0LWFsaWduIHRoZW0pICovXG4gICAgICAgID4gOmlzKC5wLW1lbnViYXItb3B0aW9ucywgLnAtbWVudWJhci1lbmQpIHtcbiAgICAgICAgICAgIG1hcmdpbi1pbmxpbmUtc3RhcnQ6IDA7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCAiLypcbiAqIE1lbnU6IHA6bWVudVxuICpcbiAqIFRoZSBjb21tb24gLnAtbWVudSBtYXJrdXAgaXMgc3R5bGVkIGJ5IG1lbnUvbWVudS5iYXNlLmNzcywgdGhpcyBmaWxlIG9ubHkgaGFzIHRoZSB0b2dnbGVhYmxlIHA6bWVudVxuICogKC5wLW1lbnUtdG9nZ2xlYWJsZSk6IGxpLnAtY29tcG9uZW50LWhlYWRlclthcmlhLWV4cGFuZGVkXSA+IGgzID4gWy5wLW1lbnUtdG9nZ2xlLWljb25dIFsucC1zdWJtZW51LWljb25dIGxhYmVsLlxuICovXG4ucC1tZW51LnAtbWVudS10b2dnbGVhYmxlIHtcbiAgICBsaS5wLWNvbXBvbmVudC1oZWFkZXIge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIG1pbi1oZWlnaHQ6IDA7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB9XG5cbiAgICAucC1tZW51LWxpc3QgLnAtY29tcG9uZW50LWhlYWRlciB7XG4gICAgICAgIC5wLW1lbnUtdG9nZ2xlLWljb24ge1xuICAgICAgICAgICAgLS1faWNvbjogdmFyKC0tcC1tZW51LXRvZ2dsZS1jb2xsYXBzZWQtaWNvbik7XG4gICAgICAgICAgICBjb2xvcjogdmFyKC0tX3N1Ym1lbnUtaWNvbi1jb2xvcik7XG4gICAgICAgICAgICBmb250LXNpemU6IHZhcigtLV9zdWJtZW51LWljb24tc2l6ZSk7XG4gICAgICAgIH1cblxuICAgICAgICAmW2FyaWEtZXhwYW5kZWQ9XCJ0cnVlXCJdIC5wLW1lbnUtdG9nZ2xlLWljb24ge1xuICAgICAgICAgICAgLS1faWNvbjogdmFyKC0tcC1tZW51LXRvZ2dsZS1leHBhbmRlZC1pY29uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8qIHRoZSBjb2xsYXBzZWQgaWNvbiBwb2ludHMgdG8gdGhlIHN0YXJ0ICovXG4gICAgICAgICY6bm90KFthcmlhLWV4cGFuZGVkPVwidHJ1ZVwiXSkgLnAtbWVudS10b2dnbGUtaWNvbjpkaXIocnRsKSB7XG4gICAgICAgICAgICBzY2FsZTogLTEgMTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5wLXN1Ym1lbnUtaWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogdmFyKC0tX2l0ZW0taWNvbi1jb2xvcik7XG4gICAgICAgICAgICBmb250LXNpemU6IHZhcigtLV9pdGVtLWljb24tc2l6ZSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLnAtc3RhdGUtaG92ZXIge1xuICAgICAgICAgICAgLnAtbWVudS10b2dnbGUtaWNvbiB7XG4gICAgICAgICAgICAgICAgY29sb3I6IHZhcigtLV9zdWJtZW51LWljb24tZm9jdXMtY29sb3IpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAucC1zdWJtZW51LWljb24ge1xuICAgICAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1faXRlbS1pY29uLWZvY3VzLWNvbG9yKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cbiIsICIvKlxuICogTWVzc2FnZTogcDptZXNzYWdlIChpbmxpbmUgbWVzc2FnZSBvZiBhIHNpbmdsZSBjb21wb25lbnQpLCBzaGFyZWQgYnkgcDpzdGF0aWNNZXNzYWdlIChzZWUgc3RhdGljbWVzc2FnZS5jc3MpXG4gKlxuICogTWFya3VwIHA6bWVzc2FnZTogICAgICAgLnAtbWVzc2FnZS5wLW1lc3NhZ2UtPHNldmVyaXR5PiA+IGRpdiA+IHNwYW4ucC1tZXNzYWdlLTxzZXZlcml0eT4taWNvbi5wLW1lc3NhZ2UtPHNldmVyaXR5Pi1pY29uXG4gKiAgICAgICAgICAgICAgICAgICAgICAgICArIHNwYW4ucC1tZXNzYWdlLTxzZXZlcml0eT4tc3VtbWFyeSArIHNwYW4ucC1tZXNzYWdlLTxzZXZlcml0eT4tZGV0YWlsXG4gKiBNYXJrdXAgcDpzdGF0aWNNZXNzYWdlOiAucC1tZXNzYWdlLnAtc3RhdGljbWVzc2FnZS5wLW1lc3NhZ2UtPHNldmVyaXR5PiA+IChhLnAtbWVzc2FnZXMtY2xvc2UpICsgc3Bhbi5pY29uICsgc3VtbWFyeSArIGRldGFpbFxuICogU2V2ZXJpdHkgY2xhc3NlcyBvbmx5IHN3aXRjaCB0aGUgcHJpdmF0ZSAtLV8qIHZhcmlhYmxlczogcC1tZXNzYWdlLWluZm8gfCAtc3VjY2VzcyB8IC13YXJuIHwgLWVycm9yIHwgLWZhdGFsLFxuICogcC1tZXNzYWdlLXNlY29uZGFyeSB8IC1jb250cmFzdCAocDpzdGF0aWNNZXNzYWdlIHNldmVyaXR5IG9ubHkpLCBwLW1lc3NhZ2UtaWNvbi1vbmx5IChkaXNwbGF5PVwiaWNvblwiKS5cbiAqIFZhcmlhbnRzIChzdHlsZUNsYXNzLCBhbHNvIG9uIHA6bWVzc2FnZXMsIHNlZSBtZXNzYWdlcy5jc3MpOiBwLW1lc3NhZ2Utb3V0bGluZWQgfCBwLW1lc3NhZ2Utc2ltcGxlLFxuICogc2l6ZXMgcC1tZXNzYWdlLXNtIHwgcC1tZXNzYWdlLWxnLlxuICogUEYgb25seSB0b2tlbnMgKGZhdGFsLCBzZWNvbmRhcnkvY29udHJhc3QgaWNvbiwgc3VtbWFyeS9kZXRhaWwpOiB0aGUgbWVzc2FnZSBibG9jayBvZiBwcmVzZXRzLyouY3NzXG4gKi9cblxuLnAtbWVzc2FnZSB7XG4gICAgLS1fYmc6IHZhcigtLXAtbWVzc2FnZS1pbmZvLWJhY2tncm91bmQpO1xuICAgIC0tX2JvcmRlci1jb2xvcjogdmFyKC0tcC1tZXNzYWdlLWluZm8tYm9yZGVyLWNvbG9yKTtcbiAgICAtLV9jb2xvcjogdmFyKC0tcC1tZXNzYWdlLWluZm8tY29sb3IpO1xuICAgIC0tX3NoYWRvdzogdmFyKC0tcC1tZXNzYWdlLWluZm8tc2hhZG93KTtcbiAgICAtLV9vdXRsaW5lZC1jb2xvcjogdmFyKC0tcC1tZXNzYWdlLWluZm8tb3V0bGluZWQtY29sb3IpO1xuICAgIC0tX291dGxpbmVkLWJvcmRlci1jb2xvcjogdmFyKC0tcC1tZXNzYWdlLWluZm8tb3V0bGluZWQtYm9yZGVyLWNvbG9yKTtcbiAgICAtLV9zaW1wbGUtY29sb3I6IHZhcigtLXAtbWVzc2FnZS1pbmZvLXNpbXBsZS1jb2xvcik7XG4gICAgLS1fY2xvc2UtaG92ZXItYmc6IHZhcigtLXAtbWVzc2FnZS1pbmZvLWNsb3NlLWJ1dHRvbi1ob3Zlci1iYWNrZ3JvdW5kKTtcbiAgICAtLV9jbG9zZS1mb2N1cy1yaW5nLWNvbG9yOiB2YXIoLS1wLW1lc3NhZ2UtaW5mby1jbG9zZS1idXR0b24tZm9jdXMtcmluZy1jb2xvcik7XG4gICAgLS1fY2xvc2UtZm9jdXMtcmluZy1zaGFkb3c6IHZhcigtLXAtbWVzc2FnZS1pbmZvLWNsb3NlLWJ1dHRvbi1mb2N1cy1yaW5nLXNoYWRvdyk7XG4gICAgLS1fYm9yZGVyLXdpZHRoOiB2YXIoLS1wLW1lc3NhZ2UtYm9yZGVyLXdpZHRoKTtcbiAgICAtLV9wYWRkaW5nOiB2YXIoLS1wLW1lc3NhZ2UtY29udGVudC1wYWRkaW5nKTtcbiAgICAtLV9mb250LXNpemU6IHZhcigtLXAtbWVzc2FnZS10ZXh0LWZvbnQtc2l6ZSk7XG4gICAgLS1faWNvbi1zaXplOiB2YXIoLS1wLW1lc3NhZ2UtaWNvbi1zaXplKTtcbiAgICAtLV9jbG9zZS1pY29uLXNpemU6IHZhcigtLXAtbWVzc2FnZS1jbG9zZS1pY29uLXNpemUpO1xuXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgYm9yZGVyLXJhZGl1czogdmFyKC0tcC1tZXNzYWdlLWJvcmRlci1yYWRpdXMpO1xuICAgIGZvbnQtc2l6ZTogdmFyKC0tX2ZvbnQtc2l6ZSk7XG4gICAgZm9udC13ZWlnaHQ6IHZhcigtLXAtbWVzc2FnZS10ZXh0LWZvbnQtd2VpZ2h0KTtcbiAgICBvdXRsaW5lLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIHZhcigtLXAtbWVzc2FnZS10cmFuc2l0aW9uLWR1cmF0aW9uKSwgY29sb3IgdmFyKC0tcC1tZXNzYWdlLXRyYW5zaXRpb24tZHVyYXRpb24pLFxuICAgICAgICBib3JkZXItY29sb3IgdmFyKC0tcC1tZXNzYWdlLXRyYW5zaXRpb24tZHVyYXRpb24pO1xuXG4gICAgLyogYSBuZXcgbWVzc2FnZSAoaW5zZXJ0ZWQgYnkgYW4gYWpheCB1cGRhdGUgb3IgdGhlIGNsaWVudCBzaWRlIHZhbGlkYXRpb24pIGZhZGVzIGluLCBiYXNlL2NvbW1vbi5jc3MgKi9cbiAgICAmOm5vdCgucC1zdGF0aWNtZXNzYWdlKSB7XG4gICAgICAgIC0tX2VudGVyLW9mZnNldDogdmFyKC0tcC1tZXNzYWdlLWVudGVyLW9mZnNldCk7XG4gICAgICAgIGFuaW1hdGlvbjogcC1lbnRlciB2YXIoLS1wLW1lc3NhZ2UtZW50ZXItZHVyYXRpb24pIHZhcigtLXAtdHJhbnNpdGlvbi1lYXNpbmctZW50ZXIpO1xuICAgIH1cblxuICAgIC8qIGFuIGVtcHR5IHA6bWVzc2FnZSAobm8gbWVzc2FnZSkgaGFzIG5vIHNldmVyaXR5IGNsYXNzIGFuZCBzdGF5cyBpbnZpc2libGUgKi9cbiAgICAmLnAtbWVzc2FnZS1pbmZvLFxuICAgICYucC1tZXNzYWdlLXN1Y2Nlc3MsXG4gICAgJi5wLW1lc3NhZ2Utd2FybixcbiAgICAmLnAtbWVzc2FnZS1lcnJvcixcbiAgICAmLnAtbWVzc2FnZS1mYXRhbCxcbiAgICAmLnAtbWVzc2FnZS1zZWNvbmRhcnksXG4gICAgJi5wLW1lc3NhZ2UtY29udHJhc3Qge1xuICAgICAgICBwYWRkaW5nOiB2YXIoLS1fcGFkZGluZyk7XG4gICAgICAgIGJhY2tncm91bmQ6IHZhcigtLV9iZyk7XG4gICAgICAgIGJvcmRlcjogdmFyKC0tX2JvcmRlci13aWR0aCkgc29saWQgdmFyKC0tX2JvcmRlci1jb2xvcik7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1fY29sb3IpO1xuICAgICAgICBib3gtc2hhZG93OiB2YXIoLS1fc2hhZG93KTtcbiAgICB9XG5cbiAgICAmLnAtbWVzc2FnZS1zdWNjZXNzIHtcbiAgICAgICAgLS1fYmc6IHZhcigtLXAtbWVzc2FnZS1zdWNjZXNzLWJhY2tncm91bmQpO1xuICAgICAgICAtLV9ib3JkZXItY29sb3I6IHZhcigtLXAtbWVzc2FnZS1zdWNjZXNzLWJvcmRlci1jb2xvcik7XG4gICAgICAgIC0tX2NvbG9yOiB2YXIoLS1wLW1lc3NhZ2Utc3VjY2Vzcy1jb2xvcik7XG4gICAgICAgIC0tX3NoYWRvdzogdmFyKC0tcC1tZXNzYWdlLXN1Y2Nlc3Mtc2hhZG93KTtcbiAgICAgICAgLS1fb3V0bGluZWQtY29sb3I6IHZhcigtLXAtbWVzc2FnZS1zdWNjZXNzLW91dGxpbmVkLWNvbG9yKTtcbiAgICAgICAgLS1fb3V0bGluZWQtYm9yZGVyLWNvbG9yOiB2YXIoLS1wLW1lc3NhZ2Utc3VjY2Vzcy1vdXRsaW5lZC1ib3JkZXItY29sb3IpO1xuICAgICAgICAtLV9zaW1wbGUtY29sb3I6IHZhcigtLXAtbWVzc2FnZS1zdWNjZXNzLXNpbXBsZS1jb2xvcik7XG4gICAgICAgIC0tX2Nsb3NlLWhvdmVyLWJnOiB2YXIoLS1wLW1lc3NhZ2Utc3VjY2Vzcy1jbG9zZS1idXR0b24taG92ZXItYmFja2dyb3VuZCk7XG4gICAgICAgIC0tX2Nsb3NlLWZvY3VzLXJpbmctY29sb3I6IHZhcigtLXAtbWVzc2FnZS1zdWNjZXNzLWNsb3NlLWJ1dHRvbi1mb2N1cy1yaW5nLWNvbG9yKTtcbiAgICAgICAgLS1fY2xvc2UtZm9jdXMtcmluZy1zaGFkb3c6IHZhcigtLXAtbWVzc2FnZS1zdWNjZXNzLWNsb3NlLWJ1dHRvbi1mb2N1cy1yaW5nLXNoYWRvdyk7XG4gICAgfVxuXG4gICAgJi5wLW1lc3NhZ2Utd2FybiB7XG4gICAgICAgIC0tX2JnOiB2YXIoLS1wLW1lc3NhZ2Utd2Fybi1iYWNrZ3JvdW5kKTtcbiAgICAgICAgLS1fYm9yZGVyLWNvbG9yOiB2YXIoLS1wLW1lc3NhZ2Utd2Fybi1ib3JkZXItY29sb3IpO1xuICAgICAgICAtLV9jb2xvcjogdmFyKC0tcC1tZXNzYWdlLXdhcm4tY29sb3IpO1xuICAgICAgICAtLV9zaGFkb3c6IHZhcigtLXAtbWVzc2FnZS13YXJuLXNoYWRvdyk7XG4gICAgICAgIC0tX291dGxpbmVkLWNvbG9yOiB2YXIoLS1wLW1lc3NhZ2Utd2Fybi1vdXRsaW5lZC1jb2xvcik7XG4gICAgICAgIC0tX291dGxpbmVkLWJvcmRlci1jb2xvcjogdmFyKC0tcC1tZXNzYWdlLXdhcm4tb3V0bGluZWQtYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgLS1fc2ltcGxlLWNvbG9yOiB2YXIoLS1wLW1lc3NhZ2Utd2Fybi1zaW1wbGUtY29sb3IpO1xuICAgICAgICAtLV9jbG9zZS1ob3Zlci1iZzogdmFyKC0tcC1tZXNzYWdlLXdhcm4tY2xvc2UtYnV0dG9uLWhvdmVyLWJhY2tncm91bmQpO1xuICAgICAgICAtLV9jbG9zZS1mb2N1cy1yaW5nLWNvbG9yOiB2YXIoLS1wLW1lc3NhZ2Utd2Fybi1jbG9zZS1idXR0b24tZm9jdXMtcmluZy1jb2xvcik7XG4gICAgICAgIC0tX2Nsb3NlLWZvY3VzLXJpbmctc2hhZG93OiB2YXIoLS1wLW1lc3NhZ2Utd2Fybi1jbG9zZS1idXR0b24tZm9jdXMtcmluZy1zaGFkb3cpO1xuICAgIH1cblxuICAgICYucC1tZXNzYWdlLWVycm9yIHtcbiAgICAgICAgLS1fYmc6IHZhcigtLXAtbWVzc2FnZS1lcnJvci1iYWNrZ3JvdW5kKTtcbiAgICAgICAgLS1fYm9yZGVyLWNvbG9yOiB2YXIoLS1wLW1lc3NhZ2UtZXJyb3ItYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgLS1fY29sb3I6IHZhcigtLXAtbWVzc2FnZS1lcnJvci1jb2xvcik7XG4gICAgICAgIC0tX3NoYWRvdzogdmFyKC0tcC1tZXNzYWdlLWVycm9yLXNoYWRvdyk7XG4gICAgICAgIC0tX291dGxpbmVkLWNvbG9yOiB2YXIoLS1wLW1lc3NhZ2UtZXJyb3Itb3V0bGluZWQtY29sb3IpO1xuICAgICAgICAtLV9vdXRsaW5lZC1ib3JkZXItY29sb3I6IHZhcigtLXAtbWVzc2FnZS1lcnJvci1vdXRsaW5lZC1ib3JkZXItY29sb3IpO1xuICAgICAgICAtLV9zaW1wbGUtY29sb3I6IHZhcigtLXAtbWVzc2FnZS1lcnJvci1zaW1wbGUtY29sb3IpO1xuICAgICAgICAtLV9jbG9zZS1ob3Zlci1iZzogdmFyKC0tcC1tZXNzYWdlLWVycm9yLWNsb3NlLWJ1dHRvbi1ob3Zlci1iYWNrZ3JvdW5kKTtcbiAgICAgICAgLS1fY2xvc2UtZm9jdXMtcmluZy1jb2xvcjogdmFyKC0tcC1tZXNzYWdlLWVycm9yLWNsb3NlLWJ1dHRvbi1mb2N1cy1yaW5nLWNvbG9yKTtcbiAgICAgICAgLS1fY2xvc2UtZm9jdXMtcmluZy1zaGFkb3c6IHZhcigtLXAtbWVzc2FnZS1lcnJvci1jbG9zZS1idXR0b24tZm9jdXMtcmluZy1zaGFkb3cpO1xuICAgIH1cblxuICAgICYucC1tZXNzYWdlLWZhdGFsIHtcbiAgICAgICAgLS1fYmc6IHZhcigtLXAtbWVzc2FnZS1mYXRhbC1iYWNrZ3JvdW5kKTtcbiAgICAgICAgLS1fYm9yZGVyLWNvbG9yOiB2YXIoLS1wLW1lc3NhZ2UtZmF0YWwtYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgLS1fY29sb3I6IHZhcigtLXAtbWVzc2FnZS1mYXRhbC1jb2xvcik7XG4gICAgICAgIC0tX3NoYWRvdzogdmFyKC0tcC1tZXNzYWdlLWZhdGFsLXNoYWRvdyk7XG4gICAgICAgIC0tX291dGxpbmVkLWNvbG9yOiB2YXIoLS1wLW1lc3NhZ2UtZmF0YWwtb3V0bGluZWQtY29sb3IpO1xuICAgICAgICAtLV9vdXRsaW5lZC1ib3JkZXItY29sb3I6IHZhcigtLXAtbWVzc2FnZS1mYXRhbC1vdXRsaW5lZC1ib3JkZXItY29sb3IpO1xuICAgICAgICAtLV9zaW1wbGUtY29sb3I6IHZhcigtLXAtbWVzc2FnZS1mYXRhbC1zaW1wbGUtY29sb3IpO1xuICAgICAgICAtLV9jbG9zZS1ob3Zlci1iZzogdmFyKC0tcC1tZXNzYWdlLWZhdGFsLWNsb3NlLWJ1dHRvbi1ob3Zlci1iYWNrZ3JvdW5kKTtcbiAgICAgICAgLS1fY2xvc2UtZm9jdXMtcmluZy1jb2xvcjogdmFyKC0tcC1tZXNzYWdlLWZhdGFsLWNsb3NlLWJ1dHRvbi1mb2N1cy1yaW5nLWNvbG9yKTtcbiAgICAgICAgLS1fY2xvc2UtZm9jdXMtcmluZy1zaGFkb3c6IHZhcigtLXAtbWVzc2FnZS1mYXRhbC1jbG9zZS1idXR0b24tZm9jdXMtcmluZy1zaGFkb3cpO1xuICAgIH1cblxuICAgIC8qIHA6c3RhdGljTWVzc2FnZSBvbmx5IChzZXZlcml0eT1cInNlY29uZGFyeVwiIC8gXCJjb250cmFzdFwiKSwgcDptZXNzYWdlIGdldHMgaXRzIHNldmVyaXR5IGZyb20gdGhlIEZhY2VzTWVzc2FnZSAqL1xuICAgICYucC1tZXNzYWdlLXNlY29uZGFyeSB7XG4gICAgICAgIC0tX2JnOiB2YXIoLS1wLW1lc3NhZ2Utc2Vjb25kYXJ5LWJhY2tncm91bmQpO1xuICAgICAgICAtLV9ib3JkZXItY29sb3I6IHZhcigtLXAtbWVzc2FnZS1zZWNvbmRhcnktYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgLS1fY29sb3I6IHZhcigtLXAtbWVzc2FnZS1zZWNvbmRhcnktY29sb3IpO1xuICAgICAgICAtLV9zaGFkb3c6IHZhcigtLXAtbWVzc2FnZS1zZWNvbmRhcnktc2hhZG93KTtcbiAgICAgICAgLS1fb3V0bGluZWQtY29sb3I6IHZhcigtLXAtbWVzc2FnZS1zZWNvbmRhcnktb3V0bGluZWQtY29sb3IpO1xuICAgICAgICAtLV9vdXRsaW5lZC1ib3JkZXItY29sb3I6IHZhcigtLXAtbWVzc2FnZS1zZWNvbmRhcnktb3V0bGluZWQtYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgLS1fc2ltcGxlLWNvbG9yOiB2YXIoLS1wLW1lc3NhZ2Utc2Vjb25kYXJ5LXNpbXBsZS1jb2xvcik7XG4gICAgICAgIC0tX2Nsb3NlLWhvdmVyLWJnOiB2YXIoLS1wLW1lc3NhZ2Utc2Vjb25kYXJ5LWNsb3NlLWJ1dHRvbi1ob3Zlci1iYWNrZ3JvdW5kKTtcbiAgICAgICAgLS1fY2xvc2UtZm9jdXMtcmluZy1jb2xvcjogdmFyKC0tcC1tZXNzYWdlLXNlY29uZGFyeS1jbG9zZS1idXR0b24tZm9jdXMtcmluZy1jb2xvcik7XG4gICAgICAgIC0tX2Nsb3NlLWZvY3VzLXJpbmctc2hhZG93OiB2YXIoLS1wLW1lc3NhZ2Utc2Vjb25kYXJ5LWNsb3NlLWJ1dHRvbi1mb2N1cy1yaW5nLXNoYWRvdyk7XG4gICAgfVxuXG4gICAgJi5wLW1lc3NhZ2UtY29udHJhc3Qge1xuICAgICAgICAtLV9iZzogdmFyKC0tcC1tZXNzYWdlLWNvbnRyYXN0LWJhY2tncm91bmQpO1xuICAgICAgICAtLV9ib3JkZXItY29sb3I6IHZhcigtLXAtbWVzc2FnZS1jb250cmFzdC1ib3JkZXItY29sb3IpO1xuICAgICAgICAtLV9jb2xvcjogdmFyKC0tcC1tZXNzYWdlLWNvbnRyYXN0LWNvbG9yKTtcbiAgICAgICAgLS1fc2hhZG93OiB2YXIoLS1wLW1lc3NhZ2UtY29udHJhc3Qtc2hhZG93KTtcbiAgICAgICAgLS1fb3V0bGluZWQtY29sb3I6IHZhcigtLXAtbWVzc2FnZS1jb250cmFzdC1vdXRsaW5lZC1jb2xvcik7XG4gICAgICAgIC0tX291dGxpbmVkLWJvcmRlci1jb2xvcjogdmFyKC0tcC1tZXNzYWdlLWNvbnRyYXN0LW91dGxpbmVkLWJvcmRlci1jb2xvcik7XG4gICAgICAgIC0tX3NpbXBsZS1jb2xvcjogdmFyKC0tcC1tZXNzYWdlLWNvbnRyYXN0LXNpbXBsZS1jb2xvcik7XG4gICAgICAgIC0tX2Nsb3NlLWhvdmVyLWJnOiB2YXIoLS1wLW1lc3NhZ2UtY29udHJhc3QtY2xvc2UtYnV0dG9uLWhvdmVyLWJhY2tncm91bmQpO1xuICAgICAgICAtLV9jbG9zZS1mb2N1cy1yaW5nLWNvbG9yOiB2YXIoLS1wLW1lc3NhZ2UtY29udHJhc3QtY2xvc2UtYnV0dG9uLWZvY3VzLXJpbmctY29sb3IpO1xuICAgICAgICAtLV9jbG9zZS1mb2N1cy1yaW5nLXNoYWRvdzogdmFyKC0tcC1tZXNzYWdlLWNvbnRyYXN0LWNsb3NlLWJ1dHRvbi1mb2N1cy1yaW5nLXNoYWRvdyk7XG4gICAgfVxuXG4gICAgLyogc2l6ZXMgKHN0eWxlQ2xhc3MpICovXG4gICAgJi5wLW1lc3NhZ2Utc20ge1xuICAgICAgICAtLV9wYWRkaW5nOiB2YXIoLS1wLW1lc3NhZ2UtY29udGVudC1zbS1wYWRkaW5nKTtcbiAgICAgICAgLS1fZm9udC1zaXplOiB2YXIoLS1wLW1lc3NhZ2UtdGV4dC1zbS1mb250LXNpemUpO1xuICAgICAgICAtLV9pY29uLXNpemU6IHZhcigtLXAtbWVzc2FnZS1pY29uLXNtLXNpemUpO1xuICAgICAgICAtLV9jbG9zZS1pY29uLXNpemU6IHZhcigtLXAtbWVzc2FnZS1jbG9zZS1pY29uLXNtLXNpemUpO1xuICAgIH1cblxuICAgICYucC1tZXNzYWdlLWxnIHtcbiAgICAgICAgLS1fcGFkZGluZzogdmFyKC0tcC1tZXNzYWdlLWNvbnRlbnQtbGctcGFkZGluZyk7XG4gICAgICAgIC0tX2ZvbnQtc2l6ZTogdmFyKC0tcC1tZXNzYWdlLXRleHQtbGctZm9udC1zaXplKTtcbiAgICAgICAgLS1faWNvbi1zaXplOiB2YXIoLS1wLW1lc3NhZ2UtaWNvbi1sZy1zaXplKTtcbiAgICAgICAgLS1fY2xvc2UtaWNvbi1zaXplOiB2YXIoLS1wLW1lc3NhZ2UtY2xvc2UtaWNvbi1sZy1zaXplKTtcbiAgICB9XG5cbiAgICAvKiB2YXJpYW50cyAoc3R5bGVDbGFzcyk6IGFmdGVyIHRoZSBzZXZlcml0aWVzIGFuZCBzaXplcywgdGhleSBvbmx5IHN3aXRjaCB0aGUgcHJpdmF0ZSB2YXJpYWJsZXMgKi9cbiAgICAmLnAtbWVzc2FnZS1vdXRsaW5lZCB7XG4gICAgICAgIC0tX2JnOiB0cmFuc3BhcmVudDtcbiAgICAgICAgLS1fYm9yZGVyLXdpZHRoOiB2YXIoLS1wLW1lc3NhZ2Utb3V0bGluZWQtYm9yZGVyLXdpZHRoKTtcbiAgICAgICAgLS1fYm9yZGVyLWNvbG9yOiB2YXIoLS1fb3V0bGluZWQtYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgLS1fY29sb3I6IHZhcigtLV9vdXRsaW5lZC1jb2xvcik7XG4gICAgICAgIC0tX3NoYWRvdzogbm9uZTtcbiAgICB9XG5cbiAgICAmLnAtbWVzc2FnZS1zaW1wbGUge1xuICAgICAgICAtLV9iZzogdHJhbnNwYXJlbnQ7XG4gICAgICAgIC0tX2JvcmRlci13aWR0aDogMDtcbiAgICAgICAgLS1fY29sb3I6IHZhcigtLV9zaW1wbGUtY29sb3IpO1xuICAgICAgICAtLV9zaGFkb3c6IG5vbmU7XG4gICAgICAgIC0tX3BhZGRpbmc6IHZhcigtLXAtbWVzc2FnZS1zaW1wbGUtY29udGVudC1wYWRkaW5nKTtcbiAgICB9XG5cbiAgICAvKiBjb250ZW50IHJvdzogaWNvbiwgc3VtbWFyeSwgZGV0YWlsICovXG4gICAgPiBkaXYge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBnYXA6IHZhcigtLXAtbWVzc2FnZS1jb250ZW50LWdhcCk7XG4gICAgICAgIC8qIGtlZXBzIHRoZSB0ZXh0IGxpbmUgaGVpZ2h0ICg9IGlucHV0IGhlaWdodCkgd2hlbiBvbmx5IHRoZSBpY29uIGlzIHNob3duICovXG4gICAgICAgIG1pbi1oZWlnaHQ6IGNhbGModmFyKC0tcC10eXBvZ3JhcGh5LWxpbmUtaGVpZ2h0KSAqIDFlbSk7XG4gICAgfVxuXG4gICAgLyogaWNvbnMgKi9cbiAgICAucC1tZXNzYWdlLWluZm8taWNvbixcbiAgICAucC1tZXNzYWdlLXN1Y2Nlc3MtaWNvbixcbiAgICAucC1tZXNzYWdlLXdhcm4taWNvbixcbiAgICAucC1tZXNzYWdlLWVycm9yLWljb24sXG4gICAgLnAtbWVzc2FnZS1mYXRhbC1pY29uLFxuICAgIC5wLW1lc3NhZ2Utc2Vjb25kYXJ5LWljb24sXG4gICAgLnAtbWVzc2FnZS1jb250cmFzdC1pY29uIHtcbiAgICAgICAgZmxleC1zaHJpbms6IDA7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1fY29sb3IpO1xuICAgICAgICBmb250LXNpemU6IHZhcigtLV9pY29uLXNpemUpO1xuICAgICAgICBsaW5lLWhlaWdodDogMTtcbiAgICB9XG5cbiAgICAucC1tZXNzYWdlLWluZm8taWNvbiB7XG4gICAgICAgIC0tX2ljb246IHZhcigtLXAtbWVzc2FnZS1pbmZvLWljb24pO1xuICAgIH1cblxuICAgIC5wLW1lc3NhZ2Utc3VjY2Vzcy1pY29uIHtcbiAgICAgICAgLS1faWNvbjogdmFyKC0tcC1tZXNzYWdlLXN1Y2Nlc3MtaWNvbik7XG4gICAgfVxuXG4gICAgLnAtbWVzc2FnZS13YXJuLWljb24ge1xuICAgICAgICAtLV9pY29uOiB2YXIoLS1wLW1lc3NhZ2Utd2Fybi1pY29uKTtcbiAgICB9XG5cbiAgICAucC1tZXNzYWdlLWVycm9yLWljb24ge1xuICAgICAgICAtLV9pY29uOiB2YXIoLS1wLW1lc3NhZ2UtZXJyb3ItaWNvbik7XG4gICAgfVxuXG4gICAgLnAtbWVzc2FnZS1mYXRhbC1pY29uIHtcbiAgICAgICAgLS1faWNvbjogdmFyKC0tcC1tZXNzYWdlLWZhdGFsLWljb24pO1xuICAgIH1cblxuICAgIC5wLW1lc3NhZ2Utc2Vjb25kYXJ5LWljb24ge1xuICAgICAgICAtLV9pY29uOiB2YXIoLS1wLW1lc3NhZ2Utc2Vjb25kYXJ5LWljb24pO1xuICAgIH1cblxuICAgIC5wLW1lc3NhZ2UtY29udHJhc3QtaWNvbiB7XG4gICAgICAgIC0tX2ljb246IHZhcigtLXAtbWVzc2FnZS1jb250cmFzdC1pY29uKTtcbiAgICB9XG5cbiAgICAvKiB0ZXh0cyAqL1xuICAgIC5wLW1lc3NhZ2UtaW5mby1zdW1tYXJ5LFxuICAgIC5wLW1lc3NhZ2Utc3VjY2Vzcy1zdW1tYXJ5LFxuICAgIC5wLW1lc3NhZ2Utd2Fybi1zdW1tYXJ5LFxuICAgIC5wLW1lc3NhZ2UtZXJyb3Itc3VtbWFyeSxcbiAgICAucC1tZXNzYWdlLWZhdGFsLXN1bW1hcnksXG4gICAgLnAtbWVzc2FnZS1zZWNvbmRhcnktc3VtbWFyeSxcbiAgICAucC1tZXNzYWdlLWNvbnRyYXN0LXN1bW1hcnkge1xuICAgICAgICBmb250LXdlaWdodDogdmFyKC0tcC1tZXNzYWdlLXN1bW1hcnktZm9udC13ZWlnaHQpO1xuICAgIH1cblxuICAgIC5wLW1lc3NhZ2UtaW5mby1kZXRhaWwsXG4gICAgLnAtbWVzc2FnZS1zdWNjZXNzLWRldGFpbCxcbiAgICAucC1tZXNzYWdlLXdhcm4tZGV0YWlsLFxuICAgIC5wLW1lc3NhZ2UtZXJyb3ItZGV0YWlsLFxuICAgIC5wLW1lc3NhZ2UtZmF0YWwtZGV0YWlsLFxuICAgIC5wLW1lc3NhZ2Utc2Vjb25kYXJ5LWRldGFpbCxcbiAgICAucC1tZXNzYWdlLWNvbnRyYXN0LWRldGFpbCB7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1wLW1lc3NhZ2UtZGV0YWlsLWZvbnQtd2VpZ2h0KTtcbiAgICAgICAgb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDtcbiAgICAgICAgdGV4dC13cmFwOiBwcmV0dHk7XG4gICAgfVxuXG4gICAgLnAtbWVzc2FnZS1pbmZvLXN1bW1hcnk6ZW1wdHksXG4gICAgLnAtbWVzc2FnZS1zdWNjZXNzLXN1bW1hcnk6ZW1wdHksXG4gICAgLnAtbWVzc2FnZS13YXJuLXN1bW1hcnk6ZW1wdHksXG4gICAgLnAtbWVzc2FnZS1lcnJvci1zdW1tYXJ5OmVtcHR5LFxuICAgIC5wLW1lc3NhZ2UtZmF0YWwtc3VtbWFyeTplbXB0eSxcbiAgICAucC1tZXNzYWdlLXNlY29uZGFyeS1zdW1tYXJ5OmVtcHR5LFxuICAgIC5wLW1lc3NhZ2UtY29udHJhc3Qtc3VtbWFyeTplbXB0eSxcbiAgICAucC1tZXNzYWdlLWluZm8tZGV0YWlsOmVtcHR5LFxuICAgIC5wLW1lc3NhZ2Utc3VjY2Vzcy1kZXRhaWw6ZW1wdHksXG4gICAgLnAtbWVzc2FnZS13YXJuLWRldGFpbDplbXB0eSxcbiAgICAucC1tZXNzYWdlLWVycm9yLWRldGFpbDplbXB0eSxcbiAgICAucC1tZXNzYWdlLWZhdGFsLWRldGFpbDplbXB0eSxcbiAgICAucC1tZXNzYWdlLXNlY29uZGFyeS1kZXRhaWw6ZW1wdHksXG4gICAgLnAtbWVzc2FnZS1jb250cmFzdC1kZXRhaWw6ZW1wdHkge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cblxuICAgICYucC1oaWRkZW4ge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbn1cblxuLyogaW5saW5lIHA6bWVzc2FnZSBuZXh0IHRvIGl0cyBpbnB1dDsgcDpzdGF0aWNNZXNzYWdlIGlzIGEgYmxvY2sgb2YgaXRzIG93biAqL1xuLnAtY29tcG9uZW50ICsgLnAtbWVzc2FnZTpub3QoLnAtc3RhdGljbWVzc2FnZSkge1xuICAgIG1hcmdpbi1pbmxpbmUtc3RhcnQ6IHZhcigtLXAtbWVzc2FnZS1jb250ZW50LWdhcCk7XG59XG4iLCAiLypcbiAqIE1lc3NhZ2VzOiBwOm1lc3NhZ2VzXG4gKlxuICogTWFya3VwOiAucC1tZXNzYWdlcygucC1tZXNzYWdlcy1ub2ljb24pID4gZGl2LnAtbWVzc2FnZXMtPHNldmVyaXR5PiA+IGEucC1tZXNzYWdlcy1jbG9zZSAoPiAucC1tZXNzYWdlcy1jbG9zZS1pY29uKVxuICogICAgICAgICArIHNwYW4ucC1tZXNzYWdlcy08c2V2ZXJpdHk+LWljb24ucC1tZXNzYWdlLTxzZXZlcml0eT4taWNvbiArIHVsID4gbGkgPiBzcGFuLnAtbWVzc2FnZXMtPHNldmVyaXR5Pi1zdW1tYXJ5ICsgc3Bhbi5wLW1lc3NhZ2VzLTxzZXZlcml0eT4tZGV0YWlsXG4gKiBTZXZlcml0eSBjbGFzc2VzIG9ubHkgc3dpdGNoIHRoZSBwcml2YXRlIC0tXyogdmFyaWFibGVzOiBwLW1lc3NhZ2VzLWluZm8gfCAtc3VjY2VzcyB8IC13YXJuIHwgLWVycm9yIHwgLWZhdGFsXG4gKiBWYXJpYW50cyAvIHNpemVzIChzdHlsZUNsYXNzIG9uIC5wLW1lc3NhZ2VzLCBmb3IgYWxsIGl0cyBtZXNzYWdlcyk6IHAtbWVzc2FnZS1vdXRsaW5lZCB8IC1zaW1wbGUgfCAtc20gfCAtbGdcbiAqICh0aGUgc2FtZSBjbGFzc2VzIGFzIHA6bWVzc2FnZSkuIFRoZSBkZWZhdWx0IGlzIHRoZSBsYXJnZSBwYWRkaW5nIC8gaWNvbiAoYmxvY2sgbWVzc2FnZXMpLCBwLW1lc3NhZ2UtbGcgYWxzb1xuICogZW5sYXJnZXMgdGhlIHRleHQgYW5kIHRoZSBjbG9zZSBpY29uLCBwLW1lc3NhZ2Utc20gbWFrZXMgZXZlcnl0aGluZyBzbWFsbC5cbiAqIFBGIG9ubHkgdG9rZW5zOiB0aGUgbWVzc2FnZXMgYmxvY2sgb2YgcHJlc2V0cy8qLmNzcyAoc3BhY2luZyksIHRoZSBtZXNzYWdlIGJsb2NrIG9mIHByZXNldHMvKi5jc3MgKGZhdGFsLCBzdW1tYXJ5L2RldGFpbClcbiAqL1xuXG4ucC1tZXNzYWdlcyB7XG4gICAgLS1fcGFkZGluZzogdmFyKC0tcC1tZXNzYWdlLWNvbnRlbnQtbGctcGFkZGluZyk7XG4gICAgLS1fZm9udC1zaXplOiB2YXIoLS1wLW1lc3NhZ2UtdGV4dC1mb250LXNpemUpO1xuICAgIC0tX2ljb24tc2l6ZTogdmFyKC0tcC1tZXNzYWdlLWljb24tbGctc2l6ZSk7XG4gICAgLS1fY2xvc2UtaWNvbi1zaXplOiB2YXIoLS1wLW1lc3NhZ2UtY2xvc2UtaWNvbi1zaXplKTtcblxuICAgIGZvbnQtc2l6ZTogdmFyKC0tX2ZvbnQtc2l6ZSk7XG4gICAgZm9udC13ZWlnaHQ6IHZhcigtLXAtbWVzc2FnZS10ZXh0LWZvbnQtd2VpZ2h0KTtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgYm9yZGVyLXJhZGl1czogdmFyKC0tcC1tZXNzYWdlLWJvcmRlci1yYWRpdXMpO1xuXG4gICAgPiBkaXYge1xuICAgICAgICAtLV9iZzogdmFyKC0tcC1tZXNzYWdlLWluZm8tYmFja2dyb3VuZCk7XG4gICAgICAgIC0tX2JvcmRlci1jb2xvcjogdmFyKC0tcC1tZXNzYWdlLWluZm8tYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgLS1fY29sb3I6IHZhcigtLXAtbWVzc2FnZS1pbmZvLWNvbG9yKTtcbiAgICAgICAgLS1fc2hhZG93OiB2YXIoLS1wLW1lc3NhZ2UtaW5mby1zaGFkb3cpO1xuICAgICAgICAtLV9vdXRsaW5lZC1jb2xvcjogdmFyKC0tcC1tZXNzYWdlLWluZm8tb3V0bGluZWQtY29sb3IpO1xuICAgICAgICAtLV9vdXRsaW5lZC1ib3JkZXItY29sb3I6IHZhcigtLXAtbWVzc2FnZS1pbmZvLW91dGxpbmVkLWJvcmRlci1jb2xvcik7XG4gICAgICAgIC0tX3NpbXBsZS1jb2xvcjogdmFyKC0tcC1tZXNzYWdlLWluZm8tc2ltcGxlLWNvbG9yKTtcbiAgICAgICAgLS1fY2xvc2UtaG92ZXItYmc6IHZhcigtLXAtbWVzc2FnZS1pbmZvLWNsb3NlLWJ1dHRvbi1ob3Zlci1iYWNrZ3JvdW5kKTtcbiAgICAgICAgLS1fY2xvc2UtZm9jdXMtcmluZy1jb2xvcjogdmFyKC0tcC1tZXNzYWdlLWluZm8tY2xvc2UtYnV0dG9uLWZvY3VzLXJpbmctY29sb3IpO1xuICAgICAgICAtLV9jbG9zZS1mb2N1cy1yaW5nLXNoYWRvdzogdmFyKC0tcC1tZXNzYWdlLWluZm8tY2xvc2UtYnV0dG9uLWZvY3VzLXJpbmctc2hhZG93KTtcbiAgICAgICAgLS1fYm9yZGVyLXdpZHRoOiB2YXIoLS1wLW1lc3NhZ2UtYm9yZGVyLXdpZHRoKTtcblxuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICAgICAgZ2FwOiB2YXIoLS1wLW1lc3NhZ2UtY29udGVudC1nYXApO1xuICAgICAgICBwYWRkaW5nOiB2YXIoLS1fcGFkZGluZyk7XG4gICAgICAgIG1hcmdpbjogdmFyKC0tcC1tZXNzYWdlcy1nYXApIDA7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXAtbWVzc2FnZS1ib3JkZXItcmFkaXVzKTtcbiAgICAgICAgb3V0bGluZS1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgdmFyKC0tcC1tZXNzYWdlLXRyYW5zaXRpb24tZHVyYXRpb24pLCBjb2xvciB2YXIoLS1wLW1lc3NhZ2UtdHJhbnNpdGlvbi1kdXJhdGlvbiksXG4gICAgICAgICAgICBib3JkZXItY29sb3IgdmFyKC0tcC1tZXNzYWdlLXRyYW5zaXRpb24tZHVyYXRpb24pO1xuXG4gICAgICAgIC8qIGEgbmV3IG1lc3NhZ2UgKGluc2VydGVkIGJ5IGFuIGFqYXggdXBkYXRlIG9yIHRoZSBjbGllbnQgc2lkZSB2YWxpZGF0aW9uKSBmYWRlcyBpbiwgYmFzZS9jb21tb24uY3NzICovXG4gICAgICAgIC0tX2VudGVyLW9mZnNldDogdmFyKC0tcC1tZXNzYWdlLWVudGVyLW9mZnNldCk7XG4gICAgICAgIGFuaW1hdGlvbjogcC1lbnRlciB2YXIoLS1wLW1lc3NhZ2UtZW50ZXItZHVyYXRpb24pIHZhcigtLXAtdHJhbnNpdGlvbi1lYXNpbmctZW50ZXIpO1xuICAgIH1cblxuICAgIC5wLW1lc3NhZ2VzLWluZm8sXG4gICAgLnAtbWVzc2FnZXMtc3VjY2VzcyxcbiAgICAucC1tZXNzYWdlcy13YXJuLFxuICAgIC5wLW1lc3NhZ2VzLWVycm9yLFxuICAgIC5wLW1lc3NhZ2VzLWZhdGFsIHtcbiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tX2JnKTtcbiAgICAgICAgYm9yZGVyOiB2YXIoLS1fYm9yZGVyLXdpZHRoKSBzb2xpZCB2YXIoLS1fYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgY29sb3I6IHZhcigtLV9jb2xvcik7XG4gICAgICAgIGJveC1zaGFkb3c6IHZhcigtLV9zaGFkb3cpO1xuICAgIH1cblxuICAgIC5wLW1lc3NhZ2VzLXN1Y2Nlc3Mge1xuICAgICAgICAtLV9iZzogdmFyKC0tcC1tZXNzYWdlLXN1Y2Nlc3MtYmFja2dyb3VuZCk7XG4gICAgICAgIC0tX2JvcmRlci1jb2xvcjogdmFyKC0tcC1tZXNzYWdlLXN1Y2Nlc3MtYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgLS1fY29sb3I6IHZhcigtLXAtbWVzc2FnZS1zdWNjZXNzLWNvbG9yKTtcbiAgICAgICAgLS1fc2hhZG93OiB2YXIoLS1wLW1lc3NhZ2Utc3VjY2Vzcy1zaGFkb3cpO1xuICAgICAgICAtLV9vdXRsaW5lZC1jb2xvcjogdmFyKC0tcC1tZXNzYWdlLXN1Y2Nlc3Mtb3V0bGluZWQtY29sb3IpO1xuICAgICAgICAtLV9vdXRsaW5lZC1ib3JkZXItY29sb3I6IHZhcigtLXAtbWVzc2FnZS1zdWNjZXNzLW91dGxpbmVkLWJvcmRlci1jb2xvcik7XG4gICAgICAgIC0tX3NpbXBsZS1jb2xvcjogdmFyKC0tcC1tZXNzYWdlLXN1Y2Nlc3Mtc2ltcGxlLWNvbG9yKTtcbiAgICAgICAgLS1fY2xvc2UtaG92ZXItYmc6IHZhcigtLXAtbWVzc2FnZS1zdWNjZXNzLWNsb3NlLWJ1dHRvbi1ob3Zlci1iYWNrZ3JvdW5kKTtcbiAgICAgICAgLS1fY2xvc2UtZm9jdXMtcmluZy1jb2xvcjogdmFyKC0tcC1tZXNzYWdlLXN1Y2Nlc3MtY2xvc2UtYnV0dG9uLWZvY3VzLXJpbmctY29sb3IpO1xuICAgICAgICAtLV9jbG9zZS1mb2N1cy1yaW5nLXNoYWRvdzogdmFyKC0tcC1tZXNzYWdlLXN1Y2Nlc3MtY2xvc2UtYnV0dG9uLWZvY3VzLXJpbmctc2hhZG93KTtcbiAgICB9XG5cbiAgICAucC1tZXNzYWdlcy13YXJuIHtcbiAgICAgICAgLS1fYmc6IHZhcigtLXAtbWVzc2FnZS13YXJuLWJhY2tncm91bmQpO1xuICAgICAgICAtLV9ib3JkZXItY29sb3I6IHZhcigtLXAtbWVzc2FnZS13YXJuLWJvcmRlci1jb2xvcik7XG4gICAgICAgIC0tX2NvbG9yOiB2YXIoLS1wLW1lc3NhZ2Utd2Fybi1jb2xvcik7XG4gICAgICAgIC0tX3NoYWRvdzogdmFyKC0tcC1tZXNzYWdlLXdhcm4tc2hhZG93KTtcbiAgICAgICAgLS1fb3V0bGluZWQtY29sb3I6IHZhcigtLXAtbWVzc2FnZS13YXJuLW91dGxpbmVkLWNvbG9yKTtcbiAgICAgICAgLS1fb3V0bGluZWQtYm9yZGVyLWNvbG9yOiB2YXIoLS1wLW1lc3NhZ2Utd2Fybi1vdXRsaW5lZC1ib3JkZXItY29sb3IpO1xuICAgICAgICAtLV9zaW1wbGUtY29sb3I6IHZhcigtLXAtbWVzc2FnZS13YXJuLXNpbXBsZS1jb2xvcik7XG4gICAgICAgIC0tX2Nsb3NlLWhvdmVyLWJnOiB2YXIoLS1wLW1lc3NhZ2Utd2Fybi1jbG9zZS1idXR0b24taG92ZXItYmFja2dyb3VuZCk7XG4gICAgICAgIC0tX2Nsb3NlLWZvY3VzLXJpbmctY29sb3I6IHZhcigtLXAtbWVzc2FnZS13YXJuLWNsb3NlLWJ1dHRvbi1mb2N1cy1yaW5nLWNvbG9yKTtcbiAgICAgICAgLS1fY2xvc2UtZm9jdXMtcmluZy1zaGFkb3c6IHZhcigtLXAtbWVzc2FnZS13YXJuLWNsb3NlLWJ1dHRvbi1mb2N1cy1yaW5nLXNoYWRvdyk7XG4gICAgfVxuXG4gICAgLnAtbWVzc2FnZXMtZXJyb3Ige1xuICAgICAgICAtLV9iZzogdmFyKC0tcC1tZXNzYWdlLWVycm9yLWJhY2tncm91bmQpO1xuICAgICAgICAtLV9ib3JkZXItY29sb3I6IHZhcigtLXAtbWVzc2FnZS1lcnJvci1ib3JkZXItY29sb3IpO1xuICAgICAgICAtLV9jb2xvcjogdmFyKC0tcC1tZXNzYWdlLWVycm9yLWNvbG9yKTtcbiAgICAgICAgLS1fc2hhZG93OiB2YXIoLS1wLW1lc3NhZ2UtZXJyb3Itc2hhZG93KTtcbiAgICAgICAgLS1fb3V0bGluZWQtY29sb3I6IHZhcigtLXAtbWVzc2FnZS1lcnJvci1vdXRsaW5lZC1jb2xvcik7XG4gICAgICAgIC0tX291dGxpbmVkLWJvcmRlci1jb2xvcjogdmFyKC0tcC1tZXNzYWdlLWVycm9yLW91dGxpbmVkLWJvcmRlci1jb2xvcik7XG4gICAgICAgIC0tX3NpbXBsZS1jb2xvcjogdmFyKC0tcC1tZXNzYWdlLWVycm9yLXNpbXBsZS1jb2xvcik7XG4gICAgICAgIC0tX2Nsb3NlLWhvdmVyLWJnOiB2YXIoLS1wLW1lc3NhZ2UtZXJyb3ItY2xvc2UtYnV0dG9uLWhvdmVyLWJhY2tncm91bmQpO1xuICAgICAgICAtLV9jbG9zZS1mb2N1cy1yaW5nLWNvbG9yOiB2YXIoLS1wLW1lc3NhZ2UtZXJyb3ItY2xvc2UtYnV0dG9uLWZvY3VzLXJpbmctY29sb3IpO1xuICAgICAgICAtLV9jbG9zZS1mb2N1cy1yaW5nLXNoYWRvdzogdmFyKC0tcC1tZXNzYWdlLWVycm9yLWNsb3NlLWJ1dHRvbi1mb2N1cy1yaW5nLXNoYWRvdyk7XG4gICAgfVxuXG4gICAgLnAtbWVzc2FnZXMtZmF0YWwge1xuICAgICAgICAtLV9iZzogdmFyKC0tcC1tZXNzYWdlLWZhdGFsLWJhY2tncm91bmQpO1xuICAgICAgICAtLV9ib3JkZXItY29sb3I6IHZhcigtLXAtbWVzc2FnZS1mYXRhbC1ib3JkZXItY29sb3IpO1xuICAgICAgICAtLV9jb2xvcjogdmFyKC0tcC1tZXNzYWdlLWZhdGFsLWNvbG9yKTtcbiAgICAgICAgLS1fc2hhZG93OiB2YXIoLS1wLW1lc3NhZ2UtZmF0YWwtc2hhZG93KTtcbiAgICAgICAgLS1fb3V0bGluZWQtY29sb3I6IHZhcigtLXAtbWVzc2FnZS1mYXRhbC1vdXRsaW5lZC1jb2xvcik7XG4gICAgICAgIC0tX291dGxpbmVkLWJvcmRlci1jb2xvcjogdmFyKC0tcC1tZXNzYWdlLWZhdGFsLW91dGxpbmVkLWJvcmRlci1jb2xvcik7XG4gICAgICAgIC0tX3NpbXBsZS1jb2xvcjogdmFyKC0tcC1tZXNzYWdlLWZhdGFsLXNpbXBsZS1jb2xvcik7XG4gICAgICAgIC0tX2Nsb3NlLWhvdmVyLWJnOiB2YXIoLS1wLW1lc3NhZ2UtZmF0YWwtY2xvc2UtYnV0dG9uLWhvdmVyLWJhY2tncm91bmQpO1xuICAgICAgICAtLV9jbG9zZS1mb2N1cy1yaW5nLWNvbG9yOiB2YXIoLS1wLW1lc3NhZ2UtZmF0YWwtY2xvc2UtYnV0dG9uLWZvY3VzLXJpbmctY29sb3IpO1xuICAgICAgICAtLV9jbG9zZS1mb2N1cy1yaW5nLXNoYWRvdzogdmFyKC0tcC1tZXNzYWdlLWZhdGFsLWNsb3NlLWJ1dHRvbi1mb2N1cy1yaW5nLXNoYWRvdyk7XG4gICAgfVxuXG4gICAgLyogc2l6ZXMgKHN0eWxlQ2xhc3MpICovXG4gICAgJi5wLW1lc3NhZ2Utc20ge1xuICAgICAgICAtLV9wYWRkaW5nOiB2YXIoLS1wLW1lc3NhZ2UtY29udGVudC1zbS1wYWRkaW5nKTtcbiAgICAgICAgLS1fZm9udC1zaXplOiB2YXIoLS1wLW1lc3NhZ2UtdGV4dC1zbS1mb250LXNpemUpO1xuICAgICAgICAtLV9pY29uLXNpemU6IHZhcigtLXAtbWVzc2FnZS1pY29uLXNtLXNpemUpO1xuICAgICAgICAtLV9jbG9zZS1pY29uLXNpemU6IHZhcigtLXAtbWVzc2FnZS1jbG9zZS1pY29uLXNtLXNpemUpO1xuICAgIH1cblxuICAgICYucC1tZXNzYWdlLWxnIHtcbiAgICAgICAgLS1fZm9udC1zaXplOiB2YXIoLS1wLW1lc3NhZ2UtdGV4dC1sZy1mb250LXNpemUpO1xuICAgICAgICAtLV9jbG9zZS1pY29uLXNpemU6IHZhcigtLXAtbWVzc2FnZS1jbG9zZS1pY29uLWxnLXNpemUpO1xuICAgIH1cblxuICAgIC8qIHZhcmlhbnRzIChzdHlsZUNsYXNzKSwgYWZ0ZXIgdGhlIHNpemVzOiAucC1tZXNzYWdlcy5wLW1lc3NhZ2UtKiA+IGRpdiB3aW5zIG92ZXIgdGhlIHNldmVyaXR5IHJ1bGVzICovXG4gICAgJi5wLW1lc3NhZ2Utc2ltcGxlIHtcbiAgICAgICAgLS1fcGFkZGluZzogdmFyKC0tcC1tZXNzYWdlLXNpbXBsZS1jb250ZW50LXBhZGRpbmcpO1xuICAgIH1cblxuICAgICYucC1tZXNzYWdlLW91dGxpbmVkID4gZGl2IHtcbiAgICAgICAgLS1fYmc6IHRyYW5zcGFyZW50O1xuICAgICAgICAtLV9ib3JkZXItd2lkdGg6IHZhcigtLXAtbWVzc2FnZS1vdXRsaW5lZC1ib3JkZXItd2lkdGgpO1xuICAgICAgICAtLV9ib3JkZXItY29sb3I6IHZhcigtLV9vdXRsaW5lZC1ib3JkZXItY29sb3IpO1xuICAgICAgICAtLV9jb2xvcjogdmFyKC0tX291dGxpbmVkLWNvbG9yKTtcbiAgICAgICAgLS1fc2hhZG93OiBub25lO1xuICAgIH1cblxuICAgICYucC1tZXNzYWdlLXNpbXBsZSA+IGRpdiB7XG4gICAgICAgIC0tX2JnOiB0cmFuc3BhcmVudDtcbiAgICAgICAgLS1fYm9yZGVyLXdpZHRoOiAwO1xuICAgICAgICAtLV9jb2xvcjogdmFyKC0tX3NpbXBsZS1jb2xvcik7XG4gICAgICAgIC0tX3NoYWRvdzogbm9uZTtcbiAgICB9XG5cbiAgICB1bCB7XG4gICAgICAgIGZsZXg6IDEgMSBhdXRvO1xuICAgICAgICBtaW4td2lkdGg6IDA7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgbGlzdC1zdHlsZS10eXBlOiBub25lO1xuXG4gICAgICAgID4gbGkge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBiYXNlbGluZTtcbiAgICAgICAgICAgIGNvbHVtbi1nYXA6IHZhcigtLXAtbWVzc2FnZXMtdGV4dC1nYXApO1xuXG4gICAgICAgICAgICArIGxpIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiB2YXIoLS1wLW1lc3NhZ2UtY29udGVudC1nYXApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLnAtbWVzc2FnZXMtaW5mby1zdW1tYXJ5LFxuICAgICAgICAucC1tZXNzYWdlcy1zdWNjZXNzLXN1bW1hcnksXG4gICAgICAgIC5wLW1lc3NhZ2VzLXdhcm4tc3VtbWFyeSxcbiAgICAgICAgLnAtbWVzc2FnZXMtZXJyb3Itc3VtbWFyeSxcbiAgICAgICAgLnAtbWVzc2FnZXMtZmF0YWwtc3VtbWFyeSB7XG4gICAgICAgICAgICBmb250LXdlaWdodDogdmFyKC0tcC1tZXNzYWdlLXN1bW1hcnktZm9udC13ZWlnaHQpO1xuICAgICAgICB9XG5cbiAgICAgICAgLnAtbWVzc2FnZXMtaW5mby1kZXRhaWwsXG4gICAgICAgIC5wLW1lc3NhZ2VzLXN1Y2Nlc3MtZGV0YWlsLFxuICAgICAgICAucC1tZXNzYWdlcy13YXJuLWRldGFpbCxcbiAgICAgICAgLnAtbWVzc2FnZXMtZXJyb3ItZGV0YWlsLFxuICAgICAgICAucC1tZXNzYWdlcy1mYXRhbC1kZXRhaWwge1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IHZhcigtLXAtbWVzc2FnZS1kZXRhaWwtZm9udC13ZWlnaHQpO1xuICAgICAgICAgICAgb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDtcbiAgICAgICAgICAgIHRleHQtd3JhcDogcHJldHR5O1xuICAgICAgICAgICAgbWluLXdpZHRoOiAwO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyogc2V2ZXJpdHkgaWNvbnMgKi9cbiAgICAucC1tZXNzYWdlcy1pbmZvLWljb24sXG4gICAgLnAtbWVzc2FnZXMtc3VjY2Vzcy1pY29uLFxuICAgIC5wLW1lc3NhZ2VzLXdhcm4taWNvbixcbiAgICAucC1tZXNzYWdlcy1lcnJvci1pY29uLFxuICAgIC5wLW1lc3NhZ2VzLWZhdGFsLWljb24ge1xuICAgICAgICBmbGV4LXNocmluazogMDtcbiAgICAgICAgZm9udC1zaXplOiB2YXIoLS1faWNvbi1zaXplKTtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgICAgIC8qIGNlbnRlcmVkIG9uIHRoZSBmaXJzdCB0ZXh0IGxpbmUgKHRoZSBjb250ZW50IGlzIHRvcCBhbGlnbmVkIGZvciBtdWx0aSBsaW5lIG1lc3NhZ2VzKSAqL1xuICAgICAgICBtYXJnaW46IGNhbGMoKHZhcigtLXAtdHlwb2dyYXBoeS1saW5lLWhlaWdodCkgKiB2YXIoLS1fZm9udC1zaXplKSAtIHZhcigtLV9pY29uLXNpemUpKSAvIDIpIDAgMDtcbiAgICAgICAgY29sb3I6IHZhcigtLV9jb2xvcik7XG4gICAgfVxuXG4gICAgLnAtbWVzc2FnZXMtaW5mby1pY29uIHtcbiAgICAgICAgLS1faWNvbjogdmFyKC0tcC1tZXNzYWdlLWluZm8taWNvbik7XG4gICAgfVxuXG4gICAgLnAtbWVzc2FnZXMtc3VjY2Vzcy1pY29uIHtcbiAgICAgICAgLS1faWNvbjogdmFyKC0tcC1tZXNzYWdlLXN1Y2Nlc3MtaWNvbik7XG4gICAgfVxuXG4gICAgLnAtbWVzc2FnZXMtd2Fybi1pY29uIHtcbiAgICAgICAgLS1faWNvbjogdmFyKC0tcC1tZXNzYWdlLXdhcm4taWNvbik7XG4gICAgfVxuXG4gICAgLnAtbWVzc2FnZXMtZXJyb3ItaWNvbiB7XG4gICAgICAgIC0tX2ljb246IHZhcigtLXAtbWVzc2FnZS1lcnJvci1pY29uKTtcbiAgICB9XG5cbiAgICAucC1tZXNzYWdlcy1mYXRhbC1pY29uIHtcbiAgICAgICAgLS1faWNvbjogdmFyKC0tcC1tZXNzYWdlLWZhdGFsLWljb24pO1xuICAgIH1cblxuICAgIC8qIGNsb3NlIGJ1dHRvbjogcmVuZGVyZWQgZmlyc3QsIHNob3duIGxhc3QgKi9cbiAgICAucC1tZXNzYWdlcy1jbG9zZSB7XG4gICAgICAgIG9yZGVyOiAxO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICAgICAgZmxleC1zaHJpbms6IDA7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICB3aWR0aDogdmFyKC0tcC1tZXNzYWdlLWNsb3NlLWJ1dHRvbi13aWR0aCk7XG4gICAgICAgIGhlaWdodDogdmFyKC0tcC1tZXNzYWdlLWNsb3NlLWJ1dHRvbi1oZWlnaHQpO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBib3JkZXI6IDAgbm9uZTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogdmFyKC0tcC1tZXNzYWdlLWNsb3NlLWJ1dHRvbi1ib3JkZXItcmFkaXVzKTtcbiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1fY29sb3IpO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAtd2Via2l0LXVzZXItc2VsZWN0OiBub25lO1xuICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgICAgICAgb3V0bGluZS1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgdmFyKC0tcC1tZXNzYWdlLXRyYW5zaXRpb24tZHVyYXRpb24pLCBjb2xvciB2YXIoLS1wLW1lc3NhZ2UtdHJhbnNpdGlvbi1kdXJhdGlvbiksXG4gICAgICAgICAgICBvdXRsaW5lLWNvbG9yIHZhcigtLXAtbWVzc2FnZS10cmFuc2l0aW9uLWR1cmF0aW9uKSwgYm94LXNoYWRvdyB2YXIoLS1wLW1lc3NhZ2UtdHJhbnNpdGlvbi1kdXJhdGlvbik7XG5cbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1fY2xvc2UtaG92ZXItYmcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJjpmb2N1cy12aXNpYmxlIHtcbiAgICAgICAgICAgIG91dGxpbmU6IHZhcigtLXAtbWVzc2FnZS1jbG9zZS1idXR0b24tZm9jdXMtcmluZy13aWR0aCkgdmFyKC0tcC1tZXNzYWdlLWNsb3NlLWJ1dHRvbi1mb2N1cy1yaW5nLXN0eWxlKSB2YXIoLS1fY2xvc2UtZm9jdXMtcmluZy1jb2xvcik7XG4gICAgICAgICAgICBvdXRsaW5lLW9mZnNldDogdmFyKC0tcC1tZXNzYWdlLWNsb3NlLWJ1dHRvbi1mb2N1cy1yaW5nLW9mZnNldCk7XG4gICAgICAgICAgICBib3gtc2hhZG93OiB2YXIoLS1fY2xvc2UtZm9jdXMtcmluZy1zaGFkb3cpO1xuICAgICAgICB9XG5cbiAgICAgICAgLnAtbWVzc2FnZXMtY2xvc2UtaWNvbiB7XG4gICAgICAgICAgICAtLV9pY29uOiB2YXIoLS1wLW1lc3NhZ2UtY2xvc2UtaWNvbik7XG4gICAgICAgICAgICBmb250LXNpemU6IHZhcigtLV9jbG9zZS1pY29uLXNpemUpO1xuICAgICAgICAgICAgY29sb3I6IGluaGVyaXQ7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCAiLypcbiAqIE11bHRpU2VsZWN0TGlzdGJveDogcDptdWx0aVNlbGVjdExpc3Rib3ggKFByaW1lRmFjZXMgb25seSwgdG9rZW5zIGluIHRoZSBtdWx0aXNlbGVjdGxpc3Rib3ggYmxvY2sgb2YgcHJlc2V0cy8qLmNzcywgaXRlbXMgdXNlIGxpc3Rib3ggdG9rZW5zKVxuICpcbiAqIEV2ZXJ5IGxldmVsIGlzIGEgbGlzdCBjb250YWluZXIgd2l0aCBhbiBvcHRpb25hbCBoZWFkZXIgKHNob3dIZWFkZXJzKTsgdGhlIGxpc3QgaXRzZWxmIGlzIGEgLnAtaW5wdXRmaWVsZCxcbiAqIGl0cyBpbnB1dCBsb29rIGlzIHJlc2V0LiBJdGVtcyB3aXRoIGNoaWxkcmVuIHNob3cgYSBjaGV2cm9uLlxuICogU3VwcG9ydGVkIGNsYXNzZXM6IHAtc3RhdGUtZGlzYWJsZWQgKG9uIHRoZSByb290KSwgaXRlbXM6IHAtc3RhdGUtaG92ZXIsIHAtc3RhdGUtaGlnaGxpZ2h0IChzZWxlY3RlZClcbiAqL1xuLnAtbXVsdGlzZWxlY3RsaXN0Ym94IHtcbiAgICAvKiBjb250YWlucyB0aGUgZmxvYXRlZCBsaXN0cyAqL1xuICAgIGRpc3BsYXk6IGZsb3ctcm9vdDtcblxuICAgIC5wLW11bHRpc2VsZWN0bGlzdGJveC1saXN0Y29udGFpbmVyIHtcbiAgICAgICAgZmxvYXQ6IGlubGluZS1zdGFydDtcbiAgICAgICAgb3ZlcmZsb3c6IGF1dG87XG4gICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICBtaW4td2lkdGg6IHZhcigtLXAtbXVsdGlzZWxlY3RsaXN0Ym94LWxpc3QtbWluLXdpZHRoKTtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBtYXJnaW4taW5saW5lLWVuZDogdmFyKC0tcC1tdWx0aXNlbGVjdGxpc3Rib3gtZ2FwKTtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tcC1saXN0Ym94LWJhY2tncm91bmQpO1xuICAgICAgICBjb2xvcjogdmFyKC0tcC1saXN0Ym94LWNvbG9yKTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tcC1saXN0Ym94LWJvcmRlci1jb2xvcik7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXAtbGlzdGJveC1ib3JkZXItcmFkaXVzKTtcbiAgICAgICAgYm94LXNoYWRvdzogdmFyKC0tcC1saXN0Ym94LXNoYWRvdyk7XG5cbiAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgIG1hcmdpbi1pbmxpbmUtZW5kOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgLnAtbXVsdGlzZWxlY3RsaXN0Ym94LWhlYWRlciB7XG4gICAgICAgICAgICBwYWRkaW5nOiB2YXIoLS1wLW11bHRpc2VsZWN0bGlzdGJveC1oZWFkZXItcGFkZGluZyk7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICBib3JkZXI6IDAgbm9uZTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS1wLW11bHRpc2VsZWN0bGlzdGJveC1oZWFkZXItYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgICAgIGJvcmRlci1zdGFydC1zdGFydC1yYWRpdXM6IHZhcigtLXAtbGlzdGJveC1ib3JkZXItcmFkaXVzKTtcbiAgICAgICAgICAgIGJvcmRlci1zdGFydC1lbmQtcmFkaXVzOiB2YXIoLS1wLWxpc3Rib3gtYm9yZGVyLXJhZGl1cyk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1wLW11bHRpc2VsZWN0bGlzdGJveC1oZWFkZXItYmFja2dyb3VuZCk7XG4gICAgICAgICAgICBjb2xvcjogdmFyKC0tcC1tdWx0aXNlbGVjdGxpc3Rib3gtaGVhZGVyLWNvbG9yKTtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogdmFyKC0tcC1tdWx0aXNlbGVjdGxpc3Rib3gtaGVhZGVyLWZvbnQtc2l6ZSk7XG4gICAgICAgICAgICBmb250LXdlaWdodDogdmFyKC0tcC1tdWx0aXNlbGVjdGxpc3Rib3gtaGVhZGVyLWZvbnQtd2VpZ2h0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5wLW11bHRpc2VsZWN0bGlzdGJveC1saXN0LFxuICAgICAgICAucC1tdWx0aXNlbGVjdGxpc3Rib3gtbGlzdDpub3QoLnAtc3RhdGUtZGlzYWJsZWQpOmhvdmVyLFxuICAgICAgICAucC1tdWx0aXNlbGVjdGxpc3Rib3gtbGlzdDpub3QoLnAtc3RhdGUtZGlzYWJsZWQpOmZvY3VzIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgcGFkZGluZzogdmFyKC0tcC1saXN0Ym94LWxpc3QtcGFkZGluZyk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiBpbmhlcml0O1xuICAgICAgICAgICAgYm9yZGVyOiAwIG5vbmU7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICAgICAgb3V0bGluZTogMCBub25lO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5wLW11bHRpc2VsZWN0bGlzdGJveC1saXN0IC5wLW11bHRpc2VsZWN0bGlzdGJveC1pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgZ2FwOiB2YXIoLS1wLW11bHRpc2VsZWN0bGlzdGJveC1nYXApO1xuICAgICAgICAgICAgcGFkZGluZzogdmFyKC0tcC1saXN0Ym94LW9wdGlvbi1wYWRkaW5nKTtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6IHZhcigtLXAtbGlzdGJveC1vcHRpb24tY29sb3IpO1xuICAgICAgICAgICAgZm9udC1zaXplOiB2YXIoLS1wLWxpc3Rib3gtb3B0aW9uLWZvbnQtc2l6ZSk7XG4gICAgICAgICAgICBmb250LXdlaWdodDogdmFyKC0tcC1saXN0Ym94LW9wdGlvbi1mb250LXdlaWdodCk7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1wLWxpc3Rib3gtb3B0aW9uLWJvcmRlci1yYWRpdXMpO1xuICAgICAgICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCB2YXIoLS1wLWxpc3Qtb3B0aW9uLXRyYW5zaXRpb24tZHVyYXRpb24pLCBjb2xvciB2YXIoLS1wLWxpc3Qtb3B0aW9uLXRyYW5zaXRpb24tZHVyYXRpb24pLFxuICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvciB2YXIoLS1wLWxpc3Qtb3B0aW9uLXRyYW5zaXRpb24tZHVyYXRpb24pO1xuXG4gICAgICAgICAgICAmICsgLnAtbXVsdGlzZWxlY3RsaXN0Ym94LWl0ZW0ge1xuICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IHZhcigtLXAtbGlzdGJveC1saXN0LWdhcCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYucC1zdGF0ZS1ob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tcC1saXN0Ym94LW9wdGlvbi1mb2N1cy1iYWNrZ3JvdW5kKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogdmFyKC0tcC1saXN0Ym94LW9wdGlvbi1mb2N1cy1jb2xvcik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYucC1zdGF0ZS1oaWdobGlnaHQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IHZhcigtLXAtbGlzdGJveC1vcHRpb24tc2VsZWN0ZWQtYmFja2dyb3VuZCk7XG4gICAgICAgICAgICAgICAgY29sb3I6IHZhcigtLXAtbGlzdGJveC1vcHRpb24tc2VsZWN0ZWQtY29sb3IpO1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1wLWxpc3Rib3gtb3B0aW9uLXNlbGVjdGVkLWZvbnQtd2VpZ2h0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5wLW11bHRpc2VsZWN0bGlzdGJveC1saXN0IHtcbiAgICAgICAgbGlzdC1zdHlsZS10eXBlOiBub25lO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgfVxuXG4gICAgLnAtbXVsdGlzZWxlY3RsaXN0Ym94LWhlYWRlciB7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICB9XG5cbiAgICAucC1tdWx0aXNlbGVjdGxpc3Rib3gtaXRlbSB7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgYm9yZGVyOiAwIG5vbmU7XG5cbiAgICAgICAgLyogaXRlbXMgd2l0aCBjaGlsZHJlbjogcGktY2hldnJvbi1yaWdodCAocGktY2hldnJvbi1sZWZ0IGluIHJ0bCkgYXQgdGhlIGVuZCAqL1xuICAgICAgICAmOmhhcyg+IHVsKTo6YWZ0ZXIge1xuICAgICAgICAgICAgY29udGVudDogXCJcXDIwMDNcIjtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IGN1cnJlbnRDb2xvcjtcbiAgICAgICAgICAgIGZvcmNlZC1jb2xvci1hZGp1c3Q6IG5vbmU7XG4gICAgICAgICAgICBtYXNrOiB2YXIoLS1wLW11bHRpc2VsZWN0bGlzdGJveC1zdWJtZW51LWljb24pIGNlbnRlciAvIGNvbnRhaW4gbm8tcmVwZWF0O1xuICAgICAgICAgICAgbWFyZ2luLWlubGluZS1zdGFydDogYXV0bztcbiAgICAgICAgICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgICAgICAgICBmb250LXNpemU6IHZhcigtLXAtaWNvbi1zaXplKTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgICAgICAgICAgY29sb3I6IHZhcigtLXAtbXVsdGlzZWxlY3RsaXN0Ym94LWl0ZW0taWNvbi1jb2xvcik7XG4gICAgICAgIH1cblxuICAgICAgICAmOmhhcyg+IHVsKTpkaXIocnRsKTo6YWZ0ZXIge1xuICAgICAgICAgICAgc2NhbGU6IC0xIDE7XG4gICAgICAgIH1cblxuICAgICAgICAmLnAtc3RhdGUtaGlnaGxpZ2h0Omhhcyg+IHVsKTo6YWZ0ZXIge1xuICAgICAgICAgICAgY29sb3I6IGluaGVyaXQ7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLnAtc3RhdGUtZGlzYWJsZWQge1xuICAgICAgICBvcGFjaXR5OiAxO1xuXG4gICAgICAgIC5wLW11bHRpc2VsZWN0bGlzdGJveC1pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogZGVmYXVsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5wLW11bHRpc2VsZWN0bGlzdGJveC1saXN0Y29udGFpbmVyIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHZhcigtLXAtbGlzdGJveC1kaXNhYmxlZC1iYWNrZ3JvdW5kKTtcbiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1wLWxpc3Rib3gtZGlzYWJsZWQtY29sb3IpO1xuICAgICAgICB9XG5cbiAgICAgICAgLnAtbXVsdGlzZWxlY3RsaXN0Ym94LWxpc3Rjb250YWluZXIgLnAtbXVsdGlzZWxlY3RsaXN0Ym94LWxpc3QgLnAtbXVsdGlzZWxlY3RsaXN0Ym94LWl0ZW0ge1xuICAgICAgICAgICAgY29sb3I6IHZhcigtLXAtbGlzdGJveC1kaXNhYmxlZC1jb2xvcik7XG5cbiAgICAgICAgICAgIC8qIGEgc2VsZWN0ZWQgaXRlbSBrZWVwcyBpdHMgc2VsZWN0ZWQgY29sb3JzICh0aGUgZGlzYWJsZWQgY29sb3Igd291bGQgYmUgdW5yZWFkYWJsZSBvbiB0aGUgc2VsZWN0ZWQgYmFja2dyb3VuZCkgKi9cbiAgICAgICAgICAgICYucC1zdGF0ZS1oaWdobGlnaHQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1wLWxpc3Rib3gtb3B0aW9uLXNlbGVjdGVkLWNvbG9yKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cbiIsICIvKlxuICogTm90aWZpY2F0aW9uQmFyOiBwOm5vdGlmaWNhdGlvbkJhciAocG9zaXRpb24gdG9wIHwgYm90dG9tLCBzZXQgaW5saW5lIGJ5IHRoZSBjb21wb25lbnQpXG4gKlxuICogQSBwYWdlIHdpZGUgbmV1dHJhbCBjb250ZW50IGJhciAoUHJpbWVGYWNlcyB0b2tlbnMpOyBhbiBlbGVtZW50IHdpdGggdGhlIGNsYXNzIHAtbm90aWZpY2F0aW9uYmFyLWNsb3NlIGluc2lkZVxuICogdGhlIGJhciBpcyBzdHlsZWQgbGlrZSB0aGUgbWVzc2FnZSBjbG9zZSBidXR0b24uXG4gKi9cblxuLnAtbm90aWZpY2F0aW9uYmFyIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICBsZWZ0OiAwO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1pbi1oZWlnaHQ6IDEwMHB4O1xuICAgIHBhZGRpbmc6IHZhcigtLXAtbm90aWZpY2F0aW9uYmFyLXBhZGRpbmcpO1xuICAgIGJhY2tncm91bmQ6IHZhcigtLXAtbm90aWZpY2F0aW9uYmFyLWJhY2tncm91bmQpO1xuICAgIGNvbG9yOiB2YXIoLS1wLW5vdGlmaWNhdGlvbmJhci1jb2xvcik7XG4gICAgYm9yZGVyOiAwIG5vbmU7XG4gICAgYm9yZGVyLWJsb2NrOiAxcHggc29saWQgdmFyKC0tcC1ub3RpZmljYXRpb25iYXItYm9yZGVyLWNvbG9yKTtcbiAgICBib3gtc2hhZG93OiB2YXIoLS1wLW5vdGlmaWNhdGlvbmJhci1zaGFkb3cpO1xuXG4gICAgLnAtbm90aWZpY2F0aW9uYmFyLWNsb3NlIHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICB0b3A6IHZhcigtLXAtbm90aWZpY2F0aW9uYmFyLWNsb3NlLWJ1dHRvbi1vZmZzZXQpO1xuICAgICAgICBpbnNldC1pbmxpbmUtZW5kOiB2YXIoLS1wLW5vdGlmaWNhdGlvbmJhci1jbG9zZS1idXR0b24tb2Zmc2V0KTtcbiAgICAgICAgd2lkdGg6IHZhcigtLXAtbm90aWZpY2F0aW9uYmFyLWNsb3NlLWJ1dHRvbi13aWR0aCk7XG4gICAgICAgIGhlaWdodDogdmFyKC0tcC1ub3RpZmljYXRpb25iYXItY2xvc2UtYnV0dG9uLWhlaWdodCk7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXAtbm90aWZpY2F0aW9uYmFyLWNsb3NlLWJ1dHRvbi1ib3JkZXItcmFkaXVzKTtcbiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1wLW5vdGlmaWNhdGlvbmJhci1jbG9zZS1idXR0b24tY29sb3IpO1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgIG91dGxpbmUtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIHZhcigtLXAtbm90aWZpY2F0aW9uYmFyLXRyYW5zaXRpb24tZHVyYXRpb24pLCBjb2xvciB2YXIoLS1wLW5vdGlmaWNhdGlvbmJhci10cmFuc2l0aW9uLWR1cmF0aW9uKSxcbiAgICAgICAgICAgIG91dGxpbmUtY29sb3IgdmFyKC0tcC1ub3RpZmljYXRpb25iYXItdHJhbnNpdGlvbi1kdXJhdGlvbiksIGJveC1zaGFkb3cgdmFyKC0tcC1ub3RpZmljYXRpb25iYXItdHJhbnNpdGlvbi1kdXJhdGlvbik7XG5cbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1wLW5vdGlmaWNhdGlvbmJhci1jbG9zZS1idXR0b24taG92ZXItYmFja2dyb3VuZCk7XG4gICAgICAgICAgICBjb2xvcjogdmFyKC0tcC1ub3RpZmljYXRpb25iYXItY2xvc2UtYnV0dG9uLWhvdmVyLWNvbG9yKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6Zm9jdXMtdmlzaWJsZSB7XG4gICAgICAgICAgICBvdXRsaW5lOiB2YXIoLS1wLW5vdGlmaWNhdGlvbmJhci1jbG9zZS1idXR0b24tZm9jdXMtcmluZy13aWR0aCkgdmFyKC0tcC1ub3RpZmljYXRpb25iYXItY2xvc2UtYnV0dG9uLWZvY3VzLXJpbmctc3R5bGUpIHZhcigtLXAtbm90aWZpY2F0aW9uYmFyLWNsb3NlLWJ1dHRvbi1mb2N1cy1yaW5nLWNvbG9yKTtcbiAgICAgICAgICAgIG91dGxpbmUtb2Zmc2V0OiB2YXIoLS1wLW5vdGlmaWNhdGlvbmJhci1jbG9zZS1idXR0b24tZm9jdXMtcmluZy1vZmZzZXQpO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogdmFyKC0tcC1ub3RpZmljYXRpb25iYXItY2xvc2UtYnV0dG9uLWZvY3VzLXJpbmctc2hhZG93KTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5waSB7XG4gICAgICAgICAgICBmb250LXNpemU6IHZhcigtLXAtbWVzc2FnZS1jbG9zZS1pY29uLXNpemUpO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4ucC1ub3RpZmljYXRpb25iYXItY2xvc2Uge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG59XG4iLCAiLypcbiAqIE9yZGVyTGlzdDogcDpvcmRlckxpc3QgKFByaW1lVUlYIG9yZGVybGlzdCArIGxpc3Rib3ggdG9rZW5zLCBjYXB0aW9uIHVzZXMgdGhlIHBhbmVsIGhlYWRlciB0b2tlbnMpXG4gKlxuICogU3VwcG9ydGVkIGNsYXNzZXM6IHAtb3JkZXJsaXN0LWNvbnRyb2xzLXJpZ2h0LCB1aS1ncmlkLXJlc3BvbnNpdmUsIHAtc3RhdGUtZGlzYWJsZWRcbiAqL1xuLnAtb3JkZXJsaXN0IHtcbiAgICBkaXNwbGF5OiB0YWJsZTtcblxuICAgIC8qIHRoZSBjYXB0aW9uIGJhY2tncm91bmQgaXMgbGF5ZXJlZCBvdmVyIHRoZSBsaXN0IGJhY2tncm91bmQsIGFzIGl0IGlzIHRyYW5zcGFyZW50IGluIHNvbWUgcHJlc2V0cyAqL1xuICAgIC5wLW9yZGVybGlzdC1jYXB0aW9uIHtcbiAgICAgICAgd2lkdGg6IDIwMHB4O1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCh2YXIoLS1wLW9yZGVybGlzdC1jYXB0aW9uLWJhY2tncm91bmQpLCB2YXIoLS1wLW9yZGVybGlzdC1jYXB0aW9uLWJhY2tncm91bmQpKSwgdmFyKC0tcC1saXN0Ym94LWJhY2tncm91bmQpO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1wLW9yZGVybGlzdC1jYXB0aW9uLWJvcmRlci1jb2xvcik7XG4gICAgICAgIGJvcmRlci1ib3R0b206IDAgbm9uZTtcbiAgICAgICAgY29sb3I6IHZhcigtLXAtb3JkZXJsaXN0LWNhcHRpb24tY29sb3IpO1xuICAgICAgICBwYWRkaW5nOiB2YXIoLS1wLW9yZGVybGlzdC1jYXB0aW9uLXBhZGRpbmcpO1xuICAgICAgICBmb250LXdlaWdodDogdmFyKC0tcC1vcmRlcmxpc3QtY2FwdGlvbi1mb250LXdlaWdodCk7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXAtbGlzdGJveC1ib3JkZXItcmFkaXVzKSB2YXIoLS1wLWxpc3Rib3gtYm9yZGVyLXJhZGl1cykgMCAwO1xuICAgIH1cblxuICAgIC5wLW9yZGVybGlzdC1saXN0IHtcbiAgICAgICAgbGlzdC1zdHlsZS10eXBlOiBub25lO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIG92ZXJmbG93OiBhdXRvO1xuICAgICAgICBoZWlnaHQ6IDIwMHB4O1xuICAgICAgICB3aWR0aDogMjAwcHg7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLXAtbGlzdGJveC1ib3JkZXItY29sb3IpO1xuICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1wLWxpc3Rib3gtYmFja2dyb3VuZCk7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1wLWxpc3Rib3gtY29sb3IpO1xuICAgICAgICBwYWRkaW5nOiB2YXIoLS1wLWxpc3Rib3gtbGlzdC1wYWRkaW5nKTtcbiAgICAgICAgYm94LXNoYWRvdzogdmFyKC0tcC1saXN0Ym94LXNoYWRvdyk7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDAgMCB2YXIoLS1wLWxpc3Rib3gtYm9yZGVyLXJhZGl1cykgdmFyKC0tcC1saXN0Ym94LWJvcmRlci1yYWRpdXMpO1xuXG4gICAgICAgIC5wLW9yZGVybGlzdC1pdGVtIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IHZhcigtLXAtbGlzdGJveC1vcHRpb24tcGFkZGluZyk7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICBib3JkZXI6IDAgbm9uZTtcbiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1wLWxpc3Rib3gtb3B0aW9uLWNvbG9yKTtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogdmFyKC0tcC1saXN0Ym94LW9wdGlvbi1mb250LXNpemUpO1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IHZhcigtLXAtbGlzdGJveC1vcHRpb24tZm9udC13ZWlnaHQpO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogdmFyKC0tcC1saXN0Ym94LW9wdGlvbi1ib3JkZXItcmFkaXVzKTtcbiAgICAgICAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgdmFyKC0tcC1saXN0Ym94LXRyYW5zaXRpb24tZHVyYXRpb24pLCBjb2xvciB2YXIoLS1wLWxpc3Rib3gtdHJhbnNpdGlvbi1kdXJhdGlvbiksXG4gICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yIHZhcigtLXAtbGlzdGJveC10cmFuc2l0aW9uLWR1cmF0aW9uKSwgYm94LXNoYWRvdyB2YXIoLS1wLWxpc3Rib3gtdHJhbnNpdGlvbi1kdXJhdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAucC1vcmRlcmxpc3QtaXRlbSArIC5wLW9yZGVybGlzdC1pdGVtIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IHZhcigtLXAtbGlzdGJveC1saXN0LWdhcCk7XG4gICAgICAgIH1cblxuICAgICAgICAucC1vcmRlcmxpc3QtaXRlbTpub3QoLnAtc3RhdGUtaGlnaGxpZ2h0KTpob3ZlcixcbiAgICAgICAgLnAtb3JkZXJsaXN0LWl0ZW0ucC1zdGF0ZS1ob3ZlciB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1wLWxpc3Rib3gtb3B0aW9uLWZvY3VzLWJhY2tncm91bmQpO1xuICAgICAgICAgICAgY29sb3I6IHZhcigtLXAtbGlzdGJveC1vcHRpb24tZm9jdXMtY29sb3IpO1xuICAgICAgICB9XG5cbiAgICAgICAgLnAtb3JkZXJsaXN0LWl0ZW0ucC1zdGF0ZS1oaWdobGlnaHQge1xuICAgICAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tcC1saXN0Ym94LW9wdGlvbi1zZWxlY3RlZC1iYWNrZ3JvdW5kKTtcbiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1wLWxpc3Rib3gtb3B0aW9uLXNlbGVjdGVkLWNvbG9yKTtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1wLWxpc3Rib3gtb3B0aW9uLXNlbGVjdGVkLWZvbnQtd2VpZ2h0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5wLW9yZGVybGlzdC1pdGVtLnAtc3RhdGUtaGlnaGxpZ2h0LnAtc29ydGFibGUtcGxhY2Vob2xkZXIge1xuICAgICAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tcC1saXN0Ym94LW9wdGlvbi1zZWxlY3RlZC1mb2N1cy1iYWNrZ3JvdW5kKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8qIHdpdGhvdXQgYSBjYXB0aW9uIHRoZSBsaXN0IGhhcyBhbGwgY29ybmVycyByb3VuZGVkICovXG4gICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogdmFyKC0tcC1saXN0Ym94LWJvcmRlci1yYWRpdXMpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyogZmxleDogdGhlIChoaWRkZW4pIGxhYmVsIG9mIHRoZSBpY29uIG9ubHkgYnV0dG9ucyBpcyBhIGJsb2NrIGFuZCB3b3VsZCBhZGQgYSBzZWNvbmQgbGluZSBvdGhlcndpc2UgKi9cbiAgICAucC1idXR0b24ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgIH1cblxuICAgIC5wLW9yZGVybGlzdC1pdGVtIHtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIH1cblxuICAgIHRhYmxlIHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7XG4gICAgfVxuXG4gICAgLnAtb3JkZXJsaXN0LWNvbnRyb2xzIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG5cbiAgICAgICAgLnAtYnV0dG9uIHtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IHZhcigtLXAtb3JkZXJsaXN0LWNvbnRyb2xzLWdhcCk7XG4gICAgICAgIH1cblxuICAgICAgICAucC1vcmRlcmxpc3QtbW92ZS11cC1pY29uIHtcbiAgICAgICAgICAgIC0tX2ljb246IHZhcigtLXAtb3JkZXJsaXN0LW1vdmUtdXAtaWNvbik7XG4gICAgICAgIH1cblxuICAgICAgICAucC1vcmRlcmxpc3QtbW92ZS10b3AtaWNvbiB7XG4gICAgICAgICAgICAtLV9pY29uOiB2YXIoLS1wLW9yZGVybGlzdC1tb3ZlLXRvcC1pY29uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5wLW9yZGVybGlzdC1tb3ZlLWRvd24taWNvbiB7XG4gICAgICAgICAgICAtLV9pY29uOiB2YXIoLS1wLW9yZGVybGlzdC1tb3ZlLWRvd24taWNvbik7XG4gICAgICAgIH1cblxuICAgICAgICAucC1vcmRlcmxpc3QtbW92ZS1ib3R0b20taWNvbiB7XG4gICAgICAgICAgICAtLV9pY29uOiB2YXIoLS1wLW9yZGVybGlzdC1tb3ZlLWJvdHRvbS1pY29uKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC51aS1nID4gZGl2IHtcbiAgICAgICAgcGFkZGluZzogMDtcblxuICAgICAgICAmLnAtb3JkZXJsaXN0LWNvbnRyb2xzIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICBwYWRkaW5nLWlubGluZS1lbmQ6IHZhcigtLXAtb3JkZXJsaXN0LWdhcCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLnAtb3JkZXJsaXN0LWNvbnRyb2xzLXJpZ2h0IC51aS1nID4gZGl2LnAtb3JkZXJsaXN0LWNvbnRyb2xzIHtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgcGFkZGluZy1pbmxpbmUtc3RhcnQ6IHZhcigtLXAtb3JkZXJsaXN0LWdhcCk7XG4gICAgfVxuXG4gICAgJi5wLXN0YXRlLWRpc2FibGVkIHtcbiAgICAgICAgLnAtb3JkZXJsaXN0LWl0ZW0sXG4gICAgICAgIC5wLWJ1dHRvbiB7XG4gICAgICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG4gICAgICAgIH1cblxuICAgICAgICAucC1vcmRlcmxpc3QtbGlzdCB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tcC1saXN0Ym94LWRpc2FibGVkLWJhY2tncm91bmQpO1xuICAgICAgICAgICAgY29sb3I6IHZhcigtLXAtbGlzdGJveC1kaXNhYmxlZC1jb2xvcik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiByZXNwb25zaXZlOiBhIGJsb2NrIHdpdGggZnVsbCB3aWR0aCBsaXN0cyBhbmQgY29udHJvbHMgKi9cbiAgICAmLnVpLWdyaWQtcmVzcG9uc2l2ZSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICAucC1vcmRlcmxpc3QtbGlzdCxcbiAgICAgICAgLnAtb3JkZXJsaXN0LWNhcHRpb24ge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAucC1vcmRlcmxpc3QtY29udHJvbHMgLnAtYnV0dG9uIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4vKlxuICogbmFycm93IHZpZXdwb3J0OiBjb250cm9scyBpbiBhIHJvdyBhYm92ZSAvIGJlbG93IHRoZSBsaXN0LCB0aGUgdWktZy0xMiB1aS1tZC0yIC8gdWktbWQtMTAgY29sdW1ucyBmdWxsIHdpZHRoXG4gKi9cbkBtZWRpYSAobWF4LXdpZHRoOiA2NDBweCkge1xuICAgIC5wLW9yZGVybGlzdC51aS1ncmlkLXJlc3BvbnNpdmUgLnVpLWcgPiBkaXYge1xuICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICAmLnAtb3JkZXJsaXN0LWNvbnRyb2xzIHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuXG4gICAgICAgICAgICAucC1idXR0b24ge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgICAgICAgICAgICAgIHdpZHRoOiAyMCU7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogdmFyKC0tcC1vcmRlcmxpc3QtY29udHJvbHMtZ2FwKTtcbiAgICAgICAgICAgICAgICBtYXJnaW4taW5saW5lLWVuZDogdmFyKC0tcC1vcmRlcmxpc3QtY29udHJvbHMtZ2FwKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLnAtYnV0dG9uOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1pbmxpbmUtZW5kOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuIiwgIi8qXG4gKiBPdXRwdXRMYWJlbDogcDpvdXRwdXRMYWJlbCAoUHJpbWVVSVg6IGxhYmVsKVxuICpcbiAqIFN1cHBvcnRlZCBjbGFzc2VzOiBwLXN0YXRlLWVycm9yIChpbnZhbGlkIHRhcmdldCksIHAtb3V0cHV0bGFiZWwtcnRsLCBwLXN0YXRlLWRpc2FibGVkXG4gKiBDaGlsZHJlbjogLnAtb3V0cHV0bGFiZWwtbGFiZWwgKHRleHQpLCAucC1vdXRwdXRsYWJlbC1yZmkgKHJlcXVpcmVkIGZpZWxkIGluZGljYXRvciBcIipcIilcbiAqL1xuLnAtb3V0cHV0bGFiZWwge1xuICAgIGNvbG9yOiB2YXIoLS1wLWxhYmVsLXRleHQtY29sb3IpO1xuICAgIGZvbnQtc2l6ZTogdmFyKC0tcC1sYWJlbC1mb250LXNpemUpO1xuICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1wLWxhYmVsLWZvbnQtd2VpZ2h0KTtcblxuICAgIC5wLW91dHB1dGxhYmVsLWxhYmVsIHtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB9XG5cbiAgICAmLnAtc3RhdGUtZXJyb3Ige1xuICAgICAgICBjb2xvcjogdmFyKC0tcC1sYWJlbC1pbnZhbGlkLWNvbG9yKTtcbiAgICB9XG5cbiAgICAmLnAtc3RhdGUtZGlzYWJsZWQge1xuICAgICAgICBvcGFjaXR5OiB2YXIoLS1wLWxhYmVsLWRpc2FibGVkLW9wYWNpdHkpO1xuICAgIH1cblxuICAgIC5wLW91dHB1dGxhYmVsLXJmaSB7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiB2YXIoLS1wLWxhYmVsLXJlcXVpcmVkLWluZGljYXRvci1nYXApO1xuICAgICAgICBjb2xvcjogdmFyKC0tcC1sYWJlbC1yZXF1aXJlZC1pbmRpY2F0b3ItY29sb3IpO1xuICAgIH1cbn1cblxuLnAtb3V0cHV0bGFiZWwtcnRsIC5wLW91dHB1dGxhYmVsLXJmaSB7XG4gICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgbWFyZ2luLXJpZ2h0OiB2YXIoLS1wLWxhYmVsLXJlcXVpcmVkLWluZGljYXRvci1nYXApO1xufVxuIiwgIi8qXG4gKiBPdXRwdXRQYW5lbDogcDpvdXRwdXRQYW5lbCAobGF5b3V0IGJsb2NrIHwgaW5saW5lLCBkZWZlcnJlZCBsb2FkaW5nKVxuICpcbiAqIFdoaWxlIGEgZGVmZXJyZWQgcGFuZWwgbG9hZHMgaXQgY29udGFpbnMgPGkgY2xhc3M9XCJwLW91dHB1dHBhbmVsLWxvYWRpbmcgcC1pY29uIHAtbG9hZGluZy1pY29uIHAtb3V0cHV0cGFuZWwtbG9hZGluZy1pY29uXCI+LFxuICogY2VudGVyZWQgaGVyZSAoUHJpbWVGYWNlcyB0b2tlbnMpLiBUaGUgcm90YXRpb24gaXMgdGhlIHAtc3BpbiBhbmltYXRpb24gKGFqYXhzdGF0dXMvYWpheHN0YXR1cy5jc3MpLlxuICovXG5cbmRpdi5wLW91dHB1dHBhbmVsOmhhcyg+IC5wLW91dHB1dHBhbmVsLWxvYWRpbmcpIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgcGFkZGluZzogdmFyKC0tcC1vdXRwdXRwYW5lbC1sb2FkaW5nLXBhZGRpbmcpO1xufVxuXG4ucC1vdXRwdXRwYW5lbCAucC1vdXRwdXRwYW5lbC1sb2FkaW5nIHtcbiAgICBmb250LXNpemU6IHZhcigtLXAtb3V0cHV0cGFuZWwtbG9hZGluZy1pY29uLXNpemUpO1xuICAgIGNvbG9yOiB2YXIoLS1wLW91dHB1dHBhbmVsLWxvYWRpbmctaWNvbi1jb2xvcik7XG4gICAgYW5pbWF0aW9uOiBwLXNwaW4gdmFyKC0tcC1vdXRwdXRwYW5lbC1sb2FkaW5nLWljb24tYW5pbWF0aW9uLWR1cmF0aW9uKSBsaW5lYXIgaW5maW5pdGU7XG59XG5cbi5wLW91dHB1dHBhbmVsLWxvYWRpbmctaWNvbiB7XG4gICAgLS1faWNvbjogdmFyKC0tcC1vdXRwdXRwYW5lbC1sb2FkaW5nLWljb24pO1xufVxuIiwgIi8qXG4gKiBPdmVybGF5UGFuZWw6IHA6b3ZlcmxheVBhbmVsIChQcmltZVVJWCBwb3BvdmVyKVxuICpcbiAqIE1hcmt1cDogLnAtb3ZlcmxheXBhbmVsID4gLnAtb3ZlcmxheXBhbmVsLWNvbnRlbnQsIG9wdGlvbmFsIGEucC1vdmVybGF5cGFuZWwtY2xvc2UgKHNob3dDbG9zZUljb24pXG4gKiBDbG9zZSBpY29uIHRva2VuczogdGhlIG92ZXJsYXlwYW5lbCBibG9jayBvZiBwcmVzZXRzLyouY3NzXG4gKi9cblxuLnAtb3ZlcmxheXBhbmVsIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgICBtYXJnaW46IDA7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tcC1wb3BvdmVyLWJhY2tncm91bmQpO1xuICAgIGNvbG9yOiB2YXIoLS1wLXBvcG92ZXItY29sb3IpO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLXAtcG9wb3Zlci1ib3JkZXItY29sb3IpO1xuICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXAtcG9wb3Zlci1ib3JkZXItcmFkaXVzKTtcbiAgICBib3gtc2hhZG93OiB2YXIoLS1wLXBvcG92ZXItc2hhZG93KTtcblxuICAgIC5wLW92ZXJsYXlwYW5lbC1jb250ZW50IHtcbiAgICAgICAgcGFkZGluZzogdmFyKC0tcC1wb3BvdmVyLWNvbnRlbnQtcGFkZGluZyk7XG4gICAgfVxuXG4gICAgLnAtb3ZlcmxheXBhbmVsLWNsb3NlIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIHdpZHRoOiB2YXIoLS1wLW92ZXJsYXlwYW5lbC1jbG9zZS1idXR0b24tc2l6ZSk7XG4gICAgICAgIGhlaWdodDogdmFyKC0tcC1vdmVybGF5cGFuZWwtY2xvc2UtYnV0dG9uLXNpemUpO1xuICAgICAgICBpbnNldC1pbmxpbmUtZW5kOiBjYWxjKC0xICogdmFyKC0tcC1vdmVybGF5cGFuZWwtY2xvc2UtYnV0dG9uLXNpemUpIC8gMik7XG4gICAgICAgIHRvcDogY2FsYygtMSAqIHZhcigtLXAtb3ZlcmxheXBhbmVsLWNsb3NlLWJ1dHRvbi1zaXplKSAvIDIpO1xuICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1wLW92ZXJsYXlwYW5lbC1jbG9zZS1idXR0b24tYmFja2dyb3VuZCk7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1wLW92ZXJsYXlwYW5lbC1jbG9zZS1idXR0b24tY29sb3IpO1xuICAgICAgICBib3JkZXI6IDAgbm9uZTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgIG91dGxpbmUtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIHZhcigtLXAtb3ZlcmxheXBhbmVsLWNsb3NlLWJ1dHRvbi10cmFuc2l0aW9uLWR1cmF0aW9uKSxcbiAgICAgICAgICAgIGNvbG9yIHZhcigtLXAtb3ZlcmxheXBhbmVsLWNsb3NlLWJ1dHRvbi10cmFuc2l0aW9uLWR1cmF0aW9uKSxcbiAgICAgICAgICAgIG91dGxpbmUtY29sb3IgdmFyKC0tcC1vdmVybGF5cGFuZWwtY2xvc2UtYnV0dG9uLXRyYW5zaXRpb24tZHVyYXRpb24pLFxuICAgICAgICAgICAgYm94LXNoYWRvdyB2YXIoLS1wLW92ZXJsYXlwYW5lbC1jbG9zZS1idXR0b24tdHJhbnNpdGlvbi1kdXJhdGlvbik7XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJi5wLXN0YXRlLWhvdmVyIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHZhcigtLXAtb3ZlcmxheXBhbmVsLWNsb3NlLWJ1dHRvbi1ob3Zlci1iYWNrZ3JvdW5kKTtcbiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1wLW92ZXJsYXlwYW5lbC1jbG9zZS1idXR0b24taG92ZXItY29sb3IpO1xuICAgICAgICB9XG5cbiAgICAgICAgJjpmb2N1cy12aXNpYmxlIHtcbiAgICAgICAgICAgIG91dGxpbmU6IHZhcigtLXAtb3ZlcmxheXBhbmVsLWNsb3NlLWJ1dHRvbi1mb2N1cy1yaW5nLXdpZHRoKSB2YXIoLS1wLW92ZXJsYXlwYW5lbC1jbG9zZS1idXR0b24tZm9jdXMtcmluZy1zdHlsZSlcbiAgICAgICAgICAgICAgICB2YXIoLS1wLW92ZXJsYXlwYW5lbC1jbG9zZS1idXR0b24tZm9jdXMtcmluZy1jb2xvcik7XG4gICAgICAgICAgICBvdXRsaW5lLW9mZnNldDogdmFyKC0tcC1vdmVybGF5cGFuZWwtY2xvc2UtYnV0dG9uLWZvY3VzLXJpbmctb2Zmc2V0KTtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IHZhcigtLXAtb3ZlcmxheXBhbmVsLWNsb3NlLWJ1dHRvbi1mb2N1cy1yaW5nLXNoYWRvdyk7XG4gICAgICAgIH1cblxuICAgICAgICAucC1vdmVybGF5cGFuZWwtY2xvc2UtaWNvbiB7XG4gICAgICAgICAgICAtLV9pY29uOiB2YXIoLS1wLW92ZXJsYXlwYW5lbC1jbG9zZS1pY29uKTtcbiAgICAgICAgICAgIGNvbG9yOiBpbmhlcml0O1xuICAgICAgICB9XG4gICAgfVxufVxuIiwgIi8qXG4gKiBQYW5lbDogcDpwYW5lbCAoYWxzbyB1c2VkIGluc2lkZSBwOmRhc2hib2FyZClcbiAqXG4gKiBMaWtlIHRoZSBQcmltZVVJWCBwYW5lbCB0aGUgYm9yZGVyLCByYWRpdXMgYW5kIGJhY2tncm91bmQgc2l0IG9uIHRoZSByb290OyBoZWFkZXIsIGNvbnRlbnQgYW5kIGZvb3RlciBvbmx5XG4gKiBhZGQgdGhlaXIgcGFkZGluZ3MgKHRoZSBjb250ZW50L2Zvb3RlciB0b2tlbnMgaGF2ZSBubyB0b3AgcGFkZGluZywgdGhleSBmb2xsb3cgdGhlIGhlYWRlcikuXG4gKiBIZWFkZXIgaWNvbnMgKGNsb3NlciwgdG9nZ2xlciwgb3B0aW9ucyBtZW51KSBhcmUgdGV4dC9zZWNvbmRhcnkgcm91bmRlZCBpY29uIGJ1dHRvbnMgbGlrZSBpbiBQcmltZVVJWC5cbiAqIFN0YXRlczogcC1wYW5lbC1jb2xsYXBzZWQsIHAtcGFuZWwtY29sbGFwc2VkLWgsIHAtcGFuZWwtdGl0bGViYXItdG9nZ2xlYWJsZVxuICovXG5cbi5wLXBhbmVsIHtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1wLXBhbmVsLWJhY2tncm91bmQpO1xuICAgIGNvbG9yOiB2YXIoLS1wLXBhbmVsLWNvbG9yKTtcbiAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1wLXBhbmVsLWJvcmRlci1jb2xvcik7XG4gICAgYm9yZGVyLXJhZGl1czogdmFyKC0tcC1wYW5lbC1ib3JkZXItcmFkaXVzKTtcblxuICAgIC5wLXBhbmVsLXRpdGxlYmFyIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgcGFkZGluZzogdmFyKC0tcC1wYW5lbC1oZWFkZXItcGFkZGluZyk7XG4gICAgICAgIGJhY2tncm91bmQ6IHZhcigtLXAtcGFuZWwtaGVhZGVyLWJhY2tncm91bmQpO1xuICAgICAgICBjb2xvcjogdmFyKC0tcC1wYW5lbC1oZWFkZXItY29sb3IpO1xuICAgICAgICBmb250LXdlaWdodDogdmFyKC0tcC1wYW5lbC10aXRsZS1mb250LXdlaWdodCk7XG4gICAgICAgIGJvcmRlci1zdHlsZTogc29saWQ7XG4gICAgICAgIGJvcmRlci13aWR0aDogdmFyKC0tcC1wYW5lbC1oZWFkZXItYm9yZGVyLXdpZHRoKTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1wLXBhbmVsLWhlYWRlci1ib3JkZXItY29sb3IpO1xuICAgICAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1wLXBhbmVsLWhlYWRlci1ib3JkZXItcmFkaXVzKTtcblxuICAgICAgICAvKiBoZWFkZXIgd2l0aCBpY29uIGJ1dHRvbnM6IHNtYWxsZXIgcGFkZGluZyBzbyB0aGUgaGVhZGVyIGtlZXBzIGl0cyBoZWlnaHQgKFByaW1lVUlYIC5wLXBhbmVsLXRvZ2dsZWFibGUpICovXG4gICAgICAgICY6aGFzKD4gLnAtcGFuZWwtdGl0bGViYXItaWNvbikge1xuICAgICAgICAgICAgcGFkZGluZzogdmFyKC0tcC1wYW5lbC10b2dnbGVhYmxlLWhlYWRlci1wYWRkaW5nKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5wLXBhbmVsLXRpdGxlYmFyLXRvZ2dsZWFibGUge1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgfVxuXG4gICAgLnAtcGFuZWwtdGl0bGUge1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIG1hcmdpbi1pbmxpbmUtZW5kOiBhdXRvO1xuICAgICAgICBmb250LXNpemU6IHZhcigtLXAtcGFuZWwtdGl0bGUtZm9udC1zaXplKTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IHZhcigtLXAtcGFuZWwtdGl0bGUtZm9udC13ZWlnaHQpO1xuICAgICAgICB0ZXh0LXdyYXA6IGJhbGFuY2U7XG4gICAgfVxuXG4gICAgLnAtcGFuZWwtdGl0bGViYXIge1xuICAgICAgICAvKiBrZWVwIHRoZSB2aXN1YWwgb3JkZXIgb2YgdGhlIGZvcm1lciByaWdodCBmbG9hdHM6IGFjdGlvbnMsIG1lbnUsIHRvZ2dsZXIsIGNsb3NlciAqL1xuICAgICAgICA+IC5wLXBhbmVsLWFjdGlvbnMge1xuICAgICAgICAgICAgb3JkZXI6IDE7XG4gICAgICAgIH1cblxuICAgICAgICA+IC5wLXBhbmVsLXRpdGxlYmFyLWljb24ge1xuICAgICAgICAgICAgJltpZCQ9XCJfbWVudVwiXSB7XG4gICAgICAgICAgICAgICAgb3JkZXI6IDI7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICZbaWQkPVwiX3RvZ2dsZXJcIl0ge1xuICAgICAgICAgICAgICAgIG9yZGVyOiAzO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmW2lkJD1cIl9jbG9zZXJcIl0ge1xuICAgICAgICAgICAgICAgIG9yZGVyOiA0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLnAtcGFuZWwtdGl0bGViYXItaWNvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgICAgICAgICAgd2lkdGg6IHZhcigtLXAtYnV0dG9uLWljb24tb25seS13aWR0aCk7XG4gICAgICAgICAgICBoZWlnaHQ6IHZhcigtLXAtYnV0dG9uLWljb24tb25seS13aWR0aCk7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogdmFyKC0tcC1idXR0b24tdGV4dC1zZWNvbmRhcnktY29sb3IpO1xuICAgICAgICAgICAgYm9yZGVyOiAwIG5vbmU7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICAtd2Via2l0LXVzZXItc2VsZWN0OiBub25lO1xuICAgICAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgICAgICAgICBvdXRsaW5lLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgdmFyKC0tcC1idXR0b24tdHJhbnNpdGlvbi1kdXJhdGlvbiksIGNvbG9yIHZhcigtLXAtYnV0dG9uLXRyYW5zaXRpb24tZHVyYXRpb24pLFxuICAgICAgICAgICAgICAgIG91dGxpbmUtY29sb3IgdmFyKC0tcC1idXR0b24tdHJhbnNpdGlvbi1kdXJhdGlvbiksIGJveC1zaGFkb3cgdmFyKC0tcC1idXR0b24tdHJhbnNpdGlvbi1kdXJhdGlvbik7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IHZhcigtLXAtYnV0dG9uLXRleHQtc2Vjb25kYXJ5LWhvdmVyLWJhY2tncm91bmQpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1wLWJ1dHRvbi10ZXh0LXNlY29uZGFyeS1jb2xvcik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1wLWJ1dHRvbi10ZXh0LXNlY29uZGFyeS1hY3RpdmUtYmFja2dyb3VuZCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6Zm9jdXMtdmlzaWJsZSB7XG4gICAgICAgICAgICAgICAgb3V0bGluZTogdmFyKC0tcC1idXR0b24tZm9jdXMtcmluZy13aWR0aCkgdmFyKC0tcC1idXR0b24tZm9jdXMtcmluZy1zdHlsZSkgdmFyKC0tcC1idXR0b24tc2Vjb25kYXJ5LWZvY3VzLXJpbmctY29sb3IpO1xuICAgICAgICAgICAgICAgIG91dGxpbmUtb2Zmc2V0OiB2YXIoLS1wLWJ1dHRvbi1mb2N1cy1yaW5nLW9mZnNldCk7XG4gICAgICAgICAgICAgICAgYm94LXNoYWRvdzogdmFyKC0tcC1idXR0b24tc2Vjb25kYXJ5LWZvY3VzLXJpbmctc2hhZG93KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLnAtcGFuZWwtY2xvc2UtaWNvbiB7XG4gICAgICAgICAgICAgICAgLS1faWNvbjogdmFyKC0tcC1wYW5lbC1jbG9zZS1pY29uKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLnAtcGFuZWwtdG9nZ2xlLWljb24ge1xuICAgICAgICAgICAgICAgIC0tX2ljb246IHZhcigtLXAtcGFuZWwtdG9nZ2xlLWV4cGFuZGVkLWljb24pO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmW2FyaWEtZXhwYW5kZWQ9XCJmYWxzZVwiXSAucC1wYW5lbC10b2dnbGUtaWNvbiB7XG4gICAgICAgICAgICAgICAgLS1faWNvbjogdmFyKC0tcC1wYW5lbC10b2dnbGUtY29sbGFwc2VkLWljb24pO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAucC1wYW5lbC1tZW51LWljb24ge1xuICAgICAgICAgICAgICAgIC0tX2ljb246IHZhcigtLXAtcGFuZWwtbWVudS1pY29uKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5wLXBhbmVsLXRpdGxlYmFyLWljb24ge1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgfVxuXG4gICAgLnAtcGFuZWwtY29udGVudCB7XG4gICAgICAgIHBhZGRpbmc6IHZhcigtLXAtcGFuZWwtY29udGVudC1wYWRkaW5nKTtcbiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgICAgIGNvbG9yOiBpbmhlcml0O1xuICAgICAgICBib3JkZXI6IDAgbm9uZTtcbiAgICB9XG5cbiAgICAvKiBubyBoZWFkZXI6IHRoZSBjb250ZW50IHRva2VuIGhhcyBubyB0b3AgcGFkZGluZywgdXNlIHRoZSBoZWFkZXIgc3BhY2luZyBpbnN0ZWFkICovXG4gICAgPiAucC1wYW5lbC1jb250ZW50OmZpcnN0LWNoaWxkIHtcbiAgICAgICAgcGFkZGluZy10b3A6IHZhcigtLXAtcGFuZWwtaGVhZGVyLXBhZGRpbmcpO1xuICAgIH1cblxuICAgIC5wLXBhbmVsLWZvb3RlciB7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgcGFkZGluZzogdmFyKC0tcC1wYW5lbC1mb290ZXItcGFkZGluZyk7XG4gICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgICAgICBjb2xvcjogaW5oZXJpdDtcbiAgICAgICAgYm9yZGVyOiAwIG5vbmU7XG4gICAgICAgIHRleHQtYWxpZ246IHN0YXJ0O1xuICAgIH1cblxuICAgIC8qIGNvbGxhcHNlZDogdGhlIGhlYWRlciBpcyB0aGUgb25seSB2aXNpYmxlIHBhcnQgYW5kIGNsb3NlcyB0aGUgcm91bmRlZCBib3hcbiAgICAgICAocmVuZGVyZWQgY29sbGFwc2VkID0gdGhlIGNvbnRlbnQgaGFzIGFuIGlubGluZSBkaXNwbGF5Om5vbmUsIHAtcGFuZWwtY29sbGFwc2VkIGlzIG9ubHkgc2V0IGJ5IHRoZSBjb21wb25lbnQpICovXG4gICAgJi5wLXBhbmVsLWNvbGxhcHNlZCAucC1wYW5lbC10aXRsZWJhcixcbiAgICAmOm5vdCg6aGFzKD4gLnAtcGFuZWwtZm9vdGVyKSk6aGFzKD4gLnAtcGFuZWwtY29udGVudFtzdHlsZSo9XCJkaXNwbGF5Om5vbmVcIl0pID4gLnAtcGFuZWwtdGl0bGViYXIge1xuICAgICAgICBib3JkZXItZW5kLXN0YXJ0LXJhZGl1czogdmFyKC0tcC1wYW5lbC1ib3JkZXItcmFkaXVzKTtcbiAgICAgICAgYm9yZGVyLWVuZC1lbmQtcmFkaXVzOiB2YXIoLS1wLXBhbmVsLWJvcmRlci1yYWRpdXMpO1xuICAgIH1cblxuICAgIC8qIGNvbGxhcHNlZCBob3Jpem9udGFsbHkgKHNsaWQgdG8gdGhlIGxlZnQpOiBvbmx5IHRoZSB0b2dnbGVyIGlzIGxlZnQgKi9cbiAgICAmLnAtcGFuZWwtY29sbGFwc2VkLWgge1xuICAgICAgICB3aWR0aDogNDJweDtcblxuICAgICAgICAucC1wYW5lbC10aXRsZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgLnAtcGFuZWwtdGl0bGViYXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nLWlubGluZTogMDtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsICIvKlxuICogUGFuZWxHcmlkOiBwOnBhbmVsR3JpZCAobGF5b3V0IHRhYnVsYXIgfCBncmlkIHwgZmxleCB8IHRhaWx3aW5kKVxuICpcbiAqIFByaW1lRmFjZXMgdG9rZW5zICh0aGUgcGFuZWxncmlkIGJsb2NrIG9mIHByZXNldHMvKi5jc3MpIHRoYXQgZGVmYXVsdCB0byB0aGUgUHJpbWVVSVggZGF0YXRhYmxlIGNlbGwgdG9rZW5zLlxuICogdGFidWxhcjogdGFibGUgPiB0aGVhZC5wLXBhbmVsZ3JpZC1oZWFkZXIgLyB0Ym9keSAvIHRmb290LnAtcGFuZWxncmlkLWZvb3RlciB3aXRoIHRkLnAtcGFuZWxncmlkLWNlbGxcbiAqICAgICAgICAgIChoZWFkZXIgYW5kIGZvb3RlciBjZWxscyBhbHNvIGNhcnJ5IHAtY29tcG9uZW50LWhlYWRlcilcbiAqIGdyaWQvZmxleC90YWlsd2luZDogZGl2LnAtcGFuZWxncmlkLWhlYWRlci5wLWNvbXBvbmVudC1oZWFkZXIsIGRpdi5wLXBhbmVsZ3JpZC1jb250ZW50LCBkaXYucC1wYW5lbGdyaWQtZm9vdGVyLnAtY29tcG9uZW50LWhlYWRlclxuICogU3RhdGVzOiBwLW5vYm9yZGVyLCBwLXBhbmVsZ3JpZC1ibGFuaywgcC1wYW5lbGdyaWQtbm9wYWQgKGNlbGwpXG4gKi9cblxuLnAtcGFuZWxncmlkIHtcbiAgICBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlO1xuXG4gICAgLnAtcGFuZWxncmlkLWhlYWRlciB7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICB9XG5cbiAgICAucC1wYW5lbGdyaWQtZm9vdGVyIHtcbiAgICAgICAgdGV4dC1hbGlnbjogc3RhcnQ7XG4gICAgfVxuXG4gICAgLyogdGFidWxhciBjZWxscyAqL1xuICAgIC5wLXBhbmVsZ3JpZC1jZWxsIHtcbiAgICAgICAgcGFkZGluZzogdmFyKC0tcC1wYW5lbGdyaWQtY2VsbC1wYWRkaW5nKTtcbiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tcC1wYW5lbGdyaWQtY2VsbC1iYWNrZ3JvdW5kKTtcbiAgICAgICAgY29sb3I6IHZhcigtLXAtcGFuZWxncmlkLWNlbGwtY29sb3IpO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1wLXBhbmVsZ3JpZC1jZWxsLWJvcmRlci1jb2xvcik7XG4gICAgfVxuXG4gICAgLnAtcGFuZWxncmlkLWNlbGwucC1jb21wb25lbnQtaGVhZGVyLFxuICAgID4gZGl2LnAtcGFuZWxncmlkLWhlYWRlcixcbiAgICA+IGRpdi5wLXBhbmVsZ3JpZC1mb290ZXIge1xuICAgICAgICBwYWRkaW5nOiB2YXIoLS1wLXBhbmVsZ3JpZC1oZWFkZXItY2VsbC1wYWRkaW5nKTtcbiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tcC1wYW5lbGdyaWQtaGVhZGVyLWNlbGwtYmFja2dyb3VuZCk7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1wLXBhbmVsZ3JpZC1oZWFkZXItY2VsbC1jb2xvcik7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLXAtcGFuZWxncmlkLWhlYWRlci1jZWxsLWJvcmRlci1jb2xvcik7XG4gICAgICAgIGZvbnQtc2l6ZTogdmFyKC0tcC1wYW5lbGdyaWQtaGVhZGVyLWNlbGwtZm9udC1zaXplKTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IHZhcigtLXAtcGFuZWxncmlkLWhlYWRlci1jZWxsLWZvbnQtd2VpZ2h0KTtcbiAgICB9XG5cbiAgICA+IGRpdiB7XG4gICAgICAgIC8qIGdyaWQgLyBmbGV4IC8gdGFpbHdpbmQgbGF5b3V0czogdGhlIGNvbnRlbnQgaXMgb25lIGJvcmRlcmVkIGJveCwgaGVhZGVyIGFuZCBmb290ZXIgYXJlIGF0dGFjaGVkIHRvIGl0ICovXG4gICAgICAgICYucC1wYW5lbGdyaWQtY29udGVudCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1wLXBhbmVsZ3JpZC1jZWxsLWJhY2tncm91bmQpO1xuICAgICAgICAgICAgY29sb3I6IHZhcigtLXAtcGFuZWxncmlkLWNlbGwtY29sb3IpO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tcC1wYW5lbGdyaWQtY2VsbC1ib3JkZXItY29sb3IpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi5wLXBhbmVsZ3JpZC1oZWFkZXIgKyBkaXYucC1wYW5lbGdyaWQtY29udGVudCxcbiAgICAgICAgJi5wLXBhbmVsZ3JpZC1jb250ZW50ICsgZGl2LnAtcGFuZWxncmlkLWZvb3RlciB7XG4gICAgICAgICAgICBib3JkZXItdG9wOiAwIG5vbmU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLnAtbm9ib3JkZXIgLnAtY29tcG9uZW50LWNvbnRlbnQsXG4gICAgJi5wLW5vYm9yZGVyIC5wLWNvbXBvbmVudC1oZWFkZXIsXG4gICAgJi5wLW5vYm9yZGVyIC5wLXBhbmVsZ3JpZC1jZWxsLFxuICAgICYucC1ub2JvcmRlciAucC1wYW5lbGdyaWQtY2VsbC5wLWNvbXBvbmVudC1oZWFkZXIsXG4gICAgJi5wLW5vYm9yZGVyID4gZGl2LnAtcGFuZWxncmlkLWhlYWRlcixcbiAgICAmLnAtbm9ib3JkZXIgPiBkaXYucC1wYW5lbGdyaWQtY29udGVudCxcbiAgICAmLnAtbm9ib3JkZXIgPiBkaXYucC1wYW5lbGdyaWQtZm9vdGVyLFxuICAgIC5ncmlkIC5wLXBhbmVsZ3JpZC1jZWxsLFxuICAgIC5wLWdyaWQgLnAtcGFuZWxncmlkLWNlbGwsXG4gICAgLnVpLWdyaWQtcmVzcG9uc2l2ZSAucC1wYW5lbGdyaWQtY2VsbCB7XG4gICAgICAgIGJvcmRlcjogMCBub25lO1xuICAgIH1cblxuICAgICYucC1wYW5lbGdyaWQtYmxhbmsgLnAtcGFuZWxncmlkLWNvbnRlbnQucC1jb21wb25lbnQtY29udGVudCxcbiAgICAmLnAtcGFuZWxncmlkLWJsYW5rIC5wLXBhbmVsZ3JpZC1oZWFkZXIucC1jb21wb25lbnQtaGVhZGVyLFxuICAgICYucC1wYW5lbGdyaWQtYmxhbmsgLnAtcGFuZWxncmlkLWZvb3Rlci5wLWNvbXBvbmVudC1oZWFkZXIsXG4gICAgJi5wLXBhbmVsZ3JpZC1ibGFuayAucC1wYW5lbGdyaWQtaGVhZGVyID4gdHIucC1jb21wb25lbnQtaGVhZGVyLFxuICAgICYucC1wYW5lbGdyaWQtYmxhbmsgLnAtcGFuZWxncmlkLWZvb3RlciA+IHRyLnAtY29tcG9uZW50LWhlYWRlcixcbiAgICAmLnAtcGFuZWxncmlkLWJsYW5rIHRib2R5ID4gdHIucC1jb21wb25lbnQtY29udGVudCxcbiAgICAmLnAtcGFuZWxncmlkLWJsYW5rIHRib2R5ID4gdHIucC1jb21wb25lbnQtY29udGVudCA+IHRkLnAtcGFuZWxncmlkLWNlbGwsXG4gICAgJi5wLXBhbmVsZ3JpZC1ibGFuayAucC1wYW5lbGdyaWQtY2VsbCxcbiAgICAmLnAtcGFuZWxncmlkLWJsYW5rID4gZGl2LnAtcGFuZWxncmlkLWhlYWRlcixcbiAgICAmLnAtcGFuZWxncmlkLWJsYW5rID4gZGl2LnAtcGFuZWxncmlkLWNvbnRlbnQsXG4gICAgJi5wLXBhbmVsZ3JpZC1ibGFuayA+IGRpdi5wLXBhbmVsZ3JpZC1mb290ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICBib3JkZXI6IDAgbm9uZTtcbiAgICB9XG5cbiAgICAucC1wYW5lbGdyaWQtY2VsbC5wLXBhbmVsZ3JpZC1ub3BhZCB7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgfVxufVxuXG4vKiByZXNwb25zaXZlIChsZWdhY3kgdWktZ3JpZCkgKi9cbkBtZWRpYSAobWF4LXdpZHRoOiA2NDBweCkge1xuICAgIC5wLXBhbmVsZ3JpZCB7XG4gICAgICAgIC51aS1ncmlkLXJlc3BvbnNpdmUgLnVpLWdyaWQtcm93IHtcbiAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCB2YXIoLS1wLXBhbmVsZ3JpZC1jZWxsLWJvcmRlci1jb2xvcik7XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIGJvcmRlci10b3A6IDAgbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYucC1ub2JvcmRlciAudWktZ3JpZC1yZXNwb25zaXZlIC51aS1ncmlkLXJvdyB7XG4gICAgICAgICAgICBib3JkZXI6IDAgbm9uZTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsICIvKlxuICogUGFuZWxNZW51OiBwOnBhbmVsTWVudVxuICpcbiAqIE1hcmt1cDogLnAtcGFuZWxtZW51ID4gLnAtcGFuZWxtZW51LXBhbmVsXG4gKiAgICAgICAgICAgPiBoMy5wLXBhbmVsbWVudS1oZWFkZXIgKHAtc3RhdGUtYWN0aXZlIHdoZW4gZXhwYW5kZWQsIHAtc3RhdGUtaG92ZXIsIHAtbWVudWl0ZW0tb3V0bGluZSB3aGVuIGZvY3VzZWQpXG4gKiAgICAgICAgICAgICA+IHNwYW4ucC1wYW5lbG1lbnUtaGVhZGVyLWljb24gKHRvZ2dsZSkgKyBzcGFuLnAtc3VibWVudS1pY29uIChzdWJtZW51IGljb24sIG9wdGlvbmFsKSArIGEgKGxhYmVsKVxuICogICAgICAgICAgICsgLnAtcGFuZWxtZW51LWNvbnRlbnQgKHAtaGlkZGVuIHdoZW4gY29sbGFwc2VkKSA+IHVsLnAtbWVudS1saXN0XG4gKiAgICAgICAgICAgICA+IGxpLnAtbWVudWl0ZW0gPiBhLnAtbWVudWl0ZW0tbGluayAocC1zdGF0ZS1ob3ZlcikgPiBzcGFuLnAtbWVudWl0ZW0taWNvbiArIHNwYW4ucC1tZW51aXRlbS10ZXh0XG4gKiAgICAgICAgICAgICAgIChwLW1lbnVpdGVtLW91dGxpbmUgb24gdGhlIHRleHQgPSBrZXlib2FyZCAvIGNsaWNrIGZvY3VzKVxuICogICAgICAgICAgICAgPiBsaS5wLW1lbnUtcGFyZW50ID4gYS5wLW1lbnVpdGVtLWxpbmtbYXJpYS1leHBhbmRlZF0gPiAucC1wYW5lbG1lbnUtc3VibWVudS1pY29uICh0b2dnbGUpXG4gKiAgICAgICAgICAgICAgICsgc3Bhbi5wLXN1Ym1lbnUtaWNvbiArIHNwYW4ucC1tZW51aXRlbS10ZXh0XG4gKiAgICAgICAgICAgICAgICsgdWwucC1tZW51LWxpc3QgKHAtaGlkZGVuIHdoZW4gY29sbGFwc2VkKVxuICogTGlrZSBQcmltZVVJWDogc2VwYXJhdGUgYm9yZGVyZWQgcGFuZWxzIHdpdGggYSBnYXAsIHRoZSBoZWFkZXJzIGxvb2sgbGlrZSBpdGVtcy5cbiAqL1xuLnAtcGFuZWxtZW51IHtcbiAgICB3aWR0aDogYXV0bztcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgZ2FwOiB2YXIoLS1wLXBhbmVsbWVudS1nYXApO1xuXG4gICAgLnAtcGFuZWxtZW51LXBhbmVsIHtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1wLXBhbmVsbWVudS1wYW5lbC1iYWNrZ3JvdW5kKTtcbiAgICAgICAgY29sb3I6IHZhcigtLXAtcGFuZWxtZW51LXBhbmVsLWNvbG9yKTtcbiAgICAgICAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgICAgICAgYm9yZGVyLXdpZHRoOiB2YXIoLS1wLXBhbmVsbWVudS1wYW5lbC1ib3JkZXItd2lkdGgpO1xuICAgICAgICBib3JkZXItY29sb3I6IHZhcigtLXAtcGFuZWxtZW51LXBhbmVsLWJvcmRlci1jb2xvcik7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXAtcGFuZWxtZW51LXBhbmVsLWJvcmRlci1yYWRpdXMpO1xuICAgICAgICBwYWRkaW5nOiB2YXIoLS1wLXBhbmVsbWVudS1wYW5lbC1wYWRkaW5nKTtcblxuICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgIGJvcmRlci13aWR0aDogdmFyKC0tcC1wYW5lbG1lbnUtcGFuZWwtZmlyc3QtYm9yZGVyLXdpZHRoKTtcbiAgICAgICAgICAgIGJvcmRlci1zdGFydC1zdGFydC1yYWRpdXM6IHZhcigtLXAtcGFuZWxtZW51LXBhbmVsLWZpcnN0LXRvcC1ib3JkZXItcmFkaXVzKTtcbiAgICAgICAgICAgIGJvcmRlci1zdGFydC1lbmQtcmFkaXVzOiB2YXIoLS1wLXBhbmVsbWVudS1wYW5lbC1maXJzdC10b3AtYm9yZGVyLXJhZGl1cyk7XG4gICAgICAgIH1cblxuICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgYm9yZGVyLXdpZHRoOiB2YXIoLS1wLXBhbmVsbWVudS1wYW5lbC1sYXN0LWJvcmRlci13aWR0aCk7XG4gICAgICAgICAgICBib3JkZXItZW5kLXN0YXJ0LXJhZGl1czogdmFyKC0tcC1wYW5lbG1lbnUtcGFuZWwtbGFzdC1ib3R0b20tYm9yZGVyLXJhZGl1cyk7XG4gICAgICAgICAgICBib3JkZXItZW5kLWVuZC1yYWRpdXM6IHZhcigtLXAtcGFuZWxtZW51LXBhbmVsLWxhc3QtYm90dG9tLWJvcmRlci1yYWRpdXMpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLnAtcGFuZWxtZW51LWhlYWRlciB7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBtYXJnaW46IDA7XG5cbiAgICAgICAgJi5wLXN0YXRlLWRpc2FibGVkLFxuICAgICAgICAmLnAtc3RhdGUtZGlzYWJsZWQgYSB7XG4gICAgICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiBoZWFkZXI6IGxvb2tzIGxpa2UgYW4gaXRlbSAqL1xuICAgIGgzLnAtcGFuZWxtZW51LWhlYWRlciB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGdhcDogdmFyKC0tcC1wYW5lbG1lbnUtaXRlbS1nYXApO1xuICAgICAgICBwYWRkaW5nOiB2YXIoLS1wLXBhbmVsbWVudS1pdGVtLXBhZGRpbmcpO1xuICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICAgICAgY29sb3I6IHZhcigtLXAtcGFuZWxtZW51LWl0ZW0tY29sb3IpO1xuICAgICAgICBib3JkZXI6IDAgbm9uZTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogdmFyKC0tcC1wYW5lbG1lbnUtaXRlbS1ib3JkZXItcmFkaXVzKTtcbiAgICAgICAgZm9udC1zaXplOiB2YXIoLS1wLXBhbmVsbWVudS1pdGVtLWxhYmVsLWZvbnQtc2l6ZSk7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1wLXBhbmVsbWVudS1pdGVtLWxhYmVsLWZvbnQtd2VpZ2h0KTtcbiAgICAgICAgLXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTtcbiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgICAgIC8qIGFsc28gaGlkZXMgdGhlIHAtbWVudWl0ZW0tb3V0bGluZSB0aGUgY29tcG9uZW50IHNldHMgb24gZXZlcnkgZm9jdXMgKGNsaWNrIHRvbyksIDpmb2N1cy12aXNpYmxlIG1hcmtzIGtleWJvYXJkIGZvY3VzICovXG4gICAgICAgIG91dGxpbmU6IDAgbm9uZTtcbiAgICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCB2YXIoLS1wLXBhbmVsbWVudS10cmFuc2l0aW9uLWR1cmF0aW9uKSwgY29sb3IgdmFyKC0tcC1wYW5lbG1lbnUtdHJhbnNpdGlvbi1kdXJhdGlvbiksXG4gICAgICAgICAgICBvdXRsaW5lLWNvbG9yIHZhcigtLXAtcGFuZWxtZW51LXRyYW5zaXRpb24tZHVyYXRpb24pLCBib3gtc2hhZG93IHZhcigtLXAtcGFuZWxtZW51LXRyYW5zaXRpb24tZHVyYXRpb24pO1xuXG4gICAgICAgIGEge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBmbGV4OiAxIDEgYXV0bztcbiAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICBvdXRsaW5lOiAwIG5vbmU7XG4gICAgICAgICAgICBjb2xvcjogaW5oZXJpdDtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgIDppcygucC1tZW51aXRlbS1pY29uLCAucC1zdWJtZW51LWljb24pIHtcbiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1wLXBhbmVsbWVudS1pdGVtLWljb24tY29sb3IpO1xuICAgICAgICAgICAgZm9udC1zaXplOiB2YXIoLS1wLXBhbmVsbWVudS1pdGVtLWljb24tc2l6ZSk7XG4gICAgICAgIH1cblxuICAgICAgICAvKiB0b2dnbGUgaWNvbiAqL1xuICAgICAgICAucC1wYW5lbG1lbnUtaGVhZGVyLWljb24ge1xuICAgICAgICAgICAgLS1faWNvbjogdmFyKC0tcC1wYW5lbG1lbnUtaGVhZGVyLWNvbGxhcHNlZC1pY29uKTtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogdmFyKC0tcC1wYW5lbG1lbnUtaXRlbS1pY29uLXNpemUpO1xuICAgICAgICAgICAgY29sb3I6IHZhcigtLXAtcGFuZWxtZW51LXN1Ym1lbnUtaWNvbi1jb2xvcik7XG4gICAgICAgIH1cblxuICAgICAgICAmLnAtc3RhdGUtYWN0aXZlIC5wLXBhbmVsbWVudS1oZWFkZXItaWNvbiB7XG4gICAgICAgICAgICAtLV9pY29uOiB2YXIoLS1wLXBhbmVsbWVudS1oZWFkZXItZXhwYW5kZWQtaWNvbik7XG4gICAgICAgIH1cblxuICAgICAgICAvKiB0aGUgY29sbGFwc2VkIGljb24gcG9pbnRzIHRvIHRoZSBzdGFydCAqL1xuICAgICAgICAmOm5vdCgucC1zdGF0ZS1hY3RpdmUpIC5wLXBhbmVsbWVudS1oZWFkZXItaWNvbjpkaXIocnRsKSB7XG4gICAgICAgICAgICBzY2FsZTogLTEgMTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6bm90KC5wLXN0YXRlLWRpc2FibGVkKTpob3ZlcixcbiAgICAgICAgJi5wLXN0YXRlLWhvdmVyLFxuICAgICAgICAmOm5vdCgucC1zdGF0ZS1kaXNhYmxlZCk6Zm9jdXMtdmlzaWJsZSxcbiAgICAgICAgJjpub3QoLnAtc3RhdGUtZGlzYWJsZWQpOmhhcyg+IGE6Zm9jdXMtdmlzaWJsZSkge1xuICAgICAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tcC1wYW5lbG1lbnUtaXRlbS1mb2N1cy1iYWNrZ3JvdW5kKTtcbiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1wLXBhbmVsbWVudS1pdGVtLWZvY3VzLWNvbG9yKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6bm90KC5wLXN0YXRlLWRpc2FibGVkKTpob3ZlciA6aXMoLnAtbWVudWl0ZW0taWNvbiwgLnAtc3VibWVudS1pY29uKSxcbiAgICAgICAgJi5wLXN0YXRlLWhvdmVyIDppcygucC1tZW51aXRlbS1pY29uLCAucC1zdWJtZW51LWljb24pLFxuICAgICAgICAmOm5vdCgucC1zdGF0ZS1kaXNhYmxlZCk6Zm9jdXMtdmlzaWJsZSA6aXMoLnAtbWVudWl0ZW0taWNvbiwgLnAtc3VibWVudS1pY29uKSxcbiAgICAgICAgJjpub3QoLnAtc3RhdGUtZGlzYWJsZWQpOmhhcyg+IGE6Zm9jdXMtdmlzaWJsZSkgOmlzKC5wLW1lbnVpdGVtLWljb24sIC5wLXN1Ym1lbnUtaWNvbikge1xuICAgICAgICAgICAgY29sb3I6IHZhcigtLXAtcGFuZWxtZW51LWl0ZW0taWNvbi1mb2N1cy1jb2xvcik7XG4gICAgICAgIH1cblxuICAgICAgICAmOm5vdCgucC1zdGF0ZS1kaXNhYmxlZCk6aG92ZXIgLnAtcGFuZWxtZW51LWhlYWRlci1pY29uLFxuICAgICAgICAmLnAtc3RhdGUtaG92ZXIgLnAtcGFuZWxtZW51LWhlYWRlci1pY29uLFxuICAgICAgICAmOm5vdCgucC1zdGF0ZS1kaXNhYmxlZCk6Zm9jdXMtdmlzaWJsZSAucC1wYW5lbG1lbnUtaGVhZGVyLWljb24sXG4gICAgICAgICY6bm90KC5wLXN0YXRlLWRpc2FibGVkKTpoYXMoPiBhOmZvY3VzLXZpc2libGUpIC5wLXBhbmVsbWVudS1oZWFkZXItaWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogdmFyKC0tcC1wYW5lbG1lbnUtc3VibWVudS1pY29uLWZvY3VzLWNvbG9yKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5wLXBhbmVsbWVudS1jb250ZW50IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBvdmVyZmxvdzogYXV0bztcbiAgICAgICAgb3V0bGluZTogbm9uZTtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICAgICAgY29sb3I6IGluaGVyaXQ7XG4gICAgICAgIGJvcmRlcjogMCBub25lO1xuICAgIH1cblxuICAgIC5wLW1lbnUtbGlzdCB7XG4gICAgICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIG1hcmdpbjogMDtcblxuICAgICAgICAucC1tZW51LWxpc3Qge1xuICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIHBhZGRpbmctaW5saW5lLXN0YXJ0OiB2YXIoLS1wLXBhbmVsbWVudS1zdWJtZW51LWluZGVudCk7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAucC1tZW51aXRlbSB7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICB9XG5cbiAgICAucC1tZW51aXRlbS1saW5rIHtcbiAgICAgICAgb3V0bGluZTogbm9uZTtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB9XG5cbiAgICAucC1wYW5lbG1lbnUtY29udGVudCAucC1tZW51aXRlbS1saW5rIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgZ2FwOiB2YXIoLS1wLXBhbmVsbWVudS1pdGVtLWdhcCk7XG4gICAgICAgIHBhZGRpbmc6IHZhcigtLXAtcGFuZWxtZW51LWl0ZW0tcGFkZGluZyk7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1wLXBhbmVsbWVudS1pdGVtLWNvbG9yKTtcbiAgICAgICAgYm9yZGVyOiAwIG5vbmU7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXAtcGFuZWxtZW51LWl0ZW0tYm9yZGVyLXJhZGl1cyk7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiBpbmhlcml0O1xuICAgICAgICAtd2Via2l0LXVzZXItc2VsZWN0OiBub25lO1xuICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgb3V0bGluZS1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgdmFyKC0tcC1wYW5lbG1lbnUtdHJhbnNpdGlvbi1kdXJhdGlvbiksIGNvbG9yIHZhcigtLXAtcGFuZWxtZW51LXRyYW5zaXRpb24tZHVyYXRpb24pLFxuICAgICAgICAgICAgb3V0bGluZS1jb2xvciB2YXIoLS1wLXBhbmVsbWVudS10cmFuc2l0aW9uLWR1cmF0aW9uKSwgYm94LXNoYWRvdyB2YXIoLS1wLXBhbmVsbWVudS10cmFuc2l0aW9uLWR1cmF0aW9uKTtcblxuICAgICAgICA+IHNwYW46aXMoLnAtbWVudWl0ZW0taWNvbiwgLnAtc3VibWVudS1pY29uKSB7XG4gICAgICAgICAgICBjb2xvcjogdmFyKC0tcC1wYW5lbG1lbnUtaXRlbS1pY29uLWNvbG9yKTtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogdmFyKC0tcC1wYW5lbG1lbnUtaXRlbS1pY29uLXNpemUpO1xuICAgICAgICB9XG5cbiAgICAgICAgLyogc3VibWVudSB0b2dnbGUgaWNvbiwgdGhlIHN0YXRlIGlzIHRoZSBhcmlhLWV4cGFuZGVkIG9mIHRoZSBsaW5rICh0aGUgZm9jdXNlZCBlbGVtZW50KSAqL1xuICAgICAgICA+IC5wLXBhbmVsbWVudS1zdWJtZW51LWljb24ge1xuICAgICAgICAgICAgLS1faWNvbjogdmFyKC0tcC1wYW5lbG1lbnUtc3VibWVudS1jb2xsYXBzZWQtaWNvbik7XG4gICAgICAgICAgICBmb250LXNpemU6IHZhcigtLXAtcGFuZWxtZW51LWl0ZW0taWNvbi1zaXplKTtcbiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1wLXBhbmVsbWVudS1zdWJtZW51LWljb24tY29sb3IpO1xuICAgICAgICB9XG5cbiAgICAgICAgJlthcmlhLWV4cGFuZGVkPVwidHJ1ZVwiXSA+IC5wLXBhbmVsbWVudS1zdWJtZW51LWljb24ge1xuICAgICAgICAgICAgLS1faWNvbjogdmFyKC0tcC1wYW5lbG1lbnUtc3VibWVudS1leHBhbmRlZC1pY29uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6bm90KFthcmlhLWV4cGFuZGVkPVwidHJ1ZVwiXSkgPiAucC1wYW5lbG1lbnUtc3VibWVudS1pY29uOmRpcihydGwpIHtcbiAgICAgICAgICAgIHNjYWxlOiAtMSAxO1xuICAgICAgICB9XG5cbiAgICAgICAgLnAtbWVudWl0ZW0tdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBmb250LXNpemU6IHZhcigtLXAtcGFuZWxtZW51LWl0ZW0tbGFiZWwtZm9udC1zaXplKTtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1wLXBhbmVsbWVudS1pdGVtLWxhYmVsLWZvbnQtd2VpZ2h0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8qIGhvdmVyIGFuZCBmb2N1c2VkIGl0ZW0gKHRoZSBjb21wb25lbnQgcHV0cyBwLW1lbnVpdGVtLW91dGxpbmUgb24gdGhlIHRleHQgb2YgdGhlIGZvY3VzZWQgaXRlbSkgKi9cbiAgICAgICAgJjpub3QoLnAtc3RhdGUtZGlzYWJsZWQpOmhvdmVyLFxuICAgICAgICAmLnAtc3RhdGUtaG92ZXIsXG4gICAgICAgICY6aGFzKD4gLnAtbWVudWl0ZW0tb3V0bGluZSksXG4gICAgICAgICY6bm90KC5wLXN0YXRlLWRpc2FibGVkKTpmb2N1cy12aXNpYmxlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHZhcigtLXAtcGFuZWxtZW51LWl0ZW0tZm9jdXMtYmFja2dyb3VuZCk7XG4gICAgICAgICAgICBjb2xvcjogdmFyKC0tcC1wYW5lbG1lbnUtaXRlbS1mb2N1cy1jb2xvcik7XG4gICAgICAgIH1cblxuICAgICAgICAucC1tZW51aXRlbS10ZXh0LnAtbWVudWl0ZW0tb3V0bGluZSB7XG4gICAgICAgICAgICBvdXRsaW5lOiAwIG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmOm5vdCgucC1zdGF0ZS1kaXNhYmxlZCk6aG92ZXIgc3BhbjppcygucC1tZW51aXRlbS1pY29uLCAucC1zdWJtZW51LWljb24pLFxuICAgICAgICAmLnAtc3RhdGUtaG92ZXIgc3BhbjppcygucC1tZW51aXRlbS1pY29uLCAucC1zdWJtZW51LWljb24pLFxuICAgICAgICAmOmhhcyg+IC5wLW1lbnVpdGVtLW91dGxpbmUpIHNwYW46aXMoLnAtbWVudWl0ZW0taWNvbiwgLnAtc3VibWVudS1pY29uKSxcbiAgICAgICAgJjpub3QoLnAtc3RhdGUtZGlzYWJsZWQpOmZvY3VzLXZpc2libGUgc3BhbjppcygucC1tZW51aXRlbS1pY29uLCAucC1zdWJtZW51LWljb24pIHtcbiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1wLXBhbmVsbWVudS1pdGVtLWljb24tZm9jdXMtY29sb3IpO1xuICAgICAgICB9XG5cbiAgICAgICAgJjpub3QoLnAtc3RhdGUtZGlzYWJsZWQpOmhvdmVyIHNwYW4ucC1wYW5lbG1lbnUtaWNvbixcbiAgICAgICAgJi5wLXN0YXRlLWhvdmVyIHNwYW4ucC1wYW5lbG1lbnUtaWNvbixcbiAgICAgICAgJjpoYXMoPiAucC1tZW51aXRlbS1vdXRsaW5lKSBzcGFuLnAtcGFuZWxtZW51LWljb24sXG4gICAgICAgICY6bm90KC5wLXN0YXRlLWRpc2FibGVkKTpmb2N1cy12aXNpYmxlIHNwYW4ucC1wYW5lbG1lbnUtaWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogdmFyKC0tcC1wYW5lbG1lbnUtc3VibWVudS1pY29uLWZvY3VzLWNvbG9yKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6bm90KC5wLXN0YXRlLWRpc2FibGVkKTpob3ZlciAucC1tZW51aXRlbS10ZXh0LFxuICAgICAgICAmLnAtc3RhdGUtaG92ZXIgLnAtbWVudWl0ZW0tdGV4dCxcbiAgICAgICAgJjpoYXMoPiAucC1tZW51aXRlbS1vdXRsaW5lKSAucC1tZW51aXRlbS10ZXh0LFxuICAgICAgICAmOm5vdCgucC1zdGF0ZS1kaXNhYmxlZCk6Zm9jdXMtdmlzaWJsZSAucC1tZW51aXRlbS10ZXh0IHtcbiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1wLXBhbmVsbWVudS1pdGVtLWZvY3VzLWNvbG9yKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsICIvKlxuICogUGFzc3dvcmQ6IHA6cGFzc3dvcmQgKHRvZ2dsZSBtYXNrIGljb24gYW5kIHRoZSBmZWVkYmFjayBvdmVybGF5IC8gaW5saW5lIHBhbmVsKVxuICpcbiAqIFN1cHBvcnRlZCBjbGFzc2VzOiBwLXBhc3N3b3JkLW1hc2tlZCwgcC1wYXNzd29yZC11bm1hc2tlZCAodG9nZ2xlTWFzayB3cmFwcGVyLCBhbHNvIC5wLWlucHV0LWljb24tcmlnaHQgLyAtbGVmdCksXG4gKiAgICAgICAgICAgICAgICAgICAgcC1wYXNzd29yZC1wYW5lbC1vdmVybGF5LCBwLXBhc3N3b3JkLXBhbmVsLWlubGluZVxuICovXG4ucC1wYXNzd29yZC1wYW5lbC1vdmVybGF5IHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG59XG5cbi5wLXBhc3N3b3JkLW1hc2tlZC5wLXBhc3N3b3JkLFxuLnAtcGFzc3dvcmQtdW5tYXNrZWQucC1wYXNzd29yZCB7XG4gICAgPiBpbnB1dDo6LW1zLXJldmVhbCxcbiAgICA+IGlucHV0OjotbXMtY2xlYXIge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbn1cblxuLnAtcGFzc3dvcmQge1xuICAgIC5wLXBhc3N3b3JkLWljb24ge1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIC8qIHRoZSBzaXplIG9mIHRoZSBmaWVsZCB0ZXh0LCBub3QgLS1wLWljb24tc2l6ZSBvZiAucC1pY29uICovXG4gICAgICAgIGZvbnQtc2l6ZTogaW5oZXJpdDtcbiAgICAgICAgY29sb3I6IHZhcigtLXAtcGFzc3dvcmQtaWNvbi1jb2xvcik7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXAtYm9yZGVyLXJhZGl1cy14cyk7XG4gICAgICAgIG91dGxpbmUtY29sb3I6IHRyYW5zcGFyZW50O1xuXG4gICAgICAgICY6Zm9jdXMtdmlzaWJsZSB7XG4gICAgICAgICAgICBvdXRsaW5lOiB2YXIoLS1wLWZvY3VzLXJpbmctd2lkdGgpIHZhcigtLXAtZm9jdXMtcmluZy1zdHlsZSkgdmFyKC0tcC1mb2N1cy1yaW5nLWNvbG9yKTtcbiAgICAgICAgICAgIG91dGxpbmUtb2Zmc2V0OiB2YXIoLS1wLWZvY3VzLXJpbmctb2Zmc2V0KTtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IHZhcigtLXAtZm9jdXMtcmluZy1zaGFkb3cpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLnAtcGFzc3dvcmQtdG9nZ2xlLWljb24ge1xuICAgICAgICAtLV9pY29uOiB2YXIoLS1wLXBhc3N3b3JkLXNob3ctaWNvbik7XG4gICAgfVxuXG4gICAgJi5wLXBhc3N3b3JkLXVubWFza2VkIC5wLXBhc3N3b3JkLXRvZ2dsZS1pY29uIHtcbiAgICAgICAgLS1faWNvbjogdmFyKC0tcC1wYXNzd29yZC1oaWRlLWljb24pO1xuICAgIH1cbn1cblxuLnAtcGFzc3dvcmQtcGFuZWwge1xuICAgIC8qIC5wLWNvbXBvbmVudCBhZGRlZCBmb3Igc3BlY2lmaWNpdHksIHRoZSBwYW5lbCBhbHNvIGNhcnJpZXMgcC1zdGF0ZS1oaWdobGlnaHQgKi9cbiAgICAmLnAtY29tcG9uZW50IHtcbiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tcC1wYXNzd29yZC1vdmVybGF5LWJhY2tncm91bmQpO1xuICAgICAgICBjb2xvcjogdmFyKC0tcC1wYXNzd29yZC1vdmVybGF5LWNvbG9yKTtcbiAgICAgICAgcGFkZGluZzogdmFyKC0tcC1wYXNzd29yZC1vdmVybGF5LXBhZGRpbmcpO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1wLXBhc3N3b3JkLW92ZXJsYXktYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgLyogbGF5b3V0IHZhbHVlLCBubyB0b2tlbjoga2VlcHMgdGhlIG92ZXJsYXkgcmVhZGFibGUgZm9yIHNob3J0IGlucHV0cyAqL1xuICAgICAgICBtaW4td2lkdGg6IDE1MHB4O1xuICAgICAgICBib3gtc2hhZG93OiB2YXIoLS1wLXBhc3N3b3JkLW92ZXJsYXktc2hhZG93KTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogdmFyKC0tcC1wYXNzd29yZC1vdmVybGF5LWJvcmRlci1yYWRpdXMpO1xuICAgIH1cblxuICAgICYucC1wYXNzd29yZC1wYW5lbC1pbmxpbmUge1xuICAgICAgICBtYXJnaW4tdG9wOiB2YXIoLS1wLXBhc3N3b3JkLWNvbnRlbnQtZ2FwKTtcbiAgICAgICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICB9XG5cbiAgICAvKlxuICAgICAqIFN0cmVuZ3RoIG1ldGVyOiB0aGUgY29tcG9uZW50IG9ubHkgc2V0cyBhbiBpbmxpbmUgYmFja2dyb3VuZC1wb3NpdGlvbiAoMCAwID0gZW1wdHksIDAgLTEwcHggPSB3ZWFrLCAwIC0yMHB4ID0gbWVkaXVtLFxuICAgICAqIDAgLTMwcHggPSBzdHJvbmcpLCBvcmlnaW5hbGx5IGZvciBhIHNwcml0ZSBpbWFnZS4gRWFjaCBzdHJlbmd0aCBpcyBhIGJhY2tncm91bmQgbGF5ZXIgd2hvc2UgY29sb3JlZCAxMHB4IGJhbmRcbiAgICAgKiBiZWNvbWVzIHZpc2libGUgYXQgaXRzIG9mZnNldDsgdGhlIGxheWVyIHdpZHRoIHNob3dzIHRoZSBzdHJlbmd0aCAoMS8zLCAyLzMsIGZ1bGwpLlxuICAgICAqIFRoZSAxMHB4IGJhbmQgaGVpZ2h0IGlzIGZpeGVkIGJ5IHRoZSBjb21wb25lbnQgb2Zmc2V0cywgc28gdGhlIG1ldGVyIGlzIG5ldmVyIHRhbGxlciB0aGFuIHRoYXQuXG4gICAgICovXG4gICAgLnAtcGFzc3dvcmQtbWV0ZXIge1xuICAgICAgICBoZWlnaHQ6IHZhcigtLXAtcGFzc3dvcmQtbWV0ZXItaGVpZ2h0KTtcbiAgICAgICAgbWF4LWhlaWdodDogMTBweDtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICBmb250LXNpemU6IDA7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgICAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1wLXBhc3N3b3JkLW1ldGVyLWJvcmRlci1yYWRpdXMpO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1wLXBhc3N3b3JkLW1ldGVyLWJhY2tncm91bmQpO1xuICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOlxuICAgICAgICAgICAgbGluZWFyLWdyYWRpZW50KHRvIGJvdHRvbSwgdHJhbnNwYXJlbnQgMTBweCwgdmFyKC0tcC1wYXNzd29yZC1zdHJlbmd0aC13ZWFrLWJhY2tncm91bmQpIDEwcHgsXG4gICAgICAgICAgICAgICAgdmFyKC0tcC1wYXNzd29yZC1zdHJlbmd0aC13ZWFrLWJhY2tncm91bmQpIDIwcHgsIHRyYW5zcGFyZW50IDIwcHgpLFxuICAgICAgICAgICAgbGluZWFyLWdyYWRpZW50KHRvIGJvdHRvbSwgdHJhbnNwYXJlbnQgMjBweCwgdmFyKC0tcC1wYXNzd29yZC1zdHJlbmd0aC1tZWRpdW0tYmFja2dyb3VuZCkgMjBweCxcbiAgICAgICAgICAgICAgICB2YXIoLS1wLXBhc3N3b3JkLXN0cmVuZ3RoLW1lZGl1bS1iYWNrZ3JvdW5kKSAzMHB4LCB0cmFuc3BhcmVudCAzMHB4KSxcbiAgICAgICAgICAgIGxpbmVhci1ncmFkaWVudCh0byBib3R0b20sIHRyYW5zcGFyZW50IDMwcHgsIHZhcigtLXAtcGFzc3dvcmQtc3RyZW5ndGgtc3Ryb25nLWJhY2tncm91bmQpIDMwcHgpO1xuICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IDMzLjMzMyUgNDBweCwgNjYuNjY2JSA0MHB4LCAxMDAlIDQwcHg7XG4gICAgICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgfVxuXG4gICAgLnAtcGFzc3dvcmQtaW5mbyB7XG4gICAgICAgIG1hcmdpbi10b3A6IHZhcigtLXAtcGFzc3dvcmQtY29udGVudC1nYXApO1xuICAgICAgICBmb250LXNpemU6IHZhcigtLXAtcGFzc3dvcmQtbWV0ZXItdGV4dC1mb250LXNpemUpO1xuICAgICAgICBmb250LXdlaWdodDogdmFyKC0tcC1wYXNzd29yZC1tZXRlci10ZXh0LWZvbnQtd2VpZ2h0KTtcbiAgICB9XG59XG5cbi5wLWZsdWlkIC5wLXBhc3N3b3JkLFxuLnAtZmx1aWQgLnAtcGFzc3dvcmQgaW5wdXQge1xuICAgIHdpZHRoOiAxMDAlO1xufVxuIiwgIi8qXG4gKiBQaWNrTGlzdDogcDpwaWNrTGlzdCAoUHJpbWVVSVggcGlja2xpc3QgKyBsaXN0Ym94IHRva2VucywgY2FwdGlvbiB1c2VzIHRoZSBwYW5lbCBoZWFkZXIgdG9rZW5zKVxuICpcbiAqIFN1cHBvcnRlZCBjbGFzc2VzOiBwLXBpY2tsaXN0LXZlcnRpY2FsLCBwLXBpY2tsaXN0LXJlc3BvbnNpdmUsIHAtcGlja2xpc3Qtb3V0bGluZSAoa2V5Ym9hcmQgZm9jdXNlZCBpdGVtKSwgcC1zdGF0ZS1kaXNhYmxlZFxuICovXG4ucC1waWNrbGlzdCB7XG4gICAgZGlzcGxheTogdGFibGU7XG5cbiAgICA+IGRpdiB7XG4gICAgICAgIGZsb2F0OiBub25lO1xuICAgICAgICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgIH1cblxuICAgIC5wLXBpY2tsaXN0LWJ1dHRvbnMge1xuICAgICAgICBoZWlnaHQ6IDIwMHB4O1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICBwYWRkaW5nOiAwIHZhcigtLXAtcGlja2xpc3QtZ2FwKTtcblxuICAgICAgICBidXR0b24ge1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAucC1idXR0b24ge1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogdmFyKC0tcC1waWNrbGlzdC1jb250cm9scy1nYXApO1xuICAgICAgICB9XG5cbiAgICAgICAgLnAtcGlja2xpc3QtbW92ZS11cC1pY29uIHtcbiAgICAgICAgICAgIC0tX2ljb246IHZhcigtLXAtcGlja2xpc3QtbW92ZS11cC1pY29uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5wLXBpY2tsaXN0LW1vdmUtdG9wLWljb24ge1xuICAgICAgICAgICAgLS1faWNvbjogdmFyKC0tcC1waWNrbGlzdC1tb3ZlLXRvcC1pY29uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5wLXBpY2tsaXN0LW1vdmUtZG93bi1pY29uIHtcbiAgICAgICAgICAgIC0tX2ljb246IHZhcigtLXAtcGlja2xpc3QtbW92ZS1kb3duLWljb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgLnAtcGlja2xpc3QtbW92ZS1ib3R0b20taWNvbiB7XG4gICAgICAgICAgICAtLV9pY29uOiB2YXIoLS1wLXBpY2tsaXN0LW1vdmUtYm90dG9tLWljb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgLnAtcGlja2xpc3QtbW92ZS10by10YXJnZXQtaWNvbiB7XG4gICAgICAgICAgICAtLV9pY29uOiB2YXIoLS1wLXBpY2tsaXN0LW1vdmUtdG8tdGFyZ2V0LWljb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgLnAtcGlja2xpc3QtbW92ZS1hbGwtdG8tdGFyZ2V0LWljb24ge1xuICAgICAgICAgICAgLS1faWNvbjogdmFyKC0tcC1waWNrbGlzdC1tb3ZlLWFsbC10by10YXJnZXQtaWNvbik7XG4gICAgICAgIH1cblxuICAgICAgICAucC1waWNrbGlzdC1tb3ZlLXRvLXNvdXJjZS1pY29uIHtcbiAgICAgICAgICAgIC0tX2ljb246IHZhcigtLXAtcGlja2xpc3QtbW92ZS10by1zb3VyY2UtaWNvbik7XG4gICAgICAgIH1cblxuICAgICAgICAucC1waWNrbGlzdC1tb3ZlLWFsbC10by1zb3VyY2UtaWNvbiB7XG4gICAgICAgICAgICAtLV9pY29uOiB2YXIoLS1wLXBpY2tsaXN0LW1vdmUtYWxsLXRvLXNvdXJjZS1pY29uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8qIG9yaWVudGF0aW9uPVwidmVydGljYWxcIjogdGhlIGJ1dHRvbnMgYmV0d2VlbiB0aGUgbGlzdHMgcG9pbnQgZG93biAvIHVwICovXG4gICAgICAgIC5wLXBpY2tsaXN0LW1vdmUtdG8tdGFyZ2V0LXZlcnRpY2FsLWljb24ge1xuICAgICAgICAgICAgLS1faWNvbjogdmFyKC0tcC1waWNrbGlzdC1tb3ZlLXRvLXRhcmdldC12ZXJ0aWNhbC1pY29uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5wLXBpY2tsaXN0LW1vdmUtYWxsLXRvLXRhcmdldC12ZXJ0aWNhbC1pY29uIHtcbiAgICAgICAgICAgIC0tX2ljb246IHZhcigtLXAtcGlja2xpc3QtbW92ZS1hbGwtdG8tdGFyZ2V0LXZlcnRpY2FsLWljb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgLnAtcGlja2xpc3QtbW92ZS10by1zb3VyY2UtdmVydGljYWwtaWNvbiB7XG4gICAgICAgICAgICAtLV9pY29uOiB2YXIoLS1wLXBpY2tsaXN0LW1vdmUtdG8tc291cmNlLXZlcnRpY2FsLWljb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgLnAtcGlja2xpc3QtbW92ZS1hbGwtdG8tc291cmNlLXZlcnRpY2FsLWljb24ge1xuICAgICAgICAgICAgLS1faWNvbjogdmFyKC0tcC1waWNrbGlzdC1tb3ZlLWFsbC10by1zb3VyY2UtdmVydGljYWwtaWNvbik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiBmbGV4OiB0aGUgKGhpZGRlbikgbGFiZWwgb2YgdGhlIGljb24gb25seSBidXR0b25zIGlzIGEgYmxvY2sgYW5kIHdvdWxkIGFkZCBhIHNlY29uZCBsaW5lIG90aGVyd2lzZSAqL1xuICAgIC5wLWJ1dHRvbiB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgfVxuXG4gICAgLnAtYnV0dG9uLXRleHQtaWNvbi1sZWZ0IHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgfVxuXG4gICAgLyogdGhlIGNhcHRpb24gYmFja2dyb3VuZCBpcyBsYXllcmVkIG92ZXIgdGhlIGxpc3QgYmFja2dyb3VuZCwgYXMgaXQgaXMgdHJhbnNwYXJlbnQgaW4gc29tZSBwcmVzZXRzICovXG4gICAgLnAtcGlja2xpc3QtY2FwdGlvbiB7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KHZhcigtLXAtcGlja2xpc3QtY2FwdGlvbi1iYWNrZ3JvdW5kKSwgdmFyKC0tcC1waWNrbGlzdC1jYXB0aW9uLWJhY2tncm91bmQpKSwgdmFyKC0tcC1saXN0Ym94LWJhY2tncm91bmQpO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1wLXBpY2tsaXN0LWNhcHRpb24tYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMCBub25lO1xuICAgICAgICBjb2xvcjogdmFyKC0tcC1waWNrbGlzdC1jYXB0aW9uLWNvbG9yKTtcbiAgICAgICAgcGFkZGluZzogdmFyKC0tcC1waWNrbGlzdC1jYXB0aW9uLXBhZGRpbmcpO1xuICAgICAgICBmb250LXdlaWdodDogdmFyKC0tcC1waWNrbGlzdC1jYXB0aW9uLWZvbnQtd2VpZ2h0KTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogdmFyKC0tcC1saXN0Ym94LWJvcmRlci1yYWRpdXMpIHZhcigtLXAtbGlzdGJveC1ib3JkZXItcmFkaXVzKSAwIDA7XG4gICAgfVxuXG4gICAgdGFibGUge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTtcbiAgICB9XG5cbiAgICAucC1waWNrbGlzdC1maWx0ZXIge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICB9XG5cbiAgICAvKiBzZWFyY2ggaWNvbiBpbnNpZGUgdGhlIGZpbHRlciBpbnB1dCwgYXQgdGhlIHN0YXJ0ICovXG4gICAgLnAtcGlja2xpc3QtZmlsdGVyLWNvbnRhaW5lciB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBwYWRkaW5nOiAwO1xuXG4gICAgICAgIC5wLXBpY2tsaXN0LWZpbHRlciB7XG4gICAgICAgICAgICBwYWRkaW5nLWJsb2NrOiB2YXIoLS1wLWlucHV0dGV4dC1wYWRkaW5nLXkpO1xuICAgICAgICAgICAgcGFkZGluZy1pbmxpbmU6IHZhcigtLXAtaW5wdXR0ZXh0LXBhZGRpbmcteCk7XG4gICAgICAgICAgICBwYWRkaW5nLWlubGluZS1zdGFydDogY2FsYygyICogdmFyKC0tcC1pbnB1dHRleHQtcGFkZGluZy14KSArIHZhcigtLXAtaWNvbi1zaXplKSk7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiB2YXIoLS1wLXBpY2tsaXN0LWNvbnRyb2xzLWdhcCk7XG4gICAgICAgIH1cblxuICAgICAgICAucC1waWNrbGlzdC1maWx0ZXItaWNvbiB7XG4gICAgICAgICAgICAtLV9pY29uOiB2YXIoLS1wLXBpY2tsaXN0LWZpbHRlci1pY29uKTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGluc2V0LWlubGluZS1zdGFydDogdmFyKC0tcC1pbnB1dHRleHQtcGFkZGluZy14KTtcbiAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogY2FsYygtMSAqIHZhcigtLXAtaWNvbi1zaXplKSAvIDIgLSB2YXIoLS1wLXBpY2tsaXN0LWNvbnRyb2xzLWdhcCkgLyAyKTtcbiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1wLWZvcm0tZmllbGQtaWNvbi1jb2xvcik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAucC1waWNrbGlzdC1saXN0IHtcbiAgICAgICAgbGlzdC1zdHlsZS10eXBlOiBub25lO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIG92ZXJmbG93OiBhdXRvO1xuICAgICAgICBoZWlnaHQ6IDIwMHB4O1xuICAgICAgICB3aWR0aDogMjAwcHg7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLXAtbGlzdGJveC1ib3JkZXItY29sb3IpO1xuICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1wLWxpc3Rib3gtYmFja2dyb3VuZCk7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1wLWxpc3Rib3gtY29sb3IpO1xuICAgICAgICBwYWRkaW5nOiB2YXIoLS1wLWxpc3Rib3gtbGlzdC1wYWRkaW5nKTtcbiAgICAgICAgYm94LXNoYWRvdzogdmFyKC0tcC1saXN0Ym94LXNoYWRvdyk7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXAtbGlzdGJveC1ib3JkZXItcmFkaXVzKTtcblxuICAgICAgICBsaSB7XG4gICAgICAgICAgICBvdmVyZmxvdy13cmFwOiBicmVhay13b3JkO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLnAtcGlja2xpc3QtY2FwdGlvbiArIC5wLXBpY2tsaXN0LWxpc3Qge1xuICAgICAgICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAwO1xuICAgICAgICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogMDtcbiAgICB9XG5cbiAgICAucC1waWNrbGlzdC1pdGVtIHtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIH1cblxuICAgIC5wLXBpY2tsaXN0LWxpc3QgLnAtcGlja2xpc3QtaXRlbSB7XG4gICAgICAgIHBhZGRpbmc6IHZhcigtLXAtbGlzdGJveC1vcHRpb24tcGFkZGluZyk7XG4gICAgICAgIGJvcmRlcjogMCBub25lO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1wLWxpc3Rib3gtb3B0aW9uLWNvbG9yKTtcbiAgICAgICAgZm9udC1zaXplOiB2YXIoLS1wLWxpc3Rib3gtb3B0aW9uLWZvbnQtc2l6ZSk7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1wLWxpc3Rib3gtb3B0aW9uLWZvbnQtd2VpZ2h0KTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogdmFyKC0tcC1saXN0Ym94LW9wdGlvbi1ib3JkZXItcmFkaXVzKTtcbiAgICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCB2YXIoLS1wLWxpc3Rib3gtdHJhbnNpdGlvbi1kdXJhdGlvbiksIGNvbG9yIHZhcigtLXAtbGlzdGJveC10cmFuc2l0aW9uLWR1cmF0aW9uKSxcbiAgICAgICAgICAgIGJvcmRlci1jb2xvciB2YXIoLS1wLWxpc3Rib3gtdHJhbnNpdGlvbi1kdXJhdGlvbiksIGJveC1zaGFkb3cgdmFyKC0tcC1saXN0Ym94LXRyYW5zaXRpb24tZHVyYXRpb24pO1xuXG4gICAgICAgICsgLnAtcGlja2xpc3QtaXRlbSB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiB2YXIoLS1wLWxpc3Rib3gtbGlzdC1nYXApO1xuICAgICAgICB9XG5cbiAgICAgICAgJjpub3QoLnAtc3RhdGUtaGlnaGxpZ2h0LCAucC1zdGF0ZS1kaXNhYmxlZCk6aG92ZXIsXG4gICAgICAgICYucC1zdGF0ZS1ob3ZlciB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1wLWxpc3Rib3gtb3B0aW9uLWZvY3VzLWJhY2tncm91bmQpO1xuICAgICAgICAgICAgY29sb3I6IHZhcigtLXAtbGlzdGJveC1vcHRpb24tZm9jdXMtY29sb3IpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi5wLXN0YXRlLWhpZ2hsaWdodCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1wLWxpc3Rib3gtb3B0aW9uLXNlbGVjdGVkLWJhY2tncm91bmQpO1xuICAgICAgICAgICAgY29sb3I6IHZhcigtLXAtbGlzdGJveC1vcHRpb24tc2VsZWN0ZWQtY29sb3IpO1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IHZhcigtLXAtbGlzdGJveC1vcHRpb24tc2VsZWN0ZWQtZm9udC13ZWlnaHQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi5wLXN0YXRlLWhpZ2hsaWdodC5wLXNvcnRhYmxlLXBsYWNlaG9sZGVyIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHZhcigtLXAtbGlzdGJveC1vcHRpb24tc2VsZWN0ZWQtZm9jdXMtYmFja2dyb3VuZCk7XG4gICAgICAgIH1cblxuICAgICAgICAvKiBrZXlib2FyZCBmb2N1cyAqL1xuICAgICAgICAmLnAtcGlja2xpc3Qtb3V0bGluZSB7XG4gICAgICAgICAgICBvdXRsaW5lOiB2YXIoLS1wLWZvY3VzLXJpbmctd2lkdGgpIHZhcigtLXAtZm9jdXMtcmluZy1zdHlsZSkgdmFyKC0tcC1mb2N1cy1yaW5nLWNvbG9yKTtcbiAgICAgICAgICAgIG91dGxpbmUtb2Zmc2V0OiBjYWxjKC0xICogdmFyKC0tcC1mb2N1cy1yaW5nLXdpZHRoKSk7XG4gICAgICAgICAgICBib3gtc2hhZG93OiB2YXIoLS1wLWZvY3VzLXJpbmctc2hhZG93KTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5wLWNoa2JveCB7XG4gICAgICAgICAgICBtYXJnaW4taW5saW5lLWVuZDogdmFyKC0tcC1saXN0Ym94LWNoZWNrbWFyay1ndXR0ZXItZW5kKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICYucC1waWNrbGlzdC12ZXJ0aWNhbCB7XG4gICAgICAgID4gZGl2IHtcbiAgICAgICAgICAgIGZsb2F0OiBub25lO1xuICAgICAgICAgICAgZGlzcGxheTogdGFibGUtcm93O1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5wLXBpY2tsaXN0LWJ1dHRvbnMge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgcGFkZGluZzogdmFyKC0tcC1waWNrbGlzdC1jb250cm9scy1nYXApIDA7XG5cbiAgICAgICAgICAgIC5wLWJ1dHRvbiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1pbmxpbmUtZW5kOiB2YXIoLS1wLXBpY2tsaXN0LWNvbnRyb2xzLWdhcCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKlxuICAgICAqIHJlc3BvbnNpdmU6IHRoZSBwaWNrTGlzdCBpcyBhIGdyaWQgd2l0aCB0aGUgY29sdW1uIHdpZHRoc1xuICAgICAqIHRoZSB0YWJsZSBoYWQgKGxpc3RzIDQ1JSAvIGJ1dHRvbnMgMTAlOyBsaXN0cyAzNSUgbmV4dCB0byByZW9yZGVyIGNvbnRyb2xzLCB3aGljaCBzaGFyZSB0aGUgcmVzdCBsaWtlIGF1dG8gdGFibGVcbiAgICAgKiBjb2x1bW5zKSwgYW5kIGEgYmxvY2sgaW4gdGhlIHZlcnRpY2FsIGxheW91dCAoaXRzIHRhYmxlIHJvd3Mgd2VyZSBmdWxsIHdpZHRoIGFscmVhZHkpLiBTYW1lIGxheW91dCBhcyB0aGUgdGFibGUuXG4gICAgICovXG4gICAgJi5wLXBpY2tsaXN0LXJlc3BvbnNpdmUge1xuICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICAqIHtcbiAgICAgICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgICAgIH1cblxuICAgICAgICAucC1waWNrbGlzdC1idXR0b25zIGJ1dHRvbiB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5wLXBpY2tsaXN0LWxpc3Qge1xuICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLnAtcGlja2xpc3QtcmVzcG9uc2l2ZTpub3QoLnAtcGlja2xpc3QtdmVydGljYWwpIHtcbiAgICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiA0NSUgMTAlIDQ1JTtcblxuICAgICAgICAmOmhhcyg+IC5wLXBpY2tsaXN0LXNvdXJjZS1jb250cm9scykge1xuICAgICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiBhdXRvIDM1JSAxMCUgNDUlO1xuICAgICAgICB9XG5cbiAgICAgICAgJjpoYXMoPiAucC1waWNrbGlzdC10YXJnZXQtY29udHJvbHMpIHtcbiAgICAgICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogNDUlIDEwJSAzNSUgYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICY6aGFzKD4gLnAtcGlja2xpc3Qtc291cmNlLWNvbnRyb2xzKTpoYXMoPiAucC1waWNrbGlzdC10YXJnZXQtY29udHJvbHMpIHtcbiAgICAgICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogYXV0byAzNSUgMTAlIDM1JSBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgPiBkaXYge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAvKiBidXR0b25zIGNlbnRlcmVkIG9uIHRoZSByb3cgaGVpZ2h0LCBsaWtlIGluIHRoZSBtaWRkbGUgYWxpZ25lZCB0YWJsZSBjZWxsICovXG4gICAgICAgID4gLnAtcGlja2xpc3QtYnV0dG9ucyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi5wLXBpY2tsaXN0LXJlc3BvbnNpdmUucC1waWNrbGlzdC12ZXJ0aWNhbCB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgID4gZGl2IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgLyogdGFibGUgcm93cyBoYXZlIG5vIHBhZGRpbmc6IGtlZXAgdGhlIHRhYmxlIGxheW91dCAoOndoZXJlLCBzbyB0aGUgbmFycm93IGxheW91dCBiZWxvdyBzdGlsbCBzZXRzIGl0KSAqL1xuICAgICAgICA+IDp3aGVyZSgucC1waWNrbGlzdC1idXR0b25zKSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4ucC1waWNrbGlzdC1saXN0LnAtcGlja2xpc3Qtc291cmNlLFxuLnAtcGlja2xpc3QtbGlzdC5wLXBpY2tsaXN0LXRhcmdldCB7XG4gICAgb3V0bGluZTogbm9uZTtcbn1cblxuLnAtcGlja2xpc3Qtb3V0bGluZSB7XG4gICAgei1pbmRleDogMTtcbn1cblxuLyogbmFycm93IHZpZXdwb3J0OiBsaXN0cyBhbmQgYnV0dG9ucyBzdGFja2VkICovXG5AbWVkaWEgKG1heC13aWR0aDogNjQwcHgpIHtcbiAgICAucC1waWNrbGlzdC5wLXBpY2tsaXN0LXJlc3BvbnNpdmUge1xuICAgICAgICA+IGRpdiB7XG4gICAgICAgICAgICBncmlkLWNvbHVtbjogMSAvIC0xO1xuICAgICAgICB9XG5cbiAgICAgICAgPiBkaXYucC1oaWRkZW4tYWNjZXNzaWJsZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgLyogdGhlIGJ1dHRvbnMgYXJlIGluIGEgcm93IGJldHdlZW4gdGhlIGxpc3RzOiB0aGUgYXJyb3dzIHBvaW50IGRvd24gLyB1cCAqL1xuICAgICAgICAucC1waWNrbGlzdC1idXR0b25zIHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGhlaWdodDogYXV0bztcbiAgICAgICAgICAgIHBhZGRpbmc6IHZhcigtLXAtcGlja2xpc3QtY29udHJvbHMtZ2FwKSAwO1xuXG4gICAgICAgICAgICBidXR0b24ge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgICAgICAgICAgICAgIHdpZHRoOiAyMCU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5wLWJ1dHRvbiB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogdmFyKC0tcC1waWNrbGlzdC1jb250cm9scy1nYXApO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1pbmxpbmUtZW5kOiB2YXIoLS1wLXBpY2tsaXN0LWNvbnRyb2xzLWdhcCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5wLWJ1dHRvbjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4taW5saW5lLWVuZDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLnAtYnV0dG9uIC5wLXBpY2tsaXN0LW1vdmUtdG8tdGFyZ2V0LWljb24ge1xuICAgICAgICAgICAgICAgIC0tX2ljb246IHZhcigtLXAtcGlja2xpc3QtbW92ZS10by10YXJnZXQtdmVydGljYWwtaWNvbik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5wLWJ1dHRvbiAucC1waWNrbGlzdC1tb3ZlLWFsbC10by10YXJnZXQtaWNvbiB7XG4gICAgICAgICAgICAgICAgLS1faWNvbjogdmFyKC0tcC1waWNrbGlzdC1tb3ZlLWFsbC10by10YXJnZXQtdmVydGljYWwtaWNvbik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5wLWJ1dHRvbiAucC1waWNrbGlzdC1tb3ZlLXRvLXNvdXJjZS1pY29uIHtcbiAgICAgICAgICAgICAgICAtLV9pY29uOiB2YXIoLS1wLXBpY2tsaXN0LW1vdmUtdG8tc291cmNlLXZlcnRpY2FsLWljb24pO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAucC1idXR0b24gLnAtcGlja2xpc3QtbW92ZS1hbGwtdG8tc291cmNlLWljb24ge1xuICAgICAgICAgICAgICAgIC0tX2ljb246IHZhcigtLXAtcGlja2xpc3QtbW92ZS1hbGwtdG8tc291cmNlLXZlcnRpY2FsLWljb24pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuXG4vKiB0aGUgbGlzdHMgYXJlIGZvY3VzYWJsZSAoa2V5Ym9hcmQgc2VsZWN0aW9uKSAqL1xuLnAtcGlja2xpc3QgLnAtcGlja2xpc3QtbGlzdDpmb2N1cy12aXNpYmxlIHtcbiAgICBvdXRsaW5lOiB2YXIoLS1wLWZvY3VzLXJpbmctd2lkdGgpIHZhcigtLXAtZm9jdXMtcmluZy1zdHlsZSkgdmFyKC0tcC1mb2N1cy1yaW5nLWNvbG9yKTtcbiAgICBvdXRsaW5lLW9mZnNldDogY2FsYygtMSAqIHZhcigtLXAtZm9jdXMtcmluZy13aWR0aCkpO1xuICAgIGJveC1zaGFkb3c6IHZhcigtLXAtZm9jdXMtcmluZy1zaGFkb3cpO1xufVxuIiwgIi8qXG4gKiBQcm9ncmVzc0JhcjogcDpwcm9ncmVzc0JhciAoZGV0ZXJtaW5hdGUgLyBpbmRldGVybWluYXRlKVxuICpcbiAqIE1hcmt1cDogLnAtcHJvZ3Jlc3NiYXIgPiAucC1wcm9ncmVzc2Jhci12YWx1ZSA+IC5wLXByb2dyZXNzYmFyLWxhYmVsXG4gKiBTdXBwb3J0ZWQgY2xhc3NlczogcC1wcm9ncmVzc2Jhci1kZXRlcm1pbmF0ZSB8IC1pbmRldGVybWluYXRlLCBwLXByb2dyZXNzYmFyLXN1Y2Nlc3MgfCAtaW5mbyB8IC13YXJuaW5nIHwgLWRhbmdlclxuICovXG4ucC1wcm9ncmVzc2JhciB7XG4gICAgLS1fdmFsdWUtYmc6IHZhcigtLXAtcHJvZ3Jlc3NiYXItdmFsdWUtYmFja2dyb3VuZCk7XG4gICAgLS1fbGFiZWwtY29sb3I6IHZhcigtLXAtcHJvZ3Jlc3NiYXItbGFiZWwtY29sb3IpO1xuXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICBoZWlnaHQ6IHZhcigtLXAtcHJvZ3Jlc3NiYXItaGVpZ2h0KTtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1wLXByb2dyZXNzYmFyLWJhY2tncm91bmQpO1xuICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXAtcHJvZ3Jlc3NiYXItYm9yZGVyLXJhZGl1cyk7XG5cbiAgICAucC1wcm9ncmVzc2Jhci12YWx1ZSB7XG4gICAgICAgIGJvcmRlcjogMCBub25lO1xuICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1fdmFsdWUtYmcpO1xuICAgICAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1wLXByb2dyZXNzYmFyLWJvcmRlci1yYWRpdXMpO1xuICAgIH1cblxuICAgIC5wLXByb2dyZXNzYmFyLWxhYmVsIHtcbiAgICAgICAgY29sb3I6IHZhcigtLV9sYWJlbC1jb2xvcik7XG4gICAgICAgIGZvbnQtc2l6ZTogdmFyKC0tcC1wcm9ncmVzc2Jhci1sYWJlbC1mb250LXNpemUpO1xuICAgICAgICBmb250LXdlaWdodDogdmFyKC0tcC1wcm9ncmVzc2Jhci1sYWJlbC1mb250LXdlaWdodCk7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiB2YXIoLS1wLXByb2dyZXNzYmFyLWhlaWdodCk7XG4gICAgICAgIC8qIHRoZSBwZXJjZW50YWdlIGRvZXMgbm90IGp1bXAgd2hpbGUgaXQgY291bnRzIHVwICovXG4gICAgICAgIGZvbnQtdmFyaWFudC1udW1lcmljOiB0YWJ1bGFyLW51bXM7XG4gICAgfVxuXG4gICAgJi5wLXByb2dyZXNzYmFyLXN1Y2Nlc3Mge1xuICAgICAgICAtLV92YWx1ZS1iZzogdmFyKC0tcC1wcm9ncmVzc2Jhci1zdWNjZXNzLXZhbHVlLWJhY2tncm91bmQpO1xuICAgICAgICAtLV9sYWJlbC1jb2xvcjogdmFyKC0tcC1wcm9ncmVzc2Jhci1zdWNjZXNzLWxhYmVsLWNvbG9yKTtcbiAgICB9XG5cbiAgICAmLnAtcHJvZ3Jlc3NiYXItaW5mbyB7XG4gICAgICAgIC0tX3ZhbHVlLWJnOiB2YXIoLS1wLXByb2dyZXNzYmFyLWluZm8tdmFsdWUtYmFja2dyb3VuZCk7XG4gICAgICAgIC0tX2xhYmVsLWNvbG9yOiB2YXIoLS1wLXByb2dyZXNzYmFyLWluZm8tbGFiZWwtY29sb3IpO1xuICAgIH1cblxuICAgICYucC1wcm9ncmVzc2Jhci13YXJuaW5nIHtcbiAgICAgICAgLS1fdmFsdWUtYmc6IHZhcigtLXAtcHJvZ3Jlc3NiYXItd2Fybi12YWx1ZS1iYWNrZ3JvdW5kKTtcbiAgICAgICAgLS1fbGFiZWwtY29sb3I6IHZhcigtLXAtcHJvZ3Jlc3NiYXItd2Fybi1sYWJlbC1jb2xvcik7XG4gICAgfVxuXG4gICAgJi5wLXByb2dyZXNzYmFyLWRhbmdlciB7XG4gICAgICAgIC0tX3ZhbHVlLWJnOiB2YXIoLS1wLXByb2dyZXNzYmFyLWRhbmdlci12YWx1ZS1iYWNrZ3JvdW5kKTtcbiAgICAgICAgLS1fbGFiZWwtY29sb3I6IHZhcigtLXAtcHJvZ3Jlc3NiYXItZGFuZ2VyLWxhYmVsLWNvbG9yKTtcbiAgICB9XG59XG5cbi8qXG4gKiBpbnNpZGUgYSBzZWxlY3Rpb24gKHNlbGVjdGVkIHJvdyAvIGl0ZW0sIGhpZ2hsaWdodCBiYWNrZ3JvdW5kKTogdGhlIHZhbHVlIGNhbiBoYXZlIHRoZSBjb2xvciBvZiB0aGUgc2VsZWN0aW9uXG4gKiAoTm9yYTogcHJpbWFyeSksIHNvIHRoZSBiYXIgdGFrZXMgdGhlIHNlbGVjdGlvbiB0ZXh0IGNvbG9yIG9uIGEgdHJhbnNsdWNlbnQgdHJhY2sgb2YgaXRcbiAqL1xuLnAtc3RhdGUtaGlnaGxpZ2h0IC5wLXByb2dyZXNzYmFyIHtcbiAgICBiYWNrZ3JvdW5kOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tcC1oaWdobGlnaHQtY29sb3IpLCB0cmFuc3BhcmVudCA3MCUpO1xuXG4gICAgJjpub3QoLnAtcHJvZ3Jlc3NiYXItc3VjY2VzcywgLnAtcHJvZ3Jlc3NiYXItaW5mbywgLnAtcHJvZ3Jlc3NiYXItd2FybmluZywgLnAtcHJvZ3Jlc3NiYXItZGFuZ2VyKSB7XG4gICAgICAgIC0tX3ZhbHVlLWJnOiB2YXIoLS1wLWhpZ2hsaWdodC1jb2xvcik7XG4gICAgICAgIC0tX2xhYmVsLWNvbG9yOiB2YXIoLS1wLWhpZ2hsaWdodC1iYWNrZ3JvdW5kKTtcbiAgICB9XG59XG5cbi5wLXByb2dyZXNzYmFyLWRldGVybWluYXRlIHtcbiAgICAvKiB3aWR0aCBpcyBhbmltYXRlZCBieSB0aGUgY29tcG9uZW50IChqUXVlcnkpLCBzbyBubyBDU1MgdHJhbnNpdGlvbiBoZXJlICovXG4gICAgLnAtcHJvZ3Jlc3NiYXItdmFsdWUge1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIHdpZHRoOiAwJTtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIH1cblxuICAgIC5wLXByb2dyZXNzYmFyLWxhYmVsIHtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgIC8qIGtlZXBzIHRoZSB0ZXh0IG9mZiB0aGUgcm91bmRlZCBlbmRzIChhIHBpbGwgYXQgbW9zdCk7IHRoZSBjb21wb25lbnQgaW5jbHVkZXMgaXQgaW4gdGhlIG1pbmltdW0gdmFsdWUgd2lkdGggKi9cbiAgICAgICAgcGFkZGluZy1pbmxpbmU6IGNhbGModmFyKC0tcC1wcm9ncmVzc2Jhci1oZWlnaHQpIC8gMik7XG4gICAgfVxufVxuXG4vKlxuICogdGhlIGJhcnMgc3BhbiB0aGUgdHJhY2sgYW5kIG1vdmUgLyBncm93IGJ5IHRyYW5zZm9ybSAodHJhbnNsYXRlWCA9IGxlZnQgZWRnZSwgc2NhbGVYID0gd2lkdGgsIGJvdGggaW4gJSBvZiB0aGVcbiAqIHRyYWNrKTogdW5saWtlIGxlZnQgLyByaWdodCB0aGlzIHJ1bnMgb24gdGhlIGNvbXBvc2l0b3IsIHdpdGhvdXQgc3R5bGUsIGxheW91dCBhbmQgcGFpbnQgaW4gZXZlcnkgZnJhbWVcbiAqL1xuLnAtcHJvZ3Jlc3NiYXItaW5kZXRlcm1pbmF0ZSAucC1wcm9ncmVzc2Jhci12YWx1ZSB7XG4gICAgJjo6YmVmb3JlLFxuICAgICY6OmFmdGVyIHtcbiAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaW5oZXJpdDtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB0cmFuc2Zvcm0tb3JpZ2luOiBsZWZ0IGNlbnRlcjtcbiAgICAgICAgLyogbm8gYmFyIGJlZm9yZSB0aGUgYW5pbWF0aW9uIHN0YXJ0cyAodGhlIGRlbGF5IG9mIDo6YWZ0ZXIpICovXG4gICAgICAgIHRyYW5zZm9ybTogc2NhbGVYKDApO1xuICAgICAgICB3aWxsLWNoYW5nZTogdHJhbnNmb3JtO1xuICAgIH1cblxuICAgICY6OmJlZm9yZSB7XG4gICAgICAgIGFuaW1hdGlvbjogcC1wcm9ncmVzc2Jhci1pbmRldGVybWluYXRlLWFuaW0gMi4xcyBjdWJpYy1iZXppZXIoMC42NSwgMC44MTUsIDAuNzM1LCAwLjM5NSkgaW5maW5pdGU7XG4gICAgfVxuXG4gICAgJjo6YWZ0ZXIge1xuICAgICAgICBhbmltYXRpb246IHAtcHJvZ3Jlc3NiYXItaW5kZXRlcm1pbmF0ZS1hbmltLXNob3J0IDIuMXMgY3ViaWMtYmV6aWVyKDAuMTY1LCAwLjg0LCAwLjQ0LCAxKSBpbmZpbml0ZTtcbiAgICAgICAgYW5pbWF0aW9uLWRlbGF5OiAxLjE1cztcbiAgICB9XG5cbiAgICAvKiByZWR1Y2VkIG1vdGlvbjogdGhlIGJhcnMgd291bGQgc3RvcCBvdXRzaWRlIG9mIHRoZSB0cmFjayAob25lIGl0ZXJhdGlvbiwgc2VlIGJhc2UvZG9jdW1lbnQuY3NzKTsgYSBmdWxsLCBsaWdodGVyXG4gICAgICAgYmFyIHNob3dzIHRoYXQgc29tZXRoaW5nIGlzIGdvaW5nIG9uICovXG4gICAgQG1lZGlhIChwcmVmZXJzLXJlZHVjZWQtbW90aW9uOiByZWR1Y2UpIHtcbiAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogbm9uZTtcbiAgICAgICAgICAgIGFuaW1hdGlvbjogbm9uZTtcbiAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgIGNvbnRlbnQ6IG5vbmU7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi8qIGxlZnQgLTM1JSAtPiAxMDAlLCB3aWR0aCAzNSUgLT4gOTAlICovXG5Aa2V5ZnJhbWVzIHAtcHJvZ3Jlc3NiYXItaW5kZXRlcm1pbmF0ZS1hbmltIHtcbiAgICAwJSB7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMzUlKSBzY2FsZVgoMC4zNSk7XG4gICAgfVxuICAgIDYwJSB7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgxMDAlKSBzY2FsZVgoMC45KTtcbiAgICB9XG4gICAgMTAwJSB7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgxMDAlKSBzY2FsZVgoMC45KTtcbiAgICB9XG59XG5cbi8qIGxlZnQgLTIwMCUgLT4gMTA3JSwgd2lkdGggMjAwJSAtPiAxJSAqL1xuQGtleWZyYW1lcyBwLXByb2dyZXNzYmFyLWluZGV0ZXJtaW5hdGUtYW5pbS1zaG9ydCB7XG4gICAgMCUge1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTIwMCUpIHNjYWxlWCgyKTtcbiAgICB9XG4gICAgNjAlIHtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDEwNyUpIHNjYWxlWCgwLjAxKTtcbiAgICB9XG4gICAgMTAwJSB7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgxMDclKSBzY2FsZVgoMC4wMSk7XG4gICAgfVxufVxuIiwgIi8qXG4gKiBSYXRpbmc6IHA6cmF0aW5nXG4gKlxuICogU3VwcG9ydGVkIGNsYXNzZXM6IHAtc3RhdGUtZXJyb3IgLyBwLXN0YXRlLWRpc2FibGVkIC8gcmVhZG9ubHkgKG9uIC5wLXJhdGluZyksIHAtc3RhdGUtZm9jdXMgKG9uIHN0YXIgLyBjYW5jZWwpLFxuICogICAgICAgICAgICAgICAgICAgIHAtcmF0aW5nLXN0YXItb24sIHAtcmF0aW5nLWNhbmNlbC1ob3ZlciwgcC1zdGF0ZS1oaWdobGlnaHQgKG9uIGEgcGFyZW50LCBlLmcuIGEgc2VsZWN0ZWQgcm93KVxuICogSWNvbnM6IC0tcC1yYXRpbmctb2ZmLWljb24gLyAtLXAtcmF0aW5nLW9uLWljb24gLyAtLXAtcmF0aW5nLWNhbmNlbC1pY29uLlxuICovXG4ucC1yYXRpbmctc3Rhcixcbi5wLXJhdGluZy1jYW5jZWwge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICBhIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICB9XG59XG5cbi5wLXJhdGluZyB7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IHZhcigtLXAtcmF0aW5nLWdhcCk7XG5cbiAgICAmLnAtc3RhdGUtZGlzYWJsZWQgLnAtcmF0aW5nLXN0YXIsXG4gICAgJi5wLXN0YXRlLXJlYWRvbmx5IC5wLXJhdGluZy1zdGFyLFxuICAgICYucC1zdGF0ZS1yZWFkb25seSAucC1yYXRpbmctY2FuY2VsLFxuICAgICYucC1zdGF0ZS1kaXNhYmxlZCAucC1yYXRpbmctY2FuY2VsIHtcbiAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuICAgIH1cblxuICAgIC5wLXJhdGluZy1jYW5jZWwsXG4gICAgLnAtcmF0aW5nLXN0YXIge1xuICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgICAgIG91dGxpbmUtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICB0cmFuc2l0aW9uOiBvdXRsaW5lLWNvbG9yIHZhcigtLXAtcmF0aW5nLXRyYW5zaXRpb24tZHVyYXRpb24pLCBib3gtc2hhZG93IHZhcigtLXAtcmF0aW5nLXRyYW5zaXRpb24tZHVyYXRpb24pO1xuXG4gICAgICAgICYucC1zdGF0ZS1mb2N1cyB7XG4gICAgICAgICAgICBvdXRsaW5lOiB2YXIoLS1wLXJhdGluZy1mb2N1cy1yaW5nLXdpZHRoKSB2YXIoLS1wLXJhdGluZy1mb2N1cy1yaW5nLXN0eWxlKSB2YXIoLS1wLXJhdGluZy1mb2N1cy1yaW5nLWNvbG9yKTtcbiAgICAgICAgICAgIG91dGxpbmUtb2Zmc2V0OiB2YXIoLS1wLXJhdGluZy1mb2N1cy1yaW5nLW9mZnNldCk7XG4gICAgICAgICAgICBib3gtc2hhZG93OiB2YXIoLS1wLXJhdGluZy1mb2N1cy1yaW5nLXNoYWRvdyk7XG4gICAgICAgIH1cblxuICAgICAgICBhIHtcbiAgICAgICAgICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgICAgICAgICBmb250LXNpemU6IHZhcigtLXAtcmF0aW5nLWljb24tc2l6ZSk7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMTtcbiAgICAgICAgICAgIGhlaWdodDogdmFyKC0tcC1yYXRpbmctaWNvbi1zaXplKTtcbiAgICAgICAgICAgIHdpZHRoOiB2YXIoLS1wLXJhdGluZy1pY29uLXNpemUpO1xuICAgICAgICAgICAgdHJhbnNpdGlvbjogY29sb3IgdmFyKC0tcC1yYXRpbmctdHJhbnNpdGlvbi1kdXJhdGlvbik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAucC1yYXRpbmctY2FuY2VsIGEge1xuICAgICAgICBjb2xvcjogdmFyKC0tcC1yYXRpbmctY2FuY2VsLWljb24tY29sb3IpO1xuICAgIH1cblxuICAgIC5wLXJhdGluZy1jYW5jZWwtaWNvbiB7XG4gICAgICAgIC0tX2ljb246IHZhcigtLXAtcmF0aW5nLWNhbmNlbC1pY29uKTtcbiAgICB9XG5cbiAgICAmOm5vdCgucC1zdGF0ZS1kaXNhYmxlZCwgLnAtc3RhdGUtcmVhZG9ubHkpIC5wLXJhdGluZy1jYW5jZWwucC1yYXRpbmctY2FuY2VsLWhvdmVyIGEsXG4gICAgJjpub3QoLnAtc3RhdGUtZGlzYWJsZWQsIC5wLXN0YXRlLXJlYWRvbmx5KSAucC1yYXRpbmctY2FuY2VsIGE6aG92ZXIge1xuICAgICAgICBjb2xvcjogdmFyKC0tcC1yYXRpbmctY2FuY2VsLWljb24taG92ZXItY29sb3IpO1xuICAgIH1cblxuICAgIC8qIHN0YXIgaWNvbnM6IG9mZiAvIG9uIChwLXJhdGluZy1zdGFyLW9uKSAqL1xuICAgIC5wLXJhdGluZy1zdGFyIGEge1xuICAgICAgICBjb2xvcjogdmFyKC0tcC1yYXRpbmctaWNvbi1jb2xvcik7XG4gICAgfVxuXG4gICAgLnAtcmF0aW5nLWljb24ge1xuICAgICAgICAtLV9pY29uOiB2YXIoLS1wLXJhdGluZy1vZmYtaWNvbik7XG4gICAgfVxuXG4gICAgJjpub3QoLnAtc3RhdGUtZGlzYWJsZWQsIC5wLXN0YXRlLXJlYWRvbmx5KSAucC1yYXRpbmctc3RhciBhOmhvdmVyIHtcbiAgICAgICAgY29sb3I6IHZhcigtLXAtcmF0aW5nLWljb24taG92ZXItY29sb3IpO1xuICAgIH1cblxuICAgIC5wLXJhdGluZy1zdGFyLW9uIGEge1xuICAgICAgICBjb2xvcjogdmFyKC0tcC1yYXRpbmctaWNvbi1hY3RpdmUtY29sb3IpO1xuICAgIH1cblxuICAgIC5wLXJhdGluZy1zdGFyLW9uIC5wLXJhdGluZy1pY29uIHtcbiAgICAgICAgLS1faWNvbjogdmFyKC0tcC1yYXRpbmctb24taWNvbik7XG4gICAgfVxuXG4gICAgJi5wLXN0YXRlLWVycm9yIC5wLXJhdGluZy1zdGFyIGEge1xuICAgICAgICBjb2xvcjogdmFyKC0tcC1yYXRpbmctaW52YWxpZC1pY29uLWNvbG9yKTtcbiAgICB9XG59XG5cbi5wLXN0YXRlLWhpZ2hsaWdodCAucC1yYXRpbmctc3RhciBhLFxuLnAtc3RhdGUtaGlnaGxpZ2h0IC5wLXJhdGluZy1zdGFyLW9uIGEge1xuICAgIGNvbG9yOiB2YXIoLS1wLWhpZ2hsaWdodC1jb2xvcik7XG59XG4iLCAiLypcbiAqIFNjcm9sbFRvcDogcDpzY3JvbGxUb3AgKHJlbmRlcnMgYS5wLXNjcm9sbHRvcCAoLnAtc2Nyb2xsdG9wLXN0aWNreSBmb3IgdGFyZ2V0PVwicGFyZW50XCIpID4gc3Bhbi5wLXNjcm9sbHRvcC1pY29uKVxuICpcbiAqIFByaW1lVUlYIHJlbmRlcnMgU2Nyb2xsVG9wIGFzIGEgcm91bmRlZCBwcmltYXJ5IGljb24tb25seSBidXR0b24gYW5kIGhhcyBubyBvd24gdG9rZW5zLCBzbyB0aGUgYnV0dG9uIHRva2VucyBhcmUgdXNlZC5cbiAqIEljb246IHNwYW4ucC1pY29uLnAtdXAtaWNvbi5wLXNjcm9sbHRvcC1pY29uLCB0aGUgdG9rZW4gLS1wLXNjcm9sbHRvcC1pY29uIChQcmltZUZhY2VzIG9ubHkpLlxuICovXG4ucC1zY3JvbGx0b3Age1xuICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICBib3R0b206IDIwcHg7XG4gICAgaW5zZXQtaW5saW5lLWVuZDogMjBweDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIHdpZHRoOiB2YXIoLS1wLWJ1dHRvbi1sZy1pY29uLW9ubHktd2lkdGgpO1xuICAgIGhlaWdodDogdmFyKC0tcC1idXR0b24tbGctaWNvbi1vbmx5LXdpZHRoKTtcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tcC1idXR0b24tcHJpbWFyeS1iYWNrZ3JvdW5kKTtcbiAgICBjb2xvcjogdmFyKC0tcC1idXR0b24tcHJpbWFyeS1jb2xvcik7XG4gICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tcC1idXR0b24tcHJpbWFyeS1ib3JkZXItY29sb3IpO1xuICAgIGJveC1zaGFkb3c6IHZhcigtLXAtYnV0dG9uLXJhaXNlZC1zaGFkb3cpO1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICBvdXRsaW5lLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIHZhcigtLXAtYnV0dG9uLXRyYW5zaXRpb24tZHVyYXRpb24pLCBjb2xvciB2YXIoLS1wLWJ1dHRvbi10cmFuc2l0aW9uLWR1cmF0aW9uKSxcbiAgICAgICAgYm9yZGVyLWNvbG9yIHZhcigtLXAtYnV0dG9uLXRyYW5zaXRpb24tZHVyYXRpb24pLCBvdXRsaW5lLWNvbG9yIHZhcigtLXAtYnV0dG9uLXRyYW5zaXRpb24tZHVyYXRpb24pLFxuICAgICAgICBib3gtc2hhZG93IHZhcigtLXAtYnV0dG9uLXRyYW5zaXRpb24tZHVyYXRpb24pO1xuXG4gICAgJjpob3ZlciB7XG4gICAgICAgIGJhY2tncm91bmQ6IHZhcigtLXAtYnV0dG9uLXByaW1hcnktaG92ZXItYmFja2dyb3VuZCk7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1wLWJ1dHRvbi1wcmltYXJ5LWhvdmVyLWNvbG9yKTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1wLWJ1dHRvbi1wcmltYXJ5LWhvdmVyLWJvcmRlci1jb2xvcik7XG4gICAgfVxuXG4gICAgJjphY3RpdmUge1xuICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1wLWJ1dHRvbi1wcmltYXJ5LWFjdGl2ZS1iYWNrZ3JvdW5kKTtcbiAgICAgICAgY29sb3I6IHZhcigtLXAtYnV0dG9uLXByaW1hcnktYWN0aXZlLWNvbG9yKTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1wLWJ1dHRvbi1wcmltYXJ5LWFjdGl2ZS1ib3JkZXItY29sb3IpO1xuICAgIH1cblxuICAgICY6Zm9jdXMtdmlzaWJsZSB7XG4gICAgICAgIG91dGxpbmU6IHZhcigtLXAtYnV0dG9uLWZvY3VzLXJpbmctd2lkdGgpIHZhcigtLXAtYnV0dG9uLWZvY3VzLXJpbmctc3R5bGUpIHZhcigtLXAtYnV0dG9uLXByaW1hcnktZm9jdXMtcmluZy1jb2xvcik7XG4gICAgICAgIG91dGxpbmUtb2Zmc2V0OiB2YXIoLS1wLWJ1dHRvbi1mb2N1cy1yaW5nLW9mZnNldCk7XG4gICAgfVxuXG4gICAgLnAtc2Nyb2xsdG9wLWljb24ge1xuICAgICAgICAtLV9pY29uOiB2YXIoLS1wLXNjcm9sbHRvcC1pY29uKTtcbiAgICAgICAgZm9udC1zaXplOiB2YXIoLS1wLWJ1dHRvbi1sZy1mb250LXNpemUpO1xuICAgICAgICBjb2xvcjogaW5oZXJpdDtcbiAgICB9XG5cbiAgICAvKiBpbnNpZGUgYW4gZWxlbWVudCAodGFyZ2V0PVwicGFyZW50XCIpOiBub3JtYWwgYnV0dG9uIHNpemUgKi9cbiAgICAmLnAtc2Nyb2xsdG9wLXN0aWNreSB7XG4gICAgICAgIHdpZHRoOiB2YXIoLS1wLWJ1dHRvbi1pY29uLW9ubHktd2lkdGgpO1xuICAgICAgICBoZWlnaHQ6IHZhcigtLXAtYnV0dG9uLWljb24tb25seS13aWR0aCk7XG5cbiAgICAgICAgLnAtc2Nyb2xsdG9wLWljb24ge1xuICAgICAgICAgICAgZm9udC1zaXplOiB2YXIoLS1wLWljb24tc2l6ZSk7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5wLXNjcm9sbHRvcC1zdGlja3kge1xuICAgIHBvc2l0aW9uOiBzdGlja3k7XG4gICAgbWFyZ2luLWlubGluZS1zdGFydDogYXV0bztcbn1cbiIsICIvKlxuICogU2VsZWN0Qm9vbGVhbkNoZWNrYm94IC8gVHJpU3RhdGVDaGVja2JveDogdGhlIHJvb3QgaXMgYSAucC1jaGtib3gsIHN0eWxlZCBpbiBmb3Jtcy9jaGVja2JveC5jc3NcbiAqL1xuLnAtZmx1aWQgLnAtc2VsZWN0Ym9vbGVhbmNoZWNrYm94IHtcbiAgICB3aWR0aDogMTAwJTtcbn1cbiIsICIvKlxuICogU2VsZWN0Q2hlY2tib3hNZW51OiBwOnNlbGVjdENoZWNrYm94TWVudSAoUHJpbWVVSVg6IG11bHRpc2VsZWN0KVxuICpcbiAqIFN1cHBvcnRlZCBjbGFzc2VzOiBwLXN0YXRlLWhvdmVyLCBwLXN0YXRlLWZvY3VzLCBwLXN0YXRlLWVycm9yLCBwLXN0YXRlLWRpc2FibGVkLCBwLWlucHV0LWZpbGxlZCAob24gYSBwYXJlbnQpLFxuICogICAgICAgICAgICAgICAgICAgIHAtc2VsZWN0Y2hlY2tib3htZW51LW11bHRpcGxlIChjaGlwcyBtb2RlKSwgLnAtZmx1aWQgKG9uIGEgcGFyZW50KSxcbiAqICAgICAgICAgICAgICAgICAgICBwLXNlbGVjdGNoZWNrYm94bWVudS1zbSwgcC1zZWxlY3RjaGVja2JveG1lbnUtbGcgKHN0eWxlQ2xhc3MpXG4gKiBQYW5lbCBpdGVtczogcC1zdGF0ZS1ob3ZlciAobW91c2UgYW5kIGtleWJvYXJkKSwgcC1zdGF0ZS1oaWdobGlnaHQgKHNlbGVjdGVkKVxuICogVmFyaWFudHM6IGZpbHRlciwgdG9nZ2xlIGFsbCBjaGVja2JveCwgY2xvc2UgaWNvbiwgZ3JvdXBzLCB0YWJsZSB3aXRoIGNvbHVtbnMgKHA6Y29sdW1uIGNoaWxkcmVuKVxuICovXG4ucC1zZWxlY3RjaGVja2JveG1lbnUge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICB3aWR0aDogYXV0bztcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xuICAgIC8qIHRoZSBzdGF0ZXMgc2V0IC0tX2JvcmRlci1jb2xvciwgdGhlIGZpbGxlZCB2YXJpYW50IGRyYXdzIGl0cyBsaW5lIHdpdGggaXQgKi9cbiAgICAtLV9ib3JkZXItY29sb3I6IHZhcigtLXAtbXVsdGlzZWxlY3QtYm9yZGVyLWNvbG9yKTtcbiAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1fYm9yZGVyLWNvbG9yKTtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tcC1tdWx0aXNlbGVjdC1iYWNrZ3JvdW5kKTtcbiAgICBjb2xvcjogdmFyKC0tcC1tdWx0aXNlbGVjdC1jb2xvcik7XG4gICAgYm9yZGVyLXJhZGl1czogdmFyKC0tcC1tdWx0aXNlbGVjdC1ib3JkZXItcmFkaXVzKTtcbiAgICBib3gtc2hhZG93OiB2YXIoLS1wLW11bHRpc2VsZWN0LXNoYWRvdyk7XG4gICAgb3V0bGluZS1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCB2YXIoLS1wLW11bHRpc2VsZWN0LXRyYW5zaXRpb24tZHVyYXRpb24pLCBjb2xvciB2YXIoLS1wLW11bHRpc2VsZWN0LXRyYW5zaXRpb24tZHVyYXRpb24pLFxuICAgICAgICBib3JkZXItY29sb3IgdmFyKC0tcC1tdWx0aXNlbGVjdC10cmFuc2l0aW9uLWR1cmF0aW9uKSwgb3V0bGluZS1jb2xvciB2YXIoLS1wLW11bHRpc2VsZWN0LXRyYW5zaXRpb24tZHVyYXRpb24pLFxuICAgICAgICBib3gtc2hhZG93IHZhcigtLXAtbXVsdGlzZWxlY3QtdHJhbnNpdGlvbi1kdXJhdGlvbik7XG5cbiAgICAucC1zZWxlY3RjaGVja2JveG1lbnUtbGFiZWwge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgIGJvcmRlcjogMCBub25lO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuXG4gICAgICAgIC8qIGtlZXBzIHRoZSBsaW5lIGhlaWdodCB3aGVuIHRoZSBsYWJlbCBpcyBlbXB0eSAqL1xuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICBjb250ZW50OiBcInBcIjtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgICAgICAgICAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHdpZHRoOiAwO1xuICAgICAgICAgICAgY2xpcDogcmVjdCgwLCAwLCAwLCAwKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5wLXNlbGVjdGNoZWNrYm94bWVudS1sYWJlbC1jb250YWluZXIge1xuICAgICAgICBwYWRkaW5nOiB2YXIoLS1wLW11bHRpc2VsZWN0LXBhZGRpbmcteSkgdmFyKC0tcC1tdWx0aXNlbGVjdC1wYWRkaW5nLXgpO1xuICAgICAgICBwYWRkaW5nLWlubGluZS1lbmQ6IHZhcigtLXAtbXVsdGlzZWxlY3QtZHJvcGRvd24td2lkdGgpO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXAtbXVsdGlzZWxlY3QtYm9yZGVyLXJhZGl1cyk7XG5cbiAgICAgICAgLnAtc2VsZWN0Y2hlY2tib3htZW51LWxhYmVsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1wLW11bHRpc2VsZWN0LWNvbG9yKTtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogdmFyKC0tcC1tdWx0aXNlbGVjdC1mb250LXNpemUpO1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IHZhcigtLXAtbXVsdGlzZWxlY3QtZm9udC13ZWlnaHQpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLnAtc2VsZWN0Y2hlY2tib3htZW51LXRyaWdnZXIge1xuICAgICAgICBib3JkZXI6IDAgbm9uZTtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBpbnNldC1pbmxpbmUtZW5kOiAwO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgd2lkdGg6IHZhcigtLXAtbXVsdGlzZWxlY3QtZHJvcGRvd24td2lkdGgpO1xuICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICAgICAgY29sb3I6IHZhcigtLXAtbXVsdGlzZWxlY3QtZHJvcGRvd24tY29sb3IpO1xuICAgICAgICBib3JkZXItc3RhcnQtZW5kLXJhZGl1czogdmFyKC0tcC1tdWx0aXNlbGVjdC1ib3JkZXItcmFkaXVzKTtcbiAgICAgICAgYm9yZGVyLWVuZC1lbmQtcmFkaXVzOiB2YXIoLS1wLW11bHRpc2VsZWN0LWJvcmRlci1yYWRpdXMpO1xuXG4gICAgICAgIC5wLXNlbGVjdGNoZWNrYm94bWVudS1kcm9wZG93bi1pY29uIHtcbiAgICAgICAgICAgIC0tX2ljb246IHZhcigtLXAtbXVsdGlzZWxlY3QtZHJvcGRvd24taWNvbik7XG4gICAgICAgICAgICBjb2xvcjogdmFyKC0tcC1tdWx0aXNlbGVjdC1kcm9wZG93bi1jb2xvcik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLnAtc3RhdGUtZGlzYWJsZWQgLnAtc2VsZWN0Y2hlY2tib3htZW51LXRyaWdnZXIsXG4gICAgJi5wLXN0YXRlLWRpc2FibGVkIC5wLXNlbGVjdGNoZWNrYm94bWVudS1sYWJlbCB7XG4gICAgICAgIGN1cnNvcjogYXV0bztcbiAgICB9XG5cbiAgICAmLnAtc3RhdGUtaG92ZXIsXG4gICAgJjpub3QoLnAtc3RhdGUtZGlzYWJsZWQpOmhvdmVyIHtcbiAgICAgICAgLS1fYm9yZGVyLWNvbG9yOiB2YXIoLS1wLW11bHRpc2VsZWN0LWhvdmVyLWJvcmRlci1jb2xvcik7XG4gICAgfVxuXG4gICAgJi5wLXN0YXRlLWZvY3VzIHtcbiAgICAgICAgLS1fYm9yZGVyLWNvbG9yOiB2YXIoLS1wLW11bHRpc2VsZWN0LWZvY3VzLWJvcmRlci1jb2xvcik7XG4gICAgICAgIG91dGxpbmU6IHZhcigtLXAtbXVsdGlzZWxlY3QtZm9jdXMtcmluZy13aWR0aCkgdmFyKC0tcC1tdWx0aXNlbGVjdC1mb2N1cy1yaW5nLXN0eWxlKSB2YXIoLS1wLW11bHRpc2VsZWN0LWZvY3VzLXJpbmctY29sb3IpO1xuICAgICAgICBvdXRsaW5lLW9mZnNldDogdmFyKC0tcC1tdWx0aXNlbGVjdC1mb2N1cy1yaW5nLW9mZnNldCk7XG4gICAgICAgIGJveC1zaGFkb3c6IHZhcigtLXAtbXVsdGlzZWxlY3QtZm9jdXMtcmluZy1zaGFkb3cpO1xuICAgIH1cblxuICAgIC8qIGludmFsaWQ6IHRoZSBib3JkZXIgYWxzbyB3aW5zIG92ZXIgaG92ZXIgYW5kIGZvY3VzIChzYW1lIHNwZWNpZmljaXR5LCBsYXRlciksIHRoZSBmb2N1cyByaW5nIHN0YXlzICovXG4gICAgJi5wLXN0YXRlLWVycm9yLFxuICAgICYucC1zdGF0ZS1lcnJvcjppcyg6aG92ZXIsIC5wLXN0YXRlLWZvY3VzKSB7XG4gICAgICAgIC0tX2JvcmRlci1jb2xvcjogdmFyKC0tcC1tdWx0aXNlbGVjdC1pbnZhbGlkLWJvcmRlci1jb2xvcik7XG4gICAgfVxuXG4gICAgJi5wLXN0YXRlLWRpc2FibGVkIHtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tcC1tdWx0aXNlbGVjdC1kaXNhYmxlZC1iYWNrZ3JvdW5kKTtcblxuICAgICAgICAucC1zZWxlY3RjaGVja2JveG1lbnUtbGFiZWwge1xuICAgICAgICAgICAgY29sb3I6IHZhcigtLXAtbXVsdGlzZWxlY3QtZGlzYWJsZWQtY29sb3IpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyogc2l6ZXMgKHN0eWxlQ2xhc3MpOiB0aGUgc2l6ZSB0b2tlbnMgcmVwbGFjZSB0aGUgYmFzZSBvbmVzIChsYWJlbCBhbmQgY2hpcHMgbW9kZSBmb2xsb3cpLCB0aGUgaWNvbiBmb2xsb3dzICovXG4gICAgJi5wLXNlbGVjdGNoZWNrYm94bWVudS1zbSB7XG4gICAgICAgIC0tcC1tdWx0aXNlbGVjdC1mb250LXNpemU6IHZhcigtLXAtbXVsdGlzZWxlY3Qtc20tZm9udC1zaXplKTtcbiAgICAgICAgLS1wLW11bHRpc2VsZWN0LXBhZGRpbmcteDogdmFyKC0tcC1tdWx0aXNlbGVjdC1zbS1wYWRkaW5nLXgpO1xuICAgICAgICAtLXAtbXVsdGlzZWxlY3QtcGFkZGluZy15OiB2YXIoLS1wLW11bHRpc2VsZWN0LXNtLXBhZGRpbmcteSk7XG4gICAgfVxuXG4gICAgJi5wLXNlbGVjdGNoZWNrYm94bWVudS1sZyB7XG4gICAgICAgIC0tcC1tdWx0aXNlbGVjdC1mb250LXNpemU6IHZhcigtLXAtbXVsdGlzZWxlY3QtbGctZm9udC1zaXplKTtcbiAgICAgICAgLS1wLW11bHRpc2VsZWN0LXBhZGRpbmcteDogdmFyKC0tcC1tdWx0aXNlbGVjdC1sZy1wYWRkaW5nLXgpO1xuICAgICAgICAtLXAtbXVsdGlzZWxlY3QtcGFkZGluZy15OiB2YXIoLS1wLW11bHRpc2VsZWN0LWxnLXBhZGRpbmcteSk7XG4gICAgfVxuXG4gICAgJi5wLXNlbGVjdGNoZWNrYm94bWVudS1zbSAucC1zZWxlY3RjaGVja2JveG1lbnUtdHJpZ2dlciAucC1zZWxlY3RjaGVja2JveG1lbnUtZHJvcGRvd24taWNvbixcbiAgICAmLnAtc2VsZWN0Y2hlY2tib3htZW51LWxnIC5wLXNlbGVjdGNoZWNrYm94bWVudS10cmlnZ2VyIC5wLXNlbGVjdGNoZWNrYm94bWVudS1kcm9wZG93bi1pY29uIHtcbiAgICAgICAgZm9udC1zaXplOiB2YXIoLS1wLW11bHRpc2VsZWN0LWZvbnQtc2l6ZSk7XG4gICAgfVxuXG4gICAgLypcbiAgICAgKiBjaGlwcyBtb2RlOiB0aGUgY29udGFpbmVyIGlzIGFsc28gYSAucC1pbnB1dGZpZWxkLCBkcm9wIHRoZSBmaWVsZCBjaHJvbWUgb2YgZm9ybXMvaW5wdXRmaWVsZC5jc3MuXG4gICAgICogQSBmbGV4IHJvdyBvZiBjaGlwcywgYXQgbGVhc3QgYXMgaGlnaCBhcyB0aGUgbGFiZWwgb2YgdGhlIG5vbi1jaGlwcyBtb2RlLCBzbyB0aGUgY29tcG9uZW50IGtlZXBzIHRoZSBpbnB1dFxuICAgICAqIGhlaWdodCAoY2hpcHMgYXJlIHNtYWxsZXIgdGhhbiBhIHRleHQgbGluZSBpbiBBdXJhKS5cbiAgICAgKi9cbiAgICAucC1zZWxlY3RjaGVja2JveG1lbnUtbXVsdGlwbGUtY29udGFpbmVyLnAtaW5wdXRmaWVsZCB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgcm93LWdhcDogY2FsYyh2YXIoLS1wLW11bHRpc2VsZWN0LXBhZGRpbmcteSkgLyAyKTtcbiAgICAgICAgbWluLWhlaWdodDogY2FsYygyICogdmFyKC0tcC1tdWx0aXNlbGVjdC1wYWRkaW5nLXkpICsgdmFyKC0tcC10eXBvZ3JhcGh5LWxpbmUtaGVpZ2h0KSAqIHZhcigtLXAtbXVsdGlzZWxlY3QtZm9udC1zaXplKSk7XG4gICAgICAgIHBhZGRpbmc6IGNhbGModmFyKC0tcC1tdWx0aXNlbGVjdC1wYWRkaW5nLXkpIC8gMikgY2FsYyh2YXIoLS1wLW11bHRpc2VsZWN0LXBhZGRpbmcteCkgLyAyKTtcbiAgICAgICAgcGFkZGluZy1pbmxpbmUtZW5kOiB2YXIoLS1wLW11bHRpc2VsZWN0LWRyb3Bkb3duLXdpZHRoKTtcbiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgICAgIGJvcmRlcjogMCBub25lO1xuICAgICAgICBib3gtc2hhZG93OiBub25lO1xuICAgICAgICBvdXRsaW5lOiAwIG5vbmU7XG4gICAgfVxuXG4gICAgLyogZW1wdHkgbGFiZWwgb2YgdGhlIGNoaXBzIG1vZGUgKGxpIGFkZGVkIGJ5IHRoZSBjb21wb25lbnQgd2hlbiBub3RoaW5nIGlzIHNlbGVjdGVkKSAqL1xuICAgIC5wLXNlbGVjdGNoZWNrYm94bWVudS1tdWx0aXBsZS1jb250YWluZXIgLnAtc2VsZWN0Y2hlY2tib3htZW51LWVtcHR5bGFiZWwge1xuICAgICAgICBjb2xvcjogdmFyKC0tcC1tdWx0aXNlbGVjdC1wbGFjZWhvbGRlci1jb2xvcik7XG4gICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgfVxuXG4gICAgJi5wLXN0YXRlLWVycm9yIC5wLXNlbGVjdGNoZWNrYm94bWVudS1tdWx0aXBsZS1jb250YWluZXIgLnAtc2VsZWN0Y2hlY2tib3htZW51LWVtcHR5bGFiZWwge1xuICAgICAgICBjb2xvcjogdmFyKC0tcC1tdWx0aXNlbGVjdC1pbnZhbGlkLXBsYWNlaG9sZGVyLWNvbG9yKTtcbiAgICB9XG5cbiAgICAucC1zZWxlY3RjaGVja2JveG1lbnUtbXVsdGlwbGUtY29udGFpbmVyIC5wLXNlbGVjdGNoZWNrYm94bWVudS10b2tlbiB7XG4gICAgICAgIHBhZGRpbmctYmxvY2s6IGNhbGModmFyKC0tcC1tdWx0aXNlbGVjdC1wYWRkaW5nLXkpIC8gMik7XG4gICAgICAgIHBhZGRpbmctaW5saW5lOiAwO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIG1hcmdpbi1pbmxpbmUtZW5kOiBjYWxjKHZhcigtLXAtbXVsdGlzZWxlY3QtcGFkZGluZy15KSAvIDIpO1xuICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1wLWNoaXAtYmFja2dyb3VuZCk7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1wLWNoaXAtY29sb3IpO1xuICAgICAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1wLW11bHRpc2VsZWN0LWNoaXAtYm9yZGVyLXJhZGl1cyk7XG5cbiAgICAgICAgLnAtc2VsZWN0Y2hlY2tib3htZW51LXRva2VuLWxhYmVsIHtcbiAgICAgICAgICAgIHBhZGRpbmctYmxvY2s6IDA7XG4gICAgICAgICAgICBwYWRkaW5nLWlubGluZTogY2FsYyh2YXIoLS1wLWljb24tc2l6ZSkgLyAyKSBjYWxjKDIgKiB2YXIoLS1wLWljb24tc2l6ZSkpO1xuICAgICAgICAgICAgZm9udC1zaXplOiB2YXIoLS1wLWNoaXAtbGFiZWwtZm9udC1zaXplKTtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1wLWNoaXAtbGFiZWwtZm9udC13ZWlnaHQpO1xuICAgICAgICB9XG5cbiAgICAgICAgLnAtc2VsZWN0Y2hlY2tib3htZW51LWNoaXAtcmVtb3ZlLWljb24ge1xuICAgICAgICAgICAgLS1faWNvbjogdmFyKC0tcC1tdWx0aXNlbGVjdC1jaGlwLXJlbW92ZS1pY29uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5wLXNlbGVjdGNoZWNrYm94bWVudS10b2tlbi1pY29uIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IGNhbGMoLTEgKiB2YXIoLS1wLWljb24tc2l6ZSkgLyAyKTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1wLWNoaXAtcmVtb3ZlLWljb24tY29sb3IpO1xuICAgICAgICAgICAgZm9udC1zaXplOiB2YXIoLS1wLWNoaXAtcmVtb3ZlLWljb24tc2l6ZSk7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5wLXNlbGVjdGNoZWNrYm94bWVudS1tdWx0aXBsZS1jb250YWluZXIge1xuICAgIGNsZWFyOiBsZWZ0O1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7XG4gICAgbWFyZ2luOiAwO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgbWluLXdpZHRoOiAxMDBweDtcblxuICAgICY6ZW1wdHk6OmFmdGVyIHtcbiAgICAgICAgLyogdGhlIHJlbmRlcmVyIHdyaXRlcyB0aGUgZW1wdHkgbGFiZWwgdG8gZGF0YS1sYWJlbCAqL1xuICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtbGFiZWwpO1xuICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1wLW11bHRpc2VsZWN0LXBsYWNlaG9sZGVyLWNvbG9yKTtcbiAgICB9XG59XG5cbi5wLXNlbGVjdGNoZWNrYm94bWVudS10b2tlbiB7XG4gICAgY3Vyc29yOiBkZWZhdWx0O1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbi5wLXNlbGVjdGNoZWNrYm94bWVudS10b2tlbi1sYWJlbCB7XG4gICAgZGlzcGxheTogYmxvY2s7XG59XG5cbi5wLXNlbGVjdGNoZWNrYm94bWVudS10b2tlbi1pY29uIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiA1MCU7XG4gICAgaW5zZXQtaW5saW5lLWVuZDogY2FsYyh2YXIoLS1wLWljb24tc2l6ZSkgLyAyKTtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG59XG5cbi8qIGZpbGxlZCB2YXJpYW50ICovXG4ucC1pbnB1dC1maWxsZWQgLnAtc2VsZWN0Y2hlY2tib3htZW51IHtcbiAgICAtLV9saW5lLXdpZHRoOiB2YXIoLS1wLWZvcm0tZmllbGQtZmlsbGVkLWluZGljYXRvci13aWR0aCk7XG4gICAgLS1fbGluZTogbGluZWFyLWdyYWRpZW50KHZhcigtLV9ib3JkZXItY29sb3IpLCB2YXIoLS1fYm9yZGVyLWNvbG9yKSkgYm90dG9tIC8gMTAwJSB2YXIoLS1fbGluZS13aWR0aCkgbm8tcmVwZWF0XG4gICAgICAgIGJvcmRlci1ib3g7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tX2xpbmUpLCB2YXIoLS1wLW11bHRpc2VsZWN0LWZpbGxlZC1iYWNrZ3JvdW5kKTtcbiAgICBib3JkZXItY29sb3I6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1fYm9yZGVyLWNvbG9yKSB2YXIoLS1wLWZvcm0tZmllbGQtZmlsbGVkLWJvcmRlci1vcGFjaXR5KSwgdHJhbnNwYXJlbnQpO1xuICAgIGJvcmRlci1lbmQtc3RhcnQtcmFkaXVzOiB2YXIoLS1wLWZvcm0tZmllbGQtZmlsbGVkLWJvdHRvbS1ib3JkZXItcmFkaXVzKTtcbiAgICBib3JkZXItZW5kLWVuZC1yYWRpdXM6IHZhcigtLXAtZm9ybS1maWVsZC1maWxsZWQtYm90dG9tLWJvcmRlci1yYWRpdXMpO1xuXG4gICAgJi5wLXN0YXRlLWhvdmVyLFxuICAgICY6bm90KC5wLXN0YXRlLWRpc2FibGVkKTpob3ZlciB7XG4gICAgICAgIGJhY2tncm91bmQ6IHZhcigtLV9saW5lKSwgdmFyKC0tcC1tdWx0aXNlbGVjdC1maWxsZWQtaG92ZXItYmFja2dyb3VuZCk7XG4gICAgfVxuXG4gICAgJi5wLXN0YXRlLWZvY3VzIHtcbiAgICAgICAgLS1fbGluZS13aWR0aDogdmFyKC0tcC1mb3JtLWZpZWxkLWZpbGxlZC1mb2N1cy1pbmRpY2F0b3Itd2lkdGgpO1xuICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1fbGluZSksIHZhcigtLXAtbXVsdGlzZWxlY3QtZmlsbGVkLWZvY3VzLWJhY2tncm91bmQpO1xuICAgICAgICBvdXRsaW5lLWNvbG9yOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tcC1tdWx0aXNlbGVjdC1mb2N1cy1yaW5nLWNvbG9yKSB2YXIoLS1wLWZvcm0tZmllbGQtZmlsbGVkLWJvcmRlci1vcGFjaXR5KSwgdHJhbnNwYXJlbnQpO1xuICAgIH1cblxuICAgICYucC1zdGF0ZS1kaXNhYmxlZCB7XG4gICAgICAgIGJhY2tncm91bmQ6IHZhcigtLV9saW5lKSwgdmFyKC0tcC1tdWx0aXNlbGVjdC1kaXNhYmxlZC1iYWNrZ3JvdW5kKTtcbiAgICB9XG5cbiAgICAvKiBrZWVwIHRoZSBmaWxsZWQgYmFja2dyb3VuZHMgb2YgZm9ybXMvaW5wdXRmaWVsZC5jc3Mgb2ZmIHRoZSBpbm5lciBjaGlwcyBjb250YWluZXIgKi9cbiAgICAucC1zZWxlY3RjaGVja2JveG1lbnUtbXVsdGlwbGUtY29udGFpbmVyLnAtaW5wdXRmaWVsZCxcbiAgICAucC1zZWxlY3RjaGVja2JveG1lbnUtbXVsdGlwbGUtY29udGFpbmVyLnAtaW5wdXRmaWVsZDpob3ZlciB7XG4gICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgIH1cbn1cblxuLnAtZmx1aWQgLnAtc2VsZWN0Y2hlY2tib3htZW51IHtcbiAgICB3aWR0aDogMTAwJTtcbn1cblxuLyogcGFuZWwgKi9cbi5wLXNlbGVjdGNoZWNrYm94bWVudS1wYW5lbCB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgcGFkZGluZzogMDtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1wLW11bHRpc2VsZWN0LW92ZXJsYXktYmFja2dyb3VuZCk7XG4gICAgY29sb3I6IHZhcigtLXAtbXVsdGlzZWxlY3Qtb3ZlcmxheS1jb2xvcik7XG4gICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tcC1tdWx0aXNlbGVjdC1vdmVybGF5LWJvcmRlci1jb2xvcik7XG4gICAgYm94LXNoYWRvdzogdmFyKC0tcC1tdWx0aXNlbGVjdC1vdmVybGF5LXNoYWRvdyk7XG4gICAgYm9yZGVyLXJhZGl1czogdmFyKC0tcC1tdWx0aXNlbGVjdC1vdmVybGF5LWJvcmRlci1yYWRpdXMpO1xuXG4gICAgLnAtc2VsZWN0Y2hlY2tib3htZW51LWl0ZW1zLXdyYXBwZXIge1xuICAgICAgICBvdmVyZmxvdzogYXV0bztcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgIH1cblxuICAgIC5wLXNlbGVjdGNoZWNrYm94bWVudS1pdGVtIHtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIH1cblxuICAgIC5wLXNlbGVjdGNoZWNrYm94bWVudS1saXN0IHtcbiAgICAgICAgYm9yZGVyOiAwIG5vbmU7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgbGlzdC1zdHlsZS10eXBlOiBub25lO1xuICAgIH1cblxuICAgIC5wLXNlbGVjdGNoZWNrYm94bWVudS1saXN0LWl0ZW0ge1xuICAgICAgICBib3JkZXI6IDAgbm9uZTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB0ZXh0LWFsaWduOiBzdGFydDtcbiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICB9XG5cbiAgICAucC1zZWxlY3RjaGVja2JveG1lbnUtdGFibGUge1xuICAgICAgICBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlO1xuICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICB0aCxcbiAgICAgICAgdGQge1xuICAgICAgICAgICAgYm9yZGVyLXdpZHRoOiAxcHg7XG4gICAgICAgICAgICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1wLWRhdGF0YWJsZS1ib2R5LWNlbGwtYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8qIGZpcnN0IGNvbHVtbiBob2xkcyB0aGUgY2hlY2tib3g6IHNocmluayBpdCB0byBpdHMgY29udGVudCAqL1xuICAgICAgICB0aDpmaXJzdC1vZi10eXBlLFxuICAgICAgICB0ZDpmaXJzdC1vZi10eXBlIHtcbiAgICAgICAgICAgIHdpZHRoOiAxJTtcbiAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAucC1zZWxlY3RjaGVja2JveG1lbnUtaGVhZGVyIHtcbiAgICAgICAgcGFkZGluZzogdmFyKC0tcC1tdWx0aXNlbGVjdC1saXN0LWhlYWRlci1wYWRkaW5nKTtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBib3JkZXI6IDAgbm9uZTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1wLW11bHRpc2VsZWN0LW92ZXJsYXktY29sb3IpO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cbiAgICAgICAgLnAtY2hrYm94IHtcbiAgICAgICAgICAgIG1hcmdpbi1pbmxpbmUtZW5kOiB2YXIoLS1wLW11bHRpc2VsZWN0LW9wdGlvbi1nYXApO1xuICAgICAgICB9XG5cbiAgICAgICAgLnAtc2VsZWN0Y2hlY2tib3htZW51LWZpbHRlci1jb250YWluZXIge1xuICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgIG1hcmdpbi1pbmxpbmUtZW5kOiB2YXIoLS1wLW11bHRpc2VsZWN0LW9wdGlvbi1nYXApO1xuICAgICAgICAgICAgZmxleDogMSAxIDA7XG5cbiAgICAgICAgICAgIC5wLWlucHV0ZmllbGQge1xuICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgIHBhZGRpbmctYmxvY2s6IHZhcigtLXAtbXVsdGlzZWxlY3QtcGFkZGluZy15KTtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLWlubGluZTogdmFyKC0tcC1tdWx0aXNlbGVjdC1wYWRkaW5nLXgpO1xuICAgICAgICAgICAgICAgIHBhZGRpbmctaW5saW5lLXN0YXJ0OiBjYWxjKDIgKiB2YXIoLS1wLW11bHRpc2VsZWN0LXBhZGRpbmcteCkgKyB2YXIoLS1wLWljb24tc2l6ZSkpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAucC1zZWxlY3RjaGVja2JveG1lbnUtZmlsdGVyLWljb24ge1xuICAgICAgICAgICAgICAgIC0tX2ljb246IHZhcigtLXAtbXVsdGlzZWxlY3QtZmlsdGVyLWljb24pO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICBpbnNldC1pbmxpbmUtc3RhcnQ6IHZhcigtLXAtbXVsdGlzZWxlY3QtcGFkZGluZy14KTtcbiAgICAgICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiBjYWxjKC0xICogdmFyKC0tcC1pY29uLXNpemUpIC8gMik7XG4gICAgICAgICAgICAgICAgY29sb3I6IHZhcigtLXAtZm9ybS1maWVsZC1pY29uLWNvbG9yKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC8qIGNsb3NlIGFjdGlvbiBpY29uOyBubyBhY3Rpb24gaWNvbiB0b2tlbnMsIHRoZSB0ZXh0LXBsYWluIGJ1dHRvbiB0b2tlbnMgZ2l2ZSB0aGUgc2FtZSBsb29rICovXG4gICAgICAgIC5wLXNlbGVjdGNoZWNrYm94bWVudS1jbG9zZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgIHdpZHRoOiB2YXIoLS1wLWJ1dHRvbi1pY29uLW9ubHktd2lkdGgpO1xuICAgICAgICAgICAgaGVpZ2h0OiB2YXIoLS1wLWJ1dHRvbi1pY29uLW9ubHktd2lkdGgpO1xuICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIG1hcmdpbi1pbmxpbmU6IGF1dG8gMDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6IHZhcigtLXAtYnV0dG9uLXRleHQtcGxhaW4tY29sb3IpO1xuICAgICAgICAgICAgYm9yZGVyOiAwIG5vbmU7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgICAgICAgICBvdXRsaW5lLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgdmFyKC0tcC1idXR0b24tdHJhbnNpdGlvbi1kdXJhdGlvbiksIGNvbG9yIHZhcigtLXAtYnV0dG9uLXRyYW5zaXRpb24tZHVyYXRpb24pLFxuICAgICAgICAgICAgICAgIG91dGxpbmUtY29sb3IgdmFyKC0tcC1idXR0b24tdHJhbnNpdGlvbi1kdXJhdGlvbiksIGJveC1zaGFkb3cgdmFyKC0tcC1idXR0b24tdHJhbnNpdGlvbi1kdXJhdGlvbik7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLnAtc3RhdGUtaG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IHZhcigtLXAtYnV0dG9uLXRleHQtcGxhaW4taG92ZXItYmFja2dyb3VuZCk7XG4gICAgICAgICAgICAgICAgY29sb3I6IHZhcigtLXAtYnV0dG9uLXRleHQtcGxhaW4tY29sb3IpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmZvY3VzLXZpc2libGUge1xuICAgICAgICAgICAgICAgIG91dGxpbmU6IHZhcigtLXAtZm9jdXMtcmluZy13aWR0aCkgdmFyKC0tcC1mb2N1cy1yaW5nLXN0eWxlKSB2YXIoLS1wLWZvY3VzLXJpbmctY29sb3IpO1xuICAgICAgICAgICAgICAgIG91dGxpbmUtb2Zmc2V0OiB2YXIoLS1wLWZvY3VzLXJpbmctb2Zmc2V0KTtcbiAgICAgICAgICAgICAgICBib3gtc2hhZG93OiB2YXIoLS1wLWZvY3VzLXJpbmctc2hhZG93KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLnAtc2VsZWN0Y2hlY2tib3htZW51LWNsb3NlLWljb24ge1xuICAgICAgICAgICAgICAgIC0tX2ljb246IHZhcigtLXAtbXVsdGlzZWxlY3QtY2xvc2UtaWNvbik7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiB0aGUgbGlzdHMgYXJlIHAtY29tcG9uZW50LWNvbnRlbnQ6IG5vIGJhY2tncm91bmQgb2YgdGhlaXIgb3duLCB0aGUgcm91bmRlZCBwYW5lbCBkcmF3cyBpdCAqL1xuICAgIC5wLXNlbGVjdGNoZWNrYm94bWVudS1pdGVtcyxcbiAgICAucC1zZWxlY3RjaGVja2JveG1lbnUtbGlzdCB7XG4gICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgIH1cblxuICAgIC5wLXNlbGVjdGNoZWNrYm94bWVudS1pdGVtcyB7XG4gICAgICAgIHBhZGRpbmc6IHZhcigtLXAtbXVsdGlzZWxlY3QtbGlzdC1wYWRkaW5nKTtcblxuICAgICAgICAmLnAtc2VsZWN0Y2hlY2tib3htZW51LWxpc3Qge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICBnYXA6IHZhcigtLXAtbXVsdGlzZWxlY3QtbGlzdC1nYXApO1xuICAgICAgICB9XG5cbiAgICAgICAgJi5wLXNlbGVjdGNoZWNrYm94bWVudS10YWJsZSA+IHRoZWFkIHRyIHRoIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHZhcigtLXAtZGF0YXRhYmxlLWhlYWRlci1jZWxsLWJhY2tncm91bmQpO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tcC1kYXRhdGFibGUtaGVhZGVyLWNlbGwtYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1wLWRhdGF0YWJsZS1oZWFkZXItY2VsbC1jb2xvcik7XG4gICAgICAgICAgICBmb250LXdlaWdodDogdmFyKC0tcC1kYXRhdGFibGUtY29sdW1uLXRpdGxlLWZvbnQtd2VpZ2h0KTtcbiAgICAgICAgICAgIHBhZGRpbmc6IHZhcigtLXAtZGF0YXRhYmxlLWhlYWRlci1jZWxsLXBhZGRpbmcpO1xuICAgICAgICB9XG5cbiAgICAgICAgLnAtc2VsZWN0Y2hlY2tib3htZW51LWl0ZW0ge1xuICAgICAgICAgICAgcGFkZGluZzogdmFyKC0tcC1tdWx0aXNlbGVjdC1vcHRpb24tcGFkZGluZyk7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICBvdXRsaW5lOiAwIG5vbmU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1wLW11bHRpc2VsZWN0LW9wdGlvbi1jb2xvcik7XG4gICAgICAgICAgICBmb250LXNpemU6IHZhcigtLXAtbXVsdGlzZWxlY3Qtb3B0aW9uLWZvbnQtc2l6ZSk7XG4gICAgICAgICAgICBmb250LXdlaWdodDogdmFyKC0tcC1tdWx0aXNlbGVjdC1vcHRpb24tZm9udC13ZWlnaHQpO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogdmFyKC0tcC1tdWx0aXNlbGVjdC1vcHRpb24tYm9yZGVyLXJhZGl1cyk7XG4gICAgICAgICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIHZhcigtLXAtbGlzdC1vcHRpb24tdHJhbnNpdGlvbi1kdXJhdGlvbiksIGNvbG9yIHZhcigtLXAtbGlzdC1vcHRpb24tdHJhbnNpdGlvbi1kdXJhdGlvbiksXG4gICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yIHZhcigtLXAtbGlzdC1vcHRpb24tdHJhbnNpdGlvbi1kdXJhdGlvbiksIGJveC1zaGFkb3cgdmFyKC0tcC1saXN0LW9wdGlvbi10cmFuc2l0aW9uLWR1cmF0aW9uKSxcbiAgICAgICAgICAgICAgICBvdXRsaW5lLWNvbG9yIHZhcigtLXAtbGlzdC1vcHRpb24tdHJhbnNpdGlvbi1kdXJhdGlvbik7XG5cbiAgICAgICAgICAgICYucC1zdGF0ZS1ob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tcC1tdWx0aXNlbGVjdC1vcHRpb24tZm9jdXMtYmFja2dyb3VuZCk7XG4gICAgICAgICAgICAgICAgY29sb3I6IHZhcigtLXAtbXVsdGlzZWxlY3Qtb3B0aW9uLWZvY3VzLWNvbG9yKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi5wLXN0YXRlLWhpZ2hsaWdodCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tcC1tdWx0aXNlbGVjdC1vcHRpb24tc2VsZWN0ZWQtYmFja2dyb3VuZCk7XG4gICAgICAgICAgICAgICAgY29sb3I6IHZhcigtLXAtbXVsdGlzZWxlY3Qtb3B0aW9uLXNlbGVjdGVkLWNvbG9yKTtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogdmFyKC0tcC1tdWx0aXNlbGVjdC1vcHRpb24tc2VsZWN0ZWQtZm9udC13ZWlnaHQpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLnAtc3RhdGUtaGlnaGxpZ2h0LnAtc3RhdGUtaG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IHZhcigtLXAtbXVsdGlzZWxlY3Qtb3B0aW9uLXNlbGVjdGVkLWZvY3VzLWJhY2tncm91bmQpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1wLW11bHRpc2VsZWN0LW9wdGlvbi1zZWxlY3RlZC1mb2N1cy1jb2xvcik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5wLWNoa2JveCB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHN0YXRpYztcbiAgICAgICAgICAgICAgICBtYXJnaW4taW5saW5lLWVuZDogdmFyKC0tcC1tdWx0aXNlbGVjdC1vcHRpb24tZ2FwKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgPiBsYWJlbCB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lO1xuICAgICAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYucC1zZWxlY3RjaGVja2JveG1lbnUtcm93IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1wLWRhdGF0YWJsZS1yb3ctYmFja2dyb3VuZCk7XG4gICAgICAgICAgICAgICAgY29sb3I6IHZhcigtLXAtZGF0YXRhYmxlLXJvdy1jb2xvcik7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tcC1kYXRhdGFibGUtYm9keS1jZWxsLWJvcmRlci1jb2xvcik7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi5wLXNlbGVjdGNoZWNrYm94bWVudS1yb3cgPiB0ZCB7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogdmFyKC0tcC1kYXRhdGFibGUtYm9keS1jZWxsLXBhZGRpbmcpO1xuICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tcC1kYXRhdGFibGUtYm9keS1jZWxsLWJvcmRlci1jb2xvcik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYucC1zZWxlY3RjaGVja2JveG1lbnUtcm93OmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBib3JkZXItdG9wLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5wLXNlbGVjdGNoZWNrYm94bWVudS1pdGVtLWdyb3VwIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgIHBhZGRpbmc6IHZhcigtLXAtbXVsdGlzZWxlY3Qtb3B0aW9uLWdyb3VwLXBhZGRpbmcpO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tcC1tdWx0aXNlbGVjdC1vcHRpb24tZ3JvdXAtYmFja2dyb3VuZCk7XG4gICAgICAgICAgICBjb2xvcjogdmFyKC0tcC1tdWx0aXNlbGVjdC1vcHRpb24tZ3JvdXAtY29sb3IpO1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IHZhcigtLXAtbXVsdGlzZWxlY3Qtb3B0aW9uLWdyb3VwLWZvbnQtd2VpZ2h0KTtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogdmFyKC0tcC1tdWx0aXNlbGVjdC1vcHRpb24tZ3JvdXAtZm9udC1zaXplKTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLnAtc2VsZWN0Y2hlY2tib3htZW51LWhlYWRlciB7XG4gICAgLnAtY2hrYm94IHtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIH1cblxuICAgIC5wLXNlbGVjdGNoZWNrYm94bWVudS1maWx0ZXItY29udGFpbmVyIHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIH1cbn1cblxuLnAtc2VsZWN0Y2hlY2tib3htZW51LWZvb3RlciB7XG4gICAgYm9yZGVyOiAwIG5vbmU7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IHZhcigtLXAtbXVsdGlzZWxlY3QtbGlzdC1oZWFkZXItcGFkZGluZyk7XG59XG4iLCAiLypcbiAqIFNlbGVjdE1hbnlDaGVja2JveDogcDpzZWxlY3RNYW55Q2hlY2tib3ggKGxheW91dHMgbGluZURpcmVjdGlvbiwgcGFnZURpcmVjdGlvbiwgZ3JpZCwgcmVzcG9uc2l2ZSwgY3VzdG9tKVxuICpcbiAqIFRoZSBib3hlcyBhcmUgc3R5bGVkIGluIGZvcm1zL2NoZWNrYm94LmNzczsgdGhpcyBmaWxlIG9ubHkgbGF5cyBvdXQgdGhlIG9wdGlvbnMsIGxhYmVscyBhbmQgZ3JvdXAgaGVhZGVyc1xuICogKG9wdGlvbnMgYXJlIHNlcGFyYXRlZCBieSB0aGUgbGFiZWwgZW5kIG1hcmdpbikuXG4gKiBNYXJrdXA6IC5wLXNlbGVjdG1hbnljaGVja2JveC51aS1ncmlkLXJlc3BvbnNpdmUgPiAudWktZyAob3IgLmdyaWQpID4gLnVpLWctKiA+IC5wLWNoa2JveCArIGxhYmVsXG4gKiBTdXBwb3J0ZWQgY2xhc3NlczogbGF5b3V0LWxpbmUtZGlyZWN0aW9uLCBwLXNlbGVjdG1hbnljaGVja2JveC1yZXNwb25zaXZlLWdyb3VwLCBwLXN0YXRlLWRpc2FibGVkIChvbiBhbiBvcHRpb24gbGFiZWwpXG4gKi9cbi5wLXNlbGVjdG1hbnljaGVja2JveCB7XG4gICAgJi5sYXlvdXQtbGluZS1kaXJlY3Rpb24udWktZ3JpZC1yZXNwb25zaXZlID4gZGl2LFxuICAgICYubGF5b3V0LWxpbmUtZGlyZWN0aW9uLnVpLWdyaWQtcmVzcG9uc2l2ZSA+IGRpdiBsYWJlbCB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZTtcbiAgICB9XG5cbiAgICAmLnVpLWdyaWQtcmVzcG9uc2l2ZSA+IGRpdiA+IGRpdiB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIH1cblxuICAgICYudWktZ3JpZC1yZXNwb25zaXZlID4gZGl2IGxhYmVsIHtcbiAgICAgICAgZmxleC1ncm93OiAxO1xuICAgIH1cblxuICAgICYudWktZ3JpZC1yZXNwb25zaXZlIC51aS1nID4gZGl2IHtcbiAgICAgICAgcGFkZGluZzogdmFyKC0tcC1zZWxlY3RtYW55Y2hlY2tib3gtY2VsbC1wYWRkaW5nKTtcbiAgICB9XG5cbiAgICAudWktZy0xLFxuICAgIC51aS1nLTIsXG4gICAgLnVpLWctMyxcbiAgICAudWktZy00LFxuICAgIC51aS1nLTUsXG4gICAgLnVpLWctNixcbiAgICAudWktZy03LFxuICAgIC51aS1nLTgsXG4gICAgLnVpLWctOSxcbiAgICAudWktZy0xMCxcbiAgICAudWktZy0xMSxcbiAgICAudWktZy0xMiB7XG4gICAgICAgIGZsb2F0OiBub25lO1xuICAgIH1cblxuICAgIGxhYmVsIHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgLyogdGhlIGdhcCBpcyBwYWRkaW5nIG9mIHRoZSBsYWJlbDogYSBjbGljayBiZXR3ZWVuIGJveCBhbmQgbGFiZWwgdG9nZ2xlcyB0b28gKi9cbiAgICAgICAgcGFkZGluZy1pbmxpbmUtc3RhcnQ6IHZhcigtLXAtY2hlY2tib3gtbGFiZWwtZ2FwKTtcbiAgICAgICAgbWFyZ2luLWlubGluZS1lbmQ6IHZhcigtLXAtc2VsZWN0bWFueWNoZWNrYm94LWdhcCk7XG4gICAgICAgIG91dGxpbmU6IDAgbm9uZTtcbiAgICAgICAgei1pbmRleDogMTtcblxuICAgICAgICAmLnAtc3RhdGUtZGlzYWJsZWQge1xuICAgICAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLnAtY2hrYm94IC5wLWNoa2JveC1ib3gge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICB9XG5cbiAgICAucC1zZWxlY3RtYW55Y2hlY2tib3gtaXRlbS1ncm91cCB7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1wLXNlbGVjdG1hbnljaGVja2JveC1ncm91cC1jb2xvcik7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1wLXNlbGVjdG1hbnljaGVja2JveC1ncm91cC1mb250LXdlaWdodCk7XG4gICAgfVxuXG4gICAgLnAtc2VsZWN0bWFueWNoZWNrYm94LXJlc3BvbnNpdmUtZ3JvdXAge1xuICAgICAgICBwYWRkaW5nOiB2YXIoLS1wLXNlbGVjdG1hbnljaGVja2JveC1ncm91cC1wYWRkaW5nKTtcbiAgICB9XG59XG4iLCAiLypcbiAqIFNlbGVjdE9uZUJ1dHRvbiAvIFNlbGVjdE1hbnlCdXR0b24gLyBTZWxlY3RCb29sZWFuQnV0dG9uIChQcmltZVVJWDogc2VsZWN0YnV0dG9uICsgdG9nZ2xlYnV0dG9uKVxuICpcbiAqIEV2ZXJ5IG9wdGlvbiBpcyBhIC5wLWJ1dHRvbiAoYnV0dG9uLmNzcykgcmVzdHlsZWQgYXMgYSB0b2dnbGUgYnV0dG9uLiBMaWtlIFByaW1lVUlYIHRoZSBjaGVja2VkIHN0YXRlIGNhbiBzaG93IGFuXG4gKiBpbm5lciBcInBpbGxcIiAodG9nZ2xlYnV0dG9uIGNvbnRlbnQgdG9rZW5zLCBlLmcuIEF1cmEpOyBpdCBpcyBkcmF3biBieSA6OmJlZm9yZSBzbyBpY29uIGFuZCBsYWJlbCBib3RoIHNpdCBvbiBpdC5cbiAqIFN1cHBvcnRlZCBjbGFzc2VzIG9uIHRoZSBvcHRpb24gLyBib29sZWFuIGJ1dHRvbjogcC1zdGF0ZS1ob3ZlciwgcC1zdGF0ZS1mb2N1cywgcC1zdGF0ZS1hY3RpdmUgKGNoZWNrZWQpLFxuICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHAtc3RhdGUtZGlzYWJsZWQsIHAtc3RhdGUtZXJyb3IsIHAtYnV0dG9uLXNtLCBwLWJ1dHRvbi1sZ1xuICogT24gdGhlIGdyb3VwOiBwLXN0YXRlLWVycm9yIChpbnZhbGlkKSwgcC1zdGF0ZS1kaXNhYmxlZCwgLnAtZmx1aWQgcGFyZW50XG4gKi9cbi5wLXNlbGVjdG9uZWJ1dHRvbixcbi5wLXNlbGVjdG1hbnlidXR0b24ge1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIC8qIHRoZSBncm91cCB3cmFwcyBpdHMgb3B0aW9ucywgYWxzbyBhcyBhIHN0cmV0Y2hlZCBmbGV4IC8gZ3JpZCBpdGVtICh0aGUgaW52YWxpZCBvdXRsaW5lIGlzIGRyYXduIG9uIHRoZSBncm91cCkgKi9cbiAgICB3aWR0aDogZml0LWNvbnRlbnQ7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgIHZlcnRpY2FsLWFsaWduOiBib3R0b207XG4gICAgLXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTtcbiAgICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgICBwYWRkaW5nOiAwO1xuICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXAtc2VsZWN0YnV0dG9uLWJvcmRlci1yYWRpdXMpO1xuICAgIG91dGxpbmUtY29sb3I6IHRyYW5zcGFyZW50O1xuXG4gICAgJi5wLXN0YXRlLWVycm9yIHtcbiAgICAgICAgb3V0bGluZTogMXB4IHNvbGlkIHZhcigtLXAtc2VsZWN0YnV0dG9uLWludmFsaWQtYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgb3V0bGluZS1vZmZzZXQ6IDA7XG4gICAgfVxuXG4gICAgLnAtYnV0dG9uLnAtc3RhdGUtZm9jdXMge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6IDE7XG4gICAgfVxufVxuXG4vKiBhbGwgYWx0ZXJuYXRpdmVzIGhhdmUgdGhlIHNhbWUgc3BlY2lmaWNpdHkgKDAsMiwwKSwgc28gbmVzdGluZyB1bmRlciB0aGlzIGxpc3Qga2VlcHMgdGhlIGZsYXQgc3BlY2lmaWNpdHkgKi9cbi5wLXNlbGVjdG9uZWJ1dHRvbiA+IC5wLWJ1dHRvbixcbi5wLXNlbGVjdG1hbnlidXR0b24gPiAucC1idXR0b24sXG4ucC1idXR0b24ucC1zZWxlY3Rib29sZWFuYnV0dG9uIHtcbiAgICAtLV9iZzogdmFyKC0tcC10b2dnbGVidXR0b24tYmFja2dyb3VuZCk7XG4gICAgLS1faG92ZXItYmc6IHZhcigtLXAtdG9nZ2xlYnV0dG9uLWhvdmVyLWJhY2tncm91bmQpO1xuICAgIC0tX2FjdGl2ZS1iZzogdmFyKC0tcC10b2dnbGVidXR0b24tY2hlY2tlZC1iYWNrZ3JvdW5kKTtcbiAgICAtLV9ib3JkZXI6IHZhcigtLXAtdG9nZ2xlYnV0dG9uLWJvcmRlci1jb2xvcik7XG4gICAgLS1faG92ZXItYm9yZGVyOiB2YXIoLS1wLXRvZ2dsZWJ1dHRvbi1ib3JkZXItY29sb3IpO1xuICAgIC0tX2FjdGl2ZS1ib3JkZXI6IHZhcigtLXAtdG9nZ2xlYnV0dG9uLWNoZWNrZWQtYm9yZGVyLWNvbG9yKTtcbiAgICAtLV9jb2xvcjogdmFyKC0tcC10b2dnbGVidXR0b24tY29sb3IpO1xuICAgIC0tX2hvdmVyLWNvbG9yOiB2YXIoLS1wLXRvZ2dsZWJ1dHRvbi1ob3Zlci1jb2xvcik7XG4gICAgLS1fYWN0aXZlLWNvbG9yOiB2YXIoLS1wLXRvZ2dsZWJ1dHRvbi1jaGVja2VkLWNvbG9yKTtcbiAgICAtLV9mb2N1cy1yaW5nLWNvbG9yOiB2YXIoLS1wLXRvZ2dsZWJ1dHRvbi1mb2N1cy1yaW5nLWNvbG9yKTtcbiAgICAtLV9mb2N1cy1yaW5nLXNoYWRvdzogdmFyKC0tcC10b2dnbGVidXR0b24tZm9jdXMtcmluZy1zaGFkb3cpO1xuICAgIC0tX2xhYmVsLXNoYWRvdzogdmFyKC0tcC1idXR0b24tb3V0bGluZWQtbGFiZWwtc2hhZG93KTtcblxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBnYXA6IHZhcigtLXAtdG9nZ2xlYnV0dG9uLWdhcCk7XG4gICAgcGFkZGluZzogdmFyKC0tcC10b2dnbGVidXR0b24tcGFkZGluZyk7XG4gICAgZm9udC1zaXplOiB2YXIoLS1wLXRvZ2dsZWJ1dHRvbi1mb250LXNpemUpO1xuICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1wLXRvZ2dsZWJ1dHRvbi1mb250LXdlaWdodCk7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tcC10b2dnbGVidXR0b24tYmFja2dyb3VuZCk7XG4gICAgY29sb3I6IHZhcigtLXAtdG9nZ2xlYnV0dG9uLWNvbG9yKTtcbiAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1wLXRvZ2dsZWJ1dHRvbi1ib3JkZXItY29sb3IpO1xuICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXAtdG9nZ2xlYnV0dG9uLWJvcmRlci1yYWRpdXMpO1xuICAgIG91dGxpbmUtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgdmFyKC0tcC10b2dnbGVidXR0b24tdHJhbnNpdGlvbi1kdXJhdGlvbiksIGNvbG9yIHZhcigtLXAtdG9nZ2xlYnV0dG9uLXRyYW5zaXRpb24tZHVyYXRpb24pLFxuICAgICAgICBib3JkZXItY29sb3IgdmFyKC0tcC10b2dnbGVidXR0b24tdHJhbnNpdGlvbi1kdXJhdGlvbiksIG91dGxpbmUtY29sb3IgdmFyKC0tcC10b2dnbGVidXR0b24tdHJhbnNpdGlvbi1kdXJhdGlvbiksXG4gICAgICAgIGJveC1zaGFkb3cgdmFyKC0tcC10b2dnbGVidXR0b24tdHJhbnNpdGlvbi1kdXJhdGlvbik7XG5cbiAgICAvKiBpbm5lciBwaWxsIG9mIHRoZSBjaGVja2VkIHN0YXRlICovXG4gICAgJjo6YmVmb3JlIHtcbiAgICAgICAgY29udGVudDogXCJcIjtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBpbnNldDogdmFyKC0tcC10b2dnbGVidXR0b24tcGFkZGluZyk7XG4gICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgICAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1wLXRvZ2dsZWJ1dHRvbi1jb250ZW50LWJvcmRlci1yYWRpdXMpO1xuICAgICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIHZhcigtLXAtdG9nZ2xlYnV0dG9uLXRyYW5zaXRpb24tZHVyYXRpb24pLCBib3gtc2hhZG93IHZhcigtLXAtdG9nZ2xlYnV0dG9uLXRyYW5zaXRpb24tZHVyYXRpb24pO1xuICAgIH1cblxuICAgIC8qIGhvdmVyICh1bmNoZWNrZWQgb25seSkgKi9cbiAgICAmLnAtc3RhdGUtaG92ZXI6bm90KC5wLXN0YXRlLWFjdGl2ZSwgLnAtc3RhdGUtZGlzYWJsZWQpLFxuICAgICY6bm90KC5wLXN0YXRlLWFjdGl2ZSwgLnAtc3RhdGUtZGlzYWJsZWQpOmhvdmVyIHtcbiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tcC10b2dnbGVidXR0b24taG92ZXItYmFja2dyb3VuZCk7XG4gICAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tcC10b2dnbGVidXR0b24tYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgY29sb3I6IHZhcigtLXAtdG9nZ2xlYnV0dG9uLWhvdmVyLWNvbG9yKTtcbiAgICB9XG5cbiAgICAvKiBjaGVja2VkIChhbHNvIHdoaWxlIGhvdmVyZWQpICovXG4gICAgJi5wLXN0YXRlLWFjdGl2ZSxcbiAgICAmLnAtc3RhdGUtYWN0aXZlOm5vdCgucC1zdGF0ZS1kaXNhYmxlZCk6aG92ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1wLXRvZ2dsZWJ1dHRvbi1jaGVja2VkLWJhY2tncm91bmQpO1xuICAgICAgICBib3JkZXItY29sb3I6IHZhcigtLXAtdG9nZ2xlYnV0dG9uLWNoZWNrZWQtYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgY29sb3I6IHZhcigtLXAtdG9nZ2xlYnV0dG9uLWNoZWNrZWQtY29sb3IpO1xuICAgIH1cblxuICAgICYucC1zdGF0ZS1hY3RpdmU6OmJlZm9yZSB7XG4gICAgICAgIGJhY2tncm91bmQ6IHZhcigtLXAtdG9nZ2xlYnV0dG9uLWNvbnRlbnQtY2hlY2tlZC1iYWNrZ3JvdW5kKTtcbiAgICAgICAgYm94LXNoYWRvdzogdmFyKC0tcC10b2dnbGVidXR0b24tY29udGVudC1jaGVja2VkLXNoYWRvdyk7XG4gICAgfVxuXG4gICAgLyogZm9jdXMgKi9cbiAgICAmLnAtc3RhdGUtZm9jdXMsXG4gICAgJjpmb2N1cy12aXNpYmxlIHtcbiAgICAgICAgb3V0bGluZTogdmFyKC0tcC10b2dnbGVidXR0b24tZm9jdXMtcmluZy13aWR0aCkgdmFyKC0tcC10b2dnbGVidXR0b24tZm9jdXMtcmluZy1zdHlsZSkgdmFyKC0tcC10b2dnbGVidXR0b24tZm9jdXMtcmluZy1jb2xvcik7XG4gICAgICAgIG91dGxpbmUtb2Zmc2V0OiB2YXIoLS1wLXRvZ2dsZWJ1dHRvbi1mb2N1cy1yaW5nLW9mZnNldCk7XG4gICAgICAgIGJveC1zaGFkb3c6IHZhcigtLXAtdG9nZ2xlYnV0dG9uLWZvY3VzLXJpbmctc2hhZG93KTtcbiAgICB9XG59XG5cbi8qIGxhYmVsIGFuZCBpY29uIHNpdCBvbiB0aGUgcGlsbCAocG9zaXRpb246IHJlbGF0aXZlLCBhYm92ZSB0aGUgOjpiZWZvcmUpICovXG4ucC1zZWxlY3RvbmVidXR0b24gPiAucC1idXR0b24gPiAucC1idXR0b24tdGV4dCxcbi5wLXNlbGVjdG1hbnlidXR0b24gPiAucC1idXR0b24gPiAucC1idXR0b24tdGV4dCxcbi5wLWJ1dHRvbi5wLXNlbGVjdGJvb2xlYW5idXR0b24gPiAucC1idXR0b24tdGV4dCxcbi5wLXNlbGVjdG9uZWJ1dHRvbiA+IC5wLWJ1dHRvbiA+IC5wLWJ1dHRvbi1pY29uLWxlZnQsXG4ucC1zZWxlY3RtYW55YnV0dG9uID4gLnAtYnV0dG9uID4gLnAtYnV0dG9uLWljb24tbGVmdCxcbi5wLWJ1dHRvbi5wLXNlbGVjdGJvb2xlYW5idXR0b24gPiAucC1idXR0b24taWNvbi1sZWZ0IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgcGFkZGluZzogdmFyKC0tcC10b2dnbGVidXR0b24tY29udGVudC1wYWRkaW5nKTtcbiAgICBmb250LXdlaWdodDogdmFyKC0tcC10b2dnbGVidXR0b24tZm9udC13ZWlnaHQpO1xuICAgIGN1cnNvcjogaW5oZXJpdDtcbn1cblxuLnAtc2VsZWN0b25lYnV0dG9uID4gLnAtYnV0dG9uLFxuLnAtc2VsZWN0bWFueWJ1dHRvbiA+IC5wLWJ1dHRvbixcbi5wLWJ1dHRvbi5wLXNlbGVjdGJvb2xlYW5idXR0b24ge1xuICAgIC8qIGljb24gKyBsYWJlbDogdGhlIHBpbGwgcGFkZGluZyBnb2VzIGFyb3VuZCBib3RoLCB0aGUgZ2FwIHNpdHMgYmV0d2VlbiB0aGVtICovXG4gICAgPiAucC1idXR0b24taWNvbi1sZWZ0IHtcbiAgICAgICAgcGFkZGluZy1pbmxpbmUtZW5kOiAwO1xuICAgICAgICBjb2xvcjogdmFyKC0tcC10b2dnbGVidXR0b24taWNvbi1jb2xvcik7XG4gICAgfVxuXG4gICAgPiAucC1idXR0b24taWNvbi1sZWZ0ICsgLnAtYnV0dG9uLXRleHQge1xuICAgICAgICBwYWRkaW5nLWlubGluZS1zdGFydDogMDtcbiAgICB9XG5cbiAgICAmLnAtYnV0dG9uLWljb24tb25seSB7XG4gICAgICAgIHdpZHRoOiBhdXRvO1xuXG4gICAgICAgID4gLnAtYnV0dG9uLWljb24tbGVmdCB7XG4gICAgICAgICAgICBwYWRkaW5nOiB2YXIoLS1wLXRvZ2dsZWJ1dHRvbi1jb250ZW50LXBhZGRpbmcpO1xuICAgICAgICB9XG5cbiAgICAgICAgLyogaWNvbiBvbmx5OiB0aGUgbGFiZWwgaXMga2VwdCBoaWRkZW4gYnkgYnV0dG9uLmNzcywgaXQgbXVzdCBub3QgYWRkIHdpZHRoICovXG4gICAgICAgID4gLnAtYnV0dG9uLXRleHQge1xuICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICY6bm90KC5wLXN0YXRlLWFjdGl2ZSwgLnAtc3RhdGUtZGlzYWJsZWQpOmhvdmVyID4gLnAtYnV0dG9uLWljb24tbGVmdCB7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1wLXRvZ2dsZWJ1dHRvbi1pY29uLWhvdmVyLWNvbG9yKTtcbiAgICB9XG5cbiAgICAmLnAtc3RhdGUtYWN0aXZlID4gLnAtYnV0dG9uLWljb24tbGVmdCB7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1wLXRvZ2dsZWJ1dHRvbi1pY29uLWNoZWNrZWQtY29sb3IpO1xuICAgIH1cbn1cblxuLyogaW52YWxpZDogdGhlIGJvcmRlciBhbHNvIHdpbnMgb3ZlciBob3ZlciBhbmQgY2hlY2tlZCBob3ZlciAoc2FtZSBzcGVjaWZpY2l0eSwgbGF0ZXIpICovXG4ucC1idXR0b24ucC1zZWxlY3Rib29sZWFuYnV0dG9uLnAtc3RhdGUtZXJyb3IsXG4ucC1idXR0b24ucC1zZWxlY3Rib29sZWFuYnV0dG9uLnAtc3RhdGUtZXJyb3I6aXMoOmhvdmVyLCAucC1zdGF0ZS1ob3ZlciksXG4ucC1idXR0b24ucC1zZWxlY3Rib29sZWFuYnV0dG9uLnAtc3RhdGUtZXJyb3IucC1zdGF0ZS1hY3RpdmU6aG92ZXIge1xuICAgIGJvcmRlci1jb2xvcjogdmFyKC0tcC10b2dnbGVidXR0b24taW52YWxpZC1ib3JkZXItY29sb3IpO1xufVxuXG4vKiBkaXNhYmxlZCAqL1xuLnAtc2VsZWN0b25lYnV0dG9uID4gLnAtYnV0dG9uLFxuLnAtc2VsZWN0bWFueWJ1dHRvbiA+IC5wLWJ1dHRvbixcbi5wLWJ1dHRvbi5wLXNlbGVjdGJvb2xlYW5idXR0b24ge1xuICAgICYucC1zdGF0ZS1kaXNhYmxlZCB7XG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgIGN1cnNvcjogZGVmYXVsdDtcbiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tcC10b2dnbGVidXR0b24tZGlzYWJsZWQtYmFja2dyb3VuZCk7XG4gICAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tcC10b2dnbGVidXR0b24tZGlzYWJsZWQtYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgY29sb3I6IHZhcigtLXAtdG9nZ2xlYnV0dG9uLWRpc2FibGVkLWNvbG9yKTtcbiAgICB9XG5cbiAgICAmLnAtc3RhdGUtZGlzYWJsZWQ6OmJlZm9yZSB7XG4gICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgICAgICBib3gtc2hhZG93OiBub25lO1xuICAgIH1cbn1cblxuLnAtc2VsZWN0b25lYnV0dG9uID4gLnAtYnV0dG9uLnAtc3RhdGUtZGlzYWJsZWQgPiAucC1idXR0b24taWNvbi1sZWZ0LFxuLnAtc2VsZWN0bWFueWJ1dHRvbiA+IC5wLWJ1dHRvbi5wLXN0YXRlLWRpc2FibGVkID4gLnAtYnV0dG9uLWljb24tbGVmdCxcbi5wLWJ1dHRvbi5wLXNlbGVjdGJvb2xlYW5idXR0b24ucC1zdGF0ZS1kaXNhYmxlZCA+IC5wLWJ1dHRvbi1pY29uLWxlZnQge1xuICAgIGNvbG9yOiB2YXIoLS1wLXRvZ2dsZWJ1dHRvbi1pY29uLWRpc2FibGVkLWNvbG9yKTtcbn1cblxuLyogc2l6ZXMgKi9cbi5wLXNlbGVjdG9uZWJ1dHRvbiA+IC5wLWJ1dHRvbixcbi5wLXNlbGVjdG1hbnlidXR0b24gPiAucC1idXR0b24sXG4ucC1idXR0b24ucC1zZWxlY3Rib29sZWFuYnV0dG9uIHtcbiAgICAmLnAtYnV0dG9uLXNtIHtcbiAgICAgICAgcGFkZGluZzogdmFyKC0tcC10b2dnbGVidXR0b24tc20tcGFkZGluZyk7XG4gICAgICAgIGZvbnQtc2l6ZTogdmFyKC0tcC10b2dnbGVidXR0b24tc20tZm9udC1zaXplKTtcblxuICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgaW5zZXQ6IHZhcigtLXAtdG9nZ2xlYnV0dG9uLXNtLXBhZGRpbmcpO1xuICAgICAgICB9XG5cbiAgICAgICAgPiAucC1idXR0b24tdGV4dCB7XG4gICAgICAgICAgICBwYWRkaW5nOiB2YXIoLS1wLXRvZ2dsZWJ1dHRvbi1jb250ZW50LXNtLXBhZGRpbmcpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi5wLWJ1dHRvbi1sZyB7XG4gICAgICAgIHBhZGRpbmc6IHZhcigtLXAtdG9nZ2xlYnV0dG9uLWxnLXBhZGRpbmcpO1xuICAgICAgICBmb250LXNpemU6IHZhcigtLXAtdG9nZ2xlYnV0dG9uLWxnLWZvbnQtc2l6ZSk7XG5cbiAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgIGluc2V0OiB2YXIoLS1wLXRvZ2dsZWJ1dHRvbi1sZy1wYWRkaW5nKTtcbiAgICAgICAgfVxuXG4gICAgICAgID4gLnAtYnV0dG9uLXRleHQge1xuICAgICAgICAgICAgcGFkZGluZzogdmFyKC0tcC10b2dnbGVidXR0b24tY29udGVudC1sZy1wYWRkaW5nKTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLyogZ3JvdXBlZDogb25seSB0aGUgb3V0ZXIgY29ybmVycyBhcmUgcm91bmRlZCwgbmVpZ2hib3VycyBzaGFyZSBvbmUgYm9yZGVyICovXG4ucC1zZWxlY3RvbmVidXR0b24sXG4ucC1zZWxlY3RtYW55YnV0dG9uIHtcbiAgICA+IC5wLWJ1dHRvbiB7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgICAgYm9yZGVyLXdpZHRoOiAxcHg7XG4gICAgICAgIGJvcmRlci1pbmxpbmUtc3RhcnQtd2lkdGg6IDA7XG5cbiAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICBib3JkZXItaW5saW5lLXN0YXJ0LXdpZHRoOiAxcHg7XG4gICAgICAgICAgICBib3JkZXItc3RhcnQtc3RhcnQtcmFkaXVzOiB2YXIoLS1wLXNlbGVjdGJ1dHRvbi1ib3JkZXItcmFkaXVzKTtcbiAgICAgICAgICAgIGJvcmRlci1lbmQtc3RhcnQtcmFkaXVzOiB2YXIoLS1wLXNlbGVjdGJ1dHRvbi1ib3JkZXItcmFkaXVzKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICBib3JkZXItc3RhcnQtZW5kLXJhZGl1czogdmFyKC0tcC1zZWxlY3RidXR0b24tYm9yZGVyLXJhZGl1cyk7XG4gICAgICAgICAgICBib3JkZXItZW5kLWVuZC1yYWRpdXM6IHZhcigtLXAtc2VsZWN0YnV0dG9uLWJvcmRlci1yYWRpdXMpO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4vKiBmbHVpZCAqL1xuLnAtZmx1aWQgLnAtc2VsZWN0b25lYnV0dG9uLFxuLnAtZmx1aWQgLnAtc2VsZWN0bWFueWJ1dHRvbiB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICB3aWR0aDogMTAwJTtcblxuICAgID4gLnAtYnV0dG9uIHtcbiAgICAgICAgZmxleDogMSAxIDA7XG4gICAgICAgIHdpZHRoOiBhdXRvO1xuICAgIH1cbn1cblxuLyogZmx1aWQgb24gc21hbGwgc2NyZWVuczogdGhlIG9wdGlvbnMgc3RhY2sgdmVydGljYWxseSwgb25seSB0aGUgb3V0ZXIgY29ybmVycyBhcmUgcm91bmRlZCwgbmVpZ2hib3VycyBzaGFyZSBvbmUgYm9yZGVyICovXG5AbWVkaWEgKG1heC13aWR0aDogNjQwcHgpIHtcbiAgICAucC1mbHVpZCAucC1zZWxlY3RvbmVidXR0b24sXG4gICAgLnAtZmx1aWQgLnAtc2VsZWN0bWFueWJ1dHRvbiB7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cbiAgICAgICAgPiAucC1idXR0b24ge1xuICAgICAgICAgICAgZmxleDogMCAwIGF1dG87XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICAgICAgICBib3JkZXItaW5saW5lLXN0YXJ0LXdpZHRoOiAxcHg7XG4gICAgICAgICAgICBib3JkZXItYmxvY2stc3RhcnQtd2lkdGg6IDA7XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIGJvcmRlci1ibG9jay1zdGFydC13aWR0aDogMXB4O1xuICAgICAgICAgICAgICAgIGJvcmRlci1zdGFydC1zdGFydC1yYWRpdXM6IHZhcigtLXAtc2VsZWN0YnV0dG9uLWJvcmRlci1yYWRpdXMpO1xuICAgICAgICAgICAgICAgIGJvcmRlci1zdGFydC1lbmQtcmFkaXVzOiB2YXIoLS1wLXNlbGVjdGJ1dHRvbi1ib3JkZXItcmFkaXVzKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBib3JkZXItZW5kLXN0YXJ0LXJhZGl1czogdmFyKC0tcC1zZWxlY3RidXR0b24tYm9yZGVyLXJhZGl1cyk7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWVuZC1lbmQtcmFkaXVzOiB2YXIoLS1wLXNlbGVjdGJ1dHRvbi1ib3JkZXItcmFkaXVzKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cbiIsICIvKlxuICogU2VsZWN0T25lTGlzdGJveCAvIFNlbGVjdE1hbnlNZW51OiBwOnNlbGVjdE9uZUxpc3Rib3gsIHA6c2VsZWN0TWFueU1lbnUgKFByaW1lVUlYOiBsaXN0Ym94KVxuICpcbiAqIFRoZSBjb250YWluZXIgaXMgYWxzbyBhIC5wLWlucHV0ZmllbGQsIHNvIGl0IG92ZXJyaWRlcyB0aGUgZmllbGQgbG9vayBvZiBmb3Jtcy9pbnB1dGZpZWxkLmNzcy5cbiAqIFN1cHBvcnRlZCBjbGFzc2VzOiBwLXN0YXRlLWVycm9yLCBwLXN0YXRlLWRpc2FibGVkLCBwLWlucHV0LWZpbGxlZCAob24gYSBwYXJlbnQpLCAucC1mbHVpZCAob24gYSBwYXJlbnQpLFxuICogICAgICAgICAgICAgICAgICAgIHAtbGlzdGJveC1jaGVja21hcmsgKHN0eWxlQ2xhc3MpXG4gKiBJdGVtczogcC1zdGF0ZS1ob3ZlciwgcC1zdGF0ZS1oaWdobGlnaHQgKHNlbGVjdGVkKSwgcC1saXN0Ym94LW91dGxpbmUgKGtleWJvYXJkIGZvY3VzKVxuICogVmFyaWFudHM6IGZpbHRlciwgc2hvd0NoZWNrYm94LCBzaG93VG9nZ2xlQWxsLCBzaG93U2VsZWN0aW9uQ291bnQgKHA6c2VsZWN0TWFueU1lbnUpLCBjdXN0b20gY29udGVudCAodGFibGUgd2l0aCBwOmNvbHVtbiBjaGlsZHJlbilcbiAqIFJvd3MgKHN0eWxlQ2xhc3MsIGJhc2Uvcm93cy5jc3MpOiBwLXJvd3Mtc3RyaXBlZDsgdGFibGUgbW9kZSAocDpjb2x1bW4gY2hpbGRyZW4pOiBwLXJvd3MtZ3JpZGxpbmVzLCBwLXJvd3Mtc20sXG4gKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwLXJvd3MtbGdcbiAqL1xuLnAtc2VsZWN0b25lbGlzdGJveCxcbi5wLXNlbGVjdG1hbnltZW51IHtcbiAgICBwYWRkaW5nOiAwO1xuICAgIHdpZHRoOiBhdXRvO1xuICAgIC8qIGxheW91dCB2YWx1ZSwgbm8gdG9rZW46IGEgbWluaW11bSB3aWR0aCBmb3IgZW1wdHkgbGlzdHMgKi9cbiAgICBtaW4td2lkdGg6IDEycmVtO1xuICAgIGJhY2tncm91bmQ6IHZhcigtLXAtbGlzdGJveC1iYWNrZ3JvdW5kKTtcbiAgICBjb2xvcjogdmFyKC0tcC1saXN0Ym94LWNvbG9yKTtcbiAgICAvKiBhIC5wLWlucHV0ZmllbGQ6IGl0cyBob3ZlciAvIGZvY3VzIHN0YXRlcyBzZXQgLS1fYm9yZGVyLWNvbG9yIChmb3Jtcy9pbnB1dGZpZWxkLmNzcykgKi9cbiAgICAtLV9ib3JkZXItY29sb3I6IHZhcigtLXAtbGlzdGJveC1ib3JkZXItY29sb3IpO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLV9ib3JkZXItY29sb3IpO1xuICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXAtbGlzdGJveC1ib3JkZXItcmFkaXVzKTtcbiAgICBib3gtc2hhZG93OiB2YXIoLS1wLWxpc3Rib3gtc2hhZG93KTtcbiAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIHZhcigtLXAtbGlzdGJveC10cmFuc2l0aW9uLWR1cmF0aW9uKSwgY29sb3IgdmFyKC0tcC1saXN0Ym94LXRyYW5zaXRpb24tZHVyYXRpb24pLFxuICAgICAgICBib3JkZXItY29sb3IgdmFyKC0tcC1saXN0Ym94LXRyYW5zaXRpb24tZHVyYXRpb24pLCBib3gtc2hhZG93IHZhcigtLXAtbGlzdGJveC10cmFuc2l0aW9uLWR1cmF0aW9uKSxcbiAgICAgICAgb3V0bGluZS1jb2xvciB2YXIoLS1wLWxpc3Rib3gtdHJhbnNpdGlvbi1kdXJhdGlvbik7XG5cbiAgICAvKiBpbnZhbGlkOiBhbHNvIHdpbnMgb3ZlciB0aGUgaG92ZXIgLyBmb2N1cyBib3JkZXIgb2YgZm9ybXMvaW5wdXRmaWVsZC5jc3MgKHNhbWUgc3BlY2lmaWNpdHksIGxhdGVyKSAqL1xuICAgICYucC1zdGF0ZS1lcnJvcixcbiAgICAmLnAtc3RhdGUtZXJyb3I6aXMoOmhvdmVyLCA6Zm9jdXMsIC5wLXN0YXRlLWhvdmVyLCAucC1zdGF0ZS1mb2N1cykge1xuICAgICAgICAtLV9ib3JkZXItY29sb3I6IHZhcigtLXAtbGlzdGJveC1pbnZhbGlkLWJvcmRlci1jb2xvcik7XG4gICAgfVxuXG4gICAgJi5wLXN0YXRlLWRpc2FibGVkIHtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tcC1saXN0Ym94LWRpc2FibGVkLWJhY2tncm91bmQpO1xuICAgICAgICBjb2xvcjogdmFyKC0tcC1saXN0Ym94LWRpc2FibGVkLWNvbG9yKTtcblxuICAgICAgICAucC1zZWxlY3RsaXN0Ym94LWxpc3Rjb250YWluZXIge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgfVxuXG4gICAgICAgIC5wLXNlbGVjdGxpc3Rib3gtaXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG4gICAgICAgICAgICBjb2xvcjogdmFyKC0tcC1saXN0Ym94LWRpc2FibGVkLWNvbG9yKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qIGZpbHRlciBoZWFkZXIgKi9cbiAgICAucC1zZWxlY3RsaXN0Ym94LWZpbHRlci1jb250YWluZXIge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBwYWRkaW5nOiB2YXIoLS1wLWxpc3Rib3gtbGlzdC1oZWFkZXItcGFkZGluZyk7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMCBub25lO1xuICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICAgICAgY29sb3I6IHZhcigtLXAtbGlzdGJveC1jb2xvcik7XG4gICAgICAgIGJvcmRlci1zdGFydC1zdGFydC1yYWRpdXM6IHZhcigtLXAtbGlzdGJveC1ib3JkZXItcmFkaXVzKTtcbiAgICAgICAgYm9yZGVyLXN0YXJ0LWVuZC1yYWRpdXM6IHZhcigtLXAtbGlzdGJveC1ib3JkZXItcmFkaXVzKTtcblxuICAgICAgICAucC1zZWxlY3RsaXN0Ym94LWZpbHRlci5wLWlucHV0ZmllbGQge1xuICAgICAgICAgICAgcGFkZGluZy1ibG9jazogdmFyKC0tcC1mb3JtLWZpZWxkLXBhZGRpbmcteSk7XG4gICAgICAgICAgICBwYWRkaW5nLWlubGluZTogdmFyKC0tcC1mb3JtLWZpZWxkLXBhZGRpbmcteCk7XG4gICAgICAgICAgICBwYWRkaW5nLWlubGluZS1zdGFydDogY2FsYygyICogdmFyKC0tcC1mb3JtLWZpZWxkLXBhZGRpbmcteCkgKyB2YXIoLS1wLWljb24tc2l6ZSkpO1xuICAgICAgICB9XG5cbiAgICAgICAgLypcbiAgICAgICAgICogTm8gaW5zZXRzOiB0aGUgYWJzb2x1dGUgaWNvbiBzdGF5cyBhdCBpdHMgc3RhdGljIHBvc2l0aW9uLCBpLmUuIGF0IHRoZSBzdGFydCBvZiB0aGUgY29udGFpbmVyJ3MgY29udGVudCBib3hcbiAgICAgICAgICogYW5kIHZlcnRpY2FsbHkgY2VudGVyZWQgYnkgdGhlIGZsZXggY29udGFpbmVyLCBzbyB0aGUgaGVhZGVyIHBhZGRpbmcgZG9lcyBub3QgbmVlZCB0byBiZSBrbm93bi5cbiAgICAgICAgICovXG4gICAgICAgIC5wLXNlbGVjdGxpc3Rib3gtZmlsdGVyLWljb24ge1xuICAgICAgICAgICAgLS1faWNvbjogdmFyKC0tcC1saXN0Ym94LWZpbHRlci1pY29uKTtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgIG1hcmdpbi1pbmxpbmUtc3RhcnQ6IHZhcigtLXAtZm9ybS1maWVsZC1wYWRkaW5nLXgpO1xuICAgICAgICAgICAgY29sb3I6IHZhcigtLXAtZm9ybS1maWVsZC1pY29uLWNvbG9yKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qIHNob3dUb2dnbGVBbGw6IHRoZSBjaGVja2JveCBuZXh0IHRvIHRoZSBmaWx0ZXI7IG5vIGxpc3Rib3ggdG9rZW4gZm9yIHRoZSBnYXAsIHRoZSBtdWx0aXNlbGVjdCBvcHRpb24gZ2FwIGlzIHVzZWQgKi9cbiAgICAucC1zZWxlY3RtYW55bWVudS1oZWFkZXIge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBnYXA6IHZhcigtLXAtbXVsdGlzZWxlY3Qtb3B0aW9uLWdhcCk7XG4gICAgICAgIHBhZGRpbmc6IHZhcigtLXAtbGlzdGJveC1saXN0LWhlYWRlci1wYWRkaW5nKTtcblxuICAgICAgICAucC1zZWxlY3RsaXN0Ym94LWZpbHRlci1jb250YWluZXIge1xuICAgICAgICAgICAgZmxleDogMSAxIDA7XG4gICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyogc2hvd1NlbGVjdGlvbkNvdW50ICovXG4gICAgLnAtc2VsZWN0bWFueW1lbnUtZm9vdGVyIHtcbiAgICAgICAgcGFkZGluZzogdmFyKC0tcC1saXN0Ym94LWxpc3QtaGVhZGVyLXBhZGRpbmcpO1xuICAgIH1cblxuICAgIC8qIGxpc3QgKi9cbiAgICAucC1zZWxlY3RsaXN0Ym94LWxpc3Rjb250YWluZXIge1xuICAgICAgICBvdmVyZmxvdzogYXV0bztcbiAgICAgICAgcGFkZGluZzogdmFyKC0tcC1saXN0Ym94LWxpc3QtcGFkZGluZyk7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiB2YXIoLS1wLXR5cG9ncmFwaHktbGluZS1oZWlnaHQpO1xuICAgICAgICBib3JkZXI6IDAgbm9uZTtcblxuICAgICAgICB1bC5wLXNlbGVjdGxpc3Rib3gtbGlzdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgIGdhcDogdmFyKC0tcC1saXN0Ym94LWxpc3QtZ2FwKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5wLXNlbGVjdGxpc3Rib3gtbGlzdCB7XG4gICAgICAgIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgIH1cblxuICAgIC8qIHRhYmxlIChwOmNvbHVtbiBjaGlsZHJlbik6IHRoZSBwLXJvd3MtKiB2YXJpYW50cyBvZiBiYXNlL3Jvd3MuY3NzIHNldCAtLV90YWJsZS1ncmlkbGluZXMgYW5kXG4gICAgICAgLS1fdGFibGUtY2VsbC1wYWRkaW5nLCB0aGUgc2l6ZXMgYXJlIHRoZSBEYXRhVGFibGUgb25lcyAqL1xuICAgIHRhYmxlLnAtc2VsZWN0bGlzdGJveC1saXN0IHtcbiAgICAgICAgLS1fdGFibGUtY2VsbC1zbS1wYWRkaW5nOiB2YXIoLS1wLWRhdGF0YWJsZS1ib2R5LWNlbGwtc20tcGFkZGluZyk7XG4gICAgICAgIC0tX3RhYmxlLWNlbGwtbGctcGFkZGluZzogdmFyKC0tcC1kYXRhdGFibGUtYm9keS1jZWxsLWxnLXBhZGRpbmcpO1xuICAgICAgICBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICB9XG5cbiAgICAucC1zZWxlY3RsaXN0Ym94LWl0ZW0ge1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgfVxuXG4gICAgLnAtc2VsZWN0bGlzdGJveC1saXN0Y29udGFpbmVyIC5wLXNlbGVjdGxpc3Rib3gtbGlzdCAucC1zZWxlY3RsaXN0Ym94LWl0ZW0ge1xuICAgICAgICBib3JkZXI6IDAgbm9uZTtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBwYWRkaW5nOiB2YXIoLS1wLWxpc3Rib3gtb3B0aW9uLXBhZGRpbmcpO1xuICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICAgICAgY29sb3I6IHZhcigtLXAtbGlzdGJveC1vcHRpb24tY29sb3IpO1xuICAgICAgICBmb250LXNpemU6IHZhcigtLXAtbGlzdGJveC1vcHRpb24tZm9udC1zaXplKTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IHZhcigtLXAtbGlzdGJveC1vcHRpb24tZm9udC13ZWlnaHQpO1xuICAgICAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1wLWxpc3Rib3gtb3B0aW9uLWJvcmRlci1yYWRpdXMpO1xuICAgICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIHZhcigtLXAtbGlzdC1vcHRpb24tdHJhbnNpdGlvbi1kdXJhdGlvbiksIGNvbG9yIHZhcigtLXAtbGlzdC1vcHRpb24tdHJhbnNpdGlvbi1kdXJhdGlvbiksXG4gICAgICAgICAgICBib3JkZXItY29sb3IgdmFyKC0tcC1saXN0LW9wdGlvbi10cmFuc2l0aW9uLWR1cmF0aW9uKSwgYm94LXNoYWRvdyB2YXIoLS1wLWxpc3Qtb3B0aW9uLXRyYW5zaXRpb24tZHVyYXRpb24pLFxuICAgICAgICAgICAgb3V0bGluZS1jb2xvciB2YXIoLS1wLWxpc3Qtb3B0aW9uLXRyYW5zaXRpb24tZHVyYXRpb24pO1xuXG4gICAgICAgICYucC1zdGF0ZS1ob3ZlciB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1wLWxpc3Rib3gtb3B0aW9uLWZvY3VzLWJhY2tncm91bmQpO1xuICAgICAgICAgICAgY29sb3I6IHZhcigtLXAtbGlzdGJveC1vcHRpb24tZm9jdXMtY29sb3IpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi5wLXN0YXRlLWhpZ2hsaWdodCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1wLWxpc3Rib3gtb3B0aW9uLXNlbGVjdGVkLWJhY2tncm91bmQpO1xuICAgICAgICAgICAgY29sb3I6IHZhcigtLXAtbGlzdGJveC1vcHRpb24tc2VsZWN0ZWQtY29sb3IpO1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IHZhcigtLXAtbGlzdGJveC1vcHRpb24tc2VsZWN0ZWQtZm9udC13ZWlnaHQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi5wLXN0YXRlLWhpZ2hsaWdodC5wLXN0YXRlLWhvdmVyIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHZhcigtLXAtbGlzdGJveC1vcHRpb24tc2VsZWN0ZWQtZm9jdXMtYmFja2dyb3VuZCk7XG4gICAgICAgICAgICBjb2xvcjogdmFyKC0tcC1saXN0Ym94LW9wdGlvbi1zZWxlY3RlZC1mb2N1cy1jb2xvcik7XG4gICAgICAgIH1cblxuICAgICAgICAvKiBubyBsaXN0Ym94IHRva2VuIGZvciB0aGUgY2hlY2tib3ggZ2FwLCB0aGUgbXVsdGlzZWxlY3Qgb3B0aW9uIGdhcCBpcyB1c2VkICovXG4gICAgICAgIC5wLWNoa2JveCB7XG4gICAgICAgICAgICBtYXJnaW4taW5saW5lLWVuZDogdmFyKC0tcC1tdWx0aXNlbGVjdC1vcHRpb24tZ2FwKTtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIH1cblxuICAgICAgICA+IHRkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IHZhcigtLV90YWJsZS1jZWxsLXBhZGRpbmcsIHZhcigtLXAtZGF0YXRhYmxlLWJvZHktY2VsbC1wYWRkaW5nKSk7XG4gICAgICAgICAgICBib3JkZXI6IHZhcigtLV90YWJsZS1ncmlkbGluZXMsIDApIHNvbGlkIHZhcigtLXAtZGF0YXRhYmxlLWJvZHktY2VsbC1ib3JkZXItY29sb3IpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLypcbiAgICAgKiBjaGVja21hcmsgKHN0eWxlQ2xhc3M9XCJwLWxpc3Rib3gtY2hlY2ttYXJrXCIpOiBhIGNoZWNrIGluIGZyb250IG9mIHRoZSBzZWxlY3RlZCBvcHRpb24ocyksIHRoZSBvdGhlcnMga2VlcCB0aGVcbiAgICAgKiBzcGFjZSBvZiB0aGUgaWNvbiAoUHJpbWVVSVggYmxhbmsgaWNvbik7IHRoZSBzZWxlY3RlZCBiYWNrZ3JvdW5kIHN0YXlzLiBMaXN0IGl0ZW1zIG9ubHksIG5vdCB0aGUgdGFibGUgb2ZcbiAgICAgKiBwOmNvbHVtbiBjaGlsZHJlbi5cbiAgICAgKi9cbiAgICAmLnAtbGlzdGJveC1jaGVja21hcmsgLnAtc2VsZWN0bGlzdGJveC1saXN0Y29udGFpbmVyIC5wLXNlbGVjdGxpc3Rib3gtbGlzdCBsaS5wLXNlbGVjdGxpc3Rib3gtaXRlbSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cbiAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgIGNvbnRlbnQ6IFwiXFwyMDAzXCI7XG4gICAgICAgICAgICBmbGV4LXNocmluazogMDtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogdmFyKC0tcC1pY29uLXNpemUpO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgICAgICAgICBtYXJnaW4taW5saW5lLXN0YXJ0OiB2YXIoLS1wLWxpc3Rib3gtY2hlY2ttYXJrLWd1dHRlci1zdGFydCk7XG4gICAgICAgICAgICBtYXJnaW4taW5saW5lLWVuZDogdmFyKC0tcC1saXN0Ym94LWNoZWNrbWFyay1ndXR0ZXItZW5kKTtcbiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1wLWxpc3Rib3gtY2hlY2ttYXJrLWNvbG9yKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgZm9yY2VkLWNvbG9yLWFkanVzdDogbm9uZTtcbiAgICAgICAgICAgIG1hc2s6IHZhcigtLXAtbGlzdGJveC1jaGVja21hcmstaWNvbikgY2VudGVyIC8gY29udGFpbiBuby1yZXBlYXQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLnAtc3RhdGUtaGlnaGxpZ2h0OjpiZWZvcmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZDogY3VycmVudENvbG9yO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoga2V5Ym9hcmQgZm9jdXMgKi9cbiAgICAucC1zZWxlY3RsaXN0Ym94LWxpc3Rjb250YWluZXIgLnAtc2VsZWN0bGlzdGJveC1saXN0IC5wLWxpc3Rib3gtb3V0bGluZSB7XG4gICAgICAgIG91dGxpbmU6IDAgbm9uZTtcbiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tcC1saXN0Ym94LW9wdGlvbi1mb2N1cy1iYWNrZ3JvdW5kKTtcbiAgICAgICAgY29sb3I6IHZhcigtLXAtbGlzdGJveC1vcHRpb24tZm9jdXMtY29sb3IpO1xuXG4gICAgICAgICYucC1zdGF0ZS1oaWdobGlnaHQge1xuICAgICAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tcC1saXN0Ym94LW9wdGlvbi1zZWxlY3RlZC1mb2N1cy1iYWNrZ3JvdW5kKTtcbiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1wLWxpc3Rib3gtb3B0aW9uLXNlbGVjdGVkLWZvY3VzLWNvbG9yKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qIGFuIG9wdGlvbiByZWFjaGVkIHdpdGggdGFiICh0YWJpbmRleCBvbiB0aGUgaXRlbSkgKi9cbiAgICAucC1zZWxlY3RsaXN0Ym94LWxpc3Rjb250YWluZXIgLnAtc2VsZWN0bGlzdGJveC1saXN0IC5wLXNlbGVjdGxpc3Rib3gtaXRlbTpmb2N1cy12aXNpYmxlIHtcbiAgICAgICAgb3V0bGluZTogMCBub25lO1xuICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1wLWxpc3Rib3gtb3B0aW9uLWZvY3VzLWJhY2tncm91bmQpO1xuICAgICAgICBjb2xvcjogdmFyKC0tcC1saXN0Ym94LW9wdGlvbi1mb2N1cy1jb2xvcik7XG5cbiAgICAgICAgJi5wLXN0YXRlLWhpZ2hsaWdodCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1wLWxpc3Rib3gtb3B0aW9uLXNlbGVjdGVkLWZvY3VzLWJhY2tncm91bmQpO1xuICAgICAgICAgICAgY29sb3I6IHZhcigtLXAtbGlzdGJveC1vcHRpb24tc2VsZWN0ZWQtZm9jdXMtY29sb3IpO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4ucC1zZWxlY3RtYW55bWVudSAucC1zZWxlY3RsaXN0Ym94LWNoa2JveCB7XG4gICAgd2lkdGg6IHZhcigtLXAtY2hlY2tib3gtd2lkdGgpO1xufVxuXG4ucC1zZWxlY3RsaXN0Ym94LWZpbHRlci5wLWlucHV0ZmllbGQge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGJveC1zaGFkb3c6IG5vbmU7XG59XG5cbi5wLXNlbGVjdGxpc3Rib3gtZmlsdGVyLWNvbnRhaW5lciB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgLnAtc2VsZWN0bGlzdGJveC1maWx0ZXItaWNvbiB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB9XG59XG5cbi5wLWxpc3Rib3gtb3V0bGluZSB7XG4gICAgb3V0bGluZTogMCBub25lO1xuICAgIHotaW5kZXg6IDE7XG59XG5cbi8qIGZpbGxlZCB2YXJpYW50OiBhIGxpc3Rib3gga2VlcHMgaXRzIG93biBiYWNrZ3JvdW5kLCBmcmFtZSBhbmQgZm9jdXMgcmluZyAobm90IHRoZSBmaWxsZWQgZmllbGQgb2YgZm9ybXMvaW5wdXRmaWVsZC5jc3MpICovXG4ucC1pbnB1dC1maWxsZWQgLnAtc2VsZWN0b25lbGlzdGJveC5wLWlucHV0ZmllbGQsXG4ucC1pbnB1dC1maWxsZWQgLnAtc2VsZWN0bWFueW1lbnUucC1pbnB1dGZpZWxkLFxuLnAtaW5wdXQtZmlsbGVkIC5wLXNlbGVjdG9uZWxpc3Rib3gucC1pbnB1dGZpZWxkOmhvdmVyLFxuLnAtaW5wdXQtZmlsbGVkIC5wLXNlbGVjdG1hbnltZW51LnAtaW5wdXRmaWVsZDpob3ZlciB7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tcC1saXN0Ym94LWJhY2tncm91bmQpO1xuICAgIGJvcmRlci1jb2xvcjogdmFyKC0tX2JvcmRlci1jb2xvcik7XG4gICAgYm9yZGVyLXJhZGl1czogdmFyKC0tcC1saXN0Ym94LWJvcmRlci1yYWRpdXMpO1xufVxuXG4ucC1pbnB1dC1maWxsZWQgLnAtc2VsZWN0b25lbGlzdGJveC5wLWlucHV0ZmllbGQ6aXMoOmZvY3VzLCAucC1zdGF0ZS1mb2N1cyksXG4ucC1pbnB1dC1maWxsZWQgLnAtc2VsZWN0bWFueW1lbnUucC1pbnB1dGZpZWxkOmlzKDpmb2N1cywgLnAtc3RhdGUtZm9jdXMpIHtcbiAgICBvdXRsaW5lLWNvbG9yOiB2YXIoLS1wLWlucHV0dGV4dC1mb2N1cy1yaW5nLWNvbG9yKTtcbn1cblxuLnAtZmx1aWQgLnAtc2VsZWN0b25lbGlzdGJveCxcbi5wLWZsdWlkIC5wLXNlbGVjdG1hbnltZW51IHtcbiAgICB3aWR0aDogMTAwJTtcbn1cbiIsICIvKlxuICogU2VsZWN0T25lTWVudTogcDpzZWxlY3RPbmVNZW51IChQcmltZVVJWDogc2VsZWN0KVxuICpcbiAqIFN1cHBvcnRlZCBjbGFzc2VzOiBwLXN0YXRlLWhvdmVyLCBwLXN0YXRlLWZvY3VzLCBwLXN0YXRlLWVycm9yLCBwLXN0YXRlLWRpc2FibGVkLCBwLXN0YXRlLWxvYWRpbmcsXG4gKiAgICAgICAgICAgICAgICAgICAgcC1zZWxlY3RvbmVtZW51LXJ0bCwgcC1pbnB1dC1maWxsZWQgKG9uIGEgcGFyZW50KSwgLnAtZmx1aWQgKG9uIGEgcGFyZW50KSxcbiAqICAgICAgICAgICAgICAgICAgICBwLXNlbGVjdG9uZW1lbnUtc20sIHAtc2VsZWN0b25lbWVudS1sZyAoc3R5bGVDbGFzcylcbiAqIFBhbmVsOiBwLXNlbGVjdC1jaGVja21hcmsgKHBhbmVsU3R5bGVDbGFzcywgYSBjaGVjayBpbiBmcm9udCBvZiB0aGUgc2VsZWN0ZWQgaXRlbSlcbiAqIFBhbmVsIGl0ZW1zOiBwLXN0YXRlLWhvdmVyIChtb3VzZSBhbmQga2V5Ym9hcmQpLCBwLXN0YXRlLWZvY3VzIChrZXlib2FyZCB3aXRoIHNlbGVjdE9uRm9jdXM9XCJmYWxzZVwiKSxcbiAqICAgICAgICAgICAgICBwLXN0YXRlLWhpZ2hsaWdodCAoc2VsZWN0ZWQpXG4gKiBWYXJpYW50czogZWRpdGFibGUgKGlucHV0IGxhYmVsKSwgZmlsdGVyLCBncm91cHMsIGN1c3RvbSBjb250ZW50ICh0YWJsZSB3aXRoIGNvbHVtbnMpLCBmb290ZXIgZmFjZXRcbiAqIFJvd3MgKHBhbmVsU3R5bGVDbGFzcywgYmFzZS9yb3dzLmNzcyk6IHAtcm93cy1zdHJpcGVkOyB0YWJsZSBtb2RlIChwOmNvbHVtbiBjaGlsZHJlbik6IHAtcm93cy1zbSwgcC1yb3dzLWxnXG4gKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHRoZSBjZWxscyBhbHdheXMgaGF2ZSBncmlkbGluZXMsIHAtcm93cy1ncmlkbGluZXMgaGFzIG5vIGVmZmVjdClcbiAqL1xuLnAtc2VsZWN0b25lbWVudSB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHdpZHRoOiBhdXRvO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgIC8qIHRoZSBzdGF0ZXMgc2V0IC0tX2JvcmRlci1jb2xvciwgdGhlIGZpbGxlZCB2YXJpYW50IGRyYXdzIGl0cyBsaW5lIHdpdGggaXQgKi9cbiAgICAtLV9ib3JkZXItY29sb3I6IHZhcigtLXAtc2VsZWN0LWJvcmRlci1jb2xvcik7XG4gICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tX2JvcmRlci1jb2xvcik7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tcC1zZWxlY3QtYmFja2dyb3VuZCk7XG4gICAgYm9yZGVyLXJhZGl1czogdmFyKC0tcC1zZWxlY3QtYm9yZGVyLXJhZGl1cyk7XG4gICAgYm94LXNoYWRvdzogdmFyKC0tcC1zZWxlY3Qtc2hhZG93KTtcbiAgICBvdXRsaW5lLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIHZhcigtLXAtc2VsZWN0LXRyYW5zaXRpb24tZHVyYXRpb24pLCBjb2xvciB2YXIoLS1wLXNlbGVjdC10cmFuc2l0aW9uLWR1cmF0aW9uKSxcbiAgICAgICAgYm9yZGVyLWNvbG9yIHZhcigtLXAtc2VsZWN0LXRyYW5zaXRpb24tZHVyYXRpb24pLCBvdXRsaW5lLWNvbG9yIHZhcigtLXAtc2VsZWN0LXRyYW5zaXRpb24tZHVyYXRpb24pLFxuICAgICAgICBib3gtc2hhZG93IHZhcigtLXAtc2VsZWN0LXRyYW5zaXRpb24tZHVyYXRpb24pO1xuXG4gICAgLnAtc2VsZWN0b25lbWVudS1sYWJlbCB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIHRleHQtYWxpZ246IHN0YXJ0O1xuICAgIH1cblxuICAgIC8qIHRoZSBsYWJlbCBpcyBhbHNvIGEgLnAtaW5wdXRmaWVsZDogZHJvcCB0aGUgZmllbGQgY2hyb21lIG9mIGZvcm1zL2lucHV0ZmllbGQuY3NzLCB0aGUgY29udGFpbmVyIGNhcnJpZXMgaXQgKi9cbiAgICAucC1zZWxlY3RvbmVtZW51LWxhYmVsLnAtaW5wdXRmaWVsZCB7XG4gICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgICAgICBib3JkZXI6IDAgbm9uZTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICAgICAgb3V0bGluZTogMCBub25lO1xuICAgICAgICBjb2xvcjogdmFyKC0tcC1zZWxlY3QtY29sb3IpO1xuICAgICAgICBmb250LXNpemU6IHZhcigtLXAtc2VsZWN0LWZvbnQtc2l6ZSk7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1wLXNlbGVjdC1mb250LXdlaWdodCk7XG4gICAgICAgIHBhZGRpbmctYmxvY2s6IHZhcigtLXAtc2VsZWN0LXBhZGRpbmcteSk7XG4gICAgICAgIHBhZGRpbmctaW5saW5lOiB2YXIoLS1wLXNlbGVjdC1wYWRkaW5nLXgpO1xuICAgICAgICBwYWRkaW5nLWlubGluZS1lbmQ6IHZhcigtLXAtc2VsZWN0LWRyb3Bkb3duLXdpZHRoKTtcbiAgICB9XG5cbiAgICAucC1zZWxlY3RvbmVtZW51LWxhYmVsLnAtc2VsZWN0b25lbWVudS1sYWJlbC1wbGFjZWhvbGRlciB7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1wLXNlbGVjdC1wbGFjZWhvbGRlci1jb2xvcik7XG4gICAgfVxuXG4gICAgJi5wLXN0YXRlLWVycm9yIC5wLXNlbGVjdG9uZW1lbnUtbGFiZWwucC1zZWxlY3RvbmVtZW51LWxhYmVsLXBsYWNlaG9sZGVyIHtcbiAgICAgICAgY29sb3I6IHZhcigtLXAtc2VsZWN0LWludmFsaWQtcGxhY2Vob2xkZXItY29sb3IpO1xuICAgIH1cblxuICAgICYucC1zdGF0ZS1kaXNhYmxlZCAucC1zZWxlY3RvbmVtZW51LXRyaWdnZXIsXG4gICAgJi5wLXN0YXRlLWRpc2FibGVkIC5wLXNlbGVjdG9uZW1lbnUtbGFiZWwge1xuICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG4gICAgfVxuXG4gICAgbGFiZWwucC1zZWxlY3RvbmVtZW51LWxhYmVsIHtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIH1cblxuICAgIGlucHV0LnAtc2VsZWN0b25lbWVudS1sYWJlbCB7XG4gICAgICAgIGN1cnNvcjogdGV4dDtcbiAgICB9XG5cbiAgICAucC1zZWxlY3RvbmVtZW51LXRyaWdnZXIge1xuICAgICAgICBib3JkZXI6IDAgbm9uZTtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBpbnNldC1pbmxpbmUtZW5kOiAwO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgd2lkdGg6IHZhcigtLXAtc2VsZWN0LWRyb3Bkb3duLXdpZHRoKTtcbiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1wLXNlbGVjdC1kcm9wZG93bi1jb2xvcik7XG4gICAgICAgIGJvcmRlci1zdGFydC1lbmQtcmFkaXVzOiB2YXIoLS1wLXNlbGVjdC1ib3JkZXItcmFkaXVzKTtcbiAgICAgICAgYm9yZGVyLWVuZC1lbmQtcmFkaXVzOiB2YXIoLS1wLXNlbGVjdC1ib3JkZXItcmFkaXVzKTtcblxuICAgICAgICAucC1zZWxlY3RvbmVtZW51LWRyb3Bkb3duLWljb24ge1xuICAgICAgICAgICAgLS1faWNvbjogdmFyKC0tcC1zZWxlY3QtZHJvcGRvd24taWNvbik7XG4gICAgICAgICAgICBjb2xvcjogdmFyKC0tcC1zZWxlY3QtZHJvcGRvd24tY29sb3IpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyogbG9hZGluZyAoZHluYW1pYyk6IHRoZSBzcGlubmVyIGlzIHByZXBlbmRlZCB0byB0aGUgdHJpZ2dlciBhbmQgc2hvd24gaW4gZnJvbnQgb2YgaXQgKi9cbiAgICAucC1pY29uLWxvYWRpbmcge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogNTAlO1xuICAgICAgICBpbnNldC1pbmxpbmUtZW5kOiAxMDAlO1xuICAgICAgICBtYXJnaW4tdG9wOiBjYWxjKC0xICogdmFyKC0tcC1pY29uLXNpemUpIC8gMik7XG4gICAgICAgIG1hcmdpbi1pbmxpbmU6IDA7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1wLXNlbGVjdC1kcm9wZG93bi1jb2xvcik7XG4gICAgfVxuXG4gICAgJi5wLXN0YXRlLWhvdmVyLFxuICAgICY6bm90KC5wLXN0YXRlLWRpc2FibGVkKTpob3ZlciB7XG4gICAgICAgIC0tX2JvcmRlci1jb2xvcjogdmFyKC0tcC1zZWxlY3QtaG92ZXItYm9yZGVyLWNvbG9yKTtcbiAgICB9XG5cbiAgICAvKiB0aGUgY29tcG9uZW50IHNldHMgcC1zdGF0ZS1mb2N1czsgYW4gZWRpdGFibGUgbGFiZWwgZm9jdXNlZCB3aXRoIHRhYiBkb2VzIG5vdCBnZXQgaXQgKi9cbiAgICAmLnAtc3RhdGUtZm9jdXMsXG4gICAgJjpoYXMoPiAucC1zZWxlY3RvbmVtZW51LWxhYmVsOmZvY3VzLXZpc2libGUpIHtcbiAgICAgICAgLS1fYm9yZGVyLWNvbG9yOiB2YXIoLS1wLXNlbGVjdC1mb2N1cy1ib3JkZXItY29sb3IpO1xuICAgICAgICBvdXRsaW5lOiB2YXIoLS1wLXNlbGVjdC1mb2N1cy1yaW5nLXdpZHRoKSB2YXIoLS1wLXNlbGVjdC1mb2N1cy1yaW5nLXN0eWxlKSB2YXIoLS1wLXNlbGVjdC1mb2N1cy1yaW5nLWNvbG9yKTtcbiAgICAgICAgb3V0bGluZS1vZmZzZXQ6IHZhcigtLXAtc2VsZWN0LWZvY3VzLXJpbmctb2Zmc2V0KTtcbiAgICAgICAgYm94LXNoYWRvdzogdmFyKC0tcC1zZWxlY3QtZm9jdXMtcmluZy1zaGFkb3cpO1xuICAgIH1cblxuICAgIC8qIGludmFsaWQ6IHRoZSBib3JkZXIgYWxzbyB3aW5zIG92ZXIgaG92ZXIgYW5kIGZvY3VzIChzYW1lIHNwZWNpZmljaXR5LCBsYXRlciksIHRoZSBmb2N1cyByaW5nIHN0YXlzICovXG4gICAgJi5wLXN0YXRlLWVycm9yLFxuICAgICYucC1zdGF0ZS1lcnJvcjppcyg6aG92ZXIsIC5wLXN0YXRlLWZvY3VzLCA6Zm9jdXMtd2l0aGluKSB7XG4gICAgICAgIC0tX2JvcmRlci1jb2xvcjogdmFyKC0tcC1zZWxlY3QtaW52YWxpZC1ib3JkZXItY29sb3IpO1xuICAgIH1cblxuICAgICYucC1zdGF0ZS1kaXNhYmxlZCB7XG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgIGJhY2tncm91bmQ6IHZhcigtLXAtc2VsZWN0LWRpc2FibGVkLWJhY2tncm91bmQpO1xuXG4gICAgICAgIC5wLXNlbGVjdG9uZW1lbnUtbGFiZWwucC1pbnB1dGZpZWxkIHtcbiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1wLXNlbGVjdC1kaXNhYmxlZC1jb2xvcik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiBzaXplcyAoc3R5bGVDbGFzcyk6IHRoZSBzaXplIHRva2VucyByZXBsYWNlIHRoZSBiYXNlIG9uZXMgKGxhYmVsLCBmbHVpZCBhbmQgZWRpdGFibGUgZm9sbG93KSwgdGhlIGljb24gZm9sbG93cyAqL1xuICAgICYucC1zZWxlY3RvbmVtZW51LXNtIHtcbiAgICAgICAgLS1wLXNlbGVjdC1mb250LXNpemU6IHZhcigtLXAtc2VsZWN0LXNtLWZvbnQtc2l6ZSk7XG4gICAgICAgIC0tcC1zZWxlY3QtcGFkZGluZy14OiB2YXIoLS1wLXNlbGVjdC1zbS1wYWRkaW5nLXgpO1xuICAgICAgICAtLXAtc2VsZWN0LXBhZGRpbmcteTogdmFyKC0tcC1zZWxlY3Qtc20tcGFkZGluZy15KTtcbiAgICB9XG5cbiAgICAmLnAtc2VsZWN0b25lbWVudS1sZyB7XG4gICAgICAgIC0tcC1zZWxlY3QtZm9udC1zaXplOiB2YXIoLS1wLXNlbGVjdC1sZy1mb250LXNpemUpO1xuICAgICAgICAtLXAtc2VsZWN0LXBhZGRpbmcteDogdmFyKC0tcC1zZWxlY3QtbGctcGFkZGluZy14KTtcbiAgICAgICAgLS1wLXNlbGVjdC1wYWRkaW5nLXk6IHZhcigtLXAtc2VsZWN0LWxnLXBhZGRpbmcteSk7XG4gICAgfVxuXG4gICAgJi5wLXNlbGVjdG9uZW1lbnUtc20gLnAtc2VsZWN0b25lbWVudS10cmlnZ2VyIC5wLXNlbGVjdG9uZW1lbnUtZHJvcGRvd24taWNvbixcbiAgICAmLnAtc2VsZWN0b25lbWVudS1sZyAucC1zZWxlY3RvbmVtZW51LXRyaWdnZXIgLnAtc2VsZWN0b25lbWVudS1kcm9wZG93bi1pY29uIHtcbiAgICAgICAgZm9udC1zaXplOiB2YXIoLS1wLXNlbGVjdC1mb250LXNpemUpO1xuICAgIH1cbn1cblxuLnAtc2VsZWN0b25lbWVudS1ydGwge1xuICAgIGRpcmVjdGlvbjogcnRsO1xufVxuXG4vKiBmaWxsZWQgdmFyaWFudCAoYm9yZGVyLCBmb2N1cyByaW5nIGFuZCBsaW5lIGF0IHRoZSBib3R0b206IHNlZSBmb3Jtcy9pbnB1dGZpZWxkLmNzcykgKi9cbi5wLWlucHV0LWZpbGxlZCAucC1zZWxlY3RvbmVtZW51IHtcbiAgICAtLV9saW5lLXdpZHRoOiB2YXIoLS1wLWZvcm0tZmllbGQtZmlsbGVkLWluZGljYXRvci13aWR0aCk7XG4gICAgLS1fbGluZTogbGluZWFyLWdyYWRpZW50KHZhcigtLV9ib3JkZXItY29sb3IpLCB2YXIoLS1fYm9yZGVyLWNvbG9yKSkgYm90dG9tIC8gMTAwJSB2YXIoLS1fbGluZS13aWR0aCkgbm8tcmVwZWF0XG4gICAgICAgIGJvcmRlci1ib3g7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tX2xpbmUpLCB2YXIoLS1wLXNlbGVjdC1maWxsZWQtYmFja2dyb3VuZCk7XG4gICAgYm9yZGVyLWNvbG9yOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tX2JvcmRlci1jb2xvcikgdmFyKC0tcC1mb3JtLWZpZWxkLWZpbGxlZC1ib3JkZXItb3BhY2l0eSksIHRyYW5zcGFyZW50KTtcbiAgICBib3JkZXItZW5kLXN0YXJ0LXJhZGl1czogdmFyKC0tcC1mb3JtLWZpZWxkLWZpbGxlZC1ib3R0b20tYm9yZGVyLXJhZGl1cyk7XG4gICAgYm9yZGVyLWVuZC1lbmQtcmFkaXVzOiB2YXIoLS1wLWZvcm0tZmllbGQtZmlsbGVkLWJvdHRvbS1ib3JkZXItcmFkaXVzKTtcblxuICAgICYucC1zdGF0ZS1ob3ZlcixcbiAgICAmOm5vdCgucC1zdGF0ZS1kaXNhYmxlZCk6aG92ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1fbGluZSksIHZhcigtLXAtc2VsZWN0LWZpbGxlZC1ob3Zlci1iYWNrZ3JvdW5kKTtcbiAgICB9XG5cbiAgICAmLnAtc3RhdGUtZm9jdXMsXG4gICAgJjpoYXMoPiAucC1zZWxlY3RvbmVtZW51LWxhYmVsOmZvY3VzLXZpc2libGUpIHtcbiAgICAgICAgLS1fbGluZS13aWR0aDogdmFyKC0tcC1mb3JtLWZpZWxkLWZpbGxlZC1mb2N1cy1pbmRpY2F0b3Itd2lkdGgpO1xuICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1fbGluZSksIHZhcigtLXAtc2VsZWN0LWZpbGxlZC1mb2N1cy1iYWNrZ3JvdW5kKTtcbiAgICAgICAgb3V0bGluZS1jb2xvcjogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLXAtc2VsZWN0LWZvY3VzLXJpbmctY29sb3IpIHZhcigtLXAtZm9ybS1maWVsZC1maWxsZWQtYm9yZGVyLW9wYWNpdHkpLCB0cmFuc3BhcmVudCk7XG4gICAgfVxuXG4gICAgJi5wLXN0YXRlLWRpc2FibGVkIHtcbiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tX2xpbmUpLCB2YXIoLS1wLXNlbGVjdC1kaXNhYmxlZC1iYWNrZ3JvdW5kKTtcbiAgICB9XG5cbiAgICAvKiBrZWVwIHRoZSBmaWxsZWQgYmFja2dyb3VuZHMgb2YgZm9ybXMvaW5wdXRmaWVsZC5jc3Mgb2ZmIHRoZSBpbm5lciBsYWJlbCAqL1xuICAgIC5wLXNlbGVjdG9uZW1lbnUtbGFiZWwucC1pbnB1dGZpZWxkLFxuICAgIC5wLXNlbGVjdG9uZW1lbnUtbGFiZWwucC1pbnB1dGZpZWxkOmhvdmVyLFxuICAgIC5wLXNlbGVjdG9uZW1lbnUtbGFiZWwucC1pbnB1dGZpZWxkOmZvY3VzIHtcbiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgfVxufVxuXG4vKiBmbHVpZDogdGhlIGxhYmVsIGxlYXZlcyByb29tIGZvciB0aGUgdHJpZ2dlciBieSBpdHMgd2lkdGggaW5zdGVhZCBvZiBpdHMgZW5kIHBhZGRpbmcgKi9cbi5wLWZsdWlkIC5wLXNlbGVjdG9uZW1lbnUge1xuICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgLnAtc2VsZWN0b25lbWVudS1sYWJlbC5wLWlucHV0ZmllbGQge1xuICAgICAgICB3aWR0aDogY2FsYygxMDAlIC0gdmFyKC0tcC1zZWxlY3QtZHJvcGRvd24td2lkdGgpKTtcbiAgICAgICAgcGFkZGluZy1pbmxpbmU6IHZhcigtLXAtc2VsZWN0LXBhZGRpbmcteCk7XG4gICAgfVxufVxuXG4vKiBwYW5lbCAqL1xuLnAtc2VsZWN0b25lbWVudS1wYW5lbCB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGhlaWdodDogYXV0bztcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1wLXNlbGVjdC1vdmVybGF5LWJhY2tncm91bmQpO1xuICAgIGNvbG9yOiB2YXIoLS1wLXNlbGVjdC1vdmVybGF5LWNvbG9yKTtcbiAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1wLXNlbGVjdC1vdmVybGF5LWJvcmRlci1jb2xvcik7XG4gICAgYm94LXNoYWRvdzogdmFyKC0tcC1zZWxlY3Qtb3ZlcmxheS1zaGFkb3cpO1xuICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXAtc2VsZWN0LW92ZXJsYXktYm9yZGVyLXJhZGl1cyk7XG5cbiAgICAmLnAtc2VsZWN0b25lbWVudS1wYW5lbC1ydGwge1xuICAgICAgICBkaXJlY3Rpb246IHJ0bDtcbiAgICB9XG5cbiAgICAucC1zZWxlY3RvbmVtZW51LWl0ZW1zLXdyYXBwZXIge1xuICAgICAgICBvdmVyZmxvdzogYXV0bztcbiAgICB9XG5cbiAgICAucC1zZWxlY3RvbmVtZW51LWZpbHRlci1jb250YWluZXIge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBwYWRkaW5nOiB2YXIoLS1wLXNlbGVjdC1saXN0LWhlYWRlci1wYWRkaW5nKTtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBib3JkZXItYm90dG9tOiAwIG5vbmU7XG4gICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgICAgICBjb2xvcjogdmFyKC0tcC1zZWxlY3Qtb3ZlcmxheS1jb2xvcik7XG5cbiAgICAgICAgLnAtc2VsZWN0b25lbWVudS1maWx0ZXIucC1pbnB1dGZpZWxkIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgcGFkZGluZy1ibG9jazogdmFyKC0tcC1zZWxlY3QtcGFkZGluZy15KTtcbiAgICAgICAgICAgIHBhZGRpbmctaW5saW5lOiB2YXIoLS1wLXNlbGVjdC1wYWRkaW5nLXgpO1xuICAgICAgICAgICAgcGFkZGluZy1pbmxpbmUtc3RhcnQ6IGNhbGMoMiAqIHZhcigtLXAtc2VsZWN0LXBhZGRpbmcteCkgKyB2YXIoLS1wLWljb24tc2l6ZSkpO1xuICAgICAgICB9XG5cbiAgICAgICAgLypcbiAgICAgICAgICogTm8gaW5zZXRzOiB0aGUgYWJzb2x1dGUgaWNvbiBzdGF5cyBhdCBpdHMgc3RhdGljIHBvc2l0aW9uLCBpLmUuIGF0IHRoZSBzdGFydCBvZiB0aGUgY29udGFpbmVyJ3MgY29udGVudCBib3hcbiAgICAgICAgICogYW5kIHZlcnRpY2FsbHkgY2VudGVyZWQgYnkgdGhlIGZsZXggY29udGFpbmVyLCBzbyB0aGUgaGVhZGVyIHBhZGRpbmcgZG9lcyBub3QgbmVlZCB0byBiZSBrbm93bi5cbiAgICAgICAgICovXG4gICAgICAgIC5wLXNlbGVjdG9uZW1lbnUtZmlsdGVyLWljb24ge1xuICAgICAgICAgICAgLS1faWNvbjogdmFyKC0tcC1zZWxlY3QtZmlsdGVyLWljb24pO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgbWFyZ2luLWlubGluZS1zdGFydDogdmFyKC0tcC1zZWxlY3QtcGFkZGluZy14KTtcbiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1wLWZvcm0tZmllbGQtaWNvbi1jb2xvcik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAucC1zZWxlY3RvbmVtZW51LWl0ZW0ge1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgfVxuXG4gICAgLyogdGhlIHNlcnZlciByZW5kZXJzIHVsLnAtc2VsZWN0b25lbWVudS1pdGVtcy5wLXNlbGVjdG9uZW1lbnUtbGlzdCwgdGhlIGNvbXBvbmVudCAoZHluYW1pYyAvIGdyb3VwZWQgb3B0aW9ucylcbiAgICAgICBkaXYucC1zZWxlY3RvbmVtZW51LWl0ZW1zID4gdWwucC1zZWxlY3RvbmVtZW51LWxpc3Q7IHRoZSBpdGVtcyBwYWRkaW5nIGJlbG93IHdpbnMgd2hlbiBib3RoIGFyZSBvbmUgZWxlbWVudCAqL1xuICAgIC5wLXNlbGVjdG9uZW1lbnUtbGlzdCB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIGdhcDogdmFyKC0tcC1zZWxlY3QtbGlzdC1nYXApO1xuICAgICAgICBib3JkZXI6IDAgbm9uZTtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7XG4gICAgfVxuXG4gICAgLnAtc2VsZWN0b25lbWVudS1saXN0LWl0ZW0ge1xuICAgICAgICBib3JkZXI6IDAgbm9uZTtcbiAgICAgICAgdGV4dC1hbGlnbjogc3RhcnQ7XG4gICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgfVxuXG4gICAgLyogdGFibGUgKHA6Y29sdW1uIGNoaWxkcmVuKTogdGhlIGNlbGxzIGFsd2F5cyBoYXZlIGdyaWRsaW5lczsgdGhlIHAtcm93cy0qIHZhcmlhbnRzIG9mIGJhc2Uvcm93cy5jc3Mgc2V0XG4gICAgICAgLS1fdGFibGUtKGhlYWRlci0pY2VsbC1wYWRkaW5nLCB0aGUgc2l6ZXMgYXJlIHRoZSBEYXRhVGFibGUgb25lcyAqL1xuICAgIC5wLXNlbGVjdG9uZW1lbnUtdGFibGUge1xuICAgICAgICAtLV90YWJsZS1jZWxsLXNtLXBhZGRpbmc6IHZhcigtLXAtZGF0YXRhYmxlLWJvZHktY2VsbC1zbS1wYWRkaW5nKTtcbiAgICAgICAgLS1fdGFibGUtY2VsbC1sZy1wYWRkaW5nOiB2YXIoLS1wLWRhdGF0YWJsZS1ib2R5LWNlbGwtbGctcGFkZGluZyk7XG4gICAgICAgIC0tX3RhYmxlLWhlYWRlci1jZWxsLXNtLXBhZGRpbmc6IHZhcigtLXAtZGF0YXRhYmxlLWhlYWRlci1jZWxsLXNtLXBhZGRpbmcpO1xuICAgICAgICAtLV90YWJsZS1oZWFkZXItY2VsbC1sZy1wYWRkaW5nOiB2YXIoLS1wLWRhdGF0YWJsZS1oZWFkZXItY2VsbC1sZy1wYWRkaW5nKTtcbiAgICAgICAgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgdGQge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBpbmhlcml0O1xuICAgICAgICB9XG5cbiAgICAgICAgdGgsXG4gICAgICAgIHRkIHtcbiAgICAgICAgICAgIGJvcmRlci13aWR0aDogMXB4O1xuICAgICAgICAgICAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qIHRoZSBsaXN0cyBhcmUgcC1jb21wb25lbnQtY29udGVudDogbm8gYmFja2dyb3VuZCBvZiB0aGVpciBvd24sIHRoZSByb3VuZGVkIHBhbmVsIGRyYXdzIGl0ICovXG4gICAgLnAtc2VsZWN0b25lbWVudS1pdGVtcyxcbiAgICAucC1zZWxlY3RvbmVtZW51LWxpc3Qge1xuICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICB9XG5cbiAgICAucC1zZWxlY3RvbmVtZW51LWl0ZW1zIHtcbiAgICAgICAgcGFkZGluZzogdmFyKC0tcC1zZWxlY3QtbGlzdC1wYWRkaW5nKTtcblxuICAgICAgICAmLnAtc2VsZWN0b25lbWVudS10YWJsZSA+IHRoZWFkIHRyIHRoIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHZhcigtLXAtZGF0YXRhYmxlLWhlYWRlci1jZWxsLWJhY2tncm91bmQpO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tcC1kYXRhdGFibGUtaGVhZGVyLWNlbGwtYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1wLWRhdGF0YWJsZS1oZWFkZXItY2VsbC1jb2xvcik7XG4gICAgICAgICAgICBmb250LXdlaWdodDogdmFyKC0tcC1kYXRhdGFibGUtY29sdW1uLXRpdGxlLWZvbnQtd2VpZ2h0KTtcbiAgICAgICAgICAgIHBhZGRpbmc6IHZhcigtLV90YWJsZS1oZWFkZXItY2VsbC1wYWRkaW5nLCB2YXIoLS1wLWRhdGF0YWJsZS1oZWFkZXItY2VsbC1wYWRkaW5nKSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAucC1zZWxlY3RvbmVtZW51LWl0ZW1zIC5wLXNlbGVjdG9uZW1lbnUtaXRlbSB7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgcGFkZGluZzogdmFyKC0tcC1zZWxlY3Qtb3B0aW9uLXBhZGRpbmcpO1xuICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICAgICAgY29sb3I6IHZhcigtLXAtc2VsZWN0LW9wdGlvbi1jb2xvcik7XG4gICAgICAgIGZvbnQtc2l6ZTogdmFyKC0tcC1zZWxlY3Qtb3B0aW9uLWZvbnQtc2l6ZSk7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1wLXNlbGVjdC1vcHRpb24tZm9udC13ZWlnaHQpO1xuICAgICAgICBvdXRsaW5lOiAwIG5vbmU7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXAtc2VsZWN0LW9wdGlvbi1ib3JkZXItcmFkaXVzKTtcbiAgICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCB2YXIoLS1wLWxpc3Qtb3B0aW9uLXRyYW5zaXRpb24tZHVyYXRpb24pLCBjb2xvciB2YXIoLS1wLWxpc3Qtb3B0aW9uLXRyYW5zaXRpb24tZHVyYXRpb24pLFxuICAgICAgICAgICAgYm9yZGVyLWNvbG9yIHZhcigtLXAtbGlzdC1vcHRpb24tdHJhbnNpdGlvbi1kdXJhdGlvbiksIGJveC1zaGFkb3cgdmFyKC0tcC1saXN0LW9wdGlvbi10cmFuc2l0aW9uLWR1cmF0aW9uKSxcbiAgICAgICAgICAgIG91dGxpbmUtY29sb3IgdmFyKC0tcC1saXN0LW9wdGlvbi10cmFuc2l0aW9uLWR1cmF0aW9uKTtcblxuICAgICAgICAmLnAtc2VsZWN0b25lbWVudS1yb3cge1xuICAgICAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tcC1kYXRhdGFibGUtcm93LWJhY2tncm91bmQpO1xuICAgICAgICAgICAgY29sb3I6IHZhcigtLXAtZGF0YXRhYmxlLXJvdy1jb2xvcik7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1wLWRhdGF0YWJsZS1ib2R5LWNlbGwtYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLnAtc2VsZWN0b25lbWVudS1yb3cgPiB0ZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiB2YXIoLS1fdGFibGUtY2VsbC1wYWRkaW5nLCB2YXIoLS1wLWRhdGF0YWJsZS1ib2R5LWNlbGwtcGFkZGluZykpO1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1wLWRhdGF0YWJsZS1ib2R5LWNlbGwtYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYucC1zZWxlY3RvbmVtZW51LXJvdzpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICBib3JkZXItdG9wLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICYucC1zdGF0ZS1ob3ZlcixcbiAgICAgICAgJi5wLXN0YXRlLWZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHZhcigtLXAtc2VsZWN0LW9wdGlvbi1mb2N1cy1iYWNrZ3JvdW5kKTtcbiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1wLXNlbGVjdC1vcHRpb24tZm9jdXMtY29sb3IpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi5wLXN0YXRlLWhpZ2hsaWdodCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1wLXNlbGVjdC1vcHRpb24tc2VsZWN0ZWQtYmFja2dyb3VuZCk7XG4gICAgICAgICAgICBjb2xvcjogdmFyKC0tcC1zZWxlY3Qtb3B0aW9uLXNlbGVjdGVkLWNvbG9yKTtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1wLXNlbGVjdC1vcHRpb24tc2VsZWN0ZWQtZm9udC13ZWlnaHQpO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLnAtc3RhdGUtaGlnaGxpZ2h0LnAtc3RhdGUtaG92ZXIsXG4gICAgICAgICYucC1zdGF0ZS1oaWdobGlnaHQucC1zdGF0ZS1mb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1wLXNlbGVjdC1vcHRpb24tc2VsZWN0ZWQtZm9jdXMtYmFja2dyb3VuZCk7XG4gICAgICAgICAgICBjb2xvcjogdmFyKC0tcC1zZWxlY3Qtb3B0aW9uLXNlbGVjdGVkLWZvY3VzLWNvbG9yKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5wLXNlbGVjdG9uZW1lbnUtaXRlbXMgLnAtc2VsZWN0b25lbWVudS1pdGVtLWdyb3VwIHtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBwYWRkaW5nOiB2YXIoLS1wLXNlbGVjdC1vcHRpb24tZ3JvdXAtcGFkZGluZyk7XG4gICAgICAgIGJhY2tncm91bmQ6IHZhcigtLXAtc2VsZWN0LW9wdGlvbi1ncm91cC1iYWNrZ3JvdW5kKTtcbiAgICAgICAgY29sb3I6IHZhcigtLXAtc2VsZWN0LW9wdGlvbi1ncm91cC1jb2xvcik7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1wLXNlbGVjdC1vcHRpb24tZ3JvdXAtZm9udC13ZWlnaHQpO1xuICAgICAgICBmb250LXNpemU6IHZhcigtLXAtc2VsZWN0LW9wdGlvbi1ncm91cC1mb250LXNpemUpO1xuICAgIH1cblxuICAgIC8qXG4gICAgICogY2hlY2ttYXJrIG1vZGUgKHBhbmVsU3R5bGVDbGFzcz1cInAtc2VsZWN0LWNoZWNrbWFya1wiKTogYSBjaGVjayBpbiBmcm9udCBvZiB0aGUgc2VsZWN0ZWQgb3B0aW9uLCB0aGUgb3RoZXJzIGtlZXBcbiAgICAgKiB0aGUgc3BhY2Ugb2YgdGhlIGljb24gKFByaW1lVUlYIGJsYW5rIGljb24pLiBMaXN0IGl0ZW1zIG9ubHksIG5vdCB0aGUgdGFibGUgb2YgcDpjb2x1bW4gY2hpbGRyZW4uXG4gICAgICovXG4gICAgJi5wLXNlbGVjdC1jaGVja21hcmsgLnAtc2VsZWN0b25lbWVudS1pdGVtcyBsaS5wLXNlbGVjdG9uZW1lbnUtaXRlbSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cbiAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgIGNvbnRlbnQ6IFwiXFwyMDAzXCI7XG4gICAgICAgICAgICBmbGV4LXNocmluazogMDtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogdmFyKC0tcC1pY29uLXNpemUpO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgICAgICAgICBtYXJnaW4taW5saW5lLXN0YXJ0OiB2YXIoLS1wLXNlbGVjdC1jaGVja21hcmstZ3V0dGVyLXN0YXJ0KTtcbiAgICAgICAgICAgIG1hcmdpbi1pbmxpbmUtZW5kOiB2YXIoLS1wLXNlbGVjdC1jaGVja21hcmstZ3V0dGVyLWVuZCk7XG4gICAgICAgICAgICBjb2xvcjogdmFyKC0tcC1zZWxlY3QtY2hlY2ttYXJrLWNvbG9yKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgZm9yY2VkLWNvbG9yLWFkanVzdDogbm9uZTtcbiAgICAgICAgICAgIG1hc2s6IHZhcigtLXAtc2VsZWN0LWNoZWNrbWFyay1pY29uKSBjZW50ZXIgLyBjb250YWluIG5vLXJlcGVhdDtcbiAgICAgICAgfVxuXG4gICAgICAgICYucC1zdGF0ZS1oaWdobGlnaHQ6OmJlZm9yZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBjdXJyZW50Q29sb3I7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5wLXNlbGVjdG9uZW1lbnUtZm9vdGVyIHtcbiAgICBib3JkZXI6IDAgbm9uZTtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogdmFyKC0tcC1zZWxlY3QtbGlzdC1oZWFkZXItcGFkZGluZyk7XG59XG4iLCAiLypcbiAqIFNlbGVjdE9uZVJhZGlvOiBwOnNlbGVjdE9uZVJhZGlvIChsYXlvdXRzIGxpbmVEaXJlY3Rpb24sIHBhZ2VEaXJlY3Rpb24sIGdyaWQsIHJlc3BvbnNpdmUpLCBwOnJhZGlvQnV0dG9uIChjdXN0b20gbGF5b3V0KVxuICogVGhlIHJhZGlvIGJveCBpdHNlbGYgKC5wLXJhZGlvYnV0dG9uKSBpcyBpbiBmb3Jtcy9yYWRpb2J1dHRvbi5jc3MuXG4gKlxuICogTWFya3VwOiAucC1zZWxlY3RvbmVyYWRpby51aS1ncmlkLXJlc3BvbnNpdmUgPiAudWktZyAob3IgLmdyaWQpID4gLnVpLWctKiA+IC5wLXJhZGlvYnV0dG9uICsgbGFiZWxcbiAqIFN1cHBvcnRlZCBjbGFzc2VzIG9uIC5wLXNlbGVjdG9uZXJhZGlvOiBwLXN0YXRlLXJlYWRvbmx5LCBsYXlvdXQtbGluZS1kaXJlY3Rpb25cbiAqL1xuLnAtc2VsZWN0b25lcmFkaW8ge1xuICAgIGxhYmVsIHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgbWFyZ2luLWlubGluZS1lbmQ6IHZhcigtLXAtc2VsZWN0b25lcmFkaW8tZ2FwKTtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgLyogdGhlIGdhcCBpcyBwYWRkaW5nIG9mIHRoZSBsYWJlbDogYSBjbGljayBiZXR3ZWVuIGJveCBhbmQgbGFiZWwgc2VsZWN0cyB0b28gKi9cbiAgICAgICAgcGFkZGluZy1pbmxpbmUtc3RhcnQ6IHZhcigtLXAtcmFkaW9idXR0b24tbGFiZWwtZ2FwKTtcbiAgICB9XG5cbiAgICBsYWJlbC5wLXN0YXRlLWRpc2FibGVkLFxuICAgICYucC1zdGF0ZS1yZWFkb25seSBsYWJlbCB7XG4gICAgICAgIGN1cnNvcjogZGVmYXVsdDtcbiAgICB9XG5cbiAgICAmLnVpLWdyaWQtcmVzcG9uc2l2ZSB7XG4gICAgICAgIGxhYmVsIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZTtcbiAgICAgICAgfVxuXG4gICAgICAgID4gZGl2ID4gZGl2IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICYudWktZ3JpZC1yZXNwb25zaXZlIC51aS1nID4gZGl2IHtcbiAgICAgICAgcGFkZGluZzogdmFyKC0tcC1zZWxlY3RvbmVyYWRpby1jZWxsLXBhZGRpbmcpO1xuICAgIH1cblxuICAgICYubGF5b3V0LWxpbmUtZGlyZWN0aW9uIHtcbiAgICAgICAgPiBkaXYsXG4gICAgICAgID4gZGl2IGxhYmVsIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLyogcmVhZG9ubHk6IG5vIGhvdmVyIGZlZWRiYWNrICh3aW5zIG92ZXIgdGhlIHN0YXRlcyBvZiBmb3Jtcy9yYWRpb2J1dHRvbi5jc3MgYnkgc3BlY2lmaWNpdHkpOyBhbiBpbnZhbGlkIGJveCBrZWVwcyBpdHNcbiAgIGludmFsaWQgYm9yZGVyICovXG4ucC1zZWxlY3RvbmVyYWRpby5wLXN0YXRlLXJlYWRvbmx5IC5wLXJhZGlvYnV0dG9uIC5wLXJhZGlvYnV0dG9uLWJveCB7XG4gICAgJjpub3QoLnAtc3RhdGUtZXJyb3IpOmhvdmVyIHtcbiAgICAgICAgLS1fbGF5ZXItb3BhY2l0eTogMCU7XG4gICAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tcC1yYWRpb2J1dHRvbi1ib3JkZXItY29sb3IpO1xuICAgIH1cblxuICAgICYucC1zdGF0ZS1hY3RpdmU6bm90KC5wLXN0YXRlLWVycm9yKTpob3ZlciB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tcC1yYWRpb2J1dHRvbi1jaGVja2VkLWJvcmRlci1jb2xvcik7XG4gICAgfVxuXG4gICAgJi5wLXN0YXRlLWFjdGl2ZTpob3ZlciB7XG4gICAgICAgIGJhY2tncm91bmQ6IHZhcigtLXAtcmFkaW9idXR0b24tY2hlY2tlZC1iYWNrZ3JvdW5kKTtcblxuICAgICAgICAucC1yYWRpb2J1dHRvbi1pY29uIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHZhcigtLXAtcmFkaW9idXR0b24taWNvbi1jaGVja2VkLWNvbG9yKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsICIvKlxuICogU2lkZWJhcjogcDpzaWRlYmFyIChQcmltZVVJWCBkcmF3ZXIpXG4gKlxuICogTWFya3VwOiAucC1zaWRlYmFyLnAtc2lkZWJhci17bGVmdHxyaWdodHx0b3B8Ym90dG9tfSA+IGEucC1zaWRlYmFyLWNsb3NlLCAucC1zaWRlYmFyLWNvbnRlbnRcbiAqIFN0YXRlczogcC1zaWRlYmFyLWFjdGl2ZSAob3BlbmVkKSwgcC1zaWRlYmFyLWZ1bGwgKGZ1bGxTY3JlZW4pXG4gKiBTaXplczogcC1zaWRlYmFyLXNtIHwgLW1kIHwgLWxnIHZpYSBzdHlsZUNsYXNzICh0aGUgY29tcG9uZW50IGhhcyBubyBzaXplIGF0dHJpYnV0ZSlcbiAqIFBGIG9ubHkgdG9rZW5zOiB0aGUgc2lkZWJhciBibG9jayBvZiBwcmVzZXRzLyouY3NzICgtLXAtc2lkZWJhci1ib3JkZXItcmFkaXVzOiB0aGUgY29ybmVycyBmYWNpbmcgdGhlIHBhZ2UpXG4gKi9cblxuLnAtc2lkZWJhciB7XG4gICAgcG9zaXRpb246IGZpeGVkO1xuICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gdmFyKC0tcC1zaWRlYmFyLXRyYW5zaXRpb24tZHVyYXRpb24pIHZhcigtLXAtdHJhbnNpdGlvbi1lYXNpbmcpLCB2aXNpYmlsaXR5IHZhcigtLXAtc2lkZWJhci10cmFuc2l0aW9uLWR1cmF0aW9uKTtcbiAgICBkaXNwbGF5OiBmbG93LXJvb3Q7XG4gICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1wLWRyYXdlci1iYWNrZ3JvdW5kKTtcbiAgICBjb2xvcjogdmFyKC0tcC1kcmF3ZXItY29sb3IpO1xuICAgIHBhZGRpbmc6IHZhcigtLXAtZHJhd2VyLWhlYWRlci1wYWRkaW5nKTtcbiAgICBib3JkZXI6IDAgc29saWQgdmFyKC0tcC1kcmF3ZXItYm9yZGVyLWNvbG9yKTtcbiAgICBib3gtc2hhZG93OiBub25lO1xuXG4gICAgLyogbGlrZSBQcmltZVVJWDogb25seSB0aGUgZWRnZSBmYWNpbmcgdGhlIHBhZ2UgaGFzIGEgYm9yZGVyIChwaHlzaWNhbDogdGhlIHBvc2l0aW9uIGlzIHBoeXNpY2FsIHRvbykgKi9cbiAgICAmLnAtc2lkZWJhci1sZWZ0IHtcbiAgICAgICAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAxcHg7XG4gICAgICAgIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiB2YXIoLS1wLXNpZGViYXItYm9yZGVyLXJhZGl1cyk7XG4gICAgICAgIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiB2YXIoLS1wLXNpZGViYXItYm9yZGVyLXJhZGl1cyk7XG4gICAgfVxuXG4gICAgJi5wLXNpZGViYXItcmlnaHQge1xuICAgICAgICBib3JkZXItbGVmdC13aWR0aDogMXB4O1xuICAgICAgICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiB2YXIoLS1wLXNpZGViYXItYm9yZGVyLXJhZGl1cyk7XG4gICAgICAgIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IHZhcigtLXAtc2lkZWJhci1ib3JkZXItcmFkaXVzKTtcbiAgICB9XG5cbiAgICAmLnAtc2lkZWJhci10b3Age1xuICAgICAgICBib3JkZXItYmxvY2stZW5kLXdpZHRoOiAxcHg7XG4gICAgICAgIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IHZhcigtLXAtc2lkZWJhci1ib3JkZXItcmFkaXVzKTtcbiAgICAgICAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IHZhcigtLXAtc2lkZWJhci1ib3JkZXItcmFkaXVzKTtcbiAgICB9XG5cbiAgICAmLnAtc2lkZWJhci1ib3R0b20ge1xuICAgICAgICBib3JkZXItYmxvY2stc3RhcnQtd2lkdGg6IDFweDtcbiAgICAgICAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogdmFyKC0tcC1zaWRlYmFyLWJvcmRlci1yYWRpdXMpO1xuICAgICAgICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogdmFyKC0tcC1zaWRlYmFyLWJvcmRlci1yYWRpdXMpO1xuICAgIH1cblxuICAgICYucC1zaWRlYmFyLWZ1bGwge1xuICAgICAgICBib3JkZXItd2lkdGg6IDFweDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICB9XG5cbiAgICAmLnAtc2lkZWJhci1hY3RpdmUge1xuICAgICAgICBib3gtc2hhZG93OiB2YXIoLS1wLWRyYXdlci1zaGFkb3cpO1xuICAgIH1cblxuICAgIC5wLXNpZGViYXItY29udGVudCB7XG4gICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgICAgICBjb2xvcjogaW5oZXJpdDtcbiAgICAgICAgYm9yZGVyOiAwIG5vbmU7XG4gICAgfVxuXG4gICAgLyogY2xvc2UgaWNvbjogcm91bmRlZCB0ZXh0IHNlY29uZGFyeSBpY29uLW9ubHkgYnV0dG9uIGxpa2UgdGhlIFByaW1lVUlYIGRyYXdlciBoZWFkZXIgKi9cbiAgICAucC1zaWRlYmFyLWNsb3NlIHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICB3aWR0aDogdmFyKC0tcC1zaWRlYmFyLWNsb3NlLWJ1dHRvbi1zaXplKTtcbiAgICAgICAgaGVpZ2h0OiB2YXIoLS1wLXNpZGViYXItY2xvc2UtYnV0dG9uLXNpemUpO1xuICAgICAgICBmbG9hdDogaW5saW5lLWVuZDtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgYm9yZGVyOiAwIG5vbmU7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1wLXNpZGViYXItY2xvc2UtYnV0dG9uLWNvbG9yKTtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAtd2Via2l0LXVzZXItc2VsZWN0OiBub25lO1xuICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgICAgICAgb3V0bGluZS1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgdmFyKC0tcC1zaWRlYmFyLWNsb3NlLWJ1dHRvbi10cmFuc2l0aW9uLWR1cmF0aW9uKSxcbiAgICAgICAgICAgIGNvbG9yIHZhcigtLXAtc2lkZWJhci1jbG9zZS1idXR0b24tdHJhbnNpdGlvbi1kdXJhdGlvbiksXG4gICAgICAgICAgICBvdXRsaW5lLWNvbG9yIHZhcigtLXAtc2lkZWJhci1jbG9zZS1idXR0b24tdHJhbnNpdGlvbi1kdXJhdGlvbiksXG4gICAgICAgICAgICBib3gtc2hhZG93IHZhcigtLXAtc2lkZWJhci1jbG9zZS1idXR0b24tdHJhbnNpdGlvbi1kdXJhdGlvbik7XG5cbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1wLXNpZGViYXItY2xvc2UtYnV0dG9uLWhvdmVyLWJhY2tncm91bmQpO1xuICAgICAgICAgICAgY29sb3I6IHZhcigtLXAtc2lkZWJhci1jbG9zZS1idXR0b24tY29sb3IpO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tcC1zaWRlYmFyLWNsb3NlLWJ1dHRvbi1hY3RpdmUtYmFja2dyb3VuZCk7XG4gICAgICAgIH1cblxuICAgICAgICAmOmZvY3VzLXZpc2libGUge1xuICAgICAgICAgICAgb3V0bGluZTogdmFyKC0tcC1zaWRlYmFyLWNsb3NlLWJ1dHRvbi1mb2N1cy1yaW5nLXdpZHRoKSB2YXIoLS1wLXNpZGViYXItY2xvc2UtYnV0dG9uLWZvY3VzLXJpbmctc3R5bGUpXG4gICAgICAgICAgICAgICAgdmFyKC0tcC1zaWRlYmFyLWNsb3NlLWJ1dHRvbi1mb2N1cy1yaW5nLWNvbG9yKTtcbiAgICAgICAgICAgIG91dGxpbmUtb2Zmc2V0OiB2YXIoLS1wLXNpZGViYXItY2xvc2UtYnV0dG9uLWZvY3VzLXJpbmctb2Zmc2V0KTtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IHZhcigtLXAtc2lkZWJhci1jbG9zZS1idXR0b24tZm9jdXMtcmluZy1zaGFkb3cpO1xuICAgICAgICB9XG5cbiAgICAgICAgLnAtc2lkZWJhci1jbG9zZS1pY29uIHtcbiAgICAgICAgICAgIC0tX2ljb246IHZhcigtLXAtc2lkZWJhci1jbG9zZS1pY29uKTtcbiAgICAgICAgICAgIGNvbG9yOiBpbmhlcml0O1xuICAgICAgICB9XG4gICAgfVxufVxuXG4ucC1zaWRlYmFyLWxlZnQge1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiAwO1xuICAgIHdpZHRoOiAyMGVtO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTEwMCUpO1xufVxuXG4ucC1zaWRlYmFyLXJpZ2h0IHtcbiAgICB0b3A6IDA7XG4gICAgcmlnaHQ6IDA7XG4gICAgd2lkdGg6IDIwZW07XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgxMDAlKTtcbn1cblxuLnAtc2lkZWJhci10b3Age1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiAwO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogYXV0bztcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTEwMCUpO1xufVxuXG4ucC1zaWRlYmFyLWJvdHRvbSB7XG4gICAgYm90dG9tOiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiBhdXRvO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgxMDAlKTtcbn1cblxuLnAtc2lkZWJhci1mdWxsIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgbGVmdDogMDtcbiAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMHM7XG59XG5cbi5wLXNpZGViYXItbGVmdC5wLXNpZGViYXItYWN0aXZlLFxuLnAtc2lkZWJhci1yaWdodC5wLXNpZGViYXItYWN0aXZlIHtcbiAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwKTtcbn1cblxuLnAtc2lkZWJhci1sZWZ0LnAtc2lkZWJhci1zbSxcbi5wLXNpZGViYXItcmlnaHQucC1zaWRlYmFyLXNtIHtcbiAgICB3aWR0aDogMjBlbTtcbn1cblxuLnAtc2lkZWJhci1sZWZ0LnAtc2lkZWJhci1tZCxcbi5wLXNpZGViYXItcmlnaHQucC1zaWRlYmFyLW1kIHtcbiAgICB3aWR0aDogNDBlbTtcbn1cblxuLnAtc2lkZWJhci1sZWZ0LnAtc2lkZWJhci1sZyxcbi5wLXNpZGViYXItcmlnaHQucC1zaWRlYmFyLWxnIHtcbiAgICB3aWR0aDogNjBlbTtcbn1cblxuLnAtc2lkZWJhci10b3AucC1zaWRlYmFyLWFjdGl2ZSxcbi5wLXNpZGViYXItYm90dG9tLnAtc2lkZWJhci1hY3RpdmUge1xuICAgIHZpc2liaWxpdHk6IHZpc2libGU7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApO1xufVxuXG4ucC1zaWRlYmFyLXRvcC5wLXNpZGViYXItc20sXG4ucC1zaWRlYmFyLWJvdHRvbS5wLXNpZGViYXItc20ge1xuICAgIGhlaWdodDogMTBlbTtcbn1cblxuLnAtc2lkZWJhci10b3AucC1zaWRlYmFyLW1kLFxuLnAtc2lkZWJhci1ib3R0b20ucC1zaWRlYmFyLW1kIHtcbiAgICBoZWlnaHQ6IDIwZW07XG59XG5cbi5wLXNpZGViYXItdG9wLnAtc2lkZWJhci1sZyxcbi5wLXNpZGViYXItYm90dG9tLnAtc2lkZWJhci1sZyB7XG4gICAgaGVpZ2h0OiAzMGVtO1xufVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA2NGVtKSB7XG4gICAgLnAtc2lkZWJhci1sZWZ0LnAtc2lkZWJhci1sZyxcbiAgICAucC1zaWRlYmFyLWxlZnQucC1zaWRlYmFyLW1kLFxuICAgIC5wLXNpZGViYXItcmlnaHQucC1zaWRlYmFyLWxnLFxuICAgIC5wLXNpZGViYXItcmlnaHQucC1zaWRlYmFyLW1kIHtcbiAgICAgICAgd2lkdGg6IDIwZW07XG4gICAgfVxufVxuIiwgIi8qXG4gKiBTa2VsZXRvbjogcDpza2VsZXRvblxuICpcbiAqIFN1cHBvcnRlZCBjbGFzc2VzOiBwLXNrZWxldG9uLWNpcmNsZSwgcC1za2VsZXRvbi1hbmltYXRpb24tbm9uZVxuICovXG5cbi5wLXNrZWxldG9uIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1wLXNrZWxldG9uLWJhY2tncm91bmQpO1xuICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXAtc2tlbGV0b24tYm9yZGVyLXJhZGl1cyk7XG5cbiAgICAmOmFmdGVyIHtcbiAgICAgICAgY29udGVudDogXCJcIjtcbiAgICAgICAgYW5pbWF0aW9uOiBwLXNrZWxldG9uLWFuaW1hdGlvbiAxLjJzIGluZmluaXRlO1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0xMDAlKTtcbiAgICAgICAgei1pbmRleDogMTtcbiAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDkwZGVnLCB0cmFuc3BhcmVudCwgdmFyKC0tcC1za2VsZXRvbi1hbmltYXRpb24tYmFja2dyb3VuZCksIHRyYW5zcGFyZW50KTtcbiAgICB9XG5cbiAgICAmOmRpcihydGwpOmFmdGVyIHtcbiAgICAgICAgYW5pbWF0aW9uLW5hbWU6IHAtc2tlbGV0b24tYW5pbWF0aW9uLXJ0bDtcbiAgICB9XG5cbiAgICAmLnAtc2tlbGV0b24tYW5pbWF0aW9uLW5vbmU6YWZ0ZXIge1xuICAgICAgICBhbmltYXRpb246IG5vbmU7XG4gICAgfVxuXG4gICAgJi5wLXNrZWxldG9uLWNpcmNsZSB7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICB9XG59XG5cbkBrZXlmcmFtZXMgcC1za2VsZXRvbi1hbmltYXRpb24ge1xuICAgIGZyb20ge1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTEwMCUpO1xuICAgIH1cbiAgICB0byB7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgxMDAlKTtcbiAgICB9XG59XG5cbkBrZXlmcmFtZXMgcC1za2VsZXRvbi1hbmltYXRpb24tcnRsIHtcbiAgICBmcm9tIHtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDEwMCUpO1xuICAgIH1cbiAgICB0byB7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMTAwJSk7XG4gICAgfVxufVxuIiwgIi8qXG4gKiBTbGlkZU1lbnU6IHA6c2xpZGVNZW51XG4gKlxuICogVGhlIGNvbW1vbiAucC1tZW51IG1hcmt1cCBpcyBzdHlsZWQgYnkgbWVudS9tZW51LmJhc2UuY3NzLCB0aGlzIGZpbGUgaGFzIHRoZSBzbGlkaW5nIHdyYXBwZXIsIHRoZSBcImJhY2tcIiBoZWFkZXJcbiAqICgucC1zbGlkZW1lbnUtYmFja3dhcmQpIGFuZCB0aGUgc2xpZGVtZW51IHRva2VucyAoUHJpbWVGYWNlcyBvbmx5LCB0aGUgc2xpZGVtZW51IGJsb2NrIG9mIHByZXNldHMvKi5jc3MpLlxuICovXG5cbi8qXG4gKiBUaGUgbGlzdHMgYXJlIGFic29sdXRlbHkgcG9zaXRpb25lZCAoY2Fyb3VzZWwpLCBzbyB0aGUgY29udGFpbmVyIGhhcyBubyBjb250ZW50IHdpZHRoOiBpdCBuZWVkcyBhIGZpeGVkIHdpZHRoXG4gKiAobWVudS9tZW51LmJhc2UuY3NzIG9ubHkgZ2l2ZXMgdGhlIG90aGVyIG1lbnVzIHdpZHRoOiBmaXQtY29udGVudCArIG1pbi13aWR0aCkuIHN0eWxlPVwid2lkdGg6IC4uLlwiIHN0aWxsIHdpbnMuXG4gKi9cbi5wLXNsaWRlbWVudSB7XG4gICAgd2lkdGg6IDEyLjVyZW07XG5cbiAgICAucC1zbGlkZW1lbnUtd3JhcHBlciB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB9XG5cbiAgICAucC1zbGlkZW1lbnUtY29udGVudCB7XG4gICAgICAgIG92ZXJmbG93LXg6IGhpZGRlbjtcbiAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIH1cblxuICAgIC5wLW1lbnUtbGlzdCB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgIH1cblxuICAgIC5wLW1lbnUtcGFyZW50IHtcbiAgICAgICAgcG9zaXRpb246IHN0YXRpYztcbiAgICB9XG5cbiAgICAucC1tZW51LWNoaWxkIHtcbiAgICAgICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICAgICAgYm9yZGVyOiAwIG5vbmU7XG4gICAgfVxufVxuXG4ucC1zbGlkZW1lbnUtYmFja3dhcmQge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG59XG5cbi5wLW1lbnUucC1zbGlkZW1lbnUge1xuICAgIC0tX2JnOiB2YXIoLS1wLXNsaWRlbWVudS1iYWNrZ3JvdW5kKTtcbiAgICAtLV9ib3JkZXItY29sb3I6IHZhcigtLXAtc2xpZGVtZW51LWJvcmRlci1jb2xvcik7XG4gICAgLS1fYm9yZGVyLXJhZGl1czogdmFyKC0tcC1zbGlkZW1lbnUtYm9yZGVyLXJhZGl1cyk7XG4gICAgLS1fY29sb3I6IHZhcigtLXAtc2xpZGVtZW51LWNvbG9yKTtcbiAgICAtLV9zaGFkb3c6IHZhcigtLXAtc2xpZGVtZW51LXNoYWRvdyk7XG4gICAgLS1fbGlzdC1wYWRkaW5nOiB2YXIoLS1wLXNsaWRlbWVudS1saXN0LXBhZGRpbmcpO1xuICAgIC0tX2xpc3QtZ2FwOiB2YXIoLS1wLXNsaWRlbWVudS1saXN0LWdhcCk7XG4gICAgLS1fdHJhbnNpdGlvbi1kdXJhdGlvbjogdmFyKC0tcC1zbGlkZW1lbnUtdHJhbnNpdGlvbi1kdXJhdGlvbik7XG4gICAgLS1faXRlbS1ib3JkZXItcmFkaXVzOiB2YXIoLS1wLXNsaWRlbWVudS1pdGVtLWJvcmRlci1yYWRpdXMpO1xuICAgIC0tX2l0ZW0tcGFkZGluZzogdmFyKC0tcC1zbGlkZW1lbnUtaXRlbS1wYWRkaW5nKTtcbiAgICAtLV9pdGVtLWdhcDogdmFyKC0tcC1zbGlkZW1lbnUtaXRlbS1nYXApO1xuICAgIC0tX2l0ZW0tY29sb3I6IHZhcigtLXAtc2xpZGVtZW51LWl0ZW0tY29sb3IpO1xuICAgIC0tX2l0ZW0tZm9jdXMtYmFja2dyb3VuZDogdmFyKC0tcC1zbGlkZW1lbnUtaXRlbS1mb2N1cy1iYWNrZ3JvdW5kKTtcbiAgICAtLV9pdGVtLWZvY3VzLWNvbG9yOiB2YXIoLS1wLXNsaWRlbWVudS1pdGVtLWZvY3VzLWNvbG9yKTtcbiAgICAtLV9pdGVtLWFjdGl2ZS1iYWNrZ3JvdW5kOiB2YXIoLS1wLXNsaWRlbWVudS1pdGVtLWFjdGl2ZS1iYWNrZ3JvdW5kKTtcbiAgICAtLV9pdGVtLWFjdGl2ZS1jb2xvcjogdmFyKC0tcC1zbGlkZW1lbnUtaXRlbS1hY3RpdmUtY29sb3IpO1xuICAgIC0tX2l0ZW0taWNvbi1jb2xvcjogdmFyKC0tcC1zbGlkZW1lbnUtaXRlbS1pY29uLWNvbG9yKTtcbiAgICAtLV9pdGVtLWljb24tZm9jdXMtY29sb3I6IHZhcigtLXAtc2xpZGVtZW51LWl0ZW0taWNvbi1mb2N1cy1jb2xvcik7XG4gICAgLS1faXRlbS1pY29uLWFjdGl2ZS1jb2xvcjogdmFyKC0tcC1zbGlkZW1lbnUtaXRlbS1pY29uLWFjdGl2ZS1jb2xvcik7XG4gICAgLS1faXRlbS1pY29uLXNpemU6IHZhcigtLXAtc2xpZGVtZW51LWl0ZW0taWNvbi1zaXplKTtcbiAgICAtLV9pdGVtLWxhYmVsLWZvbnQtc2l6ZTogdmFyKC0tcC1zbGlkZW1lbnUtaXRlbS1sYWJlbC1mb250LXNpemUpO1xuICAgIC0tX2l0ZW0tbGFiZWwtZm9udC13ZWlnaHQ6IHZhcigtLXAtc2xpZGVtZW51LWl0ZW0tbGFiZWwtZm9udC13ZWlnaHQpO1xuICAgIC0tX3N1Ym1lbnUtaWNvbi1jb2xvcjogdmFyKC0tcC1zbGlkZW1lbnUtc3VibWVudS1pY29uLWNvbG9yKTtcbiAgICAtLV9zdWJtZW51LWljb24tZm9jdXMtY29sb3I6IHZhcigtLXAtc2xpZGVtZW51LXN1Ym1lbnUtaWNvbi1mb2N1cy1jb2xvcik7XG4gICAgLS1fc3VibWVudS1pY29uLXNpemU6IHZhcigtLXAtc2xpZGVtZW51LXN1Ym1lbnUtaWNvbi1zaXplKTtcbiAgICAtLV9zdWJtZW51LWljb24tYWN0aXZlLWNvbG9yOiB2YXIoLS1wLXNsaWRlbWVudS1pdGVtLWljb24tYWN0aXZlLWNvbG9yKTtcbiAgICAvKiB0aGUgXCJiYWNrXCIgaGVhZGVyICovXG4gICAgLS1fc3VibWVudS1sYWJlbC1iYWNrZ3JvdW5kOiB2YXIoLS1wLXNsaWRlbWVudS1iYWNrLWJhY2tncm91bmQpO1xuICAgIC0tX3N1Ym1lbnUtbGFiZWwtY29sb3I6IHZhcigtLXAtc2xpZGVtZW51LWJhY2stY29sb3IpO1xuICAgIC0tX3N1Ym1lbnUtbGFiZWwtZm9udC13ZWlnaHQ6IHZhcigtLXAtc2xpZGVtZW51LWJhY2stZm9udC13ZWlnaHQpO1xuICAgIC0tX3N1Ym1lbnUtYmFja2dyb3VuZDogdmFyKC0tcC1zbGlkZW1lbnUtYmFja2dyb3VuZCk7XG4gICAgLS1fc3VibWVudS1ib3JkZXItY29sb3I6IHZhcigtLXAtc2xpZGVtZW51LWJvcmRlci1jb2xvcik7XG4gICAgLS1fc3VibWVudS1ib3JkZXItcmFkaXVzOiB2YXIoLS1wLXNsaWRlbWVudS1ib3JkZXItcmFkaXVzKTtcbiAgICAtLV9zdWJtZW51LXBhZGRpbmc6IHZhcigtLXAtc2xpZGVtZW51LWxpc3QtcGFkZGluZyk7XG4gICAgLS1fc3VibWVudS1zaGFkb3c6IHZhcigtLXAtc2xpZGVtZW51LXNoYWRvdyk7XG5cbiAgICAucC1zbGlkZW1lbnUtYmFja3dhcmQge1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBjb2xvcjogdmFyKC0tX3N1Ym1lbnUtbGFiZWwtY29sb3IpO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgYm9yZGVyOiAwIG5vbmU7XG4gICAgICAgIGJhY2tncm91bmQ6IHZhcigtLV9zdWJtZW51LWxhYmVsLWJhY2tncm91bmQpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuXG4gICAgICAgIC5wLW1lbnVpdGVtLWxpbmsge1xuICAgICAgICAgICAgY29sb3I6IHZhcigtLV9zdWJtZW51LWxhYmVsLWNvbG9yKTtcbiAgICAgICAgICAgIHBhZGRpbmc6IHZhcigtLV9pdGVtLXBhZGRpbmcpO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBib3JkZXI6IDAgbm9uZTtcbiAgICAgICAgICAgIGZsb2F0OiBub25lO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogdmFyKC0tX2l0ZW0tYm9yZGVyLXJhZGl1cyk7XG4gICAgICAgICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIHZhcigtLV90cmFuc2l0aW9uLWR1cmF0aW9uKSwgY29sb3IgdmFyKC0tX3RyYW5zaXRpb24tZHVyYXRpb24pO1xuXG4gICAgICAgICAgICAucC1tZW51aXRlbS10ZXh0IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogdmFyKC0tX3N1Ym1lbnUtbGFiZWwtY29sb3IpO1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1fc3VibWVudS1sYWJlbC1mb250LXdlaWdodCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5wLXNsaWRlbWVudS1iYWNrLWljb24ge1xuICAgICAgICAgICAgICAgIC0tX2ljb246IHZhcigtLXAtc2xpZGVtZW51LWJhY2staWNvbik7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIGZsb2F0OiBub25lO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IHZhcigtLV9zdWJtZW51LWljb24tc2l6ZSk7XG4gICAgICAgICAgICAgICAgY29sb3I6IHZhcigtLV9zdWJtZW51LWljb24tY29sb3IpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOm5vdCgucC1zdGF0ZS1kaXNhYmxlZCk6aG92ZXIgLnAtc2xpZGVtZW51LWJhY2staWNvbixcbiAgICAgICAgICAgICYucC1zdGF0ZS1ob3ZlciAucC1zbGlkZW1lbnUtYmFjay1pY29uLFxuICAgICAgICAgICAgJi5wLXN0YXRlLWZvY3VzIC5wLXNsaWRlbWVudS1iYWNrLWljb24ge1xuICAgICAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1fc3VibWVudS1pY29uLWZvY3VzLWNvbG9yKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qIHRoZSBsaXN0IHBhZGRpbmcgb2YgdGhlIHJvb3QgbGlzdCAoLS1fc3VibWVudS1wYWRkaW5nKSwgbm8gb3ZlcmxheSBmcmFtZSAqL1xuICAgIC5wLW1lbnUtY2hpbGQge1xuICAgICAgICBib3gtc2hhZG93OiBub25lO1xuICAgICAgICBib3JkZXI6IDAgbm9uZTtcbiAgICB9XG59XG4iLCAiLypcbiAqIFNsaWRlcjogcDpzbGlkZXJcbiAqXG4gKiBTdXBwb3J0ZWQgY2xhc3NlczogcC1zbGlkZXItaG9yaXpvbnRhbCwgcC1zbGlkZXItdmVydGljYWwsIHAtc3RhdGUtZGlzYWJsZWQsIHAtc2xpZGVyLWFuaW1hdGUgKHdoaWxlIHRoZVxuICogICAgICAgICAgICAgICAgICAgIGhhbmRsZSBtb3ZlcyB0byBhIGNsaWNrZWQgLyBzZXQgdmFsdWUpLCByYW5nZSAodHdvIGhhbmRsZXMgKyAucC1zbGlkZXItcmFuZ2UpLCByYW5nZT1cIm1pblwiIC8gXCJtYXhcIlxuICovXG4ucC1zbGlkZXIge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB0ZXh0LWFsaWduOiBzdGFydDtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1wLXNsaWRlci10cmFjay1iYWNrZ3JvdW5kKTtcbiAgICBib3JkZXI6IDAgbm9uZTtcbiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1wLXNsaWRlci10cmFjay1ib3JkZXItcmFkaXVzKTtcblxuICAgIC5wLXNsaWRlci1oYW5kbGUge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHotaW5kZXg6IDI7XG4gICAgICAgIGN1cnNvcjogZ3JhYjtcbiAgICAgICAgdG91Y2gtYWN0aW9uOiBub25lO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgd2lkdGg6IHZhcigtLXAtc2xpZGVyLWhhbmRsZS13aWR0aCk7XG4gICAgICAgIGhlaWdodDogdmFyKC0tcC1zbGlkZXItaGFuZGxlLWhlaWdodCk7XG4gICAgICAgIGJhY2tncm91bmQ6IHZhcigtLXAtc2xpZGVyLWhhbmRsZS1iYWNrZ3JvdW5kKTtcbiAgICAgICAgYm9yZGVyOiAwIG5vbmU7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXAtc2xpZGVyLWhhbmRsZS1ib3JkZXItcmFkaXVzKTtcbiAgICAgICAgb3V0bGluZS1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgdmFyKC0tcC1zbGlkZXItdHJhbnNpdGlvbi1kdXJhdGlvbiksIGNvbG9yIHZhcigtLXAtc2xpZGVyLXRyYW5zaXRpb24tZHVyYXRpb24pLFxuICAgICAgICAgICAgYm9yZGVyLWNvbG9yIHZhcigtLXAtc2xpZGVyLXRyYW5zaXRpb24tZHVyYXRpb24pLCBib3gtc2hhZG93IHZhcigtLXAtc2xpZGVyLXRyYW5zaXRpb24tZHVyYXRpb24pLFxuICAgICAgICAgICAgb3V0bGluZS1jb2xvciB2YXIoLS1wLXNsaWRlci10cmFuc2l0aW9uLWR1cmF0aW9uKTtcblxuICAgICAgICAvKiBpbm5lciBrbm9iICovXG4gICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogdmFyKC0tcC1zbGlkZXItaGFuZGxlLWNvbnRlbnQtd2lkdGgpO1xuICAgICAgICAgICAgaGVpZ2h0OiB2YXIoLS1wLXNsaWRlci1oYW5kbGUtY29udGVudC1oZWlnaHQpO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tcC1zbGlkZXItaGFuZGxlLWNvbnRlbnQtYmFja2dyb3VuZCk7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1wLXNsaWRlci1oYW5kbGUtY29udGVudC1ib3JkZXItcmFkaXVzKTtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IHZhcigtLXAtc2xpZGVyLWhhbmRsZS1jb250ZW50LXNoYWRvdyk7XG4gICAgICAgICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIHZhcigtLXAtc2xpZGVyLXRyYW5zaXRpb24tZHVyYXRpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgY3Vyc29yOiBncmFiYmluZztcbiAgICAgICAgfVxuXG4gICAgICAgICY6Zm9jdXMtdmlzaWJsZSB7XG4gICAgICAgICAgICBvdXRsaW5lOiB2YXIoLS1wLXNsaWRlci1oYW5kbGUtZm9jdXMtcmluZy13aWR0aCkgdmFyKC0tcC1zbGlkZXItaGFuZGxlLWZvY3VzLXJpbmctc3R5bGUpIHZhcigtLXAtc2xpZGVyLWhhbmRsZS1mb2N1cy1yaW5nLWNvbG9yKTtcbiAgICAgICAgICAgIG91dGxpbmUtb2Zmc2V0OiB2YXIoLS1wLXNsaWRlci1oYW5kbGUtZm9jdXMtcmluZy1vZmZzZXQpO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogdmFyKC0tcC1zbGlkZXItaGFuZGxlLWZvY3VzLXJpbmctc2hhZG93KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICYucC1zdGF0ZS1kaXNhYmxlZCAucC1zbGlkZXItaGFuZGxlIHtcbiAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuICAgIH1cblxuICAgICY6bm90KC5wLXN0YXRlLWRpc2FibGVkKSAucC1zbGlkZXItaGFuZGxlOmhvdmVyIHtcbiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tcC1zbGlkZXItaGFuZGxlLWhvdmVyLWJhY2tncm91bmQpO1xuICAgIH1cblxuICAgICY6bm90KC5wLXN0YXRlLWRpc2FibGVkKSAucC1zbGlkZXItaGFuZGxlOmhvdmVyOjpiZWZvcmUge1xuICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1wLXNsaWRlci1oYW5kbGUtY29udGVudC1ob3Zlci1iYWNrZ3JvdW5kKTtcbiAgICB9XG5cbiAgICAmLnAtc2xpZGVyLWhvcml6b250YWwge1xuICAgICAgICBoZWlnaHQ6IHZhcigtLXAtc2xpZGVyLXRyYWNrLXNpemUpO1xuICAgICAgICAvKiByb29tIGZvciB0aGUgaGFuZGxlLCB3aGljaCBpcyB0YWxsZXIgdGhhbiB0aGUgdHJhY2s6IGl0IGRvZXMgbm90IG92ZXJsYXAgdGhlIG5laWdoYm9ycyAqL1xuICAgICAgICBtYXJnaW4tYmxvY2s6IGNhbGMoKHZhcigtLXAtc2xpZGVyLWhhbmRsZS1oZWlnaHQpIC0gdmFyKC0tcC1zbGlkZXItdHJhY2stc2l6ZSkpIC8gMik7XG4gICAgICAgIHRvdWNoLWFjdGlvbjogcGFuLXk7XG5cbiAgICAgICAgLnAtc2xpZGVyLXJhbmdlIHtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5wLXNsaWRlci1yYW5nZS1taW4ge1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5wLXNsaWRlci1yYW5nZS1tYXgge1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAucC1zbGlkZXItaGFuZGxlIHtcbiAgICAgICAgICAgIHRvcDogY2FsYyh2YXIoLS1wLXNsaWRlci10cmFjay1zaXplKSAvIDIgLSB2YXIoLS1wLXNsaWRlci1oYW5kbGUtaGVpZ2h0KSAvIDIpO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGNhbGMoLTEgKiB2YXIoLS1wLXNsaWRlci1oYW5kbGUtd2lkdGgpIC8gMik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLnAtc2xpZGVyLXZlcnRpY2FsIHtcbiAgICAgICAgd2lkdGg6IHZhcigtLXAtc2xpZGVyLXRyYWNrLXNpemUpO1xuICAgICAgICBoZWlnaHQ6IDEwMHB4O1xuICAgICAgICBtYXJnaW4taW5saW5lOiBjYWxjKCh2YXIoLS1wLXNsaWRlci1oYW5kbGUtd2lkdGgpIC0gdmFyKC0tcC1zbGlkZXItdHJhY2stc2l6ZSkpIC8gMik7XG4gICAgICAgIHRvdWNoLWFjdGlvbjogcGFuLXg7XG5cbiAgICAgICAgLnAtc2xpZGVyLXJhbmdlIHtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5wLXNsaWRlci1yYW5nZS1taW4ge1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgLnAtc2xpZGVyLXJhbmdlLW1heCB7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAvKiB0aGUgdmVydGljYWwgaGFuZGxlIGlzIHBvc2l0aW9uZWQgd2l0aCBib3R0b20sIHNvIHRoZSBjZW50ZXJpbmcgb2Zmc2V0IGdvZXMgdG8gbWFyZ2luLWJvdHRvbSAqL1xuICAgICAgICAucC1zbGlkZXItaGFuZGxlIHtcbiAgICAgICAgICAgIGxlZnQ6IGNhbGModmFyKC0tcC1zbGlkZXItdHJhY2stc2l6ZSkgLyAyIC0gdmFyKC0tcC1zbGlkZXItaGFuZGxlLXdpZHRoKSAvIDIpO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogY2FsYygtMSAqIHZhcigtLXAtc2xpZGVyLWhhbmRsZS1oZWlnaHQpIC8gMik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAucC1zbGlkZXItcmFuZ2Uge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHotaW5kZXg6IDE7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBib3JkZXI6IDA7XG4gICAgICAgIGJhY2tncm91bmQ6IHZhcigtLXAtc2xpZGVyLXJhbmdlLWJhY2tncm91bmQpO1xuICAgICAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1wLXNsaWRlci10cmFjay1ib3JkZXItcmFkaXVzKTtcbiAgICB9XG59XG5cbi8qIG1vdmVzIHRoZSBoYW5kbGUgLyByYW5nZSB0byBhIGNsaWNrZWQgb3Igc2V0IHZhbHVlOyBrZWVwcyB0aGUgdHJhbnNpdGlvbnMgb2YgdGhlIGhhbmRsZSBzdGF0ZXMgKi9cbi5wLXNsaWRlci5wLXNsaWRlci1hbmltYXRlIHtcbiAgICAucC1zbGlkZXItaGFuZGxlLFxuICAgIC5wLXNsaWRlci1yYW5nZSB7XG4gICAgICAgIHRyYW5zaXRpb24tcHJvcGVydHk6IGxlZnQsIGJvdHRvbSwgd2lkdGgsIGhlaWdodCwgYmFja2dyb3VuZCwgY29sb3IsIGJvcmRlci1jb2xvciwgYm94LXNoYWRvdywgb3V0bGluZS1jb2xvcjtcbiAgICAgICAgdHJhbnNpdGlvbi1kdXJhdGlvbjogdmFyKC0tcC1zbGlkZXItdHJhbnNpdGlvbi1kdXJhdGlvbik7XG4gICAgfVxufVxuXG4vKiBwOnNsaWRlciBiZWxvdyBpdHMgZGlzcGxheSBpbnB1dDsgbm8gdG9rZW4gZm9yIHRoZSBvbGQgaW5saW5lIHNwYWNpbmcsIGF0IGxlYXN0IHRoZSByb29tIGZvciB0aGUgaGFuZGxlICovXG4ucC1pbnB1dHRleHQgKyAucC1zbGlkZXItaG9yaXpvbnRhbCB7XG4gICAgbWFyZ2luLWJvdHRvbTogbWF4KHZhcigtLXAtZm9ybS1maWVsZC1wYWRkaW5nLXkpLCBjYWxjKCh2YXIoLS1wLXNsaWRlci1oYW5kbGUtaGVpZ2h0KSAtIHZhcigtLXAtc2xpZGVyLXRyYWNrLXNpemUpKSAvIDIpKTtcbn1cbiIsICIvKlxuICogU3BlZWREaWFsOiBwOnNwZWVkRGlhbFxuICpcbiAqIE1hcmt1cDogZGl2W2lkXSA+IC5wLXNwZWVkZGlhbCAoLnAtc3BlZWRkaWFsLWxpbmVhcnxjaXJjbGV8c2VtaS1jaXJjbGV8cXVhcnRlci1jaXJjbGUsIC5wLXNwZWVkZGlhbC1kaXJlY3Rpb24tKixcbiAqICAgICAgICAgLnAtc3BlZWRkaWFsLW9wZW5lZCwgLnAtZGlzYWJsZWQpXG4gKiAgICAgICAgID4gYnV0dG9uLnAtc3BlZWRkaWFsLWJ1dHRvbi5wLWJ1dHRvbi5wLWJ1dHRvbi1pY29uLW9ubHkucm91bmRlZC1idXR0b24gKC5wLXNwZWVkZGlhbC1yb3RhdGUsIC5wLXNwZWVkZGlhbC1kdWFsLWljb24pXG4gKiAgICAgICAgICsgdWwucC1zcGVlZGRpYWwtbGlzdCA+IGxpLnAtc3BlZWRkaWFsLWl0ZW0gPiBhLnAtc3BlZWRkaWFsLWFjdGlvbiAoPiAucC1zcGVlZGRpYWwtYWN0aW9uLWljb24gKyAucC1tZW51aXRlbS10ZXh0KVxuICogICAgICAgICArIGRpdi5wLXNwZWVkZGlhbC1tYXNrIChvcHRpb25hbCwgLnAtc3BlZWRkaWFsLW1hc2stdmlzaWJsZSlcbiAqIExpa2UgUHJpbWVVSVg6IHRoZSBtYWluIGJ1dHRvbiBpcyBhIHJvdW5kZWQgYnV0dG9uIChidXR0b24uY3NzKSwgdGhlIGFjdGlvbnMgYXJlIHNtYWxsIHJvdW5kZWQgc2Vjb25kYXJ5IGJ1dHRvbnMuXG4gKiBUaGUgaXRlbSAvIG1hc2sgLyByb3RhdGUgYW5pbWF0aW9ucyBrZWVwIHRoZWlyIGZpeGVkIHRpbWluZ3MsIGxpa2UgUHJpbWVVSVguXG4gKiBNYWluIGJ1dHRvbiBpY29uOiB0aGUgc2hvd0ljb24gLyBoaWRlSWNvbiBvZiB0aGUgYXBwbGljYXRpb24sIHdpdGhvdXQgc2hvd0ljb24gc3Bhbi5wLWljb24ucC1wbHVzLWljb24ucC1zcGVlZGRpYWwtc2hvdy1pY29uXG4gKiAodG9rZW4gLS1wLXNwZWVkZGlhbC1zaG93LWljb24sIHJvdGF0ZWQgYnkgcC1zcGVlZGRpYWwtcm90YXRlIHdoZW4gb3BlbmVkKS5cbiAqL1xuLnAtc3BlZWRkaWFsIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICB6LWluZGV4OiAxO1xuXG4gICAgLnAtc3BlZWRkaWFsLXNob3ctaWNvbiB7XG4gICAgICAgIC0tX2ljb246IHZhcigtLXAtc3BlZWRkaWFsLXNob3ctaWNvbik7XG4gICAgfVxuXG4gICAgLnAtc3BlZWRkaWFsLXJvdGF0ZSAucC1idXR0b24taWNvbi1sZWZ0ICsgLnAtYnV0dG9uLWljb24tbGVmdCB7XG4gICAgICAgIHRyYW5zZm9ybTogcm90YXRlKC05MGRlZyk7XG4gICAgfVxuXG4gICAgLyogZHVhbCBpY29uIChzaG93SWNvbiAvIGhpZGVJY29uKTogdGhlIHNlY29uZCBpY29uIGxpZXMgb24gdG9wIG9mIHRoZSBmaXJzdCBvbmUgKGNlbnRlcmVkIGJ5IHRoZSBmbGV4IGJ1dHRvbikgKi9cbiAgICAucC1zcGVlZGRpYWwtYnV0dG9uIC5wLWJ1dHRvbi1pY29uLWxlZnQgKyAucC1idXR0b24taWNvbi1sZWZ0IHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgIH1cbn1cblxuLnAtc3BlZWRkaWFsLWxpc3Qge1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAwO1xuICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIHRyYW5zaXRpb246IHRvcCAwcyBsaW5lYXIgdmFyKC0tcC1zcGVlZGRpYWwtdHJhbnNpdGlvbi1kdXJhdGlvbik7XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG59XG5cbi5wLXNwZWVkZGlhbC1pdGVtIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDApO1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIHZhcigtLXAtc3BlZWRkaWFsLXRyYW5zaXRpb24tZHVyYXRpb24pIHZhcigtLXAtdHJhbnNpdGlvbi1lYXNpbmcpLCBvcGFjaXR5IHZhcigtLXAtc3BlZWRkaWFsLWl0ZW0tZmFkZS1kdXJhdGlvbik7XG4gICAgd2lsbC1jaGFuZ2U6IHRyYW5zZm9ybTtcbn1cblxuLyogdGhlIG1haW4gYnV0dG9uIChyb3VuZGVkIGljb24gb25seSwgaW5jbC4gcC1idXR0b24tc20gLyAtbGcgdmlhIGJ1dHRvblN0eWxlQ2xhc3MpIGlzIHNpemVkIGJ5IGJ1dHRvbi5jc3MgKi9cbi5wLXNwZWVkZGlhbC1hY3Rpb24ge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgd2lkdGg6IHZhcigtLXAtYnV0dG9uLXNtLWljb24tb25seS13aWR0aCk7XG4gICAgaGVpZ2h0OiB2YXIoLS1wLWJ1dHRvbi1zbS1pY29uLW9ubHktd2lkdGgpO1xuICAgIGZvbnQtc2l6ZTogdmFyKC0tcC1idXR0b24tc20tZm9udC1zaXplKTtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1wLWJ1dHRvbi1zZWNvbmRhcnktYmFja2dyb3VuZCk7XG4gICAgY29sb3I6IHZhcigtLXAtYnV0dG9uLXNlY29uZGFyeS1jb2xvcik7XG4gICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tcC1idXR0b24tc2Vjb25kYXJ5LWJvcmRlci1jb2xvcik7XG4gICAgb3V0bGluZS1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIHZhcigtLXAtc3BlZWRkaWFsLXRyYW5zaXRpb24tZHVyYXRpb24pLCBjb2xvciB2YXIoLS1wLXNwZWVkZGlhbC10cmFuc2l0aW9uLWR1cmF0aW9uKSxcbiAgICAgICAgYm9yZGVyLWNvbG9yIHZhcigtLXAtc3BlZWRkaWFsLXRyYW5zaXRpb24tZHVyYXRpb24pLCBvdXRsaW5lLWNvbG9yIHZhcigtLXAtc3BlZWRkaWFsLXRyYW5zaXRpb24tZHVyYXRpb24pLFxuICAgICAgICBib3gtc2hhZG93IHZhcigtLXAtc3BlZWRkaWFsLXRyYW5zaXRpb24tZHVyYXRpb24pO1xuXG4gICAgLnAtc3BlZWRkaWFsLWFjdGlvbi1pY29uIHtcbiAgICAgICAgZm9udC1zaXplOiB2YXIoLS1wLWJ1dHRvbi1zbS1mb250LXNpemUpO1xuICAgIH1cblxuICAgIC8qIGFjdGlvbnMgYXJlIGljb24gb25seSwgYW4gZW1wdHkgbGFiZWwgbXVzdCBub3QgdGFrZSBzcGFjZSAqL1xuICAgIC5wLW1lbnVpdGVtLXRleHQ6ZW1wdHkge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cblxuICAgICY6bm90KC5wLWRpc2FibGVkKTpob3ZlciB7XG4gICAgICAgIGJhY2tncm91bmQ6IHZhcigtLXAtYnV0dG9uLXNlY29uZGFyeS1ob3Zlci1iYWNrZ3JvdW5kKTtcbiAgICAgICAgY29sb3I6IHZhcigtLXAtYnV0dG9uLXNlY29uZGFyeS1ob3Zlci1jb2xvcik7XG4gICAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tcC1idXR0b24tc2Vjb25kYXJ5LWhvdmVyLWJvcmRlci1jb2xvcik7XG4gICAgfVxuXG4gICAgJjpub3QoLnAtZGlzYWJsZWQpOmFjdGl2ZSB7XG4gICAgICAgIGJhY2tncm91bmQ6IHZhcigtLXAtYnV0dG9uLXNlY29uZGFyeS1hY3RpdmUtYmFja2dyb3VuZCk7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1wLWJ1dHRvbi1zZWNvbmRhcnktYWN0aXZlLWNvbG9yKTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1wLWJ1dHRvbi1zZWNvbmRhcnktYWN0aXZlLWJvcmRlci1jb2xvcik7XG4gICAgfVxuXG4gICAgJjpmb2N1cy12aXNpYmxlIHtcbiAgICAgICAgb3V0bGluZTogdmFyKC0tcC1idXR0b24tZm9jdXMtcmluZy13aWR0aCkgdmFyKC0tcC1idXR0b24tZm9jdXMtcmluZy1zdHlsZSkgdmFyKC0tcC1idXR0b24tc2Vjb25kYXJ5LWZvY3VzLXJpbmctY29sb3IpO1xuICAgICAgICBvdXRsaW5lLW9mZnNldDogdmFyKC0tcC1idXR0b24tZm9jdXMtcmluZy1vZmZzZXQpO1xuICAgICAgICBib3gtc2hhZG93OiB2YXIoLS1wLWJ1dHRvbi1zZWNvbmRhcnktZm9jdXMtcmluZy1zaGFkb3cpO1xuICAgIH1cbn1cblxuLyogZGlzYWJsZWQ6IHRoZSB3aG9sZSBzcGVlZGRpYWwgKGRpc2FibGVkPVwidHJ1ZVwiKSBvciBhIHNpbmdsZSBhY3Rpb24gKG1lbnVpdGVtIGRpc2FibGVkKSAqL1xuLnAtc3BlZWRkaWFsLnAtZGlzYWJsZWQgLnAtc3BlZWRkaWFsLWJ1dHRvbixcbi5wLXNwZWVkZGlhbC1hY3Rpb24ucC1kaXNhYmxlZCB7XG4gICAgb3BhY2l0eTogdmFyKC0tcC1kaXNhYmxlZC1vcGFjaXR5KTtcbiAgICBjdXJzb3I6IGRlZmF1bHQ7XG59XG5cbi5wLXNwZWVkZGlhbC1idXR0b24ucC1zcGVlZGRpYWwtcm90YXRlIC5wLWJ1dHRvbi1pY29uLWxlZnQge1xuICAgIHRyYW5zaXRpb24tZHVyYXRpb246IHZhcigtLXAtc3BlZWRkaWFsLXJvdGF0ZS1kdXJhdGlvbik7XG4gICAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IHZhcigtLXAtdHJhbnNpdGlvbi1lYXNpbmcpO1xuICAgIHRyYW5zaXRpb24tcHJvcGVydHk6IG9wYWNpdHksIHRyYW5zZm9ybTtcbn1cblxuLnAtc3BlZWRkaWFsLW1hc2sge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBsZWZ0OiAwO1xuICAgIHRvcDogMDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgb3BhY2l0eTogMDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1wLW1hc2stYmFja2dyb3VuZCk7XG4gICAgYm9yZGVyLXJhZGl1czogdmFyKC0tcC1jb250ZW50LWJvcmRlci1yYWRpdXMpO1xuICAgIHRyYW5zaXRpb246IG9wYWNpdHkgdmFyKC0tcC1zcGVlZGRpYWwtbWFzay1oaWRlLWR1cmF0aW9uKSB2YXIoLS1wLXRyYW5zaXRpb24tZWFzaW5nLWV4aXQpO1xufVxuXG4ucC1zcGVlZGRpYWwtbWFzay12aXNpYmxlIHtcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHRyYW5zaXRpb246IG9wYWNpdHkgdmFyKC0tcC1zcGVlZGRpYWwtbWFzay1zaG93LWR1cmF0aW9uKSB2YXIoLS1wLXRyYW5zaXRpb24tZWFzaW5nLWVudGVyKTtcbn1cblxuLyogYWZ0ZXIgdGhlIC5wLXNwZWVkZGlhbCBydWxlczogdGhlIG9wZW5lZCBzdGF0ZSB3aW5zIG92ZXIgdGhlbSAqL1xuLnAtc3BlZWRkaWFsLW9wZW5lZCB7XG4gICAgJi5wLXNwZWVkZGlhbCB7XG4gICAgICAgIHotaW5kZXg6IDI7XG4gICAgfVxuXG4gICAgLnAtc3BlZWRkaWFsLWxpc3Qge1xuICAgICAgICBwb2ludGVyLWV2ZW50czogYXV0bztcbiAgICB9XG5cbiAgICAucC1zcGVlZGRpYWwtaXRlbSB7XG4gICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMSk7XG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgfVxuXG4gICAgLnAtc3BlZWRkaWFsLXJvdGF0ZSAucC1idXR0b24taWNvbi1sZWZ0IHtcbiAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpO1xuICAgIH1cblxuICAgIC5wLXNwZWVkZGlhbC1kdWFsLWljb24gLnAtYnV0dG9uLWljb24tbGVmdCB7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgfVxuXG4gICAgLnAtYnV0dG9uLWljb24tbGVmdCArIC5wLWJ1dHRvbi1pY29uLWxlZnQsXG4gICAgLnAtc3BlZWRkaWFsLWJ1dHRvbiAucC1idXR0b24taWNvbi1sZWZ0ICsgLnAtYnV0dG9uLWljb24tbGVmdCB7XG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgfVxuXG4gICAgLnAtc3BlZWRkaWFsLXJvdGF0ZS5wLXNwZWVkZGlhbC1kdWFsLWljb24gLnAtYnV0dG9uLWljb24tbGVmdCB7XG4gICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDkwZGVnKTtcbiAgICB9XG5cbiAgICAucC1zcGVlZGRpYWwtcm90YXRlIC5wLWJ1dHRvbi1pY29uLWxlZnQgKyAucC1idXR0b24taWNvbi1sZWZ0IHtcbiAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7XG4gICAgfVxufVxuXG4vKiBkaXJlY3Rpb24gKi9cbi5wLXNwZWVkZGlhbC1kaXJlY3Rpb24tdXAge1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbi1yZXZlcnNlO1xuXG4gICAgLnAtc3BlZWRkaWFsLWxpc3Qge1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uLXJldmVyc2U7XG4gICAgfVxuXG4gICAgLnAtc3BlZWRkaWFsLWl0ZW0ge1xuICAgICAgICBtYXJnaW46IGNhbGModmFyKC0tcC1zcGVlZGRpYWwtZ2FwKSAvIDIpIDA7XG5cbiAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiB2YXIoLS1wLXNwZWVkZGlhbC1nYXApO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4ucC1zcGVlZGRpYWwtZGlyZWN0aW9uLWRvd24ge1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblxuICAgIC5wLXNwZWVkZGlhbC1saXN0IHtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICB9XG5cbiAgICAucC1zcGVlZGRpYWwtaXRlbSB7XG4gICAgICAgIG1hcmdpbjogY2FsYyh2YXIoLS1wLXNwZWVkZGlhbC1nYXApIC8gMikgMDtcblxuICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IHZhcigtLXAtc3BlZWRkaWFsLWdhcCk7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5wLXNwZWVkZGlhbC1kaXJlY3Rpb24tbGVmdCB7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgZmxleC1kaXJlY3Rpb246IHJvdy1yZXZlcnNlO1xuXG4gICAgLnAtc3BlZWRkaWFsLWxpc3Qge1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93LXJldmVyc2U7XG4gICAgfVxuXG4gICAgLnAtc3BlZWRkaWFsLWl0ZW0ge1xuICAgICAgICBtYXJnaW46IDAgY2FsYyh2YXIoLS1wLXNwZWVkZGlhbC1nYXApIC8gMik7XG5cbiAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IHZhcigtLXAtc3BlZWRkaWFsLWdhcCk7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5wLXNwZWVkZGlhbC1kaXJlY3Rpb24tcmlnaHQge1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG5cbiAgICAucC1zcGVlZGRpYWwtbGlzdCB7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgfVxuXG4gICAgLnAtc3BlZWRkaWFsLWl0ZW0ge1xuICAgICAgICBtYXJnaW46IDAgY2FsYyh2YXIoLS1wLXNwZWVkZGlhbC1nYXApIC8gMik7XG5cbiAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogdmFyKC0tcC1zcGVlZGRpYWwtZ2FwKTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLyogY2lyY2xlIHR5cGVzOiB0aGUgY29tcG9uZW50IHBvc2l0aW9ucyB0aGUgaXRlbXMsIGFmdGVyIHRoZSBkaXJlY3Rpb24gbWFyZ2lucyAqL1xuLnAtc3BlZWRkaWFsLWNpcmNsZSxcbi5wLXNwZWVkZGlhbC1zZW1pLWNpcmNsZSxcbi5wLXNwZWVkZGlhbC1xdWFydGVyLWNpcmNsZSB7XG4gICAgLnAtc3BlZWRkaWFsLWl0ZW0ge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICB9XG5cbiAgICAucC1zcGVlZGRpYWwtaXRlbTpmaXJzdC1jaGlsZCB7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICB9XG59XG4iLCAiLypcbiAqIFNwaW5uZXI6IHA6c3Bpbm5lciAoUHJpbWVVSVg6IGlucHV0bnVtYmVyKVxuICpcbiAqIFRoZSBidXR0b25zIGFyZSAucC1idXR0b24sIHNvIG9ubHkgdGhlIHByaXZhdGUgYnV0dG9uIHZhcmlhYmxlcyBvZiBidXR0b24uY3NzIGFyZSByZW1hcHBlZCxcbiAqIGFsbCBidXR0b24gc3RhdGVzIGtlZXAgd29ya2luZy5cbiAqIEJ1dHRvbiBsYXlvdXRzIChjbGFzcyBvbiAucC1zcGlubmVyKTogcC1zcGlubmVyLXN0YWNrZWQgKGRlZmF1bHQpLCBwLXNwaW5uZXItaG9yaXpvbnRhbCAoLSBpbnB1dCArKSxcbiAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHAtc3Bpbm5lci1ob3Jpem9udGFsLWFmdGVyIChpbnB1dCAtICspLCBwLXNwaW5uZXItdmVydGljYWwgKCsgYWJvdmUsIC0gYmVsb3cpXG4gKiBTdXBwb3J0ZWQgY2xhc3NlczogcC1zcGlubmVyLXJ0bCwgcC1zdGF0ZS1lcnJvciAvIHAtc3RhdGUtZGlzYWJsZWQgKG9uIGlucHV0IGFuZCBidXR0b25zKSxcbiAqICAgICAgICAgICAgICAgICAgICB0ZXh0LWxlZnQgLyB0ZXh0LWNlbnRlciAvIHRleHQtcmlnaHQgKGlucHV0IGFsaWdubWVudClcbiAqL1xuLnAtc3Bpbm5lciB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIG92ZXJmbG93OiB2aXNpYmxlO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG5cbiAgICAvKiBkaXNhYmxlZDogdGhlIHJvb3QgY2FycmllcyBwLXN0YXRlLWRpc2FibGVkIHRvbzsgdGhlIGlucHV0IHNob3dzIHRoZSBkaXNhYmxlZCBmaWVsZCBsb29rIChsaWtlIHA6aW5wdXRUZXh0KSwgc29cbiAgICAgICB0aGUgcm9vdCBpcyBub3QgZmFkZWQgb24gdG9wIG9mIGl0LCBvbmx5IHRoZSBidXR0b25zICovXG4gICAgJi5wLXN0YXRlLWRpc2FibGVkIHtcbiAgICAgICAgb3BhY2l0eTogMTtcblxuICAgICAgICA+IC5wLXNwaW5uZXItYnV0dG9uIHtcbiAgICAgICAgICAgIG9wYWNpdHk6IHZhcigtLXAtZGlzYWJsZWQtb3BhY2l0eSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAucC1zcGlubmVyLWlucHV0IHtcbiAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBmb250LXZhcmlhbnQtbnVtZXJpYzogdGFidWxhci1udW1zO1xuXG4gICAgICAgICZbZGlyPVwicnRsXCJdIHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLnRleHQtbGVmdCAucC1zcGlubmVyLWlucHV0IHtcbiAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICB9XG5cbiAgICAmLnRleHQtY2VudGVyIC5wLXNwaW5uZXItaW5wdXQge1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgfVxuXG4gICAgJi50ZXh0LXJpZ2h0IC5wLXNwaW5uZXItaW5wdXQge1xuICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICB9XG5cbiAgICAucC1zcGlubmVyLWJ1dHRvbiB7XG4gICAgICAgIGN1cnNvcjogZGVmYXVsdDtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB6LWluZGV4OiAxO1xuICAgIH1cblxuICAgIC5wLXNwaW5uZXItdXAge1xuICAgICAgICB0b3A6IDA7XG4gICAgfVxuXG4gICAgLnAtc3Bpbm5lci1kb3duIHtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgIH1cblxuICAgIC5wLXNwaW5uZXItYnV0dG9uLnAtYnV0dG9uIHtcbiAgICAgICAgLS1fYmc6IHZhcigtLXAtaW5wdXRudW1iZXItYnV0dG9uLWJhY2tncm91bmQpO1xuICAgICAgICAtLV9ob3Zlci1iZzogdmFyKC0tcC1pbnB1dG51bWJlci1idXR0b24taG92ZXItYmFja2dyb3VuZCk7XG4gICAgICAgIC0tX2FjdGl2ZS1iZzogdmFyKC0tcC1pbnB1dG51bWJlci1idXR0b24tYWN0aXZlLWJhY2tncm91bmQpO1xuICAgICAgICAtLV9ib3JkZXI6IHZhcigtLXAtaW5wdXRudW1iZXItYnV0dG9uLWJvcmRlci1jb2xvcik7XG4gICAgICAgIC0tX2hvdmVyLWJvcmRlcjogdmFyKC0tcC1pbnB1dG51bWJlci1idXR0b24taG92ZXItYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgLS1fYWN0aXZlLWJvcmRlcjogdmFyKC0tcC1pbnB1dG51bWJlci1idXR0b24tYWN0aXZlLWJvcmRlci1jb2xvcik7XG4gICAgICAgIC0tX2NvbG9yOiB2YXIoLS1wLWlucHV0bnVtYmVyLWJ1dHRvbi1jb2xvcik7XG4gICAgICAgIC0tX2hvdmVyLWNvbG9yOiB2YXIoLS1wLWlucHV0bnVtYmVyLWJ1dHRvbi1ob3Zlci1jb2xvcik7XG4gICAgICAgIC0tX2FjdGl2ZS1jb2xvcjogdmFyKC0tcC1pbnB1dG51bWJlci1idXR0b24tYWN0aXZlLWNvbG9yKTtcblxuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICB3aWR0aDogdmFyKC0tcC1pbnB1dG51bWJlci1idXR0b24td2lkdGgpO1xuICAgICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIHZhcigtLXAtaW5wdXRudW1iZXItdHJhbnNpdGlvbi1kdXJhdGlvbiksIGNvbG9yIHZhcigtLXAtaW5wdXRudW1iZXItdHJhbnNpdGlvbi1kdXJhdGlvbiksXG4gICAgICAgICAgICBib3JkZXItY29sb3IgdmFyKC0tcC1pbnB1dG51bWJlci10cmFuc2l0aW9uLWR1cmF0aW9uKSwgb3V0bGluZS1jb2xvciB2YXIoLS1wLWlucHV0bnVtYmVyLXRyYW5zaXRpb24tZHVyYXRpb24pO1xuXG4gICAgICAgIC5wLWJ1dHRvbi10ZXh0IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAucC1pY29uIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgbGVmdDogNTAlO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG4gICAgICAgICAgICBmb250LXNpemU6IHZhcigtLXAtaWNvbi1zaXplKTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgICAgICB9XG5cbiAgICAgICAgLyogaW52YWxpZDogdGhlIGJ1dHRvbnMgZm9sbG93IHRoZSBpbnB1dCBib3JkZXIgKi9cbiAgICAgICAgJi5wLXN0YXRlLWVycm9yIHtcbiAgICAgICAgICAgIC0tX2JvcmRlcjogdmFyKC0tcC1mb3JtLWZpZWxkLWludmFsaWQtYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgICAgIC0tX2hvdmVyLWJvcmRlcjogdmFyKC0tcC1mb3JtLWZpZWxkLWludmFsaWQtYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgICAgIC0tX2FjdGl2ZS1ib3JkZXI6IHZhcigtLXAtZm9ybS1maWVsZC1pbnZhbGlkLWJvcmRlci1jb2xvcik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAucC1zcGlubmVyLWluY3JlbWVudC1pY29uIHtcbiAgICAgICAgLS1faWNvbjogdmFyKC0tcC1pbnB1dG51bWJlci1pbmNyZW1lbnQtaWNvbik7XG4gICAgfVxuXG4gICAgLnAtc3Bpbm5lci1kZWNyZW1lbnQtaWNvbiB7XG4gICAgICAgIC0tX2ljb246IHZhcigtLXAtaW5wdXRudW1iZXItZGVjcmVtZW50LWljb24pO1xuICAgIH1cblxuICAgIC8qIGhvcml6b250YWwgLyB2ZXJ0aWNhbDogcGx1cyAvIG1pbnVzOyBubyBpbnB1dG51bWJlciB0b2tlbnMgZm9yIHRoZW0sIHRoZSBnZW5lcmljIGljb24gdG9rZW5zICovXG4gICAgJjppcygucC1zcGlubmVyLWhvcml6b250YWwsIC5wLXNwaW5uZXItaG9yaXpvbnRhbC1hZnRlciwgLnAtc3Bpbm5lci12ZXJ0aWNhbCkge1xuICAgICAgICAucC1zcGlubmVyLWluY3JlbWVudC1pY29uIHtcbiAgICAgICAgICAgIC0tX2ljb246IHZhcigtLXAtaWNvbi1wbHVzKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5wLXNwaW5uZXItZGVjcmVtZW50LWljb24ge1xuICAgICAgICAgICAgLS1faWNvbjogdmFyKC0tcC1pY29uLW1pbnVzKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qIHN0YWNrZWQgKGRlZmF1bHQpOiB0aGUgYnV0dG9ucyBzaXQgaW5zaWRlIHRoZSBpbnB1dCBib3JkZXIgbGlrZSB0aGUgUHJpbWVVSVggc3RhY2tlZCBpbnB1dG51bWJlciAqL1xuICAgICYucC1zcGlubmVyLXN0YWNrZWQge1xuICAgICAgICAucC1zcGlubmVyLWlucHV0IHtcbiAgICAgICAgICAgIHBhZGRpbmctaW5saW5lLWVuZDogY2FsYyh2YXIoLS1wLWlucHV0bnVtYmVyLWJ1dHRvbi13aWR0aCkgKyB2YXIoLS1wLWZvcm0tZmllbGQtcGFkZGluZy14KSk7XG4gICAgICAgIH1cblxuICAgICAgICAucC1zcGlubmVyLWJ1dHRvbi5wLWJ1dHRvbiB7XG4gICAgICAgICAgICAtLV9ib3JkZXI6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgLS1faG92ZXItYm9yZGVyOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIC0tX2FjdGl2ZS1ib3JkZXI6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgaGVpZ2h0OiBjYWxjKDUwJSAtIDFweCk7XG4gICAgICAgICAgICByaWdodDogMXB4O1xuICAgICAgICB9XG5cbiAgICAgICAgLnAtc3Bpbm5lci1idXR0b24ucC1zcGlubmVyLXVwIHtcbiAgICAgICAgICAgIHRvcDogMXB4O1xuICAgICAgICAgICAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IGNhbGModmFyKC0tcC1pbnB1dG51bWJlci1idXR0b24tYm9yZGVyLXJhZGl1cykgLSAxcHgpO1xuICAgICAgICB9XG5cbiAgICAgICAgLnAtc3Bpbm5lci1idXR0b24ucC1zcGlubmVyLWRvd24ge1xuICAgICAgICAgICAgYm90dG9tOiAxcHg7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogY2FsYyh2YXIoLS1wLWlucHV0bnVtYmVyLWJ1dHRvbi1ib3JkZXItcmFkaXVzKSAtIDFweCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLnAtc3Bpbm5lci1zdGFja2VkLnAtc3Bpbm5lci1ydGwge1xuICAgICAgICAucC1zcGlubmVyLWJ1dHRvbi5wLWJ1dHRvbiB7XG4gICAgICAgICAgICByaWdodDogYXV0bztcbiAgICAgICAgICAgIGxlZnQ6IDFweDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5wLXNwaW5uZXItYnV0dG9uLnAtc3Bpbm5lci11cCB7XG4gICAgICAgICAgICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogMDtcbiAgICAgICAgICAgIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IGNhbGModmFyKC0tcC1pbnB1dG51bWJlci1idXR0b24tYm9yZGVyLXJhZGl1cykgLSAxcHgpO1xuICAgICAgICB9XG5cbiAgICAgICAgLnAtc3Bpbm5lci1idXR0b24ucC1zcGlubmVyLWRvd24ge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDA7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiBjYWxjKHZhcigtLXAtaW5wdXRudW1iZXItYnV0dG9uLWJvcmRlci1yYWRpdXMpIC0gMXB4KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qIGhvcml6b250YWw6IFstXSBpbnB1dCBbK10sIHRoZSBidXR0b25zIGNvdmVyIHRoZSBpbnB1dCBlZGdlcyBhbmQgZHJhdyB0aGUgb3V0ZXIgY29ybmVycyAqL1xuICAgICYucC1zcGlubmVyLWhvcml6b250YWwgLnAtc3Bpbm5lci1pbnB1dCB7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgcGFkZGluZy1pbmxpbmU6IGNhbGModmFyKC0tcC1pbnB1dG51bWJlci1idXR0b24td2lkdGgpICsgdmFyKC0tcC1mb3JtLWZpZWxkLXBhZGRpbmcteCkpO1xuICAgIH1cblxuICAgICYucC1zcGlubmVyLWhvcml6b250YWwgLnAtc3Bpbm5lci1idXR0b24ucC1idXR0b24sXG4gICAgJi5wLXNwaW5uZXItaG9yaXpvbnRhbC1hZnRlciAucC1zcGlubmVyLWJ1dHRvbi5wLWJ1dHRvbiB7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgYm90dG9tOiBhdXRvO1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgfVxuXG4gICAgJi5wLXNwaW5uZXItaG9yaXpvbnRhbCB7XG4gICAgICAgIC5wLXNwaW5uZXItYnV0dG9uLnAtc3Bpbm5lci11cCB7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIGxlZnQ6IGF1dG87XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwIHZhcigtLXAtaW5wdXRudW1iZXItYnV0dG9uLWJvcmRlci1yYWRpdXMpIHZhcigtLXAtaW5wdXRudW1iZXItYnV0dG9uLWJvcmRlci1yYWRpdXMpIDA7XG4gICAgICAgIH1cblxuICAgICAgICAucC1zcGlubmVyLWJ1dHRvbi5wLXNwaW5uZXItZG93biB7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1wLWlucHV0bnVtYmVyLWJ1dHRvbi1ib3JkZXItcmFkaXVzKSAwIDAgdmFyKC0tcC1pbnB1dG51bWJlci1idXR0b24tYm9yZGVyLXJhZGl1cyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLnAtc3Bpbm5lci1ob3Jpem9udGFsLnAtc3Bpbm5lci1ydGwge1xuICAgICAgICAucC1zcGlubmVyLWJ1dHRvbi5wLXNwaW5uZXItdXAge1xuICAgICAgICAgICAgcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogdmFyKC0tcC1pbnB1dG51bWJlci1idXR0b24tYm9yZGVyLXJhZGl1cykgMCAwIHZhcigtLXAtaW5wdXRudW1iZXItYnV0dG9uLWJvcmRlci1yYWRpdXMpO1xuICAgICAgICB9XG5cbiAgICAgICAgLnAtc3Bpbm5lci1idXR0b24ucC1zcGlubmVyLWRvd24ge1xuICAgICAgICAgICAgbGVmdDogYXV0bztcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMCB2YXIoLS1wLWlucHV0bnVtYmVyLWJ1dHRvbi1ib3JkZXItcmFkaXVzKSB2YXIoLS1wLWlucHV0bnVtYmVyLWJ1dHRvbi1ib3JkZXItcmFkaXVzKSAwO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyogaG9yaXpvbnRhbC1hZnRlcjogaW5wdXQgWy1dWytdICovXG4gICAgJi5wLXNwaW5uZXItaG9yaXpvbnRhbC1hZnRlciB7XG4gICAgICAgIC5wLXNwaW5uZXItaW5wdXQge1xuICAgICAgICAgICAgcGFkZGluZy1pbmxpbmUtZW5kOiBjYWxjKHZhcigtLXAtaW5wdXRudW1iZXItYnV0dG9uLXdpZHRoKSAqIDIgKyB2YXIoLS1wLWZvcm0tZmllbGQtcGFkZGluZy14KSk7XG4gICAgICAgIH1cblxuICAgICAgICAucC1zcGlubmVyLWJ1dHRvbi5wLXNwaW5uZXItdXAge1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwIHZhcigtLXAtaW5wdXRudW1iZXItYnV0dG9uLWJvcmRlci1yYWRpdXMpIHZhcigtLXAtaW5wdXRudW1iZXItYnV0dG9uLWJvcmRlci1yYWRpdXMpIDA7XG4gICAgICAgIH1cblxuICAgICAgICAucC1zcGlubmVyLWJ1dHRvbi5wLXNwaW5uZXItZG93biB7XG4gICAgICAgICAgICByaWdodDogY2FsYyh2YXIoLS1wLWlucHV0bnVtYmVyLWJ1dHRvbi13aWR0aCkgLSAxcHgpO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICYucC1zcGlubmVyLWhvcml6b250YWwtYWZ0ZXIucC1zcGlubmVyLXJ0bCB7XG4gICAgICAgIC5wLXNwaW5uZXItaW5wdXQge1xuICAgICAgICAgICAgcGFkZGluZy1pbmxpbmUtZW5kOiB2YXIoLS1wLWZvcm0tZmllbGQtcGFkZGluZy14KTtcbiAgICAgICAgICAgIHBhZGRpbmctaW5saW5lLXN0YXJ0OiBjYWxjKHZhcigtLXAtaW5wdXRudW1iZXItYnV0dG9uLXdpZHRoKSAqIDIgKyB2YXIoLS1wLWZvcm0tZmllbGQtcGFkZGluZy14KSk7XG4gICAgICAgIH1cblxuICAgICAgICAucC1zcGlubmVyLWJ1dHRvbi5wLXNwaW5uZXItdXAge1xuICAgICAgICAgICAgcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogdmFyKC0tcC1pbnB1dG51bWJlci1idXR0b24tYm9yZGVyLXJhZGl1cykgMCAwIHZhcigtLXAtaW5wdXRudW1iZXItYnV0dG9uLWJvcmRlci1yYWRpdXMpO1xuICAgICAgICB9XG5cbiAgICAgICAgLnAtc3Bpbm5lci1idXR0b24ucC1zcGlubmVyLWRvd24ge1xuICAgICAgICAgICAgcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBsZWZ0OiBjYWxjKHZhcigtLXAtaW5wdXRudW1iZXItYnV0dG9uLXdpZHRoKSAtIDFweCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiB2ZXJ0aWNhbDogWytdIGFib3ZlLCBbLV0gYmVsb3csIGZ1bGwgd2lkdGggKi9cbiAgICAmLnAtc3Bpbm5lci12ZXJ0aWNhbCB7XG4gICAgICAgIC5wLXNwaW5uZXItaW5wdXQge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgcGFkZGluZy1ibG9jazogY2FsYyh2YXIoLS1wLWlucHV0bnVtYmVyLWJ1dHRvbi13aWR0aCkgKyB2YXIoLS1wLWZvcm0tZmllbGQtcGFkZGluZy15KSk7XG4gICAgICAgICAgICBwYWRkaW5nLWlubGluZTogdmFyKC0tcC1mb3JtLWZpZWxkLXBhZGRpbmcteCk7XG4gICAgICAgIH1cblxuICAgICAgICAucC1zcGlubmVyLWJ1dHRvbi5wLWJ1dHRvbiB7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGhlaWdodDogdmFyKC0tcC1pbnB1dG51bWJlci1idXR0b24td2lkdGgpO1xuICAgICAgICB9XG5cbiAgICAgICAgLnAtc3Bpbm5lci1idXR0b24ucC1zcGlubmVyLXVwIHtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXAtaW5wdXRudW1iZXItYnV0dG9uLWJvcmRlci1yYWRpdXMpIHZhcigtLXAtaW5wdXRudW1iZXItYnV0dG9uLWJvcmRlci1yYWRpdXMpIDAgMDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5wLXNwaW5uZXItYnV0dG9uLnAtc3Bpbm5lci1kb3duIHtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDAgMCB2YXIoLS1wLWlucHV0bnVtYmVyLWJ1dHRvbi1ib3JkZXItcmFkaXVzKSB2YXIoLS1wLWlucHV0bnVtYmVyLWJ1dHRvbi1ib3JkZXItcmFkaXVzKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qIHNpemVzOiB0aGUgaW5wdXQgY2FycmllcyBwLWlucHV0dGV4dC1zbSAvIC1sZyAoZm9ybXMvaW5wdXRmaWVsZC5jc3MpLCB0aGUgaWNvbnMgZm9sbG93ICovXG4gICAgJjpoYXMoPiAucC1pbnB1dHRleHQtc20pIC5wLXNwaW5uZXItYnV0dG9uIC5wLWljb24ge1xuICAgICAgICBmb250LXNpemU6IHZhcigtLXAtZm9ybS1maWVsZC1zbS1mb250LXNpemUpO1xuICAgIH1cblxuICAgICY6aGFzKD4gLnAtaW5wdXR0ZXh0LWxnKSAucC1zcGlubmVyLWJ1dHRvbiAucC1pY29uIHtcbiAgICAgICAgZm9udC1zaXplOiB2YXIoLS1wLWZvcm0tZmllbGQtbGctZm9udC1zaXplKTtcbiAgICB9XG59XG5cbi5wLWZsdWlkIC5wLXNwaW5uZXIge1xuICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgLnAtc3Bpbm5lci1pbnB1dCB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgIH1cbn1cblxuLyogY2xpZW50IHNpZGUgdmFsaWRhdGlvbiBtYXJrcyB0aGUgd3JhcHBlciAodGhlIHNlcnZlciBtYXJrcyBpbnB1dCBhbmQgYnV0dG9ucykgKi9cbi5wLXNwaW5uZXIucC1zdGF0ZS1lcnJvciB7XG4gICAgLnAtc3Bpbm5lci1pbnB1dCxcbiAgICAucC1zcGlubmVyLWlucHV0OmlzKDpob3ZlciwgOmZvY3VzLCAucC1zdGF0ZS1ob3ZlciwgLnAtc3RhdGUtZm9jdXMpIHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1wLWlucHV0dGV4dC1pbnZhbGlkLWJvcmRlci1jb2xvcik7XG4gICAgfVxuXG4gICAgLnAtc3Bpbm5lci1idXR0b24ge1xuICAgICAgICAtLV9ib3JkZXI6IHZhcigtLXAtZm9ybS1maWVsZC1pbnZhbGlkLWJvcmRlci1jb2xvcik7XG4gICAgICAgIC0tX2hvdmVyLWJvcmRlcjogdmFyKC0tcC1mb3JtLWZpZWxkLWludmFsaWQtYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgLS1fYWN0aXZlLWJvcmRlcjogdmFyKC0tcC1mb3JtLWZpZWxkLWludmFsaWQtYm9yZGVyLWNvbG9yKTtcbiAgICB9XG59XG4iLCAiLypcbiAqIFNwbGl0QnV0dG9uOiBwOnNwbGl0QnV0dG9uXG4gKlxuICogTWFya3VwOiBkaXYucC1zcGxpdGJ1dHRvbiA+IGJ1dHRvbi5wLWJ1dHRvbiAoZGVmYXVsdCBjb21tYW5kKSArIGJ1dHRvbi5wLXNwbGl0YnV0dG9uLW1lbnVidXR0b25cbiAqICAgICAgICAgb3ZlcmxheTogLnAtbWVudS5wLXNwbGl0YnV0dG9ubWVudSAoc3R5bGVkIGJ5IG1lbnUvbWVudS5iYXNlLmNzcykgPiAucC1zcGxpdGJ1dHRvbm1lbnUtZmlsdGVyLWNvbnRhaW5lciAob3B0aW9uYWwpXG4gKiAgICAgICAgICsgLnAtc3BsaXRidXR0b25tZW51LWxpc3Qtd3JhcHBlciA+IHVsLnAtbWVudS1saXN0XG4gKiBUaGUgYnV0dG9ucyB0aGVtc2VsdmVzIGFyZSBzdHlsZWQgYnkgYnV0dG9uLmNzcyAoc2V2ZXJpdGllcywgb3V0bGluZWQsIGZsYXQsIHJhaXNlZCwgc2l6ZXMgYXJlIHB1dCBvbiB0aGVcbiAqIC5wLXNwbGl0YnV0dG9uIGFuZCBtYXBwZWQgdG8gYm90aCBidXR0b25zIHRoZXJlKSwgdGhpcyBmaWxlIG9ubHkgam9pbnMgdGhlbS5cbiAqL1xuLnAtc3BsaXRidXR0b24ge1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1wLXNwbGl0YnV0dG9uLWJvcmRlci1yYWRpdXMpO1xuXG4gICAgPiAucC1idXR0b24ge1xuICAgICAgICBtYXJnaW46IDA7XG5cbiAgICAgICAgLyogZGVmYXVsdCBidXR0b246IGpvaW5lZCB0byB0aGUgbWVudSBidXR0b24gb24gaXRzIGVuZCBzaWRlICovXG4gICAgICAgICY6aGFzKCsgLnAtc3BsaXRidXR0b24tbWVudWJ1dHRvbikge1xuICAgICAgICAgICAgYm9yZGVyLXN0YXJ0LWVuZC1yYWRpdXM6IDA7XG4gICAgICAgICAgICBib3JkZXItZW5kLWVuZC1yYWRpdXM6IDA7XG4gICAgICAgICAgICBib3JkZXItaW5saW5lLWVuZC13aWR0aDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICY6Zm9jdXMtdmlzaWJsZSB7XG4gICAgICAgICAgICB6LWluZGV4OiAxO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLnAtYnV0dG9uLnAtc3BsaXRidXR0b24tbWVudWJ1dHRvbiB7XG4gICAgICAgIGJvcmRlci1zdGFydC1zdGFydC1yYWRpdXM6IDA7XG4gICAgICAgIGJvcmRlci1lbmQtc3RhcnQtcmFkaXVzOiAwO1xuXG4gICAgICAgIC5wLXNwbGl0YnV0dG9uLWRyb3Bkb3duLWljb24ge1xuICAgICAgICAgICAgLS1faWNvbjogdmFyKC0tcC1zcGxpdGJ1dHRvbi1kcm9wZG93bi1pY29uKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qIHJhaXNlZDogb25lIHNoYWRvdyBhcm91bmQgdGhlIHdob2xlIGdyb3VwIGluc3RlYWQgb2Ygb25lIHBlciBidXR0b24gKGJ1dHRvbi5jc3Mgc2V0cyBpdCBvbiBib3RoKSAqL1xuICAgICYucC1idXR0b24tcmFpc2VkIHtcbiAgICAgICAgYm94LXNoYWRvdzogdmFyKC0tcC1zcGxpdGJ1dHRvbi1yYWlzZWQtc2hhZG93KTtcblxuICAgICAgICA+IC5wLWJ1dHRvbjpub3QoOmZvY3VzLXZpc2libGUpIHtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLnJvdW5kZWQtYnV0dG9uIHtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogdmFyKC0tcC1zcGxpdGJ1dHRvbi1yb3VuZGVkLWJvcmRlci1yYWRpdXMpO1xuXG4gICAgICAgID4gLnAtYnV0dG9uOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgIGJvcmRlci1zdGFydC1zdGFydC1yYWRpdXM6IHZhcigtLXAtc3BsaXRidXR0b24tcm91bmRlZC1ib3JkZXItcmFkaXVzKTtcbiAgICAgICAgICAgIGJvcmRlci1lbmQtc3RhcnQtcmFkaXVzOiB2YXIoLS1wLXNwbGl0YnV0dG9uLXJvdW5kZWQtYm9yZGVyLXJhZGl1cyk7XG4gICAgICAgIH1cblxuICAgICAgICAucC1idXR0b24ucC1zcGxpdGJ1dHRvbi1tZW51YnV0dG9uIHtcbiAgICAgICAgICAgIGJvcmRlci1zdGFydC1lbmQtcmFkaXVzOiB2YXIoLS1wLXNwbGl0YnV0dG9uLXJvdW5kZWQtYm9yZGVyLXJhZGl1cyk7XG4gICAgICAgICAgICBib3JkZXItZW5kLWVuZC1yYWRpdXM6IHZhcigtLXAtc3BsaXRidXR0b24tcm91bmRlZC1ib3JkZXItcmFkaXVzKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qIG1lbnUgbm90IGFwcGVuZGVkIHRvIHRoZSBib2R5ICovXG4gICAgLnAtc3BsaXRidXR0b25tZW51IHtcbiAgICAgICAgbWluLXdpZHRoOiAxMDAlO1xuICAgIH1cbn1cblxuLnAtc3BsaXRidXR0b25tZW51IHtcbiAgICB3aWR0aDogYXV0bztcblxuICAgIC5wLXNwbGl0YnV0dG9ubWVudS1maWx0ZXItY29udGFpbmVyIHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBwYWRkaW5nOiB2YXIoLS1wLWxpc3QtaGVhZGVyLXBhZGRpbmcpO1xuICAgICAgICAvKiBpbmxpbmUgcGFkZGluZyBmaXhlZCB0byBvbmUgdG9rZW4gc28gdGhlIHNlYXJjaCBpY29uIHBvc2l0aW9uIGNhbiBiZSBkZXJpdmVkIGZyb20gaXQgKi9cbiAgICAgICAgcGFkZGluZy1pbmxpbmU6IHZhcigtLXAtZm9ybS1maWVsZC1wYWRkaW5nLXgpO1xuICAgICAgICBib3JkZXItYm90dG9tOiAwIG5vbmU7XG4gICAgICAgIGJhY2tncm91bmQ6IHZhcigtLXAtbWVudS1iYWNrZ3JvdW5kKTtcbiAgICAgICAgY29sb3I6IHZhcigtLXAtbWVudS1jb2xvcik7XG5cbiAgICAgICAgLnAtc3BsaXRidXR0b25tZW51LWZpbHRlci5wLWlucHV0ZmllbGQge1xuICAgICAgICAgICAgcGFkZGluZzogdmFyKC0tcC1mb3JtLWZpZWxkLXBhZGRpbmcteSkgdmFyKC0tcC1mb3JtLWZpZWxkLXBhZGRpbmcteCk7XG4gICAgICAgICAgICBwYWRkaW5nLWlubGluZS1zdGFydDogY2FsYygyICogdmFyKC0tcC1mb3JtLWZpZWxkLXBhZGRpbmcteCkgKyB2YXIoLS1wLWljb24tc2l6ZSkpO1xuICAgICAgICB9XG5cbiAgICAgICAgLnAtc3BsaXRidXR0b24tZmlsdGVyLWljb24ge1xuICAgICAgICAgICAgLS1faWNvbjogdmFyKC0tcC1zcGxpdGJ1dHRvbi1maWx0ZXItaWNvbik7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBpbnNldC1pbmxpbmUtc3RhcnQ6IGNhbGMoMiAqIHZhcigtLXAtZm9ybS1maWVsZC1wYWRkaW5nLXgpKTtcbiAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogY2FsYyh2YXIoLS1wLWljb24tc2l6ZSkgLyAtMik7XG4gICAgICAgICAgICBjb2xvcjogdmFyKC0tcC1mb3JtLWZpZWxkLWljb24tY29sb3IpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLnAtc3BsaXRidXR0b25tZW51LWZpbHRlciB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgIH1cblxuICAgIC5wLXNwbGl0YnV0dG9ubWVudS1saXN0LXdyYXBwZXIge1xuICAgICAgICBvdmVyZmxvdzogYXV0bztcbiAgICB9XG5cbiAgICAucC1kaXZpZGVyLWhvcml6b250YWwge1xuICAgICAgICB3aWR0aDogYXV0bztcbiAgICB9XG59XG5cbi5wLWZsdWlkIHtcbiAgICAucC1zcGxpdGJ1dHRvbiB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICAgIC5wLWJ1dHRvbiB7XG4gICAgICAgICAgICBmbGV4OiAxIDEgYXV0bztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICAgICAgICAmLnAtc3BsaXRidXR0b24tbWVudWJ1dHRvbiB7XG4gICAgICAgICAgICAgICAgZmxleDogMCAwIGF1dG87XG4gICAgICAgICAgICAgICAgd2lkdGg6IHZhcigtLXAtYnV0dG9uLWljb24tb25seS13aWR0aCk7XG5cbiAgICAgICAgICAgICAgICAmLnAtYnV0dG9uLXNtIHtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IHZhcigtLXAtYnV0dG9uLXNtLWljb24tb25seS13aWR0aCk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJi5wLWJ1dHRvbi1sZyB7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiB2YXIoLS1wLWJ1dHRvbi1sZy1pY29uLW9ubHktd2lkdGgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cbiIsICIvKlxuICogU3BsaXR0ZXI6IHA6c3BsaXR0ZXIgKGxheW91dCBob3Jpem9udGFsIHwgdmVydGljYWwsIG5lc3RlZCBzcGxpdHRlcnMpXG4gKlxuICogVGhlIGd1dHRlciBzaXplIGlzIHNldCBpbmxpbmUgYnkgdGhlIGNvbXBvbmVudCAoZ3V0dGVyU2l6ZSk7IC5wLXNwbGl0dGVyLWd1dHRlci1yZXNpemluZyAvIC5wLXNwbGl0dGVyLXJlc2l6aW5nXG4gKiBhcmUgc2V0IHdoaWxlIGRyYWdnaW5nLlxuICovXG5cbi5wLXNwbGl0dGVyIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtd3JhcDogbm93cmFwO1xuICAgIGJhY2tncm91bmQ6IHZhcigtLXAtc3BsaXR0ZXItYmFja2dyb3VuZCk7XG4gICAgY29sb3I6IHZhcigtLXAtc3BsaXR0ZXItY29sb3IpO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLXAtc3BsaXR0ZXItYm9yZGVyLWNvbG9yKTtcbiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1wLWJvcmRlci1yYWRpdXMtbWQpO1xuXG4gICAgLnAtc3BsaXR0ZXItZ3V0dGVyIHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAxO1xuICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1wLXNwbGl0dGVyLWd1dHRlci1iYWNrZ3JvdW5kKTtcbiAgICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCB2YXIoLS1wLXNwbGl0dGVyLXRyYW5zaXRpb24tZHVyYXRpb24pO1xuXG4gICAgICAgIC5wLXNwbGl0dGVyLWd1dHRlci1oYW5kbGUge1xuICAgICAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tcC1zcGxpdHRlci1oYW5kbGUtYmFja2dyb3VuZCk7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1wLXNwbGl0dGVyLWhhbmRsZS1ib3JkZXItcmFkaXVzKTtcbiAgICAgICAgICAgIG91dGxpbmUtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCB2YXIoLS1wLXNwbGl0dGVyLXRyYW5zaXRpb24tZHVyYXRpb24pLCBvdXRsaW5lLWNvbG9yIHZhcigtLXAtc3BsaXR0ZXItdHJhbnNpdGlvbi1kdXJhdGlvbiksXG4gICAgICAgICAgICAgICAgYm94LXNoYWRvdyB2YXIoLS1wLXNwbGl0dGVyLXRyYW5zaXRpb24tZHVyYXRpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJjpmb2N1cy12aXNpYmxlIHtcbiAgICAgICAgICAgIG91dGxpbmU6IDAgbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6Zm9jdXMtdmlzaWJsZSA+IC5wLXNwbGl0dGVyLWd1dHRlci1oYW5kbGUsXG4gICAgICAgIC5wLXNwbGl0dGVyLWd1dHRlci1oYW5kbGU6Zm9jdXMtdmlzaWJsZSB7XG4gICAgICAgICAgICBvdXRsaW5lOiB2YXIoLS1wLXNwbGl0dGVyLWhhbmRsZS1mb2N1cy1yaW5nLXdpZHRoKSB2YXIoLS1wLXNwbGl0dGVyLWhhbmRsZS1mb2N1cy1yaW5nLXN0eWxlKSB2YXIoLS1wLXNwbGl0dGVyLWhhbmRsZS1mb2N1cy1yaW5nLWNvbG9yKTtcbiAgICAgICAgICAgIG91dGxpbmUtb2Zmc2V0OiB2YXIoLS1wLXNwbGl0dGVyLWhhbmRsZS1mb2N1cy1yaW5nLW9mZnNldCk7XG4gICAgICAgICAgICBib3gtc2hhZG93OiB2YXIoLS1wLXNwbGl0dGVyLWhhbmRsZS1mb2N1cy1yaW5nLXNoYWRvdyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAucC1zcGxpdHRlci1ndXR0ZXItcmVzaXppbmcge1xuICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1wLXNwbGl0dGVyLWd1dHRlci1yZXNpemluZy1iYWNrZ3JvdW5kKTtcbiAgICB9XG59XG5cbi5wLXNwbGl0dGVyLXBhbmVsIHtcbiAgICBmbGV4LWdyb3c6IDE7XG59XG5cbi5wLXNwbGl0dGVyLXBhbmVsLW5lc3RlZCB7XG4gICAgZGlzcGxheTogZmxleDtcbn1cblxuLyogbmVzdGVkIHNwbGl0dGVycyBoYXZlIG5vIG93biBmcmFtZSAqL1xuLnAtc3BsaXR0ZXItcGFuZWwgLnAtc3BsaXR0ZXIge1xuICAgIGZsZXgtZ3JvdzogMTtcbiAgICBib3JkZXI6IDAgbm9uZTtcbiAgICBib3JkZXItcmFkaXVzOiAwO1xufVxuXG4ucC1zcGxpdHRlci1ndXR0ZXIge1xuICAgIGZsZXgtZ3JvdzogMDtcbiAgICBmbGV4LXNocmluazogMDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG59XG5cbi5wLXNwbGl0dGVyLWhvcml6b250YWwge1xuICAgICYucC1zcGxpdHRlci1yZXNpemluZyB7XG4gICAgICAgIGN1cnNvcjogY29sLXJlc2l6ZTtcbiAgICAgICAgLXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTtcbiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgfVxuXG4gICAgPiAucC1zcGxpdHRlci1ndXR0ZXIge1xuICAgICAgICBjdXJzb3I6IGNvbC1yZXNpemU7XG5cbiAgICAgICAgPiAucC1zcGxpdHRlci1ndXR0ZXItaGFuZGxlIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgaGVpZ2h0OiB2YXIoLS1wLXNwbGl0dGVyLWhhbmRsZS1zaXplKTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLnAtc3BsaXR0ZXItdmVydGljYWwge1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cbiAgICAmLnAtc3BsaXR0ZXItcmVzaXppbmcge1xuICAgICAgICBjdXJzb3I6IHJvdy1yZXNpemU7XG4gICAgICAgIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xuICAgIH1cblxuICAgID4gLnAtc3BsaXR0ZXItZ3V0dGVyIHtcbiAgICAgICAgY3Vyc29yOiByb3ctcmVzaXplO1xuXG4gICAgICAgID4gLnAtc3BsaXR0ZXItZ3V0dGVyLWhhbmRsZSB7XG4gICAgICAgICAgICB3aWR0aDogdmFyKC0tcC1zcGxpdHRlci1oYW5kbGUtc2l6ZSk7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCAiLypcbiAqIFNwb3RsaWdodDogcDpzcG90bGlnaHRcbiAqIE1hcmt1cDogZm91ciBkaXYucC1jb21wb25lbnQtb3ZlcmxheS5wLXNwb3RsaWdodC5wLXNwb3RsaWdodC0odG9wfGJvdHRvbXxsZWZ0fHJpZ2h0KSBhcHBlbmRlZCB0byBib2R5LFxuICogcG9zaXRpb25lZCBhcm91bmQgdGhlIHRhcmdldCBieSB0aGUgY29tcG9uZW50IChpbmxpbmUgdG9wL2xlZnQvd2lkdGgvaGVpZ2h0L3otaW5kZXgpLlxuICogUHJpbWVGYWNlcyBvbmx5IHRva2VuczogdGhlIHNwb3RsaWdodCBibG9jayBvZiBwcmVzZXRzLyouY3NzLlxuICovXG4ucC1zcG90bGlnaHQucC1jb21wb25lbnQtb3ZlcmxheSB7XG4gICAgcG9zaXRpb246IGZpeGVkO1xuICAgIGJhY2tncm91bmQ6IHZhcigtLXAtc3BvdGxpZ2h0LW1hc2stYmFja2dyb3VuZCk7XG4gICAgY29sb3I6IHZhcigtLXAtc3BvdGxpZ2h0LW1hc2stY29sb3IpO1xuICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgdmFyKC0tcC1zcG90bGlnaHQtdHJhbnNpdGlvbi1kdXJhdGlvbik7XG59XG4iLCAiLypcbiAqIFN0YXRpY01lc3NhZ2U6IHA6c3RhdGljTWVzc2FnZVxuICpcbiAqIE1hcmt1cDogLnAtbWVzc2FnZS5wLXN0YXRpY21lc3NhZ2UucC1tZXNzYWdlLTxzZXZlcml0eT4oLnAtbWVzc2FnZS1pY29uLW9ubHkpXG4gKiAgICAgICAgID4gYS5wLW1lc3NhZ2VzLWNsb3NlIChjbG9zYWJsZSkgKyBzcGFuLnAtbWVzc2FnZS08c2V2ZXJpdHk+LWljb24ucC1tZXNzYWdlLTxzZXZlcml0eT4taWNvbiAob3IgdGhlIGN1c3RvbSBpY29uIGNsYXNzZXMpXG4gKiAgICAgICAgICsgc3Bhbi5wLW1lc3NhZ2UtPHNldmVyaXR5Pi1zdW1tYXJ5ICsgc3Bhbi5wLW1lc3NhZ2UtPHNldmVyaXR5Pi1kZXRhaWxcbiAqIFNldmVyaXRpZXM6IGluZm8gfCBzdWNjZXNzIHwgd2FybiB8IGVycm9yIHwgZmF0YWwgfCBzZWNvbmRhcnkgfCBjb250cmFzdCAocGFzc2VkIHRocm91Z2ggYXMgcC1tZXNzYWdlLTxzZXZlcml0eT4pLFxuICogdmFyaWFudHMgLyBzaXplcyAoc3R5bGVDbGFzcyk6IHAtbWVzc2FnZS1vdXRsaW5lZCB8IC1zaW1wbGUgfCAtc20gfCAtbGcgKG1lc3NhZ2UuY3NzKS5cbiAqIENvbG9ycywgaWNvbnMgYW5kIHRleHRzIGNvbWUgZnJvbSBtZXNzYWdlLmNzcyAoaXQgc2hhcmVzIHRoZSBwLW1lc3NhZ2UtKiBjbGFzc2VzKTsgdGhpcyBmaWxlIGFkZHMgdGhlIGJsb2NrIGxheW91dFxuICogYW5kIHRoZSBjbG9zZSBidXR0b24uIFRva2VuczogUHJpbWVVSVggbWVzc2FnZSArIHRoZSBtZXNzYWdlIGJsb2NrIG9mIHByZXNldHMvKi5jc3NcbiAqL1xuXG4ucC1zdGF0aWNtZXNzYWdlIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAucC1tZXNzYWdlcy1jbG9zZSB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICB0b3A6IC0uNzVyZW07XG4gICAgICAgIGluc2V0LWlubGluZS1lbmQ6IC0uNzVyZW07XG4gICAgICAgIHdpZHRoOiAycmVtO1xuICAgICAgICBoZWlnaHQ6IDJyZW07XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgfVxufVxuXG4ucC1tZXNzYWdlLnAtc3RhdGljbWVzc2FnZSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogdmFyKC0tcC1tZXNzYWdlLWNvbnRlbnQtZ2FwKTtcblxuICAgICYucC1tZXNzYWdlLWljb24tb25seSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIH1cblxuICAgIC8qIGN1c3RvbSBpY29uIChpY29uIGF0dHJpYnV0ZSwgZS5nLiBcInBpIHBpLXN0YXJcIikgKi9cbiAgICA+IC5waSB7XG4gICAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgICAgICBjb2xvcjogdmFyKC0tX2NvbG9yKTtcbiAgICAgICAgZm9udC1zaXplOiB2YXIoLS1faWNvbi1zaXplKTtcbiAgICB9XG5cbiAgICAvKiBjbG9zZSBidXR0b246IGEgcm91bmQgYmFkZ2Ugb24gdGhlIHRvcCBlbmQgY29ybmVyLCBjYXJyeWluZyB0aGUgbWVzc2FnZSBjb2xvcnMgKi9cbiAgICAucC1tZXNzYWdlcy1jbG9zZSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgYm9yZGVyOiB2YXIoLS1wLW1lc3NhZ2UtYm9yZGVyLXdpZHRoKSBzb2xpZCB2YXIoLS1fYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1fYmcpO1xuICAgICAgICBjb2xvcjogdmFyKC0tX2NvbG9yKTtcbiAgICAgICAgYm94LXNoYWRvdzogdmFyKC0tX3NoYWRvdyk7XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgb3V0bGluZS1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgdmFyKC0tcC1tZXNzYWdlLXRyYW5zaXRpb24tZHVyYXRpb24pLCBjb2xvciB2YXIoLS1wLW1lc3NhZ2UtdHJhbnNpdGlvbi1kdXJhdGlvbiksXG4gICAgICAgICAgICBvdXRsaW5lLWNvbG9yIHZhcigtLXAtbWVzc2FnZS10cmFuc2l0aW9uLWR1cmF0aW9uKSwgYm94LXNoYWRvdyB2YXIoLS1wLW1lc3NhZ2UtdHJhbnNpdGlvbi1kdXJhdGlvbik7XG5cbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQodmFyKC0tX2Nsb3NlLWhvdmVyLWJnKSwgdmFyKC0tX2Nsb3NlLWhvdmVyLWJnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmOmZvY3VzLXZpc2libGUge1xuICAgICAgICAgICAgb3V0bGluZTogdmFyKC0tcC1tZXNzYWdlLWNsb3NlLWJ1dHRvbi1mb2N1cy1yaW5nLXdpZHRoKSB2YXIoLS1wLW1lc3NhZ2UtY2xvc2UtYnV0dG9uLWZvY3VzLXJpbmctc3R5bGUpIHZhcigtLV9jbG9zZS1mb2N1cy1yaW5nLWNvbG9yKTtcbiAgICAgICAgICAgIG91dGxpbmUtb2Zmc2V0OiB2YXIoLS1wLW1lc3NhZ2UtY2xvc2UtYnV0dG9uLWZvY3VzLXJpbmctb2Zmc2V0KTtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IHZhcigtLV9jbG9zZS1mb2N1cy1yaW5nLXNoYWRvdyk7XG4gICAgICAgIH1cblxuICAgICAgICAucC1tZXNzYWdlLWNsb3NlLWljb24ge1xuICAgICAgICAgICAgLS1faWNvbjogdmFyKC0tcC1tZXNzYWdlLWNsb3NlLWljb24pO1xuICAgICAgICAgICAgY29sb3I6IGluaGVyaXQ7XG4gICAgICAgICAgICBmb250LXNpemU6IHZhcigtLV9jbG9zZS1pY29uLXNpemUpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyogb3V0bGluZWQgLyBzaW1wbGUgaGF2ZSBubyBiYWNrZ3JvdW5kLCBhIGJhZGdlIG9uIHRoZSBjb3JuZXIgd291bGQgYmUgc2VlLXRocm91Z2g6IGlubGluZSBidXR0b24gYXQgdGhlIGVuZFxuICAgICAgIChsaWtlIHA6bWVzc2FnZXMpLCBiYWNrZ3JvdW5kIC8gc2hhZG93IGFyZSBhbHJlYWR5IHRyYW5zcGFyZW50IC8gbm9uZSB0aHJvdWdoIHRoZSBwcml2YXRlIHZhcmlhYmxlcyAqL1xuICAgICYucC1tZXNzYWdlLW91dGxpbmVkIC5wLW1lc3NhZ2VzLWNsb3NlLFxuICAgICYucC1tZXNzYWdlLXNpbXBsZSAucC1tZXNzYWdlcy1jbG9zZSB7XG4gICAgICAgIHBvc2l0aW9uOiBzdGF0aWM7XG4gICAgICAgIG9yZGVyOiAxO1xuICAgICAgICBmbGV4LXNocmluazogMDtcbiAgICAgICAgbWFyZ2luLWlubGluZS1zdGFydDogYXV0bztcbiAgICAgICAgd2lkdGg6IHZhcigtLXAtbWVzc2FnZS1jbG9zZS1idXR0b24td2lkdGgpO1xuICAgICAgICBoZWlnaHQ6IHZhcigtLXAtbWVzc2FnZS1jbG9zZS1idXR0b24taGVpZ2h0KTtcbiAgICAgICAgYm9yZGVyOiAwIG5vbmU7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXAtbWVzc2FnZS1jbG9zZS1idXR0b24tYm9yZGVyLXJhZGl1cyk7XG4gICAgfVxufVxuIiwgIi8qXG4gKiBTdGVwczogcDpzdGVwc1xuICpcbiAqIE1hcmt1cDogLnAtc3RlcHMgKC5wLXN0ZXBzLXJlYWRvbmx5KSA+IHVsID4gbGkucC1zdGVwcy1pdGVtXG4gKiAgICAgICAgIChwLXN0YXRlLWhpZ2hsaWdodCA9IGN1cnJlbnQgc3RlcCwgcC1zdGF0ZS1kaXNhYmxlZCA9IG5vdCByZWFjaGFibGUsIHAtc3RlcHMtaXRlbS1leGVjdXRhYmxlID0gY2xpY2thYmxlKVxuICogICAgICAgICA+IGEucC1tZW51aXRlbS1saW5rID4gc3Bhbi5wLXN0ZXBzLW51bWJlciAobnVtYmVyIG9yIHNwYW4ucC1zdGVwcy1udW1iZXItaWNvbikgKyBzcGFuLnAtc3RlcHMtdGl0bGVcbiAqIExpa2UgUHJpbWVVSVg6IGEgc2VwYXJhdG9yIGxpbmUgcnVucyB0aHJvdWdoIHRoZSBtaWRkbGUgb2YgdGhlIG51bWJlcnMsIHRoZSBsYWJlbCBpcyBiZWxvdyB0aGUgbnVtYmVyLlxuICovXG4ucC1zdGVwcyB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgdWwge1xuICAgICAgICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICB9XG5cbiAgICAucC1zdGVwcy1pdGVtIHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgZmxleDogMSAxIDA7XG4gICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIC8qIGxpa2UgUHJpbWVVSVg6IGluYWN0aXZlICgucC1zdGF0ZS1kaXNhYmxlZCkgc3RlcHMgYXJlIG5vdCBkaW1tZWQsIHRoZSBtdXRlZCBudW1iZXIvbGFiZWwgY29sb3JzIG1hcmsgdGhlbSAqL1xuICAgICAgICBvcGFjaXR5OiAxO1xuXG4gICAgICAgIC8qIHNlcGFyYXRvciB0aHJvdWdoIHRoZSBtaWRkbGUgb2YgdGhlIG51bWJlcnMgKi9cbiAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgIGNvbnRlbnQ6ICcgJztcbiAgICAgICAgICAgIC8qIDJweCBsaW5lIGFuZCAycHggbnVtYmVyIGJvcmRlciBsaWtlIFByaW1lVUlYLCBjZW50ZXJlZCBvbiB0aGUgbnVtYmVyICovXG4gICAgICAgICAgICBib3JkZXItdG9wOiAycHggc29saWQgdmFyKC0tcC1zdGVwcy1zZXBhcmF0b3ItYmFja2dyb3VuZCk7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIHRvcDogY2FsYyh2YXIoLS1wLXN0ZXBzLWl0ZW0tbnVtYmVyLXNpemUpIC8gMiAtIDFweCk7XG4gICAgICAgICAgICBpbnNldC1pbmxpbmUtc3RhcnQ6IDA7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6Zmlyc3QtY2hpbGQ6OmJlZm9yZSB7XG4gICAgICAgICAgICB3aWR0aDogNTAlO1xuICAgICAgICAgICAgaW5zZXQtaW5saW5lLXN0YXJ0OiA1MCU7XG4gICAgICAgIH1cblxuICAgICAgICAmOmxhc3QtY2hpbGQ6OmJlZm9yZSB7XG4gICAgICAgICAgICB3aWR0aDogNTAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJjpvbmx5LWNoaWxkOjpiZWZvcmUge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5wLW1lbnVpdGVtLWxpbmsge1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIGdhcDogdmFyKC0tcC1zdGVwcy1pdGVtLWxpbmstZ2FwKTtcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIC8qIHNoYXBlIG9mIHRoZSBmb2N1cyByaW5nIG9ubHk6IG5vIG92ZXJmbG93IGNsaXBwaW5nLCB0aGUgcm91bmRlZCBjb3JuZXJzIHdvdWxkIGN1dCB0aGUgdGl0bGUgKHRoZSB0aXRsZVxuICAgICAgICAgICAgICAgY2xpcHMgaXRzZWxmIHdpdGggYW4gZWxsaXBzaXMpICovXG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1wLXN0ZXBzLWl0ZW0tbGluay1ib3JkZXItcmFkaXVzKTtcbiAgICAgICAgICAgIG91dGxpbmUtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgdHJhbnNpdGlvbjogb3V0bGluZS1jb2xvciB2YXIoLS1wLXN0ZXBzLXRyYW5zaXRpb24tZHVyYXRpb24pLCBib3gtc2hhZG93IHZhcigtLXAtc3RlcHMtdHJhbnNpdGlvbi1kdXJhdGlvbik7XG5cbiAgICAgICAgICAgICY6Zm9jdXMtdmlzaWJsZSB7XG4gICAgICAgICAgICAgICAgb3V0bGluZTogdmFyKC0tcC1zdGVwcy1pdGVtLWxpbmstZm9jdXMtcmluZy13aWR0aCkgdmFyKC0tcC1zdGVwcy1pdGVtLWxpbmstZm9jdXMtcmluZy1zdHlsZSkgdmFyKC0tcC1zdGVwcy1pdGVtLWxpbmstZm9jdXMtcmluZy1jb2xvcik7XG4gICAgICAgICAgICAgICAgb3V0bGluZS1vZmZzZXQ6IHZhcigtLXAtc3RlcHMtaXRlbS1saW5rLWZvY3VzLXJpbmctb2Zmc2V0KTtcbiAgICAgICAgICAgICAgICBib3gtc2hhZG93OiB2YXIoLS1wLXN0ZXBzLWl0ZW0tbGluay1mb2N1cy1yaW5nLXNoYWRvdyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5wLXN0ZXBzLW51bWJlciB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAxO1xuICAgICAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1wLXN0ZXBzLWl0ZW0tbnVtYmVyLWNvbG9yKTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1wLXN0ZXBzLWl0ZW0tbnVtYmVyLWJhY2tncm91bmQpO1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMnB4IHNvbGlkIHZhcigtLXAtc3RlcHMtaXRlbS1udW1iZXItYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgICAgICAgICBib3gtc2hhZG93OiB2YXIoLS1wLXN0ZXBzLWl0ZW0tbnVtYmVyLXNoYWRvdyk7XG4gICAgICAgICAgICAgICAgbWluLXdpZHRoOiB2YXIoLS1wLXN0ZXBzLWl0ZW0tbnVtYmVyLXNpemUpO1xuICAgICAgICAgICAgICAgIGhlaWdodDogdmFyKC0tcC1zdGVwcy1pdGVtLW51bWJlci1zaXplKTtcbiAgICAgICAgICAgICAgICBsaW5lLWhlaWdodDogdmFyKC0tcC1zdGVwcy1pdGVtLW51bWJlci1zaXplKTtcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IHZhcigtLXAtc3RlcHMtaXRlbS1udW1iZXItZm9udC1zaXplKTtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogdmFyKC0tcC1zdGVwcy1pdGVtLW51bWJlci1mb250LXdlaWdodCk7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogdmFyKC0tcC1zdGVwcy1pdGVtLW51bWJlci1ib3JkZXItcmFkaXVzKTtcblxuICAgICAgICAgICAgICAgIC5wLXN0ZXBzLW51bWJlci1pY29uIHtcbiAgICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiB2YXIoLS1wLWljb24tc2l6ZSk7XG4gICAgICAgICAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLnAtc3RlcHMtdGl0bGUge1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICAgICAgY29sb3I6IHZhcigtLXAtc3RlcHMtaXRlbS1sYWJlbC1jb2xvcik7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IHZhcigtLXAtc3RlcHMtaXRlbS1sYWJlbC1mb250LXdlaWdodCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLnAtc3RhdGUtaGlnaGxpZ2h0IHtcbiAgICAgICAgICAgIC5wLXN0ZXBzLW51bWJlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tcC1zdGVwcy1pdGVtLW51bWJlci1hY3RpdmUtYmFja2dyb3VuZCk7XG4gICAgICAgICAgICAgICAgY29sb3I6IHZhcigtLXAtc3RlcHMtaXRlbS1udW1iZXItYWN0aXZlLWNvbG9yKTtcbiAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6IHZhcigtLXAtc3RlcHMtaXRlbS1udW1iZXItYWN0aXZlLWJvcmRlci1jb2xvcik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC8qIG5vIHNlcGFyYXRlIGFjdGl2ZSBmb250LXdlaWdodCB0b2tlbiwgdGhlIGFjdGl2ZSBsYWJlbCBvbmx5IGNoYW5nZXMgaXRzIGNvbG9yICovXG4gICAgICAgICAgICAucC1zdGVwcy10aXRsZSB7XG4gICAgICAgICAgICAgICAgY29sb3I6IHZhcigtLXAtc3RlcHMtaXRlbS1sYWJlbC1hY3RpdmUtY29sb3IpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLnAtc3RlcHMtaXRlbS5wLXN0YXRlLWhpZ2hsaWdodDpub3QoLnAtc3RlcHMtaXRlbS1leGVjdXRhYmxlKSAucC1tZW51aXRlbS1saW5rLFxuICAgIC5wLXN0ZXBzLWl0ZW0ucC1zdGF0ZS1kaXNhYmxlZCAucC1tZW51aXRlbS1saW5rIHtcbiAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuICAgIH1cblxuICAgIC5wLXN0ZXBzLXRpdGxlIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgfVxuXG4gICAgQG1lZGlhIChtYXgtd2lkdGg6IDY0MHB4KSB7XG4gICAgICAgIC5wLXN0ZXBzLWl0ZW0gLnAtc3RlcHMtdGl0bGUge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLnAtc3RlcHM6bm90KC5wLXN0ZXBzLXJlYWRvbmx5KSAucC1zdGVwcy1pdGVtLnAtc3RlcHMtaXRlbS1leGVjdXRhYmxlIC5wLW1lbnVpdGVtLWxpbmsge1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbn1cbiIsICIvKlxuICogVGFiTWVudTogcDp0YWJNZW51XG4gKlxuICogTWFya3VwOiAucC10YWJtZW51ID4gdWwucC10YWJtZW51LW5hdiA+IGxpLnAtdGFibWVudWl0ZW0gKHAtc3RhdGUtYWN0aXZlLCBwLXN0YXRlLWhvdmVyLCBwLW1lbnVpdGVtLW91dGxpbmUgPSBrZXlib2FyZCBmb2N1cykgPiBhXG4gKiBTdXBwb3J0ZWQgY2xhc3NlczogcC10YWJzLWJvdHRvbSwgcC10YWJzLWxlZnQsIHAtdGFicy1yaWdodFxuICogTWVudWl0ZW0gYmFkZ2VzIGFyZSByZW5kZXJlZCBhcyBsaS5wLW92ZXJsYXktYmFkZ2UgPiAucC1iYWRnZSAoYmFkZ2UvYmFkZ2UuY3NzKSwgdGhlIG5hdiBrZWVwcyByb29tIGFib3ZlIHRoZSBpdGVtcyBmb3IgdGhlbS5cbiAqL1xuXG4ucC10YWJtZW51IHtcbiAgICAucC10YWJtZW51LW5hdiB7XG4gICAgICAgIC8qIG5vIHRva2VuOiByb29tIGFib3ZlIHRoZSBpdGVtcyBmb3IgYSBtZW51aXRlbSBiYWRnZSwgaGFsZiBvZiB0aGUgYmFkZ2UgaGVpZ2h0ICovXG4gICAgICAgIG1hcmdpbjogY2FsYyh2YXIoLS1wLWJhZGdlLWhlaWdodCkgLyAtMikgMCAwIDA7XG4gICAgICAgIHBhZGRpbmc6IGNhbGModmFyKC0tcC1iYWRnZS1oZWlnaHQpIC8gMikgMCAwIDA7XG4gICAgICAgIGJhY2tncm91bmQ6IHZhcigtLXAtdGFibWVudS10YWJsaXN0LWJhY2tncm91bmQpO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBvdmVyZmxvdy14OiBhdXRvO1xuXG4gICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgICAgICAgICAgIGJvcmRlci13aWR0aDogdmFyKC0tcC10YWJtZW51LXRhYmxpc3QtYm9yZGVyLXdpZHRoKTtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tcC10YWJtZW51LXRhYmxpc3QtYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5wLXRhYm1lbnVpdGVtIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHZhcigtLXAtdGFibWVudS1pdGVtLWJhY2tncm91bmQpO1xuICAgICAgICAgICAgY29sb3I6IHZhcigtLXAtdGFibWVudS1pdGVtLWNvbG9yKTtcbiAgICAgICAgICAgIC8qIG5vIGl0ZW0gbWFyZ2luIHRva2VuOiB0aGUgdGFibGlzdCBsaW5lIGlzIHRoZSBuYXYgOjpiZWZvcmUgKGluc2lkZSB0aGUgc2Nyb2xsaW5nIG5hdiksIHRoZSBpdGVtcyBhbHJlYWR5IG92ZXJsYXAgaXQgKi9cbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgIGJvcmRlci1zdHlsZTogc29saWQ7XG4gICAgICAgICAgICBib3JkZXItd2lkdGg6IHZhcigtLXAtdGFibWVudS1pdGVtLWJvcmRlci13aWR0aCk7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IHZhcigtLXAtdGFibWVudS1pdGVtLWJvcmRlci1jb2xvcik7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgICAgICAgICAgb3V0bGluZS1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIHZhcigtLXAtdGFibWVudS10cmFuc2l0aW9uLWR1cmF0aW9uKSwgYm9yZGVyLWNvbG9yIHZhcigtLXAtdGFibWVudS10cmFuc2l0aW9uLWR1cmF0aW9uKSxcbiAgICAgICAgICAgICAgICBjb2xvciB2YXIoLS1wLXRhYm1lbnUtdHJhbnNpdGlvbi1kdXJhdGlvbiksIG91dGxpbmUtY29sb3IgdmFyKC0tcC10YWJtZW51LXRyYW5zaXRpb24tZHVyYXRpb24pLFxuICAgICAgICAgICAgICAgIGJveC1zaGFkb3cgdmFyKC0tcC10YWJtZW51LXRyYW5zaXRpb24tZHVyYXRpb24pO1xuXG4gICAgICAgICAgICBhIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogdmFyKC0tcC10YWJtZW51LWl0ZW0tY29sb3IpO1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IHZhcigtLXAtdGFibWVudS1pdGVtLXBhZGRpbmcpO1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1wLXRhYm1lbnUtaXRlbS1mb250LXdlaWdodCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgICAgIGdhcDogdmFyKC0tcC10YWJtZW51LWl0ZW0tZ2FwKTtcbiAgICAgICAgICAgICAgICBsaW5lLWhlaWdodDogMTtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICAgICAgb3V0bGluZTogMCBub25lO1xuICAgICAgICAgICAgICAgIHRyYW5zaXRpb246IGNvbG9yIHZhcigtLXAtdGFibWVudS10cmFuc2l0aW9uLWR1cmF0aW9uKTtcblxuICAgICAgICAgICAgICAgIC5wLW1lbnVpdGVtLWljb24ge1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogdmFyKC0tcC10YWJtZW51LWl0ZW0taWNvbi1jb2xvcik7XG4gICAgICAgICAgICAgICAgICAgIHRyYW5zaXRpb246IGNvbG9yIHZhcigtLXAtdGFibWVudS10cmFuc2l0aW9uLWR1cmF0aW9uKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bm90KC5wLXN0YXRlLWFjdGl2ZSk6bm90KC5wLXN0YXRlLWRpc2FibGVkKTpob3ZlcixcbiAgICAgICAgICAgICYucC1zdGF0ZS1ob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tcC10YWJtZW51LWl0ZW0taG92ZXItYmFja2dyb3VuZCk7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1wLXRhYm1lbnUtaXRlbS1ob3Zlci1ib3JkZXItY29sb3IpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOm5vdCgucC1zdGF0ZS1hY3RpdmUpOm5vdCgucC1zdGF0ZS1kaXNhYmxlZCk6aG92ZXIgYSxcbiAgICAgICAgICAgICYucC1zdGF0ZS1ob3ZlciBhIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogdmFyKC0tcC10YWJtZW51LWl0ZW0taG92ZXItY29sb3IpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOm5vdCgucC1zdGF0ZS1hY3RpdmUpOm5vdCgucC1zdGF0ZS1kaXNhYmxlZCk6aG92ZXIgYSAucC1tZW51aXRlbS1pY29uLFxuICAgICAgICAgICAgJi5wLXN0YXRlLWhvdmVyIGEgLnAtbWVudWl0ZW0taWNvbiB7XG4gICAgICAgICAgICAgICAgY29sb3I6IHZhcigtLXAtdGFibWVudS1pdGVtLWljb24taG92ZXItY29sb3IpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLnAtc3RhdGUtYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1wLXRhYm1lbnUtaXRlbS1hY3RpdmUtYmFja2dyb3VuZCk7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1wLXRhYm1lbnUtaXRlbS1hY3RpdmUtYm9yZGVyLWNvbG9yKTtcblxuICAgICAgICAgICAgICAgIGEge1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogdmFyKC0tcC10YWJtZW51LWl0ZW0tYWN0aXZlLWNvbG9yKTtcblxuICAgICAgICAgICAgICAgICAgICAucC1tZW51aXRlbS1pY29uIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1wLXRhYm1lbnUtaXRlbS1pY29uLWFjdGl2ZS1jb2xvcik7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC8qIHRoZSBjb21wb25lbnQgYWRkcyBwLW1lbnVpdGVtLW91dGxpbmUgb24gZXZlcnkgZm9jdXMgb2YgdGhlIGl0ZW0sIGFsc28gYWZ0ZXIgYSBjbGljazogcmluZyBmb3Iga2V5Ym9hcmQgZm9jdXMgb25seSAqL1xuICAgICAgICAgICAgJi5wLW1lbnVpdGVtLW91dGxpbmU6Zm9jdXMtdmlzaWJsZSxcbiAgICAgICAgICAgICY6aGFzKD4gYTpmb2N1cy12aXNpYmxlKSB7XG4gICAgICAgICAgICAgICAgb3V0bGluZTogdmFyKC0tcC10YWJtZW51LWl0ZW0tZm9jdXMtcmluZy13aWR0aCkgdmFyKC0tcC10YWJtZW51LWl0ZW0tZm9jdXMtcmluZy1zdHlsZSkgdmFyKC0tcC10YWJtZW51LWl0ZW0tZm9jdXMtcmluZy1jb2xvcik7XG4gICAgICAgICAgICAgICAgb3V0bGluZS1vZmZzZXQ6IHZhcigtLXAtdGFibWVudS1pdGVtLWZvY3VzLXJpbmctb2Zmc2V0KTtcbiAgICAgICAgICAgICAgICBib3gtc2hhZG93OiB2YXIoLS1wLXRhYm1lbnUtaXRlbS1mb2N1cy1yaW5nLXNoYWRvdyk7XG4gICAgICAgICAgICAgICAgei1pbmRleDogMTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cblxuLyogYm90dG9tIChubyB0b2tlbjogdGhlIGJvcmRlciB3aWR0aCB0b2tlbnMgZGVzY3JpYmUgdGhlIGVkZ2VzIG9mIGEgdG9wIHRhYmxpc3QsIHRoZSBvdGhlciBvcmllbnRhdGlvbnMga2VlcCBhIDFweCBsaW5lKSAqL1xuLnAtdGFibWVudS5wLXRhYnMtYm90dG9tIC5wLXRhYm1lbnUtbmF2IHtcbiAgICAmOjpiZWZvcmUge1xuICAgICAgICBib3JkZXItd2lkdGg6IDFweCAwIDAgMDtcbiAgICAgICAgYm90dG9tOiBhdXRvO1xuICAgICAgICB0b3A6IDA7XG4gICAgfVxuXG4gICAgLnAtdGFibWVudWl0ZW0ge1xuICAgICAgICBib3JkZXItd2lkdGg6IDFweCAwIDAgMDtcbiAgICB9XG59XG5cbi8qIGxlZnQgKi9cbi5wLXRhYm1lbnUucC10YWJzLWxlZnQgLnAtdGFibWVudS1uYXYge1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cbiAgICAmOjpiZWZvcmUge1xuICAgICAgICBib3JkZXItd2lkdGg6IDAgMXB4IDAgMDtcbiAgICAgICAgbGVmdDogYXV0bztcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgfVxuXG4gICAgLnAtdGFibWVudWl0ZW0ge1xuICAgICAgICBib3JkZXItd2lkdGg6IDAgMXB4IDAgMDtcbiAgICB9XG59XG5cbi8qIHJpZ2h0ICovXG4ucC10YWJtZW51LnAtdGFicy1yaWdodCAucC10YWJtZW51LW5hdiB7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblxuICAgICY6OmJlZm9yZSB7XG4gICAgICAgIGJvcmRlci13aWR0aDogMCAwIDAgMXB4O1xuICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgIH1cblxuICAgIC5wLXRhYm1lbnVpdGVtIHtcbiAgICAgICAgYm9yZGVyLXdpZHRoOiAwIDAgMCAxcHg7XG4gICAgfVxufVxuXG4vKiB0aGUgaG92ZXIvYWN0aXZlIGJvcmRlciBjb2xvcnMgbXVzdCB3aW4gb3ZlciB0aGUgb3JpZW50YXRpb24gYm9yZGVycyBhYm92ZSAqL1xuLnAtdGFibWVudTppcygucC10YWJzLWJvdHRvbSwgLnAtdGFicy1sZWZ0LCAucC10YWJzLXJpZ2h0KSAucC10YWJtZW51LW5hdiAucC10YWJtZW51aXRlbSB7XG4gICAgJi5wLXN0YXRlLWhvdmVyIHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1wLXRhYm1lbnUtaXRlbS1ob3Zlci1ib3JkZXItY29sb3IpO1xuICAgIH1cblxuICAgICYucC1zdGF0ZS1hY3RpdmUge1xuICAgICAgICBib3JkZXItY29sb3I6IHZhcigtLXAtdGFibWVudS1pdGVtLWFjdGl2ZS1ib3JkZXItY29sb3IpO1xuICAgIH1cbn1cbiIsICIvKlxuICogVGFiVmlldzogcDp0YWJWaWV3ICgucC10YWJzKVxuICpcbiAqIHVsLnAtdGFicy1uYXYgPSBQcmltZVVJWCB0YWJsaXN0LCBsaS5wLXRhYnMtaGVhZGVyID0gdGFiLCAucC10YWJzLXBhbmVscyA9IHRhYnBhbmVscy5cbiAqIFBGIGhhcyBubyBhY3RpdmUgYmFyIGVsZW1lbnQsIHRoZSBhY3RpdmUgYmFyIGlzIHRoZSA6OmFmdGVyIG9mIHRoZSBhY3RpdmUgdGFiIGFuZCBmb2xsb3dzIHRoZSBvcmllbnRhdGlvbi5cbiAqIFRoZSB0YWJsaXN0IGlzIGEgZmxleCBjb250YWluZXIsIHNvIHRoZSBsaS5wLXRhYnMtYWN0aW9ucyAoZ2xvYmFsIGFuZCBwZXIgdGFiKSBhcmUgZmxleCBpdGVtcyAob3JkZXIvbWFyZ2luLCBubyBmbG9hdHMpLlxuICogU3RhdGVzOiBwLXRhYnMtdG9wIHwgLWJvdHRvbSB8IC1sZWZ0IHwgLXJpZ2h0LCBwLXRhYnMtc2Nyb2xsYWJsZSxcbiAqICAgICAgICAgcC1zdGF0ZS1hY3RpdmUsIHAtc3RhdGUtaG92ZXIsIHAtc3RhdGUtZGlzYWJsZWQsIHAtc3RhdGUtZXJyb3Igb24gYSB0YWIsXG4gKiAgICAgICAgIHAtdGFicy1ydGwsIHAtdGFicy1vdXRsaW5lIChrZXlib2FyZCBmb2N1cywgc2V0IGJ5IHRoZSBjb21wb25lbnQpXG4gKi9cbi5wLXRhYnMge1xuICAgIC8qIGNvbnRhaW5pbmcgYmxvY2sgb2YgdGhlIHZlcnRpY2FsIGFjdGlvbnMgYW5kIHRoZSBzY3JvbGxlciAqL1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgIC8qIHRhYmxpc3QgKi9cbiAgICAucC10YWJzLW5hdiB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1wLXRhYnMtdGFibGlzdC1iYWNrZ3JvdW5kKTtcbiAgICAgICAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1wLXRhYnMtdGFibGlzdC1ib3JkZXItY29sb3IpO1xuICAgICAgICBib3JkZXItd2lkdGg6IHZhcigtLXAtdGFicy10YWJsaXN0LWJvcmRlci13aWR0aCk7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG5cbiAgICAgICAgbGkge1xuICAgICAgICAgICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcblxuICAgICAgICAgICAgLyogR2l0SHViICMxMjMzOCBtZW51IGluc2lkZSB0YWJzICovXG4gICAgICAgICAgICAucC1tZW51LWxpc3Qge1xuICAgICAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBpbml0aWFsO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBhIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICAgICAgb3V0bGluZTogbm9uZTtcbiAgICAgICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYucC10YWJzLXNlbGVjdGVkIGEsXG4gICAgICAgICAgICAmLnAtc3RhdGUtZGlzYWJsZWQgYSB7XG4gICAgICAgICAgICAgICAgY3Vyc29yOiB0ZXh0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICA+IC5wLXRhYnMtY2xvc2UtaWNvbiB7XG4gICAgICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvKiB0YWIgKi9cbiAgICAgICAgICAgICYucC10YWJzLWhlYWRlciB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgICAgIGdhcDogdmFyKC0tcC10YWJzLXRhYi1nYXApO1xuICAgICAgICAgICAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogdmFyKC0tcC10YWJzLXRhYi1tYXJnaW4pO1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IHZhcigtLXAtdGFicy10YWItcGFkZGluZyk7XG4gICAgICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgICAgIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgICAgICAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiB2YXIoLS1wLXRhYnMtdGFiLWZvbnQtc2l6ZSk7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IHZhcigtLXAtdGFicy10YWItZm9udC13ZWlnaHQpO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IHZhcigtLXAtdGFicy10YWItYmFja2dyb3VuZCk7XG4gICAgICAgICAgICAgICAgY29sb3I6IHZhcigtLXAtdGFicy10YWItY29sb3IpO1xuICAgICAgICAgICAgICAgIGJvcmRlci1zdHlsZTogc29saWQ7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXdpZHRoOiB2YXIoLS1wLXRhYnMtdGFiLWJvcmRlci13aWR0aCk7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1wLXRhYnMtdGFiLWJvcmRlci1jb2xvcik7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgICAgICAgICAgICBvdXRsaW5lLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIHZhcigtLXAtdGFicy10cmFuc2l0aW9uLWR1cmF0aW9uKSwgYm9yZGVyLWNvbG9yIHZhcigtLXAtdGFicy10cmFuc2l0aW9uLWR1cmF0aW9uKSxcbiAgICAgICAgICAgICAgICAgICAgY29sb3IgdmFyKC0tcC10YWJzLXRyYW5zaXRpb24tZHVyYXRpb24pLCBvdXRsaW5lLWNvbG9yIHZhcigtLXAtdGFicy10cmFuc2l0aW9uLWR1cmF0aW9uKSxcbiAgICAgICAgICAgICAgICAgICAgYm94LXNoYWRvdyB2YXIoLS1wLXRhYnMtdHJhbnNpdGlvbi1kdXJhdGlvbik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYucC10YWJzLWhlYWRlciBhIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogaW5oZXJpdDtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogdmFyKC0tcC10YWJzLXRhYi1mb250LXdlaWdodCk7XG4gICAgICAgICAgICAgICAgbGluZS1oZWlnaHQ6IHZhcigtLXAtdHlwb2dyYXBoeS1saW5lLWhlaWdodCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYucC10YWJzLWhlYWRlciAucC10YWJzLWNsb3NlLWljb24ge1xuICAgICAgICAgICAgICAgIC0tX2ljb246IHZhcigtLXAtdGFicy1jbG9zZS1pY29uKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLyogYWN0aXZlIGJhcjogaG9yaXpvbnRhbCBhdCB0aGUgYm90dG9tIG9mIHRoZSB0YWIgKHRvcCBvcmllbnRhdGlvbikgKi9cbiAgICAgICAgICAgICYucC10YWJzLWhlYWRlcjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIHotaW5kZXg6IDE7XG4gICAgICAgICAgICAgICAgaW5zZXQtaW5saW5lOiAwO1xuICAgICAgICAgICAgICAgIGJvdHRvbTogdmFyKC0tcC10YWJzLWFjdGl2ZS1iYXItYm90dG9tKTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IHZhcigtLXAtdGFicy1hY3RpdmUtYmFyLWhlaWdodCk7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgICAgICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCB2YXIoLS1wLXRhYnMtdHJhbnNpdGlvbi1kdXJhdGlvbik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYucC10YWJzLWhlYWRlci5wLXN0YXRlLWhvdmVyLFxuICAgICAgICAgICAgJi5wLXRhYnMtaGVhZGVyOm5vdCgucC1zdGF0ZS1hY3RpdmUsIC5wLXN0YXRlLWRpc2FibGVkKTpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tcC10YWJzLXRhYi1ob3Zlci1iYWNrZ3JvdW5kKTtcbiAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6IHZhcigtLXAtdGFicy10YWItaG92ZXItYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogdmFyKC0tcC10YWJzLXRhYi1ob3Zlci1jb2xvcik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYucC10YWJzLWhlYWRlci5wLXN0YXRlLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tcC10YWJzLXRhYi1hY3RpdmUtYmFja2dyb3VuZCk7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1wLXRhYnMtdGFiLWFjdGl2ZS1ib3JkZXItY29sb3IpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1wLXRhYnMtdGFiLWFjdGl2ZS1jb2xvcik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYucC10YWJzLWhlYWRlci5wLXN0YXRlLWFjdGl2ZTo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IHZhcigtLXAtdGFicy1hY3RpdmUtYmFyLWJhY2tncm91bmQpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvKiBpbnZhbGlkOiBQcmltZUZhY2VzIHRva2VucyAqL1xuICAgICAgICAgICAgJi5wLXRhYnMtaGVhZGVyLnAtc3RhdGUtZXJyb3IsXG4gICAgICAgICAgICAmLnAtdGFicy1oZWFkZXIucC1zdGF0ZS1lcnJvcjpub3QoLnAtc3RhdGUtZGlzYWJsZWQpOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogdmFyKC0tcC10YWJzLXRhYi1pbnZhbGlkLWNvbG9yKTtcbiAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6IHZhcigtLXAtdGFicy10YWItaW52YWxpZC1ib3JkZXItY29sb3IpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvKiBhY3RpdmU6IHRoZSBpbnZhbGlkIHRleHQgY29sb3Igd291bGQgc2l0IG9uIHRoZSBhY3RpdmUgdGFiIGJhY2tncm91bmQgKE5vcmE6IHByaW1hcnkpICovXG4gICAgICAgICAgICAmLnAtdGFicy1oZWFkZXIucC1zdGF0ZS1lcnJvci5wLXN0YXRlLWFjdGl2ZSxcbiAgICAgICAgICAgICYucC10YWJzLWhlYWRlci5wLXN0YXRlLWVycm9yLnAtc3RhdGUtYWN0aXZlOm5vdCgucC1zdGF0ZS1kaXNhYmxlZCk6aG92ZXIge1xuICAgICAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1wLXRhYnMtdGFiLWFjdGl2ZS1pbnZhbGlkLWNvbG9yKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi5wLXRhYnMtaGVhZGVyLnAtc3RhdGUtZXJyb3IucC1zdGF0ZS1hY3RpdmU6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1wLXRhYnMtYWN0aXZlLWJhci1pbnZhbGlkLWJhY2tncm91bmQpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLnAtdGFicy1oZWFkZXI6bm90KC5wLXN0YXRlLWRpc2FibGVkKTpoYXMoPiBhOmZvY3VzLXZpc2libGUpIHtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAxO1xuICAgICAgICAgICAgICAgIG91dGxpbmU6IHZhcigtLXAtdGFicy10YWItZm9jdXMtcmluZy13aWR0aCkgdmFyKC0tcC10YWJzLXRhYi1mb2N1cy1yaW5nLXN0eWxlKSB2YXIoLS1wLXRhYnMtdGFiLWZvY3VzLXJpbmctY29sb3IpO1xuICAgICAgICAgICAgICAgIG91dGxpbmUtb2Zmc2V0OiB2YXIoLS1wLXRhYnMtdGFiLWZvY3VzLXJpbmctb2Zmc2V0KTtcbiAgICAgICAgICAgICAgICBib3gtc2hhZG93OiB2YXIoLS1wLXRhYnMtdGFiLWZvY3VzLXJpbmctc2hhZG93KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLyogYWN0aW9ucyBmYWNldCAqL1xuICAgICAgICAgICAgJi5wLXRhYnMtYWN0aW9ucyB7XG4gICAgICAgICAgICAgICAgb3JkZXI6IDE7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWlubGluZS1zdGFydDogYXV0bztcbiAgICAgICAgICAgICAgICBhbGlnbi1zZWxmOiBjZW50ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBsaS5wLXRhYnMtYWN0aW9ucy5wLWhpZGRlbiB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuXG4gICAgLyogZm9vdGVyIGZhY2V0ICovXG4gICAgLnAtdGFicy1mb290ZXIge1xuICAgICAgICBwYWRkaW5nOiB2YXIoLS1wLXRhYnMtdGFicGFuZWwtcGFkZGluZyk7XG4gICAgICAgIGJhY2tncm91bmQ6IHZhcigtLXAtdGFicy10YWJwYW5lbC1iYWNrZ3JvdW5kKTtcbiAgICAgICAgY29sb3I6IHZhcigtLXAtdGFicy10YWJwYW5lbC1jb2xvcik7XG4gICAgfVxuXG4gICAgLyogdGFicGFuZWxzICovXG4gICAgLnAtdGFicy1wYW5lbHMge1xuICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1wLXRhYnMtdGFicGFuZWwtYmFja2dyb3VuZCk7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1wLXRhYnMtdGFicGFuZWwtY29sb3IpO1xuXG4gICAgICAgIC5wLXRhYnMtcGFuZWwge1xuICAgICAgICAgICAgcGFkZGluZzogdmFyKC0tcC10YWJzLXRhYnBhbmVsLXBhZGRpbmcpO1xuICAgICAgICAgICAgb3V0bGluZS1jb2xvcjogdHJhbnNwYXJlbnQ7XG5cbiAgICAgICAgICAgICY6Zm9jdXMtdmlzaWJsZSB7XG4gICAgICAgICAgICAgICAgb3V0bGluZTogdmFyKC0tcC10YWJzLXRhYnBhbmVsLWZvY3VzLXJpbmctd2lkdGgpIHZhcigtLXAtdGFicy10YWJwYW5lbC1mb2N1cy1yaW5nLXN0eWxlKSB2YXIoLS1wLXRhYnMtdGFicGFuZWwtZm9jdXMtcmluZy1jb2xvcik7XG4gICAgICAgICAgICAgICAgb3V0bGluZS1vZmZzZXQ6IHZhcigtLXAtdGFicy10YWJwYW5lbC1mb2N1cy1yaW5nLW9mZnNldCk7XG4gICAgICAgICAgICAgICAgYm94LXNoYWRvdzogdmFyKC0tcC10YWJzLXRhYnBhbmVsLWZvY3VzLXJpbmctc2hhZG93KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5wLXRhYnMtcGFuZWwge1xuICAgICAgICBib3JkZXItd2lkdGg6IDA7XG4gICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgfVxuXG4gICAgLyogdG9wIC8gYm90dG9tICovXG4gICAgJi5wLXRhYnMtdG9wID4gLnAtdGFicy1uYXYsXG4gICAgJi5wLXRhYnMtYm90dG9tID4gLnAtdGFicy1uYXYge1xuICAgICAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgfVxuXG4gICAgJi5wLXRhYnMtYm90dG9tIHtcbiAgICAgICAgLyogYm90dG9tOiB0aGUgdGFibGlzdCBib3JkZXIgYW5kIHRoZSBhY3RpdmUgYmFyIG1vdmUgdG8gdGhlIHRvcCBlZGdlICovXG4gICAgICAgID4gLnAtdGFicy1uYXYsXG4gICAgICAgID4gLnAtdGFicy1uYXZzY3JvbGxlciA+IC5wLXRhYnMtbmF2IHtcbiAgICAgICAgICAgIGJvcmRlci13aWR0aDogMDtcbiAgICAgICAgICAgIC8qIG5vIHRva2VuOiB0aGUgdGFibGlzdCBib3JkZXIgdG9rZW4gb25seSBkZXNjcmliZXMgdGhlIGJvdHRvbSBlZGdlIG9mIGEgdG9wIHRhYmxpc3QgKi9cbiAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCB2YXIoLS1wLXRhYnMtdGFibGlzdC1ib3JkZXItY29sb3IpO1xuICAgICAgICB9XG5cbiAgICAgICAgPiAucC10YWJzLW5hdiA+IGxpLnAtdGFicy1oZWFkZXI6OmFmdGVyLFxuICAgICAgICA+IC5wLXRhYnMtbmF2c2Nyb2xsZXIgPiAucC10YWJzLW5hdiA+IGxpLnAtdGFicy1oZWFkZXI6OmFmdGVyIHtcbiAgICAgICAgICAgIHRvcDogdmFyKC0tcC10YWJzLWFjdGl2ZS1iYXItYm90dG9tKTtcbiAgICAgICAgICAgIGJvdHRvbTogYXV0bztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qIGxlZnQgLyByaWdodDogdmVydGljYWwgdGFibGlzdCAqL1xuICAgICYucC10YWJzLWxlZnQgPiAucC10YWJzLW5hdixcbiAgICAmLnAtdGFicy1yaWdodCA+IC5wLXRhYnMtbmF2IHtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgd2lkdGg6IDI1JTtcbiAgICAgICAgYm9yZGVyLXdpZHRoOiAwO1xuICAgIH1cblxuICAgICYucC10YWJzLWxlZnQgPiAucC10YWJzLW5hdiBsaSxcbiAgICAmLnAtdGFicy1yaWdodCA+IC5wLXRhYnMtbmF2IGxpIHtcbiAgICAgICAgd2hpdGUtc3BhY2U6IG5vcm1hbDtcbiAgICB9XG5cbiAgICAmLnAtdGFicy1sZWZ0ID4gLnAtdGFicy1uYXYgbGkgYSxcbiAgICAmLnAtdGFicy1yaWdodCA+IC5wLXRhYnMtbmF2IGxpIGEge1xuICAgICAgICB3aWR0aDogOTAlO1xuICAgIH1cblxuICAgICYucC10YWJzLWxlZnQgPiAucC10YWJzLW5hdiA+IGxpLnAtdGFicy1oZWFkZXIsXG4gICAgJi5wLXRhYnMtcmlnaHQgPiAucC10YWJzLW5hdiA+IGxpLnAtdGFicy1oZWFkZXIge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICB9XG5cbiAgICAmLnAtdGFicy1sZWZ0ID4gLnAtdGFicy1wYW5lbHMsXG4gICAgJi5wLXRhYnMtcmlnaHQgPiAucC10YWJzLXBhbmVscyB7XG4gICAgICAgIHdpZHRoOiA3NSU7XG4gICAgfVxuXG4gICAgJi5wLXRhYnMtbGVmdCAucC10YWJzLWFjdGlvbnMsXG4gICAgJi5wLXRhYnMtcmlnaHQgLnAtdGFicy1hY3Rpb25zIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBib3R0b206IDA7XG4gICAgfVxuXG4gICAgJi5wLXRhYnMtbGVmdCA+IC5wLXRhYnMtbmF2IHtcbiAgICAgICAgLyogbm8gdG9rZW46IHNlZSBib3R0b20gb3JpZW50YXRpb24gKi9cbiAgICAgICAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgdmFyKC0tcC10YWJzLXRhYmxpc3QtYm9yZGVyLWNvbG9yKTtcbiAgICB9XG5cbiAgICAmLnAtdGFicy1yaWdodCB7XG4gICAgICAgID4gLnAtdGFicy1uYXYge1xuICAgICAgICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgICAgICAgICAgLyogbm8gdG9rZW46IHNlZSBib3R0b20gb3JpZW50YXRpb24gKi9cbiAgICAgICAgICAgIGJvcmRlci1sZWZ0OiAxcHggc29saWQgdmFyKC0tcC10YWJzLXRhYmxpc3QtYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgfVxuXG4gICAgICAgID4gLnAtdGFicy1wYW5lbHMge1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLnAtdGFicy1sZWZ0ID4gLnAtdGFicy1uYXYgPiBsaS5wLXRhYnMtaGVhZGVyOjphZnRlcixcbiAgICAmLnAtdGFicy1yaWdodCA+IC5wLXRhYnMtbmF2ID4gbGkucC10YWJzLWhlYWRlcjo6YWZ0ZXIge1xuICAgICAgICBpbnNldC1ibG9jazogMDtcbiAgICAgICAgd2lkdGg6IHZhcigtLXAtdGFicy1hY3RpdmUtYmFyLWhlaWdodCk7XG4gICAgICAgIGhlaWdodDogYXV0bztcbiAgICB9XG5cbiAgICAmLnAtdGFicy1sZWZ0ID4gLnAtdGFicy1uYXYgPiBsaS5wLXRhYnMtaGVhZGVyOjphZnRlciB7XG4gICAgICAgIGluc2V0LWlubGluZTogYXV0byB2YXIoLS1wLXRhYnMtYWN0aXZlLWJhci1ib3R0b20pO1xuICAgIH1cblxuICAgICYucC10YWJzLXJpZ2h0ID4gLnAtdGFicy1uYXYgPiBsaS5wLXRhYnMtaGVhZGVyOjphZnRlciB7XG4gICAgICAgIGluc2V0LWlubGluZTogdmFyKC0tcC10YWJzLWFjdGl2ZS1iYXItYm90dG9tKSBhdXRvO1xuICAgIH1cblxuICAgIC8qIHNjcm9sbGFibGU6IG5hdiBidXR0b25zICovXG4gICAgLnAtdGFicy1uYXZzY3JvbGxlciB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiB2YXIoLS1wLXRhYnMtbmF2LWJ1dHRvbi13aWR0aCk7XG5cbiAgICAgICAgJi5wLXRhYnMtbmF2c2Nyb2xsZXItYnRuLWhpZGRlbiB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAucC10YWJzLW5hdnNjcm9sbGVyLWJ0biB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgICAgei1pbmRleDogMjtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIHdpZHRoOiB2YXIoLS1wLXRhYnMtbmF2LWJ1dHRvbi13aWR0aCk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1wLXRhYnMtbmF2LWJ1dHRvbi1iYWNrZ3JvdW5kKTtcbiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1wLXRhYnMtbmF2LWJ1dHRvbi1jb2xvcik7XG4gICAgICAgICAgICBib3JkZXI6IDAgbm9uZTtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IHZhcigtLXAtdGFicy1uYXYtYnV0dG9uLXNoYWRvdyk7XG4gICAgICAgICAgICBvdXRsaW5lOiAwIG5vbmU7XG4gICAgICAgICAgICBvdXRsaW5lLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIHRyYW5zaXRpb246IGNvbG9yIHZhcigtLXAtdGFicy10cmFuc2l0aW9uLWR1cmF0aW9uKSwgb3V0bGluZS1jb2xvciB2YXIoLS1wLXRhYnMtdHJhbnNpdGlvbi1kdXJhdGlvbiksXG4gICAgICAgICAgICAgICAgYm94LXNoYWRvdyB2YXIoLS1wLXRhYnMtdHJhbnNpdGlvbi1kdXJhdGlvbik7XG5cbiAgICAgICAgICAgICYucC10YWJzLW5hdnNjcm9sbGVyLWJ0bi1sZWZ0IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLnAtdGFicy1uYXZzY3JvbGxlci1idG4tcmlnaHQge1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAucC10YWJzLXByZXYtaWNvbiB7XG4gICAgICAgICAgICAgICAgLS1faWNvbjogdmFyKC0tcC10YWJzLXByZXYtaWNvbik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5wLXRhYnMtbmV4dC1pY29uIHtcbiAgICAgICAgICAgICAgICAtLV9pY29uOiB2YXIoLS1wLXRhYnMtbmV4dC1pY29uKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi5wLXN0YXRlLWhvdmVyLFxuICAgICAgICAgICAgJjpub3QoLnAtc3RhdGUtZGlzYWJsZWQpOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1wLXRhYnMtbmF2LWJ1dHRvbi1iYWNrZ3JvdW5kKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogdmFyKC0tcC10YWJzLW5hdi1idXR0b24taG92ZXItY29sb3IpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmZvY3VzLXZpc2libGUge1xuICAgICAgICAgICAgICAgIHotaW5kZXg6IDM7XG4gICAgICAgICAgICAgICAgb3V0bGluZTogdmFyKC0tcC10YWJzLW5hdi1idXR0b24tZm9jdXMtcmluZy13aWR0aCkgdmFyKC0tcC10YWJzLW5hdi1idXR0b24tZm9jdXMtcmluZy1zdHlsZSkgdmFyKC0tcC10YWJzLW5hdi1idXR0b24tZm9jdXMtcmluZy1jb2xvcik7XG4gICAgICAgICAgICAgICAgb3V0bGluZS1vZmZzZXQ6IHZhcigtLXAtdGFicy1uYXYtYnV0dG9uLWZvY3VzLXJpbmctb2Zmc2V0KTtcbiAgICAgICAgICAgICAgICBib3gtc2hhZG93OiB2YXIoLS1wLXRhYnMtbmF2LWJ1dHRvbi1mb2N1cy1yaW5nLXNoYWRvdyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAucC10YWJzLW5hdnNjcm9sbGVyLWJ0biB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIH1cblxuICAgIC5wLXRhYnMtbmF2c2Nyb2xsZXIucC10YWJzLW5hdnNjcm9sbGVyLWJ0bi1oaWRkZW4gLnAtdGFicy1uYXZzY3JvbGxlci1idG4ge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbn1cblxuLyogdmVydGljYWwgdGFibGlzdDogdGhlIG5hdiBmbG9hdHMgbmV4dCB0byB0aGUgcGFuZWxzICovXG4ucC10YWJzLWxlZnQ6OmFmdGVyLFxuLnAtdGFicy1yaWdodDo6YWZ0ZXIge1xuICAgIGNsZWFyOiBib3RoO1xuICAgIGNvbnRlbnQ6IFwiLlwiO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGhlaWdodDogMDtcbiAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG59XG5cbi5wLXRhYnMtbGVmdCB7XG4gICAgPiAucC10YWJzLW5hdiB7XG4gICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgIH1cblxuICAgID4gLnAtdGFicy1wYW5lbHMge1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIH1cbn1cblxuLnAtdGFicy1ydGwge1xuICAgIGRpcmVjdGlvbjogcnRsO1xufVxuXG4ucC10YWJzLXNjcm9sbGFibGUgPiAucC10YWJzLW5hdnNjcm9sbGVyID4gLnAtdGFicy1uYXYge1xuICAgIHdpZHRoOiA1MDAwcHg7XG59XG5cbi5wLXRhYnMtb3V0bGluZSB7XG4gICAgei1pbmRleDogMTtcbn1cbiIsICIvKlxuICogVGFnOiBwOnRhZ1xuICpcbiAqIE1hcmt1cDogc3Bhbi5wLXRhZyA+IHNwYW4ucC10YWctaWNvbj8sIHNwYW4ucC10YWctdmFsdWVcbiAqIFN1cHBvcnRlZCBjbGFzc2VzOiBwLXRhZy1zdWNjZXNzIHwgLWluZm8gfCAtd2FybmluZyB8IC1kYW5nZXIgfCAtc2Vjb25kYXJ5IHwgLWhlbHAsIHAtdGFnLXJvdW5kZWQsIHAtdGFnLW91dGxpbmVkLFxuICogICAgICAgICAgICAgICAgICAgIHAtdGFnLWNvbnRyYXN0IChzdHlsZUNsYXNzIG9ubHksIHRoZSBzZXZlcml0eSBhdHRyaWJ1dGUgZG9lcyBub3Qga25vdyBpdClcbiAqL1xuXG4ucC10YWcge1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgZ2FwOiB2YXIoLS1wLXRhZy1nYXApO1xuICAgIGJhY2tncm91bmQ6IHZhcigtLXAtdGFnLXByaW1hcnktYmFja2dyb3VuZCk7XG4gICAgY29sb3I6IHZhcigtLXAtdGFnLXByaW1hcnktY29sb3IpO1xuICAgIGZvbnQtc2l6ZTogdmFyKC0tcC10YWctZm9udC1zaXplKTtcbiAgICBmb250LXdlaWdodDogdmFyKC0tcC10YWctZm9udC13ZWlnaHQpO1xuICAgIHBhZGRpbmc6IHZhcigtLXAtdGFnLXBhZGRpbmcpO1xuICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXAtdGFnLWJvcmRlci1yYWRpdXMpO1xuXG4gICAgLnAtdGFnLWljb24sXG4gICAgLnAtdGFnLXZhbHVlIHtcbiAgICAgICAgbGluZS1oZWlnaHQ6IHZhcigtLXAtdHlwb2dyYXBoeS1saW5lLWhlaWdodCk7XG4gICAgfVxuXG4gICAgLyogdGFnIHVzZWQgYXMgcGxhaW4gc3R5bGVDbGFzcyAoZS5nLiA8c3BhbiBjbGFzcz1cInAtdGFnXCI+KSAqL1xuICAgICY6bm90KC5wLWNvbXBvbmVudCkge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgfVxuXG4gICAgJi5wLXRhZy1zdWNjZXNzIHtcbiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tcC10YWctc3VjY2Vzcy1iYWNrZ3JvdW5kKTtcbiAgICAgICAgY29sb3I6IHZhcigtLXAtdGFnLXN1Y2Nlc3MtY29sb3IpO1xuICAgIH1cblxuICAgICYucC10YWctaW5mbyB7XG4gICAgICAgIGJhY2tncm91bmQ6IHZhcigtLXAtdGFnLWluZm8tYmFja2dyb3VuZCk7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1wLXRhZy1pbmZvLWNvbG9yKTtcbiAgICB9XG5cbiAgICAmLnAtdGFnLXdhcm5pbmcge1xuICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1wLXRhZy13YXJuLWJhY2tncm91bmQpO1xuICAgICAgICBjb2xvcjogdmFyKC0tcC10YWctd2Fybi1jb2xvcik7XG4gICAgfVxuXG4gICAgJi5wLXRhZy1kYW5nZXIge1xuICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1wLXRhZy1kYW5nZXItYmFja2dyb3VuZCk7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1wLXRhZy1kYW5nZXItY29sb3IpO1xuICAgIH1cblxuICAgICYucC10YWctc2Vjb25kYXJ5IHtcbiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tcC10YWctc2Vjb25kYXJ5LWJhY2tncm91bmQpO1xuICAgICAgICBjb2xvcjogdmFyKC0tcC10YWctc2Vjb25kYXJ5LWNvbG9yKTtcbiAgICB9XG5cbiAgICAmLnAtdGFnLWhlbHAge1xuICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1wLXRhZy1oZWxwLWJhY2tncm91bmQpO1xuICAgICAgICBjb2xvcjogdmFyKC0tcC10YWctaGVscC1jb2xvcik7XG4gICAgfVxuXG4gICAgJi5wLXRhZy1jb250cmFzdCB7XG4gICAgICAgIGJhY2tncm91bmQ6IHZhcigtLXAtdGFnLWNvbnRyYXN0LWJhY2tncm91bmQpO1xuICAgICAgICBjb2xvcjogdmFyKC0tcC10YWctY29udHJhc3QtY29sb3IpO1xuICAgIH1cblxuICAgIC8qIG91dGxpbmVkIChvdXRsaW5lZD1cInRydWVcIik6IHRoZSBib3JkZXIgaXMgYW4gaW5zZXQgc2hhZG93LCBzbyBvdXRsaW5lZCBhbmQgZmlsbGVkIHRhZ3MgaGF2ZSB0aGUgc2FtZSBzaXplICovXG4gICAgJi5wLXRhZy1vdXRsaW5lZCB7XG4gICAgICAgIC0tX2JvcmRlci1jb2xvcjogdmFyKC0tcC10YWctb3V0bGluZWQtcHJpbWFyeS1ib3JkZXItY29sb3IpO1xuICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1wLXRhZy1vdXRsaW5lZC1iYWNrZ3JvdW5kKTtcbiAgICAgICAgY29sb3I6IHZhcigtLXAtdGFnLW91dGxpbmVkLXByaW1hcnktY29sb3IpO1xuICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDAgMCB2YXIoLS1wLXRhZy1vdXRsaW5lZC1ib3JkZXItd2lkdGgpIHZhcigtLV9ib3JkZXItY29sb3IpO1xuXG4gICAgICAgICYucC10YWctc3VjY2VzcyB7XG4gICAgICAgICAgICAtLV9ib3JkZXItY29sb3I6IHZhcigtLXAtdGFnLW91dGxpbmVkLXN1Y2Nlc3MtYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1wLXRhZy1vdXRsaW5lZC1zdWNjZXNzLWNvbG9yKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYucC10YWctaW5mbyB7XG4gICAgICAgICAgICAtLV9ib3JkZXItY29sb3I6IHZhcigtLXAtdGFnLW91dGxpbmVkLWluZm8tYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1wLXRhZy1vdXRsaW5lZC1pbmZvLWNvbG9yKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYucC10YWctd2FybmluZyB7XG4gICAgICAgICAgICAtLV9ib3JkZXItY29sb3I6IHZhcigtLXAtdGFnLW91dGxpbmVkLXdhcm4tYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1wLXRhZy1vdXRsaW5lZC13YXJuLWNvbG9yKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYucC10YWctZGFuZ2VyIHtcbiAgICAgICAgICAgIC0tX2JvcmRlci1jb2xvcjogdmFyKC0tcC10YWctb3V0bGluZWQtZGFuZ2VyLWJvcmRlci1jb2xvcik7XG4gICAgICAgICAgICBjb2xvcjogdmFyKC0tcC10YWctb3V0bGluZWQtZGFuZ2VyLWNvbG9yKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYucC10YWctc2Vjb25kYXJ5IHtcbiAgICAgICAgICAgIC0tX2JvcmRlci1jb2xvcjogdmFyKC0tcC10YWctb3V0bGluZWQtc2Vjb25kYXJ5LWJvcmRlci1jb2xvcik7XG4gICAgICAgICAgICBjb2xvcjogdmFyKC0tcC10YWctb3V0bGluZWQtc2Vjb25kYXJ5LWNvbG9yKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYucC10YWctaGVscCB7XG4gICAgICAgICAgICAtLV9ib3JkZXItY29sb3I6IHZhcigtLXAtdGFnLW91dGxpbmVkLWhlbHAtYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1wLXRhZy1vdXRsaW5lZC1oZWxwLWNvbG9yKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYucC10YWctY29udHJhc3Qge1xuICAgICAgICAgICAgLS1fYm9yZGVyLWNvbG9yOiB2YXIoLS1wLXRhZy1vdXRsaW5lZC1jb250cmFzdC1ib3JkZXItY29sb3IpO1xuICAgICAgICAgICAgY29sb3I6IHZhcigtLXAtdGFnLW91dGxpbmVkLWNvbnRyYXN0LWNvbG9yKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICYucC10YWctcm91bmRlZCB7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXAtdGFnLXJvdW5kZWQtYm9yZGVyLXJhZGl1cyk7XG4gICAgfVxuXG4gICAgLnAtdGFnLWljb24ge1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIGZvbnQtc2l6ZTogdmFyKC0tcC10YWctaWNvbi1zaXplKTtcbiAgICB9XG5cbiAgICAvKiBpbmxpbmUtYmxvY2sgdmFyaWFudCBoYXMgbm8gZmxleCBnYXAgKi9cbiAgICAmOm5vdCgucC1jb21wb25lbnQpIC5wLXRhZy1pY29uIHtcbiAgICAgICAgbWFyZ2luLWlubGluZS1lbmQ6IHZhcigtLXAtdGFnLWdhcCk7XG4gICAgfVxufVxuIiwgIi8qXG4gKiBUYWdDbG91ZDogcDp0YWdDbG91ZCAoUHJpbWVGYWNlcyB0YWdjbG91ZCB0b2tlbnM6IGNvbnRlbnQgdG9rZW5zIGZvciB0aGUgY29udGFpbmVyLCB0YWcgdG9rZW5zIGZvciB0aGUgbGlua3MpXG4gKlxuICogU3VwcG9ydGVkIGNsYXNzZXM6IHAtdGFnY2xvdWQtc3RyZW5ndGgtMSAuLiBwLXRhZ2Nsb3VkLXN0cmVuZ3RoLTVcbiAqL1xuXG4ucC10YWdjbG91ZCB7XG4gICAgd2lkdGg6IDI1MHB4O1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLXAtdGFnY2xvdWQtYm9yZGVyLWNvbG9yKTtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1wLXRhZ2Nsb3VkLWJhY2tncm91bmQpO1xuICAgIGNvbG9yOiB2YXIoLS1wLXRhZ2Nsb3VkLWNvbG9yKTtcbiAgICBwYWRkaW5nOiB2YXIoLS1wLXRhZ2Nsb3VkLXBhZGRpbmcpO1xuICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXAtdGFnY2xvdWQtYm9yZGVyLXJhZGl1cyk7XG5cbiAgICB1bCB7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBnYXA6IHZhcigtLXAtdGFnY2xvdWQtZ2FwKTtcbiAgICB9XG5cbiAgICBsaSB7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIH1cblxuICAgIGxpIGEge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgcGFkZGluZzogdmFyKC0tcC10YWdjbG91ZC1pdGVtLXBhZGRpbmcpO1xuICAgICAgICBjb2xvcjogdmFyKC0tcC10YWdjbG91ZC1pdGVtLWNvbG9yKTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogdmFyKC0tcC10YWdjbG91ZC1pdGVtLWJvcmRlci1yYWRpdXMpO1xuICAgICAgICBvdXRsaW5lLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCB2YXIoLS1wLXRhZ2Nsb3VkLXRyYW5zaXRpb24tZHVyYXRpb24pLCBjb2xvciB2YXIoLS1wLXRhZ2Nsb3VkLXRyYW5zaXRpb24tZHVyYXRpb24pLFxuICAgICAgICAgICAgb3V0bGluZS1jb2xvciB2YXIoLS1wLXRhZ2Nsb3VkLXRyYW5zaXRpb24tZHVyYXRpb24pLCBib3gtc2hhZG93IHZhcigtLXAtdGFnY2xvdWQtdHJhbnNpdGlvbi1kdXJhdGlvbik7XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJi5wLXN0YXRlLWhvdmVyIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHZhcigtLXAtdGFnY2xvdWQtaXRlbS1ob3Zlci1iYWNrZ3JvdW5kKTtcbiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1wLXRhZ2Nsb3VkLWl0ZW0taG92ZXItY29sb3IpO1xuICAgICAgICB9XG5cbiAgICAgICAgJjpmb2N1cy12aXNpYmxlIHtcbiAgICAgICAgICAgIG91dGxpbmU6IHZhcigtLXAtdGFnY2xvdWQtaXRlbS1mb2N1cy1yaW5nLXdpZHRoKSB2YXIoLS1wLXRhZ2Nsb3VkLWl0ZW0tZm9jdXMtcmluZy1zdHlsZSkgdmFyKC0tcC10YWdjbG91ZC1pdGVtLWZvY3VzLXJpbmctY29sb3IpO1xuICAgICAgICAgICAgb3V0bGluZS1vZmZzZXQ6IHZhcigtLXAtdGFnY2xvdWQtaXRlbS1mb2N1cy1yaW5nLW9mZnNldCk7XG4gICAgICAgICAgICBib3gtc2hhZG93OiB2YXIoLS1wLXRhZ2Nsb3VkLWl0ZW0tZm9jdXMtcmluZy1zaGFkb3cpO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4ucC10YWdjbG91ZC1zdHJlbmd0aC0xIHtcbiAgICBmb250LXNpemU6IHZhcigtLXAtdGFnY2xvdWQtc3RyZW5ndGgtMS1mb250LXNpemUpO1xufVxuXG4ucC10YWdjbG91ZC1zdHJlbmd0aC0yIHtcbiAgICBmb250LXNpemU6IHZhcigtLXAtdGFnY2xvdWQtc3RyZW5ndGgtMi1mb250LXNpemUpO1xufVxuXG4ucC10YWdjbG91ZC1zdHJlbmd0aC0zIHtcbiAgICBmb250LXNpemU6IHZhcigtLXAtdGFnY2xvdWQtc3RyZW5ndGgtMy1mb250LXNpemUpO1xufVxuXG4ucC10YWdjbG91ZC1zdHJlbmd0aC00IHtcbiAgICBmb250LXNpemU6IHZhcigtLXAtdGFnY2xvdWQtc3RyZW5ndGgtNC1mb250LXNpemUpO1xufVxuXG4ucC10YWdjbG91ZC1zdHJlbmd0aC01IHtcbiAgICBmb250LXNpemU6IHZhcigtLXAtdGFnY2xvdWQtc3RyZW5ndGgtNS1mb250LXNpemUpO1xufVxuIiwgIi8qXG4gKiBUaWVyZWRNZW51OiBwOnRpZXJlZE1lbnVcbiAqXG4gKiBUaGUgdGllcmVkIG1hcmt1cCAoLnAtbWVudS1wYXJlbnQgPiAucC1tZW51LWNoaWxkIG92ZXJsYXkgc3VibWVudXMsIGl0ZW0gaG92ZXIgLyBhY3RpdmUgc3RhdGVzKSBpcyBzaGFyZWQgd2l0aFxuICogcDptZW51YmFyLCBwOm1lZ2FNZW51IGFuZCBwOmNvbnRleHRNZW51IGFuZCBzdHlsZWQgYnkgbWVudS9tZW51LmJhc2UuY3NzOyB0aGlzIGZpbGUgb25seSBtYXBzIHRoZSB0aWVyZWRtZW51IHRva2Vucy5cbiAqL1xuXG4ucC1tZW51LnAtdGllcmVkbWVudSB7XG4gICAgLS1fYmc6IHZhcigtLXAtdGllcmVkbWVudS1iYWNrZ3JvdW5kKTtcbiAgICAtLV9ib3JkZXItY29sb3I6IHZhcigtLXAtdGllcmVkbWVudS1ib3JkZXItY29sb3IpO1xuICAgIC0tX2JvcmRlci1yYWRpdXM6IHZhcigtLXAtdGllcmVkbWVudS1ib3JkZXItcmFkaXVzKTtcbiAgICAtLV9jb2xvcjogdmFyKC0tcC10aWVyZWRtZW51LWNvbG9yKTtcbiAgICAtLV9zaGFkb3c6IHZhcigtLXAtdGllcmVkbWVudS1zaGFkb3cpO1xuICAgIC0tX2xpc3QtcGFkZGluZzogdmFyKC0tcC10aWVyZWRtZW51LWxpc3QtcGFkZGluZyk7XG4gICAgLS1fbGlzdC1nYXA6IHZhcigtLXAtdGllcmVkbWVudS1saXN0LWdhcCk7XG4gICAgLS1fdHJhbnNpdGlvbi1kdXJhdGlvbjogdmFyKC0tcC10aWVyZWRtZW51LXRyYW5zaXRpb24tZHVyYXRpb24pO1xuICAgIC0tX2l0ZW0tYm9yZGVyLXJhZGl1czogdmFyKC0tcC10aWVyZWRtZW51LWl0ZW0tYm9yZGVyLXJhZGl1cyk7XG4gICAgLS1faXRlbS1wYWRkaW5nOiB2YXIoLS1wLXRpZXJlZG1lbnUtaXRlbS1wYWRkaW5nKTtcbiAgICAtLV9pdGVtLWdhcDogdmFyKC0tcC10aWVyZWRtZW51LWl0ZW0tZ2FwKTtcbiAgICAtLV9pdGVtLWNvbG9yOiB2YXIoLS1wLXRpZXJlZG1lbnUtaXRlbS1jb2xvcik7XG4gICAgLS1faXRlbS1mb2N1cy1iYWNrZ3JvdW5kOiB2YXIoLS1wLXRpZXJlZG1lbnUtaXRlbS1mb2N1cy1iYWNrZ3JvdW5kKTtcbiAgICAtLV9pdGVtLWZvY3VzLWNvbG9yOiB2YXIoLS1wLXRpZXJlZG1lbnUtaXRlbS1mb2N1cy1jb2xvcik7XG4gICAgLS1faXRlbS1hY3RpdmUtYmFja2dyb3VuZDogdmFyKC0tcC10aWVyZWRtZW51LWl0ZW0tYWN0aXZlLWJhY2tncm91bmQpO1xuICAgIC0tX2l0ZW0tYWN0aXZlLWNvbG9yOiB2YXIoLS1wLXRpZXJlZG1lbnUtaXRlbS1hY3RpdmUtY29sb3IpO1xuICAgIC0tX2l0ZW0taWNvbi1jb2xvcjogdmFyKC0tcC10aWVyZWRtZW51LWl0ZW0taWNvbi1jb2xvcik7XG4gICAgLS1faXRlbS1pY29uLWZvY3VzLWNvbG9yOiB2YXIoLS1wLXRpZXJlZG1lbnUtaXRlbS1pY29uLWZvY3VzLWNvbG9yKTtcbiAgICAtLV9pdGVtLWljb24tYWN0aXZlLWNvbG9yOiB2YXIoLS1wLXRpZXJlZG1lbnUtaXRlbS1pY29uLWFjdGl2ZS1jb2xvcik7XG4gICAgLS1faXRlbS1pY29uLXNpemU6IHZhcigtLXAtdGllcmVkbWVudS1pdGVtLWljb24tc2l6ZSk7XG4gICAgLS1faXRlbS1sYWJlbC1mb250LXNpemU6IHZhcigtLXAtdGllcmVkbWVudS1pdGVtLWxhYmVsLWZvbnQtc2l6ZSk7XG4gICAgLS1faXRlbS1sYWJlbC1mb250LXdlaWdodDogdmFyKC0tcC10aWVyZWRtZW51LWl0ZW0tbGFiZWwtZm9udC13ZWlnaHQpO1xuICAgIC0tX3N1Ym1lbnUtaWNvbi1jb2xvcjogdmFyKC0tcC10aWVyZWRtZW51LXN1Ym1lbnUtaWNvbi1jb2xvcik7XG4gICAgLS1fc3VibWVudS1pY29uLWZvY3VzLWNvbG9yOiB2YXIoLS1wLXRpZXJlZG1lbnUtc3VibWVudS1pY29uLWZvY3VzLWNvbG9yKTtcbiAgICAtLV9zdWJtZW51LWljb24tc2l6ZTogdmFyKC0tcC10aWVyZWRtZW51LXN1Ym1lbnUtaWNvbi1zaXplKTtcbiAgICAtLV9zdWJtZW51LWljb24tYWN0aXZlLWNvbG9yOiB2YXIoLS1wLXRpZXJlZG1lbnUtc3VibWVudS1pY29uLWFjdGl2ZS1jb2xvcik7XG4gICAgLS1fc2VwYXJhdG9yLWJvcmRlci1jb2xvcjogdmFyKC0tcC10aWVyZWRtZW51LXNlcGFyYXRvci1ib3JkZXItY29sb3IpO1xuICAgIC0tX3N1Ym1lbnUtYmFja2dyb3VuZDogdmFyKC0tcC10aWVyZWRtZW51LWJhY2tncm91bmQpO1xuICAgIC0tX3N1Ym1lbnUtYm9yZGVyLWNvbG9yOiB2YXIoLS1wLXRpZXJlZG1lbnUtYm9yZGVyLWNvbG9yKTtcbiAgICAtLV9zdWJtZW51LWJvcmRlci1yYWRpdXM6IHZhcigtLXAtdGllcmVkbWVudS1ib3JkZXItcmFkaXVzKTtcbiAgICAtLV9zdWJtZW51LXBhZGRpbmc6IHZhcigtLXAtdGllcmVkbWVudS1saXN0LXBhZGRpbmcpO1xuICAgIC0tX3N1Ym1lbnUtc2hhZG93OiB2YXIoLS1wLXRpZXJlZG1lbnUtc2hhZG93KTtcbn1cbiIsICIvKlxuICogVG9nZ2xlU3dpdGNoOiBwOnRvZ2dsZVN3aXRjaFxuICpcbiAqIFN1cHBvcnRlZCBjbGFzc2VzOiBwLXRvZ2dsZXN3aXRjaC1jaGVja2VkLCBwLXRvZ2dsZXN3aXRjaC1mb2N1cywgcC1zdGF0ZS1kaXNhYmxlZCwgcC1zdGF0ZS1yZWFkb25seSxcbiAqICAgICAgICAgICAgICAgICAgICBwLXRvZ2dsZXN3aXRjaC1kdWFsLWljb24gKG9uSWNvbiArIG9mZkljb24pLCBwLXN0YXRlLWVycm9yIChvbiAucC10b2dnbGVzd2l0Y2gtc2xpZGVyKSxcbiAqICAgICAgICAgICAgICAgICAgICBwLXRvZ2dsZXN3aXRjaC1zbSwgcC10b2dnbGVzd2l0Y2gtbGcgKHN0eWxlQ2xhc3Mgb2YgcDp0b2dnbGVTd2l0Y2ggb3IgYW55IHBhcmVudDogc21hbGwgLyBsYXJnZSBzd2l0Y2gpXG4gKlxuICogUlRMIChkaXI9XCJydGxcIiBvbiB0aGUgc3dpdGNoIG9yIGFuIGFuY2VzdG9yKTogdGhlIGhhbmRsZSBzdGFydHMgb24gdGhlIHJpZ2h0IGFuZCBzbGlkZXMgdG8gdGhlIGxlZnQsIHRoZSBkdWFsIGljb25zXG4gKiByb2xsIHRoZSBvdGhlciB3YXkuXG4gKi9cbi5wLXRvZ2dsZXN3aXRjaC1oYW5kbGVyIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG59XG5cbi8qIG9uSWNvbiAvIG9mZkljb246IGJvdGggaWNvbnMgYXJlIHN0YWNrZWQgaW4gdGhlIGhhbmRsZSwgdGhlIGluYWN0aXZlIG9uZSBpcyByb3RhdGVkIG91dCAqL1xuLnAtdG9nZ2xlc3dpdGNoLWR1YWwtaWNvbiB7XG4gICAgLnAtdG9nZ2xlc3dpdGNoLWhhbmRsZXIgPiBzcGFuOm5vdCgucC1pbmstY29udGFpbmVyKSB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdHJhbnNpdGlvbi1kdXJhdGlvbjogdmFyKC0tcC10b2dnbGVzd2l0Y2gtc2xpZGUtZHVyYXRpb24pO1xuICAgICAgICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogdmFyKC0tcC10cmFuc2l0aW9uLWVhc2luZyk7XG4gICAgICAgIHRyYW5zaXRpb24tcHJvcGVydHk6IG9wYWNpdHksIHRyYW5zZm9ybTtcbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoLTkwZGVnKTtcblxuICAgICAgICAmICsgc3BhbiB7XG4gICAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLnAtdG9nZ2xlc3dpdGNoLWNoZWNrZWQgLnAtdG9nZ2xlc3dpdGNoLWhhbmRsZXIgPiBzcGFuOm5vdCgucC1pbmstY29udGFpbmVyKSB7XG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDBkZWcpO1xuXG4gICAgICAgICYgKyBzcGFuIHtcbiAgICAgICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg5MGRlZyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiBSVEw6IHRoZSBoYW5kbGUgcm9sbHMgdG8gdGhlIGxlZnQsIHNvIHRoZSBpY29ucyByb3RhdGUgdGhlIG90aGVyIHdheSAqL1xuICAgICY6ZGlyKHJ0bCkgLnAtdG9nZ2xlc3dpdGNoLWhhbmRsZXIgPiBzcGFuOm5vdCgucC1pbmstY29udGFpbmVyKSB7XG4gICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDkwZGVnKTtcblxuICAgICAgICAmICsgc3BhbiB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICYucC10b2dnbGVzd2l0Y2gtY2hlY2tlZDpkaXIocnRsKSAucC10b2dnbGVzd2l0Y2gtaGFuZGxlciA+IHNwYW46bm90KC5wLWluay1jb250YWluZXIpIHtcbiAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7XG5cbiAgICAgICAgJiArIHNwYW4ge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoLTkwZGVnKTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLnAtdG9nZ2xlc3dpdGNoIHtcbiAgICAvKiB0aGUgc2l6ZSBjbGFzc2VzIHNldCAtLV90b2dnbGVzd2l0Y2gtKiAoYSBzaXplIHRva2VuIG11c3Qgbm90IGJlIHJlZGVjbGFyZWQgZnJvbSBpdHNlbGYgb24gdGhlIHNhbWUgZWxlbWVudCkgKi9cbiAgICAtLV93aWR0aDogdmFyKC0tX3RvZ2dsZXN3aXRjaC13aWR0aCwgdmFyKC0tcC10b2dnbGVzd2l0Y2gtd2lkdGgpKTtcbiAgICAtLV9oZWlnaHQ6IHZhcigtLV90b2dnbGVzd2l0Y2gtaGVpZ2h0LCB2YXIoLS1wLXRvZ2dsZXN3aXRjaC1oZWlnaHQpKTtcbiAgICAtLV9nYXA6IHZhcigtLV90b2dnbGVzd2l0Y2gtZ2FwLCB2YXIoLS1wLXRvZ2dsZXN3aXRjaC1nYXApKTtcbiAgICAtLV9oYW5kbGUtc2l6ZTogdmFyKC0tX3RvZ2dsZXN3aXRjaC1oYW5kbGUtc2l6ZSwgdmFyKC0tcC10b2dnbGVzd2l0Y2gtaGFuZGxlLXNpemUpKTtcbiAgICAtLV9oYW5kbGUtaWNvbi1zaXplOiB2YXIoLS1fdG9nZ2xlc3dpdGNoLWhhbmRsZS1pY29uLXNpemUsIHZhcigtLXAtdG9nZ2xlc3dpdGNoLWhhbmRsZS1pY29uLXNpemUpKTtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHdpZHRoOiB2YXIoLS1fd2lkdGgpO1xuICAgIGhlaWdodDogdmFyKC0tX2hlaWdodCk7XG5cbiAgICAucC10b2dnbGVzd2l0Y2gtc2xpZGVyIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tcC10b2dnbGVzd2l0Y2gtYmFja2dyb3VuZCk7XG4gICAgICAgIGJvcmRlcjogdmFyKC0tcC10b2dnbGVzd2l0Y2gtYm9yZGVyLXdpZHRoKSBzb2xpZCB2YXIoLS1wLXRvZ2dsZXN3aXRjaC1ib3JkZXItY29sb3IpO1xuICAgICAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1wLXRvZ2dsZXN3aXRjaC1ib3JkZXItcmFkaXVzKTtcbiAgICAgICAgYm94LXNoYWRvdzogdmFyKC0tcC10b2dnbGVzd2l0Y2gtc2hhZG93KTtcbiAgICAgICAgb3V0bGluZS1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgdmFyKC0tcC10b2dnbGVzd2l0Y2gtdHJhbnNpdGlvbi1kdXJhdGlvbiksIGNvbG9yIHZhcigtLXAtdG9nZ2xlc3dpdGNoLXRyYW5zaXRpb24tZHVyYXRpb24pLFxuICAgICAgICAgICAgYm9yZGVyLWNvbG9yIHZhcigtLXAtdG9nZ2xlc3dpdGNoLXRyYW5zaXRpb24tZHVyYXRpb24pLCBvdXRsaW5lLWNvbG9yIHZhcigtLXAtdG9nZ2xlc3dpdGNoLXRyYW5zaXRpb24tZHVyYXRpb24pLFxuICAgICAgICAgICAgYm94LXNoYWRvdyB2YXIoLS1wLXRvZ2dsZXN3aXRjaC10cmFuc2l0aW9uLWR1cmF0aW9uKTtcbiAgICB9XG5cbiAgICAvKiB0aGUgaGFuZGxlIHNpdHMgaW5zaWRlIHRoZSBzbGlkZXIgYm9yZGVyLCBzbyB0aGUgYm9yZGVyIHdpZHRoIGlzIHN1YnRyYWN0ZWQgZnJvbSB0aGUgZ2FwICovXG4gICAgLnAtdG9nZ2xlc3dpdGNoLWhhbmRsZXIge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogNTAlO1xuICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1wLXRvZ2dsZXN3aXRjaC1oYW5kbGUtYmFja2dyb3VuZCk7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1wLXRvZ2dsZXN3aXRjaC1oYW5kbGUtY29sb3IpO1xuICAgICAgICB3aWR0aDogdmFyKC0tX2hhbmRsZS1zaXplKTtcbiAgICAgICAgaGVpZ2h0OiB2YXIoLS1faGFuZGxlLXNpemUpO1xuICAgICAgICBpbnNldC1pbmxpbmUtc3RhcnQ6IGNhbGModmFyKC0tX2dhcCkgLSB2YXIoLS1wLXRvZ2dsZXN3aXRjaC1ib3JkZXItd2lkdGgpKTtcbiAgICAgICAgbWFyZ2luLXRvcDogY2FsYygtMSAqIHZhcigtLV9oYW5kbGUtc2l6ZSkgLyAyKTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogdmFyKC0tcC10b2dnbGVzd2l0Y2gtaGFuZGxlLWJvcmRlci1yYWRpdXMpO1xuICAgICAgICBib3gtc2hhZG93OiB2YXIoLS1wLXRvZ2dsZXN3aXRjaC1oYW5kbGUtc2hhZG93KTtcbiAgICAgICAgZm9udC1zaXplOiB2YXIoLS1faGFuZGxlLWljb24tc2l6ZSk7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiB2YXIoLS1faGFuZGxlLXNpemUpO1xuICAgICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIHZhcigtLXAtdG9nZ2xlc3dpdGNoLXRyYW5zaXRpb24tZHVyYXRpb24pLCBjb2xvciB2YXIoLS1wLXRvZ2dsZXN3aXRjaC10cmFuc2l0aW9uLWR1cmF0aW9uKSxcbiAgICAgICAgICAgIHRyYW5zZm9ybSB2YXIoLS1wLXRvZ2dsZXN3aXRjaC1zbGlkZS1kdXJhdGlvbikgdmFyKC0tcC10cmFuc2l0aW9uLWVhc2luZyksIGJveC1zaGFkb3cgdmFyKC0tcC10b2dnbGVzd2l0Y2gtc2xpZGUtZHVyYXRpb24pO1xuICAgIH1cblxuICAgIC5wLXRvZ2dsZXN3aXRjaC1oYW5kbGVyID4gc3Bhbjpub3QoLnAtaW5rLWNvbnRhaW5lcikge1xuICAgICAgICBmb250LXNpemU6IHZhcigtLV9oYW5kbGUtaWNvbi1zaXplKTtcbiAgICAgICAgbGluZS1oZWlnaHQ6IHZhcigtLV9oYW5kbGUtc2l6ZSk7XG4gICAgfVxuXG4gICAgLyogY2hlY2tlZCAqL1xuICAgICYucC10b2dnbGVzd2l0Y2gtY2hlY2tlZCB7XG4gICAgICAgIC5wLXRvZ2dsZXN3aXRjaC1zbGlkZXIge1xuICAgICAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tcC10b2dnbGVzd2l0Y2gtY2hlY2tlZC1iYWNrZ3JvdW5kKTtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tcC10b2dnbGVzd2l0Y2gtY2hlY2tlZC1ib3JkZXItY29sb3IpO1xuICAgICAgICB9XG5cbiAgICAgICAgLnAtdG9nZ2xlc3dpdGNoLWhhbmRsZXIge1xuICAgICAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tcC10b2dnbGVzd2l0Y2gtaGFuZGxlLWNoZWNrZWQtYmFja2dyb3VuZCk7XG4gICAgICAgICAgICBjb2xvcjogdmFyKC0tcC10b2dnbGVzd2l0Y2gtaGFuZGxlLWNoZWNrZWQtY29sb3IpO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKGNhbGModmFyKC0tX3dpZHRoKSAtIHZhcigtLV9oYW5kbGUtc2l6ZSkgLSAyICogdmFyKC0tX2dhcCkpKTtcblxuICAgICAgICAgICAgJjpkaXIocnRsKSB7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKGNhbGMoLTEgKiAodmFyKC0tX3dpZHRoKSAtIHZhcigtLV9oYW5kbGUtc2l6ZSkgLSAyICogdmFyKC0tX2dhcCkpKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiBob3ZlciAqL1xuICAgICY6bm90KC5wLXN0YXRlLWRpc2FibGVkLCAucC1zdGF0ZS1yZWFkb25seSk6aG92ZXIge1xuICAgICAgICAucC10b2dnbGVzd2l0Y2gtc2xpZGVyIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHZhcigtLXAtdG9nZ2xlc3dpdGNoLWhvdmVyLWJhY2tncm91bmQpO1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1wLXRvZ2dsZXN3aXRjaC1ob3Zlci1ib3JkZXItY29sb3IpO1xuICAgICAgICB9XG5cbiAgICAgICAgLnAtdG9nZ2xlc3dpdGNoLWhhbmRsZXIge1xuICAgICAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tcC10b2dnbGVzd2l0Y2gtaGFuZGxlLWhvdmVyLWJhY2tncm91bmQpO1xuICAgICAgICAgICAgY29sb3I6IHZhcigtLXAtdG9nZ2xlc3dpdGNoLWhhbmRsZS1ob3Zlci1jb2xvcik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLnAtdG9nZ2xlc3dpdGNoLWNoZWNrZWQ6bm90KC5wLXN0YXRlLWRpc2FibGVkLCAucC1zdGF0ZS1yZWFkb25seSk6aG92ZXIge1xuICAgICAgICAucC10b2dnbGVzd2l0Y2gtc2xpZGVyIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHZhcigtLXAtdG9nZ2xlc3dpdGNoLWNoZWNrZWQtaG92ZXItYmFja2dyb3VuZCk7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IHZhcigtLXAtdG9nZ2xlc3dpdGNoLWNoZWNrZWQtaG92ZXItYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5wLXRvZ2dsZXN3aXRjaC1oYW5kbGVyIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHZhcigtLXAtdG9nZ2xlc3dpdGNoLWhhbmRsZS1jaGVja2VkLWhvdmVyLWJhY2tncm91bmQpO1xuICAgICAgICAgICAgY29sb3I6IHZhcigtLXAtdG9nZ2xlc3dpdGNoLWhhbmRsZS1jaGVja2VkLWhvdmVyLWNvbG9yKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qIGZvY3VzICovXG4gICAgJi5wLXRvZ2dsZXN3aXRjaC1mb2N1cyAucC10b2dnbGVzd2l0Y2gtc2xpZGVyIHtcbiAgICAgICAgb3V0bGluZTogdmFyKC0tcC10b2dnbGVzd2l0Y2gtZm9jdXMtcmluZy13aWR0aCkgdmFyKC0tcC10b2dnbGVzd2l0Y2gtZm9jdXMtcmluZy1zdHlsZSkgdmFyKC0tcC10b2dnbGVzd2l0Y2gtZm9jdXMtcmluZy1jb2xvcik7XG4gICAgICAgIG91dGxpbmUtb2Zmc2V0OiB2YXIoLS1wLXRvZ2dsZXN3aXRjaC1mb2N1cy1yaW5nLW9mZnNldCk7XG4gICAgICAgIGJveC1zaGFkb3c6IHZhcigtLXAtdG9nZ2xlc3dpdGNoLWZvY3VzLXJpbmctc2hhZG93KTtcbiAgICB9XG5cbiAgICAvKiBpbnZhbGlkOiB0aGUgYm9yZGVyIGFsc28gd2lucyBvdmVyIHRoZSAoY2hlY2tlZCkgaG92ZXIgYm9yZGVyIChzYW1lIHNwZWNpZmljaXR5LCBsYXRlcikgKi9cbiAgICAucC10b2dnbGVzd2l0Y2gtc2xpZGVyLnAtc3RhdGUtZXJyb3IsXG4gICAgJjpob3ZlciAucC10b2dnbGVzd2l0Y2gtc2xpZGVyLnAtc3RhdGUtZXJyb3IsXG4gICAgJi5wLXRvZ2dsZXN3aXRjaC1jaGVja2VkOmhvdmVyIC5wLXRvZ2dsZXN3aXRjaC1zbGlkZXIucC1zdGF0ZS1lcnJvciB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tcC10b2dnbGVzd2l0Y2gtaW52YWxpZC1ib3JkZXItY29sb3IpO1xuICAgIH1cblxuICAgIC8qIGRpc2FibGVkOiBhIGZsYXQgZGlzYWJsZWQgbG9vayAob3BhY2l0eSAxLCB0aGUgc2FtZSB0b2tlbnMgZm9yIG9uIGFuZCBvZmY6IEF1cmEsIExhcmEsIE5vcmEsIE1ldGFsKSBvciB0aGVcbiAgICAgICBvbiAvIG9mZiBsb29rIGRpbW1lZCAoR2xhc3MsIGxpa2UgaU9TKSAqL1xuICAgICYucC1zdGF0ZS1kaXNhYmxlZCB7XG4gICAgICAgIG9wYWNpdHk6IHZhcigtLXAtdG9nZ2xlc3dpdGNoLWRpc2FibGVkLW9wYWNpdHkpO1xuXG4gICAgICAgIC5wLXRvZ2dsZXN3aXRjaC1zbGlkZXIge1xuICAgICAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuICAgICAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tcC10b2dnbGVzd2l0Y2gtZGlzYWJsZWQtYmFja2dyb3VuZCk7XG4gICAgICAgIH1cblxuICAgICAgICAucC10b2dnbGVzd2l0Y2gtaGFuZGxlciB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1wLXRvZ2dsZXN3aXRjaC1oYW5kbGUtZGlzYWJsZWQtYmFja2dyb3VuZCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLnAtdG9nZ2xlc3dpdGNoLWNoZWNrZWQge1xuICAgICAgICAgICAgLnAtdG9nZ2xlc3dpdGNoLXNsaWRlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tcC10b2dnbGVzd2l0Y2gtY2hlY2tlZC1kaXNhYmxlZC1iYWNrZ3JvdW5kKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLnAtdG9nZ2xlc3dpdGNoLWhhbmRsZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IHZhcigtLXAtdG9nZ2xlc3dpdGNoLWhhbmRsZS1jaGVja2VkLWRpc2FibGVkLWJhY2tncm91bmQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyogcmVhZG9ubHkgKi9cbiAgICAmLnAtc3RhdGUtcmVhZG9ubHkgLnAtdG9nZ2xlc3dpdGNoLXNsaWRlciB7XG4gICAgICAgIGN1cnNvcjogZGVmYXVsdDtcbiAgICB9XG59XG5cbi8qIHNpemVzOiB0aGUgc2l6ZSB0b2tlbnMgcmVwbGFjZSB0aGUgYmFzZSBvbmVzIChvbiB0aGUgc3dpdGNoIG9yIG9uIGFueSBwYXJlbnQpLCB0aHJvdWdoIHRoZSBwcml2YXRlIC0tX3RvZ2dsZXN3aXRjaC0qICovXG4ucC10b2dnbGVzd2l0Y2gtc20ge1xuICAgIC0tX3RvZ2dsZXN3aXRjaC13aWR0aDogdmFyKC0tcC10b2dnbGVzd2l0Y2gtc20td2lkdGgpO1xuICAgIC0tX3RvZ2dsZXN3aXRjaC1oZWlnaHQ6IHZhcigtLXAtdG9nZ2xlc3dpdGNoLXNtLWhlaWdodCk7XG4gICAgLS1fdG9nZ2xlc3dpdGNoLWdhcDogdmFyKC0tcC10b2dnbGVzd2l0Y2gtc20tZ2FwKTtcbiAgICAtLV90b2dnbGVzd2l0Y2gtaGFuZGxlLXNpemU6IHZhcigtLXAtdG9nZ2xlc3dpdGNoLWhhbmRsZS1zbS1zaXplKTtcbiAgICAtLV90b2dnbGVzd2l0Y2gtaGFuZGxlLWljb24tc2l6ZTogdmFyKC0tcC10b2dnbGVzd2l0Y2gtaGFuZGxlLXNtLWljb24tc2l6ZSk7XG59XG5cbi5wLXRvZ2dsZXN3aXRjaC1sZyB7XG4gICAgLS1fdG9nZ2xlc3dpdGNoLXdpZHRoOiB2YXIoLS1wLXRvZ2dsZXN3aXRjaC1sZy13aWR0aCk7XG4gICAgLS1fdG9nZ2xlc3dpdGNoLWhlaWdodDogdmFyKC0tcC10b2dnbGVzd2l0Y2gtbGctaGVpZ2h0KTtcbiAgICAtLV90b2dnbGVzd2l0Y2gtZ2FwOiB2YXIoLS1wLXRvZ2dsZXN3aXRjaC1sZy1nYXApO1xuICAgIC0tX3RvZ2dsZXN3aXRjaC1oYW5kbGUtc2l6ZTogdmFyKC0tcC10b2dnbGVzd2l0Y2gtaGFuZGxlLWxnLXNpemUpO1xuICAgIC0tX3RvZ2dsZXN3aXRjaC1oYW5kbGUtaWNvbi1zaXplOiB2YXIoLS1wLXRvZ2dsZXN3aXRjaC1oYW5kbGUtbGctaWNvbi1zaXplKTtcbn1cbiIsICIvKlxuICogVG9vbGJhcjogcDp0b29sYmFyIChwOnRvb2xiYXJHcm91cCBhbGlnbj1cImxlZnRcIiB8IFwicmlnaHRcIilcbiAqL1xuXG4ucC10b29sYmFyIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICBnYXA6IHZhcigtLXAtdG9vbGJhci1nYXApO1xuICAgIHBhZGRpbmc6IHZhcigtLXAtdG9vbGJhci1wYWRkaW5nKTtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1wLXRvb2xiYXItYmFja2dyb3VuZCk7XG4gICAgY29sb3I6IHZhcigtLXAtdG9vbGJhci1jb2xvcik7XG4gICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tcC10b29sYmFyLWJvcmRlci1jb2xvcik7XG4gICAgYm9yZGVyLXJhZGl1czogdmFyKC0tcC10b29sYmFyLWJvcmRlci1yYWRpdXMpO1xuICAgIGZvbnQtd2VpZ2h0OiBpbmhlcml0O1xuXG4gICAgLnAtdG9vbGJhci1ncm91cC1sZWZ0LFxuICAgIC5wLXRvb2xiYXItZ3JvdXAtcmlnaHQge1xuICAgICAgICBnYXA6IHZhcigtLXAtdG9vbGJhci1nYXApO1xuICAgIH1cblxuICAgIC8qIGEgZ3JvdXAgYWxvbmUgb24gdGhlIHJpZ2h0IHNpZGUgc3RheXMgb24gdGhlIHJpZ2h0ICovXG4gICAgLnAtdG9vbGJhci1ncm91cC1yaWdodCB7XG4gICAgICAgIG1hcmdpbi1pbmxpbmUtc3RhcnQ6IGF1dG87XG4gICAgfVxufVxuXG4ucC10b29sYmFyLWdyb3VwLWxlZnQsXG4ucC10b29sYmFyLWdyb3VwLXJpZ2h0IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZmxleC13cmFwOiB3cmFwO1xufVxuIiwgIi8qXG4gKiBUb29sdGlwOiBwOnRvb2x0aXAgKGFsc28gdGhlIGdsb2JhbCB0b29sdGlwIC5wLXRvb2x0aXAtZ2xvYmFsIGFuZCBwOm1lc3NhZ2UgZGlzcGxheT1cInRvb2x0aXBcIilcbiAqXG4gKiBNYXJrdXA6IC5wLXRvb2x0aXAucC10b29sdGlwLXt0b3B8cmlnaHR8Ym90dG9tfGxlZnR9ID4gLnAtdG9vbHRpcC1hcnJvdywgLnAtdG9vbHRpcC10ZXh0XG4gKi9cblxuLnAtdG9vbHRpcCB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgbWF4LXdpZHRoOiB2YXIoLS1wLXRvb2x0aXAtbWF4LXdpZHRoKTtcblxuICAgICYucC10b29sdGlwLXJpZ2h0LFxuICAgICYucC10b29sdGlwLWxlZnQge1xuICAgICAgICBwYWRkaW5nOiAwIHZhcigtLXAtdG9vbHRpcC1ndXR0ZXIpO1xuICAgIH1cblxuICAgICYucC10b29sdGlwLXRvcCxcbiAgICAmLnAtdG9vbHRpcC1ib3R0b20ge1xuICAgICAgICBwYWRkaW5nOiB2YXIoLS1wLXRvb2x0aXAtZ3V0dGVyKSAwO1xuICAgIH1cblxuICAgIC5wLXRvb2x0aXAtdGV4dCB7XG4gICAgICAgIHdvcmQtYnJlYWs6IGJyZWFrLXdvcmQ7XG4gICAgICAgIGJhY2tncm91bmQ6IHZhcigtLXAtdG9vbHRpcC1iYWNrZ3JvdW5kKTtcbiAgICAgICAgY29sb3I6IHZhcigtLXAtdG9vbHRpcC1jb2xvcik7XG4gICAgICAgIHBhZGRpbmc6IHZhcigtLXAtdG9vbHRpcC1wYWRkaW5nKTtcbiAgICAgICAgYm94LXNoYWRvdzogdmFyKC0tcC10b29sdGlwLXNoYWRvdyk7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXAtdG9vbHRpcC1ib3JkZXItcmFkaXVzKTtcbiAgICAgICAgZm9udC1zaXplOiB2YXIoLS1wLXRvb2x0aXAtZm9udC1zaXplKTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IHZhcigtLXAtdG9vbHRpcC1mb250LXdlaWdodCk7XG5cbiAgICAgICAgLyogcDp0b29sdGlwIHdpdGggY29udGVudDogaW1hZ2VzIGZpdCBpbnRvIHRoZSBib3ggKG1heCB3aWR0aCBvZiB0aGUgdG9vbHRpcCkgKi9cbiAgICAgICAgaW1nLFxuICAgICAgICBzdmcsXG4gICAgICAgIHZpZGVvLFxuICAgICAgICBjYW52YXMge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBoZWlnaHQ6IGF1dG87XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLnAtdG9vbHRpcC1yaWdodCAucC10b29sdGlwLWFycm93IHtcbiAgICAgICAgbWFyZ2luLXRvcDogY2FsYygtMSAqIHZhcigtLXAtdG9vbHRpcC1ndXR0ZXIpKTtcbiAgICAgICAgYm9yZGVyLXdpZHRoOiB2YXIoLS1wLXRvb2x0aXAtZ3V0dGVyKSB2YXIoLS1wLXRvb2x0aXAtZ3V0dGVyKSB2YXIoLS1wLXRvb2x0aXAtZ3V0dGVyKSAwO1xuICAgICAgICBib3JkZXItcmlnaHQtY29sb3I6IHZhcigtLXAtdG9vbHRpcC1iYWNrZ3JvdW5kKTtcbiAgICB9XG5cbiAgICAmLnAtdG9vbHRpcC1sZWZ0IC5wLXRvb2x0aXAtYXJyb3cge1xuICAgICAgICBtYXJnaW4tdG9wOiBjYWxjKC0xICogdmFyKC0tcC10b29sdGlwLWd1dHRlcikpO1xuICAgICAgICBib3JkZXItd2lkdGg6IHZhcigtLXAtdG9vbHRpcC1ndXR0ZXIpIDAgdmFyKC0tcC10b29sdGlwLWd1dHRlcikgdmFyKC0tcC10b29sdGlwLWd1dHRlcik7XG4gICAgICAgIGJvcmRlci1sZWZ0LWNvbG9yOiB2YXIoLS1wLXRvb2x0aXAtYmFja2dyb3VuZCk7XG4gICAgfVxuXG4gICAgJi5wLXRvb2x0aXAtdG9wIC5wLXRvb2x0aXAtYXJyb3cge1xuICAgICAgICBtYXJnaW4tbGVmdDogY2FsYygtMSAqIHZhcigtLXAtdG9vbHRpcC1ndXR0ZXIpKTtcbiAgICAgICAgYm9yZGVyLXdpZHRoOiB2YXIoLS1wLXRvb2x0aXAtZ3V0dGVyKSB2YXIoLS1wLXRvb2x0aXAtZ3V0dGVyKSAwIHZhcigtLXAtdG9vbHRpcC1ndXR0ZXIpO1xuICAgICAgICBib3JkZXItdG9wLWNvbG9yOiB2YXIoLS1wLXRvb2x0aXAtYmFja2dyb3VuZCk7XG4gICAgfVxuXG4gICAgJi5wLXRvb2x0aXAtYm90dG9tIC5wLXRvb2x0aXAtYXJyb3cge1xuICAgICAgICBtYXJnaW4tbGVmdDogY2FsYygtMSAqIHZhcigtLXAtdG9vbHRpcC1ndXR0ZXIpKTtcbiAgICAgICAgYm9yZGVyLXdpZHRoOiAwIHZhcigtLXAtdG9vbHRpcC1ndXR0ZXIpIHZhcigtLXAtdG9vbHRpcC1ndXR0ZXIpIHZhcigtLXAtdG9vbHRpcC1ndXR0ZXIpO1xuICAgICAgICBib3JkZXItYm90dG9tLWNvbG9yOiB2YXIoLS1wLXRvb2x0aXAtYmFja2dyb3VuZCk7XG4gICAgfVxuXG4gICAgLyogaW52YWxpZDogdGhlIGNvbXBvbmVudCBtYXJrcyB0ZXh0IGFuZCBhcnJvdyB3aGVuIHRoZSB0YXJnZXQgaXMgcC1zdGF0ZS1lcnJvciAocDptZXNzYWdlIGRpc3BsYXk9XCJ0b29sdGlwXCIpICovXG4gICAgLnAtdG9vbHRpcC10ZXh0LnAtc3RhdGUtZXJyb3Ige1xuICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1wLXRvb2x0aXAtaW52YWxpZC1iYWNrZ3JvdW5kKTtcbiAgICAgICAgY29sb3I6IHZhcigtLXAtdG9vbHRpcC1pbnZhbGlkLWNvbG9yKTtcbiAgICB9XG5cbiAgICAmLnAtdG9vbHRpcC1yaWdodCAucC10b29sdGlwLWFycm93LnAtc3RhdGUtZXJyb3Ige1xuICAgICAgICBib3JkZXItcmlnaHQtY29sb3I6IHZhcigtLXAtdG9vbHRpcC1pbnZhbGlkLWJhY2tncm91bmQpO1xuICAgIH1cblxuICAgICYucC10b29sdGlwLWxlZnQgLnAtdG9vbHRpcC1hcnJvdy5wLXN0YXRlLWVycm9yIHtcbiAgICAgICAgYm9yZGVyLWxlZnQtY29sb3I6IHZhcigtLXAtdG9vbHRpcC1pbnZhbGlkLWJhY2tncm91bmQpO1xuICAgIH1cblxuICAgICYucC10b29sdGlwLXRvcCAucC10b29sdGlwLWFycm93LnAtc3RhdGUtZXJyb3Ige1xuICAgICAgICBib3JkZXItdG9wLWNvbG9yOiB2YXIoLS1wLXRvb2x0aXAtaW52YWxpZC1iYWNrZ3JvdW5kKTtcbiAgICB9XG5cbiAgICAmLnAtdG9vbHRpcC1ib3R0b20gLnAtdG9vbHRpcC1hcnJvdy5wLXN0YXRlLWVycm9yIHtcbiAgICAgICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogdmFyKC0tcC10b29sdGlwLWludmFsaWQtYmFja2dyb3VuZCk7XG4gICAgfVxufVxuXG4ucC10b29sdGlwLWFycm93IHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgd2lkdGg6IDA7XG4gICAgaGVpZ2h0OiAwO1xuICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbn1cblxuLnAtdG9vbHRpcC1yaWdodCAucC10b29sdGlwLWFycm93IHtcbiAgICB0b3A6IDUwJTtcbiAgICBsZWZ0OiAwO1xufVxuXG4ucC10b29sdGlwLWxlZnQgLnAtdG9vbHRpcC1hcnJvdyB7XG4gICAgdG9wOiA1MCU7XG4gICAgcmlnaHQ6IDA7XG59XG5cbi5wLXRvb2x0aXAtdG9wIC5wLXRvb2x0aXAtYXJyb3cge1xuICAgIGJvdHRvbTogMDtcbiAgICBsZWZ0OiA1MCU7XG59XG5cbi5wLXRvb2x0aXAtYm90dG9tIC5wLXRvb2x0aXAtYXJyb3cge1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiA1MCU7XG59XG4iLCAiLypcbiAqIFRyZWU6IHA6dHJlZSAodmVydGljYWwgYW5kIGhvcml6b250YWwpLCBQcmltZVVJWCB0cmVlIHRva2Vuc1xuICpcbiAqIFN1cHBvcnRlZCBjbGFzc2VzOiBwLXRyZWUtaG9yaXpvbnRhbCwgcC10cmVlLXJ0bCwgcC10cmVlLXNlbGVjdGFibGUsIHAtc3RhdGUtaG92ZXIgLyBwLXN0YXRlLWhpZ2hsaWdodCAobm9kZSBjb250ZW50KSxcbiAqICAgICAgICAgICAgICAgICAgICBwLXRyZWVub2RlLW91dGxpbmUgKGtleWJvYXJkIGZvY3VzKSwgcC10cmVlLWRyb3Bwb2ludCwgcC10cmVlLWRyYWdoZWxwZXIsIHAtdHJlZS1jaGVja2JveC1hbGwsIHAtbm9ib3JkZXJcbiAqXG4gKiBUaGUgY29ubmVjdG9yIGxpbmVzIG9mIHRoZSBob3Jpem9udGFsIHRyZWUgYXJlIGdyYWRpZW50czsgdGhlIGhvcml6b250YWwgdHJlZSB1c2VzIGxvZ2ljYWwgcHJvcGVydGllcywgc28gaXQgbWlycm9yc1xuICogaW4gUlRMIChwLXRyZWUtcnRsIG9yIGRpcj1cInJ0bFwiIG9uIGFuIGFuY2VzdG9yKS5cbiAqL1xuLnAtdHJlZSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLXAtdHJlZS1ib3JkZXItY29sb3IpO1xuICAgIGJhY2tncm91bmQ6IHZhcigtLXAtdHJlZS1iYWNrZ3JvdW5kKTtcbiAgICBjb2xvcjogdmFyKC0tcC10cmVlLWNvbG9yKTtcbiAgICBwYWRkaW5nOiB2YXIoLS1wLXRyZWUtcGFkZGluZyk7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgYm9yZGVyLXJhZGl1czogdmFyKC0tcC10cmVlLWJvcmRlci1yYWRpdXMpO1xuXG4gICAgLnAtdHJlZW5vZGUge1xuICAgICAgICBsaXN0LXN0eWxlOiBub25lIG91dHNpZGUgbm9uZTtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgIH1cblxuICAgIC5wLXRyZWUtdG9nZ2xlciB7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgIH1cblxuICAgIC5wLXRyZWVub2RlLWljb24ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgfVxuXG4gICAgLnAtdHJlZW5vZGUtbGFiZWwge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIGN1cnNvcjogZGVmYXVsdDtcbiAgICB9XG5cbiAgICAucC10cmVlLXNlbGVjdGFibGUgLnAtdHJlZW5vZGUtY29udGVudCxcbiAgICAucC10cmVlbm9kZS1jb250ZW50LnAtdHJlZS1zZWxlY3RhYmxlLFxuICAgIC5wLXRyZWVub2RlLWNvbnRlbnQucC10cmVlLXNlbGVjdGFibGUgLnAtdHJlZW5vZGUtbGFiZWwge1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgfVxuXG4gICAgLnAtdHJlZW5vZGUtbGVhZi1pY29uIHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIH1cblxuICAgIC5wLWNoa2JveC1ib3gge1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgfVxuXG4gICAgLnAtdHJlZW5vZGUtaGlkZGVuIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG5cbiAgICAmLnAtbm9ib3JkZXIge1xuICAgICAgICBib3JkZXI6IDA7XG4gICAgICAgIHBhZGRpbmc6IDA7XG5cbiAgICAgICAgLyogbm8gdHJlZSBwYWRkaW5nIHRvIHRha2UgdGhlIGZvY3VzIHJpbmcgcm9vbSBmcm9tICovXG4gICAgICAgIC5wLXRyZWUtY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLnAtc3RhdGUtZGlzYWJsZWQgLnAtdHJlZS10b2dnbGVyLFxuICAgICYucC1zdGF0ZS1kaXNhYmxlZCAucC10cmVlLXNlbGVjdGFibGUgLnAtdHJlZW5vZGUtY29udGVudCxcbiAgICAmLnAtc3RhdGUtZGlzYWJsZWQgLnAtdHJlZW5vZGUtY29udGVudC5wLXRyZWUtc2VsZWN0YWJsZSxcbiAgICAmLnAtc3RhdGUtZGlzYWJsZWQgLnAtdHJlZW5vZGUtY29udGVudC5wLXRyZWUtc2VsZWN0YWJsZSAucC10cmVlbm9kZS1sYWJlbCxcbiAgICAmLnAtc3RhdGUtZGlzYWJsZWQgLnAtdHJlZS1zZWxlY3RhYmxlIC5wLXRyZWVub2RlLWljb24sXG4gICAgJi5wLXN0YXRlLWRpc2FibGVkIC5wLWNoa2JveC1ib3gge1xuICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG4gICAgfVxuXG4gICAgLnAtdHJlZW5vZGUtY29udGVudCAucC1jaGtib3gucC1zZWxlY3Rpb24ge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cblxuICAgIC5wLXRyZWVub2RlLWNvbnRlbnQucC10cmVlLXNlbGVjdGFibGUgLnAtY2hrYm94LnAtc2VsZWN0aW9uLFxuICAgICYucC10cmVlLWNoZWNrYm94LWFsbCAucC10cmVlbm9kZS1jb250ZW50IC5wLWNoa2JveC5wLXNlbGVjdGlvbiB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIH1cblxuICAgICYucC10cmVlLXJ0bCB7XG4gICAgICAgIGRpcmVjdGlvbjogcnRsO1xuICAgIH1cblxuICAgIC5wLXRyZWUtc2Nyb2xsZXJ0b3AsXG4gICAgLnAtdHJlZS1zY3JvbGxlcmJvdHRvbSB7XG4gICAgICAgIGhlaWdodDogMTBweDtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB9XG5cbiAgICAucC10cmVlLXNjcm9sbGVydG9wIHtcbiAgICAgICAgdG9wOiAwO1xuICAgIH1cblxuICAgIC5wLXRyZWUtc2Nyb2xsZXJib3R0b20ge1xuICAgICAgICBib3R0b206IDA7XG4gICAgfVxuXG4gICAgLyogdmVydGljYWwgdHJlZSAqL1xuICAgIC8qIHJvb20gZm9yIHRoZSBub2RlIGZvY3VzIHJpbmcgc2hhZG93ICh1cCB0byA1cHgsIEdsYXNzKSwgdGhlIHNjcm9sbCBjb250YWluZXIgd291bGQgY2xpcCBpdDsgdGhlIG5lZ2F0aXZlIG1hcmdpblxuICAgICAgIGtlZXBzIHRoZSBsYXlvdXQgKGl0IHRha2VzIGl0IGZyb20gdGhlIHRyZWUgcGFkZGluZykgKi9cbiAgICAucC10cmVlLWNvbnRhaW5lciB7XG4gICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgIG92ZXJmbG93OiBhdXRvO1xuICAgICAgICBwYWRkaW5nOiAwLjM3NXJlbTtcbiAgICAgICAgbWFyZ2luOiAtMC4zNzVyZW07XG5cbiAgICAgICAgLnAtdHJlZW5vZGUge1xuICAgICAgICAgICAgcGFkZGluZzogdmFyKC0tcC10cmVlLWdhcCkgMCAwIDA7XG4gICAgICAgIH1cblxuICAgICAgICAucC10cmVlbm9kZSAucC10cmVlbm9kZS1jb250ZW50ICoge1xuICAgICAgICAgICAgZmxleDogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5wLXRyZWVub2RlIC5wLXRyZWVub2RlLWNvbnRlbnQge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiB2YXIoLS1wLXRyZWUtbm9kZS1wYWRkaW5nKTtcbiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1wLXRyZWUtbm9kZS1jb2xvcik7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1wLXRyZWUtbm9kZS1ib3JkZXItcmFkaXVzKTtcbiAgICAgICAgICAgIG91dGxpbmUtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCB2YXIoLS1wLXRyZWUtdHJhbnNpdGlvbi1kdXJhdGlvbiksIGNvbG9yIHZhcigtLXAtdHJlZS10cmFuc2l0aW9uLWR1cmF0aW9uKSxcbiAgICAgICAgICAgICAgICBvdXRsaW5lLWNvbG9yIHZhcigtLXAtdHJlZS10cmFuc2l0aW9uLWR1cmF0aW9uKSwgYm94LXNoYWRvdyB2YXIoLS1wLXRyZWUtdHJhbnNpdGlvbi1kdXJhdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAucC10cmVlbm9kZSAucC10cmVlbm9kZS1jb250ZW50IC5wLXRyZWUtdG9nZ2xlciB7XG4gICAgICAgICAgICBtYXJnaW46IDAgdmFyKC0tcC10cmVlLW5vZGUtZ2FwKSAwIDA7XG4gICAgICAgICAgICB3aWR0aDogdmFyKC0tcC10cmVlLW5vZGUtdG9nZ2xlLWJ1dHRvbi1zaXplKTtcbiAgICAgICAgICAgIGhlaWdodDogdmFyKC0tcC10cmVlLW5vZGUtdG9nZ2xlLWJ1dHRvbi1zaXplKTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiB2YXIoLS1wLXRyZWUtbm9kZS10b2dnbGUtYnV0dG9uLXNpemUpO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6IHZhcigtLXAtdHJlZS1ub2RlLXRvZ2dsZS1idXR0b24tY29sb3IpO1xuICAgICAgICAgICAgYm9yZGVyOiAwIG5vbmU7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1wLXRyZWUtbm9kZS10b2dnbGUtYnV0dG9uLWJvcmRlci1yYWRpdXMpO1xuICAgICAgICAgICAgb3V0bGluZS1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIHZhcigtLXAtdHJlZS10cmFuc2l0aW9uLWR1cmF0aW9uKSwgY29sb3IgdmFyKC0tcC10cmVlLXRyYW5zaXRpb24tZHVyYXRpb24pLFxuICAgICAgICAgICAgICAgIG91dGxpbmUtY29sb3IgdmFyKC0tcC10cmVlLXRyYW5zaXRpb24tZHVyYXRpb24pLCBib3gtc2hhZG93IHZhcigtLXAtdHJlZS10cmFuc2l0aW9uLWR1cmF0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5wLXRyZWVub2RlIC5wLXRyZWVub2RlLWNvbnRlbnQgLnAtdHJlZS10b2dnbGVyOmhvdmVyIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHZhcigtLXAtdHJlZS1ub2RlLXRvZ2dsZS1idXR0b24taG92ZXItYmFja2dyb3VuZCk7XG4gICAgICAgICAgICBjb2xvcjogdmFyKC0tcC10cmVlLW5vZGUtdG9nZ2xlLWJ1dHRvbi1ob3Zlci1jb2xvcik7XG4gICAgICAgIH1cblxuICAgICAgICAucC10cmVlbm9kZSAucC10cmVlbm9kZS1jb250ZW50IC5wLXRyZWUtdG9nZ2xlcjpmb2N1cy12aXNpYmxlIHtcbiAgICAgICAgICAgIG91dGxpbmU6IHZhcigtLXAtdHJlZS1ub2RlLXRvZ2dsZS1idXR0b24tZm9jdXMtcmluZy13aWR0aCkgdmFyKC0tcC10cmVlLW5vZGUtdG9nZ2xlLWJ1dHRvbi1mb2N1cy1yaW5nLXN0eWxlKSB2YXIoLS1wLXRyZWUtbm9kZS10b2dnbGUtYnV0dG9uLWZvY3VzLXJpbmctY29sb3IpO1xuICAgICAgICAgICAgb3V0bGluZS1vZmZzZXQ6IHZhcigtLXAtdHJlZS1ub2RlLXRvZ2dsZS1idXR0b24tZm9jdXMtcmluZy1vZmZzZXQpO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogdmFyKC0tcC10cmVlLW5vZGUtdG9nZ2xlLWJ1dHRvbi1mb2N1cy1yaW5nLXNoYWRvdyk7XG4gICAgICAgIH1cblxuICAgICAgICAvKiB0aGUgc3RhdGUgaXMgYXJpYS1leHBhbmRlZCBvZiB0aGUgbm9kZSAobGkpICovXG4gICAgICAgIC5wLXRyZWUtdG9nZ2xlLWljb24ge1xuICAgICAgICAgICAgLS1faWNvbjogdmFyKC0tcC10cmVlLXRvZ2dsZS1leHBhbmRlZC1pY29uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5wLXRyZWVub2RlW2FyaWEtZXhwYW5kZWQ9XCJmYWxzZVwiXSA+IC5wLXRyZWVub2RlLWNvbnRlbnQgPiAucC10cmVlLXRvZ2dsZS1pY29uIHtcbiAgICAgICAgICAgIC0tX2ljb246IHZhcigtLXAtdHJlZS10b2dnbGUtY29sbGFwc2VkLWljb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgLnAtdHJlZW5vZGUgLnAtdHJlZW5vZGUtY29udGVudCAucC10cmVlbm9kZS1sZWFmLWljb24ge1xuICAgICAgICAgICAgd2lkdGg6IHZhcigtLXAtdHJlZS1ub2RlLXRvZ2dsZS1idXR0b24tc2l6ZSk7XG4gICAgICAgICAgICBoZWlnaHQ6IHZhcigtLXAtdHJlZS1ub2RlLXRvZ2dsZS1idXR0b24tc2l6ZSk7XG4gICAgICAgICAgICBtYXJnaW46IDAgdmFyKC0tcC10cmVlLW5vZGUtZ2FwKSAwIDA7XG4gICAgICAgIH1cblxuICAgICAgICAucC10cmVlbm9kZSAucC10cmVlbm9kZS1jb250ZW50IC5wLXRyZWVub2RlLWljb24ge1xuICAgICAgICAgICAgbWFyZ2luOiAwIHZhcigtLXAtdHJlZS1ub2RlLWdhcCkgMCAwO1xuICAgICAgICAgICAgY29sb3I6IHZhcigtLXAtdHJlZS1ub2RlLWljb24tY29sb3IpO1xuICAgICAgICAgICAgdHJhbnNpdGlvbjogY29sb3IgdmFyKC0tcC10cmVlLXRyYW5zaXRpb24tZHVyYXRpb24pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLnAtdHJlZW5vZGUtY2hpbGRyZW4ge1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIHBhZGRpbmc6IDAgMCAwIHZhcigtLXAtdHJlZS1pbmRlbnQpO1xuICAgIH1cblxuICAgICYucC10cmVlLXJ0bCAucC10cmVlbm9kZS1jaGlsZHJlbiB7XG4gICAgICAgIHBhZGRpbmc6IDAgdmFyKC0tcC10cmVlLWluZGVudCkgMCAwO1xuICAgIH1cblxuICAgIC5wLXRyZWUtY29udGFpbmVyIHtcbiAgICAgICAgLnAtdHJlZW5vZGUgLnAtdHJlZW5vZGUtY29udGVudCAucC10cmVlbm9kZS1sYWJlbCB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgZm9udC1zaXplOiB2YXIoLS1wLXRyZWUtbm9kZS1sYWJlbC1mb250LXNpemUpO1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IHZhcigtLXAtdHJlZS1ub2RlLWxhYmVsLWZvbnQtd2VpZ2h0KTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXAtdHJlZS1ub2RlLWJvcmRlci1yYWRpdXMpO1xuICAgICAgICB9XG5cbiAgICAgICAgLnAtdHJlZW5vZGUgLnAtdHJlZW5vZGUtY29udGVudCAucC1jaGtib3gge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBjYWxjKDIgKiB2YXIoLS1wLXRyZWUtbm9kZS1nYXApKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5wLXRyZWVub2RlIC5wLXRyZWVub2RlLWNvbnRlbnQgLnAtY2hrYm94IC5wLWNoZWNrYm94LWluZGV0ZXJtaW5hdGUtaWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogdmFyKC0tcC10cmVlLWNvbG9yKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5wLXRyZWVub2RlIC5wLXRyZWVub2RlLWNvbnRlbnQucC1zdGF0ZS1oaWdobGlnaHQge1xuICAgICAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tcC10cmVlLW5vZGUtc2VsZWN0ZWQtYmFja2dyb3VuZCk7XG4gICAgICAgICAgICBjb2xvcjogdmFyKC0tcC10cmVlLW5vZGUtc2VsZWN0ZWQtY29sb3IpO1xuICAgICAgICB9XG5cbiAgICAgICAgLnAtdHJlZW5vZGUgLnAtdHJlZW5vZGUtY29udGVudC5wLXN0YXRlLWhpZ2hsaWdodCAucC10cmVlbm9kZS1sYWJlbCB7XG4gICAgICAgICAgICBmb250LXdlaWdodDogdmFyKC0tcC10cmVlLW5vZGUtbGFiZWwtc2VsZWN0ZWQtZm9udC13ZWlnaHQpO1xuICAgICAgICB9XG5cbiAgICAgICAgLnAtdHJlZW5vZGUgLnAtdHJlZW5vZGUtY29udGVudC5wLXN0YXRlLWhpZ2hsaWdodCAucC10cmVlLXRvZ2dsZXIsXG4gICAgICAgIC5wLXRyZWVub2RlIC5wLXRyZWVub2RlLWNvbnRlbnQucC1zdGF0ZS1oaWdobGlnaHQgLnAtdHJlZW5vZGUtaWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogdmFyKC0tcC10cmVlLW5vZGUtaWNvbi1zZWxlY3RlZC1jb2xvcik7XG4gICAgICAgIH1cblxuICAgICAgICAucC10cmVlbm9kZSAucC10cmVlbm9kZS1jb250ZW50LnAtc3RhdGUtaGlnaGxpZ2h0IC5wLXRyZWUtdG9nZ2xlcjpob3ZlciB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1wLXRyZWUtbm9kZS10b2dnbGUtYnV0dG9uLXNlbGVjdGVkLWhvdmVyLWJhY2tncm91bmQpO1xuICAgICAgICAgICAgY29sb3I6IHZhcigtLXAtdHJlZS1ub2RlLXRvZ2dsZS1idXR0b24tc2VsZWN0ZWQtaG92ZXItY29sb3IpO1xuICAgICAgICB9XG5cbiAgICAgICAgLnAtdHJlZW5vZGUgLnAtdHJlZW5vZGUtY29udGVudC5wLXN0YXRlLWhpZ2hsaWdodCAucC10cmVlbm9kZS1pY29uOmhvdmVyIHtcbiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1wLXRyZWUtbm9kZS1pY29uLXNlbGVjdGVkLWNvbG9yKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5wLXRyZWVub2RlIC5wLXRyZWVub2RlLWNvbnRlbnQucC10cmVlLXNlbGVjdGFibGU6bm90KC5wLXN0YXRlLWhpZ2hsaWdodCk6aG92ZXIsXG4gICAgICAgIC5wLXRyZWVub2RlIC5wLXRyZWVub2RlLWNvbnRlbnQucC10cmVlLXNlbGVjdGFibGU6bm90KC5wLXN0YXRlLWhpZ2hsaWdodCkucC1zdGF0ZS1ob3ZlciB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1wLXRyZWUtbm9kZS1ob3Zlci1iYWNrZ3JvdW5kKTtcbiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1wLXRyZWUtbm9kZS1ob3Zlci1jb2xvcik7XG4gICAgICAgIH1cblxuICAgICAgICAucC10cmVlbm9kZSAucC10cmVlbm9kZS1jb250ZW50LnAtdHJlZS1zZWxlY3RhYmxlOm5vdCgucC1zdGF0ZS1oaWdobGlnaHQpOmhvdmVyIC5wLXRyZWVub2RlLWljb24sXG4gICAgICAgIC5wLXRyZWVub2RlIC5wLXRyZWVub2RlLWNvbnRlbnQucC10cmVlLXNlbGVjdGFibGU6bm90KC5wLXN0YXRlLWhpZ2hsaWdodCkucC1zdGF0ZS1ob3ZlciAucC10cmVlbm9kZS1pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1wLXRyZWUtbm9kZS1pY29uLWhvdmVyLWNvbG9yKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5wLXRyZWUtZHJvcHBvaW50LnAtc3RhdGUtaG92ZXIge1xuICAgICAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tcC10cmVlLWRyb3Bwb2ludC1hY3RpdmUtYmFja2dyb3VuZCk7XG4gICAgICAgICAgICBib3JkZXI6IDAgbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5wLXRyZWVub2RlLW91dGxpbmUge1xuICAgICAgICAgICAgb3V0bGluZTogdmFyKC0tcC10cmVlLW5vZGUtZm9jdXMtcmluZy13aWR0aCkgdmFyKC0tcC10cmVlLW5vZGUtZm9jdXMtcmluZy1zdHlsZSkgdmFyKC0tcC10cmVlLW5vZGUtZm9jdXMtcmluZy1jb2xvcik7XG4gICAgICAgICAgICBvdXRsaW5lLW9mZnNldDogdmFyKC0tcC10cmVlLW5vZGUtZm9jdXMtcmluZy1vZmZzZXQpO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogdmFyKC0tcC10cmVlLW5vZGUtZm9jdXMtcmluZy1zaGFkb3cpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLnAtdHJlZS1kcm9wcG9pbnQge1xuICAgICAgICBoZWlnaHQ6IHZhcigtLXAtdHJlZS1kcm9wcG9pbnQtaGVpZ2h0KTtcbiAgICB9XG5cbiAgICAmLnAtdHJlZS1ydGwgLnAtdHJlZS1jb250YWluZXIgLnAtdHJlZW5vZGUgLnAtdHJlZW5vZGUtY29udGVudCB7XG4gICAgICAgIC5wLXRyZWUtdG9nZ2xlciB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogdmFyKC0tcC10cmVlLW5vZGUtZ2FwKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5wLXRyZWVub2RlLWxlYWYtaWNvbiB7XG4gICAgICAgICAgICBtYXJnaW46IDAgMCAwIHZhcigtLXAtdHJlZS1ub2RlLWdhcCk7XG4gICAgICAgIH1cblxuICAgICAgICAucC10cmVlbm9kZS1pY29uIHtcbiAgICAgICAgICAgIG1hcmdpbjogMCAwIDAgdmFyKC0tcC10cmVlLW5vZGUtZ2FwKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5wLWNoa2JveCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogY2FsYygyICogdmFyKC0tcC10cmVlLW5vZGUtZ2FwKSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiB0aGUgY29sbGFwc2VkIGljb24gcG9pbnRzIHRvIHRoZSBzdGFydCAqL1xuICAgICY6aXMoLnAtdHJlZS1ydGwsIDpkaXIocnRsKSkgLnAtdHJlZS1jb250YWluZXIgLnAtdHJlZW5vZGVbYXJpYS1leHBhbmRlZD1cImZhbHNlXCJdID4gLnAtdHJlZW5vZGUtY29udGVudCA+IC5wLXRyZWUtdG9nZ2xlLWljb24ge1xuICAgICAgICBzY2FsZTogLTEgMTtcbiAgICB9XG5cbiAgICAvKiBmaWx0ZXI6IHNlYXJjaCBpY29uIGluc2lkZSB0aGUgaW5wdXQsIGF0IHRoZSBzdGFydCAqL1xuICAgIC5wLXRyZWUtZmlsdGVyLWNvbnRhaW5lciB7XG4gICAgICAgIG1hcmdpbjogdmFyKC0tcC10cmVlLWZpbHRlci1tYXJnaW4pO1xuXG4gICAgICAgIC5wLXRyZWUtZmlsdGVyLWljb24ge1xuICAgICAgICAgICAgLS1faWNvbjogdmFyKC0tcC10cmVlLWZpbHRlci1pY29uKTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGluc2V0LWlubGluZS1zdGFydDogdmFyKC0tcC1pbnB1dHRleHQtcGFkZGluZy14KTtcbiAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogY2FsYygtMSAqIHZhcigtLXAtaWNvbi1zaXplKSAvIDIpO1xuICAgICAgICAgICAgY29sb3I6IHZhcigtLXAtZm9ybS1maWVsZC1pY29uLWNvbG9yKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5wLWlucHV0ZmllbGQge1xuICAgICAgICAgICAgcGFkZGluZy1ibG9jazogdmFyKC0tcC1pbnB1dHRleHQtcGFkZGluZy15KTtcbiAgICAgICAgICAgIHBhZGRpbmctaW5saW5lOiB2YXIoLS1wLWlucHV0dGV4dC1wYWRkaW5nLXgpO1xuICAgICAgICAgICAgcGFkZGluZy1pbmxpbmUtc3RhcnQ6IGNhbGMoMiAqIHZhcigtLXAtaW5wdXR0ZXh0LXBhZGRpbmcteCkgKyB2YXIoLS1wLWljb24tc2l6ZSkpO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4ucC10cmVlLWRyb3Bwb2ludCB7XG4gICAgbGlzdC1zdHlsZTogbm9uZSBvdXRzaWRlIG5vbmU7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDA7XG59XG5cbi5wLXRyZWUtZmlsdGVyLWNvbnRhaW5lciB7XG4gICAgcGFkZGluZzogMDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbi5wLXRyZWUtZmlsdGVyLnAtaW5wdXRmaWVsZCB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbn1cblxuLyogaG9yaXpvbnRhbCB0cmVlOiB0ZC5wLXRyZWVub2RlID4gZGl2LnAtdHJlZW5vZGUtY29udGVudCArIHRkLnAtdHJlZW5vZGUtY2hpbGRyZW4tY29udGFpbmVyICovXG4ucC10cmVlLWhvcml6b250YWwge1xuICAgIHdpZHRoOiBhdXRvO1xuICAgIG92ZXJmbG93OiBhdXRvO1xuXG4gICAgLnAtdHJlZW5vZGUtY29udGVudCB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogMTtcbiAgICAgICAgb3V0bGluZTogMCBub25lO1xuICAgIH1cblxuICAgIC5wLXRyZWVub2RlLXBhcmVudCAucC10cmVlbm9kZS1jb250ZW50IHtcbiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICB9XG59XG5cbi5wLXRyZWUucC10cmVlLWhvcml6b250YWwge1xuICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuXG4gICAgdGFibGUsXG4gICAgdHIsXG4gICAgdGQge1xuICAgICAgICBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgfVxuXG4gICAgdGFibGUge1xuICAgICAgICBoZWlnaHQ6IDA7XG4gICAgfVxuXG4gICAgLyogdGhlIGhvcml6b250YWwgbGluZSB0aHJvdWdoIGEgbm9kZSwgbWFza2VkIGJ5IDo6YmVmb3JlIGJldHdlZW4gdGhlIGNvbm5lY3RvcnMgKi9cbiAgICAucC10cmVlbm9kZSB7XG4gICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCh2YXIoLS1wLXRyZWUtY29ubmVjdG9yLWNvbG9yKSwgdmFyKC0tcC10cmVlLWNvbm5lY3Rvci1jb2xvcikpIHJlcGVhdC14IGxlZnQgY2VudGVyIC8gMTAwJSAxcHg7XG4gICAgICAgIHBhZGRpbmc6IDVweCA0MHB4O1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgfVxuXG4gICAgLnAtdHJlZW5vZGUucC10cmVlbm9kZS1sZWFmLFxuICAgIC5wLXRyZWVub2RlLnAtdHJlZW5vZGUtY29sbGFwc2VkIHtcbiAgICAgICAgcGFkZGluZy1pbmxpbmUtZW5kOiAwO1xuICAgIH1cblxuICAgIC5wLXRyZWVub2RlLWNoaWxkcmVuIHtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgIH1cblxuICAgIC5wLXRyZWVub2RlLWNvbm5lY3RvciB7XG4gICAgICAgIHdpZHRoOiAxcHg7XG4gICAgfVxuXG4gICAgLnAtdHJlZW5vZGUtY29ubmVjdG9yLXRhYmxlIHtcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICB3aWR0aDogMXB4O1xuICAgIH1cblxuICAgIC5wLXRyZWVub2RlLWNvbm5lY3Rvci1saW5lIHtcbiAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KHZhcigtLXAtdHJlZS1jb25uZWN0b3ItY29sb3IpLCB2YXIoLS1wLXRyZWUtY29ubmVjdG9yLWNvbG9yKSkgcmVwZWF0LXkgbGVmdCB0b3AgLyAxcHggMTAwJTtcbiAgICAgICAgd2lkdGg6IDFweDtcbiAgICB9XG5cbiAgICAucC10cmVlbm9kZS1jb250ZW50IHtcbiAgICAgICAgZm9udC13ZWlnaHQ6IHZhcigtLXAtdHJlZS1ub2RlLWxhYmVsLWZvbnQtd2VpZ2h0KTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tcC10cmVlLWhvcml6b250YWwtbm9kZS1ib3JkZXItY29sb3IpO1xuICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1wLXRyZWUtaG9yaXpvbnRhbC1ub2RlLWJhY2tncm91bmQpO1xuICAgICAgICBjb2xvcjogdmFyKC0tcC10cmVlLW5vZGUtY29sb3IpO1xuICAgICAgICBwYWRkaW5nOiB2YXIoLS1wLXRyZWUtaG9yaXpvbnRhbC1ub2RlLXBhZGRpbmcpO1xuICAgICAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1wLXRyZWUtbm9kZS1ib3JkZXItcmFkaXVzKTtcbiAgICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCB2YXIoLS1wLXRyZWUtdHJhbnNpdGlvbi1kdXJhdGlvbiksIGNvbG9yIHZhcigtLXAtdHJlZS10cmFuc2l0aW9uLWR1cmF0aW9uKTtcblxuICAgICAgICAmLnAtc3RhdGUtaG92ZXIge1xuICAgICAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tcC10cmVlLW5vZGUtaG92ZXItYmFja2dyb3VuZCk7XG4gICAgICAgICAgICBjb2xvcjogdmFyKC0tcC10cmVlLW5vZGUtaG92ZXItY29sb3IpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi5wLXN0YXRlLWhpZ2hsaWdodCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1wLXRyZWUtbm9kZS1zZWxlY3RlZC1iYWNrZ3JvdW5kKTtcbiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1wLXRyZWUtbm9kZS1zZWxlY3RlZC1jb2xvcik7XG4gICAgICAgIH1cblxuICAgICAgICAucC10cmVlLXRvZ2dsZXIge1xuICAgICAgICAgICAgbWFyZ2luLWlubGluZS1lbmQ6IHZhcigtLXAtdHJlZS1ub2RlLWdhcCk7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB9XG5cbiAgICAgICAgLnAtdHJlZS1ob3Jpem9udGFsLXRvZ2dsZS1pY29uIHtcbiAgICAgICAgICAgIC0tX2ljb246IHZhcigtLXAtdHJlZS1ob3Jpem9udGFsLXRvZ2dsZS1leHBhbmRlZC1pY29uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5wLXRyZWVub2RlLWljb24ge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgICAgIG1hcmdpbi1pbmxpbmUtZW5kOiB2YXIoLS1wLXRyZWUtbm9kZS1nYXApO1xuICAgICAgICB9XG5cbiAgICAgICAgLnAtdHJlZW5vZGUtbGFiZWwge1xuICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIH1cblxuICAgICAgICAucC1jaGtib3gge1xuICAgICAgICAgICAgbWFyZ2luLWlubGluZS1lbmQ6IHZhcigtLXAtdHJlZS1ub2RlLWdhcCk7XG4gICAgICAgIH1cblxuICAgICAgICAucC1jaGtib3ggLnAtY2hlY2tib3gtaW5kZXRlcm1pbmF0ZS1pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1wLXRyZWUtY29sb3IpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyogdGhlIHN0YXRlIGlzIHRoZSBwLXRyZWVub2RlLWNvbGxhcHNlZCBjbGFzcyBvZiB0aGUgbm9kZSAodGQpICovXG4gICAgLnAtdHJlZW5vZGUtY29sbGFwc2VkID4gLnAtdHJlZW5vZGUtY29udGVudCA+IC5wLXRyZWUtaG9yaXpvbnRhbC10b2dnbGUtaWNvbiB7XG4gICAgICAgIC0tX2ljb246IHZhcigtLXAtdHJlZS1ob3Jpem9udGFsLXRvZ2dsZS1jb2xsYXBzZWQtaWNvbik7XG4gICAgfVxuXG4gICAgLnAtdHJlZW5vZGU6OmJlZm9yZSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXAtdHJlZS1iYWNrZ3JvdW5kKTtcbiAgICB9XG59XG5cbi5wLXRyZWUtaG9yaXpvbnRhbCAucC10cmVlbm9kZSB7XG4gICAgJjo6YmVmb3JlIHtcbiAgICAgICAgY29udGVudDogXCIgXCI7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBpbnNldC1pbmxpbmUtc3RhcnQ6IDQwcHg7XG4gICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgd2lkdGg6IGNhbGMoMTAwJSAtIDgwcHgpO1xuICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICB9XG5cbiAgICAmLnAtdHJlZW5vZGUtY29sbGFwc2VkOjpiZWZvcmUsXG4gICAgJi5wLXRyZWVub2RlLWxlYWY6OmJlZm9yZSB7XG4gICAgICAgIHdpZHRoOiBjYWxjKDEwMCUgLSA0MHB4KTtcbiAgICB9XG59XG5cbi5wLXRyZWUtZHJhZ2hlbHBlcixcbi5wLXRyZWUtZHJhZ2hlbHBlci5wLXN0YXRlLWhpZ2hsaWdodCB7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tcC10cmVlLWRyYWdoZWxwZXItYmFja2dyb3VuZCk7XG4gICAgY29sb3I6IHZhcigtLXAtdHJlZS1ub2RlLWNvbG9yKTtcbiAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1wLXRyZWUtZHJhZ2hlbHBlci1ib3JkZXItY29sb3IpO1xuICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXAtdHJlZS1ub2RlLWJvcmRlci1yYWRpdXMpO1xufVxuXG4ucC1mbHVpZCAucC10cmVlIHtcbiAgICB3aWR0aDogMTAwJTtcbn1cbiIsICIvKlxuICogVHJlZVRhYmxlOiBwOnRyZWVUYWJsZVxuICpcbiAqIFN1cHBvcnRlZCBjbGFzc2VzOiBwLXRyZWV0YWJsZS1ncmlkbGluZXMsIHAtdHJlZXRhYmxlLXN0cmlwZWQsIHAtdHJlZXRhYmxlLXNtLCBwLXRyZWV0YWJsZS1sZywgcC10cmVldGFibGUtc2Nyb2xsYWJsZSxcbiAqICAgICAgICAgICAgICAgICAgICBwLXRyZWV0YWJsZS1yZXNpemFibGUsIHAtdHJlZXRhYmxlLXJlZmxvdywgcC10cmVldGFibGUtY2hlY2tib3gtYWxsXG4gKiBTdGF0ZXMgKHNldCBieSB0aGUgY29tcG9uZW50KTogdGgucC1zdGF0ZS1ob3ZlciAvIHAtc3RhdGUtYWN0aXZlIChzb3J0ZWQpIC8gcC1zdGF0ZS1mb2N1cyxcbiAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ci5wLXN0YXRlLWhvdmVyIC8gcC1zdGF0ZS1oaWdobGlnaHQgKHNlbGVjdGVkKSAvIHAtdHJlZXRhYmxlLXBhcnRpYWxzZWxlY3RlZCAvIHAtcm93LWVkaXRpbmcsXG4gKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGQucC1jZWxsLWVkaXRpbmdcbiAqL1xuLnAtdHJlZXRhYmxlIHtcbiAgICAvKiBoZWFkZXIgLyBmb290ZXIgZmFjZXRzICovXG4gICAgLnAtdHJlZXRhYmxlLWhlYWRlciB7XG4gICAgICAgIGJhY2tncm91bmQ6IHZhcigtLXAtdHJlZXRhYmxlLWhlYWRlci1iYWNrZ3JvdW5kKTtcbiAgICAgICAgY29sb3I6IHZhcigtLXAtdHJlZXRhYmxlLWhlYWRlci1jb2xvcik7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLXAtdHJlZXRhYmxlLWhlYWRlci1ib3JkZXItY29sb3IpO1xuICAgICAgICBib3JkZXItd2lkdGg6IHZhcigtLXAtdHJlZXRhYmxlLWhlYWRlci1ib3JkZXItd2lkdGgpO1xuICAgICAgICBwYWRkaW5nOiB2YXIoLS1wLXRyZWV0YWJsZS1oZWFkZXItcGFkZGluZyk7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1wLXRyZWV0YWJsZS1oZWFkZXItZm9udC13ZWlnaHQpO1xuICAgICAgICB0ZXh0LWFsaWduOiBzdGFydDtcbiAgICB9XG5cbiAgICAucC10cmVldGFibGUtZm9vdGVyIHtcbiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tcC10cmVldGFibGUtZm9vdGVyLWJhY2tncm91bmQpO1xuICAgICAgICBjb2xvcjogdmFyKC0tcC10cmVldGFibGUtZm9vdGVyLWNvbG9yKTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tcC10cmVldGFibGUtZm9vdGVyLWJvcmRlci1jb2xvcik7XG4gICAgICAgIGJvcmRlci13aWR0aDogdmFyKC0tcC10cmVldGFibGUtZm9vdGVyLWJvcmRlci13aWR0aCk7XG4gICAgICAgIHBhZGRpbmc6IHZhcigtLXAtdHJlZXRhYmxlLWZvb3Rlci1wYWRkaW5nKTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IHZhcigtLXAtdHJlZXRhYmxlLWZvb3Rlci1mb250LXdlaWdodCk7XG4gICAgICAgIHRleHQtYWxpZ246IHN0YXJ0O1xuICAgIH1cblxuICAgIC5wLXBhZ2luYXRvciB7XG4gICAgICAgIHBhZGRpbmc6IHZhcigtLXAtcGFnaW5hdG9yLXBhZGRpbmcpO1xuXG4gICAgICAgICYucC1wYWdpbmF0b3ItdG9wIHtcbiAgICAgICAgICAgIGJvcmRlci1zdHlsZTogc29saWQ7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IHZhcigtLXAtdHJlZXRhYmxlLXBhZ2luYXRvci10b3AtYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgICAgIGJvcmRlci13aWR0aDogdmFyKC0tcC10cmVldGFibGUtcGFnaW5hdG9yLXRvcC1ib3JkZXItd2lkdGgpO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYucC1wYWdpbmF0b3ItYm90dG9tIHtcbiAgICAgICAgICAgIGJvcmRlci1zdHlsZTogc29saWQ7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IHZhcigtLXAtdHJlZXRhYmxlLXBhZ2luYXRvci1ib3R0b20tYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgICAgIGJvcmRlci13aWR0aDogdmFyKC0tcC10cmVldGFibGUtcGFnaW5hdG9yLWJvdHRvbS1ib3JkZXItd2lkdGgpO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHRhYmxlIHtcbiAgICAgICAgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIHRhYmxlLWxheW91dDogZml4ZWQ7XG4gICAgfVxuXG4gICAgdGhlYWQgdGgsXG4gICAgdGJvZHkgdGQsXG4gICAgdGZvb3QgdGQge1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICAgIH1cblxuICAgIC8qIGNvbHVtbiBoZWFkZXJzICovXG4gICAgdGhlYWQgdGgge1xuICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1wLXRyZWV0YWJsZS1oZWFkZXItY2VsbC1iYWNrZ3JvdW5kKTtcbiAgICAgICAgY29sb3I6IHZhcigtLXAtdHJlZXRhYmxlLWhlYWRlci1jZWxsLWNvbG9yKTtcbiAgICAgICAgcGFkZGluZzogdmFyKC0tcC10cmVldGFibGUtaGVhZGVyLWNlbGwtcGFkZGluZyk7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLXAtdHJlZXRhYmxlLWhlYWRlci1jZWxsLWJvcmRlci1jb2xvcik7XG4gICAgICAgIGJvcmRlci13aWR0aDogMCAwIDFweCAwO1xuICAgICAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgICAgICB0ZXh0LWFsaWduOiBzdGFydDtcbiAgICAgICAgYm94LXNpemluZzogY29udGVudC1ib3g7XG4gICAgICAgIG91dGxpbmUtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIHZhcigtLXAtdHJlZXRhYmxlLXRyYW5zaXRpb24tZHVyYXRpb24pLCBjb2xvciB2YXIoLS1wLXRyZWV0YWJsZS10cmFuc2l0aW9uLWR1cmF0aW9uKSxcbiAgICAgICAgICAgIGJvcmRlci1jb2xvciB2YXIoLS1wLXRyZWV0YWJsZS10cmFuc2l0aW9uLWR1cmF0aW9uKSwgb3V0bGluZS1jb2xvciB2YXIoLS1wLXRyZWV0YWJsZS10cmFuc2l0aW9uLWR1cmF0aW9uKSxcbiAgICAgICAgICAgIGJveC1zaGFkb3cgdmFyKC0tcC10cmVldGFibGUtdHJhbnNpdGlvbi1kdXJhdGlvbik7XG5cbiAgICAgICAgLnAtY29sdW1uLXRpdGxlIHtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1wLXRyZWV0YWJsZS1jb2x1bW4tdGl0bGUtZm9udC13ZWlnaHQpO1xuICAgICAgICAgICAgZm9udC1zaXplOiB2YXIoLS1wLXRyZWV0YWJsZS1jb2x1bW4tdGl0bGUtZm9udC1zaXplKTtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIH1cblxuICAgICAgICAucC1zb3J0YWJsZS1jb2x1bW4taWNvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgbWFyZ2luLWlubGluZS1zdGFydDogdmFyKC0tcC10cmVldGFibGUtaGVhZGVyLWNlbGwtZ2FwKTtcbiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1wLXRyZWV0YWJsZS1zb3J0LWljb24tY29sb3IpO1xuICAgICAgICAgICAgZm9udC1zaXplOiB2YXIoLS1wLXRyZWV0YWJsZS1zb3J0LWljb24tc2l6ZSk7XG4gICAgICAgICAgICB0cmFuc2l0aW9uOiBjb2xvciB2YXIoLS1wLXRyZWV0YWJsZS10cmFuc2l0aW9uLWR1cmF0aW9uKTtcblxuICAgICAgICAgICAgLyogdGhlIHNvcnQgb3JkZXIgaXMgdGhlIHN0YXRlIGNsYXNzIG9mIHRoZSBpY29uICh0aGUgY29tcG9uZW50IHJlYWRzIGl0LCBhcmlhLXNvcnQgaXMgb24gb25lIGNvbHVtbiBvbmx5KSAqL1xuICAgICAgICAgICAgJi5wLXRyZWV0YWJsZS1zb3J0LWljb24ge1xuICAgICAgICAgICAgICAgIC0tX2ljb246IHZhcigtLXAtdHJlZXRhYmxlLXNvcnQtaWNvbik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYucC10cmVldGFibGUtc29ydC1hc2MtaWNvbiB7XG4gICAgICAgICAgICAgICAgLS1faWNvbjogdmFyKC0tcC10cmVldGFibGUtc29ydC1hc2MtaWNvbik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYucC10cmVldGFibGUtc29ydC1kZXNjLWljb24ge1xuICAgICAgICAgICAgICAgIC0tX2ljb246IHZhcigtLXAtdHJlZXRhYmxlLXNvcnQtZGVzYy1pY29uKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5wLXNvcnRhYmxlLWNvbHVtbi1iYWRnZSB7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1wLWJhZGdlLWJvcmRlci1yYWRpdXMpO1xuICAgICAgICAgICAgcGFkZGluZzogdmFyKC0tcC1iYWRnZS1wYWRkaW5nKTtcbiAgICAgICAgICAgIGhlaWdodDogdmFyKC0tcC1iYWRnZS1oZWlnaHQpO1xuICAgICAgICAgICAgbWluLXdpZHRoOiB2YXIoLS1wLWJhZGdlLW1pbi13aWR0aCk7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogdmFyKC0tcC1iYWRnZS1oZWlnaHQpO1xuICAgICAgICAgICAgY29sb3I6IHZhcigtLXAtYmFkZ2UtcHJpbWFyeS1jb2xvcik7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1wLWJhZGdlLXByaW1hcnktYmFja2dyb3VuZCk7XG4gICAgICAgICAgICBtYXJnaW4taW5saW5lLXN0YXJ0OiB2YXIoLS1wLXRyZWV0YWJsZS1oZWFkZXItY2VsbC1nYXApO1xuICAgICAgICAgICAgZm9udC1zaXplOiB2YXIoLS1wLWJhZGdlLWZvbnQtc2l6ZSk7XG4gICAgICAgICAgICBmb250LXdlaWdodDogdmFyKC0tcC1iYWRnZS1mb250LXdlaWdodCk7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi5wLXNvcnRhYmxlLWNvbHVtbi5wLXN0YXRlLWZvY3VzLFxuICAgICAgICAmLnAtc29ydGFibGUtY29sdW1uOmZvY3VzLXZpc2libGUge1xuICAgICAgICAgICAgb3V0bGluZTogdmFyKC0tcC10cmVldGFibGUtaGVhZGVyLWNlbGwtZm9jdXMtcmluZy13aWR0aCkgdmFyKC0tcC10cmVldGFibGUtaGVhZGVyLWNlbGwtZm9jdXMtcmluZy1zdHlsZSkgdmFyKC0tcC10cmVldGFibGUtaGVhZGVyLWNlbGwtZm9jdXMtcmluZy1jb2xvcik7XG4gICAgICAgICAgICBvdXRsaW5lLW9mZnNldDogdmFyKC0tcC10cmVldGFibGUtaGVhZGVyLWNlbGwtZm9jdXMtcmluZy1vZmZzZXQpO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogdmFyKC0tcC10cmVldGFibGUtaGVhZGVyLWNlbGwtZm9jdXMtcmluZy1zaGFkb3cpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi5wLXN0YXRlLWhvdmVyIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHZhcigtLXAtdHJlZXRhYmxlLWhlYWRlci1jZWxsLWhvdmVyLWJhY2tncm91bmQpO1xuICAgICAgICAgICAgY29sb3I6IHZhcigtLXAtdHJlZXRhYmxlLWhlYWRlci1jZWxsLWhvdmVyLWNvbG9yKTtcblxuICAgICAgICAgICAgLnAtc29ydGFibGUtY29sdW1uLWljb24ge1xuICAgICAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1wLXRyZWV0YWJsZS1zb3J0LWljb24taG92ZXItY29sb3IpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyogc29ydGVkIGNvbHVtbiAoUHJpbWVVSVggaGFzIG5vIHNlcGFyYXRlIGhvdmVyIGxvb2sgZm9yIGl0KSAqL1xuICAgIHRoZWFkIHRoLnAtc3RhdGUtYWN0aXZlIHtcbiAgICAgICAgJixcbiAgICAgICAgJi5wLXN0YXRlLWhvdmVyIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHZhcigtLXAtdHJlZXRhYmxlLWhlYWRlci1jZWxsLXNlbGVjdGVkLWJhY2tncm91bmQpO1xuICAgICAgICAgICAgY29sb3I6IHZhcigtLXAtdHJlZXRhYmxlLWhlYWRlci1jZWxsLXNlbGVjdGVkLWNvbG9yKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5wLXNvcnRhYmxlLWNvbHVtbi1pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1wLXRyZWV0YWJsZS1oZWFkZXItY2VsbC1zZWxlY3RlZC1jb2xvcik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAucC1zb3J0YWJsZS1jb2x1bW4ge1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xuICAgIH1cblxuICAgIC8qIG11bHRpcGxlIHNvcnQgbnVtYmVyIGJhZGdlcyAqL1xuICAgIC5wLXNvcnRhYmxlLWNvbHVtbi1iYWRnZSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcblxuICAgICAgICAmLnAtaGlkZGVuIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAucC1jb2x1bW4tZmlsdGVyIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBtYXJnaW46IHZhcigtLXAtdHJlZXRhYmxlLWNvbHVtbi1maWx0ZXItZ2FwKSBhdXRvIGF1dG8gYXV0bztcbiAgICB9XG5cbiAgICAvKiB0aGUgZGVmYXVsdCBmaWx0ZXIgaXMgdGhlIGlucHV0IGl0c2VsZjsgY29tcG9uZW50cyBvZiBhIGZpbHRlciBmYWNldCBmaWxsIHRoZSBjb2x1bW4gbGlrZSBpbiBwOmRhdGFUYWJsZSAqL1xuICAgIC5wLWNvbHVtbi1jdXN0b21maWx0ZXIge1xuICAgICAgICBtYXJnaW46IHZhcigtLXAtdHJlZXRhYmxlLWNvbHVtbi1maWx0ZXItZ2FwKSBhdXRvIGF1dG8gYXV0bztcblxuICAgICAgICAucC1pbnB1dGZpZWxkLFxuICAgICAgICAucC1zZWxlY3RvbmVtZW51IHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLnAtdHJlZXRhYmxlLWRhdGEgdHIucC1zdGF0ZS1ob3ZlciB7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB9XG5cbiAgICAvKiByb3dzICovXG4gICAgLnAtdHJlZXRhYmxlLWRhdGEgPiB0ciB7XG4gICAgICAgIGJhY2tncm91bmQ6IHZhcigtLXAtdHJlZXRhYmxlLXJvdy1iYWNrZ3JvdW5kKTtcbiAgICAgICAgY29sb3I6IHZhcigtLXAtdHJlZXRhYmxlLXJvdy1jb2xvcik7XG4gICAgICAgIG91dGxpbmUtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIHZhcigtLXAtdHJlZXRhYmxlLXRyYW5zaXRpb24tZHVyYXRpb24pLCBjb2xvciB2YXIoLS1wLXRyZWV0YWJsZS10cmFuc2l0aW9uLWR1cmF0aW9uKSxcbiAgICAgICAgICAgIGJvcmRlci1jb2xvciB2YXIoLS1wLXRyZWV0YWJsZS10cmFuc2l0aW9uLWR1cmF0aW9uKSwgb3V0bGluZS1jb2xvciB2YXIoLS1wLXRyZWV0YWJsZS10cmFuc2l0aW9uLWR1cmF0aW9uKSxcbiAgICAgICAgICAgIGJveC1zaGFkb3cgdmFyKC0tcC10cmVldGFibGUtdHJhbnNpdGlvbi1kdXJhdGlvbik7XG5cbiAgICAgICAgPiB0ZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiB2YXIoLS1wLXRyZWV0YWJsZS1ib2R5LWNlbGwtcGFkZGluZyk7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1wLXRyZWV0YWJsZS1ib2R5LWNlbGwtYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgICAgIGJvcmRlci13aWR0aDogMCAwIDFweCAwO1xuICAgICAgICAgICAgZm9udC1zaXplOiB2YXIoLS1wLXRyZWV0YWJsZS1ib2R5LWNlbGwtZm9udC1zaXplKTtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1wLXRyZWV0YWJsZS1ib2R5LWNlbGwtZm9udC13ZWlnaHQpO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogc3RhcnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmOmZvY3VzLXZpc2libGUge1xuICAgICAgICAgICAgb3V0bGluZTogdmFyKC0tcC10cmVldGFibGUtcm93LWZvY3VzLXJpbmctd2lkdGgpIHZhcigtLXAtdHJlZXRhYmxlLXJvdy1mb2N1cy1yaW5nLXN0eWxlKSB2YXIoLS1wLXRyZWV0YWJsZS1yb3ctZm9jdXMtcmluZy1jb2xvcik7XG4gICAgICAgICAgICBvdXRsaW5lLW9mZnNldDogdmFyKC0tcC10cmVldGFibGUtcm93LWZvY3VzLXJpbmctb2Zmc2V0KTtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IHZhcigtLXAtdHJlZXRhYmxlLXJvdy1mb2N1cy1yaW5nLXNoYWRvdyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLnAtdHJlZXRhYmxlLWVtcHR5LW1lc3NhZ2UgPiB0ZCB7XG4gICAgICAgICAgICBjb2xvcjogdmFyKC0tcC10cmVldGFibGUtZW1wdHktbWVzc2FnZS1jb2xvcik7XG4gICAgICAgIH1cblxuICAgICAgICAvKiBub2RlIHRvZ2dsZXIgKGFjdGlvbiBpY29uKSAqL1xuICAgICAgICA+IHRkIC5wLXRyZWV0YWJsZS10b2dnbGVyIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgIG1hcmdpbi1pbmxpbmUtZW5kOiB2YXIoLS1wLXRyZWV0YWJsZS1ib2R5LWNlbGwtZ2FwKTtcbiAgICAgICAgICAgIHdpZHRoOiB2YXIoLS1wLXRyZWV0YWJsZS1ub2RlLXRvZ2dsZS1idXR0b24tc2l6ZSk7XG4gICAgICAgICAgICBoZWlnaHQ6IHZhcigtLXAtdHJlZXRhYmxlLW5vZGUtdG9nZ2xlLWJ1dHRvbi1zaXplKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6IHZhcigtLXAtdHJlZXRhYmxlLW5vZGUtdG9nZ2xlLWJ1dHRvbi1jb2xvcik7XG4gICAgICAgICAgICBib3JkZXI6IDAgbm9uZTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXAtdHJlZXRhYmxlLW5vZGUtdG9nZ2xlLWJ1dHRvbi1ib3JkZXItcmFkaXVzKTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICAtd2Via2l0LXVzZXItc2VsZWN0OiBub25lO1xuICAgICAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgICAgICAgICBvdXRsaW5lLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgdmFyKC0tcC10cmVldGFibGUtdHJhbnNpdGlvbi1kdXJhdGlvbiksIGNvbG9yIHZhcigtLXAtdHJlZXRhYmxlLXRyYW5zaXRpb24tZHVyYXRpb24pLFxuICAgICAgICAgICAgICAgIG91dGxpbmUtY29sb3IgdmFyKC0tcC10cmVldGFibGUtdHJhbnNpdGlvbi1kdXJhdGlvbiksIGJveC1zaGFkb3cgdmFyKC0tcC10cmVldGFibGUtdHJhbnNpdGlvbi1kdXJhdGlvbik7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IHZhcigtLXAtdHJlZXRhYmxlLW5vZGUtdG9nZ2xlLWJ1dHRvbi1ob3Zlci1iYWNrZ3JvdW5kKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogdmFyKC0tcC10cmVldGFibGUtbm9kZS10b2dnbGUtYnV0dG9uLWhvdmVyLWNvbG9yKTtcbiAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmZvY3VzLXZpc2libGUge1xuICAgICAgICAgICAgICAgIG91dGxpbmU6IHZhcigtLXAtdHJlZXRhYmxlLW5vZGUtdG9nZ2xlLWJ1dHRvbi1mb2N1cy1yaW5nLXdpZHRoKSB2YXIoLS1wLXRyZWV0YWJsZS1ub2RlLXRvZ2dsZS1idXR0b24tZm9jdXMtcmluZy1zdHlsZSkgdmFyKC0tcC10cmVldGFibGUtbm9kZS10b2dnbGUtYnV0dG9uLWZvY3VzLXJpbmctY29sb3IpO1xuICAgICAgICAgICAgICAgIG91dGxpbmUtb2Zmc2V0OiB2YXIoLS1wLXRyZWV0YWJsZS1ub2RlLXRvZ2dsZS1idXR0b24tZm9jdXMtcmluZy1vZmZzZXQpO1xuICAgICAgICAgICAgICAgIGJveC1zaGFkb3c6IHZhcigtLXAtdHJlZXRhYmxlLW5vZGUtdG9nZ2xlLWJ1dHRvbi1mb2N1cy1yaW5nLXNoYWRvdyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYucC10cmVldGFibGUtdG9nZ2xlLWljb24ge1xuICAgICAgICAgICAgICAgIC0tX2ljb246IHZhcigtLXAtdHJlZXRhYmxlLXRvZ2dsZS1leHBhbmRlZC1pY29uKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC8qIHRoZSBzdGF0ZSBpcyBhcmlhLWV4cGFuZGVkIG9mIHRoZSByb3cgKi9cbiAgICAgICAgJlthcmlhLWV4cGFuZGVkPVwiZmFsc2VcIl0gPiB0ZCA+IC5wLXRyZWV0YWJsZS10b2dnbGUtaWNvbiB7XG4gICAgICAgICAgICAtLV9pY29uOiB2YXIoLS1wLXRyZWV0YWJsZS10b2dnbGUtY29sbGFwc2VkLWljb24pO1xuXG4gICAgICAgICAgICAmOmRpcihydGwpIHtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgxODBkZWcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgPiB0ZCAucC1jaGtib3gucC1zZWxlY3Rpb24ge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgIG1hcmdpbi1pbmxpbmUtZW5kOiB2YXIoLS1wLXRyZWV0YWJsZS1ib2R5LWNlbGwtZ2FwKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8qIHRoZSBsYWJlbCBpcyBiYXJlIHRleHQ6IG1pZGRsZSBjZW50ZXJzIG9uIHRoZSB4LWhlaWdodCwgdGhlIG51ZGdlIGNlbnRlcnMgb24gdGhlIHRleHQgKG5vIGxheW91dCBjaGFuZ2UpICovXG4gICAgICAgID4gdGQgPiA6aXMoLnAtdHJlZXRhYmxlLXRvZ2dsZXIsIC5wLWNoa2JveC5wLXNlbGVjdGlvbikge1xuICAgICAgICAgICAgdHJhbnNsYXRlOiAwIC0wLjE1ZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLnAtc3RhdGUtaG92ZXIge1xuICAgICAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tcC10cmVldGFibGUtcm93LWhvdmVyLWJhY2tncm91bmQpO1xuICAgICAgICAgICAgY29sb3I6IHZhcigtLXAtdHJlZXRhYmxlLXJvdy1ob3Zlci1jb2xvcik7XG4gICAgICAgIH1cblxuICAgICAgICAmLnAtc3RhdGUtaGlnaGxpZ2h0IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHZhcigtLXAtdHJlZXRhYmxlLXJvdy1zZWxlY3RlZC1iYWNrZ3JvdW5kKTtcbiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1wLXRyZWV0YWJsZS1yb3ctc2VsZWN0ZWQtY29sb3IpO1xuICAgICAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuXG4gICAgICAgICAgICAucC10cmVldGFibGUtdG9nZ2xlciB7XG4gICAgICAgICAgICAgICAgY29sb3I6IGluaGVyaXQ7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5wLXRyZWV0YWJsZS10b2dnbGVyOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1wLXRyZWV0YWJsZS1ub2RlLXRvZ2dsZS1idXR0b24tc2VsZWN0ZWQtaG92ZXItYmFja2dyb3VuZCk7XG4gICAgICAgICAgICAgICAgY29sb3I6IHZhcigtLXAtdHJlZXRhYmxlLW5vZGUtdG9nZ2xlLWJ1dHRvbi1zZWxlY3RlZC1ob3Zlci1jb2xvcik7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLnAtc3RhdGUtaGlnaGxpZ2h0ID4gdGQsXG4gICAgICAgICY6aGFzKCsgdHIucC1zdGF0ZS1oaWdobGlnaHQpID4gdGQge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogdmFyKC0tcC10cmVldGFibGUtYm9keS1jZWxsLXNlbGVjdGVkLWJvcmRlci1jb2xvcik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAucC10cmVldGFibGUtdG9nZ2xlciB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIH1cblxuICAgIC5wLXRyZWV0YWJsZS1pbmRlbnQge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIHdpZHRoOiB2YXIoLS1wLXRyZWV0YWJsZS1ub2RlLWluZGVudCk7XG4gICAgICAgIGhlaWdodDogdmFyKC0tcC10cmVldGFibGUtbm9kZS1pbmRlbnQpO1xuICAgIH1cblxuICAgIC5wLWNoa2JveC5wLXNlbGVjdGlvbiB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuXG4gICAgLnAtdHJlZXRhYmxlLXNlbGVjdGFibGUtbm9kZSAucC1jaGtib3gucC1zZWxlY3Rpb24ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICB9XG5cbiAgICAmLnAtdHJlZXRhYmxlLWNoZWNrYm94LWFsbCAucC1jaGtib3gucC1zZWxlY3Rpb24ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICB9XG5cbiAgICAvKiBpbi1jZWxsIGVkaXRpbmcgKi9cbiAgICAucC1lZGl0YWJsZS1jb2x1bW4gLnAtY2VsbC1lZGl0b3Ige1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgfVxuXG4gICAgLnAtY2VsbC1lZGl0b3ItaW5wdXQge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cblxuICAgIC5wLXJvdy1lZGl0aW5nIHtcbiAgICAgICAgLnAtY2VsbC1lZGl0b3IgLnAtY2VsbC1lZGl0b3Itb3V0cHV0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAucC1jZWxsLWVkaXRvciAucC1jZWxsLWVkaXRvci1pbnB1dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgIC5wLXJvdy1lZGl0b3IgLnAtcm93LWVkaXRvci1wZW5jaWwge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5wLXJvdy1lZGl0b3IgLnAtcm93LWVkaXRvci1jaGVjayxcbiAgICAgICAgLnAtcm93LWVkaXRvciAucC1yb3ctZWRpdG9yLWNsb3NlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLnAtcm93LWVkaXRvciB7XG4gICAgICAgIHNwYW4ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgLnAtcm93LWVkaXRvci1wZW5jaWwge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgICAgIH1cblxuICAgICAgICAucC1yb3ctZWRpdG9yLWNoZWNrLFxuICAgICAgICAucC1yb3ctZWRpdG9yLWNsb3NlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAucC10cmVldGFibGUtZGF0YSB0ci5wLXJvdy1lZGl0aW5nIHRkLnAtZWRpdGFibGUtY29sdW1uLFxuICAgIC5wLXRyZWV0YWJsZS1kYXRhIHRkLnAtY2VsbC1lZGl0aW5nIHtcbiAgICAgICAgcGFkZGluZy10b3A6IDA7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIH1cblxuICAgIC8qIHJvdyBlZGl0b3I6IGEucC1yb3ctZWRpdG9yLXBlbmNpbCAvIC1jaGVjayAvIC1jbG9zZSA+IHNwYW4ucC1pY29uIChhY3Rpb24gaWNvbnMpICovXG4gICAgLnAtcm93LWVkaXRvciB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuXG4gICAgICAgID4gYSB7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAucC10cmVldGFibGUtZGF0YSA+IHRyIHtcbiAgICAgICAgLnAtcm93LWVkaXRvciAucC1pY29uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgICAgd2lkdGg6IHZhcigtLXAtdHJlZXRhYmxlLW5vZGUtdG9nZ2xlLWJ1dHRvbi1zaXplKTtcbiAgICAgICAgICAgIGhlaWdodDogdmFyKC0tcC10cmVldGFibGUtbm9kZS10b2dnbGUtYnV0dG9uLXNpemUpO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogdmFyKC0tcC10cmVldGFibGUtbm9kZS10b2dnbGUtYnV0dG9uLWNvbG9yKTtcbiAgICAgICAgICAgIGJvcmRlcjogMCBub25lO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogdmFyKC0tcC10cmVldGFibGUtbm9kZS10b2dnbGUtYnV0dG9uLWJvcmRlci1yYWRpdXMpO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgICAgICAgICAgIG91dGxpbmUtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCB2YXIoLS1wLXRyZWV0YWJsZS10cmFuc2l0aW9uLWR1cmF0aW9uKSwgY29sb3IgdmFyKC0tcC10cmVldGFibGUtdHJhbnNpdGlvbi1kdXJhdGlvbiksXG4gICAgICAgICAgICAgICAgb3V0bGluZS1jb2xvciB2YXIoLS1wLXRyZWV0YWJsZS10cmFuc2l0aW9uLWR1cmF0aW9uKSwgYm94LXNoYWRvdyB2YXIoLS1wLXRyZWV0YWJsZS10cmFuc2l0aW9uLWR1cmF0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5wLXJvdy1lZGl0b3IgLnAtaWNvbjpob3ZlciB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1wLXRyZWV0YWJsZS1ub2RlLXRvZ2dsZS1idXR0b24taG92ZXItYmFja2dyb3VuZCk7XG4gICAgICAgICAgICBjb2xvcjogdmFyKC0tcC10cmVldGFibGUtbm9kZS10b2dnbGUtYnV0dG9uLWhvdmVyLWNvbG9yKTtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAucC1yb3ctZWRpdG9yIC5wLWljb246Zm9jdXMtdmlzaWJsZSxcbiAgICAgICAgLnAtcm93LWVkaXRvciBhOmZvY3VzLXZpc2libGUgLnAtaWNvbiB7XG4gICAgICAgICAgICBvdXRsaW5lOiB2YXIoLS1wLXRyZWV0YWJsZS1ub2RlLXRvZ2dsZS1idXR0b24tZm9jdXMtcmluZy13aWR0aCkgdmFyKC0tcC10cmVldGFibGUtbm9kZS10b2dnbGUtYnV0dG9uLWZvY3VzLXJpbmctc3R5bGUpIHZhcigtLXAtdHJlZXRhYmxlLW5vZGUtdG9nZ2xlLWJ1dHRvbi1mb2N1cy1yaW5nLWNvbG9yKTtcbiAgICAgICAgICAgIG91dGxpbmUtb2Zmc2V0OiB2YXIoLS1wLXRyZWV0YWJsZS1ub2RlLXRvZ2dsZS1idXR0b24tZm9jdXMtcmluZy1vZmZzZXQpO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogdmFyKC0tcC10cmVldGFibGUtbm9kZS10b2dnbGUtYnV0dG9uLWZvY3VzLXJpbmctc2hhZG93KTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5wLXJvdy1lZGl0b3IgYTpmb2N1cy12aXNpYmxlIHtcbiAgICAgICAgICAgIG91dGxpbmU6IDAgbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5wLXJvdy1lZGl0b3IgLnAtdHJlZXRhYmxlLXJvdy1lZGl0LWljb24ge1xuICAgICAgICAgICAgLS1faWNvbjogdmFyKC0tcC10cmVldGFibGUtcm93LWVkaXQtaWNvbik7XG4gICAgICAgIH1cblxuICAgICAgICAucC1yb3ctZWRpdG9yIC5wLXJvdy1lZGl0b3ItY2hlY2sge1xuICAgICAgICAgICAgbWFyZ2luLWlubGluZS1lbmQ6IHZhcigtLXAtdHJlZXRhYmxlLWJvZHktY2VsbC1nYXApO1xuICAgICAgICB9XG5cbiAgICAgICAgLnAtcm93LWVkaXRvciAucC10cmVldGFibGUtcm93LXNhdmUtaWNvbiB7XG4gICAgICAgICAgICAtLV9pY29uOiB2YXIoLS1wLXRyZWV0YWJsZS1yb3ctc2F2ZS1pY29uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5wLXJvdy1lZGl0b3IgLnAtdHJlZXRhYmxlLXJvdy1jYW5jZWwtaWNvbiB7XG4gICAgICAgICAgICAtLV9pY29uOiB2YXIoLS1wLXRyZWV0YWJsZS1yb3ctY2FuY2VsLWljb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi5wLXN0YXRlLWhpZ2hsaWdodCAucC1yb3ctZWRpdG9yIC5wLWljb24ge1xuICAgICAgICAgICAgY29sb3I6IHZhcigtLXAtdHJlZXRhYmxlLXJvdy1zZWxlY3RlZC1jb2xvcik7XG4gICAgICAgIH1cblxuICAgICAgICAmLnAtc3RhdGUtaGlnaGxpZ2h0IC5wLXJvdy1lZGl0b3IgLnAtaWNvbjpob3ZlciB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1wLXRyZWV0YWJsZS1ub2RlLXRvZ2dsZS1idXR0b24tc2VsZWN0ZWQtaG92ZXItYmFja2dyb3VuZCk7XG4gICAgICAgICAgICBjb2xvcjogdmFyKC0tcC10cmVldGFibGUtbm9kZS10b2dnbGUtYnV0dG9uLXNlbGVjdGVkLWhvdmVyLWNvbG9yKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qIGNvbHVtbiBmb290ZXJzICovXG4gICAgdGZvb3QgdGQge1xuICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1wLXRyZWV0YWJsZS1mb290ZXItY2VsbC1iYWNrZ3JvdW5kKTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tcC10cmVldGFibGUtZm9vdGVyLWNlbGwtYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgYm9yZGVyLXdpZHRoOiAwIDAgMXB4IDA7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1wLXRyZWV0YWJsZS1mb290ZXItY2VsbC1jb2xvcik7XG4gICAgICAgIHBhZGRpbmc6IHZhcigtLXAtdHJlZXRhYmxlLWZvb3Rlci1jZWxsLXBhZGRpbmcpO1xuICAgICAgICBmb250LXdlaWdodDogdmFyKC0tcC10cmVldGFibGUtY29sdW1uLWZvb3Rlci1mb250LXdlaWdodCk7XG4gICAgICAgIGZvbnQtc2l6ZTogdmFyKC0tcC10cmVldGFibGUtY29sdW1uLWZvb3Rlci1mb250LXNpemUpO1xuICAgICAgICB0ZXh0LWFsaWduOiBzdGFydDtcbiAgICAgICAgYm94LXNpemluZzogY29udGVudC1ib3g7XG4gICAgfVxuXG4gICAgJi5wLXRyZWV0YWJsZS1zY3JvbGxhYmxlIHtcbiAgICAgICAgLnAtdHJlZXRhYmxlLXNjcm9sbGFibGUtdGhlYWRjbG9uZSB0ciB0aCA+ICoge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5wLXRyZWV0YWJsZS1zY3JvbGxhYmxlLWhlYWRlciB7XG4gICAgICAgIGJhY2tncm91bmQ6IHZhcigtLXAtdHJlZXRhYmxlLWhlYWRlci1jZWxsLWJhY2tncm91bmQpO1xuICAgIH1cblxuICAgIC5wLXRyZWV0YWJsZS1zY3JvbGxhYmxlLWZvb3RlciB7XG4gICAgICAgIGJhY2tncm91bmQ6IHZhcigtLXAtdHJlZXRhYmxlLWZvb3Rlci1jZWxsLWJhY2tncm91bmQpO1xuICAgIH1cblxuICAgIC5wLWNvbHVtbi1yZXNpemVyIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGluc2V0LWlubGluZS1lbmQ6IDA7XG4gICAgICAgIHdpZHRoOiB2YXIoLS1wLXRyZWV0YWJsZS1jb2x1bW4tcmVzaXplci13aWR0aCk7XG4gICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBjdXJzb3I6IGNvbC1yZXNpemU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIH1cblxuICAgIC5wLWNvbHVtbi1yZXNpemVyLWhlbHBlciB7XG4gICAgICAgIHdpZHRoOiB2YXIoLS1wLXRyZWV0YWJsZS1yZXNpemUtaW5kaWNhdG9yLXdpZHRoKTtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB6LWluZGV4OiAxMDtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tcC10cmVldGFibGUtcmVzaXplLWluZGljYXRvci1jb2xvcik7XG4gICAgfVxuXG4gICAgLyogc3RyaXBlZDogOm50aC1jaGlsZCBiZWNhdXNlIGV4cGFuZGluZyAvIGNvbGxhcHNpbmcgYSBub2RlIGFkZHMgYW5kIHJlbW92ZXMgcm93cyBvbiB0aGUgY2xpZW50ICovXG4gICAgJi5wLXRyZWV0YWJsZS1zdHJpcGVkIC5wLXRyZWV0YWJsZS1kYXRhID4gdHI6bnRoLWNoaWxkKGV2ZW4pOm5vdCgucC1zdGF0ZS1ob3ZlciwgLnAtc3RhdGUtaGlnaGxpZ2h0KSB7XG4gICAgICAgIGJhY2tncm91bmQ6IHZhcigtLXAtdHJlZXRhYmxlLXJvdy1zdHJpcGVkLWJhY2tncm91bmQpO1xuICAgIH1cblxuICAgIC8qIHNpemVzICovXG4gICAgJi5wLXRyZWV0YWJsZS1zbSB7XG4gICAgICAgIC5wLXRyZWV0YWJsZS1oZWFkZXIge1xuICAgICAgICAgICAgcGFkZGluZzogdmFyKC0tcC10cmVldGFibGUtaGVhZGVyLXNtLXBhZGRpbmcpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhlYWQgPiB0ciA+IHRoIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IHZhcigtLXAtdHJlZXRhYmxlLWhlYWRlci1jZWxsLXNtLXBhZGRpbmcpO1xuICAgICAgICB9XG5cbiAgICAgICAgLnAtdHJlZXRhYmxlLWRhdGEgPiB0ciA+IHRkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IHZhcigtLXAtdHJlZXRhYmxlLWJvZHktY2VsbC1zbS1wYWRkaW5nKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRmb290ID4gdHIgPiB0ZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiB2YXIoLS1wLXRyZWV0YWJsZS1mb290ZXItY2VsbC1zbS1wYWRkaW5nKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5wLXRyZWV0YWJsZS1mb290ZXIge1xuICAgICAgICAgICAgcGFkZGluZzogdmFyKC0tcC10cmVldGFibGUtZm9vdGVyLXNtLXBhZGRpbmcpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi5wLXRyZWV0YWJsZS1sZyB7XG4gICAgICAgIC5wLXRyZWV0YWJsZS1oZWFkZXIge1xuICAgICAgICAgICAgcGFkZGluZzogdmFyKC0tcC10cmVldGFibGUtaGVhZGVyLWxnLXBhZGRpbmcpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhlYWQgPiB0ciA+IHRoIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IHZhcigtLXAtdHJlZXRhYmxlLWhlYWRlci1jZWxsLWxnLXBhZGRpbmcpO1xuICAgICAgICB9XG5cbiAgICAgICAgLnAtdHJlZXRhYmxlLWRhdGEgPiB0ciA+IHRkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IHZhcigtLXAtdHJlZXRhYmxlLWJvZHktY2VsbC1sZy1wYWRkaW5nKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRmb290ID4gdHIgPiB0ZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiB2YXIoLS1wLXRyZWV0YWJsZS1mb290ZXItY2VsbC1sZy1wYWRkaW5nKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5wLXRyZWV0YWJsZS1mb290ZXIge1xuICAgICAgICAgICAgcGFkZGluZzogdmFyKC0tcC10cmVldGFibGUtZm9vdGVyLWxnLXBhZGRpbmcpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi5wLXRyZWV0YWJsZS1zbSAucC10cmVldGFibGUtc2Nyb2xsYWJsZS10aGVhZGNsb25lID4gdHIgPiB0aCxcbiAgICAmLnAtdHJlZXRhYmxlLWxnIC5wLXRyZWV0YWJsZS1zY3JvbGxhYmxlLXRoZWFkY2xvbmUgPiB0ciA+IHRoIHtcbiAgICAgICAgcGFkZGluZy10b3A6IDA7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgIH1cblxuICAgICYucC10cmVldGFibGUtZ3JpZGxpbmVzIHtcbiAgICAgICAgLnAtdHJlZXRhYmxlLWhlYWRlciB7XG4gICAgICAgICAgICBib3JkZXItd2lkdGg6IDFweCAxcHggMCAxcHg7XG4gICAgICAgIH1cblxuICAgICAgICAucC10cmVldGFibGUtZm9vdGVyIHtcbiAgICAgICAgICAgIGJvcmRlci13aWR0aDogMCAxcHggMXB4IDFweDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5wLXBhZ2luYXRvciB7XG4gICAgICAgICAgICAmLnAtcGFnaW5hdG9yLXRvcCB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXdpZHRoOiAxcHggMXB4IDAgMXB4O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLnAtcGFnaW5hdG9yLWJvdHRvbSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXdpZHRoOiAwIDFweCAxcHggMXB4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgdGhlYWQgPiB0ciA+IHRoLFxuICAgICAgICAucC10cmVldGFibGUtZGF0YSA+IHRyID4gdGQsXG4gICAgICAgIHRmb290ID4gdHIgPiB0ZCB7XG4gICAgICAgICAgICBib3JkZXItd2lkdGg6IDFweDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5wLXRyZWV0YWJsZS1zY3JvbGxhYmxlLXRoZWFkY2xvbmUgPiB0ciA+IHRoIHtcbiAgICAgICAgICAgIHBhZGRpbmctdG9wOiAwO1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAwIG5vbmU7XG4gICAgICAgICAgICBib3JkZXItdG9wOiAwIG5vbmU7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5wLXRyZWV0YWJsZS1zY3JvbGxhYmxlLWJvZHkge1xuICAgIG92ZXJmbG93OiBhdXRvO1xufVxuXG4ucC10cmVldGFibGUtc2Nyb2xsYWJsZS1oZWFkZXIsXG4ucC10cmVldGFibGUtc2Nyb2xsYWJsZS1mb290ZXIge1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgYm9yZGVyOiAwIG5vbmU7XG59XG5cbi5wLXRyZWV0YWJsZS1zY3JvbGxhYmxlIC5wLXRyZWV0YWJsZS1zY3JvbGxhYmxlLWhlYWRlcixcbi5wLXRyZWV0YWJsZS1zY3JvbGxhYmxlIC5wLXRyZWV0YWJsZS1zY3JvbGxhYmxlLWZvb3RlciB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG4ucC10cmVldGFibGUtc2Nyb2xsYWJsZS10aGVhZGNsb25lIHtcbiAgICBoZWlnaHQ6IDA7XG5cbiAgICB0ciB7XG4gICAgICAgIGhlaWdodDogMDtcbiAgICB9XG5cbiAgICB0aCB7XG4gICAgICAgICYucC1zdGF0ZS1kZWZhdWx0IHtcbiAgICAgICAgICAgIGhlaWdodDogMDtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b20td2lkdGg6IDA7XG4gICAgICAgICAgICBib3JkZXItdG9wLXdpZHRoOiAwO1xuICAgICAgICAgICAgcGFkZGluZy10b3A6IDA7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgICAgICAgIG91dGxpbmU6IDAgbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgIHNwYW4ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBoZWlnaHQ6IDA7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5wLXRyZWV0YWJsZS1yZXNpemFibGUge1xuICAgIHBhZGRpbmctYm90dG9tOiAxcHg7IC8qIGZpeCBmb3Igd2Via2l0IG92ZXJmbG93ICovXG4gICAgb3ZlcmZsb3c6IGF1dG87XG5cbiAgICB0aC5wLXJlc2l6YWJsZS1jb2x1bW4ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNsaXA6IHBhZGRpbmctYm94O1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgfVxufVxuXG4ucC10cmVldGFibGUtcmVmbG93IHtcbiAgICAucC10cmVldGFibGUtZGF0YSB0ZCAucC1jb2x1bW4tdGl0bGUge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbn1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDY0MHB4KSB7XG4gICAgLnAtdHJlZXRhYmxlLXJlZmxvdyB0aGVhZCB0aCxcbiAgICAucC10cmVldGFibGUtcmVmbG93IHRmb290IHRkIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG5cbiAgICAvKiBrZWVwIGNvbHVtbiBmaWx0ZXJzIHVzYWJsZSBpbiByZWZsb3cgbW9kZTogc3RhY2sgdGhlIGZpbHRlcmFibGUgaGVhZGVyIGNlbGxzIGluc3RlYWQgb2YgaGlkaW5nIHRoZSB3aG9sZSB0aGVhZCAqL1xuICAgIC5wLXRyZWV0YWJsZS1yZWZsb3cge1xuICAgICAgICB0aGVhZCB0aC5wLWZpbHRlci1jb2x1bW4ge1xuICAgICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgZmxvYXQ6IGlubGluZS1zdGFydDtcbiAgICAgICAgICAgIGNsZWFyOiBpbmxpbmUtc3RhcnQ7XG4gICAgICAgICAgICB3aWR0aDogMTAwJSAhaW1wb3J0YW50O1xuICAgICAgICAgICAgYm9yZGVyOiAwIG5vbmU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBzdGFydDtcblxuICAgICAgICAgICAgLnAtY29sdW1uLXRpdGxlIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogdmFyKC0tcC10cmVldGFibGUtcmVmbG93LXRpdGxlLWZvbnQtd2VpZ2h0KTtcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgMCB2YXIoLS1wLXRyZWV0YWJsZS1yZWZsb3ctZ2FwKSAwO1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5wLXNvcnRhYmxlLWNvbHVtbi1pY29uLFxuICAgICAgICAgICAgLnAtc29ydGFibGUtY29sdW1uLWJhZGdlLFxuICAgICAgICAgICAgLnAtY29sdW1uLXJlc2l6ZXIge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5wLWNvbHVtbi1maWx0ZXIsXG4gICAgICAgICAgICAucC1jb2x1bW4tY3VzdG9tZmlsdGVyIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLnAtdHJlZXRhYmxlLWRhdGEge1xuICAgICAgICAgICAgdGQge1xuICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IHN0YXJ0O1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMCBub25lO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgICAgICAgICAgICAgZmxvYXQ6IGlubGluZS1zdGFydDtcbiAgICAgICAgICAgICAgICBjbGVhcjogaW5saW5lLXN0YXJ0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLnAtY29tcG9uZW50LWNvbnRlbnQge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMCBub25lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB0ci5wLWNvbXBvbmVudC1jb250ZW50IHtcbiAgICAgICAgICAgICAgICBib3JkZXItbGVmdDogMCBub25lO1xuICAgICAgICAgICAgICAgIGJvcmRlci1yaWdodDogMCBub25lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB0ZCAucC1jb2x1bW4tdGl0bGUge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICBtaW4td2lkdGg6IDMwJTtcbiAgICAgICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWlubGluZS1lbmQ6IHZhcigtLXAtdHJlZXRhYmxlLXJlZmxvdy1nYXApO1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IHZhcigtLXAtdHJlZXRhYmxlLXJlZmxvdy10aXRsZS1mb250LXdlaWdodCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCAiLypcbiAqIFdpemFyZDogcDp3aXphcmRcbiAqXG4gKiB1bC5wLXdpemFyZC1zdGVwLXRpdGxlcyAoc2hvd1N0ZXBTdGF0dXMpIGlzIGEgc2VnbWVudGVkIGJhciwgdGhlIGN1cnJlbnQgc3RlcCBpcyBsaS5wLXN0YXRlLWhpZ2hsaWdodC5cbiAqIFRoZSBuYXZiYXIgaG9sZHMgdHdvIFBGIGJ1dHRvbnMgKC5wLXdpemFyZC1uYXYtYmFjayBsZWZ0LCAucC13aXphcmQtbmF2LW5leHQgcmlnaHQsIHN0eWxlZCBieSBidXR0b24uY3NzKS5cbiAqIFByaW1lRmFjZXMgdG9rZW5zLCBzZWUgdGhlIHdpemFyZCBibG9jayBvZiBwcmVzZXRzLyouY3NzLlxuICovXG4ucC13aXphcmQge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBnYXA6IHZhcigtLXAtd2l6YXJkLWdhcCk7XG5cbiAgICAucC13aXphcmQtc3RlcC10aXRsZXMge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgbGlzdC1zdHlsZS10eXBlOiBub25lO1xuXG4gICAgICAgIC5wLXdpemFyZC1zdGVwLXRpdGxlIHtcbiAgICAgICAgICAgIGZsZXg6IDEgMSAwO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgcGFkZGluZzogdmFyKC0tcC13aXphcmQtc3RlcC1wYWRkaW5nKTtcbiAgICAgICAgICAgIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogdmFyKC0tcC13aXphcmQtc3RlcC1mb250LXNpemUpO1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IHZhcigtLXAtd2l6YXJkLXN0ZXAtZm9udC13ZWlnaHQpO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tcC13aXphcmQtc3RlcC1iYWNrZ3JvdW5kKTtcbiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1wLXdpemFyZC1zdGVwLWNvbG9yKTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLXAtd2l6YXJkLXN0ZXAtYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgICAgIGJvcmRlci1pbmxpbmUtZW5kLXdpZHRoOiAwO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgICAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgdmFyKC0tcC13aXphcmQtdHJhbnNpdGlvbi1kdXJhdGlvbiksIGNvbG9yIHZhcigtLXAtd2l6YXJkLXRyYW5zaXRpb24tZHVyYXRpb24pLFxuICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvciB2YXIoLS1wLXdpemFyZC10cmFuc2l0aW9uLWR1cmF0aW9uKTtcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXN0YXJ0LXN0YXJ0LXJhZGl1czogdmFyKC0tcC13aXphcmQtc3RlcC1ib3JkZXItcmFkaXVzKTtcbiAgICAgICAgICAgICAgICBib3JkZXItZW5kLXN0YXJ0LXJhZGl1czogdmFyKC0tcC13aXphcmQtc3RlcC1ib3JkZXItcmFkaXVzKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBib3JkZXItaW5saW5lLWVuZC13aWR0aDogMXB4O1xuICAgICAgICAgICAgICAgIGJvcmRlci1zdGFydC1lbmQtcmFkaXVzOiB2YXIoLS1wLXdpemFyZC1zdGVwLWJvcmRlci1yYWRpdXMpO1xuICAgICAgICAgICAgICAgIGJvcmRlci1lbmQtZW5kLXJhZGl1czogdmFyKC0tcC13aXphcmQtc3RlcC1ib3JkZXItcmFkaXVzKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi5wLXN0YXRlLWhpZ2hsaWdodCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tcC13aXphcmQtc3RlcC1hY3RpdmUtYmFja2dyb3VuZCk7XG4gICAgICAgICAgICAgICAgY29sb3I6IHZhcigtLXAtd2l6YXJkLXN0ZXAtYWN0aXZlLWNvbG9yKTtcbiAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6IHZhcigtLXAtd2l6YXJkLXN0ZXAtYWN0aXZlLWJvcmRlci1jb2xvcik7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAucC13aXphcmQtY29udGVudCB7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgcGFkZGluZzogdmFyKC0tcC13aXphcmQtY29udGVudC1wYWRkaW5nKTtcbiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tcC13aXphcmQtY29udGVudC1iYWNrZ3JvdW5kKTtcbiAgICAgICAgY29sb3I6IHZhcigtLXAtd2l6YXJkLWNvbnRlbnQtY29sb3IpO1xuICAgIH1cblxuICAgIC5wLXdpemFyZC1uYXZiYXIge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBnYXA6IHZhcigtLXAtd2l6YXJkLWdhcCk7XG5cbiAgICAgICAgLnAtd2l6YXJkLW5hdi1uZXh0IHtcbiAgICAgICAgICAgIG1hcmdpbi1pbmxpbmUtc3RhcnQ6IGF1dG87XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAucC13aXphcmQtYmFjay1pY29uIHtcbiAgICAgICAgLS1faWNvbjogdmFyKC0tcC13aXphcmQtYmFjay1pY29uKTtcbiAgICB9XG5cbiAgICAucC13aXphcmQtbmV4dC1pY29uIHtcbiAgICAgICAgLS1faWNvbjogdmFyKC0tcC13aXphcmQtbmV4dC1pY29uKTtcbiAgICB9XG5cbiAgICAvKiBSVEw6IHRoZSBiYWNrIGJ1dHRvbiBpcyBhdCB0aGUgcmlnaHQsIHRoZSBuZXh0IGJ1dHRvbiBhdCB0aGUgbGVmdCAqL1xuICAgIC5wLXdpemFyZC1iYWNrLWljb246ZGlyKHJ0bCksXG4gICAgLnAtd2l6YXJkLW5leHQtaWNvbjpkaXIocnRsKSB7XG4gICAgICAgIHNjYWxlOiAtMSAxO1xuICAgIH1cbn1cbiIsICIvKlxuICogSGlkZGVuOiBwLWhpZGRlbiAoc2V0IGJ5IHRoZSBjb21wb25lbnRzIG9uIGVsZW1lbnRzIHRoZXkgc2hvdyBsYXRlciwgZS5nLiB3aXRoIGZhZGVJbigpKSBhbmRcbiAqIHAtb3ZlcmxheS1oaWRkZW4gKG92ZXJsYXlzIHRoYXQgYXJlIHJlbmRlcmVkIGJ1dCBub3Qgc2hvd24geWV0LCBlLmcuIG1lYXN1cmVkIG9yIGxvYWRlZCBieSB0aGUgZGlhbG9nIGZyYW1ld29yaykuXG4gKiBJbiB0aGUgYmVoYXZpb3JzIGxheWVyLCBzbyB0aGV5IGJlYXQgZXZlcnkgZGlzcGxheSAvIHZpc2liaWxpdHkgb2YgdGhlIGNvbXBvbmVudCBDU1MgcmVnYXJkbGVzcyBvZiBzcGVjaWZpY2l0eVxuICogKHdpdGhvdXQgIWltcG9ydGFudCwgc28gYXBwbGljYXRpb24gQ1NTIHN0aWxsIHdpbnMpOyBpbmxpbmUgc3R5bGVzIG9mIGpRdWVyeSBzaG93KCkgLyBmYWRlSW4oKSB3aW4gYXMgd2VsbC5cbiAqL1xuLnAtaGlkZGVuIHtcbiAgICBkaXNwbGF5OiBub25lO1xufVxuXG4vKiBhbHNvIGV2ZXJ5IGNoaWxkIHRoYXQgc2V0cyBhIHZpc2liaWxpdHkgb2YgaXRzIG93biAqL1xuLnAtb3ZlcmxheS1oaWRkZW4ge1xuICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcblxuICAgICoge1xuICAgICAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgfVxufVxuIiwgIi8qXG4gKiBEcmFnIGFuZCBkcm9wOiBwOmRyYWdnYWJsZSwgcDpkcm9wcGFibGU7IHRvdWNoLWFjdGlvbiBjb21lcyBmcm9tIGJhc2UvaW50ZXJhY3Rpb25zLmNzcy5cbiAqIENsYXNzZXMgc2V0IGJ5IHRoZSBpbnRlcmFjdGlvbnM6IHAtZHJhZ2dhYmxlLCBwLWRyYWdnYWJsZS1oYW5kbGUsIHAtZHJhZ2dhYmxlLWRyYWdnaW5nIChlbGVtZW50IG9yIGhlbHBlciB3aGlsZSBkcmFnZ2luZyksXG4gKiBwLWRyb3BwYWJsZSwgcC1kcm9wcGFibGUtYWN0aXZlIChhbiBhY2NlcHRhYmxlIGRyYWdnYWJsZSBpcyBkcmFnZ2VkKSwgcC1kcm9wcGFibGUtaG92ZXIgKGl0IGlzIG92ZXIgdGhlIGRyb3BwYWJsZSkuXG4gKiBhY3RpdmVTdHlsZUNsYXNzIC8gaG92ZXJTdHlsZUNsYXNzIG9mIHA6ZHJvcHBhYmxlIGFyZSBhZGRlZCBvbiB0b3AgKGUuZy4gcC1zdGF0ZS1oaWdobGlnaHQpLlxuICogUHJpbWVGYWNlcyBvbmx5IHRva2VuczogdGhlIGRyYWdkcm9wIGJsb2NrIG9mIHByZXNldHMvKi5jc3MuXG4gKi9cbi5wLWRyYWdnYWJsZS1kcmFnZ2luZyB7XG4gICAgYm94LXNoYWRvdzogdmFyKC0tcC1kcmFnZHJvcC1kcmFnZ2luZy1zaGFkb3cpO1xufVxuXG4ucC1kcm9wcGFibGUge1xuICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgdmFyKC0tcC1kcmFnZHJvcC10cmFuc2l0aW9uLWR1cmF0aW9uKSwgb3V0bGluZS1jb2xvciB2YXIoLS1wLWRyYWdkcm9wLXRyYW5zaXRpb24tZHVyYXRpb24pO1xufVxuXG4ucC1kcm9wcGFibGUtYWN0aXZlIHtcbiAgICBvdXRsaW5lOiB2YXIoLS1wLWRyYWdkcm9wLWRyb3BwYWJsZS1hY3RpdmUtb3V0bGluZS13aWR0aCkgZGFzaGVkIHZhcigtLXAtZHJhZ2Ryb3AtZHJvcHBhYmxlLWFjdGl2ZS1vdXRsaW5lLWNvbG9yKTtcbiAgICBvdXRsaW5lLW9mZnNldDogdmFyKC0tcC1kcmFnZHJvcC1kcm9wcGFibGUtYWN0aXZlLW91dGxpbmUtb2Zmc2V0KTtcbn1cblxuLnAtZHJvcHBhYmxlLWhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1wLWRyYWdkcm9wLWRyb3BwYWJsZS1ob3Zlci1iYWNrZ3JvdW5kKTtcbiAgICBjb2xvcjogdmFyKC0tcC1kcmFnZHJvcC1kcm9wcGFibGUtaG92ZXItY29sb3IpO1xufVxuIiwgIi8qXG4gKiBSZXNpemFibGU6IHA6cmVzaXphYmxlOyBoYW5kbGUgc3RydWN0dXJlIChzaXplLCBjdXJzb3IpIGNvbWVzIGZyb20gYmFzZS9pbnRlcmFjdGlvbnMuY3NzLlxuICogSGFuZGxlczogZGl2LnAtcmVzaXphYmxlLWhhbmRsZS5wLXJlc2l6YWJsZS0obnxzfGV8d3xuZXxud3xzZXxzdyksIHRoZSBzZSBoYW5kbGUgc2hvd3MgdGhlIGdyaXAuXG4gKiBIZWxwZXJzOiBwLXJlc2l6YWJsZS1naG9zdCAoZ2hvc3Q9XCJ0cnVlXCIpLCBkaXYucC1yZXNpemFibGUtcHJveHkgKGFuaW1hdGU9XCJ0cnVlXCIpLlxuICogUHJpbWVGYWNlcyBvbmx5IHRva2VuczogdGhlIHJlc2l6YWJsZSBibG9jayBvZiBwcmVzZXRzLyouY3NzLlxuICovXG5cbi8qIGRpYWdvbmFsIGdyaXAgZHJhd24gd2l0aCBncmFkaWVudHMsIGluc2lkZSB0aGUgKHJvdW5kZWQpIGNvcm5lcjsgdGhlIGVkZ2UgaGFuZGxlcyBzdGF5IG91dHNpZGUgdG8gd2lkZW4gdGhlIGhpdCBhcmVhICovXG4ucC1yZXNpemFibGUtc2Uge1xuICAgIHJpZ2h0OiB2YXIoLS1wLXJlc2l6YWJsZS1oYW5kbGUtaW5zZXQpO1xuICAgIGJvdHRvbTogdmFyKC0tcC1yZXNpemFibGUtaGFuZGxlLWluc2V0KTtcbiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLFxuICAgICAgICB0cmFuc3BhcmVudCAwIDU1JSwgdmFyKC0tcC1yZXNpemFibGUtaGFuZGxlLWNvbG9yKSA1NSUgNjMlLFxuICAgICAgICB0cmFuc3BhcmVudCA2MyUgNzUlLCB2YXIoLS1wLXJlc2l6YWJsZS1oYW5kbGUtY29sb3IpIDc1JSA4MyUsXG4gICAgICAgIHRyYW5zcGFyZW50IDgzJSk7XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZyxcbiAgICAgICAgICAgIHRyYW5zcGFyZW50IDAgNTUlLCB2YXIoLS1wLXJlc2l6YWJsZS1oYW5kbGUtaG92ZXItY29sb3IpIDU1JSA2MyUsXG4gICAgICAgICAgICB0cmFuc3BhcmVudCA2MyUgNzUlLCB2YXIoLS1wLXJlc2l6YWJsZS1oYW5kbGUtaG92ZXItY29sb3IpIDc1JSA4MyUsXG4gICAgICAgICAgICB0cmFuc3BhcmVudCA4MyUpO1xuICAgIH1cbn1cblxuLnAtcmVzaXphYmxlLWdob3N0IHtcbiAgICBvcGFjaXR5OiB2YXIoLS1wLXJlc2l6YWJsZS1naG9zdC1vcGFjaXR5KTtcbn1cblxuLnAtcmVzaXphYmxlLXByb3h5LFxuLnAtcmVzaXphYmxlLWhlbHBlciB7XG4gICAgYm9yZGVyOiAxcHggZGFzaGVkIHZhcigtLXAtcmVzaXphYmxlLWhlbHBlci1ib3JkZXItY29sb3IpO1xuICAgIGJhY2tncm91bmQ6IHZhcigtLXAtcmVzaXphYmxlLWhlbHBlci1iYWNrZ3JvdW5kKTtcbiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1wLXJlc2l6YWJsZS1oZWxwZXItYm9yZGVyLXJhZGl1cyk7XG59XG4iLCAiLypcbiAqIFN0aWNreTogcDpzdGlja3lcbiAqIFRoZSBjb21wb25lbnQgc2V0cyBwb3NpdGlvbiBmaXhlZCArIHRvcC93aWR0aC96LWluZGV4IGlubGluZSBhbmQgYWRkcyBwLXN0aWNreSB0byB0aGUgdGFyZ2V0IHdoaWxlIHBpbm5lZDtcbiAqIGRpdi5wLXN0aWNreS1naG9zdCBrZWVwcyB0aGUgb3JpZ2luYWwgc3BhY2UgaW4gdGhlIGZsb3cuXG4gKiBQcmltZUZhY2VzIG9ubHkgdG9rZW5zOiB0aGUgc3RpY2t5IGJsb2NrIG9mIHByZXNldHMvKi5jc3MuXG4gKi9cbi5wLXN0aWNreSB7XG4gICAgYm94LXNoYWRvdzogdmFyKC0tcC1zdGlja3ktc2hhZG93KTtcbn1cblxuLnAtc3RpY2t5LWdob3N0IHtcbiAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG59XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7QUF5REE7QUFDSTtBQUNJLG9CQUFnQjtBQUNoQixvQkFBZ0I7QUFDaEIsb0JBQWdCO0FBQ2hCLDRCQUF3QjtBQUN4QixtQkFBZTtBQUNmLG9CQUFnQjtBQUNoQix3QkFBb0I7QUFDcEIsdUJBQW1CO0FBQ25CLHVCQUFtQjtBQUNuQixpQkFBYTtBQUNiLG1CQUFlO0FBQ2YsbUJBQWU7QUFDZixtQkFBZTtBQUNmLG9CQUFnQjtBQUNoQixtQkFBZTtBQUNmLGtCQUFjO0FBQ2QscUJBQWlCO0FBQ2pCLHVCQUFtQjtBQUNuQix5QkFBcUI7QUFDckIseUJBQXFCO0FBQ3JCLDBCQUFzQjtBQUN0QixtQkFBZTtBQUNmLHVCQUFtQjtBQUNuQix3QkFBb0I7QUFDcEIscUJBQWlCO0FBQ2pCLG1CQUFlO0FBQ2Ysb0JBQWdCO0FBQ2hCLG1CQUFlO0FBQ2YscUJBQWlCO0FBQ2pCLG1CQUFlO0FBQ2YsbUJBQWU7QUFDZixzQkFBa0I7QUFDbEIsbUJBQWU7QUFDZix1QkFBbUI7QUFD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 */
