/* This file is part of Totara Enterprise Extensions.*/
/**/
/* Copyright (C) 2020 onwards Totara Learning Solutions LTD*/
/**/
/* Totara Enterprise Extensions is provided only to Totara*/
/* Learning Solutions LTD's customers and partners, pursuant to*/
/* the terms and conditions of a separate agreement with Totara*/
/* Learning Solutions LTD or its affiliate.*/
/**/
/* If you do not have an agreement with Totara Learning Solutions*/
/* LTD, you may not access, use, modify, or distribute this software.*/
/* Please contact [licensing@totaralearning.com] for more information.*/
/**/
/* @author    Kevin Hottinger <kevin.hottinger@totaralearning.com>*/
/* @module tuickage   tui*/
/* Import all common theme variables*/
/* This file is part of Totara Enterprise Extensions.*/
/**/
/* Copyright (C) 2020 onwards Totara Learning Solutions LTD*/
/**/
/* Totara Enterprise Extensions is provided only to Totara*/
/* Learning Solutions LTD's customers and partners, pursuant to*/
/* the terms and conditions of a separate agreement with Totara*/
/* Learning Solutions LTD or its affiliate.*/
/**/
/* If you do not have an agreement with Totara Learning Solutions*/
/* LTD, you may not access, use, modify, or distribute this software.*/
/* Please contact [licensing@totaralearning.com] for more information.*/
/**/
/* @author    Kevin Hottinger <kevin.hottinger@totaralearning.com>*/
/* @module tuickage   tui*/
/* This file is part of Totara Enterprise Extensions.*/
/**/
/* Copyright (C) 2020 onwards Totara Learning Solutions LTD*/
/**/
/* Totara Enterprise Extensions is provided only to Totara*/
/* Learning Solutions LTD's customers and partners, pursuant to*/
/* the terms and conditions of a separate agreement with Totara*/
/* Learning Solutions LTD or its affiliate.*/
/**/
/* If you do not have an agreement with Totara Learning Solutions*/
/* LTD, you may not access, use, modify, or distribute this software.*/
/* Please contact [licensing@totaralearning.com] for more information.*/
/**/
/* @author    Kevin Hottinger <kevin.hottinger@totaralearning.com>*/
/* @module tuickage   tui*/
/* Outside-in spacing: Stack*/
/* Stacks provide spacing between their children.*/
/* This file is part of Totara Enterprise Extensions.*/
/**/
/* Copyright (C) 2020 onwards Totara Learning Solutions LTD*/
/**/
/* Totara Enterprise Extensions is provided only to Totara*/
/* Learning Solutions LTD's customers and partners, pursuant to*/
/* the terms and conditions of a separate agreement with Totara*/
/* Learning Solutions LTD or its affiliate.*/
/**/
/* If you do not have an agreement with Totara Learning Solutions*/
/* LTD, you may not access, use, modify, or distribute this software.*/
/* Please contact [licensing@totaralearning.com] for more information.*/
/**/
/* @author    Dave Wallace <dave.wallace@totaralearning.com>*/
/* @module tuickage   tui*/
/* This file is part of Totara Enterprise Extensions.*/
/**/
/* Copyright (C) 2020 onwards Totara Learning Solutions LTD*/
/**/
/* Totara Enterprise Extensions is provided only to Totara*/
/* Learning Solutions LTD's customers and partners, pursuant to*/
/* the terms and conditions of a separate agreement with Totara*/
/* Learning Solutions LTD or its affiliate.*/
/**/
/* If you do not have an agreement with Totara Learning Solutions*/
/* LTD, you may not access, use, modify, or distribute this software.*/
/* Please contact [licensing@totaralearning.com] for more information.*/
/**/
/* @author    Kevin Hottinger <kevin.hottinger@totaralearning.com>*/
/* @module tuickage   tui*/
/* This file is part of Totara Enterprise Extensions.*/
/**/
/* Copyright (C) 2020 onwards Totara Learning Solutions LTD*/
/**/
/* Totara Enterprise Extensions is provided only to Totara*/
/* Learning Solutions LTD's customers and partners, pursuant to*/
/* the terms and conditions of a separate agreement with Totara*/
/* Learning Solutions LTD or its affiliate.*/
/**/
/* If you do not have an agreement with Totara Learning Solutions*/
/* LTD, you may not access, use, modify, or distribute this software.*/
/* Please contact [licensing@totaralearning.com] for more information.*/
/**/
/* @author    Kevin Hottinger <kevin.hottinger@totaralearning.com>*/
/* @module tuickage   tui*/
/* Arrows*/
/* This file is part of Totara Enterprise Extensions.*/
/**/
/* Copyright (C) 2020 onwards Totara Learning Solutions LTD*/
/**/
/* Totara Enterprise Extensions is provided only to Totara*/
/* Learning Solutions LTD's customers and partners, pursuant to*/
/* the terms and conditions of a separate agreement with Totara*/
/* Learning Solutions LTD or its affiliate.*/
/**/
/* If you do not have an agreement with Totara Learning Solutions*/
/* LTD, you may not access, use, modify, or distribute this software.*/
/* Please contact [licensing@totaralearning.com] for more information.*/
/**/
/* @author    Kevin Hottinger <kevin.hottinger@totaralearning.com>*/
/* @module tuickage   tui*/
/* Forms*/
/* This file is part of Totara Enterprise Extensions.*/
/**/
/* Copyright (C) 2020 onwards Totara Learning Solutions LTD*/
/**/
/* Totara Enterprise Extensions is provided only to Totara*/
/* Learning Solutions LTD's customers and partners, pursuant to*/
/* the terms and conditions of a separate agreement with Totara*/
/* Learning Solutions LTD or its affiliate.*/
/**/
/* If you do not have an agreement with Totara Learning Solutions*/
/* LTD, you may not access, use, modify, or distribute this software.*/
/* Please contact [licensing@totaralearning.com] for more information.*/
/**/
/* @author    Kevin Hottinger <kevin.hottinger@totaralearning.com>*/
/* @module tuickage   tui*/
/* Avatar*/
/* This file is part of Totara Enterprise Extensions.*/
/**/
/* Copyright (C) 2020 onwards Totara Learning Solutions LTD*/
/**/
/* Totara Enterprise Extensions is provided only to Totara*/
/* Learning Solutions LTD's customers and partners, pursuant to*/
/* the terms and conditions of a separate agreement with Totara*/
/* Learning Solutions LTD or its affiliate.*/
/**/
/* If you do not have an agreement with Totara Learning Solutions*/
/* LTD, you may not access, use, modify, or distribute this software.*/
/* Please contact [licensing@totaralearning.com] for more information.*/
/**/
/* @author    Kevin Hottinger <kevin.hottinger@totaralearning.com>*/
/* @module tuickage   tui*/
/* Drop down*/
/* This file is part of Totara Enterprise Extensions.*/
/**/
/* Copyright (C) 2020 onwards Totara Learning Solutions LTD*/
/**/
/* Totara Enterprise Extensions is provided only to Totara*/
/* Learning Solutions LTD's customers and partners, pursuant to*/
/* the terms and conditions of a separate agreement with Totara*/
/* Learning Solutions LTD or its affiliate.*/
/**/
/* If you do not have an agreement with Totara Learning Solutions*/
/* LTD, you may not access, use, modify, or distribute this software.*/
/* Please contact [licensing@totaralearning.com] for more information.*/
/**/
/* @author    Kevin Hottinger <kevin.hottinger@totaralearning.com>*/
/* @module tuickage   tui*/
/* Data table*/
/* This file is part of Totara Enterprise Extensions.*/
/**/
/* Copyright (C) 2020 onwards Totara Learning Solutions LTD*/
/**/
/* Totara Enterprise Extensions is provided only to Totara*/
/* Learning Solutions LTD's customers and partners, pursuant to*/
/* the terms and conditions of a separate agreement with Totara*/
/* Learning Solutions LTD or its affiliate.*/
/**/
/* If you do not have an agreement with Totara Learning Solutions*/
/* LTD, you may not access, use, modify, or distribute this software.*/
/* Please contact [licensing@totaralearning.com] for more information.*/
/**/
/* @author    Kevin Hottinger <kevin.hottinger@totaralearning.com>*/
/* @module tuickage   tui*/
/* Tabs*/
/* This file is part of Totara Enterprise Extensions.*/
/**/
/* Copyright (C) 2020 onwards Totara Learning Solutions LTD*/
/**/
/* Totara Enterprise Extensions is provided only to Totara*/
/* Learning Solutions LTD's customers and partners, pursuant to*/
/* the terms and conditions of a separate agreement with Totara*/
/* Learning Solutions LTD or its affiliate.*/
/**/
/* If you do not have an agreement with Totara Learning Solutions*/
/* LTD, you may not access, use, modify, or distribute this software.*/
/* Please contact [licensing@totaralearning.com] for more information.*/
/**/
/* @author    Kevin Hottinger <kevin.hottinger@totaralearning.com>*/
/* @module tuickage   tui*/
/* Card*/
/* This file is part of Totara Enterprise Extensions.*/
/**/
/* Copyright (C) 2020 onwards Totara Learning Solutions LTD*/
/**/
/* Totara Enterprise Extensions is provided only to Totara*/
/* Learning Solutions LTD's customers and partners, pursuant to*/
/* the terms and conditions of a separate agreement with Totara*/
/* Learning Solutions LTD or its affiliate.*/
/**/
/* If you do not have an agreement with Totara Learning Solutions*/
/* LTD, you may not access, use, modify, or distribute this software.*/
/* Please contact [licensing@totaralearning.com] for more information.*/
/**/
/* @author    Kevin Hottinger <kevin.hottinger@totaralearning.com>*/
/* @module tuickage   tui*/
/* Charts*/
/* This file is part of Totara Enterprise Extensions.*/
/**/
/* Copyright (C) 2020 onwards Totara Learning Solutions LTD*/
/**/
/* Totara Enterprise Extensions is provided only to Totara*/
/* Learning Solutions LTD's customers and partners, pursuant to*/
/* the terms and conditions of a separate agreement with Totara*/
/* Learning Solutions LTD or its affiliate.*/
/**/
/* If you do not have an agreement with Totara Learning Solutions*/
/* LTD, you may not access, use, modify, or distribute this software.*/
/* Please contact [licensing@totaralearning.com] for more information.*/
/**/
/* @author    Kevin Hottinger <kevin.hottinger@totaralearning.com>*/
/* @module tuickage   tui*/
/* Filters*/
/* This file is part of Totara Enterprise Extensions.*/
/**/
/* Copyright (C) 2020 onwards Totara Learning Solutions LTD*/
/**/
/* Totara Enterprise Extensions is provided only to Totara*/
/* Learning Solutions LTD's customers and partners, pursuant to*/
/* the terms and conditions of a separate agreement with Totara*/
/* Learning Solutions LTD or its affiliate.*/
/**/
/* If you do not have an agreement with Totara Learning Solutions*/
/* LTD, you may not access, use, modify, or distribute this software.*/
/* Please contact [licensing@totaralearning.com] for more information.*/
/**/
/* @author    Kevin Hottinger <kevin.hottinger@totaralearning.com>*/
/* @module tuickage   tui*/
/* Tags*/
/* This file is part of Totara Enterprise Extensions.*/
/**/
/* Copyright (C) 2020 onwards Totara Learning Solutions LTD*/
/**/
/* Totara Enterprise Extensions is provided only to Totara*/
/* Learning Solutions LTD's customers and partners, pursuant to*/
/* the terms and conditions of a separate agreement with Totara*/
/* Learning Solutions LTD or its affiliate.*/
/**/
/* If you do not have an agreement with Totara Learning Solutions*/
/* LTD, you may not access, use, modify, or distribute this software.*/
/* Please contact [licensing@totaralearning.com] for more information.*/
/**/
/* @author    Kevin Hottinger <kevin.hottinger@totaralearning.com>*/
/* @module tuickage   tui*/
/* Tags*/
/* This file is part of Totara Enterprise Extensions.*/
/**/
/* Copyright (C) 2020 onwards Totara Learning Solutions LTD*/
/**/
/* Totara Enterprise Extensions is provided only to Totara*/
/* Learning Solutions LTD's customers and partners, pursuant to*/
/* the terms and conditions of a separate agreement with Totara*/
/* Learning Solutions LTD or its affiliate.*/
/**/
/* If you do not have an agreement with Totara Learning Solutions*/
/* LTD, you may not access, use, modify, or distribute this software.*/
/* Please contact [licensing@totaralearning.com] for more information.*/
/**/
/* @author    Kevin Hottinger <kevin.hottinger@totaralearning.com>*/
/* @module tuickage   tui*/
/* collapsible*/
/* This file is part of Totara Enterprise Extensions.*/
/**/
/* Copyright (C) 2020 onwards Totara Learning Solutions LTD*/
/**/
/* Totara Enterprise Extensions is provided only to Totara*/
/* Learning Solutions LTD's customers and partners, pursuant to*/
/* the terms and conditions of a separate agreement with Totara*/
/* Learning Solutions LTD or its affiliate.*/
/**/
/* If you do not have an agreement with Totara Learning Solutions*/
/* LTD, you may not access, use, modify, or distribute this software.*/
/* Please contact [licensing@totaralearning.com] for more information.*/
/**/
/* @author    Kevin Hottinger <kevin.hottinger@totaralearning.com>*/
/* @module tuickage   tui*/
/* progress tracker*/
/* This file is part of Totara Enterprise Extensions.*/
/**/
/* Copyright (C) 2020 onwards Totara Learning Solutions LTD*/
/**/
/* Totara Enterprise Extensions is provided only to Totara*/
/* Learning Solutions LTD's customers and partners, pursuant to*/
/* the terms and conditions of a separate agreement with Totara*/
/* Learning Solutions LTD or its affiliate.*/
/**/
/* If you do not have an agreement with Totara Learning Solutions*/
/* LTD, you may not access, use, modify, or distribute this software.*/
/* Please contact [licensing@totaralearning.com] for more information.*/
/**/
/* @author    Kevin Hottinger <kevin.hottinger@totaralearning.com>*/
/* @module tuickage   tui*/
/* Side panel navigation*/
/* This file is part of Totara Enterprise Extensions.*/
/**/
/* Copyright (C) 2020 onwards Totara Learning Solutions LTD*/
/**/
/* Totara Enterprise Extensions is provided only to Totara*/
/* Learning Solutions LTD's customers and partners, pursuant to*/
/* the terms and conditions of a separate agreement with Totara*/
/* Learning Solutions LTD or its affiliate.*/
/**/
/* If you do not have an agreement with Totara Learning Solutions*/
/* LTD, you may not access, use, modify, or distribute this software.*/
/* Please contact [licensing@totaralearning.com] for more information.*/
/**/
/* @author    Kevin Hottinger <kevin.hottinger@totaralearning.com>*/
/* @module tuickage   tui*/
/* Toggle buttons*/
/* This file is part of Totara Enterprise Extensions.*/
/**/
/* Copyright (C) 2020 onwards Totara Learning Solutions LTD*/
/**/
/* Totara Enterprise Extensions is provided only to Totara*/
/* Learning Solutions LTD's customers and partners, pursuant to*/
/* the terms and conditions of a separate agreement with Totara*/
/* Learning Solutions LTD or its affiliate.*/
/**/
/* If you do not have an agreement with Totara Learning Solutions*/
/* LTD, you may not access, use, modify, or distribute this software.*/
/* Please contact [licensing@totaralearning.com] for more information.*/
/**/
/* @author    Kevin Hottinger <kevin.hottinger@totaralearning.com>*/
/* @module tuickage   tui*/
/* Notification toast*/
/* This file is part of Totara Enterprise Extensions.*/
/**/
/* Copyright (C) 2020 onwards Totara Learning Solutions LTD*/
/**/
/* Totara Enterprise Extensions is provided only to Totara*/
/* Learning Solutions LTD's customers and partners, pursuant to*/
/* the terms and conditions of a separate agreement with Totara*/
/* Learning Solutions LTD or its affiliate.*/
/**/
/* If you do not have an agreement with Totara Learning Solutions*/
/* LTD, you may not access, use, modify, or distribute this software.*/
/* Please contact [licensing@totaralearning.com] for more information.*/
/**/
/* @author    Kevin Hottinger <kevin.hottinger@totaralearning.com>*/
/* @module tuickage   tui*/
/* This file is part of Totara Enterprise Extensions.*/
/**/
/* Copyright (C) 2020 onwards Totara Learning Solutions LTD*/
/**/
/* Totara Enterprise Extensions is provided only to Totara*/
/* Learning Solutions LTD's customers and partners, pursuant to*/
/* the terms and conditions of a separate agreement with Totara*/
/* Learning Solutions LTD or its affiliate.*/
/**/
/* If you do not have an agreement with Totara Learning Solutions*/
/* LTD, you may not access, use, modify, or distribute this software.*/
/* Please contact [licensing@totaralearning.com] for more information.*/
/**/
/* @author    Kevin Hottinger <kevin.hottinger@totaralearning.com>*/
/* @module tuickage   tui*/
/* This file is part of Totara Enterprise Extensions.*/
/**/
/* Copyright (C) 2020 onwards Totara Learning Solutions LTD*/
/**/
/* Totara Enterprise Extensions is provided only to Totara*/
/* Learning Solutions LTD's customers and partners, pursuant to*/
/* the terms and conditions of a separate agreement with Totara*/
/* Learning Solutions LTD or its affiliate.*/
/**/
/* If you do not have an agreement with Totara Learning Solutions*/
/* LTD, you may not access, use, modify, or distribute this software.*/
/* Please contact [licensing@totaralearning.com] for more information.*/
/**/
/* @author    Kevin Hottinger <kevin.hottinger@totaralearning.com>*/
/* @module tuickage   tui*/
/* This file is part of Totara Enterprise Extensions.*/
/**/
/* Copyright (C) 2021 onwards Totara Learning Solutions LTD*/
/**/
/* Totara Enterprise Extensions is provided only to Totara*/
/* Learning Solutions LTD's customers and partners, pursuant to*/
/* the terms and conditions of a separate agreement with Totara*/
/* Learning Solutions LTD or its affiliate.*/
/**/
/* If you do not have an agreement with Totara Learning Solutions*/
/* LTD, you may not access, use, modify, or distribute this software.*/
/* Please contact [licensing@totaralearning.com] for more information.*/
/**/
/* @author    Dave Wallace <dave.wallace@totaralearning.com>*/
/* @module tuickage   tui*/
/* This file is part of Totara Enterprise Extensions.*/
/**/
/* Copyright (C) 2022 onwards Totara Learning Solutions LTD*/
/**/
/* Totara Enterprise Extensions is provided only to Totara*/
/* Learning Solutions LTD's customers and partners, pursuant to*/
/* the terms and conditions of a separate agreement with Totara*/
/* Learning Solutions LTD or its affiliate.*/
/**/
/* If you do not have an agreement with Totara Learning Solutions*/
/* LTD, you may not access, use, modify, or distribute this software.*/
/* Please contact [licensing@totaralearning.com] for more information.*/
/**/
/* @author    Rodney Cruden-Powell <rodney.cruden-powell@totaralearning.com>*/
/* @module tuickage   tui*/
/* This file is part of Totara Enterprise Extensions.*/
/**/
/* Copyright (C) 2020 onwards Totara Learning Solutions LTD*/
/**/
/* Totara Enterprise Extensions is provided only to Totara*/
/* Learning Solutions LTD's customers and partners, pursuant to*/
/* the terms and conditions of a separate agreement with Totara*/
/* Learning Solutions LTD or its affiliate.*/
/**/
/* If you do not have an agreement with Totara Learning Solutions*/
/* LTD, you may not access, use, modify, or distribute this software.*/
/* Please contact [licensing@totaralearning.com] for more information.*/
/**/
/* @author    Simon Chester <simon.chester@totaralearning.com>*/
/* @module tuickage   tui*/
/* Sidebar layout that is responsive based on the size of its container, rather*/
/* than the viewport.*/
/* This file is part of Totara Enterprise Extensions.*/
/**/
/* Copyright (C) 2020 onwards Totara Learning Solutions LTD*/
/**/
/* Totara Enterprise Extensions is provided only to Totara*/
/* Learning Solutions LTD's customers and partners, pursuant to*/
/* the terms and conditions of a separate agreement with Totara*/
/* Learning Solutions LTD or its affiliate.*/
/**/
/* If you do not have an agreement with Totara Learning Solutions*/
/* LTD, you may not access, use, modify, or distribute this software.*/
/* Please contact [licensing@totaralearning.com] for more information.*/
/**/
/* @author    Kevin Hottinger <kevin.hottinger@totaralearning.com>*/
/* @module tuickage   tui*/
/* Media queries breakpoints*/
/* Matches @screen-sm-min*/
/* Matches @screen-md-min*/
/* Matches @screen-lg-min*/
/* This file is part of Totara Enterprise Extensions.*/
/**/
/* Copyright (C) 2020 onwards Totara Learning Solutions LTD*/
/**/
/* Totara Enterprise Extensions is provided only to Totara*/
/* Learning Solutions LTD's customers and partners, pursuant to*/
/* the terms and conditions of a separate agreement with Totara*/
/* Learning Solutions LTD or its affiliate.*/
/**/
/* If you do not have an agreement with Totara Learning Solutions*/
/* LTD, you may not access, use, modify, or distribute this software.*/
/* Please contact [licensing@totaralearning.com] for more information.*/
/**/
/* @author    Simon Chester <simon.chester@totaralearning.com>*/
/* @module tuickage   tui*/
/* This file is part of Totara Enterprise Extensions.*/
/**/
/* Copyright (C) 2020 onwards Totara Learning Solutions LTD*/
/**/
/* Totara Enterprise Extensions is provided only to Totara*/
/* Learning Solutions LTD's customers and partners, pursuant to*/
/* the terms and conditions of a separate agreement with Totara*/
/* Learning Solutions LTD or its affiliate.*/
/**/
/* If you do not have an agreement with Totara Learning Solutions*/
/* LTD, you may not access, use, modify, or distribute this software.*/
/* Please contact [licensing@totaralearning.com] for more information.*/
/**/
/* @author    Simon Chester <simon.chester@totaralearning.com>*/
/* @module tuickage   tui*/
/**
 * For adding a fixed sized header image to a card, including optional margin on the outer edges.
 */
/* This file is part of Totara Enterprise Extensions.*/
/**/
/* Copyright (C) 2020 onwards Totara Learning Solutions LTD*/
/**/
/* Totara Enterprise Extensions is provided only to Totara*/
/* Learning Solutions LTD's customers and partners, pursuant to*/
/* the terms and conditions of a separate agreement with Totara*/
/* Learning Solutions LTD or its affiliate.*/
/**/
/* If you do not have an agreement with Totara Learning Solutions*/
/* LTD, you may not access, use, modify, or distribute this software.*/
/* Please contact [licensing@totaralearning.com] for more information.*/
/**/
/* @author    Kevin Hottinger <kevin.hottinger@totaralearning.com>*/
/* @module tuickage   tui*/
/* This file is part of Totara Enterprise Extensions.*/
/**/
/* Copyright (C) 2021 onwards Totara Learning Solutions LTD*/
/**/
/* Totara Enterprise Extensions is provided only to Totara*/
/* Learning Solutions LTD's customers and partners, pursuant to*/
/* the terms and conditions of a separate agreement with Totara*/
/* Learning Solutions LTD or its affiliate.*/
/**/
/* If you do not have an agreement with Totara Learning Solutions*/
/* LTD, you may not access, use, modify, or distribute this software.*/
/* Please contact [licensing@totaralearning.com] for more information.*/
/**/
/* @author    Simon Chester <simon.chester@totaralearning.com>*/
/* @module tuickage   tui*/
/* This file is part of Totara Enterprise Extensions.*/
/**/
/* Copyright (C) 2022 onwards Totara Learning Solutions LTD*/
/**/
/* Totara Enterprise Extensions is provided only to Totara*/
/* Learning Solutions LTD's customers and partners, pursuant to*/
/* the terms and conditions of a separate agreement with Totara*/
/* Learning Solutions LTD or its affiliate.*/
/**/
/* If you do not have an agreement with Totara Learning Solutions*/
/* LTD, you may not access, use, modify, or distribute this software.*/
/* Please contact [licensing@totaralearning.com] for more information.*/
/**/
/* @author    Simon Chester <simon.chester@totaralearning.com>*/
/* @module    tui*/
/* Pick a width % value between small_frac and large_frac equivalent to where*/
/* our available width lies between small_anchor and large_anchor, clamped to*/
/* stay in that range.*/
/* This is overly complicated due to limitations of CSS / calc, but is equivalent to*/
/* width = available_width * lerp(small_frac, large_frac, clamp01(inverse_lerp(small_anchor, large_anchor, available_width)))*/
/* @private INTERNAL FUNCTION, DO NOT USE*/
/* This file is part of Totara Enterprise Extensions.*/
/**/
/* Copyright (C) 2020 onwards Totara Learning Solutions LTD*/
/**/
/* Totara Enterprise Extensions is provided only to Totara*/
/* Learning Solutions LTD's customers and partners, pursuant to*/
/* the terms and conditions of a separate agreement with Totara*/
/* Learning Solutions LTD or its affiliate.*/
/**/
/* If you do not have an agreement with Totara Learning Solutions*/
/* LTD, you may not access, use, modify, or distribute this software.*/
/* Please contact [licensing@totaralearning.com] for more information.*/
/**/
/* @author    Kevin Hottinger <kevin.hottinger@totaralearning.com>*/
/* @module tuickage   tui*/
/* This contains the common variable set for form elements,*/
/* allowing form elements to be consistently styled.*/
/* loosely based on a modular scale of (2 * (1.5 ^ n))*/
/* Selectors for form inputs (and similar elements) that should have sizes applied to them.*/
/* If modifying this list in a theme, do it via append() rather than replacing*/
/* the entire list.*/
/* Selectors for inputs that are *replaced elements*.*/
/* The behavior of width: auto differs for replaced elements, so these are set*/
/* to width: 100% to get the "grow to container" behavior.*/
/* https://developer.mozilla.org/en-US/docs/Web/CSS/Replaced_element*/
/* However, this causes an issue in certain contexts - namely if the container*/
/* has a margin. This list exists to enable workarounds using flex at the site*/
/* of use.*/
/* If modifying this list in a theme, do it via append() rather than replacing*/
/* the entire list.*/
/* Don't apply the default input size if the element is within one of these*/
/* selectors.*/
/* (if it's not within a form, it won't be applied either)*/
/* Calculate character-based sizing for inputs.*/
/* Generate sizing class for size*/
/* Default input sizing*/
/* Generate sizing classes for predefined sizes*/
/* Vertical padding of form elements.*/
/* Calculate the remaining available space to meet the target height.*/
/* Must be on a single line otherwise it breaks (for some reason!) so must be ignored by prettier.*/
/* prettier-ignore*/
/* prettier-ignore*/
/* This file is part of Totara Enterprise Extensions.*/
/**/
/* Copyright (C) 2021 onwards Totara Learning Solutions LTD*/
/**/
/* Totara Enterprise Extensions is provided only to Totara*/
/* Learning Solutions LTD's customers and partners, pursuant to*/
/* the terms and conditions of a separate agreement with Totara*/
/* Learning Solutions LTD or its affiliate.*/
/**/
/* If you do not have an agreement with Totara Learning Solutions*/
/* LTD, you may not access, use, modify, or distribute this software.*/
/* Please contact [licensing@totaralearning.com] for more information.*/
/**/
/* @author Kevin Hottinger <kevin.hottinger@totaralearning.com>*/
/* @module tui*/
/* This file is part of Totara Enterprise Extensions.*/
/**/
/* Copyright (C) 2020 onwards Totara Learning Solutions LTD*/
/**/
/* Totara Enterprise Extensions is provided only to Totara*/
/* Learning Solutions LTD's customers and partners, pursuant to*/
/* the terms and conditions of a separate agreement with Totara*/
/* Learning Solutions LTD or its affiliate.*/
/**/
/* If you do not have an agreement with Totara Learning Solutions*/
/* LTD, you may not access, use, modify, or distribute this software.*/
/* Please contact [licensing@totaralearning.com] for more information.*/
/**/
/* @author    Kevin Hottinger <kevin.hottinger@totaralearning.com>*/
/* @module tuickage   tui*/
/* This file is part of Totara Enterprise Extensions.*/
/**/
/* Copyright (C) 2020 onwards Totara Learning Solutions LTD*/
/**/
/* Totara Enterprise Extensions is provided only to Totara*/
/* Learning Solutions LTD's customers and partners, pursuant to*/
/* the terms and conditions of a separate agreement with Totara*/
/* Learning Solutions LTD or its affiliate.*/
/**/
/* If you do not have an agreement with Totara Learning Solutions*/
/* LTD, you may not access, use, modify, or distribute this software.*/
/* Please contact [licensing@totaralearning.com] for more information.*/
/**/
/* @author    Kevin Hottinger <kevin.hottinger@totaralearning.com>*/
/* @module tuickage   tui*/
/**/
/* Body text*/
/**/
/**/
/* Link text*/
/**/
/**/
/* Heading text*/
/**/
/**/
/* Text wrapping*/
/**/
/* break when the word starts on a new line and breaks where it would have*/
/* overflown, auto inserting hyphens. useful for user-generated content whose*/
/* containers are generally flexible. machine-insertion of hyphens may not be*/
/* an end user preference, but it can be more readable than without.*/
/* break all words at the end of lines, don't hyphenate. useful for predictable*/
/* parts of the UI whose containers are less flexible.*/
/* This file is part of Totara Enterprise Extensions.*/
/**/
/* Copyright (C) 2020 onwards Totara Learning Solutions LTD*/
/**/
/* Totara Enterprise Extensions is provided only to Totara*/
/* Learning Solutions LTD's customers and partners, pursuant to*/
/* the terms and conditions of a separate agreement with Totara*/
/* Learning Solutions LTD or its affiliate.*/
/**/
/* If you do not have an agreement with Totara Learning Solutions*/
/* LTD, you may not access, use, modify, or distribute this software.*/
/* Please contact [licensing@totaralearning.com] for more information.*/
/**/
/* @author    Simon Chester <simon.chester@totaralearning.com>*/
/* @module tuickage   tui*/
/* #dock is 12000, modal must be above that*/
/* This file is part of Totara Enterprise Extensions.*/
/**/
/* Copyright (C) 2020 onwards Totara Learning Solutions LTD*/
/**/
/* Totara Enterprise Extensions is provided only to Totara*/
/* Learning Solutions LTD's customers and partners, pursuant to*/
/* the terms and conditions of a separate agreement with Totara*/
/* Learning Solutions LTD or its affiliate.*/
/**/
/* If you do not have an agreement with Totara Learning Solutions*/
/* LTD, you may not access, use, modify, or distribute this software.*/
/* Please contact [licensing@totaralearning.com] for more information.*/
/**/
/* @author    Kevin Hottinger <kevin.hottinger@totaralearning.com>*/
/* @module tuickage   tui*/
/* Import all common theme variables*/
/* This file is part of Totara Enterprise Extensions.*/
/**/
/* Copyright (C) 2020 onwards Totara Learning Solutions LTD*/
/**/
/* Totara Enterprise Extensions is provided only to Totara*/
/* Learning Solutions LTD's customers and partners, pursuant to*/
/* the terms and conditions of a separate agreement with Totara*/
/* Learning Solutions LTD or its affiliate.*/
/**/
/* If you do not have an agreement with Totara Learning Solutions*/
/* LTD, you may not access, use, modify, or distribute this software.*/
/* Please contact [licensing@totaralearning.com] for more information.*/
/**/
/* @author    Kevin Hottinger <kevin.hottinger@totaralearning.com>*/
/* @module tuickage   tui*/
/* This file is part of Totara Enterprise Extensions.*/
/**/
/* Copyright (C) 2020 onwards Totara Learning Solutions LTD*/
/**/
/* Totara Enterprise Extensions is provided only to Totara*/
/* Learning Solutions LTD's customers and partners, pursuant to*/
/* the terms and conditions of a separate agreement with Totara*/
/* Learning Solutions LTD or its affiliate.*/
/**/
/* If you do not have an agreement with Totara Learning Solutions*/
/* LTD, you may not access, use, modify, or distribute this software.*/
/* Please contact [licensing@totaralearning.com] for more information.*/
/**/
/* @author    Kevin Hottinger <kevin.hottinger@totaralearning.com>*/
/* @module tuickage   tui*/
/* Outside-in spacing: Stack*/
/* Stacks provide spacing between their children.*/
/* This file is part of Totara Enterprise Extensions.*/
/**/
/* Copyright (C) 2020 onwards Totara Learning Solutions LTD*/
/**/
/* Totara Enterprise Extensions is provided only to Totara*/
/* Learning Solutions LTD's customers and partners, pursuant to*/
/* the terms and conditions of a separate agreement with Totara*/
/* Learning Solutions LTD or its affiliate.*/
/**/
/* If you do not have an agreement with Totara Learning Solutions*/
/* LTD, you may not access, use, modify, or distribute this software.*/
/* Please contact [licensing@totaralearning.com] for more information.*/
/**/
/* @author    Dave Wallace <dave.wallace@totaralearning.com>*/
/* @module tuickage   tui*/
/* This file is part of Totara Enterprise Extensions.*/
/**/
/* Copyright (C) 2020 onwards Totara Learning Solutions LTD*/
/**/
/* Totara Enterprise Extensions is provided only to Totara*/
/* Learning Solutions LTD's customers and partners, pursuant to*/
/* the terms and conditions of a separate agreement with Totara*/
/* Learning Solutions LTD or its affiliate.*/
/**/
/* If you do not have an agreement with Totara Learning Solutions*/
/* LTD, you may not access, use, modify, or distribute this software.*/
/* Please contact [licensing@totaralearning.com] for more information.*/
/**/
/* @author    Kevin Hottinger <kevin.hottinger@totaralearning.com>*/
/* @module tuickage   tui*/
/* This file is part of Totara Enterprise Extensions.*/
/**/
/* Copyright (C) 2020 onwards Totara Learning Solutions LTD*/
/**/
/* Totara Enterprise Extensions is provided only to Totara*/
/* Learning Solutions LTD's customers and partners, pursuant to*/
/* the terms and conditions of a separate agreement with Totara*/
/* Learning Solutions LTD or its affiliate.*/
/**/
/* If you do not have an agreement with Totara Learning Solutions*/
/* LTD, you may not access, use, modify, or distribute this software.*/
/* Please contact [licensing@totaralearning.com] for more information.*/
/**/
/* @author    Kevin Hottinger <kevin.hottinger@totaralearning.com>*/
/* @module tuickage   tui*/
/* Arrows*/
/* This file is part of Totara Enterprise Extensions.*/
/**/
/* Copyright (C) 2020 onwards Totara Learning Solutions LTD*/
/**/
/* Totara Enterprise Extensions is provided only to Totara*/
/* Learning Solutions LTD's customers and partners, pursuant to*/
/* the terms and conditions of a separate agreement with Totara*/
/* Learning Solutions LTD or its affiliate.*/
/**/
/* If you do not have an agreement with Totara Learning Solutions*/
/* LTD, you may not access, use, modify, or distribute this software.*/
/* Please contact [licensing@totaralearning.com] for more information.*/
/**/
/* @author    Kevin Hottinger <kevin.hottinger@totaralearning.com>*/
/* @module tuickage   tui*/
/* Forms*/
/* This file is part of Totara Enterprise Extensions.*/
/**/
/* Copyright (C) 2020 onwards Totara Learning Solutions LTD*/
/**/
/* Totara Enterprise Extensions is provided only to Totara*/
/* Learning Solutions LTD's customers and partners, pursuant to*/
/* the terms and conditions of a separate agreement with Totara*/
/* Learning Solutions LTD or its affiliate.*/
/**/
/* If you do not have an agreement with Totara Learning Solutions*/
/* LTD, you may not access, use, modify, or distribute this software.*/
/* Please contact [licensing@totaralearning.com] for more information.*/
/**/
/* @author    Kevin Hottinger <kevin.hottinger@totaralearning.com>*/
/* @module tuickage   tui*/
/* Avatar*/
/* This file is part of Totara Enterprise Extensions.*/
/**/
/* Copyright (C) 2020 onwards Totara Learning Solutions LTD*/
/**/
/* Totara Enterprise Extensions is provided only to Totara*/
/* Learning Solutions LTD's customers and partners, pursuant to*/
/* the terms and conditions of a separate agreement with Totara*/
/* Learning Solutions LTD or its affiliate.*/
/**/
/* If you do not have an agreement with Totara Learning Solutions*/
/* LTD, you may not access, use, modify, or distribute this software.*/
/* Please contact [licensing@totaralearning.com] for more information.*/
/**/
/* @author    Kevin Hottinger <kevin.hottinger@totaralearning.com>*/
/* @module tuickage   tui*/
/* Drop down*/
/* This file is part of Totara Enterprise Extensions.*/
/**/
/* Copyright (C) 2020 onwards Totara Learning Solutions LTD*/
/**/
/* Totara Enterprise Extensions is provided only to Totara*/
/* Learning Solutions LTD's customers and partners, pursuant to*/
/* the terms and conditions of a separate agreement with Totara*/
/* Learning Solutions LTD or its affiliate.*/
/**/
/* If you do not have an agreement with Totara Learning Solutions*/
/* LTD, you may not access, use, modify, or distribute this software.*/
/* Please contact [licensing@totaralearning.com] for more information.*/
/**/
/* @author    Kevin Hottinger <kevin.hottinger@totaralearning.com>*/
/* @module tuickage   tui*/
/* Data table*/
/* This file is part of Totara Enterprise Extensions.*/
/**/
/* Copyright (C) 2020 onwards Totara Learning Solutions LTD*/
/**/
/* Totara Enterprise Extensions is provided only to Totara*/
/* Learning Solutions LTD's customers and partners, pursuant to*/
/* the terms and conditions of a separate agreement with Totara*/
/* Learning Solutions LTD or its affiliate.*/
/**/
/* If you do not have an agreement with Totara Learning Solutions*/
/* LTD, you may not access, use, modify, or distribute this software.*/
/* Please contact [licensing@totaralearning.com] for more information.*/
/**/
/* @author    Kevin Hottinger <kevin.hottinger@totaralearning.com>*/
/* @module tuickage   tui*/
/* Tabs*/
/* This file is part of Totara Enterprise Extensions.*/
/**/
/* Copyright (C) 2020 onwards Totara Learning Solutions LTD*/
/**/
/* Totara Enterprise Extensions is provided only to Totara*/
/* Learning Solutions LTD's customers and partners, pursuant to*/
/* the terms and conditions of a separate agreement with Totara*/
/* Learning Solutions LTD or its affiliate.*/
/**/
/* If you do not have an agreement with Totara Learning Solutions*/
/* LTD, you may not access, use, modify, or distribute this software.*/
/* Please contact [licensing@totaralearning.com] for more information.*/
/**/
/* @author    Kevin Hottinger <kevin.hottinger@totaralearning.com>*/
/* @module tuickage   tui*/
/* Card*/
/* This file is part of Totara Enterprise Extensions.*/
/**/
/* Copyright (C) 2020 onwards Totara Learning Solutions LTD*/
/**/
/* Totara Enterprise Extensions is provided only to Totara*/
/* Learning Solutions LTD's customers and partners, pursuant to*/
/* the terms and conditions of a separate agreement with Totara*/
/* Learning Solutions LTD or its affiliate.*/
/**/
/* If you do not have an agreement with Totara Learning Solutions*/
/* LTD, you may not access, use, modify, or distribute this software.*/
/* Please contact [licensing@totaralearning.com] for more information.*/
/**/
/* @author    Kevin Hottinger <kevin.hottinger@totaralearning.com>*/
/* @module tuickage   tui*/
/* Charts*/
/* This file is part of Totara Enterprise Extensions.*/
/**/
/* Copyright (C) 2020 onwards Totara Learning Solutions LTD*/
/**/
/* Totara Enterprise Extensions is provided only to Totara*/
/* Learning Solutions LTD's customers and partners, pursuant to*/
/* the terms and conditions of a separate agreement with Totara*/
/* Learning Solutions LTD or its affiliate.*/
/**/
/* If you do not have an agreement with Totara Learning Solutions*/
/* LTD, you may not access, use, modify, or distribute this software.*/
/* Please contact [licensing@totaralearning.com] for more information.*/
/**/
/* @author    Kevin Hottinger <kevin.hottinger@totaralearning.com>*/
/* @module tuickage   tui*/
/* Filters*/
/* This file is part of Totara Enterprise Extensions.*/
/**/
/* Copyright (C) 2020 onwards Totara Learning Solutions LTD*/
/**/
/* Totara Enterprise Extensions is provided only to Totara*/
/* Learning Solutions LTD's customers and partners, pursuant to*/
/* the terms and conditions of a separate agreement with Totara*/
/* Learning Solutions LTD or its affiliate.*/
/**/
/* If you do not have an agreement with Totara Learning Solutions*/
/* LTD, you may not access, use, modify, or distribute this software.*/
/* Please contact [licensing@totaralearning.com] for more information.*/
/**/
/* @author    Kevin Hottinger <kevin.hottinger@totaralearning.com>*/
/* @module tuickage   tui*/
/* Tags*/
/* This file is part of Totara Enterprise Extensions.*/
/**/
/* Copyright (C) 2020 onwards Totara Learning Solutions LTD*/
/**/
/* Totara Enterprise Extensions is provided only to Totara*/
/* Learning Solutions LTD's customers and partners, pursuant to*/
/* the terms and conditions of a separate agreement with Totara*/
/* Learning Solutions LTD or its affiliate.*/
/**/
/* If you do not have an agreement with Totara Learning Solutions*/
/* LTD, you may not access, use, modify, or distribute this software.*/
/* Please contact [licensing@totaralearning.com] for more information.*/
/**/
/* @author    Kevin Hottinger <kevin.hottinger@totaralearning.com>*/
/* @module tuickage   tui*/
/* Tags*/
/* This file is part of Totara Enterprise Extensions.*/
/**/
/* Copyright (C) 2020 onwards Totara Learning Solutions LTD*/
/**/
/* Totara Enterprise Extensions is provided only to Totara*/
/* Learning Solutions LTD's customers and partners, pursuant to*/
/* the terms and conditions of a separate agreement with Totara*/
/* Learning Solutions LTD or its affiliate.*/
/**/
/* If you do not have an agreement with Totara Learning Solutions*/
/* LTD, you may not access, use, modify, or distribute this software.*/
/* Please contact [licensing@totaralearning.com] for more information.*/
/**/
/* @author    Kevin Hottinger <kevin.hottinger@totaralearning.com>*/
/* @module tuickage   tui*/
/* collapsible*/
/* This file is part of Totara Enterprise Extensions.*/
/**/
/* Copyright (C) 2020 onwards Totara Learning Solutions LTD*/
/**/
/* Totara Enterprise Extensions is provided only to Totara*/
/* Learning Solutions LTD's customers and partners, pursuant to*/
/* the terms and conditions of a separate agreement with Totara*/
/* Learning Solutions LTD or its affiliate.*/
/**/
/* If you do not have an agreement with Totara Learning Solutions*/
/* LTD, you may not access, use, modify, or distribute this software.*/
/* Please contact [licensing@totaralearning.com] for more information.*/
/**/
/* @author    Kevin Hottinger <kevin.hottinger@totaralearning.com>*/
/* @module tuickage   tui*/
/* progress tracker*/
/* This file is part of Totara Enterprise Extensions.*/
/**/
/* Copyright (C) 2020 onwards Totara Learning Solutions LTD*/
/**/
/* Totara Enterprise Extensions is provided only to Totara*/
/* Learning Solutions LTD's customers and partners, pursuant to*/
/* the terms and conditions of a separate agreement with Totara*/
/* Learning Solutions LTD or its affiliate.*/
/**/
/* If you do not have an agreement with Totara Learning Solutions*/
/* LTD, you may not access, use, modify, or distribute this software.*/
/* Please contact [licensing@totaralearning.com] for more information.*/
/**/
/* @author    Kevin Hottinger <kevin.hottinger@totaralearning.com>*/
/* @module tuickage   tui*/
/* Side panel navigation*/
/* This file is part of Totara Enterprise Extensions.*/
/**/
/* Copyright (C) 2020 onwards Totara Learning Solutions LTD*/
/**/
/* Totara Enterprise Extensions is provided only to Totara*/
/* Learning Solutions LTD's customers and partners, pursuant to*/
/* the terms and conditions of a separate agreement with Totara*/
/* Learning Solutions LTD or its affiliate.*/
/**/
/* If you do not have an agreement with Totara Learning Solutions*/
/* LTD, you may not access, use, modify, or distribute this software.*/
/* Please contact [licensing@totaralearning.com] for more information.*/
/**/
/* @author    Kevin Hottinger <kevin.hottinger@totaralearning.com>*/
/* @module tuickage   tui*/
/* Toggle buttons*/
/* This file is part of Totara Enterprise Extensions.*/
/**/
/* Copyright (C) 2020 onwards Totara Learning Solutions LTD*/
/**/
/* Totara Enterprise Extensions is provided only to Totara*/
/* Learning Solutions LTD's customers and partners, pursuant to*/
/* the terms and conditions of a separate agreement with Totara*/
/* Learning Solutions LTD or its affiliate.*/
/**/
/* If you do not have an agreement with Totara Learning Solutions*/
/* LTD, you may not access, use, modify, or distribute this software.*/
/* Please contact [licensing@totaralearning.com] for more information.*/
/**/
/* @author    Kevin Hottinger <kevin.hottinger@totaralearning.com>*/
/* @module tuickage   tui*/
/* Notification toast*/
/* This file is part of Totara Enterprise Extensions.*/
/**/
/* Copyright (C) 2020 onwards Totara Learning Solutions LTD*/
/**/
/* Totara Enterprise Extensions is provided only to Totara*/
/* Learning Solutions LTD's customers and partners, pursuant to*/
/* the terms and conditions of a separate agreement with Totara*/
/* Learning Solutions LTD or its affiliate.*/
/**/
/* If you do not have an agreement with Totara Learning Solutions*/
/* LTD, you may not access, use, modify, or distribute this software.*/
/* Please contact [licensing@totaralearning.com] for more information.*/
/**/
/* @author    Kevin Hottinger <kevin.hottinger@totaralearning.com>*/
/* @module tuickage   tui*/
/* This file is part of Totara Enterprise Extensions.*/
/**/
/* Copyright (C) 2020 onwards Totara Learning Solutions LTD*/
/**/
/* Totara Enterprise Extensions is provided only to Totara*/
/* Learning Solutions LTD's customers and partners, pursuant to*/
/* the terms and conditions of a separate agreement with Totara*/
/* Learning Solutions LTD or its affiliate.*/
/**/
/* If you do not have an agreement with Totara Learning Solutions*/
/* LTD, you may not access, use, modify, or distribute this software.*/
/* Please contact [licensing@totaralearning.com] for more information.*/
/**/
/* @author    Kevin Hottinger <kevin.hottinger@totaralearning.com>*/
/* @module tuickage   tui*/
/* This file is part of Totara Enterprise Extensions.*/
/**/
/* Copyright (C) 2020 onwards Totara Learning Solutions LTD*/
/**/
/* Totara Enterprise Extensions is provided only to Totara*/
/* Learning Solutions LTD's customers and partners, pursuant to*/
/* the terms and conditions of a separate agreement with Totara*/
/* Learning Solutions LTD or its affiliate.*/
/**/
/* If you do not have an agreement with Totara Learning Solutions*/
/* LTD, you may not access, use, modify, or distribute this software.*/
/* Please contact [licensing@totaralearning.com] for more information.*/
/**/
/* @author    Kevin Hottinger <kevin.hottinger@totaralearning.com>*/
/* @module tuickage   tui*/
/* This file is part of Totara Enterprise Extensions.*/
/**/
/* Copyright (C) 2021 onwards Totara Learning Solutions LTD*/
/**/
/* Totara Enterprise Extensions is provided only to Totara*/
/* Learning Solutions LTD's customers and partners, pursuant to*/
/* the terms and conditions of a separate agreement with Totara*/
/* Learning Solutions LTD or its affiliate.*/
/**/
/* If you do not have an agreement with Totara Learning Solutions*/
/* LTD, you may not access, use, modify, or distribute this software.*/
/* Please contact [licensing@totaralearning.com] for more information.*/
/**/
/* @author    Dave Wallace <dave.wallace@totaralearning.com>*/
/* @module tuickage   tui*/
/* This file is part of Totara Enterprise Extensions.*/
/**/
/* Copyright (C) 2022 onwards Totara Learning Solutions LTD*/
/**/
/* Totara Enterprise Extensions is provided only to Totara*/
/* Learning Solutions LTD's customers and partners, pursuant to*/
/* the terms and conditions of a separate agreement with Totara*/
/* Learning Solutions LTD or its affiliate.*/
/**/
/* If you do not have an agreement with Totara Learning Solutions*/
/* LTD, you may not access, use, modify, or distribute this software.*/
/* Please contact [licensing@totaralearning.com] for more information.*/
/**/
/* @author    Rodney Cruden-Powell <rodney.cruden-powell@totaralearning.com>*/
/* @module tuickage   tui*/
/* This file is part of Totara Enterprise Extensions.*/
/**/
/* Copyright (C) 2020 onwards Totara Learning Solutions LTD*/
/**/
/* Totara Enterprise Extensions is provided only to Totara*/
/* Learning Solutions LTD's customers and partners, pursuant to*/
/* the terms and conditions of a separate agreement with Totara*/
/* Learning Solutions LTD or its affiliate.*/
/**/
/* If you do not have an agreement with Totara Learning Solutions*/
/* LTD, you may not access, use, modify, or distribute this software.*/
/* Please contact [licensing@totaralearning.com] for more information.*/
/**/
/* @author    Simon Chester <simon.chester@totaralearning.com>*/
/* @module tuickage   tui*/
/* Sidebar layout that is responsive based on the size of its container, rather*/
/* than the viewport.*/
/* This file is part of Totara Enterprise Extensions.*/
/**/
/* Copyright (C) 2020 onwards Totara Learning Solutions LTD*/
/**/
/* Totara Enterprise Extensions is provided only to Totara*/
/* Learning Solutions LTD's customers and partners, pursuant to*/
/* the terms and conditions of a separate agreement with Totara*/
/* Learning Solutions LTD or its affiliate.*/
/**/
/* If you do not have an agreement with Totara Learning Solutions*/
/* LTD, you may not access, use, modify, or distribute this software.*/
/* Please contact [licensing@totaralearning.com] for more information.*/
/**/
/* @author    Kevin Hottinger <kevin.hottinger@totaralearning.com>*/
/* @module tuickage   tui*/
/* Media queries breakpoints*/
/* Matches @screen-sm-min*/
/* Matches @screen-md-min*/
/* Matches @screen-lg-min*/
/* This file is part of Totara Enterprise Extensions.*/
/**/
/* Copyright (C) 2020 onwards Totara Learning Solutions LTD*/
/**/
/* Totara Enterprise Extensions is provided only to Totara*/
/* Learning Solutions LTD's customers and partners, pursuant to*/
/* the terms and conditions of a separate agreement with Totara*/
/* Learning Solutions LTD or its affiliate.*/
/**/
/* If you do not have an agreement with Totara Learning Solutions*/
/* LTD, you may not access, use, modify, or distribute this software.*/
/* Please contact [licensing@totaralearning.com] for more information.*/
/**/
/* @author    Simon Chester <simon.chester@totaralearning.com>*/
/* @module tuickage   tui*/
/* This file is part of Totara Enterprise Extensions.*/
/**/
/* Copyright (C) 2020 onwards Totara Learning Solutions LTD*/
/**/
/* Totara Enterprise Extensions is provided only to Totara*/
/* Learning Solutions LTD's customers and partners, pursuant to*/
/* the terms and conditions of a separate agreement with Totara*/
/* Learning Solutions LTD or its affiliate.*/
/**/
/* If you do not have an agreement with Totara Learning Solutions*/
/* LTD, you may not access, use, modify, or distribute this software.*/
/* Please contact [licensing@totaralearning.com] for more information.*/
/**/
/* @author    Simon Chester <simon.chester@totaralearning.com>*/
/* @module tuickage   tui*/
/**
 * For adding a fixed sized header image to a card, including optional margin on the outer edges.
 */
/* This file is part of Totara Enterprise Extensions.*/
/**/
/* Copyright (C) 2020 onwards Totara Learning Solutions LTD*/
/**/
/* Totara Enterprise Extensions is provided only to Totara*/
/* Learning Solutions LTD's customers and partners, pursuant to*/
/* the terms and conditions of a separate agreement with Totara*/
/* Learning Solutions LTD or its affiliate.*/
/**/
/* If you do not have an agreement with Totara Learning Solutions*/
/* LTD, you may not access, use, modify, or distribute this software.*/
/* Please contact [licensing@totaralearning.com] for more information.*/
/**/
/* @author    Kevin Hottinger <kevin.hottinger@totaralearning.com>*/
/* @module tuickage   tui*/
/* This file is part of Totara Enterprise Extensions.*/
/**/
/* Copyright (C) 2021 onwards Totara Learning Solutions LTD*/
/**/
/* Totara Enterprise Extensions is provided only to Totara*/
/* Learning Solutions LTD's customers and partners, pursuant to*/
/* the terms and conditions of a separate agreement with Totara*/
/* Learning Solutions LTD or its affiliate.*/
/**/
/* If you do not have an agreement with Totara Learning Solutions*/
/* LTD, you may not access, use, modify, or distribute this software.*/
/* Please contact [licensing@totaralearning.com] for more information.*/
/**/
/* @author    Simon Chester <simon.chester@totaralearning.com>*/
/* @module tuickage   tui*/
/* This file is part of Totara Enterprise Extensions.*/
/**/
/* Copyright (C) 2022 onwards Totara Learning Solutions LTD*/
/**/
/* Totara Enterprise Extensions is provided only to Totara*/
/* Learning Solutions LTD's customers and partners, pursuant to*/
/* the terms and conditions of a separate agreement with Totara*/
/* Learning Solutions LTD or its affiliate.*/
/**/
/* If you do not have an agreement with Totara Learning Solutions*/
/* LTD, you may not access, use, modify, or distribute this software.*/
/* Please contact [licensing@totaralearning.com] for more information.*/
/**/
/* @author    Simon Chester <simon.chester@totaralearning.com>*/
/* @module    tui*/
/* Pick a width % value between small_frac and large_frac equivalent to where*/
/* our available width lies between small_anchor and large_anchor, clamped to*/
/* stay in that range.*/
/* This is overly complicated due to limitations of CSS / calc, but is equivalent to*/
/* width = available_width * lerp(small_frac, large_frac, clamp01(inverse_lerp(small_anchor, large_anchor, available_width)))*/
/* @private INTERNAL FUNCTION, DO NOT USE*/
/* This file is part of Totara Enterprise Extensions.*/
/**/
/* Copyright (C) 2020 onwards Totara Learning Solutions LTD*/
/**/
/* Totara Enterprise Extensions is provided only to Totara*/
/* Learning Solutions LTD's customers and partners, pursuant to*/
/* the terms and conditions of a separate agreement with Totara*/
/* Learning Solutions LTD or its affiliate.*/
/**/
/* If you do not have an agreement with Totara Learning Solutions*/
/* LTD, you may not access, use, modify, or distribute this software.*/
/* Please contact [licensing@totaralearning.com] for more information.*/
/**/
/* @author    Kevin Hottinger <kevin.hottinger@totaralearning.com>*/
/* @module tuickage   tui*/
/* This contains the common variable set for form elements,*/
/* allowing form elements to be consistently styled.*/
/* loosely based on a modular scale of (2 * (1.5 ^ n))*/
/* Selectors for form inputs (and similar elements) that should have sizes applied to them.*/
/* If modifying this list in a theme, do it via append() rather than replacing*/
/* the entire list.*/
/* Selectors for inputs that are *replaced elements*.*/
/* The behavior of width: auto differs for replaced elements, so these are set*/
/* to width: 100% to get the "grow to container" behavior.*/
/* https://developer.mozilla.org/en-US/docs/Web/CSS/Replaced_element*/
/* However, this causes an issue in certain contexts - namely if the container*/
/* has a margin. This list exists to enable workarounds using flex at the site*/
/* of use.*/
/* If modifying this list in a theme, do it via append() rather than replacing*/
/* the entire list.*/
/* Don't apply the default input size if the element is within one of these*/
/* selectors.*/
/* (if it's not within a form, it won't be applied either)*/
/* Calculate character-based sizing for inputs.*/
/* Generate sizing class for size*/
/* Default input sizing*/
/* Generate sizing classes for predefined sizes*/
/* Vertical padding of form elements.*/
/* Calculate the remaining available space to meet the target height.*/
/* Must be on a single line otherwise it breaks (for some reason!) so must be ignored by prettier.*/
/* prettier-ignore*/
/* prettier-ignore*/
/* This file is part of Totara Enterprise Extensions.*/
/**/
/* Copyright (C) 2021 onwards Totara Learning Solutions LTD*/
/**/
/* Totara Enterprise Extensions is provided only to Totara*/
/* Learning Solutions LTD's customers and partners, pursuant to*/
/* the terms and conditions of a separate agreement with Totara*/
/* Learning Solutions LTD or its affiliate.*/
/**/
/* If you do not have an agreement with Totara Learning Solutions*/
/* LTD, you may not access, use, modify, or distribute this software.*/
/* Please contact [licensing@totaralearning.com] for more information.*/
/**/
/* @author Kevin Hottinger <kevin.hottinger@totaralearning.com>*/
/* @module tui*/
/* This file is part of Totara Enterprise Extensions.*/
/**/
/* Copyright (C) 2020 onwards Totara Learning Solutions LTD*/
/**/
/* Totara Enterprise Extensions is provided only to Totara*/
/* Learning Solutions LTD's customers and partners, pursuant to*/
/* the terms and conditions of a separate agreement with Totara*/
/* Learning Solutions LTD or its affiliate.*/
/**/
/* If you do not have an agreement with Totara Learning Solutions*/
/* LTD, you may not access, use, modify, or distribute this software.*/
/* Please contact [licensing@totaralearning.com] for more information.*/
/**/
/* @author    Kevin Hottinger <kevin.hottinger@totaralearning.com>*/
/* @module tuickage   tui*/
/* This file is part of Totara Enterprise Extensions.*/
/**/
/* Copyright (C) 2020 onwards Totara Learning Solutions LTD*/
/**/
/* Totara Enterprise Extensions is provided only to Totara*/
/* Learning Solutions LTD's customers and partners, pursuant to*/
/* the terms and conditions of a separate agreement with Totara*/
/* Learning Solutions LTD or its affiliate.*/
/**/
/* If you do not have an agreement with Totara Learning Solutions*/
/* LTD, you may not access, use, modify, or distribute this software.*/
/* Please contact [licensing@totaralearning.com] for more information.*/
/**/
/* @author    Kevin Hottinger <kevin.hottinger@totaralearning.com>*/
/* @module tuickage   tui*/
/**/
/* Body text*/
/**/
/**/
/* Link text*/
/**/
/**/
/* Heading text*/
/**/
/**/
/* Text wrapping*/
/**/
/* break when the word starts on a new line and breaks where it would have*/
/* overflown, auto inserting hyphens. useful for user-generated content whose*/
/* containers are generally flexible. machine-insertion of hyphens may not be*/
/* an end user preference, but it can be more readable than without.*/
/* break all words at the end of lines, don't hyphenate. useful for predictable*/
/* parts of the UI whose containers are less flexible.*/
/* This file is part of Totara Enterprise Extensions.*/
/**/
/* Copyright (C) 2020 onwards Totara Learning Solutions LTD*/
/**/
/* Totara Enterprise Extensions is provided only to Totara*/
/* Learning Solutions LTD's customers and partners, pursuant to*/
/* the terms and conditions of a separate agreement with Totara*/
/* Learning Solutions LTD or its affiliate.*/
/**/
/* If you do not have an agreement with Totara Learning Solutions*/
/* LTD, you may not access, use, modify, or distribute this software.*/
/* Please contact [licensing@totaralearning.com] for more information.*/
/**/
/* @author    Simon Chester <simon.chester@totaralearning.com>*/
/* @module tuickage   tui*/
/* #dock is 12000, modal must be above that*/
/* This file is part of Totara Enterprise Extensions.*/
/**/
/* Copyright (C) 2020 onwards Totara Learning Solutions LTD*/
/**/
/* Totara Enterprise Extensions is provided only to Totara*/
/* Learning Solutions LTD's customers and partners, pursuant to*/
/* the terms and conditions of a separate agreement with Totara*/
/* Learning Solutions LTD or its affiliate.*/
/**/
/* If you do not have an agreement with Totara Learning Solutions*/
/* LTD, you may not access, use, modify, or distribute this software.*/
/* Please contact [licensing@totaralearning.com] for more information.*/
/**/
/* @author    Kevin Hottinger <kevin.hottinger@totaralearning.com>*/
/* @module tuickage   tui*/
/* This variable file includes special comments with the syntax `theme:var` and*/
/* `theme:derive`.*/
/**/
/* `theme:var` comments tell the build system that this is a configurable*/
/* variable and causes information about it to be exported. This is neccesary*/
/* for it to show up in the theme panel.*/
/**/
/* `theme:derive` comments add information to the entry for a theme:var variable*/
/* telling the theme panel that it is derived from another variable.*/
/* This informatation is used to generate a new value for the variable if the*/
/* value of any variable it is derived from has changed.*/
:root {
  --font-size-1: 0.1rem;
  --font-size-2: 0.2rem;
  --font-size-4: 0.4rem;
  --font-size-8: 0.8rem;
  --font-size-10: 1rem;
  --font-size-11: 1.1rem;
  --font-size-12: 1.2rem;
  --font-size-13: 1.3rem;
  --font-size-14: 1.4rem;
  --font-size-15: 1.5rem;
  --font-size-16: 1.6rem;
  --font-size-18: 1.8rem;
  --font-size-20: 2rem;
  --font-size-22: 2.2rem;
  --font-size-24: 2.4rem;
  --font-size-30: 3rem;
  --font-size-32: 3.2rem;
  --font-size-40: 4rem;
  --font-size-48: 4.8rem;
  --font-size-50: 5rem; }

:root {
  --gap-1: 0.4rem;
  --gap-2: 0.8rem;
  --gap-3: 1.2rem;
  --gap-4: 1.6rem;
  --gap-5: 2rem;
  --gap-6: 2.4rem;
  --gap-7: 2.8rem;
  --gap-8: 3.2rem;
  --gap-9: 3.6rem;
  --gap-10: 4rem;
  --gap-11: 4.4rem;
  --gap-12: 4.8rem;
  --gap-page-columns: var(--gap-8);
  --gap-card-grid: var(--gap-4);
  --grid-gutter: var(--gap-5);
  --grid-gutter-vertical: 2rem;
  --grid-gutter-horizontal: 2rem;
  --grid-maxunits: 12;
  --paragraph-gap: 1rem; }

:root {
  --border-width-thin: 1px;
  --border-width-normal: 2px;
  --border-width-thick: 3px;
  --border-radius-curved: 12px;
  --border-radius-normal: 6px;
  --border-radius-small: 4px;
  --card-border-radius: var(--border-radius-normal);
  --dropdown-border-radius: var(--border-radius-normal);
  --focus-outline-offset: 1px; }

:root {
  --btn-shadow: none;
  --btn-shadow-focus: none;
  --btn-shadow-hover: var(--shadow-2);
  --btn-shadow-active: var(--shadow-3);
  --btn-min-width: 72px;
  --btn-min-height: 3.6rem;
  --btn-font-size: var(--font-body-size);
  --btn-line-height: var(--font-body-line-height);
  --btn-border-width: 1px;
  --btn-padding-h: var(--gap-3);
  --btn-radius: 4px;
  --btn-sm-min-height: 3rem;
  --btn-sm-font-size: var(--font-body-small-size);
  --btn-sm-line-height: var(--font-body-small-line-height);
  --btn-sm-padding-h: var(--gap-3);
  --btn-sm-radius: 4px; }

:root {
  --color-primary: #3a45ac;
  --color-secondary: #007ab8;
  --color-tertiary: #1ea4a9;
  --color-state: #3982ac;
  --color-state-hover: #265773;
  --color-state-focus: #265773;
  --color-state-active: #193a4c;
  --color-state-highlight: #f6f9d7;
  --color-state-highlight-neutral: var(--color-neutral-3);
  --color-state-disabled: var(--color-neutral-5);
  --color-prompt-info: #007ab8;
  --color-prompt-info-bg: #daf3fe;
  --color-prompt-alert: #cc2428;
  --color-prompt-alert-bg: #fee6e6;
  --color-prompt-warning: #b2611f;
  --color-prompt-warning-bg: #f1e2d7;
  --color-prompt-success: #4b7e2b;
  --color-prompt-success-bg: #d8eacd;
  --color-neutral-1: #fff;
  --color-neutral-2: #fafafa;
  --color-neutral-3: #f7f7f7;
  --color-neutral-4: #e6e4e4;
  --color-neutral-5: #c7c7c7;
  --color-neutral-6: #767676;
  --color-neutral-7: #262626;
  --color-chart-background-1: #007ab8;
  --color-chart-transparent-1: rgba(0, 122, 184, 0.38);
  --color-chart-background-2: #da7c2f;
  --color-chart-transparent-2: rgba(218, 124, 47, 0.38);
  --color-chart-background-3: #bf6c78;
  --color-chart-transparent-3: rgba(191, 108, 120, 0.38);
  --color-chart-background-4: #dac725;
  --color-chart-transparent-4: rgba(218, 199, 37, 0.38);
  --color-chart-background-5: #5d5d5d;
  --color-chart-transparent-5: rgba(93, 93, 93, 0.38);
  --color-chart-background-6: #98aada;
  --color-chart-transparent-6: rgba(152, 170, 218, 0.38);
  --color-chart-background-7: #23c1a0;
  --color-chart-transparent-7: rgba(35, 193, 160, 0.38);
  --color-background: var(--color-neutral-1);
  --color-border: var(--color-neutral-5);
  --color-text: var(--color-neutral-7);
  --color-text-disabled: var(--color-neutral-5);
  --color-text-hint: var(--color-neutral-6);
  --link-color: var(--color-state);
  --link-color-hover: var(--color-state-hover);
  --color-backdrop-standard: rgba(0, 0, 0, 0.4);
  --color-backdrop-heavy: rgba(0, 0, 0, 0.8);
  --color-backdrop-contrast: var(--color-neutral-1);
  --nav-bg-color: #fff;
  --nav-text-color: var(--color-text); }

:root {
  --arrow-bg-color: var(--color-background);
  --arrow-border-color: var(--color-neutral-5); }

:root {
  --form-radio-dot-color: var(--color-state);
  --form-radio-bg-color: var(--color-neutral-1);
  --form-radio-bg-color-disabled: var(--color-neutral-3);
  --form-radio-bg-color-focus: var(--color-state-highlight-neutral);
  --form-radio-bg-color-hover: var(--color-neutral-1);
  --form-radio-bg-color-active: var(--color-neutral-1);
  --form-radio-border-color: var(--color-neutral-6);
  --form-radio-border-color-disabled: var(--color-state-disabled);
  --form-radio-border-color-focus: var(--color-state-focus);
  --form-radio-border-color-active: var(--color-state-focus);
  --form-checkbox-check-color: var(--color-neutral-1);
  --form-checkbox-check-color-disabled: var(--color-neutral-5);
  --form-checkbox-bg-color: var(--color-neutral-1);
  --form-checkbox-bg-color-disabled: var(--color-neutral-3);
  --form-checkbox-bg-color-active: var(--color-state);
  --form-checkbox-border-color: var(--color-neutral-6);
  --form-checkbox-border-color-disabled: var(--color-state-disabled);
  --form-checkbox-border-color-focus: var(--color-state-focus);
  --form-checkbox-border-color-active: var(--color-state-focus);
  --form-checkbox-border-color-invalid: var(--color-prompt-alert);
  --form-text-color: var(--color-neutral-7);
  --form-input-bg-color: var(--color-neutral-1);
  --form-input-bg-color-disabled: var(--color-neutral-3);
  --form-input-bg-color-focus: var(--form-input-bg-color);
  --form-input-bg-color-invalid-focus: var(--form-input-bg-color);
  --form-input-border-color: var(--color-neutral-6);
  --form-input-border-color-disabled: var(--color-neutral-4);
  --form-input-border-color-focus: var(--color-state);
  --form-input-border-color-invalid: var(--color-prompt-alert);
  --form-input-text-color: var(--color-neutral-7);
  --form-input-text-color-disabled: var(--color-state-disabled);
  --form-input-text-placeholder-color: var(--color-neutral-6);
  --form-details-text-color: var(--color-neutral-7);
  --form-defaults-text-color: var(--color-neutral-7);
  --btn-accent-color: var(--color-state);
  --btn-accent-color-active: var(--color-state-active);
  --btn-accent-color-hover: var(--color-state-hover);
  --btn-accent-color-disabled: var(--color-state-disabled);
  --btn-bg-color: var(--color-neutral-1);
  --btn-bg-color-active: var(--color-neutral-1);
  --btn-bg-color-disabled: var(--color-neutral-3);
  --btn-bg-color-hover: var(--color-neutral-3);
  --btn-border-color: var(--btn-accent-color);
  --btn-border-color-active: var(--btn-accent-color-active);
  --btn-border-color-disabled: var(--btn-accent-color-disabled);
  --btn-border-color-hover: var(--btn-accent-color-hover);
  --btn-loader-color-disabled: var(--color-neutral-6);
  --btn-text-color: var(--btn-accent-color);
  --btn-text-color-active: var(--btn-accent-color-active);
  --btn-text-color-disabled: var(--btn-accent-color-disabled);
  --btn-text-color-hover: var(--btn-accent-color-hover);
  --btn-prim-accent-color: var(--color-state);
  --btn-prim-accent-color-active: var(--color-state-active);
  --btn-prim-accent-color-hover: var(--color-state-hover);
  --btn-prim-accent-color-disabled: var(--color-state-disabled);
  --btn-prim-bg-color: var(--btn-prim-accent-color);
  --btn-prim-bg-color-active: var(--btn-prim-accent-color-active);
  --btn-prim-bg-color-disabled: var(--btn-prim-accent-color-disabled);
  --btn-prim-bg-color-hover: var(--btn-prim-accent-color-hover);
  --btn-prim-border-color: var(--btn-prim-accent-color);
  --btn-prim-border-color-active: var(--btn-prim-accent-color-active);
  --btn-prim-border-color-disabled: var(--btn-prim-accent-color-disabled);
  --btn-prim-border-color-hover: var(--btn-prim-accent-color-hover);
  --btn-prim-loader-color-disabled: var(--color-neutral-7);
  --btn-prim-text-color: var(--color-neutral-1);
  --btn-prim-text-color-active: var(--color-neutral-1);
  --btn-prim-text-color-disabled: var(--color-neutral-3);
  --btn-prim-text-color-hover: var(--color-neutral-1);
  --btn-alert-bg-color: var(--color-prompt-alert);
  --btn-alert-bg-color-active: var(--color-prompt-alert);
  --btn-alert-bg-color-disabled: var(--color-neutral-3);
  --btn-alert-bg-color-hover: var(--color-prompt-alert);
  --btn-alert-border-color: var(--color-prompt-alert);
  --btn-alert-border-color-active: var(--color-prompt-alert);
  --btn-alert-border-color-disabled: var(--color-state-disabled);
  --btn-alert-border-color-hover: var(--color-prompt-alert);
  --btn-alert-text-color: var(--color-neutral-1);
  --btn-alert-text-color-active: var(--color-neutral-1);
  --btn-alert-text-color-disabled: var(--color-state-disabled);
  --btn-alert-text-color-hover: var(--color-neutral-1);
  --btn-checkbox-bg-color-selected: var(--color-neutral-3);
  --btn-checkbox-bg-color-hover: var(--color-state-highlight-neutral);
  --btn-checkbox-text-color: var(--color-state);
  --btn-checkbox-text-color-active: var(--color-state-active);
  --btn-checkbox-text-color-focus: var(--color-state-focus);
  --btn-checkbox-text-color-selected: var(--color-neutral-7);
  --btn-toolbar-bg-color: transparent;
  --btn-toolbar-bg-color-hover: var(--color-neutral-4);
  --btn-toolbar-bg-color-focus: var(--color-neutral-4);
  --btn-toolbar-bg-color-selected: var(--color-state-active);
  --btn-toolbar-text-color: var(--color-neutral-6);
  --btn-toolbar-text-color-selected: var(--color-neutral-1);
  --form-error-bg-color: var(--color-prompt-alert-bg);
  --form-error-text-color: var(--color-prompt-alert);
  --btn-accent-color-focus: var(--color-state-focus);
  --btn-bg-color-focus: var(--color-neutral-3);
  --btn-border-color-focus: var(--btn-accent-color-focus);
  --btn-text-color-focus: var(--btn-accent-color-focus);
  --btn-prim-accent-color-focus: var(--color-state-focus);
  --btn-prim-bg-color-focus: var(--btn-prim-accent-color-focus);
  --btn-prim-border-color-focus: var(--btn-prim-accent-color-focus);
  --btn-prim-text-color-focus: var(--color-neutral-1);
  --btn-alert-bg-color-focus: var(--color-prompt-alert);
  --btn-alert-border-color-focus: var(--color-prompt-alert);
  --btn-alert-text-color-focus: var(--color-neutral-1);
  --form-checkbox-bg-color-focus: var(--color-state-highlight-neutral); }

:root {
  --avatar-border-color: var(--color-primary); }

:root {
  --dropdown-item-bg-color-hover: var(--color-neutral-3);
  --dropdown-item-bg-color-focus: var(--color-neutral-3);
  --dropdown-item-bg-color-disabled-focus: var(--color-neutral-2);
  --dropdown-item-text-color: var(--color-text);
  --dropdown-item-text-color-hover: var(--color-text);
  --dropdown-item-text-color-focus: var(--color-text);
  --dropdown-item-text-color-disabled: var(--color-text-disabled);
  --dropdown-item-focus-ring-color: var(--color-state);
  --dropdown-menu-bg-color: var(--color-background);
  --dropdown-menu-border-color: var(--color-neutral-5); }

:root {
  --datatable-bg-archived: var(--color-neutral-2);
  --datatable-cell-header-text-color: var(--color-neutral-7);
  --datatable-expanded-bg-color: var(--color-neutral-1);
  --datatable-expanded-border-color: var(--color-neutral-5);
  --datatable-expanded-text-color: var(--color-neutral-7);
  --datatable-row-bg-color: transparent;
  --datatable-row-bg-color-active: var(--color-neutral-3);
  --datatable-row-bg-color-focus: var(--color-neutral-3);
  --datatable-row-bg-color-odd: var(--color-neutral-2);
  --datatable-row-border-color: var(--color-neutral-5);
  --datatable-row-first-border-color: var(--color-neutral-7);
  --datatable-select-everything-prompt-bg: var(--color-neutral-2); }

:root {
  --tabs-bg-color: var(--color-neutral-3);
  --tabs-bg-color-selected: var(--color-neutral-1);
  --tabs-bg-color-disabled: var(--color-neutral-3);
  --tabs-bg-color-focus: var(--color-neutral-3);
  --tabs-selected-bar-color: var(--color-primary);
  --tabs-text-color: var(--color-state);
  --tabs-text-color-active: var(--color-state-active);
  --tabs-text-color-disabled: var(--color-state-disabled);
  --tabs-text-color-focus: var(--color-state-focus);
  --tabs-text-color-selected: var(--color-neutral-7);
  --tabs-border-color: var(--color-neutral-5);
  --tabs-border-color-selected: var(--color-neutral-1);
  --tabs-border-color-disabled: var(--color-neutral-4); }

:root {
  --card-border-color: var(--color-neutral-5); }

:root {
  --color-chart-doughnut-label: var(--color-neutral-7); }

:root {
  --filter-bar-border-color: var(--color-neutral-5);
  --filter-search-icon-color: var(--color-neutral-6);
  --filter-search-clear-icon-color: var(--color-neutral-6); }

:root {
  --tag-bg-color: var(--color-neutral-2);
  --tag-border-color: var(--color-neutral-5);
  --tag-active-color: var(--color-state);
  --tag-button-color: var(--color-neutral-7); }

:root {
  --progress-value-bg-color: var(--color-secondary);
  --progress-container-bg-color: var(--color-neutral-4);
  --progress-border-color: var(--color-neutral-1);
  --progress-container-text-color: var(--color-neutral-7);
  --progress-value-text-color: var(--color-neutral-1); }

:root {
  --collapsible-header-bg-color: var(--color-neutral-3);
  --collapsible-header-border-color: var(--color-neutral-3); }

:root {
  --progresstracker-container-bg-color: var(--color-neutral-1);
  --progresstracker-color-pending: var(--color-neutral-6);
  --progresstracker-color-current: var(--color-prompt-info);
  --progresstracker-color-achieved: var(--color-tertiary);
  --progresstracker-color-complete: var(--color-prompt-warning);
  --progresstracker-color-ready: var(--color-neutral-6);
  --progresstracker-color-ready--inverse: var(--color-neutral-1);
  --progresstracker-color-done: var(--color-prompt-success);
  --progresstracker-color-done--inverse: var(--color-neutral-1);
  --progresstracker-color-locked: var(--color-neutral-6);
  --progresstracker-color-locked--inverse: var(--color-neutral-1);
  --progresstracker-color-optional: var(--color-neutral-6);
  --progresstracker-color-optional--inverse: var(--color-neutral-1);
  --progresstracker-color-selected: var(--color-neutral-6);
  --progresstracker-color-selected--inverse: var(--color-neutral-1);
  --progresstracker-color-invalid: var(--color-prompt-warning);
  --progresstracker-color-invalid--inverse: var(--color-neutral-1);
  --progresstracker-color-view-only: var(--color-neutral-6);
  --progresstracker-color-view-only--inverse: var(--color-neutral-1);
  --progresstracker-color-hidden: var(--color-neutral-6);
  --progresstracker-color-hidden--inverse: var(--color-neutral-1); }

:root {
  --side-panel-nav-bg-color: var(--color-neutral-3);
  --side-panel-nav-item-bg-color: var(--color-neutral-3);
  --side-panel-nav-item-border-color: var(--color-neutral-3);
  --side-panel-nav-item-text-color: var(--color-neutral-7);
  --side-panel-nav-item-bg-color-focus: var(--color-neutral-4);
  --side-panel-nav-item-border-color-focus: var(--color-neutral-3);
  --side-panel-nav-item-text-color-focus: var(--color-state-focus);
  --side-panel-nav-item-bg-color-selected: var(--color-state-active);
  --side-panel-nav-item-border-color-selected: var(--color-neutral-3);
  --side-panel-nav-item-text-color-selected: var(--color-neutral-1); }

:root {
  --toggle-bg-color: var(--color-neutral-6);
  --toggle-btn-bg-color: transparent;
  --toggle-btn-bg-color-active: transparent;
  --toggle-btn-bg-color-disabled: transparent;
  --toggle-btn-bg-color-hover: transparent;
  --toggle-btn-bg-color-selected: var(--color-neutral-1);
  --toggle-btn-text-color: var(--color-neutral-1);
  --toggle-btn-text-color-active: var(--color-neutral-1);
  --toggle-btn-text-color-disabled: var(--color-neutral-1);
  --toggle-btn-text-color-hover: var(--color-neutral-1);
  --toggle-btn-text-color-selected: var(--color-neutral-7);
  --form-toggle-dot-color: var(--color-neutral-1);
  --form-toggle-off-bg-color: var(--color-neutral-5);
  --form-toggle-off-bg-color-hover-focus: var(--color-neutral-6);
  --form-toggle-off-bg-color-disabled: var(--color-neutral-4);
  --form-toggle-on-bg-color: var(--color-state);
  --form-toggle-on-bg-color-hover-focus: var(--color-state-hover);
  --form-toggle-on-bg-color-disabled: var(--color-prompt-success-bg);
  --form-toggle-on-border-color: var(--color-state);
  --form-toggle-on-border-color-hover-focus: var(--color-state-hover);
  --form-toggle-border-color: var(--color-neutral-6);
  --form-toggle-border-color-disabled: var(--color-neutral-5);
  --toggle-btn-text-color-focus: var(--color-neutral-1);
  --toggle-btn-bg-color-focus: transparent; }

:root {
  --toast-color-text: var(--color-neutral-1); }

:root {
  --shadow-none: 0 0 0 0 transparent;
  --shadow-2: 0 3px 6px 0 rgba(0, 0, 0, 0.2);
  --shadow-3: 0 6px 6px 0 rgba(0, 0, 0, 0.15);
  --shadow-4: 0 10px 10px 0 rgba(0, 0, 0, 0.3);
  --form-input-shadow-focus: none;
  --form-input-shadow-invalid: 0 0 0 var(--form-input-invalid-shadow-size) var(--form-input-border-color-invalid);
  --form-input-shadow-invalid-focus: none;
  --form-range-thumb-shadow: 0 1px 3px rgba(0, 0, 0, 0.6); }

:root {
  --sidepanel-navigation-item-padding-left: var(--gap-8); }

:root {
  --progress-tracker-horizontal-size--small: 10rem;
  --progress-tracker-horizontal-size--medium: 20rem;
  --progress-tracker-horizontal-size--large: 25rem;
  --progress-tracker-horizontal-gap--small: var(--gap-2);
  --progress-tracker-horizontal-gap--medium: var(--gap-4);
  --progress-tracker-horizontal-gap--large: var(--gap-6);
  --progress-tracker-vertical-gap--small: var(--gap-2);
  --progress-tracker-vertical-gap--medium: var(--gap-4);
  --progress-tracker-vertical-gap--large: var(--gap-6);
  --progresstracker-full-marker-size: 2.8rem;
  --progresstracker-connector-gap: 0.5rem; }

:root {
  --form-range-height: 20px;
  --form-range-track-height: 10px;
  --form-range-thumb-size: 18px;
  --form-range-thumb-margin-top: calc((var(--form-range-track-height) / 2) - (var(--form-range-thumb-size) / 2));
  --form-range-thumb-border-radius: 50%; }

:root {
  --transition-form-function: linear;
  --transition-form-duration: 0s;
  --transition-modal-function: ease-out;
  --transition-modal-duration: 0.15s;
  --transition-sidepanel-content-function: linear;
  --transition-sidepanel-content-duration: 0.1s;
  --transition-progress-function: ease-out;
  --transition-progress-duration: 0.3s;
  --transition-button-function: ease;
  --transition-button-duration: 0.15s;
  --transition-toggle-function: ease;
  --transition-toggle-duration: 0.2s; }

:root {
  --modal-container-padding: var(--gap-12);
  --modal-sheet-padding: var(--gap-12);
  --modal-border-radius: 1.2rem;
  --modal-content-outer-padding: var(--gap-6);
  --modal-content-separation: var(--gap-2);
  --modal-content-separation-large: var(--gap-8); }

:root {
  --embedded-media-max-width: 700px; }

:root {
  --form-input-height: 3.6rem;
  --form-input-height-large: 4rem;
  --form-input-font-size: var(--font-body-size);
  --form-input-font-size-sm: var(--font-body-small-size);
  --form-input-font-size-lg: var(--font-size-16);
  --form-input-line-height: var(--font-body-line-height);
  --form-input-border-size: 1px;
  --form-input-border-radius: 0.4rem;
  --form-input-invalid-shadow-size: 1px;
  --form-input-limited-width: calc(20 * var(--form-input-font-size));
  --form-notepad-line-height: 3rem;
  --form-notepad-line-border: solid 1px;
  --input-set-spacing: var(--gap-2);
  --char-length-scale: 2, 3, 4, 5, 10, 15, 20, 25, 30, 50, 75, 100;
  --radio-label-offset: calc(var(--form-radio-size) * 1.35);
  --form-input-v-padding: var(--gap-2); }

:root {
  --separator-dot-gap: 0.53em;
  --separator-dot-size: 0.2em;
  --separator-pipe-gap: 0.53em;
  --separator-pipe-size: 1px; }

:root {
  --tag-height: 24px;
  --tag-border-radius: 12px; }

:root {
  --font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
  --font-family-monospace: Menlo, Monaco, Consolas, 'Liberation Mono', 'Courier New', monospace;
  --font-body-line-height: 1.429;
  --font-body-large-line-height: 1.33;
  --font-body-small-line-height: 1.154;
  --font-body-x-small-line-height: 1.25;
  --font-body-xx-small-line-height: 1.1;
  --font-heading-large-line-height: 1.167;
  --font-heading-line-height: 1.333;
  --font-heading-small-line-height: 1.333;
  --font-heading-x-small-line-height: 1.333;
  --font-body-size: var(--font-size-14);
  --font-body-small-size: var(--font-size-13);
  --font-body-x-small-size: var(--font-size-12);
  --font-body-xx-small-size: var(--font-size-11);
  --font-heading-large-size: var(--font-size-50);
  --font-heading-size: var(--font-size-30);
  --font-heading-small-size: var(--font-size-20);
  --font-heading-x-small-size: var(--font-size-16); }

:root {
  --zindex-sticky: 500;
  --zindex-floating-ui: 5000;
  --zindex-dropdown-menu: 10000;
  --zindex-modal: 100050;
  --zindex-modal-backdrop: 100040;
  --zindex-popover: 100050;
  --zindex-loading-page: 100060;
  --zindex-toast: 100070;
  --zindex-error-modal: 100070;
  --zindex-draggable: 100080; }

/* This file is part of Totara Enterprise Extensions.*/
/**/
/* Copyright (C) 2020 onwards Totara Learning Solutions LTD*/
/**/
/* Totara Enterprise Extensions is provided only to Totara*/
/* Learning Solutions LTD's customers and partners, pursuant to*/
/* the terms and conditions of a separate agreement with Totara*/
/* Learning Solutions LTD or its affiliate.*/
/**/
/* If you do not have an agreement with Totara Learning Solutions*/
/* LTD, you may not access, use, modify, or distribute this software.*/
/* Please contact [licensing@totaralearning.com] for more information.*/
/**/
/* @author    Kevin Hottinger <kevin.hottinger@totaralearning.com>*/
/* @module tuickage   tui*/
html {
  font-size: 10px; }

.tui-sr-only {
  /* The use of '!important' here is an exception and should not be replicated else where */
  /* stylelint-disable declaration-no-important */
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  margin: -1px !important;
  padding: 0 !important;
  overflow: hidden !important;
  white-space: nowrap !important;
  border: 0 !important;
  clip: rect(0, 0, 0, 0) !important;
  /* stylelint-enable */ }

/* rendered editor content*/
.tui-rendered {
  color: var(--color-text);
  font-weight: normal;
  font-size: var(--font-body-size);
  line-height: var(--font-body-line-height);
  word-break: break-word; }
  .tui-rendered h2 {
    font-weight: bold;
    font-size: var(--font-heading-large-size);
    line-height: var(--font-heading-large-line-height); }
  .tui-rendered h3 {
    font-weight: 500;
    font-size: var(--font-heading-size);
    line-height: var(--font-heading-line-height); }
  .tui-rendered h4 {
    font-weight: bold;
    font-size: var(--font-heading-small-size);
    line-height: var(--font-heading-small-line-height); }
  .tui-rendered h5 {
    font-weight: bold;
    font-size: var(--font-heading-x-small-size);
    line-height: var(--font-heading-x-small-line-height); }
  .tui-rendered__block {
    margin-bottom: var(--paragraph-gap); }
  .tui-rendered__embedContainer {
    max-width: var(--embedded-media-max-width); }

/* Color state for the icons.*/
.tui-icon--disabled {
  color: var(--color-neutral-2); }
.tui-icon--action {
  color: var(--color-state); }
.tui-icon--info {
  color: var(--color-prompt-info); }
.tui-icon--alert {
  color: var(--color-prompt-alert); }
.tui-icon--warning {
  color: var(--color-prompt-warning); }
.tui-icon--success {
  color: var(--color-prompt-success); }
.tui-icon--dimmed {
  color: var(--color-neutral-6); }

.tui-adder {
  display: flex;
  flex-direction: column;
  flex-grow: 1;
  height: 50rem; }
  .tui-adder__notices {
    margin-bottom: var(--gap-6); }
  .tui-adder__tabs {
    flex-grow: 1;
    min-height: 0; }
  .tui-adder__tabPanel {
    display: flex;
    flex-direction: column; }
  .tui-adder__list {
    flex-grow: 1;
    height: 316px;
    overflow-y: auto; }
    .tui-adder__list-loading {
      display: flex;
      flex-direction: column;
      flex-grow: 1;
      min-height: 50px; }
    .tui-adder__list-loadMore {
      margin: var(--gap-4) 0 var(--gap-4);
      text-align: center; }
    .tui-adder__list::before {
      display: block;
      height: var(--gap-4);
      content: ''; }
  .tui-adder__footer {
    display: flex;
    flex-wrap: wrap;
    border-top: var(--border-width-normal) solid var(--color-neutral-5); }
    .tui-adder__footer > * {
      margin-top: var(--gap-6); }
  .tui-adder__summary {
    display: flex;
    align-items: center;
    font-weight: bold;
    font-size: var(--font-body-size);
    line-height: var(--font-body-line-height); }
  .tui-adder__actions {
    display: flex;
    margin-left: auto; }

.tui-hierarchicalParentButton {
  display: flex;
  align-items: center;
  padding: var(--gap-4) 0 0; }
  .tui-hierarchicalParentButton__backArrow {
    text-align: start; }
  @media screen and (min-width: 600px) {
    .tui-hierarchicalParentButton__backArrow {
      text-align: center; } }
  .tui-hierarchicalParentButton__label {
    margin-left: var(--gap-2); }

:root {
  --avatar-border-radius: 50%;
  --avatar-large-width: 185px;
  --avatar-large-height: 185px;
  --avatar-large-padding: 5px;
  --avatar-medium-width: 105px;
  --avatar-medium-height: 105px;
  --avatar-medium-padding: 3px;
  --avatar-small-width: 50px;
  --avatar-small-height: 50px;
  --avatar-small-padding: 2px;
  --avatar-xsmall-width: 38px;
  --avatar-xsmall-height: 38px;
  --avatar-xsmall-padding: 1px;
  --avatar-xxsmall-width: 24px;
  --avatar-xxsmall-height: 24px;
  --avatar-xxsmall-padding: 1px; }

.tui-avatar {
  border: var(--border-width-normal) solid var(--avatar-border-color);
  border-radius: var(--avatar-border-radius); }
  .tui-avatar--large {
    width: var(--avatar-large-width);
    height: var(--avatar-large-height);
    padding: var(--avatar-large-padding); }
  .tui-avatar--medium {
    width: var(--avatar-medium-width);
    height: var(--avatar-medium-height);
    padding: var(--avatar-medium-padding); }
  .tui-avatar--small {
    width: var(--avatar-small-width);
    height: var(--avatar-small-height);
    padding: var(--avatar-small-padding); }
  .tui-avatar--xsmall {
    width: var(--avatar-xsmall-width);
    height: var(--avatar-xsmall-height);
    padding: var(--avatar-xsmall-padding); }
  .tui-avatar--xxsmall {
    width: var(--avatar-xxsmall-width);
    height: var(--avatar-xxsmall-height);
    padding: var(--avatar-xxsmall-padding); }

.tui-basket {
  color: var(--color-text);
  font-weight: normal;
  font-size: var(--font-body-size);
  line-height: var(--font-body-line-height);
  display: flex;
  flex-direction: column;
  flex-wrap: wrap;
  background-color: var(--color-neutral-3);
  border: var(--border-width-thin) solid var(--color-neutral-5); }
@media (min-width: 768px) {
  .tui-basket {
    flex-direction: row;
    align-items: center;
    justify-content: space-between; } }
.tui-basket__status, .tui-basket__actions {
  display: flex;
  flex-shrink: 0;
  flex-wrap: wrap;
  align-items: center;
  padding: var(--gap-2) var(--gap-3); }
  .tui-basket__status > *, .tui-basket__actions > * {
    margin-top: var(--gap-2);
    margin-left: var(--gap-4); }
  @media (min-width: 600px) {
    .tui-basket__status > *, .tui-basket__actions > * {
      margin-top: 0;
      margin-left: 0; }
    .tui-basket__status > .tui-formBtn--transparent, .tui-basket__status > .tui-iconBtn--transparent, .tui-basket__status > .tui-iconBtn--transparent-noPadding, .tui-basket__status > .tui-toggleSwitch__btn, .tui-basket__actions > .tui-formBtn--transparent, .tui-basket__actions > .tui-iconBtn--transparent, .tui-basket__actions > .tui-iconBtn--transparent-noPadding, .tui-basket__actions > .tui-toggleSwitch__btn {
      padding: var(--gap-1); }
    .tui-basket__status > * + *, .tui-basket__actions > * + * {
      margin-left: var(--gap-2); }
      .tui-basket--wideGap .tui-basket__status > * + *, .tui-basket--wideGap .tui-basket__actions > * + * {
        margin-left: var(--gap-4); } }
.tui-basket__selected {
  font-weight: bold; }
.tui-basket__selectedCount {
  font-size: var(--font-size-18); }

.tui-formBtn, .tui-iconBtn, .tui-actionLink, .tui-toggleSwitch__btn {
  position: relative;
  display: inline-block;
  flex-shrink: 0;
  min-width: var(--btn-min-width);
  max-width: 100%;
  min-height: var(--btn-min-height);
  /* prettier-ignore*/
  padding: calc((var(--btn-min-height) - var(--btn-font-size) * var(--btn-line-height)) / 2 - var(--btn-border-width)) var(--btn-padding-h);
  color: var(--btn-text-color);
  font-size: var(--btn-font-size);
  line-height: var(--btn-line-height);
  overflow-wrap: break-word;
  background: var(--btn-bg-color);
  border: var(--btn-border-width) solid;
  border-color: var(--btn-border-color);
  border-radius: var(--btn-radius);
  cursor: pointer;
  transition: background-color var(--transition-button-duration) var(--transition-button-function), border-color var(--transition-button-duration) var(--transition-button-function), box-shadow var(--transition-button-duration) var(--transition-button-function); }
  .tui-formBtn > .tui-formBtn__caret, .tui-iconBtn > .tui-formBtn__caret, .tui-actionLink > .tui-formBtn__caret, .tui-toggleSwitch__btn > .tui-formBtn__caret {
    margin-left: var(--gap-2); }
  .tui-formBtn .tui-formBtn__loading, .tui-iconBtn .tui-formBtn__loading, .tui-actionLink .tui-formBtn__loading, .tui-toggleSwitch__btn .tui-formBtn__loading {
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--btn-loader-color-disabled); }
  .tui-formBtn:focus, .tui-iconBtn:focus, .tui-actionLink:focus, .tui-toggleSwitch__btn:focus {
    color: var(--btn-text-color);
    text-decoration: none;
    background: var(--btn-bg-color);
    border-color: var(--btn-border-color);
    outline: none;
    box-shadow: var(--btn-shadow); }
  .tui-formBtn:focus-visible, .tui-iconBtn:focus-visible, .tui-actionLink:focus-visible, .tui-toggleSwitch__btn:focus-visible {
    outline: 2px solid var(--color-state-focus);
    outline-offset: var(--focus-outline-offset); }
  .tui-formBtn:hover, .tui-iconBtn:hover, .tui-actionLink:hover, .tui-toggleSwitch__btn:hover {
    color: var(--btn-text-color-hover);
    text-decoration: none;
    background: var(--btn-bg-color-hover);
    border-color: var(--btn-border-color-hover);
    box-shadow: var(--btn-shadow-hover); }
  .tui-formBtn:active, .tui-iconBtn:active, .tui-actionLink:active, .tui-toggleSwitch__btn:active {
    color: var(--btn-text-color-active);
    background: var(--btn-bg-color-active);
    border: var(--btn-border-width) solid;
    border-color: var(--btn-border-color-active);
    box-shadow: var(--btn-shadow-active); }
  .tui-formBtn:disabled, .tui-iconBtn:disabled, .tui-actionLink:disabled, .tui-toggleSwitch__btn:disabled, .tui-formBtn[disabled], .tui-iconBtn[disabled], .tui-actionLink[disabled], .tui-toggleSwitch__btn[disabled], .tui-formBtn--loading {
    color: var(--btn-text-color-disabled);
    background-color: var(--btn-bg-color-disabled);
    border-color: var(--btn-border-color-disabled);
    cursor: default;
    opacity: 1; }
    .tui-formBtn:disabled:active, .tui-iconBtn:disabled:active, .tui-actionLink:disabled:active, .tui-toggleSwitch__btn:disabled:active, .tui-formBtn[disabled]:active, .tui-iconBtn[disabled]:active, .tui-actionLink[disabled]:active, .tui-toggleSwitch__btn[disabled]:active, .tui-formBtn--loading:active, .tui-formBtn:disabled:focus, .tui-iconBtn:disabled:focus, .tui-actionLink:disabled:focus, .tui-toggleSwitch__btn:disabled:focus, .tui-formBtn[disabled]:focus, .tui-iconBtn[disabled]:focus, .tui-actionLink[disabled]:focus, .tui-toggleSwitch__btn[disabled]:focus, .tui-formBtn--loading:focus, .tui-formBtn:disabled:hover, .tui-iconBtn:disabled:hover, .tui-actionLink:disabled:hover, .tui-toggleSwitch__btn:disabled:hover, .tui-formBtn[disabled]:hover, .tui-iconBtn[disabled]:hover, .tui-actionLink[disabled]:hover, .tui-toggleSwitch__btn[disabled]:hover, .tui-formBtn--loading:hover {
      color: var(--btn-text-color-disabled);
      background-color: var(--btn-bg-color-disabled);
      border-color: var(--btn-border-color-disabled);
      box-shadow: none; }
  .tui-formBtn--alert, .tui-iconBtn--alert, .tui-formBtn--alert:focus, .tui-iconBtn--alert:focus {
    color: var(--btn-alert-text-color);
    background: var(--btn-alert-bg-color);
    border-color: var(--btn-alert-border-color); }
  .tui-formBtn--alert:focus-visible, .tui-iconBtn--alert:focus-visible {
    outline-color: var(--btn-alert-border-color); }
  .tui-formBtn--alert:hover, .tui-iconBtn--alert:hover {
    color: var(--btn-alert-text-color-hover);
    background: var(--btn-alert-bg-color-hover);
    border-color: var(--btn-alert-border-color-hover); }
  .tui-formBtn--alert:active, .tui-iconBtn--alert:active {
    color: var(--btn-alert-text-color-active);
    background: var(--btn-alert-bg-color-active);
    border-color: var(--btn-alert-border-color-active); }
  .tui-formBtn--alert:disabled, .tui-iconBtn--alert:disabled, .tui-formBtn--alert[disabled], .tui-iconBtn--alert[disabled], .tui-formBtn--alert.tui-formBtn--loading, .tui-iconBtn--alert.tui-formBtn--loading {
    color: var(--btn-alert-text-color-disabled);
    background: var(--btn-alert-bg-color-disabled);
    border-color: var(--btn-alert-border-color-disabled);
    cursor: default;
    opacity: 1; }
    .tui-formBtn--alert:disabled:active, .tui-iconBtn--alert:disabled:active, .tui-formBtn--alert[disabled]:active, .tui-iconBtn--alert[disabled]:active, .tui-formBtn--alert.tui-formBtn--loading:active, .tui-iconBtn--alert.tui-formBtn--loading:active, .tui-formBtn--alert:disabled:focus, .tui-iconBtn--alert:disabled:focus, .tui-formBtn--alert[disabled]:focus, .tui-iconBtn--alert[disabled]:focus, .tui-formBtn--alert.tui-formBtn--loading:focus, .tui-iconBtn--alert.tui-formBtn--loading:focus, .tui-formBtn--alert:disabled:hover, .tui-iconBtn--alert:disabled:hover, .tui-formBtn--alert[disabled]:hover, .tui-iconBtn--alert[disabled]:hover, .tui-formBtn--alert.tui-formBtn--loading:hover, .tui-iconBtn--alert.tui-formBtn--loading:hover {
      color: var(--btn-alert-text-color-disabled);
      background: var(--btn-alert-bg-color-disabled);
      border-color: var(--btn-alert-border-color-disabled);
      box-shadow: none; }
  .tui-formBtn--prim, .tui-iconBtn--prim, .tui-actionLink--prim {
    font-weight: bold; }
    .tui-formBtn--prim, .tui-iconBtn--prim, .tui-actionLink--prim, .tui-formBtn--prim:focus, .tui-iconBtn--prim:focus, .tui-actionLink--prim:focus {
      color: var(--btn-prim-text-color);
      background: var(--btn-prim-bg-color);
      border-color: var(--btn-prim-border-color); }
    .tui-formBtn--prim:hover, .tui-iconBtn--prim:hover, .tui-actionLink--prim:hover {
      color: var(--btn-prim-text-color-hover);
      background: var(--btn-prim-bg-color-hover);
      border-color: var(--btn-prim-border-color-hover); }
    .tui-formBtn--prim:active, .tui-iconBtn--prim:active, .tui-actionLink--prim:active {
      color: var(--btn-prim-text-color-active);
      background: var(--btn-prim-bg-color-active);
      border-color: var(--btn-prim-border-color-active); }
    .tui-formBtn--prim:disabled, .tui-iconBtn--prim:disabled, .tui-actionLink--prim:disabled, .tui-formBtn--prim[disabled], .tui-iconBtn--prim[disabled], .tui-actionLink--prim[disabled], .tui-formBtn--prim.tui-formBtn--loading, .tui-iconBtn--prim.tui-formBtn--loading, .tui-actionLink--prim.tui-formBtn--loading {
      color: var(--btn-prim-text-color-disabled);
      background: var(--btn-prim-bg-color-disabled);
      border-color: var(--btn-prim-border-color-disabled);
      cursor: default;
      opacity: 1; }
      .tui-formBtn--prim:disabled:active, .tui-iconBtn--prim:disabled:active, .tui-actionLink--prim:disabled:active, .tui-formBtn--prim[disabled]:active, .tui-iconBtn--prim[disabled]:active, .tui-actionLink--prim[disabled]:active, .tui-formBtn--prim.tui-formBtn--loading:active, .tui-iconBtn--prim.tui-formBtn--loading:active, .tui-actionLink--prim.tui-formBtn--loading:active, .tui-formBtn--prim:disabled:focus, .tui-iconBtn--prim:disabled:focus, .tui-actionLink--prim:disabled:focus, .tui-formBtn--prim[disabled]:focus, .tui-iconBtn--prim[disabled]:focus, .tui-actionLink--prim[disabled]:focus, .tui-formBtn--prim.tui-formBtn--loading:focus, .tui-iconBtn--prim.tui-formBtn--loading:focus, .tui-actionLink--prim.tui-formBtn--loading:focus, .tui-formBtn--prim:disabled:hover, .tui-iconBtn--prim:disabled:hover, .tui-actionLink--prim:disabled:hover, .tui-formBtn--prim[disabled]:hover, .tui-iconBtn--prim[disabled]:hover, .tui-actionLink--prim[disabled]:hover, .tui-formBtn--prim.tui-formBtn--loading:hover, .tui-iconBtn--prim.tui-formBtn--loading:hover, .tui-actionLink--prim.tui-formBtn--loading:hover {
        color: var(--btn-prim-text-color-disabled);
        background: var(--btn-prim-bg-color-disabled);
        border-color: var(--btn-prim-border-color-disabled);
        box-shadow: none; }
    .tui-formBtn--prim .tui-formBtn__loading, .tui-iconBtn--prim .tui-formBtn__loading, .tui-actionLink--prim .tui-formBtn__loading {
      color: var(--btn-prim-loader-color-disabled); }
  .tui-formBtn--small, .tui-iconBtn--small, .tui-actionLink--small {
    min-height: var(--btn-sm-min-height);
    /* prettier-ignore*/
    padding: calc((var(--btn-sm-min-height) - var(--btn-sm-font-size) * var(--btn-sm-line-height)) / 2 - var(--btn-border-width)) var(--btn-sm-padding-h);
    font-size: var(--btn-sm-font-size);
    line-height: var(--btn-sm-line-height);
    border-radius: var(--btn-sm-radius); }
  .tui-formBtn--transparent, .tui-iconBtn--transparent, .tui-iconBtn--transparent-noPadding, .tui-toggleSwitch__btn, .tui-formBtn--reveal {
    min-height: auto;
    padding: 0;
    line-height: 1;
    border-radius: 0; }
  .tui-formBtn--transparent, .tui-iconBtn--transparent, .tui-iconBtn--transparent-noPadding, .tui-toggleSwitch__btn, .tui-formBtn--reveal, .tui-formBtn--stealth, .tui-iconBtn--stealth {
    min-width: 0;
    color: var(--color-state);
    background: transparent;
    border: none;
    cursor: pointer; }
    .tui-formBtn--transparent:focus, .tui-iconBtn--transparent:focus, .tui-iconBtn--transparent-noPadding:focus, .tui-toggleSwitch__btn:focus, .tui-formBtn--reveal:focus, .tui-formBtn--stealth:focus, .tui-iconBtn--stealth:focus {
      color: var(--color-state-focus);
      text-decoration: none;
      background: transparent;
      border: none;
      box-shadow: none; }
    .tui-formBtn--transparent:hover, .tui-iconBtn--transparent:hover, .tui-iconBtn--transparent-noPadding:hover, .tui-toggleSwitch__btn:hover, .tui-formBtn--reveal:hover, .tui-formBtn--stealth:hover, .tui-iconBtn--stealth:hover {
      color: var(--color-state-hover);
      text-decoration: none;
      background: transparent;
      border: none;
      box-shadow: none; }
    .tui-formBtn--transparent:active, .tui-iconBtn--transparent:active, .tui-iconBtn--transparent-noPadding:active, .tui-toggleSwitch__btn:active, .tui-formBtn--reveal:active, .tui-formBtn--stealth:active, .tui-iconBtn--stealth:active {
      color: var(--color-state-active);
      text-decoration: none;
      background: transparent;
      border: none;
      box-shadow: none; }
    .tui-formBtn--transparent:focus-visible, .tui-iconBtn--transparent:focus-visible, .tui-iconBtn--transparent-noPadding:focus-visible, .tui-toggleSwitch__btn:focus-visible, .tui-formBtn--reveal:focus-visible, .tui-formBtn--stealth:focus-visible, .tui-iconBtn--stealth:focus-visible {
      outline: 2px solid var(--color-state-focus);
      outline-offset: var(--focus-outline-offset); }
    .tui-formBtn--transparent:disabled, .tui-iconBtn--transparent:disabled, .tui-iconBtn--transparent-noPadding:disabled, .tui-toggleSwitch__btn:disabled, .tui-formBtn--reveal:disabled, .tui-formBtn--stealth:disabled, .tui-iconBtn--stealth:disabled, .tui-formBtn--transparent.tui-formBtn--loading, .tui-iconBtn--transparent.tui-formBtn--loading, .tui-iconBtn--transparent-noPadding.tui-formBtn--loading, .tui-toggleSwitch__btn.tui-formBtn--loading, .tui-formBtn--reveal.tui-formBtn--loading, .tui-formBtn--stealth.tui-formBtn--loading, .tui-iconBtn--stealth.tui-formBtn--loading {
      color: var(--color-state-disabled);
      background: transparent;
      opacity: 1; }
      .tui-formBtn--transparent:disabled:active, .tui-iconBtn--transparent:disabled:active, .tui-iconBtn--transparent-noPadding:disabled:active, .tui-toggleSwitch__btn:disabled:active, .tui-formBtn--reveal:disabled:active, .tui-formBtn--stealth:disabled:active, .tui-iconBtn--stealth:disabled:active, .tui-formBtn--transparent.tui-formBtn--loading:active, .tui-iconBtn--transparent.tui-formBtn--loading:active, .tui-iconBtn--transparent-noPadding.tui-formBtn--loading:active, .tui-toggleSwitch__btn.tui-formBtn--loading:active, .tui-formBtn--reveal.tui-formBtn--loading:active, .tui-formBtn--stealth.tui-formBtn--loading:active, .tui-iconBtn--stealth.tui-formBtn--loading:active, .tui-formBtn--transparent:disabled:focus, .tui-iconBtn--transparent:disabled:focus, .tui-iconBtn--transparent-noPadding:disabled:focus, .tui-toggleSwitch__btn:disabled:focus, .tui-formBtn--reveal:disabled:focus, .tui-formBtn--stealth:disabled:focus, .tui-iconBtn--stealth:disabled:focus, .tui-formBtn--transparent.tui-formBtn--loading:focus, .tui-iconBtn--transparent.tui-formBtn--loading:focus, .tui-iconBtn--transparent-noPadding.tui-formBtn--loading:focus, .tui-toggleSwitch__btn.tui-formBtn--loading:focus, .tui-formBtn--reveal.tui-formBtn--loading:focus, .tui-formBtn--stealth.tui-formBtn--loading:focus, .tui-iconBtn--stealth.tui-formBtn--loading:focus, .tui-formBtn--transparent:disabled:hover, .tui-iconBtn--transparent:disabled:hover, .tui-iconBtn--transparent-noPadding:disabled:hover, .tui-toggleSwitch__btn:disabled:hover, .tui-formBtn--reveal:disabled:hover, .tui-formBtn--stealth:disabled:hover, .tui-iconBtn--stealth:disabled:hover, .tui-formBtn--transparent.tui-formBtn--loading:hover, .tui-iconBtn--transparent.tui-formBtn--loading:hover, .tui-iconBtn--transparent-noPadding.tui-formBtn--loading:hover, .tui-toggleSwitch__btn.tui-formBtn--loading:hover, .tui-formBtn--reveal.tui-formBtn--loading:hover, .tui-formBtn--stealth.tui-formBtn--loading:hover, .tui-iconBtn--stealth.tui-formBtn--loading:hover {
        color: var(--color-state-disabled);
        background: transparent;
        box-shadow: none; }
  .tui-formBtn--reveal {
    color: currentColor;
    border-bottom: 1px dashed var(--color-state); }
    .tui-formBtn--reveal:focus, .tui-formBtn--reveal:hover, .tui-formBtn--reveal:active {
      color: currentColor;
      border-bottom: 1px dashed var(--color-state); }
    .tui-formBtn--reveal:disabled, .tui-formBtn--reveal.tui-formBtn--loading {
      color: currentColor;
      border-bottom: 1px dashed var(--color-state);
      opacity: 0.7; }
      .tui-formBtn--reveal:disabled:active, .tui-formBtn--reveal.tui-formBtn--loading:active, .tui-formBtn--reveal:disabled:focus, .tui-formBtn--reveal.tui-formBtn--loading:focus, .tui-formBtn--reveal:disabled:hover, .tui-formBtn--reveal.tui-formBtn--loading:hover {
        color: currentColor;
        border-bottom: 1px dashed var(--color-state); }
  .tui-formBtn--transparent .tui-formBtn__text, .tui-iconBtn--transparent .tui-formBtn__text, .tui-iconBtn--transparent-noPadding .tui-formBtn__text, .tui-toggleSwitch__btn .tui-formBtn__text {
    position: relative; }
  .tui-formBtn--loading .tui-formBtn__text {
    visibility: hidden; }
  .tui-formBtn--srOnly, .tui-actionLink--srOnly {
    /* The use of '!important' here is an exception and should not be replicated else where */
    /* stylelint-disable declaration-no-important */
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    margin: -1px !important;
    padding: 0 !important;
    overflow: hidden !important;
    white-space: nowrap !important;
    border: 0 !important;
    clip: rect(0, 0, 0, 0) !important;
    /* stylelint-enable */ }

.tui-formBtnGroup {
  display: flex; }
  .tui-formBtnGroup .tui-formBtn, .tui-formBtnGroup .tui-iconBtn, .tui-formBtnGroup .tui-actionLink, .tui-formBtnGroup .tui-toggleSwitch__btn {
    min-width: 80px; }
  .tui-formBtnGroup > :not(:first-child) {
    margin: auto 0 auto var(--gap-4); }

.tui-iconBtn {
  /* stylelint-disable-next-line tui/at-extend-only-placeholders*/
  display: inline-block;
  min-width: 0;
  padding: 0 var(--gap-2);
  /* in order to vertically center content in IE we need this display: flex*/
  /* wrapping div because:*/
  /*   * putting `display: flex;` on .tui-iconBtn does not center vertically*/
  /*     due to an IE 11 flex bug*/
  /*     https://github.com/philipwalton/flexbugs#flexbug-3*/
  /*   * relying on vertical-align for centering instead is not good enough -*/
  /*     it's off by a px or two*/ }
  .tui-iconBtn__wrap {
    display: flex;
    align-items: center;
    justify-content: center; }
    .tui-iconBtn__wrap > .tui-iconBtn__caret {
      margin: 0 var(--gap-1); }
    .tui-iconBtn__wrap > .tui-iconBtn__loading {
      margin-left: var(--gap-1); }
  .tui-iconBtn__icon {
    display: flex;
    flex-shrink: 0;
    font-size: var(--font-size-16); }
  .tui-iconBtn__label {
    display: inline-flex;
    align-items: center; }
  .tui-iconBtn__text {
    word-break: break-word;
    -webkit-hyphens: none;
    hyphens: none; }
    .ie .tui-iconBtn__text {
      -ms-word-break: break-all;
      -ms-hyphens: none; }
  .tui-iconBtn--alert {
    /* stylelint-disable-next-line tui/at-extend-only-placeholders*/ }
  .tui-iconBtn--prim {
    /* stylelint-disable-next-line tui/at-extend-only-placeholders*/ }
  .tui-iconBtn--small {
    /* stylelint-disable-next-line tui/at-extend-only-placeholders*/
    padding: 0 var(--gap-1);
    font-size: var(--font-size-13); }
    .tui-iconBtn--small .tui-iconBtn__icon {
      padding: 0 2px;
      font-size: var(--font-size-14); }
  .tui-iconBtn--xsmall {
    min-height: 2rem;
    padding: 0 0.1rem;
    font-size: var(--font-size-12); }
    .tui-iconBtn--xsmall .tui-iconBtn__icon {
      padding: 0 1px;
      font-size: var(--font-size-11); }
  .tui-iconBtn--small.tui-iconBtn--hasText .tui-iconBtn__icon, .tui-iconBtn--xsmall.tui-iconBtn--hasText .tui-iconBtn__icon {
    padding-right: 0; }
  .tui-iconBtn--xsmall.tui-iconBtn--transparent-noPadding {
    min-height: unset; }
  .tui-iconBtn--circle {
    width: 3.6rem;
    height: 3.6rem;
    padding: 0;
    border-radius: 50%; }
    .tui-iconBtn--circle.tui-iconBtn--small {
      width: 3rem;
      height: 3rem; }
    .tui-iconBtn--circle.tui-iconBtn--xsmall {
      width: 2rem;
      height: 2rem; }
  .tui-iconBtn--transparent {
    /* stylelint-disable-next-line tui/at-extend-only-placeholders*/ }
  .tui-iconBtn--transparent-noPadding {
    /* stylelint-disable-next-line tui/at-extend-only-placeholders*/ }
    .tui-iconBtn--transparent-noPadding.tui-iconBtn, .tui-iconBtn--transparent-noPadding.tui-iconBtn--small, .tui-iconBtn--transparent-noPadding.tui-iconBtn--xsmall {
      padding: 0; }
  .tui-iconBtn--stealth {
    /* stylelint-disable-next-line tui/at-extend-only-placeholders*/ }
  .tui-iconBtn--textFirst .tui-iconBtn__label {
    flex-direction: row-reverse; }
    .tui-iconBtn--textFirst .tui-iconBtn__label .tui-iconBtn__text {
      padding: 0 var(--gap-1); }

.tui-iconBtn__text {
  padding: 0 var(--gap-1); }

.tui-infoIconButton.tui-iconBtn {
  width: auto;
  height: auto;
  vertical-align: -0.125em; }

.tui-labelledButtonTrigger {
  display: inline-flex;
  flex-direction: column;
  align-items: center; }
  .tui-labelledButtonTrigger__label {
    color: var(--color-state); }
    .tui-labelledButtonTrigger__label:hover {
      text-decoration: underline;
      cursor: pointer; }

.tui-actionCard {
  flex-direction: column;
  padding: var(--gap-4); }
  .tui-actionCard__body {
    display: flex;
    flex-grow: 1;
    flex-shrink: 1;
    flex-wrap: wrap;
    align-items: center; }
  .tui-actionCard__action {
    display: flex;
    flex-shrink: 0;
    align-items: normal;
    padding: var(--gap-4) 0 0; }
  .tui-actionCard--noPadding {
    padding: 0; }
  .tui-actionCard--noWrap {
    flex-direction: row; }
  .tui-actionCard--noWrap .tui-actionCard__action {
    flex-direction: row;
    padding: 0; }
  .tui-actionCard--shaded {
    background: var(--color-neutral-3); }

@media screen and (min-width: 768px) {
  .tui-actionCard {
    flex-direction: row; }
    .tui-actionCard--stacked {
      flex-direction: column; }
    .tui-actionCard:not(.tui-actionCard--stacked) .tui-actionCard__action {
      align-items: center;
      padding: 0 0 0 var(--gap-4); } }

.tui-card {
  position: relative;
  display: flex;
  border: 1px solid var(--card-border-color);
  border-radius: var(--card-border-radius);
  outline: none; }
  .tui-card__link {
    position: absolute;
    width: 100%;
    height: 100%; }
  .tui-card--noBorder {
    border: none; }
    .tui-card--noBorder:focus, .tui-card--noBorder:hover {
      border: none; }
  .tui-card--hasHoverShadow:focus, .tui-card--hasHoverShadow:hover {
    box-shadow: var(--shadow-2); }
  .tui-card--hasShadow {
    box-shadow: var(--shadow-2); }
  .tui-card--clickable {
    transition: box-shadow var(--transition-form-function) var(--transition-form-duration); }
    .tui-card--clickable.tui-focusWithin {
      box-shadow: var(--shadow-2); }
  .tui-card--clickable:hover {
    box-shadow: var(--shadow-2);
    cursor: pointer; }
  .tui-card--clickable:focus {
    outline: 2px solid var(--color-state-focus);
    outline-offset: var(--focus-outline-offset); }

.tui-collapsible__header {
  display: flex;
  background: var(--collapsible-header-bg-color);
  border: var(--border-width-thin) solid var(--collapsible-header-border-color); }
  .tui-collapsible__header-heading {
    display: flex;
    flex-grow: 1;
    margin: 0; }
  .tui-collapsible__header-button {
    word-break: break-word;
    -webkit-hyphens: none;
    hyphens: none;
    display: flex;
    flex-grow: 1;
    margin: 0;
    padding: var(--gap-2) var(--gap-2) var(--gap-2) 0;
    cursor: pointer;
    -webkit-user-select: none;
    user-select: none; }
    .ie .tui-collapsible__header-button {
      -ms-word-break: break-all;
      -ms-hyphens: none; }
    .tui-collapsible__header-button--excludeHeaderPadding {
      padding: 0; }
      .tui-collapsible__header-button:not(.tui-collapsible__header-button--hideFocus):focus-visible {
        outline: 2px solid var(--color-state-focus);
        outline-offset: var(--focus-outline-offset); }
  .tui-collapsible__header-icon {
    flex-shrink: 0;
    margin: 0 var(--gap-4);
    /* 1.25 based on tui-font-heading-x-small line-height*/
    margin-top: calc((var(--font-size-16) * 1.25 - 1.4rem) / 2);
    color: var(--color-state);
    font-size: 1.4rem; }
  .tui-collapsible__header-text {
    font-weight: bold;
    font-size: var(--font-heading-x-small-size);
    line-height: var(--font-heading-x-small-line-height);
    position: relative;
    margin: 0; }
  .tui-collapsible__header-sideContent {
    display: flex;
    flex-shrink: 0;
    padding: var(--gap-2); }
.tui-collapsible__content > .tui-formRowStack {
  margin-top: var(--gap-4);
  /* line up with text of header*/ }
.tui-collapsible__content--indented {
  padding-left: var(--gap-12); }
.tui-collapsible--minimal .tui-collapsible__header {
  background: transparent;
  border-color: transparent; }
.tui-collapsible--largePadding .tui-collapsible__header-button {
  padding: var(--gap-5) var(--gap-2) var(--gap-5) var(--gap-1); }
.tui-collapsible--largePadding .tui-collapsible__header-sideContent {
  padding: var(--gap-2) var(--gap-4); }
.tui-collapsible--largePadding .tui-collapsible__content {
  padding: var(--gap-3);
  padding-top: 0; }
  .tui-collapsible--largePadding .tui-collapsible__content--indented {
    padding-left: calc(var(--gap-12) + var(--gap-1)); }

.tui-collapsibleGroupToggle {
  display: flex; }
  .tui-collapsibleGroupToggle--alignEnd .tui-collapsibleGroupToggle__button {
    margin-left: auto; }

.tui-hideShow {
  display: flex;
  flex-direction: column;
  background: var(--color-neutral-1); }
  .tui-hideShow__content {
    display: none; }
    .tui-hideShow__content--show {
      display: block;
      outline: none; }
  .tui-hideShow__toggle {
    display: flex;
    padding: var(--gap-2) 0; }
    .tui-hideShow__toggle--narrowTrigger {
      padding: 0; }
    .tui-hideShow__toggle--sticky {
      position: sticky;
      top: 0;
      z-index: 1;
      background: inherit; }

@media screen and (min-width: 768px) {
  .tui-hideShow--mobile > .tui-hideShow__toggle {
    display: none; }
  .tui-hideShow--mobile > .tui-hideShow__content {
    display: block; } }

:root {
  --advanced-select-dropdown-trigger-width: 44px;
  --advanced-select-dropdown-trigger-width-large: 52px;
  --advanced-select-dropdown-trigger-height: 28px;
  --advanced-select-dropdown-trigger-height-large: 34px;
  --advanced-select-border-radius: var(--border-radius-small);
  --advanced-select-outline-width: var(--border-width-normal);
  --advanced-select-caret-top-offset: 1px;
  --advanced-select-caret-left-offset: calc(var(--gap-1) * -1);
  --advanced-select-caret-color: var(--color-neutral-7);
  --advanced-select-caret-icon-margin-left-stacked: 25px;
  --advanced-select-caret-left-stacked: -30px;
  --advanced-select-checkbox-padding-top: 6px;
  --advanced-select-checkbox-padding-bottom: 6px;
  --advanced-select-checkbox-padding-left: 5px; }

.tui-advancedTableSelect__dropdownTrigger {
  display: flex;
  width: var(--advanced-select-dropdown-trigger-width);
  height: var(--advanced-select-dropdown-trigger-height);
  margin-right: var(--gap-1); }
  .tui-advancedTableSelect__dropdownTrigger--large {
    width: var(--advanced-select-dropdown-trigger-width-large);
    height: var(--advanced-select-dropdown-trigger-height-large); }
  .tui-advancedTableSelect__dropdownTrigger-checkbox {
    padding: var(--advanced-select-checkbox-padding-top) 0 var(--advanced-select-checkbox-padding-bottom) var(--advanced-select-checkbox-padding-left); }
  .tui-advancedTableSelect__dropdownTrigger-button {
    top: var(--advanced-select-caret-top-offset);
    left: var(--advanced-select-caret-left-offset);
    outline: none; }
    .tui-advancedTableSelect__dropdownTrigger-button:focus, .tui-advancedTableSelect__dropdownTrigger-button:hover, .tui-advancedTableSelect__dropdownTrigger-button:active, .tui-advancedTableSelect__dropdownTrigger-button:active:hover, .tui-advancedTableSelect__dropdownTrigger-button:active:focus {
      outline: none; }
    .tui-advancedTableSelect__dropdownTrigger-button-icon {
      color: var(--advanced-select-caret-color); }
      .tui-advancedTableSelect__dropdownTrigger-button-icon--stacked {
        margin-left: var(--advanced-select-caret-icon-margin-left-stacked); }
    .tui-advancedTableSelect__dropdownTrigger-button--stacked {
      left: var(--advanced-select-caret-left-stacked);
      /* Grey background*/ }
  .tui-advancedTableSelect__dropdownTrigger:focus, .tui-advancedTableSelect__dropdownTrigger:active, .tui-advancedTableSelect__dropdownTrigger:hover, .tui-advancedTableSelect__dropdownTrigger--isOpen {
    background: var(--color-neutral-4);
    border-radius: var(--advanced-select-border-radius);
    /* The green focus outline*/ }
  .tui-advancedTableSelect__dropdownTrigger:focus, .tui-advancedTableSelect__dropdownTrigger:active {
    outline: var(--advanced-select-outline-width) solid var(--color-state-focus);
    outline-offset: var(--advanced-select-outline-width); }
.tui-advancedTableSelect__loader {
  width: var(--form-checkbox-size);
  height: var(--form-checkbox-size);
  margin-right: var(--gap-5);
  margin-left: var(--gap-1); }
  .tui-advancedTableSelect__loader--large {
    width: var(--form-checkbox-size-large);
    height: var(--form-checkbox-size-large); }

.tui-dataTableCell, .tui-dataTableHeaderCell {
  display: flex;
  flex-basis: 0;
  flex-direction: column;
  flex-grow: 1;
  /* ensure excessively long words don't push out cell width */
  min-width: 0;
  /* ensure excessively long words don't overflow */
  word-wrap: break-word; }
  .tui-dataTableCell__label {
    display: none;
    margin-top: var(--gap-2);
    padding: var(--gap-1) 0 var(--gap-2);
    font-weight: bold;
    font-size: var(--font-body-small-size);
    line-height: var(--font-body-small-line-height); }
  .tui-dataTableCell--stacked .tui-dataTableCell__label {
    display: inline-block; }
  .tui-dataTableCell--repeatedHeader .tui-dataTableCell__content {
    /* The use of '!important' here is an exception and should not be replicated else where */
    /* stylelint-disable declaration-no-important */
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    margin: -1px !important;
    padding: 0 !important;
    overflow: hidden !important;
    white-space: nowrap !important;
    border: 0 !important;
    clip: rect(0, 0, 0, 0) !important;
    /* stylelint-enable */ }
    .tui-dataTableCell--size_1 {
      flex-grow: 1; }
    .tui-dataTableCell--size_2 {
      flex-grow: 2; }
    .tui-dataTableCell--size_3 {
      flex-grow: 3; }
    .tui-dataTableCell--size_4 {
      flex-grow: 4; }
    .tui-dataTableCell--size_5 {
      flex-grow: 5; }
    .tui-dataTableCell--size_6 {
      flex-grow: 6; }
    .tui-dataTableCell--size_7 {
      flex-grow: 7; }
    .tui-dataTableCell--size_8 {
      flex-grow: 8; }
    .tui-dataTableCell--size_9 {
      flex-grow: 9; }
    .tui-dataTableCell--size_10 {
      flex-grow: 10; }
    .tui-dataTableCell--size_11 {
      flex-grow: 11; }
    .tui-dataTableCell--size_12 {
      flex-grow: 12; }
    .tui-dataTableCell--size_13 {
      flex-grow: 13; }
    .tui-dataTableCell--size_14 {
      flex-grow: 14; }
    .tui-dataTableCell--size_15 {
      flex-grow: 15; }
    .tui-dataTableCell--size_16 {
      flex-grow: 16; }
  .tui-dataTableCell--align-center {
    align-items: center; }
  .tui-dataTableCell--align-end {
    align-items: flex-end; }
  .tui-dataTableCell--heavy {
    font-weight: bold; }
    .tui-dataTableCell--valign-center {
      justify-content: center; }
    .tui-dataTableCell--valign-end {
      justify-content: flex-end; }
  .tui-dataTableCell--stacked {
    flex-basis: auto;
    align-items: initial; }

.tui-dataTableExpandCell {
  display: flex;
  order: 0;
  width: var(--gap-9);
  margin: 0; }
  .tui-dataTableExpandCell .tui-iconBtn {
    margin: 0 auto; }
  .tui-dataTableExpandCell.tui-dataTableExpandCell--header {
    margin-left: 0; }
  .tui-dataTableExpandCell--stacked {
    order: 1;
    width: 100%;
    margin: var(--gap-2) 0; }

.tui-dataTableExpandableRow {
  position: relative;
  margin: 0 0 var(--gap-2) calc(0px - var(--border-width-thin));
  color: var(--datatable-expanded-text-color);
  background: var(--datatable-expanded-bg-color);
  border: var(--border-width-thin) solid var(--datatable-expanded-border-color);
  border-top: none;
  box-shadow: var(--shadow-2); }
  .tui-dataTableExpandableRow--stealth {
    border: none;
    box-shadow: none; }
    .tui-dataTableExpandableRow--stealth__content {
      padding: 0; }
  .tui-dataTableExpandableRow__content {
    padding: var(--gap-3);
    background: var(--datatable-expanded-bg-color); }
  .tui-dataTableExpandableRow--indented {
    padding-left: var(--gap-11); }
  .tui-dataTableExpandableRow--stacked {
    border-top: none; }
  .tui-dataTableExpandableRow--stacked.tui-dataTableExpandableRow--indented {
    padding-left: 0; }
  .tui-dataTableExpandableRow--indented .tui-dataTableExpandableRow__content {
    padding: var(--gap-3) 0 var(--gap-3) var(--gap-3); }

.tui-dataTableHeaderCell {
  /* stylelint-disable-next-line tui/at-extend-only-placeholders*/
  font-weight: bold;
  font-size: var(--font-body-size);
  line-height: var(--font-body-line-height);
  display: flex;
  color: var(--datatable-cell-header-text-color);
  font-weight: bold; }
  .tui-dataTableHeaderCell--stacked {
    display: none; }

.tui-dataTableRowHeader {
  position: relative;
  display: flex;
  flex-direction: row;
  align-items: center;
  padding: var(--gap-3) var(--gap-1); }
  .tui-dataTableRowHeader--stacked {
    display: block;
    padding: 0; }
  .tui-dataTableRowHeader--stacked.tui-dataTableRowHeader--advancedSelectEnabled {
    padding: var(--gap-2) 0; }
  .tui-dataTableRowHeader--stackedGap {
    margin-top: var(--gap-2); }
  .tui-dataTableRowHeader--thin {
    padding: 0 var(--gap-1) var(--gap-2); }
  .tui-dataTableRowHeader--empty {
    display: none; }
  .tui-dataTableRowHeader > * + * {
    margin-left: var(--gap-4); }
  .tui-dataTableRowHeader--indented {
    padding-left: var(--gap-11); }

.tui-dataTableRow {
  position: relative;
  display: flex;
  flex-direction: row;
  padding: var(--gap-3) var(--gap-1);
  background: var(--datatable-row-bg-color);
  border-top: 1px solid var(--datatable-row-border-color); }
  .tui-dataTableRow > * + * {
    padding-left: var(--gap-4); }
  .tui-dataTableRow:first-child {
    border-top: var(--border-width-normal) solid var(--datatable-row-first-border-color); }
  .tui-dataTableRow:last-child {
    border-bottom: 1px solid var(--datatable-row-border-color); }
  .tui-dataTableRow.tui-focusWithin, .tui-dataTableRow:active, .tui-dataTableRow:hover {
    background: var(--datatable-row-bg-color-focus); }
  .tui-dataTableRow--indented {
    padding-left: var(--gap-11); }
  .tui-dataTableRow--stealth {
    box-shadow: none; }
    .tui-dataTableRow--borderTopFirstOff:first-child {
      border-top: none; }
  .tui-dataTableRow--borderTopThin:first-child {
    border-top-width: var(--border-width-thin); }
.tui-dataTableRow--borderBottomLastOff:last-child {
  border-bottom: none; }
.tui-dataTableRow--borderSeparatorOff:not(:first-child) {
  border-top: none; }
.tui-dataTableRow--selected {
  background: var(--datatable-row-bg-color-active); }
  .tui-dataTableRow--selected:hover {
    background: var(--datatable-row-bg-color-focus); }
.tui-dataTableRow--colorOdd:not(.tui-dataTableRow--selected):nth-child(odd) {
  background: var(--datatable-row-bg-color-odd); }
  .tui-dataTableRow--colorOdd:not(.tui-dataTableRow--selected):nth-child(odd).tui-focusWithin, .tui-dataTableRow--colorOdd:not(.tui-dataTableRow--selected):nth-child(odd):hover {
    background: var(--datatable-row-bg-color-focus); }
.tui-dataTableRow--hoverOff.tui-focusWithin, .tui-dataTableRow--hoverOff:active, .tui-dataTableRow--hoverOff:hover {
  background: var(--datatable-row-bg-color); }
.tui-dataTableRow--hoverOff.tui-dataTableRow--colorOdd:nth-child(odd).tui-focusWithin, .tui-dataTableRow--hoverOff.tui-dataTableRow--colorOdd:nth-child(odd):hover {
  background: var(--datatable-row-bg-color-odd); }
.tui-dataTableRow--inGroup {
  border-top: none; }
  .tui-dataTableRow--inGroup:first-child {
    border-top: none; }
  .tui-dataTableRow--inGroup:last-child {
    border-bottom: none; }
.tui-dataTableRow--disabled {
  color: var(--color-neutral-6);
  /* don't show hover background when another item is being dragged over it*/ }
[data-tui-droppable-any-active] .tui-dataTableRow:hover {
  background: var(--datatable-row-bg-color); }
.tui-dataTableRow--draggable {
  /* apply a background so you don't see through the row when dragging*/
  /* (default is transparent)*/
  background: var(--color-background);
  -webkit-user-select: none;
  user-select: none; }
  .tui-dataTableRow--draggable.tui-focusWithin, .tui-dataTableRow--draggable:active, .tui-dataTableRow--draggable:hover {
    background: var(--color-background); }
.tui-dataTableRow--draggable > .tui-dataTableCell, .tui-dataTableRow--draggable > .tui-dataTableHeaderCell {
  pointer-events: none; }
.tui-dataTableRow--dragging {
  box-shadow: var(--shadow-3); }
.tui-dataTableRow--expanded {
  margin-left: calc(0px - var(--border-width-thin));
  background-color: var(--datatable-expanded-bg-color);
  border: var(--border-width-thin) solid var(--datatable-expanded-border-color);
  border-bottom: none;
  box-shadow: var(--shadow-2); }
.tui-dataTableRow--stealthExpanded {
  border-right: none;
  border-left: none;
  box-shadow: none; }

.tui-dataTableRow--stacked {
  flex-direction: column;
  padding: var(--gap-3) 0; }
  .tui-dataTableRow--stacked > * + * {
    padding-left: 0; }
  .tui-dataTableRow--stacked:first-child {
    border-top: var(--border-width-normal) solid var(--datatable-row-first-border-color); }
  .tui-dataTableRow--stacked:last-child {
    border-bottom: 1px solid var(--datatable-row-border-color); }
    .tui-dataTableRow--stacked.tui-dataTableRow--borderBottomLastOff:last-child {
      border-bottom: none; }
  .tui-dataTableRow--stacked.tui-dataTableRow--borderTopThin:first-child {
    border-top-width: var(--border-width-thin); }
.tui-dataTableRow--stacked.tui-dataTableRow--borderTopFirstOff:first-child {
  border-top: none; }
.tui-dataTableRow--stacked.tui-dataTableRow--inGroup {
  border-top: 1px solid var(--datatable-row-border-color); }
  .tui-dataTableRow--stacked.tui-dataTableRow--inGroup:first-child {
    border-top: none; }
  .tui-dataTableRow--stacked.tui-dataTableRow--inGroup:last-child {
    border-bottom: none; }
  .tui-dataTableRow--stacked.tui-dataTableRow--inGroup:nth-child(odd) {
    background: none; }
  .tui-dataTableRow--stacked.tui-dataTableRow--inGroup:hover {
    background: none; }

.tui-dataTableRowGroup {
  padding: 0;
  border-top: 2px solid var(--datatable-row-first-border-color); }
  .tui-dataTableRowGroup--stacked {
    padding: 0 var(--gap-2); }
  .tui-dataTableRowGroup + .tui-dataTableRowGroup {
    border-top: 1px solid var(--datatable-row-border-color); }
  .tui-dataTableRowGroup:last-child {
    border-bottom: 1px solid var(--datatable-row-border-color); }
  .tui-dataTableRowGroup.tui-focusWithin, .tui-dataTableRowGroup:active, .tui-dataTableRowGroup:hover {
    background: var(--datatable-row-bg-color-focus); }
  .tui-dataTableRowGroup--selected {
    background: var(--datatable-row-bg-color-active); }
    .tui-dataTableRowGroup--selected:hover {
      background: var(--datatable-row-bg-color-focus); }

.tui-dataTableSelectEveryRowToggle {
  padding: var(--gap-2);
  background-color: var(--datatable-select-everything-prompt-bg); }

.tui-dataTableSelectRowCell {
  display: flex;
  flex-direction: column; }
  .tui-dataTableSelectRowCell--advancedSelectEnabled {
    padding-right: var(--gap-5);
    padding-left: calc(var(--gap-1) + 1px); }
  .tui-dataTableSelectRowCell--hidden {
    visibility: hidden; }
  .tui-dataTableSelectRowCell__loader {
    width: var(--form-checkbox-size);
    height: var(--form-checkbox-size); }
    .tui-dataTableSelectRowCell__loader--large {
      width: var(--form-checkbox-size-large);
      height: var(--form-checkbox-size-large); }
  .tui-dataTableSelectRowCell--stacked.tui-dataTableSelectRowCell--hidden {
    height: 0; }
    .tui-dataTableSelectRowCell--valign-start {
      justify-content: flex-start; }
    .tui-dataTableSelectRowCell--valign-center {
      justify-content: center; }
    .tui-dataTableSelectRowCell--valign-end {
      justify-content: flex-end; }

.tui-dataTableSelectVisibleRowsCell {
  display: flex; }
  .tui-dataTableSelectVisibleRowsCell--hidden {
    visibility: hidden; }
  .tui-dataTableSelectVisibleRowsCell__loader {
    width: var(--form-checkbox-size);
    height: var(--form-checkbox-size); }
    .tui-dataTableSelectVisibleRowsCell__loader--large {
      width: var(--form-checkbox-size-large);
      height: var(--form-checkbox-size-large); }
  .tui-dataTableSelectVisibleRowsCell--stacked {
    margin: var(--gap-2) 0; }
  .tui-dataTableSelectVisibleRowsCell__label {
    display: none;
    font-weight: bold;
    font-size: var(--font-body-small-size);
    line-height: var(--font-body-small-line-height);
    padding: 0 0 var(--gap-1) var(--gap-1); }
    .tui-dataTableSelectVisibleRowsCell__label--stacked {
      display: inline-block; }
    .tui-dataTableSelectVisibleRowsCell__label--large {
      padding: var(--gap-1) 0 var(--gap-1) var(--gap-2); }

.tui-dataTable--archived {
  background: var(--datatable-bg-archived); }
.tui-dataTable__row-move-cell {
  flex-basis: var(--gap-5);
  flex-grow: 0; }
.tui-dataTable__row-move-menu {
  position: absolute;
  top: 0;
  left: var(--gap-8);
  background: var(--color-background); }

.tui-andBox {
  /* stylelint-disable-next-line tui/at-extend-only-placeholders*/ }
  .tui-andBox__text {
    /* stylelint-disable-next-line tui/at-extend-only-placeholders*/ }

.tui-arrow {
  position: absolute;
  pointer-events: none; }

.tui-arrow--normal.tui-arrow--top, .tui-arrow--normal.tui-arrow--bottom {
  /*!rtl:ignore*/
  left: 50%;
  width: 20px;
  height: 20px;
  /*!rtl:ignore*/
  margin-left: -10px; }

.tui-arrow--normal.tui-arrow--top {
  top: -20px; }

.tui-arrow--normal.tui-arrow--bottom {
  bottom: -20px; }

.tui-arrow--normal.tui-arrow--left, .tui-arrow--normal.tui-arrow--right {
  top: 50%;
  width: 20px;
  height: 20px;
  margin-top: -10px; }

.tui-arrow--normal.tui-arrow--left {
  left: -20px; }

.tui-arrow--normal.tui-arrow--right {
  right: -20px; }

.tui-arrow--normal.tui-arrow::before {
  position: absolute;
  display: block;
  border: 10px solid transparent;
  content: ''; }

.tui-arrow--normal.tui-arrow--top::before {
  top: 0;
  left: 0;
  border-bottom-color: var(--arrow-border-color); }

.tui-arrow--normal.tui-arrow--bottom::before {
  bottom: 0;
  left: 0;
  border-top-color: var(--arrow-border-color); }

.tui-arrow--normal.tui-arrow--left::before {
  top: 0;
  left: 0;
  border-right-color: var(--arrow-border-color); }

.tui-arrow--normal.tui-arrow--right::before {
  top: 0;
  right: 0;
  border-left-color: var(--arrow-border-color); }

.tui-arrow--normal.tui-arrow::after {
  position: absolute;
  display: block;
  border: 8px solid transparent;
  content: ''; }

.tui-arrow--normal.tui-arrow--top::after {
  top: 4px;
  left: 2px;
  border-bottom-color: var(--arrow-bg-color); }

.tui-arrow--normal.tui-arrow--bottom::after {
  bottom: 4px;
  left: 2px;
  border-top-color: var(--arrow-bg-color); }

.tui-arrow--normal.tui-arrow--left::after {
  top: 2px;
  left: 4px;
  border-right-color: var(--arrow-bg-color); }

.tui-arrow--normal.tui-arrow--right::after {
  top: 2px;
  right: 4px;
  border-left-color: var(--arrow-bg-color); }

.tui-arrow--large.tui-arrow--top, .tui-arrow--large.tui-arrow--bottom {
  /*!rtl:ignore*/
  left: 50%;
  width: 28px;
  height: 28px;
  /*!rtl:ignore*/
  margin-left: -14px; }

.tui-arrow--large.tui-arrow--top {
  top: -28px; }

.tui-arrow--large.tui-arrow--bottom {
  bottom: -28px; }

.tui-arrow--large.tui-arrow--left, .tui-arrow--large.tui-arrow--right {
  top: 50%;
  width: 28px;
  height: 28px;
  margin-top: -14px; }

.tui-arrow--large.tui-arrow--left {
  left: -28px; }

.tui-arrow--large.tui-arrow--right {
  right: -28px; }

.tui-arrow--large.tui-arrow::before {
  position: absolute;
  display: block;
  border: 14px solid transparent;
  content: ''; }

.tui-arrow--large.tui-arrow--top::before {
  top: 0;
  left: 0;
  border-bottom-color: var(--arrow-border-color); }

.tui-arrow--large.tui-arrow--bottom::before {
  bottom: 0;
  left: 0;
  border-top-color: var(--arrow-border-color); }

.tui-arrow--large.tui-arrow--left::before {
  top: 0;
  left: 0;
  border-right-color: var(--arrow-border-color); }

.tui-arrow--large.tui-arrow--right::before {
  top: 0;
  right: 0;
  border-left-color: var(--arrow-border-color); }

.tui-arrow--large.tui-arrow::after {
  position: absolute;
  display: block;
  border: 12px solid transparent;
  content: ''; }

.tui-arrow--large.tui-arrow--top::after {
  top: 4px;
  left: 2px;
  border-bottom-color: var(--arrow-bg-color); }

.tui-arrow--large.tui-arrow--bottom::after {
  bottom: 4px;
  left: 2px;
  border-top-color: var(--arrow-bg-color); }

.tui-arrow--large.tui-arrow--left::after {
  top: 2px;
  left: 4px;
  border-right-color: var(--arrow-bg-color); }

.tui-arrow--large.tui-arrow--right::after {
  top: 2px;
  right: 4px;
  border-left-color: var(--arrow-bg-color); }

.tui-caret {
  display: inline-block;
  width: 0;
  height: 0;
  margin-left: 2px;
  vertical-align: middle;
  border-top: 4px solid;
  border-right: 4px solid transparent;
  border-left: 4px solid transparent; }

.tui-orBox, .tui-andBox {
  display: inline-flex;
  margin: 0 auto;
  border: var(--border-width-thin) solid var(--color-neutral-6);
  border-radius: 6px; }
  .tui-orBox__text, .tui-andBox__text {
    margin: 0;
    padding: var(--gap-2) var(--gap-4);
    text-transform: uppercase;
    font-weight: bold;
    font-size: var(--font-body-size);
    line-height: var(--font-body-line-height); }

.tui-separator {
  margin: var(--gap-4) 0; }
  .tui-separator--spread {
    margin: var(--gap-8) 0;
    /* simple implementation using a horizontal rule element*/ }
  .tui-separator-rule {
    height: var(--border-width-thin);
    line-height: var(--border-width-thin);
    background-color: var(--color-neutral-5);
    border: none; }
    .tui-separator-rule.tui-separator--thick {
      height: var(--border-width-thick);
      line-height: var(--border-width-thick); }
    .tui-separator-rule.tui-separator--normal {
      height: var(--border-width-normal);
      line-height: var(--border-width-normal);
      /* alternative implementation with wrapper markup to center slotted content*/
      /* horizontal rule visible only to screen readers, the visual lines added with*/
      /* pseudo selectors*/ }
  .tui-separator--wrapped {
    display: flex;
    align-items: center; }
    .tui-separator--wrapped .tui-separator-content {
      margin: 0 var(--gap-4);
      white-space: nowrap;
      text-align: center; }
    .tui-separator--wrapped:before, .tui-separator--wrapped:after {
      width: 50%;
      height: var(--border-width-thin);
      line-height: var(--border-width-thin);
      background-color: var(--color-neutral-5);
      content: ''; }
    .tui-separator--wrapped.tui-separator--thick:before, .tui-separator--wrapped.tui-separator--thick:after {
      height: var(--border-width-thick);
      line-height: var(--border-width-thick); }
    .tui-separator--wrapped.tui-separator--normal:before, .tui-separator--wrapped.tui-separator--normal:after {
      height: var(--border-width-normal);
      line-height: var(--border-width-normal); }

.tui-performance__summary {
  list-style: none; }
.tui-performance__container {
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  justify-content: center; }
.tui-performance__wrapper {
  margin-right: var(--gap-4);
  margin-bottom: var(--gap-4);
  border: 1px solid var(--color-neutral-5);
  border-radius: 3px; }
  .tui-performance__wrapper > * {
    padding-right: var(--gap-2);
    padding-left: var(--gap-2); }
    .tui-performance__wrapper > *:first-child {
      font-weight: bold; }
    .tui-performance__wrapper > *:not(:first-child) {
      background: var(--color-chart-transparent-3); }

[data-tui-draggable][data-animated] {
  transition: transform 0.25s; }
[data-tui-draggable][data-dragging] {
  position: fixed;
  z-index: var(--zindex-draggable);
  -webkit-user-select: none;
  user-select: none;
  /* required so droppable can get mouse events*/
  pointer-events: none; }

.tui-draggableMoveMenu__button:not(:focus):not([aria-expanded='true']) {
  /* The use of '!important' here is an exception and should not be replicated else where */
  /* stylelint-disable declaration-no-important */
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  margin: -1px !important;
  padding: 0 !important;
  overflow: hidden !important;
  white-space: nowrap !important;
  border: 0 !important;
  clip: rect(0, 0, 0, 0) !important;
  /* stylelint-enable */ }

.tui-droppable__dropLine {
  z-index: var(--zindex-draggable);
  background: var(--color-secondary);
  pointer-events: none; }
  .tui-droppable__dropLine--vertical {
    height: var(--border-width-normal);
    margin-top: calc(var(--border-width-normal) * -0.5); }
  .tui-droppable__dropLine--horizontal {
    width: var(--border-width-normal);
    margin-left: calc(var(--border-width-normal) * -0.5); }

[data-tui-droppable-location-indicator] {
  background-color: var(--color-neutral-5); }

.tui-dropdown__menu {
  z-index: var(--zindex-dropdown-menu);
  min-width: 15rem;
  max-width: 32rem;
  max-height: 40vh;
  padding: calc(max(var(--gap-2), var(--dropdown-border-radius))) 0;
  overflow-y: auto;
  background-color: var(--dropdown-menu-bg-color);
  background-clip: padding-box;
  border: var(--border-width-thin) solid var(--dropdown-menu-border-color);
  border-radius: var(--dropdown-border-radius);
  box-shadow: var(--shadow-2); }
.tui-dropdown--separator .tui-dropdown__menu {
  padding: 0; }
.tui-dropdown--flexibleWidth .tui-dropdown__menu {
  min-width: 0;
  max-width: none; }
.tui-dropdown--fixedWidth .tui-dropdown__menu {
  width: 32rem; }
.tui-dropdown__content {
  display: flex;
  flex-direction: column; }
  .tui-dropdown__content--separator > *:first-child {
    border-top-left-radius: calc(var(--dropdown-border-radius) - var(--border-width-thin));
    border-top-right-radius: calc(var(--dropdown-border-radius) - var(--border-width-thin)); }
  .tui-dropdown__content--separator > *:last-child {
    border-bottom-right-radius: calc(var(--dropdown-border-radius) - var(--border-width-thin));
    border-bottom-left-radius: calc(var(--dropdown-border-radius) - var(--border-width-thin)); }
  .tui-dropdown__content--separator > * + *, .tui-dropdown__content--separator > * + .tui-dropdownButton, .tui-dropdown__content--separator > * + .tui-dropdownButton:hover, .tui-dropdown__content--separator > * + .tui-dropdownButton:focus, .tui-dropdown__content--separator > * + .tui-dropdownButton:active, .tui-dropdown__content--separator > * + .tui-dropdownButton:focus:active {
    /* work around specificity issues with button*/
    border-top: var(--border-width-thin) solid var(--dropdown-menu-border-color); }
.tui-dropdown--fixedHeight .tui-dropdown__content {
  height: 100%; }
.tui-dropdown--fixedHeight .tui-dropdown__menu {
  height: 38vh;
  overflow-y: visible; }
.tui-dropdown--disabled {
  cursor: not-allowed; }
  .tui-dropdown--disabled .tui-dropdown__trigger {
    pointer-events: none; }

/* override <button> styles*/
.tui-dropdownButton {
  color: var(--dropdown-item-text-color);
  text-align: left;
  background-color: transparent;
  border: none;
  border-radius: 0; }
  .tui-dropdownButton:hover, .tui-dropdownButton:focus, .tui-dropdownButton:active, .tui-dropdownButton:focus:active {
    border-color: transparent;
    box-shadow: none; }

/* tui-dropdownButton styles*/
.tui-dropdownButton {
  color: var(--color-text);
  font-weight: normal;
  font-size: var(--font-body-size);
  line-height: var(--font-body-line-height);
  padding: var(--gap-2) var(--gap-4);
  overflow: hidden;
  line-height: 1.4;
  text-overflow: ellipsis; }
  .tui-dropdownButton:focus {
    color: var(--dropdown-item-text-color);
    text-decoration: none;
    background-color: transparent;
    outline: 0; }
  .tui-dropdownButton:hover, .tui-dropdownButton:active, .tui-dropdownButton:focus:active {
    color: var(--dropdown-item-text-color-hover);
    text-decoration: none;
    background-color: var(--dropdown-item-bg-color-hover);
    outline: 0; }
  .tui-dropdownButton:focus-visible {
    color: var(--dropdown-item-text-color-focus);
    background-color: var(--dropdown-item-bg-color-focus);
    outline: 2px solid var(--dropdown-item-focus-ring-color);
    outline-offset: -3px; }
  .tui-dropdownButton--disabled, .tui-dropdownButton--disabled:hover, .tui-dropdownButton--disabled:focus {
    color: var(--dropdown-item-text-color-disabled);
    background-color: transparent;
    cursor: not-allowed; }
  .tui-dropdownButton--disabled:active {
    pointer-events: none; }
  .tui-dropdownButton--noPadding {
    padding: 0; }

.tui-dropdownGroup__header {
  padding: var(--gap-2) var(--gap-4);
  font-weight: bold; }
.tui-dropdownGroup__items {
  display: flex;
  flex-direction: column; }
  .tui-dropdownGroup__items > * {
    padding-left: var(--gap-7); }
.tui-dropdownGroup--separator .tui-dropdownGroup__items > * {
  border-top: var(--border-width-thin) solid var(--dropdown-menu-border-color); }

.tui-dropdownItem {
  color: var(--color-text);
  font-weight: normal;
  font-size: var(--font-body-size);
  line-height: var(--font-body-line-height);
  display: block;
  width: 100%;
  padding: var(--gap-2) var(--gap-4);
  overflow: hidden;
  color: var(--dropdown-item-text-color);
  line-height: 1.4;
  white-space: nowrap;
  text-overflow: ellipsis;
  cursor: pointer; }
  .tui-dropdownItem:focus {
    color: var(--dropdown-item-text-color);
    text-decoration: none;
    outline: none; }
  .tui-dropdownItem:hover {
    color: var(--dropdown-item-text-color-hover);
    text-decoration: none;
    background-color: var(--dropdown-item-bg-color-hover); }
  .tui-dropdownItem:focus-visible {
    color: var(--dropdown-item-text-color-focus);
    background-color: var(--dropdown-item-bg-color-focus);
    outline: 2px solid var(--dropdown-item-focus-ring-color);
    outline-offset: -3px; }
  .tui-dropdownItem--disabled, .tui-dropdownItem--disabled:hover, .tui-dropdownItem--disabled:focus {
    color: var(--dropdown-item-text-color-disabled);
    background-color: transparent;
    cursor: not-allowed; }
  .tui-dropdownItem--disabled:focus {
    background-color: var(--dropdown-item-bg-color-disabled-focus); }
  .tui-dropdownItem--disabled:active {
    pointer-events: none; }
  .tui-dropdownItem--noPadding {
    padding: 0; }
  .tui-dropdownItem--selected {
    color: var(--color-neutral-1);
    background: var(--color-state-active); }
    .tui-dropdownItem--selected:focus, .tui-dropdownItem--selected:hover, .tui-dropdownItem--selected:active {
      color: var(--color-neutral-1);
      background: var(--color-state-active); }
    .tui-dropdownItem--selected:focus-visible {
      outline-color: var(--color-neutral-1); }

.tui-editorLoading {
  display: flex;
  flex-direction: column;
  justify-content: center;
  width: 100%;
  background-color: var(--form-input-bg-color);
  border: var(--border-width-thin) solid var(--color-neutral-5);
  border-radius: var(--form-input-border-radius);
  /* inner must be separate for intrinsic height to work*/ }
  .tui-editorLoading__inner {
    display: flex;
    align-items: center;
    justify-content: center;
    /* similar to default Weka height*/
    height: calc(9.5rem); }
  .tui-editorLoading--compact .tui-editorLoading__inner {
    /* similar to default Weka height with compact on*/
    height: calc(6.2rem); }
  .tui-editorLoading__spinner {
    color: var(--color-neutral-5); }

.tui-editorTextarea {
  display: flex;
  flex-direction: column;
  /* expand to full width if in horizontal flex*/
  width: 100%;
  /* needed a more specific selector to override tui-select { flex-grow: 1; }*/ }
  .tui-editorTextarea > :first-child {
    flex-grow: 0; }
  .tui-editorTextarea__textarea {
    /* stretch child input to be full height if the editor is given a specific height*/
    flex-grow: 1;
    margin-top: var(--gap-1); }

.tui-responsiveEmbedIframe {
  position: relative;
  display: block;
  width: 100%;
  padding: 0;
  overflow: hidden; }
  .tui-responsiveEmbedIframe::before {
    display: block;
    content: ''; }
  .tui-responsiveEmbedIframe__item {
    position: absolute;
    top: 0;
    bottom: 0;
    left: 0;
    width: 100%;
    height: 100%;
    border: 0; }

.tui-errorModal__detailsToggle {
  display: block;
  margin-top: var(--gap-4);
  text-decoration: none; }
  .tui-errorModal__detailsToggle:hover, .tui-errorModal__detailsToggle:focus {
    text-decoration: none; }
.tui-errorModal__buttons {
  display: flex;
  justify-content: space-between;
  width: 100%; }
.tui-errorModal__navButtons {
  display: flex;
  align-items: center; }
  .tui-errorModal__navButtons > * + * {
    margin-left: var(--gap-4); }
.tui-errorModal__details {
  margin-top: var(--gap-3); }
.tui-errorModal__label {
  font-weight: bold;
  font-size: var(--font-heading-x-small-size);
  line-height: var(--font-heading-x-small-line-height); }
.tui-errorModal__context {
  color: var(--color-text-hint); }
.tui-errorModal__extraInfo {
  white-space: pre-wrap; }
.tui-errorModal__stackPre {
  margin: var(--gap-2) 0 0 0;
  padding: var(--gap-4);
  color: var(--color-neutral-7);
  word-break: break-word;
  background-color: var(--color-neutral-3);
  border-radius: 4px; }

.tui-errorDisplay {
  padding: var(--gap-8);
  background: var(--color-neutral-3);
  border-radius: 4px; }
  .tui-errorDisplay__title {
    margin-top: 0; }
  .tui-errorDisplay__buttons {
    margin-bottom: var(--gap-4); }
  .tui-errorDisplay__buttons:last-child {
    margin-bottom: 0; }
  .tui-errorDisplay__detailsToggle {
    text-decoration: none; }
    .tui-errorDisplay__detailsToggle:hover, .tui-errorDisplay__detailsToggle:focus {
      text-decoration: none; }
  .tui-errorDisplay__detailsPre {
    margin-top: var(--gap-2);
    margin-bottom: 0;
    padding: var(--gap-4);
    background-color: var(--color-neutral-1);
    border-radius: 4px; }

.tui-sesskeyExpired__button {
  margin-top: var(--gap-6);
  margin-left: auto; }

.tui-fileCard {
  position: relative;
  display: flex;
  align-items: center;
  min-width: 0;
  padding: var(--gap-2);
  white-space: normal;
  border: var(--border-width-thin) solid var(--color-neutral-5);
  border-radius: var(--card-border-radius);
  isolation: isolate; }
  .tui-fileCard:hover {
    border-color: var(--color-state-hover);
    box-shadow: var(--shadow-2); }
  .tui-fileCard--focus {
    outline: 2px solid var(--color-state-focus);
    outline-offset: var(--focus-outline-offset); }
  .tui-fileCard__info {
    flex: 1;
    flex-direction: column;
    overflow: hidden; }
  .tui-fileCard__fileSize {
    display: flex;
    gap: var(--gap-1);
    align-items: center;
    margin: 0;
    color: var(--color-neutral-6);
    font-size: var(--font-size-11);
    white-space: nowrap; }
    .tui-fileCard__fileSize-icon {
      font-size: var(--font-size-12); }
  .tui-fileCard__filename {
    display: flex; }
    .tui-fileCard__filename, .tui-fileCard__filename:link, .tui-fileCard__filename:hover, .tui-fileCard__filename:active, .tui-fileCard__filename:visited {
      color: var(--color-neutral-7);
      text-decoration: none;
      outline: none; }
    .tui-fileCard__filename-text {
      margin: 0;
      overflow: hidden;
      white-space: nowrap;
      text-overflow: ellipsis; }
    .tui-fileCard__filename-ext {
      flex-shrink: 0; }
    .tui-fileCard__filename:after {
      position: absolute;
      inset: 0;
      content: ''; }
  .tui-fileCard__icon {
    flex-shrink: 0;
    width: 3.2rem;
    margin-right: var(--gap-2);
    color: var(--color-neutral-7); }
  .tui-fileCard--downloadable {
    cursor: pointer; }
  .tui-fileCard__actions {
    z-index: 1;
    padding-left: var(--gap-4); }
  .tui-fileCard__download {
    z-index: 1;
    display: flex;
    margin-left: var(--gap-4);
    padding: var(--gap-2);
    color: var(--color-state);
    border-radius: var(--btn-sm-radius); }
    .tui-fileCard__download:focus {
      outline: 2px solid var(--color-state-focus);
      outline-offset: var(--focus-outline-offset); }

.tui-buttonFilter.tui-buttonFilter--stacked {
  text-align: right; }
  .tui-buttonFilter.tui-buttonFilter--stacked > * {
    margin-top: var(--gap-4); }

.tui-filterBar {
  display: flex;
  flex-direction: column; }
  .tui-filterBar--hasTop {
    padding-top: var(--gap-4);
    border-top: var(--border-width-thin) solid var(--filter-bar-border-color); }
  .tui-filterBar--hasBottom {
    padding-bottom: var(--gap-4);
    border-bottom: var(--border-width-thin) solid var(--filter-bar-border-color); }
  .tui-filterBar__heading {
    /* The use of '!important' here is an exception and should not be replicated else where */
    /* stylelint-disable declaration-no-important */
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    margin: -1px !important;
    padding: 0 !important;
    overflow: hidden !important;
    white-space: nowrap !important;
    border: 0 !important;
    clip: rect(0, 0, 0, 0) !important;
    /* stylelint-enable */ }
  .tui-filterBar__toggle {
    display: flex;
    justify-content: center; }
    .tui-filterBar__toggle-btn {
      margin: var(--gap-2) 0; }
  .tui-filterBar__filters {
    display: flex;
    flex-grow: 1; }
    .tui-filterBar__filters-left, .tui-filterBar__filters-right {
      display: flex;
      flex-shrink: 0; }
      .tui-filterBar__filters-left > *, .tui-filterBar__filters-right > * {
        flex-shrink: 0;
        margin-left: var(--gap-4); }
      .tui-filterBar__filters-left > * + *, .tui-filterBar__filters-right > * + * {
        margin-left: var(--gap-4); }
      .tui-filterBar__filters--stacked .tui-filterBar__filters-left, .tui-filterBar__filters--stacked .tui-filterBar__filters-right {
        flex-direction: column;
        margin-left: 0;
        border-left: none; }
        .tui-filterBar__filters--stacked .tui-filterBar__filters-left .tui-formLabel, .tui-filterBar__filters--stacked .tui-filterBar__filters-right .tui-formLabel {
          font-weight: bold;
          font-size: var(--font-body-small-size);
          line-height: var(--font-body-small-line-height); }
        .tui-filterBar__filters--stacked .tui-filterBar__filters-left > *, .tui-filterBar__filters--stacked .tui-filterBar__filters-right > * {
          margin-left: 0;
          padding-left: 0; }
        .tui-filterBar__filters--stacked .tui-filterBar__filters-left > :first-child, .tui-filterBar__filters--stacked .tui-filterBar__filters-right > :first-child {
          border-left: none; }
    .tui-filterBar__filters-right {
      justify-content: flex-start; }
      .tui-filterBar__filters-right > :first-child {
        border-left: var(--border-width-thin) solid var(--color-neutral-5); }
      .tui-filterBar__filters-right > * {
        padding-left: var(--gap-4); }
    .tui-filterBar__filters--stacked {
      flex-direction: column; }
  .tui-filterBar__reset {
    margin-left: var(--gap-4); }
    .tui-filterBar__reset-stacked {
      margin-top: var(--gap-4);
      padding-top: var(--gap-4);
      padding-bottom: var(--gap-4); }

.tui-filterBarArea {
  display: flex;
  flex-direction: column; }
  .tui-filterBarArea__bar {
    display: flex;
    flex-direction: column; }
    .tui-filterBarArea__bar--horizontal {
      flex-direction: row; }
    .tui-filterBarArea__bar--hasTop {
      padding-top: var(--gap-4);
      border-top: var(--border-width-thin) solid var(--filter-bar-border-color); }
    .tui-filterBarArea__bar--hasBottom {
      padding-bottom: var(--gap-4);
      border-bottom: var(--border-width-thin) solid var(--filter-bar-border-color); }
    .tui-filterBarArea__bar-toggle {
      display: flex;
      margin: auto; }
    .tui-filterBarArea__bar-resetButton {
      display: flex;
      align-items: flex-start;
      margin-top: var(--gap-4); }
    .tui-filterBarArea__bar-stackedFilters {
      display: flex;
      flex-direction: column;
      gap: var(--gap-4);
      margin-top: var(--gap-4);
      padding: 0 var(--gap-4); }
    .tui-filterBarArea__bar-barFilters {
      display: flex;
      gap: var(--gap-4); }
    .tui-filterBarArea__bar-extraFilters {
      display: flex;
      flex-grow: 1;
      align-items: center;
      justify-content: flex-end;
      height: var(--form-input-height);
      margin-top: auto; }

.tui-filterBarAreaPopover {
  margin-top: var(--gap-1);
  white-space: nowrap; }
  .tui-filterBarAreaPopover__content {
    display: flex;
    flex-direction: column;
    gap: var(--gap-4);
    padding: 0 var(--gap-1) var(--gap-1) var(--gap-1); }
  .tui-filterBarAreaPopover__buttons {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    padding-top: var(--gap-4);
    padding-bottom: var(--gap-1); }
    .tui-filterBarAreaPopover__buttons::before {
      position: absolute;
      left: 0;
      width: 100%;
      border-top: var(--border-width-thin) solid var(--filter-bar-border-color);
      content: ''; }
    .tui-filterBarAreaPopover__buttons-reset {
      display: flex;
      flex-grow: 1;
      padding: var(--gap-5) var(--gap-1) 0; }

.tui-filterSidePanel {
  display: block; }
  .tui-filterSidePanel__header {
    font-weight: bold;
    font-size: var(--font-heading-small-size);
    line-height: var(--font-heading-small-line-height);
    min-width: 0;
    margin: 0 var(--gap-2) 0 0; }
  .tui-filterSidePanel__heading {
    display: flex;
    padding-bottom: var(--gap-2);
    border-bottom: var(--border-width-normal) solid var(--color-neutral-7); }
  .tui-filterSidePanel__instructions, .tui-filterSidePanel__status {
    /* The use of '!important' here is an exception and should not be replicated else where */
    /* stylelint-disable declaration-no-important */
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    margin: -1px !important;
    padding: 0 !important;
    overflow: hidden !important;
    white-space: nowrap !important;
    border: 0 !important;
    clip: rect(0, 0, 0, 0) !important;
    /* stylelint-enable */ }
  .tui-filterSidePanel .tui-filterSidePanel__clearBtn {
    flex-shrink: 0;
    margin-left: auto; }

.tui-filterSidePanel.tui-filterSidePanel > * + * {
  margin-top: var(--gap-4); }
.tui-filterSidePanel.tui-filterSidePanel .tui-fieldset__legend, .tui-filterSidePanel.tui-filterSidePanel .tui-formLabel {
  font-weight: bold;
  font-size: var(--font-body-small-size);
  line-height: var(--font-body-small-line-height); }

.tui-multiSelectCheckboxFilter {
  display: flex;
  flex-direction: column;
  gap: var(--gap-2); }
  .tui-multiSelectCheckboxFilter__items {
    display: flex;
    flex-direction: column;
    flex-grow: 1;
    gap: var(--gap-4) 0;
    white-space: normal; }

@media (min-width: 600px) {
  .tui-multiSelectCheckboxFilter__items--hasColumns {
    flex-direction: row;
    flex-wrap: wrap;
    gap: var(--gap-4); }
    .tui-multiSelectCheckboxFilter__items-item--twoColumn {
      word-break: break-word;
      -webkit-hyphens: none;
      hyphens: none;
      width: 47%; }
      .ie .tui-multiSelectCheckboxFilter__items-item--twoColumn {
        -ms-word-break: break-all;
        -ms-hyphens: none; } }

.tui-multiSelectFilter > * + * {
  margin-top: var(--gap-1); }
.tui-multiSelectFilter__collapsible {
  margin: 0; }
  .tui-multiSelectFilter__collapsible-collapsed > * {
    margin-top: var(--gap-1); }
  .tui-multiSelectFilter__collapsible-toggle {
    margin-left: var(--gap-1); }

.tui-searchFilter {
  position: relative;
  display: flex;
  flex-direction: row;
  align-items: center; }
  .tui-searchFilter input.tui-formInput {
    flex-grow: 0; }
  .tui-searchFilter .tui-formLabel {
    margin: auto var(--gap-3) auto 0; }
  .tui-searchFilter__group {
    position: relative;
    display: flex;
    flex-grow: 1;
    margin-top: 0;
    margin-bottom: auto; }
    .tui-searchFilter__group--stacked {
      margin-top: var(--gap-1); }
    .tui-searchFilter__group-icon {
      position: absolute;
      left: var(--gap-2);
      display: flex;
      align-items: center;
      height: 100%;
      color: var(--filter-search-icon-color); }
      .tui-searchFilter__group-icon .fa-search {
        margin: auto 0; }
    .tui-searchFilter__group-clearContainer {
      position: absolute;
      right: 0;
      height: 100%; }
  .tui-searchFilter__search {
    /* disable the default clear (x) action in IE*/ }
    .tui-searchFilter__search::-ms-clear {
      display: none; }
  .tui-searchFilter__removeIcon {
    color: var(--filter-search-clear-icon-color); }
  .tui-searchFilter--stacked {
    flex-direction: column;
    align-items: stretch; }
    .tui-searchFilter--stacked .tui-formLabel {
      margin: var(--gap-1) 0; }
  .tui-searchFilter--barFilter {
    flex-direction: column;
    gap: var(--gap-1);
    align-items: stretch;
    margin-top: auto; }

.tui-selectFilter {
  position: relative;
  display: flex;
  flex-direction: row;
  align-items: center; }
  .tui-selectFilter .tui-formLabel {
    margin: auto var(--gap-3) auto 0; }
  .tui-selectFilter .tui-select {
    width: auto;
    max-width: 250px; }
  .tui-selectFilter--stacked {
    flex-direction: column;
    align-items: stretch; }
    .tui-selectFilter--stacked .tui-formLabel {
      margin: var(--gap-1) 0 0; }
    .tui-selectFilter--stacked .tui-select {
      max-width: initial;
      margin-top: var(--gap-1); }
  .tui-selectFilter--barFilter {
    flex-direction: column;
    gap: var(--gap-1);
    align-items: stretch;
    max-width: 250px;
    margin-top: auto; }
  .tui-selectFilter--barFilter.tui-selectFilter--stacked {
    max-width: initial; }

:root {
  /* Size of checkbox*/
  --form-checkbox-size: var(--form-input-font-size);
  --form-checkbox-size-large: calc(var(--form-input-font-size) * 1.333);
  --checkbox-check-width: 0.2rem; }

.tui-checkbox {
  position: relative;
  display: flex;
  min-height: calc(var(--form-checkbox-size) + 2px); }
  .tui-checkbox--large {
    min-height: calc(var(--form-checkbox-size-large) + 2px); }
  .tui-checkbox__input {
    position: absolute;
    opacity: 0; }
  .tui-checkbox__label {
    position: relative;
    margin: 0;
    padding-left: calc(var(--form-checkbox-size) * 1.5);
    font-weight: normal;
    font-size: var(--form-input-font-size);
    line-height: 1; }
    .tui-checkbox--large .tui-checkbox__label {
      padding-left: calc(var(--form-checkbox-size-large) * 1.5); }
    .tui-checkbox__label--noOffset {
      padding-left: var(--form-checkbox-size); }
      .tui-checkbox--large .tui-checkbox__label--noOffset {
        padding-left: var(--form-checkbox-size-large); }
    .tui-checkbox__label::before {
      position: absolute;
      top: 0;
      left: 0;
      display: block;
      width: var(--form-checkbox-size);
      height: var(--form-checkbox-size);
      margin-top: 1px;
      background: var(--form-checkbox-bg-color);
      border: var(--form-input-border-size) solid var(--form-checkbox-border-color);
      border-radius: var(--form-input-border-radius);
      transition: border var(--transition-form-function) var(--transition-form-duration), box-shadow var(--transition-form-function) var(--transition-form-duration);
      content: '';
      pointer-events: none; }
      .tui-checkbox--large .tui-checkbox__label::before {
        width: var(--form-checkbox-size-large);
        height: var(--form-checkbox-size-large); }
      .tui-contextInvalid .tui-checkbox__label::before {
        border-color: var(--form-input-border-color-invalid);
        box-shadow: var(--shadow-none), var(--form-input-shadow-invalid); }
  .tui-checkbox__input:disabled ~ .tui-checkbox__label {
    color: var(--form-input-text-color-disabled); }
  .tui-checkbox__input:focus-visible ~ .tui-checkbox__label::before {
    outline: 2px solid var(--color-state-focus);
    outline-offset: var(--focus-outline-offset);
    border: var(--form-input-border-size) solid var(--form-checkbox-border-color-focus);
    box-shadow: var(--form-input-shadow-focus); }
    .tui-contextInvalid .tui-checkbox__input:focus-visible ~ .tui-checkbox__label::before {
      border-color: var(--form-input-border-color-invalid);
      outline-color: var(--form-input-border-color-invalid);
      box-shadow: var(--shadow-none), var(--form-input-shadow-invalid-focus); }
  .tui-checkbox__input:disabled:checked ~ .tui-checkbox__label::before, .tui-checkbox__input:disabled ~ .tui-checkbox__label::before {
    background: var(--form-checkbox-bg-color-disabled);
    border: var(--form-input-border-size) solid;
    border-color: var(--form-checkbox-border-color-disabled);
    box-shadow: none; }
  .tui-checkbox__input ~ .tui-checkbox__label::after {
    /* construct a check mark out of two sides of a rotated box*/
    position: absolute;
    top: calc(0.35 * var(--form-checkbox-size));
    left: calc(0.21 * var(--form-checkbox-size));
    display: block;
    width: calc(0.6 * var(--form-checkbox-size));
    height: calc(0.35 * var(--form-checkbox-size));
    border-color: var(--form-checkbox-check-color);
    border-style: solid;
    /*!rtl:ignore*/
    border-width: 0 0 var(--checkbox-check-width) var(--checkbox-check-width);
    transform: rotate(-45deg);
    opacity: 0;
    transition: opacity var(--transition-form-function) var(--transition-form-duration);
    content: '';
    pointer-events: none; }
    .tui-checkbox--large .tui-checkbox__input ~ .tui-checkbox__label::after {
      top: calc(0.3 * var(--form-checkbox-size-large));
      left: calc(0.22 * var(--form-checkbox-size-large));
      width: calc(0.6 * var(--form-checkbox-size-large));
      height: calc(0.32 * var(--form-checkbox-size-large)); }
  .tui-checkbox__input:disabled:checked ~ .tui-checkbox__label::after, .tui-checkbox__input:disabled ~ .tui-checkbox__label::after {
    border-color: var(--form-checkbox-check-color-disabled); }
  .tui-checkbox__input:checked ~ .tui-checkbox__label::before {
    background: var(--form-checkbox-bg-color-active);
    border-color: var(--form-checkbox-border-color-active); }
  .tui-checkbox__input:checked ~ .tui-checkbox__label::after {
    opacity: 1; }

@media print {
  .tui-checkbox__input:checked ~ .tui-checkbox__label::before {
    -webkit-print-color-adjust: exact;
    color-adjust: exact;
    /* IE11 & Edge support*/ }
  .ie .tui-checkbox__input:checked ~ .tui-checkbox__label::before, .msedge .tui-checkbox__input:checked ~ .tui-checkbox__label::before {
    border: solid var(--form-checkbox-bg-color-active);
    border-width: 0 var(--form-checkbox-size) 0 0; } }

.tui-checkboxButton {
  position: relative;
  display: flex; }
  .tui-checkboxButton__input {
    position: absolute;
    opacity: 0; }
  .tui-checkboxButton__label {
    display: flex;
    flex-grow: 1;
    margin: 0;
    padding: var(--gap-1);
    color: var(--btn-checkbox-text-color);
    font-weight: normal;
    cursor: pointer; }
    .tui-checkboxButton__label:hover {
      color: var(--btn-checkbox-text-color-focus);
      background: var(--btn-checkbox-bg-color-hover); }
    .tui-checkboxButton__label:active:hover, .tui-checkboxButton__label:active {
      color: var(--btn-checkbox-text-color-active); }
  .tui-checkboxButton__deselectIcon {
    margin: auto 0 auto auto;
    color: var(--btn-checkbox-text-color-selected);
    visibility: hidden; }
  .tui-checkboxButton__input:checked ~ .tui-checkboxButton__label {
    color: var(--btn-checkbox-text-color-selected);
    background: var(--btn-checkbox-bg-color-selected); }
    .tui-checkboxButton__input:checked ~ .tui-checkboxButton__label .tui-checkboxButton__deselectIcon {
      visibility: visible; }
    .tui-checkboxButton__input:checked ~ .tui-checkboxButton__label:hover {
      color: var(--btn-checkbox-text-color-focus);
      background: var(--btn-checkbox-bg-color-hover); }
      .tui-checkboxButton__input:checked ~ .tui-checkboxButton__label:hover .tui-checkboxButton__deselectIcon {
        color: var(--btn-checkbox-text-color-focus);
        visibility: visible; }
    .tui-checkboxButton__input:checked ~ .tui-checkboxButton__label:active:hover, .tui-checkboxButton__input:checked ~ .tui-checkboxButton__label:active {
      color: var(--btn-checkbox-text-color-active);
      background: var(--btn-checkbox-bg-color-hover); }
      .tui-checkboxButton__input:checked ~ .tui-checkboxButton__label:active:hover .tui-checkboxButton__deselectIcon, .tui-checkboxButton__input:checked ~ .tui-checkboxButton__label:active .tui-checkboxButton__deselectIcon {
        color: var(--btn-checkbox-text-color-active);
        visibility: visible; }
  .tui-checkboxButton__input:focus-visible ~ .tui-checkboxButton__label {
    outline: 2px solid var(--color-state-focus);
    outline-offset: var(--focus-outline-offset); }
  .tui-checkboxButton__input:focus-visible:checked ~ .tui-checkboxButton__label {
    outline: 2px solid var(--color-state-focus);
    outline-offset: var(--focus-outline-offset); }
    .tui-checkboxButton__input:focus-visible:checked ~ .tui-checkboxButton__label .tui-checkboxButton__deselectIcon {
      color: var(--btn-checkbox-text-color-selected);
      visibility: visible; }

:root {
  --form-checkbox-group-padding: var(--gap-2);
  --form-checkbox-group-spacing-v: var(--gap-4);
  --form-checkbox-group-spacing-h: var(--gap-4); }

.tui-checkboxGroup {
  display: flex;
  flex-direction: column;
  padding: var(--form-checkbox-group-padding) 0; }
  .tui-checkboxGroup > * + * {
    margin-top: var(--form-checkbox-group-spacing-v); }

@media screen and (min-width: 768px) {
  .tui-checkboxGroup--horizontal {
    flex-direction: row;
    flex-wrap: wrap;
    /* stylelint-disable length-zero-no-unit*/
    /* prettier-ignore*/
    margin-top: calc(0px - var(--form-checkbox-group-spacing-v) + var(--form-checkbox-group-padding));
    padding-top: 0; }
    .tui-checkboxGroup--horizontal > * {
      margin-top: var(--form-checkbox-group-spacing-v);
      margin-right: var(--form-checkbox-group-spacing-h); } }

.tui-dateSelector {
  display: flex;
  flex-flow: column;
  gap: var(--gap-2);
  max-width: 35rem;
  font-size: var(--form-input-font-size); }
  .tui-dateSelector__date {
    display: flex;
    gap: var(--gap-2);
    /* set ratio and intrinsic width for each field*/ }
    .tui-dateSelector__date-day {
      flex: 6;
      width: calc(var(--gap-10) + 1.5em); }
    .tui-dateSelector__date-month {
      flex: 12;
      width: calc(var(--gap-10) + 6em); }
    .tui-dateSelector__date-year {
      flex: 8;
      width: calc(var(--gap-10) + 3em); }

.tui-formFieldError {
  /* offset the extra red shadow on invalid elements + we want the error*/
  /* message to be spaced 1px away*/
  margin-top: calc(var(--form-input-invalid-shadow-size) + 1px); }
  .tui-formFieldError__inner {
    font-weight: normal;
    font-size: var(--font-body-small-size);
    line-height: var(--font-body-small-line-height);
    display: inline-flex;
    align-items: center;
    padding: 0.6rem 0.8rem;
    color: var(--form-error-text-color);
    background: var(--form-error-bg-color); }
  .tui-formFieldError__dismiss {
    margin-left: var(--gap-1);
    padding: 0;
    color: inherit;
    opacity: 0.7; }
    .tui-formFieldError__dismiss:hover:active, .tui-formFieldError__dismiss:active, .tui-formFieldError__dismiss:hover, .tui-formFieldError__dismiss:focus {
      color: inherit;
      opacity: 1; }
    .tui-formFieldError__dismiss-icon {
      position: relative;
      top: -1px;
      font-weight: normal;
      font-size: var(--font-body-small-size);
      line-height: var(--font-body-small-line-height); }

.tui-formFieldGroup {
  flex-grow: 1;
  width: 100%;
  min-width: 0; }

.tui-fieldset {
  min-width: 0;
  margin: 0;
  padding: 0;
  border: 0; }
  .tui-fieldset__legend {
    display: block;
    width: 100%;
    margin: 0;
    padding: 0;
    color: var(--form-text-color);
    font-size: var(--font-size-18);
    line-height: inherit;
    border: none; }
  .tui-fieldset--hidden {
    /* The use of '!important' here is an exception and should not be replicated else where */
    /* stylelint-disable declaration-no-important */
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    margin: -1px !important;
    padding: 0 !important;
    overflow: hidden !important;
    white-space: nowrap !important;
    border: 0 !important;
    clip: rect(0, 0, 0, 0) !important;
    /* stylelint-enable */ }

.tui-filterFieldset {
  min-width: 0;
  margin: 0;
  padding: 0;
  border: 0; }
  .tui-filterFieldset__content {
    margin-top: var(--gap-2); }

.tui-form > * + * {
  margin-top: var(--gap-8); }

.tui-formRow {
  display: flex;
  flex-flow: column; }
  .tui-formRow > .tui-formRow__desc {
    min-width: 0;
    padding-top: var(--gap-1);
    padding-right: var(--gap-2);
    text-align: left;
    overflow-wrap: break-word; }
  .tui-formRow > .tui-formRow__action {
    display: flex;
    max-width: 71.2rem; }
    .tui-formRow > .tui-formRow__action--isStacked {
      display: block; }
      .tui-formRow > .tui-formRow__action--isStacked > * + * {
        margin-top: var(--gap-2); }
  .tui-formRow--fullWidth > .tui-formRow__action {
    max-width: none; }

.tui-form--vertical > .tui-formRow__desc, .tui-formRow--vertical > .tui-formRow__desc, .tui-formRow--emptyDesc > .tui-formRow__desc {
  padding: 0; }

.tui-form--vertical .tui-formRow__action, .tui-formRow--vertical .tui-formRow__action {
  margin-top: var(--gap-1); }

.tui-formRow--emptyDesc .tui-formRow__action {
  margin-top: 0; }

.tui-form--horizontal .tui-formRow:not(.tui-formRow--vertical) {
  /* width of the sidebar*/
  /* width of the content*/
  /* size of the gutter between sidebar and content*/
  /* selector for child sidebar element*/
  /* selector for child content element*/ }
  .tui-form--horizontal .tui-formRow:not(.tui-formRow--vertical) {
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    gap: var(--gap-1); }
    .tui-form--horizontal .tui-formRow:not(.tui-formRow--vertical) > .tui-formRow__desc {
      flex-basis: 22rem;
      flex-grow: 0; }
    .tui-form--horizontal .tui-formRow:not(.tui-formRow--vertical) > .tui-formRow__action {
      flex-basis: 0;
      /* Set a really high flex-grow value so it takes up all the available*/
      /* space. This will squish the sidebar down to its intrinsic width*/
      /* (or flex-basis, if set).*/
      flex-grow: 999;
      /* This element cannot shrink beyond min-width, so it will wrap on to the*/
      /* next line (switch to vertical).*/
      min-width: calc(60% - var(--gap-1)); }
  .tui-form--horizontal .tui-formRow:not(.tui-formRow--vertical) > .tui-formRow__desc {
    padding-top: calc((var(--form-input-height) - (var(--form-input-font-size) * var(--form-input-line-height))) / 2); }
  .tui-form--horizontal .tui-formRow:not(.tui-formRow--vertical).tui-formRow--contentType-other > .tui-formRow__action {
    padding-top: calc((var(--form-input-height) - (var(--form-input-font-size) * var(--form-input-line-height))) / 2); }

.tui-formRow__defaults {
  color: var(--form-defaults-text-color);
  font-weight: normal;
  font-size: var(--font-body-x-small-size);
  line-height: var(--font-body-x-small-line-height); }

.tui-formRow__details {
  color: var(--form-details-text-color);
  font-weight: normal;
  font-size: var(--font-body-small-size);
  line-height: var(--font-body-small-line-height); }

.tui-formRowStack > * + * {
  margin-top: var(--gap-8); }
  .tui-formRowStack--spacing-large > * + * {
    margin-top: var(--gap-8); }
.tui-formRowStack--spacing-medium > * + * {
  margin-top: var(--gap-6); }
.tui-formRowStack--spacing-small > * + * {
  margin-top: var(--gap-4); }

.tui-formHelpIcon {
  display: inline-block; }
  .tui-formHelpIcon__icon {
    padding: 0;
    color: var(--color-state); }
  .tui-formHelpIcon__desc {
    /* aria-describedby still works even if the target element is display: none*/
    /* https://developer.paciellogroup.com/blog/2015/05/short-note-on-aria-labelledby-and-aria-describedby/*/
    display: none; }

.tui-formImageUpload {
  color: var(--form-input-text-color);
  font-size: var(--form-input-font-size);
  line-height: 1;
  background: var(--form-input-bg-color); }
  .tui-formImageUpload__actions {
    display: flex;
    padding: var(--gap-2);
    background: var(--color-neutral-3);
    border-color: var(--form-input-border-color);
    border-top: var(--form-input-border-size) solid;
    border-right: var(--form-input-border-size) solid;
    border-left: var(--form-input-border-size) solid; }
  .tui-formImageUpload__deleteButton {
    margin-left: auto; }
  .tui-formImageUpload__filearea {
    padding: var(--gap-2);
    border: var(--form-input-border-size) solid;
    border-color: var(--form-input-border-color); }
    .tui-formImageUpload--highlight .tui-formImageUpload__filearea {
      background: var(--form-input-bg-color-focus);
      border-color: var(--form-input-border-color-focus);
      outline: none;
      box-shadow: var(--form-input-shadow-focus); }
    .tui-formImageUpload--isError .tui-formImageUpload__filearea {
      border-color: var(--form-input-border-color-invalid);
      box-shadow: var(--form-input-shadow-invalid); }
  .tui-formImageUpload__display .tui-responsiveImage {
    max-height: 25rem; }
  .tui-formImageUpload__progress {
    padding: var(--gap-2); }

.tui-formInput {
  display: block;
  flex-grow: 1;
  box-sizing: border-box;
  width: 100%;
  min-width: 0;
  height: var(--form-input-height);
  padding: calc((var(--form-input-height) - (var(--form-input-font-size) * var(--form-input-line-height)) - (var(--form-input-border-size) * 2)) / 2) var(--gap-3);
  color: var(--form-input-text-color);
  font-size: var(--form-input-font-size);
  line-height: var(--form-input-line-height);
  background: var(--form-input-bg-color);
  border: var(--form-input-border-size) solid var(--form-input-border-color);
  border-radius: var(--form-input-border-radius); }
  .tui-formInput[type='search'] {
    border-radius: var(--form-input-border-radius);
    -webkit-appearance: none;
    appearance: none; }
    .tui-formInput--charLength-2 {
      max-width: calc(2 * var(--form-input-font-size)); }
    .tui-formInput--charLength-3 {
      max-width: calc(3 * var(--form-input-font-size)); }
    .tui-formInput--charLength-4 {
      max-width: calc(4 * var(--form-input-font-size)); }
    .tui-formInput--charLength-5 {
      max-width: calc(5 * var(--form-input-font-size)); }
    .tui-formInput--charLength-10 {
      max-width: calc(10 * var(--form-input-font-size)); }
    .tui-formInput--charLength-15 {
      max-width: calc(15 * var(--form-input-font-size)); }
    .tui-formInput--charLength-20 {
      max-width: calc(20 * var(--form-input-font-size)); }
    .tui-formInput--charLength-25 {
      max-width: calc(25 * var(--form-input-font-size)); }
    .tui-formInput--charLength-30 {
      max-width: calc(30 * var(--form-input-font-size)); }
    .tui-formInput--charLength-50 {
      max-width: calc(50 * var(--form-input-font-size)); }
    .tui-formInput--charLength-75 {
      max-width: calc(75 * var(--form-input-font-size)); }
    .tui-formInput--charLength-100 {
      max-width: calc(100 * var(--form-input-font-size));
      /* Set a custom size for inputs in a limited form*/ }
  .tui-form--inputWidth-limited .tui-formInput:not(.tui-input--customSize) {
    max-width: var(--form-input-limited-width); }
    .tui-form--inputWidth-limited .tui-inputSet--split .tui-formInput:not(.tui-input--customSize) {
      max-width: none; }
  .tui-formInput::placeholder {
    color: var(--form-input-text-placeholder-color); }
  .tui-contextInvalid .tui-formInput {
    border-color: var(--form-input-border-color-invalid);
    box-shadow: var(--form-input-shadow-invalid); }
  .tui-formInput--size-large {
    height: var(--form-input-height-large);
    /* prettier-ignore */
    padding: calc((var(--form-input-height-large) - 1em - (var(--form-input-border-size) * 2)) / 2);
    font-size: var(--form-input-font-size-lg); }
  .tui-formInput:focus {
    background: var(--form-input-bg-color-focus);
    border: var(--form-input-border-size) solid var(--form-input-border-color-focus);
    outline: none;
    box-shadow: var(--form-input-shadow-focus);
    outline: 2px solid var(--color-state-focus);
    outline-offset: var(--focus-outline-offset); }
    .tui-contextInvalid .tui-formInput:focus {
      background: var(--form-input-bg-color-invalid-focus);
      border-color: var(--form-input-border-color-invalid);
      outline-color: var(--form-input-border-color-invalid);
      box-shadow: var(--form-input-shadow-invalid-focus); }
  .tui-formInput--preIcon {
    padding-left: var(--gap-8); }
  .tui-formInput--postIcon {
    padding-right: var(--gap-8); }
  .tui-formInput[readonly] {
    color: var(--form-input-text-color);
    background: var(--form-input-bg-color);
    border-color: var(--form-input-border-color); }
    .tui-formInput[readonly]::placeholder {
      color: var(--form-input-text-placeholder-color); }
  .tui-formInput[disabled] {
    color: var(--form-input-text-color-disabled);
    background: var(--form-input-bg-color-disabled);
    border-color: var(--form-input-border-color-disabled); }
    .tui-formInput[disabled]::placeholder {
      color: var(--form-input-text-color-disabled); }
  .tui-formInput--transparent, .tui-formInput--transparent:focus, .tui-formInput--transparent:focus-visible, .tui-formInput--transparent[readonly], .tui-formInput--transparent[disabled], .tui-contextInvalid .tui-formInput--transparent, .tui-contextInvalid .tui-formInput--transparent:focus {
    background-color: transparent;
    border: none;
    border-radius: 0;
    outline: none;
    box-shadow: none; }

.tui-inputColor {
  position: relative; }
  .tui-inputColor--charLength-2 {
    max-width: calc(2 * var(--form-input-font-size)); }
  .tui-inputColor--charLength-3 {
    max-width: calc(3 * var(--form-input-font-size)); }
  .tui-inputColor--charLength-4 {
    max-width: calc(4 * var(--form-input-font-size)); }
  .tui-inputColor--charLength-5 {
    max-width: calc(5 * var(--form-input-font-size)); }
  .tui-inputColor--charLength-10 {
    max-width: calc(10 * var(--form-input-font-size)); }
  .tui-inputColor--charLength-15 {
    max-width: calc(15 * var(--form-input-font-size)); }
  .tui-inputColor--charLength-20 {
    max-width: calc(20 * var(--form-input-font-size)); }
  .tui-inputColor--charLength-25 {
    max-width: calc(25 * var(--form-input-font-size)); }
  .tui-inputColor--charLength-30 {
    max-width: calc(30 * var(--form-input-font-size)); }
  .tui-inputColor--charLength-50 {
    max-width: calc(50 * var(--form-input-font-size)); }
  .tui-inputColor--charLength-75 {
    max-width: calc(75 * var(--form-input-font-size)); }
  .tui-inputColor--charLength-100 {
    max-width: calc(100 * var(--form-input-font-size));
    /* Set a custom size for inputs in a limited form*/ }
  .tui-form--inputWidth-limited .tui-inputColor:not(.tui-input--customSize) {
    max-width: var(--form-input-limited-width); }
    .tui-form--inputWidth-limited .tui-inputSet--split .tui-inputColor:not(.tui-input--customSize) {
      max-width: none;
      /* visually hide the colour Input control*/ }
  .tui-inputColor .tui-inputColor__picker[type='color'] {
    position: absolute;
    width: calc(var(--gap-8) + var(--gap-2));
    opacity: 0; }
    .tui-inputColor .tui-inputColor__picker[type='color'][disabled] {
      cursor: not-allowed;
      /* quite acute box model and positioning values to make sure they scale with*/
      /* associated text Input values*/ }
  .tui-inputColor__colorBlock {
    position: absolute;
    /* prettier-ignore*/
    top: calc(0.4rem + var(--form-input-border-size));
    left: calc(0.4rem + var(--form-input-border-size));
    width: var(--gap-8);
    /* prettier-ignore*/
    height: calc(100% - 0.8rem - var(--form-input-border-size) * 2);
    border-radius: var(--border-radius-small); }
    .tui-inputColor__colorBlock--disabled {
      cursor: not-allowed; }
  .tui-inputColor .tui-inputColor__input[type='text'] {
    padding-left: calc(var(--gap-8) + 0.8rem + var(
          --form-input-border-size
        ) + var(--gap-1)); }

.tui-formInputCurrency {
  display: flex;
  flex-grow: 1;
  align-items: center;
  width: 100%;
  min-width: 0; }
  .tui-formInputCurrency--charLength-2 {
    max-width: calc(2 * var(--form-input-font-size)); }
  .tui-formInputCurrency--charLength-3 {
    max-width: calc(3 * var(--form-input-font-size)); }
  .tui-formInputCurrency--charLength-4 {
    max-width: calc(4 * var(--form-input-font-size)); }
  .tui-formInputCurrency--charLength-5 {
    max-width: calc(5 * var(--form-input-font-size)); }
  .tui-formInputCurrency--charLength-10 {
    max-width: calc(10 * var(--form-input-font-size)); }
  .tui-formInputCurrency--charLength-15 {
    max-width: calc(15 * var(--form-input-font-size)); }
  .tui-formInputCurrency--charLength-20 {
    max-width: calc(20 * var(--form-input-font-size)); }
  .tui-formInputCurrency--charLength-25 {
    max-width: calc(25 * var(--form-input-font-size)); }
  .tui-formInputCurrency--charLength-30 {
    max-width: calc(30 * var(--form-input-font-size)); }
  .tui-formInputCurrency--charLength-50 {
    max-width: calc(50 * var(--form-input-font-size)); }
  .tui-formInputCurrency--charLength-75 {
    max-width: calc(75 * var(--form-input-font-size)); }
  .tui-formInputCurrency--charLength-100 {
    max-width: calc(100 * var(--form-input-font-size));
    /* Set a custom size for inputs in a limited form*/ }
  .tui-form--inputWidth-limited .tui-formInputCurrency:not(.tui-input--customSize) {
    max-width: var(--form-input-limited-width); }
    .tui-form--inputWidth-limited .tui-inputSet--split .tui-formInputCurrency:not(.tui-input--customSize) {
      max-width: none; }
  .tui-formInputCurrency__symbol {
    font-weight: bold;
    font-size: var(--font-body-size);
    line-height: var(--font-body-line-height);
    font-size: var(--form-input-font-size); }
    .tui-formInputCurrency__symbol:first-child {
      margin-right: var(--gap-1); }
    .tui-formInputCurrency__symbol:last-child {
      margin-left: var(--gap-1); }
  .tui-formInputCurrency--size-large .tui-formInputCurrency__symbol {
    font-size: var(--form-input-font-size-lg); }

.tui-inputGroup {
  display: flex;
  flex-direction: row;
  box-sizing: border-box;
  width: 100%;
  min-width: 0;
  height: var(--form-input-height);
  color: var(--form-input-text-color);
  font-size: var(--form-input-font-size);
  line-height: 1;
  background: var(--form-input-bg-color);
  border: var(--form-input-border-size) solid var(--form-input-border-color);
  border-radius: var(--form-input-border-radius); }
  .tui-inputGroup--charLength-2 {
    max-width: calc(2 * var(--form-input-font-size)); }
  .tui-inputGroup--charLength-3 {
    max-width: calc(3 * var(--form-input-font-size)); }
  .tui-inputGroup--charLength-4 {
    max-width: calc(4 * var(--form-input-font-size)); }
  .tui-inputGroup--charLength-5 {
    max-width: calc(5 * var(--form-input-font-size)); }
  .tui-inputGroup--charLength-10 {
    max-width: calc(10 * var(--form-input-font-size)); }
  .tui-inputGroup--charLength-15 {
    max-width: calc(15 * var(--form-input-font-size)); }
  .tui-inputGroup--charLength-20 {
    max-width: calc(20 * var(--form-input-font-size)); }
  .tui-inputGroup--charLength-25 {
    max-width: calc(25 * var(--form-input-font-size)); }
  .tui-inputGroup--charLength-30 {
    max-width: calc(30 * var(--form-input-font-size)); }
  .tui-inputGroup--charLength-50 {
    max-width: calc(50 * var(--form-input-font-size)); }
  .tui-inputGroup--charLength-75 {
    max-width: calc(75 * var(--form-input-font-size)); }
  .tui-inputGroup--charLength-100 {
    max-width: calc(100 * var(--form-input-font-size));
    /* Set a custom size for inputs in a limited form*/ }
  .tui-form--inputWidth-limited .tui-inputGroup:not(.tui-input--customSize) {
    max-width: var(--form-input-limited-width); }
    .tui-form--inputWidth-limited .tui-inputSet--split .tui-inputGroup:not(.tui-input--customSize) {
      max-width: none; }
  .tui-contextInvalid .tui-inputGroup {
    border-color: var(--form-input-border-color-invalid);
    box-shadow: var(--form-input-shadow-invalid); }
  .tui-inputGroup--hasFocus {
    background: var(--form-input-bg-color-focus);
    border: var(--form-input-border-size) solid;
    border-color: var(--form-input-border-color-focus);
    box-shadow: var(--form-input-shadow-focus);
    outline: 2px solid var(--color-state-focus);
    outline-offset: var(--focus-outline-offset); }
    .tui-contextInvalid .tui-inputGroup--hasFocus {
      background: var(--form-input-bg-color-invalid-focus);
      border-color: var(--form-input-border-color-invalid);
      outline-color: var(--form-input-border-color-invalid);
      box-shadow: var(--form-input-shadow-invalid-focus); }
  .tui-inputGroup--disabled {
    color: var(--form-input-text-color-disabled);
    background: var(--form-input-bg-color-disabled);
    border-color: var(--form-input-border-color-disabled); }
    .tui-inputGroup--disabled::placeholder {
      color: var(--form-input-text-color-disabled); }

.tui-inputGroupButton {
  display: flex;
  flex-shrink: 0;
  align-items: center;
  justify-content: center;
  padding: 0 var(--gap-2);
  color: var(--color-state);
  font-size: var(--form-input-font-size);
  cursor: pointer;
  -webkit-user-select: none;
  user-select: none; }
  .tui-inputGroupButton:focus-visible {
    color: var(--color-state-focus);
    outline: 2px solid var(--color-state-focus);
    outline-offset: var(--focus-outline-offset);
    outline-offset: calc(var(--form-input-border-size) + var(--focus-outline-offset)); }
  .tui-inputGroupButton:hover {
    color: var(--color-state-hover); }
  .tui-inputGroupButton:active {
    color: var(--color-state-active); }
  .tui-inputGroupButton[disabled] {
    color: var(--color-state-disabled);
    cursor: default; }

/* Reset*/
.tui-inputGroupInput, input[type].tui-inputGroupInput {
  display: inline-block;
  width: auto;
  max-width: none;
  height: auto;
  max-height: none;
  margin: 0;
  padding: 1px;
  color: black;
  font-size: inherit;
  line-height: inherit;
  letter-spacing: normal;
  text-align: start;
  text-transform: none;
  text-indent: 0;
  text-shadow: none;
  word-spacing: normal;
  background-color: white;
  border-color: #dadada;
  border-style: inset;
  border-width: 2px;
  border-radius: 0;
  border-image-source: none;
  border-image-slice: 100%;
  border-image-width: 1;
  border-image-outset: 0;
  border-image-repeat: stretch;
  border-spacing: 0;
  box-shadow: none;
  cursor: text;
  transition-delay: 0s;
  transition-timing-function: ease;
  transition-duration: 0s;
  transition-property: all;
  text-rendering: auto; }
  .tui-inputGroupInput[disabled], input[type].tui-inputGroupInput[disabled] {
    color: #3d444b;
    background: #dadada;
    cursor: default; }
  .tui-inputGroupInput:focus, input[type].tui-inputGroupInput:focus {
    border-color: #dadada;
    outline-width: 3px;
    outline-style: auto;
    outline-color: Highlight;
    outline-color: -webkit-focus-ring-color;
    outline-offset: -2px;
    box-shadow: none;
    -moz-user-focus: normal; }
  .tui-inputGroupInput::placeholder, input[type].tui-inputGroupInput::placeholder {
    color: #a9a9a9;
    opacity: 1; }

.tui-inputGroupInput, input[type].tui-inputGroupInput {
  display: block;
  flex-grow: 1;
  box-sizing: border-box;
  min-width: 0;
  padding: 0 var(--gap-2);
  color: var(--form-input-text-color);
  font-size: var(--form-input-font-size);
  line-height: 1;
  background: transparent;
  border: none; }
  .tui-inputGroupInput::placeholder, input[type].tui-inputGroupInput::placeholder {
    color: var(--form-input-text-placeholder-color); }
  .tui-inputGroupInput:focus, input[type].tui-inputGroupInput:focus {
    background-color: transparent;
    border: none;
    outline: none;
    box-shadow: none; }
  .tui-inputGroupInput[disabled], input[type].tui-inputGroupInput[disabled] {
    color: var(--form-input-text-color-disabled);
    background: transparent; }
    .tui-inputGroupInput[disabled]::placeholder, input[type].tui-inputGroupInput[disabled]::placeholder {
      color: var(--form-input-text-color-disabled); }
  .tui-inputGroupInput[readonly], input[type].tui-inputGroupInput[readonly] {
    background: transparent; }
  .tui-inputGroupInput--monospaceFont, input[type].tui-inputGroupInput--monospaceFont {
    font-family: var(--font-family-monospace); }

.tui-inputSet {
  display: flex;
  flex: 1;
  gap: var(--input-set-spacing); }
  .tui-inputSet--charLength-2 {
    max-width: calc(2 * var(--form-input-font-size)); }
  .tui-inputSet--charLength-3 {
    max-width: calc(3 * var(--form-input-font-size)); }
  .tui-inputSet--charLength-4 {
    max-width: calc(4 * var(--form-input-font-size)); }
  .tui-inputSet--charLength-5 {
    max-width: calc(5 * var(--form-input-font-size)); }
  .tui-inputSet--charLength-10 {
    max-width: calc(10 * var(--form-input-font-size)); }
  .tui-inputSet--charLength-15 {
    max-width: calc(15 * var(--form-input-font-size)); }
  .tui-inputSet--charLength-20 {
    max-width: calc(20 * var(--form-input-font-size)); }
  .tui-inputSet--charLength-25 {
    max-width: calc(25 * var(--form-input-font-size)); }
  .tui-inputSet--charLength-30 {
    max-width: calc(30 * var(--form-input-font-size)); }
  .tui-inputSet--charLength-50 {
    max-width: calc(50 * var(--form-input-font-size)); }
  .tui-inputSet--charLength-75 {
    max-width: calc(75 * var(--form-input-font-size)); }
  .tui-inputSet--charLength-100 {
    max-width: calc(100 * var(--form-input-font-size));
    /* Set a custom size for inputs in a limited form*/ }
  .tui-form--inputWidth-limited .tui-inputSet:not(.tui-input--customSize) {
    max-width: var(--form-input-limited-width); }
    .tui-form--inputWidth-limited .tui-inputSet--split .tui-inputSet:not(.tui-input--customSize) {
      max-width: none; }
  .tui-inputSet--v {
    flex-direction: column; }
  .tui-inputSet--h {
    flex-direction: row;
    flex-wrap: wrap; }
  .tui-inputSet > .tui-formLabel {
    padding: 0; }
  .tui-inputSet > {
    /* replaced input elements have their width set to 100% normally as*/
    /* `width: auto` doesn't fill the container like it does on divs*/ }
    .tui-inputSet > input[type].tui-formInput, .tui-inputSet > .tui-formTextarea, .tui-inputSet > .tui-range, .tui-inputSet > .tui-select {
      width: auto; }
  .tui-inputSet--split > * {
    flex-basis: 0;
    flex-grow: 1;
    width: auto;
    /* need to specify .tui-formInput here too for specificity reasons*/ }
  .tui-inputSet--stackBelow-2 > *, .tui-inputSet--stackBelow-2 > .tui-formInput {
    /* This triggers the children to switch to being vertically stacked below a*/
    /* certain width.*/
    /* It works like this:*/
    /* Above the specified width, (width - 100%) evaluates to a large*/
    /* negative flex basis, and is therefore ignored.*/
    /* Below the specified width, (width - 100%) evaluates to a large*/
    /* positve flex basis, and forces each item to take up its own line.*/
    /* Magic!*/
    /* prettier-ignore*/
    flex-basis: calc((calc(2 * var(--form-input-font-size)) - 100%) * 999);
    /* need to specify .tui-formInput here too for specificity reasons*/ }
  .tui-inputSet--stackBelow-3 > *, .tui-inputSet--stackBelow-3 > .tui-formInput {
    /* This triggers the children to switch to being vertically stacked below a*/
    /* certain width.*/
    /* It works like this:*/
    /* Above the specified width, (width - 100%) evaluates to a large*/
    /* negative flex basis, and is therefore ignored.*/
    /* Below the specified width, (width - 100%) evaluates to a large*/
    /* positve flex basis, and forces each item to take up its own line.*/
    /* Magic!*/
    /* prettier-ignore*/
    flex-basis: calc((calc(3 * var(--form-input-font-size)) - 100%) * 999);
    /* need to specify .tui-formInput here too for specificity reasons*/ }
  .tui-inputSet--stackBelow-4 > *, .tui-inputSet--stackBelow-4 > .tui-formInput {
    /* This triggers the children to switch to being vertically stacked below a*/
    /* certain width.*/
    /* It works like this:*/
    /* Above the specified width, (width - 100%) evaluates to a large*/
    /* negative flex basis, and is therefore ignored.*/
    /* Below the specified width, (width - 100%) evaluates to a large*/
    /* positve flex basis, and forces each item to take up its own line.*/
    /* Magic!*/
    /* prettier-ignore*/
    flex-basis: calc((calc(4 * var(--form-input-font-size)) - 100%) * 999);
    /* need to specify .tui-formInput here too for specificity reasons*/ }
  .tui-inputSet--stackBelow-5 > *, .tui-inputSet--stackBelow-5 > .tui-formInput {
    /* This triggers the children to switch to being vertically stacked below a*/
    /* certain width.*/
    /* It works like this:*/
    /* Above the specified width, (width - 100%) evaluates to a large*/
    /* negative flex basis, and is therefore ignored.*/
    /* Below the specified width, (width - 100%) evaluates to a large*/
    /* positve flex basis, and forces each item to take up its own line.*/
    /* Magic!*/
    /* prettier-ignore*/
    flex-basis: calc((calc(5 * var(--form-input-font-size)) - 100%) * 999);
    /* need to specify .tui-formInput here too for specificity reasons*/ }
  .tui-inputSet--stackBelow-10 > *, .tui-inputSet--stackBelow-10 > .tui-formInput {
    /* This triggers the children to switch to being vertically stacked below a*/
    /* certain width.*/
    /* It works like this:*/
    /* Above the specified width, (width - 100%) evaluates to a large*/
    /* negative flex basis, and is therefore ignored.*/
    /* Below the specified width, (width - 100%) evaluates to a large*/
    /* positve flex basis, and forces each item to take up its own line.*/
    /* Magic!*/
    /* prettier-ignore*/
    flex-basis: calc((calc(10 * var(--form-input-font-size)) - 100%) * 999);
    /* need to specify .tui-formInput here too for specificity reasons*/ }
  .tui-inputSet--stackBelow-15 > *, .tui-inputSet--stackBelow-15 > .tui-formInput {
    /* This triggers the children to switch to being vertically stacked below a*/
    /* certain width.*/
    /* It works like this:*/
    /* Above the specified width, (width - 100%) evaluates to a large*/
    /* negative flex basis, and is therefore ignored.*/
    /* Below the specified width, (width - 100%) evaluates to a large*/
    /* positve flex basis, and forces each item to take up its own line.*/
    /* Magic!*/
    /* prettier-ignore*/
    flex-basis: calc((calc(15 * var(--form-input-font-size)) - 100%) * 999);
    /* need to specify .tui-formInput here too for specificity reasons*/ }
  .tui-inputSet--stackBelow-20 > *, .tui-inputSet--stackBelow-20 > .tui-formInput {
    /* This triggers the children to switch to being vertically stacked below a*/
    /* certain width.*/
    /* It works like this:*/
    /* Above the specified width, (width - 100%) evaluates to a large*/
    /* negative flex basis, and is therefore ignored.*/
    /* Below the specified width, (width - 100%) evaluates to a large*/
    /* positve flex basis, and forces each item to take up its own line.*/
    /* Magic!*/
    /* prettier-ignore*/
    flex-basis: calc((calc(20 * var(--form-input-font-size)) - 100%) * 999);
    /* need to specify .tui-formInput here too for specificity reasons*/ }
  .tui-inputSet--stackBelow-25 > *, .tui-inputSet--stackBelow-25 > .tui-formInput {
    /* This triggers the children to switch to being vertically stacked below a*/
    /* certain width.*/
    /* It works like this:*/
    /* Above the specified width, (width - 100%) evaluates to a large*/
    /* negative flex basis, and is therefore ignored.*/
    /* Below the specified width, (width - 100%) evaluates to a large*/
    /* positve flex basis, and forces each item to take up its own line.*/
    /* Magic!*/
    /* prettier-ignore*/
    flex-basis: calc((calc(25 * var(--form-input-font-size)) - 100%) * 999);
    /* need to specify .tui-formInput here too for specificity reasons*/ }
  .tui-inputSet--stackBelow-30 > *, .tui-inputSet--stackBelow-30 > .tui-formInput {
    /* This triggers the children to switch to being vertically stacked below a*/
    /* certain width.*/
    /* It works like this:*/
    /* Above the specified width, (width - 100%) evaluates to a large*/
    /* negative flex basis, and is therefore ignored.*/
    /* Below the specified width, (width - 100%) evaluates to a large*/
    /* positve flex basis, and forces each item to take up its own line.*/
    /* Magic!*/
    /* prettier-ignore*/
    flex-basis: calc((calc(30 * var(--form-input-font-size)) - 100%) * 999);
    /* need to specify .tui-formInput here too for specificity reasons*/ }
  .tui-inputSet--stackBelow-50 > *, .tui-inputSet--stackBelow-50 > .tui-formInput {
    /* This triggers the children to switch to being vertically stacked below a*/
    /* certain width.*/
    /* It works like this:*/
    /* Above the specified width, (width - 100%) evaluates to a large*/
    /* negative flex basis, and is therefore ignored.*/
    /* Below the specified width, (width - 100%) evaluates to a large*/
    /* positve flex basis, and forces each item to take up its own line.*/
    /* Magic!*/
    /* prettier-ignore*/
    flex-basis: calc((calc(50 * var(--form-input-font-size)) - 100%) * 999);
    /* need to specify .tui-formInput here too for specificity reasons*/ }
  .tui-inputSet--stackBelow-75 > *, .tui-inputSet--stackBelow-75 > .tui-formInput {
    /* This triggers the children to switch to being vertically stacked below a*/
    /* certain width.*/
    /* It works like this:*/
    /* Above the specified width, (width - 100%) evaluates to a large*/
    /* negative flex basis, and is therefore ignored.*/
    /* Below the specified width, (width - 100%) evaluates to a large*/
    /* positve flex basis, and forces each item to take up its own line.*/
    /* Magic!*/
    /* prettier-ignore*/
    flex-basis: calc((calc(75 * var(--form-input-font-size)) - 100%) * 999);
    /* need to specify .tui-formInput here too for specificity reasons*/ }
  .tui-inputSet--stackBelow-100 > *, .tui-inputSet--stackBelow-100 > .tui-formInput {
    /* This triggers the children to switch to being vertically stacked below a*/
    /* certain width.*/
    /* It works like this:*/
    /* Above the specified width, (width - 100%) evaluates to a large*/
    /* negative flex basis, and is therefore ignored.*/
    /* Below the specified width, (width - 100%) evaluates to a large*/
    /* positve flex basis, and forces each item to take up its own line.*/
    /* Magic!*/
    /* prettier-ignore*/
    flex-basis: calc((calc(100 * var(--form-input-font-size)) - 100%) * 999); }

.tui-inputSetCol {
  flex-basis: 0; }

.tui-formInputSizedText {
  padding: calc((var(--form-input-height) - (var(--form-input-font-size) * var(--form-input-line-height))) / 2) 0;
  line-height: var(--form-input-line-height); }

.tui-formLabel {
  min-width: 0;
  margin: 0;
  padding: 0 var(--gap-1) 0 0;
  font-weight: 500;
  font-size: var(--font-body-size);
  line-height: var(--font-body-line-height); }
  legend.tui-formLabel {
    width: auto;
    margin: 0;
    padding: 0 var(--gap-1) 0 0;
    color: inherit;
    border: none; }
  .tui-formLabel--inline {
    display: inline; }
  .tui-formLabel--hidden {
    /* The use of '!important' here is an exception and should not be replicated else where */
    /* stylelint-disable declaration-no-important */
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    margin: -1px !important;
    padding: 0 !important;
    overflow: hidden !important;
    white-space: nowrap !important;
    border: 0 !important;
    clip: rect(0, 0, 0, 0) !important;
    /* stylelint-enable */ }
  .tui-formLabel--subfield {
    font-weight: normal;
    font-size: var(--font-body-small-size);
    line-height: var(--font-body-small-line-height);
    color: var(--color-neutral-6); }
  .tui-formLabel__required {
    color: var(--color-prompt-alert); }

.tui-notepadLines--charLength-2 {
  max-width: calc(2 * var(--form-input-font-size)); }
.tui-notepadLines--charLength-3 {
  max-width: calc(3 * var(--form-input-font-size)); }
.tui-notepadLines--charLength-4 {
  max-width: calc(4 * var(--form-input-font-size)); }
.tui-notepadLines--charLength-5 {
  max-width: calc(5 * var(--form-input-font-size)); }
.tui-notepadLines--charLength-10 {
  max-width: calc(10 * var(--form-input-font-size)); }
.tui-notepadLines--charLength-15 {
  max-width: calc(15 * var(--form-input-font-size)); }
.tui-notepadLines--charLength-20 {
  max-width: calc(20 * var(--form-input-font-size)); }
.tui-notepadLines--charLength-25 {
  max-width: calc(25 * var(--form-input-font-size)); }
.tui-notepadLines--charLength-30 {
  max-width: calc(30 * var(--form-input-font-size)); }
.tui-notepadLines--charLength-50 {
  max-width: calc(50 * var(--form-input-font-size)); }
.tui-notepadLines--charLength-75 {
  max-width: calc(75 * var(--form-input-font-size)); }
.tui-notepadLines--charLength-100 {
  max-width: calc(100 * var(--form-input-font-size));
  /* Set a custom size for inputs in a limited form*/ }
.tui-form--inputWidth-limited .tui-notepadLines:not(.tui-input--customSize) {
  max-width: var(--form-input-limited-width); }
  .tui-form--inputWidth-limited .tui-inputSet--split .tui-notepadLines:not(.tui-input--customSize) {
    max-width: none; }
.tui-notepadLines__line {
  height: var(--form-notepad-line-height);
  border-bottom: var(--form-notepad-line-border); }

:root {
  /* Size of radio circle*/
  --form-radio-size: var(--font-size-16);
  /* Size of radio inner dot*/
  --form-radio-dot-size: calc(var(--form-radio-size) / 2);
  /* Offset to center dot*/
  --radio-dot-offset: calc(var(--form-radio-size) / 4); }

.tui-radio {
  position: relative;
  display: inline-flex; }
  .tui-radio__input {
    position: absolute;
    opacity: 0; }
  .tui-radio__label {
    position: relative;
    margin: 0;
    padding-left: var(--radio-label-offset);
    font-weight: normal;
    font-size: var(--form-input-font-size);
    line-height: var(--form-input-line-height); }
    .tui-radio__label::before {
      position: absolute;
      top: calc(50% - var(--form-radio-size) / 2);
      left: 0;
      display: block;
      width: var(--form-radio-size);
      height: var(--form-radio-size);
      background: var(--form-radio-bg-color);
      border: var(--form-input-border-size) solid;
      border-color: var(--form-radio-border-color);
      border-radius: 50%;
      transition: border var(--transition-form-function) var(--transition-form-duration), box-shadow var(--transition-form-function) var(--transition-form-duration);
      content: '';
      pointer-events: none; }
      .tui-contextInvalid .tui-radio__label::before {
        border-color: var(--form-input-border-color-invalid);
        box-shadow: var(--shadow-none), var(--form-input-shadow-invalid); }
  .tui-radio__input:disabled ~ .tui-radio__label {
    color: var(--form-input-text-color-disabled); }
  .tui-radio__input:hover ~ .tui-radio__label::before {
    background: var(--form-radio-bg-color-hover); }
  .tui-radio__input:focus-visible ~ .tui-radio__label::before {
    background: var(--form-radio-bg-color-focus);
    outline: 2px solid var(--color-state-focus);
    outline-offset: var(--focus-outline-offset); }
    .tui-contextInvalid .tui-radio__input:focus-visible ~ .tui-radio__label::before {
      outline-color: var(--form-input-border-color-invalid); }
  .tui-radio__input:hover ~ .tui-radio__label::before, .tui-radio__input:focus-visible ~ .tui-radio__label::before {
    border: var(--form-input-border-size) solid;
    border-color: var(--form-radio-border-color-focus);
    box-shadow: var(--form-input-shadow-focus); }
    .tui-contextInvalid .tui-radio__input:hover ~ .tui-radio__label::before, .tui-contextInvalid .tui-radio__input:focus-visible ~ .tui-radio__label::before {
      border-color: var(--form-input-border-color-invalid);
      box-shadow: var(--shadow-none), var(--form-input-shadow-invalid-focus); }
  .tui-radio__input:active:focus ~ .tui-radio__label::before, .tui-radio__input:active:hover ~ .tui-radio__label::before, .tui-radio__input:active ~ .tui-radio__label::before {
    background: var(--form-radio-bg-color-active);
    border: var(--form-input-border-size) solid;
    border-color: var(--form-radio-border-color-active);
    box-shadow: var(--form-input-shadow-focus); }
    .tui-contextInvalid .tui-radio__input:active:focus ~ .tui-radio__label::before, .tui-contextInvalid .tui-radio__input:active:hover ~ .tui-radio__label::before, .tui-contextInvalid .tui-radio__input:active ~ .tui-radio__label::before {
      border-color: var(--form-input-border-color-invalid);
      box-shadow: var(--shadow-none), var(--form-input-shadow-invalid-focus); }
  .tui-radio__input:disabled:active ~ .tui-radio__label::before, .tui-radio__input:disabled ~ .tui-radio__label::before {
    background: var(--form-radio-bg-color-disabled);
    border: var(--form-input-border-size) solid;
    border-color: var(--form-radio-border-color-disabled);
    box-shadow: none; }
  .tui-radio__input ~ .tui-radio__label::after {
    position: absolute;
    top: calc(50% - var(--form-radio-dot-size) / 2);
    left: var(--radio-dot-offset);
    display: block;
    width: var(--form-radio-dot-size);
    height: var(--form-radio-dot-size);
    background-color: var(--form-radio-dot-color);
    border-radius: 50%;
    opacity: 0;
    transition: opacity var(--transition-form-function) var(--transition-form-duration);
    content: '';
    pointer-events: none; }
  .tui-radio__input:disabled ~ .tui-radio__label::after {
    background-color: var(--form-input-text-color-disabled); }
  .tui-radio__input:checked ~ .tui-radio__label::after {
    opacity: 1; }

@media print {
  .tui-radio__input ~ .tui-radio__label::after {
    -webkit-print-color-adjust: exact;
    color-adjust: exact;
    /* IE11 & Edge support*/ }
  .ie .tui-radio__input ~ .tui-radio__label::after, .msedge .tui-radio__input ~ .tui-radio__label::after {
    border: 4px solid var(--form-radio-dot-color); } }

.tui-radioDateRangeInput {
  display: flex; }
  .tui-radioDateRangeInput > * + * {
    margin-left: var(--gap-2); }
  .tui-radioDateRangeInput__number {
    display: flex;
    width: 6rem; }
  .tui-radioDateRangeInput__type {
    display: flex;
    width: 12rem; }

.tui-radioGroup {
  display: flex;
  flex-direction: column;
  gap: var(--gap-2) var(--gap-4);
  padding: calc((var(--form-input-height) - (var(--form-input-font-size) * var(--form-input-line-height))) / 2) 0; }
  .tui-radioGroup--inputSizedOptions > * {
    align-items: center;
    min-height: var(--form-input-height); }
  .tui-radioGroup--noPaddingTop {
    padding-top: 0; }

@media screen and (min-width: 768px) {
  .tui-radioGroup--horizontal {
    flex-direction: row;
    flex-wrap: wrap; } }

.tui-radioNumberInput {
  display: flex;
  /* Use same indentation as radio for nicer wrapping*/
  margin-left: var(--radio-label-offset); }
  .tui-radioNumberInput__number {
    display: flex;
    width: 6rem; }

.tui-radioWithInput {
  display: inline-flex;
  flex-wrap: wrap;
  align-items: center; }
  .tui-radioWithInput > * + * {
    /* Use same indentation as radio for nicer wrapping*/
    margin-left: var(--radio-label-offset); }
  .tui-radioWithInput__radio {
    margin: var(--gap-2) 0; }

.tui-range {
  flex: auto;
  flex-direction: column; }
  .tui-range__labels {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    margin-bottom: var(--gap-1); }
  .tui-range__lowLabel, .tui-range__highLabel {
    font-weight: normal;
    font-size: var(--font-body-small-size);
    line-height: var(--font-body-small-line-height);
    flex-basis: 40%;
    color: var(--color-neutral-6); }
  .tui-range__lowLabel {
    text-align: left; }
  .tui-range__highLabel {
    text-align: right; }
  .tui-range__input {
    height: var(--form-range-height);
    padding: 0;
    outline: none;
    -webkit-appearance: none; }
    .tui-range__input:disabled {
      background-color: transparent; }
    .tui-range__input:focus-visible {
      outline: 2px solid var(--color-state-focus);
      outline-offset: var(--focus-outline-offset); }
    .tui-range__input::-moz-focus-outer {
      border: 0;
      /* Track styles */ }
    .tui-range__input::-webkit-slider-runnable-track {
      height: var(--form-range-track-height);
      background: var(--color-neutral-4);
      border-radius: var(--border-radius-small);
      cursor: pointer;
      -webkit-print-color-adjust: exact;
      color-adjust: exact; }
    .tui-range__input:focus::-webkit-slider-runnable-track {
      background: var(--color-neutral-4);
      -webkit-print-color-adjust: exact;
      color-adjust: exact; }
    .tui-range__input::-moz-range-track {
      height: var(--form-range-track-height);
      background: var(--color-neutral-4);
      border-radius: var(--border-radius-small);
      cursor: pointer;
      -webkit-print-color-adjust: exact;
      color-adjust: exact; }
    .tui-range__input::-ms-track {
      height: var(--form-range-track-height);
      background: var(--color-neutral-4);
      border-radius: var(--border-radius-small);
      cursor: pointer;
      -webkit-print-color-adjust: exact;
      color-adjust: exact;
      color: transparent;
      /* Remove default tick marks */
      background: transparent;
      /* Replace bg colour from the track with ms-fill-lower and ms-fill-upper */
      border-color: transparent;
      /* Thumb can not overlay track so we add invisible border */ }
    .tui-range__input::-ms-fill-upper, .tui-range__input::-ms-fill-lower {
      background: var(--color-neutral-4);
      border-radius: var(--border-radius-small); }
    .tui-range__input:focus::-ms-fill-upper, .tui-range__input:focus::-ms-fill-lower {
      background: var(--color-neutral-4);
      /* Thumb styles */ }
    .tui-range__input::-webkit-slider-thumb {
      width: var(--form-range-thumb-size);
      height: var(--form-range-thumb-size);
      background: var(--color-neutral-5);
      border: none;
      border-radius: var(--form-range-thumb-border-radius);
      box-shadow: var(--form-range-thumb-shadow);
      cursor: pointer;
      margin-top: var(--form-range-thumb-margin-top);
      -webkit-appearance: none; }
    .tui-range__input::-moz-range-thumb {
      width: var(--form-range-thumb-size);
      height: var(--form-range-thumb-size);
      background: var(--color-neutral-5);
      border: none;
      border-radius: var(--form-range-thumb-border-radius);
      box-shadow: var(--form-range-thumb-shadow);
      cursor: pointer; }
    .tui-range__input::-ms-thumb {
      width: var(--form-range-thumb-size);
      height: var(--form-range-thumb-size);
      background: var(--color-neutral-5);
      border: none;
      border-radius: var(--form-range-thumb-border-radius);
      box-shadow: var(--form-range-thumb-shadow);
      cursor: pointer; }
      .tui-range__input.tui-range__input--selected::-webkit-slider-thumb {
        background: var(--color-state); }
      .tui-range__input.tui-range__input--selected::-moz-range-thumb {
        background: var(--color-state); }
      .tui-range__input.tui-range__input--selected::-ms-thumb {
        background: var(--color-state); }
    .tui-range__input.tui-range__input--noThumb::-webkit-slider-thumb {
      display: none; }
    .tui-range__input.tui-range__input--noThumb::-moz-range-thumb {
      /* Display none does not work.*/
      opacity: 0; }
    .tui-range__input.tui-range__input--noThumb::-ms-thumb {
      display: none; }

.tui-repeater {
  display: block;
  flex-grow: 1;
  width: 100%;
  min-width: 0; }
  .tui-repeater > * + * {
    margin-top: var(--gap-3); }
  .tui-repeater__row, .tui-repeater__headerRow {
    display: flex;
    align-items: flex-start; }
  .tui-repeater__headerRow + .tui-repeater__row {
    margin-top: var(--gap-2); }
  .tui-repeater__row + .tui-repeater__afterRow {
    margin-top: var(--gap-4); }
  .tui-repeater__afterRow + .tui-repeater__row {
    margin-top: var(--gap-8); }
  .tui-repeater__afterRow + .tui-repeater__headerRow {
    margin-top: var(--gap-4); }
  .tui-repeater--noSpacing > * {
    margin: 0; }
  .tui-repeater__headerRow .tui-repeater__delete {
    height: 1px;
    min-height: 1px;
    overflow: hidden; }

.tui-searchBox {
  position: relative;
  display: flex;
  border-radius: var(--form-input-border-radius);
  isolation: isolate;
  /* contain z indexes*/ }
  .tui-searchBox__inputWrapper {
    position: relative;
    display: flex;
    flex-grow: 1; }
    .tui-searchBox__inputWrapper--charLength-2 {
      max-width: calc(2 * var(--form-input-font-size)); }
    .tui-searchBox__inputWrapper--charLength-3 {
      max-width: calc(3 * var(--form-input-font-size)); }
    .tui-searchBox__inputWrapper--charLength-4 {
      max-width: calc(4 * var(--form-input-font-size)); }
    .tui-searchBox__inputWrapper--charLength-5 {
      max-width: calc(5 * var(--form-input-font-size)); }
    .tui-searchBox__inputWrapper--charLength-10 {
      max-width: calc(10 * var(--form-input-font-size)); }
    .tui-searchBox__inputWrapper--charLength-15 {
      max-width: calc(15 * var(--form-input-font-size)); }
    .tui-searchBox__inputWrapper--charLength-20 {
      max-width: calc(20 * var(--form-input-font-size)); }
    .tui-searchBox__inputWrapper--charLength-25 {
      max-width: calc(25 * var(--form-input-font-size)); }
    .tui-searchBox__inputWrapper--charLength-30 {
      max-width: calc(30 * var(--form-input-font-size)); }
    .tui-searchBox__inputWrapper--charLength-50 {
      max-width: calc(50 * var(--form-input-font-size)); }
    .tui-searchBox__inputWrapper--charLength-75 {
      max-width: calc(75 * var(--form-input-font-size)); }
    .tui-searchBox__inputWrapper--charLength-100 {
      max-width: calc(100 * var(--form-input-font-size));
      /* Set a custom size for inputs in a limited form*/ }
    .tui-form--inputWidth-limited .tui-searchBox__inputWrapper:not(.tui-input--customSize) {
      max-width: var(--form-input-limited-width); }
      .tui-form--inputWidth-limited .tui-inputSet--split .tui-searchBox__inputWrapper:not(.tui-input--customSize) {
        max-width: none; }
  .tui-searchBox__search[type='search'] {
    border-radius: 0;
    border-top-left-radius: var(--form-input-border-radius);
    border-bottom-left-radius: var(--form-input-border-radius); }
    .tui-searchBox__search[type='search']:focus {
      z-index: 1;
      /* disable the default clear (x) action in IE*/ }
    .tui-searchBox__search[type='search']::-ms-clear {
      display: none; }
  .tui-searchBox .tui-formLabel {
    margin-right: var(--gap-2); }
  .tui-searchBox__clearContainer {
    position: absolute;
    right: 0;
    height: 100%; }
  .tui-searchBox__removeIcon {
    color: var(--filter-search-clear-icon-color);
    /* So that the search button matches the format of the input that is next to it*/ }
  .tui-searchBox__button {
    margin-left: calc(var(--form-input-border-size) * -1);
    border-radius: 0;
    border-top-right-radius: var(--form-input-border-radius);
    border-bottom-right-radius: var(--form-input-border-radius); }
    .tui-searchBox__button:focus {
      z-index: 1; }

:root {
  --select-icon-size: var(--gap-1); }

.tui-select {
  position: relative;
  display: flex;
  flex-grow: 1;
  width: 100%;
  min-width: 0;
  height: var(--form-input-height);
  border-radius: var(--form-input-border-radius); }
  .tui-select--charLength-2 {
    max-width: calc(2 * var(--form-input-font-size)); }
  .tui-select--charLength-3 {
    max-width: calc(3 * var(--form-input-font-size)); }
  .tui-select--charLength-4 {
    max-width: calc(4 * var(--form-input-font-size)); }
  .tui-select--charLength-5 {
    max-width: calc(5 * var(--form-input-font-size)); }
  .tui-select--charLength-10 {
    max-width: calc(10 * var(--form-input-font-size)); }
  .tui-select--charLength-15 {
    max-width: calc(15 * var(--form-input-font-size)); }
  .tui-select--charLength-20 {
    max-width: calc(20 * var(--form-input-font-size)); }
  .tui-select--charLength-25 {
    max-width: calc(25 * var(--form-input-font-size)); }
  .tui-select--charLength-30 {
    max-width: calc(30 * var(--form-input-font-size)); }
  .tui-select--charLength-50 {
    max-width: calc(50 * var(--form-input-font-size)); }
  .tui-select--charLength-75 {
    max-width: calc(75 * var(--form-input-font-size)); }
  .tui-select--charLength-100 {
    max-width: calc(100 * var(--form-input-font-size));
    /* Set a custom size for inputs in a limited form*/ }
  .tui-form--inputWidth-limited .tui-select:not(.tui-input--customSize) {
    max-width: var(--form-input-limited-width); }
    .tui-form--inputWidth-limited .tui-inputSet--split .tui-select:not(.tui-input--customSize) {
      max-width: none; }
  .tui-select::after {
    position: absolute;
    top: calc((var(--form-input-height) - var(--select-icon-size)) / 2);
    right: calc((var(--form-input-height) - var(--select-icon-size) * 2) / 2);
    display: block;
    width: 0;
    height: 0;
    border: var(--select-icon-size) solid transparent;
    border-top-color: var(--form-input-text-color);
    content: '';
    pointer-events: none; }
  .tui-select--disabled::after {
    border-top-color: var(--form-input-text-color-disabled); }
  .tui-select--multiple::after {
    display: none; }
  .tui-select--large {
    height: var(--form-input-height-large); }
    .tui-select--large::after {
      top: calc((var(--form-input-height-large) - var(--select-icon-size)) / 2);
      /* prettier-ignore*/
      right: calc((var(--form-input-height-large) - var(--select-icon-size) * 2) / 2); }
  .tui-select__input {
    flex-grow: 1;
    box-sizing: border-box;
    width: 100%;
    min-width: 0;
    padding: 0 var(--gap-7) 0 var(--gap-3);
    color: var(--form-input-text-color);
    font-size: var(--form-input-font-size);
    background: var(--form-input-bg-color);
    border: var(--form-input-border-size) solid;
    border-color: var(--form-input-border-color);
    border-radius: var(--form-input-border-radius);
    -webkit-appearance: none;
    appearance: none; }
    .tui-select__input[multiple] {
      height: auto; }
    .tui-select__input[disabled] {
      color: var(--form-input-text-color-disabled);
      background: var(--form-input-bg-color-disabled);
      border-color: var(--form-input-border-color-disabled); }
    .tui-select__input:focus {
      background: var(--form-input-bg-color-focus);
      border: var(--form-input-border-size) solid;
      border-color: var(--form-input-border-color-focus);
      box-shadow: var(--form-input-shadow-focus);
      outline: 2px solid var(--color-state-focus);
      outline-offset: var(--focus-outline-offset); }
      .tui-contextInvalid .tui-select__input:focus {
        background: var(--form-input-bg-color-invalid-focus);
        border-color: var(--form-input-border-color-invalid);
        outline-color: var(--form-input-border-color-invalid);
        box-shadow: var(--form-input-shadow-invalid-focus);
        /* Drop select outline*/ }
    .tui-select__input:-moz-focusring {
      color: transparent;
      text-shadow: 0 0 0 #000;
      /* appearance: none; equivalent for IE*/ }
    .tui-select__input::-ms-expand {
      display: none;
      /* prevent weird styling after selecting value*/ }
    .tui-select__input::-ms-value {
      color: inherit;
      background-color: transparent; }
    .tui-contextInvalid .tui-select__input {
      border-color: var(--form-input-border-color-invalid);
      box-shadow: var(--form-input-shadow-invalid); }

.tui-formTextarea {
  display: block;
  flex-grow: 1;
  width: 100%;
  min-width: 0;
  max-width: 100%;
  max-height: 100%;
  padding: calc((var(--form-input-height) - (var(--form-input-font-size) * var(--form-input-line-height)) - (var(--form-input-border-size) * 2)) / 2) var(--gap-3);
  overflow: auto;
  color: var(--form-input-text-color);
  font-size: var(--form-input-font-size);
  font-family: inherit;
  line-height: var(--form-input-line-height);
  border: var(--form-input-border-size) solid var(--form-input-border-color);
  border-radius: var(--form-input-border-radius);
  resize: none; }
  .tui-formTextarea--charLength-2 {
    max-width: calc(2 * var(--form-input-font-size)); }
  .tui-formTextarea--charLength-3 {
    max-width: calc(3 * var(--form-input-font-size)); }
  .tui-formTextarea--charLength-4 {
    max-width: calc(4 * var(--form-input-font-size)); }
  .tui-formTextarea--charLength-5 {
    max-width: calc(5 * var(--form-input-font-size)); }
  .tui-formTextarea--charLength-10 {
    max-width: calc(10 * var(--form-input-font-size)); }
  .tui-formTextarea--charLength-15 {
    max-width: calc(15 * var(--form-input-font-size)); }
  .tui-formTextarea--charLength-20 {
    max-width: calc(20 * var(--form-input-font-size)); }
  .tui-formTextarea--charLength-25 {
    max-width: calc(25 * var(--form-input-font-size)); }
  .tui-formTextarea--charLength-30 {
    max-width: calc(30 * var(--form-input-font-size)); }
  .tui-formTextarea--charLength-50 {
    max-width: calc(50 * var(--form-input-font-size)); }
  .tui-formTextarea--charLength-75 {
    max-width: calc(75 * var(--form-input-font-size)); }
  .tui-formTextarea--charLength-100 {
    max-width: calc(100 * var(--form-input-font-size));
    /* Set a custom size for inputs in a limited form*/ }
  .tui-form--inputWidth-limited .tui-formTextarea:not(.tui-input--customSize) {
    max-width: var(--form-input-limited-width); }
    .tui-form--inputWidth-limited .tui-inputSet--split .tui-formTextarea:not(.tui-input--customSize) {
      max-width: none; }
  .tui-formTextarea::placeholder {
    color: var(--form-input-text-placeholder-color); }
  .tui-contextInvalid .tui-formTextarea {
    border-color: var(--form-input-border-color-invalid);
    box-shadow: var(--form-input-shadow-invalid); }
  .tui-formTextarea:focus {
    background: var(--form-input-bg-color-focus);
    border: var(--form-input-border-size) solid var(--form-input-border-color-focus);
    box-shadow: var(--form-input-shadow-focus);
    outline: 2px solid var(--color-state-focus);
    outline-offset: var(--focus-outline-offset); }
    .tui-contextInvalid .tui-formTextarea:focus {
      background: var(--form-input-bg-color-invalid-focus);
      border-color: var(--form-input-border-color-invalid);
      outline-color: var(--form-input-border-color-invalid);
      box-shadow: var(--form-input-shadow-invalid-focus); }
  .tui-formTextarea[disabled] {
    color: var(--form-input-text-color-disabled);
    background: var(--form-input-bg-color-disabled);
    border-color: var(--form-input-border-color-disabled); }
    .tui-formTextarea[disabled]::placeholder {
      color: var(--form-input-text-color-disabled); }

/* Grid styles*/
.tui-grid {
  display: flex;
  flex-grow: 1;
  /* in case nested inside a parent grid cell*/
  max-width: 100%;
  /* main Grid modifiers applied based on supplied prop values*/ }
  .tui-grid--wrapped {
    flex-wrap: wrap;
    /* content-containing elements*/ }
  .tui-grid-item {
    flex-grow: 0;
    /* by default we want item size to respect unit-based calculations*/
    flex-shrink: 1;
    /* by default we want to auto-adjust for gutters*/
    min-width: 0;
    /* allows flex items to shrink below their minimum content size*/
    margin: 0;
    padding: 0;
    -webkit-hyphens: auto;
    hyphens: auto;
    /* default prevents text from causing grid mis-alignments*/
    /* Grid item modifiers based on supplied prop values*/ }
    .tui-grid-item--grow {
      flex-grow: 1; }
    .tui-grid-item--no-shrink {
      flex-shrink: 0; }
    .tui-grid-item--no-hyphens {
      -webkit-hyphens: none;
      hyphens: none; }
    .tui-grid-item--overflow {
      overflow: auto;
      /* horizontal grid*/ }
  .tui-grid--horizontal {
    flex-direction: row; }
    .tui-grid--horizontal-gap > .tui-grid-item {
      /* because we use transparent borders for gutters but don't want that*/
      /* counting as visible item width*/
      box-sizing: content-box;
      background-clip: padding-box;
      border-left-color: transparent;
      border-left-style: solid;
      /* `border-left-width` is set using inline styles via GridItem*/
      /* vertical grid*/ }
  .tui-grid--vertical {
    flex-direction: column; }
    .tui-grid--vertical-gap > .tui-grid-item {
      /* because we use transparent borders for gutters but don't want that*/
      /* counting as visible item width*/
      box-sizing: content-box;
      background-clip: padding-box;
      border-top-color: transparent;
      border-top-style: solid;
      /* `border-top-width` is set using inline styles via GridItem*/ }
  .tui-grid--wrapped-gap .tui-grid-item--wrapped {
    border-top-color: transparent;
    border-top-style: solid;
    /* all zero unit GridItems should not show any gutters or content*/ }
    .tui-grid--vertical .tui-grid-item--no-units, .tui-grid--horizontal .tui-grid-item--no-units {
      overflow: hidden;
      /* switch to stacked display at an container-based pixel width breakpoint*/
      /* value (class is conditionally applied during Grid render())*/ }
  .tui-grid--stacked {
    display: block; }
    .tui-grid--stacked > .tui-grid-item {
      flex-basis: auto; }
      .tui-grid--stacked-gap > .tui-grid-item {
        /* because we use transparent borders for gutters but don't want that*/
        /* counting as visible item width*/
        box-sizing: content-box;
        background-clip: padding-box;
        border-top-color: transparent;
        border-top-style: solid;
        /* `border-top-width` is set using inline styles via GridItem*/ }
  .tui-grid--list {
    margin: 0;
    padding: 0;
    list-style-type: none; }

.tui-iconLoading {
  animation: tui-iconLoading-spin 1s steps(12, end) infinite; }

@keyframes tui-iconLoading-spin {
  0% {
    transform: rotate(0deg); }
  100% {
    transform: rotate(360deg); } }

.tui-svgIcon {
  /* same as the bootstrap icons default css*/
  /* better alignment in most cases than vertical-align: middle*/
  vertical-align: text-bottom; }
  .tui-svgIcon--size-100 {
    font-size: 1.4rem; }
  .tui-svgIcon--size-200 {
    font-size: 1.6rem; }
  .tui-svgIcon--size-300 {
    font-size: 2rem; }
  .tui-svgIcon--size-400 {
    font-size: 2.4rem; }
  .tui-svgIcon--size-500 {
    font-size: 2.8rem; }
  .tui-svgIcon--size-600 {
    font-size: 3.2rem; }
  .tui-svgIcon--size-700 {
    font-size: 3.8rem; }
.tui-svgIcon--state-info {
  color: var(--color-prompt-info); }
.tui-svgIcon--state-alert {
  color: var(--color-prompt-alert); }
.tui-svgIcon--state-warning {
  color: var(--color-prompt-warning); }
.tui-svgIcon--state-success {
  color: var(--color-prompt-success); }
.tui-svgIcon--state-dimmed {
  color: var(--color-neutral-6); }

.dir-rtl .tui-svgIcon--flipRtl {
  transform: scale(-1, 1); }

.tui-responsiveImage {
  display: block;
  max-width: 100%;
  height: auto; }
  .tui-responsiveImage--grow {
    width: 100%; }

.tui-attachmentNodeCollection {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(min(25rem, 100%), 1fr));
  gap: var(--gap-2);
  padding: var(--gap-1) 0;
  white-space: normal; }

.tui-audioBlock {
  margin: var(--gap-8) 0; }
  .tui-audioBlock__actionsWrapper {
    display: flex;
    justify-content: flex-end;
    margin-top: var(--gap-2); }
  .tui-audioBlock__viewTranscript {
    margin-right: auto; }
  .tui-audioBlock__transcriptContent {
    height: 60rem;
    white-space: pre-line; }

.tui-emoji {
  display: inline-block;
  font-family: 'Noto Color Emoji', 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol', Times, Symbola, Aegyptus, Code2000, Code2001, Code2002, Musica, serif, LastResort;
  white-space: normal;
  text-decoration: none;
  font-variant-emoji: emoji; }

.tui-hashtag {
  display: inline-block;
  white-space: normal; }
  .tui-hashtag__text {
    color: var(--color-state); }
    .tui-hashtag__text:hover {
      /* Hover state, for now we keep the same color.*/
      color: var(--color-state); }

.tui-imageBlock {
  margin: 0 0 var(--paragraph-gap) 0; }
  .tui-imageBlock--displaySize-large {
    /* IE11 does not support the responsive sizes, so specify a fixed fallback*/
    width: 100%;
    width: 100%; }
  .tui-imageBlock--displaySize-medium {
    /* IE11 does not support the responsive sizes, so specify a fixed fallback*/
    width: 66%;
    width: calc(max(min(calc(min(max(calc((69.375% + 91.875px) * 0.8), 240px), 80%)), 462px), 66%)); }
  .tui-imageBlock--displaySize-small {
    /* IE11 does not support the responsive sizes, so specify a fixed fallback*/
    width: 33%;
    width: calc(max(min(calc(min(max(calc((40.5% + 178.5px) * 0.5), 150px), 50%)), 231px), 33%)); }

figure > .tui-imageBlock {
  margin-bottom: var(--gap-1); }

.tui-linkBlock {
  position: relative;
  display: flex;
  max-width: 28.6rem;
  height: calc(7.6rem + 2px);
  font-size: var(--font-size-13);
  line-height: 1.15;
  white-space: normal;
  border: 1px solid var(--card-border-color);
  border-radius: 4px;
  transition: box-shadow var(--transition-form-function) var(--transition-form-duration); }
  .tui-linkBlock:hover {
    box-shadow: var(--shadow-2); }
  .tui-linkBlock__image {
    flex-shrink: 0;
    order: 2;
    width: 6rem;
    height: 6rem;
    margin: var(--gap-2);
    background-position: center;
    background-size: cover;
    border-top-right-radius: 3px;
    border-bottom-right-radius: 3px; }
    .tui-linkBlock__image > img {
      width: 100%; }
  .tui-linkBlock__summary {
    flex-grow: 1;
    order: 1;
    padding: var(--gap-2);
    overflow: hidden; }
  .tui-linkBlock__site {
    margin-bottom: 0.3rem;
    font-weight: bold;
    font-size: var(--font-size-12);
    line-height: 1.15; }
  .tui-linkBlock__title {
    margin-bottom: 0.3rem;
    color: var(--color-state);
    font-weight: bold; }
  .tui-linkBlock__description {
    /* show a max of 2 lines*/
    height: calc(var(--font-size-13) * 2 * 1.15);
    overflow: hidden; }
  .tui-linkBlock__linkOnly {
    /* show a max of 4 lines*/
    height: calc(var(--font-size-13) * 4 * 1.12);
    margin-top: 0.2rem;
    overflow: hidden;
    color: var(--color-state);
    font-weight: bold;
    font-size: var(--font-size-13);
    line-height: 1.15; }
  .tui-linkBlock__overlayLink {
    position: absolute;
    inset: -1px;
    /* -1px to account for border*/
    border-radius: inherit; }
    .tui-linkBlock__overlayLink:focus {
      outline: 2px solid var(--color-state-focus);
      outline-offset: var(--focus-outline-offset); }

.tui-mention {
  display: inline-block;
  white-space: normal; }
  .tui-mention__displayName {
    color: var(--color-state); }
    .tui-mention__displayName:hover {
      /* Hover state, for now we keep the same color.*/
      color: var(--color-state); }

.tui-videoBlock {
  display: flex;
  width: 100%;
  max-width: var(--embedded-media-max-width);
  margin: var(--gap-8) 0; }
  .tui-videoBlock .video-js .vjs-control {
    white-space: nowrap; }

/* Ensure the controls aren't incorrectly reversed in RTL*/
[dir='rtl'] .tui-videoBlock .video-js .vjs-progress-holder .vjs-play-progress, [dir='rtl'] .tui-videoBlock .video-js .vjs-progress-holder .vjs-load-progress, [dir='rtl'] .tui-videoBlock .video-js .vjs-progress-holder .vjs-load-progress div, [dir='rtl'] .tui-videoBlock .video-js .vjs-volume-level {
  /*!rtl:ignore*/
  right: auto;
  /*!rtl:ignore*/
  left: 0; }
[dir='rtl'] .tui-videoBlock .video-js .vjs-play-progress:before, [dir='rtl'] .tui-videoBlock .video-js .vjs-slider-horizontal .vjs-volume-level:before {
  /*!rtl:ignore*/
  right: -0.5em;
  /*!rtl:ignore*/
  left: auto; }

.tui-layoutOneColumn {
  color: var(--color-text);
  font-weight: normal;
  font-size: var(--font-body-size);
  line-height: var(--font-body-line-height);
  margin-top: var(--gap-2); }
  .tui-layoutOneColumn > * + * {
    margin-top: var(--gap-8); }
    .tui-layoutOneColumn__heading > * + * {
      margin-top: var(--gap-2); }
  .tui-layoutOneColumn--flush {
    margin-top: var(--gap-12); }

.tui-layoutThreeColumn__heading {
  font-weight: 500;
  font-size: var(--font-heading-size);
  line-height: var(--font-heading-line-height); }

.tui-layoutTwoColumn__heading {
  font-weight: 500;
  font-size: var(--font-heading-size);
  line-height: var(--font-heading-line-height); }

.tui-pageBackLink {
  display: inline-flex;
  align-items: center; }
  .tui-pageBackLink__icon {
    margin-right: var(--gap-1);
    /* Negative Offset to left align arrow with page content*/
    margin-left: -0.19em; }

.tui-pageHeading {
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  gap: var(--gap-3);
  align-items: flex-start; }
  .tui-pageHeading__title {
    margin: 0;
    font-weight: 500;
    font-size: var(--font-heading-size);
    line-height: var(--font-heading-line-height);
    flex-grow: 1;
    min-width: 0;
    overflow-wrap: break-word; }
    .tui-pageHeading__title--small {
      margin: 0;
      font-weight: bold;
      font-size: var(--font-heading-small-size);
      line-height: var(--font-heading-small-line-height); }
  .tui-pageHeading__buttons {
    display: flex;
    flex-shrink: 0;
    flex-wrap: wrap;
    gap: var(--gap-3);
    max-width: 100%; }

@media (min-width: 768px) {
  .tui-pageHeading__buttons > * {
    margin-top: 0; } }

@media (min-width: 992px) {
  .tui-pageHeading {
    flex-wrap: nowrap; } }

.tui-actionLink {
  /* stylelint-disable-next-line tui/at-extend-only-placeholders*/
  display: inline-block;
  text-align: center; }
  .tui-actionLink--prim {
    /* stylelint-disable-next-line tui/at-extend-only-placeholders*/ }
  .tui-actionLink--small {
    /* stylelint-disable-next-line tui/at-extend-only-placeholders*/ }
  .tui-actionLink--srOnly {
    /* stylelint-disable-next-line tui/at-extend-only-placeholders*/ }
  .tui-actionLink:not([href]) {
    color: var(--btn-text-color-disabled);
    background-color: var(--btn-bg-color-disabled);
    border-color: var(--btn-border-color-disabled);
    cursor: default;
    opacity: 1; }
    .tui-actionLink:not([href]):active, .tui-actionLink:not([href]):focus, .tui-actionLink:not([href]):active:focus, .tui-actionLink:not([href]):active:hover, .tui-actionLink:not([href]):hover {
      color: var(--btn-text-color-disabled);
      background-color: var(--btn-bg-color-disabled);
      border-color: var(--btn-border-color-disabled);
      box-shadow: none; }

.tui-skipToContent {
  position: absolute;
  width: 1px;
  height: 1px;
  margin: -1px;
  padding: 0;
  overflow: hidden;
  border: 0;
  clip: rect(0, 0, 0, 0); }
  .tui-skipToContent:focus {
    position: static;
    display: block;
    width: auto;
    height: auto; }

.tui-componentLoading {
  display: flex;
  align-items: center;
  justify-content: center;
  padding: var(--gap-3);
  color: var(--color-neutral-6); }

.tui-loader {
  position: relative;
  /* Don't show nested loaders*/ }
  .tui-loader--active > * .tui-loader__overlay {
    display: none;
    /* If no slot content (e.g. initial load)*/ }
  .tui-loader__empty {
    min-height: var(--gap-8); }
  .tui-loader__overlay {
    position: absolute;
    top: 0;
    /*!rtl:ignore*/
    left: 0;
    width: 100%;
    height: 100%; }
    .tui-loader--fullpage .tui-loader__overlay {
      position: fixed;
      z-index: var(--zindex-loading-page); }
    .tui-loader__overlay-positioner {
      position: absolute;
      display: flex;
      align-items: center;
      justify-content: center;
      width: 100%;
      height: 100%;
      background: var(--color-background);
      opacity: 0.85;
      content: ''; }
  .tui-loader__display {
    position: sticky;
    top: var(--gap-6);
    bottom: var(--gap-6);
    color: var(--color-neutral-6);
    font-size: var(--font-size-15); }
    .tui-loader__display .fa-spinner {
      position: relative;
      top: -1px; }

:root {
  /* Background colour of skeleton area*/
  /* Should have at least 3:1 contrast ratio*/
  /* https://www.w3.org/WAI/WCAG21/Understanding/non-text-contrast.html*/
  /* Future option https://developer.mozilla.org/en-US/docs/Web/CSS/@media/prefers-contrast*/
  --skeleton-content-background: #949494;
  /* Background colour of skeleton area when under a loading overlay*/
  --skeleton-content-overlay-background: var(--color-neutral-5);
  /* Colour of shimmer*/
  --skeleton-content-shimmer-color: #aaa;
  /* Colour of shimmer when under a loading overlay*/
  --skeleton-content-shimmer-overlay-color: #e6e5e5;
  /* Border radius for skeleton content*/
  --skeleton-content-border-radius: var(--border-radius-small); }

.tui-skeletonContent {
  position: relative;
  display: flex;
  flex-direction: column;
  width: 100%;
  height: 100%;
  overflow: hidden;
  background: var(--skeleton-content-background);
  border-radius: var(--skeleton-content-border-radius); }
  .tui-skeletonContent--charLength-2 {
    max-width: calc(2 * var(--form-input-font-size)); }
  .tui-skeletonContent--charLength-3 {
    max-width: calc(3 * var(--form-input-font-size)); }
  .tui-skeletonContent--charLength-4 {
    max-width: calc(4 * var(--form-input-font-size)); }
  .tui-skeletonContent--charLength-5 {
    max-width: calc(5 * var(--form-input-font-size)); }
  .tui-skeletonContent--charLength-10 {
    max-width: calc(10 * var(--form-input-font-size)); }
  .tui-skeletonContent--charLength-15 {
    max-width: calc(15 * var(--form-input-font-size)); }
  .tui-skeletonContent--charLength-20 {
    max-width: calc(20 * var(--form-input-font-size)); }
  .tui-skeletonContent--charLength-25 {
    max-width: calc(25 * var(--form-input-font-size)); }
  .tui-skeletonContent--charLength-30 {
    max-width: calc(30 * var(--form-input-font-size)); }
  .tui-skeletonContent--charLength-50 {
    max-width: calc(50 * var(--form-input-font-size)); }
  .tui-skeletonContent--charLength-75 {
    max-width: calc(75 * var(--form-input-font-size)); }
  .tui-skeletonContent--charLength-100 {
    max-width: calc(100 * var(--form-input-font-size));
    /* Set a custom size for inputs in a limited form*/ }
  .tui-form--inputWidth-limited .tui-skeletonContent:not(.tui-input--customSize) {
    max-width: var(--form-input-limited-width); }
    .tui-form--inputWidth-limited .tui-inputSet--split .tui-skeletonContent:not(.tui-input--customSize) {
      max-width: none; }
  .tui-skeletonContent--hasOverlay {
    background: var(--skeleton-content-overlay-background); }
  .tui-skeletonContent--shimmer {
    background: linear-gradient(-55deg, var(--skeleton-content-background) 0%, var(--skeleton-content-background) 35%, var(--skeleton-content-shimmer-color) 50%, var(--skeleton-content-background) 58%, var(--skeleton-content-background) 100%);
    background-size: 1000px 100%;
    background-attachment: fixed;
    animation: tui-skeletonShimmer 3s linear infinite; }
  @media (prefers-reduced-motion) {
    .tui-skeletonContent--shimmer {
      animation: none; } }

@keyframes tui-skeletonShimmer {
  0% {
    /*!rtl:ignore*/
    background-position: 0 0; }
  100% {
    /*!rtl:ignore*/
    background-position: 1000px 0; } }

.tui-skeletonContent--hasOverlay.tui-skeletonContent--shimmer {
  background: linear-gradient(-55deg, var(--skeleton-content-overlay-background) 0%, var(--skeleton-content-overlay-background) 35%, var(--skeleton-content-shimmer-overlay-color) 50%, var(--skeleton-content-overlay-background) 58%, var(--skeleton-content-overlay-background) 100%);
  background-size: 1000px 100%;
  background-attachment: fixed; }

.tui-lozenge {
  display: inline-flex;
  padding: 3px var(--gap-2) 3px;
  color: var(--color-neutral-1);
  font-weight: normal;
  font-size: var(--font-body-x-small-size);
  line-height: var(--font-body-x-small-line-height);
  font-weight: bold;
  line-height: 1;
  background: var(--color-prompt-info);
  border-radius: var(--border-radius-small); }
  .tui-lozenge--alert {
    background: var(--color-prompt-alert); }
  .tui-lozenge--success {
    background: var(--color-prompt-success); }
  .tui-lozenge--warning {
    background: var(--color-prompt-warning); }
  .tui-lozenge--neutral {
    background: var(--color-neutral-6); }

.tui-modal-wrap {
  position: fixed;
  top: 0;
  left: 0;
  z-index: var(--zindex-modal);
  display: flex;
  flex-direction: column;
  width: 100%;
  height: 100%;
  overflow: hidden;
  outline: none; }
  .tui-modal-wrap__backdrop {
    position: absolute;
    inset: 0;
    display: none; }
    .tui-modal-wrap--shade .tui-modal-wrap__backdrop {
      display: block;
      background-color: var(--color-backdrop-standard); }
    .tui-modal-wrap--shade.tui-modal-wrap--type-sheet .tui-modal-wrap__backdrop {
      background-color: var(--color-backdrop-heavy); }
      .tui-modal-wrap--shade.tui-modal-wrap--animated .tui-modal-wrap__backdrop {
        opacity: 0;
        transition: opacity var(--transition-modal-function) var(--transition-modal-duration); }
      .tui-modal-wrap--shade.tui-modal-wrap--animated.tui-modal-wrap--in .tui-modal-wrap__backdrop {
        opacity: 1; }

.tui-modal {
  position: fixed;
  top: 0;
  left: 0;
  z-index: var(--zindex-modal);
  display: flex;
  flex-direction: column;
  width: 100%;
  height: 100%;
  overflow: hidden;
  outline: none; }
  .tui-modal--animated .tui-modal__inner {
    transform: translateY(100vh);
    transition: transform var(--transition-modal-function) var(--transition-modal-duration), opacity var(--transition-modal-function) var(--transition-modal-duration); }
  .tui-modal--animated.tui-modal--in .tui-modal__inner {
    transform: translateY(0); }
  .tui-modal--error {
    z-index: var(--zindex-error-modal); }
    .tui-modal.tui-modal--type-sheet .tui-modal__inner {
      overflow: auto; }
  .tui-modal--shade.tui-modal--animated.tui-modal--in {
    opacity: 1; }
  .tui-modal__pad {
    width: 100%;
    height: 100%;
    padding: 0; }
  .tui-modal__inner {
    position: relative;
    display: flex;
    flex-direction: column;
    width: 100%;
    height: 100%;
    margin: auto;
    color: var(--color-text);
    background-color: var(--color-background);
    box-shadow: var(--shadow-4); }
  .tui-modal__header {
    display: flex;
    flex-shrink: 0; }
  .tui-modal__close, .tui-modal__outsideClose {
    position: absolute;
    top: 0;
    right: 0;
    display: flex;
    padding: var(--gap-4);
    font-size: var(--font-size-18); }
  .tui-modal__outsideClose {
    display: none;
    color: var(--color-backdrop-contrast); }
  .tui-modal__outsideClose:hover, .tui-modal__outsideClose:focus {
    color: var(--color-backdrop-contrast);
    opacity: 0.8; }

.has-tui-modal {
  overflow: hidden; }

@media (min-width: 768px) {
  .tui-modal--type-sheet.tui-modal--animated .tui-modal__inner {
    transform: scale(0.9);
    opacity: 0; }
  .tui-modal--type-sheet.tui-modal--animated.tui-modal--in .tui-modal__inner {
    transform: none;
    opacity: 1; }
  .tui-modal--type-sheet.tui-modal--animated .tui-modal__outsideClose {
    opacity: 0;
    transition: opacity var(--transition-modal-function) var(--transition-modal-duration); }
  .tui-modal--type-sheet.tui-modal--animated.tui-modal--in .tui-modal__outsideClose {
    opacity: 1; }
  .tui-modal--type-sheet.tui-modal--animated.tui-modal--in .tui-modal__outsideClose:hover, .tui-modal--type-sheet.tui-modal--animated.tui-modal--in .tui-modal__outsideClose:focus {
    opacity: 0.8; }
  .tui-modal--type-sheet .tui-modal__pad {
    padding: var(--modal-sheet-padding); }
  .tui-modal--type-sheet .tui-modal__inner {
    border-radius: var(--modal-border-radius); }
  .tui-modal--type-sheet .tui-modal__close {
    display: none; }
  .tui-modal--type-sheet .tui-modal__outsideClose {
    display: flex; } }

@media (min-width: 475px) {
  .tui-modal--type-normal.tui-modal--size-small {
    overflow-y: auto; }
    .tui-modal--type-normal.tui-modal--size-small.tui-modal--always-scroll {
      overflow-y: scroll; }
      .tui-modal--type-normal.tui-modal--size-small.tui-modal--animated .tui-modal__inner {
        transform: scale(0.9);
        opacity: 0; }
      .tui-modal--type-normal.tui-modal--size-small.tui-modal--animated.tui-modal--in .tui-modal__inner {
        transform: none;
        opacity: 1;
        /* a separate __pad element is required as flexbox centering with*/
        /* `margin-top/bottom: auto;` and padding on the parent are not compatible*/ }
    .tui-modal--type-normal.tui-modal--size-small .tui-modal__pad {
      height: auto;
      margin: auto;
      padding: var(--modal-container-padding) 0; }
    .tui-modal--type-normal.tui-modal--size-small .tui-modal__inner {
      width: 400px;
      height: auto;
      border-radius: var(--modal-border-radius); }
    .tui-modal--type-normal.tui-modal--size-small .tui-modal__close {
      display: none; }
    .tui-modal--type-normal.tui-modal--size-small .tui-modal__outsideClose {
      display: flex; } }
@media (min-width: 475px) and (min-width: 533.3333333333px) {
  .tui-modal--type-drawer.tui-modal--size-small.tui-modal--animated .tui-modal__inner {
    transform: translateX(400px); }
    .dir-rtl .tui-modal--type-drawer.tui-modal--size-small.tui-modal--animated .tui-modal__inner {
      transform: translateX(-400px); }
  .tui-modal--type-drawer.tui-modal--size-small.tui-modal--animated.tui-modal--in .tui-modal__inner {
    transform: none; }
  .tui-modal--type-drawer.tui-modal--size-small .tui-modal__pad {
    width: 100%;
    height: 100%;
    padding: 0; }
  .tui-modal--type-drawer.tui-modal--size-small .tui-modal__inner {
    width: 400px;
    height: 100%;
    margin: 0;
    margin-left: auto;
    border-left: var(--border-width-thin) solid var(--color-neutral-5); }
  .tui-modal--type-drawer.tui-modal--size-small.tui-modal--shade .tui-modal__inner {
    border: none;
    box-shadow: var(--shadow-4); } }

@media (min-width: 635px) {
  .tui-modal--type-normal.tui-modal--size-normal {
    overflow-y: auto; }
    .tui-modal--type-normal.tui-modal--size-normal.tui-modal--always-scroll {
      overflow-y: scroll; }
      .tui-modal--type-normal.tui-modal--size-normal.tui-modal--animated .tui-modal__inner {
        transform: scale(0.9);
        opacity: 0; }
      .tui-modal--type-normal.tui-modal--size-normal.tui-modal--animated.tui-modal--in .tui-modal__inner {
        transform: none;
        opacity: 1;
        /* a separate __pad element is required as flexbox centering with*/
        /* `margin-top/bottom: auto;` and padding on the parent are not compatible*/ }
    .tui-modal--type-normal.tui-modal--size-normal .tui-modal__pad {
      height: auto;
      margin: auto;
      padding: var(--modal-container-padding) 0; }
    .tui-modal--type-normal.tui-modal--size-normal .tui-modal__inner {
      width: 560px;
      height: auto;
      border-radius: var(--modal-border-radius); }
    .tui-modal--type-normal.tui-modal--size-normal .tui-modal__close {
      display: none; }
    .tui-modal--type-normal.tui-modal--size-normal .tui-modal__outsideClose {
      display: flex; } }
@media (min-width: 635px) and (min-width: 746.6666666667px) {
  .tui-modal--type-drawer.tui-modal--size-normal.tui-modal--animated .tui-modal__inner {
    transform: translateX(560px); }
    .dir-rtl .tui-modal--type-drawer.tui-modal--size-normal.tui-modal--animated .tui-modal__inner {
      transform: translateX(-560px); }
  .tui-modal--type-drawer.tui-modal--size-normal.tui-modal--animated.tui-modal--in .tui-modal__inner {
    transform: none; }
  .tui-modal--type-drawer.tui-modal--size-normal .tui-modal__pad {
    width: 100%;
    height: 100%;
    padding: 0; }
  .tui-modal--type-drawer.tui-modal--size-normal .tui-modal__inner {
    width: 560px;
    height: 100%;
    margin: 0;
    margin-left: auto;
    border-left: var(--border-width-thin) solid var(--color-neutral-5); }
  .tui-modal--type-drawer.tui-modal--size-normal.tui-modal--shade .tui-modal__inner {
    border: none;
    box-shadow: var(--shadow-4); } }

@media (min-width: 875px) {
  .tui-modal--type-normal.tui-modal--size-large {
    overflow-y: auto; }
    .tui-modal--type-normal.tui-modal--size-large.tui-modal--always-scroll {
      overflow-y: scroll; }
      .tui-modal--type-normal.tui-modal--size-large.tui-modal--animated .tui-modal__inner {
        transform: scale(0.9);
        opacity: 0; }
      .tui-modal--type-normal.tui-modal--size-large.tui-modal--animated.tui-modal--in .tui-modal__inner {
        transform: none;
        opacity: 1;
        /* a separate __pad element is required as flexbox centering with*/
        /* `margin-top/bottom: auto;` and padding on the parent are not compatible*/ }
    .tui-modal--type-normal.tui-modal--size-large .tui-modal__pad {
      height: auto;
      margin: auto;
      padding: var(--modal-container-padding) 0; }
    .tui-modal--type-normal.tui-modal--size-large .tui-modal__inner {
      width: 800px;
      height: auto;
      border-radius: var(--modal-border-radius); }
    .tui-modal--type-normal.tui-modal--size-large .tui-modal__close {
      display: none; }
    .tui-modal--type-normal.tui-modal--size-large .tui-modal__outsideClose {
      display: flex; } }
@media (min-width: 875px) and (min-width: 1066.6666666667px) {
  .tui-modal--type-drawer.tui-modal--size-large.tui-modal--animated .tui-modal__inner {
    transform: translateX(800px); }
    .dir-rtl .tui-modal--type-drawer.tui-modal--size-large.tui-modal--animated .tui-modal__inner {
      transform: translateX(-800px); }
  .tui-modal--type-drawer.tui-modal--size-large.tui-modal--animated.tui-modal--in .tui-modal__inner {
    transform: none; }
  .tui-modal--type-drawer.tui-modal--size-large .tui-modal__pad {
    width: 100%;
    height: 100%;
    padding: 0; }
  .tui-modal--type-drawer.tui-modal--size-large .tui-modal__inner {
    width: 800px;
    height: 100%;
    margin: 0;
    margin-left: auto;
    border-left: var(--border-width-thin) solid var(--color-neutral-5); }
  .tui-modal--type-drawer.tui-modal--size-large.tui-modal--shade .tui-modal__inner {
    border: none;
    box-shadow: var(--shadow-4); } }

.tui-modalContent {
  color: var(--color-text);
  font-weight: normal;
  font-size: var(--font-body-size);
  line-height: var(--font-body-line-height);
  display: flex;
  flex-direction: column;
  flex-grow: 1;
  min-height: 0; }
  .tui-modalContent__header {
    display: flex;
    flex-shrink: 0;
    align-items: flex-start;
    padding: var(--modal-content-outer-padding);
    padding-bottom: var(--gap-4); }
    .tui-modalContent__header--noBottomPadding {
      padding-bottom: 0; }
    .tui-modalContent__header-title {
      font-weight: bold;
      font-size: var(--font-heading-small-size);
      line-height: var(--font-heading-small-line-height);
      flex-grow: 1;
      overflow: hidden;
      font-weight: 500; }
      .tui-modalContent__header-title--sronly {
        /* The use of '!important' here is an exception and should not be replicated else where */
        /* stylelint-disable declaration-no-important */
        position: absolute !important;
        width: 1px !important;
        height: 1px !important;
        margin: -1px !important;
        padding: 0 !important;
        overflow: hidden !important;
        white-space: nowrap !important;
        border: 0 !important;
        clip: rect(0, 0, 0, 0) !important;
        /* stylelint-enable */ }
      .tui-modalContent__header-title--small {
        font-weight: bold;
        font-size: var(--font-heading-x-small-size);
        line-height: var(--font-heading-x-small-line-height); }
    .tui-modalContent__header-buttons {
      display: flex;
      margin-left: auto; }
  .tui-modalContent__content {
    display: flex;
    flex-direction: column;
    flex-grow: 1;
    min-height: 0;
    padding: var(--gap-2) var(--modal-content-outer-padding);
    overflow-y: auto; }
    .tui-modalContent__content--noTopPadding {
      padding-top: 0; }
  .tui-modalContent--noContentPadding .tui-modalContent__content {
    padding: 0; }
  .tui-modalContent__footer {
    display: flex;
    flex-shrink: 0;
    align-items: center;
    padding: var(--modal-content-outer-padding);
    padding-top: var(--gap-4); }
    .tui-modalContent__footer-buttons {
      margin-left: auto; }
  .tui-modalContent > :last-child {
    padding-bottom: var(--modal-content-outer-padding); }
    .tui-modalContent--noContentPadding > :last-child {
      padding-bottom: 0; }

.tui-modalHeaderButton {
  display: flex;
  flex-shrink: 0;
  align-items: center;
  justify-content: center;
  width: 2.4rem;
  height: 2.4rem;
  color: var(--color-neutral-6);
  border-radius: var(--border-radius-small);
  cursor: pointer;
  -webkit-user-select: none;
  user-select: none; }
  .tui-modalHeaderButton:hover, .tui-modalHeaderButton:focus, .tui-modalHeaderButton:active {
    color: var(--color-neutral-7);
    background: var(--color-neutral-3); }
  .tui-modalHeaderButton:focus-visible {
    outline: 2px solid var(--color-state-focus);
    outline-offset: var(--focus-outline-offset); }

.tui-notificationBanner {
  font-weight: normal;
  font-size: var(--font-body-small-size);
  line-height: var(--font-body-small-line-height);
  display: flex;
  background-color: var(--color-background);
  border: var(--border-width-thin) solid var(--color-prompt-info);
  border-radius: var(--border-radius-small); }
  .tui-notificationBanner__icon {
    display: flex;
    padding: var(--gap-4);
    color: var(--color-neutral-1);
    background: var(--color-prompt-info);
    /* -1px to avoid issue with razor thin white line between icon container and notification border*/
    /* prettier-ignore*/
    border-top-left-radius: calc(var(--border-radius-small) - var(--border-width-thin) - 1px);
    /* prettier-ignore*/
    border-bottom-left-radius: calc(var(--border-radius-small) - var(--border-width-thin) - 1px); }
  .tui-notificationBanner__body {
    flex-grow: 1; }
  .tui-notificationBanner__message {
    display: flex;
    flex: 1;
    align-items: center;
    padding: var(--gap-3); }
    .tui-notificationBanner__message--inline {
      display: inline; }
  .tui-notificationBanner__dismiss {
    display: flex; }
    .tui-notificationBanner__dismiss_button {
      color: var(--color-neutral-6); }

.tui-notificationBanner--success {
  border-color: var(--color-prompt-success); }
.tui-notificationBanner--success .tui-notificationBanner__icon {
  background: var(--color-prompt-success); }

.tui-notificationBanner--warning {
  border-color: var(--color-prompt-warning); }
.tui-notificationBanner--warning .tui-notificationBanner__icon {
  background: var(--color-prompt-warning); }

.tui-notificationBanner--error {
  border-color: var(--color-prompt-alert); }
.tui-notificationBanner--error .tui-notificationBanner__icon {
  background: var(--color-prompt-alert); }

@media screen and (min-width: 768px) {
  .tui-notificationBanner {
    color: var(--color-text);
    font-weight: normal;
    font-size: var(--font-body-size);
    line-height: var(--font-body-line-height);
    border-radius: var(--border-radius-normal); }
    .tui-notificationBanner__icon {
      /* -1px to avoid issue with razor thin white line between icon container and notification border*/
      /* prettier-ignore*/
      border-top-left-radius: calc(var(--border-radius-normal) - var(--border-width-thin) - 1px);
      /* prettier-ignore*/
      border-bottom-left-radius: calc(var(--border-radius-normal) - var(--border-width-thin) - 1px); } }

.tui-notificationToast {
  font-weight: normal;
  font-size: var(--font-body-small-size);
  line-height: var(--font-body-small-line-height);
  display: flex;
  color: var(--toast-color-text);
  background-color: var(--color-prompt-success);
  border-radius: var(--border-radius-small);
  box-shadow: var(--shadow-3); }
  .tui-notificationToast__icon {
    display: flex;
    align-items: center;
    padding: var(--gap-4) 0 var(--gap-4) var(--gap-4);
    color: var(--color-neutral-1);
    background: var(--color-prompt-success);
    /* -1px to avoid isue with razor thin white line between icon container and notification border*/
    /* prettier-ignore*/
    border-top-left-radius: calc(var(--border-radius-small) - var(--border-width-thin) - 1px);
    /* prettier-ignore*/
    border-bottom-left-radius: calc(var(--border-radius-small) - var(--border-width-thin) - 1px); }
  .tui-notificationToast__message {
    display: flex;
    flex: 1;
    align-items: center;
    padding: var(--gap-4) var(--gap-2); }
  .tui-notificationToast__dismiss {
    display: flex; }
    .tui-notificationToast__dismiss_button {
      color: var(--color-neutral-3); }
      .tui-notificationToast__dismiss_button:hover {
        color: var(--color-neutral-1); }

.tui-notificationToast--error {
  background: var(--color-prompt-alert); }
.tui-notificationToast--error .tui-notificationToast__icon {
  background: var(--color-prompt-alert); }

@media screen and (min-width: 768px) {
  .tui-notificationToast {
    color: var(--color-text);
    font-weight: normal;
    font-size: var(--font-body-size);
    line-height: var(--font-body-line-height);
    color: var(--toast-color-text);
    border-radius: var(--border-radius-normal); }
    .tui-notificationToast__icon {
      /* -1px to avoid isue with razor thin white line between icon container and notification border*/
      /* prettier-ignore*/
      border-top-left-radius: calc(var(--border-radius-normal) - var(--border-width-thin) - 1px);
      /* prettier-ignore*/
      border-bottom-left-radius: calc(var(--border-radius-normal) - var(--border-width-thin) - 1px); } }

.tui-toastContainer {
  position: fixed;
  top: var(--gap-6);
  right: 0;
  left: 0;
  z-index: var(--zindex-toast);
  display: flex;
  justify-content: center;
  pointer-events: none; }
  .tui-toastContainer__inner {
    position: relative;
    flex-basis: 300px;
    pointer-events: auto; }
    .tui-toastContainer__item-transition-enter-active, .tui-toastContainer__item-transition-leave-active {
      transition: all 0.15s ease-out; }
    .tui-toastContainer__item-transition-enter, .tui-toastContainer__item-transition-leave-to {
      opacity: 0; }
    .tui-toastContainer__item-transition-leave-active {
      position: absolute;
      right: 0;
      left: 0;
      opacity: 0; }

@media screen and (min-width: 768px) {
  .tui-toastContainer__inner {
    flex-basis: 500px; } }

.tui-overflowContainer__container {
  display: flex; }
  .tui-overflowContainer__container > * + * {
    margin-left: var(--gap-4); }
    .tui-overflowContainer--wide .tui-overflowContainer__container > * + * {
      margin-left: var(--gap-6); }
.tui-overflowContainer__containerItem {
  display: flex;
  flex-basis: 200px;
  flex-direction: column;
  flex-grow: 1;
  flex-shrink: 1;
  min-width: 198px;
  max-width: 248px; }
  .tui-overflowContainer__containerItem > * {
    flex-grow: 1; }
  .tui-overflowContainer__containerItem--post {
    color: var(--color-state); }
    .tui-overflowContainer__containerItem--post .tui-overflowContainer__containerItem-viewAll {
      display: flex;
      flex-direction: column;
      flex-grow: 1;
      margin: auto 0;
      text-align: center;
      background-color: var(--color-neutral-3); }
      .tui-overflowContainer__containerItem--post .tui-overflowContainer__containerItem-viewAll--only {
        min-height: 200px; }
    .tui-overflowContainer__containerItem--post .tui-overflowContainer__containerItem-viewAllIcon {
      display: block;
      width: 48px;
      height: 48px;
      margin: auto auto 0 auto;
      padding: 10px;
      font-size: var(--font-size-24);
      border: var(--border-width-thin) solid var(--color-state);
      border-radius: 50%; }
    .tui-overflowContainer__containerItem--post .tui-overflowContainer__containerItem-viewAllAction {
      margin: var(--gap-2) 0 auto; }
    .tui-overflowContainer__containerItem--post .tui-overflowContainer__containerItem-link {
      outline: 0; }

.tui-paging {
  display: flex;
  flex-wrap: wrap; }
  .tui-paging__perPage {
    position: relative;
    display: flex;
    flex-direction: row;
    flex-grow: 1;
    flex-shrink: 0;
    align-items: center;
    margin: auto 0; }
    .tui-paging__perPage-label {
      margin: auto var(--gap-3) auto 0; }
    .tui-paging__perPage-select {
      flex: 7rem 0 0; }
  .tui-paging__selector {
    display: flex;
    flex-shrink: 0;
    margin: auto 0; }
    .tui-paging__selector-number {
      min-width: 40px;
      min-height: 40px;
      margin: auto 0;
      padding: var(--gap-4); }
      .tui-paging__selector-number--current {
        font-weight: bold; }
  .tui-paging__direct {
    position: relative;
    display: flex;
    flex-direction: row;
    flex-shrink: 0;
    align-items: center;
    margin: auto 0;
    padding-left: var(--gap-4);
    border-left: var(--border-width-thin) solid var(--color-neutral-5); }
    .tui-paging--narrow .tui-paging__direct {
      padding-left: 0;
      border-left: none; }
    .tui-paging__direct-label {
      margin: auto var(--gap-2) auto 0; }
    .tui-paging__direct .tui-paging__direct-page[type] {
      margin: auto var(--gap-1) auto 0; }
  .tui-paging__loading {
    width: 100%; }

.tui-popover__wrap--valign-center {
  display: flex;
  align-items: center; }

.tui-popoverFrame {
  color: var(--color-text);
  font-weight: normal;
  font-size: var(--font-body-size);
  line-height: var(--font-body-line-height);
  position: relative;
  max-width: 300px;
  /* margin must be equal on all 4 sides, and must not change with position*/
  margin: 10px;
  padding: var(--gap-4);
  background: var(--color-background);
  background-clip: padding-box;
  box-shadow: var(--shadow-3); }
  .tui-popoverFrame::before {
    position: absolute;
    top: 0;
    left: 0;
    z-index: -1;
    width: 100%;
    height: 100%;
    box-shadow: 0 0 0 1px var(--color-neutral-5);
    content: ''; }
  .tui-popoverFrame--size-sm {
    width: 250px;
    max-width: none; }
  .tui-popoverFrame--size-md {
    width: 300px;
    max-width: none; }
  .tui-popoverFrame--size-lg {
    width: 95vw;
    max-width: none; }
  @media (min-width: 600px) {
    .tui-popoverFrame--size-lg {
      width: 560px; } }
  .tui-popoverFrame--slim {
    padding: var(--gap-2); }
  .tui-popoverFrame__close {
    position: absolute;
    top: 0;
    right: 0;
    display: flex;
    padding: calc(1.4rem - 0.1em) calc(1.4rem - 0.3em); }
  .tui-popoverFrame__title {
    font-weight: bold;
    font-size: var(--font-heading-x-small-size);
    line-height: var(--font-heading-x-small-line-height);
    padding-top: var(--gap-2);
    padding-right: var(--gap-4); }
  .tui-popoverFrame__content {
    max-height: 80vh;
    margin-top: var(--gap-4);
    padding: 0 var(--gap-4) var(--gap-2) 0;
    overflow: auto; }
    .tui-popoverFrame__content img {
      max-width: 100%; }
    .tui-popoverFrame__content--slim, .tui-popoverFrame__content--noPadding {
      padding: 0; }
  .tui-popoverFrame__title + .tui-popoverFrame__content, .tui-popoverFrame .tui-popoverFrame__content--nonClosable {
    padding-right: 0; }
  .tui-popoverFrame__buttons {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    padding-top: var(--gap-1);
    padding-bottom: var(--gap-3); }
    .tui-popoverFrame__buttons > * {
      margin-top: var(--gap-2); }
    .tui-popoverFrame__buttons > * + * {
      margin-left: var(--gap-4); }

.tui-popoverPositioner {
  /* note: position: absolute + z-index triggers a new stacking context*/
  /* this allows us to escape from overflow: hidden.*/
  /* because stacking contexts can be nested, this will still work correctly*/
  /* even inside modals, which have a higher z-index*/
  position: absolute;
  top: 0;
  /*!rtl:ignore*/
  left: 0;
  z-index: var(--zindex-popover);
  width: auto;
  color: var(--color-text);
  font-weight: normal;
  font-size: var(--font-body-size);
  line-height: var(--font-body-line-height); }
  .tui-popoverPositioner--fixed {
    position: fixed; }
  .tui-popoverPositioner--transition-default {
    transition: opacity 0.2s; }
  .tui-popoverPositioner--transition-default-enter, .tui-popoverPositioner--transition-default-leave-to {
    opacity: 0; }
  .tui-popoverPositioner--transition-dropdown {
    transition: opacity 0s; }
  .tui-popoverPositioner--transition-dropdown-enter, .tui-popoverPositioner--transition-dropdown-leave-to {
    opacity: 0; }
  .tui-popoverPositioner--transition-dropdown-leave-to {
    transition: opacity 0.15s; }

.tui-modal--animated .tui-popoverPositioner {
  display: none; }

.tui-modal--animated.tui-modal--in .tui-popoverPositioner {
  display: block; }

.tui-miniProfileCard {
  /* The parent who uses this card decides the width/height.*/
  display: flex;
  align-items: flex-start;
  padding: var(--gap-2);
  outline: none; }
  .tui-miniProfileCard--no-avatar {
    padding-left: var(--gap-4); }
  .tui-miniProfileCard--no-dropdown {
    padding-right: var(--gap-4); }
  .tui-miniProfileCard--no-padding {
    /* Reset padding to zero.*/
    padding: 0; }
  .tui-miniProfileCard--border {
    border: var(--border-width-thin) solid var(--color-neutral-5);
    border-radius: var(--border-radius-normal); }
  .tui-miniProfileCard--hasShadow {
    box-shadow: var(--shadow-2); }
  .tui-miniProfileCard__avatar {
    margin-right: var(--gap-2); }
  .tui-miniProfileCard--horizontal {
    align-items: center; }
  .tui-miniProfileCard__description {
    display: flex;
    flex: 1;
    flex-direction: column;
    overflow: hidden; }
    .tui-miniProfileCard__description--horizontal {
      flex-direction: row;
      justify-content: space-between; }
      .tui-miniProfileCard__description--horizontal > * + * {
        padding-left: var(--gap-4); }
    .tui-miniProfileCard__description--horizontalItems-1 > * {
      width: 100%; }
  .tui-miniProfileCard__description--horizontalItems-2 > * {
    width: 50%; }
.tui-miniProfileCard__description--horizontalItems-3 > * {
  width: 33%; }
.tui-miniProfileCard__description--horizontalItems-4 > * {
  width: 25%; }
.tui-miniProfileCard__row {
  display: flex;
  align-items: center; }
  .tui-miniProfileCard__row-text {
    font-weight: normal;
    font-size: var(--font-body-small-size);
    line-height: var(--font-body-small-line-height);
    margin: 0;
    overflow: hidden;
    white-space: nowrap;
    text-overflow: ellipsis; }
    .tui-miniProfileCard__row-text--bold {
      font-weight: bold; }
  .tui-miniProfileCard__row-link {
    color: var(--color-state);
    font-size: var(--font-size-13);
    line-height: 1.33;
    cursor: pointer;
    margin: 0;
    overflow: hidden;
    white-space: nowrap;
    text-overflow: ellipsis; }
    .tui-miniProfileCard__row-link:hover, .tui-miniProfileCard__row-link:focus {
      color: var(--color-state-hover); }
    .tui-miniProfileCard__row-link:active, .tui-miniProfileCard__row-link:active:hover, .tui-miniProfileCard__row-link:active:focus {
      color: var(--color-state-active); }
    .tui-miniProfileCard__row-link--bold {
      font-weight: bold; }
  .tui-miniProfileCard__row--withGap {
    margin-bottom: var(--gap-1); }
.tui-miniProfileCard__dropDown {
  margin-left: var(--gap-4); }

.tui-progress {
  font-weight: normal;
  font-size: var(--font-body-xx-small-size);
  line-height: var(--font-body-xx-small-line-height);
  display: flex;
  height: 14px;
  background-color: var(--progress-container-bg-color); }
  .tui-progress--chrome {
    border: 1px solid var(--progress-border-color);
    border-radius: var(--gap-2); }
  .tui-progress--small {
    height: 12px;
    line-height: 10px; }
  .tui-progress--x-small {
    height: 6px; }
  .tui-progress--hideBackground {
    background: none; }
  .tui-progress__bar {
    display: flex;
    justify-content: flex-end;
    background-color: var(--progress-value-bg-color);
    transition: width var(--transition-progress-function) var(--transition-progress-duration); }
    .tui-progress--chrome .tui-progress__bar {
      border-radius: var(--gap-2); }
  .tui-progress__label {
    padding: 0 var(--gap-1);
    opacity: 0; }
    .tui-progress__label--inside {
      color: var(--progress-value-text-color);
      opacity: 1;
      transition: opacity var(--transition-progress-function) var(--transition-progress-duration); }
    .tui-progress__label--outside {
      color: var(--progress-container-text-color);
      opacity: 1; }

.tui-progressTrackerItems {
  display: flex;
  justify-content: center;
  margin: 0;
  list-style: none;
  /* Line styles*/ }
  .tui-progressTrackerItems > * + *.tui-progressTrackerItem .tui-progressTrackerItem__content::before {
    position: absolute;
    top: 14px;
    left: -50%;
    display: block;
    width: 100%;
    border-style: solid;
    border-width: var(--border-width-thin) 0 0 0;
    content: ''; }
    .tui-progressTrackerItems > * + *.tui-progressTrackerItem--pending .tui-progressTrackerItem__content::before {
      border-color: var(--progresstracker-color-pending);
      border-style: dotted; }
  .tui-progressTrackerItems > * + *.tui-progressTrackerItem--complete .tui-progressTrackerItem__content::before {
    top: 13px;
    border-color: var(--progresstracker-color-complete);
    border-width: var(--border-width-thick) 0 0 0; }
.tui-progressTrackerItems > * + *.tui-progressTrackerItem--achieved .tui-progressTrackerItem__content::before {
  top: 13px;
  border-color: var(--progresstracker-color-achieved);
  border-width: var(--border-width-thick) 0 0 0; }
.tui-progressTrackerItems--vertical > * + *.tui-progressTrackerItem .tui-progressTrackerItem__content::before {
  top: -50%;
  left: 13px;
  width: 0;
  height: 100%;
  border-width: 0 0 0 var(--border-width-thick); }
.tui-progressTrackerItems .tui-progressTrackerItem {
  position: relative;
  flex-shrink: 0; }
  .tui-progressTrackerItems .tui-progressTrackerItem--small {
    width: 100px; }
  .tui-progressTrackerItems .tui-progressTrackerItem--medium {
    width: 200px; }
  .tui-progressTrackerItems .tui-progressTrackerItem--large {
    width: 250px; }
  .tui-progressTrackerItems .tui-progressTrackerItem__content {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: center;
    width: 100%; }
  .tui-progressTrackerItems .tui-progressTrackerItem__label {
    position: relative;
    width: 100%;
    margin: 0 auto;
    padding: var(--gap-2);
    text-align: center; }
    .tui-progressTrackerItems .tui-progressTrackerItem__label-current .tui-formBtn, .tui-progressTrackerItems .tui-progressTrackerItem__label-current .tui-iconBtn, .tui-progressTrackerItems .tui-progressTrackerItem__label-current .tui-actionLink, .tui-progressTrackerItems .tui-progressTrackerItem__label-current .tui-toggleSwitch__btn {
      color: var(--color-state-active);
      font-weight: bold; }
  .tui-progressTrackerItems .tui-progressTrackerItem__status, .tui-progressTrackerItems .tui-progressTrackerItem__target {
    /* The use of '!important' here is an exception and should not be replicated else where */
    /* stylelint-disable declaration-no-important */
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    margin: -1px !important;
    padding: 0 !important;
    overflow: hidden !important;
    white-space: nowrap !important;
    border: 0 !important;
    clip: rect(0, 0, 0, 0) !important;
    /* stylelint-enable */
    /* Spacing after for overflow detector*/ }
    .tui-progressTrackerItems .tui-progressTrackerItem :last-child--small {
      width: 200px;
      padding-right: 100px; }
    .tui-progressTrackerItems .tui-progressTrackerItem :last-child--medium {
      width: 400px;
      padding-right: 200px; }
    .tui-progressTrackerItems .tui-progressTrackerItem :last-child--large {
      width: 500px;
      padding-right: 250px; }
.tui-progressTrackerItems--vertical {
  flex-direction: column; }
  .tui-progressTrackerItems--vertical .tui-progressTrackerItem {
    width: auto;
    height: 80px; }
    .tui-progressTrackerItems--vertical .tui-progressTrackerItem__content {
      flex-direction: row;
      height: 100%; }
    .tui-progressTrackerItems--vertical .tui-progressTrackerItem__label {
      margin: 0;
      padding: var(--gap-1) var(--gap-2);
      text-align: left; }

.tui-progressTrackerButton {
  width: 100%;
  padding: var(--gap-2);
  color: var(--color-state);
  line-height: var(--font-body-line-height);
  text-align: left;
  word-break: break-word;
  -webkit-hyphens: none;
  hyphens: none; }
  .ie .tui-progressTrackerButton {
    -ms-word-break: break-all;
    -ms-hyphens: none; }
  .tui-progressTrackerButton:hover, .tui-progressTrackerButton:focus {
    color: var(--color-state);
    background: var(--color-state-highlight-neutral); }
  .tui-progressTrackerButton--selected {
    color: var(--color-neutral-1);
    background: var(--color-state-active);
    border-color: var(--color-neutral-3); }
    .tui-progressTrackerButton--selected:hover, .tui-progressTrackerButton--selected:focus, .tui-progressTrackerButton--selected:focus:hover {
      color: var(--color-neutral-1);
      background: var(--color-state-active);
      border-color: var(--color-neutral-3); }

.tui-progressTrackerCircle__outer {
  z-index: 2;
  display: flex;
  flex-shrink: 0;
  align-items: center;
  justify-content: center;
  width: calc(var(--gap-7) + 1px);
  height: calc(var(--gap-7) + 1px);
  border: var(--border-width-normal) transparent dotted;
  border-radius: 50%;
  /* Pending target*/ }
  .tui-progressTrackerCircle__outer.tui-progressTrackerCircle--pending.tui-progressTrackerCircle__outer.tui-progressTrackerCircle--target {
    border-color: var(--progresstracker-color-pending);
    /* Achieved target*/ }
  .tui-progressTrackerCircle__outer.tui-progressTrackerCircle--target.tui-progressTrackerCircle__outer.tui-progressTrackerCircle--achieved {
    background: var(--progresstracker-container-bg-color);
    border-color: var(--progresstracker-color-achieved);
    border-style: solid; }
.tui-progressTrackerCircle__middle {
  display: flex;
  align-items: center;
  justify-content: center;
  width: calc(var(--gap-4) + 1px);
  height: calc(var(--gap-4) + 1px);
  background: transparent;
  border: var(--border-width-thin) solid transparent;
  border-radius: 50%;
  -webkit-print-color-adjust: exact;
  color-adjust: exact;
  /* Pending*/ }
  .tui-progressTrackerCircle--pending .tui-progressTrackerCircle__middle {
    background: var(--progresstracker-color-pending);
    /* Pending target*/ }
  .tui-progressTrackerCircle--pending.tui-progressTrackerCircle--target .tui-progressTrackerCircle__middle {
    background: transparent;
    /* Complete*/ }
  .tui-progressTrackerCircle--complete .tui-progressTrackerCircle__middle {
    background: var(--progresstracker-color-complete);
    /* Achieved*/ }
  .tui-progressTrackerCircle--achieved .tui-progressTrackerCircle__middle {
    background: var(--progresstracker-color-achieved); }
.tui-progressTrackerCircle__inner {
  width: calc(var(--gap-2) + 1px);
  height: calc(var(--gap-2) + 1px);
  background: var(--progresstracker-container-bg-color);
  border: var(--border-width-thin) solid var(--progresstracker-container-bg-color);
  border-radius: 50%;
  /* Pending*/ }
  .tui-progressTrackerCircle--pending .tui-progressTrackerCircle__inner {
    border-color: var(--progresstracker-container-bg-color);
    /* Pending target*/ }
  .tui-progressTrackerCircle--pending.tui-progressTrackerCircle--target .tui-progressTrackerCircle__inner {
    border-color: var(--progresstracker-color-pending);
    /* Achieved*/ }
  .tui-progressTrackerCircle--achieved .tui-progressTrackerCircle__inner {
    border-color: var(--progresstracker-container-bg-color); }

.ie .tui-progressTrackerCircle--achieved .tui-progressTrackerCircle__middle, .msedge .tui-progressTrackerCircle--achieved .tui-progressTrackerCircle__middle {
  border: var(--gap-1) solid var(--progresstracker-color-achieved); }
.ie .tui-progressTrackerCircle--complete .tui-progressTrackerCircle__middle, .msedge .tui-progressTrackerCircle--complete .tui-progressTrackerCircle__middle {
  border: var(--gap-1) solid var(--progresstracker-color-complete); }

.tui-progressTrackerNav__items {
  display: flex;
  justify-content: center;
  margin: 0;
  list-style: none; }
  .tui-progressTrackerNav--vertical .tui-progressTrackerNav__items {
    flex-direction: column; }

.tui-progressTrackerNavCircleAchievement {
  /* states*/ }
  .tui-progressTrackerNavCircleAchievement__outer {
    z-index: 2;
    display: flex;
    flex-shrink: 0;
    align-items: center;
    justify-content: center;
    width: var(--progresstracker-full-marker-size);
    height: var(--progresstracker-full-marker-size);
    border: var(--border-width-normal) transparent dotted;
    border-radius: 50%;
    /**
     * states
     **/ }
    .tui-progressTrackerNavCircleAchievement__outer.tui-progressTrackerNavCircleAchievement--pending.tui-progressTrackerNavCircleAchievement__outer.tui-progressTrackerNavCircleAchievement--target {
      border-color: var(--progresstracker-color-pending); }
    .tui-progressTrackerNavCircleAchievement__outer.tui-progressTrackerNavCircleAchievement--target.tui-progressTrackerNavCircleAchievement__outer.tui-progressTrackerNavCircleAchievement--achieved {
      background: var(--progresstracker-container-bg-color);
      border-color: var(--progresstracker-color-achieved);
      border-style: solid; }
  .tui-progressTrackerNavCircleAchievement__middle {
    display: flex;
    align-items: center;
    justify-content: center;
    width: calc(calc(var(--progresstracker-full-marker-size) / 2) + var(--gap-1));
    height: calc(calc(var(--progresstracker-full-marker-size) / 2) + var(--gap-1));
    background: transparent;
    border: var(--border-width-thin) solid transparent;
    border-radius: 50%;
    -webkit-print-color-adjust: exact;
    color-adjust: exact;
    /**
     * states
     **/ }
    .tui-progressTrackerNavCircleAchievement--pending .tui-progressTrackerNavCircleAchievement__middle {
      background: var(--progresstracker-color-pending); }
    .tui-progressTrackerNavCircleAchievement--pending.tui-progressTrackerNavCircleAchievement--target .tui-progressTrackerNavCircleAchievement__middle {
      background: transparent; }
    .tui-progressTrackerNavCircleAchievement--complete .tui-progressTrackerNavCircleAchievement__middle {
      background: var(--progresstracker-color-complete); }
    .tui-progressTrackerNavCircleAchievement--achieved .tui-progressTrackerNavCircleAchievement__middle {
      background: var(--progresstracker-color-achieved); }
  .tui-progressTrackerNavCircleAchievement__inner {
    display: flex;
    align-items: center;
    width: calc(calc(var(--progresstracker-full-marker-size) / 4) +
        var(--border-width-thin));
    height: calc(calc(var(--progresstracker-full-marker-size) / 4) +
        var(--border-width-thin));
    background: var(--progresstracker-container-bg-color);
    border: var(--border-width-thin) solid var(--progresstracker-container-bg-color);
    border-radius: 50%;
    /**
     * states
     **/ }
    .tui-progressTrackerNavCircleAchievement--pending .tui-progressTrackerNavCircleAchievement__inner {
      border-color: var(--progresstracker-container-bg-color); }
    .tui-progressTrackerNavCircleAchievement--pending.tui-progressTrackerNavCircleAchievement--target .tui-progressTrackerNavCircleAchievement__inner {
      border-color: var(--progresstracker-color-pending); }
    .tui-progressTrackerNavCircleAchievement--achieved .tui-progressTrackerNavCircleAchievement__inner {
      border-color: var(--progresstracker-container-bg-color); }
  .tui-progressTrackerNavCircleAchievement__label {
    /* The use of '!important' here is an exception and should not be replicated else where */
    /* stylelint-disable declaration-no-important */
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    margin: -1px !important;
    padding: 0 !important;
    overflow: hidden !important;
    white-space: nowrap !important;
    border: 0 !important;
    clip: rect(0, 0, 0, 0) !important;
    /* stylelint-enable */ }

.ie .tui-progressTrackerCircle--achieved .tui-progressTrackerCircle__middle, .msedge .tui-progressTrackerCircle--achieved .tui-progressTrackerCircle__middle {
  border: var(--gap-1) solid var(--progresstracker-color-achieved); }
.ie .tui-progressTrackerCircle--complete .tui-progressTrackerCircle__middle, .msedge .tui-progressTrackerCircle--complete .tui-progressTrackerCircle__middle {
  border: var(--gap-1) solid var(--progresstracker-color-complete); }

.tui-progressTrackerNavCircleWorkflow {
  /* states*/ }
  .tui-progressTrackerNavCircleWorkflow__outer {
    z-index: 2;
    display: flex;
    flex-shrink: 0;
    align-items: center;
    justify-content: center;
    width: var(--progresstracker-full-marker-size);
    height: var(--progresstracker-full-marker-size);
    border: var(--border-width-normal) transparent none;
    border-radius: 50%;
    /**
     * states
     **/ }
    .tui-progressTrackerNavCircleWorkflow__outer.tui-progressTrackerNavCircleWorkflow--selected {
      border-color: var(--progresstracker-color-selected);
      border-style: solid; }
    .tui-progressTrackerNavCircleWorkflow__outer.tui-progressTrackerNavCircleWorkflow--ready {
      border-color: var(--progresstracker-color-ready); }
    .tui-progressTrackerNavCircleWorkflow__outer.tui-progressTrackerNavCircleWorkflow--locked {
      border-color: var(--progresstracker-color-locked); }
    .tui-progressTrackerNavCircleWorkflow__outer.tui-progressTrackerNavCircleWorkflow--done {
      border-color: var(--progresstracker-color-done); }
    .tui-progressTrackerNavCircleWorkflow__outer.tui-progressTrackerNavCircleWorkflow--optional {
      border-color: var(--progresstracker-color-optional); }
    .tui-progressTrackerNavCircleWorkflow__outer.tui-progressTrackerNavCircleWorkflow--invalid {
      border-color: var(--progresstracker-color-invalid); }
    .tui-progressTrackerNavCircleWorkflow__outer.tui-progressTrackerNavCircleWorkflow--hidden {
      border-style: none; }
  .tui-progressTrackerNavCircleWorkflow__middle {
    display: flex;
    align-items: center;
    justify-content: center;
    width: calc(var(--progresstracker-full-marker-size) - var(--gap-2));
    height: calc(var(--progresstracker-full-marker-size) - var(--gap-2));
    background-color: transparent;
    border: var(--border-width-thin) none transparent;
    border-radius: 50%;
    /**
     * states
     **/ }
    .tui-progressTrackerNavCircleWorkflow--selected .tui-progressTrackerNavCircleWorkflow__middle {
      background: var(--progresstracker-color-selected);
      border-color: var(--progresstracker-color-selected); }
    .tui-progressTrackerNavCircleWorkflow--ready .tui-progressTrackerNavCircleWorkflow__middle {
      background: var(--progresstracker-color-ready--inverse);
      border-color: var(--progresstracker-color-ready);
      border-style: solid; }
    .tui-progressTrackerNavCircleWorkflow--locked .tui-progressTrackerNavCircleWorkflow__middle {
      background: var(--progresstracker-color-locked--inverse);
      border-color: var(--progresstracker-color-locked);
      border-style: solid; }
    .tui-progressTrackerNavCircleWorkflow--done .tui-progressTrackerNavCircleWorkflow__middle {
      background: var(--progresstracker-color-done);
      border-color: var(--progresstracker-color-done); }
    .tui-progressTrackerNavCircleWorkflow--optional .tui-progressTrackerNavCircleWorkflow__middle {
      background: var(--progresstracker-color-optional--inverse);
      border-color: var(--progresstracker-color-optional);
      border-style: dashed; }
    .tui-progressTrackerNavCircleWorkflow--invalid .tui-progressTrackerNavCircleWorkflow__middle {
      background: var(--progresstracker-color-invalid);
      border-color: var(--progresstracker-color-invalid); }
    .tui-progressTrackerNavCircleWorkflow--view-only .tui-progressTrackerNavCircleWorkflow__middle {
      background: var(--progresstracker-color-view-only--inverse);
      border-color: var(--progresstracker-color-view-only);
      border-style: solid; }
    .tui-progressTrackerNavCircleWorkflow--hidden .tui-progressTrackerNavCircleWorkflow__middle {
      background: var(--progresstracker-color-hidden--inverse);
      border-color: var(--progresstracker-color-hidden--inverse); }
    .tui-progressTrackerNavCircleWorkflow--ready.tui-progressTrackerNavCircleWorkflow--selected .tui-progressTrackerNavCircleWorkflow__middle {
      background: var(--progresstracker-color-ready); }
    .tui-progressTrackerNavCircleWorkflow--locked.tui-progressTrackerNavCircleWorkflow--selected .tui-progressTrackerNavCircleWorkflow__middle {
      background: var(--progresstracker-color-locked); }
    .tui-progressTrackerNavCircleWorkflow--done.tui-progressTrackerNavCircleWorkflow--selected .tui-progressTrackerNavCircleWorkflow__middle {
      background: var(--progresstracker-color-done); }
    .tui-progressTrackerNavCircleWorkflow--optional.tui-progressTrackerNavCircleWorkflow--selected .tui-progressTrackerNavCircleWorkflow__middle {
      background: var(--progresstracker-color-optional);
      border-color: var(--progresstracker-container-bg-color);
      border-style: dashed; }
    .tui-progressTrackerNavCircleWorkflow--view-only.tui-progressTrackerNavCircleWorkflow--selected .tui-progressTrackerNavCircleWorkflow__middle {
      background: var(--progresstracker-color-view-only); }
    .tui-progressTrackerNavCircleWorkflow--hidden.tui-progressTrackerNavCircleWorkflow--selected .tui-progressTrackerNavCircleWorkflow__middle {
      background: var(--progresstracker-color-hidden--inverse);
      border-color: var(--progresstracker-color-hidden--inverse); }
    .tui-progressTrackerNavCircleWorkflow--invalid.tui-progressTrackerNavCircleWorkflow--selected .tui-progressTrackerNavCircleWorkflow__middle {
      background: var(--progresstracker-color-invalid);
      border-color: var(--progresstracker-color-invalid); }
  .tui-progressTrackerNavCircleWorkflow__inner {
    display: flex;
    align-items: center;
    justify-content: center;
    width: var(--gap-5);
    height: var(--gap-5);
    border-radius: 50%;
    /**
     * states
     **/ }
    .tui-progressTrackerNavCircleWorkflow--selected .tui-progressTrackerNavCircleWorkflow__inner {
      color: var(--progresstracker-color-selected--inverse); }
    .tui-progressTrackerNavCircleWorkflow--ready .tui-progressTrackerNavCircleWorkflow__inner {
      color: var(--progresstracker-color-ready); }
    .tui-progressTrackerNavCircleWorkflow--locked .tui-progressTrackerNavCircleWorkflow__inner {
      color: var(--progresstracker-color-locked); }
    .tui-progressTrackerNavCircleWorkflow--done .tui-progressTrackerNavCircleWorkflow__inner {
      color: var(--progresstracker-color-done--inverse); }
    .tui-progressTrackerNavCircleWorkflow--optional .tui-progressTrackerNavCircleWorkflow__inner {
      color: var(--progresstracker-color-optional); }
    .tui-progressTrackerNavCircleWorkflow--invalid .tui-progressTrackerNavCircleWorkflow__inner {
      color: var(--progresstracker-color-invalid--inverse); }
    .tui-progressTrackerNavCircleWorkflow--view-only .tui-progressTrackerNavCircleWorkflow__inner {
      color: var(--progresstracker-color-view-only); }
    .tui-progressTrackerNavCircleWorkflow--hidden .tui-progressTrackerNavCircleWorkflow__inner {
      color: var(--progresstracker-color-hidden); }
    .tui-progressTrackerNavCircleWorkflow--ready.tui-progressTrackerNavCircleWorkflow--selected .tui-progressTrackerNavCircleWorkflow__inner {
      color: var(--progresstracker-color-ready--inverse); }
    .tui-progressTrackerNavCircleWorkflow--locked.tui-progressTrackerNavCircleWorkflow--selected .tui-progressTrackerNavCircleWorkflow__inner {
      color: var(--progresstracker-color-locked--inverse); }
    .tui-progressTrackerNavCircleWorkflow--done.tui-progressTrackerNavCircleWorkflow--selected .tui-progressTrackerNavCircleWorkflow__inner {
      color: var(--progresstracker-color-done--inverse); }
    .tui-progressTrackerNavCircleWorkflow--optional.tui-progressTrackerNavCircleWorkflow--selected .tui-progressTrackerNavCircleWorkflow__inner {
      color: var(--progresstracker-color-optional--inverse); }
    .tui-progressTrackerNavCircleWorkflow--view-only.tui-progressTrackerNavCircleWorkflow--selected .tui-progressTrackerNavCircleWorkflow__inner {
      color: var(--progresstracker-color-view-only--inverse); }
    .tui-progressTrackerNavCircleWorkflow--hidden.tui-progressTrackerNavCircleWorkflow--selected .tui-progressTrackerNavCircleWorkflow__inner {
      color: var(--progresstracker-color-hidden); }
  .tui-progressTrackerNavCircleWorkflow__icon--locked {
    width: 1.2rem;
    height: 1.2rem;
    margin-bottom: 2px; }
  .tui-progressTrackerNavCircleWorkflow__icon--done {
    width: 1.6rem;
    height: 1.6rem;
    margin-top: 2px; }
  .tui-progressTrackerNavCircleWorkflow__icon--invalid {
    width: 1.4rem;
    height: 1.4rem;
    margin-bottom: 3px; }
  .tui-progressTrackerNavCircleWorkflow__icon--hidden {
    width: 2rem;
    height: 2rem; }
  .tui-progressTrackerNavCircleWorkflow__label {
    /* The use of '!important' here is an exception and should not be replicated else where */
    /* stylelint-disable declaration-no-important */
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    margin: -1px !important;
    padding: 0 !important;
    overflow: hidden !important;
    white-space: nowrap !important;
    border: 0 !important;
    clip: rect(0, 0, 0, 0) !important;
    /* stylelint-enable */ }

/**
 * Connector lines
 **/
.tui-progressTrackerNav__itemContentWrapper:before {
  position: absolute;
  display: block;
  border-color: var(--progresstracker-color-pending);
  border-style: dotted;
  content: ''; }
  .tui-progressTrackerNav--vertical .tui-progressTrackerNav__itemContentWrapper:before {
    top: calc(var(--progresstracker-full-marker-size) + var(--border-width-normal));
    /* nested calc() will get botched by RTLCSS processing if it is broken down onto multiple lines */
    /* prettier-ignore */
    left: calc(calc(var(--progresstracker-full-marker-size) / 2) - calc(var(--border-width-normal) / 2));
    width: var(--border-width-normal);
    /* prettier-ignore */
    height: calc(100% - calc( var(--progresstracker-full-marker-size) + calc(var(--border-width-normal) * 2) ));
    border-width: 0 0 0 var(--border-width-normal); }
  .tui-progressTrackerNav--horizontal .tui-progressTrackerNav__itemContentWrapper:before {
    /* nested calc() will get botched by RTLCSS processing if it is broken down onto multiple lines */
    /* prettier-ignore */
    top: calc(calc(var(--progresstracker-full-marker-size) / 2) - calc(var(--border-width-normal) / 2));
    /* prettier-ignore */
    left: calc(50% + calc(var(--progresstracker-full-marker-size) / 2) + var(--progresstracker-connector-gap) - var(--border-width-normal));
    /* prettier-ignore */
    width: calc(100% - calc( var(--progresstracker-full-marker-size) + calc(var(--progresstracker-connector-gap)) + var(--border-width-normal)));
    height: var(--border-width-normal);
    border-width: var(--border-width-normal) 0 0 0; }

/**
 * Connector line modifiers
 **/
.tui-progressTrackerNav__connector {
  /* item states related to Achievement*/ }
  .tui-progressTrackerNav__connector--pending {
    /* this is the default state if no state Array is passed into the item*/ }
    .tui-progressTrackerNav__connector--pending .tui-progressTrackerNav__itemContentWrapper:before {
      border-color: var(--progresstracker-color-pending); }
  .tui-progressTrackerNav__connector--complete .tui-progressTrackerNav__itemContentWrapper:before {
    border-color: var(--progresstracker-color-complete);
    border-style: solid; }
.tui-progressTrackerNav__connector--achieved .tui-progressTrackerNav__itemContentWrapper:before {
  border-color: var(--progresstracker-color-achieved);
  border-style: solid; }

/**
 * Items and their content
 **/
.tui-progressTrackerNav__item {
  position: relative;
  flex-shrink: 0; }
  .tui-progressTrackerNav__item:last-child .tui-progressTrackerNav__itemContentWrapper:before {
    display: none;
    /**
     * Connector gap adjustment for large item markers
     **/ }
.tui-progressTrackerNav__item--selected .tui-progressTrackerNav__itemContentWrapper:after, .tui-progressTrackerNav__item--target .tui-progressTrackerNav__itemContentWrapper:after {
  position: absolute;
  display: block;
  /* nested calc() will get botched by RTLCSS processing if it is broken down onto multiple lines */
  /* prettier-ignore */
  width: calc(var(--progresstracker-full-marker-size) + calc(var(--progresstracker-connector-gap) * 2));
  /* prettier-ignore */
  height: calc(var(--progresstracker-full-marker-size) + calc(var(--progresstracker-connector-gap) * 2));
  border-color: var(--progresstracker-container-bg-color);
  border-style: solid;
  border-width: var(--progresstracker-connector-gap);
  border-radius: 50%;
  content: ''; }
  .tui-progressTrackerNav--horizontal .tui-progressTrackerNav__item--selected .tui-progressTrackerNav__itemContentWrapper:after, .tui-progressTrackerNav--horizontal .tui-progressTrackerNav__item--target .tui-progressTrackerNav__itemContentWrapper:after {
    top: calc(var(--progresstracker-connector-gap) * -1);
    left: calc(50% - calc(var(--progresstracker-full-marker-size) / 2) - var(--progresstracker-connector-gap)); }
  .tui-progressTrackerNav--vertical .tui-progressTrackerNav__item--selected .tui-progressTrackerNav__itemContentWrapper:after, .tui-progressTrackerNav--vertical .tui-progressTrackerNav__item--target .tui-progressTrackerNav__itemContentWrapper:after {
    top: calc(var(--progresstracker-connector-gap) * -1);
    left: calc(var(--progresstracker-connector-gap) * -1); }
.tui-progressTrackerNav__itemContentWrapper {
  position: relative;
  display: flex; }
  .tui-progressTrackerNav--vertical .tui-progressTrackerNav__itemContentWrapper {
    flex-direction: row;
    align-items: stretch;
    height: 100%; }
  .tui-progressTrackerNav--horizontal .tui-progressTrackerNav__itemContentWrapper {
    flex-direction: column;
    align-items: center; }
.tui-progressTrackerNav__itemContent {
  display: flex;
  flex-direction: column; }
  .tui-progressTrackerNav__itemContent--full-width {
    width: 100%; }
  .tui-progressTrackerNav__itemContent--overflow-hidden {
    overflow: hidden; }
  .tui-progressTrackerNav--vertical .tui-progressTrackerNav__itemContent {
    padding-left: var(--gap-2);
    /**
     * variable width and gap sizes based on supplied props
     **/ }
    .tui-progressTrackerNav--vertical .tui-progressTrackerNav__itemContent--gap-small {
      padding-bottom: var(--gap-2); }
    .tui-progressTrackerNav--vertical .tui-progressTrackerNav__itemContent--gap-medium {
      padding-bottom: var(--gap-5); }
    .tui-progressTrackerNav--vertical .tui-progressTrackerNav__itemContent--gap-large {
      padding-bottom: var(--gap-7); }
  .tui-progressTrackerNav--horizontal .tui-progressTrackerNav__itemContent {
    align-items: center;
    /**
     * variable width and gap sizes based on supplied props
     **/ }
    .tui-progressTrackerNav--horizontal .tui-progressTrackerNav__itemContent--gap-small {
      padding-right: var(--progress-tracker-horizontal-gap--small);
      padding-left: var(--progress-tracker-horizontal-gap--small); }
    .tui-progressTrackerNav--horizontal .tui-progressTrackerNav__itemContent--size-small {
      width: var(--progress-tracker-horizontal-size--small); }
    .tui-progressTrackerNav--horizontal .tui-progressTrackerNav__itemContent--gap-medium {
      padding-right: var(--progress-tracker-horizontal-gap--medium);
      padding-left: var(--progress-tracker-horizontal-gap--medium); }
    .tui-progressTrackerNav--horizontal .tui-progressTrackerNav__itemContent--size-medium {
      width: var(--progress-tracker-horizontal-size--medium); }
    .tui-progressTrackerNav--horizontal .tui-progressTrackerNav__itemContent--gap-large {
      padding-right: var(--progress-tracker-horizontal-gap--large);
      padding-left: var(--progress-tracker-horizontal-gap--large); }
    .tui-progressTrackerNav--horizontal .tui-progressTrackerNav__itemContent--size-large {
      width: var(--progress-tracker-horizontal-size--large); }
.tui-progressTrackerNav__itemLabel {
  position: relative;
  width: 100%;
  margin: 0;
  padding-top: var(--gap-1);
  padding-bottom: var(--gap-1); }
  .tui-progressTrackerNav--horizontal .tui-progressTrackerNav__itemLabel {
    text-align: center; }
    .tui-progressTrackerNav__itemLabel--current .tui-formBtn, .tui-progressTrackerNav__itemLabel--current .tui-iconBtn, .tui-progressTrackerNav__itemLabel--current .tui-actionLink, .tui-progressTrackerNav__itemLabel--current .tui-toggleSwitch__btn {
      color: var(--color-state-active);
      font-weight: bold; }
.tui-progressTrackerNav__itemStatus {
  /* The use of '!important' here is an exception and should not be replicated else where */
  /* stylelint-disable declaration-no-important */
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  margin: -1px !important;
  padding: 0 !important;
  overflow: hidden !important;
  white-space: nowrap !important;
  border: 0 !important;
  clip: rect(0, 0, 0, 0) !important;
  /* stylelint-enable */ }

:root {
  --settings-navigation-spacing: var(--gap-2);
  --settings-navigation-tree-width: 340px; }

.tui-settingsNavigationTree {
  -webkit-hyphens: none;
  hyphens: none; }
  .tui-settingsNavigationTree__settingsItem {
    width: 100%;
    color: var(--color-neutral-6); }
  .tui-settingsNavigationTree__label {
    padding: var(--gap-2) var(--gap-4);
    line-height: 1.4;
    cursor: default; }

:root {
  --tui-sidepanel-button-width: 30px;
  --tui-sidepanel-button-height: 66px;
  --tui-sidepanel-border-width: 1px; }

.tui-sidePanel--displayChrome {
  display: flex;
  align-items: flex-start;
  height: 100%;
  /* inner content alignment*/ }
.tui-sidePanel--rtl, .dir-rtl .tui-sidePanel--ltr .tui-sidePanel {
  justify-content: flex-end; }
.tui-sidePanel--ltr, .dir-rtl .tui-sidePanel--rtl .tui-sidePanel {
  justify-content: flex-start; }
.tui-sidePanel--sticky {
  position: sticky;
  top: 0;
  max-height: 100vh;
  overflow: hidden; }
.tui-sidePanel--sticky.tui-sidePanel--closed {
  overflow: visible;
  /**
   * Close button, somewhat complicated by the SidePanel being configurably
   * bi-directional and both of those directions also requiring RTL support
   **/ }
.tui-sidePanel__outsideClose {
  display: flex; }
  .tui-sidePanel--displayChrome.tui-sidePanel--sticky .tui-sidePanel__outsideClose {
    position: sticky;
    top: calc(50% - (var(--tui-sidepanel-button-height) / 2)); }
  .tui-sidePanel--displayChrome .tui-sidePanel__outsideClose {
    flex-grow: 0;
    min-width: var(--tui-sidepanel-button-width);
    min-height: var(--tui-sidepanel-button-height);
    margin-bottom: -1px;
    padding: var(--gap-6) var(--gap-2);
    background-color: var(--color-neutral-3);
    border-color: var(--color-neutral-5); }
  .tui-sidePanel--displayChrome.tui-sidePanel--rtl .tui-sidePanel__outsideClose, .dir-rtl .tui-sidePanel--displayChrome.tui-sidePanel--ltr .tui-sidePanel__outsideClose {
    margin-right: -1px;
    border-right-width: 0;
    border-left-width: var(--tui-sidepanel-border-width);
    border-radius: var(--btn-radius) 0 0 var(--btn-radius); }
    .tui-sidePanel--displayChrome.tui-sidePanel--rtl .tui-sidePanel__outsideClose:hover, .dir-rtl .tui-sidePanel--displayChrome.tui-sidePanel--ltr .tui-sidePanel__outsideClose:hover, .tui-sidePanel--displayChrome.tui-sidePanel--rtl .tui-sidePanel__outsideClose:active, .dir-rtl .tui-sidePanel--displayChrome.tui-sidePanel--ltr .tui-sidePanel__outsideClose:active, .tui-sidePanel--displayChrome.tui-sidePanel--rtl .tui-sidePanel__outsideClose:active:focus, .dir-rtl .tui-sidePanel--displayChrome.tui-sidePanel--ltr .tui-sidePanel__outsideClose:active:focus, .tui-sidePanel--displayChrome.tui-sidePanel--rtl .tui-sidePanel__outsideClose:active:hover, .dir-rtl .tui-sidePanel--displayChrome.tui-sidePanel--ltr .tui-sidePanel__outsideClose:active:hover {
      border-right-width: 0;
      border-left-width: var(--tui-sidepanel-border-width);
      box-shadow: -2px 1px 4px 0 rgba(0, 0, 0, 0.2);
      /* FlexIcon*/ }
    .tui-sidePanel--displayChrome.tui-sidePanel--rtl .tui-sidePanel__outsideClose .tui-iconBtn__icon, .dir-rtl .tui-sidePanel--displayChrome.tui-sidePanel--ltr .tui-sidePanel__outsideClose .tui-iconBtn__icon {
      transform: rotate(90deg); }
  .tui-sidePanel--displayChrome.tui-sidePanel--ltr .tui-sidePanel__outsideClose, .dir-rtl .tui-sidePanel--displayChrome.tui-sidePanel--rtl .tui-sidePanel__outsideClose {
    margin-left: -1px;
    border-right-width: 1px;
    border-left-width: 0;
    border-radius: 0 var(--btn-radius) var(--btn-radius) 0; }
    .tui-sidePanel--displayChrome.tui-sidePanel--ltr .tui-sidePanel__outsideClose:hover, .dir-rtl .tui-sidePanel--displayChrome.tui-sidePanel--rtl .tui-sidePanel__outsideClose:hover, .tui-sidePanel--displayChrome.tui-sidePanel--ltr .tui-sidePanel__outsideClose:active, .dir-rtl .tui-sidePanel--displayChrome.tui-sidePanel--rtl .tui-sidePanel__outsideClose:active, .tui-sidePanel--displayChrome.tui-sidePanel--ltr .tui-sidePanel__outsideClose:active:focus, .dir-rtl .tui-sidePanel--displayChrome.tui-sidePanel--rtl .tui-sidePanel__outsideClose:active:focus, .tui-sidePanel--displayChrome.tui-sidePanel--ltr .tui-sidePanel__outsideClose:active:hover, .dir-rtl .tui-sidePanel--displayChrome.tui-sidePanel--rtl .tui-sidePanel__outsideClose:active:hover {
      border-right-width: var(--tui-sidepanel-border-width);
      border-left-width: 0;
      box-shadow: 2px 1px 4px 0 rgba(0, 0, 0, 0.2);
      /* FlexIcon*/ }
    .tui-sidePanel--displayChrome.tui-sidePanel--ltr .tui-sidePanel__outsideClose .tui-iconBtn__icon, .dir-rtl .tui-sidePanel--displayChrome.tui-sidePanel--rtl .tui-sidePanel__outsideClose .tui-iconBtn__icon {
      transform: rotate(-90deg);
      /**
       * A wrapper for content container, which helps with transitions on width
       * while overflowing content is still visible, and providing whitespace
       * between content and the edges of the SidePanel
       **/ }
.tui-sidePanel--displayChrome .tui-sidePanel__inner {
  display: flex;
  flex-direction: column;
  flex-grow: 1;
  flex-shrink: 1;
  width: 100%;
  height: 100%;
  background-color: var(--color-neutral-3);
  border: var(--tui-sidepanel-border-width) solid var(--color-neutral-5); }
.tui-sidePanel--flush .tui-sidePanel__inner {
  border-top: none;
  border-bottom: none; }
.tui-sidePanel--open.tui-sidePanel--overflows .tui-sidePanel__inner {
  overflow-y: auto; }
.tui-sidePanel--closed .tui-sidePanel__inner {
  max-width: 1px;
  padding-right: 0;
  padding-left: 0;
  border-left: 0;
  /* we have to cut off overflow during these states otherwise we'll bump*/
  /* page scrollbars, or a containing element scrollbars*/ }
.tui-sidePanel--closed .tui-sidePanel__inner, .tui-sidePanel--closing .tui-sidePanel__inner, .tui-sidePanel--opening .tui-sidePanel__inner {
  overflow: hidden;
  /**
   * Transitioned container for arbitrary SidePanel content
   **/ }
.tui-sidePanel--displayChrome .tui-sidePanel__content {
  display: flex;
  flex-direction: column;
  flex-grow: 1;
  overflow: hidden; }
.tui-sidePanel--closed .tui-sidePanel__content, .tui-sidePanel--closing .tui-sidePanel__content {
  opacity: 0; }
.tui-sidePanel--closed .tui-sidePanel__content {
  height: 0;
  visibility: hidden; }
.tui-sidePanel--open .tui-sidePanel__content, .tui-sidePanel--opening .tui-sidePanel__content {
  opacity: 1; }
.tui-sidePanel--animated .tui-sidePanel__content {
  transition: opacity var(--transition-sidepanel-content-duration) var(--transition-sidepanel-content-function); }
.tui-sidePanel--open.tui-sidePanel--overflows .tui-sidePanel__content {
  overflow-y: auto; }

.tui-sidePanelNav {
  padding: var(--gap-4) 0;
  background: var(--side-panel-nav-bg-color); }
  .tui-sidePanelNav > * + * {
    margin-top: var(--gap-7); }

.tui-sidePanelNavButtonItem {
  position: relative;
  display: flex;
  align-items: center;
  color: var(--side-panel-nav-item-text-color);
  background: var(--side-panel-nav-item-bg-color);
  border-color: var(--side-panel-nav-item-border-color);
  /* Item li*/ }
  .tui-sidePanelNavButtonItem.tui-focusWithin, .tui-sidePanelNavButtonItem:hover {
    color: var(--side-panel-nav-item-text-color-focus);
    background: var(--side-panel-nav-item-bg-color-focus);
    border-color: var(--side-panel-nav-item-border-color-focus); }
  .tui-sidePanelNavButtonItem__side {
    margin-left: auto;
    padding-right: var(--gap-4); }
  .tui-sidePanelNavButtonItem__notificationDot {
    position: absolute;
    /* The same as padding left of actioin plus another tui-gap-4 to make sure there is a padding between*/
    /* the action link and the dot.*/
    width: var(--sidepanel-navigation-item-padding-left);
    pointer-events: none; }
    .tui-sidePanelNavButtonItem__notificationDot-inner {
      display: block;
      width: 0.6rem;
      height: 0.6rem;
      margin-left: var(--gap-3);
      background-color: var(--color-prompt-alert);
      border-radius: 100%;
      /* Item link*/ }
  .tui-sidePanelNavButtonItem__action {
    flex-grow: 1;
    padding: var(--gap-2) var(--gap-4);
    padding-left: var(--sidepanel-navigation-item-padding-left);
    color: inherit;
    text-align: left;
    -ms-word-break: break-all;
    word-break: break-word; }
    .tui-sidePanelNavButtonItem__action:hover, .tui-sidePanelNavButtonItem__action:focus, .tui-sidePanelNavButtonItem__action:focus:hover {
      color: inherit; }
  .tui-sidePanelNavButtonItem--active {
    color: var(--side-panel-nav-item-text-color-selected);
    background: var(--side-panel-nav-item-bg-color-selected);
    border-color: var(--side-panel-nav-item-border-color-selected); }
    .tui-sidePanelNavButtonItem--active.tui-focusWithin, .tui-sidePanelNavButtonItem--active:hover {
      color: var(--side-panel-nav-item-text-color-selected);
      background: var(--side-panel-nav-item-bg-color-selected);
      border-color: var(--side-panel-nav-item-border-color-selected); }

.tui-sidePanelNavGroup > * + * {
  margin-top: var(--gap-2); }
.tui-sidePanelNavGroup__heading {
  display: flex;
  align-items: center;
  padding: 0 var(--gap-4);
  padding-left: var(--sidepanel-navigation-item-padding-left); }
  .tui-sidePanelNavGroup__heading-title {
    margin: 0;
    font-weight: bold;
    font-size: var(--font-body-size);
    line-height: var(--font-body-line-height); }
  .tui-sidePanelNavGroup__heading-side {
    margin-left: auto;
    padding-left: var(--gap-2); }
.tui-sidePanelNavGroup__items {
  margin-left: 0;
  list-style: none; }

.tui-sidePanelNavLinkItem {
  position: relative;
  display: flex;
  align-items: center;
  color: var(--side-panel-nav-item-text-color);
  background: var(--side-panel-nav-item-bg-color);
  border-color: var(--side-panel-nav-item-border-color);
  /* Item li*/ }
  .tui-sidePanelNavLinkItem.tui-focusWithin, .tui-sidePanelNavLinkItem:hover {
    color: var(--side-panel-nav-item-text-color-focus);
    background: var(--side-panel-nav-item-bg-color-focus);
    border-color: var(--side-panel-nav-item-border-color-focus); }
  .tui-sidePanelNavLinkItem__side {
    margin-left: auto;
    padding-right: var(--gap-4); }
  .tui-sidePanelNavLinkItem__notificationDot {
    position: absolute;
    /* The same as padding left of actioin plus another tui-gap-4 to make sure there is a padding between*/
    /* the action link and the dot.*/
    width: var(--sidepanel-navigation-item-padding-left);
    pointer-events: none; }
    .tui-sidePanelNavLinkItem__notificationDot-inner {
      display: block;
      width: 0.6rem;
      height: 0.6rem;
      margin-left: var(--gap-3);
      background-color: var(--color-prompt-alert);
      border-radius: 100%;
      /* Item link*/ }
  .tui-sidePanelNavLinkItem__action {
    flex-grow: 1;
    padding: var(--gap-2) var(--gap-4);
    padding-left: var(--sidepanel-navigation-item-padding-left);
    color: inherit;
    line-height: 1;
    -ms-word-break: break-all;
    word-break: break-word; }
    .tui-sidePanelNavLinkItem__action:hover, .tui-sidePanelNavLinkItem__action:focus, .tui-sidePanelNavLinkItem__action:focus:hover {
      color: inherit; }
  .tui-sidePanelNavLinkItem--active {
    color: var(--side-panel-nav-item-text-color-selected);
    background: var(--side-panel-nav-item-bg-color-selected);
    border-color: var(--side-panel-nav-item-border-color-selected); }
    .tui-sidePanelNavLinkItem--active.tui-focusWithin, .tui-sidePanelNavLinkItem--active:hover {
      color: var(--side-panel-nav-item-text-color-selected);
      background: var(--side-panel-nav-item-bg-color-selected);
      border-color: var(--side-panel-nav-item-border-color-selected); }

:root {
  --tab-border-width: 1px;
  /* Tab inner horizontal padding*/
  --tab-h-padding: var(--gap-4);
  /* Tab inner vertical padding*/
  --tab-v-padding: var(--gap-2);
  /* Size of Highlight*/
  --tab-highlight-height: var(--gap-1);
  /* Add extra spacing for drop shadow to be displayed*/
  --tab-shadow-offset: var(--gap-3);
  /* Tab small version inner horizontal padding*/
  --tab-small-h-padding: var(--gap-4);
  /* Tab small version inner vertical padding*/
  --tab-small-v-padding: var(--gap-2); }

.tui-tabs--fill {
  display: flex;
  flex-direction: column;
  flex-grow: 1;
  height: 100%; }
.tui-tabs--vertical {
  display: flex;
  flex-direction: row; }
.tui-tabs__selector {
  list-style: none; }
.tui-tabs__tabs {
  display: flex;
  align-items: flex-end;
  margin: 0;
  padding: 0; }
  .tui-tabs--horizontal .tui-tabs__tabs {
    border-bottom: var(--tab-border-width) solid;
    border-bottom-color: var(--tabs-border-color); }
  .tui-tabs--vertical .tui-tabs__tabs {
    border-right: var(--tab-border-width) solid;
    border-right-color: var(--tabs-border-color); }
.tui-tabs--vertical .tui-tabs__tabs {
  flex-direction: column;
  align-items: stretch; }
.tui-tabs__tab {
  display: block;
  overflow: hidden;
  pointer-events: none; }
  .tui-tabs--horizontal .tui-tabs__tab {
    margin: calc(var(--tab-shadow-offset) * -1);
    margin-bottom: calc(var(--tab-border-width) * -1);
    padding: var(--tab-shadow-offset);
    padding-bottom: var(--tab-border-width); }
  .tui-tabs--vertical .tui-tabs__tab {
    max-width: 220px;
    margin-right: calc(var(--tab-border-width) * -1);
    margin-bottom: calc(var(--tab-shadow-offset) * -1);
    padding-right: var(--tab-border-width);
    padding-bottom: var(--tab-shadow-offset); }
  .tui-tabs__tab--hidden {
    display: none; }
a.tui-tabs__link {
  display: flex;
  padding: var(--tab-v-padding) var(--tab-h-padding);
  color: var(--tabs-text-color);
  text-decoration: none;
  border: var(--tab-border-width) solid;
  border-color: transparent;
  pointer-events: auto; }
  a.tui-tabs__link:hover {
    color: var(--tabs-text-color-focus);
    background: var(--tabs-bg-color-focus); }
  a.tui-tabs__link:focus-visible {
    color: var(--tabs-text-color-focus);
    background: var(--tabs-bg-color-focus);
    outline: 2px solid var(--color-state-focus);
    outline-offset: calc((var(--tab-border-width) + 4px) * -1); }
  a.tui-tabs__link:active, a.tui-tabs__link:active:focus, a.tui-tabs__link:active:hover {
    color: var(--tabs-text-color-active);
    outline: none; }
  .tui-tabs--horizontal a.tui-tabs__link {
    margin-top: var(--tab-highlight-height);
    /* overlap edges to avoid double border*/
    margin-right: calc(var(--tab-border-width) * -1);
    border-bottom: none; }
  .tui-tabs--vertical a.tui-tabs__link {
    /* overlap edges to avoid double border*/
    margin-bottom: calc(var(--tab-border-width) * -1);
    margin-left: var(--tab-highlight-height);
    border-right: none; }
.tui-tabs__tab--disabled a.tui-tabs__link {
  color: var(--tabs-text-color-disabled);
  cursor: default;
  pointer-events: none; }
.tui-tabs__tab--active a.tui-tabs__link {
  position: relative;
  color: var(--tabs-text-color-selected);
  background: var(--tabs-bg-color-selected); }
  .tui-tabs--horizontal .tui-tabs__tab--active a.tui-tabs__link {
    top: var(--tab-border-width);
    padding-top: calc(var(--tab-v-padding) - var(--tab-border-width));
    padding-bottom: calc(var(--tab-v-padding) + var(--tab-border-width));
    border-color: var(--tabs-border-color);
    box-shadow: var(--shadow-3); }
  .tui-tabs--vertical .tui-tabs__tab--active a.tui-tabs__link {
    left: var(--tab-border-width);
    padding-right: calc(var(--tab-v-padding) + var(--tab-border-width));
    padding-left: calc(var(--tab-h-padding) - var(--tab-border-width));
    border-color: var(--tabs-border-color);
    box-shadow: var(--shadow-2); }
  .tui-tabs__tab--active a.tui-tabs__link::after {
    position: absolute;
    background: var(--tabs-selected-bar-color);
    content: ''; }
    .tui-tabs--horizontal .tui-tabs__tab--active a.tui-tabs__link::after {
      top: calc(var(--tab-highlight-height) * -1);
      right: 0;
      left: calc(var(--tab-border-width) * -1);
      width: calc(100% + (var(--tab-border-width) * 2));
      height: var(--tab-highlight-height);
      border-radius: var(--border-radius-small) var(--border-radius-small) 0 0; }
    .tui-tabs--vertical .tui-tabs__tab--active a.tui-tabs__link::after {
      top: calc(var(--tab-border-width) * -1);
      bottom: 0;
      left: calc(var(--tab-highlight-height) * -1);
      width: var(--tab-highlight-height);
      height: calc(100% + (var(--tab-border-width) * 2));
      border-radius: var(--border-radius-small) 0 0 var(--border-radius-small); }
.tui-tabs__tabLabel {
  overflow: hidden;
  white-space: nowrap;
  text-overflow: ellipsis; }
.tui-tabs__tabLabelExtra {
  display: flex;
  align-items: center;
  margin-left: var(--gap-2); }
.tui-tabs--fill > .tui-tabs__panels {
  flex-grow: 1;
  min-height: 0; }
  .tui-tabs--fill > .tui-tabs__panels > .tui-tabContent {
    height: 100%; }

.tui-tabs {
  /* Small tab*/ }
  .tui-tabs--horizontal .tui-tabs__tab--small .tui-tabs__link {
    font-weight: normal;
    font-size: var(--font-body-small-size);
    line-height: var(--font-body-small-line-height);
    padding: var(--tab-small-v-padding) var(--tab-small-h-padding);
    /* Active small tab*/ }
.tui-tabs--horizontal .tui-tabs__tab--active.tui-tabs__tab--small .tui-tabs__link {
  padding-top: calc(var(--tab-small-v-padding) - var(--tab-border-width));
  /* prettier-ignore*/
  padding-bottom: calc(var(--tab-small-v-padding) + var(--tab-border-width));
  color: var(--tabs-text-color-selected);
  /* Disabled small tab*/ }
.tui-tabs--horizontal .tui-tabs__tab--disabled.tui-tabs__tab--small .tui-tabs__link {
  color: var(--tabs-text-color-disabled);
  cursor: default;
  pointer-events: none; }

.tui-tabs--horizontal .tui-tabContent {
  padding-top: var(--gap-4); }
.tui-tabs--horizontal.tui-tabs--contentSpacing-large .tui-tabContent {
  padding-top: var(--gap-8); }
.tui-tabs--vertical .tui-tabContent {
  padding-left: var(--gap-4); }
.tui-tabs--vertical.tui-tabs--contentSpacing-large .tui-tabContent {
  padding-left: var(--gap-8); }

.tui-tag {
  display: inline-flex;
  flex-shrink: 0;
  align-items: center;
  height: var(--tag-height);
  white-space: nowrap;
  background-color: var(--tag-bg-color);
  border: var(--border-width-thin) solid var(--tag-border-color);
  border-radius: var(--tag-border-radius); }
  .tui-tag--noBorder {
    border: none; }
  .tui-tag--large {
    height: auto;
    border-radius: 100px;
    /* suitably large to make it rounded*/ }
  .tui-tag--bold {
    font-weight: bold; }
  .tui-tag__content {
    display: flex;
    padding: 0 var(--gap-2);
    font-size: var(--font-size-13); }
  .tui-tag--large .tui-tag__content {
    padding: var(--gap-2) var(--gap-3);
    font-size: var(--font-size-15); }
  .tui-tag--withButton .tui-tag__content {
    padding-right: 0;
    color: var(--tag-button-color); }
  .tui-tag__contentLabel {
    padding-right: var(--gap-1);
    font-weight: normal; }
  .tui-tag--primary {
    text-transform: uppercase;
    background-color: var(--color-state); }
  .tui-tag--primary .tui-tag__content {
    color: var(--color-neutral-1); }

.tui-tagList {
  display: flex;
  min-width: 23rem;
  min-height: var(--form-input-height);
  color: var(--form-input-text-color);
  font-size: var(--form-input-font-size);
  background: var(--form-input-bg-color);
  border: var(--form-input-border-size) solid var(--form-input-border-color);
  border-radius: var(--form-input-border-radius); }
  .tui-contextInvalid .tui-tagList {
    border-color: var(--form-input-border-color-invalid);
    box-shadow: var(--form-input-shadow-invalid); }
  .tui-tagList--hasFocus {
    outline: 2px solid var(--color-state-focus);
    outline-offset: var(--focus-outline-offset); }
    .tui-contextInvalid .tui-tagList--hasFocus {
      background: var(--form-input-bg-color-invalid-focus);
      border-color: var(--form-input-border-color-invalid);
      outline-color: var(--form-input-border-color-invalid);
      box-shadow: var(--form-input-shadow-invalid-focus); }
  .tui-tagList__tags {
    display: flex;
    flex: auto;
    align-items: center;
    min-width: 0; }
  .tui-tagList__tagItems {
    display: flex;
    flex-grow: 1;
    gap: var(--gap-1);
    align-items: center;
    min-width: 0;
    padding: calc((calc(var(--form-input-height) - (var(--form-input-border-size) * 2)) - var(--tag-height)) / 2) var(--gap-2); }
    .tui-tagList__tagItems--open {
      flex-wrap: wrap; }
  .tui-tagList__tagItem {
    display: flex;
    flex-shrink: 0;
    align-items: center; }
  .tui-tagList__suffix {
    font-weight: normal;
    font-size: var(--font-body-small-size);
    line-height: var(--font-body-small-line-height);
    flex-shrink: 0;
    padding-right: var(--gap-2);
    padding-left: var(--gap-1);
    color: var(--color-state);
    white-space: nowrap; }
    .tui-tagList__suffix:hover {
      cursor: pointer; }
  .tui-tagList__input {
    flex-grow: 1;
    height: var(--tag-height);
    background: transparent;
    border: none; }
    .tui-tagList__input:focus {
      outline: none; }
  .tui-tagList__expandArrow {
    position: relative;
    width: calc(var(--form-input-height) - (var(--form-input-border-size) * 2));
    height: calc(var(--form-input-height) - (var(--form-input-border-size) * 2));
    background: none;
    border: none; }
    .tui-tagList__expandArrow::after {
      position: absolute;
      top: calc((calc(var(--form-input-height) - (var(--form-input-border-size) * 2)) - var(--select-icon-size)) / 2);
      right: calc((calc(var(--form-input-height) - (var(--form-input-border-size) * 2)) - var(--select-icon-size) * 2) / 2);
      display: block;
      width: 0;
      height: 0;
      border: var(--select-icon-size) solid transparent;
      border-top-color: var(--form-input-text-color);
      content: '';
      pointer-events: none; }
  .tui-tagList__caret {
    fill: var(--color-neutral-7); }
  .tui-tagList__loading {
    margin: var(--gap-4); }

.tui-settingsFormBrand__testEmailInfoButton {
  align-self: center; }

.tui-toggleBtn {
  position: relative;
  display: inline-block;
  flex-shrink: 0;
  min-width: var(--gap-12);
  max-width: 100%;
  height: var(--form-input-height);
  padding: 0 var(--gap-2);
  color: var(--toggle-btn-text-color);
  font-size: var(--form-input-font-size);
  line-height: 1.2;
  background: var(--toggle-btn-bg-color);
  border: none;
  border-radius: calc(var(--btn-radius) - 1px); }
  .tui-toggleBtn:focus, .tui-toggleBtn:active:focus {
    color: var(--toggle-btn-text-color);
    text-decoration: none;
    background: var(--toggle-btn-bg-color);
    outline: none;
    box-shadow: none; }
  .tui-toggleBtn:hover {
    color: var(--toggle-btn-text-color-focus);
    text-decoration: none;
    background: var(--toggle-btn-bg-color-focus);
    box-shadow: none; }
  .tui-toggleBtn:active, .tui-toggleBtn:active:focus, .tui-toggleBtn:active:hover {
    color: var(--toggle-btn-text-color-active);
    text-decoration: none;
    background: var(--toggle-btn-bg-color-active);
    border: none;
    box-shadow: none; }
  .tui-toggleBtn:focus-visible {
    outline: 2px solid var(--toggle-btn-text-color-active);
    outline-offset: -3px; }
  .tui-toggleBtn[disabled] {
    color: var(--toggle-btn-text-color-disabled);
    background: var(--toggle-btn-bg-color-disabled);
    cursor: default; }
    .tui-toggleBtn[disabled]:focus, .tui-toggleBtn[disabled]:hover, .tui-toggleBtn[disabled]:active, .tui-toggleBtn[disabled]:active:focus, .tui-toggleBtn[disabled]:active:hover {
      color: var(--toggle-btn-text-color-disabled);
      background: var(--toggle-btn-bg-color-disabled); }
  .tui-toggleBtn--selected {
    cursor: default; }
    .tui-toggleBtn--selected, .tui-toggleBtn--selected:focus, .tui-toggleBtn--selected:hover, .tui-toggleBtn--selected:active, .tui-toggleBtn--selected:active:focus, .tui-toggleBtn--selected:active:hover {
      color: var(--toggle-btn-text-color-selected);
      background: var(--toggle-btn-bg-color-selected); }
    .tui-toggleBtn--selected:focus {
      outline: none; }
    .tui-toggleBtn--selected:focus-visible {
      outline: 2px solid var(--toggle-btn-text-color-selected);
      outline-offset: -3px; }
  .tui-toggleBtn[disabled].tui-toggleBtn--selected {
    color: var(--toggle-btn-text-color-selected);
    background: var(--toggle-btn-bg-color-selected); }
    .tui-toggleBtn[disabled].tui-toggleBtn--selected:focus, .tui-toggleBtn[disabled].tui-toggleBtn--selected:hover, .tui-toggleBtn[disabled].tui-toggleBtn--selected:active, .tui-toggleBtn[disabled].tui-toggleBtn--selected:active:focus, .tui-toggleBtn[disabled].tui-toggleBtn--selected:active:hover {
      color: var(--toggle-btn-text-color-selected);
      background: var(--toggle-btn-bg-color-selected); }
  .tui-toggleBtn--hasText {
    min-width: 70px; }
    .tui-toggleBtn--hasText .tui-toggleBtn__icon {
      font-size: var(--font-size-14); }
  .tui-toggleBtn--large {
    min-width: 10rem;
    min-height: 4.6rem; }
    .tui-toggleBtn--large .tui-toggleBtn__content {
      flex-direction: column; }
      .tui-toggleBtn--large .tui-toggleBtn__content > * + * {
        margin-top: var(--gap-1); }
  .tui-toggleBtn__content {
    display: inline-flex;
    align-items: center; }
  .tui-toggleBtn__icon {
    position: relative;
    top: 1px;
    display: flex;
    flex-shrink: 0;
    font-size: var(--font-size-15); }
  .tui-toggleBtn__text {
    padding: 0 var(--gap-1); }

.tui-toggleSet {
  display: inline-flex;
  max-width: 100%;
  padding: 1px;
  background: var(--toggle-bg-color);
  border-radius: var(--btn-radius); }
  .tui-toggleSet--disabled {
    opacity: 0.4; }
  .tui-toggleSet--select {
    width: 100%;
    background: transparent; }
  .tui-toggleSet--large {
    padding: 2px; }

:root {
  --form-toggle-color: var(--color-neutral-7);
  --form-toggle-dot-size: 1.6rem;
  --form-toggle-container-width: 4rem;
  --form-toggle-container-height: 2rem;
  --form-toggle-container-radius: 1rem;
  --form-toggle-text-offset: var(--gap-2);
  --form-toggle-dot-offset: 0.2rem;
  --form-toggle-bottom: 1.8rem;
  --form-toggle-focus-border: var(--border-width-normal);
  --form-toggle-focus-gap: 0.1rem; }

.tui-toggleSwitch {
  display: flex;
  align-items: center; }
  .tui-toggleSwitch__btn {
    /* stylelint-disable-next-line tui/at-extend-only-placeholders*/
    /* stylelint-disable-next-line tui/at-extend-only-placeholders*/
    color: var(--form-toggle-color); }
    .tui-toggleSwitch__btn:focus, .tui-toggleSwitch__btn:active:focus {
      color: var(--form-toggle-color);
      outline: none; }
    .tui-toggleSwitch__btn:hover {
      color: var(--form-toggle-color); }
    .tui-toggleSwitch__btn[disabled] {
      color: initial; }
      .tui-toggleSwitch__btn[disabled]:hover {
        color: initial; }
      .tui-toggleSwitch__btn[disabled]:hover, .tui-toggleSwitch__btn[disabled]:active:hover {
        color: initial; }
    .tui-toggleSwitch__btn-text {
      position: relative;
      /* toggle size and shape*/ }
  .tui-toggleSwitch__ui {
    position: relative;
    width: var(--form-toggle-container-width);
    margin-left: var(--form-toggle-text-offset);
    /* prettier-ignore*/
    padding: calc(var(--form-toggle-focus-gap) + var(--form-toggle-focus-border)); }
    .tui-toggleSwitch__ui--toggleOnly {
      margin-left: calc(-1 * (var(--form-toggle-focus-gap) + var(--form-toggle-focus-border)));
      /* the toggle background*/ }
    .tui-toggleSwitch__ui:before {
      display: block;
      height: var(--form-toggle-container-height);
      border-radius: var(--form-toggle-container-radius);
      transition: background-color var(--transition-button-duration) var(--transition-button-function), border-color var(--transition-button-duration) var(--transition-button-function);
      content: ''; }
      .tui-contextInvalid .tui-toggleSwitch__ui:before {
        box-shadow: 0 0 0 2px var(--form-input-border-color-invalid);
        /* the toggle dot*/ }
    .tui-toggleSwitch__ui:after {
      position: absolute;
      /* prettier-ignore*/
      top: calc(var(--form-toggle-dot-offset) + calc(var(--form-toggle-focus-gap) + var(--form-toggle-focus-border)));
      /* prettier-ignore*/
      left: calc(var(--form-toggle-dot-offset) + calc(var(--form-toggle-focus-gap) + var(--form-toggle-focus-border)));
      display: block;
      width: var(--form-toggle-dot-size);
      height: var(--form-toggle-dot-size);
      border-radius: 50%;
      box-shadow: var(--shadow-2);
      content: ''; }
    .tui-toggleSwitch__ui:hover, .tui-toggleSwitch__ui:focus {
      cursor: pointer;
      /* toggled off*/
      /* the toggle background*/ }
    .tui-toggleSwitch__ui:before {
      background-color: var(--form-toggle-off-bg-color);
      border: var(--form-input-border-size) solid;
      border-color: var(--form-toggle-border-color);
      /* the toggle dot*/ }
    .tui-toggleSwitch__ui:after {
      background-color: var(--form-toggle-dot-color); }
      .tui-toggleSwitch__ui:hover:before, .tui-toggleSwitch__ui:focus:before {
        background-color: var(--form-toggle-off-bg-color-hover-focus); }
    .tui-toggleSwitch__ui[data-disabled] {
      cursor: default; }
      .tui-toggleSwitch__ui[data-disabled]:before {
        background-color: var(--form-toggle-off-bg-color-disabled);
        border-color: var(--form-toggle-border-color-disabled);
        /* toggled off, via the button*/ }
  .tui-toggleSwitch__btn:hover ~ .tui-toggleSwitch__ui, .tui-toggleSwitch__btn:focus ~ .tui-toggleSwitch__ui {
    padding: var(--form-toggle-focus-gap);
    border: var(--form-toggle-focus-border) solid transparent;
    /* prettier-ignore*/
    border-radius: calc(calc(var(--form-toggle-container-radius) + var(--form-toggle-focus-gap)) + var(--form-toggle-focus-border)); }
    .tui-toggleSwitch__btn:hover ~ .tui-toggleSwitch__ui:after, .tui-toggleSwitch__btn:focus ~ .tui-toggleSwitch__ui:after {
      /* prettier-ignore*/
      top: calc(var(--form-toggle-dot-offset) + var(--form-toggle-focus-gap));
      /* prettier-ignore*/
      left: calc(var(--form-toggle-dot-offset) + var(--form-toggle-focus-gap)); }
  .tui-toggleSwitch__btn:focus ~ .tui-toggleSwitch__ui {
    border: var(--form-toggle-focus-border) solid var(--color-state);
    /* toggled on*/ }
  .tui-toggleSwitch__btn[aria-pressed] ~ .tui-toggleSwitch__ui {
    /* the dot*/ }
    .tui-toggleSwitch__btn[aria-pressed] ~ .tui-toggleSwitch__ui:after {
      /* prettier-ignore*/
      right: calc(var(--form-toggle-dot-offset) + calc(var(--form-toggle-focus-gap) + var(--form-toggle-focus-border)));
      left: auto;
      /* the toggle background*/ }
    .tui-toggleSwitch__btn[aria-pressed] ~ .tui-toggleSwitch__ui:before {
      background-color: var(--form-toggle-on-bg-color);
      border-color: var(--form-toggle-on-border-color); }
      .tui-toggleSwitch__btn[aria-pressed] ~ .tui-toggleSwitch__ui:hover:before, .tui-toggleSwitch__btn[aria-pressed] ~ .tui-toggleSwitch__ui:focus:before {
        background-color: var(--form-toggle-on-bg-color-hover-focus); }
    .tui-toggleSwitch__btn[aria-pressed] ~ .tui-toggleSwitch__ui[data-disabled]:before {
      background-color: var(--form-toggle-on-bg-color-disabled);
      border-color: var(--form-toggle-border-color-disabled);
      /* toggled on, via the button*/ }
  .tui-toggleSwitch__btn[aria-pressed]:hover ~ .tui-toggleSwitch__ui:after, .tui-toggleSwitch__btn[aria-pressed]:focus ~ .tui-toggleSwitch__ui:after {
    /* prettier-ignore*/
    right: calc(var(--form-toggle-dot-offset) + var(--form-toggle-focus-gap));
    /* toggle on the left, text on the right*/ }
.tui-toggleSwitch--left .tui-toggleSwitch__ui {
  order: 1;
  margin-right: var(--form-toggle-text-offset);
  margin-left: 0; }
.tui-toggleSwitch--left .tui-toggleSwitch__btn {
  order: 2; }
.tui-toggleSwitch--left .tui-toggleSwitch__icon {
  order: 3; }

.tui-tree {
  list-style: none; }

.tui-treeNode {
  position: relative;
  width: 100%; }
  .tui-treeNode--top {
    padding: var(--gap-1) 0; }
  .tui-treeNode:not(.tui-treeNode--top) {
    padding-left: var(--gap-6); }
    .tui-treeNode--separator:after {
      position: absolute;
      bottom: 0;
      left: 0;
      width: 100%;
      border-bottom: var(--border-width-thin) solid var(--color-neutral-5);
      content: ''; }
  .tui-treeNode__trigger {
    display: flex;
    align-items: center;
    padding: 0 var(--gap-1); }
  .tui-treeNode__bar {
    display: flex;
    width: 100%;
    min-width: 0; }
    .tui-treeNode__bar-btn {
      flex-grow: 1;
      line-height: 1.2;
      text-align: left;
      -ms-word-break: break-all;
      word-break: break-word; }
    .tui-treeNode__bar-label, .tui-treeNode__bar-link {
      flex-grow: 1;
      margin: 0;
      -ms-word-break: break-all;
      word-break: break-word;
      -webkit-hyphens: none;
      hyphens: none; }
    .tui-treeNode__bar-label {
      color: var(--color-text);
      font-weight: normal;
      font-size: var(--font-body-size);
      line-height: var(--font-body-line-height); }
      .tui-treeNode__bar-link:focus, .tui-treeNode__bar-link:hover {
        text-decoration: none; }
    .tui-treeNode__bar-side {
      flex-shrink: 0;
      margin-left: auto; }
  .tui-treeNode__child {
    margin: 0;
    padding-top: var(--gap-2);
    list-style: none; }
  .tui-treeNode--noPadding {
    padding: 0; }
    .tui-treeNode--noPadding .tui-treeNode__child {
      padding: 0; }

.tui-formField {
  flex-grow: 1;
  width: 100%;
  min-width: 0; }
  .tui-formField--charLength-2 {
    max-width: calc(2 * var(--form-input-font-size)); }
  .tui-formField--charLength-3 {
    max-width: calc(3 * var(--form-input-font-size)); }
  .tui-formField--charLength-4 {
    max-width: calc(4 * var(--form-input-font-size)); }
  .tui-formField--charLength-5 {
    max-width: calc(5 * var(--form-input-font-size)); }
  .tui-formField--charLength-10 {
    max-width: calc(10 * var(--form-input-font-size)); }
  .tui-formField--charLength-15 {
    max-width: calc(15 * var(--form-input-font-size)); }
  .tui-formField--charLength-20 {
    max-width: calc(20 * var(--form-input-font-size)); }
  .tui-formField--charLength-25 {
    max-width: calc(25 * var(--form-input-font-size)); }
  .tui-formField--charLength-30 {
    max-width: calc(30 * var(--form-input-font-size)); }
  .tui-formField--charLength-50 {
    max-width: calc(50 * var(--form-input-font-size)); }
  .tui-formField--charLength-75 {
    max-width: calc(75 * var(--form-input-font-size)); }
  .tui-formField--charLength-100 {
    max-width: calc(100 * var(--form-input-font-size));
    /* Set a custom size for inputs in a limited form*/ }
  .tui-form--inputWidth-limited .tui-formField:not(.tui-input--customSize) {
    max-width: var(--form-input-limited-width); }
    .tui-form--inputWidth-limited .tui-inputSet--split .tui-formField:not(.tui-input--customSize) {
      max-width: none; }

.tui-themeSettings__content {
  margin-top: var(--gap-8); }
  .tui-themeSettings__forms > * + * {
    margin-top: var(--gap-8); }

.tui-themeTenants__content {
  margin-top: var(--gap-8); }
.tui-themeTenants__section + .tui-themeTenants__section {
  margin-top: var(--gap-12); }
  .tui-themeTenants__section > * + * {
    margin-top: var(--gap-4); }
/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInZhci93d3cvaHRtbC9zb25pY2xlYXJuL2NsaWVudC9jb21wb25lbnQvdHVpL2J1aWxkL2dsb2JhbF9zdHlsZXMvdmFyaWFibGVzL3R1aV9zaXplcy5kZXZlbG9wbWVudC5zY3NzIiwidmFyL3d3dy9odG1sL3NvbmljbGVhcm4vY2xpZW50L2NvbXBvbmVudC90dWkvYnVpbGQvZ2xvYmFsX3N0eWxlcy92YXJpYWJsZXMvdHVpX3NwYWNpbmcuZGV2ZWxvcG1lbnQuc2NzcyIsInZhci93d3cvaHRtbC9zb25pY2xlYXJuL2NsaWVudC9jb21wb25lbnQvdHVpL2J1aWxkL2dsb2JhbF9zdHlsZXMvdmFyaWFibGVzL3R1aV9ib3JkZXJzLmRldmVsb3BtZW50LnNjc3MiLCJ2YXIvd3d3L2h0bWwvc29uaWNsZWFybi9jbGllbnQvY29tcG9uZW50L3R1aS9idWlsZC9nbG9iYWxfc3R5bGVzL3ZhcmlhYmxlcy90dWlfYnV0dG9ucy5kZXZlbG9wbWVudC5zY3NzIiwidmFyL3d3dy9odG1sL3NvbmljbGVhcm4vY2xpZW50L2NvbXBvbmVudC90dWkvYnVpbGQvZ2xvYmFsX3N0eWxlcy92YXJpYWJsZXMvdHVpX2NvbG9ycy5kZXZlbG9wbWVudC5zY3NzIiwidmFyL3d3dy9odG1sL3NvbmljbGVhcm4vY2xpZW50L2NvbXBvbmVudC90dWkvYnVpbGQvZ2xvYmFsX3N0eWxlcy92YXJpYWJsZXMvY29sb3JzL2Fycm93LmRldmVsb3BtZW50LnNjc3MiLCJ2YXIvd3d3L2h0bWwvc29uaWNsZWFybi9jbGllbnQvY29tcG9uZW50L3R1aS9idWlsZC9nbG9iYWxfc3R5bGVzL3ZhcmlhYmxlcy9jb2xvcnMvZm9ybXMuZGV2ZWxvcG1lbnQuc2NzcyIsInZhci93d3cvaHRtbC9zb25pY2xlYXJuL2NsaWVudC9jb21wb25lbnQvdHVpL2J1aWxkL2dsb2JhbF9zdHlsZXMvdmFyaWFibGVzL2NvbG9ycy9hdmF0YXIuZGV2ZWxvcG1lbnQuc2NzcyIsInZhci93d3cvaHRtbC9zb25pY2xlYXJuL2NsaWVudC9jb21wb25lbnQvdHVpL2J1aWxkL2dsb2JhbF9zdHlsZXMvdmFyaWFibGVzL2NvbG9ycy9kcm9wZG93bi5kZXZlbG9wbWVudC5zY3NzIiwidmFyL3d3dy9odG1sL3NvbmljbGVhcm4vY2xpZW50L2NvbXBvbmVudC90dWkvYnVpbGQvZ2xvYmFsX3N0eWxlcy92YXJpYWJsZXMvY29sb3JzL2RhdGF0YWJsZS5kZXZlbG9wbWVudC5zY3NzIiwidmFyL3d3dy9odG1sL3NvbmljbGVhcm4vY2xpZW50L2NvbXBvbmVudC90dWkvYnVpbGQvZ2xvYmFsX3N0eWxlcy92YXJpYWJsZXMvY29sb3JzL3RhYnMuZGV2ZWxvcG1lbnQuc2NzcyIsInZhci93d3cvaHRtbC9zb25pY2xlYXJuL2NsaWVudC9jb21wb25lbnQvdHVpL2J1aWxkL2dsb2JhbF9zdHlsZXMvdmFyaWFibGVzL2NvbG9ycy9jYXJkLmRldmVsb3BtZW50LnNjc3MiLCJ2YXIvd3d3L2h0bWwvc29uaWNsZWFybi9jbGllbnQvY29tcG9uZW50L3R1aS9idWlsZC9nbG9iYWxfc3R5bGVzL3ZhcmlhYmxlcy9jb2xvcnMvY2hhcnRzLmRldmVsb3BtZW50LnNjc3MiLCJ2YXIvd3d3L2h0bWwvc29uaWNsZWFybi9jbGllbnQvY29tcG9uZW50L3R1aS9idWlsZC9nbG9iYWxfc3R5bGVzL3ZhcmlhYmxlcy9jb2xvcnMvZmlsdGVycy5kZXZlbG9wbWVudC5zY3NzIiwidmFyL3d3dy9odG1sL3NvbmljbGVhcm4vY2xpZW50L2NvbXBvbmVudC90dWkvYnVpbGQvZ2xvYmFsX3N0eWxlcy92YXJpYWJsZXMvY29sb3JzL3RhZ3MuZGV2ZWxvcG1lbnQuc2NzcyIsInZhci93d3cvaHRtbC9zb25pY2xlYXJuL2NsaWVudC9jb21wb25lbnQvdHVpL2J1aWxkL2dsb2JhbF9zdHlsZXMvdmFyaWFibGVzL2NvbG9ycy9wcm9ncmVzc2Jhci5kZXZlbG9wbWVudC5zY3NzIiwidmFyL3d3dy9odG1sL3NvbmljbGVhcm4vY2xpZW50L2NvbXBvbmVudC90dWkvYnVpbGQvZ2xvYmFsX3N0eWxlcy92YXJpYWJsZXMvY29sb3JzL2NvbGxhcHNpYmxlLmRldmVsb3BtZW50LnNjc3MiLCJ2YXIvd3d3L2h0bWwvc29uaWNsZWFybi9jbGllbnQvY29tcG9uZW50L3R1aS9idWlsZC9nbG9iYWxfc3R5bGVzL3ZhcmlhYmxlcy9jb2xvcnMvcHJvZ3Jlc3N0cmFja2VyLmRldmVsb3BtZW50LnNjc3MiLCJ2YXIvd3d3L2h0bWwvc29uaWNsZWFybi9jbGllbnQvY29tcG9uZW50L3R1aS9idWlsZC9nbG9iYWxfc3R5bGVzL3ZhcmlhYmxlcy9jb2xvcnMvc2lkZV9wYW5lbF9uYXYuZGV2ZWxvcG1lbnQuc2NzcyIsInZhci93d3cvaHRtbC9zb25pY2xlYXJuL2NsaWVudC9jb21wb25lbnQvdHVpL2J1aWxkL2dsb2JhbF9zdHlsZXMvdmFyaWFibGVzL2NvbG9ycy90b2dnbGUuZGV2ZWxvcG1lbnQuc2NzcyIsInZhci93d3cvaHRtbC9zb25pY2xlYXJuL2NsaWVudC9jb21wb25lbnQvdHVpL2J1aWxkL2dsb2JhbF9zdHlsZXMvdmFyaWFibGVzL2NvbG9ycy9ub3RpZmljYXRpb250b2FzdC5kZXZlbG9wbWVudC5zY3NzIiwidmFyL3d3dy9odG1sL3NvbmljbGVhcm4vY2xpZW50L2NvbXBvbmVudC90dWkvYnVpbGQvZ2xvYmFsX3N0eWxlcy92YXJpYWJsZXMvdHVpX3NoYWRvd3MuZGV2ZWxvcG1lbnQuc2NzcyIsInZhci93d3cvaHRtbC9zb25pY2xlYXJuL2NsaWVudC9jb21wb25lbnQvdHVpL2J1aWxkL2dsb2JhbF9zdHlsZXMvdmFyaWFibGVzL3R1aV9zaWRlX3BhbmVsX25hdi5kZXZlbG9wbWVudC5zY3NzIiwidmFyL3d3dy9odG1sL3NvbmljbGVhcm4vY2xpZW50L2NvbXBvbmVudC90dWkvYnVpbGQvZ2xvYmFsX3N0eWxlcy92YXJpYWJsZXMvdHVpX3Byb2dyZXNzX3RyYWNrZXJfbmF2LmRldmVsb3BtZW50LnNjc3MiLCJ2YXIvd3d3L2h0bWwvc29uaWNsZWFybi9jbGllbnQvY29tcG9uZW50L3R1aS9idWlsZC9nbG9iYWxfc3R5bGVzL3ZhcmlhYmxlcy90dWlfcmFuZ2UuZGV2ZWxvcG1lbnQuc2NzcyIsInZhci93d3cvaHRtbC9zb25pY2xlYXJuL2NsaWVudC9jb21wb25lbnQvdHVpL2J1aWxkL2dsb2JhbF9zdHlsZXMvdmFyaWFibGVzL3R1aV9hbmltYXRpb25zLmRldmVsb3BtZW50LnNjc3MiLCJ2YXIvd3d3L2h0bWwvc29uaWNsZWFybi9jbGllbnQvY29tcG9uZW50L3R1aS9idWlsZC9nbG9iYWxfc3R5bGVzL3ZhcmlhYmxlcy90dWlfbW9kYWxzLmRldmVsb3BtZW50LnNjc3MiLCJ2YXIvd3d3L2h0bWwvc29uaWNsZWFybi9jbGllbnQvY29tcG9uZW50L3R1aS9idWlsZC9nbG9iYWxfc3R5bGVzL3ZhcmlhYmxlcy90dWlfZW1iZWRzLmRldmVsb3BtZW50LnNjc3MiLCJ2YXIvd3d3L2h0bWwvc29uaWNsZWFybi9jbGllbnQvY29tcG9uZW50L3R1aS9idWlsZC9nbG9iYWxfc3R5bGVzL3ZhcmlhYmxlcy90dWlfZm9ybXMuZGV2ZWxvcG1lbnQuc2NzcyIsInZhci93d3cvaHRtbC9zb25pY2xlYXJuL2NsaWVudC9jb21wb25lbnQvdHVpL2J1aWxkL2dsb2JhbF9zdHlsZXMvdmFyaWFibGVzL3R1aV9zZXBhcmF0b3JzLmRldmVsb3BtZW50LnNjc3MiLCJ2YXIvd3d3L2h0bWwvc29uaWNsZWFybi9jbGllbnQvY29tcG9uZW50L3R1aS9idWlsZC9nbG9iYWxfc3R5bGVzL3ZhcmlhYmxlcy90dWlfdGFncy5kZXZlbG9wbWVudC5zY3NzIiwidmFyL3d3dy9odG1sL3NvbmljbGVhcm4vY2xpZW50L2NvbXBvbmVudC90dWkvYnVpbGQvZ2xvYmFsX3N0eWxlcy92YXJpYWJsZXMvdHVpX3R5cG9ncmFwaHkuZGV2ZWxvcG1lbnQuc2NzcyIsInZhci93d3cvaHRtbC9zb25pY2xlYXJuL2NsaWVudC9jb21wb25lbnQvdHVpL2J1aWxkL2dsb2JhbF9zdHlsZXMvdmFyaWFibGVzL3R1aV96aW5kZXguZGV2ZWxvcG1lbnQuc2NzcyIsInZhci93d3cvaHRtbC9zb25pY2xlYXJuL2NsaWVudC9jb21wb25lbnQvdHVpL2J1aWxkL3R1aV9idW5kbGUuZGV2ZWxvcG1lbnQuc2NzcyIsInZhci93d3cvaHRtbC9zb25pY2xlYXJuL2NsaWVudC9jb21wb25lbnQvdHVpL2J1aWxkL2dsb2JhbF9zdHlsZXMvdmFyaWFibGVzL3R1aV9sYXlvdXQuZGV2ZWxvcG1lbnQuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OzswREFnQkE7QUFBQTtBQUFBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7O3VCQUFBLEVDRUE7QUFBQTtBQUFBO0FBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozt3QkFBQSxFQ0ZBO0FBQUE7QUFBQTtBQUFBOzs7Ozs7Ozs4QkFBQSxFQ0FBO0FBQUE7QUFBQTtBQUFBOzs7Ozs7Ozs7Ozs7Ozs7dUJBQUEsRUNBQTtBQUFBO0FBQUE7QUFBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7c0NBQUEsRUNBQTtBQUFBO0FBQUE7QUFBQTsrQ0FBQSxFQ0FBO0FBQUE7QUFBQTtBQUFBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7dUVBQUEsRUNBQTtBQUFBO0FBQUE7QUFBQSw4Q0FBQSxFQ0FBO0FBQUE7QUFBQTtBQUFBOzs7Ozs7Ozs7dURBQUEsRUNBQTtBQUFBO0FBQUE7QUFBQTs7Ozs7Ozs7Ozs7a0VBQUEsRUNBQTtBQUFBO0FBQUE7QUFBQTs7Ozs7Ozs7Ozs7O3VEQUFBLEVDQUE7QUFBQTtBQUFBO0FBQUEsOENBQUEsRUNBQTtBQUFBO0FBQUE7QUFBQSx1REFBQSxFQ0FBO0FBQUE7QUFBQTtBQUFBOzsyREFBQSxFQ0FBO0FBQUE7QUFBQTtBQUFBOzs7NkNBQUEsRUNBQTtBQUFBO0FBQUE7QUFBQTs7OztzREFBQSxFQ0FBO0FBQUE7QUFBQTtBQUFBOzREQUFBLEVDQUE7QUFBQTtBQUFBO0FBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O2tFQUFBLEVDQUE7QUFBQTtBQUFBO0FBQUE7Ozs7Ozs7OztvRUFBQSxFQ0FBO0FBQUE7QUFBQTtBQUFBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OzsyQ0FBQSxFQ0FBO0FBQUE7QUFBQTtBQUFBLDZDQUFBLEVDQUE7QUFBQTtBQUFBO0FBQUE7Ozs7Ozs7MERBQUEsRUNBQTtBQUFBO0FBQUE7QUFBQSx5REFBQSxFQ0FBO0FBQUE7QUFBQTtBQUFBOzs7Ozs7Ozs7OzBDQUFBLEVDQUE7QUFBQTtBQUFBO0FBQUE7Ozs7d0NBQUEsRUNLQTtBQUFBO0FBQUE7QUFBQTs7Ozs7Ozs7Ozs7cUNBQUEsRUNMQTtBQUFBO0FBQUE7QUFBQTs7Ozs7aURBQUEsRUNBQTtBQUFBO0FBQUE7QUFBQSxvQ0FBQSxFQ3dGQTtBQUFBO0FBQUE7QUFBQTs7Ozs7Ozs7Ozs7Ozs7O3VDQUFBLEVDeEZBO0FBQUE7QUFBQTtBQUFBOzs7NkJBQUEsRUNBQTtBQUFBO0FBQUE7QUFBQTs0QkFBQSxFQ0FBO0FBQUE7QUFB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O0FBQUEsZ0NBQUEsRUFJQTtBQUFBO0FBQUEscUJBQUEsRUFLRTtBQUFBO0FBQUEsdUJBQUEsRUFNQTtBQUFBO0FBQUEsK0NBQUEsRUFNQTtBQUFBO0FBQUEsc0JBQUEsRUFLRjtBQUFBO0FBQUEsbUJBQUEsRUFJQTtBQUFBO0FBQUEsbURBQUEsRUFHRTtBQUFBO0FBQUEsb0RBQUEsRUFNQTtBQUFBO0FBQUEsZ0RBQUEsRUFHRTtBQUFBO0FBQUEsb0RBQUEsRUFRRjtBQUFBO0FBQUEsNENBQUEsRUFTRTtBQUFBO0FBQUEsZ0RBQUEsRUFPSjtBQUFBO0FBQUEsbUJBQUEsRUFFRTtBQUFBO0FBQUEscUJBQUEsRUFJQTtBQUFBO0FBQUEsd0JBQUEsRUFLRjtBQUFBO0FBQUE7NkVBQUEsRUFLQTtBQUFBO0FBQUEsNENBQUEsRUFJQTtBQUFBO0FBQUE7Ozs7b0JBQUEsRUFNRTtBQUFBO0FBQUEsd0NBQUEsRUFPRjtBQUFBO0FBQUEsdUJBQUEsRUFJQTtBQUFBO0FBQUEsOEJBQUEsRUFJQTtBQUFBO0FBQUE7Ozs7OEJBQUEsRUFTQTtBQUFBO0FBQUE7O21CQUFBLEVBT0Y7QUFBQTtBQUFBO0FBQUE7MEJBQUEsRUFJRTtBQUFBO0FBQUEsb0JBQUEsRUFJQTtBQUFBO0FBQUEseUZBQUEsRUFLQTtBQUFBO0FBQUEsK0RBQUEsRUFLRTtBQUFBO0FBQUEsMEJBQUEsRUFNQTtBQUFBO0FBQUEsK0NBQUEsRUFNQTtBQUFBO0FBQUEsbUJBQUEsRUFLRjtBQUFBO0FBQUEsMERBQUEsRUFHRTtBQUFBO0FBQUEscUJBQUEsRUFJQTtBQUFBO0FBQUEsd0JBQUEsRUFJQTtBQUFBO0FBQUEscUJBQUEsRUFHQTtBQUFBO0FBQUEscUJBQUEsRUFNSjtBQUFBO0FBQUE7QUFBQTtnRUFBQSxFQUlFO0FBQUE7QUFBQSw0QkFBQSxFQUlBO0FBQUE7QUFBQSw0REFBQSxFQUlBO0FBQUE7QUFBQSwrREFBQSxFQUlBO0FBQUE7QUFBQSxvREFBQSxFQU1BO0FBQUE7QUFBQSxxREFBQSxFQUdFO0FBQUE7QUFBQSxzREFBQSxFQU1KO0FBQUE7QUFBQTtBQUFBO2lFQUFBLEVBS0E7QUFBQTtBQUFBO0FBQUE7eUJBQUEsRUFJRTtBQUFBO0FBQUE7MkNBQUEsRUFLQTtBQUFBO0FBQUEsdUJBQUEsRUFJQTtBQUFBO0FBQUE7c0NBQUEsRUFJRTtBQUFBO0FBQUE7OENBQUEsRUFNRjtBQUFBO0FBQUEsY0FBQSxFQUtFO0FBQUE7QUFBQSxrQ0FBQSxFQUlBO0FBQUE7QUFBQSw4QkFBQSxFQUlBO0FBQUE7QUFBQSxnQ0FBQSxFQU1KO0FBQUE7QUFBQTtBQUFBLGdCQUFBLEVBR0U7QUFBQTtBQUFBLHVCQUFBLEVBSUE7QUFBQTtBQUFBO3NDQUFBLEVBSUU7QUFBQTtBQUFBOzhDQUFBLEVBTUY7QUFBQTtBQUFBLDJCQUFBLEVBSUE7QUFBQTtBQUFBOzs7OzJDQUFBLEVBTUU7QUFBQTtBQUFBLDRCQUFBLEVBSUE7QUFBQTtBQUFBLHdEQUFBLEVBT0Y7QUFBQTtBQUFBO0FBQUEsMkNBQUEsRUFJQTtBQUFBO0FBQUE7ZUFBQSxFQUtBO0FBQUE7QUFBQTs7O3NDQUFBLEVBUUY7QUFBQTtBQUFBO0FBQUEsa0VBQUEsRUFJRTtBQUFBO0FBQUEsb0VBQUEsRUEyRUY7QUFBQTtBQUFBO0FBQUE7dUJBQUEsRUFwRUU7QUFBQTtBQUFBO0FBQUE7Ozs7O3FCQUFBLEVBVUE7QUFBQTtBQUFBO0FBQUEsYUFBQSxFQUlBO0FBQUE7QUFBQTtBQUFBLGdCQUFBLEVBSUE7QUFBQTtBQUFBO0FBQUE7OztvQkFBQSxFQVFBO0FBQUE7QUFBQTtBQUFBLGNBQUEsRUFJQTtBQUFBO0FBQUE7QUFBQSxlQUFBLEVBTUE7QUFBQTtBQUFBO0FBQUE7OztjQUFBLEVBT0E7QUFBQTtBQUFBO0FBQUE7O2lEQUFBLEVBTUE7QUFBQTtBQUFBO0FBQUE7OzhDQUFBLEVBTUE7QUFBQTtBQUFBO0FBQUE7O2dEQUFBLEVBTUE7QUFBQTtBQUFBO0FBQUE7OytDQUFBLEVBekJBO0FBQUE7QUFBQTtBQUFBOzs7Y0FBQSxFQU9BO0FBQUE7QUFBQTtBQUFBOzs2Q0FBQSxFQU1BO0FBQUE7QUFBQTtBQUFBOzswQ0FBQSxFQU1BO0FBQUE7QUFBQTtBQUFBOzs0Q0FBQSxFQU1BO0FBQUE7QUFBQTtBQUFBOzsyQ0FBQSxFQTdEQTtBQUFBO0FBQUE7QUFBQTs7Ozs7cUJBQUEsRUFVQTtBQUFBO0FBQUE7QUFBQSxhQUFBLEVBSUE7QUFBQTtBQUFBO0FBQUEsZ0JBQUEsRUFJQTtBQUFBO0FBQUE7QUFBQTs7O29CQUFBLEVBUUE7QUFBQTtBQUFBO0FBQUEsY0FBQSxFQUlBO0FBQUE7QUFBQTtBQUFBLGVBQUEsRUFNQTtBQUFBO0FBQUE7QUFBQTs7O2NBQUEsRUFPQTtBQUFBO0FBQUE7QUFBQTs7aURBQUEsRUFNQTtBQUFBO0FBQUE7QUFBQTs7OENBQUEsRUFNQTtBQUFBO0FBQUE7QUFBQTs7Z0RBQUEsRUFNQTtBQUFBO0FBQUE7QUFBQTs7K0NBQUEsRUF6QkE7QUFBQTtBQUFBO0FBQUE7OztjQUFBLEVBT0E7QUFBQTtBQUFBO0FBQUE7OzZDQUFBLEVBTUE7QUFBQTtBQUFBO0FBQUE7OzBDQUFBLEVBTUE7QUFBQTtBQUFBO0FBQUE7OzRDQUFBLEVBTUE7QUFBQTtBQUFBO0FBQUE7OzJDQUFBLEVBNENGO0FBQUE7QUFBQTtBQUFBOzs7Ozs7O3FDQUFBLEVBV0E7QUFBQTtBQUFBO0FBQUE7OztxQkFBQSxFQU1FO0FBQUE7QUFBQTs7Ozs7OENBQUEsRUFRRjtBQUFBO0FBQUE7QUFBQSx5QkFBQSxFQUdFO0FBQUE7QUFBQTs4REFBQSxFQUtBO0FBQUE7QUFBQTs7O2lCQUFBLEVBTUU7QUFBQTtBQUFBOzZDQUFBLEVBS0E7QUFBQTtBQUFBOzs7OzJCQUFBLEVBU0Y7QUFBQTtBQUFBO3dCQUFBLEVBSUU7QUFBQTtBQUFBOzt5QkFBQSxFQU1BO0FBQUE7QUFBQTs7OztrQkFBQSxFQVNBO0FBQUE7QUFBQTs2Q0FBQSxFQU1BO0FBQUE7QUFBQTs4Q0FBQSxFQVNGO0FBQUE7QUFBQTtBQUFBLG1CQUFBLEVBSUE7QUFBQTtBQUFBOzs7MEJBQUEsRUFPQTtBQUFBO0FBQUE7OztxQkFBQSxFQU1FO0FBQUE7QUFBQTsrQkFBQSxFQUlFO0FBQUE7QUFBQSx3QkFBQSxFQUlBO0FBQUE7QUFBQSxtREFBQSxFQVFKO0FBQUE7QUFBQTtBQUFBLDhCQUFBLEVBSUE7QUFBQTtBQUFBOzs7Ozt1QkFBQSxFQVdBO0FBQUE7QUFBQTtBQUFBOzs7Ozs7Ozs7Ozt3QkFBQSxFQU1BO0FBQUE7QUFBQTtBQUFBOzt1QkFBQSxFQUtFO0FBQUE7QUFBQTt3REFBQSxFQUtBO0FBQUE7QUFBQTt5REFBQSxFQU1KO0FBQUE7QUFBQTtBQUFBLDJDQUFBLEVBS0U7QUFBQTtBQUFBO0FBQUE7Ozs7Ozs7Ozs7OEJBQUEsRUFjQTtBQUFBO0FBQUEsYUFBQSxFQUlBO0FBQUE7QUFBQTtrQkFBQSxFQUtBO0FBQUE7QUFBQSxlQUFBLEVBSUE7QUFBQTtBQUFBO3lCQUFBLEVBTUU7QUFBQTtBQUFBOzRGQUFBLEVBSUE7QUFBQTtBQUFBOzhGQUFBLEVBSUE7QUFBQTtBQUFBO2lGQUFBLEVBYUE7QUFBQTtBQUFBLGVBQUEsRUFJQTtBQUFBO0FBQUE7c0JBQUEsRUFNRjtBQUFBO0FBQUEsc0JBQUEsRUFFRTtBQUFBO0FBQUEseUJBQUE7OzZCQU9KO0FBQUE7QUFBQTs7OzttQkFBQSxFQU1FO0FBQUE7QUFBQTtxQkFBQTs7OEJBVUY7QUFBQTtBQUFBOzs7Ozs7OzBCQUFBLEVBT0U7QUFBQTtBQUFBOzs7ZUFBQSxFQU9BO0FBQUE7QUFBQTs7O2VBQUEsRUFTQTtBQUFBO0FBQUE7Ozt5QkFBQSxFQU9BO0FBQUE7QUFBQTs7d0JBQUEsRUFRQTtBQUFBO0FBQUEseUJBQUEsRUFJQTtBQUFBO0FBQUEsZUFBQSxFQU1BO0FBQUE7QUFBQTtBQUFBO29CQUFBLEVBS0E7QUFBQTtBQUFBO3lCQUFBLEVBSUU7QUFBQTtBQUFBLCtCQUFBLEVBTUE7QUFBQTtBQUFBLCtFQUFBLEVBT0o7QUFBQTtBQUFBO0FBQUE7Ozs7Ozs7Ozs7OztrQkFBQSxFQVlFO0FBQUE7QUFBQTs7a0JBQUEsRUFNQTtBQUFBO0FBQUE7OzBEQUFBLEVBTUE7QUFBQTtBQUFBOzs7eUJBQUEsRUFPQTtBQUFBO0FBQUE7O3dCQUFBLEVBUUE7QUFBQTtBQUFBLG1FQUFBLEVBSUE7QUFBQTtBQUFBLHlCQUFBLEVBSUE7QUFBQTtBQUFBLGVBQUEsRUFJQTtBQUFBO0FBQUE7MENBQUEsRUFJRTtBQUFBO0FBQUE7NENBQUEsRUFPQTtBQUFBO0FBQUEsNENBQUEsRUFNSjtBQUFBO0FBQUE7QUFBQTs7Ozs7OzswREFBQSxFQVVFO0FBQUE7QUFBQTs7Ozt5QkFBQSxFQVNBO0FBQUE7QUFBQTt5QkFBQSxFQUtBO0FBQUE7QUFBQSxrQ0FBQSxFQUtGO0FBQUE7QUFBQTtBQUFBOzs7OytFQUFBLEVBT0U7QUFBQTtBQUFBLGlCQUFBLEVBSUE7QUFBQTtBQUFBOzs2QkFBQSxFQU9GO0FBQUE7QUFBQTtBQUFBOzs7O21CQUFBLEVBT0U7QUFBQTtBQUFBO2dCQUFBLEVBS0E7QUFBQTtBQUFBOzs7Ozs7Y0FBQSxFQVlBO0FBQUE7QUFBQTtBQUFBOzt3QkFBQSxFQUtFO0FBQUE7QUFBQSwwQkFBQSxFQU1GO0FBQUE7QUFBQTs7Y0FBQSxFQU1BO0FBQUE7QUFBQTtzQkFBQSxFaENyb0VBO0FBQUE7QUFBQSw4QkFBQSxFZ0Myb0VBO0FBQUE7QUFBQSwyQkFBQSxFQUlBO0FBQUE7QUFBQTs7dURBQUEsRUFJQTtBQUFBO0FBQUEsZ0NBQUEsRUFJQTtBQUFBO0FBQUEsd0JBQUEsRUFJQTtBQUFBO0FBQUE7Ozs7O3FCQUFBLEVBVUY7QUFBQTtBQUFBO0FBQUE7O3FCQUFBLEVBS0U7QUFBQTtBQUFBLGtCQUFBLEVBSUE7QUFBQTtBQUFBLGdDQUFBLEVBSUE7QUFBQTtBQUFBLHFCQUFBLEVBSUE7QUFBQTtBQUFBLDBCQUFBLEVBR0U7QUFBQTtBQUFBLDRCQUFBLEVBTUY7QUFBQTtBQUFBOzs7O3VCQUFBLEVBVUE7QUFBQTtBQUFBO0FBQUE7b0JBQUEsRUFNRjtBQUFBO0FBQUE7QUFBQTs7Ozs7Ozs7cUJBQUEsRUFXRTtBQUFBO0FBQUE7Z0NBQUEsRUFLQTtBQUFBO0FBQUE7Z0RBQUEsRUFJQTtBQUFBO0FBQUE7O3FCQUFBLEVBTUE7QUFBQTtBQUFBOzs7Ozs7d0JBQUEsRUFTRTtBQUFBO0FBQUEscUNBQUEsRUFLRjtBQUFBO0FBQUEsa0JBQUEsRUFFRTtBQUFBO0FBQUE7O29CQUFBLEVBVUE7QUFBQTtBQUFBOzs7OEJBQUEsRUFPQTtBQUFBO0FBQUEscUJBQUEsRUFJQTtBQUFBO0FBQUE7O2tCQUFBLEVBT0Y7QUFBQTtBQUFBOzs7a0NBQUEsRUFPQTtBQUFBO0FBQUEsb0JBQUEsRUFJQTtBQUFBO0FBQUE7K0JBQUEsRUFLQTtBQUFBO0FBQUE7Ozs7O3dDQUFBLEVBUUU7QUFBQTtBQUFBO2tEQUFBLEVBT0Y7QUFBQTtBQUFBO0FBQUEsb0JBQUEsRUFFRTtBQUFBO0FBQUEsNkJBQUEsRUFNSjtBQUFBO0FBQUE7QUFBQTt5QkFBQSxFQUlFO0FBQUE7QUFBQTs4RUFBQSxFQUtBO0FBQUE7QUFBQTtpRkFBQSxFQUtBO0FBQUE7QUFBQTs7Ozs7Ozs7Ozs7MEJBQUEsRUFJQTtBQUFBO0FBQUE7NEJBQUEsRUFJRTtBQUFBO0FBQUEsNkJBQUEsRUFLRjtBQUFBO0FBQUE7aUJBQUEsRUFLRTtBQUFBO0FBQUE7cUJBQUEsRUFLRTtBQUFBO0FBQUE7a0NBQUEsRUFLQTtBQUFBO0FBQUEsa0NBQUEsRUFJQTtBQUFBO0FBQUE7OzBCQUFBLEVBS0U7QUFBQTtBQUFBOzswREFBQSxFQUlBO0FBQUE7QUFBQTswQkFBQSxFQUtBO0FBQUE7QUFBQSw0QkFBQSxFQU1KO0FBQUE7QUFBQSxrQ0FBQSxFQUdFO0FBQUE7QUFBQSwyRUFBQSxFQUlBO0FBQUE7QUFBQSxtQ0FBQSxFQUtGO0FBQUE7QUFBQSw2QkFBQSxFQUtGO0FBQUE7QUFBQSw4QkFBQSxFQUdFO0FBQUE7QUFBQTs7bUNBQUEsRUFRSjtBQUFBO0FBQUE7QUFBQTt5QkFBQSxFQUlFO0FBQUE7QUFBQTsyQkFBQSxFQUlFO0FBQUE7QUFBQSwwQkFBQSxFQUlBO0FBQUE7QUFBQTtnRkFBQSxFQUtBO0FBQUE7QUFBQTttRkFBQSxFQU1BO0FBQUE7QUFBQTttQkFBQSxFQUtBO0FBQUE7QUFBQTs7K0JBQUEsRUFNQTtBQUFBO0FBQUE7Ozs7OEJBQUEsRUFRQTtBQUFBO0FBQUE7d0JBQUEsRUFLQTtBQUFBO0FBQUE7Ozs7O3VCQUFBLEVBV0o7QUFBQTtBQUFBO0FBQUE7c0JBQUEsRUFJRTtBQUFBO0FBQUE7OztzREFBQSxFQU9BO0FBQUE7QUFBQTs7OztpQ0FBQSxFQU9FO0FBQUE7QUFBQTs7OztrQkFBQSxFQVFBO0FBQUE7QUFBQTs7MkNBQUEsRUFRSjtBQUFBO0FBQUE7QUFBQSxpQkFBQSxFQUdFO0FBQUE7QUFBQTs7OzsrQkFBQSxFQU1BO0FBQUE7QUFBQTs7MkVBQUEsRUFNQTtBQUFBO0FBQUE7Ozs7Ozs7Ozs7OzBCQUFBLEVBS0E7QUFBQTtBQUFBO3NCQUFBLEVBT0E7QUFBQTtBQUFBO0FBQUEsMkJBQUEsRUFJQTtBQUFBO0FBQUE7O2tEQUFBLEVBTUY7QUFBQTtBQUFBO0FBQUE7O29CQUFBLEVBS0U7QUFBQTtBQUFBOzs7O3dCQUFBLEVBU0Y7QUFBQTtBQUFBO0FBR007QUFBQTs7c0JBQUEsRUFPRTtBQUFBO0FBQUE7OztpQkFBQSxFRm40RU47QUFBQTtBQUFBOzBCQUFBLEVBQUEsRUU2NEVBO0FBQUE7QUFBQTtBQUFBLDJCQUFBLEVBSUE7QUFBQTtBQUFBLFlBQUEsRUFJSTtBQUFBO0FBQUEsNkJBQUEsRUFLRjtBQUFBO0FBQUEsOEJBQUEsRUFNSjtBQUFBO0FBQUE7QUFBQTs7O3NCQUFBLEVBTUU7QUFBQTtBQUFBLGlCQUFBLEVBSUE7QUFBQTtBQUFBLHFDQUFBLEVBSUE7QUFBQTtBQUFBOzs7O3dCQUFBLEVBT0U7QUFBQTtBQUFBLCtCQUFBLEVBSUE7QUFBQTtBQUFBOzs7Ozs2Q0FBQSxFQVFFO0FBQUE7QUFBQSx1QkFBQSxFQUtGO0FBQUE7QUFBQTs7bUJBQUEsRUFPRjtBQUFBO0FBQUEsbURBQUEsRUFFRTtBQUFBO0FBQUEsb0JBQUEsRUFLRjtBQUFBO0FBQUEsaURBQUEsRUFJQTtBQUFBO0FBQUE7eUJBQUEsRUFJRTtBQUFBO0FBQUEsNkJBQUEsRUFLRjtBQUFBO0FBQUE7OztxQkFBQSxFQVFGO0FBQUE7QUFBQTtBQUFBOzs7c0JBQUEsRUFNRTtBQUFBO0FBQUEscUNBQUEsRUFJQTtBQUFBO0FBQUE7cUJBQUEsRUFLQTtBQUFBO0FBQUE7eUJBQUEsRUFJRTtBQUFBO0FBQUEsK0JBQUEsRUFJQTtBQUFBO0FBQUE7K0JBQUEsRUFNRjtBQUFBO0FBQUE7Ozs7cUJBQUEsRUFRQTtBQUFBO0FBQUEsdUJBQUEsRUFLRjtBQUFBO0FBQUE7QUFBQTs7O2lDQUFBLEVBT0E7QUFBQTtBQUFBO0FBQUE7O29EQUFBLEVBS0U7QUFBQTtBQUFBLDREQUFBLEVBSUE7QUFBQTtBQUFBO2VBQUEsRUFLQTtBQUFBO0FBQUE7Ozs7O21CQUFBLEVBUUU7QUFBQTtBQUFBLGdFQUFBLEVBSUE7QUFBQTtBQUFBLDhDQUFBLEVBRUU7QUFBQTtBQUFBLHNEQUFBLEVBS0Y7QUFBQTtBQUFBOzs7Ozs7Ozs7Ozs7MkJBQUEsRUFtQkU7QUFBQTtBQUFBO2dEQUFBLEVBS0E7QUFBQTtBQUFBO3lFQUFBLEVBT0o7QUFBQTtBQUFBLGlEQUFBLEVBSUE7QUFBQTtBQUFBOzs7K0NBQUEsRUFNRTtBQUFBO0FBQUE7OzZFQUFBLEVBT0Y7QUFBQTtBQUFBOzs7cUJBQUEsRUFRQTtBQUFBO0FBQUE7Ozs7Ozs7Ozs7Ozs7Ozt5QkFBQSxFQW1CRTtBQUFBO0FBQUE7OzsyREFBQSxFQVFGO0FBQUE7QUFBQSw0REFBQSxFQUtBO0FBQUE7QUFBQTsyREFBQSxFQUtBO0FBQUE7QUFBQSxlQUFBLEVBS0Y7QUFBQTtBQUFBO0FBRUk7QUFBQTs7NEJBQUEsRUFVRTtBQUFBO0FBQUE7a0RBQUEsRUFBQSxFQVFOO0FBQUE7QUFBQTtBQUFBO2dCQUFBLEVBS0U7QUFBQTtBQUFBO2VBQUEsRUFLQTtBQUFBO0FBQUE7Ozs7OztvQkFBQSxFQVNFO0FBQUE7QUFBQTtxREFBQSxFQUtBO0FBQUE7QUFBQSxtREFBQSxFQU1GO0FBQUE7QUFBQTs7dUJBQUEsRUFNQTtBQUFBO0FBQUE7c0RBQUEsRUFJRTtBQUFBO0FBQUEsMEJBQUEsRUFJQTtBQUFBO0FBQUE7cURBQUEsRUFJRTtBQUFBO0FBQUE7NEJBQUEsRUFNRjtBQUFBO0FBQUE7cURBQUEsRUFLRTtBQUFBO0FBQUE7NEJBQUEsRUFPSjtBQUFBO0FBQUE7Z0RBQUEsRUFJQTtBQUFBO0FBQUE7Z0RBQUEsRUFHRTtBQUFBO0FBQUE7MEJBQUEsRUFPSjtBQUFBO0FBQUE7QUFBQTs7Z0RBQUEsRUFNQTtBQUFBO0FBQUE7QUFBQTs7Z0RBQUEsRWhDNTdGRTtBQUFBO0FBQUEscURBQUEsRWdDbzhGRjtBQUFBO0FBQUE7QUFDRTtBQUFBOzs7OzttQkFBQSxFQVFFO0FBQUE7QUFBQTt5REFBQSxFQUFBLEVBT0o7QUFBQTtBQUFBO0FBQUE7Ozs7eUNBQUEsRUFPRTtBQUFBO0FBQUE7O3FEQUFBLEVBTUU7QUFBQTtBQUFBO3lDQUFBLEVBS0E7QUFBQTtBQUFBO3VDQUFBLEVBS0E7QUFBQTtBQUFBO3VDQUFBLEVBT0o7QUFBQTtBQUFBO0FBQUE7O2dFQUFBLEVBS0U7QUFBQTtBQUFBOzs7Ozs7OzJDQUFBLEVBU0E7QUFBQTtBQUFBOzs7aUJBQUEsRUFNRTtBQUFBO0FBQUE7aUJBQUEsRUFRQTtBQUFBO0FBQUE7Ozs7c0RBQUEsRUFRSjtBQUFBO0FBQUE7QUFBQTs7ZUFBQSxFQU1BO0FBQUE7QUFBQTtBQUFBOzs7WUFBQSxFQU1FO0FBQUE7QUFBQTs7Ozs7OztpQkFBQSxFQVdBO0FBQUE7QUFBQTs7Ozs7Ozs7Ozs7MEJBQUEsRUFLRjtBQUFBO0FBQUE7QUFBQTs7O1lBQUEsRUFNRTtBQUFBO0FBQUEsNkJBQUEsRWhDeGpHQTtBQUFBO0FBQUE7QUFBQSwyQkFBQSxFZ0Npa0dGO0FBQUE7QUFBQTtBQUFBO29CQUFBLEVBSUU7QUFBQTtBQUFBOzs7OzhCQUFBLEVBUUE7QUFBQTtBQUFBO3VCQUFBLEVBSUU7QUFBQTtBQUFBLHFCQUFBLEVoQ2psR0Y7QUFBQTtBQUFBLGlDQUFBLEVnQ3dsR0E7QUFBQTtBQUFBLG9CQUFBLEVBUUE7QUFBQTtBQUFBO0FBQUEsYUFBQSxFQU9BO0FBQUE7QUFBQTtBQUFBLDJCQUFBLEVBTUE7QUFBQTtBQUFBO0FBQUEsZ0JBQUEsRUFLRjtBQUFBO0FBQUE7QUFBQTs7Ozt5Q0FBQSxFQzVvR0U7QUFBQTtBQUFBOzs7c0JBQUEsRUFNRTtBQUFBO0FBQUE7bUJBQUEsRUFPQTtBQUFBO0FBQUE7Ozs7Ozs7MENBQUEsRUR3b0dGO0FBQUE7QUFBQSxzSEFBQSxFQUlBO0FBQUE7QUFBQSxzSEFBQSxFQUtGO0FBQUE7QUFBQTtBQUFBOzs7b0RBQUEsRUFLQTtBQUFBO0FBQUE7QUFBQTs7O2tEQUFBLEVoQ3pvR0U7QUFBQTtBQUFBO0FBQUEsMkJBQUEsRUFBQTtBQUFBO0FBQUEsNkJBQUEsRUFBQTtBQUFBO0FBQUEsMkJBQUEsRUFBQTtBQUFBO0FBQUEsMkJBQUEsRWdDOHBHRjtBQUFBO0FBQUE7QUFBQSx3QkFBQSxFQUdFO0FBQUE7QUFBQTs4QkFBQSxFQUtBO0FBQUE7QUFBQTs7a0JBQUEsRUFPRjtBQUFBO0FBQUE7QUFBQTs7O3lDQUFBLEVBTUU7QUFBQTtBQUFBOzs7Ozs7cURBQUEsRUFTQTtBQUFBO0FBQUEsc0JBQUEsRUFHQTtBQUFBO0FBQUE7O2lEQUFBLEVBS0U7QUFBQTtBQUFBOzs7aURBQUEsRUFPQTtBQUFBO0FBQUE7bURBQUEsRUFNQTtBQUFBO0FBQUEsc0JBQUEsRUFJRjtBQUFBO0FBQUEsMEJBQUEsRUFLRjtBQUFBO0FBQUE7QUFBQTs7Ozs7Ozs7Ozs7O2lEQUFBLEVBZUU7QUFBQTtBQUFBOztxQkFBQSxFTC90R0E7QUFBQTtBQUFBLHVEQUFBLEVBQUE7QUFBQTtBQUFBLHVEQUFBLEVBQUE7QUFBQTtBQUFBLHVEQUFBLEVBQUE7QUFBQTtBQUFBLHVEQUFBLEVBQUE7QUFBQTtBQUFBLHdEQUFBLEVBQUE7QUFBQTtBQUFBLHdEQUFBLEVBQUE7QUFBQTtBQUFBLHdEQUFBLEVBQUE7QUFBQTtBQUFBLHdEQUFBLEVBQUE7QUFBQTtBQUFBLHdEQUFBLEVBQUE7QUFBQTtBQUFBLHdEQUFBLEVBQUE7QUFBQTtBQUFBLHdEQUFBLEVBQUE7QUFBQTtBQUFBO3lEQUFBLEVBUUE7QUFBQTtBQUFBLCtDQUFBLEVBSUU7QUFBQTtBQUFBLHNCQUFBLEVLMnRHRjtBQUFBO0FBQUEsb0RBQUEsRUFJQTtBQUFBO0FBQUE7aURBQUEsRUFLQTtBQUFBO0FBQUE7Ozs4Q0FBQSxFQU9BO0FBQUE7QUFBQTs7Ozs7Z0RBQUEsRUFRRTtBQUFBO0FBQUE7Ozt5REFBQSxFQVFGO0FBQUE7QUFBQSwrQkFBQSxFQUlBO0FBQUE7QUFBQSxnQ0FBQSxFQUlBO0FBQUE7QUFBQTs7aURBQUEsRUFLRTtBQUFBO0FBQUEsc0RBQUEsRUFLRjtBQUFBO0FBQUE7OzBEQUFBLEVBS0U7QUFBQTtBQUFBLG1EQUFBLEVBS0Y7QUFBQTtBQUFBOzs7O3FCQUFBLEVBZUY7QUFBQTtBQUFBO0FBQUEscUJBQUEsRUxsekdFO0FBQUE7QUFBQSxxREFBQSxFQUFBO0FBQUE7QUFBQSxxREFBQSxFQUFBO0FBQUE7QUFBQSxxREFBQSxFQUFBO0FBQUE7QUFBQSxxREFBQSxFQUFBO0FBQUE7QUFBQSxzREFBQSxFQUFBO0FBQUE7QUFBQSxzREFBQSxFQUFBO0FBQUE7QUFBQSxzREFBQSxFQUFBO0FBQUE7QUFBQSxzREFBQSxFQUFBO0FBQUE7QUFBQSxzREFBQSxFQUFBO0FBQUE7QUFBQSxzREFBQSxFQUFBO0FBQUE7QUFBQSxzREFBQSxFQUFBO0FBQUE7QUFBQTt1REFBQSxFQVFBO0FBQUE7QUFBQSwrQ0FBQSxFQUlFO0FBQUE7QUFBQTtpREFBQSxFSzZ5R0Y7QUFBQTtBQUFBOztlQUFBLEVBS0U7QUFBQTtBQUFBOzt1Q0FBQSxFQU9GO0FBQUE7QUFBQTs7Ozs7Ozs4Q0FBQSxFQVVFO0FBQUE7QUFBQSwwQkFBQSxFQUtGO0FBQUE7QUFBQTs7MEJBQUEsRUFTRjtBQUFBO0FBQUE7QUFBQTs7OztlQUFBLEVMNzFHRTtBQUFBO0FBQUEscURBQUEsRUFBQTtBQUFBO0FBQUEscURBQUEsRUFBQTtBQUFBO0FBQUEscURBQUEsRUFBQTtBQUFBO0FBQUEscURBQUEsRUFBQTtBQUFBO0FBQUEsc0RBQUEsRUFBQTtBQUFBO0FBQUEsc0RBQUEsRUFBQTtBQUFBO0FBQUEsc0RBQUEsRUFBQTtBQUFBO0FBQUEsc0RBQUEsRUFBQTtBQUFBO0FBQUEsc0RBQUEsRUFBQTtBQUFBO0FBQUEsc0RBQUEsRUFBQTtBQUFBO0FBQUEsc0RBQUEsRUFBQTtBQUFBO0FBQUE7dURBQUEsRUFRQTtBQUFBO0FBQUEsK0NBQUEsRUFJRTtBQUFBO0FBQUEsc0JBQUEsRUswMUdGO0FBQUE7QUFBQTs7OzJDQUFBLEVBSUU7QUFBQTtBQUFBLGlDQUFBLEVBSUE7QUFBQTtBQUFBLGdDQUFBLEVBS0Y7QUFBQTtBQUFBLDhDQUFBLEVBS0Y7QUFBQTtBQUFBO0FBQUE7Ozs7Ozs7Ozs7O2lEQUFBLEVMeDNHRTtBQUFBO0FBQUEscURBQUEsRUFBQTtBQUFBO0FBQUEscURBQUEsRUFBQTtBQUFBO0FBQUEscURBQUEsRUFBQTtBQUFBO0FBQUEscURBQUEsRUFBQTtBQUFBO0FBQUEsc0RBQUEsRUFBQTtBQUFBO0FBQUEsc0RBQUEsRUFBQTtBQUFBO0FBQUEsc0RBQUEsRUFBQTtBQUFBO0FBQUEsc0RBQUEsRUFBQTtBQUFBO0FBQUEsc0RBQUEsRUFBQTtBQUFBO0FBQUEsc0RBQUEsRUFBQTtBQUFBO0FBQUEsc0RBQUEsRUFBQTtBQUFBO0FBQUE7dURBQUEsRUFRQTtBQUFBO0FBQUEsK0NBQUEsRUFJRTtBQUFBO0FBQUEsc0JBQUEsRUs0M0dGO0FBQUE7QUFBQTtpREFBQSxFQUtBO0FBQUE7QUFBQTs7Ozs7Z0RBQUEsRUFPRTtBQUFBO0FBQUE7Ozt5REFBQSxFQVFGO0FBQUE7QUFBQTs7MERBQUEsRUFLRTtBQUFBO0FBQUEsbURBQUEsRUFNSjtBQUFBO0FBQUE7QUFBQTs7Ozs7Ozs7O29CQUFBLEVBWUU7QUFBQTtBQUFBOzs7c0ZBQUEsRUFRQTtBQUFBO0FBQUEsb0NBQUEsRUFJQTtBQUFBO0FBQUEscUNBQUEsRUFJQTtBQUFBO0FBQUE7b0JBQUE7O1VBT0Y7QUFBQTtBQUFBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7dUJBQUEsRUFxQ0U7QUFBQTtBQUFBOztvQkFBQSxFQU1BO0FBQUE7QUFBQTs7Ozs7Ozs0QkFBQSxFQVdBO0FBQUE7QUFBQTtlQUFBLEVBTUY7QUFBQTtBQUFBO0FBQUE7Ozs7Ozs7OztlQUFBLEVBYUU7QUFBQTtBQUFBLG9EQUFBLEVBSUE7QUFBQTtBQUFBOzs7cUJBQUEsRUFPQTtBQUFBO0FBQUE7NEJBQUEsRUFHRTtBQUFBO0FBQUEsbURBQUEsRUFLRjtBQUFBO0FBQUEsNEJBQUEsRUFJQTtBQUFBO0FBQUEsOENBQUEsRUFxQkY7QUFBQTtBQUFBO0FBQUE7O2dDQUFBLEVML2pIRTtBQUFBO0FBQUEscURBQUEsRUFBQTtBQUFBO0FBQUEscURBQUEsRUFBQTtBQUFBO0FBQUEscURBQUEsRUFBQTtBQUFBO0FBQUEscURBQUEsRUFBQTtBQUFBO0FBQUEsc0RBQUEsRUFBQTtBQUFBO0FBQUEsc0RBQUEsRUFBQTtBQUFBO0FBQUEsc0RBQUEsRUFBQTtBQUFBO0FBQUEsc0RBQUEsRUFBQTtBQUFBO0FBQUEsc0RBQUEsRUFBQTtBQUFBO0FBQUEsc0RBQUEsRUFBQTtBQUFBO0FBQUEsc0RBQUEsRUFBQTtBQUFBO0FBQUE7dURBQUEsRUFRQTtBQUFBO0FBQUEsK0NBQUEsRUFJRTtBQUFBO0FBQUEsc0JBQUEsRUswakhGO0FBQUE7QUFBQSwyQkFBQSxFQUlBO0FBQUE7QUFBQTtvQkFBQSxFQUtBO0FBQUE7QUFBQSxlQUFBLEVBSUE7QUFBQTtBQUFBO3NFQUFBLEVBR0U7QUFBQTtBQUFBLGtCQUFBLEVBTUE7QUFBQTtBQUFBOzs7d0VBQUEsRUE1Q0Y7QUFBQTtBQUFBOzs7Ozs7Ozs7O3dFQUFBLEVBQUE7QUFBQTtBQUFBOzs7Ozs7Ozs7O3dFQUFBLEVBQUE7QUFBQTtBQUFBOzs7Ozs7Ozs7O3dFQUFBLEVBQUE7QUFBQTtBQUFBOzs7Ozs7Ozs7O3dFQUFBLEVBQUE7QUFBQTtBQUFBOzs7Ozs7Ozs7O3dFQUFBLEVBQUE7QUFBQTtBQUFBOzs7Ozs7Ozs7O3dFQUFBLEVBQUE7QUFBQTtBQUFBOzs7Ozs7Ozs7O3dFQUFBLEVBQUE7QUFBQTtBQUFBOzs7Ozs7Ozs7O3dFQUFBLEVBQUE7QUFBQTtBQUFBOzs7Ozs7Ozs7O3dFQUFBLEVBQUE7QUFBQTtBQUFBOzs7Ozs7Ozs7O3dFQUFBLEVBQUE7QUFBQTtBQUFBOzs7Ozs7Ozs7O3dFQUFBLEVBQUE7QUFBQTtBQUFBOzs7Ozs7Ozs7NkVBQUEsRUF3REY7QUFBQTtBQUFBO0FBQUEsZ0JBQUEsRUFJQTtBQUFBO0FBQUE7QUFBQTs2Q0FBQSxFQUtBO0FBQUE7QUFBQTtBQUFBOzs7Ozs0Q0FBQSxFQVFFO0FBQUE7QUFBQTs7OztpQkFBQSxFQVFBO0FBQUE7QUFBQSxvQkFBQSxFQUlBO0FBQUE7QUFBQTs7Ozs7Ozs7Ozs7MEJBQUEsRUFJQTtBQUFBO0FBQUE7OztrQ0FBQSxFQUtBO0FBQUE7QUFBQSxxQ0FBQSxFTDlvSEE7QUFBQTtBQUFBO0FBQUEsbURBQUEsRUFBQTtBQUFBO0FBQUEsbURBQUEsRUFBQTtBQUFBO0FBQUEsbURBQUEsRUFBQTtBQUFBO0FBQUEsbURBQUEsRUFBQTtBQUFBO0FBQUEsb0RBQUEsRUFBQTtBQUFBO0FBQUEsb0RBQUEsRUFBQTtBQUFBO0FBQUEsb0RBQUEsRUFBQTtBQUFBO0FBQUEsb0RBQUEsRUFBQTtBQUFBO0FBQUEsb0RBQUEsRUFBQTtBQUFBO0FBQUEsb0RBQUEsRUFBQTtBQUFBO0FBQUEsb0RBQUEsRUFBQTtBQUFBO0FBQUE7cURBQUEsRUFRQTtBQUFBO0FBQUEsNkNBQUEsRUFJRTtBQUFBO0FBQUEsb0JBQUEsRUswb0hGO0FBQUE7QUFBQTtpREFBQSxFQU1GO0FBQUE7QUFBQTtBQUFBOzs7Ozt1REFBQSxFQVNBO0FBQUE7QUFBQTtBQUFBO3VCQUFBLEVBSUU7QUFBQTtBQUFBO2VBQUEsRUFLQTtBQUFBO0FBQUE7Ozs7OytDQUFBLEVBUUU7QUFBQTtBQUFBOzs7Ozs7Ozs7Ozs7MkJBQUEsRUFrQkU7QUFBQTtBQUFBO3lFQUFBLEVBT0o7QUFBQTtBQUFBLGlEQUFBLEVBSUE7QUFBQTtBQUFBLGlEQUFBLEVBSUE7QUFBQTtBQUFBOztnREFBQSxFQUlFO0FBQUE7QUFBQSw0REFBQSxFQUtGO0FBQUE7QUFBQTs7K0NBQUEsRUFNRTtBQUFBO0FBQUE7NkVBQUEsRUFNRjtBQUFBO0FBQUE7OzsrQ0FBQSxFQVFFO0FBQUE7QUFBQTs2RUFBQSxFQU1GO0FBQUE7QUFBQTs7O3FCQUFBLEVBUUE7QUFBQTtBQUFBOzs7Ozs7Ozs7Ozt5QkFBQSxFQWdCQTtBQUFBO0FBQUEsNERBQUEsRUFJQTtBQUFBO0FBQUEsZUFBQSxFQUtGO0FBQUE7QUFBQTtBQUVJO0FBQUE7OzRCQUFBLEVBVUU7QUFBQTtBQUFBLGtEQUFBLEVBQUEsRUFPTjtBQUFBO0FBQUE7QUFBQSxnQkFBQSxFQUdFO0FBQUE7QUFBQSw4QkFBQSxFQUlBO0FBQUE7QUFBQTtnQkFBQSxFQUtBO0FBQUE7QUFBQTtpQkFBQSxFQU1GO0FBQUE7QUFBQTtBQUFBOzs7a0hBQUEsRUFPSTtBQUFBO0FBQUE7eUNBQUEsRUFNRjtBQUFBO0FBQUEsbUJBQUEsRUFLRjtBQUFBO0FBQUE7QUFDRTtBQUFBO29CQUFBLEVBQUEsRUFNRjtBQUFBO0FBQUE7QUFBQTs7eUNBQUEsRUFLRTtBQUFBO0FBQUE7Z0JBQUEsRUFNRjtBQUFBO0FBQUE7QUFBQTs7c0JBQUEsRUFLRTtBQUFBO0FBQUE7MkNBQUEsRUFLQTtBQUFBO0FBQUEsMkJBQUEsRUFLRjtBQUFBO0FBQUE7QUFBQTt5QkFBQSxFQUlFO0FBQUE7QUFBQTs7O2dDQUFBLEVBT0E7QUFBQTtBQUFBOzs7O2tDQUFBLEVBT0E7QUFBQTtBQUFBLHFCQUFBLEVBSUE7QUFBQTtBQUFBLHNCQUFBLEVBSUE7QUFBQTtBQUFBOzs7NkJBQUEsRUFNRTtBQUFBO0FBQUEsb0NBQUEsRUFJQTtBQUFBO0FBQUE7a0RBQUEsRUFHQTtBQUFBO0FBQUE7d0JBQUEsRUFLQTtBQUFBO0FBQUE7Ozs7OzBCQUFBLEVBR0E7QUFBQTtBQUFBOzswQkFBQSxFQUtBO0FBQUE7QUFBQTs7Ozs7MEJBQUEsRUFHQTtBQUFBO0FBQUE7Ozs7Ozs7Ozs7O2tFQUFBLEVBTUE7QUFBQTtBQUFBO2dEQUFBLEVBS0E7QUFBQTtBQUFBO3dCQUFBLEVBTUE7QUFBQTtBQUFBOzs7Ozs7OzsrQkFBQSxFQUtBO0FBQUE7QUFBQTs7Ozs7O3NCQUFBLEVBR0E7QUFBQTtBQUFBOzs7Ozs7c0JBQUEsRUFLRTtBQUFBO0FBQUEsdUNBQUEsRUFHQTtBQUFBO0FBQUEsdUNBQUEsRUFHQTtBQUFBO0FBQUEsdUNBQUEsRUFNQTtBQUFBO0FBQUEsb0JBQUEsRUFHQTtBQUFBO0FBQUE7aUJBQUEsRUFJQTtBQUFBO0FBQUEsb0JBQUEsRUFPTjtBQUFBO0FBQUE7QUFBQTs7O2VBQUEsRUFNRTtBQUFBO0FBQUEsNkJBQUEsRUFJQTtBQUFBO0FBQUE7NEJBQUEsRUFNQTtBQUFBO0FBQUEsNkJBQUEsRUFJQTtBQUFBO0FBQUEsNkJBQUEsRUFJQTtBQUFBO0FBQUEsNkJBQUEsRUFJQTtBQUFBO0FBQUEsNkJBQUEsRUFJQTtBQUFBO0FBQUEsY0FBQSxFQUlBO0FBQUE7QUFBQTs7cUJBQUEsRUFPRjtBQUFBO0FBQUE7QUFBQTs7Ozt3QkFBQSxFQU1FO0FBQUE7QUFBQTs7aUJBQUEsRUxuaElBO0FBQUE7QUFBQSx1REFBQSxFQUFBO0FBQUE7QUFBQSx1REFBQSxFQUFBO0FBQUE7QUFBQSx1REFBQSxFQUFBO0FBQUE7QUFBQSx1REFBQSxFQUFBO0FBQUE7QUFBQSx3REFBQSxFQUFBO0FBQUE7QUFBQSx3REFBQSxFQUFBO0FBQUE7QUFBQSx3REFBQSxFQUFBO0FBQUE7QUFBQSx3REFBQSxFQUFBO0FBQUE7QUFBQSx3REFBQSxFQUFBO0FBQUE7QUFBQSx3REFBQSxFQUFBO0FBQUE7QUFBQSx3REFBQSxFQUFBO0FBQUE7QUFBQTt5REFBQSxFQVFBO0FBQUE7QUFBQSxpREFBQSxFQUlFO0FBQUE7QUFBQSx3QkFBQSxFSzhnSUY7QUFBQTtBQUFBOzsrREFBQSxFQUtFO0FBQUE7QUFBQTtxREFBQSxFQUlBO0FBQUE7QUFBQSxvQkFBQSxFQUtGO0FBQUE7QUFBQSwrQkFBQSxFQUlBO0FBQUE7QUFBQTs7aUJBQUEsRUFNQTtBQUFBO0FBQUE7cUZBQUEsRUFLQTtBQUFBO0FBQUE7OztnRUFBQSxFQU1FO0FBQUE7QUFBQSxpQkFBQSxFQU1KO0FBQUE7QUFBQTtBQUFBLG1DQUFBLEVBSUE7QUFBQTtBQUFBO0FBQUE7Ozs7OztpREFBQSxFTHZrSUU7QUFBQTtBQUFBLHFEQUFBLEVBQUE7QUFBQTtBQUFBLHFEQUFBLEVBQUE7QUFBQTtBQUFBLHFEQUFBLEVBQUE7QUFBQTtBQUFBLHFEQUFBLEVBQUE7QUFBQTtBQUFBLHNEQUFBLEVBQUE7QUFBQTtBQUFBLHNEQUFBLEVBQUE7QUFBQTtBQUFBLHNEQUFBLEVBQUE7QUFBQTtBQUFBLHNEQUFBLEVBQUE7QUFBQTtBQUFBLHNEQUFBLEVBQUE7QUFBQTtBQUFBLHNEQUFBLEVBQUE7QUFBQTtBQUFBLHNEQUFBLEVBQUE7QUFBQTtBQUFBO3VEQUFBLEVBUUE7QUFBQTtBQUFBLCtDQUFBLEVBSUU7QUFBQTtBQUFBLHNCQUFBLEVLc2tJRjtBQUFBO0FBQUE7Ozs7Ozs7Ozt5QkFBQSxFQWFBO0FBQUE7QUFBQSw0REFBQSxFQUlBO0FBQUE7QUFBQSxrQkFBQSxFQUlBO0FBQUE7QUFBQSwyQ0FBQSxFQUdFO0FBQUE7QUFBQTs7c0ZBQUEsRUFPRjtBQUFBO0FBQUE7Ozs7Ozs7Ozs7OztxQkFBQSxFQWVFO0FBQUE7QUFBQSxtQkFBQSxFQUlBO0FBQUE7QUFBQTs7NERBQUEsRUFNQTtBQUFBO0FBQUE7Ozs7O2tEQUFBLEVBT0U7QUFBQTtBQUFBOzs7O2dDQUFBLEVBU0Y7QUFBQTtBQUFBOzs4Q0FBQSxFQU1BO0FBQUE7QUFBQTtzREFBQSxFQUtBO0FBQUE7QUFBQTtvQ0FBQSxFQUtBO0FBQUE7QUFBQTttREFBQSxFQU9KO0FBQUE7QUFBQTtBQUFBOzs7Ozs7Ozs7Ozs7OztlQUFBLEVManJJRTtBQUFBO0FBQUEscURBQUEsRUFBQTtBQUFBO0FBQUEscURBQUEsRUFBQTtBQUFBO0FBQUEscURBQUEsRUFBQTtBQUFBO0FBQUEscURBQUEsRUFBQTtBQUFBO0FBQUEsc0RBQUEsRUFBQTtBQUFBO0FBQUEsc0RBQUEsRUFBQTtBQUFBO0FBQUEsc0RBQUEsRUFBQTtBQUFBO0FBQUEsc0RBQUEsRUFBQTtBQUFBO0FBQUEsc0RBQUEsRUFBQTtBQUFBO0FBQUEsc0RBQUEsRUFBQTtBQUFBO0FBQUEsc0RBQUEsRUFBQTtBQUFBO0FBQUE7dURBQUEsRUFRQTtBQUFBO0FBQUEsK0NBQUEsRUFJRTtBQUFBO0FBQUEsc0JBQUEsRUt3cklGO0FBQUE7QUFBQSxvREFBQSxFQUlBO0FBQUE7QUFBQTtpREFBQSxFQUtBO0FBQUE7QUFBQTs7OztnREFBQSxFQU9FO0FBQUE7QUFBQTs7O3lEQUFBLEVBUUY7QUFBQTtBQUFBOzswREFBQSxFQUtFO0FBQUE7QUFBQSxtREFBQTs7Z0JBbUJKO0FBQUE7QUFBQTs7OztnRUFBQSxFQU1FO0FBQUE7QUFBQTtvQ0FBQSxFQUtBO0FBQUE7QUFBQTs7Ozs7Ozs7Ozs7MERBQUEsRUFVRTtBQUFBO0FBQUEsbUJBQUEsRUFHQTtBQUFBO0FBQUEscUJBQUEsRUFHQTtBQUFBO0FBQUE7b0JBQUEsRUFJQTtBQUFBO0FBQUE7MEJBQUEsRUFNRjtBQUFBO0FBQUEsd0JBQUEsRUFqREE7QUFBQTtBQUFBOzs7Ozs7O3dCQUFBLEVBMERBO0FBQUE7QUFBQSwyQkFBQSxFQTFEQTtBQUFBO0FBQUE7Ozs7OztxRUFBQSxFQWtFQTtBQUFBO0FBQUE7O3VFQUFBLEVBUUU7QUFBQTtBQUFBOztzRUFBQSxFQU9GO0FBQUE7QUFBQSxtQkFBQSxFQUdFO0FBQUE7QUFBQSx1QkFBQSxFQXBGRjtBQUFBO0FBQUE7Ozs7Ozt1RUFBQSxFQTZGQTtBQUFBO0FBQUE7OzBCQUFBLEVBT0Y7QUFBQTtBQUFBO0FBQUEsNkRBQUEsRUFJQTtBQUFBO0FBQUE7QUFDRTtBQUFBLDRCQUFBLEVBR0E7QUFBQTtBQUFBLDhCQUFBLEVBQUEsRUFLRjtBQUFBO0FBQUE7QUFBQTs7OEJBQUEsRUFNSTtBQUFBO0FBQUEsc0JBQUEsRUFHQTtBQUFBO0FBQUEsc0JBQUEsRUFHQTtBQUFBO0FBQUEsb0JBQUEsRUFHQTtBQUFBO0FBQUEsc0JBQUEsRUFHQTtBQUFBO0FBQUEsc0JBQUEsRUFHQTtBQUFBO0FBQUEsc0JBQUEsRUFHQTtBQUFBO0FBQUEsc0JBQUEsRUFNQTtBQUFBO0FBQUEsa0NBQUEsRUFJQTtBQUFBO0FBQUEsbUNBQUEsRUFJQTtBQUFBO0FBQUEscUNBQUEsRUFJQTtBQUFBO0FBQUEscUNBQUEsRUFJQTtBQUFBO0FBQUEsZ0NBQUEsRUFNSjtBQUFBO0FBQUE7QUFBQSwwQkFBQSxFQUlBO0FBQUE7QUFBQTtBQUFBOztlQUFBLEVBS0U7QUFBQTtBQUFBLGdCQUFBLEVBS0Y7QUFBQTtBQUFBO0FBQUE7Ozs7c0JBQUEsRUFVQTtBQUFBO0FBQUE7QUFBQSx5QkFBQSxFQUdFO0FBQUE7QUFBQTs7NkJBQUEsRUFNQTtBQUFBO0FBQUEsdUJBQUEsRUFJQTtBQUFBO0FBQUE7MEJBQUEsRUFNRjtBQUFBO0FBQUE7QUFBQTs7Ozs0QkFBQSxFQVVBO0FBQUE7QUFBQTtBQUFBO3NCQUFBLEVBSUU7QUFBQTtBQUFBLDhCQUFBLEVBR0U7QUFBQTtBQUFBO2dDQUFBLEVBT0o7QUFBQTtBQUFBO0FBQUEscUNBQUEsRUFJSTtBQUFBO0FBQUE7O2dCQUFBLEVBQUE7QUFBQTtBQUFBOztvR0FBQSxFQUFBO0FBQUE7QUFBQTs7aUdBQUEsRUFRSjtBQUFBO0FBQUE7QUFBQSw4QkFBQSxFQUlBO0FBQUE7QUFBQTtBQUFBOzs7Ozs7Ozs7eUZBQUEsRUFhRTtBQUFBO0FBQUEsZ0NBQUEsRUFJQTtBQUFBO0FBQUE7Ozs7Ozs7O29DQUFBLEVBV0U7QUFBQTtBQUFBLGtCQUFBLEVBS0Y7QUFBQTtBQUFBOzs7cUJBQUEsRUFPQTtBQUFBO0FBQUE7OztzQkFBQSxFQU9BO0FBQUE7QUFBQTs7c0JBQUEsRUFNQTtBQUFBO0FBQUE7O3FCQUFBLEVBTUE7QUFBQTtBQUFBOzs7Ozs7O3NCQUFBLEVBV0E7QUFBQTtBQUFBOzs7MkJBQUEsRUFJRTtBQUFBO0FBQUE7a0RBQUEsRUFNSjtBQUFBO0FBQUE7QUFBQTtzQkFBQSxFQUlFO0FBQUE7QUFBQSw4QkFBQSxFQUdFO0FBQUE7QUFBQTtnQ0FBQSxFQU9KO0FBQUE7QUFBQTtBQUFBOzs7eUJBQUEsRUFPRTtBQUFBO0FBQUEsd0JBQUE7OzJEQVNJO0FBQUE7QUFBQTs7O1VBQUEsRUFVQTtBQUFBO0FBQUE7OzthQUFBLEVBV047QUFBQTtBQUFBO0FBQUE7Ozs7MkJBQUEsRWhDN21KRTtBQUFBO0FBQUEsNkJBQUEsRUFBQTtBQUFBO0FBQUEsK0JBQUEsRWdDdW5KQTtBQUFBO0FBQUEsOEJBQUEsRUFLRjtBQUFBO0FBQUE7QUFBQTs7K0NBQUEsRUFJQTtBQUFBO0FBQUE7QUFBQTs7K0NBQUEsRUFJQTtBQUFBO0FBQUE7QUFBQTtzQkFBQSxFQUlFO0FBQUE7QUFBQTs7eUJBQUEsRUFPRjtBQUFBO0FBQUE7QUFBQTs7OzswQkFBQSxFQU9FO0FBQUE7QUFBQTs7Ozs7OzhCQUFBLEVBTUU7QUFBQTtBQUFBOzs7eURBQUEsRUFLRjtBQUFBO0FBQUE7Ozs7b0JBQUEsRUFTRjtBQUFBO0FBQUE7QUFHTTtBQUFBLGtCQUFBLEVBQUEsRUFPTjtBQUFBO0FBQUE7QUFDRTtBQUFBLHNCQUFBLEVBQUEsRUFLRjtBQUFBO0FBQUE7QUFBQTs7cUJBQUEsRUFNRTtBQUFBO0FBQUEsb0VBQUEsRUFLQTtBQUFBO0FBQUEsb0VBQUEsRUFLQTtBQUFBO0FBQUEsb0VBQUEsRUFLQTtBQUFBO0FBQUE7Ozs7ZUFBQSxFQU1FO0FBQUE7QUFBQTs7O3VCQUFBLEVBYUo7QUFBQTtBQUFBO0FBQUE7Ozs7Ozs7eUJBQUEsRUFVRTtBQUFBO0FBQUE7OztpQkFBQSxFQVFGO0FBQUE7QUFBQTtBQUFBOzs7O2dDQUFBLEVBUUE7QUFBQTtBQUFBO0FBQUE7Z0NBQUEsRUFNRTtBQUFBO0FBQUE7K0NBQUEsRUFLQTtBQUFBO0FBQUEsNkJBQUEsRUFJQTtBQUFBO0FBQUE7Ozs7O2lCQUFBLEVBUUU7QUFBQTtBQUFBOzBDQUFBLEVBS0E7QUFBQTtBQUFBOzs7Ozs7OztrQkFBQSxFQWFGO0FBQUE7QUFBQTs7OzttQ0FBQSxFQU9FO0FBQUE7QUFBQTtnQkFBQSxFQU9KO0FBQUE7QUFBQTtBQUFBOzs7Ozs7Ozs7Ozs7K0RBQUEsRUFnQkE7QUFBQTtBQUFBO0FBQUE7Ozs7Ozs7dURBQUEsRUx6ekpFO0FBQUE7QUFBQSxxREFBQSxFQUFBO0FBQUE7QUFBQSxxREFBQSxFQUFBO0FBQUE7QUFBQSxxREFBQSxFQUFBO0FBQUE7QUFBQSxxREFBQSxFQUFBO0FBQUE7QUFBQSxzREFBQSxFQUFBO0FBQUE7QUFBQSxzREFBQSxFQUFBO0FBQUE7QUFBQSxzREFBQSxFQUFBO0FBQUE7QUFBQSxzREFBQSxFQUFBO0FBQUE7QUFBQSxzREFBQSxFQUFBO0FBQUE7QUFBQSxzREFBQSxFQUFBO0FBQUE7QUFBQSxzREFBQSxFQUFBO0FBQUE7QUFBQTt1REFBQSxFQVFBO0FBQUE7QUFBQSwrQ0FBQSxFQUlFO0FBQUE7QUFBQSxzQkFBQSxFS3l6SkY7QUFBQTtBQUFBLDJEQUFBLEVBSUE7QUFBQTtBQUFBOzs7c0RBQUEsRUFhRTtBQUFBO0FBQUE7QUFBQSxzQkFBQSxFQUFBLEVBS0Y7QUFBQTtBQUFBO0FBQ0U7QUFBQTs2QkFBQSxFQUlBO0FBQUE7QUFBQTtrQ0FBQSxFQUFBLEVBT0o7QUFBQTtBQUFBO0FBQUE7OytCQUFBLEVBYUE7QUFBQTtBQUFBO0FBQUE7Ozs7Ozs7Ozs0Q0FBQSxFQVVFO0FBQUE7QUFBQSwwQ0FBQSxFQUlBO0FBQUE7QUFBQSw0Q0FBQSxFQUlBO0FBQUE7QUFBQSw0Q0FBQSxFQUlBO0FBQUE7QUFBQSx1Q0FBQSxFQVVGO0FBQUE7QUFBQTtBQUFBOzs7Ozs7Ozs7Z0JBQUEsRUFZRTtBQUFBO0FBQUE7O2tCQUFBLEVBT0U7QUFBQTtBQUFBO3VEQUFBLEVBS0E7QUFBQTtBQUFBLG9EQUFBLEVBS0U7QUFBQTtBQUFBOzhGQUFBLEVBS0E7QUFBQTtBQUFBLG1CQUFBLEVBT047QUFBQTtBQUFBO0FBQUE7Ozs7Ozs7OztnQkFBQSxFQWFJO0FBQUE7QUFBQTt1S0FBQSxFQVFBO0FBQUE7QUFBQSw2QkFBQSxFQUtGO0FBQUE7QUFBQSx1Q0FBQSxFQUtFO0FBQUE7QUFBQSxxQkFBQSxFQU9FO0FBQUE7QUFBQSxlQUFBLEVBTUo7QUFBQTtBQUFBOztlQUFBLEVBTUE7QUFBQTtBQUFBOzs7Ozs7OztnQ0FBQSxFQVlBO0FBQUE7QUFBQTttQkFBQSxFQUtBO0FBQUE7QUFBQTs7Ozs7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QTtBQUFBO0FBQUE7OztnREFBQSxFQUtFO0FBQUE7QUFBQSw4QkFBQSxFQU1GO0FBQUE7QUFBQTt3QkFBQSxFQU1GO0FBQUE7QUFBQTs7cUJBQUEsRUFNQTtBQUFBO0FBQUEsZUFBQSxFQUVFO0FBQUE7QUFBQSxpQkFBQSxFQU1KO0FBQUE7QUFBQTtBQUFBOztlQUFBLEVMMStQRTtBQUFBO0FBQUEscURBQUEsRUFBQTtBQUFBO0FBQUEscURBQUEsRUFBQTtBQUFBO0FBQUEscURBQUEsRUFBQTtBQUFBO0FBQUEscURBQUEsRUFBQTtBQUFBO0FBQUEsc0RBQUEsRUFBQTtBQUFBO0FBQUEsc0RBQUEsRUFBQTtBQUFBO0FBQUEsc0RBQUEsRUFBQTtBQUFBO0FBQUEsc0RBQUEsRUFBQTtBQUFBO0FBQUEsc0RBQUEsRUFBQTtBQUFBO0FBQUEsc0RBQUEsRUFBQTtBQUFBO0FBQUEsc0RBQUEsRUFBQTtBQUFBO0FBQUE7dURBQUEsRUFRQTtBQUFBO0FBQUEsK0NBQUEsRUFJRTtBQUFBO0FBQUEsc0JBQUEsRUt1K1BGO0FBQUE7QUFBQTtBQUFBLDJCQUFBLEVoQzcvUEE7QUFBQTtBQUFBLDZCQUFBLEVnQ3VnUUE7QUFBQTtBQUFBO0FBQUEsMkJBQUEsRUFJQTtBQUFBO0FBQUEsNEJBQUEsRWhDM2dRQTtBQUFBO0FBQUEsNkJBQUEsRUFBQSIsInNvdXJjZXNDb250ZW50IjpbIi8qIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIFRvdGFyYSBFbnRlcnByaXNlIEV4dGVuc2lvbnMuKi9cbi8qKi9cbi8qIENvcHlyaWdodCAoQykgMjAyMCBvbndhcmRzIFRvdGFyYSBMZWFybmluZyBTb2x1dGlvbnMgTFREKi9cbi8qKi9cbi8qIFRvdGFyYSBFbnRlcnByaXNlIEV4dGVuc2lvbnMgaXMgcHJvdmlkZWQgb25seSB0byBUb3RhcmEqL1xuLyogTGVhcm5pbmcgU29sdXRpb25zIExURCdzIGN1c3RvbWVycyBhbmQgcGFydG5lcnMsIHB1cnN1YW50IHRvKi9cbi8qIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZiBhIHNlcGFyYXRlIGFncmVlbWVudCB3aXRoIFRvdGFyYSovXG4vKiBMZWFybmluZyBTb2x1dGlvbnMgTFREIG9yIGl0cyBhZmZpbGlhdGUuKi9cbi8qKi9cbi8qIElmIHlvdSBkbyBub3QgaGF2ZSBhbiBhZ3JlZW1lbnQgd2l0aCBUb3RhcmEgTGVhcm5pbmcgU29sdXRpb25zKi9cbi8qIExURCwgeW91IG1heSBub3QgYWNjZXNzLCB1c2UsIG1vZGlmeSwgb3IgZGlzdHJpYnV0ZSB0aGlzIHNvZnR3YXJlLiovXG4vKiBQbGVhc2UgY29udGFjdCBbbGljZW5zaW5nQHRvdGFyYWxlYXJuaW5nLmNvbV0gZm9yIG1vcmUgaW5mb3JtYXRpb24uKi9cbi8qKi9cbi8qIEBhdXRob3IgICAgS2V2aW4gSG90dGluZ2VyIDxrZXZpbi5ob3R0aW5nZXJAdG90YXJhbGVhcm5pbmcuY29tPiovXG4vKiBAbW9kdWxlIHR1aWNrYWdlICAgdHVpKi9cblxuOnJvb3Qge1xuICAtLWZvbnQtc2l6ZS0xOiAwLjFyZW07XG4gIC0tZm9udC1zaXplLTI6IDAuMnJlbTtcbiAgLS1mb250LXNpemUtNDogMC40cmVtO1xuICAtLWZvbnQtc2l6ZS04OiAwLjhyZW07XG4gIC0tZm9udC1zaXplLTEwOiAxcmVtO1xuICAtLWZvbnQtc2l6ZS0xMTogMS4xcmVtO1xuICAtLWZvbnQtc2l6ZS0xMjogMS4ycmVtO1xuICAtLWZvbnQtc2l6ZS0xMzogMS4zcmVtO1xuICAtLWZvbnQtc2l6ZS0xNDogMS40cmVtO1xuICAtLWZvbnQtc2l6ZS0xNTogMS41cmVtO1xuICAtLWZvbnQtc2l6ZS0xNjogMS42cmVtO1xuICAtLWZvbnQtc2l6ZS0xODogMS44cmVtO1xuICAtLWZvbnQtc2l6ZS0yMDogMnJlbTtcbiAgLS1mb250LXNpemUtMjI6IDIuMnJlbTtcbiAgLS1mb250LXNpemUtMjQ6IDIuNHJlbTtcbiAgLS1mb250LXNpemUtMzA6IDNyZW07XG4gIC0tZm9udC1zaXplLTMyOiAzLjJyZW07XG4gIC0tZm9udC1zaXplLTQwOiA0cmVtO1xuICAtLWZvbnQtc2l6ZS00ODogNC44cmVtO1xuICAtLWZvbnQtc2l6ZS01MDogNXJlbTtcbn1cblxuIiwiLyogVGhpcyBmaWxlIGlzIHBhcnQgb2YgVG90YXJhIEVudGVycHJpc2UgRXh0ZW5zaW9ucy4qL1xuLyoqL1xuLyogQ29weXJpZ2h0IChDKSAyMDIwIG9ud2FyZHMgVG90YXJhIExlYXJuaW5nIFNvbHV0aW9ucyBMVEQqL1xuLyoqL1xuLyogVG90YXJhIEVudGVycHJpc2UgRXh0ZW5zaW9ucyBpcyBwcm92aWRlZCBvbmx5IHRvIFRvdGFyYSovXG4vKiBMZWFybmluZyBTb2x1dGlvbnMgTFREJ3MgY3VzdG9tZXJzIGFuZCBwYXJ0bmVycywgcHVyc3VhbnQgdG8qL1xuLyogdGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIG9mIGEgc2VwYXJhdGUgYWdyZWVtZW50IHdpdGggVG90YXJhKi9cbi8qIExlYXJuaW5nIFNvbHV0aW9ucyBMVEQgb3IgaXRzIGFmZmlsaWF0ZS4qL1xuLyoqL1xuLyogSWYgeW91IGRvIG5vdCBoYXZlIGFuIGFncmVlbWVudCB3aXRoIFRvdGFyYSBMZWFybmluZyBTb2x1dGlvbnMqL1xuLyogTFRELCB5b3UgbWF5IG5vdCBhY2Nlc3MsIHVzZSwgbW9kaWZ5LCBvciBkaXN0cmlidXRlIHRoaXMgc29mdHdhcmUuKi9cbi8qIFBsZWFzZSBjb250YWN0IFtsaWNlbnNpbmdAdG90YXJhbGVhcm5pbmcuY29tXSBmb3IgbW9yZSBpbmZvcm1hdGlvbi4qL1xuLyoqL1xuLyogQGF1dGhvciAgICBLZXZpbiBIb3R0aW5nZXIgPGtldmluLmhvdHRpbmdlckB0b3RhcmFsZWFybmluZy5jb20+Ki9cbi8qIEBtb2R1bGUgdHVpY2thZ2UgICB0dWkqL1xuXG4kdHVpLWdhcDogMC40cmVtO1xuXG46cm9vdCB7XG4gIC8qIENvbW1vbiBzcGFjaW5nIHVzZWQgZm9yIG1hcmdpbiAmIHBhZGRpbmcqL1xuICAtLWdhcC0xOiAoJHR1aS1nYXAgKiAxKTsgLyogMC40IHJlbSovXG4gIC0tZ2FwLTI6ICgkdHVpLWdhcCAqIDIpOyAvKiAwLjggcmVtKi9cbiAgLS1nYXAtMzogKCR0dWktZ2FwICogMyk7IC8qIDEuMiByZW0qL1xuICAtLWdhcC00OiAoJHR1aS1nYXAgKiA0KTsgLyogMS42IHJlbSovXG4gIC0tZ2FwLTU6ICgkdHVpLWdhcCAqIDUpOyAvKiAyLjAgcmVtKi9cbiAgLS1nYXAtNjogKCR0dWktZ2FwICogNik7IC8qIDIuNCByZW0qL1xuICAtLWdhcC03OiAoJHR1aS1nYXAgKiA3KTsgLyogMi44IHJlbSovXG4gIC0tZ2FwLTg6ICgkdHVpLWdhcCAqIDgpOyAvKiAzLjIgcmVtKi9cbiAgLS1nYXAtOTogKCR0dWktZ2FwICogOSk7IC8qIDMuNiByZW0qL1xuICAtLWdhcC0xMDogKCR0dWktZ2FwICogMTApOyAvKiA0IHJlbSovXG4gIC0tZ2FwLTExOiAoJHR1aS1nYXAgKiAxMSk7IC8qIDQuNCByZW0qL1xuICAtLWdhcC0xMjogKCR0dWktZ2FwICogMTIpOyAvKiA0LjggcmVtKi9cblxuICAvKiBDb21tb24gbmFtZWQgc2l6ZXMqL1xuICAtLWdhcC1wYWdlLWNvbHVtbnM6IHZhcigtLWdhcC04KTsgLyogZ2FwIGJldHdlZW4gcGFnZSBjb2x1bW5zKi9cbiAgLS1nYXAtY2FyZC1ncmlkOiB2YXIoLS1nYXAtNCk7IC8qIGdhcCBiZXR3ZWVuIGNhcmRzKi9cblxuICAvKiovXG4gIC8qIEdyaWQqL1xuICAvKiovXG4gIC0tZ3JpZC1ndXR0ZXI6IHZhcigtLWdhcC01KTsgLyogQGRlcHJlY2F0ZWQgaW4gVDE4Ki9cblxuICAvKiB2YWx1ZXMgZm9yIHRoZSBndXR0ZXJzIGJldHdlZW4gd3JhcHBlZCBHcmlkSXRlbXMqL1xuICAtLWdyaWQtZ3V0dGVyLXZlcnRpY2FsOiAycmVtO1xuICAtLWdyaWQtZ3V0dGVyLWhvcml6b250YWw6IDJyZW07XG5cbiAgLyogR2xvYmFsIGRlZmF1bHQgZm9yICdob3cgbWFueSBjb2x1bW5zIGFyZSBpbiB0aGUgZ3JpZCcqL1xuICAvKiBzcGVjaWZpZWQgZm9yIHVzZSB3aXRoIHRoZW1lLmdldFZhcignZ3JpZC1tYXh1bml0cycpIGluIEdyaWQudnVlKi9cbiAgLS1ncmlkLW1heHVuaXRzOiAxMjtcblxuICAtLXBhcmFncmFwaC1nYXA6IDFyZW07XG59XG5cbi8qIE91dHNpZGUtaW4gc3BhY2luZzogU3RhY2sqL1xuLyogU3RhY2tzIHByb3ZpZGUgc3BhY2luZyBiZXR3ZWVuIHRoZWlyIGNoaWxkcmVuLiovXG5AbWl4aW4gdHVpLXN0YWNrLXZlcnRpY2FsKCRnYXApIHtcbiAgJiA+ICogKyAqIHtcbiAgICBtYXJnaW4tdG9wOiAkZ2FwO1xuICB9XG59XG5AbWl4aW4gdHVpLXN0YWNrLWhvcml6b250YWwoJGdhcCkge1xuICAmID4gKiArICoge1xuICAgIG1hcmdpbi1sZWZ0OiAkZ2FwO1xuICB9XG59XG5cbiIsIi8qIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIFRvdGFyYSBFbnRlcnByaXNlIEV4dGVuc2lvbnMuKi9cbi8qKi9cbi8qIENvcHlyaWdodCAoQykgMjAyMCBvbndhcmRzIFRvdGFyYSBMZWFybmluZyBTb2x1dGlvbnMgTFREKi9cbi8qKi9cbi8qIFRvdGFyYSBFbnRlcnByaXNlIEV4dGVuc2lvbnMgaXMgcHJvdmlkZWQgb25seSB0byBUb3RhcmEqL1xuLyogTGVhcm5pbmcgU29sdXRpb25zIExURCdzIGN1c3RvbWVycyBhbmQgcGFydG5lcnMsIHB1cnN1YW50IHRvKi9cbi8qIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZiBhIHNlcGFyYXRlIGFncmVlbWVudCB3aXRoIFRvdGFyYSovXG4vKiBMZWFybmluZyBTb2x1dGlvbnMgTFREIG9yIGl0cyBhZmZpbGlhdGUuKi9cbi8qKi9cbi8qIElmIHlvdSBkbyBub3QgaGF2ZSBhbiBhZ3JlZW1lbnQgd2l0aCBUb3RhcmEgTGVhcm5pbmcgU29sdXRpb25zKi9cbi8qIExURCwgeW91IG1heSBub3QgYWNjZXNzLCB1c2UsIG1vZGlmeSwgb3IgZGlzdHJpYnV0ZSB0aGlzIHNvZnR3YXJlLiovXG4vKiBQbGVhc2UgY29udGFjdCBbbGljZW5zaW5nQHRvdGFyYWxlYXJuaW5nLmNvbV0gZm9yIG1vcmUgaW5mb3JtYXRpb24uKi9cbi8qKi9cbi8qIEBhdXRob3IgICAgRGF2ZSBXYWxsYWNlIDxkYXZlLndhbGxhY2VAdG90YXJhbGVhcm5pbmcuY29tPiovXG4vKiBAbW9kdWxlIHR1aWNrYWdlICAgdHVpKi9cblxuOnJvb3Qge1xuICAvKiovXG4gIC8qIFRoZW1lIGJvcmRlciB3aWR0aHMqL1xuICAvKiovXG5cbiAgLyogQ29udGVudCBhZ2dyZWdhdGlvbiBib3JkZXJzKi9cbiAgLyogT2Z0ZW4gdXNlZCBmb3Igc2VjdGlvbnMgb2YgY29udGVudCBzdWNoIGFzIEZvcm1zLCBCbG9ja3MsIHZhcmlvdXMgUGFuZWxzLCovXG4gIC8qIGFuZCBob3Jpem9udGFsIHJ1bGVzKi9cbiAgLS1ib3JkZXItd2lkdGgtdGhpbjogMXB4O1xuICAtLWJvcmRlci13aWR0aC1ub3JtYWw6IDJweDtcbiAgLS1ib3JkZXItd2lkdGgtdGhpY2s6IDNweDtcblxuICAvKiBTdGFuZGFyZCBib3JkZXIgcmFkaXVzKi9cbiAgLS1ib3JkZXItcmFkaXVzLWN1cnZlZDogMTJweDtcbiAgLS1ib3JkZXItcmFkaXVzLW5vcm1hbDogNnB4O1xuICAtLWJvcmRlci1yYWRpdXMtc21hbGw6IDRweDtcblxuICAtLWNhcmQtYm9yZGVyLXJhZGl1czogdmFyKC0tYm9yZGVyLXJhZGl1cy1ub3JtYWwpO1xuICAtLWRyb3Bkb3duLWJvcmRlci1yYWRpdXM6IHZhcigtLWJvcmRlci1yYWRpdXMtbm9ybWFsKTtcblxuICAtLWZvY3VzLW91dGxpbmUtb2Zmc2V0OiAxcHg7XG59XG5cbiIsIi8qIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIFRvdGFyYSBFbnRlcnByaXNlIEV4dGVuc2lvbnMuKi9cbi8qKi9cbi8qIENvcHlyaWdodCAoQykgMjAyMCBvbndhcmRzIFRvdGFyYSBMZWFybmluZyBTb2x1dGlvbnMgTFREKi9cbi8qKi9cbi8qIFRvdGFyYSBFbnRlcnByaXNlIEV4dGVuc2lvbnMgaXMgcHJvdmlkZWQgb25seSB0byBUb3RhcmEqL1xuLyogTGVhcm5pbmcgU29sdXRpb25zIExURCdzIGN1c3RvbWVycyBhbmQgcGFydG5lcnMsIHB1cnN1YW50IHRvKi9cbi8qIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZiBhIHNlcGFyYXRlIGFncmVlbWVudCB3aXRoIFRvdGFyYSovXG4vKiBMZWFybmluZyBTb2x1dGlvbnMgTFREIG9yIGl0cyBhZmZpbGlhdGUuKi9cbi8qKi9cbi8qIElmIHlvdSBkbyBub3QgaGF2ZSBhbiBhZ3JlZW1lbnQgd2l0aCBUb3RhcmEgTGVhcm5pbmcgU29sdXRpb25zKi9cbi8qIExURCwgeW91IG1heSBub3QgYWNjZXNzLCB1c2UsIG1vZGlmeSwgb3IgZGlzdHJpYnV0ZSB0aGlzIHNvZnR3YXJlLiovXG4vKiBQbGVhc2UgY29udGFjdCBbbGljZW5zaW5nQHRvdGFyYWxlYXJuaW5nLmNvbV0gZm9yIG1vcmUgaW5mb3JtYXRpb24uKi9cbi8qKi9cbi8qIEBhdXRob3IgICAgS2V2aW4gSG90dGluZ2VyIDxrZXZpbi5ob3R0aW5nZXJAdG90YXJhbGVhcm5pbmcuY29tPiovXG4vKiBAbW9kdWxlIHR1aWNrYWdlICAgdHVpKi9cblxuOnJvb3Qge1xuICAtLWJ0bi1zaGFkb3c6IG5vbmU7XG4gIC0tYnRuLXNoYWRvdy1mb2N1czogbm9uZTtcbiAgLS1idG4tc2hhZG93LWhvdmVyOiB2YXIoLS1zaGFkb3ctMik7XG4gIC0tYnRuLXNoYWRvdy1hY3RpdmU6IHZhcigtLXNoYWRvdy0zKTtcbiAgLS1idG4tbWluLXdpZHRoOiA3MnB4O1xuICAtLWJ0bi1taW4taGVpZ2h0OiAzLjZyZW07XG4gIC0tYnRuLWZvbnQtc2l6ZTogdmFyKC0tZm9udC1ib2R5LXNpemUpO1xuICAtLWJ0bi1saW5lLWhlaWdodDogdmFyKC0tZm9udC1ib2R5LWxpbmUtaGVpZ2h0KTtcbiAgLS1idG4tYm9yZGVyLXdpZHRoOiAxcHg7XG4gIC0tYnRuLXBhZGRpbmctaDogdmFyKC0tZ2FwLTMpO1xuICAtLWJ0bi1yYWRpdXM6IDRweDtcblxuICAvKiBCdXR0b24gc2l6ZXMqL1xuICAtLWJ0bi1zbS1taW4taGVpZ2h0OiAzcmVtO1xuICAtLWJ0bi1zbS1mb250LXNpemU6IHZhcigtLWZvbnQtYm9keS1zbWFsbC1zaXplKTtcbiAgLS1idG4tc20tbGluZS1oZWlnaHQ6IHZhcigtLWZvbnQtYm9keS1zbWFsbC1saW5lLWhlaWdodCk7XG4gIC0tYnRuLXNtLXBhZGRpbmctaDogdmFyKC0tZ2FwLTMpO1xuICAtLWJ0bi1zbS1yYWRpdXM6IDRweDtcbn1cblxuIiwiLyogVGhpcyBmaWxlIGlzIHBhcnQgb2YgVG90YXJhIEVudGVycHJpc2UgRXh0ZW5zaW9ucy4qL1xuLyoqL1xuLyogQ29weXJpZ2h0IChDKSAyMDIwIG9ud2FyZHMgVG90YXJhIExlYXJuaW5nIFNvbHV0aW9ucyBMVEQqL1xuLyoqL1xuLyogVG90YXJhIEVudGVycHJpc2UgRXh0ZW5zaW9ucyBpcyBwcm92aWRlZCBvbmx5IHRvIFRvdGFyYSovXG4vKiBMZWFybmluZyBTb2x1dGlvbnMgTFREJ3MgY3VzdG9tZXJzIGFuZCBwYXJ0bmVycywgcHVyc3VhbnQgdG8qL1xuLyogdGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIG9mIGEgc2VwYXJhdGUgYWdyZWVtZW50IHdpdGggVG90YXJhKi9cbi8qIExlYXJuaW5nIFNvbHV0aW9ucyBMVEQgb3IgaXRzIGFmZmlsaWF0ZS4qL1xuLyoqL1xuLyogSWYgeW91IGRvIG5vdCBoYXZlIGFuIGFncmVlbWVudCB3aXRoIFRvdGFyYSBMZWFybmluZyBTb2x1dGlvbnMqL1xuLyogTFRELCB5b3UgbWF5IG5vdCBhY2Nlc3MsIHVzZSwgbW9kaWZ5LCBvciBkaXN0cmlidXRlIHRoaXMgc29mdHdhcmUuKi9cbi8qIFBsZWFzZSBjb250YWN0IFtsaWNlbnNpbmdAdG90YXJhbGVhcm5pbmcuY29tXSBmb3IgbW9yZSBpbmZvcm1hdGlvbi4qL1xuLyoqL1xuLyogQGF1dGhvciAgICBLZXZpbiBIb3R0aW5nZXIgPGtldmluLmhvdHRpbmdlckB0b3RhcmFsZWFybmluZy5jb20+Ki9cbi8qIEBtb2R1bGUgdHVpY2thZ2UgICB0dWkqL1xuXG46cm9vdCB7XG4gIC8qKi9cbiAgLyogVGhlbWUgY29sb3VycyovXG4gIC8qKi9cblxuICAvKiBQcmltYXJ5IGNvbG91ciovXG4gIC8qIE9mdGVuIHVzZWQgZm9yIGRlZmF1bHQgaW1hZ2UsIGJhY2tncm91bmRzLCBsaW5lIHNlcGFyYXRvcnMgJiB2aXN1YWwgaW5kaWNhdG9ycyovXG4gIC0tY29sb3ItcHJpbWFyeTogIzNhNDVhYztcblxuICAvKiBTZWNvbmRhcnkgY29sb3VyKi9cbiAgLyogT2Z0ZW4gdXNlZCBmb3IgdmlzdWFsIGNvbXBvbmVudHMgc3VjaCBhcyBwcm9ncmVzcyBiYXJzICYgY2hhcnRzKi9cbiAgLS1jb2xvci1zZWNvbmRhcnk6ICMwMDdhYjg7XG5cbiAgLyogVGVydGlhcnkgY29sb3VyKi9cbiAgLyogT2Z0ZW4gdXNlZCBmb3IgdmlzdWFsIGNvbXBvbmVudHMsIG11c3QgaGF2ZSBoaWdoIGNvbnRyYXN0IHRvIGJhY2tncm91bmQqL1xuICAtLWNvbG9yLXRlcnRpYXJ5OiAjMWVhNGE5O1xuXG4gIC8qKi9cbiAgLyogSW50ZXJhY3RpdmUgc3RhdGUgY29sb3VycyovXG4gIC8qKi9cblxuICAvKiBEZWZhdWx0IHN0YXRlIGNvbG91ciwgc2hvd3MgYW4gZWxlbWVudCBpcyBpbnRlcmFjdGl2ZSovXG4gIC0tY29sb3Itc3RhdGU6ICMzOTgyYWM7XG5cbiAgLyogSG92ZXIgc3RhdGUgY29sb3VyLCBzaG93biB3aGVuIGN1cnNvciBpcyBvdmVyIGludGVyYWN0aXZlIGVsZW1lbnQqL1xuICAtLWNvbG9yLXN0YXRlLWhvdmVyOiAjMjY1NzczO1xuICAvKiBGb2N1cyBzdGF0ZSBjb2xvdXIsIHNob3duIHdoZW4gZWxlbWVudCBoYXMgZm9jdXMgKGtleWJvYXJkIHRhYmJpbmcpKi9cbiAgLS1jb2xvci1zdGF0ZS1mb2N1czogIzI2NTc3MztcbiAgLyogQWN0aXZlIHN0YXRlIGNvbG91ciwgc2hvd24gd2hlbiBlbGVtZW50IGlzIGFjdGl2ZSAoY2xpY2tlZCkqL1xuICAtLWNvbG9yLXN0YXRlLWFjdGl2ZTogIzE5M2E0YztcbiAgLyogSGlnaGxpZ2h0LCB2aXN1YWwgY2x1ZSBmb3IgdGhpbmdzIHRoYXQgbmVlZCB0byBiZSBoaWdobGlnaHRlZCBtb3JlKi9cbiAgLyogcHJvbWluZW50bHkgdGhhbiBoaWdobGlnaHQtbmV1dHJhbC4qL1xuICAtLWNvbG9yLXN0YXRlLWhpZ2hsaWdodDogI2Y2ZjlkNztcbiAgLyogTmV1dHJhbCBoaWdobGlnaHQsIHZpc3VhbCBjbHVlIGZvciBob3Zlci9mb2N1cyBvbiBjb21wb25lbnRzIHN1Y2ggYXMgYSBsaXN0IHJvdyovXG4gIC0tY29sb3Itc3RhdGUtaGlnaGxpZ2h0LW5ldXRyYWw6IHZhcigtLWNvbG9yLW5ldXRyYWwtMyk7XG4gIC8qIERpc2FibGVkIGNvbG91ciBvZiBpbnRlcmFjdGl2ZSBlbGVtZW50cyovXG4gIC0tY29sb3Itc3RhdGUtZGlzYWJsZWQ6IHZhcigtLWNvbG9yLW5ldXRyYWwtNSk7XG5cbiAgLyoqL1xuICAvKiBWaXN1YWwgcHJvbXB0IGNvbG91cnMqL1xuICAvKiovXG5cbiAgLyogVXNlZCB0byBpbmRpY2F0ZSBhbiBpbmZvcm1hdGlvbmFsIG1lc3NhZ2UqL1xuICAtLWNvbG9yLXByb21wdC1pbmZvOiAjMDA3YWI4O1xuICAtLWNvbG9yLXByb21wdC1pbmZvLWJnOiAjZGFmM2ZlO1xuICAvKiBVc2VkIHRvIGluZGljYXRlIGFuIGltcG9ydGFudCBtZXNzYWdlIChlcnJvciwgZGFuZ2VyKSovXG4gIC0tY29sb3ItcHJvbXB0LWFsZXJ0OiAjY2MyNDI4O1xuICAtLWNvbG9yLXByb21wdC1hbGVydC1iZzogI2ZlZTZlNjtcbiAgLyogVXNlZCB0byBpbmRpY2F0ZSBhIHdhcm5pbmcgbWVzc2FnZSovXG4gIC0tY29sb3ItcHJvbXB0LXdhcm5pbmc6ICNiMjYxMWY7XG4gIC0tY29sb3ItcHJvbXB0LXdhcm5pbmctYmc6ICNmMWUyZDc7XG4gIC8qIFVzZWQgdG8gaW5kaWNhdGUgYSBzdWNjZXNzIG1lc3NhZ2UqL1xuICAtLWNvbG9yLXByb21wdC1zdWNjZXNzOiAjNGI3ZTJiO1xuICAtLWNvbG9yLXByb21wdC1zdWNjZXNzLWJnOiAjZDhlYWNkO1xuXG4gIC8qKi9cbiAgLyogTmV1dHJhbCBjb2xvdXIgcmFuZ2VzKi9cbiAgLyoqL1xuXG4gIC8qIE9mdGVuIHVzZWQgZm9yIG5hdmlnYXRpb24gYmFyLCBiYWNrZ3JvdW5kcyAmIGZvb3RlciovXG4gIC0tY29sb3ItbmV1dHJhbC0xOiAjZmZmO1xuICAvKiBPZnRlbiB1c2VkIGZvciBjb250ZW50IGJhY2tncm91bmQqL1xuICAtLWNvbG9yLW5ldXRyYWwtMjogI2ZhZmFmYTtcbiAgLyogT2Z0ZW4gdXNlZCBmb3Igc2lkZSBwYW5lbCBiYWNrZ3JvdW5kICYgZGlzYWJsZWQgYnV0dG9ucyovXG4gIC0tY29sb3ItbmV1dHJhbC0zOiAjZjdmN2Y3O1xuICAvKiBPZnRlbiB1c2VkIGZvciBwcm9ncmVzcyBiYXIgYmFja2dyb3VuZCovXG4gIC0tY29sb3ItbmV1dHJhbC00OiAjZTZlNGU0O1xuICAvKiBPZnRlbiB1c2VkIGZvciBjYXJkIGNvbXBvbmVudCBib3JkZXJzLCBsaW5lIHNlcGFyYXRvcnMgJiBkaXNhYmxlZCBidXR0b24qL1xuICAtLWNvbG9yLW5ldXRyYWwtNTogI2M3YzdjNztcbiAgLyogT2Z0ZW4gdXNlZCBmb3IgaWNvbnMgYW5kIGZvcm0gY29tcG9uZW50IGJvcmRlcnMqL1xuICAtLWNvbG9yLW5ldXRyYWwtNjogIzc2NzY3NjtcbiAgLyogT2Z0ZW4gdXNlZCBmb3IgaGVhZGVycyBhbmQgYm9keSB0ZXh0Ki9cbiAgLS1jb2xvci1uZXV0cmFsLTc6ICMyNjI2MjY7XG5cbiAgLyoqL1xuICAvKiBDaGFydCBjb2xvcnMqL1xuICAvKiovXG4gIC0tY29sb3ItY2hhcnQtYmFja2dyb3VuZC0xOiAjMDA3YWI4O1xuICAtLWNvbG9yLWNoYXJ0LXRyYW5zcGFyZW50LTE6IHJnYmEoIzAwN2FiOCwgMC4zOCk7XG4gIC0tY29sb3ItY2hhcnQtYmFja2dyb3VuZC0yOiAjZGE3YzJmO1xuICAtLWNvbG9yLWNoYXJ0LXRyYW5zcGFyZW50LTI6IHJnYmEoI2RhN2MyZiwgMC4zOCk7XG4gIC0tY29sb3ItY2hhcnQtYmFja2dyb3VuZC0zOiAjYmY2Yzc4O1xuICAtLWNvbG9yLWNoYXJ0LXRyYW5zcGFyZW50LTM6IHJnYmEoI2JmNmM3OCwgMC4zOCk7XG4gIC0tY29sb3ItY2hhcnQtYmFja2dyb3VuZC00OiAjZGFjNzI1O1xuICAtLWNvbG9yLWNoYXJ0LXRyYW5zcGFyZW50LTQ6IHJnYmEoI2RhYzcyNSwgMC4zOCk7XG4gIC0tY29sb3ItY2hhcnQtYmFja2dyb3VuZC01OiAjNWQ1ZDVkO1xuICAtLWNvbG9yLWNoYXJ0LXRyYW5zcGFyZW50LTU6IHJnYmEoIzVkNWQ1ZCwgMC4zOCk7XG4gIC0tY29sb3ItY2hhcnQtYmFja2dyb3VuZC02OiAjOThhYWRhO1xuICAtLWNvbG9yLWNoYXJ0LXRyYW5zcGFyZW50LTY6IHJnYmEoIzk4YWFkYSwgMC4zOCk7XG4gIC0tY29sb3ItY2hhcnQtYmFja2dyb3VuZC03OiAjMjNjMWEwO1xuICAtLWNvbG9yLWNoYXJ0LXRyYW5zcGFyZW50LTc6IHJnYmEoIzIzYzFhMCwgMC4zOCk7XG5cbiAgLyoqL1xuICAvKiBDb250ZW50IGNvbG91cnMqL1xuICAvKiovXG4gIC0tY29sb3ItYmFja2dyb3VuZDogdmFyKC0tY29sb3ItbmV1dHJhbC0xKTtcbiAgLS1jb2xvci1ib3JkZXI6IHZhcigtLWNvbG9yLW5ldXRyYWwtNSk7XG4gIC0tY29sb3ItdGV4dDogdmFyKC0tY29sb3ItbmV1dHJhbC03KTtcbiAgLS1jb2xvci10ZXh0LWRpc2FibGVkOiB2YXIoLS1jb2xvci1uZXV0cmFsLTUpO1xuICAtLWNvbG9yLXRleHQtaGludDogdmFyKC0tY29sb3ItbmV1dHJhbC02KTtcbiAgLS1saW5rLWNvbG9yOiB2YXIoLS1jb2xvci1zdGF0ZSk7XG4gIC0tbGluay1jb2xvci1ob3ZlcjogdmFyKC0tY29sb3Itc3RhdGUtaG92ZXIpO1xuXG4gIC8qIEJhY2tkcm9wcyovXG4gIC0tY29sb3ItYmFja2Ryb3Atc3RhbmRhcmQ6IHJnYmEoMCwgMCwgMCwgMC40KTtcbiAgLS1jb2xvci1iYWNrZHJvcC1oZWF2eTogcmdiYSgwLCAwLCAwLCAwLjgpO1xuICAtLWNvbG9yLWJhY2tkcm9wLWNvbnRyYXN0OiB2YXIoLS1jb2xvci1uZXV0cmFsLTEpO1xuXG4gIC8qKi9cbiAgLyogSGVhZGVyIGNvbG9ycyovXG4gIC8qKi9cbiAgLS1uYXYtYmctY29sb3I6ICNmZmY7XG4gIC0tbmF2LXRleHQtY29sb3I6IHZhcigtLWNvbG9yLXRleHQpO1xufVxuXG4vKiBBcnJvd3MqL1xuQGltcG9ydCAndHVpL3ZhcmlhYmxlcy9jb2xvcnMvYXJyb3cnO1xuLyogRm9ybXMqL1xuQGltcG9ydCAndHVpL3ZhcmlhYmxlcy9jb2xvcnMvZm9ybXMnO1xuLyogQXZhdGFyKi9cbkBpbXBvcnQgJ3R1aS92YXJpYWJsZXMvY29sb3JzL2F2YXRhcic7XG4vKiBEcm9wIGRvd24qL1xuQGltcG9ydCAndHVpL3ZhcmlhYmxlcy9jb2xvcnMvZHJvcGRvd24nO1xuLyogRGF0YSB0YWJsZSovXG5AaW1wb3J0ICd0dWkvdmFyaWFibGVzL2NvbG9ycy9kYXRhdGFibGUnO1xuLyogVGFicyovXG5AaW1wb3J0ICd0dWkvdmFyaWFibGVzL2NvbG9ycy90YWJzJztcbi8qIENhcmQqL1xuQGltcG9ydCAndHVpL3ZhcmlhYmxlcy9jb2xvcnMvY2FyZCc7XG4vKiBDaGFydHMqL1xuQGltcG9ydCAndHVpL3ZhcmlhYmxlcy9jb2xvcnMvY2hhcnRzJztcbi8qIEZpbHRlcnMqL1xuQGltcG9ydCAndHVpL3ZhcmlhYmxlcy9jb2xvcnMvZmlsdGVycyc7XG4vKiBUYWdzKi9cbkBpbXBvcnQgJ3R1aS92YXJpYWJsZXMvY29sb3JzL3RhZ3MnO1xuLyogVGFncyovXG5AaW1wb3J0ICd0dWkvdmFyaWFibGVzL2NvbG9ycy9wcm9ncmVzc2Jhcic7XG4vKiBjb2xsYXBzaWJsZSovXG5AaW1wb3J0ICd0dWkvdmFyaWFibGVzL2NvbG9ycy9jb2xsYXBzaWJsZSc7XG4vKiBwcm9ncmVzcyB0cmFja2VyKi9cbkBpbXBvcnQgJ3R1aS92YXJpYWJsZXMvY29sb3JzL3Byb2dyZXNzdHJhY2tlcic7XG4vKiBTaWRlIHBhbmVsIG5hdmlnYXRpb24qL1xuQGltcG9ydCAndHVpL3ZhcmlhYmxlcy9jb2xvcnMvc2lkZV9wYW5lbF9uYXYnO1xuLyogVG9nZ2xlIGJ1dHRvbnMqL1xuQGltcG9ydCAndHVpL3ZhcmlhYmxlcy9jb2xvcnMvdG9nZ2xlJztcbi8qIE5vdGlmaWNhdGlvbiB0b2FzdCovXG5AaW1wb3J0ICd0dWkvdmFyaWFibGVzL2NvbG9ycy9ub3RpZmljYXRpb250b2FzdCc7XG5cbiIsIi8qIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIFRvdGFyYSBFbnRlcnByaXNlIEV4dGVuc2lvbnMuKi9cbi8qKi9cbi8qIENvcHlyaWdodCAoQykgMjAyMCBvbndhcmRzIFRvdGFyYSBMZWFybmluZyBTb2x1dGlvbnMgTFREKi9cbi8qKi9cbi8qIFRvdGFyYSBFbnRlcnByaXNlIEV4dGVuc2lvbnMgaXMgcHJvdmlkZWQgb25seSB0byBUb3RhcmEqL1xuLyogTGVhcm5pbmcgU29sdXRpb25zIExURCdzIGN1c3RvbWVycyBhbmQgcGFydG5lcnMsIHB1cnN1YW50IHRvKi9cbi8qIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZiBhIHNlcGFyYXRlIGFncmVlbWVudCB3aXRoIFRvdGFyYSovXG4vKiBMZWFybmluZyBTb2x1dGlvbnMgTFREIG9yIGl0cyBhZmZpbGlhdGUuKi9cbi8qKi9cbi8qIElmIHlvdSBkbyBub3QgaGF2ZSBhbiBhZ3JlZW1lbnQgd2l0aCBUb3RhcmEgTGVhcm5pbmcgU29sdXRpb25zKi9cbi8qIExURCwgeW91IG1heSBub3QgYWNjZXNzLCB1c2UsIG1vZGlmeSwgb3IgZGlzdHJpYnV0ZSB0aGlzIHNvZnR3YXJlLiovXG4vKiBQbGVhc2UgY29udGFjdCBbbGljZW5zaW5nQHRvdGFyYWxlYXJuaW5nLmNvbV0gZm9yIG1vcmUgaW5mb3JtYXRpb24uKi9cbi8qKi9cbi8qIEBhdXRob3IgICAgS2V2aW4gSG90dGluZ2VyIDxrZXZpbi5ob3R0aW5nZXJAdG90YXJhbGVhcm5pbmcuY29tPiovXG4vKiBAbW9kdWxlIHR1aWNrYWdlICAgdHVpKi9cblxuOnJvb3Qge1xuICAvKiBDU1MgYXJyb3dzKi9cbiAgLS1hcnJvdy1iZy1jb2xvcjogdmFyKC0tY29sb3ItYmFja2dyb3VuZCk7XG4gIC0tYXJyb3ctYm9yZGVyLWNvbG9yOiB2YXIoLS1jb2xvci1uZXV0cmFsLTUpO1xufVxuXG4iLCIvKiBUaGlzIGZpbGUgaXMgcGFydCBvZiBUb3RhcmEgRW50ZXJwcmlzZSBFeHRlbnNpb25zLiovXG4vKiovXG4vKiBDb3B5cmlnaHQgKEMpIDIwMjAgb253YXJkcyBUb3RhcmEgTGVhcm5pbmcgU29sdXRpb25zIExURCovXG4vKiovXG4vKiBUb3RhcmEgRW50ZXJwcmlzZSBFeHRlbnNpb25zIGlzIHByb3ZpZGVkIG9ubHkgdG8gVG90YXJhKi9cbi8qIExlYXJuaW5nIFNvbHV0aW9ucyBMVEQncyBjdXN0b21lcnMgYW5kIHBhcnRuZXJzLCBwdXJzdWFudCB0byovXG4vKiB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgb2YgYSBzZXBhcmF0ZSBhZ3JlZW1lbnQgd2l0aCBUb3RhcmEqL1xuLyogTGVhcm5pbmcgU29sdXRpb25zIExURCBvciBpdHMgYWZmaWxpYXRlLiovXG4vKiovXG4vKiBJZiB5b3UgZG8gbm90IGhhdmUgYW4gYWdyZWVtZW50IHdpdGggVG90YXJhIExlYXJuaW5nIFNvbHV0aW9ucyovXG4vKiBMVEQsIHlvdSBtYXkgbm90IGFjY2VzcywgdXNlLCBtb2RpZnksIG9yIGRpc3RyaWJ1dGUgdGhpcyBzb2Z0d2FyZS4qL1xuLyogUGxlYXNlIGNvbnRhY3QgW2xpY2Vuc2luZ0B0b3RhcmFsZWFybmluZy5jb21dIGZvciBtb3JlIGluZm9ybWF0aW9uLiovXG4vKiovXG4vKiBAYXV0aG9yICAgIEtldmluIEhvdHRpbmdlciA8a2V2aW4uaG90dGluZ2VyQHRvdGFyYWxlYXJuaW5nLmNvbT4qL1xuLyogQG1vZHVsZSB0dWlja2FnZSAgIHR1aSovXG5cbjpyb290IHtcbiAgLyoqL1xuICAvKiBGb3JtIGNvbG91cnMqL1xuICAvKiovXG5cbiAgLyogRm9ybSByYWRpbyBjb2xvdXJzKi9cbiAgLS1mb3JtLXJhZGlvLWRvdC1jb2xvcjogdmFyKC0tY29sb3Itc3RhdGUpO1xuICAtLWZvcm0tcmFkaW8tYmctY29sb3I6IHZhcigtLWNvbG9yLW5ldXRyYWwtMSk7XG4gIC0tZm9ybS1yYWRpby1iZy1jb2xvci1kaXNhYmxlZDogdmFyKC0tY29sb3ItbmV1dHJhbC0zKTtcbiAgLS1mb3JtLXJhZGlvLWJnLWNvbG9yLWZvY3VzOiB2YXIoLS1jb2xvci1zdGF0ZS1oaWdobGlnaHQtbmV1dHJhbCk7XG4gIC0tZm9ybS1yYWRpby1iZy1jb2xvci1ob3ZlcjogdmFyKC0tY29sb3ItbmV1dHJhbC0xKTtcbiAgLS1mb3JtLXJhZGlvLWJnLWNvbG9yLWFjdGl2ZTogdmFyKC0tY29sb3ItbmV1dHJhbC0xKTtcbiAgLS1mb3JtLXJhZGlvLWJvcmRlci1jb2xvcjogdmFyKC0tY29sb3ItbmV1dHJhbC02KTtcbiAgLS1mb3JtLXJhZGlvLWJvcmRlci1jb2xvci1kaXNhYmxlZDogdmFyKC0tY29sb3Itc3RhdGUtZGlzYWJsZWQpO1xuICAtLWZvcm0tcmFkaW8tYm9yZGVyLWNvbG9yLWZvY3VzOiB2YXIoLS1jb2xvci1zdGF0ZS1mb2N1cyk7XG4gIC0tZm9ybS1yYWRpby1ib3JkZXItY29sb3ItYWN0aXZlOiB2YXIoLS1jb2xvci1zdGF0ZS1mb2N1cyk7XG5cbiAgLyogRm9ybSBjaGVja2JveCBjb2xvdXJzKi9cbiAgLS1mb3JtLWNoZWNrYm94LWNoZWNrLWNvbG9yOiB2YXIoLS1jb2xvci1uZXV0cmFsLTEpO1xuICAtLWZvcm0tY2hlY2tib3gtY2hlY2stY29sb3ItZGlzYWJsZWQ6IHZhcigtLWNvbG9yLW5ldXRyYWwtNSk7XG4gIC0tZm9ybS1jaGVja2JveC1iZy1jb2xvcjogdmFyKC0tY29sb3ItbmV1dHJhbC0xKTtcbiAgLS1mb3JtLWNoZWNrYm94LWJnLWNvbG9yLWRpc2FibGVkOiB2YXIoLS1jb2xvci1uZXV0cmFsLTMpO1xuICAtLWZvcm0tY2hlY2tib3gtYmctY29sb3ItYWN0aXZlOiB2YXIoLS1jb2xvci1zdGF0ZSk7XG4gIC0tZm9ybS1jaGVja2JveC1ib3JkZXItY29sb3I6IHZhcigtLWNvbG9yLW5ldXRyYWwtNik7XG4gIC0tZm9ybS1jaGVja2JveC1ib3JkZXItY29sb3ItZGlzYWJsZWQ6IHZhcigtLWNvbG9yLXN0YXRlLWRpc2FibGVkKTtcbiAgLS1mb3JtLWNoZWNrYm94LWJvcmRlci1jb2xvci1mb2N1czogdmFyKC0tY29sb3Itc3RhdGUtZm9jdXMpO1xuICAtLWZvcm0tY2hlY2tib3gtYm9yZGVyLWNvbG9yLWFjdGl2ZTogdmFyKC0tY29sb3Itc3RhdGUtZm9jdXMpO1xuICAtLWZvcm0tY2hlY2tib3gtYm9yZGVyLWNvbG9yLWludmFsaWQ6IHZhcigtLWNvbG9yLXByb21wdC1hbGVydCk7XG5cbiAgLyogVGV4dCBjb2xvdXIgKGxhYmVscykqL1xuICAtLWZvcm0tdGV4dC1jb2xvcjogdmFyKC0tY29sb3ItbmV1dHJhbC03KTtcblxuICAvKiBCYWNrZ3JvdW5kIG9mIGZvcm0gZWxlbWVudHMqL1xuICAtLWZvcm0taW5wdXQtYmctY29sb3I6IHZhcigtLWNvbG9yLW5ldXRyYWwtMSk7XG4gIC0tZm9ybS1pbnB1dC1iZy1jb2xvci1kaXNhYmxlZDogdmFyKC0tY29sb3ItbmV1dHJhbC0zKTtcbiAgLS1mb3JtLWlucHV0LWJnLWNvbG9yLWZvY3VzOiB2YXIoLS1mb3JtLWlucHV0LWJnLWNvbG9yKTtcbiAgLS1mb3JtLWlucHV0LWJnLWNvbG9yLWludmFsaWQtZm9jdXM6IHZhcigtLWZvcm0taW5wdXQtYmctY29sb3IpO1xuXG4gIC8qIEJvcmRlciBvZiBmb3JtIGVsZW1lbnRzKi9cbiAgLS1mb3JtLWlucHV0LWJvcmRlci1jb2xvcjogdmFyKC0tY29sb3ItbmV1dHJhbC02KTtcbiAgLS1mb3JtLWlucHV0LWJvcmRlci1jb2xvci1kaXNhYmxlZDogdmFyKC0tY29sb3ItbmV1dHJhbC00KTtcbiAgLS1mb3JtLWlucHV0LWJvcmRlci1jb2xvci1mb2N1czogdmFyKC0tY29sb3Itc3RhdGUpO1xuICAtLWZvcm0taW5wdXQtYm9yZGVyLWNvbG9yLWludmFsaWQ6IHZhcigtLWNvbG9yLXByb21wdC1hbGVydCk7XG4gIC8qIFRleHQgY29sb3VyIG9mIGZvcm0gZWxlbWVudHMqL1xuICAtLWZvcm0taW5wdXQtdGV4dC1jb2xvcjogdmFyKC0tY29sb3ItbmV1dHJhbC03KTtcbiAgLS1mb3JtLWlucHV0LXRleHQtY29sb3ItZGlzYWJsZWQ6IHZhcigtLWNvbG9yLXN0YXRlLWRpc2FibGVkKTtcbiAgLS1mb3JtLWlucHV0LXRleHQtcGxhY2Vob2xkZXItY29sb3I6IHZhcigtLWNvbG9yLW5ldXRyYWwtNik7XG4gIC8qIFRleHQgY29sb3VyIG9mIGZvcm0gZmllbGQgZGVmYXVsdHMgYW5kIGRldGFpbHMqL1xuICAtLWZvcm0tZGV0YWlscy10ZXh0LWNvbG9yOiB2YXIoLS1jb2xvci1uZXV0cmFsLTcpO1xuICAtLWZvcm0tZGVmYXVsdHMtdGV4dC1jb2xvcjogdmFyKC0tY29sb3ItbmV1dHJhbC03KTtcblxuICAvKiBTdGFuZGFyZCBidG4gYmFja2dyb3VuZCwgYm9yZGVyICYgdGV4dCovXG4gIC0tYnRuLWFjY2VudC1jb2xvcjogdmFyKC0tY29sb3Itc3RhdGUpO1xuICAtLWJ0bi1hY2NlbnQtY29sb3ItYWN0aXZlOiB2YXIoLS1jb2xvci1zdGF0ZS1hY3RpdmUpO1xuICAtLWJ0bi1hY2NlbnQtY29sb3ItaG92ZXI6IHZhcigtLWNvbG9yLXN0YXRlLWhvdmVyKTtcbiAgLS1idG4tYWNjZW50LWNvbG9yLWRpc2FibGVkOiB2YXIoLS1jb2xvci1zdGF0ZS1kaXNhYmxlZCk7XG4gIC0tYnRuLWJnLWNvbG9yOiB2YXIoLS1jb2xvci1uZXV0cmFsLTEpO1xuICAtLWJ0bi1iZy1jb2xvci1hY3RpdmU6IHZhcigtLWNvbG9yLW5ldXRyYWwtMSk7XG4gIC0tYnRuLWJnLWNvbG9yLWRpc2FibGVkOiB2YXIoLS1jb2xvci1uZXV0cmFsLTMpO1xuICAtLWJ0bi1iZy1jb2xvci1ob3ZlcjogdmFyKC0tY29sb3ItbmV1dHJhbC0zKTtcbiAgLS1idG4tYm9yZGVyLWNvbG9yOiB2YXIoLS1idG4tYWNjZW50LWNvbG9yKTtcbiAgLS1idG4tYm9yZGVyLWNvbG9yLWFjdGl2ZTogdmFyKC0tYnRuLWFjY2VudC1jb2xvci1hY3RpdmUpO1xuICAtLWJ0bi1ib3JkZXItY29sb3ItZGlzYWJsZWQ6IHZhcigtLWJ0bi1hY2NlbnQtY29sb3ItZGlzYWJsZWQpO1xuICAtLWJ0bi1ib3JkZXItY29sb3ItaG92ZXI6IHZhcigtLWJ0bi1hY2NlbnQtY29sb3ItaG92ZXIpO1xuICAtLWJ0bi1sb2FkZXItY29sb3ItZGlzYWJsZWQ6IHZhcigtLWNvbG9yLW5ldXRyYWwtNik7XG4gIC0tYnRuLXRleHQtY29sb3I6IHZhcigtLWJ0bi1hY2NlbnQtY29sb3IpO1xuICAtLWJ0bi10ZXh0LWNvbG9yLWFjdGl2ZTogdmFyKC0tYnRuLWFjY2VudC1jb2xvci1hY3RpdmUpO1xuICAtLWJ0bi10ZXh0LWNvbG9yLWRpc2FibGVkOiB2YXIoLS1idG4tYWNjZW50LWNvbG9yLWRpc2FibGVkKTtcbiAgLS1idG4tdGV4dC1jb2xvci1ob3ZlcjogdmFyKC0tYnRuLWFjY2VudC1jb2xvci1ob3Zlcik7XG5cbiAgLyogUHJpbWFyeSBidG4gYmFja2dyb3VuZCwgdGV4dCAmIGJvcmRlciovXG4gIC0tYnRuLXByaW0tYWNjZW50LWNvbG9yOiB2YXIoLS1jb2xvci1zdGF0ZSk7XG4gIC0tYnRuLXByaW0tYWNjZW50LWNvbG9yLWFjdGl2ZTogdmFyKC0tY29sb3Itc3RhdGUtYWN0aXZlKTtcbiAgLS1idG4tcHJpbS1hY2NlbnQtY29sb3ItaG92ZXI6IHZhcigtLWNvbG9yLXN0YXRlLWhvdmVyKTtcbiAgLS1idG4tcHJpbS1hY2NlbnQtY29sb3ItZGlzYWJsZWQ6IHZhcigtLWNvbG9yLXN0YXRlLWRpc2FibGVkKTtcblxuICAtLWJ0bi1wcmltLWJnLWNvbG9yOiB2YXIoLS1idG4tcHJpbS1hY2NlbnQtY29sb3IpO1xuICAtLWJ0bi1wcmltLWJnLWNvbG9yLWFjdGl2ZTogdmFyKC0tYnRuLXByaW0tYWNjZW50LWNvbG9yLWFjdGl2ZSk7XG4gIC0tYnRuLXByaW0tYmctY29sb3ItZGlzYWJsZWQ6IHZhcigtLWJ0bi1wcmltLWFjY2VudC1jb2xvci1kaXNhYmxlZCk7XG4gIC0tYnRuLXByaW0tYmctY29sb3ItaG92ZXI6IHZhcigtLWJ0bi1wcmltLWFjY2VudC1jb2xvci1ob3Zlcik7XG4gIC0tYnRuLXByaW0tYm9yZGVyLWNvbG9yOiB2YXIoLS1idG4tcHJpbS1hY2NlbnQtY29sb3IpO1xuICAtLWJ0bi1wcmltLWJvcmRlci1jb2xvci1hY3RpdmU6IHZhcigtLWJ0bi1wcmltLWFjY2VudC1jb2xvci1hY3RpdmUpO1xuICAtLWJ0bi1wcmltLWJvcmRlci1jb2xvci1kaXNhYmxlZDogdmFyKC0tYnRuLXByaW0tYWNjZW50LWNvbG9yLWRpc2FibGVkKTtcbiAgLS1idG4tcHJpbS1ib3JkZXItY29sb3ItaG92ZXI6IHZhcigtLWJ0bi1wcmltLWFjY2VudC1jb2xvci1ob3Zlcik7XG4gIC0tYnRuLXByaW0tbG9hZGVyLWNvbG9yLWRpc2FibGVkOiB2YXIoLS1jb2xvci1uZXV0cmFsLTcpO1xuICAtLWJ0bi1wcmltLXRleHQtY29sb3I6IHZhcigtLWNvbG9yLW5ldXRyYWwtMSk7XG4gIC0tYnRuLXByaW0tdGV4dC1jb2xvci1hY3RpdmU6IHZhcigtLWNvbG9yLW5ldXRyYWwtMSk7XG4gIC0tYnRuLXByaW0tdGV4dC1jb2xvci1kaXNhYmxlZDogdmFyKC0tY29sb3ItbmV1dHJhbC0zKTtcbiAgLS1idG4tcHJpbS10ZXh0LWNvbG9yLWhvdmVyOiB2YXIoLS1jb2xvci1uZXV0cmFsLTEpO1xuXG4gIC8qIEFsZXJ0IGJ0biBiYWNrZ3JvdW5kLCBib3JkZXIgJiB0ZXh0Ki9cbiAgLS1idG4tYWxlcnQtYmctY29sb3I6IHZhcigtLWNvbG9yLXByb21wdC1hbGVydCk7XG4gIC0tYnRuLWFsZXJ0LWJnLWNvbG9yLWFjdGl2ZTogdmFyKC0tY29sb3ItcHJvbXB0LWFsZXJ0KTtcbiAgLS1idG4tYWxlcnQtYmctY29sb3ItZGlzYWJsZWQ6IHZhcigtLWNvbG9yLW5ldXRyYWwtMyk7XG4gIC0tYnRuLWFsZXJ0LWJnLWNvbG9yLWhvdmVyOiB2YXIoLS1jb2xvci1wcm9tcHQtYWxlcnQpO1xuICAtLWJ0bi1hbGVydC1ib3JkZXItY29sb3I6IHZhcigtLWNvbG9yLXByb21wdC1hbGVydCk7XG4gIC0tYnRuLWFsZXJ0LWJvcmRlci1jb2xvci1hY3RpdmU6IHZhcigtLWNvbG9yLXByb21wdC1hbGVydCk7XG4gIC0tYnRuLWFsZXJ0LWJvcmRlci1jb2xvci1kaXNhYmxlZDogdmFyKC0tY29sb3Itc3RhdGUtZGlzYWJsZWQpO1xuICAtLWJ0bi1hbGVydC1ib3JkZXItY29sb3ItaG92ZXI6IHZhcigtLWNvbG9yLXByb21wdC1hbGVydCk7XG4gIC0tYnRuLWFsZXJ0LXRleHQtY29sb3I6IHZhcigtLWNvbG9yLW5ldXRyYWwtMSk7XG4gIC0tYnRuLWFsZXJ0LXRleHQtY29sb3ItYWN0aXZlOiB2YXIoLS1jb2xvci1uZXV0cmFsLTEpO1xuICAtLWJ0bi1hbGVydC10ZXh0LWNvbG9yLWRpc2FibGVkOiB2YXIoLS1jb2xvci1zdGF0ZS1kaXNhYmxlZCk7XG4gIC0tYnRuLWFsZXJ0LXRleHQtY29sb3ItaG92ZXI6IHZhcigtLWNvbG9yLW5ldXRyYWwtMSk7XG5cbiAgLyogQ2hlY2tib3ggYnRuIGJhY2tncm91bmQgJiB0ZXh0Ki9cbiAgLS1idG4tY2hlY2tib3gtYmctY29sb3Itc2VsZWN0ZWQ6IHZhcigtLWNvbG9yLW5ldXRyYWwtMyk7XG4gIC0tYnRuLWNoZWNrYm94LWJnLWNvbG9yLWhvdmVyOiB2YXIoLS1jb2xvci1zdGF0ZS1oaWdobGlnaHQtbmV1dHJhbCk7XG4gIC0tYnRuLWNoZWNrYm94LXRleHQtY29sb3I6IHZhcigtLWNvbG9yLXN0YXRlKTtcbiAgLS1idG4tY2hlY2tib3gtdGV4dC1jb2xvci1hY3RpdmU6IHZhcigtLWNvbG9yLXN0YXRlLWFjdGl2ZSk7XG4gIC0tYnRuLWNoZWNrYm94LXRleHQtY29sb3ItZm9jdXM6IHZhcigtLWNvbG9yLXN0YXRlLWZvY3VzKTtcbiAgLS1idG4tY2hlY2tib3gtdGV4dC1jb2xvci1zZWxlY3RlZDogdmFyKC0tY29sb3ItbmV1dHJhbC03KTtcblxuICAvKiBUb29sYmFyIGJ0biBiYWNrZ3JvdW5kICYgdGV4dCovXG4gIC0tYnRuLXRvb2xiYXItYmctY29sb3I6IHRyYW5zcGFyZW50O1xuICAtLWJ0bi10b29sYmFyLWJnLWNvbG9yLWhvdmVyOiB2YXIoLS1jb2xvci1uZXV0cmFsLTQpO1xuICAtLWJ0bi10b29sYmFyLWJnLWNvbG9yLWZvY3VzOiB2YXIoLS1jb2xvci1uZXV0cmFsLTQpO1xuICAtLWJ0bi10b29sYmFyLWJnLWNvbG9yLXNlbGVjdGVkOiB2YXIoLS1jb2xvci1zdGF0ZS1hY3RpdmUpO1xuICAtLWJ0bi10b29sYmFyLXRleHQtY29sb3I6IHZhcigtLWNvbG9yLW5ldXRyYWwtNik7XG4gIC0tYnRuLXRvb2xiYXItdGV4dC1jb2xvci1zZWxlY3RlZDogdmFyKC0tY29sb3ItbmV1dHJhbC0xKTtcblxuICAvKiBGb3JtIGVycm9ycyovXG4gIC0tZm9ybS1lcnJvci1iZy1jb2xvcjogdmFyKC0tY29sb3ItcHJvbXB0LWFsZXJ0LWJnKTtcbiAgLS1mb3JtLWVycm9yLXRleHQtY29sb3I6IHZhcigtLWNvbG9yLXByb21wdC1hbGVydCk7XG5cbiAgLyogRGVwcmVjYXRlZCBzaW5jZSAxOC4wKi9cbiAgLS1idG4tYWNjZW50LWNvbG9yLWZvY3VzOiB2YXIoLS1jb2xvci1zdGF0ZS1mb2N1cyk7XG4gIC0tYnRuLWJnLWNvbG9yLWZvY3VzOiB2YXIoLS1jb2xvci1uZXV0cmFsLTMpO1xuICAtLWJ0bi1ib3JkZXItY29sb3ItZm9jdXM6IHZhcigtLWJ0bi1hY2NlbnQtY29sb3ItZm9jdXMpO1xuICAtLWJ0bi10ZXh0LWNvbG9yLWZvY3VzOiB2YXIoLS1idG4tYWNjZW50LWNvbG9yLWZvY3VzKTtcbiAgLS1idG4tcHJpbS1hY2NlbnQtY29sb3ItZm9jdXM6IHZhcigtLWNvbG9yLXN0YXRlLWZvY3VzKTtcbiAgLS1idG4tcHJpbS1iZy1jb2xvci1mb2N1czogdmFyKC0tYnRuLXByaW0tYWNjZW50LWNvbG9yLWZvY3VzKTtcbiAgLS1idG4tcHJpbS1ib3JkZXItY29sb3ItZm9jdXM6IHZhcigtLWJ0bi1wcmltLWFjY2VudC1jb2xvci1mb2N1cyk7XG4gIC0tYnRuLXByaW0tdGV4dC1jb2xvci1mb2N1czogdmFyKC0tY29sb3ItbmV1dHJhbC0xKTtcbiAgLS1idG4tYWxlcnQtYmctY29sb3ItZm9jdXM6IHZhcigtLWNvbG9yLXByb21wdC1hbGVydCk7XG4gIC0tYnRuLWFsZXJ0LWJvcmRlci1jb2xvci1mb2N1czogdmFyKC0tY29sb3ItcHJvbXB0LWFsZXJ0KTtcbiAgLS1idG4tYWxlcnQtdGV4dC1jb2xvci1mb2N1czogdmFyKC0tY29sb3ItbmV1dHJhbC0xKTtcbiAgLS1mb3JtLWNoZWNrYm94LWJnLWNvbG9yLWZvY3VzOiB2YXIoLS1jb2xvci1zdGF0ZS1oaWdobGlnaHQtbmV1dHJhbCk7XG59XG5cbiIsIi8qIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIFRvdGFyYSBFbnRlcnByaXNlIEV4dGVuc2lvbnMuKi9cbi8qKi9cbi8qIENvcHlyaWdodCAoQykgMjAyMCBvbndhcmRzIFRvdGFyYSBMZWFybmluZyBTb2x1dGlvbnMgTFREKi9cbi8qKi9cbi8qIFRvdGFyYSBFbnRlcnByaXNlIEV4dGVuc2lvbnMgaXMgcHJvdmlkZWQgb25seSB0byBUb3RhcmEqL1xuLyogTGVhcm5pbmcgU29sdXRpb25zIExURCdzIGN1c3RvbWVycyBhbmQgcGFydG5lcnMsIHB1cnN1YW50IHRvKi9cbi8qIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZiBhIHNlcGFyYXRlIGFncmVlbWVudCB3aXRoIFRvdGFyYSovXG4vKiBMZWFybmluZyBTb2x1dGlvbnMgTFREIG9yIGl0cyBhZmZpbGlhdGUuKi9cbi8qKi9cbi8qIElmIHlvdSBkbyBub3QgaGF2ZSBhbiBhZ3JlZW1lbnQgd2l0aCBUb3RhcmEgTGVhcm5pbmcgU29sdXRpb25zKi9cbi8qIExURCwgeW91IG1heSBub3QgYWNjZXNzLCB1c2UsIG1vZGlmeSwgb3IgZGlzdHJpYnV0ZSB0aGlzIHNvZnR3YXJlLiovXG4vKiBQbGVhc2UgY29udGFjdCBbbGljZW5zaW5nQHRvdGFyYWxlYXJuaW5nLmNvbV0gZm9yIG1vcmUgaW5mb3JtYXRpb24uKi9cbi8qKi9cbi8qIEBhdXRob3IgICAgS2V2aW4gSG90dGluZ2VyIDxrZXZpbi5ob3R0aW5nZXJAdG90YXJhbGVhcm5pbmcuY29tPiovXG4vKiBAbW9kdWxlIHR1aWNrYWdlICAgdHVpKi9cblxuOnJvb3Qge1xuICAvKiBBdmF0YXIqL1xuICAtLWF2YXRhci1ib3JkZXItY29sb3I6IHZhcigtLWNvbG9yLXByaW1hcnkpO1xufVxuXG4iLCIvKiBUaGlzIGZpbGUgaXMgcGFydCBvZiBUb3RhcmEgRW50ZXJwcmlzZSBFeHRlbnNpb25zLiovXG4vKiovXG4vKiBDb3B5cmlnaHQgKEMpIDIwMjAgb253YXJkcyBUb3RhcmEgTGVhcm5pbmcgU29sdXRpb25zIExURCovXG4vKiovXG4vKiBUb3RhcmEgRW50ZXJwcmlzZSBFeHRlbnNpb25zIGlzIHByb3ZpZGVkIG9ubHkgdG8gVG90YXJhKi9cbi8qIExlYXJuaW5nIFNvbHV0aW9ucyBMVEQncyBjdXN0b21lcnMgYW5kIHBhcnRuZXJzLCBwdXJzdWFudCB0byovXG4vKiB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgb2YgYSBzZXBhcmF0ZSBhZ3JlZW1lbnQgd2l0aCBUb3RhcmEqL1xuLyogTGVhcm5pbmcgU29sdXRpb25zIExURCBvciBpdHMgYWZmaWxpYXRlLiovXG4vKiovXG4vKiBJZiB5b3UgZG8gbm90IGhhdmUgYW4gYWdyZWVtZW50IHdpdGggVG90YXJhIExlYXJuaW5nIFNvbHV0aW9ucyovXG4vKiBMVEQsIHlvdSBtYXkgbm90IGFjY2VzcywgdXNlLCBtb2RpZnksIG9yIGRpc3RyaWJ1dGUgdGhpcyBzb2Z0d2FyZS4qL1xuLyogUGxlYXNlIGNvbnRhY3QgW2xpY2Vuc2luZ0B0b3RhcmFsZWFybmluZy5jb21dIGZvciBtb3JlIGluZm9ybWF0aW9uLiovXG4vKiovXG4vKiBAYXV0aG9yICAgIEtldmluIEhvdHRpbmdlciA8a2V2aW4uaG90dGluZ2VyQHRvdGFyYWxlYXJuaW5nLmNvbT4qL1xuLyogQG1vZHVsZSB0dWlja2FnZSAgIHR1aSovXG5cbjpyb290IHtcbiAgLyogRHJvcCBkb3duKi9cbiAgLS1kcm9wZG93bi1pdGVtLWJnLWNvbG9yLWhvdmVyOiB2YXIoLS1jb2xvci1uZXV0cmFsLTMpO1xuICAtLWRyb3Bkb3duLWl0ZW0tYmctY29sb3ItZm9jdXM6IHZhcigtLWNvbG9yLW5ldXRyYWwtMyk7XG4gIC0tZHJvcGRvd24taXRlbS1iZy1jb2xvci1kaXNhYmxlZC1mb2N1czogdmFyKC0tY29sb3ItbmV1dHJhbC0yKTtcbiAgLS1kcm9wZG93bi1pdGVtLXRleHQtY29sb3I6IHZhcigtLWNvbG9yLXRleHQpO1xuICAtLWRyb3Bkb3duLWl0ZW0tdGV4dC1jb2xvci1ob3ZlcjogdmFyKC0tY29sb3ItdGV4dCk7XG4gIC0tZHJvcGRvd24taXRlbS10ZXh0LWNvbG9yLWZvY3VzOiB2YXIoLS1jb2xvci10ZXh0KTtcbiAgLS1kcm9wZG93bi1pdGVtLXRleHQtY29sb3ItZGlzYWJsZWQ6IHZhcigtLWNvbG9yLXRleHQtZGlzYWJsZWQpO1xuICAtLWRyb3Bkb3duLWl0ZW0tZm9jdXMtcmluZy1jb2xvcjogdmFyKC0tY29sb3Itc3RhdGUpO1xuICAtLWRyb3Bkb3duLW1lbnUtYmctY29sb3I6IHZhcigtLWNvbG9yLWJhY2tncm91bmQpO1xuICAtLWRyb3Bkb3duLW1lbnUtYm9yZGVyLWNvbG9yOiB2YXIoLS1jb2xvci1uZXV0cmFsLTUpO1xufVxuXG4iLCIvKiBUaGlzIGZpbGUgaXMgcGFydCBvZiBUb3RhcmEgRW50ZXJwcmlzZSBFeHRlbnNpb25zLiovXG4vKiovXG4vKiBDb3B5cmlnaHQgKEMpIDIwMjAgb253YXJkcyBUb3RhcmEgTGVhcm5pbmcgU29sdXRpb25zIExURCovXG4vKiovXG4vKiBUb3RhcmEgRW50ZXJwcmlzZSBFeHRlbnNpb25zIGlzIHByb3ZpZGVkIG9ubHkgdG8gVG90YXJhKi9cbi8qIExlYXJuaW5nIFNvbHV0aW9ucyBMVEQncyBjdXN0b21lcnMgYW5kIHBhcnRuZXJzLCBwdXJzdWFudCB0byovXG4vKiB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgb2YgYSBzZXBhcmF0ZSBhZ3JlZW1lbnQgd2l0aCBUb3RhcmEqL1xuLyogTGVhcm5pbmcgU29sdXRpb25zIExURCBvciBpdHMgYWZmaWxpYXRlLiovXG4vKiovXG4vKiBJZiB5b3UgZG8gbm90IGhhdmUgYW4gYWdyZWVtZW50IHdpdGggVG90YXJhIExlYXJuaW5nIFNvbHV0aW9ucyovXG4vKiBMVEQsIHlvdSBtYXkgbm90IGFjY2VzcywgdXNlLCBtb2RpZnksIG9yIGRpc3RyaWJ1dGUgdGhpcyBzb2Z0d2FyZS4qL1xuLyogUGxlYXNlIGNvbnRhY3QgW2xpY2Vuc2luZ0B0b3RhcmFsZWFybmluZy5jb21dIGZvciBtb3JlIGluZm9ybWF0aW9uLiovXG4vKiovXG4vKiBAYXV0aG9yICAgIEtldmluIEhvdHRpbmdlciA8a2V2aW4uaG90dGluZ2VyQHRvdGFyYWxlYXJuaW5nLmNvbT4qL1xuLyogQG1vZHVsZSB0dWlja2FnZSAgIHR1aSovXG5cbjpyb290IHtcbiAgLyoqL1xuICAvKiBEYXRhIHRhYmxlKi9cbiAgLyoqL1xuICAtLWRhdGF0YWJsZS1iZy1hcmNoaXZlZDogdmFyKC0tY29sb3ItbmV1dHJhbC0yKTtcbiAgLS1kYXRhdGFibGUtY2VsbC1oZWFkZXItdGV4dC1jb2xvcjogdmFyKC0tY29sb3ItbmV1dHJhbC03KTtcbiAgLyogRXhwYW5kZWQgc3R5bGVzKi9cbiAgLS1kYXRhdGFibGUtZXhwYW5kZWQtYmctY29sb3I6IHZhcigtLWNvbG9yLW5ldXRyYWwtMSk7XG4gIC0tZGF0YXRhYmxlLWV4cGFuZGVkLWJvcmRlci1jb2xvcjogdmFyKC0tY29sb3ItbmV1dHJhbC01KTtcbiAgLS1kYXRhdGFibGUtZXhwYW5kZWQtdGV4dC1jb2xvcjogdmFyKC0tY29sb3ItbmV1dHJhbC03KTtcbiAgLyogUm93IHN0eWxlcyovXG4gIC0tZGF0YXRhYmxlLXJvdy1iZy1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIC0tZGF0YXRhYmxlLXJvdy1iZy1jb2xvci1hY3RpdmU6IHZhcigtLWNvbG9yLW5ldXRyYWwtMyk7XG4gIC0tZGF0YXRhYmxlLXJvdy1iZy1jb2xvci1mb2N1czogdmFyKC0tY29sb3ItbmV1dHJhbC0zKTtcbiAgLS1kYXRhdGFibGUtcm93LWJnLWNvbG9yLW9kZDogdmFyKC0tY29sb3ItbmV1dHJhbC0yKTtcbiAgLS1kYXRhdGFibGUtcm93LWJvcmRlci1jb2xvcjogdmFyKC0tY29sb3ItbmV1dHJhbC01KTtcbiAgLS1kYXRhdGFibGUtcm93LWZpcnN0LWJvcmRlci1jb2xvcjogdmFyKC0tY29sb3ItbmV1dHJhbC03KTtcbiAgLyogU2VsZWN0IGFsbCBwcm9tcHQqL1xuICAtLWRhdGF0YWJsZS1zZWxlY3QtZXZlcnl0aGluZy1wcm9tcHQtYmc6IHZhcigtLWNvbG9yLW5ldXRyYWwtMik7XG59XG5cbiIsIi8qIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIFRvdGFyYSBFbnRlcnByaXNlIEV4dGVuc2lvbnMuKi9cbi8qKi9cbi8qIENvcHlyaWdodCAoQykgMjAyMCBvbndhcmRzIFRvdGFyYSBMZWFybmluZyBTb2x1dGlvbnMgTFREKi9cbi8qKi9cbi8qIFRvdGFyYSBFbnRlcnByaXNlIEV4dGVuc2lvbnMgaXMgcHJvdmlkZWQgb25seSB0byBUb3RhcmEqL1xuLyogTGVhcm5pbmcgU29sdXRpb25zIExURCdzIGN1c3RvbWVycyBhbmQgcGFydG5lcnMsIHB1cnN1YW50IHRvKi9cbi8qIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZiBhIHNlcGFyYXRlIGFncmVlbWVudCB3aXRoIFRvdGFyYSovXG4vKiBMZWFybmluZyBTb2x1dGlvbnMgTFREIG9yIGl0cyBhZmZpbGlhdGUuKi9cbi8qKi9cbi8qIElmIHlvdSBkbyBub3QgaGF2ZSBhbiBhZ3JlZW1lbnQgd2l0aCBUb3RhcmEgTGVhcm5pbmcgU29sdXRpb25zKi9cbi8qIExURCwgeW91IG1heSBub3QgYWNjZXNzLCB1c2UsIG1vZGlmeSwgb3IgZGlzdHJpYnV0ZSB0aGlzIHNvZnR3YXJlLiovXG4vKiBQbGVhc2UgY29udGFjdCBbbGljZW5zaW5nQHRvdGFyYWxlYXJuaW5nLmNvbV0gZm9yIG1vcmUgaW5mb3JtYXRpb24uKi9cbi8qKi9cbi8qIEBhdXRob3IgICAgS2V2aW4gSG90dGluZ2VyIDxrZXZpbi5ob3R0aW5nZXJAdG90YXJhbGVhcm5pbmcuY29tPiovXG4vKiBAbW9kdWxlIHR1aWNrYWdlICAgdHVpKi9cblxuOnJvb3Qge1xuICAvKiovXG4gIC8qIFRhYnMqL1xuICAvKiovXG4gIC0tdGFicy1iZy1jb2xvcjogdmFyKC0tY29sb3ItbmV1dHJhbC0zKTtcbiAgLS10YWJzLWJnLWNvbG9yLXNlbGVjdGVkOiB2YXIoLS1jb2xvci1uZXV0cmFsLTEpO1xuICAtLXRhYnMtYmctY29sb3ItZGlzYWJsZWQ6IHZhcigtLWNvbG9yLW5ldXRyYWwtMyk7XG4gIC0tdGFicy1iZy1jb2xvci1mb2N1czogdmFyKC0tY29sb3ItbmV1dHJhbC0zKTtcbiAgLS10YWJzLXNlbGVjdGVkLWJhci1jb2xvcjogdmFyKC0tY29sb3ItcHJpbWFyeSk7XG5cbiAgLS10YWJzLXRleHQtY29sb3I6IHZhcigtLWNvbG9yLXN0YXRlKTtcbiAgLS10YWJzLXRleHQtY29sb3ItYWN0aXZlOiB2YXIoLS1jb2xvci1zdGF0ZS1hY3RpdmUpO1xuICAtLXRhYnMtdGV4dC1jb2xvci1kaXNhYmxlZDogdmFyKC0tY29sb3Itc3RhdGUtZGlzYWJsZWQpO1xuICAtLXRhYnMtdGV4dC1jb2xvci1mb2N1czogdmFyKC0tY29sb3Itc3RhdGUtZm9jdXMpO1xuICAtLXRhYnMtdGV4dC1jb2xvci1zZWxlY3RlZDogdmFyKC0tY29sb3ItbmV1dHJhbC03KTtcblxuICAtLXRhYnMtYm9yZGVyLWNvbG9yOiB2YXIoLS1jb2xvci1uZXV0cmFsLTUpO1xuICAtLXRhYnMtYm9yZGVyLWNvbG9yLXNlbGVjdGVkOiB2YXIoLS1jb2xvci1uZXV0cmFsLTEpO1xuICAtLXRhYnMtYm9yZGVyLWNvbG9yLWRpc2FibGVkOiB2YXIoLS1jb2xvci1uZXV0cmFsLTQpO1xufVxuXG4iLCIvKiBUaGlzIGZpbGUgaXMgcGFydCBvZiBUb3RhcmEgRW50ZXJwcmlzZSBFeHRlbnNpb25zLiovXG4vKiovXG4vKiBDb3B5cmlnaHQgKEMpIDIwMjAgb253YXJkcyBUb3RhcmEgTGVhcm5pbmcgU29sdXRpb25zIExURCovXG4vKiovXG4vKiBUb3RhcmEgRW50ZXJwcmlzZSBFeHRlbnNpb25zIGlzIHByb3ZpZGVkIG9ubHkgdG8gVG90YXJhKi9cbi8qIExlYXJuaW5nIFNvbHV0aW9ucyBMVEQncyBjdXN0b21lcnMgYW5kIHBhcnRuZXJzLCBwdXJzdWFudCB0byovXG4vKiB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgb2YgYSBzZXBhcmF0ZSBhZ3JlZW1lbnQgd2l0aCBUb3RhcmEqL1xuLyogTGVhcm5pbmcgU29sdXRpb25zIExURCBvciBpdHMgYWZmaWxpYXRlLiovXG4vKiovXG4vKiBJZiB5b3UgZG8gbm90IGhhdmUgYW4gYWdyZWVtZW50IHdpdGggVG90YXJhIExlYXJuaW5nIFNvbHV0aW9ucyovXG4vKiBMVEQsIHlvdSBtYXkgbm90IGFjY2VzcywgdXNlLCBtb2RpZnksIG9yIGRpc3RyaWJ1dGUgdGhpcyBzb2Z0d2FyZS4qL1xuLyogUGxlYXNlIGNvbnRhY3QgW2xpY2Vuc2luZ0B0b3RhcmFsZWFybmluZy5jb21dIGZvciBtb3JlIGluZm9ybWF0aW9uLiovXG4vKiovXG4vKiBAYXV0aG9yICAgIEtldmluIEhvdHRpbmdlciA8a2V2aW4uaG90dGluZ2VyQHRvdGFyYWxlYXJuaW5nLmNvbT4qL1xuLyogQG1vZHVsZSB0dWlja2FnZSAgIHR1aSovXG5cbjpyb290IHtcbiAgLyoqL1xuICAvKiBDYXJkKi9cbiAgLyoqL1xuICAtLWNhcmQtYm9yZGVyLWNvbG9yOiB2YXIoLS1jb2xvci1uZXV0cmFsLTUpO1xufVxuXG4iLCIvKiBUaGlzIGZpbGUgaXMgcGFydCBvZiBUb3RhcmEgRW50ZXJwcmlzZSBFeHRlbnNpb25zLiovXG4vKiovXG4vKiBDb3B5cmlnaHQgKEMpIDIwMjAgb253YXJkcyBUb3RhcmEgTGVhcm5pbmcgU29sdXRpb25zIExURCovXG4vKiovXG4vKiBUb3RhcmEgRW50ZXJwcmlzZSBFeHRlbnNpb25zIGlzIHByb3ZpZGVkIG9ubHkgdG8gVG90YXJhKi9cbi8qIExlYXJuaW5nIFNvbHV0aW9ucyBMVEQncyBjdXN0b21lcnMgYW5kIHBhcnRuZXJzLCBwdXJzdWFudCB0byovXG4vKiB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgb2YgYSBzZXBhcmF0ZSBhZ3JlZW1lbnQgd2l0aCBUb3RhcmEqL1xuLyogTGVhcm5pbmcgU29sdXRpb25zIExURCBvciBpdHMgYWZmaWxpYXRlLiovXG4vKiovXG4vKiBJZiB5b3UgZG8gbm90IGhhdmUgYW4gYWdyZWVtZW50IHdpdGggVG90YXJhIExlYXJuaW5nIFNvbHV0aW9ucyovXG4vKiBMVEQsIHlvdSBtYXkgbm90IGFjY2VzcywgdXNlLCBtb2RpZnksIG9yIGRpc3RyaWJ1dGUgdGhpcyBzb2Z0d2FyZS4qL1xuLyogUGxlYXNlIGNvbnRhY3QgW2xpY2Vuc2luZ0B0b3RhcmFsZWFybmluZy5jb21dIGZvciBtb3JlIGluZm9ybWF0aW9uLiovXG4vKiovXG4vKiBAYXV0aG9yICAgIEtldmluIEhvdHRpbmdlciA8a2V2aW4uaG90dGluZ2VyQHRvdGFyYWxlYXJuaW5nLmNvbT4qL1xuLyogQG1vZHVsZSB0dWlja2FnZSAgIHR1aSovXG5cbjpyb290IHtcbiAgLyoqL1xuICAvKiBDaGFydHMqL1xuICAvKiovXG4gIC0tY29sb3ItY2hhcnQtZG91Z2hudXQtbGFiZWw6IHZhcigtLWNvbG9yLW5ldXRyYWwtNyk7XG59XG5cbiIsIi8qIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIFRvdGFyYSBFbnRlcnByaXNlIEV4dGVuc2lvbnMuKi9cbi8qKi9cbi8qIENvcHlyaWdodCAoQykgMjAyMCBvbndhcmRzIFRvdGFyYSBMZWFybmluZyBTb2x1dGlvbnMgTFREKi9cbi8qKi9cbi8qIFRvdGFyYSBFbnRlcnByaXNlIEV4dGVuc2lvbnMgaXMgcHJvdmlkZWQgb25seSB0byBUb3RhcmEqL1xuLyogTGVhcm5pbmcgU29sdXRpb25zIExURCdzIGN1c3RvbWVycyBhbmQgcGFydG5lcnMsIHB1cnN1YW50IHRvKi9cbi8qIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZiBhIHNlcGFyYXRlIGFncmVlbWVudCB3aXRoIFRvdGFyYSovXG4vKiBMZWFybmluZyBTb2x1dGlvbnMgTFREIG9yIGl0cyBhZmZpbGlhdGUuKi9cbi8qKi9cbi8qIElmIHlvdSBkbyBub3QgaGF2ZSBhbiBhZ3JlZW1lbnQgd2l0aCBUb3RhcmEgTGVhcm5pbmcgU29sdXRpb25zKi9cbi8qIExURCwgeW91IG1heSBub3QgYWNjZXNzLCB1c2UsIG1vZGlmeSwgb3IgZGlzdHJpYnV0ZSB0aGlzIHNvZnR3YXJlLiovXG4vKiBQbGVhc2UgY29udGFjdCBbbGljZW5zaW5nQHRvdGFyYWxlYXJuaW5nLmNvbV0gZm9yIG1vcmUgaW5mb3JtYXRpb24uKi9cbi8qKi9cbi8qIEBhdXRob3IgICAgS2V2aW4gSG90dGluZ2VyIDxrZXZpbi5ob3R0aW5nZXJAdG90YXJhbGVhcm5pbmcuY29tPiovXG4vKiBAbW9kdWxlIHR1aWNrYWdlICAgdHVpKi9cblxuOnJvb3Qge1xuICAvKiovXG4gIC8qIEZpbHRlcnMqL1xuICAvKiovXG4gIC0tZmlsdGVyLWJhci1ib3JkZXItY29sb3I6IHZhcigtLWNvbG9yLW5ldXRyYWwtNSk7XG4gIC0tZmlsdGVyLXNlYXJjaC1pY29uLWNvbG9yOiB2YXIoLS1jb2xvci1uZXV0cmFsLTYpO1xuICAtLWZpbHRlci1zZWFyY2gtY2xlYXItaWNvbi1jb2xvcjogdmFyKC0tY29sb3ItbmV1dHJhbC02KTtcbn1cblxuIiwiLyogVGhpcyBmaWxlIGlzIHBhcnQgb2YgVG90YXJhIEVudGVycHJpc2UgRXh0ZW5zaW9ucy4qL1xuLyoqL1xuLyogQ29weXJpZ2h0IChDKSAyMDIwIG9ud2FyZHMgVG90YXJhIExlYXJuaW5nIFNvbHV0aW9ucyBMVEQqL1xuLyoqL1xuLyogVG90YXJhIEVudGVycHJpc2UgRXh0ZW5zaW9ucyBpcyBwcm92aWRlZCBvbmx5IHRvIFRvdGFyYSovXG4vKiBMZWFybmluZyBTb2x1dGlvbnMgTFREJ3MgY3VzdG9tZXJzIGFuZCBwYXJ0bmVycywgcHVyc3VhbnQgdG8qL1xuLyogdGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIG9mIGEgc2VwYXJhdGUgYWdyZWVtZW50IHdpdGggVG90YXJhKi9cbi8qIExlYXJuaW5nIFNvbHV0aW9ucyBMVEQgb3IgaXRzIGFmZmlsaWF0ZS4qL1xuLyoqL1xuLyogSWYgeW91IGRvIG5vdCBoYXZlIGFuIGFncmVlbWVudCB3aXRoIFRvdGFyYSBMZWFybmluZyBTb2x1dGlvbnMqL1xuLyogTFRELCB5b3UgbWF5IG5vdCBhY2Nlc3MsIHVzZSwgbW9kaWZ5LCBvciBkaXN0cmlidXRlIHRoaXMgc29mdHdhcmUuKi9cbi8qIFBsZWFzZSBjb250YWN0IFtsaWNlbnNpbmdAdG90YXJhbGVhcm5pbmcuY29tXSBmb3IgbW9yZSBpbmZvcm1hdGlvbi4qL1xuLyoqL1xuLyogQGF1dGhvciAgICBLZXZpbiBIb3R0aW5nZXIgPGtldmluLmhvdHRpbmdlckB0b3RhcmFsZWFybmluZy5jb20+Ki9cbi8qIEBtb2R1bGUgdHVpY2thZ2UgICB0dWkqL1xuXG46cm9vdCB7XG4gIC8qKi9cbiAgLyogVGFnKi9cbiAgLyoqL1xuICAtLXRhZy1iZy1jb2xvcjogdmFyKC0tY29sb3ItbmV1dHJhbC0yKTtcbiAgLS10YWctYm9yZGVyLWNvbG9yOiB2YXIoLS1jb2xvci1uZXV0cmFsLTUpO1xuICAtLXRhZy1hY3RpdmUtY29sb3I6IHZhcigtLWNvbG9yLXN0YXRlKTtcbiAgLS10YWctYnV0dG9uLWNvbG9yOiB2YXIoLS1jb2xvci1uZXV0cmFsLTcpO1xufVxuXG4iLCIvKiBUaGlzIGZpbGUgaXMgcGFydCBvZiBUb3RhcmEgRW50ZXJwcmlzZSBFeHRlbnNpb25zLiovXG4vKiovXG4vKiBDb3B5cmlnaHQgKEMpIDIwMjAgb253YXJkcyBUb3RhcmEgTGVhcm5pbmcgU29sdXRpb25zIExURCovXG4vKiovXG4vKiBUb3RhcmEgRW50ZXJwcmlzZSBFeHRlbnNpb25zIGlzIHByb3ZpZGVkIG9ubHkgdG8gVG90YXJhKi9cbi8qIExlYXJuaW5nIFNvbHV0aW9ucyBMVEQncyBjdXN0b21lcnMgYW5kIHBhcnRuZXJzLCBwdXJzdWFudCB0byovXG4vKiB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgb2YgYSBzZXBhcmF0ZSBhZ3JlZW1lbnQgd2l0aCBUb3RhcmEqL1xuLyogTGVhcm5pbmcgU29sdXRpb25zIExURCBvciBpdHMgYWZmaWxpYXRlLiovXG4vKiovXG4vKiBJZiB5b3UgZG8gbm90IGhhdmUgYW4gYWdyZWVtZW50IHdpdGggVG90YXJhIExlYXJuaW5nIFNvbHV0aW9ucyovXG4vKiBMVEQsIHlvdSBtYXkgbm90IGFjY2VzcywgdXNlLCBtb2RpZnksIG9yIGRpc3RyaWJ1dGUgdGhpcyBzb2Z0d2FyZS4qL1xuLyogUGxlYXNlIGNvbnRhY3QgW2xpY2Vuc2luZ0B0b3RhcmFsZWFybmluZy5jb21dIGZvciBtb3JlIGluZm9ybWF0aW9uLiovXG4vKiovXG4vKiBAYXV0aG9yICAgIEtldmluIEhvdHRpbmdlciA8a2V2aW4uaG90dGluZ2VyQHRvdGFyYWxlYXJuaW5nLmNvbT4qL1xuLyogQG1vZHVsZSB0dWlja2FnZSAgIHR1aSovXG5cbjpyb290IHtcbiAgLyoqL1xuICAvKiBQcm9ncmVzcyovXG4gIC8qKi9cbiAgLS1wcm9ncmVzcy12YWx1ZS1iZy1jb2xvcjogdmFyKC0tY29sb3Itc2Vjb25kYXJ5KTtcbiAgLS1wcm9ncmVzcy1jb250YWluZXItYmctY29sb3I6IHZhcigtLWNvbG9yLW5ldXRyYWwtNCk7XG4gIC0tcHJvZ3Jlc3MtYm9yZGVyLWNvbG9yOiB2YXIoLS1jb2xvci1uZXV0cmFsLTEpO1xuICAtLXByb2dyZXNzLWNvbnRhaW5lci10ZXh0LWNvbG9yOiB2YXIoLS1jb2xvci1uZXV0cmFsLTcpO1xuICAtLXByb2dyZXNzLXZhbHVlLXRleHQtY29sb3I6IHZhcigtLWNvbG9yLW5ldXRyYWwtMSk7XG59XG5cbiIsIi8qIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIFRvdGFyYSBFbnRlcnByaXNlIEV4dGVuc2lvbnMuKi9cbi8qKi9cbi8qIENvcHlyaWdodCAoQykgMjAyMCBvbndhcmRzIFRvdGFyYSBMZWFybmluZyBTb2x1dGlvbnMgTFREKi9cbi8qKi9cbi8qIFRvdGFyYSBFbnRlcnByaXNlIEV4dGVuc2lvbnMgaXMgcHJvdmlkZWQgb25seSB0byBUb3RhcmEqL1xuLyogTGVhcm5pbmcgU29sdXRpb25zIExURCdzIGN1c3RvbWVycyBhbmQgcGFydG5lcnMsIHB1cnN1YW50IHRvKi9cbi8qIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZiBhIHNlcGFyYXRlIGFncmVlbWVudCB3aXRoIFRvdGFyYSovXG4vKiBMZWFybmluZyBTb2x1dGlvbnMgTFREIG9yIGl0cyBhZmZpbGlhdGUuKi9cbi8qKi9cbi8qIElmIHlvdSBkbyBub3QgaGF2ZSBhbiBhZ3JlZW1lbnQgd2l0aCBUb3RhcmEgTGVhcm5pbmcgU29sdXRpb25zKi9cbi8qIExURCwgeW91IG1heSBub3QgYWNjZXNzLCB1c2UsIG1vZGlmeSwgb3IgZGlzdHJpYnV0ZSB0aGlzIHNvZnR3YXJlLiovXG4vKiBQbGVhc2UgY29udGFjdCBbbGljZW5zaW5nQHRvdGFyYWxlYXJuaW5nLmNvbV0gZm9yIG1vcmUgaW5mb3JtYXRpb24uKi9cbi8qKi9cbi8qIEBhdXRob3IgICAgS2V2aW4gSG90dGluZ2VyIDxrZXZpbi5ob3R0aW5nZXJAdG90YXJhbGVhcm5pbmcuY29tPiovXG4vKiBAbW9kdWxlIHR1aWNrYWdlICAgdHVpKi9cblxuOnJvb3Qge1xuICAvKiBDU1MgY29sbGFwc2FibGUqL1xuICAtLWNvbGxhcHNpYmxlLWhlYWRlci1iZy1jb2xvcjogdmFyKC0tY29sb3ItbmV1dHJhbC0zKTtcbiAgLS1jb2xsYXBzaWJsZS1oZWFkZXItYm9yZGVyLWNvbG9yOiB2YXIoLS1jb2xvci1uZXV0cmFsLTMpO1xufVxuXG4iLCIvKiBUaGlzIGZpbGUgaXMgcGFydCBvZiBUb3RhcmEgRW50ZXJwcmlzZSBFeHRlbnNpb25zLiovXG4vKiovXG4vKiBDb3B5cmlnaHQgKEMpIDIwMjAgb253YXJkcyBUb3RhcmEgTGVhcm5pbmcgU29sdXRpb25zIExURCovXG4vKiovXG4vKiBUb3RhcmEgRW50ZXJwcmlzZSBFeHRlbnNpb25zIGlzIHByb3ZpZGVkIG9ubHkgdG8gVG90YXJhKi9cbi8qIExlYXJuaW5nIFNvbHV0aW9ucyBMVEQncyBjdXN0b21lcnMgYW5kIHBhcnRuZXJzLCBwdXJzdWFudCB0byovXG4vKiB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgb2YgYSBzZXBhcmF0ZSBhZ3JlZW1lbnQgd2l0aCBUb3RhcmEqL1xuLyogTGVhcm5pbmcgU29sdXRpb25zIExURCBvciBpdHMgYWZmaWxpYXRlLiovXG4vKiovXG4vKiBJZiB5b3UgZG8gbm90IGhhdmUgYW4gYWdyZWVtZW50IHdpdGggVG90YXJhIExlYXJuaW5nIFNvbHV0aW9ucyovXG4vKiBMVEQsIHlvdSBtYXkgbm90IGFjY2VzcywgdXNlLCBtb2RpZnksIG9yIGRpc3RyaWJ1dGUgdGhpcyBzb2Z0d2FyZS4qL1xuLyogUGxlYXNlIGNvbnRhY3QgW2xpY2Vuc2luZ0B0b3RhcmFsZWFybmluZy5jb21dIGZvciBtb3JlIGluZm9ybWF0aW9uLiovXG4vKiovXG4vKiBAYXV0aG9yICAgIEtldmluIEhvdHRpbmdlciA8a2V2aW4uaG90dGluZ2VyQHRvdGFyYWxlYXJuaW5nLmNvbT4qL1xuLyogQG1vZHVsZSB0dWlja2FnZSAgIHR1aSovXG5cbjpyb290IHtcbiAgLS1wcm9ncmVzc3RyYWNrZXItY29udGFpbmVyLWJnLWNvbG9yOiB2YXIoLS1jb2xvci1uZXV0cmFsLTEpO1xuXG4gIC8qIHN0YXRlcyByZWxhdGVkIHRvIEFjaGlldmVtZW50Ki9cbiAgLS1wcm9ncmVzc3RyYWNrZXItY29sb3ItcGVuZGluZzogdmFyKC0tY29sb3ItbmV1dHJhbC02KTtcbiAgLS1wcm9ncmVzc3RyYWNrZXItY29sb3ItY3VycmVudDogdmFyKC0tY29sb3ItcHJvbXB0LWluZm8pO1xuICAtLXByb2dyZXNzdHJhY2tlci1jb2xvci1hY2hpZXZlZDogdmFyKC0tY29sb3ItdGVydGlhcnkpO1xuICAtLXByb2dyZXNzdHJhY2tlci1jb2xvci1jb21wbGV0ZTogdmFyKC0tY29sb3ItcHJvbXB0LXdhcm5pbmcpO1xuXG4gIC8qIHN0YXRlcyByZWxhdGVkIHRvIFdvcmtmbG93cyovXG4gIC0tcHJvZ3Jlc3N0cmFja2VyLWNvbG9yLXJlYWR5OiB2YXIoLS1jb2xvci1uZXV0cmFsLTYpO1xuICAtLXByb2dyZXNzdHJhY2tlci1jb2xvci1yZWFkeS0taW52ZXJzZTogdmFyKC0tY29sb3ItbmV1dHJhbC0xKTtcbiAgLS1wcm9ncmVzc3RyYWNrZXItY29sb3ItZG9uZTogdmFyKC0tY29sb3ItcHJvbXB0LXN1Y2Nlc3MpO1xuICAtLXByb2dyZXNzdHJhY2tlci1jb2xvci1kb25lLS1pbnZlcnNlOiB2YXIoLS1jb2xvci1uZXV0cmFsLTEpO1xuICAtLXByb2dyZXNzdHJhY2tlci1jb2xvci1sb2NrZWQ6IHZhcigtLWNvbG9yLW5ldXRyYWwtNik7XG4gIC0tcHJvZ3Jlc3N0cmFja2VyLWNvbG9yLWxvY2tlZC0taW52ZXJzZTogdmFyKC0tY29sb3ItbmV1dHJhbC0xKTtcbiAgLS1wcm9ncmVzc3RyYWNrZXItY29sb3Itb3B0aW9uYWw6IHZhcigtLWNvbG9yLW5ldXRyYWwtNik7XG4gIC0tcHJvZ3Jlc3N0cmFja2VyLWNvbG9yLW9wdGlvbmFsLS1pbnZlcnNlOiB2YXIoLS1jb2xvci1uZXV0cmFsLTEpO1xuICAtLXByb2dyZXNzdHJhY2tlci1jb2xvci1zZWxlY3RlZDogdmFyKC0tY29sb3ItbmV1dHJhbC02KTtcbiAgLS1wcm9ncmVzc3RyYWNrZXItY29sb3Itc2VsZWN0ZWQtLWludmVyc2U6IHZhcigtLWNvbG9yLW5ldXRyYWwtMSk7XG4gIC0tcHJvZ3Jlc3N0cmFja2VyLWNvbG9yLWludmFsaWQ6IHZhcigtLWNvbG9yLXByb21wdC13YXJuaW5nKTtcbiAgLS1wcm9ncmVzc3RyYWNrZXItY29sb3ItaW52YWxpZC0taW52ZXJzZTogdmFyKC0tY29sb3ItbmV1dHJhbC0xKTtcbiAgLS1wcm9ncmVzc3RyYWNrZXItY29sb3Itdmlldy1vbmx5OiB2YXIoLS1jb2xvci1uZXV0cmFsLTYpO1xuICAtLXByb2dyZXNzdHJhY2tlci1jb2xvci12aWV3LW9ubHktLWludmVyc2U6IHZhcigtLWNvbG9yLW5ldXRyYWwtMSk7XG4gIC0tcHJvZ3Jlc3N0cmFja2VyLWNvbG9yLWhpZGRlbjogdmFyKC0tY29sb3ItbmV1dHJhbC02KTtcbiAgLS1wcm9ncmVzc3RyYWNrZXItY29sb3ItaGlkZGVuLS1pbnZlcnNlOiB2YXIoLS1jb2xvci1uZXV0cmFsLTEpO1xufVxuXG4iLCIvKiBUaGlzIGZpbGUgaXMgcGFydCBvZiBUb3RhcmEgRW50ZXJwcmlzZSBFeHRlbnNpb25zLiovXG4vKiovXG4vKiBDb3B5cmlnaHQgKEMpIDIwMjAgb253YXJkcyBUb3RhcmEgTGVhcm5pbmcgU29sdXRpb25zIExURCovXG4vKiovXG4vKiBUb3RhcmEgRW50ZXJwcmlzZSBFeHRlbnNpb25zIGlzIHByb3ZpZGVkIG9ubHkgdG8gVG90YXJhKi9cbi8qIExlYXJuaW5nIFNvbHV0aW9ucyBMVEQncyBjdXN0b21lcnMgYW5kIHBhcnRuZXJzLCBwdXJzdWFudCB0byovXG4vKiB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgb2YgYSBzZXBhcmF0ZSBhZ3JlZW1lbnQgd2l0aCBUb3RhcmEqL1xuLyogTGVhcm5pbmcgU29sdXRpb25zIExURCBvciBpdHMgYWZmaWxpYXRlLiovXG4vKiovXG4vKiBJZiB5b3UgZG8gbm90IGhhdmUgYW4gYWdyZWVtZW50IHdpdGggVG90YXJhIExlYXJuaW5nIFNvbHV0aW9ucyovXG4vKiBMVEQsIHlvdSBtYXkgbm90IGFjY2VzcywgdXNlLCBtb2RpZnksIG9yIGRpc3RyaWJ1dGUgdGhpcyBzb2Z0d2FyZS4qL1xuLyogUGxlYXNlIGNvbnRhY3QgW2xpY2Vuc2luZ0B0b3RhcmFsZWFybmluZy5jb21dIGZvciBtb3JlIGluZm9ybWF0aW9uLiovXG4vKiovXG4vKiBAYXV0aG9yICAgIEtldmluIEhvdHRpbmdlciA8a2V2aW4uaG90dGluZ2VyQHRvdGFyYWxlYXJuaW5nLmNvbT4qL1xuLyogQG1vZHVsZSB0dWlja2FnZSAgIHR1aSovXG5cbjpyb290IHtcbiAgLyoqL1xuICAvKiBTaWRlIHBhbmVsIG5hdmlnYXRpb24qL1xuICAvKiovXG5cbiAgLyogUGFuZWwqL1xuICAtLXNpZGUtcGFuZWwtbmF2LWJnLWNvbG9yOiB2YXIoLS1jb2xvci1uZXV0cmFsLTMpO1xuXG4gIC8qIFBhbmVsIGl0ZW0qL1xuICAtLXNpZGUtcGFuZWwtbmF2LWl0ZW0tYmctY29sb3I6IHZhcigtLWNvbG9yLW5ldXRyYWwtMyk7XG4gIC0tc2lkZS1wYW5lbC1uYXYtaXRlbS1ib3JkZXItY29sb3I6IHZhcigtLWNvbG9yLW5ldXRyYWwtMyk7XG4gIC0tc2lkZS1wYW5lbC1uYXYtaXRlbS10ZXh0LWNvbG9yOiB2YXIoLS1jb2xvci1uZXV0cmFsLTcpO1xuXG4gIC8qIFBhbmVsIGl0ZW0gaG92ZXIvZm9jdXMqL1xuICAtLXNpZGUtcGFuZWwtbmF2LWl0ZW0tYmctY29sb3ItZm9jdXM6IHZhcigtLWNvbG9yLW5ldXRyYWwtNCk7XG4gIC0tc2lkZS1wYW5lbC1uYXYtaXRlbS1ib3JkZXItY29sb3ItZm9jdXM6IHZhcigtLWNvbG9yLW5ldXRyYWwtMyk7XG4gIC0tc2lkZS1wYW5lbC1uYXYtaXRlbS10ZXh0LWNvbG9yLWZvY3VzOiB2YXIoLS1jb2xvci1zdGF0ZS1mb2N1cyk7XG5cbiAgLyogUGFuZWwgaXRlbSBzZWxlY3RlZCovXG4gIC0tc2lkZS1wYW5lbC1uYXYtaXRlbS1iZy1jb2xvci1zZWxlY3RlZDogdmFyKC0tY29sb3Itc3RhdGUtYWN0aXZlKTtcbiAgLS1zaWRlLXBhbmVsLW5hdi1pdGVtLWJvcmRlci1jb2xvci1zZWxlY3RlZDogdmFyKC0tY29sb3ItbmV1dHJhbC0zKTtcbiAgLS1zaWRlLXBhbmVsLW5hdi1pdGVtLXRleHQtY29sb3Itc2VsZWN0ZWQ6IHZhcigtLWNvbG9yLW5ldXRyYWwtMSk7XG59XG5cbiIsIi8qIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIFRvdGFyYSBFbnRlcnByaXNlIEV4dGVuc2lvbnMuKi9cbi8qKi9cbi8qIENvcHlyaWdodCAoQykgMjAyMCBvbndhcmRzIFRvdGFyYSBMZWFybmluZyBTb2x1dGlvbnMgTFREKi9cbi8qKi9cbi8qIFRvdGFyYSBFbnRlcnByaXNlIEV4dGVuc2lvbnMgaXMgcHJvdmlkZWQgb25seSB0byBUb3RhcmEqL1xuLyogTGVhcm5pbmcgU29sdXRpb25zIExURCdzIGN1c3RvbWVycyBhbmQgcGFydG5lcnMsIHB1cnN1YW50IHRvKi9cbi8qIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZiBhIHNlcGFyYXRlIGFncmVlbWVudCB3aXRoIFRvdGFyYSovXG4vKiBMZWFybmluZyBTb2x1dGlvbnMgTFREIG9yIGl0cyBhZmZpbGlhdGUuKi9cbi8qKi9cbi8qIElmIHlvdSBkbyBub3QgaGF2ZSBhbiBhZ3JlZW1lbnQgd2l0aCBUb3RhcmEgTGVhcm5pbmcgU29sdXRpb25zKi9cbi8qIExURCwgeW91IG1heSBub3QgYWNjZXNzLCB1c2UsIG1vZGlmeSwgb3IgZGlzdHJpYnV0ZSB0aGlzIHNvZnR3YXJlLiovXG4vKiBQbGVhc2UgY29udGFjdCBbbGljZW5zaW5nQHRvdGFyYWxlYXJuaW5nLmNvbV0gZm9yIG1vcmUgaW5mb3JtYXRpb24uKi9cbi8qKi9cbi8qIEBhdXRob3IgICAgS2V2aW4gSG90dGluZ2VyIDxrZXZpbi5ob3R0aW5nZXJAdG90YXJhbGVhcm5pbmcuY29tPiovXG4vKiBAbW9kdWxlIHR1aWNrYWdlICAgdHVpKi9cblxuOnJvb3Qge1xuICAvKiovXG4gIC8qIFRvZ2dsZSBjb2xvdXJzKi9cbiAgLyoqL1xuXG4gIC8qIHRvZ2dsZSBidXR0b25zKi9cbiAgLS10b2dnbGUtYmctY29sb3I6IHZhcigtLWNvbG9yLW5ldXRyYWwtNik7XG5cbiAgLyogQnV0dG9uIGJhY2tncm91bmQqL1xuICAtLXRvZ2dsZS1idG4tYmctY29sb3I6IHRyYW5zcGFyZW50O1xuICAtLXRvZ2dsZS1idG4tYmctY29sb3ItYWN0aXZlOiB0cmFuc3BhcmVudDtcbiAgLS10b2dnbGUtYnRuLWJnLWNvbG9yLWRpc2FibGVkOiB0cmFuc3BhcmVudDtcbiAgLS10b2dnbGUtYnRuLWJnLWNvbG9yLWhvdmVyOiB0cmFuc3BhcmVudDtcbiAgLS10b2dnbGUtYnRuLWJnLWNvbG9yLXNlbGVjdGVkOiB2YXIoLS1jb2xvci1uZXV0cmFsLTEpO1xuXG4gIC8qIEJ1dHRvbiB0ZXh0IGNvbG91ciovXG4gIC0tdG9nZ2xlLWJ0bi10ZXh0LWNvbG9yOiB2YXIoLS1jb2xvci1uZXV0cmFsLTEpO1xuICAtLXRvZ2dsZS1idG4tdGV4dC1jb2xvci1hY3RpdmU6IHZhcigtLWNvbG9yLW5ldXRyYWwtMSk7XG4gIC0tdG9nZ2xlLWJ0bi10ZXh0LWNvbG9yLWRpc2FibGVkOiB2YXIoLS1jb2xvci1uZXV0cmFsLTEpO1xuICAtLXRvZ2dsZS1idG4tdGV4dC1jb2xvci1ob3ZlcjogdmFyKC0tY29sb3ItbmV1dHJhbC0xKTtcbiAgLS10b2dnbGUtYnRuLXRleHQtY29sb3Itc2VsZWN0ZWQ6IHZhcigtLWNvbG9yLW5ldXRyYWwtNyk7XG5cbiAgLyoqL1xuICAvKiBUb2dnbGUgc3dpdGNoKi9cbiAgLyoqL1xuICAtLWZvcm0tdG9nZ2xlLWRvdC1jb2xvcjogdmFyKC0tY29sb3ItbmV1dHJhbC0xKTtcbiAgLS1mb3JtLXRvZ2dsZS1vZmYtYmctY29sb3I6IHZhcigtLWNvbG9yLW5ldXRyYWwtNSk7XG4gIC0tZm9ybS10b2dnbGUtb2ZmLWJnLWNvbG9yLWhvdmVyLWZvY3VzOiB2YXIoLS1jb2xvci1uZXV0cmFsLTYpO1xuICAtLWZvcm0tdG9nZ2xlLW9mZi1iZy1jb2xvci1kaXNhYmxlZDogdmFyKC0tY29sb3ItbmV1dHJhbC00KTtcbiAgLS1mb3JtLXRvZ2dsZS1vbi1iZy1jb2xvcjogdmFyKC0tY29sb3Itc3RhdGUpO1xuICAtLWZvcm0tdG9nZ2xlLW9uLWJnLWNvbG9yLWhvdmVyLWZvY3VzOiB2YXIoLS1jb2xvci1zdGF0ZS1ob3Zlcik7XG4gIC0tZm9ybS10b2dnbGUtb24tYmctY29sb3ItZGlzYWJsZWQ6IHZhcigtLWNvbG9yLXByb21wdC1zdWNjZXNzLWJnKTtcbiAgLS1mb3JtLXRvZ2dsZS1vbi1ib3JkZXItY29sb3I6IHZhcigtLWNvbG9yLXN0YXRlKTtcbiAgLS1mb3JtLXRvZ2dsZS1vbi1ib3JkZXItY29sb3ItaG92ZXItZm9jdXM6IHZhcigtLWNvbG9yLXN0YXRlLWhvdmVyKTtcbiAgLS1mb3JtLXRvZ2dsZS1ib3JkZXItY29sb3I6IHZhcigtLWNvbG9yLW5ldXRyYWwtNik7XG4gIC0tZm9ybS10b2dnbGUtYm9yZGVyLWNvbG9yLWRpc2FibGVkOiB2YXIoLS1jb2xvci1uZXV0cmFsLTUpO1xuXG4gIC8qIERlcHJlY2F0ZWQgc2luY2UgVG90YXJhIDE4LjAqL1xuICAtLXRvZ2dsZS1idG4tdGV4dC1jb2xvci1mb2N1czogdmFyKC0tY29sb3ItbmV1dHJhbC0xKTtcbiAgLS10b2dnbGUtYnRuLWJnLWNvbG9yLWZvY3VzOiB0cmFuc3BhcmVudDtcbn1cblxuIiwiLyogVGhpcyBmaWxlIGlzIHBhcnQgb2YgVG90YXJhIEVudGVycHJpc2UgRXh0ZW5zaW9ucy4qL1xuLyoqL1xuLyogQ29weXJpZ2h0IChDKSAyMDIwIG9ud2FyZHMgVG90YXJhIExlYXJuaW5nIFNvbHV0aW9ucyBMVEQqL1xuLyoqL1xuLyogVG90YXJhIEVudGVycHJpc2UgRXh0ZW5zaW9ucyBpcyBwcm92aWRlZCBvbmx5IHRvIFRvdGFyYSovXG4vKiBMZWFybmluZyBTb2x1dGlvbnMgTFREJ3MgY3VzdG9tZXJzIGFuZCBwYXJ0bmVycywgcHVyc3VhbnQgdG8qL1xuLyogdGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIG9mIGEgc2VwYXJhdGUgYWdyZWVtZW50IHdpdGggVG90YXJhKi9cbi8qIExlYXJuaW5nIFNvbHV0aW9ucyBMVEQgb3IgaXRzIGFmZmlsaWF0ZS4qL1xuLyoqL1xuLyogSWYgeW91IGRvIG5vdCBoYXZlIGFuIGFncmVlbWVudCB3aXRoIFRvdGFyYSBMZWFybmluZyBTb2x1dGlvbnMqL1xuLyogTFRELCB5b3UgbWF5IG5vdCBhY2Nlc3MsIHVzZSwgbW9kaWZ5LCBvciBkaXN0cmlidXRlIHRoaXMgc29mdHdhcmUuKi9cbi8qIFBsZWFzZSBjb250YWN0IFtsaWNlbnNpbmdAdG90YXJhbGVhcm5pbmcuY29tXSBmb3IgbW9yZSBpbmZvcm1hdGlvbi4qL1xuLyoqL1xuLyogQGF1dGhvciAgICBLZXZpbiBIb3R0aW5nZXIgPGtldmluLmhvdHRpbmdlckB0b3RhcmFsZWFybmluZy5jb20+Ki9cbi8qIEBtb2R1bGUgdHVpY2thZ2UgICB0dWkqL1xuXG46cm9vdCB7XG4gIC8qKi9cbiAgLypOb3RpZmljYXRpb24gdG9hc3QqL1xuICAvKiovXG4gIC0tdG9hc3QtY29sb3ItdGV4dDogdmFyKC0tY29sb3ItbmV1dHJhbC0xKTtcbn1cblxuIiwiLyogVGhpcyBmaWxlIGlzIHBhcnQgb2YgVG90YXJhIEVudGVycHJpc2UgRXh0ZW5zaW9ucy4qL1xuLyoqL1xuLyogQ29weXJpZ2h0IChDKSAyMDIwIG9ud2FyZHMgVG90YXJhIExlYXJuaW5nIFNvbHV0aW9ucyBMVEQqL1xuLyoqL1xuLyogVG90YXJhIEVudGVycHJpc2UgRXh0ZW5zaW9ucyBpcyBwcm92aWRlZCBvbmx5IHRvIFRvdGFyYSovXG4vKiBMZWFybmluZyBTb2x1dGlvbnMgTFREJ3MgY3VzdG9tZXJzIGFuZCBwYXJ0bmVycywgcHVyc3VhbnQgdG8qL1xuLyogdGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIG9mIGEgc2VwYXJhdGUgYWdyZWVtZW50IHdpdGggVG90YXJhKi9cbi8qIExlYXJuaW5nIFNvbHV0aW9ucyBMVEQgb3IgaXRzIGFmZmlsaWF0ZS4qL1xuLyoqL1xuLyogSWYgeW91IGRvIG5vdCBoYXZlIGFuIGFncmVlbWVudCB3aXRoIFRvdGFyYSBMZWFybmluZyBTb2x1dGlvbnMqL1xuLyogTFRELCB5b3UgbWF5IG5vdCBhY2Nlc3MsIHVzZSwgbW9kaWZ5LCBvciBkaXN0cmlidXRlIHRoaXMgc29mdHdhcmUuKi9cbi8qIFBsZWFzZSBjb250YWN0IFtsaWNlbnNpbmdAdG90YXJhbGVhcm5pbmcuY29tXSBmb3IgbW9yZSBpbmZvcm1hdGlvbi4qL1xuLyoqL1xuLyogQGF1dGhvciAgICBLZXZpbiBIb3R0aW5nZXIgPGtldmluLmhvdHRpbmdlckB0b3RhcmFsZWFybmluZy5jb20+Ki9cbi8qIEBtb2R1bGUgdHVpY2thZ2UgICB0dWkqL1xuXG46cm9vdCB7XG4gIC8qKi9cbiAgLyogU2hhZG93IGRlcHRocyovXG4gIC8qKi9cblxuICAtLXNoYWRvdy1ub25lOiAwIDAgMCAwIHRyYW5zcGFyZW50O1xuICAtLXNoYWRvdy0yOiAwIDNweCA2cHggMCByZ2JhKDAsIDAsIDAsIDAuMik7XG4gIC0tc2hhZG93LTM6IDAgNnB4IDZweCAwIHJnYmEoMCwgMCwgMCwgMC4xNSk7XG4gIC0tc2hhZG93LTQ6IDAgMTBweCAxMHB4IDAgcmdiYSgwLCAwLCAwLCAwLjMpO1xuXG4gIC8qIElucHV0IGJveC1zaGFkb3dzKi9cbiAgLS1mb3JtLWlucHV0LXNoYWRvdy1mb2N1czogbm9uZTtcbiAgLS1mb3JtLWlucHV0LXNoYWRvdy1pbnZhbGlkOiAwIDAgMCB2YXIoLS1mb3JtLWlucHV0LWludmFsaWQtc2hhZG93LXNpemUpXG4gICAgdmFyKC0tZm9ybS1pbnB1dC1ib3JkZXItY29sb3ItaW52YWxpZCk7XG4gIC0tZm9ybS1pbnB1dC1zaGFkb3ctaW52YWxpZC1mb2N1czogbm9uZTtcblxuICAtLWZvcm0tcmFuZ2UtdGh1bWItc2hhZG93OiAwIDFweCAzcHggcmdiYSgwLCAwLCAwLCAwLjYpO1xufVxuXG4iLCIvKiBUaGlzIGZpbGUgaXMgcGFydCBvZiBUb3RhcmEgRW50ZXJwcmlzZSBFeHRlbnNpb25zLiovXG4vKiovXG4vKiBDb3B5cmlnaHQgKEMpIDIwMjAgb253YXJkcyBUb3RhcmEgTGVhcm5pbmcgU29sdXRpb25zIExURCovXG4vKiovXG4vKiBUb3RhcmEgRW50ZXJwcmlzZSBFeHRlbnNpb25zIGlzIHByb3ZpZGVkIG9ubHkgdG8gVG90YXJhKi9cbi8qIExlYXJuaW5nIFNvbHV0aW9ucyBMVEQncyBjdXN0b21lcnMgYW5kIHBhcnRuZXJzLCBwdXJzdWFudCB0byovXG4vKiB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgb2YgYSBzZXBhcmF0ZSBhZ3JlZW1lbnQgd2l0aCBUb3RhcmEqL1xuLyogTGVhcm5pbmcgU29sdXRpb25zIExURCBvciBpdHMgYWZmaWxpYXRlLiovXG4vKiovXG4vKiBJZiB5b3UgZG8gbm90IGhhdmUgYW4gYWdyZWVtZW50IHdpdGggVG90YXJhIExlYXJuaW5nIFNvbHV0aW9ucyovXG4vKiBMVEQsIHlvdSBtYXkgbm90IGFjY2VzcywgdXNlLCBtb2RpZnksIG9yIGRpc3RyaWJ1dGUgdGhpcyBzb2Z0d2FyZS4qL1xuLyogUGxlYXNlIGNvbnRhY3QgW2xpY2Vuc2luZ0B0b3RhcmFsZWFybmluZy5jb21dIGZvciBtb3JlIGluZm9ybWF0aW9uLiovXG4vKiovXG4vKiBAYXV0aG9yICAgIEtldmluIEhvdHRpbmdlciA8a2V2aW4uaG90dGluZ2VyQHRvdGFyYWxlYXJuaW5nLmNvbT4qL1xuLyogQG1vZHVsZSB0dWlja2FnZSAgIHR1aSovXG5cbjpyb290IHtcbiAgLS1zaWRlcGFuZWwtbmF2aWdhdGlvbi1pdGVtLXBhZGRpbmctbGVmdDogdmFyKC0tZ2FwLTgpO1xufVxuXG4iLCIvKiBUaGlzIGZpbGUgaXMgcGFydCBvZiBUb3RhcmEgRW50ZXJwcmlzZSBFeHRlbnNpb25zLiovXG4vKiovXG4vKiBDb3B5cmlnaHQgKEMpIDIwMjEgb253YXJkcyBUb3RhcmEgTGVhcm5pbmcgU29sdXRpb25zIExURCovXG4vKiovXG4vKiBUb3RhcmEgRW50ZXJwcmlzZSBFeHRlbnNpb25zIGlzIHByb3ZpZGVkIG9ubHkgdG8gVG90YXJhKi9cbi8qIExlYXJuaW5nIFNvbHV0aW9ucyBMVEQncyBjdXN0b21lcnMgYW5kIHBhcnRuZXJzLCBwdXJzdWFudCB0byovXG4vKiB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgb2YgYSBzZXBhcmF0ZSBhZ3JlZW1lbnQgd2l0aCBUb3RhcmEqL1xuLyogTGVhcm5pbmcgU29sdXRpb25zIExURCBvciBpdHMgYWZmaWxpYXRlLiovXG4vKiovXG4vKiBJZiB5b3UgZG8gbm90IGhhdmUgYW4gYWdyZWVtZW50IHdpdGggVG90YXJhIExlYXJuaW5nIFNvbHV0aW9ucyovXG4vKiBMVEQsIHlvdSBtYXkgbm90IGFjY2VzcywgdXNlLCBtb2RpZnksIG9yIGRpc3RyaWJ1dGUgdGhpcyBzb2Z0d2FyZS4qL1xuLyogUGxlYXNlIGNvbnRhY3QgW2xpY2Vuc2luZ0B0b3RhcmFsZWFybmluZy5jb21dIGZvciBtb3JlIGluZm9ybWF0aW9uLiovXG4vKiovXG4vKiBAYXV0aG9yICAgIERhdmUgV2FsbGFjZSA8ZGF2ZS53YWxsYWNlQHRvdGFyYWxlYXJuaW5nLmNvbT4qL1xuLyogQG1vZHVsZSB0dWlja2FnZSAgIHR1aSovXG5cbjpyb290IHtcbiAgLyogYC1zaXplLS1gIHVuaXRzIHNob3VsZCBiZSBpbiBlaXRoZXIgYHB4YCBvciBgcmVtYCBmb3IgSlMgY29udGFpbmVyIHF1ZXJ5aW5nKi9cbiAgLS1wcm9ncmVzcy10cmFja2VyLWhvcml6b250YWwtc2l6ZS0tc21hbGw6IDEwcmVtO1xuICAtLXByb2dyZXNzLXRyYWNrZXItaG9yaXpvbnRhbC1zaXplLS1tZWRpdW06IDIwcmVtO1xuICAtLXByb2dyZXNzLXRyYWNrZXItaG9yaXpvbnRhbC1zaXplLS1sYXJnZTogMjVyZW07XG4gIC0tcHJvZ3Jlc3MtdHJhY2tlci1ob3Jpem9udGFsLWdhcC0tc21hbGw6IHZhcigtLWdhcC0yKTtcbiAgLS1wcm9ncmVzcy10cmFja2VyLWhvcml6b250YWwtZ2FwLS1tZWRpdW06IHZhcigtLWdhcC00KTtcbiAgLS1wcm9ncmVzcy10cmFja2VyLWhvcml6b250YWwtZ2FwLS1sYXJnZTogdmFyKC0tZ2FwLTYpO1xuICAtLXByb2dyZXNzLXRyYWNrZXItdmVydGljYWwtZ2FwLS1zbWFsbDogdmFyKC0tZ2FwLTIpO1xuICAtLXByb2dyZXNzLXRyYWNrZXItdmVydGljYWwtZ2FwLS1tZWRpdW06IHZhcigtLWdhcC00KTtcbiAgLS1wcm9ncmVzcy10cmFja2VyLXZlcnRpY2FsLWdhcC0tbGFyZ2U6IHZhcigtLWdhcC02KTtcbiAgLS1wcm9ncmVzc3RyYWNrZXItZnVsbC1tYXJrZXItc2l6ZTogMi44cmVtO1xuICAtLXByb2dyZXNzdHJhY2tlci1jb25uZWN0b3ItZ2FwOiAwLjVyZW07XG59XG5cbiIsIi8qIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIFRvdGFyYSBFbnRlcnByaXNlIEV4dGVuc2lvbnMuKi9cbi8qKi9cbi8qIENvcHlyaWdodCAoQykgMjAyMiBvbndhcmRzIFRvdGFyYSBMZWFybmluZyBTb2x1dGlvbnMgTFREKi9cbi8qKi9cbi8qIFRvdGFyYSBFbnRlcnByaXNlIEV4dGVuc2lvbnMgaXMgcHJvdmlkZWQgb25seSB0byBUb3RhcmEqL1xuLyogTGVhcm5pbmcgU29sdXRpb25zIExURCdzIGN1c3RvbWVycyBhbmQgcGFydG5lcnMsIHB1cnN1YW50IHRvKi9cbi8qIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZiBhIHNlcGFyYXRlIGFncmVlbWVudCB3aXRoIFRvdGFyYSovXG4vKiBMZWFybmluZyBTb2x1dGlvbnMgTFREIG9yIGl0cyBhZmZpbGlhdGUuKi9cbi8qKi9cbi8qIElmIHlvdSBkbyBub3QgaGF2ZSBhbiBhZ3JlZW1lbnQgd2l0aCBUb3RhcmEgTGVhcm5pbmcgU29sdXRpb25zKi9cbi8qIExURCwgeW91IG1heSBub3QgYWNjZXNzLCB1c2UsIG1vZGlmeSwgb3IgZGlzdHJpYnV0ZSB0aGlzIHNvZnR3YXJlLiovXG4vKiBQbGVhc2UgY29udGFjdCBbbGljZW5zaW5nQHRvdGFyYWxlYXJuaW5nLmNvbV0gZm9yIG1vcmUgaW5mb3JtYXRpb24uKi9cbi8qKi9cbi8qIEBhdXRob3IgICAgUm9kbmV5IENydWRlbi1Qb3dlbGwgPHJvZG5leS5jcnVkZW4tcG93ZWxsQHRvdGFyYWxlYXJuaW5nLmNvbT4qL1xuLyogQG1vZHVsZSB0dWlja2FnZSAgIHR1aSovXG5cbjpyb290IHtcbiAgLyogcmVtIGRvZXMgbm90IHdvcmsgY29ycmVjdGx5IGluIElFKi9cbiAgLS1mb3JtLXJhbmdlLWhlaWdodDogMjBweDtcbiAgLS1mb3JtLXJhbmdlLXRyYWNrLWhlaWdodDogMTBweDtcbiAgLS1mb3JtLXJhbmdlLXRodW1iLXNpemU6IDE4cHg7XG4gIC8qIHByZXR0aWVyLWlnbm9yZSovXG4gIC0tZm9ybS1yYW5nZS10aHVtYi1tYXJnaW4tdG9wOiBjYWxjKCh2YXIoLS1mb3JtLXJhbmdlLXRyYWNrLWhlaWdodCkgLyAyKSAtICh2YXIoLS1mb3JtLXJhbmdlLXRodW1iLXNpemUpIC8gMikpO1xuICAtLWZvcm0tcmFuZ2UtdGh1bWItYm9yZGVyLXJhZGl1czogNTAlO1xufVxuXG5AbWl4aW4gdHVpLXJhbmdlLXRyYWNrKCkge1xuICBoZWlnaHQ6IHZhcigtLWZvcm0tcmFuZ2UtdHJhY2staGVpZ2h0KTtcbiAgYmFja2dyb3VuZDogdmFyKC0tY29sb3ItbmV1dHJhbC00KTtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tYm9yZGVyLXJhZGl1cy1zbWFsbCk7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgLXdlYmtpdC1wcmludC1jb2xvci1hZGp1c3Q6IGV4YWN0O1xuICBjb2xvci1hZGp1c3Q6IGV4YWN0O1xufVxuXG5AbWl4aW4gdHVpLXJhbmdlLXRodW1iKCkge1xuICB3aWR0aDogdmFyKC0tZm9ybS1yYW5nZS10aHVtYi1zaXplKTtcbiAgaGVpZ2h0OiB2YXIoLS1mb3JtLXJhbmdlLXRodW1iLXNpemUpO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci1uZXV0cmFsLTUpO1xuICBib3JkZXI6IG5vbmU7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLWZvcm0tcmFuZ2UtdGh1bWItYm9yZGVyLXJhZGl1cyk7XG4gIGJveC1zaGFkb3c6IHZhcigtLWZvcm0tcmFuZ2UtdGh1bWItc2hhZG93KTtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuXG4iLCIvKiBUaGlzIGZpbGUgaXMgcGFydCBvZiBUb3RhcmEgRW50ZXJwcmlzZSBFeHRlbnNpb25zLiovXG4vKiovXG4vKiBDb3B5cmlnaHQgKEMpIDIwMjAgb253YXJkcyBUb3RhcmEgTGVhcm5pbmcgU29sdXRpb25zIExURCovXG4vKiovXG4vKiBUb3RhcmEgRW50ZXJwcmlzZSBFeHRlbnNpb25zIGlzIHByb3ZpZGVkIG9ubHkgdG8gVG90YXJhKi9cbi8qIExlYXJuaW5nIFNvbHV0aW9ucyBMVEQncyBjdXN0b21lcnMgYW5kIHBhcnRuZXJzLCBwdXJzdWFudCB0byovXG4vKiB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgb2YgYSBzZXBhcmF0ZSBhZ3JlZW1lbnQgd2l0aCBUb3RhcmEqL1xuLyogTGVhcm5pbmcgU29sdXRpb25zIExURCBvciBpdHMgYWZmaWxpYXRlLiovXG4vKiovXG4vKiBJZiB5b3UgZG8gbm90IGhhdmUgYW4gYWdyZWVtZW50IHdpdGggVG90YXJhIExlYXJuaW5nIFNvbHV0aW9ucyovXG4vKiBMVEQsIHlvdSBtYXkgbm90IGFjY2VzcywgdXNlLCBtb2RpZnksIG9yIGRpc3RyaWJ1dGUgdGhpcyBzb2Z0d2FyZS4qL1xuLyogUGxlYXNlIGNvbnRhY3QgW2xpY2Vuc2luZ0B0b3RhcmFsZWFybmluZy5jb21dIGZvciBtb3JlIGluZm9ybWF0aW9uLiovXG4vKiovXG4vKiBAYXV0aG9yICAgIFNpbW9uIENoZXN0ZXIgPHNpbW9uLmNoZXN0ZXJAdG90YXJhbGVhcm5pbmcuY29tPiovXG4vKiBAbW9kdWxlIHR1aWNrYWdlICAgdHVpKi9cblxuQGZ1bmN0aW9uIHR1aS10cmFuc2l0aW9uKCR0eXBlLCAkcHJvcGVydHkpIHtcbiAgQHJldHVybiAkcHJvcGVydHkgdmFyKC0tdHJhbnNpdGlvbi0jeyR0eXBlfS1kdXJhdGlvbilcbiAgICB2YXIoLS10cmFuc2l0aW9uLSN7JHR5cGV9LWZ1bmN0aW9uKTtcbn1cblxuOnJvb3Qge1xuICAtLXRyYW5zaXRpb24tZm9ybS1mdW5jdGlvbjogbGluZWFyO1xuICAtLXRyYW5zaXRpb24tZm9ybS1kdXJhdGlvbjogMHM7XG4gIC0tdHJhbnNpdGlvbi1tb2RhbC1mdW5jdGlvbjogZWFzZS1vdXQ7XG4gIC0tdHJhbnNpdGlvbi1tb2RhbC1kdXJhdGlvbjogMC4xNXM7XG4gIC0tdHJhbnNpdGlvbi1zaWRlcGFuZWwtY29udGVudC1mdW5jdGlvbjogbGluZWFyO1xuICAtLXRyYW5zaXRpb24tc2lkZXBhbmVsLWNvbnRlbnQtZHVyYXRpb246IDAuMXM7XG4gIC0tdHJhbnNpdGlvbi1wcm9ncmVzcy1mdW5jdGlvbjogZWFzZS1vdXQ7XG4gIC0tdHJhbnNpdGlvbi1wcm9ncmVzcy1kdXJhdGlvbjogMC4zcztcbiAgLS10cmFuc2l0aW9uLWJ1dHRvbi1mdW5jdGlvbjogZWFzZTtcbiAgLS10cmFuc2l0aW9uLWJ1dHRvbi1kdXJhdGlvbjogMC4xNXM7XG4gIC0tdHJhbnNpdGlvbi10b2dnbGUtZnVuY3Rpb246IGVhc2U7XG4gIC0tdHJhbnNpdGlvbi10b2dnbGUtZHVyYXRpb246IDAuMnM7XG59XG5cbiIsIi8qIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIFRvdGFyYSBFbnRlcnByaXNlIEV4dGVuc2lvbnMuKi9cbi8qKi9cbi8qIENvcHlyaWdodCAoQykgMjAyMCBvbndhcmRzIFRvdGFyYSBMZWFybmluZyBTb2x1dGlvbnMgTFREKi9cbi8qKi9cbi8qIFRvdGFyYSBFbnRlcnByaXNlIEV4dGVuc2lvbnMgaXMgcHJvdmlkZWQgb25seSB0byBUb3RhcmEqL1xuLyogTGVhcm5pbmcgU29sdXRpb25zIExURCdzIGN1c3RvbWVycyBhbmQgcGFydG5lcnMsIHB1cnN1YW50IHRvKi9cbi8qIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZiBhIHNlcGFyYXRlIGFncmVlbWVudCB3aXRoIFRvdGFyYSovXG4vKiBMZWFybmluZyBTb2x1dGlvbnMgTFREIG9yIGl0cyBhZmZpbGlhdGUuKi9cbi8qKi9cbi8qIElmIHlvdSBkbyBub3QgaGF2ZSBhbiBhZ3JlZW1lbnQgd2l0aCBUb3RhcmEgTGVhcm5pbmcgU29sdXRpb25zKi9cbi8qIExURCwgeW91IG1heSBub3QgYWNjZXNzLCB1c2UsIG1vZGlmeSwgb3IgZGlzdHJpYnV0ZSB0aGlzIHNvZnR3YXJlLiovXG4vKiBQbGVhc2UgY29udGFjdCBbbGljZW5zaW5nQHRvdGFyYWxlYXJuaW5nLmNvbV0gZm9yIG1vcmUgaW5mb3JtYXRpb24uKi9cbi8qKi9cbi8qIEBhdXRob3IgICAgS2V2aW4gSG90dGluZ2VyIDxrZXZpbi5ob3R0aW5nZXJAdG90YXJhbGVhcm5pbmcuY29tPiovXG4vKiBAbW9kdWxlIHR1aWNrYWdlICAgdHVpKi9cblxuOnJvb3Qge1xuICAtLW1vZGFsLWNvbnRhaW5lci1wYWRkaW5nOiB2YXIoLS1nYXAtMTIpO1xuICAtLW1vZGFsLXNoZWV0LXBhZGRpbmc6IHZhcigtLWdhcC0xMik7XG4gIC0tbW9kYWwtYm9yZGVyLXJhZGl1czogMS4ycmVtO1xuXG4gIC0tbW9kYWwtY29udGVudC1vdXRlci1wYWRkaW5nOiB2YXIoLS1nYXAtNik7XG5cbiAgLyogRGVwcmVjYXRlZCBzaW5jZSBUb3RhcmEgMTguMCovXG4gIC0tbW9kYWwtY29udGVudC1zZXBhcmF0aW9uOiB2YXIoLS1nYXAtMik7XG4gIC0tbW9kYWwtY29udGVudC1zZXBhcmF0aW9uLWxhcmdlOiB2YXIoLS1nYXAtOCk7XG59XG5cbiIsIi8qIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIFRvdGFyYSBFbnRlcnByaXNlIEV4dGVuc2lvbnMuKi9cbi8qKi9cbi8qIENvcHlyaWdodCAoQykgMjAyMSBvbndhcmRzIFRvdGFyYSBMZWFybmluZyBTb2x1dGlvbnMgTFREKi9cbi8qKi9cbi8qIFRvdGFyYSBFbnRlcnByaXNlIEV4dGVuc2lvbnMgaXMgcHJvdmlkZWQgb25seSB0byBUb3RhcmEqL1xuLyogTGVhcm5pbmcgU29sdXRpb25zIExURCdzIGN1c3RvbWVycyBhbmQgcGFydG5lcnMsIHB1cnN1YW50IHRvKi9cbi8qIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZiBhIHNlcGFyYXRlIGFncmVlbWVudCB3aXRoIFRvdGFyYSovXG4vKiBMZWFybmluZyBTb2x1dGlvbnMgTFREIG9yIGl0cyBhZmZpbGlhdGUuKi9cbi8qKi9cbi8qIElmIHlvdSBkbyBub3QgaGF2ZSBhbiBhZ3JlZW1lbnQgd2l0aCBUb3RhcmEgTGVhcm5pbmcgU29sdXRpb25zKi9cbi8qIExURCwgeW91IG1heSBub3QgYWNjZXNzLCB1c2UsIG1vZGlmeSwgb3IgZGlzdHJpYnV0ZSB0aGlzIHNvZnR3YXJlLiovXG4vKiBQbGVhc2UgY29udGFjdCBbbGljZW5zaW5nQHRvdGFyYWxlYXJuaW5nLmNvbV0gZm9yIG1vcmUgaW5mb3JtYXRpb24uKi9cbi8qKi9cbi8qIEBhdXRob3IgICAgU2ltb24gQ2hlc3RlciA8c2ltb24uY2hlc3RlckB0b3RhcmFsZWFybmluZy5jb20+Ki9cbi8qIEBtb2R1bGUgdHVpY2thZ2UgICB0dWkqL1xuXG46cm9vdCB7XG4gIC0tZW1iZWRkZWQtbWVkaWEtbWF4LXdpZHRoOiA3MDBweDtcbn1cblxuIiwiLyogVGhpcyBmaWxlIGlzIHBhcnQgb2YgVG90YXJhIEVudGVycHJpc2UgRXh0ZW5zaW9ucy4qL1xuLyoqL1xuLyogQ29weXJpZ2h0IChDKSAyMDIwIG9ud2FyZHMgVG90YXJhIExlYXJuaW5nIFNvbHV0aW9ucyBMVEQqL1xuLyoqL1xuLyogVG90YXJhIEVudGVycHJpc2UgRXh0ZW5zaW9ucyBpcyBwcm92aWRlZCBvbmx5IHRvIFRvdGFyYSovXG4vKiBMZWFybmluZyBTb2x1dGlvbnMgTFREJ3MgY3VzdG9tZXJzIGFuZCBwYXJ0bmVycywgcHVyc3VhbnQgdG8qL1xuLyogdGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIG9mIGEgc2VwYXJhdGUgYWdyZWVtZW50IHdpdGggVG90YXJhKi9cbi8qIExlYXJuaW5nIFNvbHV0aW9ucyBMVEQgb3IgaXRzIGFmZmlsaWF0ZS4qL1xuLyoqL1xuLyogSWYgeW91IGRvIG5vdCBoYXZlIGFuIGFncmVlbWVudCB3aXRoIFRvdGFyYSBMZWFybmluZyBTb2x1dGlvbnMqL1xuLyogTFRELCB5b3UgbWF5IG5vdCBhY2Nlc3MsIHVzZSwgbW9kaWZ5LCBvciBkaXN0cmlidXRlIHRoaXMgc29mdHdhcmUuKi9cbi8qIFBsZWFzZSBjb250YWN0IFtsaWNlbnNpbmdAdG90YXJhbGVhcm5pbmcuY29tXSBmb3IgbW9yZSBpbmZvcm1hdGlvbi4qL1xuLyoqL1xuLyogQGF1dGhvciAgICBLZXZpbiBIb3R0aW5nZXIgPGtldmluLmhvdHRpbmdlckB0b3RhcmFsZWFybmluZy5jb20+Ki9cbi8qIEBtb2R1bGUgdHVpY2thZ2UgICB0dWkqL1xuXG4vKiBUaGlzIGNvbnRhaW5zIHRoZSBjb21tb24gdmFyaWFibGUgc2V0IGZvciBmb3JtIGVsZW1lbnRzLCovXG4vKiBhbGxvd2luZyBmb3JtIGVsZW1lbnRzIHRvIGJlIGNvbnNpc3RlbnRseSBzdHlsZWQuKi9cblxuLyogbG9vc2VseSBiYXNlZCBvbiBhIG1vZHVsYXIgc2NhbGUgb2YgKDIgKiAoMS41IF4gbikpKi9cbiR0dWktY2hhci1sZW5ndGgtc2NhbGU6IDIsIDMsIDQsIDUsIDEwLCAxNSwgMjAsIDI1LCAzMCwgNTAsIDc1LCAxMDA7XG5cbi8qIFNlbGVjdG9ycyBmb3IgZm9ybSBpbnB1dHMgKGFuZCBzaW1pbGFyIGVsZW1lbnRzKSB0aGF0IHNob3VsZCBoYXZlIHNpemVzIGFwcGxpZWQgdG8gdGhlbS4qL1xuLyogSWYgbW9kaWZ5aW5nIHRoaXMgbGlzdCBpbiBhIHRoZW1lLCBkbyBpdCB2aWEgYXBwZW5kKCkgcmF0aGVyIHRoYW4gcmVwbGFjaW5nKi9cbi8qIHRoZSBlbnRpcmUgbGlzdC4qL1xuJHR1aS1mb3JtLWxheW91dC1zaXplZC1pbnB1dHM6IChcbiAgJ2lucHV0W3R5cGVdLnR1aS1mb3JtSW5wdXQnLFxuICAnLnR1aS1mb3JtRmllbGQnLFxuICAnLnR1aS1mb3JtVGV4dGFyZWEnLFxuICAnLnR1aS1pbnB1dENvbG9yJyxcbiAgJy50dWktcmFuZ2UnLFxuICAnLnR1aS1zZWxlY3QnXG4pO1xuXG4vKiBTZWxlY3RvcnMgZm9yIGlucHV0cyB0aGF0IGFyZSAqcmVwbGFjZWQgZWxlbWVudHMqLiovXG4vKiBUaGUgYmVoYXZpb3Igb2Ygd2lkdGg6IGF1dG8gZGlmZmVycyBmb3IgcmVwbGFjZWQgZWxlbWVudHMsIHNvIHRoZXNlIGFyZSBzZXQqL1xuLyogdG8gd2lkdGg6IDEwMCUgdG8gZ2V0IHRoZSBcImdyb3cgdG8gY29udGFpbmVyXCIgYmVoYXZpb3IuKi9cbi8qIGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0NTUy9SZXBsYWNlZF9lbGVtZW50Ki9cbi8qIEhvd2V2ZXIsIHRoaXMgY2F1c2VzIGFuIGlzc3VlIGluIGNlcnRhaW4gY29udGV4dHMgLSBuYW1lbHkgaWYgdGhlIGNvbnRhaW5lciovXG4vKiBoYXMgYSBtYXJnaW4uIFRoaXMgbGlzdCBleGlzdHMgdG8gZW5hYmxlIHdvcmthcm91bmRzIHVzaW5nIGZsZXggYXQgdGhlIHNpdGUqL1xuLyogb2YgdXNlLiovXG4vKiBJZiBtb2RpZnlpbmcgdGhpcyBsaXN0IGluIGEgdGhlbWUsIGRvIGl0IHZpYSBhcHBlbmQoKSByYXRoZXIgdGhhbiByZXBsYWNpbmcqL1xuLyogdGhlIGVudGlyZSBsaXN0LiovXG4kdHVpLWlucHV0LXJlcGxhY2VkLXNlbGVjdG9yczogKFxuICAnaW5wdXRbdHlwZV0udHVpLWZvcm1JbnB1dCcsXG4gICcudHVpLWZvcm1UZXh0YXJlYScsXG4gICcudHVpLXJhbmdlJyxcbiAgJy50dWktc2VsZWN0J1xuKTtcblxuLyogRG9uJ3QgYXBwbHkgdGhlIGRlZmF1bHQgaW5wdXQgc2l6ZSBpZiB0aGUgZWxlbWVudCBpcyB3aXRoaW4gb25lIG9mIHRoZXNlKi9cbi8qIHNlbGVjdG9ycy4qL1xuLyogKGlmIGl0J3Mgbm90IHdpdGhpbiBhIGZvcm0sIGl0IHdvbid0IGJlIGFwcGxpZWQgZWl0aGVyKSovXG4kdHVpLWlucHV0LW5vLWRlZmF1bHQtc2l6ZS1wYXJlbnQtc2VsZWN0b3JzOiAoXG4gIC8qIG1pbm9yIGNvbnZlbmllbmNlOiBzcGxpdCBpbnB1dCBzZXRzIHNob3VsZCBub3QgaGF2ZSB0aGUgd2lkdGggc2V0LCB0byBzYXZlKi9cbiAgICAvKiBkZXZlbG9wZXJzIGZyb20gaGF2aW5nIHRvIHBhc3MgY2hhci1sZW5ndGg9XCJmdWxsXCIgYWxsIHRoZSB0aW1lKi9cbiAgICAnLnR1aS1pbnB1dFNldC0tc3BsaXQnXG4pO1xuXG4vKiBDYWxjdWxhdGUgY2hhcmFjdGVyLWJhc2VkIHNpemluZyBmb3IgaW5wdXRzLiovXG5AZnVuY3Rpb24gdHVpLWNoYXItbGVuZ3RoKCRudW0pIHtcbiAgQHJldHVybiBjYWxjKCN7JG51bX0gKiB2YXIoLS1mb3JtLWlucHV0LWZvbnQtc2l6ZSkpO1xufVxuXG4vKiBHZW5lcmF0ZSBzaXppbmcgY2xhc3MgZm9yIHNpemUqL1xuQG1peGluIHR1aS1jaGFyLWxlbmd0aC1jbGFzcygkbmFtZSwgJHdpZHRoKSB7XG4gICYtLWNoYXJMZW5ndGgtI3skbmFtZX0ge1xuICAgIG1heC13aWR0aDogI3skd2lkdGh9O1xuICB9XG59XG5cbi8qIERlZmF1bHQgaW5wdXQgc2l6aW5nKi9cbkBtaXhpbiB0dWktY2hhci1sZW5ndGgtY2xhc3MtZm9ybS1kZWZhdWx0KCkge1xuICAvKiBTZXQgYSBjdXN0b20gc2l6ZSBmb3IgaW5wdXRzIGluIGEgbGltaXRlZCBmb3JtKi9cbiAgLnR1aS1mb3JtLS1pbnB1dFdpZHRoLWxpbWl0ZWQgJjpub3QoLnR1aS1pbnB1dC0tY3VzdG9tU2l6ZSkge1xuICAgIG1heC13aWR0aDogdmFyKC0tZm9ybS1pbnB1dC1saW1pdGVkLXdpZHRoKTtcbiAgfVxuICBAZWFjaCAkc2VsIGluICR0dWktaW5wdXQtbm8tZGVmYXVsdC1zaXplLXBhcmVudC1zZWxlY3RvcnMge1xuICAgIC50dWktZm9ybS0taW5wdXRXaWR0aC1saW1pdGVkICN7JHNlbH0gJjpub3QoLnR1aS1pbnB1dC0tY3VzdG9tU2l6ZSkge1xuICAgICAgbWF4LXdpZHRoOiBub25lO1xuICAgIH1cbiAgfVxufVxuXG4vKiBHZW5lcmF0ZSBzaXppbmcgY2xhc3NlcyBmb3IgcHJlZGVmaW5lZCBzaXplcyovXG5AbWl4aW4gdHVpLWNoYXItbGVuZ3RoLWNsYXNzZXMoKSB7XG4gIEBlYWNoICRzaXplIGluICR0dWktY2hhci1sZW5ndGgtc2NhbGUge1xuICAgIEBpbmNsdWRlIHR1aS1jaGFyLWxlbmd0aC1jbGFzcygkc2l6ZSwgdHVpLWNoYXItbGVuZ3RoKCRzaXplKSk7XG4gIH1cbiAgQGluY2x1ZGUgdHVpLWNoYXItbGVuZ3RoLWNsYXNzLWZvcm0tZGVmYXVsdCgpO1xufVxuXG4vKiBWZXJ0aWNhbCBwYWRkaW5nIG9mIGZvcm0gZWxlbWVudHMuKi9cbi8qIENhbGN1bGF0ZSB0aGUgcmVtYWluaW5nIGF2YWlsYWJsZSBzcGFjZSB0byBtZWV0IHRoZSB0YXJnZXQgaGVpZ2h0LiovXG4vKiBNdXN0IGJlIG9uIGEgc2luZ2xlIGxpbmUgb3RoZXJ3aXNlIGl0IGJyZWFrcyAoZm9yIHNvbWUgcmVhc29uISkgc28gbXVzdCBiZSBpZ25vcmVkIGJ5IHByZXR0aWVyLiovXG4vKiBwcmV0dGllci1pZ25vcmUqL1xuQGZ1bmN0aW9uIHR1aS1pbnB1dC12LXBhZGRpbmcoKSB7XG4gIEByZXR1cm4gY2FsYygodmFyKC0tZm9ybS1pbnB1dC1oZWlnaHQpIC0gKHZhcigtLWZvcm0taW5wdXQtZm9udC1zaXplKSAqIHZhcigtLWZvcm0taW5wdXQtbGluZS1oZWlnaHQpKSAtICh2YXIoLS1mb3JtLWlucHV0LWJvcmRlci1zaXplKSAqIDIpKSAvIDIpO1xufVxuLyogcHJldHRpZXItaWdub3JlKi9cbkBmdW5jdGlvbiB0dWktaW5wdXQtdi1wYWRkaW5nLWJvcmRlcmxlc3MoKSB7XG4gIEByZXR1cm4gY2FsYygodmFyKC0tZm9ybS1pbnB1dC1oZWlnaHQpIC0gKHZhcigtLWZvcm0taW5wdXQtZm9udC1zaXplKSAqIHZhcigtLWZvcm0taW5wdXQtbGluZS1oZWlnaHQpKSkgLyAyKTtcbn1cblxuOnJvb3Qge1xuICAvKiBIZWlnaHQgb2Ygc2luZ2xlIGxpbmUgZm9ybSBlbGVtZW50cyAoaW5jbHVkaW5nIHBhZGRpbmcgJiBib3JkZXIpKi9cbiAgLS1mb3JtLWlucHV0LWhlaWdodDogMy42cmVtO1xuICAvKiBIZWlnaHQgb2YgbGFyZ2Ugc2luZ2xlIGxpbmUgZm9ybSBlbGVtZW50cyAoaW5jbHVkaW5nIHBhZGRpbmcgJiBib3JkZXIpKi9cbiAgLS1mb3JtLWlucHV0LWhlaWdodC1sYXJnZTogNHJlbTtcbiAgLyogSW5uZXIgZm9udCBzaXplIG9mIGZvcm0gZWxlbWVudHMqL1xuICAtLWZvcm0taW5wdXQtZm9udC1zaXplOiB2YXIoLS1mb250LWJvZHktc2l6ZSk7XG4gIC0tZm9ybS1pbnB1dC1mb250LXNpemUtc206IHZhcigtLWZvbnQtYm9keS1zbWFsbC1zaXplKTtcbiAgLS1mb3JtLWlucHV0LWZvbnQtc2l6ZS1sZzogdmFyKC0tZm9udC1zaXplLTE2KTtcbiAgLS1mb3JtLWlucHV0LWxpbmUtaGVpZ2h0OiB2YXIoLS1mb250LWJvZHktbGluZS1oZWlnaHQpO1xuICAvKiBCb3JkZXIgc2l6ZSBvZiBpbnB1dCBlbGVtZW50cyovXG4gIC0tZm9ybS1pbnB1dC1ib3JkZXItc2l6ZTogMXB4O1xuICAtLWZvcm0taW5wdXQtYm9yZGVyLXJhZGl1czogMC40cmVtO1xuICAtLWZvcm0taW5wdXQtaW52YWxpZC1zaGFkb3ctc2l6ZTogMXB4O1xuXG4gIC8qIFdpZHRoIGZvciBcImxpbWl0ZWRcIiB3aWR0aCBzZXR0aW5nKi9cbiAgLS1mb3JtLWlucHV0LWxpbWl0ZWQtd2lkdGg6IHR1aS1jaGFyLWxlbmd0aCgyMCk7XG5cbiAgLyogU2ltcGxlIE5vdGVwYWQgc3R5bGUgbGluZXMsIGZvciBwcmludGluZyB1bmFuc3dlcmVkIGZvcm0gaW5wdXRzLiovXG4gIC0tZm9ybS1ub3RlcGFkLWxpbmUtaGVpZ2h0OiAzcmVtO1xuICAtLWZvcm0tbm90ZXBhZC1saW5lLWJvcmRlcjogc29saWQgMXB4O1xuXG4gIC8qIFNwYWNpbmcgYmV0d2VlbiBlbGVtZW50cyBpbiBhbiBJbnB1dFNldCovXG4gIC0taW5wdXQtc2V0LXNwYWNpbmc6IHZhcigtLWdhcC0yKTtcblxuICAtLWNoYXItbGVuZ3RoLXNjYWxlOiAkdHVpLWNoYXItbGVuZ3RoLXNjYWxlO1xuXG4gIC8qIE9mZnNldCBmb3IgcmFkaW8gbGFiZWwqL1xuICAtLXJhZGlvLWxhYmVsLW9mZnNldDogY2FsYyh2YXIoLS1mb3JtLXJhZGlvLXNpemUpICogMS4zNSk7XG5cbiAgLyogRGVwcmVjYXRlZCBzaW5jZSBUb3RhcmEgMTguMDoqL1xuICAtLWZvcm0taW5wdXQtdi1wYWRkaW5nOiB2YXIoLS1nYXAtMik7XG59XG5cbiIsIi8qIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIFRvdGFyYSBFbnRlcnByaXNlIEV4dGVuc2lvbnMuKi9cbi8qKi9cbi8qIENvcHlyaWdodCAoQykgMjAyMSBvbndhcmRzIFRvdGFyYSBMZWFybmluZyBTb2x1dGlvbnMgTFREKi9cbi8qKi9cbi8qIFRvdGFyYSBFbnRlcnByaXNlIEV4dGVuc2lvbnMgaXMgcHJvdmlkZWQgb25seSB0byBUb3RhcmEqL1xuLyogTGVhcm5pbmcgU29sdXRpb25zIExURCdzIGN1c3RvbWVycyBhbmQgcGFydG5lcnMsIHB1cnN1YW50IHRvKi9cbi8qIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZiBhIHNlcGFyYXRlIGFncmVlbWVudCB3aXRoIFRvdGFyYSovXG4vKiBMZWFybmluZyBTb2x1dGlvbnMgTFREIG9yIGl0cyBhZmZpbGlhdGUuKi9cbi8qKi9cbi8qIElmIHlvdSBkbyBub3QgaGF2ZSBhbiBhZ3JlZW1lbnQgd2l0aCBUb3RhcmEgTGVhcm5pbmcgU29sdXRpb25zKi9cbi8qIExURCwgeW91IG1heSBub3QgYWNjZXNzLCB1c2UsIG1vZGlmeSwgb3IgZGlzdHJpYnV0ZSB0aGlzIHNvZnR3YXJlLiovXG4vKiBQbGVhc2UgY29udGFjdCBbbGljZW5zaW5nQHRvdGFyYWxlYXJuaW5nLmNvbV0gZm9yIG1vcmUgaW5mb3JtYXRpb24uKi9cbi8qKi9cbi8qIEBhdXRob3IgS2V2aW4gSG90dGluZ2VyIDxrZXZpbi5ob3R0aW5nZXJAdG90YXJhbGVhcm5pbmcuY29tPiovXG4vKiBAbW9kdWxlIHR1aSovXG5cbjpyb290IHtcbiAgLyogR2FwIHRvIHRoZSBsZWZ0ICYgcmlnaHQgb2YgZG90IHNlcGFyYXRvciovXG4gIC0tc2VwYXJhdG9yLWRvdC1nYXA6IDAuNTNlbTtcbiAgLyogV2lkdGggLyBoZWlnaHQgb2YgZG90Ki9cbiAgLS1zZXBhcmF0b3ItZG90LXNpemU6IDAuMmVtO1xuICAvKiBHYXAgdG8gdGhlIGxlZnQgJiByaWdodCBvZiBwaXBlIHNlcGFyYXRvciovXG4gIC0tc2VwYXJhdG9yLXBpcGUtZ2FwOiAwLjUzZW07XG4gIC8qIFdpZHRoIG9mIHBpcGUqL1xuICAtLXNlcGFyYXRvci1waXBlLXNpemU6IDFweDtcbn1cblxuQG1peGluIHR1aS1zZXBhcmF0b3ItZG90IHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC13cmFwOiB3cmFwO1xuXG4gICYgPiAqICsgKiB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgbWFyZ2luLWxlZnQ6IHZhcigtLXNlcGFyYXRvci1kb3QtZ2FwKTtcbiAgICAvKiBwcmV0dGllci1pZ25vcmUgKi9cbiAgICBwYWRkaW5nLWxlZnQ6IGNhbGModmFyKC0tc2VwYXJhdG9yLWRvdC1nYXApICsgY2FsYyh2YXIoLS1zZXBhcmF0b3ItZG90LXNpemUpIC0gMXB4KSk7XG5cbiAgICAmOmJlZm9yZSB7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB0b3A6IGNhbGModmFyKC0tc2VwYXJhdG9yLWRvdC1zaXplKSAvIDIpO1xuICAgICAgYm90dG9tOiAwO1xuICAgICAgbGVmdDogMDtcbiAgICAgIGhlaWdodDogdmFyKC0tc2VwYXJhdG9yLWRvdC1zaXplKTtcbiAgICAgIG1hcmdpbjogYXV0byAwO1xuICAgICAgYm9yZGVyLWxlZnQ6IHZhcigtLXNlcGFyYXRvci1kb3Qtc2l6ZSkgc29saWQ7XG4gICAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgICBjb250ZW50OiAnJztcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIHR1aS1zZXBhcmF0b3ItcGlwZSB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtd3JhcDogd3JhcDtcblxuICAmID4gKiArICoge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIG1hcmdpbi1sZWZ0OiB2YXIoLS1zZXBhcmF0b3ItcGlwZS1nYXApO1xuICAgIHBhZGRpbmctbGVmdDogdmFyKC0tc2VwYXJhdG9yLXBpcGUtZ2FwKTtcblxuICAgICY6YmVmb3JlIHtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHRvcDogMDtcbiAgICAgIGJvdHRvbTogMDtcbiAgICAgIGxlZnQ6IDA7XG4gICAgICBoZWlnaHQ6IDFlbTtcbiAgICAgIG1hcmdpbjogYXV0byAwO1xuICAgICAgYm9yZGVyLWxlZnQ6IHZhcigtLXNlcGFyYXRvci1waXBlLXNpemUpIHNvbGlkO1xuICAgICAgY29udGVudDogJyc7XG4gICAgfVxuICB9XG59XG5cbiIsIi8qIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIFRvdGFyYSBFbnRlcnByaXNlIEV4dGVuc2lvbnMuKi9cbi8qKi9cbi8qIENvcHlyaWdodCAoQykgMjAyMCBvbndhcmRzIFRvdGFyYSBMZWFybmluZyBTb2x1dGlvbnMgTFREKi9cbi8qKi9cbi8qIFRvdGFyYSBFbnRlcnByaXNlIEV4dGVuc2lvbnMgaXMgcHJvdmlkZWQgb25seSB0byBUb3RhcmEqL1xuLyogTGVhcm5pbmcgU29sdXRpb25zIExURCdzIGN1c3RvbWVycyBhbmQgcGFydG5lcnMsIHB1cnN1YW50IHRvKi9cbi8qIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZiBhIHNlcGFyYXRlIGFncmVlbWVudCB3aXRoIFRvdGFyYSovXG4vKiBMZWFybmluZyBTb2x1dGlvbnMgTFREIG9yIGl0cyBhZmZpbGlhdGUuKi9cbi8qKi9cbi8qIElmIHlvdSBkbyBub3QgaGF2ZSBhbiBhZ3JlZW1lbnQgd2l0aCBUb3RhcmEgTGVhcm5pbmcgU29sdXRpb25zKi9cbi8qIExURCwgeW91IG1heSBub3QgYWNjZXNzLCB1c2UsIG1vZGlmeSwgb3IgZGlzdHJpYnV0ZSB0aGlzIHNvZnR3YXJlLiovXG4vKiBQbGVhc2UgY29udGFjdCBbbGljZW5zaW5nQHRvdGFyYWxlYXJuaW5nLmNvbV0gZm9yIG1vcmUgaW5mb3JtYXRpb24uKi9cbi8qKi9cbi8qIEBhdXRob3IgICAgS2V2aW4gSG90dGluZ2VyIDxrZXZpbi5ob3R0aW5nZXJAdG90YXJhbGVhcm5pbmcuY29tPiovXG4vKiBAbW9kdWxlIHR1aWNrYWdlICAgdHVpKi9cblxuOnJvb3Qge1xuICAtLXRhZy1oZWlnaHQ6IDI0cHg7XG4gIC0tdGFnLWJvcmRlci1yYWRpdXM6IDEycHg7IC8qIC0tdGFnLWhlaWdodCAvIDIgLSBmb3Igc29tZSByZWFzb24gSUUgY2FsYyB3YXNuJ3Qgd29ya2luZyBjb3JyZWN0bHkgaGVyZSovXG59XG5cbiIsIi8qIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIFRvdGFyYSBFbnRlcnByaXNlIEV4dGVuc2lvbnMuKi9cbi8qKi9cbi8qIENvcHlyaWdodCAoQykgMjAyMCBvbndhcmRzIFRvdGFyYSBMZWFybmluZyBTb2x1dGlvbnMgTFREKi9cbi8qKi9cbi8qIFRvdGFyYSBFbnRlcnByaXNlIEV4dGVuc2lvbnMgaXMgcHJvdmlkZWQgb25seSB0byBUb3RhcmEqL1xuLyogTGVhcm5pbmcgU29sdXRpb25zIExURCdzIGN1c3RvbWVycyBhbmQgcGFydG5lcnMsIHB1cnN1YW50IHRvKi9cbi8qIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZiBhIHNlcGFyYXRlIGFncmVlbWVudCB3aXRoIFRvdGFyYSovXG4vKiBMZWFybmluZyBTb2x1dGlvbnMgTFREIG9yIGl0cyBhZmZpbGlhdGUuKi9cbi8qKi9cbi8qIElmIHlvdSBkbyBub3QgaGF2ZSBhbiBhZ3JlZW1lbnQgd2l0aCBUb3RhcmEgTGVhcm5pbmcgU29sdXRpb25zKi9cbi8qIExURCwgeW91IG1heSBub3QgYWNjZXNzLCB1c2UsIG1vZGlmeSwgb3IgZGlzdHJpYnV0ZSB0aGlzIHNvZnR3YXJlLiovXG4vKiBQbGVhc2UgY29udGFjdCBbbGljZW5zaW5nQHRvdGFyYWxlYXJuaW5nLmNvbV0gZm9yIG1vcmUgaW5mb3JtYXRpb24uKi9cbi8qKi9cbi8qIEBhdXRob3IgICAgS2V2aW4gSG90dGluZ2VyIDxrZXZpbi5ob3R0aW5nZXJAdG90YXJhbGVhcm5pbmcuY29tPiovXG4vKiBAbW9kdWxlIHR1aWNrYWdlICAgdHVpKi9cblxuOnJvb3Qge1xuICAtLWZvbnQtZmFtaWx5OiAtYXBwbGUtc3lzdGVtLCBCbGlua01hY1N5c3RlbUZvbnQsICdTZWdvZSBVSScsIFJvYm90byxcbiAgICAnSGVsdmV0aWNhIE5ldWUnLCBBcmlhbCwgc2Fucy1zZXJpZjtcbiAgLS1mb250LWZhbWlseS1tb25vc3BhY2U6IE1lbmxvLCBNb25hY28sIENvbnNvbGFzLCAnTGliZXJhdGlvbiBNb25vJyxcbiAgICAnQ291cmllciBOZXcnLCBtb25vc3BhY2U7XG5cbiAgLyoqIExpbmUgaGVpZ2h0cyAqKi9cbiAgLyogQm9keSovXG4gIC0tZm9udC1ib2R5LWxpbmUtaGVpZ2h0OiAxLjQyOTtcbiAgLS1mb250LWJvZHktbGFyZ2UtbGluZS1oZWlnaHQ6IDEuMzM7XG4gIC0tZm9udC1ib2R5LXNtYWxsLWxpbmUtaGVpZ2h0OiAxLjE1NDtcbiAgLS1mb250LWJvZHkteC1zbWFsbC1saW5lLWhlaWdodDogMS4yNTtcbiAgLS1mb250LWJvZHkteHgtc21hbGwtbGluZS1oZWlnaHQ6IDEuMTtcblxuICAvKiBIZWFkaW5ncyovXG4gIC0tZm9udC1oZWFkaW5nLWxhcmdlLWxpbmUtaGVpZ2h0OiAxLjE2NztcbiAgLS1mb250LWhlYWRpbmctbGluZS1oZWlnaHQ6IDEuMzMzO1xuICAtLWZvbnQtaGVhZGluZy1zbWFsbC1saW5lLWhlaWdodDogMS4zMzM7XG4gIC0tZm9udC1oZWFkaW5nLXgtc21hbGwtbGluZS1oZWlnaHQ6IDEuMzMzO1xuXG4gIC8qKiBGb250IHNpemVzICoqL1xuICAvKiBCb2R5Ki9cbiAgLS1mb250LWJvZHktc2l6ZTogdmFyKC0tZm9udC1zaXplLTE0KTtcbiAgLS1mb250LWJvZHktc21hbGwtc2l6ZTogdmFyKC0tZm9udC1zaXplLTEzKTtcbiAgLS1mb250LWJvZHkteC1zbWFsbC1zaXplOiB2YXIoLS1mb250LXNpemUtMTIpO1xuICAtLWZvbnQtYm9keS14eC1zbWFsbC1zaXplOiB2YXIoLS1mb250LXNpemUtMTEpO1xuXG4gIC8qIEhlYWRpbmdzKi9cbiAgLS1mb250LWhlYWRpbmctbGFyZ2Utc2l6ZTogdmFyKC0tZm9udC1zaXplLTUwKTtcbiAgLS1mb250LWhlYWRpbmctc2l6ZTogdmFyKC0tZm9udC1zaXplLTMwKTtcbiAgLS1mb250LWhlYWRpbmctc21hbGwtc2l6ZTogdmFyKC0tZm9udC1zaXplLTIwKTtcbiAgLS1mb250LWhlYWRpbmcteC1zbWFsbC1zaXplOiB2YXIoLS1mb250LXNpemUtMTYpO1xufVxuXG4vKiovXG4vKiBCb2R5IHRleHQqL1xuLyoqL1xuXG5AbWl4aW4gdHVpLWZvbnQtYm9keSB7XG4gIGNvbG9yOiB2YXIoLS1jb2xvci10ZXh0KTtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgZm9udC1zaXplOiB2YXIoLS1mb250LWJvZHktc2l6ZSk7XG4gIGxpbmUtaGVpZ2h0OiB2YXIoLS1mb250LWJvZHktbGluZS1oZWlnaHQpO1xufVxuXG5AbWl4aW4gdHVpLWZvbnQtYm9keS1zbWFsbCB7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGZvbnQtc2l6ZTogdmFyKC0tZm9udC1ib2R5LXNtYWxsLXNpemUpO1xuICBsaW5lLWhlaWdodDogdmFyKC0tZm9udC1ib2R5LXNtYWxsLWxpbmUtaGVpZ2h0KTtcbn1cblxuQG1peGluIHR1aS1mb250LWJvZHkteC1zbWFsbCB7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGZvbnQtc2l6ZTogdmFyKC0tZm9udC1ib2R5LXgtc21hbGwtc2l6ZSk7XG4gIGxpbmUtaGVpZ2h0OiB2YXIoLS1mb250LWJvZHkteC1zbWFsbC1saW5lLWhlaWdodCk7XG59XG5cbkBtaXhpbiB0dWktZm9udC1ib2R5LXh4LXNtYWxsIHtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgZm9udC1zaXplOiB2YXIoLS1mb250LWJvZHkteHgtc21hbGwtc2l6ZSk7XG4gIGxpbmUtaGVpZ2h0OiB2YXIoLS1mb250LWJvZHkteHgtc21hbGwtbGluZS1oZWlnaHQpO1xufVxuXG5AbWl4aW4gdHVpLWZvbnQtYm9keS1kaXNhYmxlZCB7XG4gIGNvbG9yOiB2YXIoLS1jb2xvci10ZXh0LWRpc2FibGVkKTtcbn1cblxuQG1peGluIHR1aS1mb250LWJvZHktcGxhY2Vob2xkZXIge1xuICBjb2xvcjogdmFyKC0tY29sb3ItdGV4dC1oaW50KTtcbn1cblxuQG1peGluIHR1aS1mb250LWhlYXZ5IHtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG59XG5cbkBtaXhpbiB0dWktZm9udC1oaW50IHtcbiAgY29sb3I6IHZhcigtLWNvbG9yLXRleHQtaGludCk7XG4gIGZvbnQtc3R5bGU6IGl0YWxpYztcbn1cblxuQG1peGluIHR1aS1mb250LW1vbm9zcGFjZSB7XG4gIGZvbnQtZmFtaWx5OiB2YXIoLS1mb250LWZhbWlseS1tb25vc3BhY2UpO1xufVxuXG4vKiovXG4vKiBMaW5rIHRleHQqL1xuLyoqL1xuXG5AbWl4aW4gdHVpLWZvbnQtbGluayB7XG4gIGNvbG9yOiB2YXIoLS1jb2xvci1zdGF0ZSk7XG4gIGZvbnQtc2l6ZTogdmFyKC0tZm9udC1ib2R5LXNpemUpO1xuICBsaW5lLWhlaWdodDogdmFyKC0tZm9udC1ib2R5LWxpbmUtaGVpZ2h0KTtcbiAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICY6aG92ZXIsXG4gICY6Zm9jdXMge1xuICAgIGNvbG9yOiB2YXIoLS1jb2xvci1zdGF0ZS1ob3Zlcik7XG4gIH1cblxuICAmOmFjdGl2ZSxcbiAgJjphY3RpdmU6aG92ZXIsXG4gICY6YWN0aXZlOmZvY3VzIHtcbiAgICBjb2xvcjogdmFyKC0tY29sb3Itc3RhdGUtYWN0aXZlKTtcbiAgfVxufVxuXG5AbWl4aW4gdHVpLWZvbnQtbGluay1sYXJnZSB7XG4gIGNvbG9yOiB2YXIoLS1jb2xvci1zdGF0ZSk7XG4gIGZvbnQtc2l6ZTogdmFyKC0tZm9udC1zaXplLTE2KTtcbiAgbGluZS1oZWlnaHQ6IDEuMzM7XG4gIGN1cnNvcjogcG9pbnRlcjtcblxuICAmOmhvdmVyLFxuICAmOmZvY3VzIHtcbiAgICBjb2xvcjogdmFyKC0tY29sb3Itc3RhdGUtaG92ZXIpO1xuICB9XG5cbiAgJjphY3RpdmUsXG4gICY6YWN0aXZlOmhvdmVyLFxuICAmOmFjdGl2ZTpmb2N1cyB7XG4gICAgY29sb3I6IHZhcigtLWNvbG9yLXN0YXRlLWFjdGl2ZSk7XG4gIH1cbn1cblxuQG1peGluIHR1aS1mb250LWxpbmstc21hbGwge1xuICBjb2xvcjogdmFyKC0tY29sb3Itc3RhdGUpO1xuICBmb250LXNpemU6IHZhcigtLWZvbnQtc2l6ZS0xMyk7XG4gIGxpbmUtaGVpZ2h0OiAxLjMzO1xuICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgJjpob3ZlcixcbiAgJjpmb2N1cyB7XG4gICAgY29sb3I6IHZhcigtLWNvbG9yLXN0YXRlLWhvdmVyKTtcbiAgfVxuXG4gICY6YWN0aXZlLFxuICAmOmFjdGl2ZTpob3ZlcixcbiAgJjphY3RpdmU6Zm9jdXMge1xuICAgIGNvbG9yOiB2YXIoLS1jb2xvci1zdGF0ZS1hY3RpdmUpO1xuICB9XG59XG5cbi8qKi9cbi8qIEhlYWRpbmcgdGV4dCovXG4vKiovXG5cbkBtaXhpbiB0dWktZm9udC1oZWFkaW5nLWxhcmdlIHtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIGZvbnQtc2l6ZTogdmFyKC0tZm9udC1oZWFkaW5nLWxhcmdlLXNpemUpO1xuICBsaW5lLWhlaWdodDogdmFyKC0tZm9udC1oZWFkaW5nLWxhcmdlLWxpbmUtaGVpZ2h0KTtcbn1cblxuQG1peGluIHR1aS1mb250LWhlYWRpbmctbWVkaXVtIHtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgZm9udC1zaXplOiB2YXIoLS1mb250LWhlYWRpbmctc2l6ZSk7XG4gIGxpbmUtaGVpZ2h0OiB2YXIoLS1mb250LWhlYWRpbmctbGluZS1oZWlnaHQpO1xufVxuXG5AbWl4aW4gdHVpLWZvbnQtaGVhZGluZy1zbWFsbCB7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBmb250LXNpemU6IHZhcigtLWZvbnQtaGVhZGluZy1zbWFsbC1zaXplKTtcbiAgbGluZS1oZWlnaHQ6IHZhcigtLWZvbnQtaGVhZGluZy1zbWFsbC1saW5lLWhlaWdodCk7XG59XG5cbkBtaXhpbiB0dWktZm9udC1oZWFkaW5nLXNtYWxsLXJlZ3VsYXIge1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBmb250LXNpemU6IHZhcigtLWZvbnQtaGVhZGluZy1zbWFsbC1zaXplKTtcbiAgbGluZS1oZWlnaHQ6IHZhcigtLWZvbnQtaGVhZGluZy1zbWFsbC1saW5lLWhlaWdodCk7XG59XG5cbkBtaXhpbiB0dWktZm9udC1oZWFkaW5nLXgtc21hbGwge1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgZm9udC1zaXplOiB2YXIoLS1mb250LWhlYWRpbmcteC1zbWFsbC1zaXplKTtcbiAgbGluZS1oZWlnaHQ6IHZhcigtLWZvbnQtaGVhZGluZy14LXNtYWxsLWxpbmUtaGVpZ2h0KTtcbn1cblxuQG1peGluIHR1aS1mb250LWhlYWRpbmctbGFiZWwge1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgZm9udC1zaXplOiB2YXIoLS1mb250LWJvZHktc2l6ZSk7XG4gIGxpbmUtaGVpZ2h0OiB2YXIoLS1mb250LWJvZHktbGluZS1oZWlnaHQpO1xufVxuXG5AbWl4aW4gdHVpLWZvbnQtaGVhZGluZy1sYWJlbC1zbWFsbCB7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBmb250LXNpemU6IHZhcigtLWZvbnQtYm9keS1zbWFsbC1zaXplKTtcbiAgbGluZS1oZWlnaHQ6IHZhcigtLWZvbnQtYm9keS1zbWFsbC1saW5lLWhlaWdodCk7XG59XG5cbkBtaXhpbiB0dWktZm9udC1oZWFkaW5nLXBhZ2UtdGl0bGUge1xuICBtYXJnaW46IDA7XG4gIEBpbmNsdWRlIHR1aS1mb250LWhlYWRpbmctbWVkaXVtO1xufVxuXG5AbWl4aW4gdHVpLWZvbnQtaGVhZGluZy1wYWdlLXRpdGxlLXNtYWxsIHtcbiAgbWFyZ2luOiAwO1xuICBAaW5jbHVkZSB0dWktZm9udC1oZWFkaW5nLXNtYWxsO1xufVxuXG4vKiovXG4vKiBUZXh0IHdyYXBwaW5nKi9cbi8qKi9cblxuLyogYnJlYWsgd2hlbiB0aGUgd29yZCBzdGFydHMgb24gYSBuZXcgbGluZSBhbmQgYnJlYWtzIHdoZXJlIGl0IHdvdWxkIGhhdmUqL1xuLyogb3ZlcmZsb3duLCBhdXRvIGluc2VydGluZyBoeXBoZW5zLiB1c2VmdWwgZm9yIHVzZXItZ2VuZXJhdGVkIGNvbnRlbnQgd2hvc2UqL1xuLyogY29udGFpbmVycyBhcmUgZ2VuZXJhbGx5IGZsZXhpYmxlLiBtYWNoaW5lLWluc2VydGlvbiBvZiBoeXBoZW5zIG1heSBub3QgYmUqL1xuLyogYW4gZW5kIHVzZXIgcHJlZmVyZW5jZSwgYnV0IGl0IGNhbiBiZSBtb3JlIHJlYWRhYmxlIHRoYW4gd2l0aG91dC4qL1xuQG1peGluIHR1aS13b3JkYnJlYWstLWh5cGhlbnMge1xuICBvdmVyZmxvdy13cmFwOiBicmVhay13b3JkO1xuICAtd2Via2l0LWh5cGhlbnM6IGF1dG87XG4gICAgICAgICAgaHlwaGVuczogYXV0bztcbiAgLmllICYge1xuICAgIC1tcy1oeXBoZW5zOiBhdXRvO1xuICB9XG59XG5cbi8qIGJyZWFrIGFsbCB3b3JkcyBhdCB0aGUgZW5kIG9mIGxpbmVzLCBkb24ndCBoeXBoZW5hdGUuIHVzZWZ1bCBmb3IgcHJlZGljdGFibGUqL1xuLyogcGFydHMgb2YgdGhlIFVJIHdob3NlIGNvbnRhaW5lcnMgYXJlIGxlc3MgZmxleGlibGUuKi9cbkBtaXhpbiB0dWktd29yZGJyZWFrLS1oYXJkIHtcbiAgd29yZC1icmVhazogYnJlYWstd29yZDtcbiAgLXdlYmtpdC1oeXBoZW5zOiBub25lO1xuICAgICAgICAgIGh5cGhlbnM6IG5vbmU7XG4gIC5pZSAmIHtcbiAgICAtbXMtd29yZC1icmVhazogYnJlYWstYWxsO1xuICAgIC1tcy1oeXBoZW5zOiBub25lO1xuICB9XG59XG5cbiIsIi8qIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIFRvdGFyYSBFbnRlcnByaXNlIEV4dGVuc2lvbnMuKi9cbi8qKi9cbi8qIENvcHlyaWdodCAoQykgMjAyMCBvbndhcmRzIFRvdGFyYSBMZWFybmluZyBTb2x1dGlvbnMgTFREKi9cbi8qKi9cbi8qIFRvdGFyYSBFbnRlcnByaXNlIEV4dGVuc2lvbnMgaXMgcHJvdmlkZWQgb25seSB0byBUb3RhcmEqL1xuLyogTGVhcm5pbmcgU29sdXRpb25zIExURCdzIGN1c3RvbWVycyBhbmQgcGFydG5lcnMsIHB1cnN1YW50IHRvKi9cbi8qIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZiBhIHNlcGFyYXRlIGFncmVlbWVudCB3aXRoIFRvdGFyYSovXG4vKiBMZWFybmluZyBTb2x1dGlvbnMgTFREIG9yIGl0cyBhZmZpbGlhdGUuKi9cbi8qKi9cbi8qIElmIHlvdSBkbyBub3QgaGF2ZSBhbiBhZ3JlZW1lbnQgd2l0aCBUb3RhcmEgTGVhcm5pbmcgU29sdXRpb25zKi9cbi8qIExURCwgeW91IG1heSBub3QgYWNjZXNzLCB1c2UsIG1vZGlmeSwgb3IgZGlzdHJpYnV0ZSB0aGlzIHNvZnR3YXJlLiovXG4vKiBQbGVhc2UgY29udGFjdCBbbGljZW5zaW5nQHRvdGFyYWxlYXJuaW5nLmNvbV0gZm9yIG1vcmUgaW5mb3JtYXRpb24uKi9cbi8qKi9cbi8qIEBhdXRob3IgICAgU2ltb24gQ2hlc3RlciA8c2ltb24uY2hlc3RlckB0b3RhcmFsZWFybmluZy5jb20+Ki9cbi8qIEBtb2R1bGUgdHVpY2thZ2UgICB0dWkqL1xuXG4vKiAjZG9jayBpcyAxMjAwMCwgbW9kYWwgbXVzdCBiZSBhYm92ZSB0aGF0Ki9cbjpyb290IHtcbiAgLyogQWJvdmUgcmVndWxhciBjb250ZW50LCBidXQgYmVsb3cgcG9wdXBzL292ZXJsYXlzKi9cbiAgLS16aW5kZXgtc3RpY2t5OiA1MDA7XG5cbiAgLyogRmxvYXRpbmcgVUksIGJlbG93IGRyb3Bkb3duIGJ1dCBhYm92ZSBzdGlja3kgY29udGVudCovXG4gIC0temluZGV4LWZsb2F0aW5nLXVpOiA1MDAwO1xuXG4gIC0temluZGV4LWRyb3Bkb3duLW1lbnU6IDEwMDAwO1xuICAtLXppbmRleC1tb2RhbDogMTAwMDUwO1xuICAtLXppbmRleC1tb2RhbC1iYWNrZHJvcDogMTAwMDQwO1xuICAtLXppbmRleC1wb3BvdmVyOiAxMDAwNTA7XG4gIC0temluZGV4LWxvYWRpbmctcGFnZTogMTAwMDYwO1xuICAtLXppbmRleC10b2FzdDogMTAwMDcwO1xuICAtLXppbmRleC1lcnJvci1tb2RhbDogMTAwMDcwO1xuICAtLXppbmRleC1kcmFnZ2FibGU6IDEwMDA4MDtcbn1cblxuIiwiLyogVGhpcyBmaWxlIGlzIHBhcnQgb2YgVG90YXJhIEVudGVycHJpc2UgRXh0ZW5zaW9ucy4qL1xuLyoqL1xuLyogQ29weXJpZ2h0IChDKSAyMDIwIG9ud2FyZHMgVG90YXJhIExlYXJuaW5nIFNvbHV0aW9ucyBMVEQqL1xuLyoqL1xuLyogVG90YXJhIEVudGVycHJpc2UgRXh0ZW5zaW9ucyBpcyBwcm92aWRlZCBvbmx5IHRvIFRvdGFyYSovXG4vKiBMZWFybmluZyBTb2x1dGlvbnMgTFREJ3MgY3VzdG9tZXJzIGFuZCBwYXJ0bmVycywgcHVyc3VhbnQgdG8qL1xuLyogdGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIG9mIGEgc2VwYXJhdGUgYWdyZWVtZW50IHdpdGggVG90YXJhKi9cbi8qIExlYXJuaW5nIFNvbHV0aW9ucyBMVEQgb3IgaXRzIGFmZmlsaWF0ZS4qL1xuLyoqL1xuLyogSWYgeW91IGRvIG5vdCBoYXZlIGFuIGFncmVlbWVudCB3aXRoIFRvdGFyYSBMZWFybmluZyBTb2x1dGlvbnMqL1xuLyogTFRELCB5b3UgbWF5IG5vdCBhY2Nlc3MsIHVzZSwgbW9kaWZ5LCBvciBkaXN0cmlidXRlIHRoaXMgc29mdHdhcmUuKi9cbi8qIFBsZWFzZSBjb250YWN0IFtsaWNlbnNpbmdAdG90YXJhbGVhcm5pbmcuY29tXSBmb3IgbW9yZSBpbmZvcm1hdGlvbi4qL1xuLyoqL1xuLyogQGF1dGhvciAgICBLZXZpbiBIb3R0aW5nZXIgPGtldmluLmhvdHRpbmdlckB0b3RhcmFsZWFybmluZy5jb20+Ki9cbi8qIEBtb2R1bGUgdHVpY2thZ2UgICB0dWkqL1xuXG5odG1sIHtcbiAgZm9udC1zaXplOiAxMHB4O1xufVxuXG4udHVpLXNyLW9ubHkge1xuICBAaW5jbHVkZSBzci1vbmx5KCk7XG59XG5cbi8qIHJlbmRlcmVkIGVkaXRvciBjb250ZW50Ki9cbi50dWktcmVuZGVyZWQge1xuICBAaW5jbHVkZSB0dWktZm9udC1ib2R5KCk7XG4gIHdvcmQtYnJlYWs6IGJyZWFrLXdvcmQ7XG5cbiAgaDIge1xuICAgIEBpbmNsdWRlIHR1aS1mb250LWhlYWRpbmctbGFyZ2UoKTtcbiAgfVxuXG4gIGgzIHtcbiAgICBAaW5jbHVkZSB0dWktZm9udC1oZWFkaW5nLW1lZGl1bSgpO1xuICB9XG5cbiAgaDQge1xuICAgIEBpbmNsdWRlIHR1aS1mb250LWhlYWRpbmctc21hbGwoKTtcbiAgfVxuXG4gIGg1IHtcbiAgICBAaW5jbHVkZSB0dWktZm9udC1oZWFkaW5nLXgtc21hbGwoKTtcbiAgfVxuXG4gICZfX2Jsb2NrIHtcbiAgICBtYXJnaW4tYm90dG9tOiB2YXIoLS1wYXJhZ3JhcGgtZ2FwKTtcbiAgfVxuXG4gICZfX2VtYmVkQ29udGFpbmVyIHtcbiAgICBtYXgtd2lkdGg6IHZhcigtLWVtYmVkZGVkLW1lZGlhLW1heC13aWR0aCk7XG4gIH1cbn1cblxuLyogQ29sb3Igc3RhdGUgZm9yIHRoZSBpY29ucy4qL1xuLnR1aS1pY29uIHtcbiAgJi0tZGlzYWJsZWQge1xuICAgIGNvbG9yOiB2YXIoLS1jb2xvci1uZXV0cmFsLTIpO1xuICB9XG5cbiAgJi0tYWN0aW9uIHtcbiAgICBjb2xvcjogdmFyKC0tY29sb3Itc3RhdGUpO1xuICB9XG5cbiAgJi0taW5mbyB7XG4gICAgY29sb3I6IHZhcigtLWNvbG9yLXByb21wdC1pbmZvKTtcbiAgfVxuXG4gICYtLWFsZXJ0IHtcbiAgICBjb2xvcjogdmFyKC0tY29sb3ItcHJvbXB0LWFsZXJ0KTtcbiAgfVxuXG4gICYtLXdhcm5pbmcge1xuICAgIGNvbG9yOiB2YXIoLS1jb2xvci1wcm9tcHQtd2FybmluZyk7XG4gIH1cblxuICAmLS1zdWNjZXNzIHtcbiAgICBjb2xvcjogdmFyKC0tY29sb3ItcHJvbXB0LXN1Y2Nlc3MpO1xuICB9XG5cbiAgJi0tZGltbWVkIHtcbiAgICBjb2xvcjogdmFyKC0tY29sb3ItbmV1dHJhbC02KTtcbiAgfVxufVxuXG4udHVpLWFkZGVyIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgZmxleC1ncm93OiAxO1xuICBoZWlnaHQ6IDUwcmVtO1xuXG4gICZfX25vdGljZXMge1xuICAgIG1hcmdpbi1ib3R0b206IHZhcigtLWdhcC02KTtcbiAgfVxuXG4gICZfX3RhYnMge1xuICAgIGZsZXgtZ3JvdzogMTtcbiAgICBtaW4taGVpZ2h0OiAwO1xuICB9XG5cbiAgJl9fdGFiUGFuZWwge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgfVxuXG4gICZfX2xpc3Qge1xuICAgIGZsZXgtZ3JvdzogMTtcbiAgICBoZWlnaHQ6IDMxNnB4O1xuICAgIG92ZXJmbG93LXk6IGF1dG87XG5cbiAgICAmLWxvYWRpbmcge1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICBtaW4taGVpZ2h0OiA1MHB4O1xuICAgIH1cblxuICAgICYtbG9hZE1vcmUge1xuICAgICAgbWFyZ2luOiB2YXIoLS1nYXAtNCkgMCB2YXIoLS1nYXAtNCk7XG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgfVxuXG4gICAgJjo6YmVmb3JlIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgaGVpZ2h0OiB2YXIoLS1nYXAtNCk7XG4gICAgICBjb250ZW50OiAnJztcbiAgICB9XG4gIH1cblxuICAmX19mb290ZXIge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICAgIGJvcmRlci10b3A6IHZhcigtLWJvcmRlci13aWR0aC1ub3JtYWwpIHNvbGlkIHZhcigtLWNvbG9yLW5ldXRyYWwtNSk7XG5cbiAgICAmID4gKiB7XG4gICAgICBtYXJnaW4tdG9wOiB2YXIoLS1nYXAtNik7XG4gICAgfVxuICB9XG5cbiAgJl9fc3VtbWFyeSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIEBpbmNsdWRlIHR1aS1mb250LWhlYWRpbmctbGFiZWwoKTtcbiAgfVxuXG4gICZfX2FjdGlvbnMge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gIH1cbn1cblxuLnR1aS1oaWVyYXJjaGljYWxQYXJlbnRCdXR0b24ge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBwYWRkaW5nOiB2YXIoLS1nYXAtNCkgMCAwO1xuXG4gICZfX2JhY2tBcnJvdyB7XG4gICAgdGV4dC1hbGlnbjogc3RhcnQ7XG5cbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAkdHVpLXNjcmVlbi14cykge1xuICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIH1cbiAgfVxuXG4gICZfX2xhYmVsIHtcbiAgICBtYXJnaW4tbGVmdDogdmFyKC0tZ2FwLTIpO1xuICB9XG59XG5cbjpyb290IHtcbiAgLS1hdmF0YXItYm9yZGVyLXJhZGl1czogNTAlO1xuICAtLWF2YXRhci1sYXJnZS13aWR0aDogMTg1cHg7XG4gIC0tYXZhdGFyLWxhcmdlLWhlaWdodDogMTg1cHg7XG4gIC0tYXZhdGFyLWxhcmdlLXBhZGRpbmc6IDVweDtcbiAgLS1hdmF0YXItbWVkaXVtLXdpZHRoOiAxMDVweDtcbiAgLS1hdmF0YXItbWVkaXVtLWhlaWdodDogMTA1cHg7XG4gIC0tYXZhdGFyLW1lZGl1bS1wYWRkaW5nOiAzcHg7XG4gIC0tYXZhdGFyLXNtYWxsLXdpZHRoOiA1MHB4O1xuICAtLWF2YXRhci1zbWFsbC1oZWlnaHQ6IDUwcHg7XG4gIC0tYXZhdGFyLXNtYWxsLXBhZGRpbmc6IDJweDtcbiAgLS1hdmF0YXIteHNtYWxsLXdpZHRoOiAzOHB4O1xuICAtLWF2YXRhci14c21hbGwtaGVpZ2h0OiAzOHB4O1xuICAtLWF2YXRhci14c21hbGwtcGFkZGluZzogMXB4O1xuICAtLWF2YXRhci14eHNtYWxsLXdpZHRoOiAyNHB4O1xuICAtLWF2YXRhci14eHNtYWxsLWhlaWdodDogMjRweDtcbiAgLS1hdmF0YXIteHhzbWFsbC1wYWRkaW5nOiAxcHg7XG59XG5cbi50dWktYXZhdGFyIHtcbiAgYm9yZGVyOiB2YXIoLS1ib3JkZXItd2lkdGgtbm9ybWFsKSBzb2xpZCB2YXIoLS1hdmF0YXItYm9yZGVyLWNvbG9yKTtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tYXZhdGFyLWJvcmRlci1yYWRpdXMpO1xuXG4gICYtLWxhcmdlIHtcbiAgICB3aWR0aDogdmFyKC0tYXZhdGFyLWxhcmdlLXdpZHRoKTtcbiAgICBoZWlnaHQ6IHZhcigtLWF2YXRhci1sYXJnZS1oZWlnaHQpO1xuICAgIHBhZGRpbmc6IHZhcigtLWF2YXRhci1sYXJnZS1wYWRkaW5nKTtcbiAgfVxuXG4gICYtLW1lZGl1bSB7XG4gICAgd2lkdGg6IHZhcigtLWF2YXRhci1tZWRpdW0td2lkdGgpO1xuICAgIGhlaWdodDogdmFyKC0tYXZhdGFyLW1lZGl1bS1oZWlnaHQpO1xuICAgIHBhZGRpbmc6IHZhcigtLWF2YXRhci1tZWRpdW0tcGFkZGluZyk7XG4gIH1cblxuICAmLS1zbWFsbCB7XG4gICAgd2lkdGg6IHZhcigtLWF2YXRhci1zbWFsbC13aWR0aCk7XG4gICAgaGVpZ2h0OiB2YXIoLS1hdmF0YXItc21hbGwtaGVpZ2h0KTtcbiAgICBwYWRkaW5nOiB2YXIoLS1hdmF0YXItc21hbGwtcGFkZGluZyk7XG4gIH1cblxuICAmLS14c21hbGwge1xuICAgIHdpZHRoOiB2YXIoLS1hdmF0YXIteHNtYWxsLXdpZHRoKTtcbiAgICBoZWlnaHQ6IHZhcigtLWF2YXRhci14c21hbGwtaGVpZ2h0KTtcbiAgICBwYWRkaW5nOiB2YXIoLS1hdmF0YXIteHNtYWxsLXBhZGRpbmcpO1xuICB9XG5cbiAgJi0teHhzbWFsbCB7XG4gICAgd2lkdGg6IHZhcigtLWF2YXRhci14eHNtYWxsLXdpZHRoKTtcbiAgICBoZWlnaHQ6IHZhcigtLWF2YXRhci14eHNtYWxsLWhlaWdodCk7XG4gICAgcGFkZGluZzogdmFyKC0tYXZhdGFyLXh4c21hbGwtcGFkZGluZyk7XG4gIH1cbn1cblxuLnR1aS1iYXNrZXQge1xuICBAaW5jbHVkZSB0dWktZm9udC1ib2R5KCk7XG5cbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgZmxleC13cmFwOiB3cmFwO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci1uZXV0cmFsLTMpO1xuICBib3JkZXI6IHZhcigtLWJvcmRlci13aWR0aC10aGluKSBzb2xpZCB2YXIoLS1jb2xvci1uZXV0cmFsLTUpO1xuXG4gIEBtZWRpYSAobWluLXdpZHRoOiAkdHVpLXNjcmVlbi1zbSkge1xuICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIH1cblxuICAmX19zdGF0dXMsXG4gICZfX2FjdGlvbnMge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1zaHJpbms6IDA7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgcGFkZGluZzogdmFyKC0tZ2FwLTIpIHZhcigtLWdhcC0zKTtcblxuICAgICYgPiAqIHtcbiAgICAgIG1hcmdpbi10b3A6IHZhcigtLWdhcC0yKTtcbiAgICAgIG1hcmdpbi1sZWZ0OiB2YXIoLS1nYXAtNCk7XG4gICAgfVxuXG4gICAgQG1lZGlhIChtaW4td2lkdGg6ICR0dWktc2NyZWVuLXhzKSB7XG4gICAgICAmID4gKiB7XG4gICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgfVxuXG4gICAgICA+IC50dWktZm9ybUJ0bi0tdHJhbnNwYXJlbnQge1xuICAgICAgICBwYWRkaW5nOiB2YXIoLS1nYXAtMSk7XG4gICAgICB9XG5cbiAgICAgID4gKiArICoge1xuICAgICAgICBtYXJnaW4tbGVmdDogdmFyKC0tZ2FwLTIpO1xuICAgICAgfVxuXG4gICAgICAudHVpLWJhc2tldC0td2lkZUdhcCAmIHtcbiAgICAgICAgPiAqICsgKiB7XG4gICAgICAgICAgbWFyZ2luLWxlZnQ6IHZhcigtLWdhcC00KTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gICZfX3NlbGVjdGVkIHtcbiAgICBmb250LXdlaWdodDogYm9sZDtcbiAgfVxuXG4gICZfX3NlbGVjdGVkQ291bnQge1xuICAgIGZvbnQtc2l6ZTogdmFyKC0tZm9udC1zaXplLTE4KTtcbiAgfVxufVxuXG4udHVpLWZvcm1CdG4sXG4ldHVpLWZvcm1CdG4ge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgZmxleC1zaHJpbms6IDA7XG4gIG1pbi13aWR0aDogdmFyKC0tYnRuLW1pbi13aWR0aCk7XG4gIG1heC13aWR0aDogMTAwJTtcbiAgbWluLWhlaWdodDogdmFyKC0tYnRuLW1pbi1oZWlnaHQpO1xuICAvKiBwcmV0dGllci1pZ25vcmUqL1xuICBwYWRkaW5nOiBjYWxjKCh2YXIoLS1idG4tbWluLWhlaWdodCkgLSB2YXIoLS1idG4tZm9udC1zaXplKSAqIHZhcigtLWJ0bi1saW5lLWhlaWdodCkpIC8gMiAtIHZhcigtLWJ0bi1ib3JkZXItd2lkdGgpKSB2YXIoLS1idG4tcGFkZGluZy1oKTtcblxuICBjb2xvcjogdmFyKC0tYnRuLXRleHQtY29sb3IpO1xuICBmb250LXNpemU6IHZhcigtLWJ0bi1mb250LXNpemUpO1xuICBsaW5lLWhlaWdodDogdmFyKC0tYnRuLWxpbmUtaGVpZ2h0KTtcbiAgb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDtcbiAgYmFja2dyb3VuZDogdmFyKC0tYnRuLWJnLWNvbG9yKTtcbiAgYm9yZGVyOiB2YXIoLS1idG4tYm9yZGVyLXdpZHRoKSBzb2xpZDtcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1idG4tYm9yZGVyLWNvbG9yKTtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tYnRuLXJhZGl1cyk7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciB2YXIoLS10cmFuc2l0aW9uLWJ1dHRvbi1kdXJhdGlvbilcbiAgICAgIHZhcigtLXRyYW5zaXRpb24tYnV0dG9uLWZ1bmN0aW9uKSxcbiAgICBib3JkZXItY29sb3IgdmFyKC0tdHJhbnNpdGlvbi1idXR0b24tZHVyYXRpb24pXG4gICAgICB2YXIoLS10cmFuc2l0aW9uLWJ1dHRvbi1mdW5jdGlvbiksXG4gICAgYm94LXNoYWRvdyB2YXIoLS10cmFuc2l0aW9uLWJ1dHRvbi1kdXJhdGlvbilcbiAgICAgIHZhcigtLXRyYW5zaXRpb24tYnV0dG9uLWZ1bmN0aW9uKTtcblxuICA+IC50dWktZm9ybUJ0bl9fY2FyZXQge1xuICAgIG1hcmdpbi1sZWZ0OiB2YXIoLS1nYXAtMik7XG4gIH1cblxuICAudHVpLWZvcm1CdG5fX2xvYWRpbmcge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgcmlnaHQ6IDA7XG4gICAgYm90dG9tOiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGNvbG9yOiB2YXIoLS1idG4tbG9hZGVyLWNvbG9yLWRpc2FibGVkKTtcbiAgfVxuXG4gICY6Zm9jdXMge1xuICAgIGNvbG9yOiB2YXIoLS1idG4tdGV4dC1jb2xvcik7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIGJhY2tncm91bmQ6IHZhcigtLWJ0bi1iZy1jb2xvcik7XG4gICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1idG4tYm9yZGVyLWNvbG9yKTtcbiAgICBvdXRsaW5lOiBub25lO1xuICAgIGJveC1zaGFkb3c6IHZhcigtLWJ0bi1zaGFkb3cpO1xuICB9XG5cbiAgJjpmb2N1cy12aXNpYmxlIHtcbiAgICBAaW5jbHVkZSB0dWktZm9jdXMoKTtcbiAgfVxuXG4gICY6aG92ZXIge1xuICAgIGNvbG9yOiB2YXIoLS1idG4tdGV4dC1jb2xvci1ob3Zlcik7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIGJhY2tncm91bmQ6IHZhcigtLWJ0bi1iZy1jb2xvci1ob3Zlcik7XG4gICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1idG4tYm9yZGVyLWNvbG9yLWhvdmVyKTtcbiAgICBib3gtc2hhZG93OiB2YXIoLS1idG4tc2hhZG93LWhvdmVyKTtcbiAgfVxuXG4gICY6YWN0aXZlIHtcbiAgICBjb2xvcjogdmFyKC0tYnRuLXRleHQtY29sb3ItYWN0aXZlKTtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1idG4tYmctY29sb3ItYWN0aXZlKTtcbiAgICBib3JkZXI6IHZhcigtLWJ0bi1ib3JkZXItd2lkdGgpIHNvbGlkO1xuICAgIGJvcmRlci1jb2xvcjogdmFyKC0tYnRuLWJvcmRlci1jb2xvci1hY3RpdmUpO1xuICAgIGJveC1zaGFkb3c6IHZhcigtLWJ0bi1zaGFkb3ctYWN0aXZlKTtcbiAgfVxuXG4gICY6ZGlzYWJsZWQsXG4gICZbZGlzYWJsZWRdLFxuICAmLS1sb2FkaW5nIHtcbiAgICBjb2xvcjogdmFyKC0tYnRuLXRleHQtY29sb3ItZGlzYWJsZWQpO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWJ0bi1iZy1jb2xvci1kaXNhYmxlZCk7XG4gICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1idG4tYm9yZGVyLWNvbG9yLWRpc2FibGVkKTtcbiAgICBjdXJzb3I6IGRlZmF1bHQ7XG4gICAgb3BhY2l0eTogMTtcblxuICAgICY6YWN0aXZlLFxuICAgICY6Zm9jdXMsXG4gICAgJjpob3ZlciB7XG4gICAgICBjb2xvcjogdmFyKC0tYnRuLXRleHQtY29sb3ItZGlzYWJsZWQpO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYnRuLWJnLWNvbG9yLWRpc2FibGVkKTtcbiAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tYnRuLWJvcmRlci1jb2xvci1kaXNhYmxlZCk7XG4gICAgICBib3gtc2hhZG93OiBub25lO1xuICAgIH1cbiAgfVxuXG4gICYtLWFsZXJ0IHtcbiAgICAmLFxuICAgICY6Zm9jdXMge1xuICAgICAgY29sb3I6IHZhcigtLWJ0bi1hbGVydC10ZXh0LWNvbG9yKTtcbiAgICAgIGJhY2tncm91bmQ6IHZhcigtLWJ0bi1hbGVydC1iZy1jb2xvcik7XG4gICAgICBib3JkZXItY29sb3I6IHZhcigtLWJ0bi1hbGVydC1ib3JkZXItY29sb3IpO1xuICAgIH1cblxuICAgICY6Zm9jdXMtdmlzaWJsZSB7XG4gICAgICBvdXRsaW5lLWNvbG9yOiB2YXIoLS1idG4tYWxlcnQtYm9yZGVyLWNvbG9yKTtcbiAgICB9XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIGNvbG9yOiB2YXIoLS1idG4tYWxlcnQtdGV4dC1jb2xvci1ob3Zlcik7XG4gICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1idG4tYWxlcnQtYmctY29sb3ItaG92ZXIpO1xuICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1idG4tYWxlcnQtYm9yZGVyLWNvbG9yLWhvdmVyKTtcbiAgICB9XG5cbiAgICAmOmFjdGl2ZSB7XG4gICAgICBjb2xvcjogdmFyKC0tYnRuLWFsZXJ0LXRleHQtY29sb3ItYWN0aXZlKTtcbiAgICAgIGJhY2tncm91bmQ6IHZhcigtLWJ0bi1hbGVydC1iZy1jb2xvci1hY3RpdmUpO1xuICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1idG4tYWxlcnQtYm9yZGVyLWNvbG9yLWFjdGl2ZSk7XG4gICAgfVxuXG4gICAgJjpkaXNhYmxlZCxcbiAgICAmW2Rpc2FibGVkXSxcbiAgICAmLnR1aS1mb3JtQnRuLS1sb2FkaW5nIHtcbiAgICAgIGNvbG9yOiB2YXIoLS1idG4tYWxlcnQtdGV4dC1jb2xvci1kaXNhYmxlZCk7XG4gICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1idG4tYWxlcnQtYmctY29sb3ItZGlzYWJsZWQpO1xuICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1idG4tYWxlcnQtYm9yZGVyLWNvbG9yLWRpc2FibGVkKTtcbiAgICAgIGN1cnNvcjogZGVmYXVsdDtcbiAgICAgIG9wYWNpdHk6IDE7XG5cbiAgICAgICY6YWN0aXZlLFxuICAgICAgJjpmb2N1cyxcbiAgICAgICY6aG92ZXIge1xuICAgICAgICBjb2xvcjogdmFyKC0tYnRuLWFsZXJ0LXRleHQtY29sb3ItZGlzYWJsZWQpO1xuICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1idG4tYWxlcnQtYmctY29sb3ItZGlzYWJsZWQpO1xuICAgICAgICBib3JkZXItY29sb3I6IHZhcigtLWJ0bi1hbGVydC1ib3JkZXItY29sb3ItZGlzYWJsZWQpO1xuICAgICAgICBib3gtc2hhZG93OiBub25lO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gICYtLXByaW0ge1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuXG4gICAgJixcbiAgICAmOmZvY3VzIHtcbiAgICAgIGNvbG9yOiB2YXIoLS1idG4tcHJpbS10ZXh0LWNvbG9yKTtcbiAgICAgIGJhY2tncm91bmQ6IHZhcigtLWJ0bi1wcmltLWJnLWNvbG9yKTtcbiAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tYnRuLXByaW0tYm9yZGVyLWNvbG9yKTtcbiAgICB9XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIGNvbG9yOiB2YXIoLS1idG4tcHJpbS10ZXh0LWNvbG9yLWhvdmVyKTtcbiAgICAgIGJhY2tncm91bmQ6IHZhcigtLWJ0bi1wcmltLWJnLWNvbG9yLWhvdmVyKTtcbiAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tYnRuLXByaW0tYm9yZGVyLWNvbG9yLWhvdmVyKTtcbiAgICB9XG5cbiAgICAmOmFjdGl2ZSB7XG4gICAgICBjb2xvcjogdmFyKC0tYnRuLXByaW0tdGV4dC1jb2xvci1hY3RpdmUpO1xuICAgICAgYmFja2dyb3VuZDogdmFyKC0tYnRuLXByaW0tYmctY29sb3ItYWN0aXZlKTtcbiAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tYnRuLXByaW0tYm9yZGVyLWNvbG9yLWFjdGl2ZSk7XG4gICAgfVxuXG4gICAgJjpkaXNhYmxlZCxcbiAgICAmW2Rpc2FibGVkXSxcbiAgICAmLnR1aS1mb3JtQnRuLS1sb2FkaW5nIHtcbiAgICAgIGNvbG9yOiB2YXIoLS1idG4tcHJpbS10ZXh0LWNvbG9yLWRpc2FibGVkKTtcbiAgICAgIGJhY2tncm91bmQ6IHZhcigtLWJ0bi1wcmltLWJnLWNvbG9yLWRpc2FibGVkKTtcbiAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tYnRuLXByaW0tYm9yZGVyLWNvbG9yLWRpc2FibGVkKTtcbiAgICAgIGN1cnNvcjogZGVmYXVsdDtcbiAgICAgIG9wYWNpdHk6IDE7XG5cbiAgICAgICY6YWN0aXZlLFxuICAgICAgJjpmb2N1cyxcbiAgICAgICY6aG92ZXIge1xuICAgICAgICBjb2xvcjogdmFyKC0tYnRuLXByaW0tdGV4dC1jb2xvci1kaXNhYmxlZCk7XG4gICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWJ0bi1wcmltLWJnLWNvbG9yLWRpc2FibGVkKTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1idG4tcHJpbS1ib3JkZXItY29sb3ItZGlzYWJsZWQpO1xuICAgICAgICBib3gtc2hhZG93OiBub25lO1xuICAgICAgfVxuICAgIH1cblxuICAgIC50dWktZm9ybUJ0bl9fbG9hZGluZyB7XG4gICAgICBjb2xvcjogdmFyKC0tYnRuLXByaW0tbG9hZGVyLWNvbG9yLWRpc2FibGVkKTtcbiAgICB9XG4gIH1cblxuICAmLS1zbWFsbCB7XG4gICAgbWluLWhlaWdodDogdmFyKC0tYnRuLXNtLW1pbi1oZWlnaHQpO1xuICAgIC8qIHByZXR0aWVyLWlnbm9yZSovXG4gICAgcGFkZGluZzogY2FsYygodmFyKC0tYnRuLXNtLW1pbi1oZWlnaHQpIC0gdmFyKC0tYnRuLXNtLWZvbnQtc2l6ZSkgKiB2YXIoLS1idG4tc20tbGluZS1oZWlnaHQpKSAvIDIgLSB2YXIoLS1idG4tYm9yZGVyLXdpZHRoKSkgdmFyKC0tYnRuLXNtLXBhZGRpbmctaCk7XG4gICAgZm9udC1zaXplOiB2YXIoLS1idG4tc20tZm9udC1zaXplKTtcbiAgICBsaW5lLWhlaWdodDogdmFyKC0tYnRuLXNtLWxpbmUtaGVpZ2h0KTtcbiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1idG4tc20tcmFkaXVzKTtcbiAgfVxuXG4gICYtLXRyYW5zcGFyZW50LFxuICAmLS1yZXZlYWwge1xuICAgIG1pbi1oZWlnaHQ6IGF1dG87XG4gICAgcGFkZGluZzogMDtcbiAgICBsaW5lLWhlaWdodDogMTtcbiAgICBib3JkZXItcmFkaXVzOiAwO1xuICB9XG5cbiAgJi0tdHJhbnNwYXJlbnQsXG4gICYtLXJldmVhbCxcbiAgJi0tc3RlYWx0aCB7XG4gICAgbWluLXdpZHRoOiAwO1xuICAgIGNvbG9yOiB2YXIoLS1jb2xvci1zdGF0ZSk7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgYm9yZGVyOiBub25lO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICY6Zm9jdXMge1xuICAgICAgY29sb3I6IHZhcigtLWNvbG9yLXN0YXRlLWZvY3VzKTtcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICB9XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIGNvbG9yOiB2YXIoLS1jb2xvci1zdGF0ZS1ob3Zlcik7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgfVxuXG4gICAgJjphY3RpdmUge1xuICAgICAgY29sb3I6IHZhcigtLWNvbG9yLXN0YXRlLWFjdGl2ZSk7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgfVxuXG4gICAgJjpmb2N1cy12aXNpYmxlIHtcbiAgICAgIEBpbmNsdWRlIHR1aS1mb2N1cygpO1xuICAgIH1cblxuICAgICY6ZGlzYWJsZWQsXG4gICAgJi50dWktZm9ybUJ0bi0tbG9hZGluZyB7XG4gICAgICBjb2xvcjogdmFyKC0tY29sb3Itc3RhdGUtZGlzYWJsZWQpO1xuICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgICBvcGFjaXR5OiAxO1xuXG4gICAgICAmOmFjdGl2ZSxcbiAgICAgICY6Zm9jdXMsXG4gICAgICAmOmhvdmVyIHtcbiAgICAgICAgY29sb3I6IHZhcigtLWNvbG9yLXN0YXRlLWRpc2FibGVkKTtcbiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgJi0tcmV2ZWFsIHtcbiAgICBjb2xvcjogY3VycmVudENvbG9yO1xuICAgIGJvcmRlci1ib3R0b206IDFweCBkYXNoZWQgdmFyKC0tY29sb3Itc3RhdGUpO1xuXG4gICAgJjpmb2N1cyxcbiAgICAmOmhvdmVyLFxuICAgICY6YWN0aXZlIHtcbiAgICAgIGNvbG9yOiBjdXJyZW50Q29sb3I7XG4gICAgICBib3JkZXItYm90dG9tOiAxcHggZGFzaGVkIHZhcigtLWNvbG9yLXN0YXRlKTtcbiAgICB9XG5cbiAgICAmOmRpc2FibGVkLFxuICAgICYudHVpLWZvcm1CdG4tLWxvYWRpbmcge1xuICAgICAgY29sb3I6IGN1cnJlbnRDb2xvcjtcbiAgICAgIGJvcmRlci1ib3R0b206IDFweCBkYXNoZWQgdmFyKC0tY29sb3Itc3RhdGUpO1xuICAgICAgb3BhY2l0eTogMC43O1xuXG4gICAgICAmOmFjdGl2ZSxcbiAgICAgICY6Zm9jdXMsXG4gICAgICAmOmhvdmVyIHtcbiAgICAgICAgY29sb3I6IGN1cnJlbnRDb2xvcjtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IGRhc2hlZCB2YXIoLS1jb2xvci1zdGF0ZSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgJi0tdHJhbnNwYXJlbnQgJl9fdGV4dCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB9XG5cbiAgJi0tbG9hZGluZyAmX190ZXh0IHtcbiAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gIH1cblxuICAmLS1zck9ubHkge1xuICAgIEBpbmNsdWRlIHNyLW9ubHkoKTtcbiAgfVxufVxuXG4udHVpLWZvcm1CdG5Hcm91cCB7XG4gIGRpc3BsYXk6IGZsZXg7XG5cbiAgLnR1aS1mb3JtQnRuIHtcbiAgICBtaW4td2lkdGg6IDgwcHg7XG4gIH1cblxuICA+IDpub3QoOmZpcnN0LWNoaWxkKSB7XG4gICAgbWFyZ2luOiBhdXRvIDAgYXV0byB2YXIoLS1nYXAtNCk7XG4gIH1cbn1cblxuLnR1aS1pY29uQnRuIHtcbiAgLyogc3R5bGVsaW50LWRpc2FibGUtbmV4dC1saW5lIHR1aS9hdC1leHRlbmQtb25seS1wbGFjZWhvbGRlcnMqL1xuICBAZXh0ZW5kIC50dWktZm9ybUJ0bjtcblxuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIG1pbi13aWR0aDogMDtcbiAgcGFkZGluZzogMCB2YXIoLS1nYXAtMik7XG5cbiAgLyogaW4gb3JkZXIgdG8gdmVydGljYWxseSBjZW50ZXIgY29udGVudCBpbiBJRSB3ZSBuZWVkIHRoaXMgZGlzcGxheTogZmxleCovXG4gIC8qIHdyYXBwaW5nIGRpdiBiZWNhdXNlOiovXG4gIC8qICAgKiBwdXR0aW5nIGBkaXNwbGF5OiBmbGV4O2Agb24gLnR1aS1pY29uQnRuIGRvZXMgbm90IGNlbnRlciB2ZXJ0aWNhbGx5Ki9cbiAgLyogICAgIGR1ZSB0byBhbiBJRSAxMSBmbGV4IGJ1ZyovXG4gIC8qICAgICBodHRwczovL2dpdGh1Yi5jb20vcGhpbGlwd2FsdG9uL2ZsZXhidWdzI2ZsZXhidWctMyovXG4gIC8qICAgKiByZWx5aW5nIG9uIHZlcnRpY2FsLWFsaWduIGZvciBjZW50ZXJpbmcgaW5zdGVhZCBpcyBub3QgZ29vZCBlbm91Z2ggLSovXG4gIC8qICAgICBpdCdzIG9mZiBieSBhIHB4IG9yIHR3byovXG4gICZfX3dyYXAge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcblxuICAgID4gLnR1aS1pY29uQnRuX19jYXJldCB7XG4gICAgICBtYXJnaW46IDAgdmFyKC0tZ2FwLTEpO1xuICAgIH1cblxuICAgID4gLnR1aS1pY29uQnRuX19sb2FkaW5nIHtcbiAgICAgIG1hcmdpbi1sZWZ0OiB2YXIoLS1nYXAtMSk7XG4gICAgfVxuICB9XG5cbiAgJl9faWNvbiB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LXNocmluazogMDtcbiAgICBmb250LXNpemU6IHZhcigtLWZvbnQtc2l6ZS0xNik7XG4gIH1cblxuICAmX19sYWJlbCB7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgfVxuXG4gICZfX3RleHQge1xuICAgIEBpbmNsdWRlIHR1aS13b3JkYnJlYWstLWhhcmQ7XG4gIH1cblxuICAmLS1hbGVydCB7XG4gICAgLyogc3R5bGVsaW50LWRpc2FibGUtbmV4dC1saW5lIHR1aS9hdC1leHRlbmQtb25seS1wbGFjZWhvbGRlcnMqL1xuICAgIEBleHRlbmQgLnR1aS1mb3JtQnRuLS1hbGVydDtcbiAgfVxuXG4gICYtLXByaW0ge1xuICAgIC8qIHN0eWxlbGludC1kaXNhYmxlLW5leHQtbGluZSB0dWkvYXQtZXh0ZW5kLW9ubHktcGxhY2Vob2xkZXJzKi9cbiAgICBAZXh0ZW5kIC50dWktZm9ybUJ0bi0tcHJpbTtcbiAgfVxuXG4gICYtLXNtYWxsIHtcbiAgICAvKiBzdHlsZWxpbnQtZGlzYWJsZS1uZXh0LWxpbmUgdHVpL2F0LWV4dGVuZC1vbmx5LXBsYWNlaG9sZGVycyovXG4gICAgQGV4dGVuZCAudHVpLWZvcm1CdG4tLXNtYWxsO1xuICAgIHBhZGRpbmc6IDAgdmFyKC0tZ2FwLTEpO1xuICAgIGZvbnQtc2l6ZTogdmFyKC0tZm9udC1zaXplLTEzKTtcblxuICAgIC50dWktaWNvbkJ0bl9faWNvbiB7XG4gICAgICBwYWRkaW5nOiAwIDJweDtcbiAgICAgIGZvbnQtc2l6ZTogdmFyKC0tZm9udC1zaXplLTE0KTtcbiAgICB9XG4gIH1cblxuICAmLS14c21hbGwge1xuICAgIG1pbi1oZWlnaHQ6IDJyZW07XG4gICAgcGFkZGluZzogMCAwLjFyZW07XG4gICAgZm9udC1zaXplOiB2YXIoLS1mb250LXNpemUtMTIpO1xuXG4gICAgLnR1aS1pY29uQnRuX19pY29uIHtcbiAgICAgIHBhZGRpbmc6IDAgMXB4O1xuICAgICAgZm9udC1zaXplOiB2YXIoLS1mb250LXNpemUtMTEpO1xuICAgIH1cbiAgfVxuXG4gICYtLXNtYWxsJi0taGFzVGV4dCxcbiAgJi0teHNtYWxsJi0taGFzVGV4dCB7XG4gICAgLnR1aS1pY29uQnRuX19pY29uIHtcbiAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgfVxuICB9XG5cbiAgJi0teHNtYWxsJi0tdHJhbnNwYXJlbnQtbm9QYWRkaW5nIHtcbiAgICBtaW4taGVpZ2h0OiB1bnNldDtcbiAgfVxuXG4gICYtLWNpcmNsZSB7XG4gICAgd2lkdGg6IDMuNnJlbTtcbiAgICBoZWlnaHQ6IDMuNnJlbTtcbiAgICBwYWRkaW5nOiAwO1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcblxuICAgICYudHVpLWljb25CdG4tLXNtYWxsIHtcbiAgICAgIHdpZHRoOiAzcmVtO1xuICAgICAgaGVpZ2h0OiAzcmVtO1xuICAgIH1cblxuICAgICYudHVpLWljb25CdG4tLXhzbWFsbCB7XG4gICAgICB3aWR0aDogMnJlbTtcbiAgICAgIGhlaWdodDogMnJlbTtcbiAgICB9XG4gIH1cblxuICAmLS10cmFuc3BhcmVudCB7XG4gICAgLyogc3R5bGVsaW50LWRpc2FibGUtbmV4dC1saW5lIHR1aS9hdC1leHRlbmQtb25seS1wbGFjZWhvbGRlcnMqL1xuICAgIEBleHRlbmQgLnR1aS1mb3JtQnRuLS10cmFuc3BhcmVudDtcbiAgfVxuXG4gICYtLXRyYW5zcGFyZW50LW5vUGFkZGluZyB7XG4gICAgLyogc3R5bGVsaW50LWRpc2FibGUtbmV4dC1saW5lIHR1aS9hdC1leHRlbmQtb25seS1wbGFjZWhvbGRlcnMqL1xuICAgIEBleHRlbmQgLnR1aS1mb3JtQnRuLS10cmFuc3BhcmVudDtcbiAgICAmLnR1aS1pY29uQnRuLFxuICAgICYudHVpLWljb25CdG4tLXNtYWxsLFxuICAgICYudHVpLWljb25CdG4tLXhzbWFsbCB7XG4gICAgICBwYWRkaW5nOiAwO1xuICAgIH1cbiAgfVxuXG4gICYtLXN0ZWFsdGgge1xuICAgIC8qIHN0eWxlbGludC1kaXNhYmxlLW5leHQtbGluZSB0dWkvYXQtZXh0ZW5kLW9ubHktcGxhY2Vob2xkZXJzKi9cbiAgICBAZXh0ZW5kIC50dWktZm9ybUJ0bi0tc3RlYWx0aDtcbiAgfVxuXG4gICYtLXRleHRGaXJzdCAmX19sYWJlbCB7XG4gICAgZmxleC1kaXJlY3Rpb246IHJvdy1yZXZlcnNlO1xuICAgIC50dWktaWNvbkJ0bl9fdGV4dCB7XG4gICAgICBwYWRkaW5nOiAwIHZhcigtLWdhcC0xKTtcbiAgICB9XG4gIH1cbn1cblxuLnR1aS1pY29uQnRuX190ZXh0IHtcbiAgcGFkZGluZzogMCB2YXIoLS1nYXAtMSk7XG59XG5cbi50dWktaW5mb0ljb25CdXR0b24ge1xuICAmLnR1aS1pY29uQnRuIHtcbiAgICB3aWR0aDogYXV0bztcbiAgICBoZWlnaHQ6IGF1dG87XG4gICAgdmVydGljYWwtYWxpZ246IC0wLjEyNWVtO1xuICB9XG59XG5cbi50dWktbGFiZWxsZWRCdXR0b25UcmlnZ2VyIHtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cbiAgJl9fbGFiZWwge1xuICAgIGNvbG9yOiB2YXIoLS1jb2xvci1zdGF0ZSk7XG4gICAgJjpob3ZlciB7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB9XG4gIH1cbn1cblxuLnR1aS1hY3Rpb25DYXJkIHtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgcGFkZGluZzogdmFyKC0tZ2FwLTQpO1xuXG4gICZfX2JvZHkge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1ncm93OiAxO1xuICAgIGZsZXgtc2hyaW5rOiAxO1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICB9XG5cbiAgJl9fYWN0aW9uIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgIGFsaWduLWl0ZW1zOiBub3JtYWw7XG4gICAgcGFkZGluZzogdmFyKC0tZ2FwLTQpIDAgMDtcbiAgfVxuXG4gICYtLW5vUGFkZGluZyB7XG4gICAgcGFkZGluZzogMDtcbiAgfVxuXG4gICYtLW5vV3JhcCB7XG4gICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgfVxuXG4gICYtLW5vV3JhcCAmX19hY3Rpb24ge1xuICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgcGFkZGluZzogMDtcbiAgfVxuXG4gICYtLXNoYWRlZCB7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tY29sb3ItbmV1dHJhbC0zKTtcbiAgfVxufVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAkdHVpLXNjcmVlbi1zbSkge1xuICAudHVpLWFjdGlvbkNhcmQge1xuICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgJi0tc3RhY2tlZCB7XG4gICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIH1cblxuICAgICY6bm90KCYtLXN0YWNrZWQpICZfX2FjdGlvbiB7XG4gICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgcGFkZGluZzogMCAwIDAgdmFyKC0tZ2FwLTQpO1xuICAgIH1cbiAgfVxufVxuXG4udHVpLWNhcmQge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWNhcmQtYm9yZGVyLWNvbG9yKTtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tY2FyZC1ib3JkZXItcmFkaXVzKTtcbiAgb3V0bGluZTogbm9uZTtcblxuICAmX19saW5rIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICB9XG5cbiAgJi0tbm9Cb3JkZXIge1xuICAgIGJvcmRlcjogbm9uZTtcbiAgICAmOmZvY3VzLFxuICAgICY6aG92ZXIge1xuICAgICAgYm9yZGVyOiBub25lO1xuICAgIH1cbiAgfVxuXG4gICYtLWhhc0hvdmVyU2hhZG93OmZvY3VzLFxuICAmLS1oYXNIb3ZlclNoYWRvdzpob3ZlciB7XG4gICAgYm94LXNoYWRvdzogdmFyKC0tc2hhZG93LTIpO1xuICB9XG5cbiAgJi0taGFzU2hhZG93IHtcbiAgICBib3gtc2hhZG93OiB2YXIoLS1zaGFkb3ctMik7XG4gIH1cblxuICAmLS1jbGlja2FibGUge1xuICAgIHRyYW5zaXRpb246IGJveC1zaGFkb3cgdmFyKC0tdHJhbnNpdGlvbi1mb3JtLWZ1bmN0aW9uKVxuICAgICAgdmFyKC0tdHJhbnNpdGlvbi1mb3JtLWR1cmF0aW9uKTtcblxuICAgICYudHVpLWZvY3VzV2l0aGluIHtcbiAgICAgIGJveC1zaGFkb3c6IHZhcigtLXNoYWRvdy0yKTtcbiAgICB9XG4gIH1cblxuICAmLS1jbGlja2FibGU6aG92ZXIge1xuICAgIGJveC1zaGFkb3c6IHZhcigtLXNoYWRvdy0yKTtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gIH1cblxuICAmLS1jbGlja2FibGU6Zm9jdXMge1xuICAgIEBpbmNsdWRlIHR1aS1mb2N1cztcbiAgfVxufVxuXG4udHVpLWNvbGxhcHNpYmxlIHtcbiAgJl9faGVhZGVyIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGJhY2tncm91bmQ6IHZhcigtLWNvbGxhcHNpYmxlLWhlYWRlci1iZy1jb2xvcik7XG4gICAgYm9yZGVyOiB2YXIoLS1ib3JkZXItd2lkdGgtdGhpbikgc29saWRcbiAgICAgIHZhcigtLWNvbGxhcHNpYmxlLWhlYWRlci1ib3JkZXItY29sb3IpO1xuXG4gICAgJi1oZWFkaW5nIHtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICBtYXJnaW46IDA7XG4gICAgfVxuXG4gICAgJi1idXR0b24ge1xuICAgICAgQGluY2x1ZGUgdHVpLXdvcmRicmVhay0taGFyZCgpO1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgIG1hcmdpbjogMDtcbiAgICAgIHBhZGRpbmc6IHZhcigtLWdhcC0yKSB2YXIoLS1nYXAtMikgdmFyKC0tZ2FwLTIpIDA7XG5cbiAgICAgICYtLWV4Y2x1ZGVIZWFkZXJQYWRkaW5nIHtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgIH1cblxuICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgLXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTtcbiAgICAgICAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XG5cbiAgICAgICY6bm90KCYtLWhpZGVGb2N1cykge1xuICAgICAgICAmOmZvY3VzLXZpc2libGUge1xuICAgICAgICAgIEBpbmNsdWRlIHR1aS1mb2N1cygpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgJi1pY29uIHtcbiAgICAgICRpY29uLXNpemU6IDEuNHJlbTtcbiAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgICAgbWFyZ2luOiAwIHZhcigtLWdhcC00KTtcbiAgICAgIC8qIDEuMjUgYmFzZWQgb24gdHVpLWZvbnQtaGVhZGluZy14LXNtYWxsIGxpbmUtaGVpZ2h0Ki9cbiAgICAgIG1hcmdpbi10b3A6IGNhbGMoKHZhcigtLWZvbnQtc2l6ZS0xNikgKiAxLjI1IC0gI3skaWNvbi1zaXplfSkgLyAyKTtcbiAgICAgIGNvbG9yOiB2YXIoLS1jb2xvci1zdGF0ZSk7XG4gICAgICBmb250LXNpemU6ICRpY29uLXNpemU7XG4gICAgfVxuXG4gICAgJi10ZXh0IHtcbiAgICAgIEBpbmNsdWRlIHR1aS1mb250LWhlYWRpbmcteC1zbWFsbCgpO1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgbWFyZ2luOiAwO1xuICAgIH1cblxuICAgICYtc2lkZUNvbnRlbnQge1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgICAgcGFkZGluZzogdmFyKC0tZ2FwLTIpO1xuICAgIH1cbiAgfVxuXG4gICZfX2NvbnRlbnQge1xuICAgICYgPiAudHVpLWZvcm1Sb3dTdGFjayB7XG4gICAgICBtYXJnaW4tdG9wOiB2YXIoLS1nYXAtNCk7XG4gICAgfVxuXG4gICAgLyogbGluZSB1cCB3aXRoIHRleHQgb2YgaGVhZGVyKi9cbiAgICAmLS1pbmRlbnRlZCB7XG4gICAgICBwYWRkaW5nLWxlZnQ6IHZhcigtLWdhcC0xMik7XG4gICAgfVxuICB9XG4gICYtLW1pbmltYWwgJl9faGVhZGVyIHtcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50O1xuICB9XG5cbiAgJi0tbGFyZ2VQYWRkaW5nICZfX2hlYWRlci1idXR0b24ge1xuICAgIHBhZGRpbmc6IHZhcigtLWdhcC01KSB2YXIoLS1nYXAtMikgdmFyKC0tZ2FwLTUpIHZhcigtLWdhcC0xKTtcbiAgfVxuICAmLS1sYXJnZVBhZGRpbmcgJl9faGVhZGVyLXNpZGVDb250ZW50IHtcbiAgICBwYWRkaW5nOiB2YXIoLS1nYXAtMikgdmFyKC0tZ2FwLTQpO1xuICB9XG4gICYtLWxhcmdlUGFkZGluZyAmX19jb250ZW50IHtcbiAgICBwYWRkaW5nOiB2YXIoLS1nYXAtMyk7XG4gICAgcGFkZGluZy10b3A6IDA7XG5cbiAgICAmLS1pbmRlbnRlZCB7XG4gICAgICBwYWRkaW5nLWxlZnQ6IGNhbGModmFyKC0tZ2FwLTEyKSArIHZhcigtLWdhcC0xKSk7XG4gICAgfVxuICB9XG59XG5cbi50dWktY29sbGFwc2libGVHcm91cFRvZ2dsZSB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gICYtLWFsaWduRW5kICZfX2J1dHRvbiB7XG4gICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gIH1cbn1cblxuLnR1aS1oaWRlU2hvdyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLW5ldXRyYWwtMSk7XG5cbiAgJl9fY29udGVudCB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgICAmLS1zaG93IHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgb3V0bGluZTogbm9uZTtcbiAgICB9XG4gIH1cblxuICAmX190b2dnbGUge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgcGFkZGluZzogdmFyKC0tZ2FwLTIpIDA7XG5cbiAgICAmLS1uYXJyb3dUcmlnZ2VyIHtcbiAgICAgIHBhZGRpbmc6IDA7XG4gICAgfVxuXG4gICAgJi0tc3RpY2t5IHtcbiAgICAgIHBvc2l0aW9uOiBzdGlja3k7XG4gICAgICB0b3A6IDA7XG4gICAgICB6LWluZGV4OiAxO1xuICAgICAgYmFja2dyb3VuZDogaW5oZXJpdDtcbiAgICB9XG4gIH1cbn1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogJHR1aS1zY3JlZW4tc20pIHtcbiAgLnR1aS1oaWRlU2hvdy0tbW9iaWxlIHtcbiAgICAmID4gLnR1aS1oaWRlU2hvd19fdG9nZ2xlIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuXG4gICAgJiA+IC50dWktaGlkZVNob3dfX2NvbnRlbnQge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgfVxuICB9XG59XG5cbjpyb290IHtcbiAgLS1hZHZhbmNlZC1zZWxlY3QtZHJvcGRvd24tdHJpZ2dlci13aWR0aDogNDRweDtcbiAgLS1hZHZhbmNlZC1zZWxlY3QtZHJvcGRvd24tdHJpZ2dlci13aWR0aC1sYXJnZTogNTJweDtcblxuICAtLWFkdmFuY2VkLXNlbGVjdC1kcm9wZG93bi10cmlnZ2VyLWhlaWdodDogMjhweDtcbiAgLS1hZHZhbmNlZC1zZWxlY3QtZHJvcGRvd24tdHJpZ2dlci1oZWlnaHQtbGFyZ2U6IDM0cHg7XG5cbiAgLS1hZHZhbmNlZC1zZWxlY3QtYm9yZGVyLXJhZGl1czogdmFyKC0tYm9yZGVyLXJhZGl1cy1zbWFsbCk7XG5cbiAgLS1hZHZhbmNlZC1zZWxlY3Qtb3V0bGluZS13aWR0aDogdmFyKC0tYm9yZGVyLXdpZHRoLW5vcm1hbCk7XG5cbiAgLS1hZHZhbmNlZC1zZWxlY3QtY2FyZXQtdG9wLW9mZnNldDogMXB4O1xuICAtLWFkdmFuY2VkLXNlbGVjdC1jYXJldC1sZWZ0LW9mZnNldDogY2FsYyh2YXIoLS1nYXAtMSkgKiAtMSk7XG4gIC0tYWR2YW5jZWQtc2VsZWN0LWNhcmV0LWNvbG9yOiB2YXIoLS1jb2xvci1uZXV0cmFsLTcpO1xuXG4gIC0tYWR2YW5jZWQtc2VsZWN0LWNhcmV0LWljb24tbWFyZ2luLWxlZnQtc3RhY2tlZDogMjVweDtcbiAgLS1hZHZhbmNlZC1zZWxlY3QtY2FyZXQtbGVmdC1zdGFja2VkOiAtMzBweDtcblxuICAtLWFkdmFuY2VkLXNlbGVjdC1jaGVja2JveC1wYWRkaW5nLXRvcDogNnB4O1xuICAtLWFkdmFuY2VkLXNlbGVjdC1jaGVja2JveC1wYWRkaW5nLWJvdHRvbTogNnB4O1xuICAtLWFkdmFuY2VkLXNlbGVjdC1jaGVja2JveC1wYWRkaW5nLWxlZnQ6IDVweDtcbn1cblxuLnR1aS1hZHZhbmNlZFRhYmxlU2VsZWN0IHtcbiAgJl9fZHJvcGRvd25UcmlnZ2VyIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIHdpZHRoOiB2YXIoLS1hZHZhbmNlZC1zZWxlY3QtZHJvcGRvd24tdHJpZ2dlci13aWR0aCk7XG4gICAgaGVpZ2h0OiB2YXIoLS1hZHZhbmNlZC1zZWxlY3QtZHJvcGRvd24tdHJpZ2dlci1oZWlnaHQpO1xuICAgIG1hcmdpbi1yaWdodDogdmFyKC0tZ2FwLTEpO1xuXG4gICAgJi0tbGFyZ2Uge1xuICAgICAgd2lkdGg6IHZhcigtLWFkdmFuY2VkLXNlbGVjdC1kcm9wZG93bi10cmlnZ2VyLXdpZHRoLWxhcmdlKTtcbiAgICAgIGhlaWdodDogdmFyKC0tYWR2YW5jZWQtc2VsZWN0LWRyb3Bkb3duLXRyaWdnZXItaGVpZ2h0LWxhcmdlKTtcbiAgICB9XG5cbiAgICAmLWNoZWNrYm94IHtcbiAgICAgIHBhZGRpbmc6IHZhcigtLWFkdmFuY2VkLXNlbGVjdC1jaGVja2JveC1wYWRkaW5nLXRvcCkgMFxuICAgICAgICB2YXIoLS1hZHZhbmNlZC1zZWxlY3QtY2hlY2tib3gtcGFkZGluZy1ib3R0b20pXG4gICAgICAgIHZhcigtLWFkdmFuY2VkLXNlbGVjdC1jaGVja2JveC1wYWRkaW5nLWxlZnQpO1xuICAgIH1cblxuICAgICYtYnV0dG9uIHtcbiAgICAgIHRvcDogdmFyKC0tYWR2YW5jZWQtc2VsZWN0LWNhcmV0LXRvcC1vZmZzZXQpO1xuICAgICAgbGVmdDogdmFyKC0tYWR2YW5jZWQtc2VsZWN0LWNhcmV0LWxlZnQtb2Zmc2V0KTtcbiAgICAgIG91dGxpbmU6IG5vbmU7XG5cbiAgICAgICY6Zm9jdXMsXG4gICAgICAmOmhvdmVyLFxuICAgICAgJjphY3RpdmUsXG4gICAgICAmOmFjdGl2ZTpob3ZlcixcbiAgICAgICY6YWN0aXZlOmZvY3VzIHtcbiAgICAgICAgb3V0bGluZTogbm9uZTtcbiAgICAgIH1cblxuICAgICAgJi1pY29uIHtcbiAgICAgICAgY29sb3I6IHZhcigtLWFkdmFuY2VkLXNlbGVjdC1jYXJldC1jb2xvcik7XG4gICAgICAgICYtLXN0YWNrZWQge1xuICAgICAgICAgIG1hcmdpbi1sZWZ0OiB2YXIoLS1hZHZhbmNlZC1zZWxlY3QtY2FyZXQtaWNvbi1tYXJnaW4tbGVmdC1zdGFja2VkKTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAmLS1zdGFja2VkIHtcbiAgICAgICAgbGVmdDogdmFyKC0tYWR2YW5jZWQtc2VsZWN0LWNhcmV0LWxlZnQtc3RhY2tlZCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLyogR3JleSBiYWNrZ3JvdW5kKi9cbiAgICAmOmZvY3VzLFxuICAgICY6YWN0aXZlLFxuICAgICY6aG92ZXIsXG4gICAgJi0taXNPcGVuIHtcbiAgICAgIGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLW5ldXRyYWwtNCk7XG4gICAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1hZHZhbmNlZC1zZWxlY3QtYm9yZGVyLXJhZGl1cyk7XG4gICAgfVxuXG4gICAgLyogVGhlIGdyZWVuIGZvY3VzIG91dGxpbmUqL1xuICAgICY6Zm9jdXMsXG4gICAgJjphY3RpdmUge1xuICAgICAgb3V0bGluZTogdmFyKC0tYWR2YW5jZWQtc2VsZWN0LW91dGxpbmUtd2lkdGgpIHNvbGlkXG4gICAgICAgIHZhcigtLWNvbG9yLXN0YXRlLWZvY3VzKTtcbiAgICAgIG91dGxpbmUtb2Zmc2V0OiB2YXIoLS1hZHZhbmNlZC1zZWxlY3Qtb3V0bGluZS13aWR0aCk7XG4gICAgfVxuICB9XG5cbiAgJl9fbG9hZGVyIHtcbiAgICB3aWR0aDogdmFyKC0tZm9ybS1jaGVja2JveC1zaXplKTtcbiAgICBoZWlnaHQ6IHZhcigtLWZvcm0tY2hlY2tib3gtc2l6ZSk7XG4gICAgbWFyZ2luLXJpZ2h0OiB2YXIoLS1nYXAtNSk7XG4gICAgbWFyZ2luLWxlZnQ6IHZhcigtLWdhcC0xKTtcblxuICAgICYtLWxhcmdlIHtcbiAgICAgIHdpZHRoOiB2YXIoLS1mb3JtLWNoZWNrYm94LXNpemUtbGFyZ2UpO1xuICAgICAgaGVpZ2h0OiB2YXIoLS1mb3JtLWNoZWNrYm94LXNpemUtbGFyZ2UpO1xuICAgIH1cbiAgfVxufVxuXG4udHVpLWRhdGFUYWJsZUNlbGwge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWJhc2lzOiAwO1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBmbGV4LWdyb3c6IDE7XG5cbiAgLyogZW5zdXJlIGV4Y2Vzc2l2ZWx5IGxvbmcgd29yZHMgZG9uJ3QgcHVzaCBvdXQgY2VsbCB3aWR0aCAqL1xuICBtaW4td2lkdGg6IDA7XG5cbiAgLyogZW5zdXJlIGV4Y2Vzc2l2ZWx5IGxvbmcgd29yZHMgZG9uJ3Qgb3ZlcmZsb3cgKi9cbiAgd29yZC13cmFwOiBicmVhay13b3JkO1xuXG4gICZfX2xhYmVsIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICAgIG1hcmdpbi10b3A6IHZhcigtLWdhcC0yKTtcbiAgICBwYWRkaW5nOiB2YXIoLS1nYXAtMSkgMCB2YXIoLS1nYXAtMik7XG4gICAgQGluY2x1ZGUgdHVpLWZvbnQtaGVhZGluZy1sYWJlbC1zbWFsbCgpO1xuICB9XG5cbiAgJi0tc3RhY2tlZCAmX19sYWJlbCB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB9XG5cbiAgJi0tcmVwZWF0ZWRIZWFkZXIgJl9fY29udGVudCB7XG4gICAgQGluY2x1ZGUgc3Itb25seSgpO1xuICB9XG5cbiAgJi0tc2l6ZSB7XG4gICAgJl8xIHtcbiAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICB9XG5cbiAgICAmXzIge1xuICAgICAgZmxleC1ncm93OiAyO1xuICAgIH1cblxuICAgICZfMyB7XG4gICAgICBmbGV4LWdyb3c6IDM7XG4gICAgfVxuXG4gICAgJl80IHtcbiAgICAgIGZsZXgtZ3JvdzogNDtcbiAgICB9XG5cbiAgICAmXzUge1xuICAgICAgZmxleC1ncm93OiA1O1xuICAgIH1cblxuICAgICZfNiB7XG4gICAgICBmbGV4LWdyb3c6IDY7XG4gICAgfVxuXG4gICAgJl83IHtcbiAgICAgIGZsZXgtZ3JvdzogNztcbiAgICB9XG5cbiAgICAmXzgge1xuICAgICAgZmxleC1ncm93OiA4O1xuICAgIH1cblxuICAgICZfOSB7XG4gICAgICBmbGV4LWdyb3c6IDk7XG4gICAgfVxuXG4gICAgJl8xMCB7XG4gICAgICBmbGV4LWdyb3c6IDEwO1xuICAgIH1cblxuICAgICZfMTEge1xuICAgICAgZmxleC1ncm93OiAxMTtcbiAgICB9XG5cbiAgICAmXzEyIHtcbiAgICAgIGZsZXgtZ3JvdzogMTI7XG4gICAgfVxuXG4gICAgJl8xMyB7XG4gICAgICBmbGV4LWdyb3c6IDEzO1xuICAgIH1cblxuICAgICZfMTQge1xuICAgICAgZmxleC1ncm93OiAxNDtcbiAgICB9XG5cbiAgICAmXzE1IHtcbiAgICAgIGZsZXgtZ3JvdzogMTU7XG4gICAgfVxuXG4gICAgJl8xNiB7XG4gICAgICBmbGV4LWdyb3c6IDE2O1xuICAgIH1cbiAgfVxuXG4gICYtLWFsaWduIHtcbiAgICAmLWNlbnRlciB7XG4gICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIH1cblxuICAgICYtZW5kIHtcbiAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcbiAgICB9XG4gIH1cblxuICAmLS1oZWF2eSB7XG4gICAgQGluY2x1ZGUgdHVpLWZvbnQtaGVhdnkoKTtcbiAgfVxuXG4gICYtLXZhbGlnbiB7XG4gICAgJi1jZW50ZXIge1xuICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgfVxuXG4gICAgJi1lbmQge1xuICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbiAgICB9XG4gIH1cblxuICAmLS1zdGFja2VkIHtcbiAgICBmbGV4LWJhc2lzOiBhdXRvO1xuICAgIGFsaWduLWl0ZW1zOiBpbml0aWFsO1xuICB9XG59XG5cbi50dWktZGF0YVRhYmxlRXhwYW5kQ2VsbCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIG9yZGVyOiAwO1xuICB3aWR0aDogdmFyKC0tZ2FwLTkpO1xuICBtYXJnaW46IDA7XG5cbiAgLnR1aS1pY29uQnRuIHtcbiAgICBtYXJnaW46IDAgYXV0bztcbiAgfVxuXG4gICYudHVpLWRhdGFUYWJsZUV4cGFuZENlbGwtLWhlYWRlciB7XG4gICAgbWFyZ2luLWxlZnQ6IDA7XG4gIH1cblxuICAmLS1zdGFja2VkIHtcbiAgICBvcmRlcjogMTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtYXJnaW46IHZhcigtLWdhcC0yKSAwO1xuICB9XG59XG5cbi50dWktZGF0YVRhYmxlRXhwYW5kYWJsZVJvdyB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbWFyZ2luOiAwIDAgdmFyKC0tZ2FwLTIpIGNhbGMoMHB4IC0gdmFyKC0tYm9yZGVyLXdpZHRoLXRoaW4pKTtcbiAgY29sb3I6IHZhcigtLWRhdGF0YWJsZS1leHBhbmRlZC10ZXh0LWNvbG9yKTtcbiAgYmFja2dyb3VuZDogdmFyKC0tZGF0YXRhYmxlLWV4cGFuZGVkLWJnLWNvbG9yKTtcbiAgYm9yZGVyOiB2YXIoLS1ib3JkZXItd2lkdGgtdGhpbikgc29saWQgdmFyKC0tZGF0YXRhYmxlLWV4cGFuZGVkLWJvcmRlci1jb2xvcik7XG4gIGJvcmRlci10b3A6IG5vbmU7XG4gIGJveC1zaGFkb3c6IHZhcigtLXNoYWRvdy0yKTtcblxuICAmLS1zdGVhbHRoIHtcbiAgICBib3JkZXI6IG5vbmU7XG4gICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICAmX19jb250ZW50IHtcbiAgICAgIHBhZGRpbmc6IDA7XG4gICAgfVxuICB9XG5cbiAgJl9fY29udGVudCB7XG4gICAgcGFkZGluZzogdmFyKC0tZ2FwLTMpO1xuICAgIGJhY2tncm91bmQ6IHZhcigtLWRhdGF0YWJsZS1leHBhbmRlZC1iZy1jb2xvcik7XG4gIH1cblxuICAmLS1pbmRlbnRlZCB7XG4gICAgcGFkZGluZy1sZWZ0OiB2YXIoLS1nYXAtMTEpO1xuICB9XG5cbiAgJi0tc3RhY2tlZCB7XG4gICAgYm9yZGVyLXRvcDogbm9uZTtcbiAgfVxuXG4gICYtLXN0YWNrZWQmLS1pbmRlbnRlZCB7XG4gICAgcGFkZGluZy1sZWZ0OiAwO1xuICB9XG5cbiAgJi0taW5kZW50ZWQgJl9fY29udGVudCB7XG4gICAgcGFkZGluZzogdmFyKC0tZ2FwLTMpIDAgdmFyKC0tZ2FwLTMpIHZhcigtLWdhcC0zKTtcbiAgfVxufVxuXG4udHVpLWRhdGFUYWJsZUhlYWRlckNlbGwge1xuICAvKiBzdHlsZWxpbnQtZGlzYWJsZS1uZXh0LWxpbmUgdHVpL2F0LWV4dGVuZC1vbmx5LXBsYWNlaG9sZGVycyovXG4gIEBleHRlbmQgLnR1aS1kYXRhVGFibGVDZWxsO1xuICBAaW5jbHVkZSB0dWktZm9udC1oZWFkaW5nLWxhYmVsKCk7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGNvbG9yOiB2YXIoLS1kYXRhdGFibGUtY2VsbC1oZWFkZXItdGV4dC1jb2xvcik7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuXG4gICYtLXN0YWNrZWQge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbn1cblxuLnR1aS1kYXRhVGFibGVSb3dIZWFkZXIge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIHBhZGRpbmc6IHZhcigtLWdhcC0zKSB2YXIoLS1nYXAtMSk7XG5cbiAgJi0tc3RhY2tlZCB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgcGFkZGluZzogMDtcbiAgfVxuXG4gICYtLXN0YWNrZWQmLS1hZHZhbmNlZFNlbGVjdEVuYWJsZWQge1xuICAgIHBhZGRpbmc6IHZhcigtLWdhcC0yKSAwO1xuICB9XG5cbiAgJi0tc3RhY2tlZEdhcCB7XG4gICAgbWFyZ2luLXRvcDogdmFyKC0tZ2FwLTIpO1xuICB9XG5cbiAgJi0tdGhpbiB7XG4gICAgcGFkZGluZzogMCB2YXIoLS1nYXAtMSkgdmFyKC0tZ2FwLTIpO1xuICB9XG5cbiAgJi0tZW1wdHkge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cblxuICAmID4gKiArICoge1xuICAgIG1hcmdpbi1sZWZ0OiB2YXIoLS1nYXAtNCk7XG4gIH1cblxuICAmLS1pbmRlbnRlZCB7XG4gICAgcGFkZGluZy1sZWZ0OiB2YXIoLS1nYXAtMTEpO1xuICB9XG59XG5cbi50dWktZGF0YVRhYmxlUm93IHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICBwYWRkaW5nOiB2YXIoLS1nYXAtMykgdmFyKC0tZ2FwLTEpO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1kYXRhdGFibGUtcm93LWJnLWNvbG9yKTtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHZhcigtLWRhdGF0YWJsZS1yb3ctYm9yZGVyLWNvbG9yKTtcblxuICAmID4gKiArICoge1xuICAgIHBhZGRpbmctbGVmdDogdmFyKC0tZ2FwLTQpO1xuICB9XG5cbiAgJjpmaXJzdC1jaGlsZCB7XG4gICAgYm9yZGVyLXRvcDogdmFyKC0tYm9yZGVyLXdpZHRoLW5vcm1hbCkgc29saWRcbiAgICAgIHZhcigtLWRhdGF0YWJsZS1yb3ctZmlyc3QtYm9yZGVyLWNvbG9yKTtcbiAgfVxuXG4gICY6bGFzdC1jaGlsZCB7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLWRhdGF0YWJsZS1yb3ctYm9yZGVyLWNvbG9yKTtcbiAgfVxuXG4gICYudHVpLWZvY3VzV2l0aGluLFxuICAmOmFjdGl2ZSxcbiAgJjpob3ZlciB7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tZGF0YXRhYmxlLXJvdy1iZy1jb2xvci1mb2N1cyk7XG4gIH1cblxuICAmLS1pbmRlbnRlZCB7XG4gICAgcGFkZGluZy1sZWZ0OiB2YXIoLS1nYXAtMTEpO1xuICB9XG5cbiAgJi0tc3RlYWx0aCB7XG4gICAgYm94LXNoYWRvdzogbm9uZTtcbiAgfVxuXG4gICYtLWJvcmRlclRvcEZpcnN0T2ZmIHtcbiAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgIGJvcmRlci10b3A6IG5vbmU7XG4gICAgfVxuICB9XG5cbiAgJi0tYm9yZGVyVG9wVGhpbiB7XG4gICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICBib3JkZXItdG9wLXdpZHRoOiB2YXIoLS1ib3JkZXItd2lkdGgtdGhpbik7XG4gICAgfVxuICB9XG5cbiAgJi0tYm9yZGVyQm90dG9tTGFzdE9mZiB7XG4gICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgIGJvcmRlci1ib3R0b206IG5vbmU7XG4gICAgfVxuICB9XG5cbiAgJi0tYm9yZGVyU2VwYXJhdG9yT2ZmOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgICBib3JkZXItdG9wOiBub25lO1xuICB9XG5cbiAgJi0tc2VsZWN0ZWQge1xuICAgIGJhY2tncm91bmQ6IHZhcigtLWRhdGF0YWJsZS1yb3ctYmctY29sb3ItYWN0aXZlKTtcblxuICAgICY6aG92ZXIge1xuICAgICAgYmFja2dyb3VuZDogdmFyKC0tZGF0YXRhYmxlLXJvdy1iZy1jb2xvci1mb2N1cyk7XG4gICAgfVxuICB9XG5cbiAgJi0tY29sb3JPZGQ6bm90KCYtLXNlbGVjdGVkKSB7XG4gICAgJjpudGgtY2hpbGQob2RkKSB7XG4gICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1kYXRhdGFibGUtcm93LWJnLWNvbG9yLW9kZCk7XG5cbiAgICAgICYudHVpLWZvY3VzV2l0aGluLFxuICAgICAgJjpob3ZlciB7XG4gICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWRhdGF0YWJsZS1yb3ctYmctY29sb3ItZm9jdXMpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gICYtLWhvdmVyT2ZmIHtcbiAgICAmLnR1aS1mb2N1c1dpdGhpbixcbiAgICAmOmFjdGl2ZSxcbiAgICAmOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQ6IHZhcigtLWRhdGF0YWJsZS1yb3ctYmctY29sb3IpO1xuICAgIH1cbiAgfVxuXG4gICYtLWhvdmVyT2ZmJi0tY29sb3JPZGQge1xuICAgICY6bnRoLWNoaWxkKG9kZCkge1xuICAgICAgJi50dWktZm9jdXNXaXRoaW4sXG4gICAgICAmOmhvdmVyIHtcbiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tZGF0YXRhYmxlLXJvdy1iZy1jb2xvci1vZGQpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gICYtLWluR3JvdXAge1xuICAgIGJvcmRlci10b3A6IG5vbmU7XG4gICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICBib3JkZXItdG9wOiBub25lO1xuICAgIH1cblxuICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICBib3JkZXItYm90dG9tOiBub25lO1xuICAgIH1cbiAgfVxuXG4gICYtLWRpc2FibGVkIHtcbiAgICBjb2xvcjogdmFyKC0tY29sb3ItbmV1dHJhbC02KTtcbiAgfVxuXG4gIC8qIGRvbid0IHNob3cgaG92ZXIgYmFja2dyb3VuZCB3aGVuIGFub3RoZXIgaXRlbSBpcyBiZWluZyBkcmFnZ2VkIG92ZXIgaXQqL1xuICBbZGF0YS10dWktZHJvcHBhYmxlLWFueS1hY3RpdmVdICY6aG92ZXIge1xuICAgIGJhY2tncm91bmQ6IHZhcigtLWRhdGF0YWJsZS1yb3ctYmctY29sb3IpO1xuICB9XG5cbiAgJi0tZHJhZ2dhYmxlIHtcbiAgICAvKiBhcHBseSBhIGJhY2tncm91bmQgc28geW91IGRvbid0IHNlZSB0aHJvdWdoIHRoZSByb3cgd2hlbiBkcmFnZ2luZyovXG4gICAgLyogKGRlZmF1bHQgaXMgdHJhbnNwYXJlbnQpKi9cbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci1iYWNrZ3JvdW5kKTtcbiAgICAtd2Via2l0LXVzZXItc2VsZWN0OiBub25lO1xuICAgICAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgJi50dWktZm9jdXNXaXRoaW4sXG4gICAgJjphY3RpdmUsXG4gICAgJjpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci1iYWNrZ3JvdW5kKTtcbiAgICB9XG4gIH1cblxuICAmLS1kcmFnZ2FibGUgPiAudHVpLWRhdGFUYWJsZUNlbGwge1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICB9XG5cbiAgJi0tZHJhZ2dpbmcge1xuICAgIGJveC1zaGFkb3c6IHZhcigtLXNoYWRvdy0zKTtcbiAgfVxuXG4gICYtLWV4cGFuZGVkIHtcbiAgICBtYXJnaW4tbGVmdDogY2FsYygwcHggLSB2YXIoLS1ib3JkZXItd2lkdGgtdGhpbikpO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWRhdGF0YWJsZS1leHBhbmRlZC1iZy1jb2xvcik7XG4gICAgYm9yZGVyOiB2YXIoLS1ib3JkZXItd2lkdGgtdGhpbikgc29saWRcbiAgICAgIHZhcigtLWRhdGF0YWJsZS1leHBhbmRlZC1ib3JkZXItY29sb3IpO1xuICAgIGJvcmRlci1ib3R0b206IG5vbmU7XG4gICAgYm94LXNoYWRvdzogdmFyKC0tc2hhZG93LTIpO1xuICB9XG5cbiAgJi0tc3RlYWx0aEV4cGFuZGVkIHtcbiAgICBib3JkZXItcmlnaHQ6IG5vbmU7XG4gICAgYm9yZGVyLWxlZnQ6IG5vbmU7XG4gICAgYm94LXNoYWRvdzogbm9uZTtcbiAgfVxufVxuXG4udHVpLWRhdGFUYWJsZVJvdy0tc3RhY2tlZCB7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIHBhZGRpbmc6IHZhcigtLWdhcC0zKSAwO1xuXG4gICYgPiAqICsgKiB7XG4gICAgcGFkZGluZy1sZWZ0OiAwO1xuICB9XG5cbiAgJjpmaXJzdC1jaGlsZCB7XG4gICAgYm9yZGVyLXRvcDogdmFyKC0tYm9yZGVyLXdpZHRoLW5vcm1hbCkgc29saWRcbiAgICAgIHZhcigtLWRhdGF0YWJsZS1yb3ctZmlyc3QtYm9yZGVyLWNvbG9yKTtcbiAgfVxuXG4gICY6bGFzdC1jaGlsZCB7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLWRhdGF0YWJsZS1yb3ctYm9yZGVyLWNvbG9yKTtcbiAgfVxuXG4gICYudHVpLWRhdGFUYWJsZVJvdy0tYm9yZGVyQm90dG9tTGFzdE9mZiB7XG4gICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgIGJvcmRlci1ib3R0b206IG5vbmU7XG4gICAgfVxuICB9XG5cbiAgJi50dWktZGF0YVRhYmxlUm93LS1ib3JkZXJUb3BUaGluIHtcbiAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgIGJvcmRlci10b3Atd2lkdGg6IHZhcigtLWJvcmRlci13aWR0aC10aGluKTtcbiAgICB9XG4gIH1cblxuICAmLnR1aS1kYXRhVGFibGVSb3ctLWJvcmRlclRvcEZpcnN0T2ZmIHtcbiAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgIGJvcmRlci10b3A6IG5vbmU7XG4gICAgfVxuICB9XG5cbiAgJi50dWktZGF0YVRhYmxlUm93LS1pbkdyb3VwIHtcbiAgICBib3JkZXItdG9wOiAxcHggc29saWQgdmFyKC0tZGF0YXRhYmxlLXJvdy1ib3JkZXItY29sb3IpO1xuXG4gICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICBib3JkZXItdG9wOiBub25lO1xuICAgIH1cblxuICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICBib3JkZXItYm90dG9tOiBub25lO1xuICAgIH1cblxuICAgICY6bnRoLWNoaWxkKG9kZCkge1xuICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICB9XG4gICAgJjpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgIH1cbiAgfVxufVxuXG4udHVpLWRhdGFUYWJsZVJvd0dyb3VwIHtcbiAgcGFkZGluZzogMDtcbiAgYm9yZGVyLXRvcDogMnB4IHNvbGlkIHZhcigtLWRhdGF0YWJsZS1yb3ctZmlyc3QtYm9yZGVyLWNvbG9yKTtcblxuICAmLS1zdGFja2VkIHtcbiAgICBwYWRkaW5nOiAwIHZhcigtLWdhcC0yKTtcbiAgfVxuXG4gICYgKyAmIHtcbiAgICBib3JkZXItdG9wOiAxcHggc29saWQgdmFyKC0tZGF0YXRhYmxlLXJvdy1ib3JkZXItY29sb3IpO1xuICB9XG5cbiAgJjpsYXN0LWNoaWxkIHtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgdmFyKC0tZGF0YXRhYmxlLXJvdy1ib3JkZXItY29sb3IpO1xuICB9XG5cbiAgJi50dWktZm9jdXNXaXRoaW4sXG4gICY6YWN0aXZlLFxuICAmOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1kYXRhdGFibGUtcm93LWJnLWNvbG9yLWZvY3VzKTtcbiAgfVxuXG4gICYtLXNlbGVjdGVkIHtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1kYXRhdGFibGUtcm93LWJnLWNvbG9yLWFjdGl2ZSk7XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQ6IHZhcigtLWRhdGF0YWJsZS1yb3ctYmctY29sb3ItZm9jdXMpO1xuICAgIH1cbiAgfVxufVxuXG4udHVpLWRhdGFUYWJsZVNlbGVjdEV2ZXJ5Um93VG9nZ2xlIHtcbiAgcGFkZGluZzogdmFyKC0tZ2FwLTIpO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1kYXRhdGFibGUtc2VsZWN0LWV2ZXJ5dGhpbmctcHJvbXB0LWJnKTtcbn1cblxuLnR1aS1kYXRhVGFibGVTZWxlY3RSb3dDZWxsIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblxuICAmLS1hZHZhbmNlZFNlbGVjdEVuYWJsZWQge1xuICAgIHBhZGRpbmctcmlnaHQ6IHZhcigtLWdhcC01KTtcbiAgICBwYWRkaW5nLWxlZnQ6IGNhbGModmFyKC0tZ2FwLTEpICsgMXB4KTtcbiAgfVxuXG4gICYtLWhpZGRlbiB7XG4gICAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICB9XG5cbiAgJl9fbG9hZGVyIHtcbiAgICB3aWR0aDogdmFyKC0tZm9ybS1jaGVja2JveC1zaXplKTtcbiAgICBoZWlnaHQ6IHZhcigtLWZvcm0tY2hlY2tib3gtc2l6ZSk7XG5cbiAgICAmLS1sYXJnZSB7XG4gICAgICB3aWR0aDogdmFyKC0tZm9ybS1jaGVja2JveC1zaXplLWxhcmdlKTtcbiAgICAgIGhlaWdodDogdmFyKC0tZm9ybS1jaGVja2JveC1zaXplLWxhcmdlKTtcbiAgICB9XG4gIH1cblxuICAmLS1zdGFja2VkJi0taGlkZGVuIHtcbiAgICBoZWlnaHQ6IDA7XG4gIH1cblxuICAmLS12YWxpZ24ge1xuICAgICYtc3RhcnQge1xuICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xuICAgIH1cblxuICAgICYtY2VudGVyIHtcbiAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIH1cblxuICAgICYtZW5kIHtcbiAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG4gICAgfVxuICB9XG59XG5cbi50dWktZGF0YVRhYmxlU2VsZWN0VmlzaWJsZVJvd3NDZWxsIHtcbiAgZGlzcGxheTogZmxleDtcblxuICAmLS1oaWRkZW4ge1xuICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgfVxuXG4gICZfX2xvYWRlciB7XG4gICAgd2lkdGg6IHZhcigtLWZvcm0tY2hlY2tib3gtc2l6ZSk7XG4gICAgaGVpZ2h0OiB2YXIoLS1mb3JtLWNoZWNrYm94LXNpemUpO1xuXG4gICAgJi0tbGFyZ2Uge1xuICAgICAgd2lkdGg6IHZhcigtLWZvcm0tY2hlY2tib3gtc2l6ZS1sYXJnZSk7XG4gICAgICBoZWlnaHQ6IHZhcigtLWZvcm0tY2hlY2tib3gtc2l6ZS1sYXJnZSk7XG4gICAgfVxuICB9XG5cbiAgJi0tc3RhY2tlZCB7XG4gICAgbWFyZ2luOiB2YXIoLS1nYXAtMikgMDtcbiAgfVxuXG4gICZfX2xhYmVsIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICAgIEBpbmNsdWRlIHR1aS1mb250LWhlYWRpbmctbGFiZWwtc21hbGwoKTtcblxuICAgIHBhZGRpbmc6IDAgMCB2YXIoLS1nYXAtMSkgdmFyKC0tZ2FwLTEpO1xuXG4gICAgJi0tc3RhY2tlZCB7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgfVxuXG4gICAgJi0tbGFyZ2Uge1xuICAgICAgcGFkZGluZzogdmFyKC0tZ2FwLTEpIDAgdmFyKC0tZ2FwLTEpIHZhcigtLWdhcC0yKTtcbiAgICB9XG4gIH1cbn1cblxuLnR1aS1kYXRhVGFibGUge1xuICAmLS1hcmNoaXZlZCB7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tZGF0YXRhYmxlLWJnLWFyY2hpdmVkKTtcbiAgfVxuXG4gICZfX3Jvdy1tb3ZlLWNlbGwge1xuICAgIGZsZXgtYmFzaXM6IHZhcigtLWdhcC01KTtcbiAgICBmbGV4LWdyb3c6IDA7XG4gIH1cblxuICAmX19yb3ctbW92ZS1tZW51IHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgIGxlZnQ6IHZhcigtLWdhcC04KTtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci1iYWNrZ3JvdW5kKTtcbiAgfVxufVxuXG4udHVpLWFuZEJveCB7XG4gIC8qIHN0eWxlbGludC1kaXNhYmxlLW5leHQtbGluZSB0dWkvYXQtZXh0ZW5kLW9ubHktcGxhY2Vob2xkZXJzKi9cbiAgQGV4dGVuZCAudHVpLW9yQm94O1xuXG4gICZfX3RleHQge1xuICAgIC8qIHN0eWxlbGludC1kaXNhYmxlLW5leHQtbGluZSB0dWkvYXQtZXh0ZW5kLW9ubHktcGxhY2Vob2xkZXJzKi9cbiAgICBAZXh0ZW5kIC50dWktb3JCb3hfX3RleHQ7XG4gIH1cbn1cblxuQG1peGluIGdlbmVyYXRlLWFycm93LWJhc2UoJHNlbCwgJHNpemUpIHtcbiAgI3skc2VsfS0tdG9wLFxuICAjeyRzZWx9LS1ib3R0b20ge1xuICAgIC8qIXJ0bDppZ25vcmUqL1xuICAgIGxlZnQ6IDUwJTtcbiAgICB3aWR0aDogJHNpemUgKiAyO1xuICAgIGhlaWdodDogJHNpemUgKiAyO1xuICAgIC8qIXJ0bDppZ25vcmUqL1xuICAgIG1hcmdpbi1sZWZ0OiAtJHNpemU7XG4gIH1cblxuICAjeyRzZWx9LS10b3Age1xuICAgIHRvcDogLSgkc2l6ZSAqIDIpO1xuICB9XG5cbiAgI3skc2VsfS0tYm90dG9tIHtcbiAgICBib3R0b206IC0oJHNpemUgKiAyKTtcbiAgfVxuXG4gICN7JHNlbH0tLWxlZnQsXG4gICN7JHNlbH0tLXJpZ2h0IHtcbiAgICB0b3A6IDUwJTtcbiAgICB3aWR0aDogJHNpemUgKiAyO1xuICAgIGhlaWdodDogJHNpemUgKiAyO1xuICAgIG1hcmdpbi10b3A6IC0kc2l6ZTtcbiAgfVxuXG4gICN7JHNlbH0tLWxlZnQge1xuICAgIGxlZnQ6IC0oJHNpemUgKiAyKTtcbiAgfVxuXG4gICN7JHNlbH0tLXJpZ2h0IHtcbiAgICByaWdodDogLSgkc2l6ZSAqIDIpO1xuICB9XG59XG5cbkBtaXhpbiBnZW5lcmF0ZS1hcnJvdy1wYXJ0KCRzZWwsICRzZWxfMiwgJHNpemUsICRvZmZzZXQsICRjb2xvcikge1xuICAjeyRzZWx9I3skc2VsXzJ9IHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgYm9yZGVyOiAkc2l6ZSBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICBjb250ZW50OiAnJztcbiAgfVxuXG4gICN7JHNlbH0tLXRvcCN7JHNlbF8yfSB7XG4gICAgdG9wOiAkb2Zmc2V0ICogMjtcbiAgICBsZWZ0OiAkb2Zmc2V0O1xuICAgIGJvcmRlci1ib3R0b20tY29sb3I6ICRjb2xvcjtcbiAgfVxuXG4gICN7JHNlbH0tLWJvdHRvbSN7JHNlbF8yfSB7XG4gICAgYm90dG9tOiAkb2Zmc2V0ICogMjtcbiAgICBsZWZ0OiAkb2Zmc2V0O1xuICAgIGJvcmRlci10b3AtY29sb3I6ICRjb2xvcjtcbiAgfVxuXG4gICN7JHNlbH0tLWxlZnQjeyRzZWxfMn0ge1xuICAgIHRvcDogJG9mZnNldDtcbiAgICBsZWZ0OiAkb2Zmc2V0ICogMjtcbiAgICBib3JkZXItcmlnaHQtY29sb3I6ICRjb2xvcjtcbiAgfVxuXG4gICN7JHNlbH0tLXJpZ2h0I3skc2VsXzJ9IHtcbiAgICB0b3A6ICRvZmZzZXQ7XG4gICAgcmlnaHQ6ICRvZmZzZXQgKiAyO1xuICAgIGJvcmRlci1sZWZ0LWNvbG9yOiAkY29sb3I7XG4gIH1cbn1cblxuLnR1aS1hcnJvdyB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG59XG5cbkBpbmNsdWRlIGdlbmVyYXRlLWFycm93LWJhc2UoJy50dWktYXJyb3ctLW5vcm1hbC50dWktYXJyb3cnLCAxMHB4KTtcbkBpbmNsdWRlIGdlbmVyYXRlLWFycm93LXBhcnQoXG4gICcudHVpLWFycm93LS1ub3JtYWwudHVpLWFycm93JyxcbiAgJzo6YmVmb3JlJyxcbiAgMTBweCxcbiAgMCxcbiAgdmFyKC0tYXJyb3ctYm9yZGVyLWNvbG9yKVxuKTtcbkBpbmNsdWRlIGdlbmVyYXRlLWFycm93LXBhcnQoXG4gICcudHVpLWFycm93LS1ub3JtYWwudHVpLWFycm93JyxcbiAgJzo6YWZ0ZXInLFxuICA4cHgsXG4gIDJweCxcbiAgdmFyKC0tYXJyb3ctYmctY29sb3IpXG4pO1xuXG5AaW5jbHVkZSBnZW5lcmF0ZS1hcnJvdy1iYXNlKCcudHVpLWFycm93LS1sYXJnZS50dWktYXJyb3cnLCAxNHB4KTtcbkBpbmNsdWRlIGdlbmVyYXRlLWFycm93LXBhcnQoXG4gICcudHVpLWFycm93LS1sYXJnZS50dWktYXJyb3cnLFxuICAnOjpiZWZvcmUnLFxuICAxNHB4LFxuICAwLFxuICB2YXIoLS1hcnJvdy1ib3JkZXItY29sb3IpXG4pO1xuQGluY2x1ZGUgZ2VuZXJhdGUtYXJyb3ctcGFydChcbiAgJy50dWktYXJyb3ctLWxhcmdlLnR1aS1hcnJvdycsXG4gICc6OmFmdGVyJyxcbiAgMTJweCxcbiAgMnB4LFxuICB2YXIoLS1hcnJvdy1iZy1jb2xvcilcbik7XG5cbi50dWktY2FyZXQge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHdpZHRoOiAwO1xuICBoZWlnaHQ6IDA7XG4gIG1hcmdpbi1sZWZ0OiAycHg7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIGJvcmRlci10b3A6IDRweCBzb2xpZDtcbiAgYm9yZGVyLXJpZ2h0OiA0cHggc29saWQgdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci1sZWZ0OiA0cHggc29saWQgdHJhbnNwYXJlbnQ7XG59XG5cbi50dWktb3JCb3gge1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgbWFyZ2luOiAwIGF1dG87XG4gIGJvcmRlcjogdmFyKC0tYm9yZGVyLXdpZHRoLXRoaW4pIHNvbGlkIHZhcigtLWNvbG9yLW5ldXRyYWwtNik7XG4gIGJvcmRlci1yYWRpdXM6IDZweDtcblxuICAmX190ZXh0IHtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogdmFyKC0tZ2FwLTIpIHZhcigtLWdhcC00KTtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIEBpbmNsdWRlIHR1aS1mb250LWhlYWRpbmctbGFiZWwoKTtcbiAgfVxufVxuXG4udHVpLXNlcGFyYXRvciB7XG4gIG1hcmdpbjogdmFyKC0tZ2FwLTQpIDA7XG5cbiAgJi0tc3ByZWFkIHtcbiAgICBtYXJnaW46IHZhcigtLWdhcC04KSAwO1xuICB9XG5cbiAgLyogc2ltcGxlIGltcGxlbWVudGF0aW9uIHVzaW5nIGEgaG9yaXpvbnRhbCBydWxlIGVsZW1lbnQqL1xuICAmLXJ1bGUge1xuICAgIGhlaWdodDogdmFyKC0tYm9yZGVyLXdpZHRoLXRoaW4pO1xuICAgIGxpbmUtaGVpZ2h0OiB2YXIoLS1ib3JkZXItd2lkdGgtdGhpbik7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItbmV1dHJhbC01KTtcbiAgICBib3JkZXI6IG5vbmU7XG5cbiAgICAmLnR1aS1zZXBhcmF0b3ItLXRoaWNrIHtcbiAgICAgIGhlaWdodDogdmFyKC0tYm9yZGVyLXdpZHRoLXRoaWNrKTtcbiAgICAgIGxpbmUtaGVpZ2h0OiB2YXIoLS1ib3JkZXItd2lkdGgtdGhpY2spO1xuICAgIH1cblxuICAgICYudHVpLXNlcGFyYXRvci0tbm9ybWFsIHtcbiAgICAgIGhlaWdodDogdmFyKC0tYm9yZGVyLXdpZHRoLW5vcm1hbCk7XG4gICAgICBsaW5lLWhlaWdodDogdmFyKC0tYm9yZGVyLXdpZHRoLW5vcm1hbCk7XG4gICAgfVxuICB9XG5cbiAgLyogYWx0ZXJuYXRpdmUgaW1wbGVtZW50YXRpb24gd2l0aCB3cmFwcGVyIG1hcmt1cCB0byBjZW50ZXIgc2xvdHRlZCBjb250ZW50Ki9cbiAgLyogaG9yaXpvbnRhbCBydWxlIHZpc2libGUgb25seSB0byBzY3JlZW4gcmVhZGVycywgdGhlIHZpc3VhbCBsaW5lcyBhZGRlZCB3aXRoKi9cbiAgLyogcHNldWRvIHNlbGVjdG9ycyovXG4gICYtLXdyYXBwZWQge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcblxuICAgIC50dWktc2VwYXJhdG9yLWNvbnRlbnQge1xuICAgICAgbWFyZ2luOiAwIHZhcigtLWdhcC00KTtcbiAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgfVxuXG4gICAgJjpiZWZvcmUsXG4gICAgJjphZnRlciB7XG4gICAgICB3aWR0aDogNTAlO1xuICAgICAgaGVpZ2h0OiB2YXIoLS1ib3JkZXItd2lkdGgtdGhpbik7XG4gICAgICBsaW5lLWhlaWdodDogdmFyKC0tYm9yZGVyLXdpZHRoLXRoaW4pO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItbmV1dHJhbC01KTtcbiAgICAgIGNvbnRlbnQ6ICcnO1xuICAgIH1cblxuICAgICYudHVpLXNlcGFyYXRvci0tdGhpY2s6YmVmb3JlLFxuICAgICYudHVpLXNlcGFyYXRvci0tdGhpY2s6YWZ0ZXIge1xuICAgICAgaGVpZ2h0OiB2YXIoLS1ib3JkZXItd2lkdGgtdGhpY2spO1xuICAgICAgbGluZS1oZWlnaHQ6IHZhcigtLWJvcmRlci13aWR0aC10aGljayk7XG4gICAgfVxuXG4gICAgJi50dWktc2VwYXJhdG9yLS1ub3JtYWw6YmVmb3JlLFxuICAgICYudHVpLXNlcGFyYXRvci0tbm9ybWFsOmFmdGVyIHtcbiAgICAgIGhlaWdodDogdmFyKC0tYm9yZGVyLXdpZHRoLW5vcm1hbCk7XG4gICAgICBsaW5lLWhlaWdodDogdmFyKC0tYm9yZGVyLXdpZHRoLW5vcm1hbCk7XG4gICAgfVxuICB9XG59XG5cbi50dWktcGVyZm9ybWFuY2Uge1xuICAmX19zdW1tYXJ5IHtcbiAgICBsaXN0LXN0eWxlOiBub25lO1xuICB9XG5cbiAgJl9fY29udGFpbmVyIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICB9XG5cbiAgJl9fd3JhcHBlciB7XG4gICAgbWFyZ2luLXJpZ2h0OiB2YXIoLS1nYXAtNCk7XG4gICAgbWFyZ2luLWJvdHRvbTogdmFyKC0tZ2FwLTQpO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWNvbG9yLW5ldXRyYWwtNSk7XG4gICAgYm9yZGVyLXJhZGl1czogM3B4O1xuXG4gICAgPiAqIHtcbiAgICAgIHBhZGRpbmctcmlnaHQ6IHZhcigtLWdhcC0yKTtcbiAgICAgIHBhZGRpbmctbGVmdDogdmFyKC0tZ2FwLTIpO1xuXG4gICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICB9XG5cbiAgICAgICY6bm90KDpmaXJzdC1jaGlsZCkge1xuICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci1jaGFydC10cmFuc3BhcmVudC0zKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuW2RhdGEtdHVpLWRyYWdnYWJsZV0ge1xuICAmW2RhdGEtYW5pbWF0ZWRdIHtcbiAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4yNXM7XG4gIH1cblxuICAmW2RhdGEtZHJhZ2dpbmddIHtcbiAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgei1pbmRleDogdmFyKC0temluZGV4LWRyYWdnYWJsZSk7XG4gICAgLXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTtcbiAgICAgICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xuICAgIC8qIHJlcXVpcmVkIHNvIGRyb3BwYWJsZSBjYW4gZ2V0IG1vdXNlIGV2ZW50cyovXG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIH1cbn1cblxuLnR1aS1kcmFnZ2FibGVNb3ZlTWVudSB7XG4gICZfX2J1dHRvbjpub3QoOmZvY3VzKTpub3QoW2FyaWEtZXhwYW5kZWQ9J3RydWUnXSkge1xuICAgIEBpbmNsdWRlIHNyLW9ubHkoKTtcbiAgfVxufVxuXG4udHVpLWRyb3BwYWJsZSB7XG4gICZfX2Ryb3BMaW5lIHtcbiAgICB6LWluZGV4OiB2YXIoLS16aW5kZXgtZHJhZ2dhYmxlKTtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci1zZWNvbmRhcnkpO1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuXG4gICAgJi0tdmVydGljYWwge1xuICAgICAgaGVpZ2h0OiB2YXIoLS1ib3JkZXItd2lkdGgtbm9ybWFsKTtcbiAgICAgIG1hcmdpbi10b3A6IGNhbGModmFyKC0tYm9yZGVyLXdpZHRoLW5vcm1hbCkgKiAtMC41KTtcbiAgICB9XG5cbiAgICAmLS1ob3Jpem9udGFsIHtcbiAgICAgIHdpZHRoOiB2YXIoLS1ib3JkZXItd2lkdGgtbm9ybWFsKTtcbiAgICAgIG1hcmdpbi1sZWZ0OiBjYWxjKHZhcigtLWJvcmRlci13aWR0aC1ub3JtYWwpICogLTAuNSk7XG4gICAgfVxuICB9XG59XG5bZGF0YS10dWktZHJvcHBhYmxlLWxvY2F0aW9uLWluZGljYXRvcl0ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci1uZXV0cmFsLTUpO1xufVxuXG4udHVpLWRyb3Bkb3duIHtcbiAgJl9fbWVudSB7XG4gICAgei1pbmRleDogdmFyKC0temluZGV4LWRyb3Bkb3duLW1lbnUpO1xuICAgIG1pbi13aWR0aDogMTVyZW07XG4gICAgbWF4LXdpZHRoOiAzMnJlbTtcbiAgICBtYXgtaGVpZ2h0OiA0MHZoO1xuICAgIHBhZGRpbmc6IGNhbGMobWF4KHZhcigtLWdhcC0yKSwgdmFyKC0tZHJvcGRvd24tYm9yZGVyLXJhZGl1cykpKSAwO1xuICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tZHJvcGRvd24tbWVudS1iZy1jb2xvcik7XG4gICAgYmFja2dyb3VuZC1jbGlwOiBwYWRkaW5nLWJveDtcbiAgICBib3JkZXI6IHZhcigtLWJvcmRlci13aWR0aC10aGluKSBzb2xpZCB2YXIoLS1kcm9wZG93bi1tZW51LWJvcmRlci1jb2xvcik7XG4gICAgYm9yZGVyLXJhZGl1czogdmFyKC0tZHJvcGRvd24tYm9yZGVyLXJhZGl1cyk7XG4gICAgYm94LXNoYWRvdzogdmFyKC0tc2hhZG93LTIpO1xuICB9XG5cbiAgJi0tc2VwYXJhdG9yICZfX21lbnUge1xuICAgIHBhZGRpbmc6IDA7XG4gIH1cblxuICAmLS1mbGV4aWJsZVdpZHRoICZfX21lbnUge1xuICAgIG1pbi13aWR0aDogMDtcbiAgICBtYXgtd2lkdGg6IG5vbmU7XG4gIH1cblxuICAmLS1maXhlZFdpZHRoICZfX21lbnUge1xuICAgIHdpZHRoOiAzMnJlbTtcbiAgfVxuXG4gICZfX2NvbnRlbnQge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAkYm9yZGVyLXJhZGl1czogY2FsYyhcbiAgICAgIHZhcigtLWRyb3Bkb3duLWJvcmRlci1yYWRpdXMpIC0gdmFyKC0tYm9yZGVyLXdpZHRoLXRoaW4pXG4gICAgKTtcbiAgICAmLS1zZXBhcmF0b3IgPiAqOmZpcnN0LWNoaWxkIHtcbiAgICAgIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6ICRib3JkZXItcmFkaXVzO1xuICAgICAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6ICRib3JkZXItcmFkaXVzO1xuICAgIH1cbiAgICAmLS1zZXBhcmF0b3IgPiAqOmxhc3QtY2hpbGQge1xuICAgICAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6ICRib3JkZXItcmFkaXVzO1xuICAgICAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogJGJvcmRlci1yYWRpdXM7XG4gICAgfVxuICAgICYtLXNlcGFyYXRvciA+ICogKyAqLFxuICAgIC8qIHdvcmsgYXJvdW5kIHNwZWNpZmljaXR5IGlzc3VlcyB3aXRoIGJ1dHRvbiovXG4gICAgJi0tc2VwYXJhdG9yID4gKiArIC50dWktZHJvcGRvd25CdXR0b24sXG4gICAgJi0tc2VwYXJhdG9yID4gKiArIC50dWktZHJvcGRvd25CdXR0b246aG92ZXIsXG4gICAgJi0tc2VwYXJhdG9yID4gKiArIC50dWktZHJvcGRvd25CdXR0b246Zm9jdXMsXG4gICAgJi0tc2VwYXJhdG9yID4gKiArIC50dWktZHJvcGRvd25CdXR0b246YWN0aXZlLFxuICAgICYtLXNlcGFyYXRvciA+ICogKyAudHVpLWRyb3Bkb3duQnV0dG9uOmZvY3VzOmFjdGl2ZSB7XG4gICAgICBib3JkZXItdG9wOiB2YXIoLS1ib3JkZXItd2lkdGgtdGhpbikgc29saWRcbiAgICAgICAgdmFyKC0tZHJvcGRvd24tbWVudS1ib3JkZXItY29sb3IpO1xuICAgIH1cbiAgfVxuXG4gICYtLWZpeGVkSGVpZ2h0IHtcbiAgICAudHVpLWRyb3Bkb3duX19jb250ZW50IHtcbiAgICAgIGhlaWdodDogMTAwJTtcbiAgICB9XG5cbiAgICAudHVpLWRyb3Bkb3duX19tZW51IHtcbiAgICAgIGhlaWdodDogMzh2aDtcbiAgICAgIG92ZXJmbG93LXk6IHZpc2libGU7XG4gICAgfVxuICB9XG5cbiAgJi0tZGlzYWJsZWQge1xuICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgLnR1aS1kcm9wZG93bl9fdHJpZ2dlciB7XG4gICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICB9XG4gIH1cbn1cblxuLyogb3ZlcnJpZGUgPGJ1dHRvbj4gc3R5bGVzKi9cbi50dWktZHJvcGRvd25CdXR0b24ge1xuICBjb2xvcjogdmFyKC0tZHJvcGRvd24taXRlbS10ZXh0LWNvbG9yKTtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGJvcmRlcjogbm9uZTtcbiAgYm9yZGVyLXJhZGl1czogMDtcbiAgJjpob3ZlcixcbiAgJjpmb2N1cyxcbiAgJjphY3RpdmUsXG4gICY6Zm9jdXM6YWN0aXZlIHtcbiAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gIH1cbn1cblxuLyogdHVpLWRyb3Bkb3duQnV0dG9uIHN0eWxlcyovXG4udHVpLWRyb3Bkb3duQnV0dG9uIHtcbiAgQGluY2x1ZGUgdHVpLWZvbnQtYm9keSgpO1xuICBwYWRkaW5nOiB2YXIoLS1nYXAtMikgdmFyKC0tZ2FwLTQpO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBsaW5lLWhlaWdodDogMS40O1xuICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcblxuICAmOmZvY3VzIHtcbiAgICBjb2xvcjogdmFyKC0tZHJvcGRvd24taXRlbS10ZXh0LWNvbG9yKTtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgb3V0bGluZTogMDtcbiAgfVxuXG4gICY6aG92ZXIsXG4gICY6YWN0aXZlLFxuICAmOmZvY3VzOmFjdGl2ZSB7XG4gICAgY29sb3I6IHZhcigtLWRyb3Bkb3duLWl0ZW0tdGV4dC1jb2xvci1ob3Zlcik7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWRyb3Bkb3duLWl0ZW0tYmctY29sb3ItaG92ZXIpO1xuICAgIG91dGxpbmU6IDA7XG4gIH1cblxuICAmOmZvY3VzLXZpc2libGUge1xuICAgIGNvbG9yOiB2YXIoLS1kcm9wZG93bi1pdGVtLXRleHQtY29sb3ItZm9jdXMpO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWRyb3Bkb3duLWl0ZW0tYmctY29sb3ItZm9jdXMpO1xuICAgIG91dGxpbmU6IDJweCBzb2xpZCB2YXIoLS1kcm9wZG93bi1pdGVtLWZvY3VzLXJpbmctY29sb3IpO1xuICAgIG91dGxpbmUtb2Zmc2V0OiAtM3B4O1xuICB9XG5cbiAgJi0tZGlzYWJsZWQsXG4gICYtLWRpc2FibGVkOmhvdmVyLFxuICAmLS1kaXNhYmxlZDpmb2N1cyB7XG4gICAgY29sb3I6IHZhcigtLWRyb3Bkb3duLWl0ZW0tdGV4dC1jb2xvci1kaXNhYmxlZCk7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgfVxuXG4gICYtLWRpc2FibGVkOmFjdGl2ZSB7XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIH1cblxuICAmLS1ub1BhZGRpbmcge1xuICAgIHBhZGRpbmc6IDA7XG4gIH1cbn1cblxuLnR1aS1kcm9wZG93bkdyb3VwIHtcbiAgJl9faGVhZGVyIHtcbiAgICBwYWRkaW5nOiB2YXIoLS1nYXAtMikgdmFyKC0tZ2FwLTQpO1xuICAgIEBpbmNsdWRlIHR1aS1mb250LWhlYXZ5KCk7XG4gIH1cblxuICAmX19pdGVtcyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXG4gICAgJiA+ICoge1xuICAgICAgcGFkZGluZy1sZWZ0OiB2YXIoLS1nYXAtNyk7XG4gICAgfVxuICB9XG5cbiAgJi0tc2VwYXJhdG9yICZfX2l0ZW1zIHtcbiAgICAmID4gKiB7XG4gICAgICBib3JkZXItdG9wOiB2YXIoLS1ib3JkZXItd2lkdGgtdGhpbikgc29saWRcbiAgICAgICAgdmFyKC0tZHJvcGRvd24tbWVudS1ib3JkZXItY29sb3IpO1xuICAgIH1cbiAgfVxufVxuXG4udHVpLWRyb3Bkb3duSXRlbSB7XG4gIEBpbmNsdWRlIHR1aS1mb250LWJvZHkoKTtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiAxMDAlO1xuICBwYWRkaW5nOiB2YXIoLS1nYXAtMikgdmFyKC0tZ2FwLTQpO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBjb2xvcjogdmFyKC0tZHJvcGRvd24taXRlbS10ZXh0LWNvbG9yKTtcbiAgbGluZS1oZWlnaHQ6IDEuNDtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gIGN1cnNvcjogcG9pbnRlcjtcblxuICAmOmZvY3VzIHtcbiAgICBjb2xvcjogdmFyKC0tZHJvcGRvd24taXRlbS10ZXh0LWNvbG9yKTtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgb3V0bGluZTogbm9uZTtcbiAgfVxuXG4gICY6aG92ZXIge1xuICAgIGNvbG9yOiB2YXIoLS1kcm9wZG93bi1pdGVtLXRleHQtY29sb3ItaG92ZXIpO1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1kcm9wZG93bi1pdGVtLWJnLWNvbG9yLWhvdmVyKTtcbiAgfVxuXG4gICY6Zm9jdXMtdmlzaWJsZSB7XG4gICAgY29sb3I6IHZhcigtLWRyb3Bkb3duLWl0ZW0tdGV4dC1jb2xvci1mb2N1cyk7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tZHJvcGRvd24taXRlbS1iZy1jb2xvci1mb2N1cyk7XG4gICAgb3V0bGluZTogMnB4IHNvbGlkIHZhcigtLWRyb3Bkb3duLWl0ZW0tZm9jdXMtcmluZy1jb2xvcik7XG4gICAgb3V0bGluZS1vZmZzZXQ6IC0zcHg7XG4gIH1cblxuICAmLS1kaXNhYmxlZCxcbiAgJi0tZGlzYWJsZWQ6aG92ZXIsXG4gICYtLWRpc2FibGVkOmZvY3VzIHtcbiAgICBjb2xvcjogdmFyKC0tZHJvcGRvd24taXRlbS10ZXh0LWNvbG9yLWRpc2FibGVkKTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICB9XG5cbiAgJi0tZGlzYWJsZWQ6Zm9jdXMge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWRyb3Bkb3duLWl0ZW0tYmctY29sb3ItZGlzYWJsZWQtZm9jdXMpO1xuICB9XG5cbiAgJi0tZGlzYWJsZWQ6YWN0aXZlIHtcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgfVxuXG4gICYtLW5vUGFkZGluZyB7XG4gICAgcGFkZGluZzogMDtcbiAgfVxuXG4gICYtLXNlbGVjdGVkIHtcbiAgICBjb2xvcjogdmFyKC0tY29sb3ItbmV1dHJhbC0xKTtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci1zdGF0ZS1hY3RpdmUpO1xuXG4gICAgJjpmb2N1cyxcbiAgICAmOmhvdmVyLFxuICAgICY6YWN0aXZlIHtcbiAgICAgIGNvbG9yOiB2YXIoLS1jb2xvci1uZXV0cmFsLTEpO1xuICAgICAgYmFja2dyb3VuZDogdmFyKC0tY29sb3Itc3RhdGUtYWN0aXZlKTtcbiAgICB9XG5cbiAgICAmOmZvY3VzLXZpc2libGUge1xuICAgICAgb3V0bGluZS1jb2xvcjogdmFyKC0tY29sb3ItbmV1dHJhbC0xKTtcbiAgICB9XG4gIH1cbn1cblxuLnR1aS1lZGl0b3JMb2FkaW5nIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIHdpZHRoOiAxMDAlO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1mb3JtLWlucHV0LWJnLWNvbG9yKTtcbiAgYm9yZGVyOiB2YXIoLS1ib3JkZXItd2lkdGgtdGhpbikgc29saWQgdmFyKC0tY29sb3ItbmV1dHJhbC01KTtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tZm9ybS1pbnB1dC1ib3JkZXItcmFkaXVzKTtcblxuICAvKiBpbm5lciBtdXN0IGJlIHNlcGFyYXRlIGZvciBpbnRyaW5zaWMgaGVpZ2h0IHRvIHdvcmsqL1xuICAmX19pbm5lciB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuXG4gICAgLyogc2ltaWxhciB0byBkZWZhdWx0IFdla2EgaGVpZ2h0Ki9cbiAgICBoZWlnaHQ6IGNhbGMoOS41cmVtKTtcbiAgfVxuXG4gICYtLWNvbXBhY3QgJl9faW5uZXIge1xuICAgIC8qIHNpbWlsYXIgdG8gZGVmYXVsdCBXZWthIGhlaWdodCB3aXRoIGNvbXBhY3Qgb24qL1xuICAgIGhlaWdodDogY2FsYyg2LjJyZW0pO1xuICB9XG5cbiAgJl9fc3Bpbm5lciB7XG4gICAgY29sb3I6IHZhcigtLWNvbG9yLW5ldXRyYWwtNSk7XG4gIH1cbn1cblxuLnR1aS1lZGl0b3JUZXh0YXJlYSB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIC8qIGV4cGFuZCB0byBmdWxsIHdpZHRoIGlmIGluIGhvcml6b250YWwgZmxleCovXG4gIHdpZHRoOiAxMDAlO1xuXG4gIC8qIG5lZWRlZCBhIG1vcmUgc3BlY2lmaWMgc2VsZWN0b3IgdG8gb3ZlcnJpZGUgdHVpLXNlbGVjdCB7IGZsZXgtZ3JvdzogMTsgfSovXG4gID4gOmZpcnN0LWNoaWxkIHtcbiAgICBmbGV4LWdyb3c6IDA7XG4gIH1cblxuICAmX190ZXh0YXJlYSB7XG4gICAgLyogc3RyZXRjaCBjaGlsZCBpbnB1dCB0byBiZSBmdWxsIGhlaWdodCBpZiB0aGUgZWRpdG9yIGlzIGdpdmVuIGEgc3BlY2lmaWMgaGVpZ2h0Ki9cbiAgICBmbGV4LWdyb3c6IDE7XG4gICAgbWFyZ2luLXRvcDogdmFyKC0tZ2FwLTEpO1xuICB9XG59XG5cbi50dWktcmVzcG9uc2l2ZUVtYmVkSWZyYW1lIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IDEwMCU7XG4gIHBhZGRpbmc6IDA7XG4gIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgJjo6YmVmb3JlIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBjb250ZW50OiAnJztcbiAgfVxuXG4gICZfX2l0ZW0ge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgYm90dG9tOiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIGJvcmRlcjogMDtcbiAgfVxufVxuXG4udHVpLWVycm9yTW9kYWwge1xuICAmX19kZXRhaWxzVG9nZ2xlIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBtYXJnaW4tdG9wOiB2YXIoLS1nYXAtNCk7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuXG4gICAgJjpob3ZlcixcbiAgICAmOmZvY3VzIHtcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICB9XG4gIH1cblxuICAmX19idXR0b25zIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICB3aWR0aDogMTAwJTtcbiAgfVxuXG4gICZfX25hdkJ1dHRvbnMge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBAaW5jbHVkZSB0dWktc3RhY2staG9yaXpvbnRhbCh2YXIoLS1nYXAtNCkpO1xuICB9XG5cbiAgJl9fZGV0YWlscyB7XG4gICAgbWFyZ2luLXRvcDogdmFyKC0tZ2FwLTMpO1xuICB9XG5cbiAgJl9fbGFiZWwge1xuICAgIEBpbmNsdWRlIHR1aS1mb250LWhlYWRpbmcteC1zbWFsbCgpO1xuICB9XG5cbiAgJl9fY29udGV4dCB7XG4gICAgY29sb3I6IHZhcigtLWNvbG9yLXRleHQtaGludCk7XG4gIH1cblxuICAmX19leHRyYUluZm8ge1xuICAgIHdoaXRlLXNwYWNlOiBwcmUtd3JhcDtcbiAgfVxuXG4gICZfX3N0YWNrUHJlIHtcbiAgICBtYXJnaW46IHZhcigtLWdhcC0yKSAwIDAgMDtcbiAgICBwYWRkaW5nOiB2YXIoLS1nYXAtNCk7XG4gICAgY29sb3I6IHZhcigtLWNvbG9yLW5ldXRyYWwtNyk7XG4gICAgd29yZC1icmVhazogYnJlYWstd29yZDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci1uZXV0cmFsLTMpO1xuICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgfVxufVxuXG4udHVpLWVycm9yRGlzcGxheSB7XG4gIHBhZGRpbmc6IHZhcigtLWdhcC04KTtcbiAgYmFja2dyb3VuZDogdmFyKC0tY29sb3ItbmV1dHJhbC0zKTtcbiAgYm9yZGVyLXJhZGl1czogNHB4O1xuXG4gICZfX3RpdGxlIHtcbiAgICBtYXJnaW4tdG9wOiAwO1xuICB9XG5cbiAgJl9fYnV0dG9ucyB7XG4gICAgbWFyZ2luLWJvdHRvbTogdmFyKC0tZ2FwLTQpO1xuICB9XG5cbiAgJl9fYnV0dG9uczpsYXN0LWNoaWxkIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICB9XG5cbiAgJl9fZGV0YWlsc1RvZ2dsZSB7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuXG4gICAgJjpob3ZlcixcbiAgICAmOmZvY3VzIHtcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICB9XG4gIH1cblxuICAmX19kZXRhaWxzUHJlIHtcbiAgICBtYXJnaW4tdG9wOiB2YXIoLS1nYXAtMik7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICBwYWRkaW5nOiB2YXIoLS1nYXAtNCk7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItbmV1dHJhbC0xKTtcbiAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gIH1cbn1cblxuLnR1aS1zZXNza2V5RXhwaXJlZCB7XG4gICZfX2J1dHRvbiB7XG4gICAgbWFyZ2luLXRvcDogdmFyKC0tZ2FwLTYpO1xuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICB9XG59XG5cbi50dWktZmlsZUNhcmQge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIG1pbi13aWR0aDogMDtcbiAgcGFkZGluZzogdmFyKC0tZ2FwLTIpO1xuICB3aGl0ZS1zcGFjZTogbm9ybWFsO1xuICBib3JkZXI6IHZhcigtLWJvcmRlci13aWR0aC10aGluKSBzb2xpZCB2YXIoLS1jb2xvci1uZXV0cmFsLTUpO1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1jYXJkLWJvcmRlci1yYWRpdXMpO1xuICBpc29sYXRpb246IGlzb2xhdGU7XG5cbiAgJjpob3ZlciB7XG4gICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1jb2xvci1zdGF0ZS1ob3Zlcik7XG4gICAgYm94LXNoYWRvdzogdmFyKC0tc2hhZG93LTIpO1xuICB9XG5cbiAgJi0tZm9jdXMge1xuICAgIEBpbmNsdWRlIHR1aS1mb2N1cztcbiAgfVxuXG4gICZfX2luZm8ge1xuICAgIGZsZXg6IDE7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICB9XG5cbiAgJl9fZmlsZVNpemUge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZ2FwOiB2YXIoLS1nYXAtMSk7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBtYXJnaW46IDA7XG4gICAgY29sb3I6IHZhcigtLWNvbG9yLW5ldXRyYWwtNik7XG4gICAgZm9udC1zaXplOiB2YXIoLS1mb250LXNpemUtMTEpO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG5cbiAgICAmLWljb24ge1xuICAgICAgZm9udC1zaXplOiB2YXIoLS1mb250LXNpemUtMTIpO1xuICAgIH1cbiAgfVxuXG4gICZfX2ZpbGVuYW1lIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgICYsXG4gICAgJjpsaW5rLFxuICAgICY6aG92ZXIsXG4gICAgJjphY3RpdmUsXG4gICAgJjp2aXNpdGVkIHtcbiAgICAgIGNvbG9yOiB2YXIoLS1jb2xvci1uZXV0cmFsLTcpO1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgb3V0bGluZTogbm9uZTtcbiAgICB9XG5cbiAgICAmLXRleHQge1xuICAgICAgbWFyZ2luOiAwO1xuICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICB9XG5cbiAgICAmLWV4dCB7XG4gICAgICBmbGV4LXNocmluazogMDtcbiAgICB9XG5cbiAgICAmOmFmdGVyIHtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIGluc2V0OiAwO1xuICAgICAgY29udGVudDogJyc7XG4gICAgfVxuICB9XG5cbiAgJl9faWNvbiB7XG4gICAgZmxleC1zaHJpbms6IDA7XG4gICAgd2lkdGg6IDMuMnJlbTtcbiAgICBtYXJnaW4tcmlnaHQ6IHZhcigtLWdhcC0yKTtcbiAgICBjb2xvcjogdmFyKC0tY29sb3ItbmV1dHJhbC03KTtcbiAgfVxuXG4gICYtLWRvd25sb2FkYWJsZSB7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICB9XG5cbiAgJl9fYWN0aW9ucyB7XG4gICAgei1pbmRleDogMTtcbiAgICBwYWRkaW5nLWxlZnQ6IHZhcigtLWdhcC00KTtcbiAgfVxuXG4gICZfX2Rvd25sb2FkIHtcbiAgICB6LWluZGV4OiAxO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgbWFyZ2luLWxlZnQ6IHZhcigtLWdhcC00KTtcbiAgICBwYWRkaW5nOiB2YXIoLS1nYXAtMik7XG4gICAgY29sb3I6IHZhcigtLWNvbG9yLXN0YXRlKTtcbiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1idG4tc20tcmFkaXVzKTtcblxuICAgICY6Zm9jdXMge1xuICAgICAgQGluY2x1ZGUgdHVpLWZvY3VzO1xuICAgIH1cbiAgfVxufVxuXG4udHVpLWJ1dHRvbkZpbHRlci50dWktYnV0dG9uRmlsdGVyIHtcbiAgJi0tc3RhY2tlZCB7XG4gICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgPiAqIHtcbiAgICAgIG1hcmdpbi10b3A6IHZhcigtLWdhcC00KTtcbiAgICB9XG4gIH1cbn1cblxuLnR1aS1maWx0ZXJCYXIge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXG4gICYtLWhhc1RvcCB7XG4gICAgcGFkZGluZy10b3A6IHZhcigtLWdhcC00KTtcbiAgICBib3JkZXItdG9wOiB2YXIoLS1ib3JkZXItd2lkdGgtdGhpbikgc29saWQgdmFyKC0tZmlsdGVyLWJhci1ib3JkZXItY29sb3IpO1xuICB9XG5cbiAgJi0taGFzQm90dG9tIHtcbiAgICBwYWRkaW5nLWJvdHRvbTogdmFyKC0tZ2FwLTQpO1xuICAgIGJvcmRlci1ib3R0b206IHZhcigtLWJvcmRlci13aWR0aC10aGluKSBzb2xpZCB2YXIoLS1maWx0ZXItYmFyLWJvcmRlci1jb2xvcik7XG4gIH1cblxuICAmX19oZWFkaW5nIHtcbiAgICBAaW5jbHVkZSBzci1vbmx5KCk7XG4gIH1cblxuICAmX190b2dnbGUge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG5cbiAgICAmLWJ0biB7XG4gICAgICBtYXJnaW46IHZhcigtLWdhcC0yKSAwO1xuICAgIH1cbiAgfVxuXG4gICZfX2ZpbHRlcnMge1xuICAgICRzdGFja2VkOiAjeyZ9LS1zdGFja2VkO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1ncm93OiAxO1xuXG4gICAgJi1sZWZ0LFxuICAgICYtcmlnaHQge1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGZsZXgtc2hyaW5rOiAwO1xuXG4gICAgICA+ICoge1xuICAgICAgICBmbGV4LXNocmluazogMDtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IHZhcigtLWdhcC00KTtcbiAgICAgIH1cblxuICAgICAgPiAqICsgKiB7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiB2YXIoLS1nYXAtNCk7XG4gICAgICB9XG5cbiAgICAgICN7JHN0YWNrZWR9ICYge1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgYm9yZGVyLWxlZnQ6IG5vbmU7XG5cbiAgICAgICAgLnR1aS1mb3JtTGFiZWwge1xuICAgICAgICAgIEBpbmNsdWRlIHR1aS1mb250LWhlYWRpbmctbGFiZWwtc21hbGwoKTtcbiAgICAgICAgfVxuXG4gICAgICAgID4gKiB7XG4gICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgPiA6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgIGJvcmRlci1sZWZ0OiBub25lO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgJi1yaWdodCB7XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG5cbiAgICAgID4gOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgYm9yZGVyLWxlZnQ6IHZhcigtLWJvcmRlci13aWR0aC10aGluKSBzb2xpZCB2YXIoLS1jb2xvci1uZXV0cmFsLTUpO1xuICAgICAgfVxuXG4gICAgICA+ICoge1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IHZhcigtLWdhcC00KTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmLS1zdGFja2VkIHtcbiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgfVxuICB9XG5cbiAgJl9fcmVzZXQge1xuICAgIG1hcmdpbi1sZWZ0OiB2YXIoLS1nYXAtNCk7XG5cbiAgICAmLXN0YWNrZWQge1xuICAgICAgbWFyZ2luLXRvcDogdmFyKC0tZ2FwLTQpO1xuICAgICAgcGFkZGluZy10b3A6IHZhcigtLWdhcC00KTtcbiAgICAgIHBhZGRpbmctYm90dG9tOiB2YXIoLS1nYXAtNCk7XG4gICAgfVxuICB9XG59XG5cbi50dWktZmlsdGVyQmFyQXJlYSB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cbiAgJl9fYmFyIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cbiAgICAmLS1ob3Jpem9udGFsIHtcbiAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgfVxuXG4gICAgJi0taGFzVG9wIHtcbiAgICAgIHBhZGRpbmctdG9wOiB2YXIoLS1nYXAtNCk7XG4gICAgICBib3JkZXItdG9wOiB2YXIoLS1ib3JkZXItd2lkdGgtdGhpbikgc29saWQgdmFyKC0tZmlsdGVyLWJhci1ib3JkZXItY29sb3IpO1xuICAgIH1cblxuICAgICYtLWhhc0JvdHRvbSB7XG4gICAgICBwYWRkaW5nLWJvdHRvbTogdmFyKC0tZ2FwLTQpO1xuICAgICAgYm9yZGVyLWJvdHRvbTogdmFyKC0tYm9yZGVyLXdpZHRoLXRoaW4pIHNvbGlkXG4gICAgICAgIHZhcigtLWZpbHRlci1iYXItYm9yZGVyLWNvbG9yKTtcbiAgICB9XG5cbiAgICAmLXRvZ2dsZSB7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgbWFyZ2luOiBhdXRvO1xuICAgIH1cblxuICAgICYtcmVzZXRCdXR0b24ge1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgICAgbWFyZ2luLXRvcDogdmFyKC0tZ2FwLTQpO1xuICAgIH1cblxuICAgICYtc3RhY2tlZEZpbHRlcnMge1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICBnYXA6IHZhcigtLWdhcC00KTtcbiAgICAgIG1hcmdpbi10b3A6IHZhcigtLWdhcC00KTtcbiAgICAgIHBhZGRpbmc6IDAgdmFyKC0tZ2FwLTQpO1xuICAgIH1cblxuICAgICYtYmFyRmlsdGVycyB7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgZ2FwOiB2YXIoLS1nYXAtNCk7XG4gICAgfVxuXG4gICAgJi1leHRyYUZpbHRlcnMge1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuICAgICAgaGVpZ2h0OiB2YXIoLS1mb3JtLWlucHV0LWhlaWdodCk7XG4gICAgICBtYXJnaW4tdG9wOiBhdXRvO1xuICAgIH1cbiAgfVxufVxuXG4udHVpLWZpbHRlckJhckFyZWFQb3BvdmVyIHtcbiAgbWFyZ2luLXRvcDogdmFyKC0tZ2FwLTEpO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuXG4gICZfX2NvbnRlbnQge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBnYXA6IHZhcigtLWdhcC00KTtcbiAgICBwYWRkaW5nOiAwIHZhcigtLWdhcC0xKSB2YXIoLS1nYXAtMSkgdmFyKC0tZ2FwLTEpO1xuICB9XG5cbiAgJl9fYnV0dG9ucyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbiAgICBwYWRkaW5nLXRvcDogdmFyKC0tZ2FwLTQpO1xuICAgIHBhZGRpbmctYm90dG9tOiB2YXIoLS1nYXAtMSk7XG5cbiAgICAmOjpiZWZvcmUge1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgbGVmdDogMDtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgYm9yZGVyLXRvcDogdmFyKC0tYm9yZGVyLXdpZHRoLXRoaW4pIHNvbGlkIHZhcigtLWZpbHRlci1iYXItYm9yZGVyLWNvbG9yKTtcbiAgICAgIGNvbnRlbnQ6ICcnO1xuICAgIH1cblxuICAgICYtcmVzZXQge1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgIHBhZGRpbmc6IHZhcigtLWdhcC01KSB2YXIoLS1nYXAtMSkgMDtcbiAgICB9XG4gIH1cbn1cblxuLnR1aS1maWx0ZXJTaWRlUGFuZWwge1xuICBkaXNwbGF5OiBibG9jaztcblxuICAmX19oZWFkZXIge1xuICAgIEBpbmNsdWRlIHR1aS1mb250LWhlYWRpbmctc21hbGwoKTtcbiAgICBtaW4td2lkdGg6IDA7XG4gICAgbWFyZ2luOiAwIHZhcigtLWdhcC0yKSAwIDA7XG4gIH1cblxuICAmX19oZWFkaW5nIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIHBhZGRpbmctYm90dG9tOiB2YXIoLS1nYXAtMik7XG4gICAgYm9yZGVyLWJvdHRvbTogdmFyKC0tYm9yZGVyLXdpZHRoLW5vcm1hbCkgc29saWQgdmFyKC0tY29sb3ItbmV1dHJhbC03KTtcbiAgfVxuXG4gICZfX2luc3RydWN0aW9ucyxcbiAgJl9fc3RhdHVzIHtcbiAgICBAaW5jbHVkZSBzci1vbmx5KCk7XG4gIH1cblxuICAudHVpLWZpbHRlclNpZGVQYW5lbF9fY2xlYXJCdG4ge1xuICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICB9XG59XG5cbi50dWktZmlsdGVyU2lkZVBhbmVsLnR1aS1maWx0ZXJTaWRlUGFuZWwge1xuICAmID4gKiArICoge1xuICAgIG1hcmdpbi10b3A6IHZhcigtLWdhcC00KTtcbiAgfVxuXG4gIC50dWktZmllbGRzZXRfX2xlZ2VuZCxcbiAgLnR1aS1mb3JtTGFiZWwge1xuICAgIEBpbmNsdWRlIHR1aS1mb250LWhlYWRpbmctbGFiZWwtc21hbGwoKTtcbiAgfVxufVxuXG4udHVpLW11bHRpU2VsZWN0Q2hlY2tib3hGaWx0ZXIge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBnYXA6IHZhcigtLWdhcC0yKTtcblxuICAmX19pdGVtcyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGZsZXgtZ3JvdzogMTtcbiAgICBnYXA6IHZhcigtLWdhcC00KSAwO1xuICAgIHdoaXRlLXNwYWNlOiBub3JtYWw7XG4gIH1cbn1cblxuQG1lZGlhIChtaW4td2lkdGg6ICR0dWktc2NyZWVuLXhzKSB7XG4gIC50dWktbXVsdGlTZWxlY3RDaGVja2JveEZpbHRlciB7XG4gICAgJl9faXRlbXMge1xuICAgICAgJi0taGFzQ29sdW1ucyB7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICAgICAgZ2FwOiB2YXIoLS1nYXAtNCk7XG4gICAgICB9XG5cbiAgICAgICYtaXRlbSB7XG4gICAgICAgICYtLXR3b0NvbHVtbiB7XG4gICAgICAgICAgQGluY2x1ZGUgdHVpLXdvcmRicmVhay0taGFyZCgpO1xuICAgICAgICAgIHdpZHRoOiA0NyU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLnR1aS1tdWx0aVNlbGVjdEZpbHRlciB7XG4gICYgPiAqICsgKiB7XG4gICAgbWFyZ2luLXRvcDogdmFyKC0tZ2FwLTEpO1xuICB9XG5cbiAgJl9fY29sbGFwc2libGUge1xuICAgIG1hcmdpbjogMDtcblxuICAgICYtY29sbGFwc2VkIHtcbiAgICAgICYgPiAqIHtcbiAgICAgICAgbWFyZ2luLXRvcDogdmFyKC0tZ2FwLTEpO1xuICAgICAgfVxuICAgIH1cblxuICAgICYtdG9nZ2xlIHtcbiAgICAgIG1hcmdpbi1sZWZ0OiB2YXIoLS1nYXAtMSk7XG4gICAgfVxuICB9XG59XG5cbi50dWktc2VhcmNoRmlsdGVyIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuXG4gIGlucHV0LnR1aS1mb3JtSW5wdXQge1xuICAgIGZsZXgtZ3JvdzogMDtcbiAgfVxuXG4gIC50dWktZm9ybUxhYmVsIHtcbiAgICBtYXJnaW46IGF1dG8gdmFyKC0tZ2FwLTMpIGF1dG8gMDtcbiAgfVxuXG4gICZfX2dyb3VwIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWdyb3c6IDE7XG4gICAgbWFyZ2luLXRvcDogMDtcbiAgICBtYXJnaW4tYm90dG9tOiBhdXRvO1xuXG4gICAgJi0tc3RhY2tlZCB7XG4gICAgICBtYXJnaW4tdG9wOiB2YXIoLS1nYXAtMSk7XG4gICAgfVxuXG4gICAgJi1pY29uIHtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIGxlZnQ6IHZhcigtLWdhcC0yKTtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgY29sb3I6IHZhcigtLWZpbHRlci1zZWFyY2gtaWNvbi1jb2xvcik7XG5cbiAgICAgIC5mYS1zZWFyY2gge1xuICAgICAgICBtYXJnaW46IGF1dG8gMDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmLWNsZWFyQ29udGFpbmVyIHtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHJpZ2h0OiAwO1xuICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgIH1cbiAgfVxuXG4gICZfX3NlYXJjaCB7XG4gICAgLyogZGlzYWJsZSB0aGUgZGVmYXVsdCBjbGVhciAoeCkgYWN0aW9uIGluIElFKi9cbiAgICAmOjotbXMtY2xlYXIge1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG4gIH1cblxuICAmX19yZW1vdmVJY29uIHtcbiAgICBjb2xvcjogdmFyKC0tZmlsdGVyLXNlYXJjaC1jbGVhci1pY29uLWNvbG9yKTtcbiAgfVxuXG4gICYtLXN0YWNrZWQge1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7XG5cbiAgICAudHVpLWZvcm1MYWJlbCB7XG4gICAgICBtYXJnaW46IHZhcigtLWdhcC0xKSAwO1xuICAgIH1cbiAgfVxuXG4gICYtLWJhckZpbHRlciB7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBnYXA6IHZhcigtLWdhcC0xKTtcbiAgICBhbGlnbi1pdGVtczogc3RyZXRjaDtcbiAgICBtYXJnaW4tdG9wOiBhdXRvO1xuICB9XG59XG5cbi50dWktc2VsZWN0RmlsdGVyIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuXG4gIC50dWktZm9ybUxhYmVsIHtcbiAgICBtYXJnaW46IGF1dG8gdmFyKC0tZ2FwLTMpIGF1dG8gMDtcbiAgfVxuXG4gIC50dWktc2VsZWN0IHtcbiAgICB3aWR0aDogYXV0bztcbiAgICBtYXgtd2lkdGg6IDI1MHB4O1xuICB9XG5cbiAgJi0tc3RhY2tlZCB7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBhbGlnbi1pdGVtczogc3RyZXRjaDtcblxuICAgIC50dWktZm9ybUxhYmVsIHtcbiAgICAgIG1hcmdpbjogdmFyKC0tZ2FwLTEpIDAgMDtcbiAgICB9XG5cbiAgICAudHVpLXNlbGVjdCB7XG4gICAgICBtYXgtd2lkdGg6IGluaXRpYWw7XG4gICAgICBtYXJnaW4tdG9wOiB2YXIoLS1nYXAtMSk7XG4gICAgfVxuICB9XG5cbiAgJi0tYmFyRmlsdGVyIHtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGdhcDogdmFyKC0tZ2FwLTEpO1xuICAgIGFsaWduLWl0ZW1zOiBzdHJldGNoO1xuICAgIG1heC13aWR0aDogMjUwcHg7XG4gICAgbWFyZ2luLXRvcDogYXV0bztcbiAgfVxuXG4gICYtLWJhckZpbHRlciYtLXN0YWNrZWQge1xuICAgIG1heC13aWR0aDogaW5pdGlhbDtcbiAgfVxufVxuXG46cm9vdCB7XG4gIC8qIFNpemUgb2YgY2hlY2tib3gqL1xuICAtLWZvcm0tY2hlY2tib3gtc2l6ZTogdmFyKC0tZm9ybS1pbnB1dC1mb250LXNpemUpO1xuICAtLWZvcm0tY2hlY2tib3gtc2l6ZS1sYXJnZTogY2FsYyh2YXIoLS1mb3JtLWlucHV0LWZvbnQtc2l6ZSkgKiAxLjMzMyk7XG4gIC0tY2hlY2tib3gtY2hlY2std2lkdGg6IDAuMnJlbTtcbn1cblxuLnR1aS1jaGVja2JveCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogZmxleDtcbiAgbWluLWhlaWdodDogY2FsYyh2YXIoLS1mb3JtLWNoZWNrYm94LXNpemUpICsgMnB4KTtcblxuICAmLS1sYXJnZSB7XG4gICAgbWluLWhlaWdodDogY2FsYyh2YXIoLS1mb3JtLWNoZWNrYm94LXNpemUtbGFyZ2UpICsgMnB4KTtcbiAgfVxuXG4gICZfX2lucHV0IHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgb3BhY2l0eTogMDtcbiAgfVxuXG4gICZfX2xhYmVsIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmctbGVmdDogY2FsYyh2YXIoLS1mb3JtLWNoZWNrYm94LXNpemUpICogMS41KTtcbiAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgIGZvbnQtc2l6ZTogdmFyKC0tZm9ybS1pbnB1dC1mb250LXNpemUpO1xuICAgIGxpbmUtaGVpZ2h0OiAxO1xuXG4gICAgLnR1aS1jaGVja2JveC0tbGFyZ2UgJiB7XG4gICAgICBwYWRkaW5nLWxlZnQ6IGNhbGModmFyKC0tZm9ybS1jaGVja2JveC1zaXplLWxhcmdlKSAqIDEuNSk7XG4gICAgfVxuXG4gICAgJi0tbm9PZmZzZXQge1xuICAgICAgcGFkZGluZy1sZWZ0OiB2YXIoLS1mb3JtLWNoZWNrYm94LXNpemUpO1xuICAgICAgLnR1aS1jaGVja2JveC0tbGFyZ2UgJiB7XG4gICAgICAgIHBhZGRpbmctbGVmdDogdmFyKC0tZm9ybS1jaGVja2JveC1zaXplLWxhcmdlKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmOjpiZWZvcmUge1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgdG9wOiAwO1xuICAgICAgbGVmdDogMDtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgd2lkdGg6IHZhcigtLWZvcm0tY2hlY2tib3gtc2l6ZSk7XG4gICAgICBoZWlnaHQ6IHZhcigtLWZvcm0tY2hlY2tib3gtc2l6ZSk7XG4gICAgICBtYXJnaW4tdG9wOiAxcHg7XG4gICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1mb3JtLWNoZWNrYm94LWJnLWNvbG9yKTtcbiAgICAgIGJvcmRlcjogdmFyKC0tZm9ybS1pbnB1dC1ib3JkZXItc2l6ZSkgc29saWRcbiAgICAgICAgdmFyKC0tZm9ybS1jaGVja2JveC1ib3JkZXItY29sb3IpO1xuICAgICAgYm9yZGVyLXJhZGl1czogdmFyKC0tZm9ybS1pbnB1dC1ib3JkZXItcmFkaXVzKTtcbiAgICAgIHRyYW5zaXRpb246IGJvcmRlciB2YXIoLS10cmFuc2l0aW9uLWZvcm0tZnVuY3Rpb24pXG4gICAgICAgICAgdmFyKC0tdHJhbnNpdGlvbi1mb3JtLWR1cmF0aW9uKSxcbiAgICAgICAgYm94LXNoYWRvdyB2YXIoLS10cmFuc2l0aW9uLWZvcm0tZnVuY3Rpb24pXG4gICAgICAgICAgdmFyKC0tdHJhbnNpdGlvbi1mb3JtLWR1cmF0aW9uKTtcbiAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG5cbiAgICAgIC50dWktY2hlY2tib3gtLWxhcmdlICYge1xuICAgICAgICB3aWR0aDogdmFyKC0tZm9ybS1jaGVja2JveC1zaXplLWxhcmdlKTtcbiAgICAgICAgaGVpZ2h0OiB2YXIoLS1mb3JtLWNoZWNrYm94LXNpemUtbGFyZ2UpO1xuICAgICAgfVxuXG4gICAgICAudHVpLWNvbnRleHRJbnZhbGlkICYge1xuICAgICAgICBib3JkZXItY29sb3I6IHZhcigtLWZvcm0taW5wdXQtYm9yZGVyLWNvbG9yLWludmFsaWQpO1xuICAgICAgICBib3gtc2hhZG93OiB2YXIoLS1zaGFkb3ctbm9uZSksIHZhcigtLWZvcm0taW5wdXQtc2hhZG93LWludmFsaWQpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gICZfX2lucHV0OmRpc2FibGVkIH4gJl9fbGFiZWwge1xuICAgIGNvbG9yOiB2YXIoLS1mb3JtLWlucHV0LXRleHQtY29sb3ItZGlzYWJsZWQpO1xuICB9XG5cbiAgJl9faW5wdXQ6Zm9jdXMtdmlzaWJsZSB+ICZfX2xhYmVsOjpiZWZvcmUge1xuICAgIEBpbmNsdWRlIHR1aS1mb2N1cygpO1xuICAgIGJvcmRlcjogdmFyKC0tZm9ybS1pbnB1dC1ib3JkZXItc2l6ZSkgc29saWRcbiAgICAgIHZhcigtLWZvcm0tY2hlY2tib3gtYm9yZGVyLWNvbG9yLWZvY3VzKTtcbiAgICBib3gtc2hhZG93OiB2YXIoLS1mb3JtLWlucHV0LXNoYWRvdy1mb2N1cyk7XG5cbiAgICAudHVpLWNvbnRleHRJbnZhbGlkICYge1xuICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1mb3JtLWlucHV0LWJvcmRlci1jb2xvci1pbnZhbGlkKTtcbiAgICAgIG91dGxpbmUtY29sb3I6IHZhcigtLWZvcm0taW5wdXQtYm9yZGVyLWNvbG9yLWludmFsaWQpO1xuICAgICAgYm94LXNoYWRvdzogdmFyKC0tc2hhZG93LW5vbmUpLCB2YXIoLS1mb3JtLWlucHV0LXNoYWRvdy1pbnZhbGlkLWZvY3VzKTtcbiAgICB9XG4gIH1cblxuICAmX19pbnB1dDpkaXNhYmxlZDpjaGVja2VkIH4gJl9fbGFiZWw6OmJlZm9yZSxcbiAgJl9faW5wdXQ6ZGlzYWJsZWQgfiAmX19sYWJlbDo6YmVmb3JlIHtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1mb3JtLWNoZWNrYm94LWJnLWNvbG9yLWRpc2FibGVkKTtcbiAgICBib3JkZXI6IHZhcigtLWZvcm0taW5wdXQtYm9yZGVyLXNpemUpIHNvbGlkO1xuICAgIGJvcmRlci1jb2xvcjogdmFyKC0tZm9ybS1jaGVja2JveC1ib3JkZXItY29sb3ItZGlzYWJsZWQpO1xuICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gIH1cblxuICAmX19pbnB1dCB+ICZfX2xhYmVsOjphZnRlciB7XG4gICAgLyogY29uc3RydWN0IGEgY2hlY2sgbWFyayBvdXQgb2YgdHdvIHNpZGVzIG9mIGEgcm90YXRlZCBib3gqL1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IGNhbGMoMC4zNSAqIHZhcigtLWZvcm0tY2hlY2tib3gtc2l6ZSkpO1xuICAgIGxlZnQ6IGNhbGMoMC4yMSAqIHZhcigtLWZvcm0tY2hlY2tib3gtc2l6ZSkpO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiBjYWxjKDAuNiAqIHZhcigtLWZvcm0tY2hlY2tib3gtc2l6ZSkpO1xuICAgIGhlaWdodDogY2FsYygwLjM1ICogdmFyKC0tZm9ybS1jaGVja2JveC1zaXplKSk7XG4gICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1mb3JtLWNoZWNrYm94LWNoZWNrLWNvbG9yKTtcbiAgICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICAgIC8qIXJ0bDppZ25vcmUqL1xuICAgIGJvcmRlci13aWR0aDogMCAwIHZhcigtLWNoZWNrYm94LWNoZWNrLXdpZHRoKSB2YXIoLS1jaGVja2JveC1jaGVjay13aWR0aCk7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoLTQ1ZGVnKTtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHRyYW5zaXRpb246IG9wYWNpdHkgdmFyKC0tdHJhbnNpdGlvbi1mb3JtLWZ1bmN0aW9uKVxuICAgICAgdmFyKC0tdHJhbnNpdGlvbi1mb3JtLWR1cmF0aW9uKTtcbiAgICBjb250ZW50OiAnJztcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcblxuICAgIC50dWktY2hlY2tib3gtLWxhcmdlICYge1xuICAgICAgdG9wOiBjYWxjKDAuMyAqIHZhcigtLWZvcm0tY2hlY2tib3gtc2l6ZS1sYXJnZSkpO1xuICAgICAgbGVmdDogY2FsYygwLjIyICogdmFyKC0tZm9ybS1jaGVja2JveC1zaXplLWxhcmdlKSk7XG4gICAgICB3aWR0aDogY2FsYygwLjYgKiB2YXIoLS1mb3JtLWNoZWNrYm94LXNpemUtbGFyZ2UpKTtcbiAgICAgIGhlaWdodDogY2FsYygwLjMyICogdmFyKC0tZm9ybS1jaGVja2JveC1zaXplLWxhcmdlKSk7XG4gICAgfVxuICB9XG5cbiAgJl9faW5wdXQ6ZGlzYWJsZWQ6Y2hlY2tlZCB+ICZfX2xhYmVsOjphZnRlcixcbiAgJl9faW5wdXQ6ZGlzYWJsZWQgfiAmX19sYWJlbDo6YWZ0ZXIge1xuICAgIGJvcmRlci1jb2xvcjogdmFyKC0tZm9ybS1jaGVja2JveC1jaGVjay1jb2xvci1kaXNhYmxlZCk7XG4gIH1cblxuICAmX19pbnB1dDpjaGVja2VkIH4gJl9fbGFiZWw6OmJlZm9yZSB7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tZm9ybS1jaGVja2JveC1iZy1jb2xvci1hY3RpdmUpO1xuICAgIGJvcmRlci1jb2xvcjogdmFyKC0tZm9ybS1jaGVja2JveC1ib3JkZXItY29sb3ItYWN0aXZlKTtcbiAgfVxuXG4gICZfX2lucHV0OmNoZWNrZWQgfiAmX19sYWJlbDo6YWZ0ZXIge1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cbn1cblxuQG1lZGlhIHByaW50IHtcbiAgLnR1aS1jaGVja2JveCB7XG4gICAgJl9faW5wdXQ6Y2hlY2tlZCB+ICZfX2xhYmVsOjpiZWZvcmUge1xuICAgICAgLXdlYmtpdC1wcmludC1jb2xvci1hZGp1c3Q6IGV4YWN0O1xuICAgICAgY29sb3ItYWRqdXN0OiBleGFjdDtcbiAgICB9XG4gIH1cblxuICAvKiBJRTExICYgRWRnZSBzdXBwb3J0Ki9cbiAgLmllLFxuICAubXNlZGdlIHtcbiAgICAudHVpLWNoZWNrYm94IHtcbiAgICAgICZfX2lucHV0OmNoZWNrZWQgfiAudHVpLWNoZWNrYm94X19sYWJlbDo6YmVmb3JlIHtcbiAgICAgICAgYm9yZGVyOiBzb2xpZCB2YXIoLS1mb3JtLWNoZWNrYm94LWJnLWNvbG9yLWFjdGl2ZSk7XG4gICAgICAgIGJvcmRlci13aWR0aDogMCB2YXIoLS1mb3JtLWNoZWNrYm94LXNpemUpIDAgMDtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLnR1aS1jaGVja2JveEJ1dHRvbiB7XG4gICRibG9jazogI3smfTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBmbGV4O1xuXG4gICZfX2lucHV0IHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgb3BhY2l0eTogMDtcbiAgfVxuXG4gICZfX2xhYmVsIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZ3JvdzogMTtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogdmFyKC0tZ2FwLTEpO1xuICAgIGNvbG9yOiB2YXIoLS1idG4tY2hlY2tib3gtdGV4dC1jb2xvcik7XG4gICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIGNvbG9yOiB2YXIoLS1idG4tY2hlY2tib3gtdGV4dC1jb2xvci1mb2N1cyk7XG4gICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1idG4tY2hlY2tib3gtYmctY29sb3ItaG92ZXIpO1xuICAgIH1cblxuICAgICY6YWN0aXZlOmhvdmVyLFxuICAgICY6YWN0aXZlIHtcbiAgICAgIGNvbG9yOiB2YXIoLS1idG4tY2hlY2tib3gtdGV4dC1jb2xvci1hY3RpdmUpO1xuICAgIH1cbiAgfVxuXG4gICZfX2Rlc2VsZWN0SWNvbiB7XG4gICAgbWFyZ2luOiBhdXRvIDAgYXV0byBhdXRvO1xuICAgIGNvbG9yOiB2YXIoLS1idG4tY2hlY2tib3gtdGV4dC1jb2xvci1zZWxlY3RlZCk7XG4gICAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICB9XG5cbiAgJl9faW5wdXQ6Y2hlY2tlZCB+ICZfX2xhYmVsIHtcbiAgICBjb2xvcjogdmFyKC0tYnRuLWNoZWNrYm94LXRleHQtY29sb3Itc2VsZWN0ZWQpO1xuICAgIGJhY2tncm91bmQ6IHZhcigtLWJ0bi1jaGVja2JveC1iZy1jb2xvci1zZWxlY3RlZCk7XG5cbiAgICAjeyRibG9ja31fX2Rlc2VsZWN0SWNvbiB7XG4gICAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICAgIH1cblxuICAgICY6aG92ZXIge1xuICAgICAgY29sb3I6IHZhcigtLWJ0bi1jaGVja2JveC10ZXh0LWNvbG9yLWZvY3VzKTtcbiAgICAgIGJhY2tncm91bmQ6IHZhcigtLWJ0bi1jaGVja2JveC1iZy1jb2xvci1ob3Zlcik7XG5cbiAgICAgICN7JGJsb2NrfV9fZGVzZWxlY3RJY29uIHtcbiAgICAgICAgY29sb3I6IHZhcigtLWJ0bi1jaGVja2JveC10ZXh0LWNvbG9yLWZvY3VzKTtcbiAgICAgICAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmOmFjdGl2ZTpob3ZlcixcbiAgICAmOmFjdGl2ZSB7XG4gICAgICBjb2xvcjogdmFyKC0tYnRuLWNoZWNrYm94LXRleHQtY29sb3ItYWN0aXZlKTtcbiAgICAgIGJhY2tncm91bmQ6IHZhcigtLWJ0bi1jaGVja2JveC1iZy1jb2xvci1ob3Zlcik7XG5cbiAgICAgICN7JGJsb2NrfV9fZGVzZWxlY3RJY29uIHtcbiAgICAgICAgY29sb3I6IHZhcigtLWJ0bi1jaGVja2JveC10ZXh0LWNvbG9yLWFjdGl2ZSk7XG4gICAgICAgIHZpc2liaWxpdHk6IHZpc2libGU7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgJl9faW5wdXQ6Zm9jdXMtdmlzaWJsZSB+ICZfX2xhYmVsIHtcbiAgICBAaW5jbHVkZSB0dWktZm9jdXMoKTtcbiAgfVxuXG4gICZfX2lucHV0OmZvY3VzLXZpc2libGU6Y2hlY2tlZCB+ICZfX2xhYmVsIHtcbiAgICBAaW5jbHVkZSB0dWktZm9jdXMoKTtcblxuICAgICN7JGJsb2NrfV9fZGVzZWxlY3RJY29uIHtcbiAgICAgIGNvbG9yOiB2YXIoLS1idG4tY2hlY2tib3gtdGV4dC1jb2xvci1zZWxlY3RlZCk7XG4gICAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICAgIH1cbiAgfVxufVxuXG46cm9vdCB7XG4gIC0tZm9ybS1jaGVja2JveC1ncm91cC1wYWRkaW5nOiB2YXIoLS1nYXAtMik7XG4gIC0tZm9ybS1jaGVja2JveC1ncm91cC1zcGFjaW5nLXY6IHZhcigtLWdhcC00KTtcbiAgLS1mb3JtLWNoZWNrYm94LWdyb3VwLXNwYWNpbmctaDogdmFyKC0tZ2FwLTQpO1xufVxuXG4udHVpLWNoZWNrYm94R3JvdXAge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBwYWRkaW5nOiB2YXIoLS1mb3JtLWNoZWNrYm94LWdyb3VwLXBhZGRpbmcpIDA7XG5cbiAgQGluY2x1ZGUgdHVpLXN0YWNrLXZlcnRpY2FsKHZhcigtLWZvcm0tY2hlY2tib3gtZ3JvdXAtc3BhY2luZy12KSk7XG59XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6ICR0dWktc2NyZWVuLXNtKSB7XG4gIC50dWktY2hlY2tib3hHcm91cC0taG9yaXpvbnRhbCB7XG4gICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgLyogc3R5bGVsaW50LWRpc2FibGUgbGVuZ3RoLXplcm8tbm8tdW5pdCovXG4gICAgLyogcHJldHRpZXItaWdub3JlKi9cbiAgICBtYXJnaW4tdG9wOiBjYWxjKDBweCAtIHZhcigtLWZvcm0tY2hlY2tib3gtZ3JvdXAtc3BhY2luZy12KSArIHZhcigtLWZvcm0tY2hlY2tib3gtZ3JvdXAtcGFkZGluZykpO1xuICAgIHBhZGRpbmctdG9wOiAwO1xuXG4gICAgJiA+ICoge1xuICAgICAgbWFyZ2luLXRvcDogdmFyKC0tZm9ybS1jaGVja2JveC1ncm91cC1zcGFjaW5nLXYpO1xuICAgICAgbWFyZ2luLXJpZ2h0OiB2YXIoLS1mb3JtLWNoZWNrYm94LWdyb3VwLXNwYWNpbmctaCk7XG4gICAgfVxuICB9XG59XG5cbi50dWktZGF0ZVNlbGVjdG9yIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1mbG93OiBjb2x1bW47XG4gIGdhcDogdmFyKC0tZ2FwLTIpO1xuICBtYXgtd2lkdGg6IDM1cmVtO1xuICBmb250LXNpemU6IHZhcigtLWZvcm0taW5wdXQtZm9udC1zaXplKTtcblxuICAmX19kYXRlIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGdhcDogdmFyKC0tZ2FwLTIpO1xuXG4gICAgLyogc2V0IHJhdGlvIGFuZCBpbnRyaW5zaWMgd2lkdGggZm9yIGVhY2ggZmllbGQqL1xuXG4gICAgJi1kYXkge1xuICAgICAgZmxleDogNjtcbiAgICAgIHdpZHRoOiBjYWxjKHZhcigtLWdhcC0xMCkgKyAxLjVlbSk7XG4gICAgfVxuXG4gICAgJi1tb250aCB7XG4gICAgICBmbGV4OiAxMjtcbiAgICAgIHdpZHRoOiBjYWxjKHZhcigtLWdhcC0xMCkgKyA2ZW0pO1xuICAgIH1cblxuICAgICYteWVhciB7XG4gICAgICBmbGV4OiA4O1xuICAgICAgd2lkdGg6IGNhbGModmFyKC0tZ2FwLTEwKSArIDNlbSk7XG4gICAgfVxuICB9XG59XG5cbi50dWktZm9ybUZpZWxkRXJyb3Ige1xuICAvKiBvZmZzZXQgdGhlIGV4dHJhIHJlZCBzaGFkb3cgb24gaW52YWxpZCBlbGVtZW50cyArIHdlIHdhbnQgdGhlIGVycm9yKi9cbiAgLyogbWVzc2FnZSB0byBiZSBzcGFjZWQgMXB4IGF3YXkqL1xuICBtYXJnaW4tdG9wOiBjYWxjKHZhcigtLWZvcm0taW5wdXQtaW52YWxpZC1zaGFkb3ctc2l6ZSkgKyAxcHgpO1xuXG4gICZfX2lubmVyIHtcbiAgICBAaW5jbHVkZSB0dWktZm9udC1ib2R5LXNtYWxsKCk7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBwYWRkaW5nOiAwLjZyZW0gMC44cmVtO1xuICAgIGNvbG9yOiB2YXIoLS1mb3JtLWVycm9yLXRleHQtY29sb3IpO1xuICAgIGJhY2tncm91bmQ6IHZhcigtLWZvcm0tZXJyb3ItYmctY29sb3IpO1xuICB9XG5cbiAgJl9fZGlzbWlzcyB7XG4gICAgbWFyZ2luLWxlZnQ6IHZhcigtLWdhcC0xKTtcbiAgICBwYWRkaW5nOiAwO1xuICAgIGNvbG9yOiBpbmhlcml0O1xuICAgIG9wYWNpdHk6IDAuNztcblxuICAgICY6aG92ZXI6YWN0aXZlLFxuICAgICY6YWN0aXZlLFxuICAgICY6aG92ZXIsXG4gICAgJjpmb2N1cyB7XG4gICAgICBjb2xvcjogaW5oZXJpdDtcbiAgICAgIG9wYWNpdHk6IDE7XG4gICAgfVxuXG4gICAgJi1pY29uIHtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIHRvcDogLTFweDtcbiAgICAgIEBpbmNsdWRlIHR1aS1mb250LWJvZHktc21hbGwoKTtcbiAgICB9XG4gIH1cbn1cblxuLnR1aS1mb3JtRmllbGRHcm91cCB7XG4gIGZsZXgtZ3JvdzogMTtcbiAgd2lkdGg6IDEwMCU7XG4gIG1pbi13aWR0aDogMDtcbn1cblxuLnR1aS1maWVsZHNldCB7XG4gIG1pbi13aWR0aDogMDtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwO1xuICBib3JkZXI6IDA7XG5cbiAgJl9fbGVnZW5kIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogMDtcbiAgICBjb2xvcjogdmFyKC0tZm9ybS10ZXh0LWNvbG9yKTtcbiAgICBmb250LXNpemU6IHZhcigtLWZvbnQtc2l6ZS0xOCk7XG4gICAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7XG4gICAgYm9yZGVyOiBub25lO1xuICB9XG5cbiAgJi0taGlkZGVuIHtcbiAgICBAaW5jbHVkZSBzci1vbmx5KCk7XG4gIH1cbn1cblxuLnR1aS1maWx0ZXJGaWVsZHNldCB7XG4gIG1pbi13aWR0aDogMDtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwO1xuICBib3JkZXI6IDA7XG5cbiAgJl9fY29udGVudCB7XG4gICAgbWFyZ2luLXRvcDogdmFyKC0tZ2FwLTIpO1xuICB9XG59XG5cbi50dWktZm9ybSB7XG4gIEBpbmNsdWRlIHR1aS1zdGFjay12ZXJ0aWNhbCh2YXIoLS1nYXAtOCkpO1xufVxuXG4udHVpLWZvcm1Sb3cge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWZsb3c6IGNvbHVtbjtcblxuICAmID4gJl9fZGVzYyB7XG4gICAgbWluLXdpZHRoOiAwO1xuICAgIHBhZGRpbmctdG9wOiB2YXIoLS1nYXAtMSk7XG4gICAgcGFkZGluZy1yaWdodDogdmFyKC0tZ2FwLTIpO1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDtcbiAgfVxuXG4gICYgPiAmX19hY3Rpb24ge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgbWF4LXdpZHRoOiA3MS4ycmVtO1xuXG4gICAgJi0taXNTdGFja2VkIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICBAaW5jbHVkZSB0dWktc3RhY2stdmVydGljYWwodmFyKC0tZ2FwLTIpKTtcbiAgICB9XG4gIH1cblxuICAmLS1mdWxsV2lkdGggPiAmX19hY3Rpb24ge1xuICAgIG1heC13aWR0aDogbm9uZTtcbiAgfVxufVxuXG4udHVpLWZvcm0tLXZlcnRpY2FsLFxuLnR1aS1mb3JtUm93LS12ZXJ0aWNhbCxcbi50dWktZm9ybVJvdy0tZW1wdHlEZXNjIHtcbiAgJiA+IC50dWktZm9ybVJvd19fZGVzYyB7XG4gICAgcGFkZGluZzogMDtcbiAgfVxufVxuXG4udHVpLWZvcm0tLXZlcnRpY2FsLFxuLnR1aS1mb3JtUm93LS12ZXJ0aWNhbCB7XG4gIC50dWktZm9ybVJvd19fYWN0aW9uIHtcbiAgICBtYXJnaW4tdG9wOiB2YXIoLS1nYXAtMSk7XG4gIH1cbn1cblxuLnR1aS1mb3JtUm93LS1lbXB0eURlc2Mge1xuICAudHVpLWZvcm1Sb3dfX2FjdGlvbiB7XG4gICAgbWFyZ2luLXRvcDogMDtcbiAgfVxufVxuXG4udHVpLWZvcm0tLWhvcml6b250YWwgLnR1aS1mb3JtUm93Om5vdCgudHVpLWZvcm1Sb3ctLXZlcnRpY2FsKSB7XG4gIEBpbmNsdWRlIHR1aS1sYXlvdXQtc2lkZWJhcihcbiAgICAkc2lkZS13aWR0aDogMjJyZW0sXG4gICAgJGNvbnRlbnQtbWluLXdpZHRoOiA2MCUsXG4gICAgJGd1dHRlcjogdmFyKC0tZ2FwLTEpLFxuICAgICRzaWRlYmFyLXNlbGVjdG9yOiAnLnR1aS1mb3JtUm93X19kZXNjJyxcbiAgICAkY29udGVudC1zZWxlY3RvcjogJy50dWktZm9ybVJvd19fYWN0aW9uJ1xuICApO1xuXG4gICYgPiAudHVpLWZvcm1Sb3dfX2Rlc2Mge1xuICAgIHBhZGRpbmctdG9wOiB0dWktaW5wdXQtdi1wYWRkaW5nLWJvcmRlcmxlc3MoKTtcbiAgfVxuXG4gICYudHVpLWZvcm1Sb3ctLWNvbnRlbnRUeXBlLW90aGVyID4gLnR1aS1mb3JtUm93X19hY3Rpb24ge1xuICAgIHBhZGRpbmctdG9wOiB0dWktaW5wdXQtdi1wYWRkaW5nLWJvcmRlcmxlc3MoKTtcbiAgfVxufVxuXG4udHVpLWZvcm1Sb3dfX2RlZmF1bHRzIHtcbiAgY29sb3I6IHZhcigtLWZvcm0tZGVmYXVsdHMtdGV4dC1jb2xvcik7XG4gIEBpbmNsdWRlIHR1aS1mb250LWJvZHkteC1zbWFsbDtcbn1cblxuLnR1aS1mb3JtUm93X19kZXRhaWxzIHtcbiAgY29sb3I6IHZhcigtLWZvcm0tZGV0YWlscy10ZXh0LWNvbG9yKTtcbiAgQGluY2x1ZGUgdHVpLWZvbnQtYm9keS1zbWFsbDtcbn1cblxuLnR1aS1mb3JtUm93U3RhY2sge1xuICBAaW5jbHVkZSB0dWktc3RhY2stdmVydGljYWwodmFyKC0tZ2FwLTgpKTtcblxuICAmLS1zcGFjaW5nIHtcbiAgICAmLWxhcmdlIHtcbiAgICAgIEBpbmNsdWRlIHR1aS1zdGFjay12ZXJ0aWNhbCh2YXIoLS1nYXAtOCkpO1xuICAgIH1cbiAgICAmLW1lZGl1bSB7XG4gICAgICBAaW5jbHVkZSB0dWktc3RhY2stdmVydGljYWwodmFyKC0tZ2FwLTYpKTtcbiAgICB9XG4gICAgJi1zbWFsbCB7XG4gICAgICBAaW5jbHVkZSB0dWktc3RhY2stdmVydGljYWwodmFyKC0tZ2FwLTQpKTtcbiAgICB9XG4gIH1cbn1cblxuLnR1aS1mb3JtSGVscEljb24ge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgJl9faWNvbiB7XG4gICAgcGFkZGluZzogMDtcbiAgICBjb2xvcjogdmFyKC0tY29sb3Itc3RhdGUpO1xuICB9XG5cbiAgJl9fZGVzYyB7XG4gICAgLyogYXJpYS1kZXNjcmliZWRieSBzdGlsbCB3b3JrcyBldmVuIGlmIHRoZSB0YXJnZXQgZWxlbWVudCBpcyBkaXNwbGF5OiBub25lKi9cbiAgICAvKiBodHRwczovL2RldmVsb3Blci5wYWNpZWxsb2dyb3VwLmNvbS9ibG9nLzIwMTUvMDUvc2hvcnQtbm90ZS1vbi1hcmlhLWxhYmVsbGVkYnktYW5kLWFyaWEtZGVzY3JpYmVkYnkvKi9cbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG59XG5cbi50dWktZm9ybUltYWdlVXBsb2FkIHtcbiAgY29sb3I6IHZhcigtLWZvcm0taW5wdXQtdGV4dC1jb2xvcik7XG4gIGZvbnQtc2l6ZTogdmFyKC0tZm9ybS1pbnB1dC1mb250LXNpemUpO1xuICBsaW5lLWhlaWdodDogMTtcbiAgYmFja2dyb3VuZDogdmFyKC0tZm9ybS1pbnB1dC1iZy1jb2xvcik7XG5cbiAgJl9fYWN0aW9ucyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBwYWRkaW5nOiB2YXIoLS1nYXAtMik7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tY29sb3ItbmV1dHJhbC0zKTtcbiAgICBib3JkZXItY29sb3I6IHZhcigtLWZvcm0taW5wdXQtYm9yZGVyLWNvbG9yKTtcbiAgICBib3JkZXItdG9wOiB2YXIoLS1mb3JtLWlucHV0LWJvcmRlci1zaXplKSBzb2xpZDtcbiAgICBib3JkZXItcmlnaHQ6IHZhcigtLWZvcm0taW5wdXQtYm9yZGVyLXNpemUpIHNvbGlkO1xuICAgIGJvcmRlci1sZWZ0OiB2YXIoLS1mb3JtLWlucHV0LWJvcmRlci1zaXplKSBzb2xpZDtcbiAgfVxuICAmX19kZWxldGVCdXR0b24ge1xuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICB9XG4gICZfX2ZpbGVhcmVhIHtcbiAgICBwYWRkaW5nOiB2YXIoLS1nYXAtMik7XG4gICAgYm9yZGVyOiB2YXIoLS1mb3JtLWlucHV0LWJvcmRlci1zaXplKSBzb2xpZDtcbiAgICBib3JkZXItY29sb3I6IHZhcigtLWZvcm0taW5wdXQtYm9yZGVyLWNvbG9yKTtcblxuICAgIC50dWktZm9ybUltYWdlVXBsb2FkLS1oaWdobGlnaHQgJiB7XG4gICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1mb3JtLWlucHV0LWJnLWNvbG9yLWZvY3VzKTtcbiAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tZm9ybS1pbnB1dC1ib3JkZXItY29sb3ItZm9jdXMpO1xuICAgICAgb3V0bGluZTogbm9uZTtcbiAgICAgIGJveC1zaGFkb3c6IHZhcigtLWZvcm0taW5wdXQtc2hhZG93LWZvY3VzKTtcbiAgICB9XG5cbiAgICAudHVpLWZvcm1JbWFnZVVwbG9hZC0taXNFcnJvciAmIHtcbiAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tZm9ybS1pbnB1dC1ib3JkZXItY29sb3ItaW52YWxpZCk7XG4gICAgICBib3gtc2hhZG93OiB2YXIoLS1mb3JtLWlucHV0LXNoYWRvdy1pbnZhbGlkKTtcbiAgICB9XG4gIH1cbiAgJl9fZGlzcGxheSB7XG4gICAgLnR1aS1yZXNwb25zaXZlSW1hZ2Uge1xuICAgICAgbWF4LWhlaWdodDogMjVyZW07XG4gICAgfVxuICB9XG4gICZfX3Byb2dyZXNzIHtcbiAgICBwYWRkaW5nOiB2YXIoLS1nYXAtMik7XG4gIH1cbn1cblxuLnR1aS1mb3JtSW5wdXQge1xuICBkaXNwbGF5OiBibG9jaztcbiAgZmxleC1ncm93OiAxO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICB3aWR0aDogMTAwJTtcbiAgbWluLXdpZHRoOiAwO1xuICBoZWlnaHQ6IHZhcigtLWZvcm0taW5wdXQtaGVpZ2h0KTtcbiAgcGFkZGluZzogdHVpLWlucHV0LXYtcGFkZGluZygpIHZhcigtLWdhcC0zKTtcbiAgY29sb3I6IHZhcigtLWZvcm0taW5wdXQtdGV4dC1jb2xvcik7XG4gIGZvbnQtc2l6ZTogdmFyKC0tZm9ybS1pbnB1dC1mb250LXNpemUpO1xuICBsaW5lLWhlaWdodDogdmFyKC0tZm9ybS1pbnB1dC1saW5lLWhlaWdodCk7XG4gIGJhY2tncm91bmQ6IHZhcigtLWZvcm0taW5wdXQtYmctY29sb3IpO1xuICBib3JkZXI6IHZhcigtLWZvcm0taW5wdXQtYm9yZGVyLXNpemUpIHNvbGlkIHZhcigtLWZvcm0taW5wdXQtYm9yZGVyLWNvbG9yKTtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tZm9ybS1pbnB1dC1ib3JkZXItcmFkaXVzKTtcblxuICAmW3R5cGU9J3NlYXJjaCddIHtcbiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1mb3JtLWlucHV0LWJvcmRlci1yYWRpdXMpO1xuICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbiAgICAgICAgICAgIGFwcGVhcmFuY2U6IG5vbmU7XG4gIH1cblxuICBAaW5jbHVkZSB0dWktY2hhci1sZW5ndGgtY2xhc3NlcygpO1xuXG4gICY6OnBsYWNlaG9sZGVyIHtcbiAgICBjb2xvcjogdmFyKC0tZm9ybS1pbnB1dC10ZXh0LXBsYWNlaG9sZGVyLWNvbG9yKTtcbiAgfVxuXG4gIC50dWktY29udGV4dEludmFsaWQgJiB7XG4gICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1mb3JtLWlucHV0LWJvcmRlci1jb2xvci1pbnZhbGlkKTtcbiAgICBib3gtc2hhZG93OiB2YXIoLS1mb3JtLWlucHV0LXNoYWRvdy1pbnZhbGlkKTtcbiAgfVxuXG4gICYtLXNpemUtbGFyZ2Uge1xuICAgIGhlaWdodDogdmFyKC0tZm9ybS1pbnB1dC1oZWlnaHQtbGFyZ2UpO1xuICAgIC8qIHByZXR0aWVyLWlnbm9yZSAqL1xuICAgIHBhZGRpbmc6IGNhbGMoKHZhcigtLWZvcm0taW5wdXQtaGVpZ2h0LWxhcmdlKSAtIDFlbSAtICh2YXIoLS1mb3JtLWlucHV0LWJvcmRlci1zaXplKSAqIDIpKSAvIDIpO1xuICAgIGZvbnQtc2l6ZTogdmFyKC0tZm9ybS1pbnB1dC1mb250LXNpemUtbGcpO1xuICB9XG5cbiAgJjpmb2N1cyB7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tZm9ybS1pbnB1dC1iZy1jb2xvci1mb2N1cyk7XG4gICAgYm9yZGVyOiB2YXIoLS1mb3JtLWlucHV0LWJvcmRlci1zaXplKSBzb2xpZFxuICAgICAgdmFyKC0tZm9ybS1pbnB1dC1ib3JkZXItY29sb3ItZm9jdXMpO1xuICAgIG91dGxpbmU6IG5vbmU7XG4gICAgYm94LXNoYWRvdzogdmFyKC0tZm9ybS1pbnB1dC1zaGFkb3ctZm9jdXMpO1xuICAgIEBpbmNsdWRlIHR1aS1mb2N1cygpO1xuXG4gICAgLnR1aS1jb250ZXh0SW52YWxpZCAmIHtcbiAgICAgIGJhY2tncm91bmQ6IHZhcigtLWZvcm0taW5wdXQtYmctY29sb3ItaW52YWxpZC1mb2N1cyk7XG4gICAgICBib3JkZXItY29sb3I6IHZhcigtLWZvcm0taW5wdXQtYm9yZGVyLWNvbG9yLWludmFsaWQpO1xuICAgICAgb3V0bGluZS1jb2xvcjogdmFyKC0tZm9ybS1pbnB1dC1ib3JkZXItY29sb3ItaW52YWxpZCk7XG4gICAgICBib3gtc2hhZG93OiB2YXIoLS1mb3JtLWlucHV0LXNoYWRvdy1pbnZhbGlkLWZvY3VzKTtcbiAgICB9XG4gIH1cblxuICAmLS1wcmVJY29uIHtcbiAgICBwYWRkaW5nLWxlZnQ6IHZhcigtLWdhcC04KTtcbiAgfVxuXG4gICYtLXBvc3RJY29uIHtcbiAgICBwYWRkaW5nLXJpZ2h0OiB2YXIoLS1nYXAtOCk7XG4gIH1cblxuICAmW3JlYWRvbmx5XSB7XG4gICAgY29sb3I6IHZhcigtLWZvcm0taW5wdXQtdGV4dC1jb2xvcik7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tZm9ybS1pbnB1dC1iZy1jb2xvcik7XG4gICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1mb3JtLWlucHV0LWJvcmRlci1jb2xvcik7XG5cbiAgICAmOjpwbGFjZWhvbGRlciB7XG4gICAgICBjb2xvcjogdmFyKC0tZm9ybS1pbnB1dC10ZXh0LXBsYWNlaG9sZGVyLWNvbG9yKTtcbiAgICB9XG4gIH1cblxuICAmW2Rpc2FibGVkXSB7XG4gICAgY29sb3I6IHZhcigtLWZvcm0taW5wdXQtdGV4dC1jb2xvci1kaXNhYmxlZCk7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tZm9ybS1pbnB1dC1iZy1jb2xvci1kaXNhYmxlZCk7XG4gICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1mb3JtLWlucHV0LWJvcmRlci1jb2xvci1kaXNhYmxlZCk7XG5cbiAgICAmOjpwbGFjZWhvbGRlciB7XG4gICAgICBjb2xvcjogdmFyKC0tZm9ybS1pbnB1dC10ZXh0LWNvbG9yLWRpc2FibGVkKTtcbiAgICB9XG4gIH1cblxuICAmLS10cmFuc3BhcmVudCxcbiAgJi0tdHJhbnNwYXJlbnQ6Zm9jdXMsXG4gICYtLXRyYW5zcGFyZW50OmZvY3VzLXZpc2libGUsXG4gICYtLXRyYW5zcGFyZW50W3JlYWRvbmx5XSxcbiAgJi0tdHJhbnNwYXJlbnRbZGlzYWJsZWRdLFxuICAudHVpLWNvbnRleHRJbnZhbGlkICYtLXRyYW5zcGFyZW50LFxuICAudHVpLWNvbnRleHRJbnZhbGlkICYtLXRyYW5zcGFyZW50OmZvY3VzIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICBib3JkZXI6IG5vbmU7XG4gICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICBvdXRsaW5lOiBub25lO1xuICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gIH1cbn1cblxuLnR1aS1pbnB1dENvbG9yIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAkY29sb3ItYmxvY2stcGFkZGluZzogMC40cmVtO1xuXG4gIEBpbmNsdWRlIHR1aS1jaGFyLWxlbmd0aC1jbGFzc2VzKCk7XG5cbiAgLyogdmlzdWFsbHkgaGlkZSB0aGUgY29sb3VyIElucHV0IGNvbnRyb2wqL1xuICAmICZfX3BpY2tlclt0eXBlPSdjb2xvciddIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgd2lkdGg6IGNhbGModmFyKC0tZ2FwLTgpICsgdmFyKC0tZ2FwLTIpKTtcbiAgICBvcGFjaXR5OiAwO1xuXG4gICAgJltkaXNhYmxlZF0ge1xuICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICB9XG4gIH1cblxuICAvKiBxdWl0ZSBhY3V0ZSBib3ggbW9kZWwgYW5kIHBvc2l0aW9uaW5nIHZhbHVlcyB0byBtYWtlIHN1cmUgdGhleSBzY2FsZSB3aXRoKi9cbiAgLyogYXNzb2NpYXRlZCB0ZXh0IElucHV0IHZhbHVlcyovXG4gICZfX2NvbG9yQmxvY2sge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAvKiBwcmV0dGllci1pZ25vcmUqL1xuICAgIHRvcDogY2FsYygjeyRjb2xvci1ibG9jay1wYWRkaW5nfSArIHZhcigtLWZvcm0taW5wdXQtYm9yZGVyLXNpemUpKTtcbiAgICBsZWZ0OiBjYWxjKCN7JGNvbG9yLWJsb2NrLXBhZGRpbmd9ICsgdmFyKC0tZm9ybS1pbnB1dC1ib3JkZXItc2l6ZSkpO1xuICAgIHdpZHRoOiB2YXIoLS1nYXAtOCk7XG4gICAgLyogcHJldHRpZXItaWdub3JlKi9cbiAgICBoZWlnaHQ6IGNhbGMoMTAwJSAtICN7JGNvbG9yLWJsb2NrLXBhZGRpbmcgKiAyfSAtIHZhcigtLWZvcm0taW5wdXQtYm9yZGVyLXNpemUpICogMik7XG4gICAgYm9yZGVyLXJhZGl1czogdmFyKC0tYm9yZGVyLXJhZGl1cy1zbWFsbCk7XG5cbiAgICAmLS1kaXNhYmxlZCB7XG4gICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgIH1cbiAgfVxuXG4gICYgJl9faW5wdXRbdHlwZT0ndGV4dCddIHtcbiAgICBwYWRkaW5nLWxlZnQ6IGNhbGMoXG4gICAgICB2YXIoLS1nYXAtOCkgKyAjeyRjb2xvci1ibG9jay1wYWRkaW5nICogMn0gKyB2YXIoXG4gICAgICAgICAgLS1mb3JtLWlucHV0LWJvcmRlci1zaXplXG4gICAgICAgICkgKyB2YXIoLS1nYXAtMSlcbiAgICApO1xuICB9XG59XG5cbi50dWktZm9ybUlucHV0Q3VycmVuY3kge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWdyb3c6IDE7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIHdpZHRoOiAxMDAlO1xuICBtaW4td2lkdGg6IDA7XG5cbiAgQGluY2x1ZGUgdHVpLWNoYXItbGVuZ3RoLWNsYXNzZXMoKTtcblxuICAmX19zeW1ib2wge1xuICAgIEBpbmNsdWRlIHR1aS1mb250LWhlYWRpbmctbGFiZWw7XG4gICAgZm9udC1zaXplOiB2YXIoLS1mb3JtLWlucHV0LWZvbnQtc2l6ZSk7XG5cbiAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgIG1hcmdpbi1yaWdodDogdmFyKC0tZ2FwLTEpO1xuICAgIH1cblxuICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICBtYXJnaW4tbGVmdDogdmFyKC0tZ2FwLTEpO1xuICAgIH1cbiAgfVxuXG4gICYtLXNpemUtbGFyZ2UgJl9fc3ltYm9sIHtcbiAgICBmb250LXNpemU6IHZhcigtLWZvcm0taW5wdXQtZm9udC1zaXplLWxnKTtcbiAgfVxufVxuXG4udHVpLWlucHV0R3JvdXAge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICB3aWR0aDogMTAwJTtcbiAgbWluLXdpZHRoOiAwO1xuICBoZWlnaHQ6IHZhcigtLWZvcm0taW5wdXQtaGVpZ2h0KTtcbiAgY29sb3I6IHZhcigtLWZvcm0taW5wdXQtdGV4dC1jb2xvcik7XG4gIGZvbnQtc2l6ZTogdmFyKC0tZm9ybS1pbnB1dC1mb250LXNpemUpO1xuICBsaW5lLWhlaWdodDogMTtcbiAgYmFja2dyb3VuZDogdmFyKC0tZm9ybS1pbnB1dC1iZy1jb2xvcik7XG4gIGJvcmRlcjogdmFyKC0tZm9ybS1pbnB1dC1ib3JkZXItc2l6ZSkgc29saWQgdmFyKC0tZm9ybS1pbnB1dC1ib3JkZXItY29sb3IpO1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1mb3JtLWlucHV0LWJvcmRlci1yYWRpdXMpO1xuXG4gIEBpbmNsdWRlIHR1aS1jaGFyLWxlbmd0aC1jbGFzc2VzKCk7XG5cbiAgLnR1aS1jb250ZXh0SW52YWxpZCAmIHtcbiAgICBib3JkZXItY29sb3I6IHZhcigtLWZvcm0taW5wdXQtYm9yZGVyLWNvbG9yLWludmFsaWQpO1xuICAgIGJveC1zaGFkb3c6IHZhcigtLWZvcm0taW5wdXQtc2hhZG93LWludmFsaWQpO1xuICB9XG5cbiAgJi0taGFzRm9jdXMge1xuICAgIGJhY2tncm91bmQ6IHZhcigtLWZvcm0taW5wdXQtYmctY29sb3ItZm9jdXMpO1xuICAgIGJvcmRlcjogdmFyKC0tZm9ybS1pbnB1dC1ib3JkZXItc2l6ZSkgc29saWQ7XG4gICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1mb3JtLWlucHV0LWJvcmRlci1jb2xvci1mb2N1cyk7XG4gICAgYm94LXNoYWRvdzogdmFyKC0tZm9ybS1pbnB1dC1zaGFkb3ctZm9jdXMpO1xuICAgIEBpbmNsdWRlIHR1aS1mb2N1cygpO1xuXG4gICAgLnR1aS1jb250ZXh0SW52YWxpZCAmIHtcbiAgICAgIGJhY2tncm91bmQ6IHZhcigtLWZvcm0taW5wdXQtYmctY29sb3ItaW52YWxpZC1mb2N1cyk7XG4gICAgICBib3JkZXItY29sb3I6IHZhcigtLWZvcm0taW5wdXQtYm9yZGVyLWNvbG9yLWludmFsaWQpO1xuICAgICAgb3V0bGluZS1jb2xvcjogdmFyKC0tZm9ybS1pbnB1dC1ib3JkZXItY29sb3ItaW52YWxpZCk7XG4gICAgICBib3gtc2hhZG93OiB2YXIoLS1mb3JtLWlucHV0LXNoYWRvdy1pbnZhbGlkLWZvY3VzKTtcbiAgICB9XG4gIH1cblxuICAmLS1kaXNhYmxlZCB7XG4gICAgY29sb3I6IHZhcigtLWZvcm0taW5wdXQtdGV4dC1jb2xvci1kaXNhYmxlZCk7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tZm9ybS1pbnB1dC1iZy1jb2xvci1kaXNhYmxlZCk7XG4gICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1mb3JtLWlucHV0LWJvcmRlci1jb2xvci1kaXNhYmxlZCk7XG5cbiAgICAmOjpwbGFjZWhvbGRlciB7XG4gICAgICBjb2xvcjogdmFyKC0tZm9ybS1pbnB1dC10ZXh0LWNvbG9yLWRpc2FibGVkKTtcbiAgICB9XG4gIH1cbn1cblxuLnR1aS1pbnB1dEdyb3VwQnV0dG9uIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1zaHJpbms6IDA7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBwYWRkaW5nOiAwIHZhcigtLWdhcC0yKTtcbiAgY29sb3I6IHZhcigtLWNvbG9yLXN0YXRlKTtcbiAgZm9udC1zaXplOiB2YXIoLS1mb3JtLWlucHV0LWZvbnQtc2l6ZSk7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgLXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTtcbiAgICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcblxuICAmOmZvY3VzLXZpc2libGUge1xuICAgIGNvbG9yOiB2YXIoLS1jb2xvci1zdGF0ZS1mb2N1cyk7XG4gICAgQGluY2x1ZGUgdHVpLWZvY3VzKCk7XG4gICAgb3V0bGluZS1vZmZzZXQ6IGNhbGMoXG4gICAgICB2YXIoLS1mb3JtLWlucHV0LWJvcmRlci1zaXplKSArIHZhcigtLWZvY3VzLW91dGxpbmUtb2Zmc2V0KVxuICAgICk7XG4gIH1cblxuICAmOmhvdmVyIHtcbiAgICBjb2xvcjogdmFyKC0tY29sb3Itc3RhdGUtaG92ZXIpO1xuICB9XG5cbiAgJjphY3RpdmUge1xuICAgIGNvbG9yOiB2YXIoLS1jb2xvci1zdGF0ZS1hY3RpdmUpO1xuICB9XG5cbiAgJltkaXNhYmxlZF0ge1xuICAgIGNvbG9yOiB2YXIoLS1jb2xvci1zdGF0ZS1kaXNhYmxlZCk7XG4gICAgY3Vyc29yOiBkZWZhdWx0O1xuICB9XG59XG5cbi8qIFJlc2V0Ki9cbi50dWktaW5wdXRHcm91cElucHV0LFxuaW5wdXRbdHlwZV0udHVpLWlucHV0R3JvdXBJbnB1dCB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgd2lkdGg6IGF1dG87XG4gIG1heC13aWR0aDogbm9uZTtcbiAgaGVpZ2h0OiBhdXRvO1xuICBtYXgtaGVpZ2h0OiBub25lO1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDFweDtcbiAgY29sb3I6IHJnYigwLCAwLCAwKTtcbiAgZm9udC1zaXplOiBpbmhlcml0O1xuICBsaW5lLWhlaWdodDogaW5oZXJpdDtcbiAgbGV0dGVyLXNwYWNpbmc6IG5vcm1hbDtcbiAgdGV4dC1hbGlnbjogc3RhcnQ7XG4gIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICB0ZXh0LWluZGVudDogMDtcbiAgdGV4dC1zaGFkb3c6IG5vbmU7XG4gIHdvcmQtc3BhY2luZzogbm9ybWFsO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjU1LCAyNTUsIDI1NSk7XG4gIGJvcmRlci1jb2xvcjogcmdiKDIxOCwgMjE4LCAyMTgpO1xuICBib3JkZXItc3R5bGU6IGluc2V0O1xuICBib3JkZXItd2lkdGg6IDJweDtcbiAgYm9yZGVyLXJhZGl1czogMDtcbiAgYm9yZGVyLWltYWdlLXNvdXJjZTogbm9uZTtcbiAgYm9yZGVyLWltYWdlLXNsaWNlOiAxMDAlO1xuICBib3JkZXItaW1hZ2Utd2lkdGg6IDE7XG4gIGJvcmRlci1pbWFnZS1vdXRzZXQ6IDA7XG4gIGJvcmRlci1pbWFnZS1yZXBlYXQ6IHN0cmV0Y2g7XG4gIGJvcmRlci1zcGFjaW5nOiAwO1xuICBib3gtc2hhZG93OiBub25lO1xuICBjdXJzb3I6IHRleHQ7XG4gIHRyYW5zaXRpb24tZGVsYXk6IDBzO1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZTtcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogMHM7XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IGFsbDtcbiAgdGV4dC1yZW5kZXJpbmc6IGF1dG87XG5cbiAgJltkaXNhYmxlZF0ge1xuICAgIGNvbG9yOiByZ2IoNjEsIDY4LCA3NSk7XG4gICAgYmFja2dyb3VuZDogcmdiKDIxOCwgMjE4LCAyMTgpO1xuICAgIGN1cnNvcjogZGVmYXVsdDtcbiAgfVxuXG4gICY6Zm9jdXMge1xuICAgIGJvcmRlci1jb2xvcjogcmdiKDIxOCwgMjE4LCAyMTgpO1xuICAgIG91dGxpbmUtd2lkdGg6IDNweDtcbiAgICBvdXRsaW5lLXN0eWxlOiBhdXRvO1xuICAgIG91dGxpbmUtY29sb3I6IEhpZ2hsaWdodDtcbiAgICBvdXRsaW5lLWNvbG9yOiAtd2Via2l0LWZvY3VzLXJpbmctY29sb3I7XG4gICAgb3V0bGluZS1vZmZzZXQ6IC0ycHg7XG4gICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICAtbW96LXVzZXItZm9jdXM6IG5vcm1hbDtcbiAgfVxuXG4gICY6OnBsYWNlaG9sZGVyIHtcbiAgICBjb2xvcjogI2E5YTlhOTtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG59XG5cbi50dWktaW5wdXRHcm91cElucHV0LFxuaW5wdXRbdHlwZV0udHVpLWlucHV0R3JvdXBJbnB1dCB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBmbGV4LWdyb3c6IDE7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIG1pbi13aWR0aDogMDtcbiAgcGFkZGluZzogMCB2YXIoLS1nYXAtMik7XG4gIGNvbG9yOiB2YXIoLS1mb3JtLWlucHV0LXRleHQtY29sb3IpO1xuICBmb250LXNpemU6IHZhcigtLWZvcm0taW5wdXQtZm9udC1zaXplKTtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICBib3JkZXI6IG5vbmU7XG5cbiAgJjo6cGxhY2Vob2xkZXIge1xuICAgIGNvbG9yOiB2YXIoLS1mb3JtLWlucHV0LXRleHQtcGxhY2Vob2xkZXItY29sb3IpO1xuICB9XG5cbiAgJjpmb2N1cyB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgYm9yZGVyOiBub25lO1xuICAgIG91dGxpbmU6IG5vbmU7XG4gICAgYm94LXNoYWRvdzogbm9uZTtcbiAgfVxuXG4gICZbZGlzYWJsZWRdIHtcbiAgICBjb2xvcjogdmFyKC0tZm9ybS1pbnB1dC10ZXh0LWNvbG9yLWRpc2FibGVkKTtcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICAmOjpwbGFjZWhvbGRlciB7XG4gICAgICBjb2xvcjogdmFyKC0tZm9ybS1pbnB1dC10ZXh0LWNvbG9yLWRpc2FibGVkKTtcbiAgICB9XG4gIH1cblxuICAmW3JlYWRvbmx5XSB7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIH1cblxuICAmLS1tb25vc3BhY2VGb250IHtcbiAgICBAaW5jbHVkZSB0dWktZm9udC1tb25vc3BhY2UoKTtcbiAgfVxufVxuXG5AbWl4aW4gdHVpLWlucHV0LXNldC1zdGFjay1iZWxvdygkbmFtZSwgJHNpemUpIHtcbiAgJi0tc3RhY2tCZWxvdy0jeyRuYW1lfSA+ICosXG4gIC8qIG5lZWQgdG8gc3BlY2lmeSAudHVpLWZvcm1JbnB1dCBoZXJlIHRvbyBmb3Igc3BlY2lmaWNpdHkgcmVhc29ucyovXG4gICYtLXN0YWNrQmVsb3ctI3skbmFtZX0gPiAudHVpLWZvcm1JbnB1dCB7XG4gICAgLyogVGhpcyB0cmlnZ2VycyB0aGUgY2hpbGRyZW4gdG8gc3dpdGNoIHRvIGJlaW5nIHZlcnRpY2FsbHkgc3RhY2tlZCBiZWxvdyBhKi9cbiAgICAvKiBjZXJ0YWluIHdpZHRoLiovXG4gICAgLyogSXQgd29ya3MgbGlrZSB0aGlzOiovXG4gICAgLyogQWJvdmUgdGhlIHNwZWNpZmllZCB3aWR0aCwgKHdpZHRoIC0gMTAwJSkgZXZhbHVhdGVzIHRvIGEgbGFyZ2UqL1xuICAgIC8qIG5lZ2F0aXZlIGZsZXggYmFzaXMsIGFuZCBpcyB0aGVyZWZvcmUgaWdub3JlZC4qL1xuICAgIC8qIEJlbG93IHRoZSBzcGVjaWZpZWQgd2lkdGgsICh3aWR0aCAtIDEwMCUpIGV2YWx1YXRlcyB0byBhIGxhcmdlKi9cbiAgICAvKiBwb3NpdHZlIGZsZXggYmFzaXMsIGFuZCBmb3JjZXMgZWFjaCBpdGVtIHRvIHRha2UgdXAgaXRzIG93biBsaW5lLiovXG4gICAgLyogTWFnaWMhKi9cbiAgICAvKiBwcmV0dGllci1pZ25vcmUqL1xuICAgIGZsZXgtYmFzaXM6IGNhbGMoKCN7dHVpLWNoYXItbGVuZ3RoKCRzaXplKX0gLSAxMDAlKSAqIDk5OSk7XG4gIH1cbn1cbi50dWktaW5wdXRTZXQge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4OiAxO1xuICBnYXA6IHZhcigtLWlucHV0LXNldC1zcGFjaW5nKTtcblxuICBAaW5jbHVkZSB0dWktY2hhci1sZW5ndGgtY2xhc3NlcygpO1xuXG4gICYtLXYge1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIH1cblxuICAmLS1oIHtcbiAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgfVxuXG4gICYgPiAudHVpLWZvcm1MYWJlbCB7XG4gICAgcGFkZGluZzogMDtcbiAgfVxuXG4gICYgPiB7XG4gICAgLyogcmVwbGFjZWQgaW5wdXQgZWxlbWVudHMgaGF2ZSB0aGVpciB3aWR0aCBzZXQgdG8gMTAwJSBub3JtYWxseSBhcyovXG4gICAgLyogYHdpZHRoOiBhdXRvYCBkb2Vzbid0IGZpbGwgdGhlIGNvbnRhaW5lciBsaWtlIGl0IGRvZXMgb24gZGl2cyovXG4gICAgI3skdHVpLWlucHV0LXJlcGxhY2VkLXNlbGVjdG9yc30ge1xuICAgICAgd2lkdGg6IGF1dG87XG4gICAgfVxuICB9XG5cbiAgJi0tc3BsaXQge1xuICAgICYgPiAqIHtcbiAgICAgIGZsZXgtYmFzaXM6IDA7XG4gICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICB3aWR0aDogYXV0bztcbiAgICB9XG4gIH1cblxuICBAZWFjaCAkc2l6ZSBpbiAkdHVpLWNoYXItbGVuZ3RoLXNjYWxlIHtcbiAgICBAaW5jbHVkZSB0dWktaW5wdXQtc2V0LXN0YWNrLWJlbG93KCRzaXplLCAkc2l6ZSk7XG4gIH1cbn1cblxuLnR1aS1pbnB1dFNldENvbCB7XG4gIGZsZXgtYmFzaXM6IDA7XG59XG5cbi50dWktZm9ybUlucHV0U2l6ZWRUZXh0IHtcbiAgcGFkZGluZzogdHVpLWlucHV0LXYtcGFkZGluZy1ib3JkZXJsZXNzKCkgMDtcbiAgbGluZS1oZWlnaHQ6IHZhcigtLWZvcm0taW5wdXQtbGluZS1oZWlnaHQpO1xufVxuXG4udHVpLWZvcm1MYWJlbCB7XG4gIG1pbi13aWR0aDogMDtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwIHZhcigtLWdhcC0xKSAwIDA7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIGZvbnQtc2l6ZTogdmFyKC0tZm9udC1ib2R5LXNpemUpO1xuICBsaW5lLWhlaWdodDogdmFyKC0tZm9udC1ib2R5LWxpbmUtaGVpZ2h0KTtcblxuICBsZWdlbmQmIHtcbiAgICB3aWR0aDogYXV0bztcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogMCB2YXIoLS1nYXAtMSkgMCAwO1xuICAgIGNvbG9yOiBpbmhlcml0O1xuICAgIGJvcmRlcjogbm9uZTtcbiAgfVxuXG4gICYtLWlubGluZSB7XG4gICAgZGlzcGxheTogaW5saW5lO1xuICB9XG5cbiAgJi0taGlkZGVuIHtcbiAgICBAaW5jbHVkZSBzci1vbmx5KCk7XG4gIH1cblxuICAmLS1zdWJmaWVsZCB7XG4gICAgQGluY2x1ZGUgdHVpLWZvbnQtYm9keS1zbWFsbCgpO1xuICAgIGNvbG9yOiB2YXIoLS1jb2xvci1uZXV0cmFsLTYpO1xuICB9XG5cbiAgJl9fcmVxdWlyZWQge1xuICAgIGNvbG9yOiB2YXIoLS1jb2xvci1wcm9tcHQtYWxlcnQpO1xuICB9XG59XG5cbi50dWktbm90ZXBhZExpbmVzIHtcbiAgQGluY2x1ZGUgdHVpLWNoYXItbGVuZ3RoLWNsYXNzZXM7XG5cbiAgJl9fbGluZSB7XG4gICAgaGVpZ2h0OiB2YXIoLS1mb3JtLW5vdGVwYWQtbGluZS1oZWlnaHQpO1xuICAgIGJvcmRlci1ib3R0b206IHZhcigtLWZvcm0tbm90ZXBhZC1saW5lLWJvcmRlcik7XG4gIH1cbn1cblxuOnJvb3Qge1xuICAvKiBTaXplIG9mIHJhZGlvIGNpcmNsZSovXG4gIC0tZm9ybS1yYWRpby1zaXplOiB2YXIoLS1mb250LXNpemUtMTYpO1xuICAvKiBTaXplIG9mIHJhZGlvIGlubmVyIGRvdCovXG4gIC0tZm9ybS1yYWRpby1kb3Qtc2l6ZTogY2FsYyh2YXIoLS1mb3JtLXJhZGlvLXNpemUpIC8gMik7XG4gIC8qIE9mZnNldCB0byBjZW50ZXIgZG90Ki9cbiAgLS1yYWRpby1kb3Qtb2Zmc2V0OiBjYWxjKHZhcigtLWZvcm0tcmFkaW8tc2l6ZSkgLyA0KTtcbn1cblxuLnR1aS1yYWRpbyB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG5cbiAgJl9faW5wdXQge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBvcGFjaXR5OiAwO1xuICB9XG5cbiAgJl9fbGFiZWwge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZy1sZWZ0OiB2YXIoLS1yYWRpby1sYWJlbC1vZmZzZXQpO1xuICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgZm9udC1zaXplOiB2YXIoLS1mb3JtLWlucHV0LWZvbnQtc2l6ZSk7XG4gICAgbGluZS1oZWlnaHQ6IHZhcigtLWZvcm0taW5wdXQtbGluZS1oZWlnaHQpO1xuXG4gICAgJjo6YmVmb3JlIHtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHRvcDogY2FsYyg1MCUgLSB2YXIoLS1mb3JtLXJhZGlvLXNpemUpIC8gMik7XG4gICAgICBsZWZ0OiAwO1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICB3aWR0aDogdmFyKC0tZm9ybS1yYWRpby1zaXplKTtcbiAgICAgIGhlaWdodDogdmFyKC0tZm9ybS1yYWRpby1zaXplKTtcbiAgICAgIGJhY2tncm91bmQ6IHZhcigtLWZvcm0tcmFkaW8tYmctY29sb3IpO1xuICAgICAgYm9yZGVyOiB2YXIoLS1mb3JtLWlucHV0LWJvcmRlci1zaXplKSBzb2xpZDtcbiAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tZm9ybS1yYWRpby1ib3JkZXItY29sb3IpO1xuICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgICAgdHJhbnNpdGlvbjogYm9yZGVyIHZhcigtLXRyYW5zaXRpb24tZm9ybS1mdW5jdGlvbilcbiAgICAgICAgICB2YXIoLS10cmFuc2l0aW9uLWZvcm0tZHVyYXRpb24pLFxuICAgICAgICBib3gtc2hhZG93IHZhcigtLXRyYW5zaXRpb24tZm9ybS1mdW5jdGlvbilcbiAgICAgICAgICB2YXIoLS10cmFuc2l0aW9uLWZvcm0tZHVyYXRpb24pO1xuICAgICAgY29udGVudDogJyc7XG4gICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcblxuICAgICAgLnR1aS1jb250ZXh0SW52YWxpZCAmIHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1mb3JtLWlucHV0LWJvcmRlci1jb2xvci1pbnZhbGlkKTtcbiAgICAgICAgYm94LXNoYWRvdzogdmFyKC0tc2hhZG93LW5vbmUpLCB2YXIoLS1mb3JtLWlucHV0LXNoYWRvdy1pbnZhbGlkKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAmX19pbnB1dDpkaXNhYmxlZCB+ICZfX2xhYmVsIHtcbiAgICBjb2xvcjogdmFyKC0tZm9ybS1pbnB1dC10ZXh0LWNvbG9yLWRpc2FibGVkKTtcbiAgfVxuXG4gICZfX2lucHV0OmhvdmVyIH4gJl9fbGFiZWw6OmJlZm9yZSB7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tZm9ybS1yYWRpby1iZy1jb2xvci1ob3Zlcik7XG4gIH1cblxuICAmX19pbnB1dDpmb2N1cy12aXNpYmxlIH4gJl9fbGFiZWw6OmJlZm9yZSB7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tZm9ybS1yYWRpby1iZy1jb2xvci1mb2N1cyk7XG4gICAgQGluY2x1ZGUgdHVpLWZvY3VzKCk7XG5cbiAgICAudHVpLWNvbnRleHRJbnZhbGlkICYge1xuICAgICAgb3V0bGluZS1jb2xvcjogdmFyKC0tZm9ybS1pbnB1dC1ib3JkZXItY29sb3ItaW52YWxpZCk7XG4gICAgfVxuICB9XG5cbiAgJl9faW5wdXQ6aG92ZXIgfiAmX19sYWJlbDo6YmVmb3JlLFxuICAmX19pbnB1dDpmb2N1cy12aXNpYmxlIH4gJl9fbGFiZWw6OmJlZm9yZSB7XG4gICAgYm9yZGVyOiB2YXIoLS1mb3JtLWlucHV0LWJvcmRlci1zaXplKSBzb2xpZDtcbiAgICBib3JkZXItY29sb3I6IHZhcigtLWZvcm0tcmFkaW8tYm9yZGVyLWNvbG9yLWZvY3VzKTtcbiAgICBib3gtc2hhZG93OiB2YXIoLS1mb3JtLWlucHV0LXNoYWRvdy1mb2N1cyk7XG5cbiAgICAudHVpLWNvbnRleHRJbnZhbGlkICYge1xuICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1mb3JtLWlucHV0LWJvcmRlci1jb2xvci1pbnZhbGlkKTtcbiAgICAgIGJveC1zaGFkb3c6IHZhcigtLXNoYWRvdy1ub25lKSwgdmFyKC0tZm9ybS1pbnB1dC1zaGFkb3ctaW52YWxpZC1mb2N1cyk7XG4gICAgfVxuICB9XG5cbiAgJl9faW5wdXQ6YWN0aXZlOmZvY3VzIH4gJl9fbGFiZWw6OmJlZm9yZSxcbiAgJl9faW5wdXQ6YWN0aXZlOmhvdmVyIH4gJl9fbGFiZWw6OmJlZm9yZSxcbiAgJl9faW5wdXQ6YWN0aXZlIH4gJl9fbGFiZWw6OmJlZm9yZSB7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tZm9ybS1yYWRpby1iZy1jb2xvci1hY3RpdmUpO1xuICAgIGJvcmRlcjogdmFyKC0tZm9ybS1pbnB1dC1ib3JkZXItc2l6ZSkgc29saWQ7XG4gICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1mb3JtLXJhZGlvLWJvcmRlci1jb2xvci1hY3RpdmUpO1xuICAgIGJveC1zaGFkb3c6IHZhcigtLWZvcm0taW5wdXQtc2hhZG93LWZvY3VzKTtcblxuICAgIC50dWktY29udGV4dEludmFsaWQgJiB7XG4gICAgICBib3JkZXItY29sb3I6IHZhcigtLWZvcm0taW5wdXQtYm9yZGVyLWNvbG9yLWludmFsaWQpO1xuICAgICAgYm94LXNoYWRvdzogdmFyKC0tc2hhZG93LW5vbmUpLCB2YXIoLS1mb3JtLWlucHV0LXNoYWRvdy1pbnZhbGlkLWZvY3VzKTtcbiAgICB9XG4gIH1cblxuICAmX19pbnB1dDpkaXNhYmxlZDphY3RpdmUgfiAmX19sYWJlbDo6YmVmb3JlLFxuICAmX19pbnB1dDpkaXNhYmxlZCB+ICZfX2xhYmVsOjpiZWZvcmUge1xuICAgIGJhY2tncm91bmQ6IHZhcigtLWZvcm0tcmFkaW8tYmctY29sb3ItZGlzYWJsZWQpO1xuICAgIGJvcmRlcjogdmFyKC0tZm9ybS1pbnB1dC1ib3JkZXItc2l6ZSkgc29saWQ7XG4gICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1mb3JtLXJhZGlvLWJvcmRlci1jb2xvci1kaXNhYmxlZCk7XG4gICAgYm94LXNoYWRvdzogbm9uZTtcbiAgfVxuXG4gICZfX2lucHV0IH4gJl9fbGFiZWw6OmFmdGVyIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiBjYWxjKDUwJSAtIHZhcigtLWZvcm0tcmFkaW8tZG90LXNpemUpIC8gMik7XG4gICAgbGVmdDogdmFyKC0tcmFkaW8tZG90LW9mZnNldCk7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IHZhcigtLWZvcm0tcmFkaW8tZG90LXNpemUpO1xuICAgIGhlaWdodDogdmFyKC0tZm9ybS1yYWRpby1kb3Qtc2l6ZSk7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tZm9ybS1yYWRpby1kb3QtY29sb3IpO1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHRyYW5zaXRpb246IG9wYWNpdHkgdmFyKC0tdHJhbnNpdGlvbi1mb3JtLWZ1bmN0aW9uKVxuICAgICAgdmFyKC0tdHJhbnNpdGlvbi1mb3JtLWR1cmF0aW9uKTtcbiAgICBjb250ZW50OiAnJztcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgfVxuXG4gICZfX2lucHV0OmRpc2FibGVkIH4gJl9fbGFiZWw6OmFmdGVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1mb3JtLWlucHV0LXRleHQtY29sb3ItZGlzYWJsZWQpO1xuICB9XG5cbiAgJl9faW5wdXQ6Y2hlY2tlZCB+ICZfX2xhYmVsOjphZnRlciB7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxufVxuXG5AbWVkaWEgcHJpbnQge1xuICAudHVpLXJhZGlvIHtcbiAgICAmX19pbnB1dCB+ICZfX2xhYmVsOjphZnRlciB7XG4gICAgICAtd2Via2l0LXByaW50LWNvbG9yLWFkanVzdDogZXhhY3Q7XG4gICAgICBjb2xvci1hZGp1c3Q6IGV4YWN0O1xuICAgIH1cbiAgfVxuXG4gIC8qIElFMTEgJiBFZGdlIHN1cHBvcnQqL1xuICAuaWUsXG4gIC5tc2VkZ2Uge1xuICAgIC50dWktcmFkaW8ge1xuICAgICAgJl9faW5wdXQgfiAudHVpLXJhZGlvX19sYWJlbDo6YWZ0ZXIge1xuICAgICAgICBib3JkZXI6IDRweCBzb2xpZCB2YXIoLS1mb3JtLXJhZGlvLWRvdC1jb2xvcik7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi50dWktcmFkaW9EYXRlUmFuZ2VJbnB1dCB7XG4gIGRpc3BsYXk6IGZsZXg7XG5cbiAgJiA+ICogKyAqIHtcbiAgICBtYXJnaW4tbGVmdDogdmFyKC0tZ2FwLTIpO1xuICB9XG5cbiAgJl9fbnVtYmVyIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIHdpZHRoOiA2cmVtO1xuICB9XG5cbiAgJl9fdHlwZSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICB3aWR0aDogMTJyZW07XG4gIH1cbn1cblxuLnR1aS1yYWRpb0dyb3VwIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgZ2FwOiB2YXIoLS1nYXAtMikgdmFyKC0tZ2FwLTQpO1xuICBwYWRkaW5nOiB0dWktaW5wdXQtdi1wYWRkaW5nLWJvcmRlcmxlc3MoKSAwO1xuXG4gICYtLWlucHV0U2l6ZWRPcHRpb25zIHtcbiAgICAmID4gKiB7XG4gICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgbWluLWhlaWdodDogdmFyKC0tZm9ybS1pbnB1dC1oZWlnaHQpO1xuICAgIH1cbiAgfVxuXG4gICYtLW5vUGFkZGluZ1RvcCB7XG4gICAgcGFkZGluZy10b3A6IDA7XG4gIH1cbn1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogJHR1aS1zY3JlZW4tc20pIHtcbiAgLnR1aS1yYWRpb0dyb3VwLS1ob3Jpem9udGFsIHtcbiAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgfVxufVxuXG4udHVpLXJhZGlvTnVtYmVySW5wdXQge1xuICBkaXNwbGF5OiBmbGV4O1xuICAvKiBVc2Ugc2FtZSBpbmRlbnRhdGlvbiBhcyByYWRpbyBmb3IgbmljZXIgd3JhcHBpbmcqL1xuICBtYXJnaW4tbGVmdDogdmFyKC0tcmFkaW8tbGFiZWwtb2Zmc2V0KTtcblxuICAmX19udW1iZXIge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgd2lkdGg6IDZyZW07XG4gIH1cbn1cblxuLnR1aS1yYWRpb1dpdGhJbnB1dCB7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBmbGV4LXdyYXA6IHdyYXA7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cbiAgJiA+ICogKyAqIHtcbiAgICAvKiBVc2Ugc2FtZSBpbmRlbnRhdGlvbiBhcyByYWRpbyBmb3IgbmljZXIgd3JhcHBpbmcqL1xuICAgIG1hcmdpbi1sZWZ0OiB2YXIoLS1yYWRpby1sYWJlbC1vZmZzZXQpO1xuICB9XG5cbiAgJl9fcmFkaW8ge1xuICAgIG1hcmdpbjogdmFyKC0tZ2FwLTIpIDA7XG4gIH1cbn1cblxuLnR1aS1yYW5nZSB7XG4gIGZsZXg6IGF1dG87XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cbiAgJl9fbGFiZWxzIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgbWFyZ2luLWJvdHRvbTogdmFyKC0tZ2FwLTEpO1xuICB9XG5cbiAgJl9fbG93TGFiZWwsXG4gICZfX2hpZ2hMYWJlbCB7XG4gICAgQGluY2x1ZGUgdHVpLWZvbnQtYm9keS1zbWFsbCgpO1xuICAgIGZsZXgtYmFzaXM6IDQwJTtcbiAgICBjb2xvcjogdmFyKC0tY29sb3ItbmV1dHJhbC02KTtcbiAgfVxuXG4gICZfX2xvd0xhYmVsIHtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICB9XG5cbiAgJl9faGlnaExhYmVsIHtcbiAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgfVxuXG4gICZfX2lucHV0IHtcbiAgICBoZWlnaHQ6IHZhcigtLWZvcm0tcmFuZ2UtaGVpZ2h0KTtcbiAgICBwYWRkaW5nOiAwO1xuICAgIG91dGxpbmU6IG5vbmU7XG4gICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuXG4gICAgJjpkaXNhYmxlZCB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICB9XG5cbiAgICAmOmZvY3VzLXZpc2libGUge1xuICAgICAgQGluY2x1ZGUgdHVpLWZvY3VzKCk7XG4gICAgfVxuICAgICY6Oi1tb3otZm9jdXMtb3V0ZXIge1xuICAgICAgYm9yZGVyOiAwO1xuICAgIH1cblxuICAgIC8qIFRyYWNrIHN0eWxlcyAqL1xuICAgICY6Oi13ZWJraXQtc2xpZGVyLXJ1bm5hYmxlLXRyYWNrIHtcbiAgICAgIEBpbmNsdWRlIHR1aS1yYW5nZS10cmFjaygpO1xuICAgIH1cbiAgICAmOmZvY3VzOjotd2Via2l0LXNsaWRlci1ydW5uYWJsZS10cmFjayB7XG4gICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci1uZXV0cmFsLTQpO1xuICAgICAgLXdlYmtpdC1wcmludC1jb2xvci1hZGp1c3Q6IGV4YWN0O1xuICAgICAgY29sb3ItYWRqdXN0OiBleGFjdDtcbiAgICB9XG4gICAgJjo6LW1vei1yYW5nZS10cmFjayB7XG4gICAgICBAaW5jbHVkZSB0dWktcmFuZ2UtdHJhY2soKTtcbiAgICB9XG4gICAgJjo6LW1zLXRyYWNrIHtcbiAgICAgIEBpbmNsdWRlIHR1aS1yYW5nZS10cmFjaygpO1xuICAgICAgY29sb3I6IHRyYW5zcGFyZW50OyAvKiBSZW1vdmUgZGVmYXVsdCB0aWNrIG1hcmtzICovXG4gICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsgLyogUmVwbGFjZSBiZyBjb2xvdXIgZnJvbSB0aGUgdHJhY2sgd2l0aCBtcy1maWxsLWxvd2VyIGFuZCBtcy1maWxsLXVwcGVyICovXG4gICAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50OyAvKiBUaHVtYiBjYW4gbm90IG92ZXJsYXkgdHJhY2sgc28gd2UgYWRkIGludmlzaWJsZSBib3JkZXIgKi9cbiAgICB9XG4gICAgJjo6LW1zLWZpbGwtdXBwZXIsXG4gICAgJjo6LW1zLWZpbGwtbG93ZXIge1xuICAgICAgYmFja2dyb3VuZDogdmFyKC0tY29sb3ItbmV1dHJhbC00KTtcbiAgICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLWJvcmRlci1yYWRpdXMtc21hbGwpO1xuICAgIH1cbiAgICAmOmZvY3VzOjotbXMtZmlsbC11cHBlcixcbiAgICAmOmZvY3VzOjotbXMtZmlsbC1sb3dlciB7XG4gICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci1uZXV0cmFsLTQpO1xuICAgIH1cblxuICAgIC8qIFRodW1iIHN0eWxlcyAqL1xuICAgICY6Oi13ZWJraXQtc2xpZGVyLXRodW1iIHtcbiAgICAgIEBpbmNsdWRlIHR1aS1yYW5nZS10aHVtYigpO1xuICAgICAgbWFyZ2luLXRvcDogdmFyKC0tZm9ybS1yYW5nZS10aHVtYi1tYXJnaW4tdG9wKTtcbiAgICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbiAgICB9XG4gICAgJjo6LW1vei1yYW5nZS10aHVtYiB7XG4gICAgICBAaW5jbHVkZSB0dWktcmFuZ2UtdGh1bWIoKTtcbiAgICB9XG4gICAgJjo6LW1zLXRodW1iIHtcbiAgICAgIEBpbmNsdWRlIHR1aS1yYW5nZS10aHVtYigpO1xuICAgIH1cblxuICAgICYudHVpLXJhbmdlX19pbnB1dC0tc2VsZWN0ZWQge1xuICAgICAgJjo6LXdlYmtpdC1zbGlkZXItdGh1bWIge1xuICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci1zdGF0ZSk7XG4gICAgICB9XG4gICAgICAmOjotbW96LXJhbmdlLXRodW1iIHtcbiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tY29sb3Itc3RhdGUpO1xuICAgICAgfVxuICAgICAgJjo6LW1zLXRodW1iIHtcbiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tY29sb3Itc3RhdGUpO1xuICAgICAgfVxuICAgIH1cblxuICAgICYudHVpLXJhbmdlX19pbnB1dC0tbm9UaHVtYiB7XG4gICAgICAmOjotd2Via2l0LXNsaWRlci10aHVtYiB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICB9XG4gICAgICAmOjotbW96LXJhbmdlLXRodW1iIHtcbiAgICAgICAgLyogRGlzcGxheSBub25lIGRvZXMgbm90IHdvcmsuKi9cbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgIH1cbiAgICAgICY6Oi1tcy10aHVtYiB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi50dWktcmVwZWF0ZXIge1xuICBkaXNwbGF5OiBibG9jaztcbiAgZmxleC1ncm93OiAxO1xuICB3aWR0aDogMTAwJTtcbiAgbWluLXdpZHRoOiAwO1xuXG4gICYgPiAqICsgKiB7XG4gICAgbWFyZ2luLXRvcDogdmFyKC0tZ2FwLTMpO1xuICB9XG5cbiAgJl9fcm93LFxuICAmX19oZWFkZXJSb3cge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gIH1cblxuICAmX19oZWFkZXJSb3cgKyAmX19yb3cge1xuICAgIG1hcmdpbi10b3A6IHZhcigtLWdhcC0yKTtcbiAgfVxuXG4gICZfX3JvdyArICZfX2FmdGVyUm93IHtcbiAgICBtYXJnaW4tdG9wOiB2YXIoLS1nYXAtNCk7XG4gIH1cblxuICAmX19hZnRlclJvdyArICZfX3JvdyB7XG4gICAgbWFyZ2luLXRvcDogdmFyKC0tZ2FwLTgpO1xuICB9XG5cbiAgJl9fYWZ0ZXJSb3cgKyAmX19oZWFkZXJSb3cge1xuICAgIG1hcmdpbi10b3A6IHZhcigtLWdhcC00KTtcbiAgfVxuXG4gICYtLW5vU3BhY2luZyA+ICoge1xuICAgIG1hcmdpbjogMDtcbiAgfVxuXG4gICZfX2hlYWRlclJvdyAmX19kZWxldGUge1xuICAgIGhlaWdodDogMXB4O1xuICAgIG1pbi1oZWlnaHQ6IDFweDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICB9XG59XG5cbi50dWktc2VhcmNoQm94IHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBmbGV4O1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1mb3JtLWlucHV0LWJvcmRlci1yYWRpdXMpO1xuICBpc29sYXRpb246IGlzb2xhdGU7IC8qIGNvbnRhaW4geiBpbmRleGVzKi9cblxuICAmX19pbnB1dFdyYXBwZXIge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZ3JvdzogMTtcbiAgICBAaW5jbHVkZSB0dWktY2hhci1sZW5ndGgtY2xhc3NlcygpO1xuICB9XG5cbiAgJl9fc2VhcmNoW3R5cGU9J3NlYXJjaCddIHtcbiAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IHZhcigtLWZvcm0taW5wdXQtYm9yZGVyLXJhZGl1cyk7XG4gICAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogdmFyKC0tZm9ybS1pbnB1dC1ib3JkZXItcmFkaXVzKTtcblxuICAgICY6Zm9jdXMge1xuICAgICAgei1pbmRleDogMTtcbiAgICB9XG4gICAgLyogZGlzYWJsZSB0aGUgZGVmYXVsdCBjbGVhciAoeCkgYWN0aW9uIGluIElFKi9cbiAgICAmOjotbXMtY2xlYXIge1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG4gIH1cblxuICAudHVpLWZvcm1MYWJlbCB7XG4gICAgbWFyZ2luLXJpZ2h0OiB2YXIoLS1nYXAtMik7XG4gIH1cblxuICAmX19jbGVhckNvbnRhaW5lciB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHJpZ2h0OiAwO1xuICAgIGhlaWdodDogMTAwJTtcbiAgfVxuXG4gICZfX3JlbW92ZUljb24ge1xuICAgIGNvbG9yOiB2YXIoLS1maWx0ZXItc2VhcmNoLWNsZWFyLWljb24tY29sb3IpO1xuICB9XG5cbiAgLyogU28gdGhhdCB0aGUgc2VhcmNoIGJ1dHRvbiBtYXRjaGVzIHRoZSBmb3JtYXQgb2YgdGhlIGlucHV0IHRoYXQgaXMgbmV4dCB0byBpdCovXG4gICZfX2J1dHRvbiB7XG4gICAgbWFyZ2luLWxlZnQ6IGNhbGModmFyKC0tZm9ybS1pbnB1dC1ib3JkZXItc2l6ZSkgKiAtMSk7XG4gICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogdmFyKC0tZm9ybS1pbnB1dC1ib3JkZXItcmFkaXVzKTtcbiAgICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogdmFyKC0tZm9ybS1pbnB1dC1ib3JkZXItcmFkaXVzKTtcblxuICAgICY6Zm9jdXMge1xuICAgICAgei1pbmRleDogMTtcbiAgICB9XG4gIH1cbn1cblxuOnJvb3Qge1xuICAtLXNlbGVjdC1pY29uLXNpemU6IHZhcigtLWdhcC0xKTtcbn1cblxuLnR1aS1zZWxlY3Qge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZ3JvdzogMTtcbiAgd2lkdGg6IDEwMCU7XG4gIG1pbi13aWR0aDogMDtcbiAgaGVpZ2h0OiB2YXIoLS1mb3JtLWlucHV0LWhlaWdodCk7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLWZvcm0taW5wdXQtYm9yZGVyLXJhZGl1cyk7XG5cbiAgQGluY2x1ZGUgdHVpLWNoYXItbGVuZ3RoLWNsYXNzZXMoKTtcblxuICAmOjphZnRlciB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogY2FsYygodmFyKC0tZm9ybS1pbnB1dC1oZWlnaHQpIC0gdmFyKC0tc2VsZWN0LWljb24tc2l6ZSkpIC8gMik7XG4gICAgcmlnaHQ6IGNhbGMoKHZhcigtLWZvcm0taW5wdXQtaGVpZ2h0KSAtIHZhcigtLXNlbGVjdC1pY29uLXNpemUpICogMikgLyAyKTtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMDtcbiAgICBoZWlnaHQ6IDA7XG4gICAgYm9yZGVyOiB2YXIoLS1zZWxlY3QtaWNvbi1zaXplKSBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICBib3JkZXItdG9wLWNvbG9yOiB2YXIoLS1mb3JtLWlucHV0LXRleHQtY29sb3IpO1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICB9XG5cbiAgJi0tZGlzYWJsZWQ6OmFmdGVyIHtcbiAgICBib3JkZXItdG9wLWNvbG9yOiB2YXIoLS1mb3JtLWlucHV0LXRleHQtY29sb3ItZGlzYWJsZWQpO1xuICB9XG5cbiAgJi0tbXVsdGlwbGU6OmFmdGVyIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG5cbiAgJi0tbGFyZ2Uge1xuICAgIGhlaWdodDogdmFyKC0tZm9ybS1pbnB1dC1oZWlnaHQtbGFyZ2UpO1xuXG4gICAgJjo6YWZ0ZXIge1xuICAgICAgdG9wOiBjYWxjKCh2YXIoLS1mb3JtLWlucHV0LWhlaWdodC1sYXJnZSkgLSB2YXIoLS1zZWxlY3QtaWNvbi1zaXplKSkgLyAyKTtcbiAgICAgIC8qIHByZXR0aWVyLWlnbm9yZSovXG4gICAgICByaWdodDogY2FsYygodmFyKC0tZm9ybS1pbnB1dC1oZWlnaHQtbGFyZ2UpIC0gdmFyKC0tc2VsZWN0LWljb24tc2l6ZSkgKiAyKSAvIDIpO1xuICAgIH1cbiAgfVxuXG4gICZfX2lucHV0IHtcbiAgICBmbGV4LWdyb3c6IDE7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtaW4td2lkdGg6IDA7XG4gICAgcGFkZGluZzogMCB2YXIoLS1nYXAtNykgMCB2YXIoLS1nYXAtMyk7XG4gICAgY29sb3I6IHZhcigtLWZvcm0taW5wdXQtdGV4dC1jb2xvcik7XG4gICAgZm9udC1zaXplOiB2YXIoLS1mb3JtLWlucHV0LWZvbnQtc2l6ZSk7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tZm9ybS1pbnB1dC1iZy1jb2xvcik7XG4gICAgYm9yZGVyOiB2YXIoLS1mb3JtLWlucHV0LWJvcmRlci1zaXplKSBzb2xpZDtcbiAgICBib3JkZXItY29sb3I6IHZhcigtLWZvcm0taW5wdXQtYm9yZGVyLWNvbG9yKTtcbiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1mb3JtLWlucHV0LWJvcmRlci1yYWRpdXMpO1xuICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbiAgICAgICAgICAgIGFwcGVhcmFuY2U6IG5vbmU7XG5cbiAgICAmW211bHRpcGxlXSB7XG4gICAgICBoZWlnaHQ6IGF1dG87XG4gICAgfVxuXG4gICAgJltkaXNhYmxlZF0ge1xuICAgICAgY29sb3I6IHZhcigtLWZvcm0taW5wdXQtdGV4dC1jb2xvci1kaXNhYmxlZCk7XG4gICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1mb3JtLWlucHV0LWJnLWNvbG9yLWRpc2FibGVkKTtcbiAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tZm9ybS1pbnB1dC1ib3JkZXItY29sb3ItZGlzYWJsZWQpO1xuICAgIH1cblxuICAgICY6Zm9jdXMge1xuICAgICAgYmFja2dyb3VuZDogdmFyKC0tZm9ybS1pbnB1dC1iZy1jb2xvci1mb2N1cyk7XG4gICAgICBib3JkZXI6IHZhcigtLWZvcm0taW5wdXQtYm9yZGVyLXNpemUpIHNvbGlkO1xuICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1mb3JtLWlucHV0LWJvcmRlci1jb2xvci1mb2N1cyk7XG4gICAgICBib3gtc2hhZG93OiB2YXIoLS1mb3JtLWlucHV0LXNoYWRvdy1mb2N1cyk7XG4gICAgICBAaW5jbHVkZSB0dWktZm9jdXMoKTtcblxuICAgICAgLnR1aS1jb250ZXh0SW52YWxpZCAmIHtcbiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tZm9ybS1pbnB1dC1iZy1jb2xvci1pbnZhbGlkLWZvY3VzKTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1mb3JtLWlucHV0LWJvcmRlci1jb2xvci1pbnZhbGlkKTtcbiAgICAgICAgb3V0bGluZS1jb2xvcjogdmFyKC0tZm9ybS1pbnB1dC1ib3JkZXItY29sb3ItaW52YWxpZCk7XG4gICAgICAgIGJveC1zaGFkb3c6IHZhcigtLWZvcm0taW5wdXQtc2hhZG93LWludmFsaWQtZm9jdXMpO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8qIERyb3Agc2VsZWN0IG91dGxpbmUqL1xuICAgICY6LW1vei1mb2N1c3Jpbmcge1xuICAgICAgY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgdGV4dC1zaGFkb3c6IDAgMCAwICMwMDA7XG4gICAgfVxuXG4gICAgLyogYXBwZWFyYW5jZTogbm9uZTsgZXF1aXZhbGVudCBmb3IgSUUqL1xuICAgICY6Oi1tcy1leHBhbmQge1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG5cbiAgICAvKiBwcmV2ZW50IHdlaXJkIHN0eWxpbmcgYWZ0ZXIgc2VsZWN0aW5nIHZhbHVlKi9cbiAgICAmOjotbXMtdmFsdWUge1xuICAgICAgY29sb3I6IGluaGVyaXQ7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICB9XG5cbiAgICAudHVpLWNvbnRleHRJbnZhbGlkICYge1xuICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1mb3JtLWlucHV0LWJvcmRlci1jb2xvci1pbnZhbGlkKTtcbiAgICAgIGJveC1zaGFkb3c6IHZhcigtLWZvcm0taW5wdXQtc2hhZG93LWludmFsaWQpO1xuICAgIH1cbiAgfVxufVxuXG4udHVpLWZvcm1UZXh0YXJlYSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBmbGV4LWdyb3c6IDE7XG4gIHdpZHRoOiAxMDAlO1xuICBtaW4td2lkdGg6IDA7XG4gIG1heC13aWR0aDogMTAwJTtcbiAgbWF4LWhlaWdodDogMTAwJTtcbiAgcGFkZGluZzogdHVpLWlucHV0LXYtcGFkZGluZygpIHZhcigtLWdhcC0zKTtcbiAgb3ZlcmZsb3c6IGF1dG87XG4gIGNvbG9yOiB2YXIoLS1mb3JtLWlucHV0LXRleHQtY29sb3IpO1xuICBmb250LXNpemU6IHZhcigtLWZvcm0taW5wdXQtZm9udC1zaXplKTtcbiAgZm9udC1mYW1pbHk6IGluaGVyaXQ7XG4gIGxpbmUtaGVpZ2h0OiB2YXIoLS1mb3JtLWlucHV0LWxpbmUtaGVpZ2h0KTtcbiAgYm9yZGVyOiB2YXIoLS1mb3JtLWlucHV0LWJvcmRlci1zaXplKSBzb2xpZCB2YXIoLS1mb3JtLWlucHV0LWJvcmRlci1jb2xvcik7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLWZvcm0taW5wdXQtYm9yZGVyLXJhZGl1cyk7XG4gIHJlc2l6ZTogbm9uZTtcblxuICBAaW5jbHVkZSB0dWktY2hhci1sZW5ndGgtY2xhc3NlcygpO1xuXG4gICY6OnBsYWNlaG9sZGVyIHtcbiAgICBjb2xvcjogdmFyKC0tZm9ybS1pbnB1dC10ZXh0LXBsYWNlaG9sZGVyLWNvbG9yKTtcbiAgfVxuXG4gIC50dWktY29udGV4dEludmFsaWQgJiB7XG4gICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1mb3JtLWlucHV0LWJvcmRlci1jb2xvci1pbnZhbGlkKTtcbiAgICBib3gtc2hhZG93OiB2YXIoLS1mb3JtLWlucHV0LXNoYWRvdy1pbnZhbGlkKTtcbiAgfVxuXG4gICY6Zm9jdXMge1xuICAgIGJhY2tncm91bmQ6IHZhcigtLWZvcm0taW5wdXQtYmctY29sb3ItZm9jdXMpO1xuICAgIGJvcmRlcjogdmFyKC0tZm9ybS1pbnB1dC1ib3JkZXItc2l6ZSkgc29saWRcbiAgICAgIHZhcigtLWZvcm0taW5wdXQtYm9yZGVyLWNvbG9yLWZvY3VzKTtcbiAgICBib3gtc2hhZG93OiB2YXIoLS1mb3JtLWlucHV0LXNoYWRvdy1mb2N1cyk7XG4gICAgQGluY2x1ZGUgdHVpLWZvY3VzKCk7XG5cbiAgICAudHVpLWNvbnRleHRJbnZhbGlkICYge1xuICAgICAgYmFja2dyb3VuZDogdmFyKC0tZm9ybS1pbnB1dC1iZy1jb2xvci1pbnZhbGlkLWZvY3VzKTtcbiAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tZm9ybS1pbnB1dC1ib3JkZXItY29sb3ItaW52YWxpZCk7XG4gICAgICBvdXRsaW5lLWNvbG9yOiB2YXIoLS1mb3JtLWlucHV0LWJvcmRlci1jb2xvci1pbnZhbGlkKTtcbiAgICAgIGJveC1zaGFkb3c6IHZhcigtLWZvcm0taW5wdXQtc2hhZG93LWludmFsaWQtZm9jdXMpO1xuICAgIH1cbiAgfVxuXG4gICZbZGlzYWJsZWRdIHtcbiAgICBjb2xvcjogdmFyKC0tZm9ybS1pbnB1dC10ZXh0LWNvbG9yLWRpc2FibGVkKTtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1mb3JtLWlucHV0LWJnLWNvbG9yLWRpc2FibGVkKTtcbiAgICBib3JkZXItY29sb3I6IHZhcigtLWZvcm0taW5wdXQtYm9yZGVyLWNvbG9yLWRpc2FibGVkKTtcblxuICAgICY6OnBsYWNlaG9sZGVyIHtcbiAgICAgIGNvbG9yOiB2YXIoLS1mb3JtLWlucHV0LXRleHQtY29sb3ItZGlzYWJsZWQpO1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gZ3JpZC1pdGVtLWdlbmVyYXRlLWd1dHRlcnMoJF9ib3JkZXJUeXBlOiBsZWZ0KSB7XG4gID4gLnR1aS1ncmlkLWl0ZW0ge1xuICAgIC8qIGJlY2F1c2Ugd2UgdXNlIHRyYW5zcGFyZW50IGJvcmRlcnMgZm9yIGd1dHRlcnMgYnV0IGRvbid0IHdhbnQgdGhhdCovXG4gICAgLyogY291bnRpbmcgYXMgdmlzaWJsZSBpdGVtIHdpZHRoKi9cbiAgICBib3gtc2l6aW5nOiBjb250ZW50LWJveDtcbiAgICBiYWNrZ3JvdW5kLWNsaXA6IHBhZGRpbmctYm94O1xuICAgIGJvcmRlci0jeyRfYm9yZGVyVHlwZX0tY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIGJvcmRlci0jeyRfYm9yZGVyVHlwZX0tc3R5bGU6IHNvbGlkO1xuICAgIC8qIGBib3JkZXItI3skX2JvcmRlclR5cGV9LXdpZHRoYCBpcyBzZXQgdXNpbmcgaW5saW5lIHN0eWxlcyB2aWEgR3JpZEl0ZW0qL1xuICB9XG59XG5cbi8qIEdyaWQgc3R5bGVzKi9cbi50dWktZ3JpZCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZ3JvdzogMTsgLyogaW4gY2FzZSBuZXN0ZWQgaW5zaWRlIGEgcGFyZW50IGdyaWQgY2VsbCovXG4gIG1heC13aWR0aDogMTAwJTtcblxuICAvKiBtYWluIEdyaWQgbW9kaWZpZXJzIGFwcGxpZWQgYmFzZWQgb24gc3VwcGxpZWQgcHJvcCB2YWx1ZXMqL1xuICAmLS13cmFwcGVkIHtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG4gIH1cblxuICAvKiBjb250ZW50LWNvbnRhaW5pbmcgZWxlbWVudHMqL1xuICAmLWl0ZW0ge1xuICAgIGZsZXgtZ3JvdzogMDsgLyogYnkgZGVmYXVsdCB3ZSB3YW50IGl0ZW0gc2l6ZSB0byByZXNwZWN0IHVuaXQtYmFzZWQgY2FsY3VsYXRpb25zKi9cbiAgICBmbGV4LXNocmluazogMTsgLyogYnkgZGVmYXVsdCB3ZSB3YW50IHRvIGF1dG8tYWRqdXN0IGZvciBndXR0ZXJzKi9cbiAgICBtaW4td2lkdGg6IDA7IC8qIGFsbG93cyBmbGV4IGl0ZW1zIHRvIHNocmluayBiZWxvdyB0aGVpciBtaW5pbXVtIGNvbnRlbnQgc2l6ZSovXG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgLXdlYmtpdC1oeXBoZW5zOiBhdXRvO1xuICAgICAgICAgICAgaHlwaGVuczogYXV0bzsgLyogZGVmYXVsdCBwcmV2ZW50cyB0ZXh0IGZyb20gY2F1c2luZyBncmlkIG1pcy1hbGlnbm1lbnRzKi9cblxuICAgIC8qIEdyaWQgaXRlbSBtb2RpZmllcnMgYmFzZWQgb24gc3VwcGxpZWQgcHJvcCB2YWx1ZXMqL1xuICAgICYtLWdyb3cge1xuICAgICAgZmxleC1ncm93OiAxO1xuICAgIH1cbiAgICAmLS1uby1zaHJpbmsge1xuICAgICAgZmxleC1zaHJpbms6IDA7XG4gICAgfVxuICAgICYtLW5vLWh5cGhlbnMge1xuICAgICAgLXdlYmtpdC1oeXBoZW5zOiBub25lO1xuICAgICAgICAgICAgICBoeXBoZW5zOiBub25lO1xuICAgIH1cbiAgICAmLS1vdmVyZmxvdyB7XG4gICAgICBvdmVyZmxvdzogYXV0bztcbiAgICB9XG4gIH1cblxuICAvKiBob3Jpem9udGFsIGdyaWQqL1xuICAmLS1ob3Jpem9udGFsIHtcbiAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuXG4gICAgJi1nYXAge1xuICAgICAgQGluY2x1ZGUgZ3JpZC1pdGVtLWdlbmVyYXRlLWd1dHRlcnMobGVmdCk7XG4gICAgfVxuICB9XG5cbiAgLyogdmVydGljYWwgZ3JpZCovXG4gICYtLXZlcnRpY2FsIHtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXG4gICAgJi1nYXAge1xuICAgICAgQGluY2x1ZGUgZ3JpZC1pdGVtLWdlbmVyYXRlLWd1dHRlcnModG9wKTtcbiAgICB9XG4gIH1cblxuICAmLS13cmFwcGVkLWdhcCAudHVpLWdyaWQtaXRlbS0td3JhcHBlZCB7XG4gICAgYm9yZGVyLXRvcC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgYm9yZGVyLXRvcC1zdHlsZTogc29saWQ7XG4gIH1cblxuICAvKiBhbGwgemVybyB1bml0IEdyaWRJdGVtcyBzaG91bGQgbm90IHNob3cgYW55IGd1dHRlcnMgb3IgY29udGVudCovXG4gICYtLXZlcnRpY2FsLFxuICAmLS1ob3Jpem9udGFsIHtcbiAgICAudHVpLWdyaWQtaXRlbS0tbm8tdW5pdHMge1xuICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB9XG4gIH1cblxuICAvKiBzd2l0Y2ggdG8gc3RhY2tlZCBkaXNwbGF5IGF0IGFuIGNvbnRhaW5lci1iYXNlZCBwaXhlbCB3aWR0aCBicmVha3BvaW50Ki9cbiAgLyogdmFsdWUgKGNsYXNzIGlzIGNvbmRpdGlvbmFsbHkgYXBwbGllZCBkdXJpbmcgR3JpZCByZW5kZXIoKSkqL1xuICAmLS1zdGFja2VkIHtcbiAgICBkaXNwbGF5OiBibG9jaztcblxuICAgID4gLnR1aS1ncmlkLWl0ZW0ge1xuICAgICAgZmxleC1iYXNpczogYXV0bztcbiAgICB9XG5cbiAgICAmLWdhcCB7XG4gICAgICBAaW5jbHVkZSBncmlkLWl0ZW0tZ2VuZXJhdGUtZ3V0dGVycyh0b3ApO1xuICAgIH1cbiAgfVxuXG4gICYtLWxpc3Qge1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAwO1xuICAgIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTtcbiAgfVxufVxuXG4udHVpLWljb25Mb2FkaW5nIHtcbiAgYW5pbWF0aW9uOiB0dWktaWNvbkxvYWRpbmctc3BpbiAxcyBzdGVwcygxMiwgZW5kKSBpbmZpbml0ZTtcbn1cblxuQGtleWZyYW1lcyB0dWktaWNvbkxvYWRpbmctc3BpbiB7XG4gIDAlIHtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTtcbiAgfVxuICAxMDAlIHtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpO1xuICB9XG59XG5cbi50dWktc3ZnSWNvbiB7XG4gIC8qIHNhbWUgYXMgdGhlIGJvb3RzdHJhcCBpY29ucyBkZWZhdWx0IGNzcyovXG4gIC8qIGJldHRlciBhbGlnbm1lbnQgaW4gbW9zdCBjYXNlcyB0aGFuIHZlcnRpY2FsLWFsaWduOiBtaWRkbGUqL1xuICB2ZXJ0aWNhbC1hbGlnbjogdGV4dC1ib3R0b207XG5cbiAgJi0tc2l6ZSB7XG4gICAgJi0xMDAge1xuICAgICAgZm9udC1zaXplOiAxLjRyZW07XG4gICAgfVxuICAgICYtMjAwIHtcbiAgICAgIGZvbnQtc2l6ZTogMS42cmVtO1xuICAgIH1cbiAgICAmLTMwMCB7XG4gICAgICBmb250LXNpemU6IDJyZW07XG4gICAgfVxuICAgICYtNDAwIHtcbiAgICAgIGZvbnQtc2l6ZTogMi40cmVtO1xuICAgIH1cbiAgICAmLTUwMCB7XG4gICAgICBmb250LXNpemU6IDIuOHJlbTtcbiAgICB9XG4gICAgJi02MDAge1xuICAgICAgZm9udC1zaXplOiAzLjJyZW07XG4gICAgfVxuICAgICYtNzAwIHtcbiAgICAgIGZvbnQtc2l6ZTogMy44cmVtO1xuICAgIH1cbiAgfVxuXG4gICYtLXN0YXRlIHtcbiAgICAmLWluZm8ge1xuICAgICAgY29sb3I6IHZhcigtLWNvbG9yLXByb21wdC1pbmZvKTtcbiAgICB9XG5cbiAgICAmLWFsZXJ0IHtcbiAgICAgIGNvbG9yOiB2YXIoLS1jb2xvci1wcm9tcHQtYWxlcnQpO1xuICAgIH1cblxuICAgICYtd2FybmluZyB7XG4gICAgICBjb2xvcjogdmFyKC0tY29sb3ItcHJvbXB0LXdhcm5pbmcpO1xuICAgIH1cblxuICAgICYtc3VjY2VzcyB7XG4gICAgICBjb2xvcjogdmFyKC0tY29sb3ItcHJvbXB0LXN1Y2Nlc3MpO1xuICAgIH1cblxuICAgICYtZGltbWVkIHtcbiAgICAgIGNvbG9yOiB2YXIoLS1jb2xvci1uZXV0cmFsLTYpO1xuICAgIH1cbiAgfVxufVxuXG4uZGlyLXJ0bCAudHVpLXN2Z0ljb24tLWZsaXBSdGwge1xuICB0cmFuc2Zvcm06IHNjYWxlKC0xLCAxKTtcbn1cblxuLnR1aS1yZXNwb25zaXZlSW1hZ2Uge1xuICBkaXNwbGF5OiBibG9jaztcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IGF1dG87XG5cbiAgJi0tZ3JvdyB7XG4gICAgd2lkdGg6IDEwMCU7XG4gIH1cbn1cblxuLnR1aS1hdHRhY2htZW50Tm9kZUNvbGxlY3Rpb24ge1xuICBkaXNwbGF5OiBncmlkO1xuICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6ICN7dW5xdW90ZShcbiAgICAgICdyZXBlYXQoYXV0by1maWxsLCBtaW5tYXgobWluKDI1cmVtLCAxMDAlKSwgMWZyKSknXG4gICAgKX07XG4gIGdhcDogdmFyKC0tZ2FwLTIpO1xuICBwYWRkaW5nOiB2YXIoLS1nYXAtMSkgMDtcbiAgd2hpdGUtc3BhY2U6IG5vcm1hbDtcbn1cblxuLnR1aS1hdWRpb0Jsb2NrIHtcbiAgbWFyZ2luOiB2YXIoLS1nYXAtOCkgMDtcblxuICAmX19hY3Rpb25zV3JhcHBlciB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuICAgIG1hcmdpbi10b3A6IHZhcigtLWdhcC0yKTtcbiAgfVxuXG4gICZfX3ZpZXdUcmFuc2NyaXB0IHtcbiAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gIH1cblxuICAmX190cmFuc2NyaXB0Q29udGVudCB7XG4gICAgaGVpZ2h0OiA2MHJlbTtcbiAgICB3aGl0ZS1zcGFjZTogcHJlLWxpbmU7XG4gIH1cbn1cblxuLnR1aS1lbW9qaSB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgZm9udC1mYW1pbHk6ICdOb3RvIENvbG9yIEVtb2ppJywgJ0FwcGxlIENvbG9yIEVtb2ppJywgJ1NlZ29lIFVJIEVtb2ppJyxcbiAgICAnU2Vnb2UgVUkgU3ltYm9sJywgVGltZXMsIFN5bWJvbGEsIEFlZ3lwdHVzLCBDb2RlMjAwMCwgQ29kZTIwMDEsIENvZGUyMDAyLFxuICAgIE11c2ljYSwgc2VyaWYsIExhc3RSZXNvcnQ7XG4gIHdoaXRlLXNwYWNlOiBub3JtYWw7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgZm9udC12YXJpYW50LWVtb2ppOiBlbW9qaTtcbn1cblxuLnR1aS1oYXNodGFnIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB3aGl0ZS1zcGFjZTogbm9ybWFsO1xuXG4gICZfX3RleHQge1xuICAgIGNvbG9yOiB2YXIoLS1jb2xvci1zdGF0ZSk7XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIC8qIEhvdmVyIHN0YXRlLCBmb3Igbm93IHdlIGtlZXAgdGhlIHNhbWUgY29sb3IuKi9cbiAgICAgIGNvbG9yOiB2YXIoLS1jb2xvci1zdGF0ZSk7XG4gICAgfVxuICB9XG59XG5cbi50dWktaW1hZ2VCbG9jayB7XG4gIG1hcmdpbjogMCAwIHZhcigtLXBhcmFncmFwaC1nYXApIDA7XG5cbiAgQGVhY2ggJG5hbWUsICRzaXplIGluICR0dWktbWVkaWEtbmFtZWQtc2l6ZXMge1xuICAgICYtLWRpc3BsYXlTaXplLSN7JG5hbWV9IHtcbiAgICAgIC8qIElFMTEgZG9lcyBub3Qgc3VwcG9ydCB0aGUgcmVzcG9uc2l2ZSBzaXplcywgc28gc3BlY2lmeSBhIGZpeGVkIGZhbGxiYWNrKi9cbiAgICAgIHdpZHRoOiBtYXAtZ2V0KCRzaXplLCAnZml4ZWQnKTtcbiAgICAgIHdpZHRoOiBtYXAtZ2V0KCRzaXplLCAncmVzcG9uc2l2ZScpO1xuICAgIH1cbiAgfVxufVxuXG5maWd1cmUgPiAudHVpLWltYWdlQmxvY2sge1xuICBtYXJnaW4tYm90dG9tOiB2YXIoLS1nYXAtMSk7XG59XG5cbi50dWktbGlua0Jsb2NrIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBmbGV4O1xuICBtYXgtd2lkdGg6IDI4LjZyZW07XG4gIGhlaWdodDogY2FsYyg3LjZyZW0gKyAycHgpO1xuICBmb250LXNpemU6IHZhcigtLWZvbnQtc2l6ZS0xMyk7XG4gIGxpbmUtaGVpZ2h0OiAxLjE1O1xuICB3aGl0ZS1zcGFjZTogbm9ybWFsO1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jYXJkLWJvcmRlci1jb2xvcik7XG4gIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgdHJhbnNpdGlvbjogYm94LXNoYWRvdyB2YXIoLS10cmFuc2l0aW9uLWZvcm0tZnVuY3Rpb24pXG4gICAgdmFyKC0tdHJhbnNpdGlvbi1mb3JtLWR1cmF0aW9uKTtcblxuICAmOmhvdmVyIHtcbiAgICBib3gtc2hhZG93OiB2YXIoLS1zaGFkb3ctMik7XG4gIH1cblxuICAmX19pbWFnZSB7XG4gICAgZmxleC1zaHJpbms6IDA7XG4gICAgb3JkZXI6IDI7XG4gICAgd2lkdGg6IDZyZW07XG4gICAgaGVpZ2h0OiA2cmVtO1xuICAgIG1hcmdpbjogdmFyKC0tZ2FwLTIpO1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcbiAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICAgIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAzcHg7XG4gICAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDNweDtcblxuICAgID4gaW1nIHtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgIH1cbiAgfVxuXG4gICZfX3N1bW1hcnkge1xuICAgIGZsZXgtZ3JvdzogMTtcbiAgICBvcmRlcjogMTtcbiAgICBwYWRkaW5nOiB2YXIoLS1nYXAtMik7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgfVxuXG4gICZfX3NpdGUge1xuICAgIG1hcmdpbi1ib3R0b206IDAuM3JlbTtcbiAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICBmb250LXNpemU6IHZhcigtLWZvbnQtc2l6ZS0xMik7XG4gICAgbGluZS1oZWlnaHQ6IDEuMTU7XG4gIH1cblxuICAmX190aXRsZSB7XG4gICAgbWFyZ2luLWJvdHRvbTogMC4zcmVtO1xuICAgIGNvbG9yOiB2YXIoLS1jb2xvci1zdGF0ZSk7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIH1cblxuICAmX19kZXNjcmlwdGlvbiB7XG4gICAgLyogc2hvdyBhIG1heCBvZiAyIGxpbmVzKi9cbiAgICBoZWlnaHQ6IGNhbGModmFyKC0tZm9udC1zaXplLTEzKSAqIDIgKiAxLjE1KTtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICB9XG5cbiAgJl9fbGlua09ubHkge1xuICAgIC8qIHNob3cgYSBtYXggb2YgNCBsaW5lcyovXG4gICAgaGVpZ2h0OiBjYWxjKHZhcigtLWZvbnQtc2l6ZS0xMykgKiA0ICogMS4xMik7XG4gICAgbWFyZ2luLXRvcDogMC4ycmVtO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgY29sb3I6IHZhcigtLWNvbG9yLXN0YXRlKTtcbiAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICBmb250LXNpemU6IHZhcigtLWZvbnQtc2l6ZS0xMyk7XG4gICAgbGluZS1oZWlnaHQ6IDEuMTU7XG4gIH1cblxuICAmX19vdmVybGF5TGluayB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGluc2V0OiAtMXB4OyAvKiAtMXB4IHRvIGFjY291bnQgZm9yIGJvcmRlciovXG4gICAgYm9yZGVyLXJhZGl1czogaW5oZXJpdDtcbiAgICAmOmZvY3VzIHtcbiAgICAgIEBpbmNsdWRlIHR1aS1mb2N1cztcbiAgICB9XG4gIH1cbn1cblxuLnR1aS1tZW50aW9uIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB3aGl0ZS1zcGFjZTogbm9ybWFsO1xuXG4gICZfX2Rpc3BsYXlOYW1lIHtcbiAgICBjb2xvcjogdmFyKC0tY29sb3Itc3RhdGUpO1xuXG4gICAgJjpob3ZlciB7XG4gICAgICAvKiBIb3ZlciBzdGF0ZSwgZm9yIG5vdyB3ZSBrZWVwIHRoZSBzYW1lIGNvbG9yLiovXG4gICAgICBjb2xvcjogdmFyKC0tY29sb3Itc3RhdGUpO1xuICAgIH1cbiAgfVxufVxuXG4udHVpLXZpZGVvQmxvY2sge1xuICBkaXNwbGF5OiBmbGV4O1xuICB3aWR0aDogMTAwJTtcbiAgbWF4LXdpZHRoOiB2YXIoLS1lbWJlZGRlZC1tZWRpYS1tYXgtd2lkdGgpO1xuXG4gIG1hcmdpbjogdmFyKC0tZ2FwLTgpIDA7XG5cbiAgLnZpZGVvLWpzIC52anMtY29udHJvbCB7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgfVxufVxuXG4vKiBFbnN1cmUgdGhlIGNvbnRyb2xzIGFyZW4ndCBpbmNvcnJlY3RseSByZXZlcnNlZCBpbiBSVEwqL1xuW2Rpcj0ncnRsJ10ge1xuICAudHVpLXZpZGVvQmxvY2sge1xuICAgIC52aWRlby1qcyB7XG4gICAgICAudmpzLXByb2dyZXNzLWhvbGRlciAudmpzLXBsYXktcHJvZ3Jlc3MsXG4gICAgICAudmpzLXByb2dyZXNzLWhvbGRlciAudmpzLWxvYWQtcHJvZ3Jlc3MsXG4gICAgICAudmpzLXByb2dyZXNzLWhvbGRlciAudmpzLWxvYWQtcHJvZ3Jlc3MgZGl2LFxuICAgICAgLnZqcy12b2x1bWUtbGV2ZWwge1xuICAgICAgICAvKiFydGw6aWdub3JlKi9cbiAgICAgICAgcmlnaHQ6IGF1dG87XG4gICAgICAgIC8qIXJ0bDppZ25vcmUqL1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgfVxuXG4gICAgICAudmpzLXBsYXktcHJvZ3Jlc3M6YmVmb3JlLFxuICAgICAgLnZqcy1zbGlkZXItaG9yaXpvbnRhbCAudmpzLXZvbHVtZS1sZXZlbDpiZWZvcmUge1xuICAgICAgICAvKiFydGw6aWdub3JlKi9cbiAgICAgICAgcmlnaHQ6IC0wLjVlbTtcbiAgICAgICAgLyohcnRsOmlnbm9yZSovXG4gICAgICAgIGxlZnQ6IGF1dG87XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi50dWktbGF5b3V0T25lQ29sdW1uIHtcbiAgQGluY2x1ZGUgdHVpLWZvbnQtYm9keSgpO1xuICBtYXJnaW4tdG9wOiB2YXIoLS1nYXAtMik7XG5cbiAgQGluY2x1ZGUgdHVpLXN0YWNrLXZlcnRpY2FsKHZhcigtLWdhcC04KSk7XG5cbiAgJl9faGVhZGluZyB7XG4gICAgQGluY2x1ZGUgdHVpLXN0YWNrLXZlcnRpY2FsKHZhcigtLWdhcC0yKSk7XG4gIH1cblxuICAmLS1mbHVzaCB7XG4gICAgbWFyZ2luLXRvcDogdmFyKC0tZ2FwLTEyKTtcbiAgfVxufVxuXG4udHVpLWxheW91dFRocmVlQ29sdW1uX19oZWFkaW5nIHtcbiAgQGluY2x1ZGUgdHVpLWZvbnQtaGVhZGluZy1tZWRpdW0oKTtcbn1cblxuLnR1aS1sYXlvdXRUd29Db2x1bW5fX2hlYWRpbmcge1xuICBAaW5jbHVkZSB0dWktZm9udC1oZWFkaW5nLW1lZGl1bSgpO1xufVxuXG4udHVpLXBhZ2VCYWNrTGluayB7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuXG4gICZfX2ljb24ge1xuICAgIG1hcmdpbi1yaWdodDogdmFyKC0tZ2FwLTEpO1xuICAgIC8qIE5lZ2F0aXZlIE9mZnNldCB0byBsZWZ0IGFsaWduIGFycm93IHdpdGggcGFnZSBjb250ZW50Ki9cbiAgICBtYXJnaW4tbGVmdDogLTAuMTllbTtcbiAgfVxufVxuXG4udHVpLXBhZ2VIZWFkaW5nIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgZmxleC13cmFwOiB3cmFwO1xuICBnYXA6IHZhcigtLWdhcC0zKTtcbiAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG5cbiAgJl9fdGl0bGUge1xuICAgIEBpbmNsdWRlIHR1aS1mb250LWhlYWRpbmctcGFnZS10aXRsZTtcbiAgICBmbGV4LWdyb3c6IDE7XG4gICAgbWluLXdpZHRoOiAwO1xuICAgIG92ZXJmbG93LXdyYXA6IGJyZWFrLXdvcmQ7XG5cbiAgICAmLS1zbWFsbCB7XG4gICAgICBAaW5jbHVkZSB0dWktZm9udC1oZWFkaW5nLXBhZ2UtdGl0bGUtc21hbGw7XG4gICAgfVxuICB9XG5cbiAgJl9fYnV0dG9ucyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LXNocmluazogMDtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgZ2FwOiB2YXIoLS1nYXAtMyk7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICB9XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiAkdHVpLXNjcmVlbi1zbSkge1xuICAudHVpLXBhZ2VIZWFkaW5nIHtcbiAgICAmX19idXR0b25zIHtcbiAgICAgICYgPiAqIHtcbiAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuQG1lZGlhIChtaW4td2lkdGg6ICR0dWktc2NyZWVuLW1kKSB7XG4gIC50dWktcGFnZUhlYWRpbmcge1xuICAgIGZsZXgtd3JhcDogbm93cmFwO1xuICB9XG59XG5cbi50dWktYWN0aW9uTGluayB7XG4gIC8qIHN0eWxlbGludC1kaXNhYmxlLW5leHQtbGluZSB0dWkvYXQtZXh0ZW5kLW9ubHktcGxhY2Vob2xkZXJzKi9cbiAgQGV4dGVuZCAudHVpLWZvcm1CdG47XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICYtLXByaW0ge1xuICAgIC8qIHN0eWxlbGludC1kaXNhYmxlLW5leHQtbGluZSB0dWkvYXQtZXh0ZW5kLW9ubHktcGxhY2Vob2xkZXJzKi9cbiAgICBAZXh0ZW5kIC50dWktZm9ybUJ0bi0tcHJpbTtcbiAgfVxuXG4gICYtLXNtYWxsIHtcbiAgICAvKiBzdHlsZWxpbnQtZGlzYWJsZS1uZXh0LWxpbmUgdHVpL2F0LWV4dGVuZC1vbmx5LXBsYWNlaG9sZGVycyovXG4gICAgQGV4dGVuZCAudHVpLWZvcm1CdG4tLXNtYWxsO1xuICB9XG5cbiAgJi0tc3JPbmx5IHtcbiAgICAvKiBzdHlsZWxpbnQtZGlzYWJsZS1uZXh0LWxpbmUgdHVpL2F0LWV4dGVuZC1vbmx5LXBsYWNlaG9sZGVycyovXG4gICAgQGV4dGVuZCAudHVpLWZvcm1CdG4tLXNyT25seTtcbiAgfVxuXG4gICY6bm90KFtocmVmXSkge1xuICAgIGNvbG9yOiB2YXIoLS1idG4tdGV4dC1jb2xvci1kaXNhYmxlZCk7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYnRuLWJnLWNvbG9yLWRpc2FibGVkKTtcbiAgICBib3JkZXItY29sb3I6IHZhcigtLWJ0bi1ib3JkZXItY29sb3ItZGlzYWJsZWQpO1xuICAgIGN1cnNvcjogZGVmYXVsdDtcbiAgICBvcGFjaXR5OiAxO1xuICAgICY6YWN0aXZlLFxuICAgICY6Zm9jdXMsXG4gICAgJjphY3RpdmU6Zm9jdXMsXG4gICAgJjphY3RpdmU6aG92ZXIsXG4gICAgJjpob3ZlciB7XG4gICAgICBjb2xvcjogdmFyKC0tYnRuLXRleHQtY29sb3ItZGlzYWJsZWQpO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYnRuLWJnLWNvbG9yLWRpc2FibGVkKTtcbiAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tYnRuLWJvcmRlci1jb2xvci1kaXNhYmxlZCk7XG4gICAgICBib3gtc2hhZG93OiBub25lO1xuICAgIH1cbiAgfVxufVxuXG4udHVpLXNraXBUb0NvbnRlbnQge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHdpZHRoOiAxcHg7XG4gIGhlaWdodDogMXB4O1xuICBtYXJnaW46IC0xcHg7XG4gIHBhZGRpbmc6IDA7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGJvcmRlcjogMDtcbiAgY2xpcDogcmVjdCgwLCAwLCAwLCAwKTtcblxuICAmOmZvY3VzIHtcbiAgICBwb3NpdGlvbjogc3RhdGljO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiBhdXRvO1xuICAgIGhlaWdodDogYXV0bztcbiAgfVxufVxuXG4udHVpLWNvbXBvbmVudExvYWRpbmcge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgcGFkZGluZzogdmFyKC0tZ2FwLTMpO1xuICBjb2xvcjogdmFyKC0tY29sb3ItbmV1dHJhbC02KTtcbn1cblxuLnR1aS1sb2FkZXIge1xuICAkbG9hZGluZy1mdWxscGFnZTogI3smfS0tZnVsbHBhZ2U7XG5cbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gIC8qIERvbid0IHNob3cgbmVzdGVkIGxvYWRlcnMqL1xuICAmLS1hY3RpdmUgPiAqIC50dWktbG9hZGVyX19vdmVybGF5IHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG5cbiAgLyogSWYgbm8gc2xvdCBjb250ZW50IChlLmcuIGluaXRpYWwgbG9hZCkqL1xuICAmX19lbXB0eSB7XG4gICAgbWluLWhlaWdodDogdmFyKC0tZ2FwLTgpO1xuICB9XG5cbiAgJl9fb3ZlcmxheSB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICAvKiFydGw6aWdub3JlKi9cbiAgICBsZWZ0OiAwO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTtcblxuICAgICN7JGxvYWRpbmctZnVsbHBhZ2V9ICYge1xuICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgei1pbmRleDogdmFyKC0temluZGV4LWxvYWRpbmctcGFnZSk7XG4gICAgfVxuXG4gICAgJi1wb3NpdGlvbmVyIHtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgIGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLWJhY2tncm91bmQpO1xuICAgICAgb3BhY2l0eTogMC44NTtcbiAgICAgIGNvbnRlbnQ6ICcnO1xuICAgIH1cbiAgfVxuXG4gICZfX2Rpc3BsYXkge1xuICAgIHBvc2l0aW9uOiBzdGlja3k7XG4gICAgdG9wOiB2YXIoLS1nYXAtNik7XG4gICAgYm90dG9tOiB2YXIoLS1nYXAtNik7XG4gICAgY29sb3I6IHZhcigtLWNvbG9yLW5ldXRyYWwtNik7XG4gICAgZm9udC1zaXplOiB2YXIoLS1mb250LXNpemUtMTUpO1xuXG4gICAgLmZhLXNwaW5uZXIge1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgdG9wOiAtMXB4O1xuICAgIH1cbiAgfVxufVxuXG46cm9vdCB7XG4gIC8qIEJhY2tncm91bmQgY29sb3VyIG9mIHNrZWxldG9uIGFyZWEqL1xuICAvKiBTaG91bGQgaGF2ZSBhdCBsZWFzdCAzOjEgY29udHJhc3QgcmF0aW8qL1xuICAvKiBodHRwczovL3d3dy53My5vcmcvV0FJL1dDQUcyMS9VbmRlcnN0YW5kaW5nL25vbi10ZXh0LWNvbnRyYXN0Lmh0bWwqL1xuICAvKiBGdXR1cmUgb3B0aW9uIGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0NTUy9AbWVkaWEvcHJlZmVycy1jb250cmFzdCovXG4gIC0tc2tlbGV0b24tY29udGVudC1iYWNrZ3JvdW5kOiAjOTQ5NDk0O1xuICAvKiBCYWNrZ3JvdW5kIGNvbG91ciBvZiBza2VsZXRvbiBhcmVhIHdoZW4gdW5kZXIgYSBsb2FkaW5nIG92ZXJsYXkqL1xuICAtLXNrZWxldG9uLWNvbnRlbnQtb3ZlcmxheS1iYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci1uZXV0cmFsLTUpO1xuICAvKiBDb2xvdXIgb2Ygc2hpbW1lciovXG4gIC0tc2tlbGV0b24tY29udGVudC1zaGltbWVyLWNvbG9yOiAjYWFhO1xuICAvKiBDb2xvdXIgb2Ygc2hpbW1lciB3aGVuIHVuZGVyIGEgbG9hZGluZyBvdmVybGF5Ki9cbiAgLS1za2VsZXRvbi1jb250ZW50LXNoaW1tZXItb3ZlcmxheS1jb2xvcjogI2U2ZTVlNTtcbiAgLyogQm9yZGVyIHJhZGl1cyBmb3Igc2tlbGV0b24gY29udGVudCovXG4gIC0tc2tlbGV0b24tY29udGVudC1ib3JkZXItcmFkaXVzOiB2YXIoLS1ib3JkZXItcmFkaXVzLXNtYWxsKTtcbn1cblxuLnR1aS1za2VsZXRvbkNvbnRlbnQge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGJhY2tncm91bmQ6IHZhcigtLXNrZWxldG9uLWNvbnRlbnQtYmFja2dyb3VuZCk7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLXNrZWxldG9uLWNvbnRlbnQtYm9yZGVyLXJhZGl1cyk7XG5cbiAgQGluY2x1ZGUgdHVpLWNoYXItbGVuZ3RoLWNsYXNzZXMoKTtcblxuICAmLS1oYXNPdmVybGF5IHtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1za2VsZXRvbi1jb250ZW50LW92ZXJsYXktYmFja2dyb3VuZCk7XG4gIH1cblxuICAmLS1zaGltbWVyIHtcbiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoXG4gICAgICAtNTVkZWcsXG4gICAgICB2YXIoLS1za2VsZXRvbi1jb250ZW50LWJhY2tncm91bmQpIDAlLFxuICAgICAgdmFyKC0tc2tlbGV0b24tY29udGVudC1iYWNrZ3JvdW5kKSAzNSUsXG4gICAgICB2YXIoLS1za2VsZXRvbi1jb250ZW50LXNoaW1tZXItY29sb3IpIDUwJSxcbiAgICAgIHZhcigtLXNrZWxldG9uLWNvbnRlbnQtYmFja2dyb3VuZCkgNTglLFxuICAgICAgdmFyKC0tc2tlbGV0b24tY29udGVudC1iYWNrZ3JvdW5kKSAxMDAlXG4gICAgKTtcbiAgICBiYWNrZ3JvdW5kLXNpemU6IDEwMDBweCAxMDAlO1xuICAgIGJhY2tncm91bmQtYXR0YWNobWVudDogZml4ZWQ7XG4gICAgYW5pbWF0aW9uOiB0dWktc2tlbGV0b25TaGltbWVyIDNzIGxpbmVhciBpbmZpbml0ZTtcblxuICAgIEBtZWRpYSAocHJlZmVycy1yZWR1Y2VkLW1vdGlvbikge1xuICAgICAgYW5pbWF0aW9uOiBub25lO1xuICAgIH1cbiAgfVxuXG4gIEBrZXlmcmFtZXMgdHVpLXNrZWxldG9uU2hpbW1lciB7XG4gICAgMCUge1xuICAgICAgLyohcnRsOmlnbm9yZSovXG4gICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwIDA7XG4gICAgfVxuICAgIDEwMCUge1xuICAgICAgLyohcnRsOmlnbm9yZSovXG4gICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAxMDAwcHggMDtcbiAgICB9XG4gIH1cbn1cblxuLnR1aS1za2VsZXRvbkNvbnRlbnQtLWhhc092ZXJsYXkudHVpLXNrZWxldG9uQ29udGVudC0tc2hpbW1lciB7XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudChcbiAgICAtNTVkZWcsXG4gICAgdmFyKC0tc2tlbGV0b24tY29udGVudC1vdmVybGF5LWJhY2tncm91bmQpIDAlLFxuICAgIHZhcigtLXNrZWxldG9uLWNvbnRlbnQtb3ZlcmxheS1iYWNrZ3JvdW5kKSAzNSUsXG4gICAgdmFyKC0tc2tlbGV0b24tY29udGVudC1zaGltbWVyLW92ZXJsYXktY29sb3IpIDUwJSxcbiAgICB2YXIoLS1za2VsZXRvbi1jb250ZW50LW92ZXJsYXktYmFja2dyb3VuZCkgNTglLFxuICAgIHZhcigtLXNrZWxldG9uLWNvbnRlbnQtb3ZlcmxheS1iYWNrZ3JvdW5kKSAxMDAlXG4gICk7XG4gIGJhY2tncm91bmQtc2l6ZTogMTAwMHB4IDEwMCU7XG4gIGJhY2tncm91bmQtYXR0YWNobWVudDogZml4ZWQ7XG59XG5cbi50dWktbG96ZW5nZSB7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBwYWRkaW5nOiAzcHggdmFyKC0tZ2FwLTIpIDNweDtcbiAgY29sb3I6IHZhcigtLWNvbG9yLW5ldXRyYWwtMSk7XG4gIEBpbmNsdWRlIHR1aS1mb250LWJvZHkteC1zbWFsbCgpO1xuICBAaW5jbHVkZSB0dWktZm9udC1oZWF2eSgpO1xuICBsaW5lLWhlaWdodDogMTtcbiAgYmFja2dyb3VuZDogdmFyKC0tY29sb3ItcHJvbXB0LWluZm8pO1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1ib3JkZXItcmFkaXVzLXNtYWxsKTtcblxuICAmLS1hbGVydCB7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tY29sb3ItcHJvbXB0LWFsZXJ0KTtcbiAgfVxuXG4gICYtLXN1Y2Nlc3Mge1xuICAgIGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLXByb21wdC1zdWNjZXNzKTtcbiAgfVxuXG4gICYtLXdhcm5pbmcge1xuICAgIGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLXByb21wdC13YXJuaW5nKTtcbiAgfVxuXG4gICYtLW5ldXRyYWwge1xuICAgIGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLW5ldXRyYWwtNik7XG4gIH1cbn1cblxuJHR1aS1tb2RhbC1zbWFsbFNpemU6IDQwMHB4ICFkZWZhdWx0O1xuJHR1aS1tb2RhbC1ub3JtYWxTaXplOiA1NjBweCAhZGVmYXVsdDtcbiR0dWktbW9kYWwtbGFyZ2VTaXplOiA4MDBweCAhZGVmYXVsdDtcbiR0dWktbW9kYWwtc2hlZXRCcmVha3BvaW50OiA3NjhweCAhZGVmYXVsdDtcblxuLnR1aS1tb2RhbC13cmFwIHtcbiAgcG9zaXRpb246IGZpeGVkO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIHotaW5kZXg6IHZhcigtLXppbmRleC1tb2RhbCk7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIG91dGxpbmU6IG5vbmU7XG5cbiAgJl9fYmFja2Ryb3Age1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBpbnNldDogMDtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG5cbiAgJi0tc2hhZGUge1xuICAgIC50dWktbW9kYWwtd3JhcF9fYmFja2Ryb3Age1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci1iYWNrZHJvcC1zdGFuZGFyZCk7XG4gICAgfVxuXG4gICAgJi50dWktbW9kYWwtd3JhcC0tdHlwZS1zaGVldCAudHVpLW1vZGFsLXdyYXBfX2JhY2tkcm9wIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLWJhY2tkcm9wLWhlYXZ5KTtcbiAgICB9XG5cbiAgICAmLnR1aS1tb2RhbC13cmFwLS1hbmltYXRlZCB7XG4gICAgICAudHVpLW1vZGFsLXdyYXBfX2JhY2tkcm9wIHtcbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSB2YXIoLS10cmFuc2l0aW9uLW1vZGFsLWZ1bmN0aW9uKVxuICAgICAgICAgIHZhcigtLXRyYW5zaXRpb24tbW9kYWwtZHVyYXRpb24pO1xuICAgICAgfVxuICAgICAgJi50dWktbW9kYWwtd3JhcC0taW4gLnR1aS1tb2RhbC13cmFwX19iYWNrZHJvcCB7XG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi50dWktbW9kYWwge1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgei1pbmRleDogdmFyKC0temluZGV4LW1vZGFsKTtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgb3V0bGluZTogbm9uZTtcblxuICAmLS1hbmltYXRlZCB7XG4gICAgLnR1aS1tb2RhbF9faW5uZXIge1xuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDEwMHZoKTtcbiAgICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSB2YXIoLS10cmFuc2l0aW9uLW1vZGFsLWZ1bmN0aW9uKVxuICAgICAgICAgIHZhcigtLXRyYW5zaXRpb24tbW9kYWwtZHVyYXRpb24pLFxuICAgICAgICBvcGFjaXR5IHZhcigtLXRyYW5zaXRpb24tbW9kYWwtZnVuY3Rpb24pXG4gICAgICAgICAgdmFyKC0tdHJhbnNpdGlvbi1tb2RhbC1kdXJhdGlvbik7XG4gICAgfVxuXG4gICAgJi50dWktbW9kYWwtLWluIC50dWktbW9kYWxfX2lubmVyIHtcbiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTtcbiAgICB9XG4gIH1cblxuICAmLS1lcnJvciB7XG4gICAgei1pbmRleDogdmFyKC0temluZGV4LWVycm9yLW1vZGFsKTtcbiAgfVxuXG4gICYudHVpLW1vZGFsLS10eXBlLXNoZWV0IHtcbiAgICAudHVpLW1vZGFsX19pbm5lciB7XG4gICAgICBvdmVyZmxvdzogYXV0bztcbiAgICB9XG4gIH1cblxuICAmLS1zaGFkZSB7XG4gICAgJi50dWktbW9kYWwtLWFuaW1hdGVkIHtcbiAgICAgICYudHVpLW1vZGFsLS1pbiB7XG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgJl9fcGFkIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgcGFkZGluZzogMDtcbiAgfVxuXG4gICZfX2lubmVyIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBtYXJnaW46IGF1dG87XG4gICAgY29sb3I6IHZhcigtLWNvbG9yLXRleHQpO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLWJhY2tncm91bmQpO1xuICAgIGJveC1zaGFkb3c6IHZhcigtLXNoYWRvdy00KTtcbiAgfVxuXG4gICZfX2hlYWRlciB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LXNocmluazogMDtcbiAgfVxuXG4gICZfX2Nsb3NlLFxuICAmX19vdXRzaWRlQ2xvc2Uge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgcmlnaHQ6IDA7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBwYWRkaW5nOiB2YXIoLS1nYXAtNCk7XG4gICAgZm9udC1zaXplOiB2YXIoLS1mb250LXNpemUtMTgpO1xuICB9XG5cbiAgJl9fb3V0c2lkZUNsb3NlIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICAgIGNvbG9yOiB2YXIoLS1jb2xvci1iYWNrZHJvcC1jb250cmFzdCk7XG4gIH1cblxuICAmX19vdXRzaWRlQ2xvc2U6aG92ZXIsXG4gICZfX291dHNpZGVDbG9zZTpmb2N1cyB7XG4gICAgY29sb3I6IHZhcigtLWNvbG9yLWJhY2tkcm9wLWNvbnRyYXN0KTtcbiAgICBvcGFjaXR5OiAwLjg7XG4gIH1cbn1cblxuLmhhcy10dWktbW9kYWwge1xuICBvdmVyZmxvdzogaGlkZGVuO1xufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogJHR1aS1tb2RhbC1zaGVldEJyZWFrcG9pbnQpIHtcbiAgLnR1aS1tb2RhbC0tdHlwZS1zaGVldCB7XG4gICAgJi50dWktbW9kYWwtLWFuaW1hdGVkIHtcbiAgICAgIC50dWktbW9kYWxfX2lubmVyIHtcbiAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgwLjkpO1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgfVxuXG4gICAgICAmLnR1aS1tb2RhbC0taW4gLnR1aS1tb2RhbF9faW5uZXIge1xuICAgICAgICB0cmFuc2Zvcm06IG5vbmU7XG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICB9XG5cbiAgICAgIC50dWktbW9kYWxfX291dHNpZGVDbG9zZSB7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgdmFyKC0tdHJhbnNpdGlvbi1tb2RhbC1mdW5jdGlvbilcbiAgICAgICAgICB2YXIoLS10cmFuc2l0aW9uLW1vZGFsLWR1cmF0aW9uKTtcbiAgICAgIH1cblxuICAgICAgJi50dWktbW9kYWwtLWluIC50dWktbW9kYWxfX291dHNpZGVDbG9zZSB7XG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICB9XG5cbiAgICAgICYudHVpLW1vZGFsLS1pbiAudHVpLW1vZGFsX19vdXRzaWRlQ2xvc2U6aG92ZXIsXG4gICAgICAmLnR1aS1tb2RhbC0taW4gLnR1aS1tb2RhbF9fb3V0c2lkZUNsb3NlOmZvY3VzIHtcbiAgICAgICAgb3BhY2l0eTogMC44O1xuICAgICAgfVxuICAgIH1cblxuICAgIC50dWktbW9kYWwge1xuICAgICAgJl9fcGFkIHtcbiAgICAgICAgcGFkZGluZzogdmFyKC0tbW9kYWwtc2hlZXQtcGFkZGluZyk7XG4gICAgICB9XG5cbiAgICAgICZfX2lubmVyIHtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogdmFyKC0tbW9kYWwtYm9yZGVyLXJhZGl1cyk7XG4gICAgICB9XG5cbiAgICAgICZfX2Nsb3NlIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgIH1cblxuICAgICAgJl9fb3V0c2lkZUNsb3NlIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuQG1peGluIHR1aS1tb2RhbC1zaXplKCRuYW1lLCAkd2lkdGgpIHtcbiAgQG1lZGlhIChtaW4td2lkdGg6ICgkd2lkdGggKyA3NXB4KSkge1xuICAgIC50dWktbW9kYWwtLXR5cGUtbm9ybWFsLnR1aS1tb2RhbC0tc2l6ZS0jeyRuYW1lfSB7XG4gICAgICBvdmVyZmxvdy15OiBhdXRvO1xuXG4gICAgICAmLnR1aS1tb2RhbC0tYWx3YXlzLXNjcm9sbCB7XG4gICAgICAgIG92ZXJmbG93LXk6IHNjcm9sbDtcbiAgICAgIH1cblxuICAgICAgJi50dWktbW9kYWwtLWFuaW1hdGVkIHtcbiAgICAgICAgLnR1aS1tb2RhbF9faW5uZXIge1xuICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMC45KTtcbiAgICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi50dWktbW9kYWwtLWluIC50dWktbW9kYWxfX2lubmVyIHtcbiAgICAgICAgICB0cmFuc2Zvcm06IG5vbmU7XG4gICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAvKiBhIHNlcGFyYXRlIF9fcGFkIGVsZW1lbnQgaXMgcmVxdWlyZWQgYXMgZmxleGJveCBjZW50ZXJpbmcgd2l0aCovXG4gICAgICAvKiBgbWFyZ2luLXRvcC9ib3R0b206IGF1dG87YCBhbmQgcGFkZGluZyBvbiB0aGUgcGFyZW50IGFyZSBub3QgY29tcGF0aWJsZSovXG4gICAgICAudHVpLW1vZGFsIHtcbiAgICAgICAgJl9fcGFkIHtcbiAgICAgICAgICBoZWlnaHQ6IGF1dG87XG4gICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgIHBhZGRpbmc6IHZhcigtLW1vZGFsLWNvbnRhaW5lci1wYWRkaW5nKSAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5uZXIge1xuICAgICAgICAgIHdpZHRoOiAkd2lkdGg7XG4gICAgICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgICAgICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLW1vZGFsLWJvcmRlci1yYWRpdXMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2xvc2Uge1xuICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19vdXRzaWRlQ2xvc2Uge1xuICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogKCR3aWR0aCAvICgzLzQpKSkge1xuICAgICAgLnR1aS1tb2RhbC0tdHlwZS1kcmF3ZXIudHVpLW1vZGFsLS1zaXplLSN7JG5hbWV9IHtcbiAgICAgICAgJi50dWktbW9kYWwtLWFuaW1hdGVkIHtcbiAgICAgICAgICAudHVpLW1vZGFsX19pbm5lciB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoJHdpZHRoKTtcbiAgICAgICAgICAgIC5kaXItcnRsICYge1xuICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLSR3aWR0aCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgJi50dWktbW9kYWwtLWluIC50dWktbW9kYWxfX2lubmVyIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogbm9uZTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAudHVpLW1vZGFsX19wYWQge1xuICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgLnR1aS1tb2RhbF9faW5uZXIge1xuICAgICAgICAgIHdpZHRoOiAkd2lkdGg7XG4gICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICAgICAgICBib3JkZXItbGVmdDogdmFyKC0tYm9yZGVyLXdpZHRoLXRoaW4pIHNvbGlkIHZhcigtLWNvbG9yLW5ldXRyYWwtNSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLnR1aS1tb2RhbC0tc2hhZGUgLnR1aS1tb2RhbF9faW5uZXIge1xuICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICBib3gtc2hhZG93OiB2YXIoLS1zaGFkb3ctNCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuQGluY2x1ZGUgdHVpLW1vZGFsLXNpemUoJ3NtYWxsJywgJHR1aS1tb2RhbC1zbWFsbFNpemUpO1xuQGluY2x1ZGUgdHVpLW1vZGFsLXNpemUoJ25vcm1hbCcsICR0dWktbW9kYWwtbm9ybWFsU2l6ZSk7XG5AaW5jbHVkZSB0dWktbW9kYWwtc2l6ZSgnbGFyZ2UnLCAkdHVpLW1vZGFsLWxhcmdlU2l6ZSk7XG5cbi50dWktbW9kYWxDb250ZW50IHtcbiAgQGluY2x1ZGUgdHVpLWZvbnQtYm9keSgpO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBmbGV4LWdyb3c6IDE7XG4gIG1pbi1oZWlnaHQ6IDA7XG5cbiAgJl9faGVhZGVyIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgIHBhZGRpbmc6IHZhcigtLW1vZGFsLWNvbnRlbnQtb3V0ZXItcGFkZGluZyk7XG4gICAgcGFkZGluZy1ib3R0b206IHZhcigtLWdhcC00KTtcbiAgICAmLS1ub0JvdHRvbVBhZGRpbmcge1xuICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgfVxuXG4gICAgJi10aXRsZSB7XG4gICAgICBAaW5jbHVkZSB0dWktZm9udC1oZWFkaW5nLXNtYWxsKCk7XG4gICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgZm9udC13ZWlnaHQ6IDUwMDtcblxuICAgICAgJi0tc3Jvbmx5IHtcbiAgICAgICAgQGluY2x1ZGUgc3Itb25seSgpO1xuICAgICAgfVxuXG4gICAgICAmLS1zbWFsbCB7XG4gICAgICAgIEBpbmNsdWRlIHR1aS1mb250LWhlYWRpbmcteC1zbWFsbCgpO1xuICAgICAgfVxuICAgIH1cblxuICAgICYtYnV0dG9ucyB7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgfVxuICB9XG5cbiAgJl9fY29udGVudCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGZsZXgtZ3JvdzogMTtcbiAgICBtaW4taGVpZ2h0OiAwO1xuICAgIHBhZGRpbmc6IHZhcigtLWdhcC0yKSB2YXIoLS1tb2RhbC1jb250ZW50LW91dGVyLXBhZGRpbmcpO1xuICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgJi0tbm9Ub3BQYWRkaW5nIHtcbiAgICAgIHBhZGRpbmctdG9wOiAwO1xuICAgIH1cbiAgfVxuXG4gICYtLW5vQ29udGVudFBhZGRpbmcgJl9fY29udGVudCB7XG4gICAgcGFkZGluZzogMDtcbiAgfVxuXG4gICZfX2Zvb3RlciB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LXNocmluazogMDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIHBhZGRpbmc6IHZhcigtLW1vZGFsLWNvbnRlbnQtb3V0ZXItcGFkZGluZyk7XG4gICAgcGFkZGluZy10b3A6IHZhcigtLWdhcC00KTtcbiAgICAmLWJ1dHRvbnMge1xuICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgfVxuICB9XG5cbiAgJiA+IDpsYXN0LWNoaWxkIHtcbiAgICBwYWRkaW5nLWJvdHRvbTogdmFyKC0tbW9kYWwtY29udGVudC1vdXRlci1wYWRkaW5nKTtcbiAgfVxuXG4gICYtLW5vQ29udGVudFBhZGRpbmcge1xuICAgICYgPiA6bGFzdC1jaGlsZCB7XG4gICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICB9XG4gIH1cbn1cblxuLnR1aS1tb2RhbEhlYWRlckJ1dHRvbiB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtc2hyaW5rOiAwO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgd2lkdGg6IDIuNHJlbTtcbiAgaGVpZ2h0OiAyLjRyZW07XG4gIGNvbG9yOiB2YXIoLS1jb2xvci1uZXV0cmFsLTYpO1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1ib3JkZXItcmFkaXVzLXNtYWxsKTtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICAtd2Via2l0LXVzZXItc2VsZWN0OiBub25lO1xuICAgICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xuICAmOmhvdmVyLFxuICAmOmZvY3VzLFxuICAmOmFjdGl2ZSB7XG4gICAgY29sb3I6IHZhcigtLWNvbG9yLW5ldXRyYWwtNyk7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tY29sb3ItbmV1dHJhbC0zKTtcbiAgfVxuICAmOmZvY3VzLXZpc2libGUge1xuICAgIEBpbmNsdWRlIHR1aS1mb2N1cygpO1xuICB9XG59XG5cbkBtaXhpbiB0dWktbm90aWZpY2F0aW9uLWJhbm5lci1jb2xvcigkbmFtZSwgJGNvbG9yKSB7XG4gIC50dWktbm90aWZpY2F0aW9uQmFubmVyIHtcbiAgICAmLS0jeyRuYW1lfSB7XG4gICAgICBib3JkZXItY29sb3I6ICRjb2xvcjtcbiAgICB9XG5cbiAgICAmLS0jeyRuYW1lfSAmX19pY29uIHtcbiAgICAgIGJhY2tncm91bmQ6ICRjb2xvcjtcbiAgICB9XG4gIH1cbn1cblxuLnR1aS1ub3RpZmljYXRpb25CYW5uZXIge1xuICBAaW5jbHVkZSB0dWktZm9udC1ib2R5LXNtYWxsKCk7XG5cbiAgZGlzcGxheTogZmxleDtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItYmFja2dyb3VuZCk7XG4gIGJvcmRlcjogdmFyKC0tYm9yZGVyLXdpZHRoLXRoaW4pIHNvbGlkIHZhcigtLWNvbG9yLXByb21wdC1pbmZvKTtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tYm9yZGVyLXJhZGl1cy1zbWFsbCk7XG5cbiAgJl9faWNvbiB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBwYWRkaW5nOiB2YXIoLS1nYXAtNCk7XG4gICAgY29sb3I6IHZhcigtLWNvbG9yLW5ldXRyYWwtMSk7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tY29sb3ItcHJvbXB0LWluZm8pO1xuICAgIC8qIC0xcHggdG8gYXZvaWQgaXNzdWUgd2l0aCByYXpvciB0aGluIHdoaXRlIGxpbmUgYmV0d2VlbiBpY29uIGNvbnRhaW5lciBhbmQgbm90aWZpY2F0aW9uIGJvcmRlciovXG4gICAgLyogcHJldHRpZXItaWdub3JlKi9cbiAgICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiBjYWxjKHZhcigtLWJvcmRlci1yYWRpdXMtc21hbGwpIC0gdmFyKC0tYm9yZGVyLXdpZHRoLXRoaW4pIC0gMXB4KTtcbiAgICAvKiBwcmV0dGllci1pZ25vcmUqL1xuICAgIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IGNhbGModmFyKC0tYm9yZGVyLXJhZGl1cy1zbWFsbCkgLSB2YXIoLS1ib3JkZXItd2lkdGgtdGhpbikgLSAxcHgpO1xuICB9XG5cbiAgJl9fYm9keSB7XG4gICAgZmxleC1ncm93OiAxO1xuICB9XG5cbiAgJl9fbWVzc2FnZSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4OiAxO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgcGFkZGluZzogdmFyKC0tZ2FwLTMpO1xuXG4gICAgJi0taW5saW5lIHtcbiAgICAgIGRpc3BsYXk6IGlubGluZTtcbiAgICB9XG4gIH1cblxuICAmX19kaXNtaXNzIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuXG4gICAgJl9idXR0b24ge1xuICAgICAgY29sb3I6IHZhcigtLWNvbG9yLW5ldXRyYWwtNik7XG4gICAgfVxuICB9XG59XG5cbkBpbmNsdWRlIHR1aS1ub3RpZmljYXRpb24tYmFubmVyLWNvbG9yKCdzdWNjZXNzJywgdmFyKC0tY29sb3ItcHJvbXB0LXN1Y2Nlc3MpKTtcbkBpbmNsdWRlIHR1aS1ub3RpZmljYXRpb24tYmFubmVyLWNvbG9yKCd3YXJuaW5nJywgdmFyKC0tY29sb3ItcHJvbXB0LXdhcm5pbmcpKTtcbkBpbmNsdWRlIHR1aS1ub3RpZmljYXRpb24tYmFubmVyLWNvbG9yKCdlcnJvcicsIHZhcigtLWNvbG9yLXByb21wdC1hbGVydCkpO1xuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAkdHVpLXNjcmVlbi1zbSkge1xuICAudHVpLW5vdGlmaWNhdGlvbkJhbm5lciB7XG4gICAgQGluY2x1ZGUgdHVpLWZvbnQtYm9keSgpO1xuXG4gICAgYm9yZGVyLXJhZGl1czogdmFyKC0tYm9yZGVyLXJhZGl1cy1ub3JtYWwpO1xuXG4gICAgJl9faWNvbiB7XG4gICAgICAvKiAtMXB4IHRvIGF2b2lkIGlzc3VlIHdpdGggcmF6b3IgdGhpbiB3aGl0ZSBsaW5lIGJldHdlZW4gaWNvbiBjb250YWluZXIgYW5kIG5vdGlmaWNhdGlvbiBib3JkZXIqL1xuICAgICAgLyogcHJldHRpZXItaWdub3JlKi9cbiAgICAgIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IGNhbGModmFyKC0tYm9yZGVyLXJhZGl1cy1ub3JtYWwpIC0gdmFyKC0tYm9yZGVyLXdpZHRoLXRoaW4pIC0gMXB4KTtcbiAgICAgIC8qIHByZXR0aWVyLWlnbm9yZSovXG4gICAgICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiBjYWxjKHZhcigtLWJvcmRlci1yYWRpdXMtbm9ybWFsKSAtIHZhcigtLWJvcmRlci13aWR0aC10aGluKSAtIDFweCk7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiB0dWktbm90aWZpY2F0aW9uLXRvYXN0LWNvbG9yKCRuYW1lLCAkY29sb3IpIHtcbiAgLnR1aS1ub3RpZmljYXRpb25Ub2FzdCB7XG4gICAgJi0tI3skbmFtZX0ge1xuICAgICAgYmFja2dyb3VuZDogJGNvbG9yO1xuICAgIH1cblxuICAgICYtLSN7JG5hbWV9ICZfX2ljb24ge1xuICAgICAgYmFja2dyb3VuZDogJGNvbG9yO1xuICAgIH1cbiAgfVxufVxuXG4udHVpLW5vdGlmaWNhdGlvblRvYXN0IHtcbiAgQGluY2x1ZGUgdHVpLWZvbnQtYm9keS1zbWFsbCgpO1xuXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGNvbG9yOiB2YXIoLS10b2FzdC1jb2xvci10ZXh0KTtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItcHJvbXB0LXN1Y2Nlc3MpO1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1ib3JkZXItcmFkaXVzLXNtYWxsKTtcbiAgYm94LXNoYWRvdzogdmFyKC0tc2hhZG93LTMpO1xuXG4gICZfX2ljb24ge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBwYWRkaW5nOiB2YXIoLS1nYXAtNCkgMCB2YXIoLS1nYXAtNCkgdmFyKC0tZ2FwLTQpO1xuICAgIGNvbG9yOiB2YXIoLS1jb2xvci1uZXV0cmFsLTEpO1xuICAgIGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLXByb21wdC1zdWNjZXNzKTtcbiAgICAvKiAtMXB4IHRvIGF2b2lkIGlzdWUgd2l0aCByYXpvciB0aGluIHdoaXRlIGxpbmUgYmV0d2VlbiBpY29uIGNvbnRhaW5lciBhbmQgbm90aWZpY2F0aW9uIGJvcmRlciovXG4gICAgLyogcHJldHRpZXItaWdub3JlKi9cbiAgICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiBjYWxjKHZhcigtLWJvcmRlci1yYWRpdXMtc21hbGwpIC0gdmFyKC0tYm9yZGVyLXdpZHRoLXRoaW4pIC0gMXB4KTtcbiAgICAvKiBwcmV0dGllci1pZ25vcmUqL1xuICAgIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IGNhbGModmFyKC0tYm9yZGVyLXJhZGl1cy1zbWFsbCkgLSB2YXIoLS1ib3JkZXItd2lkdGgtdGhpbikgLSAxcHgpO1xuICB9XG5cbiAgJl9fbWVzc2FnZSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4OiAxO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgcGFkZGluZzogdmFyKC0tZ2FwLTQpIHZhcigtLWdhcC0yKTtcbiAgfVxuXG4gICZfX2Rpc21pc3Mge1xuICAgIGRpc3BsYXk6IGZsZXg7XG5cbiAgICAmX2J1dHRvbiB7XG4gICAgICBjb2xvcjogdmFyKC0tY29sb3ItbmV1dHJhbC0zKTtcblxuICAgICAgJjpob3ZlciB7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1jb2xvci1uZXV0cmFsLTEpO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5AaW5jbHVkZSB0dWktbm90aWZpY2F0aW9uLXRvYXN0LWNvbG9yKCdlcnJvcicsIHZhcigtLWNvbG9yLXByb21wdC1hbGVydCkpO1xuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAkdHVpLXNjcmVlbi1zbSkge1xuICAudHVpLW5vdGlmaWNhdGlvblRvYXN0IHtcbiAgICBAaW5jbHVkZSB0dWktZm9udC1ib2R5KCk7XG4gICAgY29sb3I6IHZhcigtLXRvYXN0LWNvbG9yLXRleHQpO1xuXG4gICAgYm9yZGVyLXJhZGl1czogdmFyKC0tYm9yZGVyLXJhZGl1cy1ub3JtYWwpO1xuXG4gICAgJl9faWNvbiB7XG4gICAgICAvKiAtMXB4IHRvIGF2b2lkIGlzdWUgd2l0aCByYXpvciB0aGluIHdoaXRlIGxpbmUgYmV0d2VlbiBpY29uIGNvbnRhaW5lciBhbmQgbm90aWZpY2F0aW9uIGJvcmRlciovXG4gICAgICAvKiBwcmV0dGllci1pZ25vcmUqL1xuICAgICAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogY2FsYyh2YXIoLS1ib3JkZXItcmFkaXVzLW5vcm1hbCkgLSB2YXIoLS1ib3JkZXItd2lkdGgtdGhpbikgLSAxcHgpO1xuICAgICAgLyogcHJldHRpZXItaWdub3JlKi9cbiAgICAgIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IGNhbGModmFyKC0tYm9yZGVyLXJhZGl1cy1ub3JtYWwpIC0gdmFyKC0tYm9yZGVyLXdpZHRoLXRoaW4pIC0gMXB4KTtcbiAgICB9XG4gIH1cbn1cblxuLnR1aS10b2FzdENvbnRhaW5lciB7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgdG9wOiB2YXIoLS1nYXAtNik7XG4gIHJpZ2h0OiAwO1xuICBsZWZ0OiAwO1xuICB6LWluZGV4OiB2YXIoLS16aW5kZXgtdG9hc3QpO1xuICBkaXNwbGF5OiBmbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG5cbiAgJl9faW5uZXIge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBmbGV4LWJhc2lzOiAzMDBweDtcbiAgICBwb2ludGVyLWV2ZW50czogYXV0bztcbiAgfVxuXG4gICZfX2l0ZW0tdHJhbnNpdGlvbiB7XG4gICAgJi1lbnRlci1hY3RpdmUsXG4gICAgJi1sZWF2ZS1hY3RpdmUge1xuICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2Utb3V0O1xuICAgIH1cblxuICAgICYtZW50ZXIsXG4gICAgJi1sZWF2ZS10byB7XG4gICAgICBvcGFjaXR5OiAwO1xuICAgIH1cblxuICAgICYtbGVhdmUtYWN0aXZlIHtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHJpZ2h0OiAwO1xuICAgICAgbGVmdDogMDtcbiAgICAgIG9wYWNpdHk6IDA7XG4gICAgfVxuICB9XG59XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6ICR0dWktc2NyZWVuLXNtKSB7XG4gIC50dWktdG9hc3RDb250YWluZXIge1xuICAgICZfX2lubmVyIHtcbiAgICAgIGZsZXgtYmFzaXM6IDUwMHB4O1xuICAgIH1cbiAgfVxufVxuXG4udHVpLW92ZXJmbG93Q29udGFpbmVyIHtcbiAgJl9fY29udGFpbmVyIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuXG4gICAgPiAqICsgKiB7XG4gICAgICBtYXJnaW4tbGVmdDogdmFyKC0tZ2FwLTQpO1xuXG4gICAgICAudHVpLW92ZXJmbG93Q29udGFpbmVyLS13aWRlICYge1xuICAgICAgICBtYXJnaW4tbGVmdDogdmFyKC0tZ2FwLTYpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gICZfX2NvbnRhaW5lckl0ZW0ge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1iYXNpczogMjAwcHg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBmbGV4LWdyb3c6IDE7XG4gICAgZmxleC1zaHJpbms6IDE7XG4gICAgbWluLXdpZHRoOiAxOThweDtcbiAgICBtYXgtd2lkdGg6IDI0OHB4O1xuXG4gICAgPiAqIHtcbiAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICB9XG5cbiAgICAmLS1wb3N0IHtcbiAgICAgIGNvbG9yOiB2YXIoLS1jb2xvci1zdGF0ZSk7XG5cbiAgICAgIC50dWktb3ZlcmZsb3dDb250YWluZXJfX2NvbnRhaW5lckl0ZW0ge1xuICAgICAgICAmLXZpZXdBbGwge1xuICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgICAgbWFyZ2luOiBhdXRvIDA7XG4gICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLW5ldXRyYWwtMyk7XG5cbiAgICAgICAgICAmLS1vbmx5IHtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDIwMHB4O1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtdmlld0FsbEljb24ge1xuICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgIHdpZHRoOiA0OHB4O1xuICAgICAgICAgIGhlaWdodDogNDhweDtcbiAgICAgICAgICBtYXJnaW46IGF1dG8gYXV0byAwIGF1dG87XG4gICAgICAgICAgcGFkZGluZzogMTBweDtcbiAgICAgICAgICBmb250LXNpemU6IHZhcigtLWZvbnQtc2l6ZS0yNCk7XG4gICAgICAgICAgYm9yZGVyOiB2YXIoLS1ib3JkZXItd2lkdGgtdGhpbikgc29saWQgdmFyKC0tY29sb3Itc3RhdGUpO1xuICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtdmlld0FsbEFjdGlvbiB7XG4gICAgICAgICAgbWFyZ2luOiB2YXIoLS1nYXAtMikgMCBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi1saW5rIHtcbiAgICAgICAgICBvdXRsaW5lOiAwO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi50dWktcGFnaW5nIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC13cmFwOiB3cmFwO1xuXG4gICZfX3BlclBhZ2Uge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgZmxleC1ncm93OiAxO1xuICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgbWFyZ2luOiBhdXRvIDA7XG5cbiAgICAmLWxhYmVsIHtcbiAgICAgIG1hcmdpbjogYXV0byB2YXIoLS1nYXAtMykgYXV0byAwO1xuICAgIH1cblxuICAgICYtc2VsZWN0IHtcbiAgICAgIGZsZXg6IDdyZW0gMCAwO1xuICAgIH1cbiAgfVxuXG4gICZfX3NlbGVjdG9yIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgIG1hcmdpbjogYXV0byAwO1xuXG4gICAgJi1udW1iZXIge1xuICAgICAgbWluLXdpZHRoOiA0MHB4O1xuICAgICAgbWluLWhlaWdodDogNDBweDtcbiAgICAgIG1hcmdpbjogYXV0byAwO1xuICAgICAgcGFkZGluZzogdmFyKC0tZ2FwLTQpO1xuXG4gICAgICAmLS1jdXJyZW50IHtcbiAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgJl9fZGlyZWN0IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgbWFyZ2luOiBhdXRvIDA7XG4gICAgcGFkZGluZy1sZWZ0OiB2YXIoLS1nYXAtNCk7XG4gICAgYm9yZGVyLWxlZnQ6IHZhcigtLWJvcmRlci13aWR0aC10aGluKSBzb2xpZCB2YXIoLS1jb2xvci1uZXV0cmFsLTUpO1xuXG4gICAgLnR1aS1wYWdpbmctLW5hcnJvdyAmIHtcbiAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgIGJvcmRlci1sZWZ0OiBub25lO1xuICAgIH1cblxuICAgICYtbGFiZWwge1xuICAgICAgbWFyZ2luOiBhdXRvIHZhcigtLWdhcC0yKSBhdXRvIDA7XG4gICAgfVxuXG4gICAgJiAmLXBhZ2VbdHlwZV0ge1xuICAgICAgbWFyZ2luOiBhdXRvIHZhcigtLWdhcC0xKSBhdXRvIDA7XG4gICAgfVxuICB9XG5cbiAgJl9fbG9hZGluZyB7XG4gICAgd2lkdGg6IDEwMCU7XG4gIH1cbn1cblxuLnR1aS1wb3BvdmVyIHtcbiAgJl9fd3JhcCB7XG4gICAgJi0tdmFsaWduIHtcbiAgICAgICYtY2VudGVyIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLnR1aS1wb3BvdmVyRnJhbWUge1xuICBAaW5jbHVkZSB0dWktZm9udC1ib2R5KCk7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbWF4LXdpZHRoOiAzMDBweDtcbiAgLyogbWFyZ2luIG11c3QgYmUgZXF1YWwgb24gYWxsIDQgc2lkZXMsIGFuZCBtdXN0IG5vdCBjaGFuZ2Ugd2l0aCBwb3NpdGlvbiovXG4gIG1hcmdpbjogMTBweDtcbiAgcGFkZGluZzogdmFyKC0tZ2FwLTQpO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci1iYWNrZ3JvdW5kKTtcbiAgYmFja2dyb3VuZC1jbGlwOiBwYWRkaW5nLWJveDtcbiAgYm94LXNoYWRvdzogdmFyKC0tc2hhZG93LTMpO1xuXG4gICY6OmJlZm9yZSB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiAwO1xuICAgIHotaW5kZXg6IC0xO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBib3gtc2hhZG93OiAwIDAgMCAxcHggdmFyKC0tY29sb3ItbmV1dHJhbC01KTtcbiAgICBjb250ZW50OiAnJztcbiAgfVxuXG4gICYtLXNpemUtc20ge1xuICAgIHdpZHRoOiAyNTBweDtcbiAgICBtYXgtd2lkdGg6IG5vbmU7XG4gIH1cblxuICAmLS1zaXplLW1kIHtcbiAgICB3aWR0aDogMzAwcHg7XG4gICAgbWF4LXdpZHRoOiBub25lO1xuICB9XG5cbiAgJi0tc2l6ZS1sZyB7XG4gICAgd2lkdGg6IDk1dnc7XG4gICAgbWF4LXdpZHRoOiBub25lO1xuXG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDYwMHB4KSB7XG4gICAgICB3aWR0aDogNTYwcHg7XG4gICAgfVxuICB9XG5cbiAgJi0tc2xpbSB7XG4gICAgcGFkZGluZzogdmFyKC0tZ2FwLTIpO1xuICB9XG5cbiAgJl9fY2xvc2Uge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgcmlnaHQ6IDA7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBwYWRkaW5nOiBjYWxjKDEuNHJlbSAtIDAuMWVtKSBjYWxjKDEuNHJlbSAtIDAuM2VtKTtcbiAgfVxuXG4gICZfX3RpdGxlIHtcbiAgICBAaW5jbHVkZSB0dWktZm9udC1oZWFkaW5nLXgtc21hbGwoKTtcbiAgICBwYWRkaW5nLXRvcDogdmFyKC0tZ2FwLTIpO1xuICAgIHBhZGRpbmctcmlnaHQ6IHZhcigtLWdhcC00KTtcbiAgfVxuXG4gICZfX2NvbnRlbnQge1xuICAgIG1heC1oZWlnaHQ6IDgwdmg7XG4gICAgbWFyZ2luLXRvcDogdmFyKC0tZ2FwLTQpO1xuICAgIHBhZGRpbmc6IDAgdmFyKC0tZ2FwLTQpIHZhcigtLWdhcC0yKSAwO1xuICAgIG92ZXJmbG93OiBhdXRvO1xuXG4gICAgJiBpbWcge1xuICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgIH1cblxuICAgICYtLXNsaW0sXG4gICAgJi0tbm9QYWRkaW5nIHtcbiAgICAgIHBhZGRpbmc6IDA7XG4gICAgfVxuICB9XG5cbiAgJl9fdGl0bGUgKyAmX19jb250ZW50LFxuICAmX19jb250ZW50LS1ub25DbG9zYWJsZSB7XG4gICAgcGFkZGluZy1yaWdodDogMDtcbiAgfVxuXG4gICZfX2J1dHRvbnMge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG4gICAgcGFkZGluZy10b3A6IHZhcigtLWdhcC0xKTtcbiAgICBwYWRkaW5nLWJvdHRvbTogdmFyKC0tZ2FwLTMpO1xuXG4gICAgPiAqIHtcbiAgICAgIG1hcmdpbi10b3A6IHZhcigtLWdhcC0yKTtcbiAgICB9XG5cbiAgICA+ICogKyAqIHtcbiAgICAgIG1hcmdpbi1sZWZ0OiB2YXIoLS1nYXAtNCk7XG4gICAgfVxuICB9XG59XG5cbi50dWktcG9wb3ZlclBvc2l0aW9uZXIge1xuICAvKiBub3RlOiBwb3NpdGlvbjogYWJzb2x1dGUgKyB6LWluZGV4IHRyaWdnZXJzIGEgbmV3IHN0YWNraW5nIGNvbnRleHQqL1xuICAvKiB0aGlzIGFsbG93cyB1cyB0byBlc2NhcGUgZnJvbSBvdmVyZmxvdzogaGlkZGVuLiovXG4gIC8qIGJlY2F1c2Ugc3RhY2tpbmcgY29udGV4dHMgY2FuIGJlIG5lc3RlZCwgdGhpcyB3aWxsIHN0aWxsIHdvcmsgY29ycmVjdGx5Ki9cbiAgLyogZXZlbiBpbnNpZGUgbW9kYWxzLCB3aGljaCBoYXZlIGEgaGlnaGVyIHotaW5kZXgqL1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgLyohcnRsOmlnbm9yZSovXG4gIGxlZnQ6IDA7XG4gIHotaW5kZXg6IHZhcigtLXppbmRleC1wb3BvdmVyKTtcbiAgd2lkdGg6IGF1dG87XG4gIEBpbmNsdWRlIHR1aS1mb250LWJvZHkoKTtcblxuICAmLS1maXhlZCB7XG4gICAgcG9zaXRpb246IGZpeGVkO1xuICB9XG5cbiAgJi0tdHJhbnNpdGlvbi1kZWZhdWx0IHtcbiAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMnM7XG4gIH1cblxuICAmLS10cmFuc2l0aW9uLWRlZmF1bHQtZW50ZXIsXG4gICYtLXRyYW5zaXRpb24tZGVmYXVsdC1sZWF2ZS10byB7XG4gICAgb3BhY2l0eTogMDtcbiAgfVxuXG4gICYtLXRyYW5zaXRpb24tZHJvcGRvd24ge1xuICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMHM7XG4gIH1cblxuICAmLS10cmFuc2l0aW9uLWRyb3Bkb3duLWVudGVyLFxuICAmLS10cmFuc2l0aW9uLWRyb3Bkb3duLWxlYXZlLXRvIHtcbiAgICBvcGFjaXR5OiAwO1xuICB9XG5cbiAgJi0tdHJhbnNpdGlvbi1kcm9wZG93bi1sZWF2ZS10byB7XG4gICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjE1cztcbiAgfVxufVxuXG4udHVpLW1vZGFsLS1hbmltYXRlZCAudHVpLXBvcG92ZXJQb3NpdGlvbmVyIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cbi50dWktbW9kYWwtLWFuaW1hdGVkLnR1aS1tb2RhbC0taW4gLnR1aS1wb3BvdmVyUG9zaXRpb25lciB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuXG4udHVpLW1pbmlQcm9maWxlQ2FyZCB7XG4gIC8qIFRoZSBwYXJlbnQgd2hvIHVzZXMgdGhpcyBjYXJkIGRlY2lkZXMgdGhlIHdpZHRoL2hlaWdodC4qL1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgcGFkZGluZzogdmFyKC0tZ2FwLTIpO1xuICBvdXRsaW5lOiBub25lO1xuXG4gICYtLW5vLWF2YXRhciB7XG4gICAgcGFkZGluZy1sZWZ0OiB2YXIoLS1nYXAtNCk7XG4gIH1cblxuICAmLS1uby1kcm9wZG93biB7XG4gICAgcGFkZGluZy1yaWdodDogdmFyKC0tZ2FwLTQpO1xuICB9XG5cbiAgJi0tbm8tcGFkZGluZyB7XG4gICAgLyogUmVzZXQgcGFkZGluZyB0byB6ZXJvLiovXG4gICAgcGFkZGluZzogMDtcbiAgfVxuXG4gICYtLWJvcmRlciB7XG4gICAgYm9yZGVyOiB2YXIoLS1ib3JkZXItd2lkdGgtdGhpbikgc29saWQgdmFyKC0tY29sb3ItbmV1dHJhbC01KTtcbiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1ib3JkZXItcmFkaXVzLW5vcm1hbCk7XG4gIH1cblxuICAmLS1oYXNTaGFkb3cge1xuICAgIGJveC1zaGFkb3c6IHZhcigtLXNoYWRvdy0yKTtcbiAgfVxuXG4gICZfX2F2YXRhciB7XG4gICAgbWFyZ2luLXJpZ2h0OiB2YXIoLS1nYXAtMik7XG4gIH1cblxuICAmLS1ob3Jpem9udGFsIHtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICB9XG5cbiAgJl9fZGVzY3JpcHRpb24ge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleDogMTtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAmLS1ob3Jpem9udGFsIHtcbiAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG5cbiAgICAgICYgPiAqICsgKiB7XG4gICAgICAgIHBhZGRpbmctbGVmdDogdmFyKC0tZ2FwLTQpO1xuICAgICAgfVxuICAgIH1cblxuICAgICYtLWhvcml6b250YWxJdGVtcy0xIHtcbiAgICAgICYgPiAqIHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJi0taG9yaXpvbnRhbEl0ZW1zLTIge1xuICAgICAgJiA+ICoge1xuICAgICAgICB3aWR0aDogNTAlO1xuICAgICAgfVxuICAgIH1cblxuICAgICYtLWhvcml6b250YWxJdGVtcy0zIHtcbiAgICAgICYgPiAqIHtcbiAgICAgICAgd2lkdGg6IDMzJTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmLS1ob3Jpem9udGFsSXRlbXMtNCB7XG4gICAgICAmID4gKiB7XG4gICAgICAgIHdpZHRoOiAyNSU7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgJl9fcm93IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cbiAgICAmLXRleHQge1xuICAgICAgQGluY2x1ZGUgdHVpLWZvbnQtYm9keS1zbWFsbCgpO1xuICAgICAgbWFyZ2luOiAwO1xuICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcblxuICAgICAgJi0tYm9sZCB7XG4gICAgICAgIEBpbmNsdWRlIHR1aS1mb250LWhlYXZ5KCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJi1saW5rIHtcbiAgICAgIEBpbmNsdWRlIHR1aS1mb250LWxpbmstc21hbGwoKTtcbiAgICAgIG1hcmdpbjogMDtcbiAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG5cbiAgICAgICYtLWJvbGQge1xuICAgICAgICBAaW5jbHVkZSB0dWktZm9udC1oZWF2eSgpO1xuICAgICAgfVxuICAgIH1cblxuICAgICYtLXdpdGhHYXAge1xuICAgICAgbWFyZ2luLWJvdHRvbTogdmFyKC0tZ2FwLTEpO1xuICAgIH1cbiAgfVxuXG4gICZfX2Ryb3BEb3duIHtcbiAgICBtYXJnaW4tbGVmdDogdmFyKC0tZ2FwLTQpO1xuICB9XG59XG5cbi50dWktcHJvZ3Jlc3Mge1xuICBAaW5jbHVkZSB0dWktZm9udC1ib2R5LXh4LXNtYWxsKCk7XG5cbiAgZGlzcGxheTogZmxleDtcbiAgaGVpZ2h0OiAxNHB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1wcm9ncmVzcy1jb250YWluZXItYmctY29sb3IpO1xuXG4gICYtLWNocm9tZSB7XG4gICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tcHJvZ3Jlc3MtYm9yZGVyLWNvbG9yKTtcbiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1nYXAtMik7XG4gIH1cblxuICAmLS1zbWFsbCB7XG4gICAgaGVpZ2h0OiAxMnB4O1xuICAgIGxpbmUtaGVpZ2h0OiAxMHB4O1xuICB9XG5cbiAgJi0teC1zbWFsbCB7XG4gICAgaGVpZ2h0OiA2cHg7XG4gIH1cblxuICAmLS1oaWRlQmFja2dyb3VuZCB7XG4gICAgYmFja2dyb3VuZDogbm9uZTtcbiAgfVxuXG4gICZfX2JhciB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXByb2dyZXNzLXZhbHVlLWJnLWNvbG9yKTtcbiAgICB0cmFuc2l0aW9uOiB3aWR0aCB2YXIoLS10cmFuc2l0aW9uLXByb2dyZXNzLWZ1bmN0aW9uKVxuICAgICAgdmFyKC0tdHJhbnNpdGlvbi1wcm9ncmVzcy1kdXJhdGlvbik7XG5cbiAgICAudHVpLXByb2dyZXNzLS1jaHJvbWUgJiB7XG4gICAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1nYXAtMik7XG4gICAgfVxuICB9XG5cbiAgJl9fbGFiZWwge1xuICAgIHBhZGRpbmc6IDAgdmFyKC0tZ2FwLTEpO1xuICAgIG9wYWNpdHk6IDA7XG5cbiAgICAmLS1pbnNpZGUge1xuICAgICAgY29sb3I6IHZhcigtLXByb2dyZXNzLXZhbHVlLXRleHQtY29sb3IpO1xuICAgICAgb3BhY2l0eTogMTtcbiAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgdmFyKC0tdHJhbnNpdGlvbi1wcm9ncmVzcy1mdW5jdGlvbilcbiAgICAgICAgdmFyKC0tdHJhbnNpdGlvbi1wcm9ncmVzcy1kdXJhdGlvbik7XG4gICAgfVxuICAgICYtLW91dHNpZGUge1xuICAgICAgY29sb3I6IHZhcigtLXByb2dyZXNzLWNvbnRhaW5lci10ZXh0LWNvbG9yKTtcbiAgICAgIG9wYWNpdHk6IDE7XG4gICAgfVxuICB9XG59XG5cbiRwcm9ncmVzcy10cmFja2VyLWxpbmUtc206IDEwMHB4ICFkZWZhdWx0O1xuJHByb2dyZXNzLXRyYWNrZXItbGluZS1tZDogMjAwcHggIWRlZmF1bHQ7XG4kcHJvZ3Jlc3MtdHJhY2tlci1saW5lLWxnOiAyNTBweCAhZGVmYXVsdDtcbiRwcm9ncmVzcy10cmFja2VyLWhhbGYtY2lyY2xlOiAxNHB4ICFkZWZhdWx0O1xuXG4udHVpLXByb2dyZXNzVHJhY2tlckl0ZW1zIHtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIG1hcmdpbjogMDtcbiAgbGlzdC1zdHlsZTogbm9uZTtcblxuICAvKiBMaW5lIHN0eWxlcyovXG4gICYgPiAqICsgKiB7XG4gICAgJi50dWktcHJvZ3Jlc3NUcmFja2VySXRlbSB7XG4gICAgICAudHVpLXByb2dyZXNzVHJhY2tlckl0ZW1fX2NvbnRlbnQ6OmJlZm9yZSB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAkcHJvZ3Jlc3MtdHJhY2tlci1oYWxmLWNpcmNsZTtcbiAgICAgICAgbGVmdDogLTUwJTtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICAgICAgICBib3JkZXItd2lkdGg6IHZhcigtLWJvcmRlci13aWR0aC10aGluKSAwIDAgMDtcbiAgICAgICAgY29udGVudDogJyc7XG4gICAgICB9XG5cbiAgICAgICYtLXBlbmRpbmcge1xuICAgICAgICAudHVpLXByb2dyZXNzVHJhY2tlckl0ZW1fX2NvbnRlbnQ6OmJlZm9yZSB7XG4gICAgICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1wcm9ncmVzc3RyYWNrZXItY29sb3ItcGVuZGluZyk7XG4gICAgICAgICAgYm9yZGVyLXN0eWxlOiBkb3R0ZWQ7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgJi0tY29tcGxldGUge1xuICAgICAgICAudHVpLXByb2dyZXNzVHJhY2tlckl0ZW1fX2NvbnRlbnQ6OmJlZm9yZSB7XG4gICAgICAgICAgdG9wOiAoJHByb2dyZXNzLXRyYWNrZXItaGFsZi1jaXJjbGUgLSAxKTtcbiAgICAgICAgICBib3JkZXItY29sb3I6IHZhcigtLXByb2dyZXNzdHJhY2tlci1jb2xvci1jb21wbGV0ZSk7XG4gICAgICAgICAgYm9yZGVyLXdpZHRoOiB2YXIoLS1ib3JkZXItd2lkdGgtdGhpY2spIDAgMCAwO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgICYtLWFjaGlldmVkIHtcbiAgICAgICAgLnR1aS1wcm9ncmVzc1RyYWNrZXJJdGVtX19jb250ZW50OjpiZWZvcmUge1xuICAgICAgICAgIHRvcDogKCRwcm9ncmVzcy10cmFja2VyLWhhbGYtY2lyY2xlIC0gMSk7XG4gICAgICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1wcm9ncmVzc3RyYWNrZXItY29sb3ItYWNoaWV2ZWQpO1xuICAgICAgICAgIGJvcmRlci13aWR0aDogdmFyKC0tYm9yZGVyLXdpZHRoLXRoaWNrKSAwIDAgMDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuICAmLS12ZXJ0aWNhbCB7XG4gICAgJiA+ICogKyAqIHtcbiAgICAgICYudHVpLXByb2dyZXNzVHJhY2tlckl0ZW0ge1xuICAgICAgICAudHVpLXByb2dyZXNzVHJhY2tlckl0ZW1fX2NvbnRlbnQ6OmJlZm9yZSB7XG4gICAgICAgICAgdG9wOiAtNTAlO1xuICAgICAgICAgIGxlZnQ6ICgkcHJvZ3Jlc3MtdHJhY2tlci1oYWxmLWNpcmNsZSAtIDEpO1xuICAgICAgICAgIHdpZHRoOiAwO1xuICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICBib3JkZXItd2lkdGg6IDAgMCAwIHZhcigtLWJvcmRlci13aWR0aC10aGljayk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAudHVpLXByb2dyZXNzVHJhY2tlckl0ZW0ge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBmbGV4LXNocmluazogMDtcblxuICAgICYtLXNtYWxsIHtcbiAgICAgIHdpZHRoOiAkcHJvZ3Jlc3MtdHJhY2tlci1saW5lLXNtO1xuICAgIH1cblxuICAgICYtLW1lZGl1bSB7XG4gICAgICB3aWR0aDogJHByb2dyZXNzLXRyYWNrZXItbGluZS1tZDtcbiAgICB9XG5cbiAgICAmLS1sYXJnZSB7XG4gICAgICB3aWR0aDogJHByb2dyZXNzLXRyYWNrZXItbGluZS1sZztcbiAgICB9XG5cbiAgICAmX19jb250ZW50IHtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgIH1cblxuICAgICZfX2xhYmVsIHtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgbWFyZ2luOiAwIGF1dG87XG4gICAgICBwYWRkaW5nOiB2YXIoLS1nYXAtMik7XG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgICYtY3VycmVudCB7XG4gICAgICAgIC50dWktZm9ybUJ0biB7XG4gICAgICAgICAgY29sb3I6IHZhcigtLWNvbG9yLXN0YXRlLWFjdGl2ZSk7XG4gICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAmX19zdGF0dXMsXG4gICAgJl9fdGFyZ2V0IHtcbiAgICAgIEBpbmNsdWRlIHNyLW9ubHkoKTtcbiAgICB9XG5cbiAgICAvKiBTcGFjaW5nIGFmdGVyIGZvciBvdmVyZmxvdyBkZXRlY3RvciovXG4gICAgOmxhc3QtY2hpbGQge1xuICAgICAgJi0tc21hbGwge1xuICAgICAgICB3aWR0aDogKCRwcm9ncmVzcy10cmFja2VyLWxpbmUtc20gKiAyKTtcbiAgICAgICAgcGFkZGluZy1yaWdodDogJHByb2dyZXNzLXRyYWNrZXItbGluZS1zbTtcbiAgICAgIH1cblxuICAgICAgJi0tbWVkaXVtIHtcbiAgICAgICAgd2lkdGg6ICgkcHJvZ3Jlc3MtdHJhY2tlci1saW5lLW1kICogMik7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6ICRwcm9ncmVzcy10cmFja2VyLWxpbmUtbWQ7XG4gICAgICB9XG5cbiAgICAgICYtLWxhcmdlIHtcbiAgICAgICAgd2lkdGg6ICgkcHJvZ3Jlc3MtdHJhY2tlci1saW5lLWxnICogMik7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6ICRwcm9ncmVzcy10cmFja2VyLWxpbmUtbGc7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgJi0tdmVydGljYWwge1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cbiAgICAudHVpLXByb2dyZXNzVHJhY2tlckl0ZW0ge1xuICAgICAgd2lkdGg6IGF1dG87XG4gICAgICBoZWlnaHQ6IDgwcHg7XG5cbiAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICB9XG5cbiAgICAgICZfX2xhYmVsIHtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBwYWRkaW5nOiB2YXIoLS1nYXAtMSkgdmFyKC0tZ2FwLTIpO1xuICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4udHVpLXByb2dyZXNzVHJhY2tlckJ1dHRvbiB7XG4gIHdpZHRoOiAxMDAlO1xuICBwYWRkaW5nOiB2YXIoLS1nYXAtMik7XG4gIGNvbG9yOiB2YXIoLS1jb2xvci1zdGF0ZSk7XG4gIGxpbmUtaGVpZ2h0OiB2YXIoLS1mb250LWJvZHktbGluZS1oZWlnaHQpO1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xuICBAaW5jbHVkZSB0dWktd29yZGJyZWFrLS1oYXJkKCk7XG5cbiAgJjpob3ZlcixcbiAgJjpmb2N1cyB7XG4gICAgY29sb3I6IHZhcigtLWNvbG9yLXN0YXRlKTtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci1zdGF0ZS1oaWdobGlnaHQtbmV1dHJhbCk7XG4gIH1cblxuICAmLS1zZWxlY3RlZCB7XG4gICAgY29sb3I6IHZhcigtLWNvbG9yLW5ldXRyYWwtMSk7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tY29sb3Itc3RhdGUtYWN0aXZlKTtcbiAgICBib3JkZXItY29sb3I6IHZhcigtLWNvbG9yLW5ldXRyYWwtMyk7XG5cbiAgICAmOmhvdmVyLFxuICAgICY6Zm9jdXMsXG4gICAgJjpmb2N1czpob3ZlciB7XG4gICAgICBjb2xvcjogdmFyKC0tY29sb3ItbmV1dHJhbC0xKTtcbiAgICAgIGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLXN0YXRlLWFjdGl2ZSk7XG4gICAgICBib3JkZXItY29sb3I6IHZhcigtLWNvbG9yLW5ldXRyYWwtMyk7XG4gICAgfVxuICB9XG59XG5cbi50dWktcHJvZ3Jlc3NUcmFja2VyQ2lyY2xlIHtcbiAgJHBlbmRpbmc6ICN7Jn0tLXBlbmRpbmc7XG4gICRjb21wbGV0ZTogI3smfS0tY29tcGxldGU7XG4gICRhY2hpZXZlZDogI3smfS0tYWNoaWV2ZWQ7XG4gICR0YXJnZXQ6ICN7Jn0tLXRhcmdldDtcblxuICAmX19vdXRlciB7XG4gICAgei1pbmRleDogMjtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgd2lkdGg6IGNhbGModmFyKC0tZ2FwLTcpICsgMXB4KTtcbiAgICBoZWlnaHQ6IGNhbGModmFyKC0tZ2FwLTcpICsgMXB4KTtcbiAgICBib3JkZXI6IHZhcigtLWJvcmRlci13aWR0aC1ub3JtYWwpIHRyYW5zcGFyZW50IGRvdHRlZDtcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XG5cbiAgICAvKiBQZW5kaW5nIHRhcmdldCovXG4gICAgJiN7JHBlbmRpbmd9JiN7JHRhcmdldH0ge1xuICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1wcm9ncmVzc3RyYWNrZXItY29sb3ItcGVuZGluZyk7XG4gICAgfVxuXG4gICAgLyogQWNoaWV2ZWQgdGFyZ2V0Ki9cbiAgICAmI3skdGFyZ2V0fSYjeyRhY2hpZXZlZH0ge1xuICAgICAgYmFja2dyb3VuZDogdmFyKC0tcHJvZ3Jlc3N0cmFja2VyLWNvbnRhaW5lci1iZy1jb2xvcik7XG4gICAgICBib3JkZXItY29sb3I6IHZhcigtLXByb2dyZXNzdHJhY2tlci1jb2xvci1hY2hpZXZlZCk7XG4gICAgICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICAgIH1cbiAgfVxuXG4gICZfX21pZGRsZSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIHdpZHRoOiBjYWxjKHZhcigtLWdhcC00KSArIDFweCk7XG4gICAgaGVpZ2h0OiBjYWxjKHZhcigtLWdhcC00KSArIDFweCk7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgYm9yZGVyOiB2YXIoLS1ib3JkZXItd2lkdGgtdGhpbikgc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgIC13ZWJraXQtcHJpbnQtY29sb3ItYWRqdXN0OiBleGFjdDtcbiAgICBjb2xvci1hZGp1c3Q6IGV4YWN0O1xuXG4gICAgLyogUGVuZGluZyovXG4gICAgI3skcGVuZGluZ30gJiB7XG4gICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1wcm9ncmVzc3RyYWNrZXItY29sb3ItcGVuZGluZyk7XG4gICAgfVxuXG4gICAgLyogUGVuZGluZyB0YXJnZXQqL1xuICAgICN7JHBlbmRpbmd9I3skdGFyZ2V0fSAmIHtcbiAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgIH1cblxuICAgIC8qIENvbXBsZXRlKi9cbiAgICAjeyRjb21wbGV0ZX0gJiB7XG4gICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1wcm9ncmVzc3RyYWNrZXItY29sb3ItY29tcGxldGUpO1xuICAgIH1cblxuICAgIC8qIEFjaGlldmVkKi9cbiAgICAjeyRhY2hpZXZlZH0gJiB7XG4gICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1wcm9ncmVzc3RyYWNrZXItY29sb3ItYWNoaWV2ZWQpO1xuICAgIH1cbiAgfVxuXG4gICZfX2lubmVyIHtcbiAgICB3aWR0aDogY2FsYyh2YXIoLS1nYXAtMikgKyAxcHgpO1xuICAgIGhlaWdodDogY2FsYyh2YXIoLS1nYXAtMikgKyAxcHgpO1xuICAgIGJhY2tncm91bmQ6IHZhcigtLXByb2dyZXNzdHJhY2tlci1jb250YWluZXItYmctY29sb3IpO1xuICAgIGJvcmRlcjogdmFyKC0tYm9yZGVyLXdpZHRoLXRoaW4pIHNvbGlkXG4gICAgICB2YXIoLS1wcm9ncmVzc3RyYWNrZXItY29udGFpbmVyLWJnLWNvbG9yKTtcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XG5cbiAgICAvKiBQZW5kaW5nKi9cbiAgICAjeyRwZW5kaW5nfSAmIHtcbiAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tcHJvZ3Jlc3N0cmFja2VyLWNvbnRhaW5lci1iZy1jb2xvcik7XG4gICAgfVxuXG4gICAgLyogUGVuZGluZyB0YXJnZXQqL1xuICAgICN7JHBlbmRpbmd9I3skdGFyZ2V0fSAmIHtcbiAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tcHJvZ3Jlc3N0cmFja2VyLWNvbG9yLXBlbmRpbmcpO1xuICAgIH1cblxuICAgIC8qIEFjaGlldmVkKi9cbiAgICAjeyRhY2hpZXZlZH0gJiB7XG4gICAgICBib3JkZXItY29sb3I6IHZhcigtLXByb2dyZXNzdHJhY2tlci1jb250YWluZXItYmctY29sb3IpO1xuICAgIH1cbiAgfVxufVxuLmllLFxuLm1zZWRnZSB7XG4gIC50dWktcHJvZ3Jlc3NUcmFja2VyQ2lyY2xlLS1hY2hpZXZlZCB7XG4gICAgLnR1aS1wcm9ncmVzc1RyYWNrZXJDaXJjbGUge1xuICAgICAgJl9fbWlkZGxlIHtcbiAgICAgICAgYm9yZGVyOiB2YXIoLS1nYXAtMSkgc29saWQgdmFyKC0tcHJvZ3Jlc3N0cmFja2VyLWNvbG9yLWFjaGlldmVkKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAudHVpLXByb2dyZXNzVHJhY2tlckNpcmNsZS0tY29tcGxldGUge1xuICAgIC50dWktcHJvZ3Jlc3NUcmFja2VyQ2lyY2xlIHtcbiAgICAgICZfX21pZGRsZSB7XG4gICAgICAgIGJvcmRlcjogdmFyKC0tZ2FwLTEpIHNvbGlkIHZhcigtLXByb2dyZXNzdHJhY2tlci1jb2xvci1jb21wbGV0ZSk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi50dWktcHJvZ3Jlc3NUcmFja2VyTmF2X19pdGVtcyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBtYXJnaW46IDA7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG5cbiAgLnR1aS1wcm9ncmVzc1RyYWNrZXJOYXYtLXZlcnRpY2FsICYge1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIH1cbn1cblxuLnR1aS1wcm9ncmVzc1RyYWNrZXJOYXZDaXJjbGVBY2hpZXZlbWVudCB7XG4gIC8qIHN0YXRlcyovXG4gICRwZW5kaW5nOiAjeyZ9LS1wZW5kaW5nO1xuICAkY29tcGxldGU6ICN7Jn0tLWNvbXBsZXRlO1xuICAkYWNoaWV2ZWQ6ICN7Jn0tLWFjaGlldmVkO1xuICAkdGFyZ2V0OiAjeyZ9LS10YXJnZXQ7XG4gICRjdXJyZW50OiAjeyZ9LS1jdXJyZW50O1xuXG4gICZfX291dGVyIHtcbiAgICB6LWluZGV4OiAyO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1zaHJpbms6IDA7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICB3aWR0aDogdmFyKC0tcHJvZ3Jlc3N0cmFja2VyLWZ1bGwtbWFya2VyLXNpemUpO1xuICAgIGhlaWdodDogdmFyKC0tcHJvZ3Jlc3N0cmFja2VyLWZ1bGwtbWFya2VyLXNpemUpO1xuICAgIGJvcmRlcjogdmFyKC0tYm9yZGVyLXdpZHRoLW5vcm1hbCkgdHJhbnNwYXJlbnQgZG90dGVkO1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcblxuICAgIC8qKlxuICAgICAqIHN0YXRlc1xuICAgICAqKi9cbiAgICAmI3skcGVuZGluZ30mI3skdGFyZ2V0fSB7XG4gICAgICBib3JkZXItY29sb3I6IHZhcigtLXByb2dyZXNzdHJhY2tlci1jb2xvci1wZW5kaW5nKTtcbiAgICB9XG5cbiAgICAmI3skdGFyZ2V0fSYjeyRhY2hpZXZlZH0ge1xuICAgICAgYmFja2dyb3VuZDogdmFyKC0tcHJvZ3Jlc3N0cmFja2VyLWNvbnRhaW5lci1iZy1jb2xvcik7XG4gICAgICBib3JkZXItY29sb3I6IHZhcigtLXByb2dyZXNzdHJhY2tlci1jb2xvci1hY2hpZXZlZCk7XG4gICAgICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICAgIH1cbiAgfVxuXG4gICZfX21pZGRsZSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIHdpZHRoOiBjYWxjKFxuICAgICAgY2FsYyh2YXIoLS1wcm9ncmVzc3RyYWNrZXItZnVsbC1tYXJrZXItc2l6ZSkgLyAyKSArIHZhcigtLWdhcC0xKVxuICAgICk7XG4gICAgaGVpZ2h0OiBjYWxjKFxuICAgICAgY2FsYyh2YXIoLS1wcm9ncmVzc3RyYWNrZXItZnVsbC1tYXJrZXItc2l6ZSkgLyAyKSArIHZhcigtLWdhcC0xKVxuICAgICk7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgYm9yZGVyOiB2YXIoLS1ib3JkZXItd2lkdGgtdGhpbikgc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgIC13ZWJraXQtcHJpbnQtY29sb3ItYWRqdXN0OiBleGFjdDtcbiAgICBjb2xvci1hZGp1c3Q6IGV4YWN0O1xuXG4gICAgLyoqXG4gICAgICogc3RhdGVzXG4gICAgICoqL1xuICAgICN7JHBlbmRpbmd9ICYge1xuICAgICAgYmFja2dyb3VuZDogdmFyKC0tcHJvZ3Jlc3N0cmFja2VyLWNvbG9yLXBlbmRpbmcpO1xuICAgIH1cblxuICAgICN7JHBlbmRpbmd9I3skdGFyZ2V0fSAmIHtcbiAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgIH1cblxuICAgICN7JGNvbXBsZXRlfSAmIHtcbiAgICAgIGJhY2tncm91bmQ6IHZhcigtLXByb2dyZXNzdHJhY2tlci1jb2xvci1jb21wbGV0ZSk7XG4gICAgfVxuXG4gICAgI3skYWNoaWV2ZWR9ICYge1xuICAgICAgYmFja2dyb3VuZDogdmFyKC0tcHJvZ3Jlc3N0cmFja2VyLWNvbG9yLWFjaGlldmVkKTtcbiAgICB9XG4gIH1cblxuICAmX19pbm5lciB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIHdpZHRoOiBjYWxjKFxuICAgICAgY2FsYyh2YXIoLS1wcm9ncmVzc3RyYWNrZXItZnVsbC1tYXJrZXItc2l6ZSkgLyA0KSArXG4gICAgICAgIHZhcigtLWJvcmRlci13aWR0aC10aGluKVxuICAgICk7XG4gICAgaGVpZ2h0OiBjYWxjKFxuICAgICAgY2FsYyh2YXIoLS1wcm9ncmVzc3RyYWNrZXItZnVsbC1tYXJrZXItc2l6ZSkgLyA0KSArXG4gICAgICAgIHZhcigtLWJvcmRlci13aWR0aC10aGluKVxuICAgICk7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tcHJvZ3Jlc3N0cmFja2VyLWNvbnRhaW5lci1iZy1jb2xvcik7XG4gICAgYm9yZGVyOiB2YXIoLS1ib3JkZXItd2lkdGgtdGhpbikgc29saWRcbiAgICAgIHZhcigtLXByb2dyZXNzdHJhY2tlci1jb250YWluZXItYmctY29sb3IpO1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcblxuICAgIC8qKlxuICAgICAqIHN0YXRlc1xuICAgICAqKi9cbiAgICAjeyRwZW5kaW5nfSAmIHtcbiAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tcHJvZ3Jlc3N0cmFja2VyLWNvbnRhaW5lci1iZy1jb2xvcik7XG4gICAgfVxuXG4gICAgI3skcGVuZGluZ30jeyR0YXJnZXR9ICYge1xuICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1wcm9ncmVzc3RyYWNrZXItY29sb3ItcGVuZGluZyk7XG4gICAgfVxuXG4gICAgI3skYWNoaWV2ZWR9ICYge1xuICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1wcm9ncmVzc3RyYWNrZXItY29udGFpbmVyLWJnLWNvbG9yKTtcbiAgICB9XG4gIH1cbiAgJl9fbGFiZWwge1xuICAgIEBpbmNsdWRlIHNyLW9ubHkoKTtcbiAgfVxufVxuLmllLFxuLm1zZWRnZSB7XG4gIC50dWktcHJvZ3Jlc3NUcmFja2VyQ2lyY2xlLS1hY2hpZXZlZCB7XG4gICAgLnR1aS1wcm9ncmVzc1RyYWNrZXJDaXJjbGUge1xuICAgICAgJl9fbWlkZGxlIHtcbiAgICAgICAgYm9yZGVyOiB2YXIoLS1nYXAtMSkgc29saWQgdmFyKC0tcHJvZ3Jlc3N0cmFja2VyLWNvbG9yLWFjaGlldmVkKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAudHVpLXByb2dyZXNzVHJhY2tlckNpcmNsZS0tY29tcGxldGUge1xuICAgIC50dWktcHJvZ3Jlc3NUcmFja2VyQ2lyY2xlIHtcbiAgICAgICZfX21pZGRsZSB7XG4gICAgICAgIGJvcmRlcjogdmFyKC0tZ2FwLTEpIHNvbGlkIHZhcigtLXByb2dyZXNzdHJhY2tlci1jb2xvci1jb21wbGV0ZSk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi50dWktcHJvZ3Jlc3NUcmFja2VyTmF2Q2lyY2xlV29ya2Zsb3cge1xuICAvKiBzdGF0ZXMqL1xuICAkcmVhZHk6ICN7Jn0tLXJlYWR5O1xuICAkbG9ja2VkOiAjeyZ9LS1sb2NrZWQ7XG4gICRvcHRpb25hbDogI3smfS0tb3B0aW9uYWw7XG4gICRzZWxlY3RlZDogI3smfS0tc2VsZWN0ZWQ7XG4gICRkb25lOiAjeyZ9LS1kb25lO1xuICAkaW52YWxpZDogI3smfS0taW52YWxpZDtcbiAgJHZpZXctb25seTogI3smfS0tdmlldy1vbmx5O1xuICAkaGlkZGVuOiAjeyZ9LS1oaWRkZW47XG5cbiAgJl9fb3V0ZXIge1xuICAgIHotaW5kZXg6IDI7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LXNocmluazogMDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIHdpZHRoOiB2YXIoLS1wcm9ncmVzc3RyYWNrZXItZnVsbC1tYXJrZXItc2l6ZSk7XG4gICAgaGVpZ2h0OiB2YXIoLS1wcm9ncmVzc3RyYWNrZXItZnVsbC1tYXJrZXItc2l6ZSk7XG4gICAgYm9yZGVyOiB2YXIoLS1ib3JkZXItd2lkdGgtbm9ybWFsKSB0cmFuc3BhcmVudCBub25lO1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcblxuICAgIC8qKlxuICAgICAqIHN0YXRlc1xuICAgICAqKi9cblxuICAgICYjeyRzZWxlY3RlZH0ge1xuICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1wcm9ncmVzc3RyYWNrZXItY29sb3Itc2VsZWN0ZWQpO1xuICAgICAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgICB9XG5cbiAgICAmI3skcmVhZHl9IHtcbiAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tcHJvZ3Jlc3N0cmFja2VyLWNvbG9yLXJlYWR5KTtcbiAgICB9XG5cbiAgICAmI3skbG9ja2VkfSB7XG4gICAgICBib3JkZXItY29sb3I6IHZhcigtLXByb2dyZXNzdHJhY2tlci1jb2xvci1sb2NrZWQpO1xuICAgIH1cblxuICAgICYjeyRkb25lfSB7XG4gICAgICBib3JkZXItY29sb3I6IHZhcigtLXByb2dyZXNzdHJhY2tlci1jb2xvci1kb25lKTtcbiAgICB9XG5cbiAgICAmI3skb3B0aW9uYWx9IHtcbiAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tcHJvZ3Jlc3N0cmFja2VyLWNvbG9yLW9wdGlvbmFsKTtcbiAgICB9XG5cbiAgICAmI3skaW52YWxpZH0ge1xuICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1wcm9ncmVzc3RyYWNrZXItY29sb3ItaW52YWxpZCk7XG4gICAgfVxuXG4gICAgJiN7JGhpZGRlbn0ge1xuICAgICAgYm9yZGVyLXN0eWxlOiBub25lO1xuICAgIH1cbiAgfVxuXG4gICZfX21pZGRsZSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIHdpZHRoOiBjYWxjKHZhcigtLXByb2dyZXNzdHJhY2tlci1mdWxsLW1hcmtlci1zaXplKSAtIHZhcigtLWdhcC0yKSk7XG4gICAgaGVpZ2h0OiBjYWxjKHZhcigtLXByb2dyZXNzdHJhY2tlci1mdWxsLW1hcmtlci1zaXplKSAtIHZhcigtLWdhcC0yKSk7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgYm9yZGVyOiB2YXIoLS1ib3JkZXItd2lkdGgtdGhpbikgbm9uZSB0cmFuc3BhcmVudDtcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XG5cbiAgICAvKipcbiAgICAgKiBzdGF0ZXNcbiAgICAgKiovXG5cbiAgICAjeyRzZWxlY3RlZH0gJiB7XG4gICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1wcm9ncmVzc3RyYWNrZXItY29sb3Itc2VsZWN0ZWQpO1xuICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1wcm9ncmVzc3RyYWNrZXItY29sb3Itc2VsZWN0ZWQpO1xuICAgIH1cblxuICAgICN7JHJlYWR5fSAmIHtcbiAgICAgIGJhY2tncm91bmQ6IHZhcigtLXByb2dyZXNzdHJhY2tlci1jb2xvci1yZWFkeS0taW52ZXJzZSk7XG4gICAgICBib3JkZXItY29sb3I6IHZhcigtLXByb2dyZXNzdHJhY2tlci1jb2xvci1yZWFkeSk7XG4gICAgICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICAgIH1cblxuICAgICN7JGxvY2tlZH0gJiB7XG4gICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1wcm9ncmVzc3RyYWNrZXItY29sb3ItbG9ja2VkLS1pbnZlcnNlKTtcbiAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tcHJvZ3Jlc3N0cmFja2VyLWNvbG9yLWxvY2tlZCk7XG4gICAgICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICAgIH1cblxuICAgICN7JGRvbmV9ICYge1xuICAgICAgYmFja2dyb3VuZDogdmFyKC0tcHJvZ3Jlc3N0cmFja2VyLWNvbG9yLWRvbmUpO1xuICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1wcm9ncmVzc3RyYWNrZXItY29sb3ItZG9uZSk7XG4gICAgfVxuXG4gICAgI3skb3B0aW9uYWx9ICYge1xuICAgICAgYmFja2dyb3VuZDogdmFyKC0tcHJvZ3Jlc3N0cmFja2VyLWNvbG9yLW9wdGlvbmFsLS1pbnZlcnNlKTtcbiAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tcHJvZ3Jlc3N0cmFja2VyLWNvbG9yLW9wdGlvbmFsKTtcbiAgICAgIGJvcmRlci1zdHlsZTogZGFzaGVkO1xuICAgIH1cblxuICAgICN7JGludmFsaWR9ICYge1xuICAgICAgYmFja2dyb3VuZDogdmFyKC0tcHJvZ3Jlc3N0cmFja2VyLWNvbG9yLWludmFsaWQpO1xuICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1wcm9ncmVzc3RyYWNrZXItY29sb3ItaW52YWxpZCk7XG4gICAgfVxuXG4gICAgI3skdmlldy1vbmx5fSAmIHtcbiAgICAgIGJhY2tncm91bmQ6IHZhcigtLXByb2dyZXNzdHJhY2tlci1jb2xvci12aWV3LW9ubHktLWludmVyc2UpO1xuICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1wcm9ncmVzc3RyYWNrZXItY29sb3Itdmlldy1vbmx5KTtcbiAgICAgIGJvcmRlci1zdHlsZTogc29saWQ7XG4gICAgfVxuXG4gICAgI3skaGlkZGVufSAmIHtcbiAgICAgIGJhY2tncm91bmQ6IHZhcigtLXByb2dyZXNzdHJhY2tlci1jb2xvci1oaWRkZW4tLWludmVyc2UpO1xuICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1wcm9ncmVzc3RyYWNrZXItY29sb3ItaGlkZGVuLS1pbnZlcnNlKTtcbiAgICB9XG5cbiAgICAjeyRyZWFkeX0jeyRzZWxlY3RlZH0gJiB7XG4gICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1wcm9ncmVzc3RyYWNrZXItY29sb3ItcmVhZHkpO1xuICAgIH1cblxuICAgICN7JGxvY2tlZH0jeyRzZWxlY3RlZH0gJiB7XG4gICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1wcm9ncmVzc3RyYWNrZXItY29sb3ItbG9ja2VkKTtcbiAgICB9XG5cbiAgICAjeyRkb25lfSN7JHNlbGVjdGVkfSAmIHtcbiAgICAgIGJhY2tncm91bmQ6IHZhcigtLXByb2dyZXNzdHJhY2tlci1jb2xvci1kb25lKTtcbiAgICB9XG5cbiAgICAjeyRvcHRpb25hbH0jeyRzZWxlY3RlZH0gJiB7XG4gICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1wcm9ncmVzc3RyYWNrZXItY29sb3Itb3B0aW9uYWwpO1xuICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1wcm9ncmVzc3RyYWNrZXItY29udGFpbmVyLWJnLWNvbG9yKTtcbiAgICAgIGJvcmRlci1zdHlsZTogZGFzaGVkO1xuICAgIH1cblxuICAgICN7JHZpZXctb25seX0jeyRzZWxlY3RlZH0gJiB7XG4gICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1wcm9ncmVzc3RyYWNrZXItY29sb3Itdmlldy1vbmx5KTtcbiAgICB9XG5cbiAgICAjeyRoaWRkZW59I3skc2VsZWN0ZWR9ICYge1xuICAgICAgYmFja2dyb3VuZDogdmFyKC0tcHJvZ3Jlc3N0cmFja2VyLWNvbG9yLWhpZGRlbi0taW52ZXJzZSk7XG4gICAgICBib3JkZXItY29sb3I6IHZhcigtLXByb2dyZXNzdHJhY2tlci1jb2xvci1oaWRkZW4tLWludmVyc2UpO1xuICAgIH1cblxuICAgICN7JGludmFsaWR9I3skc2VsZWN0ZWR9ICYge1xuICAgICAgYmFja2dyb3VuZDogdmFyKC0tcHJvZ3Jlc3N0cmFja2VyLWNvbG9yLWludmFsaWQpO1xuICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1wcm9ncmVzc3RyYWNrZXItY29sb3ItaW52YWxpZCk7XG4gICAgfVxuICB9XG5cbiAgJl9faW5uZXIge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICB3aWR0aDogdmFyKC0tZ2FwLTUpO1xuICAgIGhlaWdodDogdmFyKC0tZ2FwLTUpO1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcblxuICAgIC8qKlxuICAgICAqIHN0YXRlc1xuICAgICAqKi9cblxuICAgICN7JHNlbGVjdGVkfSAmIHtcbiAgICAgIGNvbG9yOiB2YXIoLS1wcm9ncmVzc3RyYWNrZXItY29sb3Itc2VsZWN0ZWQtLWludmVyc2UpO1xuICAgIH1cblxuICAgICN7JHJlYWR5fSAmIHtcbiAgICAgIGNvbG9yOiB2YXIoLS1wcm9ncmVzc3RyYWNrZXItY29sb3ItcmVhZHkpO1xuICAgIH1cblxuICAgICN7JGxvY2tlZH0gJiB7XG4gICAgICBjb2xvcjogdmFyKC0tcHJvZ3Jlc3N0cmFja2VyLWNvbG9yLWxvY2tlZCk7XG4gICAgfVxuXG4gICAgI3skZG9uZX0gJiB7XG4gICAgICBjb2xvcjogdmFyKC0tcHJvZ3Jlc3N0cmFja2VyLWNvbG9yLWRvbmUtLWludmVyc2UpO1xuICAgIH1cblxuICAgICN7JG9wdGlvbmFsfSAmIHtcbiAgICAgIGNvbG9yOiB2YXIoLS1wcm9ncmVzc3RyYWNrZXItY29sb3Itb3B0aW9uYWwpO1xuICAgIH1cblxuICAgICN7JGludmFsaWR9ICYge1xuICAgICAgY29sb3I6IHZhcigtLXByb2dyZXNzdHJhY2tlci1jb2xvci1pbnZhbGlkLS1pbnZlcnNlKTtcbiAgICB9XG5cbiAgICAjeyR2aWV3LW9ubHl9ICYge1xuICAgICAgY29sb3I6IHZhcigtLXByb2dyZXNzdHJhY2tlci1jb2xvci12aWV3LW9ubHkpO1xuICAgIH1cblxuICAgICN7JGhpZGRlbn0gJiB7XG4gICAgICBjb2xvcjogdmFyKC0tcHJvZ3Jlc3N0cmFja2VyLWNvbG9yLWhpZGRlbik7XG4gICAgfVxuXG4gICAgI3skcmVhZHl9I3skc2VsZWN0ZWR9ICYge1xuICAgICAgY29sb3I6IHZhcigtLXByb2dyZXNzdHJhY2tlci1jb2xvci1yZWFkeS0taW52ZXJzZSk7XG4gICAgfVxuXG4gICAgI3skbG9ja2VkfSN7JHNlbGVjdGVkfSAmIHtcbiAgICAgIGNvbG9yOiB2YXIoLS1wcm9ncmVzc3RyYWNrZXItY29sb3ItbG9ja2VkLS1pbnZlcnNlKTtcbiAgICB9XG5cbiAgICAjeyRkb25lfSN7JHNlbGVjdGVkfSAmIHtcbiAgICAgIGNvbG9yOiB2YXIoLS1wcm9ncmVzc3RyYWNrZXItY29sb3ItZG9uZS0taW52ZXJzZSk7XG4gICAgfVxuXG4gICAgI3skb3B0aW9uYWx9I3skc2VsZWN0ZWR9ICYge1xuICAgICAgY29sb3I6IHZhcigtLXByb2dyZXNzdHJhY2tlci1jb2xvci1vcHRpb25hbC0taW52ZXJzZSk7XG4gICAgfVxuXG4gICAgI3skdmlldy1vbmx5fSN7JHNlbGVjdGVkfSAmIHtcbiAgICAgIGNvbG9yOiB2YXIoLS1wcm9ncmVzc3RyYWNrZXItY29sb3Itdmlldy1vbmx5LS1pbnZlcnNlKTtcbiAgICB9XG5cbiAgICAjeyRoaWRkZW59I3skc2VsZWN0ZWR9ICYge1xuICAgICAgY29sb3I6IHZhcigtLXByb2dyZXNzdHJhY2tlci1jb2xvci1oaWRkZW4pO1xuICAgIH1cbiAgfVxuXG4gICZfX2ljb24tLWxvY2tlZCB7XG4gICAgd2lkdGg6IDEuMnJlbTtcbiAgICBoZWlnaHQ6IDEuMnJlbTtcbiAgICBtYXJnaW4tYm90dG9tOiAycHg7XG4gIH1cblxuICAmX19pY29uLS1kb25lIHtcbiAgICB3aWR0aDogMS42cmVtO1xuICAgIGhlaWdodDogMS42cmVtO1xuICAgIG1hcmdpbi10b3A6IDJweDtcbiAgfVxuXG4gICZfX2ljb24tLWludmFsaWQge1xuICAgIHdpZHRoOiAxLjRyZW07XG4gICAgaGVpZ2h0OiAxLjRyZW07XG4gICAgbWFyZ2luLWJvdHRvbTogM3B4O1xuICB9XG5cbiAgJl9faWNvbi0taGlkZGVuIHtcbiAgICB3aWR0aDogMnJlbTtcbiAgICBoZWlnaHQ6IDJyZW07XG4gIH1cblxuICAmX19sYWJlbCB7XG4gICAgQGluY2x1ZGUgc3Itb25seSgpO1xuICB9XG59XG5cbiRwcm9ncmVzc1RyYWNrZXItaGFsZi1tYXJrZXItc2l6ZTogY2FsYyhcbiAgdmFyKC0tcHJvZ3Jlc3N0cmFja2VyLWZ1bGwtbWFya2VyLXNpemUpIC8gMlxuKSAhZGVmYXVsdDtcblxuLyoqXG4gICogQ29ubmVjdG9yIGxpbmVzXG4gICoqL1xuLnR1aS1wcm9ncmVzc1RyYWNrZXJOYXZfX2l0ZW1Db250ZW50V3JhcHBlcjpiZWZvcmUge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBib3JkZXItY29sb3I6IHZhcigtLXByb2dyZXNzdHJhY2tlci1jb2xvci1wZW5kaW5nKTtcbiAgYm9yZGVyLXN0eWxlOiBkb3R0ZWQ7XG4gIGNvbnRlbnQ6ICcnO1xuXG4gIC50dWktcHJvZ3Jlc3NUcmFja2VyTmF2LS12ZXJ0aWNhbCAmIHtcbiAgICB0b3A6IGNhbGMoXG4gICAgICB2YXIoLS1wcm9ncmVzc3RyYWNrZXItZnVsbC1tYXJrZXItc2l6ZSkgKyB2YXIoLS1ib3JkZXItd2lkdGgtbm9ybWFsKVxuICAgICk7XG4gICAgLyogbmVzdGVkIGNhbGMoKSB3aWxsIGdldCBib3RjaGVkIGJ5IFJUTENTUyBwcm9jZXNzaW5nIGlmIGl0IGlzIGJyb2tlbiBkb3duIG9udG8gbXVsdGlwbGUgbGluZXMgKi9cbiAgICAvKiBwcmV0dGllci1pZ25vcmUgKi9cbiAgICBsZWZ0OiBjYWxjKCAjeyRwcm9ncmVzc1RyYWNrZXItaGFsZi1tYXJrZXItc2l6ZX0gLSBjYWxjKHZhcigtLWJvcmRlci13aWR0aC1ub3JtYWwpIC8gMikgKTtcbiAgICB3aWR0aDogdmFyKC0tYm9yZGVyLXdpZHRoLW5vcm1hbCk7XG4gICAgLyogcHJldHRpZXItaWdub3JlICovXG4gICAgaGVpZ2h0OiBjYWxjKCAxMDAlIC0gY2FsYyggdmFyKC0tcHJvZ3Jlc3N0cmFja2VyLWZ1bGwtbWFya2VyLXNpemUpICsgY2FsYyh2YXIoLS1ib3JkZXItd2lkdGgtbm9ybWFsKSAqIDIpICkgKTtcbiAgICBib3JkZXItd2lkdGg6IDAgMCAwIHZhcigtLWJvcmRlci13aWR0aC1ub3JtYWwpO1xuICB9XG4gIC50dWktcHJvZ3Jlc3NUcmFja2VyTmF2LS1ob3Jpem9udGFsICYge1xuICAgIC8qIG5lc3RlZCBjYWxjKCkgd2lsbCBnZXQgYm90Y2hlZCBieSBSVExDU1MgcHJvY2Vzc2luZyBpZiBpdCBpcyBicm9rZW4gZG93biBvbnRvIG11bHRpcGxlIGxpbmVzICovXG4gICAgLyogcHJldHRpZXItaWdub3JlICovXG4gICAgdG9wOiBjYWxjKCAjeyRwcm9ncmVzc1RyYWNrZXItaGFsZi1tYXJrZXItc2l6ZX0gLSBjYWxjKHZhcigtLWJvcmRlci13aWR0aC1ub3JtYWwpIC8gMikgKTtcbiAgICAvKiBwcmV0dGllci1pZ25vcmUgKi9cbiAgICBsZWZ0OiBjYWxjKDUwJSArICN7JHByb2dyZXNzVHJhY2tlci1oYWxmLW1hcmtlci1zaXplfSArIHZhcigtLXByb2dyZXNzdHJhY2tlci1jb25uZWN0b3ItZ2FwKSAtIHZhcigtLWJvcmRlci13aWR0aC1ub3JtYWwpKTtcbiAgICAvKiBwcmV0dGllci1pZ25vcmUgKi9cbiAgICB3aWR0aDogY2FsYyggMTAwJSAtIGNhbGMoIHZhcigtLXByb2dyZXNzdHJhY2tlci1mdWxsLW1hcmtlci1zaXplKSArIGNhbGModmFyKC0tcHJvZ3Jlc3N0cmFja2VyLWNvbm5lY3Rvci1nYXApKSArIHZhcigtLWJvcmRlci13aWR0aC1ub3JtYWwpKSk7XG4gICAgaGVpZ2h0OiB2YXIoLS1ib3JkZXItd2lkdGgtbm9ybWFsKTtcbiAgICBib3JkZXItd2lkdGg6IHZhcigtLWJvcmRlci13aWR0aC1ub3JtYWwpIDAgMCAwO1xuICB9XG59XG5cbi8qKlxuICAqIENvbm5lY3RvciBsaW5lIG1vZGlmaWVyc1xuICAqKi9cbi50dWktcHJvZ3Jlc3NUcmFja2VyTmF2X19jb25uZWN0b3Ige1xuICAvKiBpdGVtIHN0YXRlcyByZWxhdGVkIHRvIEFjaGlldmVtZW50Ki9cbiAgJi0tcGVuZGluZyB7XG4gICAgLyogdGhpcyBpcyB0aGUgZGVmYXVsdCBzdGF0ZSBpZiBubyBzdGF0ZSBBcnJheSBpcyBwYXNzZWQgaW50byB0aGUgaXRlbSovXG4gICAgLnR1aS1wcm9ncmVzc1RyYWNrZXJOYXZfX2l0ZW1Db250ZW50V3JhcHBlcjpiZWZvcmUge1xuICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1wcm9ncmVzc3RyYWNrZXItY29sb3ItcGVuZGluZyk7XG4gICAgfVxuICB9XG5cbiAgJi0tY29tcGxldGUge1xuICAgIC50dWktcHJvZ3Jlc3NUcmFja2VyTmF2X19pdGVtQ29udGVudFdyYXBwZXI6YmVmb3JlIHtcbiAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tcHJvZ3Jlc3N0cmFja2VyLWNvbG9yLWNvbXBsZXRlKTtcbiAgICAgIGJvcmRlci1zdHlsZTogc29saWQ7XG4gICAgfVxuICB9XG5cbiAgJi0tYWNoaWV2ZWQge1xuICAgIC50dWktcHJvZ3Jlc3NUcmFja2VyTmF2X19pdGVtQ29udGVudFdyYXBwZXI6YmVmb3JlIHtcbiAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tcHJvZ3Jlc3N0cmFja2VyLWNvbG9yLWFjaGlldmVkKTtcbiAgICAgIGJvcmRlci1zdHlsZTogc29saWQ7XG4gICAgfVxuICB9XG59XG5cbi8qKlxuICogSXRlbXMgYW5kIHRoZWlyIGNvbnRlbnRcbiAqKi9cbi50dWktcHJvZ3Jlc3NUcmFja2VyTmF2IHtcbiAgJl9faXRlbSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGZsZXgtc2hyaW5rOiAwO1xuXG4gICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgIC50dWktcHJvZ3Jlc3NUcmFja2VyTmF2X19pdGVtQ29udGVudFdyYXBwZXI6YmVmb3JlIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAqIENvbm5lY3RvciBnYXAgYWRqdXN0bWVudCBmb3IgbGFyZ2UgaXRlbSBtYXJrZXJzXG4gICAgKiovXG4gICAgJi0tc2VsZWN0ZWQsXG4gICAgJi0tdGFyZ2V0IHtcbiAgICAgIC50dWktcHJvZ3Jlc3NUcmFja2VyTmF2X19pdGVtQ29udGVudFdyYXBwZXI6YWZ0ZXIge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAvKiBuZXN0ZWQgY2FsYygpIHdpbGwgZ2V0IGJvdGNoZWQgYnkgUlRMQ1NTIHByb2Nlc3NpbmcgaWYgaXQgaXMgYnJva2VuIGRvd24gb250byBtdWx0aXBsZSBsaW5lcyAqL1xuICAgICAgICAvKiBwcmV0dGllci1pZ25vcmUgKi9cbiAgICAgICAgd2lkdGg6IGNhbGMoIHZhcigtLXByb2dyZXNzdHJhY2tlci1mdWxsLW1hcmtlci1zaXplKSArIGNhbGModmFyKC0tcHJvZ3Jlc3N0cmFja2VyLWNvbm5lY3Rvci1nYXApICogMikgKTtcbiAgICAgICAgLyogcHJldHRpZXItaWdub3JlICovXG4gICAgICAgIGhlaWdodDogY2FsYyggdmFyKC0tcHJvZ3Jlc3N0cmFja2VyLWZ1bGwtbWFya2VyLXNpemUpICsgY2FsYyh2YXIoLS1wcm9ncmVzc3RyYWNrZXItY29ubmVjdG9yLWdhcCkgKiAyKSApO1xuICAgICAgICBib3JkZXItY29sb3I6IHZhcigtLXByb2dyZXNzdHJhY2tlci1jb250YWluZXItYmctY29sb3IpO1xuICAgICAgICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICAgICAgICBib3JkZXItd2lkdGg6IHZhcigtLXByb2dyZXNzdHJhY2tlci1jb25uZWN0b3ItZ2FwKTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgICAgICBjb250ZW50OiAnJztcblxuICAgICAgICAudHVpLXByb2dyZXNzVHJhY2tlck5hdi0taG9yaXpvbnRhbCAmIHtcbiAgICAgICAgICB0b3A6IGNhbGModmFyKC0tcHJvZ3Jlc3N0cmFja2VyLWNvbm5lY3Rvci1nYXApICogLTEpO1xuICAgICAgICAgIGxlZnQ6IGNhbGMoXG4gICAgICAgICAgICA1MCUgLSAjeyRwcm9ncmVzc1RyYWNrZXItaGFsZi1tYXJrZXItc2l6ZX0gLSB2YXIoLS1wcm9ncmVzc3RyYWNrZXItY29ubmVjdG9yLWdhcClcbiAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICAgIC50dWktcHJvZ3Jlc3NUcmFja2VyTmF2LS12ZXJ0aWNhbCAmIHtcbiAgICAgICAgICB0b3A6IGNhbGModmFyKC0tcHJvZ3Jlc3N0cmFja2VyLWNvbm5lY3Rvci1nYXApICogLTEpO1xuICAgICAgICAgIGxlZnQ6IGNhbGModmFyKC0tcHJvZ3Jlc3N0cmFja2VyLWNvbm5lY3Rvci1nYXApICogLTEpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgJl9faXRlbUNvbnRlbnRXcmFwcGVyIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgZGlzcGxheTogZmxleDtcblxuICAgIC50dWktcHJvZ3Jlc3NUcmFja2VyTmF2LS12ZXJ0aWNhbCAmIHtcbiAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICBhbGlnbi1pdGVtczogc3RyZXRjaDtcbiAgICAgIGhlaWdodDogMTAwJTtcbiAgICB9XG4gICAgLnR1aS1wcm9ncmVzc1RyYWNrZXJOYXYtLWhvcml6b250YWwgJiB7XG4gICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICB9XG4gIH1cblxuICAmX19pdGVtQ29udGVudCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXG4gICAgJi0tZnVsbC13aWR0aCB7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICB9XG5cbiAgICAmLS1vdmVyZmxvdy1oaWRkZW4ge1xuICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB9XG5cbiAgICAudHVpLXByb2dyZXNzVHJhY2tlck5hdi0tdmVydGljYWwgJiB7XG4gICAgICBwYWRkaW5nLWxlZnQ6IHZhcigtLWdhcC0yKTtcblxuICAgICAgLyoqXG4gICAgICAqIHZhcmlhYmxlIHdpZHRoIGFuZCBnYXAgc2l6ZXMgYmFzZWQgb24gc3VwcGxpZWQgcHJvcHNcbiAgICAgICoqL1xuICAgICAgJi0tZ2FwLXNtYWxsIHtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IHZhcigtLWdhcC0yKTtcbiAgICAgIH1cblxuICAgICAgJi0tZ2FwLW1lZGl1bSB7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiB2YXIoLS1nYXAtNSk7XG4gICAgICB9XG5cbiAgICAgICYtLWdhcC1sYXJnZSB7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiB2YXIoLS1nYXAtNyk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLnR1aS1wcm9ncmVzc1RyYWNrZXJOYXYtLWhvcml6b250YWwgJiB7XG4gICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuXG4gICAgICAvKipcbiAgICAgICAgKiB2YXJpYWJsZSB3aWR0aCBhbmQgZ2FwIHNpemVzIGJhc2VkIG9uIHN1cHBsaWVkIHByb3BzXG4gICAgICAgICoqL1xuICAgICAgJi0tZ2FwLXNtYWxsIHtcbiAgICAgICAgcGFkZGluZy1yaWdodDogdmFyKC0tcHJvZ3Jlc3MtdHJhY2tlci1ob3Jpem9udGFsLWdhcC0tc21hbGwpO1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IHZhcigtLXByb2dyZXNzLXRyYWNrZXItaG9yaXpvbnRhbC1nYXAtLXNtYWxsKTtcbiAgICAgIH1cbiAgICAgICYtLXNpemUtc21hbGwge1xuICAgICAgICB3aWR0aDogdmFyKC0tcHJvZ3Jlc3MtdHJhY2tlci1ob3Jpem9udGFsLXNpemUtLXNtYWxsKTtcbiAgICAgIH1cblxuICAgICAgJi0tZ2FwLW1lZGl1bSB7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IHZhcigtLXByb2dyZXNzLXRyYWNrZXItaG9yaXpvbnRhbC1nYXAtLW1lZGl1bSk7XG4gICAgICAgIHBhZGRpbmctbGVmdDogdmFyKC0tcHJvZ3Jlc3MtdHJhY2tlci1ob3Jpem9udGFsLWdhcC0tbWVkaXVtKTtcbiAgICAgIH1cbiAgICAgICYtLXNpemUtbWVkaXVtIHtcbiAgICAgICAgd2lkdGg6IHZhcigtLXByb2dyZXNzLXRyYWNrZXItaG9yaXpvbnRhbC1zaXplLS1tZWRpdW0pO1xuICAgICAgfVxuXG4gICAgICAmLS1nYXAtbGFyZ2Uge1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiB2YXIoLS1wcm9ncmVzcy10cmFja2VyLWhvcml6b250YWwtZ2FwLS1sYXJnZSk7XG4gICAgICAgIHBhZGRpbmctbGVmdDogdmFyKC0tcHJvZ3Jlc3MtdHJhY2tlci1ob3Jpem9udGFsLWdhcC0tbGFyZ2UpO1xuICAgICAgfVxuICAgICAgJi0tc2l6ZS1sYXJnZSB7XG4gICAgICAgIHdpZHRoOiB2YXIoLS1wcm9ncmVzcy10cmFja2VyLWhvcml6b250YWwtc2l6ZS0tbGFyZ2UpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gICZfX2l0ZW1MYWJlbCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nLXRvcDogdmFyKC0tZ2FwLTEpO1xuICAgIHBhZGRpbmctYm90dG9tOiB2YXIoLS1nYXAtMSk7XG5cbiAgICAudHVpLXByb2dyZXNzVHJhY2tlck5hdi0taG9yaXpvbnRhbCAmIHtcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICB9XG5cbiAgICAmLS1jdXJyZW50IHtcbiAgICAgIC50dWktZm9ybUJ0biB7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1jb2xvci1zdGF0ZS1hY3RpdmUpO1xuICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAmX19pdGVtU3RhdHVzIHtcbiAgICBAaW5jbHVkZSBzci1vbmx5KCk7XG4gIH1cbn1cblxuOnJvb3Qge1xuICAtLXNldHRpbmdzLW5hdmlnYXRpb24tc3BhY2luZzogdmFyKC0tZ2FwLTIpO1xuICAtLXNldHRpbmdzLW5hdmlnYXRpb24tdHJlZS13aWR0aDogMzQwcHg7XG59XG5cbi50dWktc2V0dGluZ3NOYXZpZ2F0aW9uVHJlZSB7XG4gIC13ZWJraXQtaHlwaGVuczogbm9uZTtcbiAgICAgICAgICBoeXBoZW5zOiBub25lO1xuXG4gICZfX3NldHRpbmdzSXRlbSB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgY29sb3I6IHZhcigtLWNvbG9yLW5ldXRyYWwtNik7XG4gIH1cblxuICAmX19sYWJlbCB7XG4gICAgcGFkZGluZzogdmFyKC0tZ2FwLTIpIHZhcigtLWdhcC00KTtcbiAgICBsaW5lLWhlaWdodDogMS40O1xuICAgIGN1cnNvcjogZGVmYXVsdDtcbiAgfVxufVxuXG46cm9vdCB7XG4gIC0tdHVpLXNpZGVwYW5lbC1idXR0b24td2lkdGg6IDMwcHg7XG4gIC0tdHVpLXNpZGVwYW5lbC1idXR0b24taGVpZ2h0OiA2NnB4O1xuICAtLXR1aS1zaWRlcGFuZWwtYm9yZGVyLXdpZHRoOiAxcHg7XG59XG5cbi50dWktc2lkZVBhbmVsIHtcbiAgJi0tZGlzcGxheUNocm9tZSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gIH1cblxuICAvKiBpbm5lciBjb250ZW50IGFsaWdubWVudCovXG4gICYtLXJ0bCxcbiAgLmRpci1ydGwgLnR1aS1zaWRlUGFuZWwtLWx0ciAmIHtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuICB9XG4gICYtLWx0cixcbiAgLmRpci1ydGwgLnR1aS1zaWRlUGFuZWwtLXJ0bCAmIHtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG4gIH1cblxuICAmLS1zdGlja3kge1xuICAgIHBvc2l0aW9uOiBzdGlja3k7XG4gICAgdG9wOiAwO1xuICAgIG1heC1oZWlnaHQ6IDEwMHZoO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gIH1cblxuICAmLS1zdGlja3kmLS1jbG9zZWQge1xuICAgIG92ZXJmbG93OiB2aXNpYmxlO1xuICB9XG5cbiAgLyoqXG4gICAqIENsb3NlIGJ1dHRvbiwgc29tZXdoYXQgY29tcGxpY2F0ZWQgYnkgdGhlIFNpZGVQYW5lbCBiZWluZyBjb25maWd1cmFibHlcbiAgICogYmktZGlyZWN0aW9uYWwgYW5kIGJvdGggb2YgdGhvc2UgZGlyZWN0aW9ucyBhbHNvIHJlcXVpcmluZyBSVEwgc3VwcG9ydFxuICAgKiovXG4gIEBtaXhpbiBhdHRycy1mcm9tLXJpZ2h0KCkge1xuICAgIG1hcmdpbi1yaWdodDogLTFweDtcbiAgICBib3JkZXItcmlnaHQtd2lkdGg6IDA7XG4gICAgYm9yZGVyLWxlZnQtd2lkdGg6IHZhcigtLXR1aS1zaWRlcGFuZWwtYm9yZGVyLXdpZHRoKTtcbiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1idG4tcmFkaXVzKSAwIDAgdmFyKC0tYnRuLXJhZGl1cyk7XG5cbiAgICAmOmhvdmVyLFxuICAgICY6YWN0aXZlLFxuICAgICY6YWN0aXZlOmZvY3VzLFxuICAgICY6YWN0aXZlOmhvdmVyIHtcbiAgICAgIGJvcmRlci1yaWdodC13aWR0aDogMDtcbiAgICAgIGJvcmRlci1sZWZ0LXdpZHRoOiB2YXIoLS10dWktc2lkZXBhbmVsLWJvcmRlci13aWR0aCk7XG4gICAgICBib3gtc2hhZG93OiAtMnB4IDFweCA0cHggMCByZ2JhKDAsIDAsIDAsIDAuMik7XG4gICAgfVxuXG4gICAgLyogRmxleEljb24qL1xuICAgIC50dWktaWNvbkJ0bl9faWNvbiB7XG4gICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg5MGRlZyk7XG4gICAgfVxuICB9XG4gIEBtaXhpbiBhdHRycy1mcm9tLWxlZnQoKSB7XG4gICAgbWFyZ2luLWxlZnQ6IC0xcHg7XG4gICAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAxcHg7XG4gICAgYm9yZGVyLWxlZnQtd2lkdGg6IDA7XG4gICAgYm9yZGVyLXJhZGl1czogMCB2YXIoLS1idG4tcmFkaXVzKSB2YXIoLS1idG4tcmFkaXVzKSAwO1xuXG4gICAgJjpob3ZlcixcbiAgICAmOmFjdGl2ZSxcbiAgICAmOmFjdGl2ZTpmb2N1cyxcbiAgICAmOmFjdGl2ZTpob3ZlciB7XG4gICAgICBib3JkZXItcmlnaHQtd2lkdGg6IHZhcigtLXR1aS1zaWRlcGFuZWwtYm9yZGVyLXdpZHRoKTtcbiAgICAgIGJvcmRlci1sZWZ0LXdpZHRoOiAwO1xuICAgICAgYm94LXNoYWRvdzogMnB4IDFweCA0cHggMCByZ2JhKDAsIDAsIDAsIDAuMik7XG4gICAgfVxuICAgIC8qIEZsZXhJY29uKi9cbiAgICAudHVpLWljb25CdG5fX2ljb24ge1xuICAgICAgdHJhbnNmb3JtOiByb3RhdGUoLTkwZGVnKTtcbiAgICB9XG4gIH1cblxuICAmX19vdXRzaWRlQ2xvc2Uge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgLnR1aS1zaWRlUGFuZWwtLWRpc3BsYXlDaHJvbWUudHVpLXNpZGVQYW5lbC0tc3RpY2t5ICYge1xuICAgICAgcG9zaXRpb246IHN0aWNreTtcbiAgICAgIHRvcDogY2FsYyg1MCUgLSAodmFyKC0tdHVpLXNpZGVwYW5lbC1idXR0b24taGVpZ2h0KSAvIDIpKTtcbiAgICB9XG4gICAgLnR1aS1zaWRlUGFuZWwtLWRpc3BsYXlDaHJvbWUgJiB7XG4gICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICBtaW4td2lkdGg6IHZhcigtLXR1aS1zaWRlcGFuZWwtYnV0dG9uLXdpZHRoKTtcbiAgICAgIG1pbi1oZWlnaHQ6IHZhcigtLXR1aS1zaWRlcGFuZWwtYnV0dG9uLWhlaWdodCk7XG4gICAgICBtYXJnaW4tYm90dG9tOiAtMXB4O1xuICAgICAgcGFkZGluZzogdmFyKC0tZ2FwLTYpIHZhcigtLWdhcC0yKTtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLW5ldXRyYWwtMyk7XG4gICAgICBib3JkZXItY29sb3I6IHZhcigtLWNvbG9yLW5ldXRyYWwtNSk7XG4gICAgfVxuXG4gICAgLnR1aS1zaWRlUGFuZWwtLWRpc3BsYXlDaHJvbWUudHVpLXNpZGVQYW5lbC0tcnRsICYsXG4gICAgLmRpci1ydGwgLnR1aS1zaWRlUGFuZWwtLWRpc3BsYXlDaHJvbWUudHVpLXNpZGVQYW5lbC0tbHRyICYge1xuICAgICAgQGluY2x1ZGUgYXR0cnMtZnJvbS1yaWdodCgpO1xuICAgIH1cblxuICAgIC50dWktc2lkZVBhbmVsLS1kaXNwbGF5Q2hyb21lLnR1aS1zaWRlUGFuZWwtLWx0ciAmLFxuICAgIC5kaXItcnRsIC50dWktc2lkZVBhbmVsLS1kaXNwbGF5Q2hyb21lLnR1aS1zaWRlUGFuZWwtLXJ0bCAmIHtcbiAgICAgIEBpbmNsdWRlIGF0dHJzLWZyb20tbGVmdCgpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBBIHdyYXBwZXIgZm9yIGNvbnRlbnQgY29udGFpbmVyLCB3aGljaCBoZWxwcyB3aXRoIHRyYW5zaXRpb25zIG9uIHdpZHRoXG4gICAqIHdoaWxlIG92ZXJmbG93aW5nIGNvbnRlbnQgaXMgc3RpbGwgdmlzaWJsZSwgYW5kIHByb3ZpZGluZyB3aGl0ZXNwYWNlXG4gICAqIGJldHdlZW4gY29udGVudCBhbmQgdGhlIGVkZ2VzIG9mIHRoZSBTaWRlUGFuZWxcbiAgICoqL1xuICAmX19pbm5lciB7XG4gICAgLnR1aS1zaWRlUGFuZWwtLWRpc3BsYXlDaHJvbWUgJiB7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgIGZsZXgtc2hyaW5rOiAxO1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci1uZXV0cmFsLTMpO1xuICAgICAgYm9yZGVyOiB2YXIoLS10dWktc2lkZXBhbmVsLWJvcmRlci13aWR0aCkgc29saWQgdmFyKC0tY29sb3ItbmV1dHJhbC01KTtcbiAgICB9XG5cbiAgICAudHVpLXNpZGVQYW5lbC0tZmx1c2ggJiB7XG4gICAgICBib3JkZXItdG9wOiBub25lO1xuICAgICAgYm9yZGVyLWJvdHRvbTogbm9uZTtcbiAgICB9XG5cbiAgICAudHVpLXNpZGVQYW5lbC0tb3Blbi50dWktc2lkZVBhbmVsLS1vdmVyZmxvd3MgJiB7XG4gICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgIH1cblxuICAgIC50dWktc2lkZVBhbmVsLS1jbG9zZWQgJiB7XG4gICAgICBtYXgtd2lkdGg6IDFweDtcbiAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICBib3JkZXItbGVmdDogMDtcbiAgICB9XG5cbiAgICAvKiB3ZSBoYXZlIHRvIGN1dCBvZmYgb3ZlcmZsb3cgZHVyaW5nIHRoZXNlIHN0YXRlcyBvdGhlcndpc2Ugd2UnbGwgYnVtcCovXG4gICAgLyogcGFnZSBzY3JvbGxiYXJzLCBvciBhIGNvbnRhaW5pbmcgZWxlbWVudCBzY3JvbGxiYXJzKi9cbiAgICAudHVpLXNpZGVQYW5lbC0tY2xvc2VkICYsXG4gICAgLnR1aS1zaWRlUGFuZWwtLWNsb3NpbmcgJixcbiAgICAudHVpLXNpZGVQYW5lbC0tb3BlbmluZyAmIHtcbiAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFRyYW5zaXRpb25lZCBjb250YWluZXIgZm9yIGFyYml0cmFyeSBTaWRlUGFuZWwgY29udGVudFxuICAgKiovXG4gICZfX2NvbnRlbnQge1xuICAgIC50dWktc2lkZVBhbmVsLS1kaXNwbGF5Q2hyb21lICYge1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIH1cblxuICAgIC50dWktc2lkZVBhbmVsLS1jbG9zZWQgJixcbiAgICAudHVpLXNpZGVQYW5lbC0tY2xvc2luZyAmIHtcbiAgICAgIG9wYWNpdHk6IDA7XG4gICAgfVxuXG4gICAgLnR1aS1zaWRlUGFuZWwtLWNsb3NlZCAmIHtcbiAgICAgIGhlaWdodDogMDtcbiAgICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICB9XG5cbiAgICAudHVpLXNpZGVQYW5lbC0tb3BlbiAmLFxuICAgIC50dWktc2lkZVBhbmVsLS1vcGVuaW5nICYge1xuICAgICAgb3BhY2l0eTogMTtcbiAgICB9XG5cbiAgICAudHVpLXNpZGVQYW5lbC0tYW5pbWF0ZWQgJiB7XG4gICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IHZhcigtLXRyYW5zaXRpb24tc2lkZXBhbmVsLWNvbnRlbnQtZHVyYXRpb24pXG4gICAgICAgIHZhcigtLXRyYW5zaXRpb24tc2lkZXBhbmVsLWNvbnRlbnQtZnVuY3Rpb24pO1xuICAgIH1cblxuICAgIC50dWktc2lkZVBhbmVsLS1vcGVuLnR1aS1zaWRlUGFuZWwtLW92ZXJmbG93cyAmIHtcbiAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgfVxuICB9XG59XG5cbi50dWktc2lkZVBhbmVsTmF2IHtcbiAgcGFkZGluZzogdmFyKC0tZ2FwLTQpIDA7XG4gIGJhY2tncm91bmQ6IHZhcigtLXNpZGUtcGFuZWwtbmF2LWJnLWNvbG9yKTtcblxuICAmID4gKiArICoge1xuICAgIG1hcmdpbi10b3A6IHZhcigtLWdhcC03KTtcbiAgfVxufVxuXG4udHVpLXNpZGVQYW5lbE5hdkJ1dHRvbkl0ZW0ge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGNvbG9yOiB2YXIoLS1zaWRlLXBhbmVsLW5hdi1pdGVtLXRleHQtY29sb3IpO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1zaWRlLXBhbmVsLW5hdi1pdGVtLWJnLWNvbG9yKTtcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1zaWRlLXBhbmVsLW5hdi1pdGVtLWJvcmRlci1jb2xvcik7XG5cbiAgLyogSXRlbSBsaSovXG4gICYudHVpLWZvY3VzV2l0aGluLFxuICAmOmhvdmVyIHtcbiAgICBjb2xvcjogdmFyKC0tc2lkZS1wYW5lbC1uYXYtaXRlbS10ZXh0LWNvbG9yLWZvY3VzKTtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1zaWRlLXBhbmVsLW5hdi1pdGVtLWJnLWNvbG9yLWZvY3VzKTtcbiAgICBib3JkZXItY29sb3I6IHZhcigtLXNpZGUtcGFuZWwtbmF2LWl0ZW0tYm9yZGVyLWNvbG9yLWZvY3VzKTtcbiAgfVxuXG4gICZfX3NpZGUge1xuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgIHBhZGRpbmctcmlnaHQ6IHZhcigtLWdhcC00KTtcbiAgfVxuXG4gICZfX25vdGlmaWNhdGlvbkRvdCB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIC8qIFRoZSBzYW1lIGFzIHBhZGRpbmcgbGVmdCBvZiBhY3Rpb2luIHBsdXMgYW5vdGhlciB0dWktZ2FwLTQgdG8gbWFrZSBzdXJlIHRoZXJlIGlzIGEgcGFkZGluZyBiZXR3ZWVuKi9cbiAgICAvKiB0aGUgYWN0aW9uIGxpbmsgYW5kIHRoZSBkb3QuKi9cbiAgICB3aWR0aDogdmFyKC0tc2lkZXBhbmVsLW5hdmlnYXRpb24taXRlbS1wYWRkaW5nLWxlZnQpO1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuXG4gICAgJi1pbm5lciB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIHdpZHRoOiAwLjZyZW07XG4gICAgICBoZWlnaHQ6IDAuNnJlbTtcbiAgICAgIG1hcmdpbi1sZWZ0OiB2YXIoLS1nYXAtMyk7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci1wcm9tcHQtYWxlcnQpO1xuICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICB9XG4gIH1cblxuICAvKiBJdGVtIGxpbmsqL1xuICAmX19hY3Rpb24ge1xuICAgIGZsZXgtZ3JvdzogMTtcbiAgICBwYWRkaW5nOiB2YXIoLS1nYXAtMikgdmFyKC0tZ2FwLTQpO1xuICAgIHBhZGRpbmctbGVmdDogdmFyKC0tc2lkZXBhbmVsLW5hdmlnYXRpb24taXRlbS1wYWRkaW5nLWxlZnQpO1xuICAgIGNvbG9yOiBpbmhlcml0O1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgLW1zLXdvcmQtYnJlYWs6IGJyZWFrLWFsbDtcbiAgICB3b3JkLWJyZWFrOiBicmVhay13b3JkO1xuXG4gICAgJjpob3ZlcixcbiAgICAmOmZvY3VzLFxuICAgICY6Zm9jdXM6aG92ZXIge1xuICAgICAgY29sb3I6IGluaGVyaXQ7XG4gICAgfVxuICB9XG5cbiAgJi0tYWN0aXZlIHtcbiAgICBjb2xvcjogdmFyKC0tc2lkZS1wYW5lbC1uYXYtaXRlbS10ZXh0LWNvbG9yLXNlbGVjdGVkKTtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1zaWRlLXBhbmVsLW5hdi1pdGVtLWJnLWNvbG9yLXNlbGVjdGVkKTtcbiAgICBib3JkZXItY29sb3I6IHZhcigtLXNpZGUtcGFuZWwtbmF2LWl0ZW0tYm9yZGVyLWNvbG9yLXNlbGVjdGVkKTtcblxuICAgICYudHVpLWZvY3VzV2l0aGluLFxuICAgICY6aG92ZXIge1xuICAgICAgY29sb3I6IHZhcigtLXNpZGUtcGFuZWwtbmF2LWl0ZW0tdGV4dC1jb2xvci1zZWxlY3RlZCk7XG4gICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1zaWRlLXBhbmVsLW5hdi1pdGVtLWJnLWNvbG9yLXNlbGVjdGVkKTtcbiAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tc2lkZS1wYW5lbC1uYXYtaXRlbS1ib3JkZXItY29sb3Itc2VsZWN0ZWQpO1xuICAgIH1cbiAgfVxufVxuXG4udHVpLXNpZGVQYW5lbE5hdkdyb3VwIHtcbiAgJiA+ICogKyAqIHtcbiAgICBtYXJnaW4tdG9wOiB2YXIoLS1nYXAtMik7XG4gIH1cblxuICAmX19oZWFkaW5nIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgcGFkZGluZzogMCB2YXIoLS1nYXAtNCk7XG4gICAgcGFkZGluZy1sZWZ0OiB2YXIoLS1zaWRlcGFuZWwtbmF2aWdhdGlvbi1pdGVtLXBhZGRpbmctbGVmdCk7XG5cbiAgICAmLXRpdGxlIHtcbiAgICAgIG1hcmdpbjogMDtcbiAgICAgIEBpbmNsdWRlIHR1aS1mb250LWhlYWRpbmctbGFiZWwoKTtcbiAgICB9XG5cbiAgICAmLXNpZGUge1xuICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgICBwYWRkaW5nLWxlZnQ6IHZhcigtLWdhcC0yKTtcbiAgICB9XG4gIH1cblxuICAmX19pdGVtcyB7XG4gICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgfVxufVxuXG4udHVpLXNpZGVQYW5lbE5hdkxpbmtJdGVtIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBjb2xvcjogdmFyKC0tc2lkZS1wYW5lbC1uYXYtaXRlbS10ZXh0LWNvbG9yKTtcbiAgYmFja2dyb3VuZDogdmFyKC0tc2lkZS1wYW5lbC1uYXYtaXRlbS1iZy1jb2xvcik7XG4gIGJvcmRlci1jb2xvcjogdmFyKC0tc2lkZS1wYW5lbC1uYXYtaXRlbS1ib3JkZXItY29sb3IpO1xuXG4gIC8qIEl0ZW0gbGkqL1xuICAmLnR1aS1mb2N1c1dpdGhpbixcbiAgJjpob3ZlciB7XG4gICAgY29sb3I6IHZhcigtLXNpZGUtcGFuZWwtbmF2LWl0ZW0tdGV4dC1jb2xvci1mb2N1cyk7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tc2lkZS1wYW5lbC1uYXYtaXRlbS1iZy1jb2xvci1mb2N1cyk7XG4gICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1zaWRlLXBhbmVsLW5hdi1pdGVtLWJvcmRlci1jb2xvci1mb2N1cyk7XG4gIH1cblxuICAmX19zaWRlIHtcbiAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICBwYWRkaW5nLXJpZ2h0OiB2YXIoLS1nYXAtNCk7XG4gIH1cblxuICAmX19ub3RpZmljYXRpb25Eb3Qge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAvKiBUaGUgc2FtZSBhcyBwYWRkaW5nIGxlZnQgb2YgYWN0aW9pbiBwbHVzIGFub3RoZXIgdHVpLWdhcC00IHRvIG1ha2Ugc3VyZSB0aGVyZSBpcyBhIHBhZGRpbmcgYmV0d2VlbiovXG4gICAgLyogdGhlIGFjdGlvbiBsaW5rIGFuZCB0aGUgZG90LiovXG4gICAgd2lkdGg6IHZhcigtLXNpZGVwYW5lbC1uYXZpZ2F0aW9uLWl0ZW0tcGFkZGluZy1sZWZ0KTtcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcblxuICAgICYtaW5uZXIge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICB3aWR0aDogMC42cmVtO1xuICAgICAgaGVpZ2h0OiAwLjZyZW07XG4gICAgICBtYXJnaW4tbGVmdDogdmFyKC0tZ2FwLTMpO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItcHJvbXB0LWFsZXJ0KTtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgfVxuICB9XG5cbiAgLyogSXRlbSBsaW5rKi9cbiAgJl9fYWN0aW9uIHtcbiAgICBmbGV4LWdyb3c6IDE7XG4gICAgcGFkZGluZzogdmFyKC0tZ2FwLTIpIHZhcigtLWdhcC00KTtcbiAgICBwYWRkaW5nLWxlZnQ6IHZhcigtLXNpZGVwYW5lbC1uYXZpZ2F0aW9uLWl0ZW0tcGFkZGluZy1sZWZ0KTtcbiAgICBjb2xvcjogaW5oZXJpdDtcbiAgICBsaW5lLWhlaWdodDogMTtcbiAgICAtbXMtd29yZC1icmVhazogYnJlYWstYWxsO1xuICAgIHdvcmQtYnJlYWs6IGJyZWFrLXdvcmQ7XG5cbiAgICAmOmhvdmVyLFxuICAgICY6Zm9jdXMsXG4gICAgJjpmb2N1czpob3ZlciB7XG4gICAgICBjb2xvcjogaW5oZXJpdDtcbiAgICB9XG4gIH1cblxuICAmLS1hY3RpdmUge1xuICAgIGNvbG9yOiB2YXIoLS1zaWRlLXBhbmVsLW5hdi1pdGVtLXRleHQtY29sb3Itc2VsZWN0ZWQpO1xuICAgIGJhY2tncm91bmQ6IHZhcigtLXNpZGUtcGFuZWwtbmF2LWl0ZW0tYmctY29sb3Itc2VsZWN0ZWQpO1xuICAgIGJvcmRlci1jb2xvcjogdmFyKC0tc2lkZS1wYW5lbC1uYXYtaXRlbS1ib3JkZXItY29sb3Itc2VsZWN0ZWQpO1xuXG4gICAgJi50dWktZm9jdXNXaXRoaW4sXG4gICAgJjpob3ZlciB7XG4gICAgICBjb2xvcjogdmFyKC0tc2lkZS1wYW5lbC1uYXYtaXRlbS10ZXh0LWNvbG9yLXNlbGVjdGVkKTtcbiAgICAgIGJhY2tncm91bmQ6IHZhcigtLXNpZGUtcGFuZWwtbmF2LWl0ZW0tYmctY29sb3Itc2VsZWN0ZWQpO1xuICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1zaWRlLXBhbmVsLW5hdi1pdGVtLWJvcmRlci1jb2xvci1zZWxlY3RlZCk7XG4gICAgfVxuICB9XG59XG5cbjpyb290IHtcbiAgLS10YWItYm9yZGVyLXdpZHRoOiAxcHg7XG4gIC8qIFRhYiBpbm5lciBob3Jpem9udGFsIHBhZGRpbmcqL1xuICAtLXRhYi1oLXBhZGRpbmc6IHZhcigtLWdhcC00KTtcbiAgLyogVGFiIGlubmVyIHZlcnRpY2FsIHBhZGRpbmcqL1xuICAtLXRhYi12LXBhZGRpbmc6IHZhcigtLWdhcC0yKTtcbiAgLyogU2l6ZSBvZiBIaWdobGlnaHQqL1xuICAtLXRhYi1oaWdobGlnaHQtaGVpZ2h0OiB2YXIoLS1nYXAtMSk7XG4gIC8qIEFkZCBleHRyYSBzcGFjaW5nIGZvciBkcm9wIHNoYWRvdyB0byBiZSBkaXNwbGF5ZWQqL1xuICAtLXRhYi1zaGFkb3ctb2Zmc2V0OiB2YXIoLS1nYXAtMyk7XG4gIC8qIFRhYiBzbWFsbCB2ZXJzaW9uIGlubmVyIGhvcml6b250YWwgcGFkZGluZyovXG4gIC0tdGFiLXNtYWxsLWgtcGFkZGluZzogdmFyKC0tZ2FwLTQpO1xuICAvKiBUYWIgc21hbGwgdmVyc2lvbiBpbm5lciB2ZXJ0aWNhbCBwYWRkaW5nKi9cbiAgLS10YWItc21hbGwtdi1wYWRkaW5nOiB2YXIoLS1nYXAtMik7XG59XG5cbi50dWktdGFicyB7XG4gICRtb2QtZmlsbDogI3smfS0tZmlsbDtcbiAgJG1vZC1ob3Jpem9udGFsOiAjeyZ9LS1ob3Jpem9udGFsO1xuICAkbW9kLXZlcnRpY2FsOiAjeyZ9LS12ZXJ0aWNhbDtcblxuICAmLS1maWxsIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgZmxleC1ncm93OiAxO1xuICAgIGhlaWdodDogMTAwJTtcbiAgfVxuXG4gICYtLXZlcnRpY2FsIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gIH1cblxuICAmX19zZWxlY3RvciB7XG4gICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgfVxuXG4gICZfX3RhYnMge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAwO1xuXG4gICAgI3skbW9kLWhvcml6b250YWx9ICYge1xuICAgICAgYm9yZGVyLWJvdHRvbTogdmFyKC0tdGFiLWJvcmRlci13aWR0aCkgc29saWQ7XG4gICAgICBib3JkZXItYm90dG9tLWNvbG9yOiB2YXIoLS10YWJzLWJvcmRlci1jb2xvcik7XG4gICAgfVxuXG4gICAgI3skbW9kLXZlcnRpY2FsfSAmIHtcbiAgICAgIGJvcmRlci1yaWdodDogdmFyKC0tdGFiLWJvcmRlci13aWR0aCkgc29saWQ7XG4gICAgICBib3JkZXItcmlnaHQtY29sb3I6IHZhcigtLXRhYnMtYm9yZGVyLWNvbG9yKTtcbiAgICB9XG4gIH1cblxuICAjeyRtb2QtdmVydGljYWx9ICZfX3RhYnMge1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7XG4gIH1cblxuICAmX190YWIge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG5cbiAgICAjeyRtb2QtaG9yaXpvbnRhbH0gJiB7XG4gICAgICBtYXJnaW46IGNhbGModmFyKC0tdGFiLXNoYWRvdy1vZmZzZXQpICogLTEpO1xuICAgICAgbWFyZ2luLWJvdHRvbTogY2FsYyh2YXIoLS10YWItYm9yZGVyLXdpZHRoKSAqIC0xKTtcbiAgICAgIHBhZGRpbmc6IHZhcigtLXRhYi1zaGFkb3ctb2Zmc2V0KTtcbiAgICAgIHBhZGRpbmctYm90dG9tOiB2YXIoLS10YWItYm9yZGVyLXdpZHRoKTtcbiAgICB9XG5cbiAgICAjeyRtb2QtdmVydGljYWx9ICYge1xuICAgICAgbWF4LXdpZHRoOiAyMjBweDtcbiAgICAgIG1hcmdpbi1yaWdodDogY2FsYyh2YXIoLS10YWItYm9yZGVyLXdpZHRoKSAqIC0xKTtcbiAgICAgIG1hcmdpbi1ib3R0b206IGNhbGModmFyKC0tdGFiLXNoYWRvdy1vZmZzZXQpICogLTEpO1xuICAgICAgcGFkZGluZy1yaWdodDogdmFyKC0tdGFiLWJvcmRlci13aWR0aCk7XG4gICAgICBwYWRkaW5nLWJvdHRvbTogdmFyKC0tdGFiLXNoYWRvdy1vZmZzZXQpO1xuICAgIH1cblxuICAgICYtLWhpZGRlbiB7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbiAgfVxuXG4gIGEmX19saW5rIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIHBhZGRpbmc6IHZhcigtLXRhYi12LXBhZGRpbmcpIHZhcigtLXRhYi1oLXBhZGRpbmcpO1xuICAgIGNvbG9yOiB2YXIoLS10YWJzLXRleHQtY29sb3IpO1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcblxuICAgIGJvcmRlcjogdmFyKC0tdGFiLWJvcmRlci13aWR0aCkgc29saWQ7XG4gICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDtcblxuICAgIHBvaW50ZXItZXZlbnRzOiBhdXRvO1xuXG4gICAgJjpob3ZlciB7XG4gICAgICBjb2xvcjogdmFyKC0tdGFicy10ZXh0LWNvbG9yLWZvY3VzKTtcbiAgICAgIGJhY2tncm91bmQ6IHZhcigtLXRhYnMtYmctY29sb3ItZm9jdXMpO1xuICAgIH1cblxuICAgICY6Zm9jdXMtdmlzaWJsZSB7XG4gICAgICBjb2xvcjogdmFyKC0tdGFicy10ZXh0LWNvbG9yLWZvY3VzKTtcbiAgICAgIGJhY2tncm91bmQ6IHZhcigtLXRhYnMtYmctY29sb3ItZm9jdXMpO1xuICAgICAgb3V0bGluZTogMnB4IHNvbGlkIHZhcigtLWNvbG9yLXN0YXRlLWZvY3VzKTtcbiAgICAgIG91dGxpbmUtb2Zmc2V0OiBjYWxjKCh2YXIoLS10YWItYm9yZGVyLXdpZHRoKSArIDRweCkgKiAtMSk7XG4gICAgfVxuXG4gICAgJjphY3RpdmUsXG4gICAgJjphY3RpdmU6Zm9jdXMsXG4gICAgJjphY3RpdmU6aG92ZXIge1xuICAgICAgY29sb3I6IHZhcigtLXRhYnMtdGV4dC1jb2xvci1hY3RpdmUpO1xuICAgICAgb3V0bGluZTogbm9uZTtcbiAgICB9XG5cbiAgICAjeyRtb2QtaG9yaXpvbnRhbH0gJiB7XG4gICAgICBtYXJnaW4tdG9wOiB2YXIoLS10YWItaGlnaGxpZ2h0LWhlaWdodCk7XG4gICAgICAvKiBvdmVybGFwIGVkZ2VzIHRvIGF2b2lkIGRvdWJsZSBib3JkZXIqL1xuICAgICAgbWFyZ2luLXJpZ2h0OiBjYWxjKHZhcigtLXRhYi1ib3JkZXItd2lkdGgpICogLTEpO1xuICAgICAgYm9yZGVyLWJvdHRvbTogbm9uZTtcbiAgICB9XG5cbiAgICAjeyRtb2QtdmVydGljYWx9ICYge1xuICAgICAgLyogb3ZlcmxhcCBlZGdlcyB0byBhdm9pZCBkb3VibGUgYm9yZGVyKi9cbiAgICAgIG1hcmdpbi1ib3R0b206IGNhbGModmFyKC0tdGFiLWJvcmRlci13aWR0aCkgKiAtMSk7XG4gICAgICBtYXJnaW4tbGVmdDogdmFyKC0tdGFiLWhpZ2hsaWdodC1oZWlnaHQpO1xuICAgICAgYm9yZGVyLXJpZ2h0OiBub25lO1xuICAgIH1cbiAgfVxuXG4gICZfX3RhYi0tZGlzYWJsZWQgYSZfX2xpbmsge1xuICAgIGNvbG9yOiB2YXIoLS10YWJzLXRleHQtY29sb3ItZGlzYWJsZWQpO1xuICAgIGN1cnNvcjogZGVmYXVsdDtcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgfVxuXG4gICZfX3RhYi0tYWN0aXZlIGEmX19saW5rIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgY29sb3I6IHZhcigtLXRhYnMtdGV4dC1jb2xvci1zZWxlY3RlZCk7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tdGFicy1iZy1jb2xvci1zZWxlY3RlZCk7XG5cbiAgICAjeyRtb2QtaG9yaXpvbnRhbH0gJiB7XG4gICAgICB0b3A6IHZhcigtLXRhYi1ib3JkZXItd2lkdGgpO1xuICAgICAgcGFkZGluZy10b3A6IGNhbGModmFyKC0tdGFiLXYtcGFkZGluZykgLSB2YXIoLS10YWItYm9yZGVyLXdpZHRoKSk7XG4gICAgICBwYWRkaW5nLWJvdHRvbTogY2FsYyh2YXIoLS10YWItdi1wYWRkaW5nKSArIHZhcigtLXRhYi1ib3JkZXItd2lkdGgpKTtcbiAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tdGFicy1ib3JkZXItY29sb3IpO1xuICAgICAgYm94LXNoYWRvdzogdmFyKC0tc2hhZG93LTMpO1xuICAgIH1cblxuICAgICN7JG1vZC12ZXJ0aWNhbH0gJiB7XG4gICAgICBsZWZ0OiB2YXIoLS10YWItYm9yZGVyLXdpZHRoKTtcbiAgICAgIHBhZGRpbmctcmlnaHQ6IGNhbGModmFyKC0tdGFiLXYtcGFkZGluZykgKyB2YXIoLS10YWItYm9yZGVyLXdpZHRoKSk7XG4gICAgICBwYWRkaW5nLWxlZnQ6IGNhbGModmFyKC0tdGFiLWgtcGFkZGluZykgLSB2YXIoLS10YWItYm9yZGVyLXdpZHRoKSk7XG4gICAgICBib3JkZXItY29sb3I6IHZhcigtLXRhYnMtYm9yZGVyLWNvbG9yKTtcbiAgICAgIGJveC1zaGFkb3c6IHZhcigtLXNoYWRvdy0yKTtcbiAgICB9XG5cbiAgICAmOjphZnRlciB7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICBiYWNrZ3JvdW5kOiB2YXIoLS10YWJzLXNlbGVjdGVkLWJhci1jb2xvcik7XG4gICAgICBjb250ZW50OiAnJztcblxuICAgICAgI3skbW9kLWhvcml6b250YWx9ICYge1xuICAgICAgICB0b3A6IGNhbGModmFyKC0tdGFiLWhpZ2hsaWdodC1oZWlnaHQpICogLTEpO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgbGVmdDogY2FsYyh2YXIoLS10YWItYm9yZGVyLXdpZHRoKSAqIC0xKTtcbiAgICAgICAgd2lkdGg6IGNhbGMoMTAwJSArICh2YXIoLS10YWItYm9yZGVyLXdpZHRoKSAqIDIpKTtcbiAgICAgICAgaGVpZ2h0OiB2YXIoLS10YWItaGlnaGxpZ2h0LWhlaWdodCk7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLWJvcmRlci1yYWRpdXMtc21hbGwpIHZhcigtLWJvcmRlci1yYWRpdXMtc21hbGwpIDAgMDtcbiAgICAgIH1cblxuICAgICAgI3skbW9kLXZlcnRpY2FsfSAmIHtcbiAgICAgICAgdG9wOiBjYWxjKHZhcigtLXRhYi1ib3JkZXItd2lkdGgpICogLTEpO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIGxlZnQ6IGNhbGModmFyKC0tdGFiLWhpZ2hsaWdodC1oZWlnaHQpICogLTEpO1xuICAgICAgICB3aWR0aDogdmFyKC0tdGFiLWhpZ2hsaWdodC1oZWlnaHQpO1xuICAgICAgICBoZWlnaHQ6IGNhbGMoMTAwJSArICh2YXIoLS10YWItYm9yZGVyLXdpZHRoKSAqIDIpKTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogdmFyKC0tYm9yZGVyLXJhZGl1cy1zbWFsbCkgMCAwIHZhcigtLWJvcmRlci1yYWRpdXMtc21hbGwpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gICZfX3RhYkxhYmVsIHtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gIH1cblxuICAmX190YWJMYWJlbEV4dHJhIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgbWFyZ2luLWxlZnQ6IHZhcigtLWdhcC0yKTtcbiAgfVxuXG4gICN7JG1vZC1maWxsfSA+ICZfX3BhbmVscyB7XG4gICAgZmxleC1ncm93OiAxO1xuICAgIG1pbi1oZWlnaHQ6IDA7XG5cbiAgICA+IC50dWktdGFiQ29udGVudCB7XG4gICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgfVxuICB9XG59XG5cbi50dWktdGFicyB7XG4gICRtb2QtaG9yaXpvbnRhbDogI3smfS0taG9yaXpvbnRhbDtcbiAgJGJsb2NrOiAjeyZ9O1xuXG4gIC8qIFNtYWxsIHRhYiovXG4gICZfX3RhYi0tc21hbGwge1xuICAgICN7JG1vZC1ob3Jpem9udGFsfSAmIHtcbiAgICAgICN7JGJsb2NrfV9fbGluayB7XG4gICAgICAgIEBpbmNsdWRlIHR1aS1mb250LWJvZHktc21hbGw7XG4gICAgICAgIHBhZGRpbmc6IHZhcigtLXRhYi1zbWFsbC12LXBhZGRpbmcpIHZhcigtLXRhYi1zbWFsbC1oLXBhZGRpbmcpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8qIEFjdGl2ZSBzbWFsbCB0YWIqL1xuICAmX190YWItLWFjdGl2ZSZfX3RhYi0tc21hbGwge1xuICAgICN7JG1vZC1ob3Jpem9udGFsfSAmIHtcbiAgICAgICN7JGJsb2NrfV9fbGluayB7XG4gICAgICAgIHBhZGRpbmctdG9wOiBjYWxjKHZhcigtLXRhYi1zbWFsbC12LXBhZGRpbmcpIC0gdmFyKC0tdGFiLWJvcmRlci13aWR0aCkpO1xuICAgICAgICAvKiBwcmV0dGllci1pZ25vcmUqL1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogY2FsYyh2YXIoLS10YWItc21hbGwtdi1wYWRkaW5nKSArIHZhcigtLXRhYi1ib3JkZXItd2lkdGgpKTtcbiAgICAgICAgY29sb3I6IHZhcigtLXRhYnMtdGV4dC1jb2xvci1zZWxlY3RlZCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLyogRGlzYWJsZWQgc21hbGwgdGFiKi9cbiAgJl9fdGFiLS1kaXNhYmxlZCZfX3RhYi0tc21hbGwge1xuICAgICN7JG1vZC1ob3Jpem9udGFsfSAmIHtcbiAgICAgICN7JGJsb2NrfV9fbGluayB7XG4gICAgICAgIGNvbG9yOiB2YXIoLS10YWJzLXRleHQtY29sb3ItZGlzYWJsZWQpO1xuICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4udHVpLXRhYkNvbnRlbnQge1xuICAudHVpLXRhYnMtLWhvcml6b250YWwgJiB7XG4gICAgcGFkZGluZy10b3A6IHZhcigtLWdhcC00KTtcbiAgfVxuXG4gIC50dWktdGFicy0taG9yaXpvbnRhbC50dWktdGFicy0tY29udGVudFNwYWNpbmctbGFyZ2UgJiB7XG4gICAgcGFkZGluZy10b3A6IHZhcigtLWdhcC04KTtcbiAgfVxuXG4gIC50dWktdGFicy0tdmVydGljYWwgJiB7XG4gICAgcGFkZGluZy1sZWZ0OiB2YXIoLS1nYXAtNCk7XG4gIH1cblxuICAudHVpLXRhYnMtLXZlcnRpY2FsLnR1aS10YWJzLS1jb250ZW50U3BhY2luZy1sYXJnZSAmIHtcbiAgICBwYWRkaW5nLWxlZnQ6IHZhcigtLWdhcC04KTtcbiAgfVxufVxuXG4udHVpLXRhZyB7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBmbGV4LXNocmluazogMDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgaGVpZ2h0OiB2YXIoLS10YWctaGVpZ2h0KTtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tdGFnLWJnLWNvbG9yKTtcbiAgYm9yZGVyOiB2YXIoLS1ib3JkZXItd2lkdGgtdGhpbikgc29saWQgdmFyKC0tdGFnLWJvcmRlci1jb2xvcik7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLXRhZy1ib3JkZXItcmFkaXVzKTtcblxuICAmLS1ub0JvcmRlciB7XG4gICAgYm9yZGVyOiBub25lO1xuICB9XG5cbiAgJi0tbGFyZ2Uge1xuICAgIGhlaWdodDogYXV0bztcbiAgICBib3JkZXItcmFkaXVzOiAxMDBweDsgLyogc3VpdGFibHkgbGFyZ2UgdG8gbWFrZSBpdCByb3VuZGVkKi9cbiAgfVxuXG4gICYtLWJvbGQge1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICB9XG5cbiAgJl9fY29udGVudCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBwYWRkaW5nOiAwIHZhcigtLWdhcC0yKTtcbiAgICBmb250LXNpemU6IHZhcigtLWZvbnQtc2l6ZS0xMyk7XG4gIH1cblxuICAmLS1sYXJnZSAmX19jb250ZW50IHtcbiAgICBwYWRkaW5nOiB2YXIoLS1nYXAtMikgdmFyKC0tZ2FwLTMpO1xuICAgIGZvbnQtc2l6ZTogdmFyKC0tZm9udC1zaXplLTE1KTtcbiAgfVxuXG4gICYtLXdpdGhCdXR0b24gJl9fY29udGVudCB7XG4gICAgcGFkZGluZy1yaWdodDogMDtcbiAgICBjb2xvcjogdmFyKC0tdGFnLWJ1dHRvbi1jb2xvcik7XG4gIH1cblxuICAmX19jb250ZW50TGFiZWwge1xuICAgIHBhZGRpbmctcmlnaHQ6IHZhcigtLWdhcC0xKTtcbiAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICB9XG5cbiAgJi0tcHJpbWFyeSB7XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci1zdGF0ZSk7XG4gIH1cblxuICAmLS1wcmltYXJ5ICZfX2NvbnRlbnQge1xuICAgIGNvbG9yOiB2YXIoLS1jb2xvci1uZXV0cmFsLTEpO1xuICB9XG59XG5cbi50dWktdGFnTGlzdCB7XG4gICRpbm5lci1oZWlnaHQ6IGNhbGMoXG4gICAgdmFyKC0tZm9ybS1pbnB1dC1oZWlnaHQpIC0gKHZhcigtLWZvcm0taW5wdXQtYm9yZGVyLXNpemUpICogMilcbiAgKTtcbiAgZGlzcGxheTogZmxleDtcbiAgbWluLXdpZHRoOiAyM3JlbTtcbiAgbWluLWhlaWdodDogdmFyKC0tZm9ybS1pbnB1dC1oZWlnaHQpO1xuICBjb2xvcjogdmFyKC0tZm9ybS1pbnB1dC10ZXh0LWNvbG9yKTtcbiAgZm9udC1zaXplOiB2YXIoLS1mb3JtLWlucHV0LWZvbnQtc2l6ZSk7XG4gIGJhY2tncm91bmQ6IHZhcigtLWZvcm0taW5wdXQtYmctY29sb3IpO1xuICBib3JkZXI6IHZhcigtLWZvcm0taW5wdXQtYm9yZGVyLXNpemUpIHNvbGlkIHZhcigtLWZvcm0taW5wdXQtYm9yZGVyLWNvbG9yKTtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tZm9ybS1pbnB1dC1ib3JkZXItcmFkaXVzKTtcblxuICAudHVpLWNvbnRleHRJbnZhbGlkICYge1xuICAgIGJvcmRlci1jb2xvcjogdmFyKC0tZm9ybS1pbnB1dC1ib3JkZXItY29sb3ItaW52YWxpZCk7XG4gICAgYm94LXNoYWRvdzogdmFyKC0tZm9ybS1pbnB1dC1zaGFkb3ctaW52YWxpZCk7XG4gIH1cblxuICAmLS1oYXNGb2N1cyB7XG4gICAgQGluY2x1ZGUgdHVpLWZvY3VzO1xuXG4gICAgLnR1aS1jb250ZXh0SW52YWxpZCAmIHtcbiAgICAgIGJhY2tncm91bmQ6IHZhcigtLWZvcm0taW5wdXQtYmctY29sb3ItaW52YWxpZC1mb2N1cyk7XG4gICAgICBib3JkZXItY29sb3I6IHZhcigtLWZvcm0taW5wdXQtYm9yZGVyLWNvbG9yLWludmFsaWQpO1xuICAgICAgb3V0bGluZS1jb2xvcjogdmFyKC0tZm9ybS1pbnB1dC1ib3JkZXItY29sb3ItaW52YWxpZCk7XG4gICAgICBib3gtc2hhZG93OiB2YXIoLS1mb3JtLWlucHV0LXNoYWRvdy1pbnZhbGlkLWZvY3VzKTtcbiAgICB9XG4gIH1cblxuICAmX190YWdzIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXg6IGF1dG87XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBtaW4td2lkdGg6IDA7XG4gIH1cblxuICAmX190YWdJdGVtcyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWdyb3c6IDE7XG4gICAgZ2FwOiB2YXIoLS1nYXAtMSk7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBtaW4td2lkdGg6IDA7XG4gICAgcGFkZGluZzogY2FsYygoI3skaW5uZXItaGVpZ2h0fSAtIHZhcigtLXRhZy1oZWlnaHQpKSAvIDIpIHZhcigtLWdhcC0yKTtcblxuICAgICYtLW9wZW4ge1xuICAgICAgZmxleC13cmFwOiB3cmFwO1xuICAgIH1cbiAgfVxuXG4gICZfX3RhZ0l0ZW0ge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1zaHJpbms6IDA7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgfVxuXG4gICZfX3N1ZmZpeCB7XG4gICAgQGluY2x1ZGUgdHVpLWZvbnQtYm9keS1zbWFsbCgpO1xuICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgIHBhZGRpbmctcmlnaHQ6IHZhcigtLWdhcC0yKTtcbiAgICBwYWRkaW5nLWxlZnQ6IHZhcigtLWdhcC0xKTtcbiAgICBjb2xvcjogdmFyKC0tY29sb3Itc3RhdGUpO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgJjpob3ZlciB7XG4gICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgfVxuICB9XG5cbiAgJl9faW5wdXQge1xuICAgIGZsZXgtZ3JvdzogMTtcbiAgICBoZWlnaHQ6IHZhcigtLXRhZy1oZWlnaHQpO1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgIGJvcmRlcjogbm9uZTtcbiAgICAmOmZvY3VzIHtcbiAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgfVxuICB9XG5cbiAgJl9fZXhwYW5kQXJyb3cge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB3aWR0aDogJGlubmVyLWhlaWdodDtcbiAgICBoZWlnaHQ6ICRpbm5lci1oZWlnaHQ7XG4gICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICBib3JkZXI6IG5vbmU7XG5cbiAgICAmOjphZnRlciB7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB0b3A6IGNhbGMoKCN7JGlubmVyLWhlaWdodH0gLSB2YXIoLS1zZWxlY3QtaWNvbi1zaXplKSkgLyAyKTtcbiAgICAgIHJpZ2h0OiBjYWxjKCgjeyRpbm5lci1oZWlnaHR9IC0gdmFyKC0tc2VsZWN0LWljb24tc2l6ZSkgKiAyKSAvIDIpO1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICB3aWR0aDogMDtcbiAgICAgIGhlaWdodDogMDtcbiAgICAgIGJvcmRlcjogdmFyKC0tc2VsZWN0LWljb24tc2l6ZSkgc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICBib3JkZXItdG9wLWNvbG9yOiB2YXIoLS1mb3JtLWlucHV0LXRleHQtY29sb3IpO1xuICAgICAgY29udGVudDogJyc7XG4gICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICB9XG4gIH1cblxuICAmX19jYXJldCB7XG4gICAgZmlsbDogdmFyKC0tY29sb3ItbmV1dHJhbC03KTtcbiAgfVxuXG4gICZfX2xvYWRpbmcge1xuICAgIG1hcmdpbjogdmFyKC0tZ2FwLTQpO1xuICB9XG59XG5cbi50dWktc2V0dGluZ3NGb3JtQnJhbmRfX3Rlc3RFbWFpbEluZm9CdXR0b24ge1xuICBhbGlnbi1zZWxmOiBjZW50ZXI7XG59XG5cbi50dWktdG9nZ2xlQnRuIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGZsZXgtc2hyaW5rOiAwO1xuICBtaW4td2lkdGg6IHZhcigtLWdhcC0xMik7XG4gIG1heC13aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiB2YXIoLS1mb3JtLWlucHV0LWhlaWdodCk7XG4gIHBhZGRpbmc6IDAgdmFyKC0tZ2FwLTIpO1xuICBjb2xvcjogdmFyKC0tdG9nZ2xlLWJ0bi10ZXh0LWNvbG9yKTtcbiAgZm9udC1zaXplOiB2YXIoLS1mb3JtLWlucHV0LWZvbnQtc2l6ZSk7XG4gIGxpbmUtaGVpZ2h0OiAxLjI7XG4gIGJhY2tncm91bmQ6IHZhcigtLXRvZ2dsZS1idG4tYmctY29sb3IpO1xuICBib3JkZXI6IG5vbmU7XG4gIGJvcmRlci1yYWRpdXM6IGNhbGModmFyKC0tYnRuLXJhZGl1cykgLSAxcHgpO1xuXG4gICY6Zm9jdXMsXG4gICY6YWN0aXZlOmZvY3VzIHtcbiAgICBjb2xvcjogdmFyKC0tdG9nZ2xlLWJ0bi10ZXh0LWNvbG9yKTtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tdG9nZ2xlLWJ0bi1iZy1jb2xvcik7XG4gICAgb3V0bGluZTogbm9uZTtcbiAgICBib3gtc2hhZG93OiBub25lO1xuICB9XG5cbiAgJjpob3ZlciB7XG4gICAgY29sb3I6IHZhcigtLXRvZ2dsZS1idG4tdGV4dC1jb2xvci1mb2N1cyk7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIGJhY2tncm91bmQ6IHZhcigtLXRvZ2dsZS1idG4tYmctY29sb3ItZm9jdXMpO1xuICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gIH1cblxuICAmOmFjdGl2ZSxcbiAgJjphY3RpdmU6Zm9jdXMsXG4gICY6YWN0aXZlOmhvdmVyIHtcbiAgICBjb2xvcjogdmFyKC0tdG9nZ2xlLWJ0bi10ZXh0LWNvbG9yLWFjdGl2ZSk7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIGJhY2tncm91bmQ6IHZhcigtLXRvZ2dsZS1idG4tYmctY29sb3ItYWN0aXZlKTtcbiAgICBib3JkZXI6IG5vbmU7XG4gICAgYm94LXNoYWRvdzogbm9uZTtcbiAgfVxuXG4gICY6Zm9jdXMtdmlzaWJsZSB7XG4gICAgb3V0bGluZTogMnB4IHNvbGlkIHZhcigtLXRvZ2dsZS1idG4tdGV4dC1jb2xvci1hY3RpdmUpO1xuICAgIG91dGxpbmUtb2Zmc2V0OiAtM3B4O1xuICB9XG5cbiAgJltkaXNhYmxlZF0ge1xuICAgIGNvbG9yOiB2YXIoLS10b2dnbGUtYnRuLXRleHQtY29sb3ItZGlzYWJsZWQpO1xuICAgIGJhY2tncm91bmQ6IHZhcigtLXRvZ2dsZS1idG4tYmctY29sb3ItZGlzYWJsZWQpO1xuICAgIGN1cnNvcjogZGVmYXVsdDtcblxuICAgICY6Zm9jdXMsXG4gICAgJjpob3ZlcixcbiAgICAmOmFjdGl2ZSxcbiAgICAmOmFjdGl2ZTpmb2N1cyxcbiAgICAmOmFjdGl2ZTpob3ZlciB7XG4gICAgICBjb2xvcjogdmFyKC0tdG9nZ2xlLWJ0bi10ZXh0LWNvbG9yLWRpc2FibGVkKTtcbiAgICAgIGJhY2tncm91bmQ6IHZhcigtLXRvZ2dsZS1idG4tYmctY29sb3ItZGlzYWJsZWQpO1xuICAgIH1cbiAgfVxuXG4gICYtLXNlbGVjdGVkIHtcbiAgICBjdXJzb3I6IGRlZmF1bHQ7XG5cbiAgICAmLFxuICAgICY6Zm9jdXMsXG4gICAgJjpob3ZlcixcbiAgICAmOmFjdGl2ZSxcbiAgICAmOmFjdGl2ZTpmb2N1cyxcbiAgICAmOmFjdGl2ZTpob3ZlciB7XG4gICAgICBjb2xvcjogdmFyKC0tdG9nZ2xlLWJ0bi10ZXh0LWNvbG9yLXNlbGVjdGVkKTtcbiAgICAgIGJhY2tncm91bmQ6IHZhcigtLXRvZ2dsZS1idG4tYmctY29sb3Itc2VsZWN0ZWQpO1xuICAgIH1cblxuICAgICY6Zm9jdXMge1xuICAgICAgb3V0bGluZTogbm9uZTtcbiAgICB9XG5cbiAgICAmOmZvY3VzLXZpc2libGUge1xuICAgICAgb3V0bGluZTogMnB4IHNvbGlkIHZhcigtLXRvZ2dsZS1idG4tdGV4dC1jb2xvci1zZWxlY3RlZCk7XG4gICAgICBvdXRsaW5lLW9mZnNldDogLTNweDtcbiAgICB9XG4gIH1cblxuICAmW2Rpc2FibGVkXSYtLXNlbGVjdGVkIHtcbiAgICBjb2xvcjogdmFyKC0tdG9nZ2xlLWJ0bi10ZXh0LWNvbG9yLXNlbGVjdGVkKTtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS10b2dnbGUtYnRuLWJnLWNvbG9yLXNlbGVjdGVkKTtcblxuICAgICY6Zm9jdXMsXG4gICAgJjpob3ZlcixcbiAgICAmOmFjdGl2ZSxcbiAgICAmOmFjdGl2ZTpmb2N1cyxcbiAgICAmOmFjdGl2ZTpob3ZlciB7XG4gICAgICBjb2xvcjogdmFyKC0tdG9nZ2xlLWJ0bi10ZXh0LWNvbG9yLXNlbGVjdGVkKTtcbiAgICAgIGJhY2tncm91bmQ6IHZhcigtLXRvZ2dsZS1idG4tYmctY29sb3Itc2VsZWN0ZWQpO1xuICAgIH1cbiAgfVxuXG4gICYtLWhhc1RleHQge1xuICAgIG1pbi13aWR0aDogNzBweDtcblxuICAgIC50dWktdG9nZ2xlQnRuX19pY29uIHtcbiAgICAgIGZvbnQtc2l6ZTogdmFyKC0tZm9udC1zaXplLTE0KTtcbiAgICB9XG4gIH1cblxuICAmLS1sYXJnZSB7XG4gICAgbWluLXdpZHRoOiAxMHJlbTtcbiAgICBtaW4taGVpZ2h0OiA0LjZyZW07XG5cbiAgICAudHVpLXRvZ2dsZUJ0bl9fY29udGVudCB7XG4gICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXG4gICAgICAmID4gKiArICoge1xuICAgICAgICBtYXJnaW4tdG9wOiB2YXIoLS1nYXAtMSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgJl9fY29udGVudCB7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgfVxuXG4gICZfX2ljb24ge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB0b3A6IDFweDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgIGZvbnQtc2l6ZTogdmFyKC0tZm9udC1zaXplLTE1KTtcbiAgfVxuXG4gICZfX3RleHQge1xuICAgIHBhZGRpbmc6IDAgdmFyKC0tZ2FwLTEpO1xuICB9XG59XG5cbi50dWktdG9nZ2xlU2V0IHtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIG1heC13aWR0aDogMTAwJTtcbiAgcGFkZGluZzogMXB4O1xuICBiYWNrZ3JvdW5kOiB2YXIoLS10b2dnbGUtYmctY29sb3IpO1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1idG4tcmFkaXVzKTtcblxuICAmLS1kaXNhYmxlZCB7XG4gICAgb3BhY2l0eTogMC40O1xuICB9XG5cbiAgJi0tc2VsZWN0IHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgfVxuXG4gICYtLWxhcmdlIHtcbiAgICBwYWRkaW5nOiAycHg7XG4gIH1cbn1cblxuOnJvb3Qge1xuICAtLWZvcm0tdG9nZ2xlLWNvbG9yOiB2YXIoLS1jb2xvci1uZXV0cmFsLTcpO1xuICAtLWZvcm0tdG9nZ2xlLWRvdC1zaXplOiAxLjZyZW07XG4gIC0tZm9ybS10b2dnbGUtY29udGFpbmVyLXdpZHRoOiA0cmVtO1xuICAtLWZvcm0tdG9nZ2xlLWNvbnRhaW5lci1oZWlnaHQ6IDJyZW07XG4gIC0tZm9ybS10b2dnbGUtY29udGFpbmVyLXJhZGl1czogMXJlbTtcbiAgLS1mb3JtLXRvZ2dsZS10ZXh0LW9mZnNldDogdmFyKC0tZ2FwLTIpO1xuICAtLWZvcm0tdG9nZ2xlLWRvdC1vZmZzZXQ6IDAuMnJlbTtcbiAgLS1mb3JtLXRvZ2dsZS1ib3R0b206IDEuOHJlbTtcbiAgLS1mb3JtLXRvZ2dsZS1mb2N1cy1ib3JkZXI6IHZhcigtLWJvcmRlci13aWR0aC1ub3JtYWwpO1xuICAtLWZvcm0tdG9nZ2xlLWZvY3VzLWdhcDogMC4xcmVtO1xufVxuXG4udHVpLXRvZ2dsZVN3aXRjaCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cbiAgJl9fYnRuIHtcbiAgICAvKiBzdHlsZWxpbnQtZGlzYWJsZS1uZXh0LWxpbmUgdHVpL2F0LWV4dGVuZC1vbmx5LXBsYWNlaG9sZGVycyovXG4gICAgQGV4dGVuZCAudHVpLWZvcm1CdG47XG4gICAgLyogc3R5bGVsaW50LWRpc2FibGUtbmV4dC1saW5lIHR1aS9hdC1leHRlbmQtb25seS1wbGFjZWhvbGRlcnMqL1xuICAgIEBleHRlbmQgLnR1aS1mb3JtQnRuLS10cmFuc3BhcmVudDtcbiAgICBjb2xvcjogdmFyKC0tZm9ybS10b2dnbGUtY29sb3IpO1xuXG4gICAgJjpmb2N1cyxcbiAgICAmOmFjdGl2ZTpmb2N1cyB7XG4gICAgICBjb2xvcjogdmFyKC0tZm9ybS10b2dnbGUtY29sb3IpO1xuICAgICAgb3V0bGluZTogbm9uZTtcbiAgICB9XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIGNvbG9yOiB2YXIoLS1mb3JtLXRvZ2dsZS1jb2xvcik7XG4gICAgfVxuXG4gICAgJltkaXNhYmxlZF0ge1xuICAgICAgY29sb3I6IGluaXRpYWw7XG4gICAgICAmOmhvdmVyIHtcbiAgICAgICAgY29sb3I6IGluaXRpYWw7XG4gICAgICB9XG4gICAgICAmOmhvdmVyLFxuICAgICAgJjphY3RpdmU6aG92ZXIge1xuICAgICAgICBjb2xvcjogaW5pdGlhbDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmLXRleHQge1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIH1cbiAgfVxuXG4gIC8qIHRvZ2dsZSBzaXplIGFuZCBzaGFwZSovXG4gICZfX3VpIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgd2lkdGg6IHZhcigtLWZvcm0tdG9nZ2xlLWNvbnRhaW5lci13aWR0aCk7XG4gICAgbWFyZ2luLWxlZnQ6IHZhcigtLWZvcm0tdG9nZ2xlLXRleHQtb2Zmc2V0KTtcbiAgICAvKiBwcmV0dGllci1pZ25vcmUqL1xuICAgIHBhZGRpbmc6IGNhbGModmFyKC0tZm9ybS10b2dnbGUtZm9jdXMtZ2FwKSArIHZhcigtLWZvcm0tdG9nZ2xlLWZvY3VzLWJvcmRlcikpO1xuXG4gICAgJi0tdG9nZ2xlT25seSB7XG4gICAgICBtYXJnaW4tbGVmdDogY2FsYyhcbiAgICAgICAgLTEgKiAodmFyKC0tZm9ybS10b2dnbGUtZm9jdXMtZ2FwKSArIHZhcigtLWZvcm0tdG9nZ2xlLWZvY3VzLWJvcmRlcikpXG4gICAgICApO1xuICAgIH1cblxuICAgIC8qIHRoZSB0b2dnbGUgYmFja2dyb3VuZCovXG4gICAgJjpiZWZvcmUge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBoZWlnaHQ6IHZhcigtLWZvcm0tdG9nZ2xlLWNvbnRhaW5lci1oZWlnaHQpO1xuICAgICAgYm9yZGVyLXJhZGl1czogdmFyKC0tZm9ybS10b2dnbGUtY29udGFpbmVyLXJhZGl1cyk7XG4gICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIHZhcigtLXRyYW5zaXRpb24tYnV0dG9uLWR1cmF0aW9uKVxuICAgICAgICAgIHZhcigtLXRyYW5zaXRpb24tYnV0dG9uLWZ1bmN0aW9uKSxcbiAgICAgICAgYm9yZGVyLWNvbG9yIHZhcigtLXRyYW5zaXRpb24tYnV0dG9uLWR1cmF0aW9uKVxuICAgICAgICAgIHZhcigtLXRyYW5zaXRpb24tYnV0dG9uLWZ1bmN0aW9uKTtcbiAgICAgIGNvbnRlbnQ6ICcnO1xuXG4gICAgICAudHVpLWNvbnRleHRJbnZhbGlkICYge1xuICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAycHggdmFyKC0tZm9ybS1pbnB1dC1ib3JkZXItY29sb3ItaW52YWxpZCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLyogdGhlIHRvZ2dsZSBkb3QqL1xuICAgICY6YWZ0ZXIge1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgLyogcHJldHRpZXItaWdub3JlKi9cbiAgICAgIHRvcDogY2FsYyh2YXIoLS1mb3JtLXRvZ2dsZS1kb3Qtb2Zmc2V0KSArIGNhbGModmFyKC0tZm9ybS10b2dnbGUtZm9jdXMtZ2FwKSArIHZhcigtLWZvcm0tdG9nZ2xlLWZvY3VzLWJvcmRlcikpKTtcbiAgICAgIC8qIHByZXR0aWVyLWlnbm9yZSovXG4gICAgICBsZWZ0OiBjYWxjKHZhcigtLWZvcm0tdG9nZ2xlLWRvdC1vZmZzZXQpICsgY2FsYyh2YXIoLS1mb3JtLXRvZ2dsZS1mb2N1cy1nYXApICsgdmFyKC0tZm9ybS10b2dnbGUtZm9jdXMtYm9yZGVyKSkpO1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICB3aWR0aDogdmFyKC0tZm9ybS10b2dnbGUtZG90LXNpemUpO1xuICAgICAgaGVpZ2h0OiB2YXIoLS1mb3JtLXRvZ2dsZS1kb3Qtc2l6ZSk7XG4gICAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgICBib3gtc2hhZG93OiB2YXIoLS1zaGFkb3ctMik7XG4gICAgICBjb250ZW50OiAnJztcbiAgICB9XG5cbiAgICAmOmhvdmVyLFxuICAgICY6Zm9jdXMge1xuICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIH1cblxuICAgIC8qIHRvZ2dsZWQgb2ZmKi9cblxuICAgIC8qIHRoZSB0b2dnbGUgYmFja2dyb3VuZCovXG4gICAgJjpiZWZvcmUge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tZm9ybS10b2dnbGUtb2ZmLWJnLWNvbG9yKTtcbiAgICAgIGJvcmRlcjogdmFyKC0tZm9ybS1pbnB1dC1ib3JkZXItc2l6ZSkgc29saWQ7XG4gICAgICBib3JkZXItY29sb3I6IHZhcigtLWZvcm0tdG9nZ2xlLWJvcmRlci1jb2xvcik7XG4gICAgfVxuXG4gICAgLyogdGhlIHRvZ2dsZSBkb3QqL1xuICAgICY6YWZ0ZXIge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tZm9ybS10b2dnbGUtZG90LWNvbG9yKTtcbiAgICB9XG5cbiAgICAmOmhvdmVyLFxuICAgICY6Zm9jdXMge1xuICAgICAgJjpiZWZvcmUge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1mb3JtLXRvZ2dsZS1vZmYtYmctY29sb3ItaG92ZXItZm9jdXMpO1xuICAgICAgfVxuICAgIH1cblxuICAgICZbZGF0YS1kaXNhYmxlZF0ge1xuICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuICAgICAgJjpiZWZvcmUge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1mb3JtLXRvZ2dsZS1vZmYtYmctY29sb3ItZGlzYWJsZWQpO1xuICAgICAgICBib3JkZXItY29sb3I6IHZhcigtLWZvcm0tdG9nZ2xlLWJvcmRlci1jb2xvci1kaXNhYmxlZCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLyogdG9nZ2xlZCBvZmYsIHZpYSB0aGUgYnV0dG9uKi9cbiAgJl9fYnRuIHtcbiAgICAmOmhvdmVyLFxuICAgICY6Zm9jdXMge1xuICAgICAgfiAudHVpLXRvZ2dsZVN3aXRjaF9fdWkge1xuICAgICAgICBwYWRkaW5nOiB2YXIoLS1mb3JtLXRvZ2dsZS1mb2N1cy1nYXApO1xuICAgICAgICBib3JkZXI6IHZhcigtLWZvcm0tdG9nZ2xlLWZvY3VzLWJvcmRlcikgc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICAgIC8qIHByZXR0aWVyLWlnbm9yZSovXG4gICAgICAgIGJvcmRlci1yYWRpdXM6IGNhbGMoY2FsYyh2YXIoLS1mb3JtLXRvZ2dsZS1jb250YWluZXItcmFkaXVzKSArIHZhcigtLWZvcm0tdG9nZ2xlLWZvY3VzLWdhcCkpICsgdmFyKC0tZm9ybS10b2dnbGUtZm9jdXMtYm9yZGVyKSk7XG5cbiAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgLyogcHJldHRpZXItaWdub3JlKi9cbiAgICAgICAgICB0b3A6IGNhbGModmFyKC0tZm9ybS10b2dnbGUtZG90LW9mZnNldCkgKyB2YXIoLS1mb3JtLXRvZ2dsZS1mb2N1cy1nYXApKTtcbiAgICAgICAgICAvKiBwcmV0dGllci1pZ25vcmUqL1xuICAgICAgICAgIGxlZnQ6IGNhbGModmFyKC0tZm9ybS10b2dnbGUtZG90LW9mZnNldCkgKyB2YXIoLS1mb3JtLXRvZ2dsZS1mb2N1cy1nYXApKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgICY6Zm9jdXMgfiAudHVpLXRvZ2dsZVN3aXRjaF9fdWkge1xuICAgICAgYm9yZGVyOiB2YXIoLS1mb3JtLXRvZ2dsZS1mb2N1cy1ib3JkZXIpIHNvbGlkIHZhcigtLWNvbG9yLXN0YXRlKTtcbiAgICB9XG4gIH1cblxuICAvKiB0b2dnbGVkIG9uKi9cbiAgJl9fYnRuW2FyaWEtcHJlc3NlZF0gfiAmX191aSB7XG4gICAgLyogdGhlIGRvdCovXG4gICAgJjphZnRlciB7XG4gICAgICAvKiBwcmV0dGllci1pZ25vcmUqL1xuICAgICAgcmlnaHQ6IGNhbGModmFyKC0tZm9ybS10b2dnbGUtZG90LW9mZnNldCkgKyBjYWxjKHZhcigtLWZvcm0tdG9nZ2xlLWZvY3VzLWdhcCkgKyB2YXIoLS1mb3JtLXRvZ2dsZS1mb2N1cy1ib3JkZXIpKSk7XG4gICAgICBsZWZ0OiBhdXRvO1xuICAgIH1cblxuICAgIC8qIHRoZSB0b2dnbGUgYmFja2dyb3VuZCovXG4gICAgJjpiZWZvcmUge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tZm9ybS10b2dnbGUtb24tYmctY29sb3IpO1xuICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1mb3JtLXRvZ2dsZS1vbi1ib3JkZXItY29sb3IpO1xuICAgIH1cblxuICAgICY6aG92ZXIsXG4gICAgJjpmb2N1cyB7XG4gICAgICAmOmJlZm9yZSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWZvcm0tdG9nZ2xlLW9uLWJnLWNvbG9yLWhvdmVyLWZvY3VzKTtcbiAgICAgIH1cbiAgICB9XG4gICAgJltkYXRhLWRpc2FibGVkXSB7XG4gICAgICAmOmJlZm9yZSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWZvcm0tdG9nZ2xlLW9uLWJnLWNvbG9yLWRpc2FibGVkKTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1mb3JtLXRvZ2dsZS1ib3JkZXItY29sb3ItZGlzYWJsZWQpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8qIHRvZ2dsZWQgb24sIHZpYSB0aGUgYnV0dG9uKi9cbiAgJl9fYnRuW2FyaWEtcHJlc3NlZF0ge1xuICAgICY6aG92ZXIsXG4gICAgJjpmb2N1cyB7XG4gICAgICB+IC50dWktdG9nZ2xlU3dpdGNoX191aSB7XG4gICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgIC8qIHByZXR0aWVyLWlnbm9yZSovXG4gICAgICAgICAgcmlnaHQ6IGNhbGModmFyKC0tZm9ybS10b2dnbGUtZG90LW9mZnNldCkgKyB2YXIoLS1mb3JtLXRvZ2dsZS1mb2N1cy1nYXApKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8qIHRvZ2dsZSBvbiB0aGUgbGVmdCwgdGV4dCBvbiB0aGUgcmlnaHQqL1xuICAmLS1sZWZ0IHtcbiAgICAudHVpLXRvZ2dsZVN3aXRjaF9fdWkge1xuICAgICAgb3JkZXI6IDE7XG4gICAgICBtYXJnaW4tcmlnaHQ6IHZhcigtLWZvcm0tdG9nZ2xlLXRleHQtb2Zmc2V0KTtcbiAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgIH1cblxuICAgIC50dWktdG9nZ2xlU3dpdGNoX19idG4ge1xuICAgICAgb3JkZXI6IDI7XG4gICAgfVxuXG4gICAgLnR1aS10b2dnbGVTd2l0Y2hfX2ljb24ge1xuICAgICAgb3JkZXI6IDM7XG4gICAgfVxuICB9XG59XG5cbi50dWktdHJlZSB7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG59XG5cbi50dWktdHJlZU5vZGUge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHdpZHRoOiAxMDAlO1xuICAmLS10b3Age1xuICAgIHBhZGRpbmc6IHZhcigtLWdhcC0xKSAwO1xuICB9XG5cbiAgJjpub3QoJi0tdG9wKSB7XG4gICAgcGFkZGluZy1sZWZ0OiB2YXIoLS1nYXAtNik7XG4gIH1cblxuICAmLS1zZXBhcmF0b3Ige1xuICAgICY6YWZ0ZXIge1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgYm90dG9tOiAwO1xuICAgICAgbGVmdDogMDtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgYm9yZGVyLWJvdHRvbTogdmFyKC0tYm9yZGVyLXdpZHRoLXRoaW4pIHNvbGlkIHZhcigtLWNvbG9yLW5ldXRyYWwtNSk7XG4gICAgICBjb250ZW50OiAnJztcbiAgICB9XG4gIH1cblxuICAmX190cmlnZ2VyIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgcGFkZGluZzogMCB2YXIoLS1nYXAtMSk7XG4gIH1cblxuICAmX19iYXIge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWluLXdpZHRoOiAwO1xuXG4gICAgJi1idG4ge1xuICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgbGluZS1oZWlnaHQ6IDEuMjtcbiAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAtbXMtd29yZC1icmVhazogYnJlYWstYWxsO1xuICAgICAgd29yZC1icmVhazogYnJlYWstd29yZDtcbiAgICB9XG5cbiAgICAmLWxhYmVsLFxuICAgICYtbGluayB7XG4gICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICBtYXJnaW46IDA7XG4gICAgICAtbXMtd29yZC1icmVhazogYnJlYWstYWxsO1xuICAgICAgd29yZC1icmVhazogYnJlYWstd29yZDtcbiAgICAgIC13ZWJraXQtaHlwaGVuczogbm9uZTtcbiAgICAgICAgICAgICAgaHlwaGVuczogbm9uZTtcbiAgICB9XG5cbiAgICAmLWxhYmVsIHtcbiAgICAgIEBpbmNsdWRlIHR1aS1mb250LWJvZHkoKTtcbiAgICB9XG5cbiAgICAmLWxpbmsge1xuICAgICAgJjpmb2N1cyxcbiAgICAgICY6aG92ZXIge1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJi1zaWRlIHtcbiAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgfVxuICB9XG5cbiAgJl9fY2hpbGQge1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nLXRvcDogdmFyKC0tZ2FwLTIpO1xuICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gIH1cblxuICAmLS1ub1BhZGRpbmcge1xuICAgIHBhZGRpbmc6IDA7XG4gICAgLnR1aS10cmVlTm9kZV9fY2hpbGQge1xuICAgICAgcGFkZGluZzogMDtcbiAgICB9XG4gIH1cbn1cblxuLnR1aS1mb3JtRmllbGQge1xuICBmbGV4LWdyb3c6IDE7XG4gIHdpZHRoOiAxMDAlO1xuICBtaW4td2lkdGg6IDA7XG5cbiAgQGluY2x1ZGUgdHVpLWNoYXItbGVuZ3RoLWNsYXNzZXMoKTtcbn1cblxuLnR1aS10aGVtZVNldHRpbmdzIHtcbiAgJl9fY29udGVudCB7XG4gICAgbWFyZ2luLXRvcDogdmFyKC0tZ2FwLTgpO1xuICB9XG5cbiAgJl9fZm9ybXMge1xuICAgIEBpbmNsdWRlIHR1aS1zdGFjay12ZXJ0aWNhbCh2YXIoLS1nYXAtOCkpO1xuICB9XG59XG5cbi50dWktdGhlbWVUZW5hbnRzIHtcbiAgJl9fY29udGVudCB7XG4gICAgbWFyZ2luLXRvcDogdmFyKC0tZ2FwLTgpO1xuICB9XG5cbiAgJl9fc2VjdGlvbiArICZfX3NlY3Rpb24ge1xuICAgIG1hcmdpbi10b3A6IHZhcigtLWdhcC0xMik7XG4gIH1cblxuICAmX19zZWN0aW9uIHtcbiAgICBAaW5jbHVkZSB0dWktc3RhY2stdmVydGljYWwodmFyKC0tZ2FwLTQpKTtcbiAgfVxufVxuXG4iLCIvKiBUaGlzIGZpbGUgaXMgcGFydCBvZiBUb3RhcmEgRW50ZXJwcmlzZSBFeHRlbnNpb25zLiovXG4vKiovXG4vKiBDb3B5cmlnaHQgKEMpIDIwMjAgb253YXJkcyBUb3RhcmEgTGVhcm5pbmcgU29sdXRpb25zIExURCovXG4vKiovXG4vKiBUb3RhcmEgRW50ZXJwcmlzZSBFeHRlbnNpb25zIGlzIHByb3ZpZGVkIG9ubHkgdG8gVG90YXJhKi9cbi8qIExlYXJuaW5nIFNvbHV0aW9ucyBMVEQncyBjdXN0b21lcnMgYW5kIHBhcnRuZXJzLCBwdXJzdWFudCB0byovXG4vKiB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgb2YgYSBzZXBhcmF0ZSBhZ3JlZW1lbnQgd2l0aCBUb3RhcmEqL1xuLyogTGVhcm5pbmcgU29sdXRpb25zIExURCBvciBpdHMgYWZmaWxpYXRlLiovXG4vKiovXG4vKiBJZiB5b3UgZG8gbm90IGhhdmUgYW4gYWdyZWVtZW50IHdpdGggVG90YXJhIExlYXJuaW5nIFNvbHV0aW9ucyovXG4vKiBMVEQsIHlvdSBtYXkgbm90IGFjY2VzcywgdXNlLCBtb2RpZnksIG9yIGRpc3RyaWJ1dGUgdGhpcyBzb2Z0d2FyZS4qL1xuLyogUGxlYXNlIGNvbnRhY3QgW2xpY2Vuc2luZ0B0b3RhcmFsZWFybmluZy5jb21dIGZvciBtb3JlIGluZm9ybWF0aW9uLiovXG4vKiovXG4vKiBAYXV0aG9yICAgIFNpbW9uIENoZXN0ZXIgPHNpbW9uLmNoZXN0ZXJAdG90YXJhbGVhcm5pbmcuY29tPiovXG4vKiBAbW9kdWxlIHR1aWNrYWdlICAgdHVpKi9cblxuLyogU2lkZWJhciBsYXlvdXQgdGhhdCBpcyByZXNwb25zaXZlIGJhc2VkIG9uIHRoZSBzaXplIG9mIGl0cyBjb250YWluZXIsIHJhdGhlciovXG4vKiB0aGFuIHRoZSB2aWV3cG9ydC4qL1xuQG1peGluIHR1aS1sYXlvdXQtc2lkZWJhcihcbiAgLyogd2lkdGggb2YgdGhlIHNpZGViYXIqL1xuICAgICRzaWRlLXdpZHRoOiAnY29udGVudCcsXG4gIC8qIHdpZHRoIG9mIHRoZSBjb250ZW50Ki9cbiAgICAkY29udGVudC1taW4td2lkdGg6IDUwJSxcbiAgLyogc2l6ZSBvZiB0aGUgZ3V0dGVyIGJldHdlZW4gc2lkZWJhciBhbmQgY29udGVudCovXG4gICAgJGd1dHRlcjogMCxcbiAgLyogc2VsZWN0b3IgZm9yIGNoaWxkIHNpZGViYXIgZWxlbWVudCovXG4gICAgJHNpZGViYXItc2VsZWN0b3I6ICc6bnRoLWNoaWxkKDEpJyxcbiAgLyogc2VsZWN0b3IgZm9yIGNoaWxkIGNvbnRlbnQgZWxlbWVudCovXG4gICAgJGNvbnRlbnQtc2VsZWN0b3I6ICc6bnRoLWNoaWxkKDIpJ1xuKSB7XG4gICYge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgZ2FwOiAkZ3V0dGVyO1xuXG4gICAgJiA+ICN7JHNpZGViYXItc2VsZWN0b3J9IHtcbiAgICAgIEBpZiAkc2lkZS13aWR0aCAhPSAnY29udGVudCcge1xuICAgICAgICBmbGV4LWJhc2lzOiAkc2lkZS13aWR0aDtcbiAgICAgIH1cbiAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICB9XG5cbiAgICAmID4gI3skY29udGVudC1zZWxlY3Rvcn0ge1xuICAgICAgZmxleC1iYXNpczogMDtcbiAgICAgIC8qIFNldCBhIHJlYWxseSBoaWdoIGZsZXgtZ3JvdyB2YWx1ZSBzbyBpdCB0YWtlcyB1cCBhbGwgdGhlIGF2YWlsYWJsZSovXG4gICAgICAvKiBzcGFjZS4gVGhpcyB3aWxsIHNxdWlzaCB0aGUgc2lkZWJhciBkb3duIHRvIGl0cyBpbnRyaW5zaWMgd2lkdGgqL1xuICAgICAgLyogKG9yIGZsZXgtYmFzaXMsIGlmIHNldCkuKi9cbiAgICAgIGZsZXgtZ3JvdzogOTk5O1xuICAgICAgLyogVGhpcyBlbGVtZW50IGNhbm5vdCBzaHJpbmsgYmV5b25kIG1pbi13aWR0aCwgc28gaXQgd2lsbCB3cmFwIG9uIHRvIHRoZSovXG4gICAgICAvKiBuZXh0IGxpbmUgKHN3aXRjaCB0byB2ZXJ0aWNhbCkuKi9cbiAgICAgIG1pbi13aWR0aDogY2FsYygjeyRjb250ZW50LW1pbi13aWR0aH0gLSAjeyRndXR0ZXJ9KTtcbiAgICB9XG4gIH1cbn1cblxuIl19 */