/*!*****************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??ruleSet[1].rules[0].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[0].use[2]!./client/component/tui/src/global_styles/_variables.scss ***!
  \*****************************************************************************************************************************************************************************************************************/
/* 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*/
/*!***************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??ruleSet[1].rules[0].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[0].use[2]!./client/component/tui/src/global_styles/variables/deprecated.scss ***!
  \***************************************************************************************************************************************************************************************************************************/
/* This file is part of Totara Enterprise Extensions.*/
/**/
/* Copyright (C) 2024 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@totara.com] for more information.*/
/**/
/* @author Simon Chester <simon.chester@totara.com>*/
/* @module tui*/
/* stylelint-disable tui/no-deprecated-vars */
/* Deprecated since Totara 19.0*/
/* @deprecated since Totara 19.0*/
/* @deprecated since Totara 19.0*/
/* @deprecated since Totara 19.0*/
/* @deprecated since Totara 19.0*/
/* @deprecated since Totara 19.0*/
/* @deprecated since Totara 19.0*/
/* @deprecated since Totara 19.0*/
/* @deprecated since Totara 19.0*/
/* @deprecated since Totara 19.0*/
/* @deprecated since Totara 19.0*/
/* @deprecated since Totara 19.0*/
/* @deprecated since Totara 19.0*/
/* @deprecated since Totara 19.0*/
/* @deprecated since Totara 19.0*/
/* @deprecated since Totara 19.0*/
/* @deprecated since Totara 19.0*/
/* @deprecated since Totara 19.0*/
/* @deprecated since Totara 19.0*/
/* @deprecated since Totara 19.0*/
/* @deprecated since Totara 19.0*/
/* @deprecated since Totara 19.0*/
/* @deprecated since Totara 19.0*/
/* @deprecated since Totara 19.0*/
/*!**************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??ruleSet[1].rules[0].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[0].use[2]!./client/component/tui/src/global_styles/variables/tui_sizes.scss ***!
  \**************************************************************************************************************************************************************************************************************************/
/* 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*/
/*!*******************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??ruleSet[1].rules[0].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[0].use[2]!./client/component/tui/src/global_styles/variables/tui_typography.scss ***!
  \*******************************************************************************************************************************************************************************************************************************/
/* 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@totara.com>*/
/* @author Simon Chester <simon.chester@totara.com>*/
/* @module tui*/
/**
 * Define font style variables
 *
 * @param {string} $name - font variant name (e.g. h1 or body-sm)
 * @param {number} $size - font size in unitless rem
 * @param {number} $line-height - line height in unitless rem
 * @param {number} $weight -- font weight
 * @param {number} $family -- font family
 */
/**
 * Use font style variables
 *
 * @param {string} $name - font variant name (e.g. h1 or body-sm)
 * @param {number} $weight -- font weight. set to null to not add
 * @param {number} $family -- font family. set to null to not add
 */
/*!****************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??ruleSet[1].rules[0].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[0].use[2]!./client/component/tui/src/global_styles/variables/tui_spacing.scss ***!
  \****************************************************************************************************************************************************************************************************************************/
/* 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.*/
/*!****************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??ruleSet[1].rules[0].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[0].use[2]!./client/component/tui/src/global_styles/variables/tui_borders.scss ***!
  \****************************************************************************************************************************************************************************************************************************/
/* 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*/
/*!****************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??ruleSet[1].rules[0].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[0].use[2]!./client/component/tui/src/global_styles/variables/tui_buttons.scss ***!
  \****************************************************************************************************************************************************************************************************************************/
/* 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 tui*/
/*!***************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??ruleSet[1].rules[0].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[0].use[2]!./client/component/tui/src/global_styles/variables/tui_colors.scss ***!
  \***************************************************************************************************************************************************************************************************************************/
/* 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*/
/*!*****************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??ruleSet[1].rules[0].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[0].use[2]!./client/component/tui/src/global_styles/variables/colors/arrow.scss ***!
  \*****************************************************************************************************************************************************************************************************************************/
/* 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*/
/*!*****************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??ruleSet[1].rules[0].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[0].use[2]!./client/component/tui/src/global_styles/variables/colors/forms.scss ***!
  \*****************************************************************************************************************************************************************************************************************************/
/* 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 tui*/
/* Avatar*/
/*!******************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??ruleSet[1].rules[0].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[0].use[2]!./client/component/tui/src/global_styles/variables/colors/avatar.scss ***!
  \******************************************************************************************************************************************************************************************************************************/
/* 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*/
/*!********************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??ruleSet[1].rules[0].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[0].use[2]!./client/component/tui/src/global_styles/variables/colors/dropdown.scss ***!
  \********************************************************************************************************************************************************************************************************************************/
/* 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*/
/*!*********************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??ruleSet[1].rules[0].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[0].use[2]!./client/component/tui/src/global_styles/variables/colors/datatable.scss ***!
  \*********************************************************************************************************************************************************************************************************************************/
/* 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*/
/*!****************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??ruleSet[1].rules[0].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[0].use[2]!./client/component/tui/src/global_styles/variables/colors/tabs.scss ***!
  \****************************************************************************************************************************************************************************************************************************/
/* 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*/
/*!****************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??ruleSet[1].rules[0].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[0].use[2]!./client/component/tui/src/global_styles/variables/colors/card.scss ***!
  \****************************************************************************************************************************************************************************************************************************/
/* 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*/
/*!******************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??ruleSet[1].rules[0].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[0].use[2]!./client/component/tui/src/global_styles/variables/colors/charts.scss ***!
  \******************************************************************************************************************************************************************************************************************************/
/* 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*/
/*!*******************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??ruleSet[1].rules[0].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[0].use[2]!./client/component/tui/src/global_styles/variables/colors/filters.scss ***!
  \*******************************************************************************************************************************************************************************************************************************/
/* 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*/
/*!****************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??ruleSet[1].rules[0].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[0].use[2]!./client/component/tui/src/global_styles/variables/colors/tags.scss ***!
  \****************************************************************************************************************************************************************************************************************************/
/* 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*/
/*!***********************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??ruleSet[1].rules[0].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[0].use[2]!./client/component/tui/src/global_styles/variables/colors/progressbar.scss ***!
  \***********************************************************************************************************************************************************************************************************************************/
/* 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*/
/*!***********************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??ruleSet[1].rules[0].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[0].use[2]!./client/component/tui/src/global_styles/variables/colors/collapsible.scss ***!
  \***********************************************************************************************************************************************************************************************************************************/
/* 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*/
/*!***************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??ruleSet[1].rules[0].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[0].use[2]!./client/component/tui/src/global_styles/variables/colors/progresstracker.scss ***!
  \***************************************************************************************************************************************************************************************************************************************/
/* 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*/
/*!**************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??ruleSet[1].rules[0].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[0].use[2]!./client/component/tui/src/global_styles/variables/colors/side_panel_nav.scss ***!
  \**************************************************************************************************************************************************************************************************************************************/
/* 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*/
/*!******************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??ruleSet[1].rules[0].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[0].use[2]!./client/component/tui/src/global_styles/variables/colors/toggle.scss ***!
  \******************************************************************************************************************************************************************************************************************************/
/* 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*/
/*!*****************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??ruleSet[1].rules[0].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[0].use[2]!./client/component/tui/src/global_styles/variables/colors/notificationtoast.scss ***!
  \*****************************************************************************************************************************************************************************************************************************************/
/* 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*/
/*!****************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??ruleSet[1].rules[0].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[0].use[2]!./client/component/tui/src/global_styles/variables/tui_shadows.scss ***!
  \****************************************************************************************************************************************************************************************************************************/
/* 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*/
/*!***********************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??ruleSet[1].rules[0].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[0].use[2]!./client/component/tui/src/global_styles/variables/tui_side_panel_nav.scss ***!
  \***********************************************************************************************************************************************************************************************************************************/
/* 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*/
/*!*****************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??ruleSet[1].rules[0].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[0].use[2]!./client/component/tui/src/global_styles/variables/tui_progress_tracker_nav.scss ***!
  \*****************************************************************************************************************************************************************************************************************************************/
/* 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*/
/*!**************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??ruleSet[1].rules[0].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[0].use[2]!./client/component/tui/src/global_styles/variables/tui_range.scss ***!
  \**************************************************************************************************************************************************************************************************************************/
/* 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*/
/*!***************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??ruleSet[1].rules[0].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[0].use[2]!./client/component/tui/src/global_styles/variables/tui_layout.scss ***!
  \***************************************************************************************************************************************************************************************************************************/
/* 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.*/
/*!********************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??ruleSet[1].rules[0].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[0].use[2]!./client/component/tui/src/global_styles/variables/tui_breakpoints.scss ***!
  \********************************************************************************************************************************************************************************************************************************/
/* 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*/
/*!*******************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??ruleSet[1].rules[0].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[0].use[2]!./client/component/tui/src/global_styles/variables/tui_animations.scss ***!
  \*******************************************************************************************************************************************************************************************************************************/
/* 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 tui*/
/*!***************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??ruleSet[1].rules[0].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[0].use[2]!./client/component/tui/src/global_styles/variables/tui_mixins.scss ***!
  \***************************************************************************************************************************************************************************************************************************/
/* 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 tui*/
/**
 * For adding a fixed sized header image to a card, including optional margin on the outer edges.
 *
 * @deprecated since Totara 19.0
 */
/*!***************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??ruleSet[1].rules[0].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[0].use[2]!./client/component/tui/src/global_styles/variables/tui_modals.scss ***!
  \***************************************************************************************************************************************************************************************************************************/
/* 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*/
/*!***************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??ruleSet[1].rules[0].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[0].use[2]!./client/component/tui/src/global_styles/variables/tui_embeds.scss ***!
  \***************************************************************************************************************************************************************************************************************************/
/* 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*/
/*!**************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??ruleSet[1].rules[0].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[0].use[2]!./client/component/tui/src/global_styles/variables/tui_media.scss ***!
  \**************************************************************************************************************************************************************************************************************************/
/* 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*/
/*!**************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??ruleSet[1].rules[0].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[0].use[2]!./client/component/tui/src/global_styles/variables/tui_forms.scss ***!
  \**************************************************************************************************************************************************************************************************************************/
/* 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*/
/*!***************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??ruleSet[1].rules[0].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[0].use[2]!./client/component/tui/src/global_styles/variables/tui_toggle.scss ***!
  \***************************************************************************************************************************************************************************************************************************/
/* This file is part of Totara Enterprise Extensions.*/
/**/
/* Copyright (C) 2024 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@totara.com] for more information.*/
/**/
/* @author Kevin Hottinger <kevin.hottinger@totara.com>*/
/* @module package tui*/
/* Vertical padding of toggle switch 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*/
/*!*******************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??ruleSet[1].rules[0].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[0].use[2]!./client/component/tui/src/global_styles/variables/tui_separators.scss ***!
  \*******************************************************************************************************************************************************************************************************************************/
/* 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*/
/*!*************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??ruleSet[1].rules[0].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[0].use[2]!./client/component/tui/src/global_styles/variables/tui_tags.scss ***!
  \*************************************************************************************************************************************************************************************************************************/
/* 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*/
/*!***************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??ruleSet[1].rules[0].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[0].use[2]!./client/component/tui/src/global_styles/variables/tui_zindex.scss ***!
  \***************************************************************************************************************************************************************************************************************************/
/* 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*/
/*!*****************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??ruleSet[1].rules[0].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[0].use[2]!./client/component/tui/src/global_styles/_variables.scss ***!
  \*****************************************************************************************************************************************************************************************************************/
/* 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*/
/*!***************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??ruleSet[1].rules[0].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[0].use[2]!./client/component/tui/src/global_styles/variables/deprecated.scss ***!
  \***************************************************************************************************************************************************************************************************************************/
/* This file is part of Totara Enterprise Extensions.*/
/**/
/* Copyright (C) 2024 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@totara.com] for more information.*/
/**/
/* @author Simon Chester <simon.chester@totara.com>*/
/* @module tui*/
/* stylelint-disable tui/no-deprecated-vars */
/* Deprecated since Totara 19.0*/
/* @deprecated since Totara 19.0*/
/* @deprecated since Totara 19.0*/
/* @deprecated since Totara 19.0*/
/* @deprecated since Totara 19.0*/
/* @deprecated since Totara 19.0*/
/* @deprecated since Totara 19.0*/
/* @deprecated since Totara 19.0*/
/* @deprecated since Totara 19.0*/
/* @deprecated since Totara 19.0*/
/* @deprecated since Totara 19.0*/
/* @deprecated since Totara 19.0*/
/* @deprecated since Totara 19.0*/
/* @deprecated since Totara 19.0*/
/* @deprecated since Totara 19.0*/
/* @deprecated since Totara 19.0*/
/* @deprecated since Totara 19.0*/
/* @deprecated since Totara 19.0*/
/* @deprecated since Totara 19.0*/
/* @deprecated since Totara 19.0*/
/* @deprecated since Totara 19.0*/
/* @deprecated since Totara 19.0*/
/* @deprecated since Totara 19.0*/
/* @deprecated since Totara 19.0*/
/*!**************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??ruleSet[1].rules[0].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[0].use[2]!./client/component/tui/src/global_styles/variables/tui_sizes.scss ***!
  \**************************************************************************************************************************************************************************************************************************/
/* 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*/
/*!*******************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??ruleSet[1].rules[0].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[0].use[2]!./client/component/tui/src/global_styles/variables/tui_typography.scss ***!
  \*******************************************************************************************************************************************************************************************************************************/
/* 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@totara.com>*/
/* @author Simon Chester <simon.chester@totara.com>*/
/* @module tui*/
/**
 * Define font style variables
 *
 * @param {string} $name - font variant name (e.g. h1 or body-sm)
 * @param {number} $size - font size in unitless rem
 * @param {number} $line-height - line height in unitless rem
 * @param {number} $weight -- font weight
 * @param {number} $family -- font family
 */
/**
 * Use font style variables
 *
 * @param {string} $name - font variant name (e.g. h1 or body-sm)
 * @param {number} $weight -- font weight. set to null to not add
 * @param {number} $family -- font family. set to null to not add
 */
/*!****************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??ruleSet[1].rules[0].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[0].use[2]!./client/component/tui/src/global_styles/variables/tui_spacing.scss ***!
  \****************************************************************************************************************************************************************************************************************************/
/* 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.*/
/*!****************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??ruleSet[1].rules[0].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[0].use[2]!./client/component/tui/src/global_styles/variables/tui_borders.scss ***!
  \****************************************************************************************************************************************************************************************************************************/
/* 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*/
/*!****************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??ruleSet[1].rules[0].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[0].use[2]!./client/component/tui/src/global_styles/variables/tui_buttons.scss ***!
  \****************************************************************************************************************************************************************************************************************************/
/* 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 tui*/
/*!***************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??ruleSet[1].rules[0].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[0].use[2]!./client/component/tui/src/global_styles/variables/tui_colors.scss ***!
  \***************************************************************************************************************************************************************************************************************************/
/* 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*/
/*!*****************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??ruleSet[1].rules[0].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[0].use[2]!./client/component/tui/src/global_styles/variables/colors/arrow.scss ***!
  \*****************************************************************************************************************************************************************************************************************************/
/* 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*/
/*!*****************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??ruleSet[1].rules[0].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[0].use[2]!./client/component/tui/src/global_styles/variables/colors/forms.scss ***!
  \*****************************************************************************************************************************************************************************************************************************/
/* 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 tui*/
/* Avatar*/
/*!******************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??ruleSet[1].rules[0].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[0].use[2]!./client/component/tui/src/global_styles/variables/colors/avatar.scss ***!
  \******************************************************************************************************************************************************************************************************************************/
/* 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*/
/*!********************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??ruleSet[1].rules[0].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[0].use[2]!./client/component/tui/src/global_styles/variables/colors/dropdown.scss ***!
  \********************************************************************************************************************************************************************************************************************************/
/* 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*/
/*!*********************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??ruleSet[1].rules[0].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[0].use[2]!./client/component/tui/src/global_styles/variables/colors/datatable.scss ***!
  \*********************************************************************************************************************************************************************************************************************************/
/* 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*/
/*!****************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??ruleSet[1].rules[0].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[0].use[2]!./client/component/tui/src/global_styles/variables/colors/tabs.scss ***!
  \****************************************************************************************************************************************************************************************************************************/
/* 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*/
/*!****************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??ruleSet[1].rules[0].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[0].use[2]!./client/component/tui/src/global_styles/variables/colors/card.scss ***!
  \****************************************************************************************************************************************************************************************************************************/
/* 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*/
/*!******************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??ruleSet[1].rules[0].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[0].use[2]!./client/component/tui/src/global_styles/variables/colors/charts.scss ***!
  \******************************************************************************************************************************************************************************************************************************/
/* 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*/
/*!*******************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??ruleSet[1].rules[0].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[0].use[2]!./client/component/tui/src/global_styles/variables/colors/filters.scss ***!
  \*******************************************************************************************************************************************************************************************************************************/
/* 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*/
/*!****************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??ruleSet[1].rules[0].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[0].use[2]!./client/component/tui/src/global_styles/variables/colors/tags.scss ***!
  \****************************************************************************************************************************************************************************************************************************/
/* 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*/
/*!***********************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??ruleSet[1].rules[0].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[0].use[2]!./client/component/tui/src/global_styles/variables/colors/progressbar.scss ***!
  \***********************************************************************************************************************************************************************************************************************************/
/* 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*/
/*!***********************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??ruleSet[1].rules[0].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[0].use[2]!./client/component/tui/src/global_styles/variables/colors/collapsible.scss ***!
  \***********************************************************************************************************************************************************************************************************************************/
/* 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*/
/*!***************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??ruleSet[1].rules[0].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[0].use[2]!./client/component/tui/src/global_styles/variables/colors/progresstracker.scss ***!
  \***************************************************************************************************************************************************************************************************************************************/
/* 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*/
/*!**************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??ruleSet[1].rules[0].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[0].use[2]!./client/component/tui/src/global_styles/variables/colors/side_panel_nav.scss ***!
  \**************************************************************************************************************************************************************************************************************************************/
/* 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*/
/*!******************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??ruleSet[1].rules[0].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[0].use[2]!./client/component/tui/src/global_styles/variables/colors/toggle.scss ***!
  \******************************************************************************************************************************************************************************************************************************/
/* 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*/
/*!*****************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??ruleSet[1].rules[0].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[0].use[2]!./client/component/tui/src/global_styles/variables/colors/notificationtoast.scss ***!
  \*****************************************************************************************************************************************************************************************************************************************/
/* 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*/
/*!****************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??ruleSet[1].rules[0].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[0].use[2]!./client/component/tui/src/global_styles/variables/tui_shadows.scss ***!
  \****************************************************************************************************************************************************************************************************************************/
/* 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*/
/*!***********************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??ruleSet[1].rules[0].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[0].use[2]!./client/component/tui/src/global_styles/variables/tui_side_panel_nav.scss ***!
  \***********************************************************************************************************************************************************************************************************************************/
/* 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*/
/*!*****************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??ruleSet[1].rules[0].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[0].use[2]!./client/component/tui/src/global_styles/variables/tui_progress_tracker_nav.scss ***!
  \*****************************************************************************************************************************************************************************************************************************************/
/* 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*/
/*!**************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??ruleSet[1].rules[0].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[0].use[2]!./client/component/tui/src/global_styles/variables/tui_range.scss ***!
  \**************************************************************************************************************************************************************************************************************************/
/* 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*/
/*!***************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??ruleSet[1].rules[0].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[0].use[2]!./client/component/tui/src/global_styles/variables/tui_layout.scss ***!
  \***************************************************************************************************************************************************************************************************************************/
/* 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.*/
/*!********************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??ruleSet[1].rules[0].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[0].use[2]!./client/component/tui/src/global_styles/variables/tui_breakpoints.scss ***!
  \********************************************************************************************************************************************************************************************************************************/
/* 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*/
/*!*******************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??ruleSet[1].rules[0].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[0].use[2]!./client/component/tui/src/global_styles/variables/tui_animations.scss ***!
  \*******************************************************************************************************************************************************************************************************************************/
/* 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 tui*/
/*!***************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??ruleSet[1].rules[0].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[0].use[2]!./client/component/tui/src/global_styles/variables/tui_mixins.scss ***!
  \***************************************************************************************************************************************************************************************************************************/
/* 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 tui*/
/**
 * For adding a fixed sized header image to a card, including optional margin on the outer edges.
 *
 * @deprecated since Totara 19.0
 */
/*!***************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??ruleSet[1].rules[0].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[0].use[2]!./client/component/tui/src/global_styles/variables/tui_modals.scss ***!
  \***************************************************************************************************************************************************************************************************************************/
/* 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*/
/*!***************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??ruleSet[1].rules[0].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[0].use[2]!./client/component/tui/src/global_styles/variables/tui_embeds.scss ***!
  \***************************************************************************************************************************************************************************************************************************/
/* 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*/
/*!**************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??ruleSet[1].rules[0].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[0].use[2]!./client/component/tui/src/global_styles/variables/tui_media.scss ***!
  \**************************************************************************************************************************************************************************************************************************/
/* 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*/
/*!**************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??ruleSet[1].rules[0].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[0].use[2]!./client/component/tui/src/global_styles/variables/tui_forms.scss ***!
  \**************************************************************************************************************************************************************************************************************************/
/* 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*/
/*!***************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??ruleSet[1].rules[0].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[0].use[2]!./client/component/tui/src/global_styles/variables/tui_toggle.scss ***!
  \***************************************************************************************************************************************************************************************************************************/
/* This file is part of Totara Enterprise Extensions.*/
/**/
/* Copyright (C) 2024 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@totara.com] for more information.*/
/**/
/* @author Kevin Hottinger <kevin.hottinger@totara.com>*/
/* @module package tui*/
/* Vertical padding of toggle switch 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*/
/*!*******************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??ruleSet[1].rules[0].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[0].use[2]!./client/component/tui/src/global_styles/variables/tui_separators.scss ***!
  \*******************************************************************************************************************************************************************************************************************************/
/* 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*/
/*!*************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??ruleSet[1].rules[0].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[0].use[2]!./client/component/tui/src/global_styles/variables/tui_tags.scss ***!
  \*************************************************************************************************************************************************************************************************************************/
/* 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*/
/*!***************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??ruleSet[1].rules[0].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[0].use[2]!./client/component/tui/src/global_styles/variables/tui_zindex.scss ***!
  \***************************************************************************************************************************************************************************************************************************/
/* 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*/
/*!***************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??ruleSet[1].rules[0].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[0].use[2]!./client/component/theme_ventura/src/global_styles/_variables.scss ***!
  \***************************************************************************************************************************************************************************************************************************/
/* 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.*/
/* 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 {
  --grid-gutter: var(--gap-5);
  --font-size-1: calc(var(--font-size-base) / 16 * 1);
  --font-size-2: calc(var(--font-size-base) / 16 * 2);
  --font-size-4: calc(var(--font-size-base) / 16 * 4);
  --font-size-8: calc(var(--font-size-base) / 16 * 8);
  --font-size-10: calc(var(--font-size-base) / 16 * 10);
  --font-size-11: calc(var(--font-size-base) / 16 * 11);
  --font-size-12: calc(var(--font-size-base) / 16 * 12);
  --font-size-13: calc(var(--font-size-base) / 16 * 13);
  --font-size-14: calc(var(--font-size-base) / 16 * 14);
  --font-size-15: calc(var(--font-size-base) / 16 * 15);
  --font-size-16: calc(var(--font-size-base) / 16 * 16);
  --font-size-18: calc(var(--font-size-base) / 16 * 18);
  --font-size-20: calc(var(--font-size-base) / 16 * 20);
  --font-size-22: calc(var(--font-size-base) / 16 * 22);
  --font-size-24: calc(var(--font-size-base) / 16 * 24);
  --font-size-30: calc(var(--font-size-base) / 16 * 30);
  --font-size-32: calc(var(--font-size-base) / 16 * 32);
  --font-size-40: calc(var(--font-size-base) / 16 * 40);
  --font-size-48: calc(var(--font-size-base) / 16 * 48);
  --font-size-50: calc(var(--font-size-base) / 16 * 50);
  --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-small-size: calc(var(--font-size-base) / 16 * 13);
  --font-body-x-small-size: calc(var(--font-size-base) / 16 * 12);
  --font-body-xx-small-size: calc(var(--font-size-base) / 16 * 11);
  --font-heading-large-size: calc(var(--font-size-base) / 16 * 50);
  --font-heading-size: calc(var(--font-size-base) / 16 * 30);
  --font-heading-small-size: calc(var(--font-size-base) / 16 * 20);
  --font-heading-x-small-size: calc(var(--font-size-base) / 16 * 16);
  --btn-sm-min-height: 1.875rem;
  --btn-min-height: 2.25rem;
  --btn-xs-min-height: 1.25rem;
  --btn-min-width: 72px;
  --btn-bg-color-active: var(--color-neutral-1);
  --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-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-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);
}
:root {
  --tui-card-default-width: 15.75rem;
  --tui-card-sm-width: 11.75rem;
}
: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-size-base: 1rem;
  --line-height-base: 1rem;
  --icon-size-base: 1rem;
  --label-weight: 501;
  --font-family-body: var(--font-family);
  --font-body-xl-size: calc(var(--font-size-base) * 1.25);
  --font-body-xl-line-height: calc(var(--line-height-base) * 1.75);
  --font-body-xl-weight: 400;
  --font-body-xl-family: var(--font-family-body);
  --font-body-lg-size: calc(var(--font-size-base) * 1);
  --font-body-lg-line-height: calc(var(--line-height-base) * 1.5);
  --font-body-lg-weight: 400;
  --font-body-lg-family: var(--font-family-body);
  --font-body-size: calc(var(--font-size-base) * 0.875);
  --font-body-line-height: calc(var(--line-height-base) * 1.25);
  --font-body-weight: 400;
  --font-body-family: var(--font-family-body);
  --font-body-sm-size: calc(var(--font-size-base) * 0.75);
  --font-body-sm-line-height: calc(var(--line-height-base) * 1.125);
  --font-body-sm-weight: 400;
  --font-body-sm-family: var(--font-family-body);
  --font-body-xs-size: calc(var(--font-size-base) * 0.625);
  --font-body-xs-line-height: calc(var(--line-height-base) * 1);
  --font-body-xs-weight: 400;
  --font-body-xs-family: var(--font-family-body);
  --font-family-heading: var(--font-family);
  --font-h1-size: calc(var(--font-size-base) * 2);
  --font-h1-line-height: calc(var(--line-height-base) * 2.5);
  --font-h1-weight: 600;
  --font-h1-family: var(--font-family-heading);
  --font-h2-size: calc(var(--font-size-base) * 1.5);
  --font-h2-line-height: calc(var(--line-height-base) * 2);
  --font-h2-weight: 600;
  --font-h2-family: var(--font-family-heading);
  --font-h3-size: calc(var(--font-size-base) * 1.25);
  --font-h3-line-height: calc(var(--line-height-base) * 1.75);
  --font-h3-weight: 600;
  --font-h3-family: var(--font-family-heading);
  --font-h4-size: calc(var(--font-size-base) * 1);
  --font-h4-line-height: calc(var(--line-height-base) * 1.5);
  --font-h4-weight: 600;
  --font-h4-family: var(--font-family-heading);
  --font-h5-size: calc(var(--font-size-base) * 0.875);
  --font-h5-line-height: calc(var(--line-height-base) * 1.25);
  --font-h5-weight: 600;
  --font-h5-family: var(--font-family-heading);
  --font-h6-size: calc(var(--font-size-base) * 0.75);
  --font-h6-line-height: calc(var(--line-height-base) * 1);
  --font-h6-weight: 501;
  --font-h6-family: var(--font-family-heading);
  --font-family-display: var(--font-family);
  --font-display-lg-size: calc(var(--font-size-base) * 3);
  --font-display-lg-line-height: calc(var(--line-height-base) * 3.5);
  --font-display-lg-weight: 400;
  --font-display-lg-family: var(--font-family-display);
  --font-display-md-size: calc(var(--font-size-base) * 2.5);
  --font-display-md-line-height: calc(var(--line-height-base) * 3);
  --font-display-md-weight: 400;
  --font-display-md-family: var(--font-family-display);
  --font-display-sm-size: calc(var(--font-size-base) * 2);
  --font-display-sm-line-height: calc(var(--line-height-base) * 2.5);
  --font-display-sm-weight: 400;
  --font-display-sm-family: var(--font-family-display);
  --font-display-xs-size: calc(var(--font-size-base) * 1.5);
  --font-display-xs-line-height: calc(var(--line-height-base) * 2);
  --font-display-xs-weight: 400;
  --font-display-xs-family: var(--font-family-display);
}
:root {
  --gap-base: 0.25rem;
  --gap-1: calc(var(--gap-base) * 1);
  --gap-2: calc(var(--gap-base) * 2);
  --gap-3: calc(var(--gap-base) * 3);
  --gap-4: calc(var(--gap-base) * 4);
  --gap-5: calc(var(--gap-base) * 5);
  --gap-6: calc(var(--gap-base) * 6);
  --gap-7: calc(var(--gap-base) * 7);
  --gap-8: calc(var(--gap-base) * 8);
  --gap-9: calc(var(--gap-base) * 9);
  --gap-10: calc(var(--gap-base) * 10);
  --gap-11: calc(var(--gap-base) * 11);
  --gap-12: calc(var(--gap-base) * 12);
  --gap-page-columns: var(--gap-8);
  --gap-card-grid: var(--gap-4);
  --grid-gutter-vertical: 1.25rem;
  --grid-gutter-horizontal: 1.25rem;
  --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-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-padding-v: var(--gap-2);
  --btn-radius: 4px;
  --btn-sm-font-size: var(--font-body-sm-size);
  --btn-sm-line-height: var(--font-body-sm-line-height);
  --btn-sm-padding-h: var(--gap-2);
  --btn-sm-padding-v: var(--gap-1);
  --btn-sm-radius: 4px;
  --btn-xs-font-size: var(--font-body-sm-size);
  --btn-xs-line-height: var(--font-body-sm-line-height);
  --btn-xs-padding-h: var(--gap-1);
  --btn-xs-padding-v: 0px;
  --btn-xs-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);
  --arrow-bg-inverse-color: var(--color-neutral-7);
}
: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-bg-color: var(--color-neutral-1);
  --btn-bg-color-disabled: var(--color-neutral-3);
  --btn-accent-color: var(--color-state);
  --btn-accent-color-contrast: var(--color-neutral-1);
  --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-danger-color: var(--color-prompt-alert);
  --btn-danger-color-contrast: var(--color-neutral-1);
  --btn-text-color: var(--btn-accent-color);
  --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);
  --form-error-bg-color: var(--color-prompt-alert-bg);
  --form-error-text-color: var(--color-prompt-alert);
}
: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: color-mix(
    in srgb,
    var(--form-toggle-on-bg-color) 60%,
    transparent
  );
  --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: 6.25rem;
  --progress-tracker-horizontal-size--medium: 12.5rem;
  --progress-tracker-horizontal-size--large: 15.625rem;
  --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: 1.75rem;
  --progresstracker-connector-gap: 0.3125rem;
}
: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 {
  --page-content-padding: calc(var(--gap-base) * 4);
  --page-content-padding-desktop: calc(var(--gap-base) * 4);
}
: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: 0.75rem;
  --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: 2.25rem;
  --form-input-height-large: 2.5rem;
  --form-input-font-size: var(--font-body-size);
  --form-input-font-size-sm: var(--font-body-sm-size);
  --form-input-font-size-lg: var(--font-body-lg-size);
  --form-input-line-height: var(--font-body-line-height);
  --form-input-border-size: 1px;
  --form-input-border-radius: 0.25rem;
  --form-input-invalid-shadow-size: 1px;
  --form-input-limited-width: calc(20 * var(--form-input-font-size));
  --form-notepad-line-height: 1.875rem;
  --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 {
  --form-toggle-color: var(--color-neutral-7);
  --form-toggle-dot-size: 1rem;
  --form-toggle-container-width: 2.5rem;
  --form-toggle-container-height: 1.25rem;
  --form-toggle-container-radius: 0.625rem;
  --form-toggle-text-offset: var(--gap-2);
  --form-toggle-dot-offset: 0.125rem;
  --form-toggle-bottom: 1.125rem;
  --form-toggle-focus-border: var(--border-width-normal);
  --form-toggle-focus-gap: 0.0625rem;
  --form-toggle-height: calc(
    var(--form-toggle-container-height) + (var(--form-toggle-focus-border) * 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 {
  --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;
  --zindex-nav-overlay: 110000;
  --zindex-skiplinks: 110050;
}
/*!***********************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??clonedRuleSet-1561.use[1]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-1561.use[2]!./client/component/tui/src/global_styles/static.scss ***!
  \***********************************************************************************************************************************************************************************************************/
/* 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 tui*/
*, *::before, *::after {
  box-sizing: border-box;
}
html {
  font-size: 100%;
}
body {
  color: var(--color-text);
  font-size: var(--font-body-size);
  font-family: var(--font-family);
  line-height: var(--font-body-line-height);
  background-color: var(--color-background);
}
.tui-root {
  /* container should not exist for layout purposes*/
  display: contents;
}
.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 */
}
/*!************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??ruleSet[1].rules[0].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[0].use[2]!./client/component/tui/src/global_styles/styles/typography.scss ***!
  \************************************************************************************************************************************************************************************************************************/
/* This file is part of Totara Enterprise Extensions.*/
/**/
/* Copyright (C) 2024 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@totara.com] for more information.*/
/**/
/* @author Simon Chester <simon.chester@totara.com>*/
/* @module tui*/
h1, .h1 {
  font-weight: var(--font-h1-weight);
  font-size: var(--font-h1-size);
  font-family: var(--font-h1-family);
  line-height: var(--font-h1-line-height);
  margin: var(--gap-4) 0 var(--gap-5);
}
h2, .h2 {
  font-weight: var(--font-h2-weight);
  font-size: var(--font-h2-size);
  font-family: var(--font-h2-family);
  line-height: var(--font-h2-line-height);
  margin: var(--gap-4) 0 var(--gap-5);
}
h3, .h3 {
  font-weight: var(--font-h3-weight);
  font-size: var(--font-h3-size);
  font-family: var(--font-h3-family);
  line-height: var(--font-h3-line-height);
  margin: var(--gap-4) 0 var(--gap-4);
}
h4, .h4 {
  font-weight: var(--font-h4-weight);
  font-size: var(--font-h4-size);
  font-family: var(--font-h4-family);
  line-height: var(--font-h4-line-height);
  margin: var(--gap-4) 0 var(--gap-4);
}
h5, .h5 {
  font-weight: var(--font-h5-weight);
  font-size: var(--font-h5-size);
  font-family: var(--font-h5-family);
  line-height: var(--font-h5-line-height);
  margin: var(--gap-4) 0 var(--gap-2);
}
h6, .h6 {
  font-weight: var(--font-h6-weight);
  font-size: var(--font-h6-size);
  font-family: var(--font-h6-family);
  line-height: var(--font-h6-line-height);
  margin: var(--gap-4) 0 var(--gap-2);
  color: var(--color-text-hint);
  text-transform: uppercase;
}
.text-h1 {
  font-weight: var(--font-h1-weight);
  font-size: var(--font-h1-size);
  font-family: var(--font-h1-family);
  line-height: var(--font-h1-line-height);
}
.text-h2 {
  font-weight: var(--font-h2-weight);
  font-size: var(--font-h2-size);
  font-family: var(--font-h2-family);
  line-height: var(--font-h2-line-height);
}
.text-h3 {
  font-weight: var(--font-h3-weight);
  font-size: var(--font-h3-size);
  font-family: var(--font-h3-family);
  line-height: var(--font-h3-line-height);
}
.text-h4 {
  font-weight: var(--font-h4-weight);
  font-size: var(--font-h4-size);
  font-family: var(--font-h4-family);
  line-height: var(--font-h4-line-height);
}
.text-h5 {
  font-weight: var(--font-h5-weight);
  font-size: var(--font-h5-size);
  font-family: var(--font-h5-family);
  line-height: var(--font-h5-line-height);
}
.text-h6 {
  font-weight: var(--font-h6-weight);
  font-size: var(--font-h6-size);
  font-family: var(--font-h6-family);
  line-height: var(--font-h6-line-height);
}
.text-display-lg {
  font-weight: var(--font-display-lg-weight);
  font-size: var(--font-display-lg-size);
  font-family: var(--font-display-lg-family);
  line-height: var(--font-display-lg-line-height);
}
.text-display-md {
  font-weight: var(--font-display-md-weight);
  font-size: var(--font-display-md-size);
  font-family: var(--font-display-md-family);
  line-height: var(--font-display-md-line-height);
}
.text-display-sm {
  font-weight: var(--font-display-sm-weight);
  font-size: var(--font-display-sm-size);
  font-family: var(--font-display-sm-family);
  line-height: var(--font-display-sm-line-height);
}
.text-display-xs {
  font-weight: var(--font-display-xs-weight);
  font-size: var(--font-display-xs-size);
  font-family: var(--font-display-xs-family);
  line-height: var(--font-display-xs-line-height);
}
.text-body-xl {
  font-weight: var(--font-body-xl-weight);
  font-size: var(--font-body-xl-size);
  font-family: var(--font-body-xl-family);
  line-height: var(--font-body-xl-line-height);
}
.text-body-lg {
  font-weight: var(--font-body-lg-weight);
  font-size: var(--font-body-lg-size);
  font-family: var(--font-body-lg-family);
  line-height: var(--font-body-lg-line-height);
}
.text-body {
  font-weight: var(--font-body-weight);
  font-size: var(--font-body-size);
  font-family: var(--font-body-family);
  line-height: var(--font-body-line-height);
}
.text-body-sm {
  font-weight: var(--font-body-sm-weight);
  font-size: var(--font-body-sm-size);
  font-family: var(--font-body-sm-family);
  line-height: var(--font-body-sm-line-height);
}
.text-body-xs {
  font-weight: var(--font-body-xs-weight);
  font-size: var(--font-body-xs-size);
  font-family: var(--font-body-xs-family);
  line-height: var(--font-body-xs-line-height);
}
/*!**************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??ruleSet[1].rules[0].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[0].use[2]!./client/component/tui/src/global_styles/styles/rich-content.scss ***!
  \**************************************************************************************************************************************************************************************************************************/
/* This file is part of Totara Enterprise Extensions.*/
/**/
/* Copyright (C) 2024 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@totara.com] for more information.*/
/**/
/* @author Simon Chester <simon.chester@totara.com>*/
/* @module tui*/
/* rendered editor content*/
.tui-rendered {
  font-weight: var(--font-body-weight);
  font-size: var(--font-body-size);
  font-family: var(--font-body-family);
  line-height: var(--font-body-line-height);
  word-break: break-word;
}
.tui-rendered__block {
  margin-bottom: var(--paragraph-gap);
}
.tui-rendered__embedContainer {
  max-width: var(--embedded-media-max-width);
}
/*!*******************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??ruleSet[1].rules[0].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[0].use[2]!./client/component/tui/src/global_styles/styles/icons.scss ***!
  \*******************************************************************************************************************************************************************************************************************/
/* This file is part of Totara Enterprise Extensions.*/
/**/
/* Copyright (C) 2024 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@totara.com] for more information.*/
/**/
/* @author Simon Chester <simon.chester@totara.com>*/
/* @module tui*/
/* 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);
}
/*!********************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??clonedRuleSet-1561.use[1]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-1561.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./client/component/tui/src/components/adder/Adder.vue?vue&type=style&index=0&id=3c08ae1e&lang=scss ***!
  \********************************************************************************************************************************************************************************************************************************************************************************************************************/
.tui-adder {
  display: flex;
  flex-direction: column;
  flex-grow: 1;
  height: 31.25rem;
}
.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: var(--label-weight);
}
.tui-adder__actions {
  display: flex;
  margin-left: auto;
}
/*!***************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??clonedRuleSet-1561.use[1]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-1561.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./client/component/tui/src/components/adder/HierarchicalParentButton.vue?vue&type=style&index=0&id=163da645&lang=scss ***!
  \***************************************************************************************************************************************************************************************************************************************************************************************************************************************/
.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);
}
/*!**********************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??clonedRuleSet-1561.use[1]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-1561.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./client/component/tui/src/components/avatar/Avatar.vue?vue&type=style&index=0&id=43b5fd20&lang=scss ***!
  \**********************************************************************************************************************************************************************************************************************************************************************************************************************/
: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);
}
/*!**********************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??clonedRuleSet-1561.use[1]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-1561.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./client/component/tui/src/components/basket/Basket.vue?vue&type=style&index=0&id=fe5b2f00&lang=scss ***!
  \**********************************************************************************************************************************************************************************************************************************************************************************************************************/
.tui-basket {
  font-weight: var(--font-body-weight);
  font-size: var(--font-body-size);
  font-family: var(--font-body-family);
  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-btn--variant-link, .tui-basket__actions > .tui-btn--variant-link {
    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: calc(var(--font-size-base) / 16 * 18);
}
/*!***********************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??clonedRuleSet-1561.use[1]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-1561.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./client/component/tui/src/components/buttons/Button.vue?vue&type=style&index=0&id=79c0243f&lang=scss ***!
  \***********************************************************************************************************************************************************************************************************************************************************************************************************************/
.tui-btn {
  /* local CSS variables*/
  --tui-btn-color: var(--btn-accent-color);
  --tui-btn-color-hover: var(--btn-accent-color-hover);
  --tui-btn-color-active: var(--btn-accent-color-active);
  --tui-btn-color-contrast: var(--btn-accent-color-contrast);
  --tui-btn-shadow: none;
  --tui-btn-shadow-hover: var(--btn-shadow-hover);
  --tui-btn-shadow-active: var(--btn-shadow-active);
  --tui-btn-content-height: var(--btn-line-height);
  --tui-btn-padding-h: calc(var(--btn-padding-h) - var(--btn-border-width));
  --tui-btn-padding-v: calc(var(--btn-padding-v) - var(--btn-border-width));
  --tui-btn-font-size: var(--btn-font-size);
  --tui-btn-line-height: var(--btn-line-height);
  --tui-btn-min-height: calc(
    var(--tui-btn-line-height) +
      (var(--tui-btn-padding-v) + var(--btn-border-width)) * 2
  );
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: var(--tui-btn-min-height);
  max-width: 100%;
  min-height: var(--tui-btn-min-height);
  padding: var(--tui-btn-padding-v) var(--tui-btn-padding-h);
  color: var(--tui-btn-color);
  font-size: var(--tui-btn-font-size);
  line-height: var(--tui-btn-line-height);
  overflow-wrap: break-word;
  background: var(--btn-bg-color);
  border: var(--btn-border-width) solid;
  border-color: var(--tui-btn-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);
  /* compat for old ButtonIcon "transparent" style*/
}
.tui-btn:is(a) {
  text-decoration: none;
}
.tui-btn:is(a):hover, .tui-btn:is(a):focus {
  color: var(--tui-btn-color);
}
.tui-btn__wrap {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: calc(var(--gap-base) * 2);
}
.tui-btn__content {
  display: flex;
  align-items: center;
  justify-content: center;
}
.tui-btn:focus-visible {
  outline: 2px solid var(--color-state-focus);
  outline-offset: var(--focus-outline-offset);
}
.tui-btn--color-danger {
  --tui-btn-color: var(--btn-danger-color);
  --tui-btn-color-hover: var(--btn-danger-color);
  --tui-btn-color-active: var(--btn-danger-color);
  --tui-btn-color-contrast: var(--btn-danger-color-contrast);
}
.tui-btn:hover {
  --tui-btn-color: var(--tui-btn-color-hover);
  box-shadow: var(--btn-shadow-hover);
}
.tui-btn:active {
  --tui-btn-color: var(--tui-btn-color-active);
  box-shadow: var(--btn-shadow-active);
}
.tui-btn--size-sm {
  --tui-btn-font-size: var(--btn-sm-font-size);
  --tui-btn-line-height: var(--btn-sm-line-height);
  --tui-btn-padding-h: calc(
      var(--btn-sm-padding-h) - var(--btn-border-width)
    );
  --tui-btn-padding-v: calc(
      var(--btn-sm-padding-v) - var(--btn-border-width)
    );
  border-radius: var(--btn-sm-radius);
}
.tui-btn--size-sm .tui-btn__wrap {
  gap: calc(var(--gap-base) * 1);
}
.tui-btn--size-xs {
  --tui-btn-font-size: var(--btn-xs-font-size);
  --tui-btn-line-height: var(--btn-xs-line-height);
  --tui-btn-padding-h: calc(
      var(--btn-xs-padding-h) - var(--btn-border-width)
    );
  --tui-btn-padding-v: calc(
      var(--btn-xs-padding-v) - var(--btn-border-width)
    );
  border-radius: var(--btn-xs-radius);
}
.tui-btn--size-xs .tui-btn__wrap {
  gap: calc(var(--gap-base) * 0.75);
}
.tui-btn--variant-default.tui-btn--disabled {
  background-color: var(--btn-bg-color-disabled);
}
.tui-btn--variant-primary {
  color: var(--tui-btn-color-contrast);
  background-color: var(--tui-btn-color);
}
.tui-btn--variant-primary:is(a):hover, .tui-btn--variant-primary:is(a):focus {
  color: var(--tui-btn-color-contrast);
}
.tui-btn--variant-stealth {
  background-color: transparent;
  border-color: transparent;
  box-shadow: none;
}
.tui-btn--variant-stealth:hover {
  background-color: rgba(0, 0, 0, 0.05);
  box-shadow: none;
}
.tui-btn--variant-stealth:active {
  background-color: rgba(0, 0, 0, 0.07);
  box-shadow: none;
}
.tui-btn--variant-stealth.tui-btn--disabled {
  background-color: transparent;
}
.tui-btn--variant-link {
  --tui-btn-color: var(--link-color);
  --tui-btn-color-hover: var(--link-color);
  --tui-btn-color-active: var(--link-color);
  --tui-btn-color-contrast: var(--color-neutral-7);
  --tui-btn-padding-v: 0;
  padding: 0;
  line-height: 1;
  background: transparent;
  border: none;
  border-radius: 0;
}
.tui-btn--variant-link:hover, .tui-btn--variant-link:active {
  box-shadow: none;
}
.tui-btn--legacyTransparentPadding {
  padding: 0 var(--gap-1);
}
.tui-btn--shape-pill {
  border-radius: var(--tui-btn-min-height);
}
.tui-btn--shape-circle {
  width: var(--tui-btn-min-height);
  height: var(--tui-btn-min-height);
  padding: var(--tui-btn-padding-v) 0;
  border-radius: var(--tui-btn-min-height);
}
.tui-btn--disabled, .tui-btn--disabled:hover, .tui-btn--disabled:active {
  --tui-btn-color: var(--btn-accent-color-disabled);
  box-shadow: none;
}
.tui-btn--loading .tui-btn__content, .tui-btn--loading .tui-btn__iconBefore, .tui-btn--loading .tui-btn__iconAfter {
  visibility: hidden;
}
.tui-btn__loading {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--btn-loader-color-disabled);
}
.tui-btn__iconBefore {
  display: flex;
  align-items: center;
  justify-content: center;
}
.tui-btn__iconAfter {
  display: flex;
  align-items: center;
  justify-content: center;
}
/*!****************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??clonedRuleSet-1561.use[1]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-1561.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./client/component/tui/src/components/buttons/ButtonGroup.vue?vue&type=style&index=0&id=378af030&lang=scss ***!
  \****************************************************************************************************************************************************************************************************************************************************************************************************************************/
.tui-formBtnGroup {
  display: flex;
}
.tui-formBtnGroup .tui-btn {
  min-width: 4rem;
}
.tui-formBtnGroup .tui-btn--size-sm {
  min-width: 3rem;
}
.tui-formBtnGroup > :not(:first-child) {
  margin: auto 0 auto var(--gap-4);
}
/*!*******************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??clonedRuleSet-1561.use[1]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-1561.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./client/component/tui/src/components/buttons/InfoIconButton.vue?vue&type=style&index=0&id=4f804634&lang=scss ***!
  \*******************************************************************************************************************************************************************************************************************************************************************************************************************************/
.tui-infoIconButton.tui-btn {
  margin: 0 0.25rem;
  vertical-align: -0.125em;
}
/*!**************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??clonedRuleSet-1561.use[1]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-1561.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./client/component/tui/src/components/buttons/LabelledButtonTrigger.vue?vue&type=style&index=0&id=afa4805c&lang=scss ***!
  \**************************************************************************************************************************************************************************************************************************************************************************************************************************************/
.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;
}
/*!************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??clonedRuleSet-1561.use[1]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-1561.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./client/component/tui/src/components/card/ActionCard.vue?vue&type=style&index=0&id=347073d6&lang=scss ***!
  \************************************************************************************************************************************************************************************************************************************************************************************************************************/
.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);
  }
}
/*!******************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??clonedRuleSet-1561.use[1]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-1561.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./client/component/tui/src/components/card/Card.vue?vue&type=style&index=0&id=38dd2d00&lang=scss ***!
  \******************************************************************************************************************************************************************************************************************************************************************************************************************/
.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);
}
/*!**************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??clonedRuleSet-1561.use[1]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-1561.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./client/component/tui/src/components/card/CardScroller.vue?vue&type=style&index=0&id=6aabc64c&lang=scss ***!
  \**************************************************************************************************************************************************************************************************************************************************************************************************************************/
.tui-cardScroller {
  display: flex;
  flex-direction: column;
}
.tui-cardScroller__titleRow {
  display: flex;
  gap: var(--gap-2);
  align-items: flex-end;
  justify-content: space-between;
  padding-bottom: var(--gap-3);
  border-bottom: var(--border-width-normal) solid var(--color-neutral-4);
}
.tui-cardScroller__title {
  font-weight: var(--font-h3-weight);
  font-size: var(--font-h3-size);
  font-family: var(--font-h3-family);
  line-height: var(--font-h3-line-height);
  display: flex;
  gap: 0.375rem;
  align-items: center;
  padding-bottom: var(--gap-1);
  color: inherit;
  font-weight: 500;
  overflow-wrap: anywhere;
  /* Dity trick to override the block header styling*/
  /**/
  /* TODO: A better solution is to remove the ".block .content h2" styles from blocks.scss assuming they're not needed*/
  /* This would require a thorough test of all the blocks to make sure it's safe to remove those*/
}
.tui-cardScroller__title:hover, .tui-cardScroller__title:focus {
  color: inherit;
}
.tui-cardScroller__title:focus-visible {
  outline: 2px solid var(--color-state-focus);
  outline-offset: var(--focus-outline-offset);
}
.tui-cardScroller__title-header.tui-cardScroller__title-header.tui-cardScroller__title-header {
  margin: 0;
  font-size: var(--font-h3-size);
}
.tui-cardScroller__titleIcon {
  flex-shrink: 0;
  margin-top: 0.2em;
  font-size: calc(var(--font-size-base) / 16 * 12);
  transition: transform var(--transition-button-duration) var(--transition-button-function);
}
.tui-cardScroller__title:hover .tui-cardScroller__titleIcon {
  transform: translateX(0.1875rem);
}
.tui-cardScroller__titleControls {
  flex-shrink: 0;
}
.tui-cardScroller__navButton-icon {
  color: var(--color-text);
}
.tui-cardScroller__navButton-icon--disabled {
  color: var(--color-state-disabled);
}
.tui-cardScroller__cardsBox {
  padding-top: var(--gap-4);
}
.tui-cardScroller--variant-boxed .tui-cardScroller__cardsBox {
  padding: calc(var(--gap-1) * 5.5);
  background: var(--color-neutral-3);
  border-bottom-right-radius: 0.5rem;
  border-bottom-left-radius: 0.5rem;
}
.tui-cardScroller__cardsContainer:has(.tui-cardScroller__cards--transition-enter-active, .tui-cardScroller__cards--transition-leave-active) {
  position: relative;
  /* temporarily expand bounds while we're applying hidden overflow to avoid cutting off shadow*/
  margin: calc(var(--gap-4) * -1);
  padding: var(--gap-4);
  overflow: hidden;
}
.tui-cardScroller__cards {
  position: relative;
  display: flex;
  flex-direction: row;
  gap: var(--gap-4);
}
.tui-cardScroller__cards--transition-enter-active, .tui-cardScroller__cards--transition-leave-active {
  transition: all 0.15s cubic-bezier(0, 0.1, 0, 1);
}
@media (prefers-reduced-motion) {
  .tui-cardScroller__cards--transition-enter-active, .tui-cardScroller__cards--transition-leave-active {
    transition: none;
  }
}
.tui-cardScroller__cards--transition-enter-from {
  transform: translateX(calc(100% + var(--gap-6)));
}
.tui-cardScroller__cards--transition-leave-to {
  transform: translateX(calc(-100% - var(--gap-6)));
}
.tui-cardScroller__cards--transition-leave-active {
  position: absolute;
}
.tui-cardScroller__cards > * {
  flex-basis: 0;
}
.tui-cardScroller--dir-back .tui-cardScroller__cards--transition-enter-from {
  transform: translateX(-100%);
}
.tui-cardScroller--dir-back .tui-cardScroller__cards--transition-leave-to {
  transform: translateX(100%);
}
.tui-cardScroller__cards--measurer {
  overflow-x: hidden;
}
.tui-cardScroller--expandToFill .tui-cardScroller__cards--display > * {
  flex-grow: 1;
}
.tui-cardScroller__cards-loading {
  display: flex;
  flex: 1;
  align-items: center;
  justify-content: center;
  min-height: 6.25rem;
}
/*!**************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??clonedRuleSet-1561.use[1]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-1561.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./client/component/tui/src/components/card/LearningCard.vue?vue&type=style&index=0&id=31eceabe&lang=scss ***!
  \**************************************************************************************************************************************************************************************************************************************************************************************************************************/
.tui-learningCard {
  --tui-learningCard-background-gradient: linear-gradient(
    180deg,
    rgba(0, 0, 0, 0) 10%,
    rgba(0, 0, 0, 0.4) 40%,
    var(--color-neutral-7) 80%
  );
  position: relative;
  display: flex;
  flex-direction: column;
  margin: calc((var(--gap-1) * 1.5) * -1);
  padding: calc(var(--gap-1) * 1.5);
  overflow-wrap: break-word;
  border-radius: calc(var(--card-border-radius) * 2);
  outline: none;
  isolation: isolate;
  transition: box-shadow 0.3s ease-in-out;
}
@media (hover: none) {
  .tui-learningCard .tui-learningCard__actionWrapper {
    padding-bottom: var(--gap-1);
    padding-left: var(--gap-1);
    opacity: 1;
  }
}
.tui-learningCard:hover {
  z-index: 1;
  box-shadow: 0 8px 16px 0 rgba(0, 0, 0, 0.15);
}
.tui-learningCard:hover .tui-learningCard__actionWrapper, .tui-learningCard:focus-within .tui-learningCard__actionWrapper {
  padding-bottom: var(--gap-1);
  padding-left: var(--gap-1);
  opacity: 1;
}
.tui-learningCard--variant-hero .tui-learningCard__image {
  border-radius: var(--card-border-radius);
}
.tui-learningCard--variant-grey-body .tui-learningCard__image {
  border-top-left-radius: var(--card-border-radius);
  border-top-right-radius: var(--card-border-radius);
}
.tui-learningCard--variant-grey-body .tui-learningCard__body {
  border-bottom-right-radius: var(--card-border-radius);
  border-bottom-left-radius: var(--card-border-radius);
  background: var(--color-neutral-2);
}
.tui-learningCard--variant-background .tui-learningCard__image {
  border-radius: var(--card-border-radius);
}
.tui-learningCard--variant-background .tui-learningCard__body {
  color: var(--color-neutral-1);
}
.tui-learningCard--variant-background .tui-learningCard__footer {
  border-bottom-right-radius: var(--card-border-radius);
  border-bottom-left-radius: var(--card-border-radius);
  color: var(--color-neutral-1);
  background: var(--color-neutral-7);
}
.tui-learningCard__popFront {
  position: relative;
  z-index: 2;
}
.tui-learningCard__link {
  position: absolute;
  inset: 0;
  z-index: 1;
  border-radius: var(--card-border-radius);
}
.tui-learningCard__link:focus-visible {
  outline: 2px solid var(--color-state-focus);
  outline-offset: var(--focus-outline-offset);
  outline-offset: var(--gap-2);
}
.tui-learningCard--size-sm {
  min-height: 12.5rem;
}
.tui-learningCard--size-default {
  min-height: 19.5rem;
}
.tui-learningCard__background {
  display: flex;
  flex-direction: column;
  flex-grow: 1;
  width: 100%;
  height: 100%;
  color: inherit;
  border-radius: var(--card-border-radius);
  background-repeat: no-repeat;
  background-position: center;
  background-size: cover;
}
.tui-learningCard__background--default {
  background-color: var(--color-neutral-2);
}
.tui-learningCard__mediaContainer {
  position: relative;
}
.tui-learningCard__mediaContainer--aspect-ratio {
  aspect-ratio: 1.7777777778;
}
.tui-learningCard__image {
  display: flex;
  width: 100%;
  height: 100%;
  background-repeat: no-repeat;
  background-position: center;
  background-size: cover;
}
.tui-learningCard__image--background-default {
  background-color: var(--color-primary);
}
.tui-learningCard__overlayWrapper {
  display: flex;
  flex-direction: column;
  width: 100%;
}
.tui-learningCard__mediaOverlayTop {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  min-height: 3.5rem;
  padding: var(--gap-3);
}
.tui-learningCard__heroContainer {
  display: flex;
  min-width: 3.625rem;
  margin-right: var(--gap-4);
}
.tui-learningCard__heroIconWrapper {
  margin-right: var(--gap-1);
}
.tui-learningCard__heroLabelWrapper {
  display: flex;
  align-items: center;
  height: 1.25rem;
  padding: var(--gap-2);
  overflow: hidden;
  color: var(--color-neutral-1);
  background-color: var(--color-neutral-7);
  border-radius: 1.25rem;
  font-weight: var(--font-body-sm-weight);
  font-size: var(--font-body-sm-size);
  font-family: var(--font-body-sm-family);
  line-height: var(--font-body-sm-line-height);
}
.tui-learningCard__hero-label {
  overflow: hidden;
  white-space: nowrap;
  text-overflow: ellipsis;
  font-weight: var(--font-body-sm-weight);
  font-size: var(--font-body-sm-size);
  font-family: var(--font-body-sm-family);
  line-height: var(--font-body-sm-line-height);
}
.tui-learningCard__actionContainer {
  display: flex;
  margin-left: auto;
}
.tui-learningCard__actionWrapper {
  opacity: 0;
}
.tui-learningCard__actionWrapper--persistent {
  padding-bottom: var(--gap-1);
  padding-left: var(--gap-1);
  opacity: 1;
}
.tui-learningCard__action-trigger, .tui-learningCard__action-item {
  position: relative;
  z-index: 2;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: calc(var(--gap-1) * 1.5);
  color: var(--color-neutral-7);
  background: var(--color-neutral-2);
  border: 0;
  border-radius: 1.25rem;
}
.tui-learningCard__action-trigger:hover, .tui-learningCard__action-item:hover {
  color: var(--color-state-hover);
  background: var(--color-neutral-1);
  box-shadow: var(--btn-shadow-hover);
}
.tui-learningCard__action-trigger--persistent, .tui-learningCard__action-item--persistent {
  display: flex;
}
.tui-learningCard__mediaOverlayCentre {
  display: flex;
  flex-basis: 100%;
  padding: var(--gap-3);
}
.tui-learningCard__mediaOverlayBottom {
  margin-top: auto;
  padding: var(--gap-3);
}
.tui-learningCard__body, .tui-learningCard__footer {
  padding: var(--gap-3);
}
.tui-learningCard__title {
  display: -webkit-box;
  margin: 0 0 var(--gap-1) 0;
  overflow: hidden;
  font-weight: 501;
  font-size: calc(var(--font-size-base) / 16 * 16);
  line-height: calc(var(--line-height-base) / 16 * 24);
  -webkit-line-clamp: 4;
  -webkit-box-orient: vertical;
  text-overflow: ellipsis;
}
.tui-learningCard__body {
  display: flex;
  flex-direction: column;
  flex-grow: 1;
}
/*!********************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??clonedRuleSet-1561.use[1]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-1561.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./client/component/tui/src/components/collapsible/Collapsible.vue?vue&type=style&index=0&id=57953554&lang=scss ***!
  \********************************************************************************************************************************************************************************************************************************************************************************************************************************/
.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 {
  display: flex;
  flex-grow: 1;
  margin: 0;
  padding: var(--gap-2) var(--gap-2) var(--gap-2) 0;
  overflow-wrap: break-word;
  cursor: pointer;
  -webkit-user-select: none;
  user-select: 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);
  margin-top: calc((var(--font-h4-line-height) - 0.875rem) / 2);
  color: var(--color-state);
  font-size: 0.875rem;
}
.tui-collapsible__header-text {
  font-weight: var(--font-h4-weight);
  font-size: var(--font-h4-size);
  font-family: var(--font-h4-family);
  line-height: var(--font-h4-line-height);
  position: relative;
  margin: 0;
}
.tui-collapsible__header-sideContent {
  display: flex;
  flex-shrink: 0;
  padding: var(--gap-2);
}
.tui-collapsible__content {
  /* line up with text of header*/
}
.tui-collapsible__content > .tui-formRowStack {
  margin-top: var(--gap-4);
}
.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));
}
/*!*******************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??clonedRuleSet-1561.use[1]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-1561.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./client/component/tui/src/components/collapsible/CollapsibleGroupToggle.vue?vue&type=style&index=0&id=1f95262d&lang=scss ***!
  \*******************************************************************************************************************************************************************************************************************************************************************************************************************************************/
.tui-collapsibleGroupToggle {
  display: flex;
}
.tui-collapsibleGroupToggle--alignEnd .tui-collapsibleGroupToggle__button {
  margin-left: auto;
}
/*!*****************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??clonedRuleSet-1561.use[1]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-1561.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./client/component/tui/src/components/collapsible/HideShow.vue?vue&type=style&index=0&id=21100b43&lang=scss ***!
  \*****************************************************************************************************************************************************************************************************************************************************************************************************************************/
.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;
  }
}
/*!**************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??clonedRuleSet-1561.use[1]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-1561.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./client/component/tui/src/components/datatable/AdvancedTableSelect.vue?vue&type=style&index=0&id=3cb16dce&lang=scss ***!
  \**************************************************************************************************************************************************************************************************************************************************************************************************************************************/
: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);
  /* Grey background*/
  /* The green focus outline*/
}
.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);
}
.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);
}
.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);
}
/*!***********************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??clonedRuleSet-1561.use[1]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-1561.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./client/component/tui/src/components/datatable/Cell.vue?vue&type=style&index=0&id=29383a6c&lang=scss ***!
  \***********************************************************************************************************************************************************************************************************************************************************************************************************************/
.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 {
  font-weight: var(--label-weight);
  font-size: var(--font-body-sm-size);
  font-family: var(--font-body-sm-family);
  line-height: var(--font-body-sm-line-height);
  display: none;
  margin-top: var(--gap-2);
  padding: var(--gap-1) 0 var(--gap-2);
}
.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;
}
/*!*****************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??clonedRuleSet-1561.use[1]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-1561.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./client/component/tui/src/components/datatable/ExpandCell.vue?vue&type=style&index=0&id=241365a6&lang=scss ***!
  \*****************************************************************************************************************************************************************************************************************************************************************************************************************************/
.tui-dataTableExpandCell {
  display: flex;
  order: 0;
  width: var(--gap-9);
  margin: 0;
}
.tui-dataTableExpandCell .tui-btn {
  margin: 0 auto;
}
.tui-dataTableExpandCell.tui-dataTableExpandCell--header {
  margin-left: 0;
}
.tui-dataTableExpandCell--stacked {
  order: 1;
  width: 100%;
  margin: var(--gap-2) 0;
}
/*!******************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??clonedRuleSet-1561.use[1]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-1561.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./client/component/tui/src/components/datatable/ExpandedRow.vue?vue&type=style&index=0&id=512f64c7&lang=scss ***!
  \******************************************************************************************************************************************************************************************************************************************************************************************************************************/
.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);
}
/*!*****************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??clonedRuleSet-1561.use[1]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-1561.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./client/component/tui/src/components/datatable/HeaderCell.vue?vue&type=style&index=0&id=333c72ce&lang=scss ***!
  \*****************************************************************************************************************************************************************************************************************************************************************************************************************************/
.tui-dataTableHeaderCell {
  /* stylelint-disable-next-line tui/at-extend-only-placeholders*/
  display: flex;
  color: var(--datatable-cell-header-text-color);
  font-weight: bold;
}
.tui-dataTableHeaderCell--stacked {
  display: none;
}
/*!****************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??clonedRuleSet-1561.use[1]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-1561.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./client/component/tui/src/components/datatable/HeaderRow.vue?vue&type=style&index=0&id=430073f3&lang=scss ***!
  \****************************************************************************************************************************************************************************************************************************************************************************************************************************/
.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);
}
/*!**********************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??clonedRuleSet-1561.use[1]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-1561.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./client/component/tui/src/components/datatable/Row.vue?vue&type=style&index=0&id=6e72b9c0&lang=scss ***!
  \**********************************************************************************************************************************************************************************************************************************************************************************************************************/
.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);
  /* don't show hover background when another item is being dragged over it*/
}
.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);
}
[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;
}
/*!***************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??clonedRuleSet-1561.use[1]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-1561.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./client/component/tui/src/components/datatable/RowGroup.vue?vue&type=style&index=0&id=ff62b962&lang=scss ***!
  \***************************************************************************************************************************************************************************************************************************************************************************************************************************/
.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);
}
/*!***************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??clonedRuleSet-1561.use[1]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-1561.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./client/component/tui/src/components/datatable/SelectEveryRowToggle.vue?vue&type=style&index=0&id=78879799&lang=scss ***!
  \***************************************************************************************************************************************************************************************************************************************************************************************************************************************/
.tui-dataTableSelectEveryRowToggle {
  padding: var(--gap-2);
  background-color: var(--datatable-select-everything-prompt-bg);
}
/*!********************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??clonedRuleSet-1561.use[1]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-1561.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./client/component/tui/src/components/datatable/SelectRowCell.vue?vue&type=style&index=0&id=ff9e45b4&lang=scss ***!
  \********************************************************************************************************************************************************************************************************************************************************************************************************************************/
.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;
}
/*!****************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??clonedRuleSet-1561.use[1]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-1561.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./client/component/tui/src/components/datatable/SelectVisibleRowsCell.vue?vue&type=style&index=0&id=7b660db7&lang=scss ***!
  \****************************************************************************************************************************************************************************************************************************************************************************************************************************************/
.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 {
  font-weight: var(--label-weight);
  font-size: var(--font-body-sm-size);
  font-family: var(--font-body-sm-family);
  line-height: var(--font-body-sm-line-height);
  display: none;
  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);
}
/*!************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??clonedRuleSet-1561.use[1]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-1561.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./client/component/tui/src/components/datatable/Table.vue?vue&type=style&index=0&id=28bdc634&lang=scss ***!
  \************************************************************************************************************************************************************************************************************************************************************************************************************************/
.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);
}
/*!*********************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??clonedRuleSet-1561.use[1]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-1561.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./client/component/tui/src/components/decor/AndBox.vue?vue&type=style&index=0&id=40e459dd&lang=scss ***!
  \*********************************************************************************************************************************************************************************************************************************************************************************************************************/
.tui-andBox {
  /* stylelint-disable-next-line tui/at-extend-only-placeholders*/
}
.tui-andBox__text {
  /* stylelint-disable-next-line tui/at-extend-only-placeholders*/
}
/*!********************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??clonedRuleSet-1561.use[1]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-1561.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./client/component/tui/src/components/decor/Arrow.vue?vue&type=style&index=0&id=2e24c330&lang=scss ***!
  \********************************************************************************************************************************************************************************************************************************************************************************************************************/
.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;
}
.tui-arrow--normal.tui-arrow--bottom::before {
  bottom: 0;
  left: 0;
}
.tui-arrow--normal.tui-arrow--left::before {
  top: 0;
  left: 0;
}
.tui-arrow--normal.tui-arrow--right::before {
  top: 0;
  right: 0;
}
.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;
}
.tui-arrow--normal.tui-arrow--bottom::after {
  bottom: 4px;
  left: 2px;
}
.tui-arrow--normal.tui-arrow--left::after {
  top: 2px;
  left: 4px;
}
.tui-arrow--normal.tui-arrow--right::after {
  top: 2px;
  right: 4px;
}
.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;
}
.tui-arrow--large.tui-arrow--bottom::before {
  bottom: 0;
  left: 0;
}
.tui-arrow--large.tui-arrow--left::before {
  top: 0;
  left: 0;
}
.tui-arrow--large.tui-arrow--right::before {
  top: 0;
  right: 0;
}
.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;
}
.tui-arrow--large.tui-arrow--bottom::after {
  bottom: 4px;
  left: 2px;
}
.tui-arrow--large.tui-arrow--left::after {
  top: 2px;
  left: 4px;
}
.tui-arrow--large.tui-arrow--right::after {
  top: 2px;
  right: 4px;
}
.tui-arrow--normal.tui-arrow__variant--default.tui-arrow--top::before, .tui-arrow--large.tui-arrow__variant--default.tui-arrow--top::before {
  border-bottom-color: var(--arrow-border-color);
}
.tui-arrow--normal.tui-arrow__variant--default.tui-arrow--bottom::before, .tui-arrow--large.tui-arrow__variant--default.tui-arrow--bottom::before {
  border-top-color: var(--arrow-border-color);
}
.tui-arrow--normal.tui-arrow__variant--default.tui-arrow--left::before, .tui-arrow--large.tui-arrow__variant--default.tui-arrow--left::before {
  border-right-color: var(--arrow-border-color);
}
.tui-arrow--normal.tui-arrow__variant--default.tui-arrow--right::before, .tui-arrow--large.tui-arrow__variant--default.tui-arrow--right::before {
  border-left-color: var(--arrow-border-color);
}
.tui-arrow--normal.tui-arrow__variant--default.tui-arrow--top::after, .tui-arrow--large.tui-arrow__variant--default.tui-arrow--top::after {
  border-bottom-color: var(--arrow-bg-color);
}
.tui-arrow--normal.tui-arrow__variant--default.tui-arrow--bottom::after, .tui-arrow--large.tui-arrow__variant--default.tui-arrow--bottom::after {
  border-top-color: var(--arrow-bg-color);
}
.tui-arrow--normal.tui-arrow__variant--default.tui-arrow--left::after, .tui-arrow--large.tui-arrow__variant--default.tui-arrow--left::after {
  border-right-color: var(--arrow-bg-color);
}
.tui-arrow--normal.tui-arrow__variant--default.tui-arrow--right::after, .tui-arrow--large.tui-arrow__variant--default.tui-arrow--right::after {
  border-left-color: var(--arrow-bg-color);
}
.tui-arrow--normal.tui-arrow__variant--inverse.tui-arrow--top::before, .tui-arrow--large.tui-arrow__variant--inverse.tui-arrow--top::before {
  border-bottom-color: var(--arrow-bg-inverse-color);
}
.tui-arrow--normal.tui-arrow__variant--inverse.tui-arrow--bottom::before, .tui-arrow--large.tui-arrow__variant--inverse.tui-arrow--bottom::before {
  border-top-color: var(--arrow-bg-inverse-color);
}
.tui-arrow--normal.tui-arrow__variant--inverse.tui-arrow--left::before, .tui-arrow--large.tui-arrow__variant--inverse.tui-arrow--left::before {
  border-right-color: var(--arrow-bg-inverse-color);
}
.tui-arrow--normal.tui-arrow__variant--inverse.tui-arrow--right::before, .tui-arrow--large.tui-arrow__variant--inverse.tui-arrow--right::before {
  border-left-color: var(--arrow-bg-inverse-color);
}
.tui-arrow--normal.tui-arrow__variant--inverse.tui-arrow--top::after, .tui-arrow--large.tui-arrow__variant--inverse.tui-arrow--top::after {
  border-bottom-color: var(--arrow-bg-inverse-color);
}
.tui-arrow--normal.tui-arrow__variant--inverse.tui-arrow--bottom::after, .tui-arrow--large.tui-arrow__variant--inverse.tui-arrow--bottom::after {
  border-top-color: var(--arrow-bg-inverse-color);
}
.tui-arrow--normal.tui-arrow__variant--inverse.tui-arrow--left::after, .tui-arrow--large.tui-arrow__variant--inverse.tui-arrow--left::after {
  border-right-color: var(--arrow-bg-inverse-color);
}
.tui-arrow--normal.tui-arrow__variant--inverse.tui-arrow--right::after, .tui-arrow--large.tui-arrow__variant--inverse.tui-arrow--right::after {
  border-left-color: var(--arrow-bg-inverse-color);
}
/*!********************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??clonedRuleSet-1561.use[1]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-1561.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./client/component/tui/src/components/decor/Caret.vue?vue&type=style&index=0&id=5f7ee9aa&lang=scss ***!
  \********************************************************************************************************************************************************************************************************************************************************************************************************************/
.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;
}
/*!********************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??clonedRuleSet-1561.use[1]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-1561.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./client/component/tui/src/components/decor/OrBox.vue?vue&type=style&index=0&id=5ec5d08f&lang=scss ***!
  \********************************************************************************************************************************************************************************************************************************************************************************************************************/
.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 {
  font-weight: bold;
  font-size: var(--font-body-size);
  font-family: var(--font-body-family);
  line-height: var(--font-body-line-height);
  margin: 0;
  padding: var(--gap-2) var(--gap-4);
  text-transform: uppercase;
}
/*!************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??clonedRuleSet-1561.use[1]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-1561.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./client/component/tui/src/components/decor/Separator.vue?vue&type=style&index=0&id=6f5d448c&lang=scss ***!
  \************************************************************************************************************************************************************************************************************************************************************************************************************************/
.tui-separator {
  margin: var(--gap-4) 0;
  /* simple implementation using a horizontal rule element*/
  /* 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--spread {
  margin: var(--gap-8) 0;
}
.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);
}
.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);
}
/*!************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??clonedRuleSet-1561.use[1]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-1561.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./client/component/tui/src/components/dev/performance/Performance.vue?vue&type=style&index=0&id=72a21f28&lang=scss ***!
  \************************************************************************************************************************************************************************************************************************************************************************************************************************************/
.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);
}
/*!****************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??clonedRuleSet-1561.use[1]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-1561.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./client/component/tui/src/components/drag_drop/Draggable.vue?vue&type=style&index=0&id=86fd50ae&lang=scss ***!
  \****************************************************************************************************************************************************************************************************************************************************************************************************************************/
[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;
}
/*!************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??clonedRuleSet-1561.use[1]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-1561.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./client/component/tui/src/components/drag_drop/DraggableMoveMenu.vue?vue&type=style&index=0&id=7ebf9799&lang=scss ***!
  \************************************************************************************************************************************************************************************************************************************************************************************************************************************/
.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 */
}
/*!****************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??clonedRuleSet-1561.use[1]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-1561.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./client/component/tui/src/components/drag_drop/Droppable.vue?vue&type=style&index=0&id=a4000152&lang=scss ***!
  \****************************************************************************************************************************************************************************************************************************************************************************************************************************/
.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);
}
/*!**************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??clonedRuleSet-1561.use[1]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-1561.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./client/component/tui/src/components/dropdown/Dropdown.vue?vue&type=style&index=0&id=6a2eebc0&lang=scss ***!
  \**************************************************************************************************************************************************************************************************************************************************************************************************************************/
.tui-dropdown__menu {
  z-index: var(--zindex-dropdown-menu);
  min-width: 9.375rem;
  max-width: 20rem;
  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: 20rem;
}
.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;
}
/*!********************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??clonedRuleSet-1561.use[1]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-1561.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./client/component/tui/src/components/dropdown/DropdownButton.vue?vue&type=style&index=0&id=a778431c&lang=scss ***!
  \********************************************************************************************************************************************************************************************************************************************************************************************************************************/
/* 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 {
  font-weight: var(--font-body-weight);
  font-size: var(--font-body-size);
  font-family: var(--font-body-family);
  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;
}
/*!*******************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??clonedRuleSet-1561.use[1]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-1561.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./client/component/tui/src/components/dropdown/DropdownGroup.vue?vue&type=style&index=0&id=38cc0eef&lang=scss ***!
  \*******************************************************************************************************************************************************************************************************************************************************************************************************************************/
.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);
}
/*!******************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??clonedRuleSet-1561.use[1]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-1561.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./client/component/tui/src/components/dropdown/DropdownItem.vue?vue&type=style&index=0&id=2183a3d3&lang=scss ***!
  \******************************************************************************************************************************************************************************************************************************************************************************************************************************/
.tui-dropdownItem {
  font-weight: var(--font-body-weight);
  font-size: var(--font-body-size);
  font-family: var(--font-body-family);
  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);
}
/*!*****************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??clonedRuleSet-1561.use[1]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-1561.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./client/component/tui/src/components/editor/EditorLoading.vue?vue&type=style&index=0&id=a0c7cea8&lang=scss ***!
  \*****************************************************************************************************************************************************************************************************************************************************************************************************************************/
.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(5.9375rem);
}
.tui-editorLoading--compact .tui-editorLoading__inner {
  /* similar to default Weka height with compact on*/
  height: calc(3.875rem);
}
.tui-editorLoading__spinner {
  color: var(--color-neutral-5);
}
/*!******************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??clonedRuleSet-1561.use[1]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-1561.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./client/component/tui/src/components/editor/EditorTextarea.vue?vue&type=style&index=0&id=7b3914fa&lang=scss ***!
  \******************************************************************************************************************************************************************************************************************************************************************************************************************************/
.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);
}
/*!*************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??clonedRuleSet-1561.use[1]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-1561.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./client/component/tui/src/components/embeds/ResponsiveEmbedIframe.vue?vue&type=style&index=0&id=4789f933&lang=scss ***!
  \*************************************************************************************************************************************************************************************************************************************************************************************************************************************/
.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;
}
/*!**************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??clonedRuleSet-1561.use[1]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-1561.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./client/component/tui/src/components/errors/ErrorModal.vue?vue&type=style&index=0&id=a91f810c&lang=scss ***!
  \**************************************************************************************************************************************************************************************************************************************************************************************************************************/
.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: var(--font-h4-weight);
  font-size: var(--font-h4-size);
  font-family: var(--font-h4-family);
  line-height: var(--font-h4-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;
}
/*!*******************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??clonedRuleSet-1561.use[1]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-1561.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./client/component/tui/src/components/errors/ErrorPageRender.vue?vue&type=style&index=0&id=bf256cf0&lang=scss ***!
  \*******************************************************************************************************************************************************************************************************************************************************************************************************************************/
.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;
}
/*!***********************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??clonedRuleSet-1561.use[1]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-1561.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./client/component/tui/src/components/errors/SessionExpiredModal.vue?vue&type=style&index=0&id=03876ace&lang=scss ***!
  \***********************************************************************************************************************************************************************************************************************************************************************************************************************************/
.tui-sesskeyExpired__button {
  margin-top: var(--gap-6);
  margin-left: auto;
}
/*!**********************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??clonedRuleSet-1561.use[1]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-1561.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./client/component/tui/src/components/file/FileCard.vue?vue&type=style&index=0&id=094cb030&lang=scss ***!
  \**********************************************************************************************************************************************************************************************************************************************************************************************************************/
.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: calc(var(--font-size-base) / 16 * 11);
  white-space: nowrap;
}
.tui-fileCard__fileSize-icon {
  font-size: calc(var(--font-size-base) / 16 * 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: 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);
}
/*!*****************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??clonedRuleSet-1561.use[1]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-1561.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./client/component/tui/src/components/filters/ButtonFilter.vue?vue&type=style&index=0&id=7f4c955d&lang=scss ***!
  \*****************************************************************************************************************************************************************************************************************************************************************************************************************************/
.tui-buttonFilter.tui-buttonFilter--stacked {
  text-align: right;
}
.tui-buttonFilter.tui-buttonFilter--stacked > * {
  margin-top: var(--gap-4);
}
/*!**************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??clonedRuleSet-1561.use[1]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-1561.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./client/component/tui/src/components/filters/FilterBar.vue?vue&type=style&index=0&id=112a05f8&lang=scss ***!
  \**************************************************************************************************************************************************************************************************************************************************************************************************************************/
.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: var(--label-weight);
  font-size: var(--font-body-sm-size);
  font-family: var(--font-body-sm-family);
  line-height: var(--font-body-sm-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);
}
/*!******************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??clonedRuleSet-1561.use[1]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-1561.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./client/component/tui/src/components/filters/FilterBarArea.vue?vue&type=style&index=0&id=f21707b6&lang=scss ***!
  \******************************************************************************************************************************************************************************************************************************************************************************************************************************/
.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;
}
/*!*************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??clonedRuleSet-1561.use[1]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-1561.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./client/component/tui/src/components/filters/FilterBarAreaPopover.vue?vue&type=style&index=0&id=2b06a720&lang=scss ***!
  \*************************************************************************************************************************************************************************************************************************************************************************************************************************************/
.tui-filterBarAreaPopover {
  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;
}
/*!********************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??clonedRuleSet-1561.use[1]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-1561.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./client/component/tui/src/components/filters/FilterSidePanel.vue?vue&type=style&index=0&id=bbc80bdc&lang=scss ***!
  \********************************************************************************************************************************************************************************************************************************************************************************************************************************/
.tui-filterSidePanel {
  display: block;
}
.tui-filterSidePanel__header {
  font-weight: var(--font-h3-weight);
  font-size: var(--font-h3-size);
  font-family: var(--font-h3-family);
  line-height: var(--font-h3-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: var(--label-weight);
  font-size: var(--font-body-sm-size);
  font-family: var(--font-body-sm-family);
  line-height: var(--font-body-sm-line-height);
}
/*!******************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??clonedRuleSet-1561.use[1]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-1561.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./client/component/tui/src/components/filters/MultiSelectCheckboxFilter.vue?vue&type=style&index=0&id=6c9437e6&lang=scss ***!
  \******************************************************************************************************************************************************************************************************************************************************************************************************************************************/
.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 {
    width: 47%;
    overflow-wrap: break-word;
  }
}
/*!**********************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??clonedRuleSet-1561.use[1]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-1561.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./client/component/tui/src/components/filters/MultiSelectFilter.vue?vue&type=style&index=0&id=ac42042c&lang=scss ***!
  \**********************************************************************************************************************************************************************************************************************************************************************************************************************************/
.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);
}
/*!*****************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??clonedRuleSet-1561.use[1]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-1561.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./client/component/tui/src/components/filters/SearchFilter.vue?vue&type=style&index=0&id=6219b853&lang=scss ***!
  \*****************************************************************************************************************************************************************************************************************************************************************************************************************************/
.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;
}
/*!*****************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??clonedRuleSet-1561.use[1]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-1561.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./client/component/tui/src/components/filters/SelectFilter.vue?vue&type=style&index=0&id=169b22b2&lang=scss ***!
  \*****************************************************************************************************************************************************************************************************************************************************************************************************************************/
.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;
}
/*!************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??clonedRuleSet-1561.use[1]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-1561.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./client/component/tui/src/components/filters/SortBar.vue?vue&type=style&index=0&id=40dc4b5c&lang=scss ***!
  \************************************************************************************************************************************************************************************************************************************************************************************************************************/
.tui-sortBar {
  display: flex;
  flex-flow: row wrap;
  gap: var(--gap-3) var(--gap-6);
  align-items: center;
  justify-content: space-between;
}
.tui-sortBar__start {
  display: flex;
  gap: var(--gap-2);
  align-items: center;
}
/*!**********************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??clonedRuleSet-1561.use[1]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-1561.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./client/component/tui/src/components/form/Checkbox.vue?vue&type=style&index=0&id=66569f7f&lang=scss ***!
  \**********************************************************************************************************************************************************************************************************************************************************************************************************************/
: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.125rem;
}
.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;
  overflow-wrap: break-word;
}
.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:disabled ~ .tui-checkbox__label--disabledReadable {
  color: var(--form-input-text-color);
}
.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 {
  /* IE11 & Edge support*/
  .tui-checkbox__input:checked ~ .tui-checkbox__label::before {
    -webkit-print-color-adjust: exact;
    print-color-adjust: exact;
  }
  .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;
  }
}
/*!****************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??clonedRuleSet-1561.use[1]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-1561.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./client/component/tui/src/components/form/CheckboxButton.vue?vue&type=style&index=0&id=017e3091&lang=scss ***!
  \****************************************************************************************************************************************************************************************************************************************************************************************************************************/
.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;
}
/*!***************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??clonedRuleSet-1561.use[1]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-1561.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./client/component/tui/src/components/form/CheckboxGroup.vue?vue&type=style&index=0&id=09ff7cf0&lang=scss ***!
  \***************************************************************************************************************************************************************************************************************************************************************************************************************************/
: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);
  }
}
/*!**************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??clonedRuleSet-1561.use[1]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-1561.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./client/component/tui/src/components/form/DateSelector.vue?vue&type=style&index=0&id=6207732e&lang=scss ***!
  \**************************************************************************************************************************************************************************************************************************************************************************************************************************/
.tui-dateSelector {
  display: flex;
  flex-flow: column;
  gap: var(--gap-2);
  max-width: 21.875rem;
  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);
}
/*!************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??clonedRuleSet-1561.use[1]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-1561.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./client/component/tui/src/components/form/FieldError.vue?vue&type=style&index=0&id=2b3ceb2c&lang=scss ***!
  \************************************************************************************************************************************************************************************************************************************************************************************************************************/
.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: var(--font-body-sm-weight);
  font-size: var(--font-body-sm-size);
  font-family: var(--font-body-sm-family);
  line-height: var(--font-body-sm-line-height);
  display: inline-flex;
  align-items: center;
  padding: 0.375rem 0.5rem;
  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: var(--font-body-sm-weight);
  font-size: var(--font-body-sm-size);
  font-family: var(--font-body-sm-family);
  line-height: var(--font-body-sm-line-height);
}
/*!************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??clonedRuleSet-1561.use[1]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-1561.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./client/component/tui/src/components/form/FieldGroup.vue?vue&type=style&index=0&id=7e589b61&lang=scss ***!
  \************************************************************************************************************************************************************************************************************************************************************************************************************************/
.tui-formFieldGroup {
  flex-grow: 1;
  width: 100%;
  min-width: 0;
}
/*!**********************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??clonedRuleSet-1561.use[1]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-1561.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./client/component/tui/src/components/form/Fieldset.vue?vue&type=style&index=0&id=38ddeb38&lang=scss ***!
  \**********************************************************************************************************************************************************************************************************************************************************************************************************************/
.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: calc(var(--font-size-base) / 16 * 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 */
}
/*!****************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??clonedRuleSet-1561.use[1]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-1561.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./client/component/tui/src/components/form/FilterFieldset.vue?vue&type=style&index=0&id=5303aa08&lang=scss ***!
  \****************************************************************************************************************************************************************************************************************************************************************************************************************************/
.tui-filterFieldset {
  min-width: 0;
  margin: 0;
  padding: 0;
  border: 0;
}
.tui-filterFieldset__content {
  margin-top: var(--gap-2);
}
/*!******************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??clonedRuleSet-1561.use[1]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-1561.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./client/component/tui/src/components/form/Form.vue?vue&type=style&index=0&id=63bfcc00&lang=scss ***!
  \******************************************************************************************************************************************************************************************************************************************************************************************************************/
.tui-form > * + * {
  margin-top: var(--gap-8);
}
/*!*********************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??clonedRuleSet-1561.use[1]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-1561.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./client/component/tui/src/components/form/FormRow.vue?vue&type=style&index=0&id=6e2506ea&lang=scss ***!
  \*********************************************************************************************************************************************************************************************************************************************************************************************************************/
.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: 44.5rem;
}
.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: 13.75rem;
  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-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-line-height)) / 2);
}
/*!*****************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??clonedRuleSet-1561.use[1]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-1561.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./client/component/tui/src/components/form/FormRowDefaults.vue?vue&type=style&index=0&id=5669625c&lang=scss ***!
  \*****************************************************************************************************************************************************************************************************************************************************************************************************************************/
.tui-formRow__defaults {
  color: var(--form-defaults-text-color);
  font-weight: var(--font-body-sm-weight);
  font-size: var(--font-body-sm-size);
  font-family: var(--font-body-sm-family);
  line-height: var(--font-body-sm-line-height);
}
/*!****************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??clonedRuleSet-1561.use[1]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-1561.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./client/component/tui/src/components/form/FormRowDetails.vue?vue&type=style&index=0&id=593de728&lang=scss ***!
  \****************************************************************************************************************************************************************************************************************************************************************************************************************************/
.tui-formRow__details {
  color: var(--form-details-text-color);
  font-weight: var(--font-body-sm-weight);
  font-size: var(--font-body-sm-size);
  font-family: var(--font-body-sm-family);
  line-height: var(--font-body-sm-line-height);
}
/*!**************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??clonedRuleSet-1561.use[1]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-1561.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./client/component/tui/src/components/form/FormRowStack.vue?vue&type=style&index=0&id=27dac024&lang=scss ***!
  \**************************************************************************************************************************************************************************************************************************************************************************************************************************/
.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);
}
/*!**********************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??clonedRuleSet-1561.use[1]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-1561.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./client/component/tui/src/components/form/HelpIcon.vue?vue&type=style&index=0&id=6c0dd796&lang=scss ***!
  \**********************************************************************************************************************************************************************************************************************************************************************************************************************/
.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;
}
/*!*************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??clonedRuleSet-1561.use[1]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-1561.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./client/component/tui/src/components/form/ImageUpload.vue?vue&type=style&index=0&id=3dd68ab0&lang=scss ***!
  \*************************************************************************************************************************************************************************************************************************************************************************************************************************/
.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: 15.625rem;
}
.tui-formImageUpload__progress {
  padding: var(--gap-2);
}
/*!*******************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??clonedRuleSet-1561.use[1]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-1561.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./client/component/tui/src/components/form/Input.vue?vue&type=style&index=0&id=1b396584&lang=scss ***!
  \*******************************************************************************************************************************************************************************************************************************************************************************************************************/
.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-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);
  /* Set a custom size for inputs in a limited form*/
}
.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));
}
.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;
}
/*!************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??clonedRuleSet-1561.use[1]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-1561.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./client/component/tui/src/components/form/InputColor.vue?vue&type=style&index=0&id=703bb575&lang=scss ***!
  \************************************************************************************************************************************************************************************************************************************************************************************************************************/
.tui-inputColor {
  position: relative;
  /* Set a custom size for inputs in a limited form*/
  /* visually hide the colour Input control*/
  /* quite acute box model and positioning values to make sure they scale with*/
  /* associated text Input values*/
}
.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));
}
.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;
}
.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;
}
.tui-inputColor__colorBlock {
  position: absolute;
  /* prettier-ignore*/
  top: calc(0.25rem + var(--form-input-border-size));
  left: calc(0.25rem + var(--form-input-border-size));
  width: var(--gap-8);
  /* prettier-ignore*/
  height: calc(100% - 0.5rem - 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.5rem + var(
          --form-input-border-size
        ) + var(--gap-1));
}
/*!***************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??clonedRuleSet-1561.use[1]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-1561.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./client/component/tui/src/components/form/InputCurrency.vue?vue&type=style&index=0&id=7b181aef&lang=scss ***!
  \***************************************************************************************************************************************************************************************************************************************************************************************************************************/
.tui-formInputCurrency {
  display: flex;
  flex-grow: 1;
  align-items: center;
  width: 100%;
  min-width: 0;
  /* Set a custom size for inputs in a limited form*/
}
.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));
}
.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: var(--label-weight);
  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);
}
/*!************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??clonedRuleSet-1561.use[1]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-1561.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./client/component/tui/src/components/form/InputGroup.vue?vue&type=style&index=0&id=bc76e2de&lang=scss ***!
  \************************************************************************************************************************************************************************************************************************************************************************************************************************/
.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);
  /* Set a custom size for inputs in a limited form*/
}
.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));
}
.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);
}
/*!******************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??clonedRuleSet-1561.use[1]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-1561.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./client/component/tui/src/components/form/InputGroupButton.vue?vue&type=style&index=0&id=3ea5ebba&lang=scss ***!
  \******************************************************************************************************************************************************************************************************************************************************************************************************************************/
.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;
}
/*!*****************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??clonedRuleSet-1561.use[1]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-1561.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./client/component/tui/src/components/form/InputGroupInput.vue?vue&type=style&index=0&id=c46e262e&lang=scss ***!
  \*****************************************************************************************************************************************************************************************************************************************************************************************************************************/
/* 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);
}
/*!**********************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??clonedRuleSet-1561.use[1]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-1561.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./client/component/tui/src/components/form/InputSet.vue?vue&type=style&index=0&id=79f8a174&lang=scss ***!
  \**********************************************************************************************************************************************************************************************************************************************************************************************************************/
.tui-inputSet {
  display: flex;
  flex: 1;
  gap: var(--input-set-spacing);
  /* Set a custom size for inputs in a limited form*/
  /* need to specify .tui-formInput here too for specificity reasons*/
  /* need to specify .tui-formInput here too for specificity reasons*/
  /* need to specify .tui-formInput here too for specificity reasons*/
  /* need to specify .tui-formInput here too for specificity reasons*/
  /* need to specify .tui-formInput here too for specificity reasons*/
  /* need to specify .tui-formInput here too for specificity reasons*/
  /* need to specify .tui-formInput here too for specificity reasons*/
  /* need to specify .tui-formInput here too for specificity reasons*/
  /* need to specify .tui-formInput here too for specificity reasons*/
  /* need to specify .tui-formInput here too for specificity reasons*/
  /* need to specify .tui-formInput here too for specificity reasons*/
  /* need to specify .tui-formInput here too for specificity reasons*/
}
.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));
}
.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;
}
.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);
}
.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);
}
.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);
}
.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);
}
.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);
}
.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);
}
.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);
}
.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);
}
.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);
}
.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);
}
.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);
}
.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);
}
/*!*************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??clonedRuleSet-1561.use[1]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-1561.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./client/component/tui/src/components/form/InputSetCol.vue?vue&type=style&index=0&id=36c75f9c&lang=scss ***!
  \*************************************************************************************************************************************************************************************************************************************************************************************************************************/
.tui-inputSetCol {
  flex-basis: 0;
}
/*!****************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??clonedRuleSet-1561.use[1]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-1561.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./client/component/tui/src/components/form/InputSizedText.vue?vue&type=style&index=0&id=043dca3c&lang=scss ***!
  \****************************************************************************************************************************************************************************************************************************************************************************************************************************/
.tui-formInputSizedText {
  padding: calc((var(--form-input-height) - var(--form-input-line-height)) / 2) 0;
  line-height: var(--form-input-line-height);
}
/*!*******************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??clonedRuleSet-1561.use[1]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-1561.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./client/component/tui/src/components/form/Label.vue?vue&type=style&index=0&id=686bcf68&lang=scss ***!
  \*******************************************************************************************************************************************************************************************************************************************************************************************************************/
.tui-formLabel {
  font-weight: var(--label-weight);
  font-size: var(--font-body-size);
  font-family: var(--font-body-family);
  line-height: var(--font-body-line-height);
  min-width: 0;
  margin: 0;
  padding: 0 var(--gap-1) 0 0;
}
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: var(--font-body-sm-weight);
  font-size: var(--font-body-sm-size);
  font-family: var(--font-body-sm-family);
  line-height: var(--font-body-sm-line-height);
  color: var(--color-neutral-6);
}
.tui-formLabel__required {
  color: var(--color-prompt-alert);
}
/*!**************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??clonedRuleSet-1561.use[1]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-1561.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./client/component/tui/src/components/form/NotepadLines.vue?vue&type=style&index=0&id=18209c5a&lang=scss ***!
  \**************************************************************************************************************************************************************************************************************************************************************************************************************************/
.tui-notepadLines {
  /* Set a custom size for inputs in a limited form*/
}
.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));
}
.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);
}
/*!*******************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??clonedRuleSet-1561.use[1]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-1561.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./client/component/tui/src/components/form/Radio.vue?vue&type=style&index=0&id=52d088ef&lang=scss ***!
  \*******************************************************************************************************************************************************************************************************************************************************************************************************************/
:root {
  /* Size of radio circle*/
  --form-radio-size: calc(var(--font-size-base) / 16 * 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 {
  /* IE11 & Edge support*/
  .tui-radio__input ~ .tui-radio__label::after {
    -webkit-print-color-adjust: exact;
    print-color-adjust: exact;
  }
  .ie .tui-radio__input ~ .tui-radio__label::after, .msedge .tui-radio__input ~ .tui-radio__label::after {
    border: 4px solid var(--form-radio-dot-color);
  }
}
/*!*********************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??clonedRuleSet-1561.use[1]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-1561.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./client/component/tui/src/components/form/RadioDateRangeInput.vue?vue&type=style&index=0&id=2d44f22a&lang=scss ***!
  \*********************************************************************************************************************************************************************************************************************************************************************************************************************************/
.tui-radioDateRangeInput {
  display: flex;
}
.tui-radioDateRangeInput > * + * {
  margin-left: var(--gap-2);
}
.tui-radioDateRangeInput__number {
  display: flex;
  width: 3.75rem;
}
.tui-radioDateRangeInput__type {
  display: flex;
  width: 7.5rem;
}
/*!************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??clonedRuleSet-1561.use[1]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-1561.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./client/component/tui/src/components/form/RadioGroup.vue?vue&type=style&index=0&id=596df980&lang=scss ***!
  \************************************************************************************************************************************************************************************************************************************************************************************************************************/
.tui-radioGroup {
  display: flex;
  flex-direction: column;
  gap: var(--gap-2) var(--gap-4);
  padding: calc((var(--form-input-height) - 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;
  }
}
/*!******************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??clonedRuleSet-1561.use[1]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-1561.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./client/component/tui/src/components/form/RadioNumberInput.vue?vue&type=style&index=0&id=e7575d7c&lang=scss ***!
  \******************************************************************************************************************************************************************************************************************************************************************************************************************************/
.tui-radioNumberInput {
  display: flex;
  /* Use same indentation as radio for nicer wrapping*/
  margin-left: var(--radio-label-offset);
}
.tui-radioNumberInput__number {
  display: flex;
  width: 3.75rem;
}
/*!****************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??clonedRuleSet-1561.use[1]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-1561.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./client/component/tui/src/components/form/RadioWithInput.vue?vue&type=style&index=0&id=4032e2b6&lang=scss ***!
  \****************************************************************************************************************************************************************************************************************************************************************************************************************************/
.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;
}
/*!*******************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??clonedRuleSet-1561.use[1]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-1561.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./client/component/tui/src/components/form/Range.vue?vue&type=style&index=0&id=5fd83d31&lang=scss ***!
  \*******************************************************************************************************************************************************************************************************************************************************************************************************************/
.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: var(--font-body-sm-weight);
  font-size: var(--font-body-sm-size);
  font-family: var(--font-body-sm-family);
  line-height: var(--font-body-sm-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;
  /* Track styles */
  /* Thumb styles */
}
.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;
}
.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;
  print-color-adjust: exact;
}
.tui-range__input:focus::-webkit-slider-runnable-track {
  background: var(--color-neutral-4);
  -webkit-print-color-adjust: exact;
  print-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;
  print-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;
  print-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);
}
.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;
}
/*!**********************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??clonedRuleSet-1561.use[1]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-1561.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./client/component/tui/src/components/form/Repeater.vue?vue&type=style&index=0&id=5ac158c4&lang=scss ***!
  \**********************************************************************************************************************************************************************************************************************************************************************************************************************/
.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;
}
/*!***********************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??clonedRuleSet-1561.use[1]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-1561.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./client/component/tui/src/components/form/SearchBox.vue?vue&type=style&index=0&id=b0d57c12&lang=scss ***!
  \***********************************************************************************************************************************************************************************************************************************************************************************************************************/
.tui-searchBox {
  position: relative;
  display: flex;
  border-radius: var(--form-input-border-radius);
  isolation: isolate;
  /* contain z indexes*/
  /* So that the search button matches the format of the input that is next to it*/
}
.tui-searchBox__inputWrapper {
  position: relative;
  display: flex;
  flex-grow: 1;
  /* Set a custom size for inputs in a limited form*/
}
.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));
}
.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);
  /* disable the default clear (x) action in IE*/
}
.tui-searchBox__search[type="search"]:focus {
  z-index: 1;
}
.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);
}
.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;
}
/*!********************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??clonedRuleSet-1561.use[1]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-1561.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./client/component/tui/src/components/form/Select.vue?vue&type=style&index=0&id=b1686590&lang=scss ***!
  \********************************************************************************************************************************************************************************************************************************************************************************************************************/
: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);
  /* Set a custom size for inputs in a limited form*/
}
.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));
}
.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;
  /* Drop select outline*/
  /* appearance: none; equivalent for IE*/
  /* prevent weird styling after selecting value*/
}
.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);
}
.tui-select__input:-moz-focusring {
  color: transparent;
  text-shadow: 0 0 0 #000;
}
.tui-select__input::-ms-expand {
  display: none;
}
.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);
}
/*!**********************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??clonedRuleSet-1561.use[1]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-1561.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./client/component/tui/src/components/form/Textarea.vue?vue&type=style&index=0&id=51b6a776&lang=scss ***!
  \**********************************************************************************************************************************************************************************************************************************************************************************************************************/
.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-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;
  /* Set a custom size for inputs in a limited form*/
}
.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));
}
.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);
}
/*!******************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??clonedRuleSet-1561.use[1]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-1561.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./client/component/tui/src/components/grid/Grid.vue?vue&type=style&index=0&id=105b8980&lang=scss ***!
  \******************************************************************************************************************************************************************************************************************************************************************************************************************/
/* 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*/
  /* content-containing elements*/
  /* horizontal grid*/
  /* vertical grid*/
  /* all zero unit GridItems should not show any gutters or content*/
  /* switch to stacked display at an container-based pixel width breakpoint*/
  /* value (class is conditionally applied during Grid render())*/
}
.tui-grid--wrapped {
  flex-wrap: wrap;
}
.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;
  /* 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--overflow {
  overflow: auto;
}
.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*/
}
.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;
}
.tui-grid--vertical .tui-grid-item--no-units, .tui-grid--horizontal .tui-grid-item--no-units {
  overflow: hidden;
}
.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;
}
/*!**********************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??clonedRuleSet-1561.use[1]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-1561.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./client/component/tui/src/components/icons/Loading.vue?vue&type=style&index=0&id=0c872958&lang=scss ***!
  \**********************************************************************************************************************************************************************************************************************************************************************************************************************/
.tui-iconLoading {
  animation: tui-iconLoading-spin 1s steps(12, end) infinite;
}
@keyframes tui-iconLoading-spin {
  0% {
    transform: rotate(0deg);
  }
  100% {
    transform: rotate(360deg);
  }
}
/*!*****************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??clonedRuleSet-1561.use[1]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-1561.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./client/component/tui/src/components/icons/implementation/SvgIconWrap.vue?vue&type=style&index=0&id=123d075e&lang=scss ***!
  \*****************************************************************************************************************************************************************************************************************************************************************************************************************************************/
.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: calc(var(--icon-size-base) * 0.875);
}
.tui-svgIcon--size-200 {
  font-size: var(--icon-size-base);
}
.tui-svgIcon--size-300 {
  font-size: calc(var(--icon-size-base) * 1.25);
}
.tui-svgIcon--size-400 {
  font-size: calc(var(--icon-size-base) * 1.5);
}
.tui-svgIcon--size-500 {
  font-size: calc(var(--icon-size-base) * 1.75);
}
.tui-svgIcon--size-600 {
  font-size: calc(var(--icon-size-base) * 2);
}
.tui-svgIcon--size-700 {
  font-size: calc(var(--icon-size-base) * 2.375);
}
.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);
}
/*!*******************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??clonedRuleSet-1561.use[1]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-1561.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./client/component/tui/src/components/images/ResponsiveImage.vue?vue&type=style&index=0&id=3d972422&lang=scss ***!
  \*******************************************************************************************************************************************************************************************************************************************************************************************************************************/
.tui-responsiveImage {
  display: block;
  max-width: 100%;
  height: auto;
}
.tui-responsiveImage--grow {
  width: 100%;
}
/*!***************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??clonedRuleSet-1561.use[1]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-1561.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./client/component/tui/src/components/json_editor/nodes/AttachmentNodeCollection.vue?vue&type=style&index=0&id=48ac722a&lang=scss ***!
  \***************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
.tui-attachmentNodeCollection {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(min(15.625rem, 100%), 1fr));
  gap: var(--gap-2);
  padding: var(--gap-1) 0;
  white-space: normal;
}
/*!*************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??clonedRuleSet-1561.use[1]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-1561.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./client/component/tui/src/components/json_editor/nodes/AudioBlock.vue?vue&type=style&index=0&id=c5f78602&lang=scss ***!
  \*************************************************************************************************************************************************************************************************************************************************************************************************************************************/
.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: 37.5rem;
  white-space: pre-line;
}
/*!********************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??clonedRuleSet-1561.use[1]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-1561.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./client/component/tui/src/components/json_editor/nodes/Emoji.vue?vue&type=style&index=0&id=3bacc64e&lang=scss ***!
  \********************************************************************************************************************************************************************************************************************************************************************************************************************************/
.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;
}
/*!**********************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??clonedRuleSet-1561.use[1]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-1561.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./client/component/tui/src/components/json_editor/nodes/Hashtag.vue?vue&type=style&index=0&id=6c18f2d4&lang=scss ***!
  \**********************************************************************************************************************************************************************************************************************************************************************************************************************************/
.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);
}
/*!*************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??clonedRuleSet-1561.use[1]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-1561.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./client/component/tui/src/components/json_editor/nodes/ImageBlock.vue?vue&type=style&index=0&id=6c1d951a&lang=scss ***!
  \*************************************************************************************************************************************************************************************************************************************************************************************************************************************/
.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);
}
/*!************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??clonedRuleSet-1561.use[1]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-1561.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./client/component/tui/src/components/json_editor/nodes/LinkBlock.vue?vue&type=style&index=0&id=37dca03b&lang=scss ***!
  \************************************************************************************************************************************************************************************************************************************************************************************************************************************/
.tui-linkBlock {
  position: relative;
  display: flex;
  max-width: 17.875rem;
  height: calc(4.75rem + 2px);
  font-size: calc(var(--font-size-base) / 16 * 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: 3.75rem;
  height: 3.75rem;
  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.1875rem;
  font-weight: bold;
  font-size: calc(var(--font-size-base) / 16 * 12);
  line-height: 1.15;
}
.tui-linkBlock__title {
  margin-bottom: 0.1875rem;
  color: var(--color-state);
  font-weight: bold;
}
.tui-linkBlock__description {
  /* show a max of 2 lines*/
  height: calc(calc(var(--font-size-base) / 16 * 13) * 2 * 1.15);
  overflow: hidden;
}
.tui-linkBlock__linkOnly {
  /* show a max of 4 lines*/
  height: calc(calc(var(--font-size-base) / 16 * 13) * 4 * 1.12);
  margin-top: 0.125rem;
  overflow: hidden;
  color: var(--color-state);
  font-weight: bold;
  font-size: calc(var(--font-size-base) / 16 * 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);
}
/*!**********************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??clonedRuleSet-1561.use[1]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-1561.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./client/component/tui/src/components/json_editor/nodes/Mention.vue?vue&type=style&index=0&id=1d5fd41c&lang=scss ***!
  \**********************************************************************************************************************************************************************************************************************************************************************************************************************************/
.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);
}
/*!*************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??clonedRuleSet-1561.use[1]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-1561.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./client/component/tui/src/components/json_editor/nodes/VideoBlock.vue?vue&type=style&index=0&id=bb02a40c&lang=scss ***!
  \*************************************************************************************************************************************************************************************************************************************************************************************************************************************/
.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;
}
/*!********************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??clonedRuleSet-1561.use[1]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-1561.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./client/component/tui/src/components/layouts/LayoutOneColumn.vue?vue&type=style&index=0&id=bff3e3c6&lang=scss ***!
  \********************************************************************************************************************************************************************************************************************************************************************************************************************************/
.tui-layoutOneColumn {
  font-weight: var(--font-body-weight);
  font-size: var(--font-body-size);
  font-family: var(--font-body-family);
  line-height: var(--font-body-line-height);
  margin-top: var(--gap-2);
}
.tui-layoutOneColumn > * + * {
  margin-top: var(--gap-6);
}
.tui-layoutOneColumn__heading > * + * {
  margin-top: var(--gap-2);
}
.tui-layoutOneColumn__heading-sub {
  margin-top: var(--gap-1);
}
.tui-layoutOneColumn--flush {
  margin-top: var(--gap-12);
}
/*!*****************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??clonedRuleSet-1561.use[1]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-1561.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./client/component/tui/src/components/layouts/PageBackLink.vue?vue&type=style&index=0&id=57e08d75&lang=scss ***!
  \*****************************************************************************************************************************************************************************************************************************************************************************************************************************/
.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;
}
/*!****************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??clonedRuleSet-1561.use[1]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-1561.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./client/component/tui/src/components/layouts/PageHeading.vue?vue&type=style&index=0&id=47420e3e&lang=scss ***!
  \****************************************************************************************************************************************************************************************************************************************************************************************************************************/
.tui-pageHeading {
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  gap: var(--gap-3);
  align-items: flex-start;
}
.tui-pageHeading__title {
  font-weight: var(--font-h1-weight);
  font-size: var(--font-h1-size);
  font-family: var(--font-h1-family);
  line-height: var(--font-h1-line-height);
  flex-grow: 1;
  min-width: 0;
  margin: 0;
  overflow-wrap: break-word;
}
.tui-pageHeading__title--small {
  font-weight: var(--font-h2-weight);
  font-size: var(--font-h2-size);
  font-family: var(--font-h2-family);
  line-height: var(--font-h2-line-height);
}
.tui-pageHeading__title--smallOnMob {
  font-weight: var(--font-h2-weight);
  font-size: var(--font-h2-size);
  font-family: var(--font-h2-family);
  line-height: var(--font-h2-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;
  }
  .tui-pageHeading__title--smallOnMob {
    font-weight: var(--font-h1-weight);
    font-size: var(--font-h1-size);
    font-family: var(--font-h1-family);
    line-height: var(--font-h1-line-height);
  }
}
@media (min-width: 992px) {
  .tui-pageHeading {
    flex-wrap: nowrap;
  }
}
/*!****************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??clonedRuleSet-1561.use[1]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-1561.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./client/component/tui/src/components/links/SkipToContent.vue?vue&type=style&index=0&id=154f558c&lang=scss ***!
  \****************************************************************************************************************************************************************************************************************************************************************************************************************************/
.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;
}
/*!*********************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??clonedRuleSet-1561.use[1]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-1561.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./client/component/tui/src/components/loading/ComponentLoading.vue?vue&type=style&index=0&id=bfbbf21e&lang=scss ***!
  \*********************************************************************************************************************************************************************************************************************************************************************************************************************************/
.tui-componentLoading {
  display: flex;
  align-items: center;
  justify-content: center;
  padding: var(--gap-3);
  color: var(--color-neutral-6);
}
/*!***********************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??clonedRuleSet-1561.use[1]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-1561.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./client/component/tui/src/components/loading/Loader.vue?vue&type=style&index=0&id=3cb8e005&lang=scss ***!
  \***********************************************************************************************************************************************************************************************************************************************************************************************************************/
.tui-loader {
  position: relative;
  /* Don't show nested loaders*/
  /* If no slot content (e.g. initial load)*/
}
.tui-loader--active > * .tui-loader__overlay {
  display: none;
}
.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: calc(var(--font-size-base) / 16 * 15);
}
.tui-loader__display .fa-spinner {
  position: relative;
  top: -1px;
}
/*!********************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??clonedRuleSet-1561.use[1]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-1561.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./client/component/tui/src/components/loading/SkeletonContent.vue?vue&type=style&index=0&id=6b64466a&lang=scss ***!
  \********************************************************************************************************************************************************************************************************************************************************************************************************************************/
: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);
  /* Set a custom size for inputs in a limited form*/
}
.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));
}
.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;
}
/*!************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??clonedRuleSet-1561.use[1]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-1561.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./client/component/tui/src/components/lozenge/Lozenge.vue?vue&type=style&index=0&id=faf15c04&lang=scss ***!
  \************************************************************************************************************************************************************************************************************************************************************************************************************************/
.tui-lozenge {
  display: inline-flex;
  padding: 3px var(--gap-2) 3px;
  color: var(--color-neutral-1);
  font-weight: var(--font-body-sm-weight);
  font-size: var(--font-body-sm-size);
  font-family: var(--font-body-sm-family);
  line-height: var(--font-body-sm-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);
}
/*!********************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??clonedRuleSet-1561.use[1]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-1561.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./client/component/tui/src/components/modal/Modal.vue?vue&type=style&index=0&id=251e81c8&lang=scss ***!
  \********************************************************************************************************************************************************************************************************************************************************************************************************************/
.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: calc(var(--font-size-base) / 16 * 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;
    /* 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--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;
  }
  .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;
    /* 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--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;
  }
  .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;
    /* 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--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;
  }
  .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);
  }
}
/*!***************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??clonedRuleSet-1561.use[1]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-1561.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./client/component/tui/src/components/modal/ModalContent.vue?vue&type=style&index=0&id=b87b7d26&lang=scss ***!
  \***************************************************************************************************************************************************************************************************************************************************************************************************************************/
.tui-modalContent {
  font-weight: var(--font-body-weight);
  font-size: var(--font-body-size);
  font-family: var(--font-body-family);
  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: var(--font-h3-weight);
  font-size: var(--font-h3-size);
  font-family: var(--font-h3-family);
  line-height: var(--font-h3-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: var(--font-h4-weight);
  font-size: var(--font-h4-size);
  font-family: var(--font-h4-family);
  line-height: var(--font-h4-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;
}
/*!********************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??clonedRuleSet-1561.use[1]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-1561.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./client/component/tui/src/components/modal/ModalHeaderButton.vue?vue&type=style&index=0&id=5e144ddb&lang=scss ***!
  \********************************************************************************************************************************************************************************************************************************************************************************************************************************/
.tui-modalHeaderButton {
  display: flex;
  flex-shrink: 0;
  align-items: center;
  justify-content: center;
  width: 1.5rem;
  height: 1.5rem;
  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);
}
/*!*****************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??clonedRuleSet-1561.use[1]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-1561.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./client/component/tui/src/components/notifications/NotificationBanner.vue?vue&type=style&index=0&id=b8712f06&lang=scss ***!
  \*****************************************************************************************************************************************************************************************************************************************************************************************************************************************/
.tui-notificationBanner {
  font-weight: var(--font-body-sm-weight);
  font-size: var(--font-body-sm-size);
  font-family: var(--font-body-sm-family);
  line-height: var(--font-body-sm-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 {
    font-weight: var(--font-body-weight);
    font-size: var(--font-body-size);
    font-family: var(--font-body-family);
    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);
  }
}
/*!****************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??clonedRuleSet-1561.use[1]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-1561.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./client/component/tui/src/components/notifications/NotificationToast.vue?vue&type=style&index=0&id=56679534&lang=scss ***!
  \****************************************************************************************************************************************************************************************************************************************************************************************************************************************/
.tui-notificationToast {
  font-weight: var(--font-body-sm-weight);
  font-size: var(--font-body-sm-size);
  font-family: var(--font-body-sm-family);
  line-height: var(--font-body-sm-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 {
    font-weight: var(--font-body-weight);
    font-size: var(--font-body-size);
    font-family: var(--font-body-family);
    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);
  }
}
/*!*************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??clonedRuleSet-1561.use[1]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-1561.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./client/component/tui/src/components/notifications/ToastContainer.vue?vue&type=style&index=0&id=9b77ffc0&lang=scss ***!
  \*************************************************************************************************************************************************************************************************************************************************************************************************************************************/
.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;
  }
}
/*!*********************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??clonedRuleSet-1561.use[1]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-1561.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./client/component/tui/src/components/overflow_container/OverflowContainer.vue?vue&type=style&index=0&id=628441da&lang=scss ***!
  \*********************************************************************************************************************************************************************************************************************************************************************************************************************************************/
.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: calc(var(--font-size-base) / 16 * 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;
}
/*!**********************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??clonedRuleSet-1561.use[1]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-1561.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./client/component/tui/src/components/paging/Paging.vue?vue&type=style&index=0&id=10fbddc0&lang=scss ***!
  \**********************************************************************************************************************************************************************************************************************************************************************************************************************/
.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: 4.375rem 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%;
}
/*!************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??clonedRuleSet-1561.use[1]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-1561.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./client/component/tui/src/components/popover/Popover.vue?vue&type=style&index=0&id=738d09e8&lang=scss ***!
  \************************************************************************************************************************************************************************************************************************************************************************************************************************/
.tui-popover__wrap--valign-center {
  display: flex;
  align-items: center;
}
/*!*****************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??clonedRuleSet-1561.use[1]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-1561.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./client/component/tui/src/components/popover/PopoverFrame.vue?vue&type=style&index=0&id=662b5d71&lang=scss ***!
  \*****************************************************************************************************************************************************************************************************************************************************************************************************************************/
.tui-popoverFrame {
  font-weight: var(--font-body-weight);
  font-size: var(--font-body-size);
  font-family: var(--font-body-family);
  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(0.875rem - 0.1em) calc(0.875rem - 0.3em);
}
.tui-popoverFrame__title {
  font-weight: var(--font-h4-weight);
  font-size: var(--font-h4-size);
  font-family: var(--font-h4-family);
  line-height: var(--font-h4-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);
}
/*!**********************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??clonedRuleSet-1561.use[1]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-1561.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./client/component/tui/src/components/popover/PopoverPositioner.vue?vue&type=style&index=0&id=b17aea7c&lang=scss ***!
  \**********************************************************************************************************************************************************************************************************************************************************************************************************************************/
.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;
  font-weight: var(--font-body-weight);
  font-size: var(--font-body-size);
  font-family: var(--font-body-family);
  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;
}
/*!************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??clonedRuleSet-1561.use[1]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-1561.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./client/component/tui/src/components/popover/Tooltip.vue?vue&type=style&index=0&id=2a61e52c&lang=scss ***!
  \************************************************************************************************************************************************************************************************************************************************************************************************************************/
.tui-tooltip__body {
  position: relative;
  width: -webkit-max-content;
  width: max-content;
  max-width: 80vw;
  margin: 10px;
  /* arrow size*/
  padding: calc(var(--gap-base) * 2) calc(var(--gap-base) * 3);
  color: var(--color-neutral-1);
  overflow-wrap: break-word;
  background: var(--color-neutral-7);
  border-radius: var(--border-radius-small);
  /* switch when 300px would be 80% of the viewport (80vw) to avoid jump*/
}
@media (min-width: 23.4375rem) {
  .tui-tooltip__body {
    max-width: 18.75rem;
  }
}
/*!********************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??clonedRuleSet-1561.use[1]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-1561.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./client/component/tui/src/components/profile/MiniProfileCard.vue?vue&type=style&index=0&id=2f64db6d&lang=scss ***!
  \********************************************************************************************************************************************************************************************************************************************************************************************************************************/
.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: var(--font-body-sm-weight);
  font-size: var(--font-body-sm-size);
  font-family: var(--font-body-sm-family);
  line-height: var(--font-body-sm-line-height);
  margin: 0;
  overflow: hidden;
  white-space: nowrap;
  text-overflow: ellipsis;
}
.tui-miniProfileCard__row-text--bold {
  font-weight: bold;
}
.tui-miniProfileCard__row-link {
  font-weight: var(--font-body-sm-weight);
  font-size: var(--font-body-sm-size);
  font-family: var(--font-body-sm-family);
  line-height: var(--font-body-sm-line-height);
  margin: 0;
  overflow: hidden;
  white-space: nowrap;
  text-overflow: ellipsis;
}
.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);
}
/*!**************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??clonedRuleSet-1561.use[1]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-1561.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./client/component/tui/src/components/progress/Progress.vue?vue&type=style&index=0&id=5dba2cc0&lang=scss ***!
  \**************************************************************************************************************************************************************************************************************************************************************************************************************************/
.tui-progress {
  position: relative;
  display: flex;
  height: 0.875rem;
  font-size: 0.6875rem;
  line-height: 0.875rem;
  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: 0.75rem;
  line-height: 0.625rem;
}
.tui-progress--x-small {
  height: 0.375rem;
}
.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-progress__dot {
  position: absolute;
  top: 50%;
  right: var(--gap-1);
  width: 0.15625rem;
  height: 0.15625rem;
  background-color: var(--color-text);
  border-radius: 50%;
  transform: translateY(-50%);
}
.tui-progress--x-small .tui-progress__dot {
  right: 0.15625rem;
}
.tui-progress--x-small.tui-progress--chrome .tui-progress__dot {
  right: 0.0625rem;
}
/*!****************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??clonedRuleSet-1561.use[1]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-1561.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./client/component/tui/src/components/progresstracker/ProgressTracker.vue?vue&type=style&index=0&id=36823c78&lang=scss ***!
  \****************************************************************************************************************************************************************************************************************************************************************************************************************************************/
.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;
  /* Spacing after for overflow detector*/
}
.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-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 */
}
.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;
}
/*!**********************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??clonedRuleSet-1561.use[1]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-1561.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./client/component/tui/src/components/progresstracker/ProgressTrackerButton.vue?vue&type=style&index=0&id=f517226c&lang=scss ***!
  \**********************************************************************************************************************************************************************************************************************************************************************************************************************************************/
.tui-progressTrackerButton {
  display: flex;
  gap: var(--gap-2);
  justify-content: start;
  width: 100%;
  padding: var(--gap-2);
  color: var(--color-state);
  line-height: var(--font-body-line-height);
  text-align: left;
  overflow-wrap: break-word;
  background: transparent;
  border: none;
}
.tui-progressTrackerButton:focus-visible {
  outline: 2px solid var(--color-state-focus);
  outline-offset: var(--focus-outline-offset);
}
.tui-progressTrackerButton:hover {
  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 {
  color: var(--color-neutral-1);
  background: var(--color-state-active);
  border-color: var(--color-neutral-3);
}
.tui-progressTrackerButton__required {
  color: var(--color-prompt-alert);
}
.tui-progressTrackerButton__required--selected {
  color: var(--color-neutral-1);
}
/*!**********************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??clonedRuleSet-1561.use[1]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-1561.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./client/component/tui/src/components/progresstracker/ProgressTrackerCircle.vue?vue&type=style&index=0&id=2ddf0568&lang=scss ***!
  \**********************************************************************************************************************************************************************************************************************************************************************************************************************************************/
.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*/
  /* Achieved target*/
}
.tui-progressTrackerCircle__outer.tui-progressTrackerCircle--pending.tui-progressTrackerCircle__outer.tui-progressTrackerCircle--target {
  border-color: var(--progresstracker-color-pending);
}
.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;
  print-color-adjust: exact;
  /* Pending*/
  /* Pending target*/
  /* Complete*/
  /* Achieved*/
}
.tui-progressTrackerCircle--pending .tui-progressTrackerCircle__middle {
  background: var(--progresstracker-color-pending);
}
.tui-progressTrackerCircle--pending.tui-progressTrackerCircle--target .tui-progressTrackerCircle__middle {
  background: transparent;
}
.tui-progressTrackerCircle--complete .tui-progressTrackerCircle__middle {
  background: var(--progresstracker-color-complete);
}
.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*/
  /* Pending target*/
  /* Achieved*/
}
.tui-progressTrackerCircle--pending .tui-progressTrackerCircle__inner {
  border-color: var(--progresstracker-container-bg-color);
}
.tui-progressTrackerCircle--pending.tui-progressTrackerCircle--target .tui-progressTrackerCircle__inner {
  border-color: var(--progresstracker-color-pending);
}
.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);
}
/*!*******************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??clonedRuleSet-1561.use[1]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-1561.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./client/component/tui/src/components/progresstracker/ProgressTrackerNav.vue?vue&type=style&index=0&id=92b9578a&lang=scss ***!
  \*******************************************************************************************************************************************************************************************************************************************************************************************************************************************/
.tui-progressTrackerNav__items {
  display: flex;
  justify-content: center;
  margin: 0;
  list-style: none;
}
.tui-progressTrackerNav--vertical .tui-progressTrackerNav__items {
  flex-direction: column;
}
/*!************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??clonedRuleSet-1561.use[1]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-1561.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./client/component/tui/src/components/progresstracker/ProgressTrackerNavCircleAchievement.vue?vue&type=style&index=0&id=72809bf4&lang=scss ***!
  \************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
.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;
  print-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);
}
/*!*********************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??clonedRuleSet-1561.use[1]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-1561.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./client/component/tui/src/components/progresstracker/ProgressTrackerNavCircleWorkflow.vue?vue&type=style&index=0&id=0abd304a&lang=scss ***!
  \*********************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
.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: 0.75rem;
  height: 0.75rem;
  margin-bottom: 2px;
}
.tui-progressTrackerNavCircleWorkflow__icon--done {
  width: 1rem;
  height: 1rem;
  margin-top: 2px;
}
.tui-progressTrackerNavCircleWorkflow__icon--invalid {
  width: 0.875rem;
  height: 0.875rem;
  margin-bottom: 3px;
}
.tui-progressTrackerNavCircleWorkflow__icon--hidden {
  width: 1.25rem;
  height: 1.25rem;
}
.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 */
}
/*!***********************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??clonedRuleSet-1561.use[1]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-1561.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./client/component/tui/src/components/progresstracker/ProgressTrackerNavItem.vue?vue&type=style&index=0&id=7f742f24&lang=scss ***!
  \***********************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/**
  * 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;
  /**
    * Connector gap adjustment for large item markers
    **/
}
.tui-progressTrackerNav__item:last-child .tui-progressTrackerNav__itemContentWrapper:before {
  display: none;
}
.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-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 */
}
/*!***********************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??clonedRuleSet-1561.use[1]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-1561.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./client/component/tui/src/components/settings_navigation/SettingsNavigation.vue?vue&type=style&index=0&id=9e7713d6&lang=scss ***!
  \***********************************************************************************************************************************************************************************************************************************************************************************************************************************************/
:root {
  --settings-navigation-spacing: var(--gap-2);
  --settings-navigation-tree-width: 340px;
}
/*!***************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??clonedRuleSet-1561.use[1]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-1561.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./client/component/tui/src/components/settings_navigation/SettingsNavigationTree.vue?vue&type=style&index=0&id=a9436f5a&lang=scss ***!
  \***************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
.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;
}
/*!****************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??clonedRuleSet-1561.use[1]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-1561.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./client/component/tui/src/components/sidepanel/SidePanel.vue?vue&type=style&index=0&id=39af4fbc&lang=scss ***!
  \****************************************************************************************************************************************************************************************************************************************************************************************************************************/
:root {
  --tui-sidepanel-button-width: 30px;
  --tui-sidepanel-button-height: 66px;
  --tui-sidepanel-border-width: 1px;
}
.tui-sidePanel {
  display: flex;
  flex-direction: column;
  /* inner content alignment*/
  /**
   * 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
   **/
  /**
   * Transitioned container for arbitrary SidePanel content
   **/
}
.tui-sidePanel--displayChrome {
  display: flex;
  align-items: flex-start;
  height: 100%;
}
.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;
}
.tui-sidePanel__inner {
  /* we have to cut off overflow during these states otherwise we'll bump*/
  /* page scrollbars, or a containing element scrollbars*/
}
.tui-sidePanel--displayChrome .tui-sidePanel__inner {
  display: flex;
  flex-direction: column;
  flex-grow: 1;
  flex-shrink: 1;
  width: 100%;
  background-color: var(--color-neutral-3);
  border-radius: var(--border-radius-curved);
}
.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;
}
.tui-sidePanel--closed .tui-sidePanel__inner, .tui-sidePanel--closing .tui-sidePanel__inner, .tui-sidePanel--opening .tui-sidePanel__inner {
  overflow: hidden;
}
.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;
}
/*!*******************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??clonedRuleSet-1561.use[1]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-1561.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./client/component/tui/src/components/sidepanel/SidePanelNav.vue?vue&type=style&index=0&id=51184a77&lang=scss ***!
  \*******************************************************************************************************************************************************************************************************************************************************************************************************************************/
.tui-sidePanelNav {
  padding: var(--gap-4) 0;
  background: var(--side-panel-nav-bg-color);
}
.tui-sidePanelNav > * + * {
  margin-top: var(--gap-7);
}
/*!*****************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??clonedRuleSet-1561.use[1]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-1561.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./client/component/tui/src/components/sidepanel/SidePanelNavButtonItem.vue?vue&type=style&index=0&id=78d0febc&lang=scss ***!
  \*****************************************************************************************************************************************************************************************************************************************************************************************************************************************/
.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*/
  /* Item link*/
}
.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.375rem;
  height: 0.375rem;
  margin-left: var(--gap-3);
  background-color: var(--color-prompt-alert);
  border-radius: 100%;
}
.tui-sidePanelNavButtonItem__action {
  flex-grow: 1;
  justify-content: start;
  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);
}
/*!************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??clonedRuleSet-1561.use[1]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-1561.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./client/component/tui/src/components/sidepanel/SidePanelNavGroup.vue?vue&type=style&index=0&id=6ee9ecf8&lang=scss ***!
  \************************************************************************************************************************************************************************************************************************************************************************************************************************************/
.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 {
  font-weight: var(--font-h4-weight);
  font-size: var(--font-h4-size);
  font-family: var(--font-h4-family);
  line-height: var(--font-h4-line-height);
  margin: 0;
}
.tui-sidePanelNavGroup__heading-side {
  margin-left: auto;
  padding-left: var(--gap-2);
}
.tui-sidePanelNavGroup__items {
  margin-left: 0;
  list-style: none;
}
/*!***************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??clonedRuleSet-1561.use[1]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-1561.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./client/component/tui/src/components/sidepanel/SidePanelNavLinkItem.vue?vue&type=style&index=0&id=4c78f978&lang=scss ***!
  \***************************************************************************************************************************************************************************************************************************************************************************************************************************************/
.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*/
  /* Item link*/
}
.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.375rem;
  height: 0.375rem;
  margin-left: var(--gap-3);
  background-color: var(--color-prompt-alert);
  border-radius: 100%;
}
.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);
}
/*!********************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??clonedRuleSet-1561.use[1]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-1561.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./client/component/tui/src/components/tabs/TabBar.vue?vue&type=style&index=0&id=5adfef00&lang=scss ***!
  \********************************************************************************************************************************************************************************************************************************************************************************************************************/
: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-tabBar {
  display: flex;
  align-items: flex-end;
  margin: 0;
  padding: 0;
}
.tui-tabBar--horizontal {
  border-bottom: var(--tab-border-width) solid;
  border-bottom-color: var(--tabs-border-color);
}
.tui-tabBar--vertical {
  flex-direction: column;
  align-items: stretch;
  border-right: var(--tab-border-width) solid;
  border-right-color: var(--tabs-border-color);
}
.tui-tabBar__tab {
  display: block;
  overflow: hidden;
  pointer-events: none;
}
.tui-tabBar--horizontal .tui-tabBar__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-tabBar--vertical .tui-tabBar__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-tabBar__tab--hidden {
  display: none;
}
a.tui-tabBar__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-tabBar__link:hover {
  color: var(--tabs-text-color-focus);
  background: var(--tabs-bg-color-focus);
}
a.tui-tabBar__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-tabBar__link:active, a.tui-tabBar__link:active:focus, a.tui-tabBar__link:active:hover {
  color: var(--tabs-text-color-active);
  outline: none;
}
.tui-tabBar--horizontal a.tui-tabBar__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-tabBar--vertical a.tui-tabBar__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-tabBar__tab--disabled a.tui-tabBar__link {
  color: var(--tabs-text-color-disabled);
  cursor: default;
  pointer-events: none;
}
.tui-tabBar__tab--active a.tui-tabBar__link {
  position: relative;
  color: var(--tabs-text-color-selected);
  background: var(--tabs-bg-color-selected);
}
.tui-tabBar--horizontal .tui-tabBar__tab--active a.tui-tabBar__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-tabBar--vertical .tui-tabBar__tab--active a.tui-tabBar__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-tabBar__tab--active a.tui-tabBar__link::after {
  position: absolute;
  background: var(--tabs-selected-bar-color);
  content: "";
}
.tui-tabBar--horizontal .tui-tabBar__tab--active a.tui-tabBar__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-tabBar--vertical .tui-tabBar__tab--active a.tui-tabBar__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-tabBar__tabLabel {
  overflow: hidden;
  white-space: nowrap;
  text-overflow: ellipsis;
}
.tui-tabBar__tabLabelExtra {
  display: flex;
  align-items: center;
  margin-left: var(--gap-2);
}
.tui-tabBar__selector {
  display: block;
}
.tui-tabBar {
  /* Small tab*/
  /* Active small tab*/
  /* Disabled small tab*/
}
.tui-tabBar--horizontal .tui-tabBar__tab--small .tui-tabBar__link {
  font-weight: var(--font-body-sm-weight);
  font-size: var(--font-body-sm-size);
  font-family: var(--font-body-sm-family);
  line-height: var(--font-body-sm-line-height);
  padding: var(--tab-small-v-padding) var(--tab-small-h-padding);
}
.tui-tabBar--horizontal .tui-tabBar__tab--active.tui-tabBar__tab--small .tui-tabBar__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);
}
.tui-tabBar--horizontal .tui-tabBar__tab--disabled.tui-tabBar__tab--small .tui-tabBar__link {
  color: var(--tabs-text-color-disabled);
  cursor: default;
  pointer-events: none;
}
/*!******************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??clonedRuleSet-1561.use[1]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-1561.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./client/component/tui/src/components/tabs/Tabs.vue?vue&type=style&index=0&id=f07dc380&lang=scss ***!
  \******************************************************************************************************************************************************************************************************************************************************************************************************************/
.tui-tabs--fill {
  display: flex;
  flex-direction: column;
  flex-grow: 1;
  height: 100%;
}
.tui-tabs--vertical {
  display: flex;
  flex-direction: row;
}
.tui-tabs--fill > .tui-tabs__panels {
  flex-grow: 1;
  min-height: 0;
}
.tui-tabs--fill > .tui-tabs__panels > .tui-tabContent {
  height: 100%;
}
.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);
}
/*!****************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??clonedRuleSet-1561.use[1]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-1561.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./client/component/tui/src/components/tag/Tag.vue?vue&type=style&index=0&id=574bed14&lang=scss ***!
  \****************************************************************************************************************************************************************************************************************************************************************************************************************/
.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: calc(var(--font-size-base) / 16 * 13);
}
.tui-tag--large .tui-tag__content {
  padding: var(--gap-2) var(--gap-3);
  font-size: calc(var(--font-size-base) / 16 * 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);
}
/*!********************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??clonedRuleSet-1561.use[1]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-1561.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./client/component/tui/src/components/tag/TagList.vue?vue&type=style&index=0&id=16df0034&lang=scss ***!
  \********************************************************************************************************************************************************************************************************************************************************************************************************************/
.tui-tagList {
  display: flex;
  min-width: 14.375rem;
  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: var(--font-body-sm-weight);
  font-size: var(--font-body-sm-size);
  font-family: var(--font-body-sm-family);
  line-height: var(--font-body-sm-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);
}
/*!*****************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??clonedRuleSet-1561.use[1]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-1561.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./client/component/tui/src/components/theme_settings/SettingsFormBrand.vue?vue&type=style&index=0&id=b6b1916e&lang=scss ***!
  \*****************************************************************************************************************************************************************************************************************************************************************************************************************************************/
.tui-settingsFormBrand__testEmailInfoButton {
  align-self: center;
}
/*!****************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??clonedRuleSet-1561.use[1]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-1561.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./client/component/tui/src/components/toggle/ToggleButton.vue?vue&type=style&index=0&id=77a0e912&lang=scss ***!
  \****************************************************************************************************************************************************************************************************************************************************************************************************************************/
.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: calc(var(--font-size-base) / 16 * 14);
}
.tui-toggleBtn--large {
  min-width: 6.25rem;
  min-height: 2.875rem;
}
.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: calc(var(--font-size-base) / 16 * 15);
}
.tui-toggleBtn__text {
  padding: 0 var(--gap-1);
}
/*!*************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??clonedRuleSet-1561.use[1]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-1561.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./client/component/tui/src/components/toggle/ToggleSet.vue?vue&type=style&index=0&id=00a09ab2&lang=scss ***!
  \*************************************************************************************************************************************************************************************************************************************************************************************************************************/
.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;
}
/*!****************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??clonedRuleSet-1561.use[1]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-1561.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./client/component/tui/src/components/toggle/ToggleSwitch.vue?vue&type=style&index=0&id=4d8ea814&lang=scss ***!
  \****************************************************************************************************************************************************************************************************************************************************************************************************************************/
.tui-toggleSwitch {
  display: flex;
  align-items: center;
  /* toggle size and shape*/
  /* toggled off, via the button*/
  /* toggled on*/
  /* toggled on, via the button*/
  /* toggle on the left, text on the right*/
}
.tui-toggleSwitch__btn {
  display: inline-block;
  padding: 0;
  color: var(--form-toggle-color);
  line-height: 1;
  background: transparent;
  border: none;
}
.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;
}
.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));
  /* the toggle background*/
  /* the toggle dot*/
  /* toggled off*/
  /* the toggle background*/
  /* the toggle dot*/
}
.tui-toggleSwitch__ui--toggleOnly {
  margin-left: calc(-1 * (var(--form-toggle-focus-gap) + var(--form-toggle-focus-border)));
}
.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);
}
.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;
}
.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);
}
.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);
}
.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);
}
.tui-toggleSwitch__btn[aria-pressed] ~ .tui-toggleSwitch__ui {
  /* the dot*/
  /* the toggle background*/
}
.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;
}
.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);
}
.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));
}
.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;
}
/*!******************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??clonedRuleSet-1561.use[1]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-1561.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./client/component/tui/src/components/tree/Tree.vue?vue&type=style&index=0&id=164b9b80&lang=scss ***!
  \******************************************************************************************************************************************************************************************************************************************************************************************************************/
.tui-tree {
  list-style: none;
}
/*!**********************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??clonedRuleSet-1561.use[1]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-1561.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./client/component/tui/src/components/tree/TreeNode.vue?vue&type=style&index=0&id=28e55f62&lang=scss ***!
  \**********************************************************************************************************************************************************************************************************************************************************************************************************************/
.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 {
  font-weight: var(--font-body-weight);
  font-size: var(--font-body-size);
  font-family: var(--font-body-family);
  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;
}
/*!**************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??clonedRuleSet-1561.use[1]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-1561.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./client/component/tui/src/components/treeview/TreeView.vue?vue&type=style&index=0&id=ba657300&lang=scss ***!
  \**************************************************************************************************************************************************************************************************************************************************************************************************************************/
.tui-treeView {
  display: flex;
  flex-direction: column;
  gap: var(--border-width-normal);
  margin-left: 0;
}
/*!******************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??clonedRuleSet-1561.use[1]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-1561.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./client/component/tui/src/components/treeview/TreeViewNode.vue?vue&type=style&index=0&id=7a9758bc&lang=scss ***!
  \******************************************************************************************************************************************************************************************************************************************************************************************************************************/
.tui-treeViewNode {
  display: flex;
  flex-direction: column;
  gap: var(--border-width-normal);
  list-style: none;
  border-radius: var(--border-radius-small);
}
.tui-treeViewNode:focus-visible {
  outline: 2px solid var(--color-state-focus);
  outline-offset: var(--focus-outline-offset);
}
.tui-treeViewNode__item {
  display: flex;
  gap: calc(var(--gap-base) * 1);
  align-items: center;
  min-height: 2rem;
  padding: calc(var(--gap-base) * 1) calc(var(--gap-base) * 2) calc(var(--gap-base) * 1) calc(var(--gap-base) * 9);
  overflow-wrap: anywhere;
  border-radius: var(--border-radius-small);
  -webkit-user-select: none;
  user-select: none;
}
.tui-treeViewNode__item:hover {
  background-color: var(--color-neutral-3);
}
.tui-treeViewNode__item--selectable {
  cursor: pointer;
}
.tui-treeViewNode__item--hasChildren {
  padding: calc(var(--gap-base) * 1) calc(var(--gap-base) * 2) calc(var(--gap-base) * 1) calc(var(--gap-base) * 2);
  cursor: pointer;
}
.tui-treeViewNode__item--selected {
  color: var(--color-neutral-1);
  background-color: var(--color-state);
}
.tui-treeViewNode__item--selected:hover {
  background-color: var(--color-state);
}
.tui-treeViewNode__item-children {
  display: flex;
  flex-direction: column;
  gap: var(--border-width-normal);
  margin-left: calc(var(--gap-base) * 4);
}
.tui-treeViewNode__item-icon {
  pointer-events: none;
}
.tui-treeViewNode__item-toggle {
  align-self: start;
  min-width: 1.5rem;
  min-height: 1.5rem;
}
.tui-treeViewNode__item--selected .tui-treeViewNode__item-toggle {
  color: var(--color-neutral-1);
}
/*!**************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??clonedRuleSet-1561.use[1]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-1561.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./client/component/tui/src/components/uniform/FormField.vue?vue&type=style&index=0&id=32cf50e8&lang=scss ***!
  \**************************************************************************************************************************************************************************************************************************************************************************************************************************/
.tui-formField {
  flex-grow: 1;
  width: 100%;
  min-width: 0;
  /* Set a custom size for inputs in a limited form*/
}
.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));
}
.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;
}
/*!*****************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??clonedRuleSet-1561.use[1]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-1561.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./client/component/tui/src/pages/ThemeSettings.vue?vue&type=style&index=0&id=8034da32&lang=scss ***!
  \*****************************************************************************************************************************************************************************************************************************************************************************************************************/
.tui-themeSettings__content {
  margin-top: var(--gap-8);
}
.tui-themeSettings__forms > * + * {
  margin-top: var(--gap-8);
}
/*!****************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??clonedRuleSet-1561.use[1]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-1561.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./client/component/tui/src/pages/ThemeTenants.vue?vue&type=style&index=0&id=9ed04016&lang=scss ***!
  \****************************************************************************************************************************************************************************************************************************************************************************************************************/
.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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImh0bWwvdG90YXJhL2NsaWVudC9jb21wb25lbnQvdHVpL2J1aWxkL2dsb2JhbF9zdHlsZXMvdmFyaWFibGVzL2RlcHJlY2F0ZWQuZGV2ZWxvcG1lbnQuc2NzcyIsImh0bWwvdG90YXJhL2NsaWVudC9jb21wb25lbnQvdHVpL2J1aWxkL2dsb2JhbF9zdHlsZXMvdmFyaWFibGVzL3R1aV9zaXplcy5kZXZlbG9wbWVudC5zY3NzIiwiaHRtbC90b3RhcmEvY2xpZW50L2NvbXBvbmVudC90dWkvYnVpbGQvZ2xvYmFsX3N0eWxlcy92YXJpYWJsZXMvdHVpX3R5cG9ncmFwaHkuZGV2ZWxvcG1lbnQuc2NzcyIsImh0bWwvdG90YXJhL2NsaWVudC9jb21wb25lbnQvdHVpL2J1aWxkL2dsb2JhbF9zdHlsZXMvdmFyaWFibGVzL3R1aV9zcGFjaW5nLmRldmVsb3BtZW50LnNjc3MiLCJodG1sL3RvdGFyYS9jbGllbnQvY29tcG9uZW50L3R1aS9idWlsZC9nbG9iYWxfc3R5bGVzL3ZhcmlhYmxlcy90dWlfYm9yZGVycy5kZXZlbG9wbWVudC5zY3NzIiwiaHRtbC90b3RhcmEvY2xpZW50L2NvbXBvbmVudC90dWkvYnVpbGQvZ2xvYmFsX3N0eWxlcy92YXJpYWJsZXMvdHVpX2J1dHRvbnMuZGV2ZWxvcG1lbnQuc2NzcyIsImh0bWwvdG90YXJhL2NsaWVudC9jb21wb25lbnQvdHVpL2J1aWxkL2dsb2JhbF9zdHlsZXMvdmFyaWFibGVzL3R1aV9jb2xvcnMuZGV2ZWxvcG1lbnQuc2NzcyIsImh0bWwvdG90YXJhL2NsaWVudC9jb21wb25lbnQvdHVpL2J1aWxkL2dsb2JhbF9zdHlsZXMvdmFyaWFibGVzL2NvbG9ycy9hcnJvdy5kZXZlbG9wbWVudC5zY3NzIiwiaHRtbC90b3RhcmEvY2xpZW50L2NvbXBvbmVudC90dWkvYnVpbGQvZ2xvYmFsX3N0eWxlcy92YXJpYWJsZXMvY29sb3JzL2Zvcm1zLmRldmVsb3BtZW50LnNjc3MiLCJodG1sL3RvdGFyYS9jbGllbnQvY29tcG9uZW50L3R1aS9idWlsZC9nbG9iYWxfc3R5bGVzL3ZhcmlhYmxlcy9jb2xvcnMvYXZhdGFyLmRldmVsb3BtZW50LnNjc3MiLCJodG1sL3RvdGFyYS9jbGllbnQvY29tcG9uZW50L3R1aS9idWlsZC9nbG9iYWxfc3R5bGVzL3ZhcmlhYmxlcy9jb2xvcnMvZHJvcGRvd24uZGV2ZWxvcG1lbnQuc2NzcyIsImh0bWwvdG90YXJhL2NsaWVudC9jb21wb25lbnQvdHVpL2J1aWxkL2dsb2JhbF9zdHlsZXMvdmFyaWFibGVzL2NvbG9ycy9kYXRhdGFibGUuZGV2ZWxvcG1lbnQuc2NzcyIsImh0bWwvdG90YXJhL2NsaWVudC9jb21wb25lbnQvdHVpL2J1aWxkL2dsb2JhbF9zdHlsZXMvdmFyaWFibGVzL2NvbG9ycy90YWJzLmRldmVsb3BtZW50LnNjc3MiLCJodG1sL3RvdGFyYS9jbGllbnQvY29tcG9uZW50L3R1aS9idWlsZC9nbG9iYWxfc3R5bGVzL3ZhcmlhYmxlcy9jb2xvcnMvY2FyZC5kZXZlbG9wbWVudC5zY3NzIiwiaHRtbC90b3RhcmEvY2xpZW50L2NvbXBvbmVudC90dWkvYnVpbGQvZ2xvYmFsX3N0eWxlcy92YXJpYWJsZXMvY29sb3JzL2NoYXJ0cy5kZXZlbG9wbWVudC5zY3NzIiwiaHRtbC90b3RhcmEvY2xpZW50L2NvbXBvbmVudC90dWkvYnVpbGQvZ2xvYmFsX3N0eWxlcy92YXJpYWJsZXMvY29sb3JzL2ZpbHRlcnMuZGV2ZWxvcG1lbnQuc2NzcyIsImh0bWwvdG90YXJhL2NsaWVudC9jb21wb25lbnQvdHVpL2J1aWxkL2dsb2JhbF9zdHlsZXMvdmFyaWFibGVzL2NvbG9ycy90YWdzLmRldmVsb3BtZW50LnNjc3MiLCJodG1sL3RvdGFyYS9jbGllbnQvY29tcG9uZW50L3R1aS9idWlsZC9nbG9iYWxfc3R5bGVzL3ZhcmlhYmxlcy9jb2xvcnMvcHJvZ3Jlc3NiYXIuZGV2ZWxvcG1lbnQuc2NzcyIsImh0bWwvdG90YXJhL2NsaWVudC9jb21wb25lbnQvdHVpL2J1aWxkL2dsb2JhbF9zdHlsZXMvdmFyaWFibGVzL2NvbG9ycy9jb2xsYXBzaWJsZS5kZXZlbG9wbWVudC5zY3NzIiwiaHRtbC90b3RhcmEvY2xpZW50L2NvbXBvbmVudC90dWkvYnVpbGQvZ2xvYmFsX3N0eWxlcy92YXJpYWJsZXMvY29sb3JzL3Byb2dyZXNzdHJhY2tlci5kZXZlbG9wbWVudC5zY3NzIiwiaHRtbC90b3RhcmEvY2xpZW50L2NvbXBvbmVudC90dWkvYnVpbGQvZ2xvYmFsX3N0eWxlcy92YXJpYWJsZXMvY29sb3JzL3NpZGVfcGFuZWxfbmF2LmRldmVsb3BtZW50LnNjc3MiLCJodG1sL3RvdGFyYS9jbGllbnQvY29tcG9uZW50L3R1aS9idWlsZC9nbG9iYWxfc3R5bGVzL3ZhcmlhYmxlcy9jb2xvcnMvdG9nZ2xlLmRldmVsb3BtZW50LnNjc3MiLCJodG1sL3RvdGFyYS9jbGllbnQvY29tcG9uZW50L3R1aS9idWlsZC9nbG9iYWxfc3R5bGVzL3ZhcmlhYmxlcy9jb2xvcnMvbm90aWZpY2F0aW9udG9hc3QuZGV2ZWxvcG1lbnQuc2NzcyIsImh0bWwvdG90YXJhL2NsaWVudC9jb21wb25lbnQvdHVpL2J1aWxkL2dsb2JhbF9zdHlsZXMvdmFyaWFibGVzL3R1aV9zaGFkb3dzLmRldmVsb3BtZW50LnNjc3MiLCJodG1sL3RvdGFyYS9jbGllbnQvY29tcG9uZW50L3R1aS9idWlsZC9nbG9iYWxfc3R5bGVzL3ZhcmlhYmxlcy90dWlfc2lkZV9wYW5lbF9uYXYuZGV2ZWxvcG1lbnQuc2NzcyIsImh0bWwvdG90YXJhL2NsaWVudC9jb21wb25lbnQvdHVpL2J1aWxkL2dsb2JhbF9zdHlsZXMvdmFyaWFibGVzL3R1aV9wcm9ncmVzc190cmFja2VyX25hdi5kZXZlbG9wbWVudC5zY3NzIiwiaHRtbC90b3RhcmEvY2xpZW50L2NvbXBvbmVudC90dWkvYnVpbGQvZ2xvYmFsX3N0eWxlcy92YXJpYWJsZXMvdHVpX3JhbmdlLmRldmVsb3BtZW50LnNjc3MiLCJodG1sL3RvdGFyYS9jbGllbnQvY29tcG9uZW50L3R1aS9idWlsZC9nbG9iYWxfc3R5bGVzL3ZhcmlhYmxlcy90dWlfbGF5b3V0LmRldmVsb3BtZW50LnNjc3MiLCJodG1sL3RvdGFyYS9jbGllbnQvY29tcG9uZW50L3R1aS9idWlsZC9nbG9iYWxfc3R5bGVzL3ZhcmlhYmxlcy90dWlfYW5pbWF0aW9ucy5kZXZlbG9wbWVudC5zY3NzIiwiaHRtbC90b3RhcmEvY2xpZW50L2NvbXBvbmVudC90dWkvYnVpbGQvZ2xvYmFsX3N0eWxlcy92YXJpYWJsZXMvdHVpX21vZGFscy5kZXZlbG9wbWVudC5zY3NzIiwiaHRtbC90b3RhcmEvY2xpZW50L2NvbXBvbmVudC90dWkvYnVpbGQvZ2xvYmFsX3N0eWxlcy92YXJpYWJsZXMvdHVpX2VtYmVkcy5kZXZlbG9wbWVudC5zY3NzIiwiaHRtbC90b3RhcmEvY2xpZW50L2NvbXBvbmVudC90dWkvYnVpbGQvZ2xvYmFsX3N0eWxlcy92YXJpYWJsZXMvdHVpX2Zvcm1zLmRldmVsb3BtZW50LnNjc3MiLCJodG1sL3RvdGFyYS9jbGllbnQvY29tcG9uZW50L3R1aS9idWlsZC9nbG9iYWxfc3R5bGVzL3ZhcmlhYmxlcy90dWlfdG9nZ2xlLmRldmVsb3BtZW50LnNjc3MiLCJodG1sL3RvdGFyYS9jbGllbnQvY29tcG9uZW50L3R1aS9idWlsZC9nbG9iYWxfc3R5bGVzL3ZhcmlhYmxlcy90dWlfc2VwYXJhdG9ycy5kZXZlbG9wbWVudC5zY3NzIiwiaHRtbC90b3RhcmEvY2xpZW50L2NvbXBvbmVudC90dWkvYnVpbGQvZ2xvYmFsX3N0eWxlcy92YXJpYWJsZXMvdHVpX3RhZ3MuZGV2ZWxvcG1lbnQuc2NzcyIsImh0bWwvdG90YXJhL2NsaWVudC9jb21wb25lbnQvdHVpL2J1aWxkL2dsb2JhbF9zdHlsZXMvdmFyaWFibGVzL3R1aV96aW5kZXguZGV2ZWxvcG1lbnQuc2NzcyIsImh0bWwvdG90YXJhL2NsaWVudC9jb21wb25lbnQvdHVpL2J1aWxkL3R1aV9idW5kbGUuZGV2ZWxvcG1lbnQuc2NzcyIsImh0bWwvdG90YXJhL2NsaWVudC9jb21wb25lbnQvdHVpL2J1aWxkL2dsb2JhbF9zdHlsZXMvc3R5bGVzL3R5cG9ncmFwaHkuZGV2ZWxvcG1lbnQuc2NzcyIsImh0bWwvdG90YXJhL2NsaWVudC9jb21wb25lbnQvdHVpL2J1aWxkL2dsb2JhbF9zdHlsZXMvc3R5bGVzL3JpY2gtY29udGVudC5kZXZlbG9wbWVudC5zY3NzIiwiaHRtbC90b3RhcmEvY2xpZW50L2NvbXBvbmVudC90dWkvYnVpbGQvZ2xvYmFsX3N0eWxlcy9zdHlsZXMvaWNvbnMuZGV2ZWxvcG1lbnQuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUF3QkE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FDREE7QUFBQTtBQUFBO0FBQUE7QUMyQ0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUMzQ0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FDSkE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQ0FBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FDQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQ0FBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUNBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUNBQTtBQUFBO0FBQUE7QUNBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUNBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FDQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FDQUE7QUFBQTtBQUFBO0FDQUE7QUFBQTtBQUFBO0FDQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQ0FBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQ0FBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FDQUE7QUFBQTtBQUFBO0FBQUE7QUNBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FDQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FDQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FDQUE7QUFBQTtBQUFBO0FDQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQ0FBO0FBQUE7QUFBQTtBQ0FBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FDQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUNBQTtBQUFBO0FBQUE7QUFBQTtBQ2FBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUNiQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FDQUE7QUFBQTtBQUFBO0FDd0ZBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQ2hGQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUNSQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUNBQTtBQUFBO0FBQUE7QUFBQTtBQ0FBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUNBQTtBQUFBO0FBQUE7QUFNQTtBQUFBO0FBQUE7QUFJQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQVFBO0FBQUE7QUFBQTtBQUFBO0FBS0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQ3ZCQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQU1BO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBTUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFNQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQU1BO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBTUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBMkJFO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUN4REY7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFJRTtBQUFBO0FBQUE7QUFJQTtBQUFBO0FBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FDUEE7QUFBQTtBQUFBO0FBSUE7QUFBQTtBQUFBO0FBSUE7QUFBQTtBQUFBO0FBSUE7QUFBQTtBQUFBO0FBSUE7QUFBQTtBQUFBO0FBSUE7QUFBQTtBQUFBO0FBSUE7QUFBQTtBQUFBOzs7O0FIUUY7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBTUU7QUFBQTtBQUFBO0FBSUE7QUFBQTtBQUFBO0FBQUE7QUFLQTtBQUFBO0FBQUE7QUFBQTtBQUtBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFLRTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFPQTtBQUFBO0FBQUE7QUFBQTtBQUtBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFPRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBS0U7QUFBQTtBQUFBO0FBS0Y7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQU1BO0FBQUE7QUFBQTtBQUFBOzs7O0FBU0Y7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUtFO0FBQUE7QUFBQTtBQUdFO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFLRjtBQUFBO0FBQUE7Ozs7QUFRRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFtQkE7QUFBQTtBQUFBO0FBQUE7QUFJRTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBTUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQU1BO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFNQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBTUE7QUFBQTtBQUFBO0FBQUE7QUFBQTs7OztBQVVGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFTRTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQU1BO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBUUU7QUFBQTtBQUFBO0FBQUE7QUFLQTtBQUNFO0FBQUE7QUFBQTtBQUFBO0FBS0E7QUFBQTtBQUFBO0FBSUE7QUFBQTtBQUFBO0FBS0U7QUFBQTtBQUFBO0FBQUE7QUFPTjtBQUFBO0FBQUE7QUFJQTtBQUFBO0FBQUE7Ozs7QUFRRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBMENFO0FBQUE7QUFBQTtBQUVFO0FBQUE7QUFBQTtBQU1GO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUtBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFJQTtBQUFBO0FBQUE7QUFBQTtBQUlBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQU9BO0FBQUE7QUFBQTtBQUFBO0FBS0E7QUFBQTtBQUFBO0FBQUE7QUFLQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBWUE7QUFBQTtBQUFBO0FBSUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQVlBO0FBQUE7QUFBQTtBQUtFO0FBQUE7QUFBQTtBQUtGO0FBQUE7QUFBQTtBQUFBO0FBSUU7QUFBQTtBQUFBO0FBTUY7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUlFO0FBQUE7QUFBQTtBQUFBO0FBSUE7QUFBQTtBQUFBO0FBQUE7QUFJQTtBQUFBO0FBQUE7QUFLRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFZRTtBQUFBO0FBQUE7QUFPRjtBQUFBO0FBQUE7QUFJQTtBQUFBO0FBQUE7QUFJQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFRRTtBQUFBO0FBQUE7QUFBQTtBQVNBO0FBQUE7QUFBQTtBQU9GO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFTQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBSUE7QUFBQTtBQUFBO0FBQUE7QUFBQTs7OztBQVFGO0FBQUE7QUFBQTtBQUdFO0FBQUE7QUFBQTtBQUlBO0FBQUE7QUFBQTtBQUlBO0FBQUE7QUFBQTs7OztBQVNBO0FBQUE7QUFBQTtBQUFBOzs7O0FBU0Y7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUtFO0FBQUE7QUFBQTtBQUVFO0FBQUE7QUFBQTtBQUFBOzs7O0FBVUo7QUFBQTtBQUFBO0FBQUE7QUFJRTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQVFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQU9BO0FBQUE7QUFBQTtBQUlBO0FBQUE7QUFBQTtBQUlBO0FBQUE7QUFBQTtBQUFBO0FBS0E7QUFBQTtBQUFBO0FBS0Y7QUFDRTtBQUFBO0FBQUE7QUFFRTtBQUFBO0FBQUE7QUFJQTtBQUFBO0FBQUE7QUFBQTtBQUFBOzs7O0FBVUo7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFPRTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBTUE7QUFBQTtBQUFBO0FBRUU7QUFBQTtBQUFBO0FBTUY7QUFBQTtBQUFBO0FBS0E7QUFBQTtBQUFBO0FBSUE7QUFBQTtBQUFBO0FBSUU7QUFBQTtBQUFBO0FBS0Y7QUFBQTtBQUFBO0FBQUE7QUFLQTtBQUFBO0FBQUE7QUFBQTs7OztBQVFGO0FBQUE7QUFBQTtBQUFBO0FBSUU7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQVNBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFTRTtBQUFBO0FBQUE7QUFJQTtBQUFBO0FBQUE7QUFBQTtBQVFBO0FBQUE7QUFBQTtBQUFBO0FBTUY7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBT0E7QUFBQTtBQUFBO0FBSUE7QUFBQTtBQUFBO0FBSUE7QUFBQTtBQUFBO0FBRUU7QUFBQTtBQUFBO0FBS0Y7QUFBQTtBQUFBO0FBSUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBT0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFRQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFPSTtBQUFBO0FBQUE7QUFHRTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBS0Y7QUFBQTtBQUFBO0FBR0E7QUFBQTtBQUFBO0FBSUE7QUFBQTtBQUFBO0FBS0Y7QUFBQTtBQUFBO0FBTUE7QUFBQTtBQUFBO0FBR0E7QUFBQTtBQUFBO0FBS0Y7QUFBQTtBQUFBO0FBSUE7QUFBQTtBQUFBO0FBSUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7Ozs7QUFZRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUF3Q0U7QUFDRTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFLRjtBQUFBO0FBQUE7QUFBQTtBQU9FO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFZQTtBQUFBO0FBQUE7QUFNQTtBQUFBO0FBQUE7QUFBQTtBQUlBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFPQTtBQUFBO0FBQUE7QUFJQTtBQUFBO0FBQUE7QUFJQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFPRjtBQUFBO0FBQUE7QUFBQTtBQUtBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQU1FO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFNRjtBQUFBO0FBQUE7QUFJQTtBQUFBO0FBQUE7QUFJQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFVRTtBQUFBO0FBQUE7QUFLRjtBQUFBO0FBQUE7QUFHRTtBQUFBO0FBQUE7QUFLRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBTUU7QUFBQTtBQUFBO0FBS0Y7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQU1BO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBUUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQU1BO0FBQUE7QUFBQTtBQUlBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFZQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFPQTtBQUFBO0FBQUE7QUFBQTtBQUtBO0FBQUE7QUFBQTtBQUdFO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFLRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFhRTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBTUE7QUFBQTtBQUFBO0FBS0Y7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQU1BO0FBQUE7QUFBQTtBQUFBO0FBS0E7QUFBQTtBQUFBO0FBS0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQVlBO0FBQUE7QUFBQTtBQUFBO0FBQUE7Ozs7QUFXQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBTUU7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQU1BO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBT0U7QUFBQTtBQUFBO0FBU0U7QUFBQTtBQUFBO0FBQUE7QUFNSjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQVNBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFNQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBT0Y7QUFBQTtBQUFBO0FBQ0U7QUFBQTtBQUFBO0FBS0E7QUFBQTtBQUFBO0FBSUY7QUFBQTtBQUFBO0FBQUE7QUFLQTtBQUFBO0FBQUE7QUFHQTtBQUFBO0FBQUE7QUFHQTtBQUFBO0FBQUE7QUFBQTtBQUlFO0FBQUE7QUFBQTs7OztBQVNKO0FBQUE7QUFBQTtBQUdFO0FBQUE7QUFBQTs7OztBQVFGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFLRTtBQUFBO0FBQUE7QUFFRTtBQUFBO0FBQUE7QUFBQTtBQU1GO0FBQUE7QUFBQTtBQUFBO0FBSUU7QUFBQTtBQUFBO0FBSUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBU0o7QUFFSTtBQUFBO0FBQUE7QUFJQTtBQUFBO0FBQUE7QUFBQTs7OztBQVNKO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBd0JFO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFNRTtBQUFBO0FBQUE7QUFBQTtBQUtBO0FBQUE7QUFBQTtBQU1BO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFLRTtBQUFBO0FBQUE7QUFRQTtBQUFBO0FBQUE7QUFFRTtBQUFBO0FBQUE7QUFLRjtBQUFBO0FBQUE7QUFNRjtBQUFBO0FBQUE7QUFBQTtBQVNBO0FBQUE7QUFBQTtBQUFBO0FBUUY7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBTUU7QUFBQTtBQUFBO0FBQUE7Ozs7QUFVSjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQVlFO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQU9BO0FBQUE7QUFBQTtBQUlBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFLRTtBQUFBO0FBQUE7QUFJQTtBQUFBO0FBQUE7QUFJQTtBQUFBO0FBQUE7QUFJQTtBQUFBO0FBQUE7QUFJQTtBQUFBO0FBQUE7QUFJQTtBQUFBO0FBQUE7QUFJQTtBQUFBO0FBQUE7QUFJQTtBQUFBO0FBQUE7QUFJQTtBQUFBO0FBQUE7QUFJQTtBQUFBO0FBQUE7QUFJQTtBQUFBO0FBQUE7QUFJQTtBQUFBO0FBQUE7QUFJQTtBQUFBO0FBQUE7QUFJQTtBQUFBO0FBQUE7QUFJQTtBQUFBO0FBQUE7QUFJQTtBQUFBO0FBQUE7QUFNQTtBQUFBO0FBQUE7QUFJQTtBQUFBO0FBQUE7QUFLRjtBQUFBO0FBQUE7QUFLRTtBQUFBO0FBQUE7QUFJQTtBQUFBO0FBQUE7QUFLRjtBQUFBO0FBQUE7QUFBQTs7OztBQVNGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQU1FO0FBQUE7QUFBQTtBQUlBO0FBQUE7QUFBQTtBQUlBO0FBQUE7QUFBQTtBQUFBO0FBQUE7Ozs7QUFVRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFTRTtBQUFBO0FBQUE7QUFBQTtBQUdFO0FBQUE7QUFBQTtBQUtGO0FBQUE7QUFBQTtBQUFBO0FBS0E7QUFBQTtBQUFBO0FBSUE7QUFBQTtBQUFBO0FBSUE7QUFBQTtBQUFBO0FBSUE7QUFBQTtBQUFBOzs7O0FBUUY7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBT0U7QUFBQTtBQUFBOzs7O0FBUUY7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFPRTtBQUFBO0FBQUE7QUFBQTtBQUtBO0FBQUE7QUFBQTtBQUlBO0FBQUE7QUFBQTtBQUlBO0FBQUE7QUFBQTtBQUlBO0FBQUE7QUFBQTtBQUlBO0FBQUE7QUFBQTtBQUlBO0FBQUE7QUFBQTs7OztBQVFGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQVFFO0FBQUE7QUFBQTtBQUlBO0FBQUE7QUFBQTtBQUtBO0FBQUE7QUFBQTtBQUlBO0FBQUE7QUFBQTtBQU1BO0FBQUE7QUFBQTtBQUlBO0FBQUE7QUFBQTtBQUtFO0FBQUE7QUFBQTtBQU1BO0FBQUE7QUFBQTtBQU1BO0FBQUE7QUFBQTtBQUtGO0FBQUE7QUFBQTtBQUlBO0FBQUE7QUFBQTtBQUdFO0FBQUE7QUFBQTtBQU1BO0FBQUE7QUFBQTtBQUdFO0FBQUE7QUFBQTtBQVFGO0FBQUE7QUFBQTtBQVNFO0FBQUE7QUFBQTtBQU9KO0FBQUE7QUFBQTtBQUVFO0FBQUE7QUFBQTtBQUlBO0FBQUE7QUFBQTtBQUtGO0FBQUE7QUFBQTtBQUtBO0FBQUE7QUFBQTtBQUlBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBTUU7QUFBQTtBQUFBO0FBT0Y7QUFBQTtBQUFBO0FBSUE7QUFBQTtBQUFBO0FBSUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFTQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBT0Y7QUFBQTtBQUFBO0FBQUE7QUFJRTtBQUFBO0FBQUE7QUFJQTtBQUFBO0FBQUE7QUFLQTtBQUFBO0FBQUE7QUFLRTtBQUFBO0FBQUE7QUFNQTtBQUFBO0FBQUE7QUFNQTtBQUFBO0FBQUE7QUFLRjtBQUFBO0FBQUE7QUFHRTtBQUFBO0FBQUE7QUFJQTtBQUFBO0FBQUE7QUFJQTtBQUFBO0FBQUE7QUFHQTtBQUFBO0FBQUE7Ozs7QUFTSjtBQUFBO0FBQUE7QUFBQTtBQUlFO0FBQUE7QUFBQTtBQUlBO0FBQUE7QUFBQTtBQUlBO0FBQUE7QUFBQTtBQUlBO0FBQUE7QUFBQTtBQU1BO0FBQUE7QUFBQTtBQUdFO0FBQUE7QUFBQTs7OztBQVNKO0FBQUE7QUFBQTtBQUFBOzs7O0FBUUE7QUFBQTtBQUFBO0FBQUE7QUFJRTtBQUFBO0FBQUE7QUFBQTtBQUtBO0FBQUE7QUFBQTtBQUlBO0FBQUE7QUFBQTtBQUFBO0FBSUU7QUFBQTtBQUFBO0FBQUE7QUFNRjtBQUFBO0FBQUE7QUFLRTtBQUFBO0FBQUE7QUFJQTtBQUFBO0FBQUE7QUFJQTtBQUFBO0FBQUE7Ozs7QUFTSjtBQUFBO0FBQUE7QUFHRTtBQUFBO0FBQUE7QUFJQTtBQUFBO0FBQUE7QUFBQTtBQUlFO0FBQUE7QUFBQTtBQUFBO0FBTUY7QUFBQTtBQUFBO0FBSUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQU1FO0FBQUE7QUFBQTtBQUlBO0FBQUE7QUFBQTs7OztBQVVGO0FBQUE7QUFBQTtBQUlBO0FBQUE7QUFBQTtBQUFBO0FBS0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBOzs7O0FBV0Y7QUFBQTtBQUFBO0FBSUU7QUFBQTtBQUFBOzs7O0FBOEZGO0FBQUE7QUFBQTtBQUFBO0FBcEZFO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFVQTtBQUFBO0FBQUE7QUFJQTtBQUFBO0FBQUE7QUFJQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFRQTtBQUFBO0FBQUE7QUFJQTtBQUFBO0FBQUE7QUFNQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFPQTtBQUFBO0FBQUE7QUFBQTtBQUtBO0FBQUE7QUFBQTtBQUFBO0FBS0E7QUFBQTtBQUFBO0FBQUE7QUFLQTtBQUFBO0FBQUE7QUFBQTtBQXRCQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFPQTtBQUFBO0FBQUE7QUFBQTtBQUtBO0FBQUE7QUFBQTtBQUFBO0FBS0E7QUFBQTtBQUFBO0FBQUE7QUFLQTtBQUFBO0FBQUE7QUFBQTtBQTFEQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBVUE7QUFBQTtBQUFBO0FBSUE7QUFBQTtBQUFBO0FBSUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBUUE7QUFBQTtBQUFBO0FBSUE7QUFBQTtBQUFBO0FBTUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBT0E7QUFBQTtBQUFBO0FBQUE7QUFLQTtBQUFBO0FBQUE7QUFBQTtBQUtBO0FBQUE7QUFBQTtBQUFBO0FBS0E7QUFBQTtBQUFBO0FBQUE7QUF0QkE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBT0E7QUFBQTtBQUFBO0FBQUE7QUFLQTtBQUFBO0FBQUE7QUFBQTtBQUtBO0FBQUE7QUFBQTtBQUFBO0FBS0E7QUFBQTtBQUFBO0FBQUE7QUFVSTtBQUFBO0FBQUE7QUFHQTtBQUFBO0FBQUE7QUFHQTtBQUFBO0FBQUE7QUFHQTtBQUFBO0FBQUE7QUFUQTtBQUFBO0FBQUE7QUFHQTtBQUFBO0FBQUE7QUFHQTtBQUFBO0FBQUE7QUFHQTtBQUFBO0FBQUE7QUFUQTtBQUFBO0FBQUE7QUFHQTtBQUFBO0FBQUE7QUFHQTtBQUFBO0FBQUE7QUFHQTtBQUFBO0FBQUE7QUFUQTtBQUFBO0FBQUE7QUFHQTtBQUFBO0FBQUE7QUFHQTtBQUFBO0FBQUE7QUFHQTtBQUFBO0FBQUE7Ozs7QUFpRE47QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7Ozs7QUFjQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFNRTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7Ozs7QUFXRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUdFO0FBQUE7QUFBQTtBQUtBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQU1FO0FBQUE7QUFBQTtBQUFBO0FBS0E7QUFBQTtBQUFBO0FBQUE7QUFTRjtBQUFBO0FBQUE7QUFBQTtBQUlFO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFNQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQVNBO0FBQUE7QUFBQTtBQUFBO0FBTUE7QUFBQTtBQUFBO0FBQUE7Ozs7QUFZRjtBQUFBO0FBQUE7QUFJQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFPQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFNRTtBQUFBO0FBQUE7QUFBQTtBQUlFO0FBQUE7QUFBQTtBQUlBO0FBQUE7QUFBQTs7OztBQVdKO0FBQUE7QUFBQTtBQUlBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7Ozs7QUFjQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBOzs7O0FBU0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUtFO0FBQUE7QUFBQTtBQUFBO0FBS0E7QUFBQTtBQUFBO0FBQUE7QUFNSjtBQUFBO0FBQUE7Ozs7QUFRRTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQWNBO0FBQUE7QUFBQTtBQUlBO0FBQUE7QUFBQTtBQUFBO0FBS0E7QUFBQTtBQUFBO0FBSUE7QUFBQTtBQUFBO0FBQUE7QUFNRTtBQUFBO0FBQUE7QUFBQTtBQUlBO0FBQUE7QUFBQTtBQUFBO0FBSUE7QUFBQTtBQUFBO0FBQUE7QUFhQTtBQUFBO0FBQUE7QUFJQTtBQUFBO0FBQUE7QUFBQTtBQU1GO0FBQUE7QUFBQTtBQUVFO0FBQUE7QUFBQTs7Ozs7QUFVSjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQU1FO0FBQUE7QUFBQTtBQUFBOztBQVVGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBT0U7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBT0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBU0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBT0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQVFBO0FBQUE7QUFBQTtBQUlBO0FBQUE7QUFBQTs7OztBQVNBO0FBQUE7QUFBQTtBQUFBO0FBS0E7QUFBQTtBQUFBO0FBQUE7QUFJRTtBQUFBO0FBQUE7QUFNQTtBQUFBO0FBQUE7Ozs7QUFVSjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFZRTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBTUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQU1BO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQU9BO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFRQTtBQUFBO0FBQUE7QUFJQTtBQUFBO0FBQUE7QUFJQTtBQUFBO0FBQUE7QUFJQTtBQUFBO0FBQUE7QUFBQTtBQUlFO0FBQUE7QUFBQTtBQUFBO0FBT0E7QUFBQTtBQUFBOzs7O0FBU0o7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFVRTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQVNBO0FBQUE7QUFBQTtBQUFBO0FBS0E7QUFBQTtBQUFBOzs7O0FBUUY7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFPRTtBQUFBO0FBQUE7QUFJQTtBQUFBO0FBQUE7QUFBQTtBQUFBOzs7O0FBVUY7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFPRTtBQUFBO0FBQUE7QUFBQTtBQUtBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTs7OztBQWVBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFLRTtBQUFBO0FBQUE7QUFNRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBTUE7QUFBQTtBQUFBO0FBQUE7QWpDdDhFQTtBQUFBO0FBQUE7QWlDNDhFQTtBQUFBO0FBQUE7QUFJQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFJQTtBQUFBO0FBQUE7QUFJQTtBQUFBO0FBQUE7QUFJQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBOzs7O0FBYUY7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUtFO0FBQUE7QUFBQTtBQUlBO0FBQUE7QUFBQTtBQUlBO0FBQUE7QUFBQTtBQUlBO0FBQUE7QUFBQTtBQUdFO0FBQUE7QUFBQTtBQU1GO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBOzs7O0FBYUE7QUFBQTtBQUFBO0FBQUE7Ozs7QUFTRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBV0U7QUFBQTtBQUFBO0FBQUE7QUFLQTtBQUFBO0FBQUE7QUFBQTtBQUlBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFNQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFTRTtBQUFBO0FBQUE7QUFLRjtBQUFBO0FBQUE7QUFFRTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBVUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBT0E7QUFBQTtBQUFBO0FBSUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQU9GO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQU9BO0FBQUE7QUFBQTtBQUlBO0FBQUE7QUFBQTtBQUFBO0FBS0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQVFFO0FBQUE7QUFBQTtBQUFBOzs7O0FBVUY7QUFBQTtBQUFBO0FBRUU7QUFBQTtBQUFBOzs7O0FBU0o7QUFBQTtBQUFBO0FBQUE7QUFJRTtBQUFBO0FBQUE7QUFBQTtBQUtBO0FBQUE7QUFBQTtBQUFBO0FBS0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUlBO0FBQUE7QUFBQTtBQUFBO0FBSUU7QUFBQTtBQUFBO0FBS0Y7QUFBQTtBQUFBO0FBQUE7QUFLRTtBQUFBO0FBQUE7QUFBQTtBQUtFO0FBQUE7QUFBQTtBQUFBO0FBS0E7QUFBQTtBQUFBO0FBSUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUtFO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUlBO0FBQUE7QUFBQTtBQUFBO0FBS0E7QUFBQTtBQUFBO0FBTUo7QUFBQTtBQUFBO0FBR0U7QUFBQTtBQUFBO0FBSUE7QUFBQTtBQUFBO0FBS0Y7QUFBQTtBQUFBO0FBS0Y7QUFBQTtBQUFBO0FBR0U7QUFBQTtBQUFBO0FBQUE7QUFBQTs7OztBQVdKO0FBQUE7QUFBQTtBQUFBO0FBSUU7QUFBQTtBQUFBO0FBQUE7QUFJRTtBQUFBO0FBQUE7QUFJQTtBQUFBO0FBQUE7QUFBQTtBQUtBO0FBQUE7QUFBQTtBQUFBO0FBTUE7QUFBQTtBQUFBO0FBQUE7QUFLQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBTUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFRQTtBQUFBO0FBQUE7QUFBQTtBQUtBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7Ozs7QUFjSjtBQUFBO0FBQUE7QUFHRTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFPQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQU9FO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBUUE7QUFBQTtBQUFBO0FBQUE7QUFBQTs7OztBQVdKO0FBQUE7QUFBQTtBQUdFO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFNQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBTUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUtBO0FBQUE7QUFBQTtBQUFBO0FBT0E7QUFBQTtBQUFBO0FBSUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBOzs7O0FBU0Y7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUtFO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBU0Y7QUFHTTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBT0U7QUFBQTtBQUFBO0FBQUE7QUFBQTs7OztBQWFOO0FBQUE7QUFBQTtBQUlBO0FBQUE7QUFBQTtBQUlJO0FBQUE7QUFBQTtBQUtGO0FBQUE7QUFBQTs7OztBQVNKO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQU1FO0FBQUE7QUFBQTtBQUlBO0FBQUE7QUFBQTtBQUlBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBT0U7QUFBQTtBQUFBO0FBSUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQVFFO0FBQUE7QUFBQTtBQUtGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFPRjtBQUFBO0FBQUE7QUFFRTtBQUFBO0FBQUE7QUFLRjtBQUFBO0FBQUE7QUFJQTtBQUFBO0FBQUE7QUFBQTtBQUlFO0FBQUE7QUFBQTtBQUtGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTs7OztBQVdGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQU1FO0FBQUE7QUFBQTtBQUlBO0FBQUE7QUFBQTtBQUFBO0FBS0E7QUFBQTtBQUFBO0FBQUE7QUFJRTtBQUFBO0FBQUE7QUFJQTtBQUFBO0FBQUE7QUFBQTtBQU1GO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBUUE7QUFBQTtBQUFBOzs7O0FBUUY7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFPRTtBQUFBO0FBQUE7QUFBQTtBQUFBOzs7O0FBVUY7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBT0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUtFO0FBQUE7QUFBQTtBQUlBO0FBQUE7QUFBQTtBQUFBO0FBS0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBU0U7QUFBQTtBQUFBO0FBSUE7QUFBQTtBQUFBO0FBRUU7QUFBQTtBQUFBO0FBS0Y7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBbUJFO0FBQUE7QUFBQTtBQUFBO0FBS0E7QUFBQTtBQUFBO0FBQUE7QUFPSjtBQUFBO0FBQUE7QUFJQTtBQUFBO0FBQUE7QUFJQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFNRTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBT0Y7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBUUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBbUJFO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQVFGO0FBQUE7QUFBQTtBQUtBO0FBQUE7QUFBQTtBQUFBO0FBS0E7QUFBQTtBQUFBO0FBS0Y7QUFBQTtBQUVJO0FBQUE7QUFBQTtBQUFBO0FBVUU7QUFBQTtBQUFBO0FBQUE7QUFBQTs7OztBQVdOO0FBQUE7QUFBQTtBQUFBO0FBS0U7QUFBQTtBQUFBO0FBQUE7QUFLQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFTRTtBQUFBO0FBQUE7QUFBQTtBQUtBO0FBQUE7QUFBQTtBQU1GO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFNQTtBQUFBO0FBQUE7QUFBQTtBQUlFO0FBQUE7QUFBQTtBQUlBO0FBQUE7QUFBQTtBQUFBO0FBSUU7QUFBQTtBQUFBO0FBQUE7QUFNRjtBQUFBO0FBQUE7QUFBQTtBQUtFO0FBQUE7QUFBQTtBQUFBO0FBT0o7QUFBQTtBQUFBO0FBQUE7QUFJQTtBQUFBO0FBQUE7QUFBQTtBQUdFO0FBQUE7QUFBQTtBQUFBOzs7O0FBVUo7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQU1BO0FBQUE7QUFBQTtBQUFBO0FBQUE7QWpDL3pHRTtBQUFBO0FBQUE7QWlDdTBHRjtBQUNFO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFRRTtBQUFBO0FBQUE7QUFBQTtBQUFBOzs7O0FBVUo7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFPRTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBTUU7QUFBQTtBQUFBO0FBQUE7QUFLQTtBQUFBO0FBQUE7QUFBQTtBQUtBO0FBQUE7QUFBQTtBQUFBOzs7O0FBVUo7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUtFO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFTQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFNRTtBQUFBO0FBQUE7QUFBQTtBQVFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7Ozs7QUFXSjtBQUFBO0FBQUE7QUFBQTtBQUFBOzs7O0FBU0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBTUU7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFXQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBOzs7O0FBUUY7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBTUU7QUFBQTtBQUFBOzs7O0FqQzE4R0E7QUFBQTtBQUFBOzs7O0FpQ3k5R0Y7QUFBQTtBQUFBO0FBQUE7QUFJRTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQVFBO0FBQUE7QUFBQTtBQUFBO0FBSUU7QUFBQTtBQUFBO0FqQ3orR0Y7QUFBQTtBQUFBO0FpQ2cvR0E7QUFBQTtBQUFBO0FBUUE7QUFBQTtBQUFBO0FBT0E7QUFBQTtBQUFBO0FBTUE7QUFBQTtBQUFBO0FBS0Y7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QVRyaEhFO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQU1FO0FBQUE7QUFBQTtBQUFBO0FBT0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QVNpaEhGO0FBQUE7QUFBQTtBQUlBO0FBQUE7QUFBQTs7OztBQVFGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBOzs7O0FBUUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7Ozs7QWpDdmlIRTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7Ozs7QWlDa2tIRjtBQUFBO0FBQUE7QUFHRTtBQUFBO0FBQUE7QUFBQTtBQUtBO0FBQUE7QUFBQTtBQUFBO0FBQUE7Ozs7QUFVRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFNRTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFTQTtBQUFBO0FBQUE7QUFHQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBS0U7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBT0E7QUFBQTtBQUFBO0FBQUE7QUFNQTtBQUFBO0FBQUE7QUFJRjtBQUFBO0FBQUE7Ozs7QUFRRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQWVFO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUwvbkhBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQVFBO0FBQUE7QUFBQTtBQUlFO0FBQUE7QUFBQTtBSzJuSEY7QUFBQTtBQUFBO0FBSUE7QUFBQTtBQUFBO0FBQUE7QUFLQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFPQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBUUU7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBUUY7QUFBQTtBQUFBO0FBSUE7QUFBQTtBQUFBO0FBSUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUtFO0FBQUE7QUFBQTtBQUtGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFLRTtBQUFBO0FBQUE7QUFLRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTs7OztBQWtCRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBTHJ0SEU7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBUUE7QUFBQTtBQUFBO0FBSUU7QUFBQTtBQUFBO0FLZ3RIRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBS0U7QUFBQTtBQUFBO0FBT0Y7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFVRTtBQUFBO0FBQUE7QUFLRjtBQUFBO0FBQUE7QUFBQTtBQUFBOzs7O0FBWUY7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBTG53SEU7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBUUE7QUFBQTtBQUFBO0FBSUU7QUFBQTtBQUFBO0FLZ3dIRjtBQUFBO0FBQUE7QUFBQTtBQUlFO0FBQUE7QUFBQTtBQUlBO0FBQUE7QUFBQTtBQUtGO0FBQUE7QUFBQTs7OztBQVFGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBTGp5SEU7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBUUE7QUFBQTtBQUFBO0FBSUU7QUFBQTtBQUFBO0FLcXlIRjtBQUFBO0FBQUE7QUFBQTtBQUtBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFPRTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFRRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBS0U7QUFBQTtBQUFBOzs7O0FBU0o7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBWUU7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBUUE7QUFBQTtBQUFBO0FBSUE7QUFBQTtBQUFBO0FBSUE7QUFBQTtBQUFBO0FBQUE7Ozs7O0FBVUY7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBcUNFO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFNQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQVdBO0FBQUE7QUFBQTtBQUFBO0FBTUY7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBYUU7QUFBQTtBQUFBO0FBSUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBT0E7QUFBQTtBQUFBO0FBQUE7QUFHRTtBQUFBO0FBQUE7QUFLRjtBQUFBO0FBQUE7QUFJQTtBQUFBO0FBQUE7Ozs7QUF3QkY7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FMai9IRTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFRQTtBQUFBO0FBQUE7QUFJRTtBQUFBO0FBQUE7QUs0K0hGO0FBQUE7QUFBQTtBQUlBO0FBQUE7QUFBQTtBQUFBO0FBS0E7QUFBQTtBQUFBO0FBSUE7QUFBQTtBQUFBO0FBQUE7QUFHRTtBQUFBO0FBQUE7QUFNQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBNUNGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTs7OztBQTJERjtBQUFBO0FBQUE7Ozs7QUFPQTtBQUFBO0FBQUE7QUFBQTs7OztBQVFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQU1FO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBUUE7QUFBQTtBQUFBO0FBSUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUlBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBS0E7QUFBQTtBQUFBOzs7O0FBUUY7QUFBQTtBQUFBO0FML2tJRTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFRQTtBQUFBO0FBQUE7QUFJRTtBQUFBO0FBQUE7QUtza0lGO0FBQUE7QUFBQTtBQUFBOzs7O0FBU0Y7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQVNBO0FBQUE7QUFBQTtBQUFBO0FBSUU7QUFBQTtBQUFBO0FBQUE7QUFLQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBUUU7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBa0JFO0FBQUE7QUFBQTtBQUFBO0FBT0o7QUFBQTtBQUFBO0FBSUE7QUFBQTtBQUFBO0FBSUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUlFO0FBQUE7QUFBQTtBQUtGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFNRTtBQUFBO0FBQUE7QUFBQTtBQU1GO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQVFFO0FBQUE7QUFBQTtBQUFBO0FBTUY7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBUUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQWdCQTtBQUFBO0FBQUE7QUFJQTtBQUFBO0FBQUE7QUFLRjtBQUFBO0FBRUk7QUFBQTtBQUFBO0FBQUE7QUFVRTtBQUFBO0FBQUE7QUFBQTs7OztBQVVOO0FBQUE7QUFBQTtBQUdFO0FBQUE7QUFBQTtBQUlBO0FBQUE7QUFBQTtBQUFBO0FBS0E7QUFBQTtBQUFBO0FBQUE7Ozs7QUFTRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFPSTtBQUFBO0FBQUE7QUFBQTtBQU1GO0FBQUE7QUFBQTtBQUtGO0FBQ0U7QUFBQTtBQUFBO0FBQUE7QUFBQTs7OztBQVNGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFLRTtBQUFBO0FBQUE7QUFBQTs7OztBQVNGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFLRTtBQUFBO0FBQUE7QUFBQTtBQUtBO0FBQUE7QUFBQTs7OztBQVFGO0FBQUE7QUFBQTtBQUFBO0FBSUU7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBT0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQU9BO0FBQUE7QUFBQTtBQUlBO0FBQUE7QUFBQTtBQUlBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFNRTtBQUFBO0FBQUE7QUFJQTtBQUFBO0FBQUE7QUFBQTtBQUdBO0FBQUE7QUFBQTtBQUtBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFHQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBS0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUdBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFNQTtBQUFBO0FBQUE7QUFBQTtBQUtBO0FBQUE7QUFBQTtBQU1BO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFLQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFHQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFLRTtBQUFBO0FBQUE7QUFHQTtBQUFBO0FBQUE7QUFHQTtBQUFBO0FBQUE7QUFNQTtBQUFBO0FBQUE7QUFHQTtBQUFBO0FBQUE7QUFBQTtBQUlBO0FBQUE7QUFBQTs7OztBQVVOO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQU1FO0FBQUE7QUFBQTtBQUlBO0FBQUE7QUFBQTtBQUFBO0FBTUE7QUFBQTtBQUFBO0FBSUE7QUFBQTtBQUFBO0FBSUE7QUFBQTtBQUFBO0FBSUE7QUFBQTtBQUFBO0FBSUE7QUFBQTtBQUFBO0FBSUE7QUFBQTtBQUFBO0FBQUE7QUFBQTs7OztBQVVGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFNRTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUx2K0lBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQVFBO0FBQUE7QUFBQTtBQUlFO0FBQUE7QUFBQTtBS2srSUY7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBS0U7QUFBQTtBQUFBO0FBSUE7QUFBQTtBQUFBO0FBS0Y7QUFBQTtBQUFBO0FBSUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQU1BO0FBQUE7QUFBQTtBQUtBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQU1FO0FBQUE7QUFBQTs7OztBQVNKO0FBQUE7QUFBQTtBQUlBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FMOWhKRTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFRQTtBQUFBO0FBQUE7QUFJRTtBQUFBO0FBQUE7QUs2aEpGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQWFBO0FBQUE7QUFBQTtBQUlBO0FBQUE7QUFBQTtBQUlBO0FBQUE7QUFBQTtBQUdFO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFPRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFlRTtBQUFBO0FBQUE7QUFJQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBTUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQU9FO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQVNGO0FBQUE7QUFBQTtBQUFBO0FBTUE7QUFBQTtBQUFBO0FBS0E7QUFBQTtBQUFBO0FBQUE7QUFLQTtBQUFBO0FBQUE7QUFBQTs7OztBQVVKO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBTDNvSkU7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBUUE7QUFBQTtBQUFBO0FBSUU7QUFBQTtBQUFBO0FLa3BKRjtBQUFBO0FBQUE7QUFJQTtBQUFBO0FBQUE7QUFBQTtBQUtBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBT0U7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBUUY7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUtFO0FBQUE7QUFBQTs7Ozs7QUFzQko7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFNRTtBQUFBO0FBQUE7QUFLQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBUUU7QUFBQTtBQUFBO0FBR0E7QUFBQTtBQUFBO0FBR0E7QUFBQTtBQUFBO0FBTUY7QUFBQTtBQUFBO0FBM0NBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQW9EQTtBQUFBO0FBQUE7QUFwREE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBNERBO0FBQUE7QUFBQTtBQUFBO0FBUUU7QUFBQTtBQUFBO0FBT0Y7QUFBQTtBQUFBO0FBR0U7QUFBQTtBQUFBO0FBOUVGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQXVGQTtBQUFBO0FBQUE7QUFBQTtBQUFBOzs7O0FBVUY7QUFBQTtBQUFBO0FBSUE7QUFDRTtBQUFBO0FBQUE7QUFHQTtBQUFBO0FBQUE7QUFBQTs7OztBQVFGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFNSTtBQUFBO0FBQUE7QUFHQTtBQUFBO0FBQUE7QUFHQTtBQUFBO0FBQUE7QUFHQTtBQUFBO0FBQUE7QUFHQTtBQUFBO0FBQUE7QUFHQTtBQUFBO0FBQUE7QUFHQTtBQUFBO0FBQUE7QUFNQTtBQUFBO0FBQUE7QUFJQTtBQUFBO0FBQUE7QUFJQTtBQUFBO0FBQUE7QUFJQTtBQUFBO0FBQUE7QUFJQTtBQUFBO0FBQUE7QUFNSjtBQUFBO0FBQUE7Ozs7QUFPQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBS0U7QUFBQTtBQUFBOzs7O0FBUUY7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7Ozs7QUFhQTtBQUFBO0FBQUE7QUFHRTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBTUE7QUFBQTtBQUFBO0FBSUE7QUFBQTtBQUFBO0FBQUE7Ozs7QUFTRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTs7OztBQWFBO0FBQUE7QUFBQTtBQUFBO0FBSUU7QUFBQTtBQUFBO0FBR0U7QUFBQTtBQUFBO0FBQUE7Ozs7QUFVSjtBQUFBO0FBQUE7QUFJSTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFRSjtBQUFBO0FBQUE7Ozs7QUFPQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFhRTtBQUFBO0FBQUE7QUFJQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBV0U7QUFBQTtBQUFBO0FBS0Y7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBT0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBT0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQU1BO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFNQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQVdBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUlFO0FBQUE7QUFBQTtBQUFBOzs7O0FBU0o7QUFBQTtBQUFBO0FBQUE7QUFJRTtBQUFBO0FBQUE7QUFHRTtBQUFBO0FBQUE7QUFBQTs7OztBQVVKO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQU9FO0FBQUE7QUFBQTs7QUFTSTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFVQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7Ozs7QUFjTjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBakNsbktFO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBaUMybktFO0FBQUE7QUFBQTtBQUtGO0FBQUE7QUFBQTs7OztBQVFGO0FBQUE7QUFBQTtBQUFBO0FBSUU7QUFBQTtBQUFBO0FBQUE7QUFBQTs7OztBQVVGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBT0U7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFPRTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFJQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFLRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQVNGO0FBR007QUFBQTtBQUFBO0FBS0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFPTjtBQUNFO0FBQUE7QUFBQTtBQUFBOzs7O0FBUUY7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFVRTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7Ozs7QUFXRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTs7OztBQVdBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFNRTtBQUFBO0FBQUE7QUFLQTtBQUFBO0FBQUE7QUFJQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBUUU7QUFBQTtBQUFBO0FBQUE7QUFLQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBYUY7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFPRTtBQUFBO0FBQUE7QUFBQTs7OztBQVVKO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQWdCQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FMcHlLRTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFRQTtBQUFBO0FBQUE7QUFJRTtBQUFBO0FBQUE7QUtveUtGO0FBQUE7QUFBQTtBQUlBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQWFFO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFLRjtBQUNFO0FBQUE7QUFBQTtBQUFBO0FBSUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQU9KO0FBQUE7QUFBQTtBQUFBO0FBQUE7Ozs7QUFnQkE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFVRTtBQUFBO0FBQUE7QUFJQTtBQUFBO0FBQUE7QUFJQTtBQUFBO0FBQUE7QUFJQTtBQUFBO0FBQUE7Ozs7QUFhRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFZRTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBT0U7QUFBQTtBQUFBO0FBQUE7QUFLQTtBQUFBO0FBQUE7QUFLRTtBQUFBO0FBQUE7QUFBQTtBQUtBO0FBQUE7QUFBQTtBQU9OO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQWFJO0FBQUE7QUFBQTtBQUFBO0FBUUE7QUFBQTtBQUFBO0FBS0Y7QUFBQTtBQUFBO0FBS0U7QUFBQTtBQUFBO0FBT0U7QUFBQTtBQUFBO0FBTUo7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQU1BO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFZQTtBQUFBO0FBQUE7QUFBQTtBQUtBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFVQTtBQUFBO0FBQUE7QUFBQTtBQUtBO0FBQUE7QUFBQTtBQUFBO0FBT0Y7QUFBQTtBQUFBO0FBSUE7QUFHTTtBQUFBO0FBQUE7QUFBQTtBQUtBO0FBQUE7QUFBQTtBQUFBO0FBS0E7QUFBQTtBQUFBO0FBQUE7QUFNQTtBQUFBO0FBQUE7QUFJQTtBQUFBO0FBQUE7QUFPQTtBQUFBO0FBQUE7QUFJQTtBQUFBO0FBQUE7QUFJQTtBQUFBO0FBQUE7QUFJQTtBQUFBO0FBQUE7QUFBQTtBQVFKO0FBQ0U7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUdFO0FBQUE7QUFBQTtBQUtFO0FBQUE7QUFBQTtBQUFBO0FBS0E7QUFBQTtBQUFBO0FBQUE7QUFTQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBTUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQU1BO0FBQUE7QUFBQTtBQUlBO0FBQUE7QUFBQTtBQUFBO0FBTUo7QUFHTTtBQUFBO0FBQUE7QUFFRTtBQUFBO0FBQUE7QUFLRjtBQUFBO0FBQUE7QUFLRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBTUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFRQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBMUVOO0FBQ0U7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUdFO0FBQUE7QUFBQTtBQUtFO0FBQUE7QUFBQTtBQUFBO0FBS0E7QUFBQTtBQUFBO0FBQUE7QUFTQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBTUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQU1BO0FBQUE7QUFBQTtBQUlBO0FBQUE7QUFBQTtBQUFBO0FBTUo7QUFHTTtBQUFBO0FBQUE7QUFFRTtBQUFBO0FBQUE7QUFLRjtBQUFBO0FBQUE7QUFLRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBTUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFRQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBMUVOO0FBQ0U7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUdFO0FBQUE7QUFBQTtBQUtFO0FBQUE7QUFBQTtBQUFBO0FBS0E7QUFBQTtBQUFBO0FBQUE7QUFTQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBTUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQU1BO0FBQUE7QUFBQTtBQUlBO0FBQUE7QUFBQTtBQUFBO0FBTUo7QUFHTTtBQUFBO0FBQUE7QUFFRTtBQUFBO0FBQUE7QUFLRjtBQUFBO0FBQUE7QUFLRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBTUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFRQTtBQUFBO0FBQUE7QUFBQTtBQUFBOzs7O0FBZ0JSO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBT0U7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFNRTtBQUFBO0FBQUE7QUFJQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFNRTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBSUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBS0Y7QUFBQTtBQUFBO0FBQUE7QUFNRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBT0U7QUFBQTtBQUFBO0FBS0Y7QUFBQTtBQUFBO0FBSUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFNRTtBQUFBO0FBQUE7QUFLRjtBQUFBO0FBQUE7QUFLRTtBQUFBO0FBQUE7Ozs7QUFTSjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQVlFO0FBQUE7QUFBQTtBQUFBO0FBTUE7QUFBQTtBQUFBO0FBQUE7Ozs7QUFvQkY7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFRRTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBWUE7QUFBQTtBQUFBO0FBSUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBTUU7QUFBQTtBQUFBO0FBS0Y7QUFBQTtBQUFBO0FBR0U7QUFBQTtBQUFBO0FBaERBO0FBQUE7QUFBQTtBQUlBO0FBQUE7QUFBQTtBQUpBO0FBQUE7QUFBQTtBQUlBO0FBQUE7QUFBQTtBQUpBO0FBQUE7QUFBQTtBQUlBO0FBQUE7QUFBQTtBQXNESjtBQUNFO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBS0U7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTs7OztBQXlCSjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBU0U7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBYUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBT0E7QUFBQTtBQUFBO0FBR0U7QUFBQTtBQUFBO0FBR0U7QUFBQTtBQUFBO0FBN0NGO0FBQUE7QUFBQTtBQUlBO0FBQUE7QUFBQTtBQWtESjtBQUNFO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFNRTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBOzs7O0FBYUo7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFVRTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBT0U7QUFBQTtBQUFBO0FBS0E7QUFBQTtBQUFBO0FBS0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBU0o7QUFFSTtBQUFBO0FBQUE7QUFBQTs7OztBQVVGO0FBQUE7QUFBQTtBQUdFO0FBQUE7QUFBQTtBQUdFO0FBQUE7QUFBQTtBQU1KO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQVNFO0FBQUE7QUFBQTtBQUlBO0FBQUE7QUFBQTtBQUlJO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFRRTtBQUFBO0FBQUE7QUFLRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQVdBO0FBQUE7QUFBQTtBQUlBO0FBQUE7QUFBQTs7OztBQVdSO0FBQUE7QUFBQTtBQUFBO0FBSUU7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBU0U7QUFBQTtBQUFBO0FBSUE7QUFBQTtBQUFBO0FBS0Y7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUtFO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQU1FO0FBQUE7QUFBQTtBQU1KO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBVUU7QUFBQTtBQUFBO0FBQUE7QUFLQTtBQUFBO0FBQUE7QUFJQTtBQUFBO0FBQUE7QUFLRjtBQUFBO0FBQUE7Ozs7QUFXSTtBQUFBO0FBQUE7QUFBQTs7OztBQVdOO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFXRTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQVdBO0FBQUE7QUFBQTtBQUFBO0FBS0E7QUFBQTtBQUFBO0FBQUE7QUFLQTtBQUFBO0FBQUE7QUFBQTtBQUlFO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFLRjtBQUFBO0FBQUE7QUFJQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQVFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFNQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFNRTtBQUFBO0FBQUE7QUFJQTtBQUFBO0FBQUE7QUFNRjtBQUFBO0FBQUE7QUFLQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQU9FO0FBQUE7QUFBQTtBQUlBO0FBQUE7QUFBQTs7OztBQVNKO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBYUU7QUFBQTtBQUFBO0FBSUE7QUFBQTtBQUFBO0FBSUE7QUFBQTtBQUFBO0FBS0E7QUFBQTtBQUFBO0FBSUE7QUFBQTtBQUFBO0FBS0E7QUFBQTtBQUFBO0FBS0Y7QUFBQTtBQUFBO0FBR0E7QUFBQTtBQUFBOzs7O0FBUUU7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQWFFO0FBQUE7QUFBQTtBQUFBO0FBQUE7Ozs7QUFTSjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQU9FO0FBQUE7QUFBQTtBQUlBO0FBQUE7QUFBQTtBQUlBO0FBQUE7QUFBQTtBQUFBO0FBS0E7QUFBQTtBQUFBO0FBQUE7QUFLQTtBQUFBO0FBQUE7QUFJQTtBQUFBO0FBQUE7QUFJQTtBQUFBO0FBQUE7QUFJQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFNRTtBQUFBO0FBQUE7QUFBQTtBQUlFO0FBQUE7QUFBQTtBQU1BO0FBQUE7QUFBQTtBQU1BO0FBQUE7QUFBQTtBQU1BO0FBQUE7QUFBQTtBQU1BO0FBQUE7QUFBQTtBQU1KO0FBQUE7QUFBQTtBQUFBO0FBSUU7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFPRTtBQUFBO0FBQUE7QUFLRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQU9FO0FBQUE7QUFBQTtBQUtGO0FBQUE7QUFBQTtBQUtGO0FBQUE7QUFBQTs7OztBQVFGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFRRTtBQUFBO0FBQUE7QUFBQTtBQUtBO0FBQUE7QUFBQTtBQUFBO0FBS0E7QUFBQTtBQUFBO0FBSUE7QUFBQTtBQUFBO0FBSUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBT0U7QUFBQTtBQUFBO0FBS0Y7QUFBQTtBQUFBO0FBQUE7QUFJRTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBTUE7QUFBQTtBQUFBO0FBQUE7QUFNRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQVdBO0FBQUE7QUFBQTtBQUlBO0FBQUE7QUFBQTs7OztBQWFGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBU007QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFZRTtBQUFBO0FBQUE7QUFBQTtBQU9BO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFRQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBV0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFXTjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBSUU7QUFBQTtBQUFBO0FBSUE7QUFBQTtBQUFBO0FBSUE7QUFBQTtBQUFBO0FBSUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFRQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQVFJO0FBQUE7QUFBQTtBQUFBO0FBT0o7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQU9FO0FBQUE7QUFBQTtBQUFBO0FBS0E7QUFBQTtBQUFBO0FBQUE7QUFLQTtBQUFBO0FBQUE7QUFBQTtBQU9KO0FBQUE7QUFBQTtBQUdFO0FBQUE7QUFBQTtBQUFBO0FBSUU7QUFBQTtBQUFBO0FBQUE7QUFLQTtBQUFBO0FBQUE7QUFBQTtBQUFBOzs7O0FBWU47QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFhRTtBQUFBO0FBQUE7QUFBQTtBQUlBO0FBQUE7QUFBQTtBQUFBO0FBS0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUtFO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFRRjtBQUFBO0FBQUE7QUFHRTtBQUFBO0FBQUE7Ozs7QUFlRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQVlFO0FBQUE7QUFBQTtBQUtBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFPRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQWFFO0FBQUE7QUFBQTtBQUtBO0FBQUE7QUFBQTtBQUtBO0FBQUE7QUFBQTtBQUtBO0FBQUE7QUFBQTtBQUtGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBU0U7QUFBQTtBQUFBO0FBS0E7QUFBQTtBQUFBO0FBS0E7QUFBQTtBQUFBO0FBU0U7QUFBQTtBQUFBO0FBUUE7QUFBQTtBQUFBOzs7O0FBVU47QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBTUU7QUFBQTtBQUFBOzs7O0FBUUY7QUFBQTtBQUFBO0FBUUU7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQWNFO0FBQUE7QUFBQTtBQUlBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFPRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFtQkU7QUFBQTtBQUFBO0FBSUE7QUFBQTtBQUFBO0FBSUE7QUFBQTtBQUFBO0FBSUE7QUFBQTtBQUFBO0FBS0Y7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQW1CRTtBQUFBO0FBQUE7QUFJQTtBQUFBO0FBQUE7QUFJQTtBQUFBO0FBQUE7QUFJRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBUUk7QUFBQTtBQUFBO0FBUUE7QUFBQTtBQUFBOzs7O0FBVU47QUFBQTtBQUFBO0FBV0U7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQWVFO0FBQUE7QUFBQTtBQUFBO0FBS0E7QUFBQTtBQUFBO0FBSUE7QUFBQTtBQUFBO0FBSUE7QUFBQTtBQUFBO0FBSUE7QUFBQTtBQUFBO0FBSUE7QUFBQTtBQUFBO0FBSUE7QUFBQTtBQUFBO0FBS0Y7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFjRTtBQUFBO0FBQUE7QUFBQTtBQUtBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFNQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBTUE7QUFBQTtBQUFBO0FBQUE7QUFLQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBTUE7QUFBQTtBQUFBO0FBQUE7QUFLQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBTUE7QUFBQTtBQUFBO0FBQUE7QUFLQTtBQUFBO0FBQUE7QUFJQTtBQUFBO0FBQUE7QUFJQTtBQUFBO0FBQUE7QUFJQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBTUE7QUFBQTtBQUFBO0FBSUE7QUFBQTtBQUFBO0FBQUE7QUFLQTtBQUFBO0FBQUE7QUFBQTtBQU1GO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFZRTtBQUFBO0FBQUE7QUFJQTtBQUFBO0FBQUE7QUFJQTtBQUFBO0FBQUE7QUFJQTtBQUFBO0FBQUE7QUFJQTtBQUFBO0FBQUE7QUFJQTtBQUFBO0FBQUE7QUFJQTtBQUFBO0FBQUE7QUFJQTtBQUFBO0FBQUE7QUFJQTtBQUFBO0FBQUE7QUFJQTtBQUFBO0FBQUE7QUFJQTtBQUFBO0FBQUE7QUFJQTtBQUFBO0FBQUE7QUFJQTtBQUFBO0FBQUE7QUFJQTtBQUFBO0FBQUE7QUFLRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBTUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQU1BO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFNQTtBQUFBO0FBQUE7QUFBQTtBQUtBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7Ozs7Ozs7QUFlRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQU9FO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBWUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTs7OztBQWdCRjtBQUFBO0FBQUE7QUFFRTtBQUFBO0FBQUE7QUFFRTtBQUFBO0FBQUE7QUFNQTtBQUFBO0FBQUE7QUFBQTtBQU9BO0FBQUE7QUFBQTtBQUFBOzs7O0FBV0Y7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFLSTtBQUFBO0FBQUE7QUFVQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBY0U7QUFBQTtBQUFBO0FBQUE7QUFNQTtBQUFBO0FBQUE7QUFBQTtBQVFOO0FBQUE7QUFBQTtBQUFBO0FBSUU7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUtBO0FBQUE7QUFBQTtBQUFBO0FBTUY7QUFBQTtBQUFBO0FBQUE7QUFJRTtBQUFBO0FBQUE7QUFJQTtBQUFBO0FBQUE7QUFJQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFNRTtBQUFBO0FBQUE7QUFJQTtBQUFBO0FBQUE7QUFJQTtBQUFBO0FBQUE7QUFLRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFNRTtBQUFBO0FBQUE7QUFBQTtBQUlBO0FBQUE7QUFBQTtBQUlBO0FBQUE7QUFBQTtBQUFBO0FBSUE7QUFBQTtBQUFBO0FBSUE7QUFBQTtBQUFBO0FBQUE7QUFJQTtBQUFBO0FBQUE7QUFNSjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQU9FO0FBQUE7QUFBQTtBQUtFO0FBQUE7QUFBQTtBQUFBO0FBT0o7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTs7OztBQVFGO0FBQUE7QUFBQTtBQUFBOzs7O0FBUUE7QUFBQTtBQUFBO0FBQUE7QUFJRTtBQUFBO0FBQUE7QUFBQTtBQUtBO0FBQUE7QUFBQTtBQUFBO0FBQUE7Ozs7QUFVRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBTUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFJRTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBT0E7QUFBQTtBQUFBO0FBSUE7QUFBQTtBQUFBO0FBS0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBT0E7QUFBQTtBQUFBO0FBU0E7QUFBQTtBQUFBO0FBQUE7QUFDRTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFVQTtBQUFBO0FBQUE7QUFBQTtBQUtBO0FBQUE7QUFBQTtBQUlBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQVNBO0FBQUE7QUFBQTtBQVdBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQU9BO0FBQUE7QUFBQTtBQUtBO0FBQUE7QUFBQTtBQUFBO0FBS0E7QUFBQTtBQUFBO0FBS0E7QUFBQTtBQUFBO0FBS0E7QUFBQTtBQUFBOzs7O0FBU0o7QUFBQTtBQUFBO0FBQUE7QUFJRTtBQUFBO0FBQUE7Ozs7QUFRRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQVNFO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFPQTtBQUFBO0FBQUE7QUFBQTtBQUtBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBT0U7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQVdGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBVUU7QUFBQTtBQUFBO0FBT0Y7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUtFO0FBQUE7QUFBQTtBQUFBO0FBQUE7Ozs7QUFhRjtBQUFBO0FBQUE7QUFJQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFNRTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUtBO0FBQUE7QUFBQTtBQUFBO0FBTUY7QUFBQTtBQUFBO0FBQUE7Ozs7QUFTRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQVNFO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFPQTtBQUFBO0FBQUE7QUFBQTtBQUtBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBT0U7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQVdGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQVNFO0FBQUE7QUFBQTtBQU9GO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFLRTtBQUFBO0FBQUE7QUFBQTtBQUFBOzs7O0FBWUo7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBZ0JBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQVNFO0FBQUE7QUFBQTtBQUFBO0FBS0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBT0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUtFO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQU9BO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBUUE7QUFBQTtBQUFBO0FBS0Y7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBV0U7QUFBQTtBQUFBO0FBQUE7QUFLQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFPQTtBQUFBO0FBQUE7QUFBQTtBQU9BO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQU9BO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQVFGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFNQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBS0U7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFRQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQVFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFLRTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBU0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQVdKO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFNQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBTUE7QUFBQTtBQUFBO0FBS0Y7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQU9NO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBVUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBWUE7QUFBQTtBQUFBO0FBQUE7QUFBQTs7OztBQWlCSjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFPQTtBQUFBO0FBQUE7QUFBQTtBQUtBO0FBQUE7QUFBQTtBQUFBO0FBSUU7QUFBQTtBQUFBO0FBT0Y7QUFBQTtBQUFBO0FBSUE7QUFBQTtBQUFBO0FBSUE7QUFBQTtBQUFBO0FBSUE7QUFBQTtBQUFBOzs7O0FBUUY7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFVRTtBQUFBO0FBQUE7QUFJQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBS0E7QUFBQTtBQUFBO0FBSUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQU1BO0FBQUE7QUFBQTtBQUFBO0FBS0E7QUFBQTtBQUFBO0FBQUE7QUFLQTtBQUFBO0FBQUE7QUFBQTtBQUtBO0FBQUE7QUFBQTtBQUFBO0FBS0E7QUFBQTtBQUFBOzs7O0FBUUY7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFhRTtBQUFBO0FBQUE7QUFBQTtBQUtBO0FBQUE7QUFBQTtBQUFBO0FBR0U7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBUUY7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBT0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQVFFO0FBQUE7QUFBQTtBQUtGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFNQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBT0U7QUFBQTtBQUFBO0FBS0Y7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBS0U7QUFBQTtBQUFBO0FBS0Y7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFPRTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFjRjtBQUFBO0FBQUE7QUFJQTtBQUFBO0FBQUE7Ozs7QUFRRjtBQUFBO0FBQUE7Ozs7QUFPQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFlRTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQVNBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQU9BO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBVUE7QUFBQTtBQUFBO0FBQUE7QUFLQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBS0U7QUFBQTtBQUFBO0FBQUE7QUFVRjtBQUFBO0FBQUE7QUFHRTtBQUFBO0FBQUE7QUFBQTtBQVVBO0FBQUE7QUFBQTtBQUlBO0FBQUE7QUFBQTtBQUFBO0FBTUY7QUFBQTtBQUFBO0FBQUE7QUFJRTtBQUFBO0FBQUE7QUFBQTtBQVVGO0FBQUE7QUFBQTtBQUdFO0FBQUE7QUFBQTtBQUtGO0FBQUE7QUFBQTtBQUFBO0FBSUU7QUFBQTtBQUFBO0FBR0U7QUFBQTtBQUFBO0FBTUo7QUFBQTtBQUFBO0FBQUE7QUFLQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQVFBO0FBQUE7QUFBQTs7OztBQVFGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBT0U7QUFBQTtBQUFBO0FBSUE7QUFBQTtBQUFBO0FBQUE7QUFLQTtBQUFBO0FBQUE7Ozs7QUFRRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFJRTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBUUU7QUFBQTtBQUFBO0FBQUE7QUFNQTtBQUFBO0FBQUE7QUFJQTtBQUFBO0FBQUE7QUFFRTtBQUFBO0FBQUE7QUFHQTtBQUFBO0FBQUE7QUFNRjtBQUFBO0FBQUE7QUFNRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFPRTtBQUFBO0FBQUE7QUFPQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQVVFO0FBQUE7QUFBQTtBQU1GO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBY0E7QUFBQTtBQUFBO0FBUUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQU9BO0FBQUE7QUFBQTtBQU1FO0FBQUE7QUFBQTtBQUtGO0FBQUE7QUFBQTtBQUVFO0FBQUE7QUFBQTtBQUFBO0FBV0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBTUU7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBU0o7QUFBQTtBQUFBO0FBTUY7QUFBQTtBQUFBO0FBQUE7QUFFRTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBT0E7QUFBQTtBQUFBO0FBQUE7QUFPRTtBQUFBO0FBQUE7QUFLQTtBQUFBO0FBQUE7QUFBQTtBQVlFO0FBQUE7QUFBQTtBQUFBO0FBVUo7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQU1BO0FBQUE7QUFBQTtBQUlBO0FBQUE7QUFBQTs7OztBQVNKO0FBQUE7QUFBQTs7OztBQU9BO0FBQUE7QUFBQTtBQUFBO0FBR0U7QUFBQTtBQUFBO0FBSUE7QUFBQTtBQUFBO0FBS0U7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQVVGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFNQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBS0U7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFRQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBVUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBS0U7QUFBQTtBQUFBO0FBTUY7QUFBQTtBQUFBO0FBQUE7QUFNRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBTUE7QUFBQTtBQUFBO0FBRUU7QUFBQTtBQUFBOzs7O0FBU0o7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBOzs7O0FBVUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFPRTtBQUFBO0FBQUE7QUFBQTtBQUlBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFXRTtBQUFBO0FBQUE7QUFJQTtBQUFBO0FBQUE7QUFJQTtBQUFBO0FBQUE7QUFBQTtBQUtBO0FBQUE7QUFBQTtBQUFBO0FBSUU7QUFBQTtBQUFBO0FBS0Y7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBT0E7QUFBQTtBQUFBO0FBSUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQU9GO0FBQUE7QUFBQTs7OztBQVFGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBTHBvUkU7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBUUE7QUFBQTtBQUFBO0FBSUU7QUFBQTtBQUFBOzs7O0FLb29SRjtBQUFBO0FBQUE7QWpDcHFSQTtBQUFBO0FBQUE7Ozs7QWlDaXJSQTtBQUFBO0FBQUE7QUFJQTtBQUFBO0FBQUE7QWpDcnJSQTtBQUFBO0FBQUEiLCJzb3VyY2VzQ29udGVudCI6WyIvKiEqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiohKlxcXG4gICEqKiogY3NzIC4vY2xpZW50L3Rvb2xpbmcvd2VicGFjay9jc3NfcmF3X2xvYWRlci5qcz8/cnVsZVNldFsxXS5ydWxlc1swXS51c2VbMV0hLi9ub2RlX21vZHVsZXMvcG9zdGNzcy1sb2FkZXIvZGlzdC9janMuanM/P3J1bGVTZXRbMV0ucnVsZXNbMF0udXNlWzJdIS4vY2xpZW50L2NvbXBvbmVudC90dWkvc3JjL2dsb2JhbF9zdHlsZXMvdmFyaWFibGVzL2RlcHJlY2F0ZWQuc2NzcyAqKiohXG4gIFxcKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogVGhpcyBmaWxlIGlzIHBhcnQgb2YgVG90YXJhIEVudGVycHJpc2UgRXh0ZW5zaW9ucy4qL1xuLyoqL1xuLyogQ29weXJpZ2h0IChDKSAyMDI0IG9ud2FyZHMgVG90YXJhIExlYXJuaW5nIFNvbHV0aW9ucyBMVEQqL1xuLyoqL1xuLyogVG90YXJhIEVudGVycHJpc2UgRXh0ZW5zaW9ucyBpcyBwcm92aWRlZCBvbmx5IHRvIFRvdGFyYSovXG4vKiBMZWFybmluZyBTb2x1dGlvbnMgTFREJ3MgY3VzdG9tZXJzIGFuZCBwYXJ0bmVycywgcHVyc3VhbnQgdG8qL1xuLyogdGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIG9mIGEgc2VwYXJhdGUgYWdyZWVtZW50IHdpdGggVG90YXJhKi9cbi8qIExlYXJuaW5nIFNvbHV0aW9ucyBMVEQgb3IgaXRzIGFmZmlsaWF0ZS4qL1xuLyoqL1xuLyogSWYgeW91IGRvIG5vdCBoYXZlIGFuIGFncmVlbWVudCB3aXRoIFRvdGFyYSBMZWFybmluZyBTb2x1dGlvbnMqL1xuLyogTFRELCB5b3UgbWF5IG5vdCBhY2Nlc3MsIHVzZSwgbW9kaWZ5LCBvciBkaXN0cmlidXRlIHRoaXMgc29mdHdhcmUuKi9cbi8qIFBsZWFzZSBjb250YWN0IFtsaWNlbnNpbmdAdG90YXJhLmNvbV0gZm9yIG1vcmUgaW5mb3JtYXRpb24uKi9cbi8qKi9cbi8qIEBhdXRob3IgU2ltb24gQ2hlc3RlciA8c2ltb24uY2hlc3RlckB0b3RhcmEuY29tPiovXG4vKiBAbW9kdWxlIHR1aSovXG5cbi8qIHN0eWxlbGludC1kaXNhYmxlIHR1aS9uby1kZXByZWNhdGVkLXZhcnMgKi9cblxuLyogRGVwcmVjYXRlZCBzaW5jZSBUb3RhcmEgMTkuMCovXG4kdHVpLWdhcDogcmVtLXB4KDQpO1xuXG46cm9vdCB7XG4gIC8qIERlcHJlY2F0ZWQgc2luY2UgVG90YXJhIDE4LjAqL1xuICAtLWdyaWQtZ3V0dGVyOiB2YXIoLS1nYXAtNSk7XG5cbiAgLyogRGVwcmVjYXRlZCBzaW5jZSBUb3RhcmEgMTkuMCovXG4gIC0tZm9udC1zaXplLTE6IGNhbGModmFyKC0tZm9udC1zaXplLWJhc2UpIC8gMTYgKiAxKTtcbiAgLS1mb250LXNpemUtMjogY2FsYyh2YXIoLS1mb250LXNpemUtYmFzZSkgLyAxNiAqIDIpO1xuICAtLWZvbnQtc2l6ZS00OiBjYWxjKHZhcigtLWZvbnQtc2l6ZS1iYXNlKSAvIDE2ICogNCk7XG4gIC0tZm9udC1zaXplLTg6IGNhbGModmFyKC0tZm9udC1zaXplLWJhc2UpIC8gMTYgKiA4KTtcbiAgLS1mb250LXNpemUtMTA6IGNhbGModmFyKC0tZm9udC1zaXplLWJhc2UpIC8gMTYgKiAxMCk7XG4gIC0tZm9udC1zaXplLTExOiBjYWxjKHZhcigtLWZvbnQtc2l6ZS1iYXNlKSAvIDE2ICogMTEpO1xuICAtLWZvbnQtc2l6ZS0xMjogY2FsYyh2YXIoLS1mb250LXNpemUtYmFzZSkgLyAxNiAqIDEyKTtcbiAgLS1mb250LXNpemUtMTM6IGNhbGModmFyKC0tZm9udC1zaXplLWJhc2UpIC8gMTYgKiAxMyk7XG4gIC0tZm9udC1zaXplLTE0OiBjYWxjKHZhcigtLWZvbnQtc2l6ZS1iYXNlKSAvIDE2ICogMTQpO1xuICAtLWZvbnQtc2l6ZS0xNTogY2FsYyh2YXIoLS1mb250LXNpemUtYmFzZSkgLyAxNiAqIDE1KTtcbiAgLS1mb250LXNpemUtMTY6IGNhbGModmFyKC0tZm9udC1zaXplLWJhc2UpIC8gMTYgKiAxNik7XG4gIC0tZm9udC1zaXplLTE4OiBjYWxjKHZhcigtLWZvbnQtc2l6ZS1iYXNlKSAvIDE2ICogMTgpO1xuICAtLWZvbnQtc2l6ZS0yMDogY2FsYyh2YXIoLS1mb250LXNpemUtYmFzZSkgLyAxNiAqIDIwKTtcbiAgLS1mb250LXNpemUtMjI6IGNhbGModmFyKC0tZm9udC1zaXplLWJhc2UpIC8gMTYgKiAyMik7XG4gIC0tZm9udC1zaXplLTI0OiBjYWxjKHZhcigtLWZvbnQtc2l6ZS1iYXNlKSAvIDE2ICogMjQpO1xuICAtLWZvbnQtc2l6ZS0zMDogY2FsYyh2YXIoLS1mb250LXNpemUtYmFzZSkgLyAxNiAqIDMwKTtcbiAgLS1mb250LXNpemUtMzI6IGNhbGModmFyKC0tZm9udC1zaXplLWJhc2UpIC8gMTYgKiAzMik7XG4gIC0tZm9udC1zaXplLTQwOiBjYWxjKHZhcigtLWZvbnQtc2l6ZS1iYXNlKSAvIDE2ICogNDApO1xuICAtLWZvbnQtc2l6ZS00ODogY2FsYyh2YXIoLS1mb250LXNpemUtYmFzZSkgLyAxNiAqIDQ4KTtcbiAgLS1mb250LXNpemUtNTA6IGNhbGModmFyKC0tZm9udC1zaXplLWJhc2UpIC8gMTYgKiA1MCk7XG4gIC0tZm9udC1ib2R5LWxhcmdlLWxpbmUtaGVpZ2h0OiAxLjMzO1xuICAtLWZvbnQtYm9keS1zbWFsbC1saW5lLWhlaWdodDogMS4xNTQ7XG4gIC0tZm9udC1ib2R5LXgtc21hbGwtbGluZS1oZWlnaHQ6IDEuMjU7XG4gIC0tZm9udC1ib2R5LXh4LXNtYWxsLWxpbmUtaGVpZ2h0OiAxLjE7XG4gIC0tZm9udC1oZWFkaW5nLWxhcmdlLWxpbmUtaGVpZ2h0OiAxLjE2NztcbiAgLS1mb250LWhlYWRpbmctbGluZS1oZWlnaHQ6IDEuMzMzO1xuICAtLWZvbnQtaGVhZGluZy1zbWFsbC1saW5lLWhlaWdodDogMS4zMzM7XG4gIC0tZm9udC1oZWFkaW5nLXgtc21hbGwtbGluZS1oZWlnaHQ6IDEuMzMzO1xuICAtLWZvbnQtYm9keS1zbWFsbC1zaXplOiBjYWxjKHZhcigtLWZvbnQtc2l6ZS1iYXNlKSAvIDE2ICogMTMpO1xuICAtLWZvbnQtYm9keS14LXNtYWxsLXNpemU6IGNhbGModmFyKC0tZm9udC1zaXplLWJhc2UpIC8gMTYgKiAxMik7XG4gIC0tZm9udC1ib2R5LXh4LXNtYWxsLXNpemU6IGNhbGModmFyKC0tZm9udC1zaXplLWJhc2UpIC8gMTYgKiAxMSk7XG4gIC0tZm9udC1oZWFkaW5nLWxhcmdlLXNpemU6IGNhbGModmFyKC0tZm9udC1zaXplLWJhc2UpIC8gMTYgKiA1MCk7XG4gIC0tZm9udC1oZWFkaW5nLXNpemU6IGNhbGModmFyKC0tZm9udC1zaXplLWJhc2UpIC8gMTYgKiAzMCk7XG4gIC0tZm9udC1oZWFkaW5nLXNtYWxsLXNpemU6IGNhbGModmFyKC0tZm9udC1zaXplLWJhc2UpIC8gMTYgKiAyMCk7XG4gIC0tZm9udC1oZWFkaW5nLXgtc21hbGwtc2l6ZTogY2FsYyh2YXIoLS1mb250LXNpemUtYmFzZSkgLyAxNiAqIDE2KTtcbiAgLS1idG4tc20tbWluLWhlaWdodDogI3tyZW0tcHgoMzApfTtcbiAgLS1idG4tbWluLWhlaWdodDogI3tyZW0tcHgoMzYpfTtcbiAgLS1idG4teHMtbWluLWhlaWdodDogI3tyZW0tcHgoMjApfTtcbiAgLS1idG4tbWluLXdpZHRoOiA3MnB4O1xuICAtLWJ0bi1iZy1jb2xvci1hY3RpdmU6IHZhcigtLWNvbG9yLW5ldXRyYWwtMSk7XG4gIC0tYnRuLWJnLWNvbG9yLWhvdmVyOiB2YXIoLS1jb2xvci1uZXV0cmFsLTMpO1xuICAtLWJ0bi1ib3JkZXItY29sb3I6IHZhcigtLWJ0bi1hY2NlbnQtY29sb3IpO1xuICAtLWJ0bi1ib3JkZXItY29sb3ItYWN0aXZlOiB2YXIoLS1idG4tYWNjZW50LWNvbG9yLWFjdGl2ZSk7XG4gIC0tYnRuLWJvcmRlci1jb2xvci1kaXNhYmxlZDogdmFyKC0tYnRuLWFjY2VudC1jb2xvci1kaXNhYmxlZCk7XG4gIC0tYnRuLWJvcmRlci1jb2xvci1ob3ZlcjogdmFyKC0tYnRuLWFjY2VudC1jb2xvci1ob3Zlcik7XG4gIC0tYnRuLWxvYWRlci1jb2xvci1kaXNhYmxlZDogdmFyKC0tY29sb3ItbmV1dHJhbC02KTtcbiAgLS1idG4tdGV4dC1jb2xvci1hY3RpdmU6IHZhcigtLWJ0bi1hY2NlbnQtY29sb3ItYWN0aXZlKTtcbiAgLS1idG4tdGV4dC1jb2xvci1kaXNhYmxlZDogdmFyKC0tYnRuLWFjY2VudC1jb2xvci1kaXNhYmxlZCk7XG4gIC0tYnRuLXRleHQtY29sb3ItaG92ZXI6IHZhcigtLWJ0bi1hY2NlbnQtY29sb3ItaG92ZXIpO1xuICAtLWJ0bi1wcmltLWFjY2VudC1jb2xvcjogdmFyKC0tY29sb3Itc3RhdGUpO1xuICAtLWJ0bi1wcmltLWFjY2VudC1jb2xvci1hY3RpdmU6IHZhcigtLWNvbG9yLXN0YXRlLWFjdGl2ZSk7XG4gIC0tYnRuLXByaW0tYWNjZW50LWNvbG9yLWhvdmVyOiB2YXIoLS1jb2xvci1zdGF0ZS1ob3Zlcik7XG4gIC0tYnRuLXByaW0tYWNjZW50LWNvbG9yLWRpc2FibGVkOiB2YXIoLS1jb2xvci1zdGF0ZS1kaXNhYmxlZCk7XG4gIC0tYnRuLXByaW0tYmctY29sb3I6IHZhcigtLWJ0bi1wcmltLWFjY2VudC1jb2xvcik7XG4gIC0tYnRuLXByaW0tYmctY29sb3ItYWN0aXZlOiB2YXIoLS1idG4tcHJpbS1hY2NlbnQtY29sb3ItYWN0aXZlKTtcbiAgLS1idG4tcHJpbS1iZy1jb2xvci1kaXNhYmxlZDogdmFyKC0tYnRuLXByaW0tYWNjZW50LWNvbG9yLWRpc2FibGVkKTtcbiAgLS1idG4tcHJpbS1iZy1jb2xvci1ob3ZlcjogdmFyKC0tYnRuLXByaW0tYWNjZW50LWNvbG9yLWhvdmVyKTtcbiAgLS1idG4tcHJpbS1ib3JkZXItY29sb3I6IHZhcigtLWJ0bi1wcmltLWFjY2VudC1jb2xvcik7XG4gIC0tYnRuLXByaW0tYm9yZGVyLWNvbG9yLWFjdGl2ZTogdmFyKC0tYnRuLXByaW0tYWNjZW50LWNvbG9yLWFjdGl2ZSk7XG4gIC0tYnRuLXByaW0tYm9yZGVyLWNvbG9yLWRpc2FibGVkOiB2YXIoLS1idG4tcHJpbS1hY2NlbnQtY29sb3ItZGlzYWJsZWQpO1xuICAtLWJ0bi1wcmltLWJvcmRlci1jb2xvci1ob3ZlcjogdmFyKC0tYnRuLXByaW0tYWNjZW50LWNvbG9yLWhvdmVyKTtcbiAgLS1idG4tcHJpbS1sb2FkZXItY29sb3ItZGlzYWJsZWQ6IHZhcigtLWNvbG9yLW5ldXRyYWwtNyk7XG4gIC0tYnRuLXByaW0tdGV4dC1jb2xvcjogdmFyKC0tY29sb3ItbmV1dHJhbC0xKTtcbiAgLS1idG4tcHJpbS10ZXh0LWNvbG9yLWFjdGl2ZTogdmFyKC0tY29sb3ItbmV1dHJhbC0xKTtcbiAgLS1idG4tcHJpbS10ZXh0LWNvbG9yLWRpc2FibGVkOiB2YXIoLS1jb2xvci1uZXV0cmFsLTMpO1xuICAtLWJ0bi1wcmltLXRleHQtY29sb3ItaG92ZXI6IHZhcigtLWNvbG9yLW5ldXRyYWwtMSk7XG4gIC0tYnRuLWFsZXJ0LWJnLWNvbG9yOiB2YXIoLS1jb2xvci1wcm9tcHQtYWxlcnQpO1xuICAtLWJ0bi1hbGVydC1iZy1jb2xvci1hY3RpdmU6IHZhcigtLWNvbG9yLXByb21wdC1hbGVydCk7XG4gIC0tYnRuLWFsZXJ0LWJnLWNvbG9yLWRpc2FibGVkOiB2YXIoLS1jb2xvci1uZXV0cmFsLTMpO1xuICAtLWJ0bi1hbGVydC1iZy1jb2xvci1ob3ZlcjogdmFyKC0tY29sb3ItcHJvbXB0LWFsZXJ0KTtcbiAgLS1idG4tYWxlcnQtYm9yZGVyLWNvbG9yOiB2YXIoLS1jb2xvci1wcm9tcHQtYWxlcnQpO1xuICAtLWJ0bi1hbGVydC1ib3JkZXItY29sb3ItYWN0aXZlOiB2YXIoLS1jb2xvci1wcm9tcHQtYWxlcnQpO1xuICAtLWJ0bi1hbGVydC1ib3JkZXItY29sb3ItZGlzYWJsZWQ6IHZhcigtLWNvbG9yLXN0YXRlLWRpc2FibGVkKTtcbiAgLS1idG4tYWxlcnQtYm9yZGVyLWNvbG9yLWhvdmVyOiB2YXIoLS1jb2xvci1wcm9tcHQtYWxlcnQpO1xuICAtLWJ0bi1hbGVydC10ZXh0LWNvbG9yOiB2YXIoLS1jb2xvci1uZXV0cmFsLTEpO1xuICAtLWJ0bi1hbGVydC10ZXh0LWNvbG9yLWFjdGl2ZTogdmFyKC0tY29sb3ItbmV1dHJhbC0xKTtcbiAgLS1idG4tYWxlcnQtdGV4dC1jb2xvci1kaXNhYmxlZDogdmFyKC0tY29sb3Itc3RhdGUtZGlzYWJsZWQpO1xuICAtLWJ0bi1hbGVydC10ZXh0LWNvbG9yLWhvdmVyOiB2YXIoLS1jb2xvci1uZXV0cmFsLTEpO1xuICAtLWJ0bi10b29sYmFyLWJnLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgLS1idG4tdG9vbGJhci1iZy1jb2xvci1ob3ZlcjogdmFyKC0tY29sb3ItbmV1dHJhbC00KTtcbiAgLS1idG4tdG9vbGJhci1iZy1jb2xvci1mb2N1czogdmFyKC0tY29sb3ItbmV1dHJhbC00KTtcbiAgLS1idG4tdG9vbGJhci1iZy1jb2xvci1zZWxlY3RlZDogdmFyKC0tY29sb3Itc3RhdGUtYWN0aXZlKTtcbiAgLS1idG4tdG9vbGJhci10ZXh0LWNvbG9yOiB2YXIoLS1jb2xvci1uZXV0cmFsLTYpO1xuICAtLWJ0bi10b29sYmFyLXRleHQtY29sb3Itc2VsZWN0ZWQ6IHZhcigtLWNvbG9yLW5ldXRyYWwtMSk7XG59XG5cbi8qIEBkZXByZWNhdGVkIHNpbmNlIFRvdGFyYSAxOS4wKi9cbkBtaXhpbiB0dWktZm9udC1ib2R5IHtcbiAgY29sb3I6IHZhcigtLWNvbG9yLXRleHQpO1xuICBAaW5jbHVkZSBmb250KGJvZHkpO1xufVxuXG4vKiBAZGVwcmVjYXRlZCBzaW5jZSBUb3RhcmEgMTkuMCovXG5AbWl4aW4gdHVpLWZvbnQtYm9keS1zbWFsbCB7XG4gIEBpbmNsdWRlIGZvbnQoYm9keS1zbSk7XG59XG5cbi8qIEBkZXByZWNhdGVkIHNpbmNlIFRvdGFyYSAxOS4wKi9cbkBtaXhpbiB0dWktZm9udC1ib2R5LXgtc21hbGwge1xuICBAaW5jbHVkZSBmb250KGJvZHktc20pO1xufVxuXG4vKiBAZGVwcmVjYXRlZCBzaW5jZSBUb3RhcmEgMTkuMCovXG5AbWl4aW4gdHVpLWZvbnQtYm9keS14eC1zbWFsbCB7XG4gIEBpbmNsdWRlIGZvbnQoYm9keS14cyk7XG59XG5cbi8qIEBkZXByZWNhdGVkIHNpbmNlIFRvdGFyYSAxOS4wKi9cbkBtaXhpbiB0dWktZm9udC1ib2R5LWRpc2FibGVkIHtcbiAgY29sb3I6IHZhcigtLWNvbG9yLXRleHQtZGlzYWJsZWQpO1xufVxuXG4vKiBAZGVwcmVjYXRlZCBzaW5jZSBUb3RhcmEgMTkuMCovXG5AbWl4aW4gdHVpLWZvbnQtYm9keS1wbGFjZWhvbGRlciB7XG4gIGNvbG9yOiB2YXIoLS1jb2xvci10ZXh0LWhpbnQpO1xufVxuXG4vKiBAZGVwcmVjYXRlZCBzaW5jZSBUb3RhcmEgMTkuMCovXG5AbWl4aW4gdHVpLWZvbnQtaGVhdnkge1xuICBmb250LXdlaWdodDogYm9sZDtcbn1cblxuLyogQGRlcHJlY2F0ZWQgc2luY2UgVG90YXJhIDE5LjAqL1xuQG1peGluIHR1aS1mb250LWhpbnQge1xuICBjb2xvcjogdmFyKC0tY29sb3ItdGV4dC1oaW50KTtcbiAgZm9udC1zdHlsZTogaXRhbGljO1xufVxuXG4vKiBAZGVwcmVjYXRlZCBzaW5jZSBUb3RhcmEgMTkuMCovXG5AbWl4aW4gdHVpLWZvbnQtbW9ub3NwYWNlIHtcbiAgZm9udC1mYW1pbHk6IHZhcigtLWZvbnQtZmFtaWx5LW1vbm9zcGFjZSk7XG59XG5cbi8qIEBkZXByZWNhdGVkIHNpbmNlIFRvdGFyYSAxOS4wKi9cbkBtaXhpbiB0dWktZm9udC1saW5rIHtcbiAgY29sb3I6IHZhcigtLWNvbG9yLXN0YXRlKTtcbiAgZm9udC1zaXplOiB2YXIoLS1mb250LWJvZHktc2l6ZSk7XG4gIGxpbmUtaGVpZ2h0OiB2YXIoLS1mb250LWJvZHktbGluZS1oZWlnaHQpO1xuICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgJjpob3ZlcixcbiAgJjpmb2N1cyB7XG4gICAgY29sb3I6IHZhcigtLWNvbG9yLXN0YXRlLWhvdmVyKTtcbiAgfVxuXG4gICY6YWN0aXZlLFxuICAmOmFjdGl2ZTpob3ZlcixcbiAgJjphY3RpdmU6Zm9jdXMge1xuICAgIGNvbG9yOiB2YXIoLS1jb2xvci1zdGF0ZS1hY3RpdmUpO1xuICB9XG59XG5cbi8qIEBkZXByZWNhdGVkIHNpbmNlIFRvdGFyYSAxOS4wKi9cbkBtaXhpbiB0dWktZm9udC1saW5rLWxhcmdlIHtcbiAgY29sb3I6IHZhcigtLWNvbG9yLXN0YXRlKTtcbiAgZm9udC1zaXplOiBmb250LXNpemUtcHgoMTYpO1xuICBsaW5lLWhlaWdodDogMS4zMztcbiAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICY6aG92ZXIsXG4gICY6Zm9jdXMge1xuICAgIGNvbG9yOiB2YXIoLS1jb2xvci1zdGF0ZS1ob3Zlcik7XG4gIH1cblxuICAmOmFjdGl2ZSxcbiAgJjphY3RpdmU6aG92ZXIsXG4gICY6YWN0aXZlOmZvY3VzIHtcbiAgICBjb2xvcjogdmFyKC0tY29sb3Itc3RhdGUtYWN0aXZlKTtcbiAgfVxufVxuXG4vKiBAZGVwcmVjYXRlZCBzaW5jZSBUb3RhcmEgMTkuMCovXG5AbWl4aW4gdHVpLWZvbnQtbGluay1zbWFsbCB7XG4gIGNvbG9yOiB2YXIoLS1jb2xvci1zdGF0ZSk7XG4gIGZvbnQtc2l6ZTogZm9udC1zaXplLXB4KDEzKTtcbiAgbGluZS1oZWlnaHQ6IDEuMzM7XG4gIGN1cnNvcjogcG9pbnRlcjtcblxuICAmOmhvdmVyLFxuICAmOmZvY3VzIHtcbiAgICBjb2xvcjogdmFyKC0tY29sb3Itc3RhdGUtaG92ZXIpO1xuICB9XG5cbiAgJjphY3RpdmUsXG4gICY6YWN0aXZlOmhvdmVyLFxuICAmOmFjdGl2ZTpmb2N1cyB7XG4gICAgY29sb3I6IHZhcigtLWNvbG9yLXN0YXRlLWFjdGl2ZSk7XG4gIH1cbn1cblxuLyogQGRlcHJlY2F0ZWQgc2luY2UgVG90YXJhIDE5LjAqL1xuQG1peGluIHR1aS1mb250LWhlYWRpbmctbGFyZ2Uge1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgZm9udC1zaXplOiB2YXIoLS1mb250LWhlYWRpbmctbGFyZ2Utc2l6ZSk7XG4gIGxpbmUtaGVpZ2h0OiB2YXIoLS1mb250LWhlYWRpbmctbGFyZ2UtbGluZS1oZWlnaHQpO1xufVxuXG4vKiBAZGVwcmVjYXRlZCBzaW5jZSBUb3RhcmEgMTkuMCovXG5AbWl4aW4gdHVpLWZvbnQtaGVhZGluZy1tZWRpdW0ge1xuICBmb250LXdlaWdodDogNTAwO1xuICBmb250LXNpemU6IHZhcigtLWZvbnQtaGVhZGluZy1zaXplKTtcbiAgbGluZS1oZWlnaHQ6IHZhcigtLWZvbnQtaGVhZGluZy1saW5lLWhlaWdodCk7XG59XG5cbi8qIEBkZXByZWNhdGVkIHNpbmNlIFRvdGFyYSAxOS4wKi9cbkBtaXhpbiB0dWktZm9udC1oZWFkaW5nLXNtYWxsIHtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIGZvbnQtc2l6ZTogdmFyKC0tZm9udC1oZWFkaW5nLXNtYWxsLXNpemUpO1xuICBsaW5lLWhlaWdodDogdmFyKC0tZm9udC1oZWFkaW5nLXNtYWxsLWxpbmUtaGVpZ2h0KTtcbn1cblxuLyogQGRlcHJlY2F0ZWQgc2luY2UgVG90YXJhIDE5LjAqL1xuQG1peGluIHR1aS1mb250LWhlYWRpbmctc21hbGwtcmVndWxhciB7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGZvbnQtc2l6ZTogdmFyKC0tZm9udC1oZWFkaW5nLXNtYWxsLXNpemUpO1xuICBsaW5lLWhlaWdodDogdmFyKC0tZm9udC1oZWFkaW5nLXNtYWxsLWxpbmUtaGVpZ2h0KTtcbn1cblxuLyogQGRlcHJlY2F0ZWQgc2luY2UgVG90YXJhIDE5LjAqL1xuQG1peGluIHR1aS1mb250LWhlYWRpbmcteC1zbWFsbCB7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBmb250LXNpemU6IHZhcigtLWZvbnQtaGVhZGluZy14LXNtYWxsLXNpemUpO1xuICBsaW5lLWhlaWdodDogdmFyKC0tZm9udC1oZWFkaW5nLXgtc21hbGwtbGluZS1oZWlnaHQpO1xufVxuXG4vKiBAZGVwcmVjYXRlZCBzaW5jZSBUb3RhcmEgMTkuMCovXG5AbWl4aW4gdHVpLWZvbnQtaGVhZGluZy1sYWJlbCB7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBmb250LXNpemU6IHZhcigtLWZvbnQtYm9keS1zaXplKTtcbiAgbGluZS1oZWlnaHQ6IHZhcigtLWZvbnQtYm9keS1saW5lLWhlaWdodCk7XG59XG5cbi8qIEBkZXByZWNhdGVkIHNpbmNlIFRvdGFyYSAxOS4wKi9cbkBtaXhpbiB0dWktZm9udC1oZWFkaW5nLWxhYmVsLXNtYWxsIHtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIGZvbnQtc2l6ZTogdmFyKC0tZm9udC1ib2R5LXNtYWxsLXNpemUpO1xuICBsaW5lLWhlaWdodDogdmFyKC0tZm9udC1ib2R5LXNtYWxsLWxpbmUtaGVpZ2h0KTtcbn1cblxuLyogQGRlcHJlY2F0ZWQgc2luY2UgVG90YXJhIDE5LjAqL1xuQG1peGluIHR1aS1mb250LWhlYWRpbmctcGFnZS10aXRsZSB7XG4gIG1hcmdpbjogMDtcbiAgQGluY2x1ZGUgdHVpLWZvbnQtaGVhZGluZy1tZWRpdW07XG59XG5cbi8qIEBkZXByZWNhdGVkIHNpbmNlIFRvdGFyYSAxOS4wKi9cbkBtaXhpbiB0dWktZm9udC1oZWFkaW5nLXBhZ2UtdGl0bGUtc21hbGwge1xuICBtYXJnaW46IDA7XG4gIEBpbmNsdWRlIHR1aS1mb250LWhlYWRpbmctc21hbGw7XG59XG5cbi8qIEBkZXByZWNhdGVkIHNpbmNlIFRvdGFyYSAxOS4wKi9cbkBtaXhpbiB0dWktd29yZGJyZWFrLS1oeXBoZW5zIHtcbiAgb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDtcbn1cblxuLyogQGRlcHJlY2F0ZWQgc2luY2UgVG90YXJhIDE5LjAqL1xuQG1peGluIHR1aS13b3JkYnJlYWstLWhhcmQge1xuICBvdmVyZmxvdy13cmFwOiBicmVhay13b3JkO1xufVxuXG4iLCIvKiEqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiEqXFxcbiAgISoqKiBjc3MgLi9jbGllbnQvdG9vbGluZy93ZWJwYWNrL2Nzc19yYXdfbG9hZGVyLmpzPz9ydWxlU2V0WzFdLnJ1bGVzWzBdLnVzZVsxXSEuL25vZGVfbW9kdWxlcy9wb3N0Y3NzLWxvYWRlci9kaXN0L2Nqcy5qcz8/cnVsZVNldFsxXS5ydWxlc1swXS51c2VbMl0hLi9jbGllbnQvY29tcG9uZW50L3R1aS9zcmMvZ2xvYmFsX3N0eWxlcy92YXJpYWJsZXMvdHVpX3NpemVzLnNjc3MgKioqIVxuICBcXCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogVGhpcyBmaWxlIGlzIHBhcnQgb2YgVG90YXJhIEVudGVycHJpc2UgRXh0ZW5zaW9ucy4qL1xuLyoqL1xuLyogQ29weXJpZ2h0IChDKSAyMDIwIG9ud2FyZHMgVG90YXJhIExlYXJuaW5nIFNvbHV0aW9ucyBMVEQqL1xuLyoqL1xuLyogVG90YXJhIEVudGVycHJpc2UgRXh0ZW5zaW9ucyBpcyBwcm92aWRlZCBvbmx5IHRvIFRvdGFyYSovXG4vKiBMZWFybmluZyBTb2x1dGlvbnMgTFREJ3MgY3VzdG9tZXJzIGFuZCBwYXJ0bmVycywgcHVyc3VhbnQgdG8qL1xuLyogdGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIG9mIGEgc2VwYXJhdGUgYWdyZWVtZW50IHdpdGggVG90YXJhKi9cbi8qIExlYXJuaW5nIFNvbHV0aW9ucyBMVEQgb3IgaXRzIGFmZmlsaWF0ZS4qL1xuLyoqL1xuLyogSWYgeW91IGRvIG5vdCBoYXZlIGFuIGFncmVlbWVudCB3aXRoIFRvdGFyYSBMZWFybmluZyBTb2x1dGlvbnMqL1xuLyogTFRELCB5b3UgbWF5IG5vdCBhY2Nlc3MsIHVzZSwgbW9kaWZ5LCBvciBkaXN0cmlidXRlIHRoaXMgc29mdHdhcmUuKi9cbi8qIFBsZWFzZSBjb250YWN0IFtsaWNlbnNpbmdAdG90YXJhbGVhcm5pbmcuY29tXSBmb3IgbW9yZSBpbmZvcm1hdGlvbi4qL1xuLyoqL1xuLyogQGF1dGhvciAgICBLZXZpbiBIb3R0aW5nZXIgPGtldmluLmhvdHRpbmdlckB0b3RhcmFsZWFybmluZy5jb20+Ki9cbi8qIEBtb2R1bGUgdHVpY2thZ2UgICB0dWkqL1xuXG5AZnVuY3Rpb24gcmVtLXB4KCR2YWwpIHtcbiAgQHJldHVybiAkdmFsIC8gMTYgKiAxcmVtO1xufVxuXG46cm9vdCB7XG4gIC0tdHVpLWNhcmQtZGVmYXVsdC13aWR0aDogI3tyZW0tcHgoMjUyKX07XG4gIC0tdHVpLWNhcmQtc20td2lkdGg6ICN7cmVtLXB4KDE4OCl9O1xufVxuXG4iLCIvKiEqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqISpcXFxuICAhKioqIGNzcyAuL2NsaWVudC90b29saW5nL3dlYnBhY2svY3NzX3Jhd19sb2FkZXIuanM/P3J1bGVTZXRbMV0ucnVsZXNbMF0udXNlWzFdIS4vbm9kZV9tb2R1bGVzL3Bvc3Rjc3MtbG9hZGVyL2Rpc3QvY2pzLmpzPz9ydWxlU2V0WzFdLnJ1bGVzWzBdLnVzZVsyXSEuL2NsaWVudC9jb21wb25lbnQvdHVpL3NyYy9nbG9iYWxfc3R5bGVzL3ZhcmlhYmxlcy90dWlfdHlwb2dyYXBoeS5zY3NzICoqKiFcbiAgXFwqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogVGhpcyBmaWxlIGlzIHBhcnQgb2YgVG90YXJhIEVudGVycHJpc2UgRXh0ZW5zaW9ucy4qL1xuLyoqL1xuLyogQ29weXJpZ2h0IChDKSAyMDIwIG9ud2FyZHMgVG90YXJhIExlYXJuaW5nIFNvbHV0aW9ucyBMVEQqL1xuLyoqL1xuLyogVG90YXJhIEVudGVycHJpc2UgRXh0ZW5zaW9ucyBpcyBwcm92aWRlZCBvbmx5IHRvIFRvdGFyYSovXG4vKiBMZWFybmluZyBTb2x1dGlvbnMgTFREJ3MgY3VzdG9tZXJzIGFuZCBwYXJ0bmVycywgcHVyc3VhbnQgdG8qL1xuLyogdGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIG9mIGEgc2VwYXJhdGUgYWdyZWVtZW50IHdpdGggVG90YXJhKi9cbi8qIExlYXJuaW5nIFNvbHV0aW9ucyBMVEQgb3IgaXRzIGFmZmlsaWF0ZS4qL1xuLyoqL1xuLyogSWYgeW91IGRvIG5vdCBoYXZlIGFuIGFncmVlbWVudCB3aXRoIFRvdGFyYSBMZWFybmluZyBTb2x1dGlvbnMqL1xuLyogTFRELCB5b3UgbWF5IG5vdCBhY2Nlc3MsIHVzZSwgbW9kaWZ5LCBvciBkaXN0cmlidXRlIHRoaXMgc29mdHdhcmUuKi9cbi8qIFBsZWFzZSBjb250YWN0IFtsaWNlbnNpbmdAdG90YXJhbGVhcm5pbmcuY29tXSBmb3IgbW9yZSBpbmZvcm1hdGlvbi4qL1xuLyoqL1xuLyogQGF1dGhvciBLZXZpbiBIb3R0aW5nZXIgPGtldmluLmhvdHRpbmdlckB0b3RhcmEuY29tPiovXG4vKiBAYXV0aG9yIFNpbW9uIENoZXN0ZXIgPHNpbW9uLmNoZXN0ZXJAdG90YXJhLmNvbT4qL1xuLyogQG1vZHVsZSB0dWkqL1xuXG4vKipcbiAqIERlZmluZSBmb250IHN0eWxlIHZhcmlhYmxlc1xuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSAkbmFtZSAtIGZvbnQgdmFyaWFudCBuYW1lIChlLmcuIGgxIG9yIGJvZHktc20pXG4gKiBAcGFyYW0ge251bWJlcn0gJHNpemUgLSBmb250IHNpemUgaW4gdW5pdGxlc3MgcmVtXG4gKiBAcGFyYW0ge251bWJlcn0gJGxpbmUtaGVpZ2h0IC0gbGluZSBoZWlnaHQgaW4gdW5pdGxlc3MgcmVtXG4gKiBAcGFyYW0ge251bWJlcn0gJHdlaWdodCAtLSBmb250IHdlaWdodFxuICogQHBhcmFtIHtudW1iZXJ9ICRmYW1pbHkgLS0gZm9udCBmYW1pbHlcbiAqL1xuQG1peGluIGRlZmluZS1mb250KCRuYW1lLCAkc2l6ZSwgJGxpbmUtaGVpZ2h0LCAkd2VpZ2h0LCAkZmFtaWx5KSB7XG4gIC0tZm9udC0jeyRuYW1lfS1zaXplOiBjYWxjKHZhcigtLWZvbnQtc2l6ZS1iYXNlKSAqICN7JHNpemV9KTtcbiAgLS1mb250LSN7JG5hbWV9LWxpbmUtaGVpZ2h0OiBjYWxjKHZhcigtLWxpbmUtaGVpZ2h0LWJhc2UpICogI3skbGluZS1oZWlnaHR9KTtcbiAgLS1mb250LSN7JG5hbWV9LXdlaWdodDogI3skd2VpZ2h0fTtcbiAgLS1mb250LSN7JG5hbWV9LWZhbWlseTogI3skZmFtaWx5fTtcbn1cblxuLyoqXG4gKiBVc2UgZm9udCBzdHlsZSB2YXJpYWJsZXNcbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gJG5hbWUgLSBmb250IHZhcmlhbnQgbmFtZSAoZS5nLiBoMSBvciBib2R5LXNtKVxuICogQHBhcmFtIHtudW1iZXJ9ICR3ZWlnaHQgLS0gZm9udCB3ZWlnaHQuIHNldCB0byBudWxsIHRvIG5vdCBhZGRcbiAqIEBwYXJhbSB7bnVtYmVyfSAkZmFtaWx5IC0tIGZvbnQgZmFtaWx5LiBzZXQgdG8gbnVsbCB0byBub3QgYWRkXG4gKi9cbkBtaXhpbiBmb250KCRuYW1lLCAkd2VpZ2h0OiBkZWZhdWx0LCAkZmFtaWx5OiBkZWZhdWx0KSB7XG4gIEBpZiAkd2VpZ2h0ID09IGRlZmF1bHQge1xuICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1mb250LSN7JG5hbWV9LXdlaWdodCk7XG4gIH0gQGVsc2Uge1xuICAgIGZvbnQtd2VpZ2h0OiAkd2VpZ2h0O1xuICB9XG4gIGZvbnQtc2l6ZTogdmFyKC0tZm9udC0jeyRuYW1lfS1zaXplKTtcbiAgQGlmICRmYW1pbHkgPT0gZGVmYXVsdCB7XG4gICAgZm9udC1mYW1pbHk6IHZhcigtLWZvbnQtI3skbmFtZX0tZmFtaWx5KTtcbiAgfSBAZWxzZSB7XG4gICAgZm9udC1mYW1pbHk6ICRmYW1pbHk7XG4gIH1cbiAgbGluZS1oZWlnaHQ6IHZhcigtLWZvbnQtI3skbmFtZX0tbGluZS1oZWlnaHQpO1xufVxuXG5AZnVuY3Rpb24gZm9udC1zaXplLXB4KCR2YWwpIHtcbiAgQHJldHVybiBjYWxjKHZhcigtLWZvbnQtc2l6ZS1iYXNlKSAvIDE2ICogI3skdmFsfSk7XG59XG5cbkBmdW5jdGlvbiBsaW5lLWhlaWdodC1weCgkdmFsKSB7XG4gIEByZXR1cm4gY2FsYyh2YXIoLS1saW5lLWhlaWdodC1iYXNlKSAvIDE2ICogI3skdmFsfSk7XG59XG5cbjpyb290IHtcbiAgLS1mb250LWZhbWlseTogLWFwcGxlLXN5c3RlbSwgQmxpbmtNYWNTeXN0ZW1Gb250LCAnU2Vnb2UgVUknLCBSb2JvdG8sXG4gICAgJ0hlbHZldGljYSBOZXVlJywgQXJpYWwsIHNhbnMtc2VyaWY7XG4gIC0tZm9udC1mYW1pbHktbW9ub3NwYWNlOiBNZW5sbywgTW9uYWNvLCBDb25zb2xhcywgJ0xpYmVyYXRpb24gTW9ubycsXG4gICAgJ0NvdXJpZXIgTmV3JywgbW9ub3NwYWNlO1xuXG4gIC0tZm9udC1zaXplLWJhc2U6IDFyZW07XG4gIC0tbGluZS1oZWlnaHQtYmFzZTogMXJlbTtcbiAgLS1pY29uLXNpemUtYmFzZTogMXJlbTtcbiAgLS1sYWJlbC13ZWlnaHQ6IDUwMTtcblxuICAvKiBCb2R5Ki9cbiAgLS1mb250LWZhbWlseS1ib2R5OiB2YXIoLS1mb250LWZhbWlseSk7XG4gIEBpbmNsdWRlIGRlZmluZS1mb250KGJvZHkteGwsIDEuMjUsIDEuNzUsIDQwMCwgdmFyKC0tZm9udC1mYW1pbHktYm9keSkpO1xuICBAaW5jbHVkZSBkZWZpbmUtZm9udChib2R5LWxnLCAxLCAxLjUsIDQwMCwgdmFyKC0tZm9udC1mYW1pbHktYm9keSkpO1xuICBAaW5jbHVkZSBkZWZpbmUtZm9udChib2R5LCAwLjg3NSwgMS4yNSwgNDAwLCB2YXIoLS1mb250LWZhbWlseS1ib2R5KSk7XG4gIEBpbmNsdWRlIGRlZmluZS1mb250KGJvZHktc20sIDAuNzUsIDEuMTI1LCA0MDAsIHZhcigtLWZvbnQtZmFtaWx5LWJvZHkpKTtcbiAgQGluY2x1ZGUgZGVmaW5lLWZvbnQoYm9keS14cywgMC42MjUsIDEsIDQwMCwgdmFyKC0tZm9udC1mYW1pbHktYm9keSkpO1xuXG4gIC8qIEhlYWRpbmdzKi9cbiAgLS1mb250LWZhbWlseS1oZWFkaW5nOiB2YXIoLS1mb250LWZhbWlseSk7XG4gIEBpbmNsdWRlIGRlZmluZS1mb250KGgxLCAyLCAyLjUsIDYwMCwgdmFyKC0tZm9udC1mYW1pbHktaGVhZGluZykpO1xuICBAaW5jbHVkZSBkZWZpbmUtZm9udChoMiwgMS41LCAyLCA2MDAsIHZhcigtLWZvbnQtZmFtaWx5LWhlYWRpbmcpKTtcbiAgQGluY2x1ZGUgZGVmaW5lLWZvbnQoaDMsIDEuMjUsIDEuNzUsIDYwMCwgdmFyKC0tZm9udC1mYW1pbHktaGVhZGluZykpO1xuICBAaW5jbHVkZSBkZWZpbmUtZm9udChoNCwgMSwgMS41LCA2MDAsIHZhcigtLWZvbnQtZmFtaWx5LWhlYWRpbmcpKTtcbiAgQGluY2x1ZGUgZGVmaW5lLWZvbnQoaDUsIDAuODc1LCAxLjI1LCA2MDAsIHZhcigtLWZvbnQtZmFtaWx5LWhlYWRpbmcpKTtcbiAgQGluY2x1ZGUgZGVmaW5lLWZvbnQoaDYsIDAuNzUsIDEsIDUwMSwgdmFyKC0tZm9udC1mYW1pbHktaGVhZGluZykpO1xuXG4gIC8qIERpc3BsYXkqL1xuICAtLWZvbnQtZmFtaWx5LWRpc3BsYXk6IHZhcigtLWZvbnQtZmFtaWx5KTtcbiAgQGluY2x1ZGUgZGVmaW5lLWZvbnQoZGlzcGxheS1sZywgMywgMy41LCA0MDAsIHZhcigtLWZvbnQtZmFtaWx5LWRpc3BsYXkpKTtcbiAgQGluY2x1ZGUgZGVmaW5lLWZvbnQoZGlzcGxheS1tZCwgMi41LCAzLCA0MDAsIHZhcigtLWZvbnQtZmFtaWx5LWRpc3BsYXkpKTtcbiAgQGluY2x1ZGUgZGVmaW5lLWZvbnQoZGlzcGxheS1zbSwgMiwgMi41LCA0MDAsIHZhcigtLWZvbnQtZmFtaWx5LWRpc3BsYXkpKTtcbiAgQGluY2x1ZGUgZGVmaW5lLWZvbnQoZGlzcGxheS14cywgMS41LCAyLCA0MDAsIHZhcigtLWZvbnQtZmFtaWx5LWRpc3BsYXkpKTtcbn1cblxuQG1peGluIHRleHQtaGludCgpIHtcbiAgY29sb3I6IHZhcigtLWNvbG9yLXRleHQtaGludCk7XG4gIGZvbnQtc3R5bGU6IGl0YWxpYztcbn1cblxuIiwiLyohKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiEqXFxcbiAgISoqKiBjc3MgLi9jbGllbnQvdG9vbGluZy93ZWJwYWNrL2Nzc19yYXdfbG9hZGVyLmpzPz9ydWxlU2V0WzFdLnJ1bGVzWzBdLnVzZVsxXSEuL25vZGVfbW9kdWxlcy9wb3N0Y3NzLWxvYWRlci9kaXN0L2Nqcy5qcz8/cnVsZVNldFsxXS5ydWxlc1swXS51c2VbMl0hLi9jbGllbnQvY29tcG9uZW50L3R1aS9zcmMvZ2xvYmFsX3N0eWxlcy92YXJpYWJsZXMvdHVpX3NwYWNpbmcuc2NzcyAqKiohXG4gIFxcKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIFRvdGFyYSBFbnRlcnByaXNlIEV4dGVuc2lvbnMuKi9cbi8qKi9cbi8qIENvcHlyaWdodCAoQykgMjAyMCBvbndhcmRzIFRvdGFyYSBMZWFybmluZyBTb2x1dGlvbnMgTFREKi9cbi8qKi9cbi8qIFRvdGFyYSBFbnRlcnByaXNlIEV4dGVuc2lvbnMgaXMgcHJvdmlkZWQgb25seSB0byBUb3RhcmEqL1xuLyogTGVhcm5pbmcgU29sdXRpb25zIExURCdzIGN1c3RvbWVycyBhbmQgcGFydG5lcnMsIHB1cnN1YW50IHRvKi9cbi8qIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZiBhIHNlcGFyYXRlIGFncmVlbWVudCB3aXRoIFRvdGFyYSovXG4vKiBMZWFybmluZyBTb2x1dGlvbnMgTFREIG9yIGl0cyBhZmZpbGlhdGUuKi9cbi8qKi9cbi8qIElmIHlvdSBkbyBub3QgaGF2ZSBhbiBhZ3JlZW1lbnQgd2l0aCBUb3RhcmEgTGVhcm5pbmcgU29sdXRpb25zKi9cbi8qIExURCwgeW91IG1heSBub3QgYWNjZXNzLCB1c2UsIG1vZGlmeSwgb3IgZGlzdHJpYnV0ZSB0aGlzIHNvZnR3YXJlLiovXG4vKiBQbGVhc2UgY29udGFjdCBbbGljZW5zaW5nQHRvdGFyYWxlYXJuaW5nLmNvbV0gZm9yIG1vcmUgaW5mb3JtYXRpb24uKi9cbi8qKi9cbi8qIEBhdXRob3IgICAgS2V2aW4gSG90dGluZ2VyIDxrZXZpbi5ob3R0aW5nZXJAdG90YXJhbGVhcm5pbmcuY29tPiovXG4vKiBAbW9kdWxlIHR1aWNrYWdlICAgdHVpKi9cblxuQGZ1bmN0aW9uIGdhcCgkdmFsKSB7XG4gIEByZXR1cm4gY2FsYyh2YXIoLS1nYXAtYmFzZSkgKiAjeyR2YWx9KTtcbn1cblxuOnJvb3Qge1xuICAvKiBDb21tb24gc3BhY2luZyB1c2VkIGZvciBtYXJnaW4gJiBwYWRkaW5nKi9cbiAgLS1nYXAtYmFzZTogMC4yNXJlbTsgLyogNHB4Ki9cbiAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAxMiB7XG4gICAgLS1nYXAtI3skaX06ICN7Z2FwKCRpKX07XG4gIH1cblxuICAvKiBDb21tb24gbmFtZWQgc2l6ZXMqL1xuICAtLWdhcC1wYWdlLWNvbHVtbnM6IHZhcigtLWdhcC04KTsgLyogZ2FwIGJldHdlZW4gcGFnZSBjb2x1bW5zKi9cbiAgLS1nYXAtY2FyZC1ncmlkOiB2YXIoLS1nYXAtNCk7IC8qIGdhcCBiZXR3ZWVuIGNhcmRzKi9cblxuICAvKiBHcmlkKi9cbiAgLyogdmFsdWVzIGZvciB0aGUgZ3V0dGVycyBiZXR3ZWVuIHdyYXBwZWQgR3JpZEl0ZW1zKi9cbiAgLS1ncmlkLWd1dHRlci12ZXJ0aWNhbDogI3tyZW0tcHgoMjApfTtcbiAgLS1ncmlkLWd1dHRlci1ob3Jpem9udGFsOiAje3JlbS1weCgyMCl9O1xuXG4gIC8qIEdsb2JhbCBkZWZhdWx0IGZvciAnaG93IG1hbnkgY29sdW1ucyBhcmUgaW4gdGhlIGdyaWQnKi9cbiAgLyogc3BlY2lmaWVkIGZvciB1c2Ugd2l0aCB0aGVtZS5nZXRWYXIoJ2dyaWQtbWF4dW5pdHMnKSBpbiBHcmlkLnZ1ZSovXG4gIC0tZ3JpZC1tYXh1bml0czogMTI7XG5cbiAgLS1wYXJhZ3JhcGgtZ2FwOiAxcmVtO1xufVxuXG4vKiBPdXRzaWRlLWluIHNwYWNpbmc6IFN0YWNrKi9cbi8qIFN0YWNrcyBwcm92aWRlIHNwYWNpbmcgYmV0d2VlbiB0aGVpciBjaGlsZHJlbi4qL1xuQG1peGluIHR1aS1zdGFjay12ZXJ0aWNhbCgkZ2FwKSB7XG4gICYgPiAqICsgKiB7XG4gICAgbWFyZ2luLXRvcDogJGdhcDtcbiAgfVxufVxuQG1peGluIHR1aS1zdGFjay1ob3Jpem9udGFsKCRnYXApIHtcbiAgJiA+ICogKyAqIHtcbiAgICBtYXJnaW4tbGVmdDogJGdhcDtcbiAgfVxufVxuXG4iLCIvKiEqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqISpcXFxuICAhKioqIGNzcyAuL2NsaWVudC90b29saW5nL3dlYnBhY2svY3NzX3Jhd19sb2FkZXIuanM/P3J1bGVTZXRbMV0ucnVsZXNbMF0udXNlWzFdIS4vbm9kZV9tb2R1bGVzL3Bvc3Rjc3MtbG9hZGVyL2Rpc3QvY2pzLmpzPz9ydWxlU2V0WzFdLnJ1bGVzWzBdLnVzZVsyXSEuL2NsaWVudC9jb21wb25lbnQvdHVpL3NyYy9nbG9iYWxfc3R5bGVzL3ZhcmlhYmxlcy90dWlfYm9yZGVycy5zY3NzICoqKiFcbiAgXFwqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogVGhpcyBmaWxlIGlzIHBhcnQgb2YgVG90YXJhIEVudGVycHJpc2UgRXh0ZW5zaW9ucy4qL1xuLyoqL1xuLyogQ29weXJpZ2h0IChDKSAyMDIwIG9ud2FyZHMgVG90YXJhIExlYXJuaW5nIFNvbHV0aW9ucyBMVEQqL1xuLyoqL1xuLyogVG90YXJhIEVudGVycHJpc2UgRXh0ZW5zaW9ucyBpcyBwcm92aWRlZCBvbmx5IHRvIFRvdGFyYSovXG4vKiBMZWFybmluZyBTb2x1dGlvbnMgTFREJ3MgY3VzdG9tZXJzIGFuZCBwYXJ0bmVycywgcHVyc3VhbnQgdG8qL1xuLyogdGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIG9mIGEgc2VwYXJhdGUgYWdyZWVtZW50IHdpdGggVG90YXJhKi9cbi8qIExlYXJuaW5nIFNvbHV0aW9ucyBMVEQgb3IgaXRzIGFmZmlsaWF0ZS4qL1xuLyoqL1xuLyogSWYgeW91IGRvIG5vdCBoYXZlIGFuIGFncmVlbWVudCB3aXRoIFRvdGFyYSBMZWFybmluZyBTb2x1dGlvbnMqL1xuLyogTFRELCB5b3UgbWF5IG5vdCBhY2Nlc3MsIHVzZSwgbW9kaWZ5LCBvciBkaXN0cmlidXRlIHRoaXMgc29mdHdhcmUuKi9cbi8qIFBsZWFzZSBjb250YWN0IFtsaWNlbnNpbmdAdG90YXJhbGVhcm5pbmcuY29tXSBmb3IgbW9yZSBpbmZvcm1hdGlvbi4qL1xuLyoqL1xuLyogQGF1dGhvciAgICBEYXZlIFdhbGxhY2UgPGRhdmUud2FsbGFjZUB0b3RhcmFsZWFybmluZy5jb20+Ki9cbi8qIEBtb2R1bGUgdHVpY2thZ2UgICB0dWkqL1xuXG46cm9vdCB7XG4gIC8qKi9cbiAgLyogVGhlbWUgYm9yZGVyIHdpZHRocyovXG4gIC8qKi9cblxuICAvKiBDb250ZW50IGFnZ3JlZ2F0aW9uIGJvcmRlcnMqL1xuICAvKiBPZnRlbiB1c2VkIGZvciBzZWN0aW9ucyBvZiBjb250ZW50IHN1Y2ggYXMgRm9ybXMsIEJsb2NrcywgdmFyaW91cyBQYW5lbHMsKi9cbiAgLyogYW5kIGhvcml6b250YWwgcnVsZXMqL1xuICAtLWJvcmRlci13aWR0aC10aGluOiAxcHg7XG4gIC0tYm9yZGVyLXdpZHRoLW5vcm1hbDogMnB4O1xuICAtLWJvcmRlci13aWR0aC10aGljazogM3B4O1xuXG4gIC8qIFN0YW5kYXJkIGJvcmRlciByYWRpdXMqL1xuICAtLWJvcmRlci1yYWRpdXMtY3VydmVkOiAxMnB4O1xuICAtLWJvcmRlci1yYWRpdXMtbm9ybWFsOiA2cHg7XG4gIC0tYm9yZGVyLXJhZGl1cy1zbWFsbDogNHB4O1xuXG4gIC0tY2FyZC1ib3JkZXItcmFkaXVzOiB2YXIoLS1ib3JkZXItcmFkaXVzLW5vcm1hbCk7XG4gIC0tZHJvcGRvd24tYm9yZGVyLXJhZGl1czogdmFyKC0tYm9yZGVyLXJhZGl1cy1ub3JtYWwpO1xuXG4gIC0tZm9jdXMtb3V0bGluZS1vZmZzZXQ6IDFweDtcbn1cblxuIiwiLyohKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiEqXFxcbiAgISoqKiBjc3MgLi9jbGllbnQvdG9vbGluZy93ZWJwYWNrL2Nzc19yYXdfbG9hZGVyLmpzPz9ydWxlU2V0WzFdLnJ1bGVzWzBdLnVzZVsxXSEuL25vZGVfbW9kdWxlcy9wb3N0Y3NzLWxvYWRlci9kaXN0L2Nqcy5qcz8/cnVsZVNldFsxXS5ydWxlc1swXS51c2VbMl0hLi9jbGllbnQvY29tcG9uZW50L3R1aS9zcmMvZ2xvYmFsX3N0eWxlcy92YXJpYWJsZXMvdHVpX2J1dHRvbnMuc2NzcyAqKiohXG4gIFxcKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIFRvdGFyYSBFbnRlcnByaXNlIEV4dGVuc2lvbnMuKi9cbi8qKi9cbi8qIENvcHlyaWdodCAoQykgMjAyMCBvbndhcmRzIFRvdGFyYSBMZWFybmluZyBTb2x1dGlvbnMgTFREKi9cbi8qKi9cbi8qIFRvdGFyYSBFbnRlcnByaXNlIEV4dGVuc2lvbnMgaXMgcHJvdmlkZWQgb25seSB0byBUb3RhcmEqL1xuLyogTGVhcm5pbmcgU29sdXRpb25zIExURCdzIGN1c3RvbWVycyBhbmQgcGFydG5lcnMsIHB1cnN1YW50IHRvKi9cbi8qIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZiBhIHNlcGFyYXRlIGFncmVlbWVudCB3aXRoIFRvdGFyYSovXG4vKiBMZWFybmluZyBTb2x1dGlvbnMgTFREIG9yIGl0cyBhZmZpbGlhdGUuKi9cbi8qKi9cbi8qIElmIHlvdSBkbyBub3QgaGF2ZSBhbiBhZ3JlZW1lbnQgd2l0aCBUb3RhcmEgTGVhcm5pbmcgU29sdXRpb25zKi9cbi8qIExURCwgeW91IG1heSBub3QgYWNjZXNzLCB1c2UsIG1vZGlmeSwgb3IgZGlzdHJpYnV0ZSB0aGlzIHNvZnR3YXJlLiovXG4vKiBQbGVhc2UgY29udGFjdCBbbGljZW5zaW5nQHRvdGFyYWxlYXJuaW5nLmNvbV0gZm9yIG1vcmUgaW5mb3JtYXRpb24uKi9cbi8qKi9cbi8qIEBhdXRob3IgS2V2aW4gSG90dGluZ2VyIDxrZXZpbi5ob3R0aW5nZXJAdG90YXJhbGVhcm5pbmcuY29tPiovXG4vKiBAbW9kdWxlIHR1aSovXG5cbjpyb290IHtcbiAgLS1idG4tc2hhZG93OiBub25lO1xuICAtLWJ0bi1zaGFkb3ctZm9jdXM6IG5vbmU7XG4gIC0tYnRuLXNoYWRvdy1ob3ZlcjogdmFyKC0tc2hhZG93LTIpO1xuICAtLWJ0bi1zaGFkb3ctYWN0aXZlOiB2YXIoLS1zaGFkb3ctMyk7XG4gIC0tYnRuLWZvbnQtc2l6ZTogdmFyKC0tZm9udC1ib2R5LXNpemUpO1xuICAtLWJ0bi1saW5lLWhlaWdodDogdmFyKC0tZm9udC1ib2R5LWxpbmUtaGVpZ2h0KTtcbiAgLS1idG4tYm9yZGVyLXdpZHRoOiAxcHg7XG4gIC0tYnRuLXBhZGRpbmctaDogdmFyKC0tZ2FwLTMpO1xuICAtLWJ0bi1wYWRkaW5nLXY6IHZhcigtLWdhcC0yKTtcbiAgLS1idG4tcmFkaXVzOiA0cHg7XG5cbiAgLyogQnV0dG9uIHNpemVzKi9cbiAgLS1idG4tc20tZm9udC1zaXplOiB2YXIoLS1mb250LWJvZHktc20tc2l6ZSk7XG4gIC0tYnRuLXNtLWxpbmUtaGVpZ2h0OiB2YXIoLS1mb250LWJvZHktc20tbGluZS1oZWlnaHQpO1xuICAtLWJ0bi1zbS1wYWRkaW5nLWg6IHZhcigtLWdhcC0yKTtcbiAgLS1idG4tc20tcGFkZGluZy12OiB2YXIoLS1nYXAtMSk7XG4gIC0tYnRuLXNtLXJhZGl1czogNHB4O1xuICAtLWJ0bi14cy1mb250LXNpemU6IHZhcigtLWZvbnQtYm9keS1zbS1zaXplKTtcbiAgLS1idG4teHMtbGluZS1oZWlnaHQ6IHZhcigtLWZvbnQtYm9keS1zbS1saW5lLWhlaWdodCk7XG4gIC0tYnRuLXhzLXBhZGRpbmctaDogdmFyKC0tZ2FwLTEpO1xuICAvKiB1bml0IGlzIHJlcXVpcmVkIGZvciBjYWxjdWxhdGlvbnMqL1xuICAvKiBzdHlsZWxpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbGVuZ3RoLXplcm8tbm8tdW5pdCAqL1xuICAtLWJ0bi14cy1wYWRkaW5nLXY6IDBweDtcbiAgLS1idG4teHMtcmFkaXVzOiA0cHg7XG59XG5cbiIsIi8qISoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiEqXFxcbiAgISoqKiBjc3MgLi9jbGllbnQvdG9vbGluZy93ZWJwYWNrL2Nzc19yYXdfbG9hZGVyLmpzPz9ydWxlU2V0WzFdLnJ1bGVzWzBdLnVzZVsxXSEuL25vZGVfbW9kdWxlcy9wb3N0Y3NzLWxvYWRlci9kaXN0L2Nqcy5qcz8/cnVsZVNldFsxXS5ydWxlc1swXS51c2VbMl0hLi9jbGllbnQvY29tcG9uZW50L3R1aS9zcmMvZ2xvYmFsX3N0eWxlcy92YXJpYWJsZXMvdHVpX2NvbG9ycy5zY3NzICoqKiFcbiAgXFwqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBUaGlzIGZpbGUgaXMgcGFydCBvZiBUb3RhcmEgRW50ZXJwcmlzZSBFeHRlbnNpb25zLiovXG4vKiovXG4vKiBDb3B5cmlnaHQgKEMpIDIwMjAgb253YXJkcyBUb3RhcmEgTGVhcm5pbmcgU29sdXRpb25zIExURCovXG4vKiovXG4vKiBUb3RhcmEgRW50ZXJwcmlzZSBFeHRlbnNpb25zIGlzIHByb3ZpZGVkIG9ubHkgdG8gVG90YXJhKi9cbi8qIExlYXJuaW5nIFNvbHV0aW9ucyBMVEQncyBjdXN0b21lcnMgYW5kIHBhcnRuZXJzLCBwdXJzdWFudCB0byovXG4vKiB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgb2YgYSBzZXBhcmF0ZSBhZ3JlZW1lbnQgd2l0aCBUb3RhcmEqL1xuLyogTGVhcm5pbmcgU29sdXRpb25zIExURCBvciBpdHMgYWZmaWxpYXRlLiovXG4vKiovXG4vKiBJZiB5b3UgZG8gbm90IGhhdmUgYW4gYWdyZWVtZW50IHdpdGggVG90YXJhIExlYXJuaW5nIFNvbHV0aW9ucyovXG4vKiBMVEQsIHlvdSBtYXkgbm90IGFjY2VzcywgdXNlLCBtb2RpZnksIG9yIGRpc3RyaWJ1dGUgdGhpcyBzb2Z0d2FyZS4qL1xuLyogUGxlYXNlIGNvbnRhY3QgW2xpY2Vuc2luZ0B0b3RhcmFsZWFybmluZy5jb21dIGZvciBtb3JlIGluZm9ybWF0aW9uLiovXG4vKiovXG4vKiBAYXV0aG9yICAgIEtldmluIEhvdHRpbmdlciA8a2V2aW4uaG90dGluZ2VyQHRvdGFyYWxlYXJuaW5nLmNvbT4qL1xuLyogQG1vZHVsZSB0dWlja2FnZSAgIHR1aSovXG5cbjpyb290IHtcbiAgLyoqL1xuICAvKiBUaGVtZSBjb2xvdXJzKi9cbiAgLyoqL1xuXG4gIC8qIFByaW1hcnkgY29sb3VyKi9cbiAgLyogT2Z0ZW4gdXNlZCBmb3IgZGVmYXVsdCBpbWFnZSwgYmFja2dyb3VuZHMsIGxpbmUgc2VwYXJhdG9ycyAmIHZpc3VhbCBpbmRpY2F0b3JzKi9cbiAgLS1jb2xvci1wcmltYXJ5OiAjM2E0NWFjO1xuXG4gIC8qIFNlY29uZGFyeSBjb2xvdXIqL1xuICAvKiBPZnRlbiB1c2VkIGZvciB2aXN1YWwgY29tcG9uZW50cyBzdWNoIGFzIHByb2dyZXNzIGJhcnMgJiBjaGFydHMqL1xuICAtLWNvbG9yLXNlY29uZGFyeTogIzAwN2FiODtcblxuICAvKiBUZXJ0aWFyeSBjb2xvdXIqL1xuICAvKiBPZnRlbiB1c2VkIGZvciB2aXN1YWwgY29tcG9uZW50cywgbXVzdCBoYXZlIGhpZ2ggY29udHJhc3QgdG8gYmFja2dyb3VuZCovXG4gIC0tY29sb3ItdGVydGlhcnk6ICMxZWE0YTk7XG5cbiAgLyoqL1xuICAvKiBJbnRlcmFjdGl2ZSBzdGF0ZSBjb2xvdXJzKi9cbiAgLyoqL1xuXG4gIC8qIERlZmF1bHQgc3RhdGUgY29sb3VyLCBzaG93cyBhbiBlbGVtZW50IGlzIGludGVyYWN0aXZlKi9cbiAgLS1jb2xvci1zdGF0ZTogIzM5ODJhYztcblxuICAvKiBIb3ZlciBzdGF0ZSBjb2xvdXIsIHNob3duIHdoZW4gY3Vyc29yIGlzIG92ZXIgaW50ZXJhY3RpdmUgZWxlbWVudCovXG4gIC0tY29sb3Itc3RhdGUtaG92ZXI6ICMyNjU3NzM7XG4gIC8qIEZvY3VzIHN0YXRlIGNvbG91ciwgc2hvd24gd2hlbiBlbGVtZW50IGhhcyBmb2N1cyAoa2V5Ym9hcmQgdGFiYmluZykqL1xuICAtLWNvbG9yLXN0YXRlLWZvY3VzOiAjMjY1NzczO1xuICAvKiBBY3RpdmUgc3RhdGUgY29sb3VyLCBzaG93biB3aGVuIGVsZW1lbnQgaXMgYWN0aXZlIChjbGlja2VkKSovXG4gIC0tY29sb3Itc3RhdGUtYWN0aXZlOiAjMTkzYTRjO1xuICAvKiBIaWdobGlnaHQsIHZpc3VhbCBjbHVlIGZvciB0aGluZ3MgdGhhdCBuZWVkIHRvIGJlIGhpZ2hsaWdodGVkIG1vcmUqL1xuICAvKiBwcm9taW5lbnRseSB0aGFuIGhpZ2hsaWdodC1uZXV0cmFsLiovXG4gIC0tY29sb3Itc3RhdGUtaGlnaGxpZ2h0OiAjZjZmOWQ3O1xuICAvKiBOZXV0cmFsIGhpZ2hsaWdodCwgdmlzdWFsIGNsdWUgZm9yIGhvdmVyL2ZvY3VzIG9uIGNvbXBvbmVudHMgc3VjaCBhcyBhIGxpc3Qgcm93Ki9cbiAgLS1jb2xvci1zdGF0ZS1oaWdobGlnaHQtbmV1dHJhbDogdmFyKC0tY29sb3ItbmV1dHJhbC0zKTtcbiAgLyogRGlzYWJsZWQgY29sb3VyIG9mIGludGVyYWN0aXZlIGVsZW1lbnRzKi9cbiAgLS1jb2xvci1zdGF0ZS1kaXNhYmxlZDogdmFyKC0tY29sb3ItbmV1dHJhbC01KTtcblxuICAvKiovXG4gIC8qIFZpc3VhbCBwcm9tcHQgY29sb3VycyovXG4gIC8qKi9cblxuICAvKiBVc2VkIHRvIGluZGljYXRlIGFuIGluZm9ybWF0aW9uYWwgbWVzc2FnZSovXG4gIC0tY29sb3ItcHJvbXB0LWluZm86ICMwMDdhYjg7XG4gIC0tY29sb3ItcHJvbXB0LWluZm8tYmc6ICNkYWYzZmU7XG4gIC8qIFVzZWQgdG8gaW5kaWNhdGUgYW4gaW1wb3J0YW50IG1lc3NhZ2UgKGVycm9yLCBkYW5nZXIpKi9cbiAgLS1jb2xvci1wcm9tcHQtYWxlcnQ6ICNjYzI0Mjg7XG4gIC0tY29sb3ItcHJvbXB0LWFsZXJ0LWJnOiAjZmVlNmU2O1xuICAvKiBVc2VkIHRvIGluZGljYXRlIGEgd2FybmluZyBtZXNzYWdlKi9cbiAgLS1jb2xvci1wcm9tcHQtd2FybmluZzogI2IyNjExZjtcbiAgLS1jb2xvci1wcm9tcHQtd2FybmluZy1iZzogI2YxZTJkNztcbiAgLyogVXNlZCB0byBpbmRpY2F0ZSBhIHN1Y2Nlc3MgbWVzc2FnZSovXG4gIC0tY29sb3ItcHJvbXB0LXN1Y2Nlc3M6ICM0YjdlMmI7XG4gIC0tY29sb3ItcHJvbXB0LXN1Y2Nlc3MtYmc6ICNkOGVhY2Q7XG5cbiAgLyoqL1xuICAvKiBOZXV0cmFsIGNvbG91ciByYW5nZXMqL1xuICAvKiovXG5cbiAgLyogT2Z0ZW4gdXNlZCBmb3IgbmF2aWdhdGlvbiBiYXIsIGJhY2tncm91bmRzICYgZm9vdGVyKi9cbiAgLS1jb2xvci1uZXV0cmFsLTE6ICNmZmY7XG4gIC8qIE9mdGVuIHVzZWQgZm9yIGNvbnRlbnQgYmFja2dyb3VuZCovXG4gIC0tY29sb3ItbmV1dHJhbC0yOiAjZmFmYWZhO1xuICAvKiBPZnRlbiB1c2VkIGZvciBzaWRlIHBhbmVsIGJhY2tncm91bmQgJiBkaXNhYmxlZCBidXR0b25zKi9cbiAgLS1jb2xvci1uZXV0cmFsLTM6ICNmN2Y3Zjc7XG4gIC8qIE9mdGVuIHVzZWQgZm9yIHByb2dyZXNzIGJhciBiYWNrZ3JvdW5kKi9cbiAgLS1jb2xvci1uZXV0cmFsLTQ6ICNlNmU0ZTQ7XG4gIC8qIE9mdGVuIHVzZWQgZm9yIGNhcmQgY29tcG9uZW50IGJvcmRlcnMsIGxpbmUgc2VwYXJhdG9ycyAmIGRpc2FibGVkIGJ1dHRvbiovXG4gIC0tY29sb3ItbmV1dHJhbC01OiAjYzdjN2M3O1xuICAvKiBPZnRlbiB1c2VkIGZvciBpY29ucyBhbmQgZm9ybSBjb21wb25lbnQgYm9yZGVycyovXG4gIC0tY29sb3ItbmV1dHJhbC02OiAjNzY3Njc2O1xuICAvKiBPZnRlbiB1c2VkIGZvciBoZWFkZXJzIGFuZCBib2R5IHRleHQqL1xuICAtLWNvbG9yLW5ldXRyYWwtNzogIzI2MjYyNjtcblxuICAvKiovXG4gIC8qIENoYXJ0IGNvbG9ycyovXG4gIC8qKi9cbiAgLS1jb2xvci1jaGFydC1iYWNrZ3JvdW5kLTE6ICMwMDdhYjg7XG4gIC0tY29sb3ItY2hhcnQtdHJhbnNwYXJlbnQtMTogI3tyZ2JhKCMwMDdhYjgsIDAuMzgpfTtcbiAgLS1jb2xvci1jaGFydC1iYWNrZ3JvdW5kLTI6ICNkYTdjMmY7XG4gIC0tY29sb3ItY2hhcnQtdHJhbnNwYXJlbnQtMjogI3tyZ2JhKCNkYTdjMmYsIDAuMzgpfTtcbiAgLS1jb2xvci1jaGFydC1iYWNrZ3JvdW5kLTM6ICNiZjZjNzg7XG4gIC0tY29sb3ItY2hhcnQtdHJhbnNwYXJlbnQtMzogI3tyZ2JhKCNiZjZjNzgsIDAuMzgpfTtcbiAgLS1jb2xvci1jaGFydC1iYWNrZ3JvdW5kLTQ6ICNkYWM3MjU7XG4gIC0tY29sb3ItY2hhcnQtdHJhbnNwYXJlbnQtNDogI3tyZ2JhKCNkYWM3MjUsIDAuMzgpfTtcbiAgLS1jb2xvci1jaGFydC1iYWNrZ3JvdW5kLTU6ICM1ZDVkNWQ7XG4gIC0tY29sb3ItY2hhcnQtdHJhbnNwYXJlbnQtNTogI3tyZ2JhKCM1ZDVkNWQsIDAuMzgpfTtcbiAgLS1jb2xvci1jaGFydC1iYWNrZ3JvdW5kLTY6ICM5OGFhZGE7XG4gIC0tY29sb3ItY2hhcnQtdHJhbnNwYXJlbnQtNjogI3tyZ2JhKCM5OGFhZGEsIDAuMzgpfTtcbiAgLS1jb2xvci1jaGFydC1iYWNrZ3JvdW5kLTc6ICMyM2MxYTA7XG4gIC0tY29sb3ItY2hhcnQtdHJhbnNwYXJlbnQtNzogI3tyZ2JhKCMyM2MxYTAsIDAuMzgpfTtcblxuICAvKiovXG4gIC8qIENvbnRlbnQgY29sb3VycyovXG4gIC8qKi9cbiAgLS1jb2xvci1iYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci1uZXV0cmFsLTEpO1xuICAtLWNvbG9yLWJvcmRlcjogdmFyKC0tY29sb3ItbmV1dHJhbC01KTtcbiAgLS1jb2xvci10ZXh0OiB2YXIoLS1jb2xvci1uZXV0cmFsLTcpO1xuICAtLWNvbG9yLXRleHQtZGlzYWJsZWQ6IHZhcigtLWNvbG9yLW5ldXRyYWwtNSk7XG4gIC0tY29sb3ItdGV4dC1oaW50OiB2YXIoLS1jb2xvci1uZXV0cmFsLTYpO1xuICAtLWxpbmstY29sb3I6IHZhcigtLWNvbG9yLXN0YXRlKTtcbiAgLS1saW5rLWNvbG9yLWhvdmVyOiB2YXIoLS1jb2xvci1zdGF0ZS1ob3Zlcik7XG5cbiAgLyogQmFja2Ryb3BzKi9cbiAgLS1jb2xvci1iYWNrZHJvcC1zdGFuZGFyZDogcmdiYSgwLCAwLCAwLCAwLjQpO1xuICAtLWNvbG9yLWJhY2tkcm9wLWhlYXZ5OiByZ2JhKDAsIDAsIDAsIDAuOCk7XG4gIC0tY29sb3ItYmFja2Ryb3AtY29udHJhc3Q6IHZhcigtLWNvbG9yLW5ldXRyYWwtMSk7XG5cbiAgLyoqL1xuICAvKiBIZWFkZXIgY29sb3JzKi9cbiAgLyoqL1xuICAtLW5hdi1iZy1jb2xvcjogI2ZmZjtcbiAgLS1uYXYtdGV4dC1jb2xvcjogdmFyKC0tY29sb3ItdGV4dCk7XG59XG5cbi8qIEFycm93cyovXG5AaW1wb3J0ICd0dWkvdmFyaWFibGVzL2NvbG9ycy9hcnJvdyc7XG4vKiBGb3JtcyovXG5AaW1wb3J0ICd0dWkvdmFyaWFibGVzL2NvbG9ycy9mb3Jtcyc7XG4vKiBBdmF0YXIqL1xuQGltcG9ydCAndHVpL3ZhcmlhYmxlcy9jb2xvcnMvYXZhdGFyJztcbi8qIERyb3AgZG93biovXG5AaW1wb3J0ICd0dWkvdmFyaWFibGVzL2NvbG9ycy9kcm9wZG93bic7XG4vKiBEYXRhIHRhYmxlKi9cbkBpbXBvcnQgJ3R1aS92YXJpYWJsZXMvY29sb3JzL2RhdGF0YWJsZSc7XG4vKiBUYWJzKi9cbkBpbXBvcnQgJ3R1aS92YXJpYWJsZXMvY29sb3JzL3RhYnMnO1xuLyogQ2FyZCovXG5AaW1wb3J0ICd0dWkvdmFyaWFibGVzL2NvbG9ycy9jYXJkJztcbi8qIENoYXJ0cyovXG5AaW1wb3J0ICd0dWkvdmFyaWFibGVzL2NvbG9ycy9jaGFydHMnO1xuLyogRmlsdGVycyovXG5AaW1wb3J0ICd0dWkvdmFyaWFibGVzL2NvbG9ycy9maWx0ZXJzJztcbi8qIFRhZ3MqL1xuQGltcG9ydCAndHVpL3ZhcmlhYmxlcy9jb2xvcnMvdGFncyc7XG4vKiBUYWdzKi9cbkBpbXBvcnQgJ3R1aS92YXJpYWJsZXMvY29sb3JzL3Byb2dyZXNzYmFyJztcbi8qIGNvbGxhcHNpYmxlKi9cbkBpbXBvcnQgJ3R1aS92YXJpYWJsZXMvY29sb3JzL2NvbGxhcHNpYmxlJztcbi8qIHByb2dyZXNzIHRyYWNrZXIqL1xuQGltcG9ydCAndHVpL3ZhcmlhYmxlcy9jb2xvcnMvcHJvZ3Jlc3N0cmFja2VyJztcbi8qIFNpZGUgcGFuZWwgbmF2aWdhdGlvbiovXG5AaW1wb3J0ICd0dWkvdmFyaWFibGVzL2NvbG9ycy9zaWRlX3BhbmVsX25hdic7XG4vKiBUb2dnbGUgYnV0dG9ucyovXG5AaW1wb3J0ICd0dWkvdmFyaWFibGVzL2NvbG9ycy90b2dnbGUnO1xuLyogTm90aWZpY2F0aW9uIHRvYXN0Ki9cbkBpbXBvcnQgJ3R1aS92YXJpYWJsZXMvY29sb3JzL25vdGlmaWNhdGlvbnRvYXN0JztcblxuIiwiLyohKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiohKlxcXG4gICEqKiogY3NzIC4vY2xpZW50L3Rvb2xpbmcvd2VicGFjay9jc3NfcmF3X2xvYWRlci5qcz8/cnVsZVNldFsxXS5ydWxlc1swXS51c2VbMV0hLi9ub2RlX21vZHVsZXMvcG9zdGNzcy1sb2FkZXIvZGlzdC9janMuanM/P3J1bGVTZXRbMV0ucnVsZXNbMF0udXNlWzJdIS4vY2xpZW50L2NvbXBvbmVudC90dWkvc3JjL2dsb2JhbF9zdHlsZXMvdmFyaWFibGVzL2NvbG9ycy9hcnJvdy5zY3NzICoqKiFcbiAgXFwqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIFRvdGFyYSBFbnRlcnByaXNlIEV4dGVuc2lvbnMuKi9cbi8qKi9cbi8qIENvcHlyaWdodCAoQykgMjAyMCBvbndhcmRzIFRvdGFyYSBMZWFybmluZyBTb2x1dGlvbnMgTFREKi9cbi8qKi9cbi8qIFRvdGFyYSBFbnRlcnByaXNlIEV4dGVuc2lvbnMgaXMgcHJvdmlkZWQgb25seSB0byBUb3RhcmEqL1xuLyogTGVhcm5pbmcgU29sdXRpb25zIExURCdzIGN1c3RvbWVycyBhbmQgcGFydG5lcnMsIHB1cnN1YW50IHRvKi9cbi8qIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZiBhIHNlcGFyYXRlIGFncmVlbWVudCB3aXRoIFRvdGFyYSovXG4vKiBMZWFybmluZyBTb2x1dGlvbnMgTFREIG9yIGl0cyBhZmZpbGlhdGUuKi9cbi8qKi9cbi8qIElmIHlvdSBkbyBub3QgaGF2ZSBhbiBhZ3JlZW1lbnQgd2l0aCBUb3RhcmEgTGVhcm5pbmcgU29sdXRpb25zKi9cbi8qIExURCwgeW91IG1heSBub3QgYWNjZXNzLCB1c2UsIG1vZGlmeSwgb3IgZGlzdHJpYnV0ZSB0aGlzIHNvZnR3YXJlLiovXG4vKiBQbGVhc2UgY29udGFjdCBbbGljZW5zaW5nQHRvdGFyYWxlYXJuaW5nLmNvbV0gZm9yIG1vcmUgaW5mb3JtYXRpb24uKi9cbi8qKi9cbi8qIEBhdXRob3IgICAgS2V2aW4gSG90dGluZ2VyIDxrZXZpbi5ob3R0aW5nZXJAdG90YXJhbGVhcm5pbmcuY29tPiovXG4vKiBAbW9kdWxlIHR1aWNrYWdlICAgdHVpKi9cblxuOnJvb3Qge1xuICAvKiBDU1MgYXJyb3dzKi9cbiAgLS1hcnJvdy1iZy1jb2xvcjogdmFyKC0tY29sb3ItYmFja2dyb3VuZCk7XG4gIC0tYXJyb3ctYm9yZGVyLWNvbG9yOiB2YXIoLS1jb2xvci1uZXV0cmFsLTUpO1xuICAtLWFycm93LWJnLWludmVyc2UtY29sb3I6IHZhcigtLWNvbG9yLW5ldXRyYWwtNyk7XG59XG5cbiIsIi8qISoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqISpcXFxuICAhKioqIGNzcyAuL2NsaWVudC90b29saW5nL3dlYnBhY2svY3NzX3Jhd19sb2FkZXIuanM/P3J1bGVTZXRbMV0ucnVsZXNbMF0udXNlWzFdIS4vbm9kZV9tb2R1bGVzL3Bvc3Rjc3MtbG9hZGVyL2Rpc3QvY2pzLmpzPz9ydWxlU2V0WzFdLnJ1bGVzWzBdLnVzZVsyXSEuL2NsaWVudC9jb21wb25lbnQvdHVpL3NyYy9nbG9iYWxfc3R5bGVzL3ZhcmlhYmxlcy9jb2xvcnMvZm9ybXMuc2NzcyAqKiohXG4gIFxcKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBUaGlzIGZpbGUgaXMgcGFydCBvZiBUb3RhcmEgRW50ZXJwcmlzZSBFeHRlbnNpb25zLiovXG4vKiovXG4vKiBDb3B5cmlnaHQgKEMpIDIwMjAgb253YXJkcyBUb3RhcmEgTGVhcm5pbmcgU29sdXRpb25zIExURCovXG4vKiovXG4vKiBUb3RhcmEgRW50ZXJwcmlzZSBFeHRlbnNpb25zIGlzIHByb3ZpZGVkIG9ubHkgdG8gVG90YXJhKi9cbi8qIExlYXJuaW5nIFNvbHV0aW9ucyBMVEQncyBjdXN0b21lcnMgYW5kIHBhcnRuZXJzLCBwdXJzdWFudCB0byovXG4vKiB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgb2YgYSBzZXBhcmF0ZSBhZ3JlZW1lbnQgd2l0aCBUb3RhcmEqL1xuLyogTGVhcm5pbmcgU29sdXRpb25zIExURCBvciBpdHMgYWZmaWxpYXRlLiovXG4vKiovXG4vKiBJZiB5b3UgZG8gbm90IGhhdmUgYW4gYWdyZWVtZW50IHdpdGggVG90YXJhIExlYXJuaW5nIFNvbHV0aW9ucyovXG4vKiBMVEQsIHlvdSBtYXkgbm90IGFjY2VzcywgdXNlLCBtb2RpZnksIG9yIGRpc3RyaWJ1dGUgdGhpcyBzb2Z0d2FyZS4qL1xuLyogUGxlYXNlIGNvbnRhY3QgW2xpY2Vuc2luZ0B0b3RhcmFsZWFybmluZy5jb21dIGZvciBtb3JlIGluZm9ybWF0aW9uLiovXG4vKiovXG4vKiBAYXV0aG9yIEtldmluIEhvdHRpbmdlciA8a2V2aW4uaG90dGluZ2VyQHRvdGFyYWxlYXJuaW5nLmNvbT4qL1xuLyogQG1vZHVsZSB0dWkqL1xuXG46cm9vdCB7XG4gIC8qKi9cbiAgLyogRm9ybSBjb2xvdXJzKi9cbiAgLyoqL1xuXG4gIC8qIEZvcm0gcmFkaW8gY29sb3VycyovXG4gIC0tZm9ybS1yYWRpby1kb3QtY29sb3I6IHZhcigtLWNvbG9yLXN0YXRlKTtcbiAgLS1mb3JtLXJhZGlvLWJnLWNvbG9yOiB2YXIoLS1jb2xvci1uZXV0cmFsLTEpO1xuICAtLWZvcm0tcmFkaW8tYmctY29sb3ItZGlzYWJsZWQ6IHZhcigtLWNvbG9yLW5ldXRyYWwtMyk7XG4gIC0tZm9ybS1yYWRpby1iZy1jb2xvci1mb2N1czogdmFyKC0tY29sb3Itc3RhdGUtaGlnaGxpZ2h0LW5ldXRyYWwpO1xuICAtLWZvcm0tcmFkaW8tYmctY29sb3ItaG92ZXI6IHZhcigtLWNvbG9yLW5ldXRyYWwtMSk7XG4gIC0tZm9ybS1yYWRpby1iZy1jb2xvci1hY3RpdmU6IHZhcigtLWNvbG9yLW5ldXRyYWwtMSk7XG4gIC0tZm9ybS1yYWRpby1ib3JkZXItY29sb3I6IHZhcigtLWNvbG9yLW5ldXRyYWwtNik7XG4gIC0tZm9ybS1yYWRpby1ib3JkZXItY29sb3ItZGlzYWJsZWQ6IHZhcigtLWNvbG9yLXN0YXRlLWRpc2FibGVkKTtcbiAgLS1mb3JtLXJhZGlvLWJvcmRlci1jb2xvci1mb2N1czogdmFyKC0tY29sb3Itc3RhdGUtZm9jdXMpO1xuICAtLWZvcm0tcmFkaW8tYm9yZGVyLWNvbG9yLWFjdGl2ZTogdmFyKC0tY29sb3Itc3RhdGUtZm9jdXMpO1xuXG4gIC8qIEZvcm0gY2hlY2tib3ggY29sb3VycyovXG4gIC0tZm9ybS1jaGVja2JveC1jaGVjay1jb2xvcjogdmFyKC0tY29sb3ItbmV1dHJhbC0xKTtcbiAgLS1mb3JtLWNoZWNrYm94LWNoZWNrLWNvbG9yLWRpc2FibGVkOiB2YXIoLS1jb2xvci1uZXV0cmFsLTUpO1xuICAtLWZvcm0tY2hlY2tib3gtYmctY29sb3I6IHZhcigtLWNvbG9yLW5ldXRyYWwtMSk7XG4gIC0tZm9ybS1jaGVja2JveC1iZy1jb2xvci1kaXNhYmxlZDogdmFyKC0tY29sb3ItbmV1dHJhbC0zKTtcbiAgLS1mb3JtLWNoZWNrYm94LWJnLWNvbG9yLWFjdGl2ZTogdmFyKC0tY29sb3Itc3RhdGUpO1xuICAtLWZvcm0tY2hlY2tib3gtYm9yZGVyLWNvbG9yOiB2YXIoLS1jb2xvci1uZXV0cmFsLTYpO1xuICAtLWZvcm0tY2hlY2tib3gtYm9yZGVyLWNvbG9yLWRpc2FibGVkOiB2YXIoLS1jb2xvci1zdGF0ZS1kaXNhYmxlZCk7XG4gIC0tZm9ybS1jaGVja2JveC1ib3JkZXItY29sb3ItZm9jdXM6IHZhcigtLWNvbG9yLXN0YXRlLWZvY3VzKTtcbiAgLS1mb3JtLWNoZWNrYm94LWJvcmRlci1jb2xvci1hY3RpdmU6IHZhcigtLWNvbG9yLXN0YXRlLWZvY3VzKTtcbiAgLS1mb3JtLWNoZWNrYm94LWJvcmRlci1jb2xvci1pbnZhbGlkOiB2YXIoLS1jb2xvci1wcm9tcHQtYWxlcnQpO1xuXG4gIC8qIFRleHQgY29sb3VyIChsYWJlbHMpKi9cbiAgLS1mb3JtLXRleHQtY29sb3I6IHZhcigtLWNvbG9yLW5ldXRyYWwtNyk7XG5cbiAgLyogQmFja2dyb3VuZCBvZiBmb3JtIGVsZW1lbnRzKi9cbiAgLS1mb3JtLWlucHV0LWJnLWNvbG9yOiB2YXIoLS1jb2xvci1uZXV0cmFsLTEpO1xuICAtLWZvcm0taW5wdXQtYmctY29sb3ItZGlzYWJsZWQ6IHZhcigtLWNvbG9yLW5ldXRyYWwtMyk7XG4gIC0tZm9ybS1pbnB1dC1iZy1jb2xvci1mb2N1czogdmFyKC0tZm9ybS1pbnB1dC1iZy1jb2xvcik7XG4gIC0tZm9ybS1pbnB1dC1iZy1jb2xvci1pbnZhbGlkLWZvY3VzOiB2YXIoLS1mb3JtLWlucHV0LWJnLWNvbG9yKTtcblxuICAvKiBCb3JkZXIgb2YgZm9ybSBlbGVtZW50cyovXG4gIC0tZm9ybS1pbnB1dC1ib3JkZXItY29sb3I6IHZhcigtLWNvbG9yLW5ldXRyYWwtNik7XG4gIC0tZm9ybS1pbnB1dC1ib3JkZXItY29sb3ItZGlzYWJsZWQ6IHZhcigtLWNvbG9yLW5ldXRyYWwtNCk7XG4gIC0tZm9ybS1pbnB1dC1ib3JkZXItY29sb3ItZm9jdXM6IHZhcigtLWNvbG9yLXN0YXRlKTtcbiAgLS1mb3JtLWlucHV0LWJvcmRlci1jb2xvci1pbnZhbGlkOiB2YXIoLS1jb2xvci1wcm9tcHQtYWxlcnQpO1xuICAvKiBUZXh0IGNvbG91ciBvZiBmb3JtIGVsZW1lbnRzKi9cbiAgLS1mb3JtLWlucHV0LXRleHQtY29sb3I6IHZhcigtLWNvbG9yLW5ldXRyYWwtNyk7XG4gIC0tZm9ybS1pbnB1dC10ZXh0LWNvbG9yLWRpc2FibGVkOiB2YXIoLS1jb2xvci1zdGF0ZS1kaXNhYmxlZCk7XG4gIC0tZm9ybS1pbnB1dC10ZXh0LXBsYWNlaG9sZGVyLWNvbG9yOiB2YXIoLS1jb2xvci1uZXV0cmFsLTYpO1xuICAvKiBUZXh0IGNvbG91ciBvZiBmb3JtIGZpZWxkIGRlZmF1bHRzIGFuZCBkZXRhaWxzKi9cbiAgLS1mb3JtLWRldGFpbHMtdGV4dC1jb2xvcjogdmFyKC0tY29sb3ItbmV1dHJhbC03KTtcbiAgLS1mb3JtLWRlZmF1bHRzLXRleHQtY29sb3I6IHZhcigtLWNvbG9yLW5ldXRyYWwtNyk7XG5cbiAgLyogQnV0dG9uKi9cbiAgLS1idG4tYmctY29sb3I6IHZhcigtLWNvbG9yLW5ldXRyYWwtMSk7XG4gIC0tYnRuLWJnLWNvbG9yLWRpc2FibGVkOiB2YXIoLS1jb2xvci1uZXV0cmFsLTMpO1xuICAtLWJ0bi1hY2NlbnQtY29sb3I6IHZhcigtLWNvbG9yLXN0YXRlKTtcbiAgLS1idG4tYWNjZW50LWNvbG9yLWNvbnRyYXN0OiB2YXIoLS1jb2xvci1uZXV0cmFsLTEpO1xuICAtLWJ0bi1hY2NlbnQtY29sb3ItYWN0aXZlOiB2YXIoLS1jb2xvci1zdGF0ZS1hY3RpdmUpO1xuICAtLWJ0bi1hY2NlbnQtY29sb3ItaG92ZXI6IHZhcigtLWNvbG9yLXN0YXRlLWhvdmVyKTtcbiAgLS1idG4tYWNjZW50LWNvbG9yLWRpc2FibGVkOiB2YXIoLS1jb2xvci1zdGF0ZS1kaXNhYmxlZCk7XG4gIC0tYnRuLWRhbmdlci1jb2xvcjogdmFyKC0tY29sb3ItcHJvbXB0LWFsZXJ0KTtcbiAgLS1idG4tZGFuZ2VyLWNvbG9yLWNvbnRyYXN0OiB2YXIoLS1jb2xvci1uZXV0cmFsLTEpO1xuICAtLWJ0bi10ZXh0LWNvbG9yOiB2YXIoLS1idG4tYWNjZW50LWNvbG9yKTtcblxuICAvKiBDaGVja2JveCBidG4gYmFja2dyb3VuZCAmIHRleHQqL1xuICAtLWJ0bi1jaGVja2JveC1iZy1jb2xvci1zZWxlY3RlZDogdmFyKC0tY29sb3ItbmV1dHJhbC0zKTtcbiAgLS1idG4tY2hlY2tib3gtYmctY29sb3ItaG92ZXI6IHZhcigtLWNvbG9yLXN0YXRlLWhpZ2hsaWdodC1uZXV0cmFsKTtcbiAgLS1idG4tY2hlY2tib3gtdGV4dC1jb2xvcjogdmFyKC0tY29sb3Itc3RhdGUpO1xuICAtLWJ0bi1jaGVja2JveC10ZXh0LWNvbG9yLWFjdGl2ZTogdmFyKC0tY29sb3Itc3RhdGUtYWN0aXZlKTtcbiAgLS1idG4tY2hlY2tib3gtdGV4dC1jb2xvci1mb2N1czogdmFyKC0tY29sb3Itc3RhdGUtZm9jdXMpO1xuICAtLWJ0bi1jaGVja2JveC10ZXh0LWNvbG9yLXNlbGVjdGVkOiB2YXIoLS1jb2xvci1uZXV0cmFsLTcpO1xuXG4gIC8qIEZvcm0gZXJyb3JzKi9cbiAgLS1mb3JtLWVycm9yLWJnLWNvbG9yOiB2YXIoLS1jb2xvci1wcm9tcHQtYWxlcnQtYmcpO1xuICAtLWZvcm0tZXJyb3ItdGV4dC1jb2xvcjogdmFyKC0tY29sb3ItcHJvbXB0LWFsZXJ0KTtcbn1cblxuIiwiLyohKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqISpcXFxuICAhKioqIGNzcyAuL2NsaWVudC90b29saW5nL3dlYnBhY2svY3NzX3Jhd19sb2FkZXIuanM/P3J1bGVTZXRbMV0ucnVsZXNbMF0udXNlWzFdIS4vbm9kZV9tb2R1bGVzL3Bvc3Rjc3MtbG9hZGVyL2Rpc3QvY2pzLmpzPz9ydWxlU2V0WzFdLnJ1bGVzWzBdLnVzZVsyXSEuL2NsaWVudC9jb21wb25lbnQvdHVpL3NyYy9nbG9iYWxfc3R5bGVzL3ZhcmlhYmxlcy9jb2xvcnMvYXZhdGFyLnNjc3MgKioqIVxuICBcXCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIFRvdGFyYSBFbnRlcnByaXNlIEV4dGVuc2lvbnMuKi9cbi8qKi9cbi8qIENvcHlyaWdodCAoQykgMjAyMCBvbndhcmRzIFRvdGFyYSBMZWFybmluZyBTb2x1dGlvbnMgTFREKi9cbi8qKi9cbi8qIFRvdGFyYSBFbnRlcnByaXNlIEV4dGVuc2lvbnMgaXMgcHJvdmlkZWQgb25seSB0byBUb3RhcmEqL1xuLyogTGVhcm5pbmcgU29sdXRpb25zIExURCdzIGN1c3RvbWVycyBhbmQgcGFydG5lcnMsIHB1cnN1YW50IHRvKi9cbi8qIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZiBhIHNlcGFyYXRlIGFncmVlbWVudCB3aXRoIFRvdGFyYSovXG4vKiBMZWFybmluZyBTb2x1dGlvbnMgTFREIG9yIGl0cyBhZmZpbGlhdGUuKi9cbi8qKi9cbi8qIElmIHlvdSBkbyBub3QgaGF2ZSBhbiBhZ3JlZW1lbnQgd2l0aCBUb3RhcmEgTGVhcm5pbmcgU29sdXRpb25zKi9cbi8qIExURCwgeW91IG1heSBub3QgYWNjZXNzLCB1c2UsIG1vZGlmeSwgb3IgZGlzdHJpYnV0ZSB0aGlzIHNvZnR3YXJlLiovXG4vKiBQbGVhc2UgY29udGFjdCBbbGljZW5zaW5nQHRvdGFyYWxlYXJuaW5nLmNvbV0gZm9yIG1vcmUgaW5mb3JtYXRpb24uKi9cbi8qKi9cbi8qIEBhdXRob3IgICAgS2V2aW4gSG90dGluZ2VyIDxrZXZpbi5ob3R0aW5nZXJAdG90YXJhbGVhcm5pbmcuY29tPiovXG4vKiBAbW9kdWxlIHR1aWNrYWdlICAgdHVpKi9cblxuOnJvb3Qge1xuICAvKiBBdmF0YXIqL1xuICAtLWF2YXRhci1ib3JkZXItY29sb3I6IHZhcigtLWNvbG9yLXByaW1hcnkpO1xufVxuXG4iLCIvKiEqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiEqXFxcbiAgISoqKiBjc3MgLi9jbGllbnQvdG9vbGluZy93ZWJwYWNrL2Nzc19yYXdfbG9hZGVyLmpzPz9ydWxlU2V0WzFdLnJ1bGVzWzBdLnVzZVsxXSEuL25vZGVfbW9kdWxlcy9wb3N0Y3NzLWxvYWRlci9kaXN0L2Nqcy5qcz8/cnVsZVNldFsxXS5ydWxlc1swXS51c2VbMl0hLi9jbGllbnQvY29tcG9uZW50L3R1aS9zcmMvZ2xvYmFsX3N0eWxlcy92YXJpYWJsZXMvY29sb3JzL2Ryb3Bkb3duLnNjc3MgKioqIVxuICBcXCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogVGhpcyBmaWxlIGlzIHBhcnQgb2YgVG90YXJhIEVudGVycHJpc2UgRXh0ZW5zaW9ucy4qL1xuLyoqL1xuLyogQ29weXJpZ2h0IChDKSAyMDIwIG9ud2FyZHMgVG90YXJhIExlYXJuaW5nIFNvbHV0aW9ucyBMVEQqL1xuLyoqL1xuLyogVG90YXJhIEVudGVycHJpc2UgRXh0ZW5zaW9ucyBpcyBwcm92aWRlZCBvbmx5IHRvIFRvdGFyYSovXG4vKiBMZWFybmluZyBTb2x1dGlvbnMgTFREJ3MgY3VzdG9tZXJzIGFuZCBwYXJ0bmVycywgcHVyc3VhbnQgdG8qL1xuLyogdGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIG9mIGEgc2VwYXJhdGUgYWdyZWVtZW50IHdpdGggVG90YXJhKi9cbi8qIExlYXJuaW5nIFNvbHV0aW9ucyBMVEQgb3IgaXRzIGFmZmlsaWF0ZS4qL1xuLyoqL1xuLyogSWYgeW91IGRvIG5vdCBoYXZlIGFuIGFncmVlbWVudCB3aXRoIFRvdGFyYSBMZWFybmluZyBTb2x1dGlvbnMqL1xuLyogTFRELCB5b3UgbWF5IG5vdCBhY2Nlc3MsIHVzZSwgbW9kaWZ5LCBvciBkaXN0cmlidXRlIHRoaXMgc29mdHdhcmUuKi9cbi8qIFBsZWFzZSBjb250YWN0IFtsaWNlbnNpbmdAdG90YXJhbGVhcm5pbmcuY29tXSBmb3IgbW9yZSBpbmZvcm1hdGlvbi4qL1xuLyoqL1xuLyogQGF1dGhvciAgICBLZXZpbiBIb3R0aW5nZXIgPGtldmluLmhvdHRpbmdlckB0b3RhcmFsZWFybmluZy5jb20+Ki9cbi8qIEBtb2R1bGUgdHVpY2thZ2UgICB0dWkqL1xuXG46cm9vdCB7XG4gIC8qIERyb3AgZG93biovXG4gIC0tZHJvcGRvd24taXRlbS1iZy1jb2xvci1ob3ZlcjogdmFyKC0tY29sb3ItbmV1dHJhbC0zKTtcbiAgLS1kcm9wZG93bi1pdGVtLWJnLWNvbG9yLWZvY3VzOiB2YXIoLS1jb2xvci1uZXV0cmFsLTMpO1xuICAtLWRyb3Bkb3duLWl0ZW0tYmctY29sb3ItZGlzYWJsZWQtZm9jdXM6IHZhcigtLWNvbG9yLW5ldXRyYWwtMik7XG4gIC0tZHJvcGRvd24taXRlbS10ZXh0LWNvbG9yOiB2YXIoLS1jb2xvci10ZXh0KTtcbiAgLS1kcm9wZG93bi1pdGVtLXRleHQtY29sb3ItaG92ZXI6IHZhcigtLWNvbG9yLXRleHQpO1xuICAtLWRyb3Bkb3duLWl0ZW0tdGV4dC1jb2xvci1mb2N1czogdmFyKC0tY29sb3ItdGV4dCk7XG4gIC0tZHJvcGRvd24taXRlbS10ZXh0LWNvbG9yLWRpc2FibGVkOiB2YXIoLS1jb2xvci10ZXh0LWRpc2FibGVkKTtcbiAgLS1kcm9wZG93bi1pdGVtLWZvY3VzLXJpbmctY29sb3I6IHZhcigtLWNvbG9yLXN0YXRlKTtcbiAgLS1kcm9wZG93bi1tZW51LWJnLWNvbG9yOiB2YXIoLS1jb2xvci1iYWNrZ3JvdW5kKTtcbiAgLS1kcm9wZG93bi1tZW51LWJvcmRlci1jb2xvcjogdmFyKC0tY29sb3ItbmV1dHJhbC01KTtcbn1cblxuIiwiLyohKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqISpcXFxuICAhKioqIGNzcyAuL2NsaWVudC90b29saW5nL3dlYnBhY2svY3NzX3Jhd19sb2FkZXIuanM/P3J1bGVTZXRbMV0ucnVsZXNbMF0udXNlWzFdIS4vbm9kZV9tb2R1bGVzL3Bvc3Rjc3MtbG9hZGVyL2Rpc3QvY2pzLmpzPz9ydWxlU2V0WzFdLnJ1bGVzWzBdLnVzZVsyXSEuL2NsaWVudC9jb21wb25lbnQvdHVpL3NyYy9nbG9iYWxfc3R5bGVzL3ZhcmlhYmxlcy9jb2xvcnMvZGF0YXRhYmxlLnNjc3MgKioqIVxuICBcXCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIFRvdGFyYSBFbnRlcnByaXNlIEV4dGVuc2lvbnMuKi9cbi8qKi9cbi8qIENvcHlyaWdodCAoQykgMjAyMCBvbndhcmRzIFRvdGFyYSBMZWFybmluZyBTb2x1dGlvbnMgTFREKi9cbi8qKi9cbi8qIFRvdGFyYSBFbnRlcnByaXNlIEV4dGVuc2lvbnMgaXMgcHJvdmlkZWQgb25seSB0byBUb3RhcmEqL1xuLyogTGVhcm5pbmcgU29sdXRpb25zIExURCdzIGN1c3RvbWVycyBhbmQgcGFydG5lcnMsIHB1cnN1YW50IHRvKi9cbi8qIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZiBhIHNlcGFyYXRlIGFncmVlbWVudCB3aXRoIFRvdGFyYSovXG4vKiBMZWFybmluZyBTb2x1dGlvbnMgTFREIG9yIGl0cyBhZmZpbGlhdGUuKi9cbi8qKi9cbi8qIElmIHlvdSBkbyBub3QgaGF2ZSBhbiBhZ3JlZW1lbnQgd2l0aCBUb3RhcmEgTGVhcm5pbmcgU29sdXRpb25zKi9cbi8qIExURCwgeW91IG1heSBub3QgYWNjZXNzLCB1c2UsIG1vZGlmeSwgb3IgZGlzdHJpYnV0ZSB0aGlzIHNvZnR3YXJlLiovXG4vKiBQbGVhc2UgY29udGFjdCBbbGljZW5zaW5nQHRvdGFyYWxlYXJuaW5nLmNvbV0gZm9yIG1vcmUgaW5mb3JtYXRpb24uKi9cbi8qKi9cbi8qIEBhdXRob3IgICAgS2V2aW4gSG90dGluZ2VyIDxrZXZpbi5ob3R0aW5nZXJAdG90YXJhbGVhcm5pbmcuY29tPiovXG4vKiBAbW9kdWxlIHR1aWNrYWdlICAgdHVpKi9cblxuOnJvb3Qge1xuICAvKiovXG4gIC8qIERhdGEgdGFibGUqL1xuICAvKiovXG4gIC0tZGF0YXRhYmxlLWJnLWFyY2hpdmVkOiB2YXIoLS1jb2xvci1uZXV0cmFsLTIpO1xuICAtLWRhdGF0YWJsZS1jZWxsLWhlYWRlci10ZXh0LWNvbG9yOiB2YXIoLS1jb2xvci1uZXV0cmFsLTcpO1xuICAvKiBFeHBhbmRlZCBzdHlsZXMqL1xuICAtLWRhdGF0YWJsZS1leHBhbmRlZC1iZy1jb2xvcjogdmFyKC0tY29sb3ItbmV1dHJhbC0xKTtcbiAgLS1kYXRhdGFibGUtZXhwYW5kZWQtYm9yZGVyLWNvbG9yOiB2YXIoLS1jb2xvci1uZXV0cmFsLTUpO1xuICAtLWRhdGF0YWJsZS1leHBhbmRlZC10ZXh0LWNvbG9yOiB2YXIoLS1jb2xvci1uZXV0cmFsLTcpO1xuICAvKiBSb3cgc3R5bGVzKi9cbiAgLS1kYXRhdGFibGUtcm93LWJnLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgLS1kYXRhdGFibGUtcm93LWJnLWNvbG9yLWFjdGl2ZTogdmFyKC0tY29sb3ItbmV1dHJhbC0zKTtcbiAgLS1kYXRhdGFibGUtcm93LWJnLWNvbG9yLWZvY3VzOiB2YXIoLS1jb2xvci1uZXV0cmFsLTMpO1xuICAtLWRhdGF0YWJsZS1yb3ctYmctY29sb3Itb2RkOiB2YXIoLS1jb2xvci1uZXV0cmFsLTIpO1xuICAtLWRhdGF0YWJsZS1yb3ctYm9yZGVyLWNvbG9yOiB2YXIoLS1jb2xvci1uZXV0cmFsLTUpO1xuICAtLWRhdGF0YWJsZS1yb3ctZmlyc3QtYm9yZGVyLWNvbG9yOiB2YXIoLS1jb2xvci1uZXV0cmFsLTcpO1xuICAvKiBTZWxlY3QgYWxsIHByb21wdCovXG4gIC0tZGF0YXRhYmxlLXNlbGVjdC1ldmVyeXRoaW5nLXByb21wdC1iZzogdmFyKC0tY29sb3ItbmV1dHJhbC0yKTtcbn1cblxuIiwiLyohKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiEqXFxcbiAgISoqKiBjc3MgLi9jbGllbnQvdG9vbGluZy93ZWJwYWNrL2Nzc19yYXdfbG9hZGVyLmpzPz9ydWxlU2V0WzFdLnJ1bGVzWzBdLnVzZVsxXSEuL25vZGVfbW9kdWxlcy9wb3N0Y3NzLWxvYWRlci9kaXN0L2Nqcy5qcz8/cnVsZVNldFsxXS5ydWxlc1swXS51c2VbMl0hLi9jbGllbnQvY29tcG9uZW50L3R1aS9zcmMvZ2xvYmFsX3N0eWxlcy92YXJpYWJsZXMvY29sb3JzL3RhYnMuc2NzcyAqKiohXG4gIFxcKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIFRvdGFyYSBFbnRlcnByaXNlIEV4dGVuc2lvbnMuKi9cbi8qKi9cbi8qIENvcHlyaWdodCAoQykgMjAyMCBvbndhcmRzIFRvdGFyYSBMZWFybmluZyBTb2x1dGlvbnMgTFREKi9cbi8qKi9cbi8qIFRvdGFyYSBFbnRlcnByaXNlIEV4dGVuc2lvbnMgaXMgcHJvdmlkZWQgb25seSB0byBUb3RhcmEqL1xuLyogTGVhcm5pbmcgU29sdXRpb25zIExURCdzIGN1c3RvbWVycyBhbmQgcGFydG5lcnMsIHB1cnN1YW50IHRvKi9cbi8qIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZiBhIHNlcGFyYXRlIGFncmVlbWVudCB3aXRoIFRvdGFyYSovXG4vKiBMZWFybmluZyBTb2x1dGlvbnMgTFREIG9yIGl0cyBhZmZpbGlhdGUuKi9cbi8qKi9cbi8qIElmIHlvdSBkbyBub3QgaGF2ZSBhbiBhZ3JlZW1lbnQgd2l0aCBUb3RhcmEgTGVhcm5pbmcgU29sdXRpb25zKi9cbi8qIExURCwgeW91IG1heSBub3QgYWNjZXNzLCB1c2UsIG1vZGlmeSwgb3IgZGlzdHJpYnV0ZSB0aGlzIHNvZnR3YXJlLiovXG4vKiBQbGVhc2UgY29udGFjdCBbbGljZW5zaW5nQHRvdGFyYWxlYXJuaW5nLmNvbV0gZm9yIG1vcmUgaW5mb3JtYXRpb24uKi9cbi8qKi9cbi8qIEBhdXRob3IgICAgS2V2aW4gSG90dGluZ2VyIDxrZXZpbi5ob3R0aW5nZXJAdG90YXJhbGVhcm5pbmcuY29tPiovXG4vKiBAbW9kdWxlIHR1aWNrYWdlICAgdHVpKi9cblxuOnJvb3Qge1xuICAvKiovXG4gIC8qIFRhYnMqL1xuICAvKiovXG4gIC0tdGFicy1iZy1jb2xvcjogdmFyKC0tY29sb3ItbmV1dHJhbC0zKTtcbiAgLS10YWJzLWJnLWNvbG9yLXNlbGVjdGVkOiB2YXIoLS1jb2xvci1uZXV0cmFsLTEpO1xuICAtLXRhYnMtYmctY29sb3ItZGlzYWJsZWQ6IHZhcigtLWNvbG9yLW5ldXRyYWwtMyk7XG4gIC0tdGFicy1iZy1jb2xvci1mb2N1czogdmFyKC0tY29sb3ItbmV1dHJhbC0zKTtcbiAgLS10YWJzLXNlbGVjdGVkLWJhci1jb2xvcjogdmFyKC0tY29sb3ItcHJpbWFyeSk7XG5cbiAgLS10YWJzLXRleHQtY29sb3I6IHZhcigtLWNvbG9yLXN0YXRlKTtcbiAgLS10YWJzLXRleHQtY29sb3ItYWN0aXZlOiB2YXIoLS1jb2xvci1zdGF0ZS1hY3RpdmUpO1xuICAtLXRhYnMtdGV4dC1jb2xvci1kaXNhYmxlZDogdmFyKC0tY29sb3Itc3RhdGUtZGlzYWJsZWQpO1xuICAtLXRhYnMtdGV4dC1jb2xvci1mb2N1czogdmFyKC0tY29sb3Itc3RhdGUtZm9jdXMpO1xuICAtLXRhYnMtdGV4dC1jb2xvci1zZWxlY3RlZDogdmFyKC0tY29sb3ItbmV1dHJhbC03KTtcblxuICAtLXRhYnMtYm9yZGVyLWNvbG9yOiB2YXIoLS1jb2xvci1uZXV0cmFsLTUpO1xuICAtLXRhYnMtYm9yZGVyLWNvbG9yLXNlbGVjdGVkOiB2YXIoLS1jb2xvci1uZXV0cmFsLTEpO1xuICAtLXRhYnMtYm9yZGVyLWNvbG9yLWRpc2FibGVkOiB2YXIoLS1jb2xvci1uZXV0cmFsLTQpO1xufVxuXG4iLCIvKiEqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqISpcXFxuICAhKioqIGNzcyAuL2NsaWVudC90b29saW5nL3dlYnBhY2svY3NzX3Jhd19sb2FkZXIuanM/P3J1bGVTZXRbMV0ucnVsZXNbMF0udXNlWzFdIS4vbm9kZV9tb2R1bGVzL3Bvc3Rjc3MtbG9hZGVyL2Rpc3QvY2pzLmpzPz9ydWxlU2V0WzFdLnJ1bGVzWzBdLnVzZVsyXSEuL2NsaWVudC9jb21wb25lbnQvdHVpL3NyYy9nbG9iYWxfc3R5bGVzL3ZhcmlhYmxlcy9jb2xvcnMvY2FyZC5zY3NzICoqKiFcbiAgXFwqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogVGhpcyBmaWxlIGlzIHBhcnQgb2YgVG90YXJhIEVudGVycHJpc2UgRXh0ZW5zaW9ucy4qL1xuLyoqL1xuLyogQ29weXJpZ2h0IChDKSAyMDIwIG9ud2FyZHMgVG90YXJhIExlYXJuaW5nIFNvbHV0aW9ucyBMVEQqL1xuLyoqL1xuLyogVG90YXJhIEVudGVycHJpc2UgRXh0ZW5zaW9ucyBpcyBwcm92aWRlZCBvbmx5IHRvIFRvdGFyYSovXG4vKiBMZWFybmluZyBTb2x1dGlvbnMgTFREJ3MgY3VzdG9tZXJzIGFuZCBwYXJ0bmVycywgcHVyc3VhbnQgdG8qL1xuLyogdGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIG9mIGEgc2VwYXJhdGUgYWdyZWVtZW50IHdpdGggVG90YXJhKi9cbi8qIExlYXJuaW5nIFNvbHV0aW9ucyBMVEQgb3IgaXRzIGFmZmlsaWF0ZS4qL1xuLyoqL1xuLyogSWYgeW91IGRvIG5vdCBoYXZlIGFuIGFncmVlbWVudCB3aXRoIFRvdGFyYSBMZWFybmluZyBTb2x1dGlvbnMqL1xuLyogTFRELCB5b3UgbWF5IG5vdCBhY2Nlc3MsIHVzZSwgbW9kaWZ5LCBvciBkaXN0cmlidXRlIHRoaXMgc29mdHdhcmUuKi9cbi8qIFBsZWFzZSBjb250YWN0IFtsaWNlbnNpbmdAdG90YXJhbGVhcm5pbmcuY29tXSBmb3IgbW9yZSBpbmZvcm1hdGlvbi4qL1xuLyoqL1xuLyogQGF1dGhvciAgICBLZXZpbiBIb3R0aW5nZXIgPGtldmluLmhvdHRpbmdlckB0b3RhcmFsZWFybmluZy5jb20+Ki9cbi8qIEBtb2R1bGUgdHVpY2thZ2UgICB0dWkqL1xuXG46cm9vdCB7XG4gIC8qKi9cbiAgLyogQ2FyZCovXG4gIC8qKi9cbiAgLS1jYXJkLWJvcmRlci1jb2xvcjogdmFyKC0tY29sb3ItbmV1dHJhbC01KTtcbn1cblxuIiwiLyohKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqISpcXFxuICAhKioqIGNzcyAuL2NsaWVudC90b29saW5nL3dlYnBhY2svY3NzX3Jhd19sb2FkZXIuanM/P3J1bGVTZXRbMV0ucnVsZXNbMF0udXNlWzFdIS4vbm9kZV9tb2R1bGVzL3Bvc3Rjc3MtbG9hZGVyL2Rpc3QvY2pzLmpzPz9ydWxlU2V0WzFdLnJ1bGVzWzBdLnVzZVsyXSEuL2NsaWVudC9jb21wb25lbnQvdHVpL3NyYy9nbG9iYWxfc3R5bGVzL3ZhcmlhYmxlcy9jb2xvcnMvY2hhcnRzLnNjc3MgKioqIVxuICBcXCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIFRvdGFyYSBFbnRlcnByaXNlIEV4dGVuc2lvbnMuKi9cbi8qKi9cbi8qIENvcHlyaWdodCAoQykgMjAyMCBvbndhcmRzIFRvdGFyYSBMZWFybmluZyBTb2x1dGlvbnMgTFREKi9cbi8qKi9cbi8qIFRvdGFyYSBFbnRlcnByaXNlIEV4dGVuc2lvbnMgaXMgcHJvdmlkZWQgb25seSB0byBUb3RhcmEqL1xuLyogTGVhcm5pbmcgU29sdXRpb25zIExURCdzIGN1c3RvbWVycyBhbmQgcGFydG5lcnMsIHB1cnN1YW50IHRvKi9cbi8qIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZiBhIHNlcGFyYXRlIGFncmVlbWVudCB3aXRoIFRvdGFyYSovXG4vKiBMZWFybmluZyBTb2x1dGlvbnMgTFREIG9yIGl0cyBhZmZpbGlhdGUuKi9cbi8qKi9cbi8qIElmIHlvdSBkbyBub3QgaGF2ZSBhbiBhZ3JlZW1lbnQgd2l0aCBUb3RhcmEgTGVhcm5pbmcgU29sdXRpb25zKi9cbi8qIExURCwgeW91IG1heSBub3QgYWNjZXNzLCB1c2UsIG1vZGlmeSwgb3IgZGlzdHJpYnV0ZSB0aGlzIHNvZnR3YXJlLiovXG4vKiBQbGVhc2UgY29udGFjdCBbbGljZW5zaW5nQHRvdGFyYWxlYXJuaW5nLmNvbV0gZm9yIG1vcmUgaW5mb3JtYXRpb24uKi9cbi8qKi9cbi8qIEBhdXRob3IgICAgS2V2aW4gSG90dGluZ2VyIDxrZXZpbi5ob3R0aW5nZXJAdG90YXJhbGVhcm5pbmcuY29tPiovXG4vKiBAbW9kdWxlIHR1aWNrYWdlICAgdHVpKi9cblxuOnJvb3Qge1xuICAvKiovXG4gIC8qIENoYXJ0cyovXG4gIC8qKi9cbiAgLS1jb2xvci1jaGFydC1kb3VnaG51dC1sYWJlbDogdmFyKC0tY29sb3ItbmV1dHJhbC03KTtcbn1cblxuIiwiLyohKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiEqXFxcbiAgISoqKiBjc3MgLi9jbGllbnQvdG9vbGluZy93ZWJwYWNrL2Nzc19yYXdfbG9hZGVyLmpzPz9ydWxlU2V0WzFdLnJ1bGVzWzBdLnVzZVsxXSEuL25vZGVfbW9kdWxlcy9wb3N0Y3NzLWxvYWRlci9kaXN0L2Nqcy5qcz8/cnVsZVNldFsxXS5ydWxlc1swXS51c2VbMl0hLi9jbGllbnQvY29tcG9uZW50L3R1aS9zcmMvZ2xvYmFsX3N0eWxlcy92YXJpYWJsZXMvY29sb3JzL2ZpbHRlcnMuc2NzcyAqKiohXG4gIFxcKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIFRvdGFyYSBFbnRlcnByaXNlIEV4dGVuc2lvbnMuKi9cbi8qKi9cbi8qIENvcHlyaWdodCAoQykgMjAyMCBvbndhcmRzIFRvdGFyYSBMZWFybmluZyBTb2x1dGlvbnMgTFREKi9cbi8qKi9cbi8qIFRvdGFyYSBFbnRlcnByaXNlIEV4dGVuc2lvbnMgaXMgcHJvdmlkZWQgb25seSB0byBUb3RhcmEqL1xuLyogTGVhcm5pbmcgU29sdXRpb25zIExURCdzIGN1c3RvbWVycyBhbmQgcGFydG5lcnMsIHB1cnN1YW50IHRvKi9cbi8qIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZiBhIHNlcGFyYXRlIGFncmVlbWVudCB3aXRoIFRvdGFyYSovXG4vKiBMZWFybmluZyBTb2x1dGlvbnMgTFREIG9yIGl0cyBhZmZpbGlhdGUuKi9cbi8qKi9cbi8qIElmIHlvdSBkbyBub3QgaGF2ZSBhbiBhZ3JlZW1lbnQgd2l0aCBUb3RhcmEgTGVhcm5pbmcgU29sdXRpb25zKi9cbi8qIExURCwgeW91IG1heSBub3QgYWNjZXNzLCB1c2UsIG1vZGlmeSwgb3IgZGlzdHJpYnV0ZSB0aGlzIHNvZnR3YXJlLiovXG4vKiBQbGVhc2UgY29udGFjdCBbbGljZW5zaW5nQHRvdGFyYWxlYXJuaW5nLmNvbV0gZm9yIG1vcmUgaW5mb3JtYXRpb24uKi9cbi8qKi9cbi8qIEBhdXRob3IgICAgS2V2aW4gSG90dGluZ2VyIDxrZXZpbi5ob3R0aW5nZXJAdG90YXJhbGVhcm5pbmcuY29tPiovXG4vKiBAbW9kdWxlIHR1aWNrYWdlICAgdHVpKi9cblxuOnJvb3Qge1xuICAvKiovXG4gIC8qIEZpbHRlcnMqL1xuICAvKiovXG4gIC0tZmlsdGVyLWJhci1ib3JkZXItY29sb3I6IHZhcigtLWNvbG9yLW5ldXRyYWwtNSk7XG4gIC0tZmlsdGVyLXNlYXJjaC1pY29uLWNvbG9yOiB2YXIoLS1jb2xvci1uZXV0cmFsLTYpO1xuICAtLWZpbHRlci1zZWFyY2gtY2xlYXItaWNvbi1jb2xvcjogdmFyKC0tY29sb3ItbmV1dHJhbC02KTtcbn1cblxuIiwiLyohKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiEqXFxcbiAgISoqKiBjc3MgLi9jbGllbnQvdG9vbGluZy93ZWJwYWNrL2Nzc19yYXdfbG9hZGVyLmpzPz9ydWxlU2V0WzFdLnJ1bGVzWzBdLnVzZVsxXSEuL25vZGVfbW9kdWxlcy9wb3N0Y3NzLWxvYWRlci9kaXN0L2Nqcy5qcz8/cnVsZVNldFsxXS5ydWxlc1swXS51c2VbMl0hLi9jbGllbnQvY29tcG9uZW50L3R1aS9zcmMvZ2xvYmFsX3N0eWxlcy92YXJpYWJsZXMvY29sb3JzL3RhZ3Muc2NzcyAqKiohXG4gIFxcKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIFRvdGFyYSBFbnRlcnByaXNlIEV4dGVuc2lvbnMuKi9cbi8qKi9cbi8qIENvcHlyaWdodCAoQykgMjAyMCBvbndhcmRzIFRvdGFyYSBMZWFybmluZyBTb2x1dGlvbnMgTFREKi9cbi8qKi9cbi8qIFRvdGFyYSBFbnRlcnByaXNlIEV4dGVuc2lvbnMgaXMgcHJvdmlkZWQgb25seSB0byBUb3RhcmEqL1xuLyogTGVhcm5pbmcgU29sdXRpb25zIExURCdzIGN1c3RvbWVycyBhbmQgcGFydG5lcnMsIHB1cnN1YW50IHRvKi9cbi8qIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZiBhIHNlcGFyYXRlIGFncmVlbWVudCB3aXRoIFRvdGFyYSovXG4vKiBMZWFybmluZyBTb2x1dGlvbnMgTFREIG9yIGl0cyBhZmZpbGlhdGUuKi9cbi8qKi9cbi8qIElmIHlvdSBkbyBub3QgaGF2ZSBhbiBhZ3JlZW1lbnQgd2l0aCBUb3RhcmEgTGVhcm5pbmcgU29sdXRpb25zKi9cbi8qIExURCwgeW91IG1heSBub3QgYWNjZXNzLCB1c2UsIG1vZGlmeSwgb3IgZGlzdHJpYnV0ZSB0aGlzIHNvZnR3YXJlLiovXG4vKiBQbGVhc2UgY29udGFjdCBbbGljZW5zaW5nQHRvdGFyYWxlYXJuaW5nLmNvbV0gZm9yIG1vcmUgaW5mb3JtYXRpb24uKi9cbi8qKi9cbi8qIEBhdXRob3IgICAgS2V2aW4gSG90dGluZ2VyIDxrZXZpbi5ob3R0aW5nZXJAdG90YXJhbGVhcm5pbmcuY29tPiovXG4vKiBAbW9kdWxlIHR1aWNrYWdlICAgdHVpKi9cblxuOnJvb3Qge1xuICAvKiovXG4gIC8qIFRhZyovXG4gIC8qKi9cbiAgLS10YWctYmctY29sb3I6IHZhcigtLWNvbG9yLW5ldXRyYWwtMik7XG4gIC0tdGFnLWJvcmRlci1jb2xvcjogdmFyKC0tY29sb3ItbmV1dHJhbC01KTtcbiAgLS10YWctYWN0aXZlLWNvbG9yOiB2YXIoLS1jb2xvci1zdGF0ZSk7XG4gIC0tdGFnLWJ1dHRvbi1jb2xvcjogdmFyKC0tY29sb3ItbmV1dHJhbC03KTtcbn1cblxuIiwiLyohKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiohKlxcXG4gICEqKiogY3NzIC4vY2xpZW50L3Rvb2xpbmcvd2VicGFjay9jc3NfcmF3X2xvYWRlci5qcz8/cnVsZVNldFsxXS5ydWxlc1swXS51c2VbMV0hLi9ub2RlX21vZHVsZXMvcG9zdGNzcy1sb2FkZXIvZGlzdC9janMuanM/P3J1bGVTZXRbMV0ucnVsZXNbMF0udXNlWzJdIS4vY2xpZW50L2NvbXBvbmVudC90dWkvc3JjL2dsb2JhbF9zdHlsZXMvdmFyaWFibGVzL2NvbG9ycy9wcm9ncmVzc2Jhci5zY3NzICoqKiFcbiAgXFwqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIFRvdGFyYSBFbnRlcnByaXNlIEV4dGVuc2lvbnMuKi9cbi8qKi9cbi8qIENvcHlyaWdodCAoQykgMjAyMCBvbndhcmRzIFRvdGFyYSBMZWFybmluZyBTb2x1dGlvbnMgTFREKi9cbi8qKi9cbi8qIFRvdGFyYSBFbnRlcnByaXNlIEV4dGVuc2lvbnMgaXMgcHJvdmlkZWQgb25seSB0byBUb3RhcmEqL1xuLyogTGVhcm5pbmcgU29sdXRpb25zIExURCdzIGN1c3RvbWVycyBhbmQgcGFydG5lcnMsIHB1cnN1YW50IHRvKi9cbi8qIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZiBhIHNlcGFyYXRlIGFncmVlbWVudCB3aXRoIFRvdGFyYSovXG4vKiBMZWFybmluZyBTb2x1dGlvbnMgTFREIG9yIGl0cyBhZmZpbGlhdGUuKi9cbi8qKi9cbi8qIElmIHlvdSBkbyBub3QgaGF2ZSBhbiBhZ3JlZW1lbnQgd2l0aCBUb3RhcmEgTGVhcm5pbmcgU29sdXRpb25zKi9cbi8qIExURCwgeW91IG1heSBub3QgYWNjZXNzLCB1c2UsIG1vZGlmeSwgb3IgZGlzdHJpYnV0ZSB0aGlzIHNvZnR3YXJlLiovXG4vKiBQbGVhc2UgY29udGFjdCBbbGljZW5zaW5nQHRvdGFyYWxlYXJuaW5nLmNvbV0gZm9yIG1vcmUgaW5mb3JtYXRpb24uKi9cbi8qKi9cbi8qIEBhdXRob3IgICAgS2V2aW4gSG90dGluZ2VyIDxrZXZpbi5ob3R0aW5nZXJAdG90YXJhbGVhcm5pbmcuY29tPiovXG4vKiBAbW9kdWxlIHR1aWNrYWdlICAgdHVpKi9cblxuOnJvb3Qge1xuICAvKiovXG4gIC8qIFByb2dyZXNzKi9cbiAgLyoqL1xuICAtLXByb2dyZXNzLXZhbHVlLWJnLWNvbG9yOiB2YXIoLS1jb2xvci1zZWNvbmRhcnkpO1xuICAtLXByb2dyZXNzLWNvbnRhaW5lci1iZy1jb2xvcjogdmFyKC0tY29sb3ItbmV1dHJhbC00KTtcbiAgLS1wcm9ncmVzcy1ib3JkZXItY29sb3I6IHZhcigtLWNvbG9yLW5ldXRyYWwtMSk7XG4gIC0tcHJvZ3Jlc3MtY29udGFpbmVyLXRleHQtY29sb3I6IHZhcigtLWNvbG9yLW5ldXRyYWwtNyk7XG4gIC0tcHJvZ3Jlc3MtdmFsdWUtdGV4dC1jb2xvcjogdmFyKC0tY29sb3ItbmV1dHJhbC0xKTtcbn1cblxuIiwiLyohKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiohKlxcXG4gICEqKiogY3NzIC4vY2xpZW50L3Rvb2xpbmcvd2VicGFjay9jc3NfcmF3X2xvYWRlci5qcz8/cnVsZVNldFsxXS5ydWxlc1swXS51c2VbMV0hLi9ub2RlX21vZHVsZXMvcG9zdGNzcy1sb2FkZXIvZGlzdC9janMuanM/P3J1bGVTZXRbMV0ucnVsZXNbMF0udXNlWzJdIS4vY2xpZW50L2NvbXBvbmVudC90dWkvc3JjL2dsb2JhbF9zdHlsZXMvdmFyaWFibGVzL2NvbG9ycy9jb2xsYXBzaWJsZS5zY3NzICoqKiFcbiAgXFwqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIFRvdGFyYSBFbnRlcnByaXNlIEV4dGVuc2lvbnMuKi9cbi8qKi9cbi8qIENvcHlyaWdodCAoQykgMjAyMCBvbndhcmRzIFRvdGFyYSBMZWFybmluZyBTb2x1dGlvbnMgTFREKi9cbi8qKi9cbi8qIFRvdGFyYSBFbnRlcnByaXNlIEV4dGVuc2lvbnMgaXMgcHJvdmlkZWQgb25seSB0byBUb3RhcmEqL1xuLyogTGVhcm5pbmcgU29sdXRpb25zIExURCdzIGN1c3RvbWVycyBhbmQgcGFydG5lcnMsIHB1cnN1YW50IHRvKi9cbi8qIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZiBhIHNlcGFyYXRlIGFncmVlbWVudCB3aXRoIFRvdGFyYSovXG4vKiBMZWFybmluZyBTb2x1dGlvbnMgTFREIG9yIGl0cyBhZmZpbGlhdGUuKi9cbi8qKi9cbi8qIElmIHlvdSBkbyBub3QgaGF2ZSBhbiBhZ3JlZW1lbnQgd2l0aCBUb3RhcmEgTGVhcm5pbmcgU29sdXRpb25zKi9cbi8qIExURCwgeW91IG1heSBub3QgYWNjZXNzLCB1c2UsIG1vZGlmeSwgb3IgZGlzdHJpYnV0ZSB0aGlzIHNvZnR3YXJlLiovXG4vKiBQbGVhc2UgY29udGFjdCBbbGljZW5zaW5nQHRvdGFyYWxlYXJuaW5nLmNvbV0gZm9yIG1vcmUgaW5mb3JtYXRpb24uKi9cbi8qKi9cbi8qIEBhdXRob3IgICAgS2V2aW4gSG90dGluZ2VyIDxrZXZpbi5ob3R0aW5nZXJAdG90YXJhbGVhcm5pbmcuY29tPiovXG4vKiBAbW9kdWxlIHR1aWNrYWdlICAgdHVpKi9cblxuOnJvb3Qge1xuICAvKiBDU1MgY29sbGFwc2FibGUqL1xuICAtLWNvbGxhcHNpYmxlLWhlYWRlci1iZy1jb2xvcjogdmFyKC0tY29sb3ItbmV1dHJhbC0zKTtcbiAgLS1jb2xsYXBzaWJsZS1oZWFkZXItYm9yZGVyLWNvbG9yOiB2YXIoLS1jb2xvci1uZXV0cmFsLTMpO1xufVxuXG4iLCIvKiEqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiohKlxcXG4gICEqKiogY3NzIC4vY2xpZW50L3Rvb2xpbmcvd2VicGFjay9jc3NfcmF3X2xvYWRlci5qcz8/cnVsZVNldFsxXS5ydWxlc1swXS51c2VbMV0hLi9ub2RlX21vZHVsZXMvcG9zdGNzcy1sb2FkZXIvZGlzdC9janMuanM/P3J1bGVTZXRbMV0ucnVsZXNbMF0udXNlWzJdIS4vY2xpZW50L2NvbXBvbmVudC90dWkvc3JjL2dsb2JhbF9zdHlsZXMvdmFyaWFibGVzL2NvbG9ycy9wcm9ncmVzc3RyYWNrZXIuc2NzcyAqKiohXG4gIFxcKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogVGhpcyBmaWxlIGlzIHBhcnQgb2YgVG90YXJhIEVudGVycHJpc2UgRXh0ZW5zaW9ucy4qL1xuLyoqL1xuLyogQ29weXJpZ2h0IChDKSAyMDIwIG9ud2FyZHMgVG90YXJhIExlYXJuaW5nIFNvbHV0aW9ucyBMVEQqL1xuLyoqL1xuLyogVG90YXJhIEVudGVycHJpc2UgRXh0ZW5zaW9ucyBpcyBwcm92aWRlZCBvbmx5IHRvIFRvdGFyYSovXG4vKiBMZWFybmluZyBTb2x1dGlvbnMgTFREJ3MgY3VzdG9tZXJzIGFuZCBwYXJ0bmVycywgcHVyc3VhbnQgdG8qL1xuLyogdGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIG9mIGEgc2VwYXJhdGUgYWdyZWVtZW50IHdpdGggVG90YXJhKi9cbi8qIExlYXJuaW5nIFNvbHV0aW9ucyBMVEQgb3IgaXRzIGFmZmlsaWF0ZS4qL1xuLyoqL1xuLyogSWYgeW91IGRvIG5vdCBoYXZlIGFuIGFncmVlbWVudCB3aXRoIFRvdGFyYSBMZWFybmluZyBTb2x1dGlvbnMqL1xuLyogTFRELCB5b3UgbWF5IG5vdCBhY2Nlc3MsIHVzZSwgbW9kaWZ5LCBvciBkaXN0cmlidXRlIHRoaXMgc29mdHdhcmUuKi9cbi8qIFBsZWFzZSBjb250YWN0IFtsaWNlbnNpbmdAdG90YXJhbGVhcm5pbmcuY29tXSBmb3IgbW9yZSBpbmZvcm1hdGlvbi4qL1xuLyoqL1xuLyogQGF1dGhvciAgICBLZXZpbiBIb3R0aW5nZXIgPGtldmluLmhvdHRpbmdlckB0b3RhcmFsZWFybmluZy5jb20+Ki9cbi8qIEBtb2R1bGUgdHVpY2thZ2UgICB0dWkqL1xuXG46cm9vdCB7XG4gIC0tcHJvZ3Jlc3N0cmFja2VyLWNvbnRhaW5lci1iZy1jb2xvcjogdmFyKC0tY29sb3ItbmV1dHJhbC0xKTtcblxuICAvKiBzdGF0ZXMgcmVsYXRlZCB0byBBY2hpZXZlbWVudCovXG4gIC0tcHJvZ3Jlc3N0cmFja2VyLWNvbG9yLXBlbmRpbmc6IHZhcigtLWNvbG9yLW5ldXRyYWwtNik7XG4gIC0tcHJvZ3Jlc3N0cmFja2VyLWNvbG9yLWN1cnJlbnQ6IHZhcigtLWNvbG9yLXByb21wdC1pbmZvKTtcbiAgLS1wcm9ncmVzc3RyYWNrZXItY29sb3ItYWNoaWV2ZWQ6IHZhcigtLWNvbG9yLXRlcnRpYXJ5KTtcbiAgLS1wcm9ncmVzc3RyYWNrZXItY29sb3ItY29tcGxldGU6IHZhcigtLWNvbG9yLXByb21wdC13YXJuaW5nKTtcblxuICAvKiBzdGF0ZXMgcmVsYXRlZCB0byBXb3JrZmxvd3MqL1xuICAtLXByb2dyZXNzdHJhY2tlci1jb2xvci1yZWFkeTogdmFyKC0tY29sb3ItbmV1dHJhbC02KTtcbiAgLS1wcm9ncmVzc3RyYWNrZXItY29sb3ItcmVhZHktLWludmVyc2U6IHZhcigtLWNvbG9yLW5ldXRyYWwtMSk7XG4gIC0tcHJvZ3Jlc3N0cmFja2VyLWNvbG9yLWRvbmU6IHZhcigtLWNvbG9yLXByb21wdC1zdWNjZXNzKTtcbiAgLS1wcm9ncmVzc3RyYWNrZXItY29sb3ItZG9uZS0taW52ZXJzZTogdmFyKC0tY29sb3ItbmV1dHJhbC0xKTtcbiAgLS1wcm9ncmVzc3RyYWNrZXItY29sb3ItbG9ja2VkOiB2YXIoLS1jb2xvci1uZXV0cmFsLTYpO1xuICAtLXByb2dyZXNzdHJhY2tlci1jb2xvci1sb2NrZWQtLWludmVyc2U6IHZhcigtLWNvbG9yLW5ldXRyYWwtMSk7XG4gIC0tcHJvZ3Jlc3N0cmFja2VyLWNvbG9yLW9wdGlvbmFsOiB2YXIoLS1jb2xvci1uZXV0cmFsLTYpO1xuICAtLXByb2dyZXNzdHJhY2tlci1jb2xvci1vcHRpb25hbC0taW52ZXJzZTogdmFyKC0tY29sb3ItbmV1dHJhbC0xKTtcbiAgLS1wcm9ncmVzc3RyYWNrZXItY29sb3Itc2VsZWN0ZWQ6IHZhcigtLWNvbG9yLW5ldXRyYWwtNik7XG4gIC0tcHJvZ3Jlc3N0cmFja2VyLWNvbG9yLXNlbGVjdGVkLS1pbnZlcnNlOiB2YXIoLS1jb2xvci1uZXV0cmFsLTEpO1xuICAtLXByb2dyZXNzdHJhY2tlci1jb2xvci1pbnZhbGlkOiB2YXIoLS1jb2xvci1wcm9tcHQtd2FybmluZyk7XG4gIC0tcHJvZ3Jlc3N0cmFja2VyLWNvbG9yLWludmFsaWQtLWludmVyc2U6IHZhcigtLWNvbG9yLW5ldXRyYWwtMSk7XG4gIC0tcHJvZ3Jlc3N0cmFja2VyLWNvbG9yLXZpZXctb25seTogdmFyKC0tY29sb3ItbmV1dHJhbC02KTtcbiAgLS1wcm9ncmVzc3RyYWNrZXItY29sb3Itdmlldy1vbmx5LS1pbnZlcnNlOiB2YXIoLS1jb2xvci1uZXV0cmFsLTEpO1xuICAtLXByb2dyZXNzdHJhY2tlci1jb2xvci1oaWRkZW46IHZhcigtLWNvbG9yLW5ldXRyYWwtNik7XG4gIC0tcHJvZ3Jlc3N0cmFja2VyLWNvbG9yLWhpZGRlbi0taW52ZXJzZTogdmFyKC0tY29sb3ItbmV1dHJhbC0xKTtcbn1cblxuIiwiLyohKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiohKlxcXG4gICEqKiogY3NzIC4vY2xpZW50L3Rvb2xpbmcvd2VicGFjay9jc3NfcmF3X2xvYWRlci5qcz8/cnVsZVNldFsxXS5ydWxlc1swXS51c2VbMV0hLi9ub2RlX21vZHVsZXMvcG9zdGNzcy1sb2FkZXIvZGlzdC9janMuanM/P3J1bGVTZXRbMV0ucnVsZXNbMF0udXNlWzJdIS4vY2xpZW50L2NvbXBvbmVudC90dWkvc3JjL2dsb2JhbF9zdHlsZXMvdmFyaWFibGVzL2NvbG9ycy9zaWRlX3BhbmVsX25hdi5zY3NzICoqKiFcbiAgXFwqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIFRvdGFyYSBFbnRlcnByaXNlIEV4dGVuc2lvbnMuKi9cbi8qKi9cbi8qIENvcHlyaWdodCAoQykgMjAyMCBvbndhcmRzIFRvdGFyYSBMZWFybmluZyBTb2x1dGlvbnMgTFREKi9cbi8qKi9cbi8qIFRvdGFyYSBFbnRlcnByaXNlIEV4dGVuc2lvbnMgaXMgcHJvdmlkZWQgb25seSB0byBUb3RhcmEqL1xuLyogTGVhcm5pbmcgU29sdXRpb25zIExURCdzIGN1c3RvbWVycyBhbmQgcGFydG5lcnMsIHB1cnN1YW50IHRvKi9cbi8qIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZiBhIHNlcGFyYXRlIGFncmVlbWVudCB3aXRoIFRvdGFyYSovXG4vKiBMZWFybmluZyBTb2x1dGlvbnMgTFREIG9yIGl0cyBhZmZpbGlhdGUuKi9cbi8qKi9cbi8qIElmIHlvdSBkbyBub3QgaGF2ZSBhbiBhZ3JlZW1lbnQgd2l0aCBUb3RhcmEgTGVhcm5pbmcgU29sdXRpb25zKi9cbi8qIExURCwgeW91IG1heSBub3QgYWNjZXNzLCB1c2UsIG1vZGlmeSwgb3IgZGlzdHJpYnV0ZSB0aGlzIHNvZnR3YXJlLiovXG4vKiBQbGVhc2UgY29udGFjdCBbbGljZW5zaW5nQHRvdGFyYWxlYXJuaW5nLmNvbV0gZm9yIG1vcmUgaW5mb3JtYXRpb24uKi9cbi8qKi9cbi8qIEBhdXRob3IgICAgS2V2aW4gSG90dGluZ2VyIDxrZXZpbi5ob3R0aW5nZXJAdG90YXJhbGVhcm5pbmcuY29tPiovXG4vKiBAbW9kdWxlIHR1aWNrYWdlICAgdHVpKi9cblxuOnJvb3Qge1xuICAvKiovXG4gIC8qIFNpZGUgcGFuZWwgbmF2aWdhdGlvbiovXG4gIC8qKi9cblxuICAvKiBQYW5lbCovXG4gIC0tc2lkZS1wYW5lbC1uYXYtYmctY29sb3I6IHZhcigtLWNvbG9yLW5ldXRyYWwtMyk7XG5cbiAgLyogUGFuZWwgaXRlbSovXG4gIC0tc2lkZS1wYW5lbC1uYXYtaXRlbS1iZy1jb2xvcjogdmFyKC0tY29sb3ItbmV1dHJhbC0zKTtcbiAgLS1zaWRlLXBhbmVsLW5hdi1pdGVtLWJvcmRlci1jb2xvcjogdmFyKC0tY29sb3ItbmV1dHJhbC0zKTtcbiAgLS1zaWRlLXBhbmVsLW5hdi1pdGVtLXRleHQtY29sb3I6IHZhcigtLWNvbG9yLW5ldXRyYWwtNyk7XG5cbiAgLyogUGFuZWwgaXRlbSBob3Zlci9mb2N1cyovXG4gIC0tc2lkZS1wYW5lbC1uYXYtaXRlbS1iZy1jb2xvci1mb2N1czogdmFyKC0tY29sb3ItbmV1dHJhbC00KTtcbiAgLS1zaWRlLXBhbmVsLW5hdi1pdGVtLWJvcmRlci1jb2xvci1mb2N1czogdmFyKC0tY29sb3ItbmV1dHJhbC0zKTtcbiAgLS1zaWRlLXBhbmVsLW5hdi1pdGVtLXRleHQtY29sb3ItZm9jdXM6IHZhcigtLWNvbG9yLXN0YXRlLWZvY3VzKTtcblxuICAvKiBQYW5lbCBpdGVtIHNlbGVjdGVkKi9cbiAgLS1zaWRlLXBhbmVsLW5hdi1pdGVtLWJnLWNvbG9yLXNlbGVjdGVkOiB2YXIoLS1jb2xvci1zdGF0ZS1hY3RpdmUpO1xuICAtLXNpZGUtcGFuZWwtbmF2LWl0ZW0tYm9yZGVyLWNvbG9yLXNlbGVjdGVkOiB2YXIoLS1jb2xvci1uZXV0cmFsLTMpO1xuICAtLXNpZGUtcGFuZWwtbmF2LWl0ZW0tdGV4dC1jb2xvci1zZWxlY3RlZDogdmFyKC0tY29sb3ItbmV1dHJhbC0xKTtcbn1cblxuIiwiLyohKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqISpcXFxuICAhKioqIGNzcyAuL2NsaWVudC90b29saW5nL3dlYnBhY2svY3NzX3Jhd19sb2FkZXIuanM/P3J1bGVTZXRbMV0ucnVsZXNbMF0udXNlWzFdIS4vbm9kZV9tb2R1bGVzL3Bvc3Rjc3MtbG9hZGVyL2Rpc3QvY2pzLmpzPz9ydWxlU2V0WzFdLnJ1bGVzWzBdLnVzZVsyXSEuL2NsaWVudC9jb21wb25lbnQvdHVpL3NyYy9nbG9iYWxfc3R5bGVzL3ZhcmlhYmxlcy9jb2xvcnMvdG9nZ2xlLnNjc3MgKioqIVxuICBcXCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIFRvdGFyYSBFbnRlcnByaXNlIEV4dGVuc2lvbnMuKi9cbi8qKi9cbi8qIENvcHlyaWdodCAoQykgMjAyMCBvbndhcmRzIFRvdGFyYSBMZWFybmluZyBTb2x1dGlvbnMgTFREKi9cbi8qKi9cbi8qIFRvdGFyYSBFbnRlcnByaXNlIEV4dGVuc2lvbnMgaXMgcHJvdmlkZWQgb25seSB0byBUb3RhcmEqL1xuLyogTGVhcm5pbmcgU29sdXRpb25zIExURCdzIGN1c3RvbWVycyBhbmQgcGFydG5lcnMsIHB1cnN1YW50IHRvKi9cbi8qIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZiBhIHNlcGFyYXRlIGFncmVlbWVudCB3aXRoIFRvdGFyYSovXG4vKiBMZWFybmluZyBTb2x1dGlvbnMgTFREIG9yIGl0cyBhZmZpbGlhdGUuKi9cbi8qKi9cbi8qIElmIHlvdSBkbyBub3QgaGF2ZSBhbiBhZ3JlZW1lbnQgd2l0aCBUb3RhcmEgTGVhcm5pbmcgU29sdXRpb25zKi9cbi8qIExURCwgeW91IG1heSBub3QgYWNjZXNzLCB1c2UsIG1vZGlmeSwgb3IgZGlzdHJpYnV0ZSB0aGlzIHNvZnR3YXJlLiovXG4vKiBQbGVhc2UgY29udGFjdCBbbGljZW5zaW5nQHRvdGFyYWxlYXJuaW5nLmNvbV0gZm9yIG1vcmUgaW5mb3JtYXRpb24uKi9cbi8qKi9cbi8qIEBhdXRob3IgICAgS2V2aW4gSG90dGluZ2VyIDxrZXZpbi5ob3R0aW5nZXJAdG90YXJhbGVhcm5pbmcuY29tPiovXG4vKiBAbW9kdWxlIHR1aWNrYWdlICAgdHVpKi9cblxuOnJvb3Qge1xuICAvKiovXG4gIC8qIFRvZ2dsZSBjb2xvdXJzKi9cbiAgLyoqL1xuXG4gIC8qIHRvZ2dsZSBidXR0b25zKi9cbiAgLS10b2dnbGUtYmctY29sb3I6IHZhcigtLWNvbG9yLW5ldXRyYWwtNik7XG5cbiAgLyogQnV0dG9uIGJhY2tncm91bmQqL1xuICAtLXRvZ2dsZS1idG4tYmctY29sb3I6IHRyYW5zcGFyZW50O1xuICAtLXRvZ2dsZS1idG4tYmctY29sb3ItYWN0aXZlOiB0cmFuc3BhcmVudDtcbiAgLS10b2dnbGUtYnRuLWJnLWNvbG9yLWRpc2FibGVkOiB0cmFuc3BhcmVudDtcbiAgLS10b2dnbGUtYnRuLWJnLWNvbG9yLWhvdmVyOiB0cmFuc3BhcmVudDtcbiAgLS10b2dnbGUtYnRuLWJnLWNvbG9yLXNlbGVjdGVkOiB2YXIoLS1jb2xvci1uZXV0cmFsLTEpO1xuXG4gIC8qIEJ1dHRvbiB0ZXh0IGNvbG91ciovXG4gIC0tdG9nZ2xlLWJ0bi10ZXh0LWNvbG9yOiB2YXIoLS1jb2xvci1uZXV0cmFsLTEpO1xuICAtLXRvZ2dsZS1idG4tdGV4dC1jb2xvci1hY3RpdmU6IHZhcigtLWNvbG9yLW5ldXRyYWwtMSk7XG4gIC0tdG9nZ2xlLWJ0bi10ZXh0LWNvbG9yLWRpc2FibGVkOiB2YXIoLS1jb2xvci1uZXV0cmFsLTEpO1xuICAtLXRvZ2dsZS1idG4tdGV4dC1jb2xvci1ob3ZlcjogdmFyKC0tY29sb3ItbmV1dHJhbC0xKTtcbiAgLS10b2dnbGUtYnRuLXRleHQtY29sb3Itc2VsZWN0ZWQ6IHZhcigtLWNvbG9yLW5ldXRyYWwtNyk7XG5cbiAgLyoqL1xuICAvKiBUb2dnbGUgc3dpdGNoKi9cbiAgLyoqL1xuICAtLWZvcm0tdG9nZ2xlLWRvdC1jb2xvcjogdmFyKC0tY29sb3ItbmV1dHJhbC0xKTtcbiAgLS1mb3JtLXRvZ2dsZS1vZmYtYmctY29sb3I6IHZhcigtLWNvbG9yLW5ldXRyYWwtNSk7XG4gIC0tZm9ybS10b2dnbGUtb2ZmLWJnLWNvbG9yLWhvdmVyLWZvY3VzOiB2YXIoLS1jb2xvci1uZXV0cmFsLTYpO1xuICAtLWZvcm0tdG9nZ2xlLW9mZi1iZy1jb2xvci1kaXNhYmxlZDogdmFyKC0tY29sb3ItbmV1dHJhbC00KTtcbiAgLS1mb3JtLXRvZ2dsZS1vbi1iZy1jb2xvcjogdmFyKC0tY29sb3Itc3RhdGUpO1xuICAtLWZvcm0tdG9nZ2xlLW9uLWJnLWNvbG9yLWhvdmVyLWZvY3VzOiB2YXIoLS1jb2xvci1zdGF0ZS1ob3Zlcik7XG4gIC0tZm9ybS10b2dnbGUtb24tYmctY29sb3ItZGlzYWJsZWQ6IGNvbG9yLW1peChcbiAgICBpbiBzcmdiLFxuICAgIHZhcigtLWZvcm0tdG9nZ2xlLW9uLWJnLWNvbG9yKSA2MCUsXG4gICAgdHJhbnNwYXJlbnRcbiAgKTtcbiAgLS1mb3JtLXRvZ2dsZS1vbi1ib3JkZXItY29sb3I6IHZhcigtLWNvbG9yLXN0YXRlKTtcbiAgLS1mb3JtLXRvZ2dsZS1vbi1ib3JkZXItY29sb3ItaG92ZXItZm9jdXM6IHZhcigtLWNvbG9yLXN0YXRlLWhvdmVyKTtcbiAgLS1mb3JtLXRvZ2dsZS1ib3JkZXItY29sb3I6IHZhcigtLWNvbG9yLW5ldXRyYWwtNik7XG4gIC0tZm9ybS10b2dnbGUtYm9yZGVyLWNvbG9yLWRpc2FibGVkOiB2YXIoLS1jb2xvci1uZXV0cmFsLTUpO1xuXG4gIC8qIERlcHJlY2F0ZWQgc2luY2UgVG90YXJhIDE4LjAqL1xuICAtLXRvZ2dsZS1idG4tdGV4dC1jb2xvci1mb2N1czogdmFyKC0tY29sb3ItbmV1dHJhbC0xKTtcbiAgLS10b2dnbGUtYnRuLWJnLWNvbG9yLWZvY3VzOiB0cmFuc3BhcmVudDtcbn1cblxuIiwiLyohKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiohKlxcXG4gICEqKiogY3NzIC4vY2xpZW50L3Rvb2xpbmcvd2VicGFjay9jc3NfcmF3X2xvYWRlci5qcz8/cnVsZVNldFsxXS5ydWxlc1swXS51c2VbMV0hLi9ub2RlX21vZHVsZXMvcG9zdGNzcy1sb2FkZXIvZGlzdC9janMuanM/P3J1bGVTZXRbMV0ucnVsZXNbMF0udXNlWzJdIS4vY2xpZW50L2NvbXBvbmVudC90dWkvc3JjL2dsb2JhbF9zdHlsZXMvdmFyaWFibGVzL2NvbG9ycy9ub3RpZmljYXRpb250b2FzdC5zY3NzICoqKiFcbiAgXFwqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIFRvdGFyYSBFbnRlcnByaXNlIEV4dGVuc2lvbnMuKi9cbi8qKi9cbi8qIENvcHlyaWdodCAoQykgMjAyMCBvbndhcmRzIFRvdGFyYSBMZWFybmluZyBTb2x1dGlvbnMgTFREKi9cbi8qKi9cbi8qIFRvdGFyYSBFbnRlcnByaXNlIEV4dGVuc2lvbnMgaXMgcHJvdmlkZWQgb25seSB0byBUb3RhcmEqL1xuLyogTGVhcm5pbmcgU29sdXRpb25zIExURCdzIGN1c3RvbWVycyBhbmQgcGFydG5lcnMsIHB1cnN1YW50IHRvKi9cbi8qIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZiBhIHNlcGFyYXRlIGFncmVlbWVudCB3aXRoIFRvdGFyYSovXG4vKiBMZWFybmluZyBTb2x1dGlvbnMgTFREIG9yIGl0cyBhZmZpbGlhdGUuKi9cbi8qKi9cbi8qIElmIHlvdSBkbyBub3QgaGF2ZSBhbiBhZ3JlZW1lbnQgd2l0aCBUb3RhcmEgTGVhcm5pbmcgU29sdXRpb25zKi9cbi8qIExURCwgeW91IG1heSBub3QgYWNjZXNzLCB1c2UsIG1vZGlmeSwgb3IgZGlzdHJpYnV0ZSB0aGlzIHNvZnR3YXJlLiovXG4vKiBQbGVhc2UgY29udGFjdCBbbGljZW5zaW5nQHRvdGFyYWxlYXJuaW5nLmNvbV0gZm9yIG1vcmUgaW5mb3JtYXRpb24uKi9cbi8qKi9cbi8qIEBhdXRob3IgICAgS2V2aW4gSG90dGluZ2VyIDxrZXZpbi5ob3R0aW5nZXJAdG90YXJhbGVhcm5pbmcuY29tPiovXG4vKiBAbW9kdWxlIHR1aWNrYWdlICAgdHVpKi9cblxuOnJvb3Qge1xuICAvKiovXG4gIC8qTm90aWZpY2F0aW9uIHRvYXN0Ki9cbiAgLyoqL1xuICAtLXRvYXN0LWNvbG9yLXRleHQ6IHZhcigtLWNvbG9yLW5ldXRyYWwtMSk7XG59XG5cbiIsIi8qISoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiohKlxcXG4gICEqKiogY3NzIC4vY2xpZW50L3Rvb2xpbmcvd2VicGFjay9jc3NfcmF3X2xvYWRlci5qcz8/cnVsZVNldFsxXS5ydWxlc1swXS51c2VbMV0hLi9ub2RlX21vZHVsZXMvcG9zdGNzcy1sb2FkZXIvZGlzdC9janMuanM/P3J1bGVTZXRbMV0ucnVsZXNbMF0udXNlWzJdIS4vY2xpZW50L2NvbXBvbmVudC90dWkvc3JjL2dsb2JhbF9zdHlsZXMvdmFyaWFibGVzL3R1aV9zaGFkb3dzLnNjc3MgKioqIVxuICBcXCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBUaGlzIGZpbGUgaXMgcGFydCBvZiBUb3RhcmEgRW50ZXJwcmlzZSBFeHRlbnNpb25zLiovXG4vKiovXG4vKiBDb3B5cmlnaHQgKEMpIDIwMjAgb253YXJkcyBUb3RhcmEgTGVhcm5pbmcgU29sdXRpb25zIExURCovXG4vKiovXG4vKiBUb3RhcmEgRW50ZXJwcmlzZSBFeHRlbnNpb25zIGlzIHByb3ZpZGVkIG9ubHkgdG8gVG90YXJhKi9cbi8qIExlYXJuaW5nIFNvbHV0aW9ucyBMVEQncyBjdXN0b21lcnMgYW5kIHBhcnRuZXJzLCBwdXJzdWFudCB0byovXG4vKiB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgb2YgYSBzZXBhcmF0ZSBhZ3JlZW1lbnQgd2l0aCBUb3RhcmEqL1xuLyogTGVhcm5pbmcgU29sdXRpb25zIExURCBvciBpdHMgYWZmaWxpYXRlLiovXG4vKiovXG4vKiBJZiB5b3UgZG8gbm90IGhhdmUgYW4gYWdyZWVtZW50IHdpdGggVG90YXJhIExlYXJuaW5nIFNvbHV0aW9ucyovXG4vKiBMVEQsIHlvdSBtYXkgbm90IGFjY2VzcywgdXNlLCBtb2RpZnksIG9yIGRpc3RyaWJ1dGUgdGhpcyBzb2Z0d2FyZS4qL1xuLyogUGxlYXNlIGNvbnRhY3QgW2xpY2Vuc2luZ0B0b3RhcmFsZWFybmluZy5jb21dIGZvciBtb3JlIGluZm9ybWF0aW9uLiovXG4vKiovXG4vKiBAYXV0aG9yICAgIEtldmluIEhvdHRpbmdlciA8a2V2aW4uaG90dGluZ2VyQHRvdGFyYWxlYXJuaW5nLmNvbT4qL1xuLyogQG1vZHVsZSB0dWlja2FnZSAgIHR1aSovXG5cbjpyb290IHtcbiAgLyoqL1xuICAvKiBTaGFkb3cgZGVwdGhzKi9cbiAgLyoqL1xuXG4gIC0tc2hhZG93LW5vbmU6IDAgMCAwIDAgdHJhbnNwYXJlbnQ7XG4gIC0tc2hhZG93LTI6IDAgM3B4IDZweCAwIHJnYmEoMCwgMCwgMCwgMC4yKTtcbiAgLS1zaGFkb3ctMzogMCA2cHggNnB4IDAgcmdiYSgwLCAwLCAwLCAwLjE1KTtcbiAgLS1zaGFkb3ctNDogMCAxMHB4IDEwcHggMCByZ2JhKDAsIDAsIDAsIDAuMyk7XG5cbiAgLyogSW5wdXQgYm94LXNoYWRvd3MqL1xuICAtLWZvcm0taW5wdXQtc2hhZG93LWZvY3VzOiBub25lO1xuICAtLWZvcm0taW5wdXQtc2hhZG93LWludmFsaWQ6IDAgMCAwIHZhcigtLWZvcm0taW5wdXQtaW52YWxpZC1zaGFkb3ctc2l6ZSlcbiAgICB2YXIoLS1mb3JtLWlucHV0LWJvcmRlci1jb2xvci1pbnZhbGlkKTtcbiAgLS1mb3JtLWlucHV0LXNoYWRvdy1pbnZhbGlkLWZvY3VzOiBub25lO1xuXG4gIC0tZm9ybS1yYW5nZS10aHVtYi1zaGFkb3c6IDAgMXB4IDNweCByZ2JhKDAsIDAsIDAsIDAuNik7XG59XG5cbiIsIi8qISoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqISpcXFxuICAhKioqIGNzcyAuL2NsaWVudC90b29saW5nL3dlYnBhY2svY3NzX3Jhd19sb2FkZXIuanM/P3J1bGVTZXRbMV0ucnVsZXNbMF0udXNlWzFdIS4vbm9kZV9tb2R1bGVzL3Bvc3Rjc3MtbG9hZGVyL2Rpc3QvY2pzLmpzPz9ydWxlU2V0WzFdLnJ1bGVzWzBdLnVzZVsyXSEuL2NsaWVudC9jb21wb25lbnQvdHVpL3NyYy9nbG9iYWxfc3R5bGVzL3ZhcmlhYmxlcy90dWlfc2lkZV9wYW5lbF9uYXYuc2NzcyAqKiohXG4gIFxcKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBUaGlzIGZpbGUgaXMgcGFydCBvZiBUb3RhcmEgRW50ZXJwcmlzZSBFeHRlbnNpb25zLiovXG4vKiovXG4vKiBDb3B5cmlnaHQgKEMpIDIwMjAgb253YXJkcyBUb3RhcmEgTGVhcm5pbmcgU29sdXRpb25zIExURCovXG4vKiovXG4vKiBUb3RhcmEgRW50ZXJwcmlzZSBFeHRlbnNpb25zIGlzIHByb3ZpZGVkIG9ubHkgdG8gVG90YXJhKi9cbi8qIExlYXJuaW5nIFNvbHV0aW9ucyBMVEQncyBjdXN0b21lcnMgYW5kIHBhcnRuZXJzLCBwdXJzdWFudCB0byovXG4vKiB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgb2YgYSBzZXBhcmF0ZSBhZ3JlZW1lbnQgd2l0aCBUb3RhcmEqL1xuLyogTGVhcm5pbmcgU29sdXRpb25zIExURCBvciBpdHMgYWZmaWxpYXRlLiovXG4vKiovXG4vKiBJZiB5b3UgZG8gbm90IGhhdmUgYW4gYWdyZWVtZW50IHdpdGggVG90YXJhIExlYXJuaW5nIFNvbHV0aW9ucyovXG4vKiBMVEQsIHlvdSBtYXkgbm90IGFjY2VzcywgdXNlLCBtb2RpZnksIG9yIGRpc3RyaWJ1dGUgdGhpcyBzb2Z0d2FyZS4qL1xuLyogUGxlYXNlIGNvbnRhY3QgW2xpY2Vuc2luZ0B0b3RhcmFsZWFybmluZy5jb21dIGZvciBtb3JlIGluZm9ybWF0aW9uLiovXG4vKiovXG4vKiBAYXV0aG9yICAgIEtldmluIEhvdHRpbmdlciA8a2V2aW4uaG90dGluZ2VyQHRvdGFyYWxlYXJuaW5nLmNvbT4qL1xuLyogQG1vZHVsZSB0dWlja2FnZSAgIHR1aSovXG5cbjpyb290IHtcbiAgLS1zaWRlcGFuZWwtbmF2aWdhdGlvbi1pdGVtLXBhZGRpbmctbGVmdDogdmFyKC0tZ2FwLTgpO1xufVxuXG4iLCIvKiEqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiEqXFxcbiAgISoqKiBjc3MgLi9jbGllbnQvdG9vbGluZy93ZWJwYWNrL2Nzc19yYXdfbG9hZGVyLmpzPz9ydWxlU2V0WzFdLnJ1bGVzWzBdLnVzZVsxXSEuL25vZGVfbW9kdWxlcy9wb3N0Y3NzLWxvYWRlci9kaXN0L2Nqcy5qcz8/cnVsZVNldFsxXS5ydWxlc1swXS51c2VbMl0hLi9jbGllbnQvY29tcG9uZW50L3R1aS9zcmMvZ2xvYmFsX3N0eWxlcy92YXJpYWJsZXMvdHVpX3Byb2dyZXNzX3RyYWNrZXJfbmF2LnNjc3MgKioqIVxuICBcXCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogVGhpcyBmaWxlIGlzIHBhcnQgb2YgVG90YXJhIEVudGVycHJpc2UgRXh0ZW5zaW9ucy4qL1xuLyoqL1xuLyogQ29weXJpZ2h0IChDKSAyMDIxIG9ud2FyZHMgVG90YXJhIExlYXJuaW5nIFNvbHV0aW9ucyBMVEQqL1xuLyoqL1xuLyogVG90YXJhIEVudGVycHJpc2UgRXh0ZW5zaW9ucyBpcyBwcm92aWRlZCBvbmx5IHRvIFRvdGFyYSovXG4vKiBMZWFybmluZyBTb2x1dGlvbnMgTFREJ3MgY3VzdG9tZXJzIGFuZCBwYXJ0bmVycywgcHVyc3VhbnQgdG8qL1xuLyogdGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIG9mIGEgc2VwYXJhdGUgYWdyZWVtZW50IHdpdGggVG90YXJhKi9cbi8qIExlYXJuaW5nIFNvbHV0aW9ucyBMVEQgb3IgaXRzIGFmZmlsaWF0ZS4qL1xuLyoqL1xuLyogSWYgeW91IGRvIG5vdCBoYXZlIGFuIGFncmVlbWVudCB3aXRoIFRvdGFyYSBMZWFybmluZyBTb2x1dGlvbnMqL1xuLyogTFRELCB5b3UgbWF5IG5vdCBhY2Nlc3MsIHVzZSwgbW9kaWZ5LCBvciBkaXN0cmlidXRlIHRoaXMgc29mdHdhcmUuKi9cbi8qIFBsZWFzZSBjb250YWN0IFtsaWNlbnNpbmdAdG90YXJhbGVhcm5pbmcuY29tXSBmb3IgbW9yZSBpbmZvcm1hdGlvbi4qL1xuLyoqL1xuLyogQGF1dGhvciAgICBEYXZlIFdhbGxhY2UgPGRhdmUud2FsbGFjZUB0b3RhcmFsZWFybmluZy5jb20+Ki9cbi8qIEBtb2R1bGUgdHVpY2thZ2UgICB0dWkqL1xuXG46cm9vdCB7XG4gIC8qIGAtc2l6ZS0tYCB1bml0cyBzaG91bGQgYmUgaW4gZWl0aGVyIGBweGAgb3IgYHJlbWAgZm9yIEpTIGNvbnRhaW5lciBxdWVyeWluZyovXG4gIC0tcHJvZ3Jlc3MtdHJhY2tlci1ob3Jpem9udGFsLXNpemUtLXNtYWxsOiAje3JlbS1weCgxMDApfTtcbiAgLS1wcm9ncmVzcy10cmFja2VyLWhvcml6b250YWwtc2l6ZS0tbWVkaXVtOiAje3JlbS1weCgyMDApfTtcbiAgLS1wcm9ncmVzcy10cmFja2VyLWhvcml6b250YWwtc2l6ZS0tbGFyZ2U6ICN7cmVtLXB4KDI1MCl9O1xuICAtLXByb2dyZXNzLXRyYWNrZXItaG9yaXpvbnRhbC1nYXAtLXNtYWxsOiB2YXIoLS1nYXAtMik7XG4gIC0tcHJvZ3Jlc3MtdHJhY2tlci1ob3Jpem9udGFsLWdhcC0tbWVkaXVtOiB2YXIoLS1nYXAtNCk7XG4gIC0tcHJvZ3Jlc3MtdHJhY2tlci1ob3Jpem9udGFsLWdhcC0tbGFyZ2U6IHZhcigtLWdhcC02KTtcbiAgLS1wcm9ncmVzcy10cmFja2VyLXZlcnRpY2FsLWdhcC0tc21hbGw6IHZhcigtLWdhcC0yKTtcbiAgLS1wcm9ncmVzcy10cmFja2VyLXZlcnRpY2FsLWdhcC0tbWVkaXVtOiB2YXIoLS1nYXAtNCk7XG4gIC0tcHJvZ3Jlc3MtdHJhY2tlci12ZXJ0aWNhbC1nYXAtLWxhcmdlOiB2YXIoLS1nYXAtNik7XG4gIC0tcHJvZ3Jlc3N0cmFja2VyLWZ1bGwtbWFya2VyLXNpemU6ICN7cmVtLXB4KDI4KX07XG4gIC0tcHJvZ3Jlc3N0cmFja2VyLWNvbm5lY3Rvci1nYXA6ICN7cmVtLXB4KDUpfTtcbn1cblxuIiwiLyohKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiohKlxcXG4gICEqKiogY3NzIC4vY2xpZW50L3Rvb2xpbmcvd2VicGFjay9jc3NfcmF3X2xvYWRlci5qcz8/cnVsZVNldFsxXS5ydWxlc1swXS51c2VbMV0hLi9ub2RlX21vZHVsZXMvcG9zdGNzcy1sb2FkZXIvZGlzdC9janMuanM/P3J1bGVTZXRbMV0ucnVsZXNbMF0udXNlWzJdIS4vY2xpZW50L2NvbXBvbmVudC90dWkvc3JjL2dsb2JhbF9zdHlsZXMvdmFyaWFibGVzL3R1aV9yYW5nZS5zY3NzICoqKiFcbiAgXFwqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIFRvdGFyYSBFbnRlcnByaXNlIEV4dGVuc2lvbnMuKi9cbi8qKi9cbi8qIENvcHlyaWdodCAoQykgMjAyMiBvbndhcmRzIFRvdGFyYSBMZWFybmluZyBTb2x1dGlvbnMgTFREKi9cbi8qKi9cbi8qIFRvdGFyYSBFbnRlcnByaXNlIEV4dGVuc2lvbnMgaXMgcHJvdmlkZWQgb25seSB0byBUb3RhcmEqL1xuLyogTGVhcm5pbmcgU29sdXRpb25zIExURCdzIGN1c3RvbWVycyBhbmQgcGFydG5lcnMsIHB1cnN1YW50IHRvKi9cbi8qIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZiBhIHNlcGFyYXRlIGFncmVlbWVudCB3aXRoIFRvdGFyYSovXG4vKiBMZWFybmluZyBTb2x1dGlvbnMgTFREIG9yIGl0cyBhZmZpbGlhdGUuKi9cbi8qKi9cbi8qIElmIHlvdSBkbyBub3QgaGF2ZSBhbiBhZ3JlZW1lbnQgd2l0aCBUb3RhcmEgTGVhcm5pbmcgU29sdXRpb25zKi9cbi8qIExURCwgeW91IG1heSBub3QgYWNjZXNzLCB1c2UsIG1vZGlmeSwgb3IgZGlzdHJpYnV0ZSB0aGlzIHNvZnR3YXJlLiovXG4vKiBQbGVhc2UgY29udGFjdCBbbGljZW5zaW5nQHRvdGFyYWxlYXJuaW5nLmNvbV0gZm9yIG1vcmUgaW5mb3JtYXRpb24uKi9cbi8qKi9cbi8qIEBhdXRob3IgICAgUm9kbmV5IENydWRlbi1Qb3dlbGwgPHJvZG5leS5jcnVkZW4tcG93ZWxsQHRvdGFyYWxlYXJuaW5nLmNvbT4qL1xuLyogQG1vZHVsZSB0dWlja2FnZSAgIHR1aSovXG5cbjpyb290IHtcbiAgLyogcmVtIGRvZXMgbm90IHdvcmsgY29ycmVjdGx5IGluIElFKi9cbiAgLS1mb3JtLXJhbmdlLWhlaWdodDogMjBweDtcbiAgLS1mb3JtLXJhbmdlLXRyYWNrLWhlaWdodDogMTBweDtcbiAgLS1mb3JtLXJhbmdlLXRodW1iLXNpemU6IDE4cHg7XG4gIC8qIHByZXR0aWVyLWlnbm9yZSovXG4gIC0tZm9ybS1yYW5nZS10aHVtYi1tYXJnaW4tdG9wOiBjYWxjKCh2YXIoLS1mb3JtLXJhbmdlLXRyYWNrLWhlaWdodCkgLyAyKSAtICh2YXIoLS1mb3JtLXJhbmdlLXRodW1iLXNpemUpIC8gMikpO1xuICAtLWZvcm0tcmFuZ2UtdGh1bWItYm9yZGVyLXJhZGl1czogNTAlO1xufVxuXG5AbWl4aW4gdHVpLXJhbmdlLXRyYWNrKCkge1xuICBoZWlnaHQ6IHZhcigtLWZvcm0tcmFuZ2UtdHJhY2staGVpZ2h0KTtcbiAgYmFja2dyb3VuZDogdmFyKC0tY29sb3ItbmV1dHJhbC00KTtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tYm9yZGVyLXJhZGl1cy1zbWFsbCk7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgLXdlYmtpdC1wcmludC1jb2xvci1hZGp1c3Q6IGV4YWN0O1xuICAgICAgICAgIHByaW50LWNvbG9yLWFkanVzdDogZXhhY3Q7XG59XG5cbkBtaXhpbiB0dWktcmFuZ2UtdGh1bWIoKSB7XG4gIHdpZHRoOiB2YXIoLS1mb3JtLXJhbmdlLXRodW1iLXNpemUpO1xuICBoZWlnaHQ6IHZhcigtLWZvcm0tcmFuZ2UtdGh1bWItc2l6ZSk7XG4gIGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLW5ldXRyYWwtNSk7XG4gIGJvcmRlcjogbm9uZTtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tZm9ybS1yYW5nZS10aHVtYi1ib3JkZXItcmFkaXVzKTtcbiAgYm94LXNoYWRvdzogdmFyKC0tZm9ybS1yYW5nZS10aHVtYi1zaGFkb3cpO1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG5cbiIsIi8qISoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiEqXFxcbiAgISoqKiBjc3MgLi9jbGllbnQvdG9vbGluZy93ZWJwYWNrL2Nzc19yYXdfbG9hZGVyLmpzPz9ydWxlU2V0WzFdLnJ1bGVzWzBdLnVzZVsxXSEuL25vZGVfbW9kdWxlcy9wb3N0Y3NzLWxvYWRlci9kaXN0L2Nqcy5qcz8/cnVsZVNldFsxXS5ydWxlc1swXS51c2VbMl0hLi9jbGllbnQvY29tcG9uZW50L3R1aS9zcmMvZ2xvYmFsX3N0eWxlcy92YXJpYWJsZXMvdHVpX2xheW91dC5zY3NzICoqKiFcbiAgXFwqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBUaGlzIGZpbGUgaXMgcGFydCBvZiBUb3RhcmEgRW50ZXJwcmlzZSBFeHRlbnNpb25zLiovXG4vKiovXG4vKiBDb3B5cmlnaHQgKEMpIDIwMjAgb253YXJkcyBUb3RhcmEgTGVhcm5pbmcgU29sdXRpb25zIExURCovXG4vKiovXG4vKiBUb3RhcmEgRW50ZXJwcmlzZSBFeHRlbnNpb25zIGlzIHByb3ZpZGVkIG9ubHkgdG8gVG90YXJhKi9cbi8qIExlYXJuaW5nIFNvbHV0aW9ucyBMVEQncyBjdXN0b21lcnMgYW5kIHBhcnRuZXJzLCBwdXJzdWFudCB0byovXG4vKiB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgb2YgYSBzZXBhcmF0ZSBhZ3JlZW1lbnQgd2l0aCBUb3RhcmEqL1xuLyogTGVhcm5pbmcgU29sdXRpb25zIExURCBvciBpdHMgYWZmaWxpYXRlLiovXG4vKiovXG4vKiBJZiB5b3UgZG8gbm90IGhhdmUgYW4gYWdyZWVtZW50IHdpdGggVG90YXJhIExlYXJuaW5nIFNvbHV0aW9ucyovXG4vKiBMVEQsIHlvdSBtYXkgbm90IGFjY2VzcywgdXNlLCBtb2RpZnksIG9yIGRpc3RyaWJ1dGUgdGhpcyBzb2Z0d2FyZS4qL1xuLyogUGxlYXNlIGNvbnRhY3QgW2xpY2Vuc2luZ0B0b3RhcmFsZWFybmluZy5jb21dIGZvciBtb3JlIGluZm9ybWF0aW9uLiovXG4vKiovXG4vKiBAYXV0aG9yICAgIFNpbW9uIENoZXN0ZXIgPHNpbW9uLmNoZXN0ZXJAdG90YXJhbGVhcm5pbmcuY29tPiovXG4vKiBAbW9kdWxlIHR1aWNrYWdlICAgdHVpKi9cblxuOnJvb3Qge1xuICAtLXBhZ2UtY29udGVudC1wYWRkaW5nOiAje2dhcCg0KX07XG4gIC0tcGFnZS1jb250ZW50LXBhZGRpbmctZGVza3RvcDogI3tnYXAoNCl9O1xufVxuXG4vKiBTaWRlYmFyIGxheW91dCB0aGF0IGlzIHJlc3BvbnNpdmUgYmFzZWQgb24gdGhlIHNpemUgb2YgaXRzIGNvbnRhaW5lciwgcmF0aGVyKi9cbi8qIHRoYW4gdGhlIHZpZXdwb3J0LiovXG5AbWl4aW4gdHVpLWxheW91dC1zaWRlYmFyKFxuICAvKiB3aWR0aCBvZiB0aGUgc2lkZWJhciovXG4gICAgJHNpZGUtd2lkdGg6ICdjb250ZW50JyxcbiAgLyogd2lkdGggb2YgdGhlIGNvbnRlbnQqL1xuICAgICRjb250ZW50LW1pbi13aWR0aDogNTAlLFxuICAvKiBzaXplIG9mIHRoZSBndXR0ZXIgYmV0d2VlbiBzaWRlYmFyIGFuZCBjb250ZW50Ki9cbiAgICAkZ3V0dGVyOiAwLFxuICAvKiBzZWxlY3RvciBmb3IgY2hpbGQgc2lkZWJhciBlbGVtZW50Ki9cbiAgICAkc2lkZWJhci1zZWxlY3RvcjogJzpudGgtY2hpbGQoMSknLFxuICAvKiBzZWxlY3RvciBmb3IgY2hpbGQgY29udGVudCBlbGVtZW50Ki9cbiAgICAkY29udGVudC1zZWxlY3RvcjogJzpudGgtY2hpbGQoMiknXG4pIHtcbiAgJiB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICBnYXA6ICRndXR0ZXI7XG5cbiAgICAmID4gI3skc2lkZWJhci1zZWxlY3Rvcn0ge1xuICAgICAgQGlmICRzaWRlLXdpZHRoICE9ICdjb250ZW50JyB7XG4gICAgICAgIGZsZXgtYmFzaXM6ICRzaWRlLXdpZHRoO1xuICAgICAgfVxuICAgICAgZmxleC1ncm93OiAwO1xuICAgIH1cblxuICAgICYgPiAjeyRjb250ZW50LXNlbGVjdG9yfSB7XG4gICAgICBmbGV4LWJhc2lzOiAwO1xuICAgICAgLyogU2V0IGEgcmVhbGx5IGhpZ2ggZmxleC1ncm93IHZhbHVlIHNvIGl0IHRha2VzIHVwIGFsbCB0aGUgYXZhaWxhYmxlKi9cbiAgICAgIC8qIHNwYWNlLiBUaGlzIHdpbGwgc3F1aXNoIHRoZSBzaWRlYmFyIGRvd24gdG8gaXRzIGludHJpbnNpYyB3aWR0aCovXG4gICAgICAvKiAob3IgZmxleC1iYXNpcywgaWYgc2V0KS4qL1xuICAgICAgZmxleC1ncm93OiA5OTk7XG4gICAgICAvKiBUaGlzIGVsZW1lbnQgY2Fubm90IHNocmluayBiZXlvbmQgbWluLXdpZHRoLCBzbyBpdCB3aWxsIHdyYXAgb24gdG8gdGhlKi9cbiAgICAgIC8qIG5leHQgbGluZSAoc3dpdGNoIHRvIHZlcnRpY2FsKS4qL1xuICAgICAgbWluLXdpZHRoOiBjYWxjKCN7JGNvbnRlbnQtbWluLXdpZHRofSAtICN7JGd1dHRlcn0pO1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gbGF5b3V0LXBhZ2UtcGFkZGluZygkc2lkZXM6IGxlZnQgcmlnaHQpIHtcbiAgQGVhY2ggJHNpZGUgaW4gJHNpZGVzIHtcbiAgICBwYWRkaW5nLSN7JHNpZGV9OiB2YXIoLS1wYWdlLWNvbnRlbnQtcGFkZGluZyk7XG4gIH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDEwMDBweCkge1xuICAgIEBlYWNoICRzaWRlIGluICRzaWRlcyB7XG4gICAgICBwYWRkaW5nLSN7JHNpZGV9OiB2YXIoLS1wYWdlLWNvbnRlbnQtcGFkZGluZy1kZXNrdG9wKTtcbiAgICB9XG4gIH1cbn1cblxuIiwiLyohKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiEqXFxcbiAgISoqKiBjc3MgLi9jbGllbnQvdG9vbGluZy93ZWJwYWNrL2Nzc19yYXdfbG9hZGVyLmpzPz9ydWxlU2V0WzFdLnJ1bGVzWzBdLnVzZVsxXSEuL25vZGVfbW9kdWxlcy9wb3N0Y3NzLWxvYWRlci9kaXN0L2Nqcy5qcz8/cnVsZVNldFsxXS5ydWxlc1swXS51c2VbMl0hLi9jbGllbnQvY29tcG9uZW50L3R1aS9zcmMvZ2xvYmFsX3N0eWxlcy92YXJpYWJsZXMvdHVpX2FuaW1hdGlvbnMuc2NzcyAqKiohXG4gIFxcKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIFRvdGFyYSBFbnRlcnByaXNlIEV4dGVuc2lvbnMuKi9cbi8qKi9cbi8qIENvcHlyaWdodCAoQykgMjAyMCBvbndhcmRzIFRvdGFyYSBMZWFybmluZyBTb2x1dGlvbnMgTFREKi9cbi8qKi9cbi8qIFRvdGFyYSBFbnRlcnByaXNlIEV4dGVuc2lvbnMgaXMgcHJvdmlkZWQgb25seSB0byBUb3RhcmEqL1xuLyogTGVhcm5pbmcgU29sdXRpb25zIExURCdzIGN1c3RvbWVycyBhbmQgcGFydG5lcnMsIHB1cnN1YW50IHRvKi9cbi8qIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZiBhIHNlcGFyYXRlIGFncmVlbWVudCB3aXRoIFRvdGFyYSovXG4vKiBMZWFybmluZyBTb2x1dGlvbnMgTFREIG9yIGl0cyBhZmZpbGlhdGUuKi9cbi8qKi9cbi8qIElmIHlvdSBkbyBub3QgaGF2ZSBhbiBhZ3JlZW1lbnQgd2l0aCBUb3RhcmEgTGVhcm5pbmcgU29sdXRpb25zKi9cbi8qIExURCwgeW91IG1heSBub3QgYWNjZXNzLCB1c2UsIG1vZGlmeSwgb3IgZGlzdHJpYnV0ZSB0aGlzIHNvZnR3YXJlLiovXG4vKiBQbGVhc2UgY29udGFjdCBbbGljZW5zaW5nQHRvdGFyYWxlYXJuaW5nLmNvbV0gZm9yIG1vcmUgaW5mb3JtYXRpb24uKi9cbi8qKi9cbi8qIEBhdXRob3IgU2ltb24gQ2hlc3RlciA8c2ltb24uY2hlc3RlckB0b3RhcmFsZWFybmluZy5jb20+Ki9cbi8qIEBtb2R1bGUgdHVpKi9cblxuQGZ1bmN0aW9uIHR1aS10cmFuc2l0aW9uKCR0eXBlLCAkcHJvcGVydHkpIHtcbiAgQHJldHVybiAkcHJvcGVydHkgdmFyKC0tdHJhbnNpdGlvbi0jeyR0eXBlfS1kdXJhdGlvbilcbiAgICB2YXIoLS10cmFuc2l0aW9uLSN7JHR5cGV9LWZ1bmN0aW9uKTtcbn1cblxuQGZ1bmN0aW9uIHR1aS10cmFuc2l0aW9ucygkdHlwZSwgJHByb3BlcnRpZXMpIHtcbiAgJG5ldy1saXN0OiAoKTtcbiAgQGVhY2ggJHByb3BlcnR5IGluICRwcm9wZXJ0aWVzIHtcbiAgICAkbmV3LWxpc3Q6IGFwcGVuZCgkbmV3LWxpc3QsIHR1aS10cmFuc2l0aW9uKCR0eXBlLCAkcHJvcGVydHkpLCAnY29tbWEnKTtcbiAgfVxuICBAcmV0dXJuICRuZXctbGlzdDtcbn1cblxuOnJvb3Qge1xuICAtLXRyYW5zaXRpb24tZm9ybS1mdW5jdGlvbjogbGluZWFyO1xuICAtLXRyYW5zaXRpb24tZm9ybS1kdXJhdGlvbjogMHM7XG4gIC0tdHJhbnNpdGlvbi1tb2RhbC1mdW5jdGlvbjogZWFzZS1vdXQ7XG4gIC0tdHJhbnNpdGlvbi1tb2RhbC1kdXJhdGlvbjogMC4xNXM7XG4gIC0tdHJhbnNpdGlvbi1zaWRlcGFuZWwtY29udGVudC1mdW5jdGlvbjogbGluZWFyO1xuICAtLXRyYW5zaXRpb24tc2lkZXBhbmVsLWNvbnRlbnQtZHVyYXRpb246IDAuMXM7XG4gIC0tdHJhbnNpdGlvbi1wcm9ncmVzcy1mdW5jdGlvbjogZWFzZS1vdXQ7XG4gIC0tdHJhbnNpdGlvbi1wcm9ncmVzcy1kdXJhdGlvbjogMC4zcztcbiAgLS10cmFuc2l0aW9uLWJ1dHRvbi1mdW5jdGlvbjogZWFzZTtcbiAgLS10cmFuc2l0aW9uLWJ1dHRvbi1kdXJhdGlvbjogMC4xNXM7XG4gIC0tdHJhbnNpdGlvbi10b2dnbGUtZnVuY3Rpb246IGVhc2U7XG4gIC0tdHJhbnNpdGlvbi10b2dnbGUtZHVyYXRpb246IDAuMnM7XG59XG5cbiIsIi8qISoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiEqXFxcbiAgISoqKiBjc3MgLi9jbGllbnQvdG9vbGluZy93ZWJwYWNrL2Nzc19yYXdfbG9hZGVyLmpzPz9ydWxlU2V0WzFdLnJ1bGVzWzBdLnVzZVsxXSEuL25vZGVfbW9kdWxlcy9wb3N0Y3NzLWxvYWRlci9kaXN0L2Nqcy5qcz8/cnVsZVNldFsxXS5ydWxlc1swXS51c2VbMl0hLi9jbGllbnQvY29tcG9uZW50L3R1aS9zcmMvZ2xvYmFsX3N0eWxlcy92YXJpYWJsZXMvdHVpX21vZGFscy5zY3NzICoqKiFcbiAgXFwqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBUaGlzIGZpbGUgaXMgcGFydCBvZiBUb3RhcmEgRW50ZXJwcmlzZSBFeHRlbnNpb25zLiovXG4vKiovXG4vKiBDb3B5cmlnaHQgKEMpIDIwMjAgb253YXJkcyBUb3RhcmEgTGVhcm5pbmcgU29sdXRpb25zIExURCovXG4vKiovXG4vKiBUb3RhcmEgRW50ZXJwcmlzZSBFeHRlbnNpb25zIGlzIHByb3ZpZGVkIG9ubHkgdG8gVG90YXJhKi9cbi8qIExlYXJuaW5nIFNvbHV0aW9ucyBMVEQncyBjdXN0b21lcnMgYW5kIHBhcnRuZXJzLCBwdXJzdWFudCB0byovXG4vKiB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgb2YgYSBzZXBhcmF0ZSBhZ3JlZW1lbnQgd2l0aCBUb3RhcmEqL1xuLyogTGVhcm5pbmcgU29sdXRpb25zIExURCBvciBpdHMgYWZmaWxpYXRlLiovXG4vKiovXG4vKiBJZiB5b3UgZG8gbm90IGhhdmUgYW4gYWdyZWVtZW50IHdpdGggVG90YXJhIExlYXJuaW5nIFNvbHV0aW9ucyovXG4vKiBMVEQsIHlvdSBtYXkgbm90IGFjY2VzcywgdXNlLCBtb2RpZnksIG9yIGRpc3RyaWJ1dGUgdGhpcyBzb2Z0d2FyZS4qL1xuLyogUGxlYXNlIGNvbnRhY3QgW2xpY2Vuc2luZ0B0b3RhcmFsZWFybmluZy5jb21dIGZvciBtb3JlIGluZm9ybWF0aW9uLiovXG4vKiovXG4vKiBAYXV0aG9yICAgIEtldmluIEhvdHRpbmdlciA8a2V2aW4uaG90dGluZ2VyQHRvdGFyYWxlYXJuaW5nLmNvbT4qL1xuLyogQG1vZHVsZSB0dWlja2FnZSAgIHR1aSovXG5cbjpyb290IHtcbiAgLS1tb2RhbC1jb250YWluZXItcGFkZGluZzogdmFyKC0tZ2FwLTEyKTtcbiAgLS1tb2RhbC1zaGVldC1wYWRkaW5nOiB2YXIoLS1nYXAtMTIpO1xuICAtLW1vZGFsLWJvcmRlci1yYWRpdXM6ICN7cmVtLXB4KDEyKX07XG5cbiAgLS1tb2RhbC1jb250ZW50LW91dGVyLXBhZGRpbmc6IHZhcigtLWdhcC02KTtcblxuICAvKiBEZXByZWNhdGVkIHNpbmNlIFRvdGFyYSAxOC4wKi9cbiAgLS1tb2RhbC1jb250ZW50LXNlcGFyYXRpb246IHZhcigtLWdhcC0yKTtcbiAgLS1tb2RhbC1jb250ZW50LXNlcGFyYXRpb24tbGFyZ2U6IHZhcigtLWdhcC04KTtcbn1cblxuIiwiLyohKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqISpcXFxuICAhKioqIGNzcyAuL2NsaWVudC90b29saW5nL3dlYnBhY2svY3NzX3Jhd19sb2FkZXIuanM/P3J1bGVTZXRbMV0ucnVsZXNbMF0udXNlWzFdIS4vbm9kZV9tb2R1bGVzL3Bvc3Rjc3MtbG9hZGVyL2Rpc3QvY2pzLmpzPz9ydWxlU2V0WzFdLnJ1bGVzWzBdLnVzZVsyXSEuL2NsaWVudC9jb21wb25lbnQvdHVpL3NyYy9nbG9iYWxfc3R5bGVzL3ZhcmlhYmxlcy90dWlfZW1iZWRzLnNjc3MgKioqIVxuICBcXCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIFRvdGFyYSBFbnRlcnByaXNlIEV4dGVuc2lvbnMuKi9cbi8qKi9cbi8qIENvcHlyaWdodCAoQykgMjAyMSBvbndhcmRzIFRvdGFyYSBMZWFybmluZyBTb2x1dGlvbnMgTFREKi9cbi8qKi9cbi8qIFRvdGFyYSBFbnRlcnByaXNlIEV4dGVuc2lvbnMgaXMgcHJvdmlkZWQgb25seSB0byBUb3RhcmEqL1xuLyogTGVhcm5pbmcgU29sdXRpb25zIExURCdzIGN1c3RvbWVycyBhbmQgcGFydG5lcnMsIHB1cnN1YW50IHRvKi9cbi8qIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZiBhIHNlcGFyYXRlIGFncmVlbWVudCB3aXRoIFRvdGFyYSovXG4vKiBMZWFybmluZyBTb2x1dGlvbnMgTFREIG9yIGl0cyBhZmZpbGlhdGUuKi9cbi8qKi9cbi8qIElmIHlvdSBkbyBub3QgaGF2ZSBhbiBhZ3JlZW1lbnQgd2l0aCBUb3RhcmEgTGVhcm5pbmcgU29sdXRpb25zKi9cbi8qIExURCwgeW91IG1heSBub3QgYWNjZXNzLCB1c2UsIG1vZGlmeSwgb3IgZGlzdHJpYnV0ZSB0aGlzIHNvZnR3YXJlLiovXG4vKiBQbGVhc2UgY29udGFjdCBbbGljZW5zaW5nQHRvdGFyYWxlYXJuaW5nLmNvbV0gZm9yIG1vcmUgaW5mb3JtYXRpb24uKi9cbi8qKi9cbi8qIEBhdXRob3IgICAgU2ltb24gQ2hlc3RlciA8c2ltb24uY2hlc3RlckB0b3RhcmFsZWFybmluZy5jb20+Ki9cbi8qIEBtb2R1bGUgdHVpY2thZ2UgICB0dWkqL1xuXG46cm9vdCB7XG4gIC0tZW1iZWRkZWQtbWVkaWEtbWF4LXdpZHRoOiA3MDBweDtcbn1cblxuIiwiLyohKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiohKlxcXG4gICEqKiogY3NzIC4vY2xpZW50L3Rvb2xpbmcvd2VicGFjay9jc3NfcmF3X2xvYWRlci5qcz8/cnVsZVNldFsxXS5ydWxlc1swXS51c2VbMV0hLi9ub2RlX21vZHVsZXMvcG9zdGNzcy1sb2FkZXIvZGlzdC9janMuanM/P3J1bGVTZXRbMV0ucnVsZXNbMF0udXNlWzJdIS4vY2xpZW50L2NvbXBvbmVudC90dWkvc3JjL2dsb2JhbF9zdHlsZXMvdmFyaWFibGVzL3R1aV9mb3Jtcy5zY3NzICoqKiFcbiAgXFwqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIFRvdGFyYSBFbnRlcnByaXNlIEV4dGVuc2lvbnMuKi9cbi8qKi9cbi8qIENvcHlyaWdodCAoQykgMjAyMCBvbndhcmRzIFRvdGFyYSBMZWFybmluZyBTb2x1dGlvbnMgTFREKi9cbi8qKi9cbi8qIFRvdGFyYSBFbnRlcnByaXNlIEV4dGVuc2lvbnMgaXMgcHJvdmlkZWQgb25seSB0byBUb3RhcmEqL1xuLyogTGVhcm5pbmcgU29sdXRpb25zIExURCdzIGN1c3RvbWVycyBhbmQgcGFydG5lcnMsIHB1cnN1YW50IHRvKi9cbi8qIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZiBhIHNlcGFyYXRlIGFncmVlbWVudCB3aXRoIFRvdGFyYSovXG4vKiBMZWFybmluZyBTb2x1dGlvbnMgTFREIG9yIGl0cyBhZmZpbGlhdGUuKi9cbi8qKi9cbi8qIElmIHlvdSBkbyBub3QgaGF2ZSBhbiBhZ3JlZW1lbnQgd2l0aCBUb3RhcmEgTGVhcm5pbmcgU29sdXRpb25zKi9cbi8qIExURCwgeW91IG1heSBub3QgYWNjZXNzLCB1c2UsIG1vZGlmeSwgb3IgZGlzdHJpYnV0ZSB0aGlzIHNvZnR3YXJlLiovXG4vKiBQbGVhc2UgY29udGFjdCBbbGljZW5zaW5nQHRvdGFyYWxlYXJuaW5nLmNvbV0gZm9yIG1vcmUgaW5mb3JtYXRpb24uKi9cbi8qKi9cbi8qIEBhdXRob3IgICAgS2V2aW4gSG90dGluZ2VyIDxrZXZpbi5ob3R0aW5nZXJAdG90YXJhbGVhcm5pbmcuY29tPiovXG4vKiBAbW9kdWxlIHR1aWNrYWdlICAgdHVpKi9cblxuLyogVGhpcyBjb250YWlucyB0aGUgY29tbW9uIHZhcmlhYmxlIHNldCBmb3IgZm9ybSBlbGVtZW50cywqL1xuLyogYWxsb3dpbmcgZm9ybSBlbGVtZW50cyB0byBiZSBjb25zaXN0ZW50bHkgc3R5bGVkLiovXG5cbi8qIGxvb3NlbHkgYmFzZWQgb24gYSBtb2R1bGFyIHNjYWxlIG9mICgyICogKDEuNSBeIG4pKSovXG4kdHVpLWNoYXItbGVuZ3RoLXNjYWxlOiAyLCAzLCA0LCA1LCAxMCwgMTUsIDIwLCAyNSwgMzAsIDUwLCA3NSwgMTAwO1xuXG4vKiBTZWxlY3RvcnMgZm9yIGZvcm0gaW5wdXRzIChhbmQgc2ltaWxhciBlbGVtZW50cykgdGhhdCBzaG91bGQgaGF2ZSBzaXplcyBhcHBsaWVkIHRvIHRoZW0uKi9cbi8qIElmIG1vZGlmeWluZyB0aGlzIGxpc3QgaW4gYSB0aGVtZSwgZG8gaXQgdmlhIGFwcGVuZCgpIHJhdGhlciB0aGFuIHJlcGxhY2luZyovXG4vKiB0aGUgZW50aXJlIGxpc3QuKi9cbiR0dWktZm9ybS1sYXlvdXQtc2l6ZWQtaW5wdXRzOiAoXG4gICdpbnB1dFt0eXBlXS50dWktZm9ybUlucHV0JyxcbiAgJy50dWktZm9ybUZpZWxkJyxcbiAgJy50dWktZm9ybVRleHRhcmVhJyxcbiAgJy50dWktaW5wdXRDb2xvcicsXG4gICcudHVpLXJhbmdlJyxcbiAgJy50dWktc2VsZWN0J1xuKTtcblxuLyogU2VsZWN0b3JzIGZvciBpbnB1dHMgdGhhdCBhcmUgKnJlcGxhY2VkIGVsZW1lbnRzKi4qL1xuLyogVGhlIGJlaGF2aW9yIG9mIHdpZHRoOiBhdXRvIGRpZmZlcnMgZm9yIHJlcGxhY2VkIGVsZW1lbnRzLCBzbyB0aGVzZSBhcmUgc2V0Ki9cbi8qIHRvIHdpZHRoOiAxMDAlIHRvIGdldCB0aGUgXCJncm93IHRvIGNvbnRhaW5lclwiIGJlaGF2aW9yLiovXG4vKiBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9DU1MvUmVwbGFjZWRfZWxlbWVudCovXG4vKiBIb3dldmVyLCB0aGlzIGNhdXNlcyBhbiBpc3N1ZSBpbiBjZXJ0YWluIGNvbnRleHRzIC0gbmFtZWx5IGlmIHRoZSBjb250YWluZXIqL1xuLyogaGFzIGEgbWFyZ2luLiBUaGlzIGxpc3QgZXhpc3RzIHRvIGVuYWJsZSB3b3JrYXJvdW5kcyB1c2luZyBmbGV4IGF0IHRoZSBzaXRlKi9cbi8qIG9mIHVzZS4qL1xuLyogSWYgbW9kaWZ5aW5nIHRoaXMgbGlzdCBpbiBhIHRoZW1lLCBkbyBpdCB2aWEgYXBwZW5kKCkgcmF0aGVyIHRoYW4gcmVwbGFjaW5nKi9cbi8qIHRoZSBlbnRpcmUgbGlzdC4qL1xuJHR1aS1pbnB1dC1yZXBsYWNlZC1zZWxlY3RvcnM6IChcbiAgJ2lucHV0W3R5cGVdLnR1aS1mb3JtSW5wdXQnLFxuICAnLnR1aS1mb3JtVGV4dGFyZWEnLFxuICAnLnR1aS1yYW5nZScsXG4gICcudHVpLXNlbGVjdCdcbik7XG5cbi8qIERvbid0IGFwcGx5IHRoZSBkZWZhdWx0IGlucHV0IHNpemUgaWYgdGhlIGVsZW1lbnQgaXMgd2l0aGluIG9uZSBvZiB0aGVzZSovXG4vKiBzZWxlY3RvcnMuKi9cbi8qIChpZiBpdCdzIG5vdCB3aXRoaW4gYSBmb3JtLCBpdCB3b24ndCBiZSBhcHBsaWVkIGVpdGhlcikqL1xuJHR1aS1pbnB1dC1uby1kZWZhdWx0LXNpemUtcGFyZW50LXNlbGVjdG9yczogKFxuICAvKiBtaW5vciBjb252ZW5pZW5jZTogc3BsaXQgaW5wdXQgc2V0cyBzaG91bGQgbm90IGhhdmUgdGhlIHdpZHRoIHNldCwgdG8gc2F2ZSovXG4gICAgLyogZGV2ZWxvcGVycyBmcm9tIGhhdmluZyB0byBwYXNzIGNoYXItbGVuZ3RoPVwiZnVsbFwiIGFsbCB0aGUgdGltZSovXG4gICAgJy50dWktaW5wdXRTZXQtLXNwbGl0J1xuKTtcblxuLyogQ2FsY3VsYXRlIGNoYXJhY3Rlci1iYXNlZCBzaXppbmcgZm9yIGlucHV0cy4qL1xuQGZ1bmN0aW9uIHR1aS1jaGFyLWxlbmd0aCgkbnVtKSB7XG4gIEByZXR1cm4gY2FsYygjeyRudW19ICogdmFyKC0tZm9ybS1pbnB1dC1mb250LXNpemUpKTtcbn1cblxuLyogR2VuZXJhdGUgc2l6aW5nIGNsYXNzIGZvciBzaXplKi9cbkBtaXhpbiB0dWktY2hhci1sZW5ndGgtY2xhc3MoJG5hbWUsICR3aWR0aCkge1xuICAmLS1jaGFyTGVuZ3RoLSN7JG5hbWV9IHtcbiAgICBtYXgtd2lkdGg6ICN7JHdpZHRofTtcbiAgfVxufVxuXG4vKiBEZWZhdWx0IGlucHV0IHNpemluZyovXG5AbWl4aW4gdHVpLWNoYXItbGVuZ3RoLWNsYXNzLWZvcm0tZGVmYXVsdCgpIHtcbiAgLyogU2V0IGEgY3VzdG9tIHNpemUgZm9yIGlucHV0cyBpbiBhIGxpbWl0ZWQgZm9ybSovXG4gIC50dWktZm9ybS0taW5wdXRXaWR0aC1saW1pdGVkICY6bm90KC50dWktaW5wdXQtLWN1c3RvbVNpemUpIHtcbiAgICBtYXgtd2lkdGg6IHZhcigtLWZvcm0taW5wdXQtbGltaXRlZC13aWR0aCk7XG4gIH1cbiAgQGVhY2ggJHNlbCBpbiAkdHVpLWlucHV0LW5vLWRlZmF1bHQtc2l6ZS1wYXJlbnQtc2VsZWN0b3JzIHtcbiAgICAudHVpLWZvcm0tLWlucHV0V2lkdGgtbGltaXRlZCAjeyRzZWx9ICY6bm90KC50dWktaW5wdXQtLWN1c3RvbVNpemUpIHtcbiAgICAgIG1heC13aWR0aDogbm9uZTtcbiAgICB9XG4gIH1cbn1cblxuLyogR2VuZXJhdGUgc2l6aW5nIGNsYXNzZXMgZm9yIHByZWRlZmluZWQgc2l6ZXMqL1xuQG1peGluIHR1aS1jaGFyLWxlbmd0aC1jbGFzc2VzKCkge1xuICBAZWFjaCAkc2l6ZSBpbiAkdHVpLWNoYXItbGVuZ3RoLXNjYWxlIHtcbiAgICBAaW5jbHVkZSB0dWktY2hhci1sZW5ndGgtY2xhc3MoJHNpemUsIHR1aS1jaGFyLWxlbmd0aCgkc2l6ZSkpO1xuICB9XG4gIEBpbmNsdWRlIHR1aS1jaGFyLWxlbmd0aC1jbGFzcy1mb3JtLWRlZmF1bHQoKTtcbn1cblxuLyogVmVydGljYWwgcGFkZGluZyBvZiBmb3JtIGVsZW1lbnRzLiovXG4vKiBDYWxjdWxhdGUgdGhlIHJlbWFpbmluZyBhdmFpbGFibGUgc3BhY2UgdG8gbWVldCB0aGUgdGFyZ2V0IGhlaWdodC4qL1xuLyogTXVzdCBiZSBvbiBhIHNpbmdsZSBsaW5lIG90aGVyd2lzZSBpdCBicmVha3MgKGZvciBzb21lIHJlYXNvbiEpIHNvIG11c3QgYmUgaWdub3JlZCBieSBwcmV0dGllci4qL1xuLyogcHJldHRpZXItaWdub3JlKi9cbkBmdW5jdGlvbiB0dWktaW5wdXQtdi1wYWRkaW5nKCkge1xuICBAcmV0dXJuIGNhbGMoKHZhcigtLWZvcm0taW5wdXQtaGVpZ2h0KSAtIHZhcigtLWZvcm0taW5wdXQtbGluZS1oZWlnaHQpIC0gKHZhcigtLWZvcm0taW5wdXQtYm9yZGVyLXNpemUpICogMikpIC8gMik7XG59XG4vKiBwcmV0dGllci1pZ25vcmUqL1xuQGZ1bmN0aW9uIHR1aS1pbnB1dC12LXBhZGRpbmctYm9yZGVybGVzcygpIHtcbiAgQHJldHVybiBjYWxjKCh2YXIoLS1mb3JtLWlucHV0LWhlaWdodCkgLSB2YXIoLS1mb3JtLWlucHV0LWxpbmUtaGVpZ2h0KSkgLyAyKTtcbn1cblxuOnJvb3Qge1xuICAvKiBIZWlnaHQgb2Ygc2luZ2xlIGxpbmUgZm9ybSBlbGVtZW50cyAoaW5jbHVkaW5nIHBhZGRpbmcgJiBib3JkZXIpKi9cbiAgLS1mb3JtLWlucHV0LWhlaWdodDogI3tyZW0tcHgoMzYpfTtcbiAgLyogSGVpZ2h0IG9mIGxhcmdlIHNpbmdsZSBsaW5lIGZvcm0gZWxlbWVudHMgKGluY2x1ZGluZyBwYWRkaW5nICYgYm9yZGVyKSovXG4gIC0tZm9ybS1pbnB1dC1oZWlnaHQtbGFyZ2U6ICN7cmVtLXB4KDQwKX07XG4gIC8qIElubmVyIGZvbnQgc2l6ZSBvZiBmb3JtIGVsZW1lbnRzKi9cbiAgLS1mb3JtLWlucHV0LWZvbnQtc2l6ZTogdmFyKC0tZm9udC1ib2R5LXNpemUpO1xuICAtLWZvcm0taW5wdXQtZm9udC1zaXplLXNtOiB2YXIoLS1mb250LWJvZHktc20tc2l6ZSk7XG4gIC0tZm9ybS1pbnB1dC1mb250LXNpemUtbGc6IHZhcigtLWZvbnQtYm9keS1sZy1zaXplKTtcbiAgLS1mb3JtLWlucHV0LWxpbmUtaGVpZ2h0OiB2YXIoLS1mb250LWJvZHktbGluZS1oZWlnaHQpO1xuICAvKiBCb3JkZXIgc2l6ZSBvZiBpbnB1dCBlbGVtZW50cyovXG4gIC0tZm9ybS1pbnB1dC1ib3JkZXItc2l6ZTogMXB4O1xuICAtLWZvcm0taW5wdXQtYm9yZGVyLXJhZGl1czogI3tyZW0tcHgoNCl9O1xuICAtLWZvcm0taW5wdXQtaW52YWxpZC1zaGFkb3ctc2l6ZTogMXB4O1xuXG4gIC8qIFdpZHRoIGZvciBcImxpbWl0ZWRcIiB3aWR0aCBzZXR0aW5nKi9cbiAgLS1mb3JtLWlucHV0LWxpbWl0ZWQtd2lkdGg6ICN7dHVpLWNoYXItbGVuZ3RoKDIwKX07XG5cbiAgLyogU2ltcGxlIE5vdGVwYWQgc3R5bGUgbGluZXMsIGZvciBwcmludGluZyB1bmFuc3dlcmVkIGZvcm0gaW5wdXRzLiovXG4gIC0tZm9ybS1ub3RlcGFkLWxpbmUtaGVpZ2h0OiAje3JlbS1weCgzMCl9O1xuICAtLWZvcm0tbm90ZXBhZC1saW5lLWJvcmRlcjogc29saWQgMXB4O1xuXG4gIC8qIFNwYWNpbmcgYmV0d2VlbiBlbGVtZW50cyBpbiBhbiBJbnB1dFNldCovXG4gIC0taW5wdXQtc2V0LXNwYWNpbmc6IHZhcigtLWdhcC0yKTtcblxuICAtLWNoYXItbGVuZ3RoLXNjYWxlOiAjeyR0dWktY2hhci1sZW5ndGgtc2NhbGV9O1xuXG4gIC8qIE9mZnNldCBmb3IgcmFkaW8gbGFiZWwqL1xuICAtLXJhZGlvLWxhYmVsLW9mZnNldDogY2FsYyh2YXIoLS1mb3JtLXJhZGlvLXNpemUpICogMS4zNSk7XG5cbiAgLyogRGVwcmVjYXRlZCBzaW5jZSBUb3RhcmEgMTguMDoqL1xuICAtLWZvcm0taW5wdXQtdi1wYWRkaW5nOiB2YXIoLS1nYXAtMik7XG59XG5cbiIsIi8qISoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiEqXFxcbiAgISoqKiBjc3MgLi9jbGllbnQvdG9vbGluZy93ZWJwYWNrL2Nzc19yYXdfbG9hZGVyLmpzPz9ydWxlU2V0WzFdLnJ1bGVzWzBdLnVzZVsxXSEuL25vZGVfbW9kdWxlcy9wb3N0Y3NzLWxvYWRlci9kaXN0L2Nqcy5qcz8/cnVsZVNldFsxXS5ydWxlc1swXS51c2VbMl0hLi9jbGllbnQvY29tcG9uZW50L3R1aS9zcmMvZ2xvYmFsX3N0eWxlcy92YXJpYWJsZXMvdHVpX3RvZ2dsZS5zY3NzICoqKiFcbiAgXFwqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBUaGlzIGZpbGUgaXMgcGFydCBvZiBUb3RhcmEgRW50ZXJwcmlzZSBFeHRlbnNpb25zLiovXG4vKiovXG4vKiBDb3B5cmlnaHQgKEMpIDIwMjQgb253YXJkcyBUb3RhcmEgTGVhcm5pbmcgU29sdXRpb25zIExURCovXG4vKiovXG4vKiBUb3RhcmEgRW50ZXJwcmlzZSBFeHRlbnNpb25zIGlzIHByb3ZpZGVkIG9ubHkgdG8gVG90YXJhKi9cbi8qIExlYXJuaW5nIFNvbHV0aW9ucyBMVEQncyBjdXN0b21lcnMgYW5kIHBhcnRuZXJzLCBwdXJzdWFudCB0byovXG4vKiB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgb2YgYSBzZXBhcmF0ZSBhZ3JlZW1lbnQgd2l0aCBUb3RhcmEqL1xuLyogTGVhcm5pbmcgU29sdXRpb25zIExURCBvciBpdHMgYWZmaWxpYXRlLiovXG4vKiovXG4vKiBJZiB5b3UgZG8gbm90IGhhdmUgYW4gYWdyZWVtZW50IHdpdGggVG90YXJhIExlYXJuaW5nIFNvbHV0aW9ucyovXG4vKiBMVEQsIHlvdSBtYXkgbm90IGFjY2VzcywgdXNlLCBtb2RpZnksIG9yIGRpc3RyaWJ1dGUgdGhpcyBzb2Z0d2FyZS4qL1xuLyogUGxlYXNlIGNvbnRhY3QgW2xpY2Vuc2luZ0B0b3RhcmEuY29tXSBmb3IgbW9yZSBpbmZvcm1hdGlvbi4qL1xuLyoqL1xuLyogQGF1dGhvciBLZXZpbiBIb3R0aW5nZXIgPGtldmluLmhvdHRpbmdlckB0b3RhcmEuY29tPiovXG4vKiBAbW9kdWxlIHBhY2thZ2UgdHVpKi9cblxuLyogVmVydGljYWwgcGFkZGluZyBvZiB0b2dnbGUgc3dpdGNoIGZvcm0gZWxlbWVudHMuKi9cbi8qIENhbGN1bGF0ZSB0aGUgcmVtYWluaW5nIGF2YWlsYWJsZSBzcGFjZSB0byBtZWV0IHRoZSB0YXJnZXQgaGVpZ2h0LiovXG4vKiBNdXN0IGJlIG9uIGEgc2luZ2xlIGxpbmUgb3RoZXJ3aXNlIGl0IGJyZWFrcyAoZm9yIHNvbWUgcmVhc29uISkgc28gbXVzdCBiZSBpZ25vcmVkIGJ5IHByZXR0aWVyLiovXG4vKiBwcmV0dGllci1pZ25vcmUqL1xuQGZ1bmN0aW9uIHR1aS1pbnB1dC10b2dnbGUtdi1wYWRkaW5nKCkge1xuICBAcmV0dXJuIGNhbGMoKHZhcigtLWZvcm0tdG9nZ2xlLWhlaWdodCkgLSB2YXIoLS1mb3JtLWlucHV0LWxpbmUtaGVpZ2h0KSkgLyAyKTtcbn1cblxuOnJvb3Qge1xuICAtLWZvcm0tdG9nZ2xlLWNvbG9yOiB2YXIoLS1jb2xvci1uZXV0cmFsLTcpO1xuICAtLWZvcm0tdG9nZ2xlLWRvdC1zaXplOiAje3JlbS1weCgxNil9O1xuICAtLWZvcm0tdG9nZ2xlLWNvbnRhaW5lci13aWR0aDogI3tyZW0tcHgoNDApfTtcbiAgLS1mb3JtLXRvZ2dsZS1jb250YWluZXItaGVpZ2h0OiAje3JlbS1weCgyMCl9O1xuICAtLWZvcm0tdG9nZ2xlLWNvbnRhaW5lci1yYWRpdXM6ICN7cmVtLXB4KDEwKX07XG4gIC0tZm9ybS10b2dnbGUtdGV4dC1vZmZzZXQ6IHZhcigtLWdhcC0yKTtcbiAgLS1mb3JtLXRvZ2dsZS1kb3Qtb2Zmc2V0OiAje3JlbS1weCgyKX07XG4gIC0tZm9ybS10b2dnbGUtYm90dG9tOiAje3JlbS1weCgxOCl9O1xuICAtLWZvcm0tdG9nZ2xlLWZvY3VzLWJvcmRlcjogdmFyKC0tYm9yZGVyLXdpZHRoLW5vcm1hbCk7XG4gIC0tZm9ybS10b2dnbGUtZm9jdXMtZ2FwOiAje3JlbS1weCgxKX07XG4gIC8qIEhlaWdodCBvZiB0b2dnbGUqL1xuICAtLWZvcm0tdG9nZ2xlLWhlaWdodDogY2FsYyhcbiAgICB2YXIoLS1mb3JtLXRvZ2dsZS1jb250YWluZXItaGVpZ2h0KSArICh2YXIoLS1mb3JtLXRvZ2dsZS1mb2N1cy1ib3JkZXIpICogMilcbiAgKTtcbn1cblxuIiwiLyohKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiEqXFxcbiAgISoqKiBjc3MgLi9jbGllbnQvdG9vbGluZy93ZWJwYWNrL2Nzc19yYXdfbG9hZGVyLmpzPz9ydWxlU2V0WzFdLnJ1bGVzWzBdLnVzZVsxXSEuL25vZGVfbW9kdWxlcy9wb3N0Y3NzLWxvYWRlci9kaXN0L2Nqcy5qcz8/cnVsZVNldFsxXS5ydWxlc1swXS51c2VbMl0hLi9jbGllbnQvY29tcG9uZW50L3R1aS9zcmMvZ2xvYmFsX3N0eWxlcy92YXJpYWJsZXMvdHVpX3NlcGFyYXRvcnMuc2NzcyAqKiohXG4gIFxcKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIFRvdGFyYSBFbnRlcnByaXNlIEV4dGVuc2lvbnMuKi9cbi8qKi9cbi8qIENvcHlyaWdodCAoQykgMjAyMSBvbndhcmRzIFRvdGFyYSBMZWFybmluZyBTb2x1dGlvbnMgTFREKi9cbi8qKi9cbi8qIFRvdGFyYSBFbnRlcnByaXNlIEV4dGVuc2lvbnMgaXMgcHJvdmlkZWQgb25seSB0byBUb3RhcmEqL1xuLyogTGVhcm5pbmcgU29sdXRpb25zIExURCdzIGN1c3RvbWVycyBhbmQgcGFydG5lcnMsIHB1cnN1YW50IHRvKi9cbi8qIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZiBhIHNlcGFyYXRlIGFncmVlbWVudCB3aXRoIFRvdGFyYSovXG4vKiBMZWFybmluZyBTb2x1dGlvbnMgTFREIG9yIGl0cyBhZmZpbGlhdGUuKi9cbi8qKi9cbi8qIElmIHlvdSBkbyBub3QgaGF2ZSBhbiBhZ3JlZW1lbnQgd2l0aCBUb3RhcmEgTGVhcm5pbmcgU29sdXRpb25zKi9cbi8qIExURCwgeW91IG1heSBub3QgYWNjZXNzLCB1c2UsIG1vZGlmeSwgb3IgZGlzdHJpYnV0ZSB0aGlzIHNvZnR3YXJlLiovXG4vKiBQbGVhc2UgY29udGFjdCBbbGljZW5zaW5nQHRvdGFyYWxlYXJuaW5nLmNvbV0gZm9yIG1vcmUgaW5mb3JtYXRpb24uKi9cbi8qKi9cbi8qIEBhdXRob3IgS2V2aW4gSG90dGluZ2VyIDxrZXZpbi5ob3R0aW5nZXJAdG90YXJhbGVhcm5pbmcuY29tPiovXG4vKiBAbW9kdWxlIHR1aSovXG5cbjpyb290IHtcbiAgLyogR2FwIHRvIHRoZSBsZWZ0ICYgcmlnaHQgb2YgZG90IHNlcGFyYXRvciovXG4gIC0tc2VwYXJhdG9yLWRvdC1nYXA6IDAuNTNlbTtcbiAgLyogV2lkdGggLyBoZWlnaHQgb2YgZG90Ki9cbiAgLS1zZXBhcmF0b3ItZG90LXNpemU6IDAuMmVtO1xuICAvKiBHYXAgdG8gdGhlIGxlZnQgJiByaWdodCBvZiBwaXBlIHNlcGFyYXRvciovXG4gIC0tc2VwYXJhdG9yLXBpcGUtZ2FwOiAwLjUzZW07XG4gIC8qIFdpZHRoIG9mIHBpcGUqL1xuICAtLXNlcGFyYXRvci1waXBlLXNpemU6IDFweDtcbn1cblxuQG1peGluIHR1aS1zZXBhcmF0b3ItZG90IHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC13cmFwOiB3cmFwO1xuXG4gICYgPiAqICsgKiB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgbWFyZ2luLWxlZnQ6IHZhcigtLXNlcGFyYXRvci1kb3QtZ2FwKTtcbiAgICAvKiBwcmV0dGllci1pZ25vcmUgKi9cbiAgICBwYWRkaW5nLWxlZnQ6IGNhbGModmFyKC0tc2VwYXJhdG9yLWRvdC1nYXApICsgY2FsYyh2YXIoLS1zZXBhcmF0b3ItZG90LXNpemUpIC0gMXB4KSk7XG5cbiAgICAmOmJlZm9yZSB7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB0b3A6IGNhbGModmFyKC0tc2VwYXJhdG9yLWRvdC1zaXplKSAvIDIpO1xuICAgICAgYm90dG9tOiAwO1xuICAgICAgbGVmdDogMDtcbiAgICAgIGhlaWdodDogdmFyKC0tc2VwYXJhdG9yLWRvdC1zaXplKTtcbiAgICAgIG1hcmdpbjogYXV0byAwO1xuICAgICAgYm9yZGVyLWxlZnQ6IHZhcigtLXNlcGFyYXRvci1kb3Qtc2l6ZSkgc29saWQ7XG4gICAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgICBjb250ZW50OiAnJztcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIHR1aS1zZXBhcmF0b3ItcGlwZSB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtd3JhcDogd3JhcDtcblxuICAmID4gKiArICoge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIG1hcmdpbi1sZWZ0OiB2YXIoLS1zZXBhcmF0b3ItcGlwZS1nYXApO1xuICAgIHBhZGRpbmctbGVmdDogdmFyKC0tc2VwYXJhdG9yLXBpcGUtZ2FwKTtcblxuICAgICY6YmVmb3JlIHtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHRvcDogMDtcbiAgICAgIGJvdHRvbTogMDtcbiAgICAgIGxlZnQ6IDA7XG4gICAgICBoZWlnaHQ6IDFlbTtcbiAgICAgIG1hcmdpbjogYXV0byAwO1xuICAgICAgYm9yZGVyLWxlZnQ6IHZhcigtLXNlcGFyYXRvci1waXBlLXNpemUpIHNvbGlkO1xuICAgICAgY29udGVudDogJyc7XG4gICAgfVxuICB9XG59XG5cbiIsIi8qISoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiohKlxcXG4gICEqKiogY3NzIC4vY2xpZW50L3Rvb2xpbmcvd2VicGFjay9jc3NfcmF3X2xvYWRlci5qcz8/cnVsZVNldFsxXS5ydWxlc1swXS51c2VbMV0hLi9ub2RlX21vZHVsZXMvcG9zdGNzcy1sb2FkZXIvZGlzdC9janMuanM/P3J1bGVTZXRbMV0ucnVsZXNbMF0udXNlWzJdIS4vY2xpZW50L2NvbXBvbmVudC90dWkvc3JjL2dsb2JhbF9zdHlsZXMvdmFyaWFibGVzL3R1aV90YWdzLnNjc3MgKioqIVxuICBcXCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBUaGlzIGZpbGUgaXMgcGFydCBvZiBUb3RhcmEgRW50ZXJwcmlzZSBFeHRlbnNpb25zLiovXG4vKiovXG4vKiBDb3B5cmlnaHQgKEMpIDIwMjAgb253YXJkcyBUb3RhcmEgTGVhcm5pbmcgU29sdXRpb25zIExURCovXG4vKiovXG4vKiBUb3RhcmEgRW50ZXJwcmlzZSBFeHRlbnNpb25zIGlzIHByb3ZpZGVkIG9ubHkgdG8gVG90YXJhKi9cbi8qIExlYXJuaW5nIFNvbHV0aW9ucyBMVEQncyBjdXN0b21lcnMgYW5kIHBhcnRuZXJzLCBwdXJzdWFudCB0byovXG4vKiB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgb2YgYSBzZXBhcmF0ZSBhZ3JlZW1lbnQgd2l0aCBUb3RhcmEqL1xuLyogTGVhcm5pbmcgU29sdXRpb25zIExURCBvciBpdHMgYWZmaWxpYXRlLiovXG4vKiovXG4vKiBJZiB5b3UgZG8gbm90IGhhdmUgYW4gYWdyZWVtZW50IHdpdGggVG90YXJhIExlYXJuaW5nIFNvbHV0aW9ucyovXG4vKiBMVEQsIHlvdSBtYXkgbm90IGFjY2VzcywgdXNlLCBtb2RpZnksIG9yIGRpc3RyaWJ1dGUgdGhpcyBzb2Z0d2FyZS4qL1xuLyogUGxlYXNlIGNvbnRhY3QgW2xpY2Vuc2luZ0B0b3RhcmFsZWFybmluZy5jb21dIGZvciBtb3JlIGluZm9ybWF0aW9uLiovXG4vKiovXG4vKiBAYXV0aG9yICAgIEtldmluIEhvdHRpbmdlciA8a2V2aW4uaG90dGluZ2VyQHRvdGFyYWxlYXJuaW5nLmNvbT4qL1xuLyogQG1vZHVsZSB0dWlja2FnZSAgIHR1aSovXG5cbjpyb290IHtcbiAgLS10YWctaGVpZ2h0OiAyNHB4O1xuICAtLXRhZy1ib3JkZXItcmFkaXVzOiAxMnB4OyAvKiAtLXRhZy1oZWlnaHQgLyAyIC0gZm9yIHNvbWUgcmVhc29uIElFIGNhbGMgd2Fzbid0IHdvcmtpbmcgY29ycmVjdGx5IGhlcmUqL1xufVxuXG4iLCIvKiEqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiohKlxcXG4gICEqKiogY3NzIC4vY2xpZW50L3Rvb2xpbmcvd2VicGFjay9jc3NfcmF3X2xvYWRlci5qcz8/cnVsZVNldFsxXS5ydWxlc1swXS51c2VbMV0hLi9ub2RlX21vZHVsZXMvcG9zdGNzcy1sb2FkZXIvZGlzdC9janMuanM/P3J1bGVTZXRbMV0ucnVsZXNbMF0udXNlWzJdIS4vY2xpZW50L2NvbXBvbmVudC90dWkvc3JjL2dsb2JhbF9zdHlsZXMvdmFyaWFibGVzL3R1aV96aW5kZXguc2NzcyAqKiohXG4gIFxcKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogVGhpcyBmaWxlIGlzIHBhcnQgb2YgVG90YXJhIEVudGVycHJpc2UgRXh0ZW5zaW9ucy4qL1xuLyoqL1xuLyogQ29weXJpZ2h0IChDKSAyMDIwIG9ud2FyZHMgVG90YXJhIExlYXJuaW5nIFNvbHV0aW9ucyBMVEQqL1xuLyoqL1xuLyogVG90YXJhIEVudGVycHJpc2UgRXh0ZW5zaW9ucyBpcyBwcm92aWRlZCBvbmx5IHRvIFRvdGFyYSovXG4vKiBMZWFybmluZyBTb2x1dGlvbnMgTFREJ3MgY3VzdG9tZXJzIGFuZCBwYXJ0bmVycywgcHVyc3VhbnQgdG8qL1xuLyogdGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIG9mIGEgc2VwYXJhdGUgYWdyZWVtZW50IHdpdGggVG90YXJhKi9cbi8qIExlYXJuaW5nIFNvbHV0aW9ucyBMVEQgb3IgaXRzIGFmZmlsaWF0ZS4qL1xuLyoqL1xuLyogSWYgeW91IGRvIG5vdCBoYXZlIGFuIGFncmVlbWVudCB3aXRoIFRvdGFyYSBMZWFybmluZyBTb2x1dGlvbnMqL1xuLyogTFRELCB5b3UgbWF5IG5vdCBhY2Nlc3MsIHVzZSwgbW9kaWZ5LCBvciBkaXN0cmlidXRlIHRoaXMgc29mdHdhcmUuKi9cbi8qIFBsZWFzZSBjb250YWN0IFtsaWNlbnNpbmdAdG90YXJhbGVhcm5pbmcuY29tXSBmb3IgbW9yZSBpbmZvcm1hdGlvbi4qL1xuLyoqL1xuLyogQGF1dGhvciAgICBTaW1vbiBDaGVzdGVyIDxzaW1vbi5jaGVzdGVyQHRvdGFyYWxlYXJuaW5nLmNvbT4qL1xuLyogQG1vZHVsZSB0dWlja2FnZSAgIHR1aSovXG5cbjpyb290IHtcbiAgLyogQWJvdmUgcmVndWxhciBjb250ZW50LCBidXQgYmVsb3cgcG9wdXBzL292ZXJsYXlzKi9cbiAgLS16aW5kZXgtc3RpY2t5OiA1MDA7XG5cbiAgLyogRmxvYXRpbmcgVUksIGJlbG93IGRyb3Bkb3duIGJ1dCBhYm92ZSBzdGlja3kgY29udGVudCovXG4gIC0temluZGV4LWZsb2F0aW5nLXVpOiA1MDAwO1xuXG4gIC0temluZGV4LWRyb3Bkb3duLW1lbnU6IDEwMDAwO1xuICAtLXppbmRleC1tb2RhbDogMTAwMDUwO1xuICAtLXppbmRleC1tb2RhbC1iYWNrZHJvcDogMTAwMDQwO1xuICAtLXppbmRleC1wb3BvdmVyOiAxMDAwNTA7XG4gIC0temluZGV4LWxvYWRpbmctcGFnZTogMTAwMDYwO1xuICAtLXppbmRleC10b2FzdDogMTAwMDcwO1xuICAtLXppbmRleC1lcnJvci1tb2RhbDogMTAwMDcwO1xuICAtLXppbmRleC1kcmFnZ2FibGU6IDEwMDA4MDtcbiAgLS16aW5kZXgtbmF2LW92ZXJsYXk6IDExMDAwMDtcbiAgLS16aW5kZXgtc2tpcGxpbmtzOiAxMTAwNTA7XG59XG5cbiIsIi8qISoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqISpcXFxyXG4gICEqKiogY3NzIC4vY2xpZW50L3Rvb2xpbmcvd2VicGFjay9jc3NfcmF3X2xvYWRlci5qcz8/Y2xvbmVkUnVsZVNldC0xNTYxLnVzZVsxXSEuL25vZGVfbW9kdWxlcy9wb3N0Y3NzLWxvYWRlci9kaXN0L2Nqcy5qcz8/Y2xvbmVkUnVsZVNldC0xNTYxLnVzZVsyXSEuL2NsaWVudC9jb21wb25lbnQvdHVpL3NyYy9nbG9iYWxfc3R5bGVzL3N0YXRpYy5zY3NzICoqKiFcclxuICBcXCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xyXG4vKiBUaGlzIGZpbGUgaXMgcGFydCBvZiBUb3RhcmEgRW50ZXJwcmlzZSBFeHRlbnNpb25zLiovXHJcbi8qKi9cclxuLyogQ29weXJpZ2h0IChDKSAyMDIwIG9ud2FyZHMgVG90YXJhIExlYXJuaW5nIFNvbHV0aW9ucyBMVEQqL1xyXG4vKiovXHJcbi8qIFRvdGFyYSBFbnRlcnByaXNlIEV4dGVuc2lvbnMgaXMgcHJvdmlkZWQgb25seSB0byBUb3RhcmEqL1xyXG4vKiBMZWFybmluZyBTb2x1dGlvbnMgTFREJ3MgY3VzdG9tZXJzIGFuZCBwYXJ0bmVycywgcHVyc3VhbnQgdG8qL1xyXG4vKiB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgb2YgYSBzZXBhcmF0ZSBhZ3JlZW1lbnQgd2l0aCBUb3RhcmEqL1xyXG4vKiBMZWFybmluZyBTb2x1dGlvbnMgTFREIG9yIGl0cyBhZmZpbGlhdGUuKi9cclxuLyoqL1xyXG4vKiBJZiB5b3UgZG8gbm90IGhhdmUgYW4gYWdyZWVtZW50IHdpdGggVG90YXJhIExlYXJuaW5nIFNvbHV0aW9ucyovXHJcbi8qIExURCwgeW91IG1heSBub3QgYWNjZXNzLCB1c2UsIG1vZGlmeSwgb3IgZGlzdHJpYnV0ZSB0aGlzIHNvZnR3YXJlLiovXHJcbi8qIFBsZWFzZSBjb250YWN0IFtsaWNlbnNpbmdAdG90YXJhbGVhcm5pbmcuY29tXSBmb3IgbW9yZSBpbmZvcm1hdGlvbi4qL1xyXG4vKiovXHJcbi8qIEBhdXRob3IgS2V2aW4gSG90dGluZ2VyIDxrZXZpbi5ob3R0aW5nZXJAdG90YXJhbGVhcm5pbmcuY29tPiovXHJcbi8qIEBtb2R1bGUgdHVpKi9cclxuXHJcbiosXHJcbio6OmJlZm9yZSxcclxuKjo6YWZ0ZXIge1xyXG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XHJcbn1cclxuXHJcbmh0bWwge1xyXG4gIGZvbnQtc2l6ZTogMTAwJTtcclxufVxyXG5cclxuYm9keSB7XHJcbiAgY29sb3I6IHZhcigtLWNvbG9yLXRleHQpO1xyXG4gIGZvbnQtc2l6ZTogdmFyKC0tZm9udC1ib2R5LXNpemUpO1xyXG4gIGZvbnQtZmFtaWx5OiB2YXIoLS1mb250LWZhbWlseSk7XHJcbiAgbGluZS1oZWlnaHQ6IHZhcigtLWZvbnQtYm9keS1saW5lLWhlaWdodCk7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItYmFja2dyb3VuZCk7XHJcbn1cclxuXHJcbi50dWktcm9vdCB7XHJcbiAgLyogY29udGFpbmVyIHNob3VsZCBub3QgZXhpc3QgZm9yIGxheW91dCBwdXJwb3NlcyovXHJcbiAgZGlzcGxheTogY29udGVudHM7XHJcbn1cclxuXHJcbi50dWktc3Itb25seSB7XHJcbiAgQGluY2x1ZGUgc3Itb25seSgpO1xyXG59XHJcblxyXG5AaW1wb3J0ICd0dWkvc3R5bGVzL3R5cG9ncmFwaHknO1xyXG5AaW1wb3J0ICd0dWkvc3R5bGVzL3JpY2gtY29udGVudCc7XHJcbkBpbXBvcnQgJ3R1aS9zdHlsZXMvaWNvbnMnO1xyXG5cclxuLyohKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiohKlxcXHJcbiAgISoqKiBjc3MgLi9jbGllbnQvdG9vbGluZy93ZWJwYWNrL2Nzc19yYXdfbG9hZGVyLmpzPz9jbG9uZWRSdWxlU2V0LTE1NjEudXNlWzFdIS4vbm9kZV9tb2R1bGVzL3Bvc3Rjc3MtbG9hZGVyL2Rpc3QvY2pzLmpzPz9jbG9uZWRSdWxlU2V0LTE1NjEudXNlWzJdIS4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9pbmRleC5qcz8/cnVsZVNldFswXS51c2VbMF0hLi9jbGllbnQvY29tcG9uZW50L3R1aS9zcmMvY29tcG9uZW50cy9hZGRlci9BZGRlci52dWU/dnVlJnR5cGU9c3R5bGUmaW5kZXg9MCZpZD0zYzA4YWUxZSZsYW5nPXNjc3MgKioqIVxyXG4gIFxcKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXHJcbi50dWktYWRkZXIge1xyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxuICBmbGV4LWdyb3c6IDE7XHJcbiAgaGVpZ2h0OiByZW0tcHgoNTAwKTtcclxuXHJcbiAgJl9fbm90aWNlcyB7XHJcbiAgICBtYXJnaW4tYm90dG9tOiB2YXIoLS1nYXAtNik7XHJcbiAgfVxyXG5cclxuICAmX190YWJzIHtcclxuICAgIGZsZXgtZ3JvdzogMTtcclxuICAgIG1pbi1oZWlnaHQ6IDA7XHJcbiAgfVxyXG5cclxuICAmX190YWJQYW5lbCB7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxuICB9XHJcblxyXG4gICZfX2xpc3Qge1xyXG4gICAgZmxleC1ncm93OiAxO1xyXG4gICAgaGVpZ2h0OiAzMTZweDtcclxuICAgIG92ZXJmbG93LXk6IGF1dG87XHJcblxyXG4gICAgJi1sb2FkaW5nIHtcclxuICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxuICAgICAgZmxleC1ncm93OiAxO1xyXG4gICAgICBtaW4taGVpZ2h0OiA1MHB4O1xyXG4gICAgfVxyXG5cclxuICAgICYtbG9hZE1vcmUge1xyXG4gICAgICBtYXJnaW46IHZhcigtLWdhcC00KSAwIHZhcigtLWdhcC00KTtcclxuICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgfVxyXG5cclxuICAgICY6OmJlZm9yZSB7XHJcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgICBoZWlnaHQ6IHZhcigtLWdhcC00KTtcclxuICAgICAgY29udGVudDogJyc7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAmX19mb290ZXIge1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGZsZXgtd3JhcDogd3JhcDtcclxuICAgIGJvcmRlci10b3A6IHZhcigtLWJvcmRlci13aWR0aC1ub3JtYWwpIHNvbGlkIHZhcigtLWNvbG9yLW5ldXRyYWwtNSk7XHJcblxyXG4gICAgJiA+ICoge1xyXG4gICAgICBtYXJnaW4tdG9wOiB2YXIoLS1nYXAtNik7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAmX19zdW1tYXJ5IHtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAgZm9udC13ZWlnaHQ6IHZhcigtLWxhYmVsLXdlaWdodCk7XHJcbiAgfVxyXG5cclxuICAmX19hY3Rpb25zIHtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBtYXJnaW4tbGVmdDogYXV0bztcclxuICB9XHJcbn1cclxuXHJcbi8qISoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiEqXFxcclxuICAhKioqIGNzcyAuL2NsaWVudC90b29saW5nL3dlYnBhY2svY3NzX3Jhd19sb2FkZXIuanM/P2Nsb25lZFJ1bGVTZXQtMTU2MS51c2VbMV0hLi9ub2RlX21vZHVsZXMvcG9zdGNzcy1sb2FkZXIvZGlzdC9janMuanM/P2Nsb25lZFJ1bGVTZXQtMTU2MS51c2VbMl0hLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2luZGV4LmpzPz9ydWxlU2V0WzBdLnVzZVswXSEuL2NsaWVudC9jb21wb25lbnQvdHVpL3NyYy9jb21wb25lbnRzL2FkZGVyL0hpZXJhcmNoaWNhbFBhcmVudEJ1dHRvbi52dWU/dnVlJnR5cGU9c3R5bGUmaW5kZXg9MCZpZD0xNjNkYTY0NSZsYW5nPXNjc3MgKioqIVxyXG4gIFxcKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xyXG4udHVpLWhpZXJhcmNoaWNhbFBhcmVudEJ1dHRvbiB7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gIHBhZGRpbmc6IHZhcigtLWdhcC00KSAwIDA7XHJcblxyXG4gICZfX2JhY2tBcnJvdyB7XHJcbiAgICB0ZXh0LWFsaWduOiBzdGFydDtcclxuXHJcbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAkdHVpLXNjcmVlbi14cykge1xyXG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAmX19sYWJlbCB7XHJcbiAgICBtYXJnaW4tbGVmdDogdmFyKC0tZ2FwLTIpO1xyXG4gIH1cclxufVxyXG5cclxuLyohKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiEqXFxcclxuICAhKioqIGNzcyAuL2NsaWVudC90b29saW5nL3dlYnBhY2svY3NzX3Jhd19sb2FkZXIuanM/P2Nsb25lZFJ1bGVTZXQtMTU2MS51c2VbMV0hLi9ub2RlX21vZHVsZXMvcG9zdGNzcy1sb2FkZXIvZGlzdC9janMuanM/P2Nsb25lZFJ1bGVTZXQtMTU2MS51c2VbMl0hLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2luZGV4LmpzPz9ydWxlU2V0WzBdLnVzZVswXSEuL2NsaWVudC9jb21wb25lbnQvdHVpL3NyYy9jb21wb25lbnRzL2F2YXRhci9BdmF0YXIudnVlP3Z1ZSZ0eXBlPXN0eWxlJmluZGV4PTAmaWQ9NDNiNWZkMjAmbGFuZz1zY3NzICoqKiFcclxuICBcXCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXHJcbjpyb290IHtcclxuICAtLWF2YXRhci1ib3JkZXItcmFkaXVzOiA1MCU7XHJcbiAgLS1hdmF0YXItbGFyZ2Utd2lkdGg6IDE4NXB4O1xyXG4gIC0tYXZhdGFyLWxhcmdlLWhlaWdodDogMTg1cHg7XHJcbiAgLS1hdmF0YXItbGFyZ2UtcGFkZGluZzogNXB4O1xyXG4gIC0tYXZhdGFyLW1lZGl1bS13aWR0aDogMTA1cHg7XHJcbiAgLS1hdmF0YXItbWVkaXVtLWhlaWdodDogMTA1cHg7XHJcbiAgLS1hdmF0YXItbWVkaXVtLXBhZGRpbmc6IDNweDtcclxuICAtLWF2YXRhci1zbWFsbC13aWR0aDogNTBweDtcclxuICAtLWF2YXRhci1zbWFsbC1oZWlnaHQ6IDUwcHg7XHJcbiAgLS1hdmF0YXItc21hbGwtcGFkZGluZzogMnB4O1xyXG4gIC0tYXZhdGFyLXhzbWFsbC13aWR0aDogMzhweDtcclxuICAtLWF2YXRhci14c21hbGwtaGVpZ2h0OiAzOHB4O1xyXG4gIC0tYXZhdGFyLXhzbWFsbC1wYWRkaW5nOiAxcHg7XHJcbiAgLS1hdmF0YXIteHhzbWFsbC13aWR0aDogMjRweDtcclxuICAtLWF2YXRhci14eHNtYWxsLWhlaWdodDogMjRweDtcclxuICAtLWF2YXRhci14eHNtYWxsLXBhZGRpbmc6IDFweDtcclxufVxyXG5cclxuLnR1aS1hdmF0YXIge1xyXG4gIGJvcmRlcjogdmFyKC0tYm9yZGVyLXdpZHRoLW5vcm1hbCkgc29saWQgdmFyKC0tYXZhdGFyLWJvcmRlci1jb2xvcik7XHJcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tYXZhdGFyLWJvcmRlci1yYWRpdXMpO1xyXG5cclxuICAmLS1sYXJnZSB7XHJcbiAgICB3aWR0aDogdmFyKC0tYXZhdGFyLWxhcmdlLXdpZHRoKTtcclxuICAgIGhlaWdodDogdmFyKC0tYXZhdGFyLWxhcmdlLWhlaWdodCk7XHJcbiAgICBwYWRkaW5nOiB2YXIoLS1hdmF0YXItbGFyZ2UtcGFkZGluZyk7XHJcbiAgfVxyXG5cclxuICAmLS1tZWRpdW0ge1xyXG4gICAgd2lkdGg6IHZhcigtLWF2YXRhci1tZWRpdW0td2lkdGgpO1xyXG4gICAgaGVpZ2h0OiB2YXIoLS1hdmF0YXItbWVkaXVtLWhlaWdodCk7XHJcbiAgICBwYWRkaW5nOiB2YXIoLS1hdmF0YXItbWVkaXVtLXBhZGRpbmcpO1xyXG4gIH1cclxuXHJcbiAgJi0tc21hbGwge1xyXG4gICAgd2lkdGg6IHZhcigtLWF2YXRhci1zbWFsbC13aWR0aCk7XHJcbiAgICBoZWlnaHQ6IHZhcigtLWF2YXRhci1zbWFsbC1oZWlnaHQpO1xyXG4gICAgcGFkZGluZzogdmFyKC0tYXZhdGFyLXNtYWxsLXBhZGRpbmcpO1xyXG4gIH1cclxuXHJcbiAgJi0teHNtYWxsIHtcclxuICAgIHdpZHRoOiB2YXIoLS1hdmF0YXIteHNtYWxsLXdpZHRoKTtcclxuICAgIGhlaWdodDogdmFyKC0tYXZhdGFyLXhzbWFsbC1oZWlnaHQpO1xyXG4gICAgcGFkZGluZzogdmFyKC0tYXZhdGFyLXhzbWFsbC1wYWRkaW5nKTtcclxuICB9XHJcblxyXG4gICYtLXh4c21hbGwge1xyXG4gICAgd2lkdGg6IHZhcigtLWF2YXRhci14eHNtYWxsLXdpZHRoKTtcclxuICAgIGhlaWdodDogdmFyKC0tYXZhdGFyLXh4c21hbGwtaGVpZ2h0KTtcclxuICAgIHBhZGRpbmc6IHZhcigtLWF2YXRhci14eHNtYWxsLXBhZGRpbmcpO1xyXG4gIH1cclxufVxyXG5cclxuLyohKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiEqXFxcclxuICAhKioqIGNzcyAuL2NsaWVudC90b29saW5nL3dlYnBhY2svY3NzX3Jhd19sb2FkZXIuanM/P2Nsb25lZFJ1bGVTZXQtMTU2MS51c2VbMV0hLi9ub2RlX21vZHVsZXMvcG9zdGNzcy1sb2FkZXIvZGlzdC9janMuanM/P2Nsb25lZFJ1bGVTZXQtMTU2MS51c2VbMl0hLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2luZGV4LmpzPz9ydWxlU2V0WzBdLnVzZVswXSEuL2NsaWVudC9jb21wb25lbnQvdHVpL3NyYy9jb21wb25lbnRzL2Jhc2tldC9CYXNrZXQudnVlP3Z1ZSZ0eXBlPXN0eWxlJmluZGV4PTAmaWQ9ZmU1YjJmMDAmbGFuZz1zY3NzICoqKiFcclxuICBcXCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXHJcbi50dWktYmFza2V0IHtcclxuICBAaW5jbHVkZSBmb250KGJvZHkpO1xyXG5cclxuICBkaXNwbGF5OiBmbGV4O1xyXG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XHJcbiAgZmxleC13cmFwOiB3cmFwO1xyXG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLW5ldXRyYWwtMyk7XHJcbiAgYm9yZGVyOiB2YXIoLS1ib3JkZXItd2lkdGgtdGhpbikgc29saWQgdmFyKC0tY29sb3ItbmV1dHJhbC01KTtcclxuXHJcbiAgQG1lZGlhIChtaW4td2lkdGg6ICR0dWktc2NyZWVuLXNtKSB7XHJcbiAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xyXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcclxuICB9XHJcblxyXG4gICZfX3N0YXR1cyxcclxuICAmX19hY3Rpb25zIHtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBmbGV4LXNocmluazogMDtcclxuICAgIGZsZXgtd3JhcDogd3JhcDtcclxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICBwYWRkaW5nOiB2YXIoLS1nYXAtMikgdmFyKC0tZ2FwLTMpO1xyXG5cclxuICAgICYgPiAqIHtcclxuICAgICAgbWFyZ2luLXRvcDogdmFyKC0tZ2FwLTIpO1xyXG4gICAgICBtYXJnaW4tbGVmdDogdmFyKC0tZ2FwLTQpO1xyXG4gICAgfVxyXG5cclxuICAgIEBtZWRpYSAobWluLXdpZHRoOiAkdHVpLXNjcmVlbi14cykge1xyXG4gICAgICAmID4gKiB7XHJcbiAgICAgICAgbWFyZ2luLXRvcDogMDtcclxuICAgICAgICBtYXJnaW4tbGVmdDogMDtcclxuICAgICAgfVxyXG5cclxuICAgICAgPiAudHVpLWJ0bi0tdmFyaWFudC1saW5rIHtcclxuICAgICAgICBwYWRkaW5nOiB2YXIoLS1nYXAtMSk7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgID4gKiArICoge1xyXG4gICAgICAgIG1hcmdpbi1sZWZ0OiB2YXIoLS1nYXAtMik7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIC50dWktYmFza2V0LS13aWRlR2FwICYge1xyXG4gICAgICAgID4gKiArICoge1xyXG4gICAgICAgICAgbWFyZ2luLWxlZnQ6IHZhcigtLWdhcC00KTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gICZfX3NlbGVjdGVkIHtcclxuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xyXG4gIH1cclxuXHJcbiAgJl9fc2VsZWN0ZWRDb3VudCB7XHJcbiAgICBmb250LXNpemU6IGZvbnQtc2l6ZS1weCgxOCk7XHJcbiAgfVxyXG59XHJcblxyXG4vKiEqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiEqXFxcclxuICAhKioqIGNzcyAuL2NsaWVudC90b29saW5nL3dlYnBhY2svY3NzX3Jhd19sb2FkZXIuanM/P2Nsb25lZFJ1bGVTZXQtMTU2MS51c2VbMV0hLi9ub2RlX21vZHVsZXMvcG9zdGNzcy1sb2FkZXIvZGlzdC9janMuanM/P2Nsb25lZFJ1bGVTZXQtMTU2MS51c2VbMl0hLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2luZGV4LmpzPz9ydWxlU2V0WzBdLnVzZVswXSEuL2NsaWVudC9jb21wb25lbnQvdHVpL3NyYy9jb21wb25lbnRzL2J1dHRvbnMvQnV0dG9uLnZ1ZT92dWUmdHlwZT1zdHlsZSZpbmRleD0wJmlkPTc5YzAyNDNmJmxhbmc9c2NzcyAqKiohXHJcbiAgXFwqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cclxuLnR1aS1idG4ge1xyXG4gICRibG9jazogI3smfTtcclxuICAvKiBsb2NhbCBDU1MgdmFyaWFibGVzKi9cclxuICAtLXR1aS1idG4tY29sb3I6IHZhcigtLWJ0bi1hY2NlbnQtY29sb3IpO1xyXG4gIC0tdHVpLWJ0bi1jb2xvci1ob3ZlcjogdmFyKC0tYnRuLWFjY2VudC1jb2xvci1ob3Zlcik7XHJcbiAgLS10dWktYnRuLWNvbG9yLWFjdGl2ZTogdmFyKC0tYnRuLWFjY2VudC1jb2xvci1hY3RpdmUpO1xyXG4gIC0tdHVpLWJ0bi1jb2xvci1jb250cmFzdDogdmFyKC0tYnRuLWFjY2VudC1jb2xvci1jb250cmFzdCk7XHJcbiAgLS10dWktYnRuLXNoYWRvdzogbm9uZTtcclxuICAtLXR1aS1idG4tc2hhZG93LWhvdmVyOiB2YXIoLS1idG4tc2hhZG93LWhvdmVyKTtcclxuICAtLXR1aS1idG4tc2hhZG93LWFjdGl2ZTogdmFyKC0tYnRuLXNoYWRvdy1hY3RpdmUpO1xyXG4gIC0tdHVpLWJ0bi1jb250ZW50LWhlaWdodDogdmFyKC0tYnRuLWxpbmUtaGVpZ2h0KTtcclxuICAtLXR1aS1idG4tcGFkZGluZy1oOiBjYWxjKHZhcigtLWJ0bi1wYWRkaW5nLWgpIC0gdmFyKC0tYnRuLWJvcmRlci13aWR0aCkpO1xyXG4gIC0tdHVpLWJ0bi1wYWRkaW5nLXY6IGNhbGModmFyKC0tYnRuLXBhZGRpbmctdikgLSB2YXIoLS1idG4tYm9yZGVyLXdpZHRoKSk7XHJcbiAgLS10dWktYnRuLWZvbnQtc2l6ZTogdmFyKC0tYnRuLWZvbnQtc2l6ZSk7XHJcbiAgLS10dWktYnRuLWxpbmUtaGVpZ2h0OiB2YXIoLS1idG4tbGluZS1oZWlnaHQpO1xyXG4gIC0tdHVpLWJ0bi1taW4taGVpZ2h0OiBjYWxjKFxyXG4gICAgdmFyKC0tdHVpLWJ0bi1saW5lLWhlaWdodCkgK1xyXG4gICAgICAodmFyKC0tdHVpLWJ0bi1wYWRkaW5nLXYpICsgdmFyKC0tYnRuLWJvcmRlci13aWR0aCkpICogMlxyXG4gICk7XHJcblxyXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcclxuICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xyXG4gIG1pbi13aWR0aDogdmFyKC0tdHVpLWJ0bi1taW4taGVpZ2h0KTtcclxuICBtYXgtd2lkdGg6IDEwMCU7XHJcbiAgbWluLWhlaWdodDogdmFyKC0tdHVpLWJ0bi1taW4taGVpZ2h0KTtcclxuICBwYWRkaW5nOiB2YXIoLS10dWktYnRuLXBhZGRpbmctdikgdmFyKC0tdHVpLWJ0bi1wYWRkaW5nLWgpO1xyXG4gIGNvbG9yOiB2YXIoLS10dWktYnRuLWNvbG9yKTtcclxuICBmb250LXNpemU6IHZhcigtLXR1aS1idG4tZm9udC1zaXplKTtcclxuICBsaW5lLWhlaWdodDogdmFyKC0tdHVpLWJ0bi1saW5lLWhlaWdodCk7XHJcbiAgb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDtcclxuICBiYWNrZ3JvdW5kOiB2YXIoLS1idG4tYmctY29sb3IpO1xyXG4gIGJvcmRlcjogdmFyKC0tYnRuLWJvcmRlci13aWR0aCkgc29saWQ7XHJcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS10dWktYnRuLWNvbG9yKTtcclxuICBib3JkZXItcmFkaXVzOiB2YXIoLS1idG4tcmFkaXVzKTtcclxuICBjdXJzb3I6IHBvaW50ZXI7XHJcbiAgdHJhbnNpdGlvbjogdHVpLXRyYW5zaXRpb25zKFxyXG4gICAgJ2J1dHRvbicsXHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yIGJvcmRlci1jb2xvciBib3gtc2hhZG93XHJcbiAgKTtcclxuXHJcbiAgJjppcyhhKSB7XHJcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XHJcbiAgICAmOmhvdmVyLFxyXG4gICAgJjpmb2N1cyB7XHJcbiAgICAgIGNvbG9yOiB2YXIoLS10dWktYnRuLWNvbG9yKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gICZfX3dyYXAge1xyXG4gICAgQGluY2x1ZGUgZmxleC1jZW50ZXI7XHJcbiAgICBnYXA6IGdhcCgyKTtcclxuICB9XHJcblxyXG4gICZfX2NvbnRlbnQge1xyXG4gICAgQGluY2x1ZGUgZmxleC1jZW50ZXI7XHJcbiAgfVxyXG5cclxuICAmOmZvY3VzLXZpc2libGUge1xyXG4gICAgQGluY2x1ZGUgdHVpLWZvY3VzKCk7XHJcbiAgfVxyXG5cclxuICAmLS1jb2xvci1kYW5nZXIge1xyXG4gICAgLS10dWktYnRuLWNvbG9yOiB2YXIoLS1idG4tZGFuZ2VyLWNvbG9yKTtcclxuICAgIC0tdHVpLWJ0bi1jb2xvci1ob3ZlcjogdmFyKC0tYnRuLWRhbmdlci1jb2xvcik7XHJcbiAgICAtLXR1aS1idG4tY29sb3ItYWN0aXZlOiB2YXIoLS1idG4tZGFuZ2VyLWNvbG9yKTtcclxuICAgIC0tdHVpLWJ0bi1jb2xvci1jb250cmFzdDogdmFyKC0tYnRuLWRhbmdlci1jb2xvci1jb250cmFzdCk7XHJcbiAgfVxyXG5cclxuICAmOmhvdmVyIHtcclxuICAgIC0tdHVpLWJ0bi1jb2xvcjogdmFyKC0tdHVpLWJ0bi1jb2xvci1ob3Zlcik7XHJcbiAgICBib3gtc2hhZG93OiB2YXIoLS1idG4tc2hhZG93LWhvdmVyKTtcclxuICB9XHJcblxyXG4gICY6YWN0aXZlIHtcclxuICAgIC0tdHVpLWJ0bi1jb2xvcjogdmFyKC0tdHVpLWJ0bi1jb2xvci1hY3RpdmUpO1xyXG4gICAgYm94LXNoYWRvdzogdmFyKC0tYnRuLXNoYWRvdy1hY3RpdmUpO1xyXG4gIH1cclxuXHJcbiAgJi0tc2l6ZS1zbSB7XHJcbiAgICAtLXR1aS1idG4tZm9udC1zaXplOiB2YXIoLS1idG4tc20tZm9udC1zaXplKTtcclxuICAgIC0tdHVpLWJ0bi1saW5lLWhlaWdodDogdmFyKC0tYnRuLXNtLWxpbmUtaGVpZ2h0KTtcclxuICAgIC0tdHVpLWJ0bi1wYWRkaW5nLWg6IGNhbGMoXHJcbiAgICAgIHZhcigtLWJ0bi1zbS1wYWRkaW5nLWgpIC0gdmFyKC0tYnRuLWJvcmRlci13aWR0aClcclxuICAgICk7XHJcbiAgICAtLXR1aS1idG4tcGFkZGluZy12OiBjYWxjKFxyXG4gICAgICB2YXIoLS1idG4tc20tcGFkZGluZy12KSAtIHZhcigtLWJ0bi1ib3JkZXItd2lkdGgpXHJcbiAgICApO1xyXG4gICAgYm9yZGVyLXJhZGl1czogdmFyKC0tYnRuLXNtLXJhZGl1cyk7XHJcbiAgfVxyXG5cclxuICAmLS1zaXplLXNtICZfX3dyYXAge1xyXG4gICAgZ2FwOiBnYXAoMSk7XHJcbiAgfVxyXG5cclxuICAmLS1zaXplLXhzIHtcclxuICAgIC0tdHVpLWJ0bi1mb250LXNpemU6IHZhcigtLWJ0bi14cy1mb250LXNpemUpO1xyXG4gICAgLS10dWktYnRuLWxpbmUtaGVpZ2h0OiB2YXIoLS1idG4teHMtbGluZS1oZWlnaHQpO1xyXG4gICAgLS10dWktYnRuLXBhZGRpbmctaDogY2FsYyhcclxuICAgICAgdmFyKC0tYnRuLXhzLXBhZGRpbmctaCkgLSB2YXIoLS1idG4tYm9yZGVyLXdpZHRoKVxyXG4gICAgKTtcclxuICAgIC0tdHVpLWJ0bi1wYWRkaW5nLXY6IGNhbGMoXHJcbiAgICAgIHZhcigtLWJ0bi14cy1wYWRkaW5nLXYpIC0gdmFyKC0tYnRuLWJvcmRlci13aWR0aClcclxuICAgICk7XHJcbiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1idG4teHMtcmFkaXVzKTtcclxuICB9XHJcblxyXG4gICYtLXNpemUteHMgJl9fd3JhcCB7XHJcbiAgICBnYXA6IGdhcCgwLjc1KTtcclxuICB9XHJcblxyXG4gICYtLXZhcmlhbnQtZGVmYXVsdCB7XHJcbiAgICAmI3skYmxvY2t9LS1kaXNhYmxlZCB7XHJcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWJ0bi1iZy1jb2xvci1kaXNhYmxlZCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAmLS12YXJpYW50LXByaW1hcnkge1xyXG4gICAgY29sb3I6IHZhcigtLXR1aS1idG4tY29sb3ItY29udHJhc3QpO1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tdHVpLWJ0bi1jb2xvcik7XHJcblxyXG4gICAgJjppcyhhKTpob3ZlcixcclxuICAgICY6aXMoYSk6Zm9jdXMge1xyXG4gICAgICBjb2xvcjogdmFyKC0tdHVpLWJ0bi1jb2xvci1jb250cmFzdCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAmLS12YXJpYW50LXN0ZWFsdGgge1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XHJcbiAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50O1xyXG4gICAgYm94LXNoYWRvdzogbm9uZTtcclxuICAgICY6aG92ZXIge1xyXG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMDUpO1xyXG4gICAgICBib3gtc2hhZG93OiBub25lO1xyXG4gICAgfVxyXG4gICAgJjphY3RpdmUge1xyXG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMDcpO1xyXG4gICAgICBib3gtc2hhZG93OiBub25lO1xyXG4gICAgfVxyXG4gICAgJiN7JGJsb2NrfS0tZGlzYWJsZWQge1xyXG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gICYtLXZhcmlhbnQtbGluayB7XHJcbiAgICAtLXR1aS1idG4tY29sb3I6IHZhcigtLWxpbmstY29sb3IpO1xyXG4gICAgLS10dWktYnRuLWNvbG9yLWhvdmVyOiB2YXIoLS1saW5rLWNvbG9yKTtcclxuICAgIC0tdHVpLWJ0bi1jb2xvci1hY3RpdmU6IHZhcigtLWxpbmstY29sb3IpO1xyXG4gICAgLS10dWktYnRuLWNvbG9yLWNvbnRyYXN0OiB2YXIoLS1jb2xvci1uZXV0cmFsLTcpO1xyXG4gICAgLS10dWktYnRuLXBhZGRpbmctdjogMDtcclxuICAgIHBhZGRpbmc6IDA7XHJcbiAgICBsaW5lLWhlaWdodDogMTtcclxuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xyXG4gICAgYm9yZGVyOiBub25lO1xyXG4gICAgYm9yZGVyLXJhZGl1czogMDtcclxuXHJcbiAgICAmOmhvdmVyLFxyXG4gICAgJjphY3RpdmUge1xyXG4gICAgICBib3gtc2hhZG93OiBub25lO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyogY29tcGF0IGZvciBvbGQgQnV0dG9uSWNvbiBcInRyYW5zcGFyZW50XCIgc3R5bGUqL1xyXG4gICYtLWxlZ2FjeVRyYW5zcGFyZW50UGFkZGluZyB7XHJcbiAgICBwYWRkaW5nOiAwIHZhcigtLWdhcC0xKTtcclxuICB9XHJcblxyXG4gICYtLXNoYXBlLXBpbGwge1xyXG4gICAgYm9yZGVyLXJhZGl1czogdmFyKC0tdHVpLWJ0bi1taW4taGVpZ2h0KTtcclxuICB9XHJcblxyXG4gICYtLXNoYXBlLWNpcmNsZSB7XHJcbiAgICB3aWR0aDogdmFyKC0tdHVpLWJ0bi1taW4taGVpZ2h0KTtcclxuICAgIGhlaWdodDogdmFyKC0tdHVpLWJ0bi1taW4taGVpZ2h0KTtcclxuICAgIHBhZGRpbmc6IHZhcigtLXR1aS1idG4tcGFkZGluZy12KSAwO1xyXG4gICAgYm9yZGVyLXJhZGl1czogdmFyKC0tdHVpLWJ0bi1taW4taGVpZ2h0KTtcclxuICB9XHJcblxyXG4gICYtLWRpc2FibGVkIHtcclxuICAgICYsXHJcbiAgICAmOmhvdmVyLFxyXG4gICAgJjphY3RpdmUge1xyXG4gICAgICAtLXR1aS1idG4tY29sb3I6IHZhcigtLWJ0bi1hY2NlbnQtY29sb3ItZGlzYWJsZWQpO1xyXG4gICAgICBib3gtc2hhZG93OiBub25lO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgJi0tbG9hZGluZyB7XHJcbiAgICAjeyRibG9ja31fX2NvbnRlbnQsXHJcbiAgICAjeyRibG9ja31fX2ljb25CZWZvcmUsXHJcbiAgICAjeyRibG9ja31fX2ljb25BZnRlciB7XHJcbiAgICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcclxuICAgIH1cclxuICB9XHJcblxyXG4gICZfX2xvYWRpbmcge1xyXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgaW5zZXQ6IDA7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xyXG4gICAgY29sb3I6IHZhcigtLWJ0bi1sb2FkZXItY29sb3ItZGlzYWJsZWQpO1xyXG4gIH1cclxuXHJcbiAgJl9faWNvbkJlZm9yZSB7XHJcbiAgICBAaW5jbHVkZSBmbGV4LWNlbnRlcjtcclxuICB9XHJcblxyXG4gICZfX2ljb25BZnRlciB7XHJcbiAgICBAaW5jbHVkZSBmbGV4LWNlbnRlcjtcclxuICB9XHJcbn1cclxuXHJcbi8qISoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiohKlxcXHJcbiAgISoqKiBjc3MgLi9jbGllbnQvdG9vbGluZy93ZWJwYWNrL2Nzc19yYXdfbG9hZGVyLmpzPz9jbG9uZWRSdWxlU2V0LTE1NjEudXNlWzFdIS4vbm9kZV9tb2R1bGVzL3Bvc3Rjc3MtbG9hZGVyL2Rpc3QvY2pzLmpzPz9jbG9uZWRSdWxlU2V0LTE1NjEudXNlWzJdIS4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9pbmRleC5qcz8/cnVsZVNldFswXS51c2VbMF0hLi9jbGllbnQvY29tcG9uZW50L3R1aS9zcmMvY29tcG9uZW50cy9idXR0b25zL0J1dHRvbkdyb3VwLnZ1ZT92dWUmdHlwZT1zdHlsZSZpbmRleD0wJmlkPTM3OGFmMDMwJmxhbmc9c2NzcyAqKiohXHJcbiAgXFwqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xyXG4udHVpLWZvcm1CdG5Hcm91cCB7XHJcbiAgZGlzcGxheTogZmxleDtcclxuXHJcbiAgLnR1aS1idG4ge1xyXG4gICAgbWluLXdpZHRoOiA0cmVtO1xyXG4gIH1cclxuXHJcbiAgLnR1aS1idG4tLXNpemUtc20ge1xyXG4gICAgbWluLXdpZHRoOiAzcmVtO1xyXG4gIH1cclxuXHJcbiAgPiA6bm90KDpmaXJzdC1jaGlsZCkge1xyXG4gICAgbWFyZ2luOiBhdXRvIDAgYXV0byB2YXIoLS1nYXAtNCk7XHJcbiAgfVxyXG59XHJcblxyXG4vKiEqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqISpcXFxyXG4gICEqKiogY3NzIC4vY2xpZW50L3Rvb2xpbmcvd2VicGFjay9jc3NfcmF3X2xvYWRlci5qcz8/Y2xvbmVkUnVsZVNldC0xNTYxLnVzZVsxXSEuL25vZGVfbW9kdWxlcy9wb3N0Y3NzLWxvYWRlci9kaXN0L2Nqcy5qcz8/Y2xvbmVkUnVsZVNldC0xNTYxLnVzZVsyXSEuL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvaW5kZXguanM/P3J1bGVTZXRbMF0udXNlWzBdIS4vY2xpZW50L2NvbXBvbmVudC90dWkvc3JjL2NvbXBvbmVudHMvYnV0dG9ucy9JbmZvSWNvbkJ1dHRvbi52dWU/dnVlJnR5cGU9c3R5bGUmaW5kZXg9MCZpZD00ZjgwNDYzNCZsYW5nPXNjc3MgKioqIVxyXG4gIFxcKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cclxuLnR1aS1pbmZvSWNvbkJ1dHRvbiB7XHJcbiAgJi50dWktYnRuIHtcclxuICAgIG1hcmdpbjogMCByZW0tcHgoNCk7XHJcbiAgICB2ZXJ0aWNhbC1hbGlnbjogLTAuMTI1ZW07XHJcbiAgfVxyXG59XHJcblxyXG4vKiEqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiEqXFxcclxuICAhKioqIGNzcyAuL2NsaWVudC90b29saW5nL3dlYnBhY2svY3NzX3Jhd19sb2FkZXIuanM/P2Nsb25lZFJ1bGVTZXQtMTU2MS51c2VbMV0hLi9ub2RlX21vZHVsZXMvcG9zdGNzcy1sb2FkZXIvZGlzdC9janMuanM/P2Nsb25lZFJ1bGVTZXQtMTU2MS51c2VbMl0hLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2luZGV4LmpzPz9ydWxlU2V0WzBdLnVzZVswXSEuL2NsaWVudC9jb21wb25lbnQvdHVpL3NyYy9jb21wb25lbnRzL2J1dHRvbnMvTGFiZWxsZWRCdXR0b25UcmlnZ2VyLnZ1ZT92dWUmdHlwZT1zdHlsZSZpbmRleD0wJmlkPWFmYTQ4MDVjJmxhbmc9c2NzcyAqKiohXHJcbiAgXFwqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cclxuLnR1aS1sYWJlbGxlZEJ1dHRvblRyaWdnZXIge1xyXG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xyXG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XHJcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuXHJcbiAgJl9fbGFiZWwge1xyXG4gICAgY29sb3I6IHZhcigtLWNvbG9yLXN0YXRlKTtcclxuICAgICY6aG92ZXIge1xyXG4gICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcclxuICAgICAgY3Vyc29yOiBwb2ludGVyO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuLyohKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqISpcXFxyXG4gICEqKiogY3NzIC4vY2xpZW50L3Rvb2xpbmcvd2VicGFjay9jc3NfcmF3X2xvYWRlci5qcz8/Y2xvbmVkUnVsZVNldC0xNTYxLnVzZVsxXSEuL25vZGVfbW9kdWxlcy9wb3N0Y3NzLWxvYWRlci9kaXN0L2Nqcy5qcz8/Y2xvbmVkUnVsZVNldC0xNTYxLnVzZVsyXSEuL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvaW5kZXguanM/P3J1bGVTZXRbMF0udXNlWzBdIS4vY2xpZW50L2NvbXBvbmVudC90dWkvc3JjL2NvbXBvbmVudHMvY2FyZC9BY3Rpb25DYXJkLnZ1ZT92dWUmdHlwZT1zdHlsZSZpbmRleD0wJmlkPTM0NzA3M2Q2Jmxhbmc9c2NzcyAqKiohXHJcbiAgXFwqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXHJcbi50dWktYWN0aW9uQ2FyZCB7XHJcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxuICBwYWRkaW5nOiB2YXIoLS1nYXAtNCk7XHJcblxyXG4gICZfX2JvZHkge1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGZsZXgtZ3JvdzogMTtcclxuICAgIGZsZXgtc2hyaW5rOiAxO1xyXG4gICAgZmxleC13cmFwOiB3cmFwO1xyXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICB9XHJcblxyXG4gICZfX2FjdGlvbiB7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgZmxleC1zaHJpbms6IDA7XHJcbiAgICBhbGlnbi1pdGVtczogbm9ybWFsO1xyXG4gICAgcGFkZGluZzogdmFyKC0tZ2FwLTQpIDAgMDtcclxuICB9XHJcblxyXG4gICYtLW5vUGFkZGluZyB7XHJcbiAgICBwYWRkaW5nOiAwO1xyXG4gIH1cclxuXHJcbiAgJi0tbm9XcmFwIHtcclxuICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XHJcbiAgfVxyXG5cclxuICAmLS1ub1dyYXAgJl9fYWN0aW9uIHtcclxuICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XHJcbiAgICBwYWRkaW5nOiAwO1xyXG4gIH1cclxuXHJcbiAgJi0tc2hhZGVkIHtcclxuICAgIGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLW5ldXRyYWwtMyk7XHJcbiAgfVxyXG59XHJcblxyXG5AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAkdHVpLXNjcmVlbi1zbSkge1xyXG4gIC50dWktYWN0aW9uQ2FyZCB7XHJcbiAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xyXG4gICAgJi0tc3RhY2tlZCB7XHJcbiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XHJcbiAgICB9XHJcblxyXG4gICAgJjpub3QoJi0tc3RhY2tlZCkgJl9fYWN0aW9uIHtcclxuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgICAgcGFkZGluZzogMCAwIDAgdmFyKC0tZ2FwLTQpO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuLyohKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqISpcXFxyXG4gICEqKiogY3NzIC4vY2xpZW50L3Rvb2xpbmcvd2VicGFjay9jc3NfcmF3X2xvYWRlci5qcz8/Y2xvbmVkUnVsZVNldC0xNTYxLnVzZVsxXSEuL25vZGVfbW9kdWxlcy9wb3N0Y3NzLWxvYWRlci9kaXN0L2Nqcy5qcz8/Y2xvbmVkUnVsZVNldC0xNTYxLnVzZVsyXSEuL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvaW5kZXguanM/P3J1bGVTZXRbMF0udXNlWzBdIS4vY2xpZW50L2NvbXBvbmVudC90dWkvc3JjL2NvbXBvbmVudHMvY2FyZC9DYXJkLnZ1ZT92dWUmdHlwZT1zdHlsZSZpbmRleD0wJmlkPTM4ZGQyZDAwJmxhbmc9c2NzcyAqKiohXHJcbiAgXFwqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXHJcbi50dWktY2FyZCB7XHJcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tY2FyZC1ib3JkZXItY29sb3IpO1xyXG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLWNhcmQtYm9yZGVyLXJhZGl1cyk7XHJcbiAgb3V0bGluZTogbm9uZTtcclxuXHJcbiAgJl9fbGluayB7XHJcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICB3aWR0aDogMTAwJTtcclxuICAgIGhlaWdodDogMTAwJTtcclxuICB9XHJcblxyXG4gICYtLW5vQm9yZGVyIHtcclxuICAgIGJvcmRlcjogbm9uZTtcclxuICAgICY6Zm9jdXMsXHJcbiAgICAmOmhvdmVyIHtcclxuICAgICAgYm9yZGVyOiBub25lO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgJi0taGFzSG92ZXJTaGFkb3c6Zm9jdXMsXHJcbiAgJi0taGFzSG92ZXJTaGFkb3c6aG92ZXIge1xyXG4gICAgYm94LXNoYWRvdzogdmFyKC0tc2hhZG93LTIpO1xyXG4gIH1cclxuXHJcbiAgJi0taGFzU2hhZG93IHtcclxuICAgIGJveC1zaGFkb3c6IHZhcigtLXNoYWRvdy0yKTtcclxuICB9XHJcblxyXG4gICYtLWNsaWNrYWJsZSB7XHJcbiAgICB0cmFuc2l0aW9uOiBib3gtc2hhZG93IHZhcigtLXRyYW5zaXRpb24tZm9ybS1mdW5jdGlvbilcclxuICAgICAgdmFyKC0tdHJhbnNpdGlvbi1mb3JtLWR1cmF0aW9uKTtcclxuXHJcbiAgICAmLnR1aS1mb2N1c1dpdGhpbiB7XHJcbiAgICAgIGJveC1zaGFkb3c6IHZhcigtLXNoYWRvdy0yKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gICYtLWNsaWNrYWJsZTpob3ZlciB7XHJcbiAgICBib3gtc2hhZG93OiB2YXIoLS1zaGFkb3ctMik7XHJcbiAgICBjdXJzb3I6IHBvaW50ZXI7XHJcbiAgfVxyXG5cclxuICAmLS1jbGlja2FibGU6Zm9jdXMge1xyXG4gICAgQGluY2x1ZGUgdHVpLWZvY3VzO1xyXG4gIH1cclxufVxyXG5cclxuLyohKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiohKlxcXHJcbiAgISoqKiBjc3MgLi9jbGllbnQvdG9vbGluZy93ZWJwYWNrL2Nzc19yYXdfbG9hZGVyLmpzPz9jbG9uZWRSdWxlU2V0LTE1NjEudXNlWzFdIS4vbm9kZV9tb2R1bGVzL3Bvc3Rjc3MtbG9hZGVyL2Rpc3QvY2pzLmpzPz9jbG9uZWRSdWxlU2V0LTE1NjEudXNlWzJdIS4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9pbmRleC5qcz8/cnVsZVNldFswXS51c2VbMF0hLi9jbGllbnQvY29tcG9uZW50L3R1aS9zcmMvY29tcG9uZW50cy9jYXJkL0NhcmRTY3JvbGxlci52dWU/dnVlJnR5cGU9c3R5bGUmaW5kZXg9MCZpZD02YWFiYzY0YyZsYW5nPXNjc3MgKioqIVxyXG4gIFxcKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXHJcbi50dWktY2FyZFNjcm9sbGVyIHtcclxuICBkaXNwbGF5OiBmbGV4O1xyXG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XHJcblxyXG4gICZfX3RpdGxlUm93IHtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBnYXA6IHZhcigtLWdhcC0yKTtcclxuICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcclxuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcclxuICAgIHBhZGRpbmctYm90dG9tOiB2YXIoLS1nYXAtMyk7XHJcbiAgICBib3JkZXItYm90dG9tOiB2YXIoLS1ib3JkZXItd2lkdGgtbm9ybWFsKSBzb2xpZCB2YXIoLS1jb2xvci1uZXV0cmFsLTQpO1xyXG4gIH1cclxuXHJcbiAgJl9fdGl0bGUge1xyXG4gICAgQGluY2x1ZGUgZm9udChoMyk7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgZ2FwOiByZW0tcHgoNik7XHJcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAgcGFkZGluZy1ib3R0b206IHZhcigtLWdhcC0xKTtcclxuICAgIGNvbG9yOiBpbmhlcml0O1xyXG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcclxuICAgIG92ZXJmbG93LXdyYXA6IGFueXdoZXJlO1xyXG4gICAgJjpob3ZlcixcclxuICAgICY6Zm9jdXMge1xyXG4gICAgICBjb2xvcjogaW5oZXJpdDtcclxuICAgIH1cclxuICAgICY6Zm9jdXMtdmlzaWJsZSB7XHJcbiAgICAgIEBpbmNsdWRlIHR1aS1mb2N1cztcclxuICAgIH1cclxuXHJcbiAgICAvKiBEaXR5IHRyaWNrIHRvIG92ZXJyaWRlIHRoZSBibG9jayBoZWFkZXIgc3R5bGluZyovXHJcbiAgICAvKiovXHJcbiAgICAvKiBUT0RPOiBBIGJldHRlciBzb2x1dGlvbiBpcyB0byByZW1vdmUgdGhlIFwiLmJsb2NrIC5jb250ZW50IGgyXCIgc3R5bGVzIGZyb20gYmxvY2tzLnNjc3MgYXNzdW1pbmcgdGhleSdyZSBub3QgbmVlZGVkKi9cclxuICAgIC8qIFRoaXMgd291bGQgcmVxdWlyZSBhIHRob3JvdWdoIHRlc3Qgb2YgYWxsIHRoZSBibG9ja3MgdG8gbWFrZSBzdXJlIGl0J3Mgc2FmZSB0byByZW1vdmUgdGhvc2UqL1xyXG4gICAgJi1oZWFkZXIudHVpLWNhcmRTY3JvbGxlcl9fdGl0bGUtaGVhZGVyLnR1aS1jYXJkU2Nyb2xsZXJfX3RpdGxlLWhlYWRlciB7XHJcbiAgICAgIG1hcmdpbjogMDtcclxuICAgICAgZm9udC1zaXplOiB2YXIoLS1mb250LWgzLXNpemUpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgJl9fdGl0bGVJY29uIHtcclxuICAgIGZsZXgtc2hyaW5rOiAwO1xyXG4gICAgbWFyZ2luLXRvcDogMC4yZW07XHJcbiAgICBmb250LXNpemU6IGZvbnQtc2l6ZS1weCgxMik7XHJcbiAgICB0cmFuc2l0aW9uOiB0dWktdHJhbnNpdGlvbignYnV0dG9uJywgdHJhbnNmb3JtKTtcclxuICB9XHJcblxyXG4gICZfX3RpdGxlOmhvdmVyICZfX3RpdGxlSWNvbiB7XHJcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgocmVtLXB4KDMpKTtcclxuICB9XHJcblxyXG4gICZfX3RpdGxlQ29udHJvbHMge1xyXG4gICAgZmxleC1zaHJpbms6IDA7XHJcbiAgfVxyXG5cclxuICAmX19uYXZCdXR0b24taWNvbiB7XHJcbiAgICBjb2xvcjogdmFyKC0tY29sb3ItdGV4dCk7XHJcbiAgICAmLS1kaXNhYmxlZCB7XHJcbiAgICAgIGNvbG9yOiB2YXIoLS1jb2xvci1zdGF0ZS1kaXNhYmxlZCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAmX19jYXJkc0JveCB7XHJcbiAgICBwYWRkaW5nLXRvcDogdmFyKC0tZ2FwLTQpO1xyXG4gIH1cclxuXHJcbiAgJi0tdmFyaWFudC1ib3hlZCAmX19jYXJkc0JveCB7XHJcbiAgICBwYWRkaW5nOiBjYWxjKHZhcigtLWdhcC0xKSAqIDUuNSk7XHJcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci1uZXV0cmFsLTMpO1xyXG4gICAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IHJlbS1weCg4KTtcclxuICAgIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IHJlbS1weCg4KTtcclxuICB9XHJcblxyXG4gICZfX2NhcmRzQ29udGFpbmVyOmhhcygmX19jYXJkcy0tdHJhbnNpdGlvbi1lbnRlci1hY3RpdmUsICZfX2NhcmRzLS10cmFuc2l0aW9uLWxlYXZlLWFjdGl2ZSkge1xyXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgLyogdGVtcG9yYXJpbHkgZXhwYW5kIGJvdW5kcyB3aGlsZSB3ZSdyZSBhcHBseWluZyBoaWRkZW4gb3ZlcmZsb3cgdG8gYXZvaWQgY3V0dGluZyBvZmYgc2hhZG93Ki9cclxuICAgIG1hcmdpbjogY2FsYyh2YXIoLS1nYXAtNCkgKiAtMSk7XHJcbiAgICBwYWRkaW5nOiB2YXIoLS1nYXAtNCk7XHJcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xyXG4gIH1cclxuXHJcbiAgJl9fY2FyZHMge1xyXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XHJcbiAgICBnYXA6IHZhcigtLWdhcC00KTtcclxuXHJcbiAgICAmLS10cmFuc2l0aW9uIHtcclxuICAgICAgJi1lbnRlci1hY3RpdmUsXHJcbiAgICAgICYtbGVhdmUtYWN0aXZlIHtcclxuICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgY3ViaWMtYmV6aWVyKDAsIDAuMSwgMCwgMSk7XHJcbiAgICAgICAgQG1lZGlhIChwcmVmZXJzLXJlZHVjZWQtbW90aW9uKSB7XHJcbiAgICAgICAgICB0cmFuc2l0aW9uOiBub25lO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG5cclxuICAgICAgJi1lbnRlci1mcm9tIHtcclxuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoY2FsYygxMDAlICsgdmFyKC0tZ2FwLTYpKSk7XHJcbiAgICAgIH1cclxuICAgICAgJi1sZWF2ZS10byB7XHJcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKGNhbGMoLTEwMCUgLSB2YXIoLS1nYXAtNikpKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgJi1sZWF2ZS1hY3RpdmUge1xyXG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgICYgPiAqIHtcclxuICAgICAgZmxleC1iYXNpczogMDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gICYtLWRpci1iYWNrICZfX2NhcmRzLS10cmFuc2l0aW9uIHtcclxuICAgICYtZW50ZXItZnJvbSB7XHJcbiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMTAwJSk7XHJcbiAgICB9XHJcbiAgICAmLWxlYXZlLXRvIHtcclxuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDEwMCUpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgJl9fY2FyZHMtLW1lYXN1cmVyIHtcclxuICAgIG92ZXJmbG93LXg6IGhpZGRlbjtcclxuICB9XHJcblxyXG4gICYtLWV4cGFuZFRvRmlsbCAmX19jYXJkcy0tZGlzcGxheSA+ICoge1xyXG4gICAgZmxleC1ncm93OiAxO1xyXG4gIH1cclxuXHJcbiAgJl9fY2FyZHMtbG9hZGluZyB7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgZmxleDogMTtcclxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuICAgIG1pbi1oZWlnaHQ6IHJlbS1weCgxMDApO1xyXG4gIH1cclxufVxyXG5cclxuLyohKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiohKlxcXHJcbiAgISoqKiBjc3MgLi9jbGllbnQvdG9vbGluZy93ZWJwYWNrL2Nzc19yYXdfbG9hZGVyLmpzPz9jbG9uZWRSdWxlU2V0LTE1NjEudXNlWzFdIS4vbm9kZV9tb2R1bGVzL3Bvc3Rjc3MtbG9hZGVyL2Rpc3QvY2pzLmpzPz9jbG9uZWRSdWxlU2V0LTE1NjEudXNlWzJdIS4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9pbmRleC5qcz8/cnVsZVNldFswXS51c2VbMF0hLi9jbGllbnQvY29tcG9uZW50L3R1aS9zcmMvY29tcG9uZW50cy9jYXJkL0xlYXJuaW5nQ2FyZC52dWU/dnVlJnR5cGU9c3R5bGUmaW5kZXg9MCZpZD0zMWVjZWFiZSZsYW5nPXNjc3MgKioqIVxyXG4gIFxcKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXHJcbi50dWktbGVhcm5pbmdDYXJkIHtcclxuICAkYmxvY2s6ICN7Jn07XHJcbiAgJGhlcm8tcGlsbC1oOiByZW0tcHgoMjApO1xyXG4gICRhY3Rpb24taXRlbS1kaW1lbnNpb246IHJlbS1weCgyMCk7XHJcbiAgJGhlcm8tbGFiZWwtbWluLXc6IHJlbS1weCg1OCk7XHJcbiAgJGhvdmVyLXNoYWRvdzogMCA4cHggMTZweCAwIHJnYmEoMCwgMCwgMCwgMC4xNSk7XHJcbiAgLS10dWktbGVhcm5pbmdDYXJkLWJhY2tncm91bmQtZ3JhZGllbnQ6IGxpbmVhci1ncmFkaWVudChcclxuICAgIDE4MGRlZyxcclxuICAgIHJnYmEoMCwgMCwgMCwgMCkgMTAlLFxyXG4gICAgcmdiYSgwLCAwLCAwLCAwLjQpIDQwJSxcclxuICAgIHZhcigtLWNvbG9yLW5ldXRyYWwtNykgODAlXHJcbiAgKTtcclxuXHJcbiAgQG1peGluIGFjdGlvbi1wZXJzaXN0ZW50IHtcclxuICAgIHBhZGRpbmctYm90dG9tOiB2YXIoLS1nYXAtMSk7XHJcbiAgICBwYWRkaW5nLWxlZnQ6IHZhcigtLWdhcC0xKTtcclxuICAgIG9wYWNpdHk6IDE7XHJcbiAgfVxyXG5cclxuICBAbWl4aW4gY2FyZC10b3AtcmFkaXVzIHtcclxuICAgIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IHZhcigtLWNhcmQtYm9yZGVyLXJhZGl1cyk7XHJcbiAgICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogdmFyKC0tY2FyZC1ib3JkZXItcmFkaXVzKTtcclxuICB9XHJcblxyXG4gIEBtaXhpbiBjYXJkLWJvdHRvbS1yYWRpdXMge1xyXG4gICAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IHZhcigtLWNhcmQtYm9yZGVyLXJhZGl1cyk7XHJcbiAgICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiB2YXIoLS1jYXJkLWJvcmRlci1yYWRpdXMpO1xyXG4gIH1cclxuXHJcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxuICBtYXJnaW46IGNhbGMoKHZhcigtLWdhcC0xKSAqIDEuNSkgKiAtMSk7XHJcbiAgcGFkZGluZzogY2FsYyh2YXIoLS1nYXAtMSkgKiAxLjUpO1xyXG4gIG92ZXJmbG93LXdyYXA6IGJyZWFrLXdvcmQ7XHJcbiAgYm9yZGVyLXJhZGl1czogY2FsYyh2YXIoLS1jYXJkLWJvcmRlci1yYWRpdXMpICogMik7XHJcbiAgb3V0bGluZTogbm9uZTtcclxuICBpc29sYXRpb246IGlzb2xhdGU7XHJcbiAgdHJhbnNpdGlvbjogYm94LXNoYWRvdyAwLjNzIGVhc2UtaW4tb3V0O1xyXG5cclxuICBAbWVkaWEgKGhvdmVyOiBub25lKSB7XHJcbiAgICAudHVpLWxlYXJuaW5nQ2FyZF9fYWN0aW9uV3JhcHBlciB7XHJcbiAgICAgIEBpbmNsdWRlIGFjdGlvbi1wZXJzaXN0ZW50O1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgJjpob3ZlciB7XHJcbiAgICB6LWluZGV4OiAxO1xyXG4gICAgYm94LXNoYWRvdzogJGhvdmVyLXNoYWRvdztcclxuICB9XHJcblxyXG4gICY6aG92ZXIsXHJcbiAgJjpmb2N1cy13aXRoaW4ge1xyXG4gICAgLnR1aS1sZWFybmluZ0NhcmRfX2FjdGlvbldyYXBwZXIge1xyXG4gICAgICBAaW5jbHVkZSBhY3Rpb24tcGVyc2lzdGVudDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIEBtaXhpbiBiYWNrZ3JvdW5kLWltYWdlIHtcclxuICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XHJcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XHJcbiAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xyXG4gIH1cclxuXHJcbiAgJi0tdmFyaWFudC1oZXJvIHtcclxuICAgICN7JGJsb2NrfV9faW1hZ2Uge1xyXG4gICAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1jYXJkLWJvcmRlci1yYWRpdXMpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgJi0tdmFyaWFudC1ncmV5LWJvZHkge1xyXG4gICAgI3skYmxvY2t9X19pbWFnZSB7XHJcbiAgICAgIEBpbmNsdWRlIGNhcmQtdG9wLXJhZGl1cztcclxuICAgIH1cclxuXHJcbiAgICAjeyRibG9ja31fX2JvZHkge1xyXG4gICAgICBAaW5jbHVkZSBjYXJkLWJvdHRvbS1yYWRpdXM7XHJcbiAgICAgIGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLW5ldXRyYWwtMik7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAmLS12YXJpYW50LWJhY2tncm91bmQge1xyXG4gICAgI3skYmxvY2t9X19pbWFnZSB7XHJcbiAgICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLWNhcmQtYm9yZGVyLXJhZGl1cyk7XHJcbiAgICB9XHJcblxyXG4gICAgI3skYmxvY2t9X19ib2R5IHtcclxuICAgICAgY29sb3I6IHZhcigtLWNvbG9yLW5ldXRyYWwtMSk7XHJcbiAgICB9XHJcblxyXG4gICAgI3skYmxvY2t9X19mb290ZXIge1xyXG4gICAgICBAaW5jbHVkZSBjYXJkLWJvdHRvbS1yYWRpdXM7XHJcbiAgICAgIGNvbG9yOiB2YXIoLS1jb2xvci1uZXV0cmFsLTEpO1xyXG4gICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci1uZXV0cmFsLTcpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgJl9fcG9wRnJvbnQge1xyXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgei1pbmRleDogMjtcclxuICB9XHJcblxyXG4gICZfX2xpbmsge1xyXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgaW5zZXQ6IDA7XHJcbiAgICB6LWluZGV4OiAxO1xyXG4gICAgYm9yZGVyLXJhZGl1czogdmFyKC0tY2FyZC1ib3JkZXItcmFkaXVzKTtcclxuXHJcbiAgICAmOmZvY3VzLXZpc2libGUge1xyXG4gICAgICBAaW5jbHVkZSB0dWktZm9jdXM7XHJcbiAgICAgIG91dGxpbmUtb2Zmc2V0OiB2YXIoLS1nYXAtMik7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAmLS1zaXplLXNtIHtcclxuICAgIG1pbi1oZWlnaHQ6IHJlbS1weCgyMDApO1xyXG4gIH1cclxuXHJcbiAgJi0tc2l6ZS1kZWZhdWx0IHtcclxuICAgIG1pbi1oZWlnaHQ6IHJlbS1weCgzMTIpO1xyXG4gIH1cclxuXHJcbiAgJl9fYmFja2dyb3VuZCB7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxuICAgIGZsZXgtZ3JvdzogMTtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgaGVpZ2h0OiAxMDAlO1xyXG4gICAgY29sb3I6IGluaGVyaXQ7XHJcbiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1jYXJkLWJvcmRlci1yYWRpdXMpO1xyXG4gICAgQGluY2x1ZGUgYmFja2dyb3VuZC1pbWFnZTtcclxuXHJcbiAgICAmLS1kZWZhdWx0IHtcclxuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItbmV1dHJhbC0yKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gICZfX21lZGlhQ29udGFpbmVyIHtcclxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuXHJcbiAgICAmLS1hc3BlY3QtcmF0aW8ge1xyXG4gICAgICBhc3BlY3QtcmF0aW86IDE2IC8gOTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gICZfX2ltYWdlIHtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICB3aWR0aDogMTAwJTtcclxuICAgIGhlaWdodDogMTAwJTtcclxuICAgIEBpbmNsdWRlIGJhY2tncm91bmQtaW1hZ2U7XHJcblxyXG4gICAgJi0tYmFja2dyb3VuZC1kZWZhdWx0IHtcclxuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItcHJpbWFyeSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAmX19vdmVybGF5V3JhcHBlciB7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gIH1cclxuXHJcbiAgJl9fbWVkaWFPdmVybGF5VG9wIHtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xyXG4gICAgbWluLWhlaWdodDogcmVtLXB4KDU2KTtcclxuICAgIHBhZGRpbmc6IHZhcigtLWdhcC0zKTtcclxuICB9XHJcblxyXG4gICZfX2hlcm9Db250YWluZXIge1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIG1pbi13aWR0aDogJGhlcm8tbGFiZWwtbWluLXc7XHJcbiAgICBtYXJnaW4tcmlnaHQ6IHZhcigtLWdhcC00KTtcclxuICB9XHJcblxyXG4gICZfX2hlcm9JY29uV3JhcHBlciB7XHJcbiAgICBtYXJnaW4tcmlnaHQ6IHZhcigtLWdhcC0xKTtcclxuICB9XHJcblxyXG4gICZfX2hlcm9MYWJlbFdyYXBwZXIge1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICBoZWlnaHQ6ICRoZXJvLXBpbGwtaDtcclxuICAgIHBhZGRpbmc6IHZhcigtLWdhcC0yKTtcclxuICAgIG92ZXJmbG93OiBoaWRkZW47XHJcbiAgICBjb2xvcjogdmFyKC0tY29sb3ItbmV1dHJhbC0xKTtcclxuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLW5ldXRyYWwtNyk7XHJcbiAgICBib3JkZXItcmFkaXVzOiAkaGVyby1waWxsLWg7XHJcbiAgICBAaW5jbHVkZSBmb250KGJvZHktc20pO1xyXG4gIH1cclxuXHJcbiAgJl9faGVyby1sYWJlbCB7XHJcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xyXG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcclxuICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xyXG4gICAgQGluY2x1ZGUgZm9udChib2R5LXNtKTtcclxuICB9XHJcblxyXG4gICZfX2FjdGlvbkNvbnRhaW5lciB7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgbWFyZ2luLWxlZnQ6IGF1dG87XHJcbiAgfVxyXG5cclxuICAmX19hY3Rpb25XcmFwcGVyIHtcclxuICAgIG9wYWNpdHk6IDA7XHJcblxyXG4gICAgJi0tcGVyc2lzdGVudCB7XHJcbiAgICAgIEBpbmNsdWRlIGFjdGlvbi1wZXJzaXN0ZW50O1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgJl9fYWN0aW9uLXRyaWdnZXIsXHJcbiAgJl9fYWN0aW9uLWl0ZW0ge1xyXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgei1pbmRleDogMjtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcbiAgICBwYWRkaW5nOiBjYWxjKHZhcigtLWdhcC0xKSAqIDEuNSk7XHJcbiAgICBjb2xvcjogdmFyKC0tY29sb3ItbmV1dHJhbC03KTtcclxuICAgIGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLW5ldXRyYWwtMik7XHJcbiAgICBib3JkZXI6IDA7XHJcbiAgICBib3JkZXItcmFkaXVzOiAkYWN0aW9uLWl0ZW0tZGltZW5zaW9uO1xyXG5cclxuICAgICY6aG92ZXIge1xyXG4gICAgICBjb2xvcjogdmFyKC0tY29sb3Itc3RhdGUtaG92ZXIpO1xyXG4gICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci1uZXV0cmFsLTEpO1xyXG4gICAgICBib3gtc2hhZG93OiB2YXIoLS1idG4tc2hhZG93LWhvdmVyKTtcclxuICAgIH1cclxuXHJcbiAgICAmLS1wZXJzaXN0ZW50IHtcclxuICAgICAgZGlzcGxheTogZmxleDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gICZfX21lZGlhT3ZlcmxheUNlbnRyZSB7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgZmxleC1iYXNpczogMTAwJTtcclxuICAgIHBhZGRpbmc6IHZhcigtLWdhcC0zKTtcclxuICB9XHJcblxyXG4gICZfX21lZGlhT3ZlcmxheUJvdHRvbSB7XHJcbiAgICBtYXJnaW4tdG9wOiBhdXRvO1xyXG4gICAgcGFkZGluZzogdmFyKC0tZ2FwLTMpO1xyXG4gIH1cclxuXHJcbiAgJl9fYm9keSxcclxuICAmX19mb290ZXIge1xyXG4gICAgcGFkZGluZzogdmFyKC0tZ2FwLTMpO1xyXG4gIH1cclxuXHJcbiAgJl9fdGl0bGUge1xyXG4gICAgZGlzcGxheTogLXdlYmtpdC1ib3g7XHJcbiAgICBtYXJnaW46IDAgMCB2YXIoLS1nYXAtMSkgMDtcclxuICAgIG92ZXJmbG93OiBoaWRkZW47XHJcbiAgICBmb250LXdlaWdodDogNTAxO1xyXG4gICAgZm9udC1zaXplOiBmb250LXNpemUtcHgoMTYpO1xyXG4gICAgbGluZS1oZWlnaHQ6IGxpbmUtaGVpZ2h0LXB4KDI0KTtcclxuICAgIC13ZWJraXQtbGluZS1jbGFtcDogNDtcclxuICAgIC13ZWJraXQtYm94LW9yaWVudDogdmVydGljYWw7XHJcbiAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcclxuICB9XHJcblxyXG4gICZfX2JvZHkge1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XHJcbiAgICBmbGV4LWdyb3c6IDE7XHJcbiAgfVxyXG59XHJcblxyXG4vKiEqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiEqXFxcclxuICAhKioqIGNzcyAuL2NsaWVudC90b29saW5nL3dlYnBhY2svY3NzX3Jhd19sb2FkZXIuanM/P2Nsb25lZFJ1bGVTZXQtMTU2MS51c2VbMV0hLi9ub2RlX21vZHVsZXMvcG9zdGNzcy1sb2FkZXIvZGlzdC9janMuanM/P2Nsb25lZFJ1bGVTZXQtMTU2MS51c2VbMl0hLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2luZGV4LmpzPz9ydWxlU2V0WzBdLnVzZVswXSEuL2NsaWVudC9jb21wb25lbnQvdHVpL3NyYy9jb21wb25lbnRzL2NvbGxhcHNpYmxlL0NvbGxhcHNpYmxlLnZ1ZT92dWUmdHlwZT1zdHlsZSZpbmRleD0wJmlkPTU3OTUzNTU0Jmxhbmc9c2NzcyAqKiohXHJcbiAgXFwqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cclxuLnR1aS1jb2xsYXBzaWJsZSB7XHJcbiAgJl9faGVhZGVyIHtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jb2xsYXBzaWJsZS1oZWFkZXItYmctY29sb3IpO1xyXG4gICAgYm9yZGVyOiB2YXIoLS1ib3JkZXItd2lkdGgtdGhpbikgc29saWRcclxuICAgICAgdmFyKC0tY29sbGFwc2libGUtaGVhZGVyLWJvcmRlci1jb2xvcik7XHJcblxyXG4gICAgJi1oZWFkaW5nIHtcclxuICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAgZmxleC1ncm93OiAxO1xyXG4gICAgICBtYXJnaW46IDA7XHJcbiAgICB9XHJcblxyXG4gICAgJi1idXR0b24ge1xyXG4gICAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgICBmbGV4LWdyb3c6IDE7XHJcbiAgICAgIG1hcmdpbjogMDtcclxuICAgICAgcGFkZGluZzogdmFyKC0tZ2FwLTIpIHZhcigtLWdhcC0yKSB2YXIoLS1nYXAtMikgMDtcclxuICAgICAgb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDtcclxuXHJcbiAgICAgICYtLWV4Y2x1ZGVIZWFkZXJQYWRkaW5nIHtcclxuICAgICAgICBwYWRkaW5nOiAwO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBjdXJzb3I6IHBvaW50ZXI7XHJcbiAgICAgIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7XHJcbiAgICAgICAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XHJcblxyXG4gICAgICAmOm5vdCgmLS1oaWRlRm9jdXMpIHtcclxuICAgICAgICAmOmZvY3VzLXZpc2libGUge1xyXG4gICAgICAgICAgQGluY2x1ZGUgdHVpLWZvY3VzKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgJi1pY29uIHtcclxuICAgICAgJGljb24tc2l6ZTogcmVtLXB4KDE0KTtcclxuICAgICAgZmxleC1zaHJpbms6IDA7XHJcbiAgICAgIG1hcmdpbjogMCB2YXIoLS1nYXAtNCk7XHJcbiAgICAgIG1hcmdpbi10b3A6IGNhbGMoKHZhcigtLWZvbnQtaDQtbGluZS1oZWlnaHQpIC0gI3skaWNvbi1zaXplfSkgLyAyKTtcclxuICAgICAgY29sb3I6IHZhcigtLWNvbG9yLXN0YXRlKTtcclxuICAgICAgZm9udC1zaXplOiAkaWNvbi1zaXplO1xyXG4gICAgfVxyXG5cclxuICAgICYtdGV4dCB7XHJcbiAgICAgIEBpbmNsdWRlIGZvbnQoaDQpO1xyXG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICAgIG1hcmdpbjogMDtcclxuICAgIH1cclxuXHJcbiAgICAmLXNpZGVDb250ZW50IHtcclxuICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAgZmxleC1zaHJpbms6IDA7XHJcbiAgICAgIHBhZGRpbmc6IHZhcigtLWdhcC0yKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gICZfX2NvbnRlbnQge1xyXG4gICAgJiA+IC50dWktZm9ybVJvd1N0YWNrIHtcclxuICAgICAgbWFyZ2luLXRvcDogdmFyKC0tZ2FwLTQpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qIGxpbmUgdXAgd2l0aCB0ZXh0IG9mIGhlYWRlciovXHJcbiAgICAmLS1pbmRlbnRlZCB7XHJcbiAgICAgIHBhZGRpbmctbGVmdDogdmFyKC0tZ2FwLTEyKTtcclxuICAgIH1cclxuICB9XHJcbiAgJi0tbWluaW1hbCAmX19oZWFkZXIge1xyXG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XHJcbiAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50O1xyXG4gIH1cclxuXHJcbiAgJi0tbGFyZ2VQYWRkaW5nICZfX2hlYWRlci1idXR0b24ge1xyXG4gICAgcGFkZGluZzogdmFyKC0tZ2FwLTUpIHZhcigtLWdhcC0yKSB2YXIoLS1nYXAtNSkgdmFyKC0tZ2FwLTEpO1xyXG4gIH1cclxuICAmLS1sYXJnZVBhZGRpbmcgJl9faGVhZGVyLXNpZGVDb250ZW50IHtcclxuICAgIHBhZGRpbmc6IHZhcigtLWdhcC0yKSB2YXIoLS1nYXAtNCk7XHJcbiAgfVxyXG4gICYtLWxhcmdlUGFkZGluZyAmX19jb250ZW50IHtcclxuICAgIHBhZGRpbmc6IHZhcigtLWdhcC0zKTtcclxuICAgIHBhZGRpbmctdG9wOiAwO1xyXG5cclxuICAgICYtLWluZGVudGVkIHtcclxuICAgICAgcGFkZGluZy1sZWZ0OiBjYWxjKHZhcigtLWdhcC0xMikgKyB2YXIoLS1nYXAtMSkpO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuLyohKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiEqXFxcclxuICAhKioqIGNzcyAuL2NsaWVudC90b29saW5nL3dlYnBhY2svY3NzX3Jhd19sb2FkZXIuanM/P2Nsb25lZFJ1bGVTZXQtMTU2MS51c2VbMV0hLi9ub2RlX21vZHVsZXMvcG9zdGNzcy1sb2FkZXIvZGlzdC9janMuanM/P2Nsb25lZFJ1bGVTZXQtMTU2MS51c2VbMl0hLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2luZGV4LmpzPz9ydWxlU2V0WzBdLnVzZVswXSEuL2NsaWVudC9jb21wb25lbnQvdHVpL3NyYy9jb21wb25lbnRzL2NvbGxhcHNpYmxlL0NvbGxhcHNpYmxlR3JvdXBUb2dnbGUudnVlP3Z1ZSZ0eXBlPXN0eWxlJmluZGV4PTAmaWQ9MWY5NTI2MmQmbGFuZz1zY3NzICoqKiFcclxuICBcXCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXHJcbi50dWktY29sbGFwc2libGVHcm91cFRvZ2dsZSB7XHJcbiAgZGlzcGxheTogZmxleDtcclxuXHJcbiAgJi0tYWxpZ25FbmQgJl9fYnV0dG9uIHtcclxuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xyXG4gIH1cclxufVxyXG5cclxuLyohKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiohKlxcXHJcbiAgISoqKiBjc3MgLi9jbGllbnQvdG9vbGluZy93ZWJwYWNrL2Nzc19yYXdfbG9hZGVyLmpzPz9jbG9uZWRSdWxlU2V0LTE1NjEudXNlWzFdIS4vbm9kZV9tb2R1bGVzL3Bvc3Rjc3MtbG9hZGVyL2Rpc3QvY2pzLmpzPz9jbG9uZWRSdWxlU2V0LTE1NjEudXNlWzJdIS4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9pbmRleC5qcz8/cnVsZVNldFswXS51c2VbMF0hLi9jbGllbnQvY29tcG9uZW50L3R1aS9zcmMvY29tcG9uZW50cy9jb2xsYXBzaWJsZS9IaWRlU2hvdy52dWU/dnVlJnR5cGU9c3R5bGUmaW5kZXg9MCZpZD0yMTEwMGI0MyZsYW5nPXNjc3MgKioqIVxyXG4gIFxcKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXHJcbi50dWktaGlkZVNob3cge1xyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxuICBiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci1uZXV0cmFsLTEpO1xyXG5cclxuICAmX19jb250ZW50IHtcclxuICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgICAmLS1zaG93IHtcclxuICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgIG91dGxpbmU6IG5vbmU7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAmX190b2dnbGUge1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIHBhZGRpbmc6IHZhcigtLWdhcC0yKSAwO1xyXG5cclxuICAgICYtLW5hcnJvd1RyaWdnZXIge1xyXG4gICAgICBwYWRkaW5nOiAwO1xyXG4gICAgfVxyXG5cclxuICAgICYtLXN0aWNreSB7XHJcbiAgICAgIHBvc2l0aW9uOiBzdGlja3k7XHJcbiAgICAgIHRvcDogMDtcclxuICAgICAgei1pbmRleDogMTtcclxuICAgICAgYmFja2dyb3VuZDogaW5oZXJpdDtcclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6ICR0dWktc2NyZWVuLXNtKSB7XHJcbiAgLnR1aS1oaWRlU2hvdy0tbW9iaWxlIHtcclxuICAgICYgPiAudHVpLWhpZGVTaG93X190b2dnbGUge1xyXG4gICAgICBkaXNwbGF5OiBub25lO1xyXG4gICAgfVxyXG5cclxuICAgICYgPiAudHVpLWhpZGVTaG93X19jb250ZW50IHtcclxuICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG4vKiEqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiEqXFxcclxuICAhKioqIGNzcyAuL2NsaWVudC90b29saW5nL3dlYnBhY2svY3NzX3Jhd19sb2FkZXIuanM/P2Nsb25lZFJ1bGVTZXQtMTU2MS51c2VbMV0hLi9ub2RlX21vZHVsZXMvcG9zdGNzcy1sb2FkZXIvZGlzdC9janMuanM/P2Nsb25lZFJ1bGVTZXQtMTU2MS51c2VbMl0hLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2luZGV4LmpzPz9ydWxlU2V0WzBdLnVzZVswXSEuL2NsaWVudC9jb21wb25lbnQvdHVpL3NyYy9jb21wb25lbnRzL2RhdGF0YWJsZS9BZHZhbmNlZFRhYmxlU2VsZWN0LnZ1ZT92dWUmdHlwZT1zdHlsZSZpbmRleD0wJmlkPTNjYjE2ZGNlJmxhbmc9c2NzcyAqKiohXHJcbiAgXFwqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cclxuOnJvb3Qge1xyXG4gIC0tYWR2YW5jZWQtc2VsZWN0LWRyb3Bkb3duLXRyaWdnZXItd2lkdGg6IDQ0cHg7XHJcbiAgLS1hZHZhbmNlZC1zZWxlY3QtZHJvcGRvd24tdHJpZ2dlci13aWR0aC1sYXJnZTogNTJweDtcclxuXHJcbiAgLS1hZHZhbmNlZC1zZWxlY3QtZHJvcGRvd24tdHJpZ2dlci1oZWlnaHQ6IDI4cHg7XHJcbiAgLS1hZHZhbmNlZC1zZWxlY3QtZHJvcGRvd24tdHJpZ2dlci1oZWlnaHQtbGFyZ2U6IDM0cHg7XHJcblxyXG4gIC0tYWR2YW5jZWQtc2VsZWN0LWJvcmRlci1yYWRpdXM6IHZhcigtLWJvcmRlci1yYWRpdXMtc21hbGwpO1xyXG5cclxuICAtLWFkdmFuY2VkLXNlbGVjdC1vdXRsaW5lLXdpZHRoOiB2YXIoLS1ib3JkZXItd2lkdGgtbm9ybWFsKTtcclxuXHJcbiAgLS1hZHZhbmNlZC1zZWxlY3QtY2FyZXQtdG9wLW9mZnNldDogMXB4O1xyXG4gIC0tYWR2YW5jZWQtc2VsZWN0LWNhcmV0LWxlZnQtb2Zmc2V0OiBjYWxjKHZhcigtLWdhcC0xKSAqIC0xKTtcclxuICAtLWFkdmFuY2VkLXNlbGVjdC1jYXJldC1jb2xvcjogdmFyKC0tY29sb3ItbmV1dHJhbC03KTtcclxuXHJcbiAgLS1hZHZhbmNlZC1zZWxlY3QtY2FyZXQtaWNvbi1tYXJnaW4tbGVmdC1zdGFja2VkOiAyNXB4O1xyXG4gIC0tYWR2YW5jZWQtc2VsZWN0LWNhcmV0LWxlZnQtc3RhY2tlZDogLTMwcHg7XHJcblxyXG4gIC0tYWR2YW5jZWQtc2VsZWN0LWNoZWNrYm94LXBhZGRpbmctdG9wOiA2cHg7XHJcbiAgLS1hZHZhbmNlZC1zZWxlY3QtY2hlY2tib3gtcGFkZGluZy1ib3R0b206IDZweDtcclxuICAtLWFkdmFuY2VkLXNlbGVjdC1jaGVja2JveC1wYWRkaW5nLWxlZnQ6IDVweDtcclxufVxyXG5cclxuLnR1aS1hZHZhbmNlZFRhYmxlU2VsZWN0IHtcclxuICAmX19kcm9wZG93blRyaWdnZXIge1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIHdpZHRoOiB2YXIoLS1hZHZhbmNlZC1zZWxlY3QtZHJvcGRvd24tdHJpZ2dlci13aWR0aCk7XHJcbiAgICBoZWlnaHQ6IHZhcigtLWFkdmFuY2VkLXNlbGVjdC1kcm9wZG93bi10cmlnZ2VyLWhlaWdodCk7XHJcbiAgICBtYXJnaW4tcmlnaHQ6IHZhcigtLWdhcC0xKTtcclxuXHJcbiAgICAmLS1sYXJnZSB7XHJcbiAgICAgIHdpZHRoOiB2YXIoLS1hZHZhbmNlZC1zZWxlY3QtZHJvcGRvd24tdHJpZ2dlci13aWR0aC1sYXJnZSk7XHJcbiAgICAgIGhlaWdodDogdmFyKC0tYWR2YW5jZWQtc2VsZWN0LWRyb3Bkb3duLXRyaWdnZXItaGVpZ2h0LWxhcmdlKTtcclxuICAgIH1cclxuXHJcbiAgICAmLWNoZWNrYm94IHtcclxuICAgICAgcGFkZGluZzogdmFyKC0tYWR2YW5jZWQtc2VsZWN0LWNoZWNrYm94LXBhZGRpbmctdG9wKSAwXHJcbiAgICAgICAgdmFyKC0tYWR2YW5jZWQtc2VsZWN0LWNoZWNrYm94LXBhZGRpbmctYm90dG9tKVxyXG4gICAgICAgIHZhcigtLWFkdmFuY2VkLXNlbGVjdC1jaGVja2JveC1wYWRkaW5nLWxlZnQpO1xyXG4gICAgfVxyXG5cclxuICAgICYtYnV0dG9uIHtcclxuICAgICAgdG9wOiB2YXIoLS1hZHZhbmNlZC1zZWxlY3QtY2FyZXQtdG9wLW9mZnNldCk7XHJcbiAgICAgIGxlZnQ6IHZhcigtLWFkdmFuY2VkLXNlbGVjdC1jYXJldC1sZWZ0LW9mZnNldCk7XHJcbiAgICAgIG91dGxpbmU6IG5vbmU7XHJcblxyXG4gICAgICAmOmZvY3VzLFxyXG4gICAgICAmOmhvdmVyLFxyXG4gICAgICAmOmFjdGl2ZSxcclxuICAgICAgJjphY3RpdmU6aG92ZXIsXHJcbiAgICAgICY6YWN0aXZlOmZvY3VzIHtcclxuICAgICAgICBvdXRsaW5lOiBub25lO1xyXG4gICAgICB9XHJcblxyXG4gICAgICAmLWljb24ge1xyXG4gICAgICAgIGNvbG9yOiB2YXIoLS1hZHZhbmNlZC1zZWxlY3QtY2FyZXQtY29sb3IpO1xyXG4gICAgICAgICYtLXN0YWNrZWQge1xyXG4gICAgICAgICAgbWFyZ2luLWxlZnQ6IHZhcigtLWFkdmFuY2VkLXNlbGVjdC1jYXJldC1pY29uLW1hcmdpbi1sZWZ0LXN0YWNrZWQpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG5cclxuICAgICAgJi0tc3RhY2tlZCB7XHJcbiAgICAgICAgbGVmdDogdmFyKC0tYWR2YW5jZWQtc2VsZWN0LWNhcmV0LWxlZnQtc3RhY2tlZCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvKiBHcmV5IGJhY2tncm91bmQqL1xyXG4gICAgJjpmb2N1cyxcclxuICAgICY6YWN0aXZlLFxyXG4gICAgJjpob3ZlcixcclxuICAgICYtLWlzT3BlbiB7XHJcbiAgICAgIGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLW5ldXRyYWwtNCk7XHJcbiAgICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLWFkdmFuY2VkLXNlbGVjdC1ib3JkZXItcmFkaXVzKTtcclxuICAgIH1cclxuXHJcbiAgICAvKiBUaGUgZ3JlZW4gZm9jdXMgb3V0bGluZSovXHJcbiAgICAmOmZvY3VzLFxyXG4gICAgJjphY3RpdmUge1xyXG4gICAgICBvdXRsaW5lOiB2YXIoLS1hZHZhbmNlZC1zZWxlY3Qtb3V0bGluZS13aWR0aCkgc29saWRcclxuICAgICAgICB2YXIoLS1jb2xvci1zdGF0ZS1mb2N1cyk7XHJcbiAgICAgIG91dGxpbmUtb2Zmc2V0OiB2YXIoLS1hZHZhbmNlZC1zZWxlY3Qtb3V0bGluZS13aWR0aCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAmX19sb2FkZXIge1xyXG4gICAgd2lkdGg6IHZhcigtLWZvcm0tY2hlY2tib3gtc2l6ZSk7XHJcbiAgICBoZWlnaHQ6IHZhcigtLWZvcm0tY2hlY2tib3gtc2l6ZSk7XHJcbiAgICBtYXJnaW4tcmlnaHQ6IHZhcigtLWdhcC01KTtcclxuICAgIG1hcmdpbi1sZWZ0OiB2YXIoLS1nYXAtMSk7XHJcblxyXG4gICAgJi0tbGFyZ2Uge1xyXG4gICAgICB3aWR0aDogdmFyKC0tZm9ybS1jaGVja2JveC1zaXplLWxhcmdlKTtcclxuICAgICAgaGVpZ2h0OiB2YXIoLS1mb3JtLWNoZWNrYm94LXNpemUtbGFyZ2UpO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuLyohKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiohKlxcXHJcbiAgISoqKiBjc3MgLi9jbGllbnQvdG9vbGluZy93ZWJwYWNrL2Nzc19yYXdfbG9hZGVyLmpzPz9jbG9uZWRSdWxlU2V0LTE1NjEudXNlWzFdIS4vbm9kZV9tb2R1bGVzL3Bvc3Rjc3MtbG9hZGVyL2Rpc3QvY2pzLmpzPz9jbG9uZWRSdWxlU2V0LTE1NjEudXNlWzJdIS4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9pbmRleC5qcz8/cnVsZVNldFswXS51c2VbMF0hLi9jbGllbnQvY29tcG9uZW50L3R1aS9zcmMvY29tcG9uZW50cy9kYXRhdGFibGUvQ2VsbC52dWU/dnVlJnR5cGU9c3R5bGUmaW5kZXg9MCZpZD0yOTM4M2E2YyZsYW5nPXNjc3MgKioqIVxyXG4gIFxcKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXHJcbi50dWktZGF0YVRhYmxlQ2VsbCB7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBmbGV4LWJhc2lzOiAwO1xyXG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XHJcbiAgZmxleC1ncm93OiAxO1xyXG5cclxuICAvKiBlbnN1cmUgZXhjZXNzaXZlbHkgbG9uZyB3b3JkcyBkb24ndCBwdXNoIG91dCBjZWxsIHdpZHRoICovXHJcbiAgbWluLXdpZHRoOiAwO1xyXG5cclxuICAvKiBlbnN1cmUgZXhjZXNzaXZlbHkgbG9uZyB3b3JkcyBkb24ndCBvdmVyZmxvdyAqL1xyXG4gIHdvcmQtd3JhcDogYnJlYWstd29yZDtcclxuXHJcbiAgJl9fbGFiZWwge1xyXG4gICAgQGluY2x1ZGUgZm9udChib2R5LXNtLCB2YXIoLS1sYWJlbC13ZWlnaHQpKTtcclxuICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgICBtYXJnaW4tdG9wOiB2YXIoLS1nYXAtMik7XHJcbiAgICBwYWRkaW5nOiB2YXIoLS1nYXAtMSkgMCB2YXIoLS1nYXAtMik7XHJcbiAgfVxyXG5cclxuICAmLS1zdGFja2VkICZfX2xhYmVsIHtcclxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICB9XHJcblxyXG4gICYtLXJlcGVhdGVkSGVhZGVyICZfX2NvbnRlbnQge1xyXG4gICAgQGluY2x1ZGUgc3Itb25seSgpO1xyXG4gIH1cclxuXHJcbiAgJi0tc2l6ZSB7XHJcbiAgICAmXzEge1xyXG4gICAgICBmbGV4LWdyb3c6IDE7XHJcbiAgICB9XHJcblxyXG4gICAgJl8yIHtcclxuICAgICAgZmxleC1ncm93OiAyO1xyXG4gICAgfVxyXG5cclxuICAgICZfMyB7XHJcbiAgICAgIGZsZXgtZ3JvdzogMztcclxuICAgIH1cclxuXHJcbiAgICAmXzQge1xyXG4gICAgICBmbGV4LWdyb3c6IDQ7XHJcbiAgICB9XHJcblxyXG4gICAgJl81IHtcclxuICAgICAgZmxleC1ncm93OiA1O1xyXG4gICAgfVxyXG5cclxuICAgICZfNiB7XHJcbiAgICAgIGZsZXgtZ3JvdzogNjtcclxuICAgIH1cclxuXHJcbiAgICAmXzcge1xyXG4gICAgICBmbGV4LWdyb3c6IDc7XHJcbiAgICB9XHJcblxyXG4gICAgJl84IHtcclxuICAgICAgZmxleC1ncm93OiA4O1xyXG4gICAgfVxyXG5cclxuICAgICZfOSB7XHJcbiAgICAgIGZsZXgtZ3JvdzogOTtcclxuICAgIH1cclxuXHJcbiAgICAmXzEwIHtcclxuICAgICAgZmxleC1ncm93OiAxMDtcclxuICAgIH1cclxuXHJcbiAgICAmXzExIHtcclxuICAgICAgZmxleC1ncm93OiAxMTtcclxuICAgIH1cclxuXHJcbiAgICAmXzEyIHtcclxuICAgICAgZmxleC1ncm93OiAxMjtcclxuICAgIH1cclxuXHJcbiAgICAmXzEzIHtcclxuICAgICAgZmxleC1ncm93OiAxMztcclxuICAgIH1cclxuXHJcbiAgICAmXzE0IHtcclxuICAgICAgZmxleC1ncm93OiAxNDtcclxuICAgIH1cclxuXHJcbiAgICAmXzE1IHtcclxuICAgICAgZmxleC1ncm93OiAxNTtcclxuICAgIH1cclxuXHJcbiAgICAmXzE2IHtcclxuICAgICAgZmxleC1ncm93OiAxNjtcclxuICAgIH1cclxuICB9XHJcblxyXG4gICYtLWFsaWduIHtcclxuICAgICYtY2VudGVyIHtcclxuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgIH1cclxuXHJcbiAgICAmLWVuZCB7XHJcbiAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gICYtLWhlYXZ5IHtcclxuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xyXG4gIH1cclxuXHJcbiAgJi0tdmFsaWduIHtcclxuICAgICYtY2VudGVyIHtcclxuICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcbiAgICB9XHJcblxyXG4gICAgJi1lbmQge1xyXG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgJi0tc3RhY2tlZCB7XHJcbiAgICBmbGV4LWJhc2lzOiBhdXRvO1xyXG4gICAgYWxpZ24taXRlbXM6IGluaXRpYWw7XHJcbiAgfVxyXG59XHJcblxyXG4vKiEqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiEqXFxcclxuICAhKioqIGNzcyAuL2NsaWVudC90b29saW5nL3dlYnBhY2svY3NzX3Jhd19sb2FkZXIuanM/P2Nsb25lZFJ1bGVTZXQtMTU2MS51c2VbMV0hLi9ub2RlX21vZHVsZXMvcG9zdGNzcy1sb2FkZXIvZGlzdC9janMuanM/P2Nsb25lZFJ1bGVTZXQtMTU2MS51c2VbMl0hLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2luZGV4LmpzPz9ydWxlU2V0WzBdLnVzZVswXSEuL2NsaWVudC9jb21wb25lbnQvdHVpL3NyYy9jb21wb25lbnRzL2RhdGF0YWJsZS9FeHBhbmRDZWxsLnZ1ZT92dWUmdHlwZT1zdHlsZSZpbmRleD0wJmlkPTI0MTM2NWE2Jmxhbmc9c2NzcyAqKiohXHJcbiAgXFwqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cclxuLnR1aS1kYXRhVGFibGVFeHBhbmRDZWxsIHtcclxuICBkaXNwbGF5OiBmbGV4O1xyXG4gIG9yZGVyOiAwO1xyXG4gIHdpZHRoOiB2YXIoLS1nYXAtOSk7XHJcbiAgbWFyZ2luOiAwO1xyXG5cclxuICAudHVpLWJ0biB7XHJcbiAgICBtYXJnaW46IDAgYXV0bztcclxuICB9XHJcblxyXG4gICYudHVpLWRhdGFUYWJsZUV4cGFuZENlbGwtLWhlYWRlciB7XHJcbiAgICBtYXJnaW4tbGVmdDogMDtcclxuICB9XHJcblxyXG4gICYtLXN0YWNrZWQge1xyXG4gICAgb3JkZXI6IDE7XHJcbiAgICB3aWR0aDogMTAwJTtcclxuICAgIG1hcmdpbjogdmFyKC0tZ2FwLTIpIDA7XHJcbiAgfVxyXG59XHJcblxyXG4vKiEqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiohKlxcXHJcbiAgISoqKiBjc3MgLi9jbGllbnQvdG9vbGluZy93ZWJwYWNrL2Nzc19yYXdfbG9hZGVyLmpzPz9jbG9uZWRSdWxlU2V0LTE1NjEudXNlWzFdIS4vbm9kZV9tb2R1bGVzL3Bvc3Rjc3MtbG9hZGVyL2Rpc3QvY2pzLmpzPz9jbG9uZWRSdWxlU2V0LTE1NjEudXNlWzJdIS4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9pbmRleC5qcz8/cnVsZVNldFswXS51c2VbMF0hLi9jbGllbnQvY29tcG9uZW50L3R1aS9zcmMvY29tcG9uZW50cy9kYXRhdGFibGUvRXhwYW5kZWRSb3cudnVlP3Z1ZSZ0eXBlPXN0eWxlJmluZGV4PTAmaWQ9NTEyZjY0YzcmbGFuZz1zY3NzICoqKiFcclxuICBcXCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cclxuLnR1aS1kYXRhVGFibGVFeHBhbmRhYmxlUm93IHtcclxuICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgbWFyZ2luOiAwIDAgdmFyKC0tZ2FwLTIpIGNhbGMoMHB4IC0gdmFyKC0tYm9yZGVyLXdpZHRoLXRoaW4pKTtcclxuICBjb2xvcjogdmFyKC0tZGF0YXRhYmxlLWV4cGFuZGVkLXRleHQtY29sb3IpO1xyXG4gIGJhY2tncm91bmQ6IHZhcigtLWRhdGF0YWJsZS1leHBhbmRlZC1iZy1jb2xvcik7XHJcbiAgYm9yZGVyOiB2YXIoLS1ib3JkZXItd2lkdGgtdGhpbikgc29saWQgdmFyKC0tZGF0YXRhYmxlLWV4cGFuZGVkLWJvcmRlci1jb2xvcik7XHJcbiAgYm9yZGVyLXRvcDogbm9uZTtcclxuICBib3gtc2hhZG93OiB2YXIoLS1zaGFkb3ctMik7XHJcblxyXG4gICYtLXN0ZWFsdGgge1xyXG4gICAgYm9yZGVyOiBub25lO1xyXG4gICAgYm94LXNoYWRvdzogbm9uZTtcclxuICAgICZfX2NvbnRlbnQge1xyXG4gICAgICBwYWRkaW5nOiAwO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgJl9fY29udGVudCB7XHJcbiAgICBwYWRkaW5nOiB2YXIoLS1nYXAtMyk7XHJcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1kYXRhdGFibGUtZXhwYW5kZWQtYmctY29sb3IpO1xyXG4gIH1cclxuXHJcbiAgJi0taW5kZW50ZWQge1xyXG4gICAgcGFkZGluZy1sZWZ0OiB2YXIoLS1nYXAtMTEpO1xyXG4gIH1cclxuXHJcbiAgJi0tc3RhY2tlZCB7XHJcbiAgICBib3JkZXItdG9wOiBub25lO1xyXG4gIH1cclxuXHJcbiAgJi0tc3RhY2tlZCYtLWluZGVudGVkIHtcclxuICAgIHBhZGRpbmctbGVmdDogMDtcclxuICB9XHJcblxyXG4gICYtLWluZGVudGVkICZfX2NvbnRlbnQge1xyXG4gICAgcGFkZGluZzogdmFyKC0tZ2FwLTMpIDAgdmFyKC0tZ2FwLTMpIHZhcigtLWdhcC0zKTtcclxuICB9XHJcbn1cclxuXHJcbi8qISoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqISpcXFxyXG4gICEqKiogY3NzIC4vY2xpZW50L3Rvb2xpbmcvd2VicGFjay9jc3NfcmF3X2xvYWRlci5qcz8/Y2xvbmVkUnVsZVNldC0xNTYxLnVzZVsxXSEuL25vZGVfbW9kdWxlcy9wb3N0Y3NzLWxvYWRlci9kaXN0L2Nqcy5qcz8/Y2xvbmVkUnVsZVNldC0xNTYxLnVzZVsyXSEuL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvaW5kZXguanM/P3J1bGVTZXRbMF0udXNlWzBdIS4vY2xpZW50L2NvbXBvbmVudC90dWkvc3JjL2NvbXBvbmVudHMvZGF0YXRhYmxlL0hlYWRlckNlbGwudnVlP3Z1ZSZ0eXBlPXN0eWxlJmluZGV4PTAmaWQ9MzMzYzcyY2UmbGFuZz1zY3NzICoqKiFcclxuICBcXCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xyXG4udHVpLWRhdGFUYWJsZUhlYWRlckNlbGwge1xyXG4gIC8qIHN0eWxlbGludC1kaXNhYmxlLW5leHQtbGluZSB0dWkvYXQtZXh0ZW5kLW9ubHktcGxhY2Vob2xkZXJzKi9cclxuICBAZXh0ZW5kIC50dWktZGF0YVRhYmxlQ2VsbDtcclxuICBkaXNwbGF5OiBmbGV4O1xyXG4gIGNvbG9yOiB2YXIoLS1kYXRhdGFibGUtY2VsbC1oZWFkZXItdGV4dC1jb2xvcik7XHJcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XHJcblxyXG4gICYtLXN0YWNrZWQge1xyXG4gICAgZGlzcGxheTogbm9uZTtcclxuICB9XHJcbn1cclxuXHJcbi8qISoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiohKlxcXHJcbiAgISoqKiBjc3MgLi9jbGllbnQvdG9vbGluZy93ZWJwYWNrL2Nzc19yYXdfbG9hZGVyLmpzPz9jbG9uZWRSdWxlU2V0LTE1NjEudXNlWzFdIS4vbm9kZV9tb2R1bGVzL3Bvc3Rjc3MtbG9hZGVyL2Rpc3QvY2pzLmpzPz9jbG9uZWRSdWxlU2V0LTE1NjEudXNlWzJdIS4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9pbmRleC5qcz8/cnVsZVNldFswXS51c2VbMF0hLi9jbGllbnQvY29tcG9uZW50L3R1aS9zcmMvY29tcG9uZW50cy9kYXRhdGFibGUvSGVhZGVyUm93LnZ1ZT92dWUmdHlwZT1zdHlsZSZpbmRleD0wJmlkPTQzMDA3M2YzJmxhbmc9c2NzcyAqKiohXHJcbiAgXFwqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xyXG4udHVpLWRhdGFUYWJsZVJvd0hlYWRlciB7XHJcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbiAgZmxleC1kaXJlY3Rpb246IHJvdztcclxuICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gIHBhZGRpbmc6IHZhcigtLWdhcC0zKSB2YXIoLS1nYXAtMSk7XHJcblxyXG4gICYtLXN0YWNrZWQge1xyXG4gICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICBwYWRkaW5nOiAwO1xyXG4gIH1cclxuXHJcbiAgJi0tc3RhY2tlZCYtLWFkdmFuY2VkU2VsZWN0RW5hYmxlZCB7XHJcbiAgICBwYWRkaW5nOiB2YXIoLS1nYXAtMikgMDtcclxuICB9XHJcblxyXG4gICYtLXN0YWNrZWRHYXAge1xyXG4gICAgbWFyZ2luLXRvcDogdmFyKC0tZ2FwLTIpO1xyXG4gIH1cclxuXHJcbiAgJi0tdGhpbiB7XHJcbiAgICBwYWRkaW5nOiAwIHZhcigtLWdhcC0xKSB2YXIoLS1nYXAtMik7XHJcbiAgfVxyXG5cclxuICAmLS1lbXB0eSB7XHJcbiAgICBkaXNwbGF5OiBub25lO1xyXG4gIH1cclxuXHJcbiAgJiA+ICogKyAqIHtcclxuICAgIG1hcmdpbi1sZWZ0OiB2YXIoLS1nYXAtNCk7XHJcbiAgfVxyXG5cclxuICAmLS1pbmRlbnRlZCB7XHJcbiAgICBwYWRkaW5nLWxlZnQ6IHZhcigtLWdhcC0xMSk7XHJcbiAgfVxyXG59XHJcblxyXG4vKiEqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqISpcXFxyXG4gICEqKiogY3NzIC4vY2xpZW50L3Rvb2xpbmcvd2VicGFjay9jc3NfcmF3X2xvYWRlci5qcz8/Y2xvbmVkUnVsZVNldC0xNTYxLnVzZVsxXSEuL25vZGVfbW9kdWxlcy9wb3N0Y3NzLWxvYWRlci9kaXN0L2Nqcy5qcz8/Y2xvbmVkUnVsZVNldC0xNTYxLnVzZVsyXSEuL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvaW5kZXguanM/P3J1bGVTZXRbMF0udXNlWzBdIS4vY2xpZW50L2NvbXBvbmVudC90dWkvc3JjL2NvbXBvbmVudHMvZGF0YXRhYmxlL1Jvdy52dWU/dnVlJnR5cGU9c3R5bGUmaW5kZXg9MCZpZD02ZTcyYjljMCZsYW5nPXNjc3MgKioqIVxyXG4gIFxcKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cclxuLnR1aS1kYXRhVGFibGVSb3cge1xyXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICBkaXNwbGF5OiBmbGV4O1xyXG4gIGZsZXgtZGlyZWN0aW9uOiByb3c7XHJcbiAgcGFkZGluZzogdmFyKC0tZ2FwLTMpIHZhcigtLWdhcC0xKTtcclxuICBiYWNrZ3JvdW5kOiB2YXIoLS1kYXRhdGFibGUtcm93LWJnLWNvbG9yKTtcclxuICBib3JkZXItdG9wOiAxcHggc29saWQgdmFyKC0tZGF0YXRhYmxlLXJvdy1ib3JkZXItY29sb3IpO1xyXG5cclxuICAmID4gKiArICoge1xyXG4gICAgcGFkZGluZy1sZWZ0OiB2YXIoLS1nYXAtNCk7XHJcbiAgfVxyXG5cclxuICAmOmZpcnN0LWNoaWxkIHtcclxuICAgIGJvcmRlci10b3A6IHZhcigtLWJvcmRlci13aWR0aC1ub3JtYWwpIHNvbGlkXHJcbiAgICAgIHZhcigtLWRhdGF0YWJsZS1yb3ctZmlyc3QtYm9yZGVyLWNvbG9yKTtcclxuICB9XHJcblxyXG4gICY6bGFzdC1jaGlsZCB7XHJcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgdmFyKC0tZGF0YXRhYmxlLXJvdy1ib3JkZXItY29sb3IpO1xyXG4gIH1cclxuXHJcbiAgJi50dWktZm9jdXNXaXRoaW4sXHJcbiAgJjphY3RpdmUsXHJcbiAgJjpob3ZlciB7XHJcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1kYXRhdGFibGUtcm93LWJnLWNvbG9yLWZvY3VzKTtcclxuICB9XHJcblxyXG4gICYtLWluZGVudGVkIHtcclxuICAgIHBhZGRpbmctbGVmdDogdmFyKC0tZ2FwLTExKTtcclxuICB9XHJcblxyXG4gICYtLXN0ZWFsdGgge1xyXG4gICAgYm94LXNoYWRvdzogbm9uZTtcclxuICB9XHJcblxyXG4gICYtLWJvcmRlclRvcEZpcnN0T2ZmIHtcclxuICAgICY6Zmlyc3QtY2hpbGQge1xyXG4gICAgICBib3JkZXItdG9wOiBub25lO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgJi0tYm9yZGVyVG9wVGhpbiB7XHJcbiAgICAmOmZpcnN0LWNoaWxkIHtcclxuICAgICAgYm9yZGVyLXRvcC13aWR0aDogdmFyKC0tYm9yZGVyLXdpZHRoLXRoaW4pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgJi0tYm9yZGVyQm90dG9tTGFzdE9mZiB7XHJcbiAgICAmOmxhc3QtY2hpbGQge1xyXG4gICAgICBib3JkZXItYm90dG9tOiBub25lO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgJi0tYm9yZGVyU2VwYXJhdG9yT2ZmOm5vdCg6Zmlyc3QtY2hpbGQpIHtcclxuICAgIGJvcmRlci10b3A6IG5vbmU7XHJcbiAgfVxyXG5cclxuICAmLS1zZWxlY3RlZCB7XHJcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1kYXRhdGFibGUtcm93LWJnLWNvbG9yLWFjdGl2ZSk7XHJcblxyXG4gICAgJjpob3ZlciB7XHJcbiAgICAgIGJhY2tncm91bmQ6IHZhcigtLWRhdGF0YWJsZS1yb3ctYmctY29sb3ItZm9jdXMpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgJi0tY29sb3JPZGQ6bm90KCYtLXNlbGVjdGVkKSB7XHJcbiAgICAmOm50aC1jaGlsZChvZGQpIHtcclxuICAgICAgYmFja2dyb3VuZDogdmFyKC0tZGF0YXRhYmxlLXJvdy1iZy1jb2xvci1vZGQpO1xyXG5cclxuICAgICAgJi50dWktZm9jdXNXaXRoaW4sXHJcbiAgICAgICY6aG92ZXIge1xyXG4gICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWRhdGF0YWJsZS1yb3ctYmctY29sb3ItZm9jdXMpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAmLS1ob3Zlck9mZiB7XHJcbiAgICAmLnR1aS1mb2N1c1dpdGhpbixcclxuICAgICY6YWN0aXZlLFxyXG4gICAgJjpob3ZlciB7XHJcbiAgICAgIGJhY2tncm91bmQ6IHZhcigtLWRhdGF0YWJsZS1yb3ctYmctY29sb3IpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgJi0taG92ZXJPZmYmLS1jb2xvck9kZCB7XHJcbiAgICAmOm50aC1jaGlsZChvZGQpIHtcclxuICAgICAgJi50dWktZm9jdXNXaXRoaW4sXHJcbiAgICAgICY6aG92ZXIge1xyXG4gICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWRhdGF0YWJsZS1yb3ctYmctY29sb3Itb2RkKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgJi0taW5Hcm91cCB7XHJcbiAgICBib3JkZXItdG9wOiBub25lO1xyXG4gICAgJjpmaXJzdC1jaGlsZCB7XHJcbiAgICAgIGJvcmRlci10b3A6IG5vbmU7XHJcbiAgICB9XHJcblxyXG4gICAgJjpsYXN0LWNoaWxkIHtcclxuICAgICAgYm9yZGVyLWJvdHRvbTogbm9uZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gICYtLWRpc2FibGVkIHtcclxuICAgIGNvbG9yOiB2YXIoLS1jb2xvci1uZXV0cmFsLTYpO1xyXG4gIH1cclxuXHJcbiAgLyogZG9uJ3Qgc2hvdyBob3ZlciBiYWNrZ3JvdW5kIHdoZW4gYW5vdGhlciBpdGVtIGlzIGJlaW5nIGRyYWdnZWQgb3ZlciBpdCovXHJcbiAgW2RhdGEtdHVpLWRyb3BwYWJsZS1hbnktYWN0aXZlXSAmOmhvdmVyIHtcclxuICAgIGJhY2tncm91bmQ6IHZhcigtLWRhdGF0YWJsZS1yb3ctYmctY29sb3IpO1xyXG4gIH1cclxuXHJcbiAgJi0tZHJhZ2dhYmxlIHtcclxuICAgIC8qIGFwcGx5IGEgYmFja2dyb3VuZCBzbyB5b3UgZG9uJ3Qgc2VlIHRocm91Z2ggdGhlIHJvdyB3aGVuIGRyYWdnaW5nKi9cclxuICAgIC8qIChkZWZhdWx0IGlzIHRyYW5zcGFyZW50KSovXHJcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci1iYWNrZ3JvdW5kKTtcclxuICAgIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7XHJcbiAgICAgICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xyXG4gICAgJi50dWktZm9jdXNXaXRoaW4sXHJcbiAgICAmOmFjdGl2ZSxcclxuICAgICY6aG92ZXIge1xyXG4gICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci1iYWNrZ3JvdW5kKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gICYtLWRyYWdnYWJsZSA+IC50dWktZGF0YVRhYmxlQ2VsbCB7XHJcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcclxuICB9XHJcblxyXG4gICYtLWRyYWdnaW5nIHtcclxuICAgIGJveC1zaGFkb3c6IHZhcigtLXNoYWRvdy0zKTtcclxuICB9XHJcblxyXG4gICYtLWV4cGFuZGVkIHtcclxuICAgIG1hcmdpbi1sZWZ0OiBjYWxjKDBweCAtIHZhcigtLWJvcmRlci13aWR0aC10aGluKSk7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1kYXRhdGFibGUtZXhwYW5kZWQtYmctY29sb3IpO1xyXG4gICAgYm9yZGVyOiB2YXIoLS1ib3JkZXItd2lkdGgtdGhpbikgc29saWRcclxuICAgICAgdmFyKC0tZGF0YXRhYmxlLWV4cGFuZGVkLWJvcmRlci1jb2xvcik7XHJcbiAgICBib3JkZXItYm90dG9tOiBub25lO1xyXG4gICAgYm94LXNoYWRvdzogdmFyKC0tc2hhZG93LTIpO1xyXG4gIH1cclxuXHJcbiAgJi0tc3RlYWx0aEV4cGFuZGVkIHtcclxuICAgIGJvcmRlci1yaWdodDogbm9uZTtcclxuICAgIGJvcmRlci1sZWZ0OiBub25lO1xyXG4gICAgYm94LXNoYWRvdzogbm9uZTtcclxuICB9XHJcbn1cclxuXHJcbi50dWktZGF0YVRhYmxlUm93LS1zdGFja2VkIHtcclxuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG4gIHBhZGRpbmc6IHZhcigtLWdhcC0zKSAwO1xyXG5cclxuICAmID4gKiArICoge1xyXG4gICAgcGFkZGluZy1sZWZ0OiAwO1xyXG4gIH1cclxuXHJcbiAgJjpmaXJzdC1jaGlsZCB7XHJcbiAgICBib3JkZXItdG9wOiB2YXIoLS1ib3JkZXItd2lkdGgtbm9ybWFsKSBzb2xpZFxyXG4gICAgICB2YXIoLS1kYXRhdGFibGUtcm93LWZpcnN0LWJvcmRlci1jb2xvcik7XHJcbiAgfVxyXG5cclxuICAmOmxhc3QtY2hpbGQge1xyXG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLWRhdGF0YWJsZS1yb3ctYm9yZGVyLWNvbG9yKTtcclxuICB9XHJcblxyXG4gICYudHVpLWRhdGFUYWJsZVJvdy0tYm9yZGVyQm90dG9tTGFzdE9mZiB7XHJcbiAgICAmOmxhc3QtY2hpbGQge1xyXG4gICAgICBib3JkZXItYm90dG9tOiBub25lO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgJi50dWktZGF0YVRhYmxlUm93LS1ib3JkZXJUb3BUaGluIHtcclxuICAgICY6Zmlyc3QtY2hpbGQge1xyXG4gICAgICBib3JkZXItdG9wLXdpZHRoOiB2YXIoLS1ib3JkZXItd2lkdGgtdGhpbik7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAmLnR1aS1kYXRhVGFibGVSb3ctLWJvcmRlclRvcEZpcnN0T2ZmIHtcclxuICAgICY6Zmlyc3QtY2hpbGQge1xyXG4gICAgICBib3JkZXItdG9wOiBub25lO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgJi50dWktZGF0YVRhYmxlUm93LS1pbkdyb3VwIHtcclxuICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCB2YXIoLS1kYXRhdGFibGUtcm93LWJvcmRlci1jb2xvcik7XHJcblxyXG4gICAgJjpmaXJzdC1jaGlsZCB7XHJcbiAgICAgIGJvcmRlci10b3A6IG5vbmU7XHJcbiAgICB9XHJcblxyXG4gICAgJjpsYXN0LWNoaWxkIHtcclxuICAgICAgYm9yZGVyLWJvdHRvbTogbm9uZTtcclxuICAgIH1cclxuXHJcbiAgICAmOm50aC1jaGlsZChvZGQpIHtcclxuICAgICAgYmFja2dyb3VuZDogbm9uZTtcclxuICAgIH1cclxuICAgICY6aG92ZXIge1xyXG4gICAgICBiYWNrZ3JvdW5kOiBub25lO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuLyohKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqISpcXFxyXG4gICEqKiogY3NzIC4vY2xpZW50L3Rvb2xpbmcvd2VicGFjay9jc3NfcmF3X2xvYWRlci5qcz8/Y2xvbmVkUnVsZVNldC0xNTYxLnVzZVsxXSEuL25vZGVfbW9kdWxlcy9wb3N0Y3NzLWxvYWRlci9kaXN0L2Nqcy5qcz8/Y2xvbmVkUnVsZVNldC0xNTYxLnVzZVsyXSEuL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvaW5kZXguanM/P3J1bGVTZXRbMF0udXNlWzBdIS4vY2xpZW50L2NvbXBvbmVudC90dWkvc3JjL2NvbXBvbmVudHMvZGF0YXRhYmxlL1Jvd0dyb3VwLnZ1ZT92dWUmdHlwZT1zdHlsZSZpbmRleD0wJmlkPWZmNjJiOTYyJmxhbmc9c2NzcyAqKiohXHJcbiAgXFwqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXHJcbi50dWktZGF0YVRhYmxlUm93R3JvdXAge1xyXG4gIHBhZGRpbmc6IDA7XHJcbiAgYm9yZGVyLXRvcDogMnB4IHNvbGlkIHZhcigtLWRhdGF0YWJsZS1yb3ctZmlyc3QtYm9yZGVyLWNvbG9yKTtcclxuXHJcbiAgJi0tc3RhY2tlZCB7XHJcbiAgICBwYWRkaW5nOiAwIHZhcigtLWdhcC0yKTtcclxuICB9XHJcblxyXG4gICYgKyAmIHtcclxuICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCB2YXIoLS1kYXRhdGFibGUtcm93LWJvcmRlci1jb2xvcik7XHJcbiAgfVxyXG5cclxuICAmOmxhc3QtY2hpbGQge1xyXG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLWRhdGF0YWJsZS1yb3ctYm9yZGVyLWNvbG9yKTtcclxuICB9XHJcblxyXG4gICYudHVpLWZvY3VzV2l0aGluLFxyXG4gICY6YWN0aXZlLFxyXG4gICY6aG92ZXIge1xyXG4gICAgYmFja2dyb3VuZDogdmFyKC0tZGF0YXRhYmxlLXJvdy1iZy1jb2xvci1mb2N1cyk7XHJcbiAgfVxyXG5cclxuICAmLS1zZWxlY3RlZCB7XHJcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1kYXRhdGFibGUtcm93LWJnLWNvbG9yLWFjdGl2ZSk7XHJcblxyXG4gICAgJjpob3ZlciB7XHJcbiAgICAgIGJhY2tncm91bmQ6IHZhcigtLWRhdGF0YWJsZS1yb3ctYmctY29sb3ItZm9jdXMpO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuLyohKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqISpcXFxyXG4gICEqKiogY3NzIC4vY2xpZW50L3Rvb2xpbmcvd2VicGFjay9jc3NfcmF3X2xvYWRlci5qcz8/Y2xvbmVkUnVsZVNldC0xNTYxLnVzZVsxXSEuL25vZGVfbW9kdWxlcy9wb3N0Y3NzLWxvYWRlci9kaXN0L2Nqcy5qcz8/Y2xvbmVkUnVsZVNldC0xNTYxLnVzZVsyXSEuL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvaW5kZXguanM/P3J1bGVTZXRbMF0udXNlWzBdIS4vY2xpZW50L2NvbXBvbmVudC90dWkvc3JjL2NvbXBvbmVudHMvZGF0YXRhYmxlL1NlbGVjdEV2ZXJ5Um93VG9nZ2xlLnZ1ZT92dWUmdHlwZT1zdHlsZSZpbmRleD0wJmlkPTc4ODc5Nzk5Jmxhbmc9c2NzcyAqKiohXHJcbiAgXFwqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXHJcbi50dWktZGF0YVRhYmxlU2VsZWN0RXZlcnlSb3dUb2dnbGUge1xyXG4gIHBhZGRpbmc6IHZhcigtLWdhcC0yKTtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1kYXRhdGFibGUtc2VsZWN0LWV2ZXJ5dGhpbmctcHJvbXB0LWJnKTtcclxufVxyXG5cclxuLyohKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiohKlxcXHJcbiAgISoqKiBjc3MgLi9jbGllbnQvdG9vbGluZy93ZWJwYWNrL2Nzc19yYXdfbG9hZGVyLmpzPz9jbG9uZWRSdWxlU2V0LTE1NjEudXNlWzFdIS4vbm9kZV9tb2R1bGVzL3Bvc3Rjc3MtbG9hZGVyL2Rpc3QvY2pzLmpzPz9jbG9uZWRSdWxlU2V0LTE1NjEudXNlWzJdIS4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9pbmRleC5qcz8/cnVsZVNldFswXS51c2VbMF0hLi9jbGllbnQvY29tcG9uZW50L3R1aS9zcmMvY29tcG9uZW50cy9kYXRhdGFibGUvU2VsZWN0Um93Q2VsbC52dWU/dnVlJnR5cGU9c3R5bGUmaW5kZXg9MCZpZD1mZjllNDViNCZsYW5nPXNjc3MgKioqIVxyXG4gIFxcKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXHJcbi50dWktZGF0YVRhYmxlU2VsZWN0Um93Q2VsbCB7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG5cclxuICAmLS1hZHZhbmNlZFNlbGVjdEVuYWJsZWQge1xyXG4gICAgcGFkZGluZy1yaWdodDogdmFyKC0tZ2FwLTUpO1xyXG4gICAgcGFkZGluZy1sZWZ0OiBjYWxjKHZhcigtLWdhcC0xKSArIDFweCk7XHJcbiAgfVxyXG5cclxuICAmLS1oaWRkZW4ge1xyXG4gICAgdmlzaWJpbGl0eTogaGlkZGVuO1xyXG4gIH1cclxuXHJcbiAgJl9fbG9hZGVyIHtcclxuICAgIHdpZHRoOiB2YXIoLS1mb3JtLWNoZWNrYm94LXNpemUpO1xyXG4gICAgaGVpZ2h0OiB2YXIoLS1mb3JtLWNoZWNrYm94LXNpemUpO1xyXG5cclxuICAgICYtLWxhcmdlIHtcclxuICAgICAgd2lkdGg6IHZhcigtLWZvcm0tY2hlY2tib3gtc2l6ZS1sYXJnZSk7XHJcbiAgICAgIGhlaWdodDogdmFyKC0tZm9ybS1jaGVja2JveC1zaXplLWxhcmdlKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gICYtLXN0YWNrZWQmLS1oaWRkZW4ge1xyXG4gICAgaGVpZ2h0OiAwO1xyXG4gIH1cclxuXHJcbiAgJi0tdmFsaWduIHtcclxuICAgICYtc3RhcnQge1xyXG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XHJcbiAgICB9XHJcblxyXG4gICAgJi1jZW50ZXIge1xyXG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuICAgIH1cclxuXHJcbiAgICAmLWVuZCB7XHJcbiAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG4vKiEqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqISpcXFxyXG4gICEqKiogY3NzIC4vY2xpZW50L3Rvb2xpbmcvd2VicGFjay9jc3NfcmF3X2xvYWRlci5qcz8/Y2xvbmVkUnVsZVNldC0xNTYxLnVzZVsxXSEuL25vZGVfbW9kdWxlcy9wb3N0Y3NzLWxvYWRlci9kaXN0L2Nqcy5qcz8/Y2xvbmVkUnVsZVNldC0xNTYxLnVzZVsyXSEuL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvaW5kZXguanM/P3J1bGVTZXRbMF0udXNlWzBdIS4vY2xpZW50L2NvbXBvbmVudC90dWkvc3JjL2NvbXBvbmVudHMvZGF0YXRhYmxlL1NlbGVjdFZpc2libGVSb3dzQ2VsbC52dWU/dnVlJnR5cGU9c3R5bGUmaW5kZXg9MCZpZD03YjY2MGRiNyZsYW5nPXNjc3MgKioqIVxyXG4gIFxcKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cclxuLnR1aS1kYXRhVGFibGVTZWxlY3RWaXNpYmxlUm93c0NlbGwge1xyXG4gIGRpc3BsYXk6IGZsZXg7XHJcblxyXG4gICYtLWhpZGRlbiB7XHJcbiAgICB2aXNpYmlsaXR5OiBoaWRkZW47XHJcbiAgfVxyXG5cclxuICAmX19sb2FkZXIge1xyXG4gICAgd2lkdGg6IHZhcigtLWZvcm0tY2hlY2tib3gtc2l6ZSk7XHJcbiAgICBoZWlnaHQ6IHZhcigtLWZvcm0tY2hlY2tib3gtc2l6ZSk7XHJcblxyXG4gICAgJi0tbGFyZ2Uge1xyXG4gICAgICB3aWR0aDogdmFyKC0tZm9ybS1jaGVja2JveC1zaXplLWxhcmdlKTtcclxuICAgICAgaGVpZ2h0OiB2YXIoLS1mb3JtLWNoZWNrYm94LXNpemUtbGFyZ2UpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgJi0tc3RhY2tlZCB7XHJcbiAgICBtYXJnaW46IHZhcigtLWdhcC0yKSAwO1xyXG4gIH1cclxuXHJcbiAgJl9fbGFiZWwge1xyXG4gICAgQGluY2x1ZGUgZm9udChib2R5LXNtLCB2YXIoLS1sYWJlbC13ZWlnaHQpKTtcclxuICAgIGRpc3BsYXk6IG5vbmU7XHJcblxyXG4gICAgcGFkZGluZzogMCAwIHZhcigtLWdhcC0xKSB2YXIoLS1nYXAtMSk7XHJcblxyXG4gICAgJi0tc3RhY2tlZCB7XHJcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICAgIH1cclxuXHJcbiAgICAmLS1sYXJnZSB7XHJcbiAgICAgIHBhZGRpbmc6IHZhcigtLWdhcC0xKSAwIHZhcigtLWdhcC0xKSB2YXIoLS1nYXAtMik7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG4vKiEqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiohKlxcXHJcbiAgISoqKiBjc3MgLi9jbGllbnQvdG9vbGluZy93ZWJwYWNrL2Nzc19yYXdfbG9hZGVyLmpzPz9jbG9uZWRSdWxlU2V0LTE1NjEudXNlWzFdIS4vbm9kZV9tb2R1bGVzL3Bvc3Rjc3MtbG9hZGVyL2Rpc3QvY2pzLmpzPz9jbG9uZWRSdWxlU2V0LTE1NjEudXNlWzJdIS4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9pbmRleC5qcz8/cnVsZVNldFswXS51c2VbMF0hLi9jbGllbnQvY29tcG9uZW50L3R1aS9zcmMvY29tcG9uZW50cy9kYXRhdGFibGUvVGFibGUudnVlP3Z1ZSZ0eXBlPXN0eWxlJmluZGV4PTAmaWQ9MjhiZGM2MzQmbGFuZz1zY3NzICoqKiFcclxuICBcXCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cclxuLnR1aS1kYXRhVGFibGUge1xyXG4gICYtLWFyY2hpdmVkIHtcclxuICAgIGJhY2tncm91bmQ6IHZhcigtLWRhdGF0YWJsZS1iZy1hcmNoaXZlZCk7XHJcbiAgfVxyXG5cclxuICAmX19yb3ctbW92ZS1jZWxsIHtcclxuICAgIGZsZXgtYmFzaXM6IHZhcigtLWdhcC01KTtcclxuICAgIGZsZXgtZ3JvdzogMDtcclxuICB9XHJcblxyXG4gICZfX3Jvdy1tb3ZlLW1lbnUge1xyXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgdG9wOiAwO1xyXG4gICAgbGVmdDogdmFyKC0tZ2FwLTgpO1xyXG4gICAgYmFja2dyb3VuZDogdmFyKC0tY29sb3ItYmFja2dyb3VuZCk7XHJcbiAgfVxyXG59XHJcblxyXG4vKiEqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiohKlxcXHJcbiAgISoqKiBjc3MgLi9jbGllbnQvdG9vbGluZy93ZWJwYWNrL2Nzc19yYXdfbG9hZGVyLmpzPz9jbG9uZWRSdWxlU2V0LTE1NjEudXNlWzFdIS4vbm9kZV9tb2R1bGVzL3Bvc3Rjc3MtbG9hZGVyL2Rpc3QvY2pzLmpzPz9jbG9uZWRSdWxlU2V0LTE1NjEudXNlWzJdIS4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9pbmRleC5qcz8/cnVsZVNldFswXS51c2VbMF0hLi9jbGllbnQvY29tcG9uZW50L3R1aS9zcmMvY29tcG9uZW50cy9kZWNvci9BbmRCb3gudnVlP3Z1ZSZ0eXBlPXN0eWxlJmluZGV4PTAmaWQ9NDBlNDU5ZGQmbGFuZz1zY3NzICoqKiFcclxuICBcXCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cclxuLnR1aS1hbmRCb3gge1xyXG4gIC8qIHN0eWxlbGludC1kaXNhYmxlLW5leHQtbGluZSB0dWkvYXQtZXh0ZW5kLW9ubHktcGxhY2Vob2xkZXJzKi9cclxuICBAZXh0ZW5kIC50dWktb3JCb3g7XHJcblxyXG4gICZfX3RleHQge1xyXG4gICAgLyogc3R5bGVsaW50LWRpc2FibGUtbmV4dC1saW5lIHR1aS9hdC1leHRlbmQtb25seS1wbGFjZWhvbGRlcnMqL1xyXG4gICAgQGV4dGVuZCAudHVpLW9yQm94X190ZXh0O1xyXG4gIH1cclxufVxyXG5cclxuLyohKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiohKlxcXHJcbiAgISoqKiBjc3MgLi9jbGllbnQvdG9vbGluZy93ZWJwYWNrL2Nzc19yYXdfbG9hZGVyLmpzPz9jbG9uZWRSdWxlU2V0LTE1NjEudXNlWzFdIS4vbm9kZV9tb2R1bGVzL3Bvc3Rjc3MtbG9hZGVyL2Rpc3QvY2pzLmpzPz9jbG9uZWRSdWxlU2V0LTE1NjEudXNlWzJdIS4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9pbmRleC5qcz8/cnVsZVNldFswXS51c2VbMF0hLi9jbGllbnQvY29tcG9uZW50L3R1aS9zcmMvY29tcG9uZW50cy9kZWNvci9BcnJvdy52dWU/dnVlJnR5cGU9c3R5bGUmaW5kZXg9MCZpZD0yZTI0YzMzMCZsYW5nPXNjc3MgKioqIVxyXG4gIFxcKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXHJcbkBtaXhpbiBnZW5lcmF0ZS1hcnJvdy1iYXNlKCRzZWwsICRzaXplKSB7XHJcbiAgI3skc2VsfS0tdG9wLFxyXG4gICN7JHNlbH0tLWJvdHRvbSB7XHJcbiAgICAvKiFydGw6aWdub3JlKi9cclxuICAgIGxlZnQ6IDUwJTtcclxuICAgIHdpZHRoOiAkc2l6ZSAqIDI7XHJcbiAgICBoZWlnaHQ6ICRzaXplICogMjtcclxuICAgIC8qIXJ0bDppZ25vcmUqL1xyXG4gICAgbWFyZ2luLWxlZnQ6IC0kc2l6ZTtcclxuICB9XHJcblxyXG4gICN7JHNlbH0tLXRvcCB7XHJcbiAgICB0b3A6IC0oJHNpemUgKiAyKTtcclxuICB9XHJcblxyXG4gICN7JHNlbH0tLWJvdHRvbSB7XHJcbiAgICBib3R0b206IC0oJHNpemUgKiAyKTtcclxuICB9XHJcblxyXG4gICN7JHNlbH0tLWxlZnQsXHJcbiAgI3skc2VsfS0tcmlnaHQge1xyXG4gICAgdG9wOiA1MCU7XHJcbiAgICB3aWR0aDogJHNpemUgKiAyO1xyXG4gICAgaGVpZ2h0OiAkc2l6ZSAqIDI7XHJcbiAgICBtYXJnaW4tdG9wOiAtJHNpemU7XHJcbiAgfVxyXG5cclxuICAjeyRzZWx9LS1sZWZ0IHtcclxuICAgIGxlZnQ6IC0oJHNpemUgKiAyKTtcclxuICB9XHJcblxyXG4gICN7JHNlbH0tLXJpZ2h0IHtcclxuICAgIHJpZ2h0OiAtKCRzaXplICogMik7XHJcbiAgfVxyXG59XHJcblxyXG5AbWl4aW4gZ2VuZXJhdGUtYXJyb3ctcGFydCgkc2VsLCAkc2VsXzIsICRzaXplLCAkb2Zmc2V0KSB7XHJcbiAgI3skc2VsfSN7JHNlbF8yfSB7XHJcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICBkaXNwbGF5OiBibG9jaztcclxuICAgIGJvcmRlcjogJHNpemUgc29saWQgdHJhbnNwYXJlbnQ7XHJcbiAgICBjb250ZW50OiAnJztcclxuICB9XHJcblxyXG4gICN7JHNlbH0tLXRvcCN7JHNlbF8yfSB7XHJcbiAgICB0b3A6ICRvZmZzZXQgKiAyO1xyXG4gICAgbGVmdDogJG9mZnNldDtcclxuICB9XHJcblxyXG4gICN7JHNlbH0tLWJvdHRvbSN7JHNlbF8yfSB7XHJcbiAgICBib3R0b206ICRvZmZzZXQgKiAyO1xyXG4gICAgbGVmdDogJG9mZnNldDtcclxuICB9XHJcblxyXG4gICN7JHNlbH0tLWxlZnQjeyRzZWxfMn0ge1xyXG4gICAgdG9wOiAkb2Zmc2V0O1xyXG4gICAgbGVmdDogJG9mZnNldCAqIDI7XHJcbiAgfVxyXG5cclxuICAjeyRzZWx9LS1yaWdodCN7JHNlbF8yfSB7XHJcbiAgICB0b3A6ICRvZmZzZXQ7XHJcbiAgICByaWdodDogJG9mZnNldCAqIDI7XHJcbiAgfVxyXG59XHJcblxyXG5AbWl4aW4gYXJyb3ctdmFyaWFudCgkc2VsLCAkdmFyaWFudF90eXAsICRjb2xvcikge1xyXG4gIC50dWktYXJyb3ctLW5vcm1hbCxcclxuICAudHVpLWFycm93LS1sYXJnZSB7XHJcbiAgICAmLnR1aS1hcnJvd19fdmFyaWFudC0tI3skdmFyaWFudF90eXB9IHtcclxuICAgICAgJi50dWktYXJyb3ctLXRvcCN7JHNlbH0ge1xyXG4gICAgICAgIGJvcmRlci1ib3R0b20tY29sb3I6ICRjb2xvcjtcclxuICAgICAgfVxyXG4gICAgICAmLnR1aS1hcnJvdy0tYm90dG9tI3skc2VsfSB7XHJcbiAgICAgICAgYm9yZGVyLXRvcC1jb2xvcjogJGNvbG9yO1xyXG4gICAgICB9XHJcbiAgICAgICYudHVpLWFycm93LS1sZWZ0I3skc2VsfSB7XHJcbiAgICAgICAgYm9yZGVyLXJpZ2h0LWNvbG9yOiAkY29sb3I7XHJcbiAgICAgIH1cclxuICAgICAgJi50dWktYXJyb3ctLXJpZ2h0I3skc2VsfSB7XHJcbiAgICAgICAgYm9yZGVyLWxlZnQtY29sb3I6ICRjb2xvcjtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuLnR1aS1hcnJvdyB7XHJcbiAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xyXG59XHJcblxyXG5AaW5jbHVkZSBnZW5lcmF0ZS1hcnJvdy1iYXNlKCcudHVpLWFycm93LS1ub3JtYWwudHVpLWFycm93JywgMTBweCk7XHJcbkBpbmNsdWRlIGdlbmVyYXRlLWFycm93LXBhcnQoXHJcbiAgJy50dWktYXJyb3ctLW5vcm1hbC50dWktYXJyb3cnLFxyXG4gICc6OmJlZm9yZScsXHJcbiAgMTBweCxcclxuICAwXHJcbik7XHJcbkBpbmNsdWRlIGdlbmVyYXRlLWFycm93LXBhcnQoXHJcbiAgJy50dWktYXJyb3ctLW5vcm1hbC50dWktYXJyb3cnLFxyXG4gICc6OmFmdGVyJyxcclxuICA4cHgsXHJcbiAgMnB4XHJcbik7XHJcblxyXG5AaW5jbHVkZSBnZW5lcmF0ZS1hcnJvdy1iYXNlKCcudHVpLWFycm93LS1sYXJnZS50dWktYXJyb3cnLCAxNHB4KTtcclxuQGluY2x1ZGUgZ2VuZXJhdGUtYXJyb3ctcGFydChcclxuICAnLnR1aS1hcnJvdy0tbGFyZ2UudHVpLWFycm93JyxcclxuICAnOjpiZWZvcmUnLFxyXG4gIDE0cHgsXHJcbiAgMFxyXG4pO1xyXG5AaW5jbHVkZSBnZW5lcmF0ZS1hcnJvdy1wYXJ0KFxyXG4gICcudHVpLWFycm93LS1sYXJnZS50dWktYXJyb3cnLFxyXG4gICc6OmFmdGVyJyxcclxuICAxMnB4LFxyXG4gIDJweFxyXG4pO1xyXG5cclxuQGluY2x1ZGUgYXJyb3ctdmFyaWFudCgnOjpiZWZvcmUnLCAnZGVmYXVsdCcsIHZhcigtLWFycm93LWJvcmRlci1jb2xvcikpO1xyXG5AaW5jbHVkZSBhcnJvdy12YXJpYW50KCc6OmFmdGVyJywgJ2RlZmF1bHQnLCB2YXIoLS1hcnJvdy1iZy1jb2xvcikpO1xyXG5cclxuQGluY2x1ZGUgYXJyb3ctdmFyaWFudCgnOjpiZWZvcmUnLCAnaW52ZXJzZScsIHZhcigtLWFycm93LWJnLWludmVyc2UtY29sb3IpKTtcclxuQGluY2x1ZGUgYXJyb3ctdmFyaWFudCgnOjphZnRlcicsICdpbnZlcnNlJywgdmFyKC0tYXJyb3ctYmctaW52ZXJzZS1jb2xvcikpO1xyXG5cclxuLyohKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiohKlxcXHJcbiAgISoqKiBjc3MgLi9jbGllbnQvdG9vbGluZy93ZWJwYWNrL2Nzc19yYXdfbG9hZGVyLmpzPz9jbG9uZWRSdWxlU2V0LTE1NjEudXNlWzFdIS4vbm9kZV9tb2R1bGVzL3Bvc3Rjc3MtbG9hZGVyL2Rpc3QvY2pzLmpzPz9jbG9uZWRSdWxlU2V0LTE1NjEudXNlWzJdIS4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9pbmRleC5qcz8/cnVsZVNldFswXS51c2VbMF0hLi9jbGllbnQvY29tcG9uZW50L3R1aS9zcmMvY29tcG9uZW50cy9kZWNvci9DYXJldC52dWU/dnVlJnR5cGU9c3R5bGUmaW5kZXg9MCZpZD01ZjdlZTlhYSZsYW5nPXNjc3MgKioqIVxyXG4gIFxcKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXHJcbi50dWktY2FyZXQge1xyXG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICB3aWR0aDogMDtcclxuICBoZWlnaHQ6IDA7XHJcbiAgbWFyZ2luLWxlZnQ6IDJweDtcclxuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xyXG4gIGJvcmRlci10b3A6IDRweCBzb2xpZDtcclxuICBib3JkZXItcmlnaHQ6IDRweCBzb2xpZCB0cmFuc3BhcmVudDtcclxuICBib3JkZXItbGVmdDogNHB4IHNvbGlkIHRyYW5zcGFyZW50O1xyXG59XHJcblxyXG4vKiEqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiEqXFxcclxuICAhKioqIGNzcyAuL2NsaWVudC90b29saW5nL3dlYnBhY2svY3NzX3Jhd19sb2FkZXIuanM/P2Nsb25lZFJ1bGVTZXQtMTU2MS51c2VbMV0hLi9ub2RlX21vZHVsZXMvcG9zdGNzcy1sb2FkZXIvZGlzdC9janMuanM/P2Nsb25lZFJ1bGVTZXQtMTU2MS51c2VbMl0hLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2luZGV4LmpzPz9ydWxlU2V0WzBdLnVzZVswXSEuL2NsaWVudC9jb21wb25lbnQvdHVpL3NyYy9jb21wb25lbnRzL2RlY29yL09yQm94LnZ1ZT92dWUmdHlwZT1zdHlsZSZpbmRleD0wJmlkPTVlYzVkMDhmJmxhbmc9c2NzcyAqKiohXHJcbiAgXFwqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cclxuLnR1aS1vckJveCB7XHJcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XHJcbiAgbWFyZ2luOiAwIGF1dG87XHJcbiAgYm9yZGVyOiB2YXIoLS1ib3JkZXItd2lkdGgtdGhpbikgc29saWQgdmFyKC0tY29sb3ItbmV1dHJhbC02KTtcclxuICBib3JkZXItcmFkaXVzOiA2cHg7XHJcblxyXG4gICZfX3RleHQge1xyXG4gICAgQGluY2x1ZGUgZm9udChib2R5LCAkd2VpZ2h0OiBib2xkKTtcclxuICAgIG1hcmdpbjogMDtcclxuICAgIHBhZGRpbmc6IHZhcigtLWdhcC0yKSB2YXIoLS1nYXAtNCk7XHJcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xyXG4gIH1cclxufVxyXG5cclxuLyohKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqISpcXFxyXG4gICEqKiogY3NzIC4vY2xpZW50L3Rvb2xpbmcvd2VicGFjay9jc3NfcmF3X2xvYWRlci5qcz8/Y2xvbmVkUnVsZVNldC0xNTYxLnVzZVsxXSEuL25vZGVfbW9kdWxlcy9wb3N0Y3NzLWxvYWRlci9kaXN0L2Nqcy5qcz8/Y2xvbmVkUnVsZVNldC0xNTYxLnVzZVsyXSEuL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvaW5kZXguanM/P3J1bGVTZXRbMF0udXNlWzBdIS4vY2xpZW50L2NvbXBvbmVudC90dWkvc3JjL2NvbXBvbmVudHMvZGVjb3IvU2VwYXJhdG9yLnZ1ZT92dWUmdHlwZT1zdHlsZSZpbmRleD0wJmlkPTZmNWQ0NDhjJmxhbmc9c2NzcyAqKiohXHJcbiAgXFwqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXHJcbi50dWktc2VwYXJhdG9yIHtcclxuICBtYXJnaW46IHZhcigtLWdhcC00KSAwO1xyXG5cclxuICAmLS1zcHJlYWQge1xyXG4gICAgbWFyZ2luOiB2YXIoLS1nYXAtOCkgMDtcclxuICB9XHJcblxyXG4gIC8qIHNpbXBsZSBpbXBsZW1lbnRhdGlvbiB1c2luZyBhIGhvcml6b250YWwgcnVsZSBlbGVtZW50Ki9cclxuICAmLXJ1bGUge1xyXG4gICAgaGVpZ2h0OiB2YXIoLS1ib3JkZXItd2lkdGgtdGhpbik7XHJcbiAgICBsaW5lLWhlaWdodDogdmFyKC0tYm9yZGVyLXdpZHRoLXRoaW4pO1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItbmV1dHJhbC01KTtcclxuICAgIGJvcmRlcjogbm9uZTtcclxuXHJcbiAgICAmLnR1aS1zZXBhcmF0b3ItLXRoaWNrIHtcclxuICAgICAgaGVpZ2h0OiB2YXIoLS1ib3JkZXItd2lkdGgtdGhpY2spO1xyXG4gICAgICBsaW5lLWhlaWdodDogdmFyKC0tYm9yZGVyLXdpZHRoLXRoaWNrKTtcclxuICAgIH1cclxuXHJcbiAgICAmLnR1aS1zZXBhcmF0b3ItLW5vcm1hbCB7XHJcbiAgICAgIGhlaWdodDogdmFyKC0tYm9yZGVyLXdpZHRoLW5vcm1hbCk7XHJcbiAgICAgIGxpbmUtaGVpZ2h0OiB2YXIoLS1ib3JkZXItd2lkdGgtbm9ybWFsKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qIGFsdGVybmF0aXZlIGltcGxlbWVudGF0aW9uIHdpdGggd3JhcHBlciBtYXJrdXAgdG8gY2VudGVyIHNsb3R0ZWQgY29udGVudCovXHJcbiAgLyogaG9yaXpvbnRhbCBydWxlIHZpc2libGUgb25seSB0byBzY3JlZW4gcmVhZGVycywgdGhlIHZpc3VhbCBsaW5lcyBhZGRlZCB3aXRoKi9cclxuICAvKiBwc2V1ZG8gc2VsZWN0b3JzKi9cclxuICAmLS13cmFwcGVkIHtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG5cclxuICAgIC50dWktc2VwYXJhdG9yLWNvbnRlbnQge1xyXG4gICAgICBtYXJnaW46IDAgdmFyKC0tZ2FwLTQpO1xyXG4gICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xyXG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICB9XHJcblxyXG4gICAgJjpiZWZvcmUsXHJcbiAgICAmOmFmdGVyIHtcclxuICAgICAgd2lkdGg6IDUwJTtcclxuICAgICAgaGVpZ2h0OiB2YXIoLS1ib3JkZXItd2lkdGgtdGhpbik7XHJcbiAgICAgIGxpbmUtaGVpZ2h0OiB2YXIoLS1ib3JkZXItd2lkdGgtdGhpbik7XHJcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLW5ldXRyYWwtNSk7XHJcbiAgICAgIGNvbnRlbnQ6ICcnO1xyXG4gICAgfVxyXG5cclxuICAgICYudHVpLXNlcGFyYXRvci0tdGhpY2s6YmVmb3JlLFxyXG4gICAgJi50dWktc2VwYXJhdG9yLS10aGljazphZnRlciB7XHJcbiAgICAgIGhlaWdodDogdmFyKC0tYm9yZGVyLXdpZHRoLXRoaWNrKTtcclxuICAgICAgbGluZS1oZWlnaHQ6IHZhcigtLWJvcmRlci13aWR0aC10aGljayk7XHJcbiAgICB9XHJcblxyXG4gICAgJi50dWktc2VwYXJhdG9yLS1ub3JtYWw6YmVmb3JlLFxyXG4gICAgJi50dWktc2VwYXJhdG9yLS1ub3JtYWw6YWZ0ZXIge1xyXG4gICAgICBoZWlnaHQ6IHZhcigtLWJvcmRlci13aWR0aC1ub3JtYWwpO1xyXG4gICAgICBsaW5lLWhlaWdodDogdmFyKC0tYm9yZGVyLXdpZHRoLW5vcm1hbCk7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG4vKiEqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiohKlxcXHJcbiAgISoqKiBjc3MgLi9jbGllbnQvdG9vbGluZy93ZWJwYWNrL2Nzc19yYXdfbG9hZGVyLmpzPz9jbG9uZWRSdWxlU2V0LTE1NjEudXNlWzFdIS4vbm9kZV9tb2R1bGVzL3Bvc3Rjc3MtbG9hZGVyL2Rpc3QvY2pzLmpzPz9jbG9uZWRSdWxlU2V0LTE1NjEudXNlWzJdIS4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9pbmRleC5qcz8/cnVsZVNldFswXS51c2VbMF0hLi9jbGllbnQvY29tcG9uZW50L3R1aS9zcmMvY29tcG9uZW50cy9kZXYvcGVyZm9ybWFuY2UvUGVyZm9ybWFuY2UudnVlP3Z1ZSZ0eXBlPXN0eWxlJmluZGV4PTAmaWQ9NzJhMjFmMjgmbGFuZz1zY3NzICoqKiFcclxuICBcXCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cclxuLnR1aS1wZXJmb3JtYW5jZSB7XHJcbiAgJl9fc3VtbWFyeSB7XHJcbiAgICBsaXN0LXN0eWxlOiBub25lO1xyXG4gIH1cclxuXHJcbiAgJl9fY29udGFpbmVyIHtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xyXG4gICAgZmxleC13cmFwOiB3cmFwO1xyXG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcbiAgfVxyXG5cclxuICAmX193cmFwcGVyIHtcclxuICAgIG1hcmdpbi1yaWdodDogdmFyKC0tZ2FwLTQpO1xyXG4gICAgbWFyZ2luLWJvdHRvbTogdmFyKC0tZ2FwLTQpO1xyXG4gICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tY29sb3ItbmV1dHJhbC01KTtcclxuICAgIGJvcmRlci1yYWRpdXM6IDNweDtcclxuXHJcbiAgICA+ICoge1xyXG4gICAgICBwYWRkaW5nLXJpZ2h0OiB2YXIoLS1nYXAtMik7XHJcbiAgICAgIHBhZGRpbmctbGVmdDogdmFyKC0tZ2FwLTIpO1xyXG5cclxuICAgICAgJjpmaXJzdC1jaGlsZCB7XHJcbiAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgICY6bm90KDpmaXJzdC1jaGlsZCkge1xyXG4gICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLWNoYXJ0LXRyYW5zcGFyZW50LTMpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG4vKiEqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqISpcXFxyXG4gICEqKiogY3NzIC4vY2xpZW50L3Rvb2xpbmcvd2VicGFjay9jc3NfcmF3X2xvYWRlci5qcz8/Y2xvbmVkUnVsZVNldC0xNTYxLnVzZVsxXSEuL25vZGVfbW9kdWxlcy9wb3N0Y3NzLWxvYWRlci9kaXN0L2Nqcy5qcz8/Y2xvbmVkUnVsZVNldC0xNTYxLnVzZVsyXSEuL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvaW5kZXguanM/P3J1bGVTZXRbMF0udXNlWzBdIS4vY2xpZW50L2NvbXBvbmVudC90dWkvc3JjL2NvbXBvbmVudHMvZHJhZ19kcm9wL0RyYWdnYWJsZS52dWU/dnVlJnR5cGU9c3R5bGUmaW5kZXg9MCZpZD04NmZkNTBhZSZsYW5nPXNjc3MgKioqIVxyXG4gIFxcKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cclxuW2RhdGEtdHVpLWRyYWdnYWJsZV0ge1xyXG4gICZbZGF0YS1hbmltYXRlZF0ge1xyXG4gICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuMjVzO1xyXG4gIH1cclxuXHJcbiAgJltkYXRhLWRyYWdnaW5nXSB7XHJcbiAgICBwb3NpdGlvbjogZml4ZWQ7XHJcbiAgICB6LWluZGV4OiB2YXIoLS16aW5kZXgtZHJhZ2dhYmxlKTtcclxuICAgIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7XHJcbiAgICAgICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xyXG4gICAgLyogcmVxdWlyZWQgc28gZHJvcHBhYmxlIGNhbiBnZXQgbW91c2UgZXZlbnRzKi9cclxuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xyXG4gIH1cclxufVxyXG5cclxuLyohKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqISpcXFxyXG4gICEqKiogY3NzIC4vY2xpZW50L3Rvb2xpbmcvd2VicGFjay9jc3NfcmF3X2xvYWRlci5qcz8/Y2xvbmVkUnVsZVNldC0xNTYxLnVzZVsxXSEuL25vZGVfbW9kdWxlcy9wb3N0Y3NzLWxvYWRlci9kaXN0L2Nqcy5qcz8/Y2xvbmVkUnVsZVNldC0xNTYxLnVzZVsyXSEuL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvaW5kZXguanM/P3J1bGVTZXRbMF0udXNlWzBdIS4vY2xpZW50L2NvbXBvbmVudC90dWkvc3JjL2NvbXBvbmVudHMvZHJhZ19kcm9wL0RyYWdnYWJsZU1vdmVNZW51LnZ1ZT92dWUmdHlwZT1zdHlsZSZpbmRleD0wJmlkPTdlYmY5Nzk5Jmxhbmc9c2NzcyAqKiohXHJcbiAgXFwqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXHJcbi50dWktZHJhZ2dhYmxlTW92ZU1lbnUge1xyXG4gICZfX2J1dHRvbjpub3QoOmZvY3VzKTpub3QoW2FyaWEtZXhwYW5kZWQ9J3RydWUnXSkge1xyXG4gICAgQGluY2x1ZGUgc3Itb25seSgpO1xyXG4gIH1cclxufVxyXG5cclxuLyohKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiEqXFxcclxuICAhKioqIGNzcyAuL2NsaWVudC90b29saW5nL3dlYnBhY2svY3NzX3Jhd19sb2FkZXIuanM/P2Nsb25lZFJ1bGVTZXQtMTU2MS51c2VbMV0hLi9ub2RlX21vZHVsZXMvcG9zdGNzcy1sb2FkZXIvZGlzdC9janMuanM/P2Nsb25lZFJ1bGVTZXQtMTU2MS51c2VbMl0hLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2luZGV4LmpzPz9ydWxlU2V0WzBdLnVzZVswXSEuL2NsaWVudC9jb21wb25lbnQvdHVpL3NyYy9jb21wb25lbnRzL2RyYWdfZHJvcC9Ecm9wcGFibGUudnVlP3Z1ZSZ0eXBlPXN0eWxlJmluZGV4PTAmaWQ9YTQwMDAxNTImbGFuZz1zY3NzICoqKiFcclxuICBcXCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXHJcbi50dWktZHJvcHBhYmxlIHtcclxuICAmX19kcm9wTGluZSB7XHJcbiAgICB6LWluZGV4OiB2YXIoLS16aW5kZXgtZHJhZ2dhYmxlKTtcclxuICAgIGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLXNlY29uZGFyeSk7XHJcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcclxuXHJcbiAgICAmLS12ZXJ0aWNhbCB7XHJcbiAgICAgIGhlaWdodDogdmFyKC0tYm9yZGVyLXdpZHRoLW5vcm1hbCk7XHJcbiAgICAgIG1hcmdpbi10b3A6IGNhbGModmFyKC0tYm9yZGVyLXdpZHRoLW5vcm1hbCkgKiAtMC41KTtcclxuICAgIH1cclxuXHJcbiAgICAmLS1ob3Jpem9udGFsIHtcclxuICAgICAgd2lkdGg6IHZhcigtLWJvcmRlci13aWR0aC1ub3JtYWwpO1xyXG4gICAgICBtYXJnaW4tbGVmdDogY2FsYyh2YXIoLS1ib3JkZXItd2lkdGgtbm9ybWFsKSAqIC0wLjUpO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG5bZGF0YS10dWktZHJvcHBhYmxlLWxvY2F0aW9uLWluZGljYXRvcl0ge1xyXG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLW5ldXRyYWwtNSk7XHJcbn1cclxuXHJcbi8qISoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqISpcXFxyXG4gICEqKiogY3NzIC4vY2xpZW50L3Rvb2xpbmcvd2VicGFjay9jc3NfcmF3X2xvYWRlci5qcz8/Y2xvbmVkUnVsZVNldC0xNTYxLnVzZVsxXSEuL25vZGVfbW9kdWxlcy9wb3N0Y3NzLWxvYWRlci9kaXN0L2Nqcy5qcz8/Y2xvbmVkUnVsZVNldC0xNTYxLnVzZVsyXSEuL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvaW5kZXguanM/P3J1bGVTZXRbMF0udXNlWzBdIS4vY2xpZW50L2NvbXBvbmVudC90dWkvc3JjL2NvbXBvbmVudHMvZHJvcGRvd24vRHJvcGRvd24udnVlP3Z1ZSZ0eXBlPXN0eWxlJmluZGV4PTAmaWQ9NmEyZWViYzAmbGFuZz1zY3NzICoqKiFcclxuICBcXCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xyXG4udHVpLWRyb3Bkb3duIHtcclxuICAmX19tZW51IHtcclxuICAgIHotaW5kZXg6IHZhcigtLXppbmRleC1kcm9wZG93bi1tZW51KTtcclxuICAgIG1pbi13aWR0aDogcmVtLXB4KDE1MCk7XHJcbiAgICBtYXgtd2lkdGg6IHJlbS1weCgzMjApO1xyXG4gICAgbWF4LWhlaWdodDogNDB2aDtcclxuICAgIHBhZGRpbmc6IGNhbGMobWF4KHZhcigtLWdhcC0yKSwgdmFyKC0tZHJvcGRvd24tYm9yZGVyLXJhZGl1cykpKSAwO1xyXG4gICAgb3ZlcmZsb3cteTogYXV0bztcclxuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWRyb3Bkb3duLW1lbnUtYmctY29sb3IpO1xyXG4gICAgYmFja2dyb3VuZC1jbGlwOiBwYWRkaW5nLWJveDtcclxuICAgIGJvcmRlcjogdmFyKC0tYm9yZGVyLXdpZHRoLXRoaW4pIHNvbGlkIHZhcigtLWRyb3Bkb3duLW1lbnUtYm9yZGVyLWNvbG9yKTtcclxuICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLWRyb3Bkb3duLWJvcmRlci1yYWRpdXMpO1xyXG4gICAgYm94LXNoYWRvdzogdmFyKC0tc2hhZG93LTIpO1xyXG4gIH1cclxuXHJcbiAgJi0tc2VwYXJhdG9yICZfX21lbnUge1xyXG4gICAgcGFkZGluZzogMDtcclxuICB9XHJcblxyXG4gICYtLWZsZXhpYmxlV2lkdGggJl9fbWVudSB7XHJcbiAgICBtaW4td2lkdGg6IDA7XHJcbiAgICBtYXgtd2lkdGg6IG5vbmU7XHJcbiAgfVxyXG5cclxuICAmLS1maXhlZFdpZHRoICZfX21lbnUge1xyXG4gICAgd2lkdGg6IHJlbS1weCgzMjApO1xyXG4gIH1cclxuXHJcbiAgJl9fY29udGVudCB7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxuICAgICRib3JkZXItcmFkaXVzOiBjYWxjKFxyXG4gICAgICB2YXIoLS1kcm9wZG93bi1ib3JkZXItcmFkaXVzKSAtIHZhcigtLWJvcmRlci13aWR0aC10aGluKVxyXG4gICAgKTtcclxuICAgICYtLXNlcGFyYXRvciA+ICo6Zmlyc3QtY2hpbGQge1xyXG4gICAgICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAkYm9yZGVyLXJhZGl1cztcclxuICAgICAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6ICRib3JkZXItcmFkaXVzO1xyXG4gICAgfVxyXG4gICAgJi0tc2VwYXJhdG9yID4gKjpsYXN0LWNoaWxkIHtcclxuICAgICAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6ICRib3JkZXItcmFkaXVzO1xyXG4gICAgICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAkYm9yZGVyLXJhZGl1cztcclxuICAgIH1cclxuICAgICYtLXNlcGFyYXRvciA+ICogKyAqLFxyXG4gICAgLyogd29yayBhcm91bmQgc3BlY2lmaWNpdHkgaXNzdWVzIHdpdGggYnV0dG9uKi9cclxuICAgICYtLXNlcGFyYXRvciA+ICogKyAudHVpLWRyb3Bkb3duQnV0dG9uLFxyXG4gICAgJi0tc2VwYXJhdG9yID4gKiArIC50dWktZHJvcGRvd25CdXR0b246aG92ZXIsXHJcbiAgICAmLS1zZXBhcmF0b3IgPiAqICsgLnR1aS1kcm9wZG93bkJ1dHRvbjpmb2N1cyxcclxuICAgICYtLXNlcGFyYXRvciA+ICogKyAudHVpLWRyb3Bkb3duQnV0dG9uOmFjdGl2ZSxcclxuICAgICYtLXNlcGFyYXRvciA+ICogKyAudHVpLWRyb3Bkb3duQnV0dG9uOmZvY3VzOmFjdGl2ZSB7XHJcbiAgICAgIGJvcmRlci10b3A6IHZhcigtLWJvcmRlci13aWR0aC10aGluKSBzb2xpZFxyXG4gICAgICAgIHZhcigtLWRyb3Bkb3duLW1lbnUtYm9yZGVyLWNvbG9yKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gICYtLWZpeGVkSGVpZ2h0IHtcclxuICAgIC50dWktZHJvcGRvd25fX2NvbnRlbnQge1xyXG4gICAgICBoZWlnaHQ6IDEwMCU7XHJcbiAgICB9XHJcblxyXG4gICAgLnR1aS1kcm9wZG93bl9fbWVudSB7XHJcbiAgICAgIGhlaWdodDogMzh2aDtcclxuICAgICAgb3ZlcmZsb3cteTogdmlzaWJsZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gICYtLWRpc2FibGVkIHtcclxuICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XHJcbiAgICAudHVpLWRyb3Bkb3duX190cmlnZ2VyIHtcclxuICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG4vKiEqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiEqXFxcclxuICAhKioqIGNzcyAuL2NsaWVudC90b29saW5nL3dlYnBhY2svY3NzX3Jhd19sb2FkZXIuanM/P2Nsb25lZFJ1bGVTZXQtMTU2MS51c2VbMV0hLi9ub2RlX21vZHVsZXMvcG9zdGNzcy1sb2FkZXIvZGlzdC9janMuanM/P2Nsb25lZFJ1bGVTZXQtMTU2MS51c2VbMl0hLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2luZGV4LmpzPz9ydWxlU2V0WzBdLnVzZVswXSEuL2NsaWVudC9jb21wb25lbnQvdHVpL3NyYy9jb21wb25lbnRzL2Ryb3Bkb3duL0Ryb3Bkb3duQnV0dG9uLnZ1ZT92dWUmdHlwZT1zdHlsZSZpbmRleD0wJmlkPWE3Nzg0MzFjJmxhbmc9c2NzcyAqKiohXHJcbiAgXFwqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cclxuLyogb3ZlcnJpZGUgPGJ1dHRvbj4gc3R5bGVzKi9cclxuLnR1aS1kcm9wZG93bkJ1dHRvbiB7XHJcbiAgY29sb3I6IHZhcigtLWRyb3Bkb3duLWl0ZW0tdGV4dC1jb2xvcik7XHJcbiAgdGV4dC1hbGlnbjogbGVmdDtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcclxuICBib3JkZXI6IG5vbmU7XHJcbiAgYm9yZGVyLXJhZGl1czogMDtcclxuICAmOmhvdmVyLFxyXG4gICY6Zm9jdXMsXHJcbiAgJjphY3RpdmUsXHJcbiAgJjpmb2N1czphY3RpdmUge1xyXG4gICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDtcclxuICAgIGJveC1zaGFkb3c6IG5vbmU7XHJcbiAgfVxyXG59XHJcblxyXG4vKiB0dWktZHJvcGRvd25CdXR0b24gc3R5bGVzKi9cclxuLnR1aS1kcm9wZG93bkJ1dHRvbiB7XHJcbiAgQGluY2x1ZGUgZm9udChib2R5KTtcclxuICBwYWRkaW5nOiB2YXIoLS1nYXAtMikgdmFyKC0tZ2FwLTQpO1xyXG4gIG92ZXJmbG93OiBoaWRkZW47XHJcbiAgbGluZS1oZWlnaHQ6IDEuNDtcclxuICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcclxuXHJcbiAgJjpmb2N1cyB7XHJcbiAgICBjb2xvcjogdmFyKC0tZHJvcGRvd24taXRlbS10ZXh0LWNvbG9yKTtcclxuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcclxuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xyXG4gICAgb3V0bGluZTogMDtcclxuICB9XHJcblxyXG4gICY6aG92ZXIsXHJcbiAgJjphY3RpdmUsXHJcbiAgJjpmb2N1czphY3RpdmUge1xyXG4gICAgY29sb3I6IHZhcigtLWRyb3Bkb3duLWl0ZW0tdGV4dC1jb2xvci1ob3Zlcik7XHJcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1kcm9wZG93bi1pdGVtLWJnLWNvbG9yLWhvdmVyKTtcclxuICAgIG91dGxpbmU6IDA7XHJcbiAgfVxyXG5cclxuICAmOmZvY3VzLXZpc2libGUge1xyXG4gICAgY29sb3I6IHZhcigtLWRyb3Bkb3duLWl0ZW0tdGV4dC1jb2xvci1mb2N1cyk7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1kcm9wZG93bi1pdGVtLWJnLWNvbG9yLWZvY3VzKTtcclxuICAgIG91dGxpbmU6IDJweCBzb2xpZCB2YXIoLS1kcm9wZG93bi1pdGVtLWZvY3VzLXJpbmctY29sb3IpO1xyXG4gICAgb3V0bGluZS1vZmZzZXQ6IC0zcHg7XHJcbiAgfVxyXG5cclxuICAmLS1kaXNhYmxlZCxcclxuICAmLS1kaXNhYmxlZDpob3ZlcixcclxuICAmLS1kaXNhYmxlZDpmb2N1cyB7XHJcbiAgICBjb2xvcjogdmFyKC0tZHJvcGRvd24taXRlbS10ZXh0LWNvbG9yLWRpc2FibGVkKTtcclxuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xyXG4gICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcclxuICB9XHJcblxyXG4gICYtLWRpc2FibGVkOmFjdGl2ZSB7XHJcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcclxuICB9XHJcblxyXG4gICYtLW5vUGFkZGluZyB7XHJcbiAgICBwYWRkaW5nOiAwO1xyXG4gIH1cclxufVxyXG5cclxuLyohKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiEqXFxcclxuICAhKioqIGNzcyAuL2NsaWVudC90b29saW5nL3dlYnBhY2svY3NzX3Jhd19sb2FkZXIuanM/P2Nsb25lZFJ1bGVTZXQtMTU2MS51c2VbMV0hLi9ub2RlX21vZHVsZXMvcG9zdGNzcy1sb2FkZXIvZGlzdC9janMuanM/P2Nsb25lZFJ1bGVTZXQtMTU2MS51c2VbMl0hLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2luZGV4LmpzPz9ydWxlU2V0WzBdLnVzZVswXSEuL2NsaWVudC9jb21wb25lbnQvdHVpL3NyYy9jb21wb25lbnRzL2Ryb3Bkb3duL0Ryb3Bkb3duR3JvdXAudnVlP3Z1ZSZ0eXBlPXN0eWxlJmluZGV4PTAmaWQ9MzhjYzBlZWYmbGFuZz1zY3NzICoqKiFcclxuICBcXCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXHJcbi50dWktZHJvcGRvd25Hcm91cCB7XHJcbiAgJl9faGVhZGVyIHtcclxuICAgIHBhZGRpbmc6IHZhcigtLWdhcC0yKSB2YXIoLS1nYXAtNCk7XHJcbiAgICBmb250LXdlaWdodDogYm9sZDtcclxuICB9XHJcblxyXG4gICZfX2l0ZW1zIHtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG5cclxuICAgICYgPiAqIHtcclxuICAgICAgcGFkZGluZy1sZWZ0OiB2YXIoLS1nYXAtNyk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAmLS1zZXBhcmF0b3IgJl9faXRlbXMge1xyXG4gICAgJiA+ICoge1xyXG4gICAgICBib3JkZXItdG9wOiB2YXIoLS1ib3JkZXItd2lkdGgtdGhpbikgc29saWRcclxuICAgICAgICB2YXIoLS1kcm9wZG93bi1tZW51LWJvcmRlci1jb2xvcik7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG4vKiEqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiohKlxcXHJcbiAgISoqKiBjc3MgLi9jbGllbnQvdG9vbGluZy93ZWJwYWNrL2Nzc19yYXdfbG9hZGVyLmpzPz9jbG9uZWRSdWxlU2V0LTE1NjEudXNlWzFdIS4vbm9kZV9tb2R1bGVzL3Bvc3Rjc3MtbG9hZGVyL2Rpc3QvY2pzLmpzPz9jbG9uZWRSdWxlU2V0LTE1NjEudXNlWzJdIS4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9pbmRleC5qcz8/cnVsZVNldFswXS51c2VbMF0hLi9jbGllbnQvY29tcG9uZW50L3R1aS9zcmMvY29tcG9uZW50cy9kcm9wZG93bi9Ecm9wZG93bkl0ZW0udnVlP3Z1ZSZ0eXBlPXN0eWxlJmluZGV4PTAmaWQ9MjE4M2EzZDMmbGFuZz1zY3NzICoqKiFcclxuICBcXCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cclxuLnR1aS1kcm9wZG93bkl0ZW0ge1xyXG4gIEBpbmNsdWRlIGZvbnQoYm9keSk7XHJcbiAgZGlzcGxheTogYmxvY2s7XHJcbiAgd2lkdGg6IDEwMCU7XHJcbiAgcGFkZGluZzogdmFyKC0tZ2FwLTIpIHZhcigtLWdhcC00KTtcclxuICBvdmVyZmxvdzogaGlkZGVuO1xyXG4gIGNvbG9yOiB2YXIoLS1kcm9wZG93bi1pdGVtLXRleHQtY29sb3IpO1xyXG4gIGxpbmUtaGVpZ2h0OiAxLjQ7XHJcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcclxuICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcclxuICBjdXJzb3I6IHBvaW50ZXI7XHJcblxyXG4gICY6Zm9jdXMge1xyXG4gICAgY29sb3I6IHZhcigtLWRyb3Bkb3duLWl0ZW0tdGV4dC1jb2xvcik7XHJcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XHJcbiAgICBvdXRsaW5lOiBub25lO1xyXG4gIH1cclxuXHJcbiAgJjpob3ZlciB7XHJcbiAgICBjb2xvcjogdmFyKC0tZHJvcGRvd24taXRlbS10ZXh0LWNvbG9yLWhvdmVyKTtcclxuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcclxuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWRyb3Bkb3duLWl0ZW0tYmctY29sb3ItaG92ZXIpO1xyXG4gIH1cclxuXHJcbiAgJjpmb2N1cy12aXNpYmxlIHtcclxuICAgIGNvbG9yOiB2YXIoLS1kcm9wZG93bi1pdGVtLXRleHQtY29sb3ItZm9jdXMpO1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tZHJvcGRvd24taXRlbS1iZy1jb2xvci1mb2N1cyk7XHJcbiAgICBvdXRsaW5lOiAycHggc29saWQgdmFyKC0tZHJvcGRvd24taXRlbS1mb2N1cy1yaW5nLWNvbG9yKTtcclxuICAgIG91dGxpbmUtb2Zmc2V0OiAtM3B4O1xyXG4gIH1cclxuXHJcbiAgJi0tZGlzYWJsZWQsXHJcbiAgJi0tZGlzYWJsZWQ6aG92ZXIsXHJcbiAgJi0tZGlzYWJsZWQ6Zm9jdXMge1xyXG4gICAgY29sb3I6IHZhcigtLWRyb3Bkb3duLWl0ZW0tdGV4dC1jb2xvci1kaXNhYmxlZCk7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcclxuICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XHJcbiAgfVxyXG5cclxuICAmLS1kaXNhYmxlZDpmb2N1cyB7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1kcm9wZG93bi1pdGVtLWJnLWNvbG9yLWRpc2FibGVkLWZvY3VzKTtcclxuICB9XHJcblxyXG4gICYtLWRpc2FibGVkOmFjdGl2ZSB7XHJcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcclxuICB9XHJcblxyXG4gICYtLW5vUGFkZGluZyB7XHJcbiAgICBwYWRkaW5nOiAwO1xyXG4gIH1cclxuXHJcbiAgJi0tc2VsZWN0ZWQge1xyXG4gICAgY29sb3I6IHZhcigtLWNvbG9yLW5ldXRyYWwtMSk7XHJcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci1zdGF0ZS1hY3RpdmUpO1xyXG5cclxuICAgICY6Zm9jdXMsXHJcbiAgICAmOmhvdmVyLFxyXG4gICAgJjphY3RpdmUge1xyXG4gICAgICBjb2xvcjogdmFyKC0tY29sb3ItbmV1dHJhbC0xKTtcclxuICAgICAgYmFja2dyb3VuZDogdmFyKC0tY29sb3Itc3RhdGUtYWN0aXZlKTtcclxuICAgIH1cclxuXHJcbiAgICAmOmZvY3VzLXZpc2libGUge1xyXG4gICAgICBvdXRsaW5lLWNvbG9yOiB2YXIoLS1jb2xvci1uZXV0cmFsLTEpO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuLyohKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiohKlxcXHJcbiAgISoqKiBjc3MgLi9jbGllbnQvdG9vbGluZy93ZWJwYWNrL2Nzc19yYXdfbG9hZGVyLmpzPz9jbG9uZWRSdWxlU2V0LTE1NjEudXNlWzFdIS4vbm9kZV9tb2R1bGVzL3Bvc3Rjc3MtbG9hZGVyL2Rpc3QvY2pzLmpzPz9jbG9uZWRSdWxlU2V0LTE1NjEudXNlWzJdIS4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9pbmRleC5qcz8/cnVsZVNldFswXS51c2VbMF0hLi9jbGllbnQvY29tcG9uZW50L3R1aS9zcmMvY29tcG9uZW50cy9lZGl0b3IvRWRpdG9yTG9hZGluZy52dWU/dnVlJnR5cGU9c3R5bGUmaW5kZXg9MCZpZD1hMGM3Y2VhOCZsYW5nPXNjc3MgKioqIVxyXG4gIFxcKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXHJcbi50dWktZWRpdG9yTG9hZGluZyB7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xyXG4gIHdpZHRoOiAxMDAlO1xyXG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWZvcm0taW5wdXQtYmctY29sb3IpO1xyXG4gIGJvcmRlcjogdmFyKC0tYm9yZGVyLXdpZHRoLXRoaW4pIHNvbGlkIHZhcigtLWNvbG9yLW5ldXRyYWwtNSk7XHJcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tZm9ybS1pbnB1dC1ib3JkZXItcmFkaXVzKTtcclxuXHJcbiAgLyogaW5uZXIgbXVzdCBiZSBzZXBhcmF0ZSBmb3IgaW50cmluc2ljIGhlaWdodCB0byB3b3JrKi9cclxuICAmX19pbm5lciB7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xyXG5cclxuICAgIC8qIHNpbWlsYXIgdG8gZGVmYXVsdCBXZWthIGhlaWdodCovXHJcbiAgICBoZWlnaHQ6IGNhbGMoI3tyZW0tcHgoOTUpfSk7XHJcbiAgfVxyXG5cclxuICAmLS1jb21wYWN0ICZfX2lubmVyIHtcclxuICAgIC8qIHNpbWlsYXIgdG8gZGVmYXVsdCBXZWthIGhlaWdodCB3aXRoIGNvbXBhY3Qgb24qL1xyXG4gICAgaGVpZ2h0OiBjYWxjKCN7cmVtLXB4KDYyKX0pO1xyXG4gIH1cclxuXHJcbiAgJl9fc3Bpbm5lciB7XHJcbiAgICBjb2xvcjogdmFyKC0tY29sb3ItbmV1dHJhbC01KTtcclxuICB9XHJcbn1cclxuXHJcbi8qISoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiEqXFxcclxuICAhKioqIGNzcyAuL2NsaWVudC90b29saW5nL3dlYnBhY2svY3NzX3Jhd19sb2FkZXIuanM/P2Nsb25lZFJ1bGVTZXQtMTU2MS51c2VbMV0hLi9ub2RlX21vZHVsZXMvcG9zdGNzcy1sb2FkZXIvZGlzdC9janMuanM/P2Nsb25lZFJ1bGVTZXQtMTU2MS51c2VbMl0hLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2luZGV4LmpzPz9ydWxlU2V0WzBdLnVzZVswXSEuL2NsaWVudC9jb21wb25lbnQvdHVpL3NyYy9jb21wb25lbnRzL2VkaXRvci9FZGl0b3JUZXh0YXJlYS52dWU/dnVlJnR5cGU9c3R5bGUmaW5kZXg9MCZpZD03YjM5MTRmYSZsYW5nPXNjc3MgKioqIVxyXG4gIFxcKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xyXG4udHVpLWVkaXRvclRleHRhcmVhIHtcclxuICBkaXNwbGF5OiBmbGV4O1xyXG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XHJcbiAgLyogZXhwYW5kIHRvIGZ1bGwgd2lkdGggaWYgaW4gaG9yaXpvbnRhbCBmbGV4Ki9cclxuICB3aWR0aDogMTAwJTtcclxuXHJcbiAgLyogbmVlZGVkIGEgbW9yZSBzcGVjaWZpYyBzZWxlY3RvciB0byBvdmVycmlkZSB0dWktc2VsZWN0IHsgZmxleC1ncm93OiAxOyB9Ki9cclxuICA+IDpmaXJzdC1jaGlsZCB7XHJcbiAgICBmbGV4LWdyb3c6IDA7XHJcbiAgfVxyXG5cclxuICAmX190ZXh0YXJlYSB7XHJcbiAgICAvKiBzdHJldGNoIGNoaWxkIGlucHV0IHRvIGJlIGZ1bGwgaGVpZ2h0IGlmIHRoZSBlZGl0b3IgaXMgZ2l2ZW4gYSBzcGVjaWZpYyBoZWlnaHQqL1xyXG4gICAgZmxleC1ncm93OiAxO1xyXG4gICAgbWFyZ2luLXRvcDogdmFyKC0tZ2FwLTEpO1xyXG4gIH1cclxufVxyXG5cclxuLyohKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiEqXFxcclxuICAhKioqIGNzcyAuL2NsaWVudC90b29saW5nL3dlYnBhY2svY3NzX3Jhd19sb2FkZXIuanM/P2Nsb25lZFJ1bGVTZXQtMTU2MS51c2VbMV0hLi9ub2RlX21vZHVsZXMvcG9zdGNzcy1sb2FkZXIvZGlzdC9janMuanM/P2Nsb25lZFJ1bGVTZXQtMTU2MS51c2VbMl0hLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2luZGV4LmpzPz9ydWxlU2V0WzBdLnVzZVswXSEuL2NsaWVudC9jb21wb25lbnQvdHVpL3NyYy9jb21wb25lbnRzL2VtYmVkcy9SZXNwb25zaXZlRW1iZWRJZnJhbWUudnVlP3Z1ZSZ0eXBlPXN0eWxlJmluZGV4PTAmaWQ9NDc4OWY5MzMmbGFuZz1zY3NzICoqKiFcclxuICBcXCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXHJcbi50dWktcmVzcG9uc2l2ZUVtYmVkSWZyYW1lIHtcclxuICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgZGlzcGxheTogYmxvY2s7XHJcbiAgd2lkdGg6IDEwMCU7XHJcbiAgcGFkZGluZzogMDtcclxuICBvdmVyZmxvdzogaGlkZGVuO1xyXG5cclxuICAmOjpiZWZvcmUge1xyXG4gICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICBjb250ZW50OiAnJztcclxuICB9XHJcblxyXG4gICZfX2l0ZW0ge1xyXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgdG9wOiAwO1xyXG4gICAgYm90dG9tOiAwO1xyXG4gICAgbGVmdDogMDtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgaGVpZ2h0OiAxMDAlO1xyXG4gICAgYm9yZGVyOiAwO1xyXG4gIH1cclxufVxyXG5cclxuLyohKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiohKlxcXHJcbiAgISoqKiBjc3MgLi9jbGllbnQvdG9vbGluZy93ZWJwYWNrL2Nzc19yYXdfbG9hZGVyLmpzPz9jbG9uZWRSdWxlU2V0LTE1NjEudXNlWzFdIS4vbm9kZV9tb2R1bGVzL3Bvc3Rjc3MtbG9hZGVyL2Rpc3QvY2pzLmpzPz9jbG9uZWRSdWxlU2V0LTE1NjEudXNlWzJdIS4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9pbmRleC5qcz8/cnVsZVNldFswXS51c2VbMF0hLi9jbGllbnQvY29tcG9uZW50L3R1aS9zcmMvY29tcG9uZW50cy9lcnJvcnMvRXJyb3JNb2RhbC52dWU/dnVlJnR5cGU9c3R5bGUmaW5kZXg9MCZpZD1hOTFmODEwYyZsYW5nPXNjc3MgKioqIVxyXG4gIFxcKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXHJcbi50dWktZXJyb3JNb2RhbCB7XHJcbiAgJl9fZGV0YWlsc1RvZ2dsZSB7XHJcbiAgICBkaXNwbGF5OiBibG9jaztcclxuICAgIG1hcmdpbi10b3A6IHZhcigtLWdhcC00KTtcclxuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcclxuXHJcbiAgICAmOmhvdmVyLFxyXG4gICAgJjpmb2N1cyB7XHJcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gICZfX2J1dHRvbnMge1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gIH1cclxuXHJcbiAgJl9fbmF2QnV0dG9ucyB7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgIEBpbmNsdWRlIHR1aS1zdGFjay1ob3Jpem9udGFsKHZhcigtLWdhcC00KSk7XHJcbiAgfVxyXG5cclxuICAmX19kZXRhaWxzIHtcclxuICAgIG1hcmdpbi10b3A6IHZhcigtLWdhcC0zKTtcclxuICB9XHJcblxyXG4gICZfX2xhYmVsIHtcclxuICAgIEBpbmNsdWRlIGZvbnQoaDQpO1xyXG4gIH1cclxuXHJcbiAgJl9fY29udGV4dCB7XHJcbiAgICBjb2xvcjogdmFyKC0tY29sb3ItdGV4dC1oaW50KTtcclxuICB9XHJcblxyXG4gICZfX2V4dHJhSW5mbyB7XHJcbiAgICB3aGl0ZS1zcGFjZTogcHJlLXdyYXA7XHJcbiAgfVxyXG5cclxuICAmX19zdGFja1ByZSB7XHJcbiAgICBtYXJnaW46IHZhcigtLWdhcC0yKSAwIDAgMDtcclxuICAgIHBhZGRpbmc6IHZhcigtLWdhcC00KTtcclxuICAgIGNvbG9yOiB2YXIoLS1jb2xvci1uZXV0cmFsLTcpO1xyXG4gICAgd29yZC1icmVhazogYnJlYWstd29yZDtcclxuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLW5ldXRyYWwtMyk7XHJcbiAgICBib3JkZXItcmFkaXVzOiA0cHg7XHJcbiAgfVxyXG59XHJcblxyXG4vKiEqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqISpcXFxyXG4gICEqKiogY3NzIC4vY2xpZW50L3Rvb2xpbmcvd2VicGFjay9jc3NfcmF3X2xvYWRlci5qcz8/Y2xvbmVkUnVsZVNldC0xNTYxLnVzZVsxXSEuL25vZGVfbW9kdWxlcy9wb3N0Y3NzLWxvYWRlci9kaXN0L2Nqcy5qcz8/Y2xvbmVkUnVsZVNldC0xNTYxLnVzZVsyXSEuL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvaW5kZXguanM/P3J1bGVTZXRbMF0udXNlWzBdIS4vY2xpZW50L2NvbXBvbmVudC90dWkvc3JjL2NvbXBvbmVudHMvZXJyb3JzL0Vycm9yUGFnZVJlbmRlci52dWU/dnVlJnR5cGU9c3R5bGUmaW5kZXg9MCZpZD1iZjI1NmNmMCZsYW5nPXNjc3MgKioqIVxyXG4gIFxcKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cclxuLnR1aS1lcnJvckRpc3BsYXkge1xyXG4gIHBhZGRpbmc6IHZhcigtLWdhcC04KTtcclxuICBiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci1uZXV0cmFsLTMpO1xyXG4gIGJvcmRlci1yYWRpdXM6IDRweDtcclxuXHJcbiAgJl9fdGl0bGUge1xyXG4gICAgbWFyZ2luLXRvcDogMDtcclxuICB9XHJcblxyXG4gICZfX2J1dHRvbnMge1xyXG4gICAgbWFyZ2luLWJvdHRvbTogdmFyKC0tZ2FwLTQpO1xyXG4gIH1cclxuXHJcbiAgJl9fYnV0dG9uczpsYXN0LWNoaWxkIHtcclxuICAgIG1hcmdpbi1ib3R0b206IDA7XHJcbiAgfVxyXG5cclxuICAmX19kZXRhaWxzVG9nZ2xlIHtcclxuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcclxuXHJcbiAgICAmOmhvdmVyLFxyXG4gICAgJjpmb2N1cyB7XHJcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gICZfX2RldGFpbHNQcmUge1xyXG4gICAgbWFyZ2luLXRvcDogdmFyKC0tZ2FwLTIpO1xyXG4gICAgbWFyZ2luLWJvdHRvbTogMDtcclxuICAgIHBhZGRpbmc6IHZhcigtLWdhcC00KTtcclxuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLW5ldXRyYWwtMSk7XHJcbiAgICBib3JkZXItcmFkaXVzOiA0cHg7XHJcbiAgfVxyXG59XHJcblxyXG4vKiEqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiEqXFxcclxuICAhKioqIGNzcyAuL2NsaWVudC90b29saW5nL3dlYnBhY2svY3NzX3Jhd19sb2FkZXIuanM/P2Nsb25lZFJ1bGVTZXQtMTU2MS51c2VbMV0hLi9ub2RlX21vZHVsZXMvcG9zdGNzcy1sb2FkZXIvZGlzdC9janMuanM/P2Nsb25lZFJ1bGVTZXQtMTU2MS51c2VbMl0hLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2luZGV4LmpzPz9ydWxlU2V0WzBdLnVzZVswXSEuL2NsaWVudC9jb21wb25lbnQvdHVpL3NyYy9jb21wb25lbnRzL2Vycm9ycy9TZXNzaW9uRXhwaXJlZE1vZGFsLnZ1ZT92dWUmdHlwZT1zdHlsZSZpbmRleD0wJmlkPTAzODc2YWNlJmxhbmc9c2NzcyAqKiohXHJcbiAgXFwqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cclxuLnR1aS1zZXNza2V5RXhwaXJlZCB7XHJcbiAgJl9fYnV0dG9uIHtcclxuICAgIG1hcmdpbi10b3A6IHZhcigtLWdhcC02KTtcclxuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xyXG4gIH1cclxufVxyXG5cclxuLyohKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiEqXFxcclxuICAhKioqIGNzcyAuL2NsaWVudC90b29saW5nL3dlYnBhY2svY3NzX3Jhd19sb2FkZXIuanM/P2Nsb25lZFJ1bGVTZXQtMTU2MS51c2VbMV0hLi9ub2RlX21vZHVsZXMvcG9zdGNzcy1sb2FkZXIvZGlzdC9janMuanM/P2Nsb25lZFJ1bGVTZXQtMTU2MS51c2VbMl0hLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2luZGV4LmpzPz9ydWxlU2V0WzBdLnVzZVswXSEuL2NsaWVudC9jb21wb25lbnQvdHVpL3NyYy9jb21wb25lbnRzL2ZpbGUvRmlsZUNhcmQudnVlP3Z1ZSZ0eXBlPXN0eWxlJmluZGV4PTAmaWQ9MDk0Y2IwMzAmbGFuZz1zY3NzICoqKiFcclxuICBcXCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXHJcbi50dWktZmlsZUNhcmQge1xyXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICBkaXNwbGF5OiBmbGV4O1xyXG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgbWluLXdpZHRoOiAwO1xyXG4gIHBhZGRpbmc6IHZhcigtLWdhcC0yKTtcclxuICB3aGl0ZS1zcGFjZTogbm9ybWFsO1xyXG4gIGJvcmRlcjogdmFyKC0tYm9yZGVyLXdpZHRoLXRoaW4pIHNvbGlkIHZhcigtLWNvbG9yLW5ldXRyYWwtNSk7XHJcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tY2FyZC1ib3JkZXItcmFkaXVzKTtcclxuICBpc29sYXRpb246IGlzb2xhdGU7XHJcblxyXG4gICY6aG92ZXIge1xyXG4gICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1jb2xvci1zdGF0ZS1ob3Zlcik7XHJcbiAgICBib3gtc2hhZG93OiB2YXIoLS1zaGFkb3ctMik7XHJcbiAgfVxyXG5cclxuICAmLS1mb2N1cyB7XHJcbiAgICBAaW5jbHVkZSB0dWktZm9jdXM7XHJcbiAgfVxyXG5cclxuICAmX19pbmZvIHtcclxuICAgIGZsZXg6IDE7XHJcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcclxuICB9XHJcblxyXG4gICZfX2ZpbGVTaXplIHtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBnYXA6IHZhcigtLWdhcC0xKTtcclxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICBtYXJnaW46IDA7XHJcbiAgICBjb2xvcjogdmFyKC0tY29sb3ItbmV1dHJhbC02KTtcclxuICAgIGZvbnQtc2l6ZTogZm9udC1zaXplLXB4KDExKTtcclxuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XHJcblxyXG4gICAgJi1pY29uIHtcclxuICAgICAgZm9udC1zaXplOiBmb250LXNpemUtcHgoMTIpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgJl9fZmlsZW5hbWUge1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgICYsXHJcbiAgICAmOmxpbmssXHJcbiAgICAmOmhvdmVyLFxyXG4gICAgJjphY3RpdmUsXHJcbiAgICAmOnZpc2l0ZWQge1xyXG4gICAgICBjb2xvcjogdmFyKC0tY29sb3ItbmV1dHJhbC03KTtcclxuICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xyXG4gICAgICBvdXRsaW5lOiBub25lO1xyXG4gICAgfVxyXG5cclxuICAgICYtdGV4dCB7XHJcbiAgICAgIG1hcmdpbjogMDtcclxuICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcclxuICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcclxuICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XHJcbiAgICB9XHJcblxyXG4gICAgJi1leHQge1xyXG4gICAgICBmbGV4LXNocmluazogMDtcclxuICAgIH1cclxuXHJcbiAgICAmOmFmdGVyIHtcclxuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgICBpbnNldDogMDtcclxuICAgICAgY29udGVudDogJyc7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAmX19pY29uIHtcclxuICAgIGZsZXgtc2hyaW5rOiAwO1xyXG4gICAgd2lkdGg6IHJlbS1weCgzMik7XHJcbiAgICBtYXJnaW4tcmlnaHQ6IHZhcigtLWdhcC0yKTtcclxuICAgIGNvbG9yOiB2YXIoLS1jb2xvci1uZXV0cmFsLTcpO1xyXG4gIH1cclxuXHJcbiAgJi0tZG93bmxvYWRhYmxlIHtcclxuICAgIGN1cnNvcjogcG9pbnRlcjtcclxuICB9XHJcblxyXG4gICZfX2FjdGlvbnMge1xyXG4gICAgei1pbmRleDogMTtcclxuICAgIHBhZGRpbmctbGVmdDogdmFyKC0tZ2FwLTQpO1xyXG4gIH1cclxuXHJcbiAgJl9fZG93bmxvYWQge1xyXG4gICAgei1pbmRleDogMTtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBtYXJnaW4tbGVmdDogdmFyKC0tZ2FwLTQpO1xyXG4gICAgcGFkZGluZzogdmFyKC0tZ2FwLTIpO1xyXG4gICAgY29sb3I6IHZhcigtLWNvbG9yLXN0YXRlKTtcclxuICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLWJ0bi1zbS1yYWRpdXMpO1xyXG5cclxuICAgICY6Zm9jdXMge1xyXG4gICAgICBAaW5jbHVkZSB0dWktZm9jdXM7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG4vKiEqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiEqXFxcclxuICAhKioqIGNzcyAuL2NsaWVudC90b29saW5nL3dlYnBhY2svY3NzX3Jhd19sb2FkZXIuanM/P2Nsb25lZFJ1bGVTZXQtMTU2MS51c2VbMV0hLi9ub2RlX21vZHVsZXMvcG9zdGNzcy1sb2FkZXIvZGlzdC9janMuanM/P2Nsb25lZFJ1bGVTZXQtMTU2MS51c2VbMl0hLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2luZGV4LmpzPz9ydWxlU2V0WzBdLnVzZVswXSEuL2NsaWVudC9jb21wb25lbnQvdHVpL3NyYy9jb21wb25lbnRzL2ZpbHRlcnMvQnV0dG9uRmlsdGVyLnZ1ZT92dWUmdHlwZT1zdHlsZSZpbmRleD0wJmlkPTdmNGM5NTVkJmxhbmc9c2NzcyAqKiohXHJcbiAgXFwqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cclxuLnR1aS1idXR0b25GaWx0ZXIudHVpLWJ1dHRvbkZpbHRlciB7XHJcbiAgJi0tc3RhY2tlZCB7XHJcbiAgICB0ZXh0LWFsaWduOiByaWdodDtcclxuICAgID4gKiB7XHJcbiAgICAgIG1hcmdpbi10b3A6IHZhcigtLWdhcC00KTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbi8qISoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqISpcXFxyXG4gICEqKiogY3NzIC4vY2xpZW50L3Rvb2xpbmcvd2VicGFjay9jc3NfcmF3X2xvYWRlci5qcz8/Y2xvbmVkUnVsZVNldC0xNTYxLnVzZVsxXSEuL25vZGVfbW9kdWxlcy9wb3N0Y3NzLWxvYWRlci9kaXN0L2Nqcy5qcz8/Y2xvbmVkUnVsZVNldC0xNTYxLnVzZVsyXSEuL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvaW5kZXguanM/P3J1bGVTZXRbMF0udXNlWzBdIS4vY2xpZW50L2NvbXBvbmVudC90dWkvc3JjL2NvbXBvbmVudHMvZmlsdGVycy9GaWx0ZXJCYXIudnVlP3Z1ZSZ0eXBlPXN0eWxlJmluZGV4PTAmaWQ9MTEyYTA1ZjgmbGFuZz1zY3NzICoqKiFcclxuICBcXCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xyXG4udHVpLWZpbHRlckJhciB7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG5cclxuICAmLS1oYXNUb3Age1xyXG4gICAgcGFkZGluZy10b3A6IHZhcigtLWdhcC00KTtcclxuICAgIGJvcmRlci10b3A6IHZhcigtLWJvcmRlci13aWR0aC10aGluKSBzb2xpZCB2YXIoLS1maWx0ZXItYmFyLWJvcmRlci1jb2xvcik7XHJcbiAgfVxyXG5cclxuICAmLS1oYXNCb3R0b20ge1xyXG4gICAgcGFkZGluZy1ib3R0b206IHZhcigtLWdhcC00KTtcclxuICAgIGJvcmRlci1ib3R0b206IHZhcigtLWJvcmRlci13aWR0aC10aGluKSBzb2xpZCB2YXIoLS1maWx0ZXItYmFyLWJvcmRlci1jb2xvcik7XHJcbiAgfVxyXG5cclxuICAmX19oZWFkaW5nIHtcclxuICAgIEBpbmNsdWRlIHNyLW9ubHkoKTtcclxuICB9XHJcblxyXG4gICZfX3RvZ2dsZSB7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcblxyXG4gICAgJi1idG4ge1xyXG4gICAgICBtYXJnaW46IHZhcigtLWdhcC0yKSAwO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgJl9fZmlsdGVycyB7XHJcbiAgICAkc3RhY2tlZDogI3smfS0tc3RhY2tlZDtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBmbGV4LWdyb3c6IDE7XHJcblxyXG4gICAgJi1sZWZ0LFxyXG4gICAgJi1yaWdodCB7XHJcbiAgICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICAgIGZsZXgtc2hyaW5rOiAwO1xyXG5cclxuICAgICAgPiAqIHtcclxuICAgICAgICBmbGV4LXNocmluazogMDtcclxuICAgICAgICBtYXJnaW4tbGVmdDogdmFyKC0tZ2FwLTQpO1xyXG4gICAgICB9XHJcblxyXG4gICAgICA+ICogKyAqIHtcclxuICAgICAgICBtYXJnaW4tbGVmdDogdmFyKC0tZ2FwLTQpO1xyXG4gICAgICB9XHJcblxyXG4gICAgICAjeyRzdGFja2VkfSAmIHtcclxuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG4gICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xyXG4gICAgICAgIGJvcmRlci1sZWZ0OiBub25lO1xyXG5cclxuICAgICAgICAudHVpLWZvcm1MYWJlbCB7XHJcbiAgICAgICAgICBAaW5jbHVkZSBmb250KGJvZHktc20sIHZhcigtLWxhYmVsLXdlaWdodCkpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgPiAqIHtcclxuICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xyXG4gICAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgPiA6Zmlyc3QtY2hpbGQge1xyXG4gICAgICAgICAgYm9yZGVyLWxlZnQ6IG5vbmU7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgJi1yaWdodCB7XHJcbiAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcclxuXHJcbiAgICAgID4gOmZpcnN0LWNoaWxkIHtcclxuICAgICAgICBib3JkZXItbGVmdDogdmFyKC0tYm9yZGVyLXdpZHRoLXRoaW4pIHNvbGlkIHZhcigtLWNvbG9yLW5ldXRyYWwtNSk7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgID4gKiB7XHJcbiAgICAgICAgcGFkZGluZy1sZWZ0OiB2YXIoLS1nYXAtNCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAmLS1zdGFja2VkIHtcclxuICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxuICAgIH1cclxuICB9XHJcblxyXG4gICZfX3Jlc2V0IHtcclxuICAgIG1hcmdpbi1sZWZ0OiB2YXIoLS1nYXAtNCk7XHJcblxyXG4gICAgJi1zdGFja2VkIHtcclxuICAgICAgbWFyZ2luLXRvcDogdmFyKC0tZ2FwLTQpO1xyXG4gICAgICBwYWRkaW5nLXRvcDogdmFyKC0tZ2FwLTQpO1xyXG4gICAgICBwYWRkaW5nLWJvdHRvbTogdmFyKC0tZ2FwLTQpO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuLyohKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqISpcXFxyXG4gICEqKiogY3NzIC4vY2xpZW50L3Rvb2xpbmcvd2VicGFjay9jc3NfcmF3X2xvYWRlci5qcz8/Y2xvbmVkUnVsZVNldC0xNTYxLnVzZVsxXSEuL25vZGVfbW9kdWxlcy9wb3N0Y3NzLWxvYWRlci9kaXN0L2Nqcy5qcz8/Y2xvbmVkUnVsZVNldC0xNTYxLnVzZVsyXSEuL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvaW5kZXguanM/P3J1bGVTZXRbMF0udXNlWzBdIS4vY2xpZW50L2NvbXBvbmVudC90dWkvc3JjL2NvbXBvbmVudHMvZmlsdGVycy9GaWx0ZXJCYXJBcmVhLnZ1ZT92dWUmdHlwZT1zdHlsZSZpbmRleD0wJmlkPWYyMTcwN2I2Jmxhbmc9c2NzcyAqKiohXHJcbiAgXFwqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXHJcbi50dWktZmlsdGVyQmFyQXJlYSB7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG5cclxuICAmX19iYXIge1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XHJcblxyXG4gICAgJi0taG9yaXpvbnRhbCB7XHJcbiAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XHJcbiAgICB9XHJcblxyXG4gICAgJi0taGFzVG9wIHtcclxuICAgICAgcGFkZGluZy10b3A6IHZhcigtLWdhcC00KTtcclxuICAgICAgYm9yZGVyLXRvcDogdmFyKC0tYm9yZGVyLXdpZHRoLXRoaW4pIHNvbGlkIHZhcigtLWZpbHRlci1iYXItYm9yZGVyLWNvbG9yKTtcclxuICAgIH1cclxuXHJcbiAgICAmLS1oYXNCb3R0b20ge1xyXG4gICAgICBwYWRkaW5nLWJvdHRvbTogdmFyKC0tZ2FwLTQpO1xyXG4gICAgICBib3JkZXItYm90dG9tOiB2YXIoLS1ib3JkZXItd2lkdGgtdGhpbikgc29saWRcclxuICAgICAgICB2YXIoLS1maWx0ZXItYmFyLWJvcmRlci1jb2xvcik7XHJcbiAgICB9XHJcblxyXG4gICAgJi10b2dnbGUge1xyXG4gICAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgICBtYXJnaW46IGF1dG87XHJcbiAgICB9XHJcblxyXG4gICAgJi1yZXNldEJ1dHRvbiB7XHJcbiAgICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xyXG4gICAgICBtYXJnaW4tdG9wOiB2YXIoLS1nYXAtNCk7XHJcbiAgICB9XHJcblxyXG4gICAgJi1zdGFja2VkRmlsdGVycyB7XHJcbiAgICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XHJcbiAgICAgIGdhcDogdmFyKC0tZ2FwLTQpO1xyXG4gICAgICBtYXJnaW4tdG9wOiB2YXIoLS1nYXAtNCk7XHJcbiAgICAgIHBhZGRpbmc6IDAgdmFyKC0tZ2FwLTQpO1xyXG4gICAgfVxyXG5cclxuICAgICYtYmFyRmlsdGVycyB7XHJcbiAgICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICAgIGdhcDogdmFyKC0tZ2FwLTQpO1xyXG4gICAgfVxyXG5cclxuICAgICYtZXh0cmFGaWx0ZXJzIHtcclxuICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAgZmxleC1ncm93OiAxO1xyXG4gICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xyXG4gICAgICBoZWlnaHQ6IHZhcigtLWZvcm0taW5wdXQtaGVpZ2h0KTtcclxuICAgICAgbWFyZ2luLXRvcDogYXV0bztcclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbi8qISoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiohKlxcXHJcbiAgISoqKiBjc3MgLi9jbGllbnQvdG9vbGluZy93ZWJwYWNrL2Nzc19yYXdfbG9hZGVyLmpzPz9jbG9uZWRSdWxlU2V0LTE1NjEudXNlWzFdIS4vbm9kZV9tb2R1bGVzL3Bvc3Rjc3MtbG9hZGVyL2Rpc3QvY2pzLmpzPz9jbG9uZWRSdWxlU2V0LTE1NjEudXNlWzJdIS4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9pbmRleC5qcz8/cnVsZVNldFswXS51c2VbMF0hLi9jbGllbnQvY29tcG9uZW50L3R1aS9zcmMvY29tcG9uZW50cy9maWx0ZXJzL0ZpbHRlckJhckFyZWFQb3BvdmVyLnZ1ZT92dWUmdHlwZT1zdHlsZSZpbmRleD0wJmlkPTJiMDZhNzIwJmxhbmc9c2NzcyAqKiohXHJcbiAgXFwqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xyXG4udHVpLWZpbHRlckJhckFyZWFQb3BvdmVyIHtcclxuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xyXG5cclxuICAmX19jb250ZW50IHtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG4gICAgZ2FwOiB2YXIoLS1nYXAtNCk7XHJcbiAgICBwYWRkaW5nOiAwIHZhcigtLWdhcC0xKSB2YXIoLS1nYXAtMSkgdmFyKC0tZ2FwLTEpO1xyXG4gIH1cclxuXHJcbiAgJl9fYnV0dG9ucyB7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgZmxleC13cmFwOiB3cmFwO1xyXG4gICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcclxuICAgIHBhZGRpbmctdG9wOiB2YXIoLS1nYXAtNCk7XHJcbiAgICBwYWRkaW5nLWJvdHRvbTogdmFyKC0tZ2FwLTEpO1xyXG5cclxuICAgICY6OmJlZm9yZSB7XHJcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgbGVmdDogMDtcclxuICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgIGJvcmRlci10b3A6IHZhcigtLWJvcmRlci13aWR0aC10aGluKSBzb2xpZCB2YXIoLS1maWx0ZXItYmFyLWJvcmRlci1jb2xvcik7XHJcbiAgICAgIGNvbnRlbnQ6ICcnO1xyXG4gICAgfVxyXG5cclxuICAgICYtcmVzZXQge1xyXG4gICAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgICBmbGV4LWdyb3c6IDE7XHJcbiAgICAgIHBhZGRpbmc6IHZhcigtLWdhcC01KSB2YXIoLS1nYXAtMSkgMDtcclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbi8qISoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqISpcXFxyXG4gICEqKiogY3NzIC4vY2xpZW50L3Rvb2xpbmcvd2VicGFjay9jc3NfcmF3X2xvYWRlci5qcz8/Y2xvbmVkUnVsZVNldC0xNTYxLnVzZVsxXSEuL25vZGVfbW9kdWxlcy9wb3N0Y3NzLWxvYWRlci9kaXN0L2Nqcy5qcz8/Y2xvbmVkUnVsZVNldC0xNTYxLnVzZVsyXSEuL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvaW5kZXguanM/P3J1bGVTZXRbMF0udXNlWzBdIS4vY2xpZW50L2NvbXBvbmVudC90dWkvc3JjL2NvbXBvbmVudHMvZmlsdGVycy9GaWx0ZXJTaWRlUGFuZWwudnVlP3Z1ZSZ0eXBlPXN0eWxlJmluZGV4PTAmaWQ9YmJjODBiZGMmbGFuZz1zY3NzICoqKiFcclxuICBcXCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xyXG4udHVpLWZpbHRlclNpZGVQYW5lbCB7XHJcbiAgZGlzcGxheTogYmxvY2s7XHJcblxyXG4gICZfX2hlYWRlciB7XHJcbiAgICBAaW5jbHVkZSBmb250KGgzKTtcclxuICAgIG1pbi13aWR0aDogMDtcclxuICAgIG1hcmdpbjogMCB2YXIoLS1nYXAtMikgMCAwO1xyXG4gIH1cclxuXHJcbiAgJl9faGVhZGluZyB7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgcGFkZGluZy1ib3R0b206IHZhcigtLWdhcC0yKTtcclxuICAgIGJvcmRlci1ib3R0b206IHZhcigtLWJvcmRlci13aWR0aC1ub3JtYWwpIHNvbGlkIHZhcigtLWNvbG9yLW5ldXRyYWwtNyk7XHJcbiAgfVxyXG5cclxuICAmX19pbnN0cnVjdGlvbnMsXHJcbiAgJl9fc3RhdHVzIHtcclxuICAgIEBpbmNsdWRlIHNyLW9ubHkoKTtcclxuICB9XHJcblxyXG4gIC50dWktZmlsdGVyU2lkZVBhbmVsX19jbGVhckJ0biB7XHJcbiAgICBmbGV4LXNocmluazogMDtcclxuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xyXG4gIH1cclxufVxyXG5cclxuLnR1aS1maWx0ZXJTaWRlUGFuZWwudHVpLWZpbHRlclNpZGVQYW5lbCB7XHJcbiAgJiA+ICogKyAqIHtcclxuICAgIG1hcmdpbi10b3A6IHZhcigtLWdhcC00KTtcclxuICB9XHJcblxyXG4gIC50dWktZmllbGRzZXRfX2xlZ2VuZCxcclxuICAudHVpLWZvcm1MYWJlbCB7XHJcbiAgICBAaW5jbHVkZSBmb250KGJvZHktc20sIHZhcigtLWxhYmVsLXdlaWdodCkpO1xyXG4gIH1cclxufVxyXG5cclxuLyohKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqISpcXFxyXG4gICEqKiogY3NzIC4vY2xpZW50L3Rvb2xpbmcvd2VicGFjay9jc3NfcmF3X2xvYWRlci5qcz8/Y2xvbmVkUnVsZVNldC0xNTYxLnVzZVsxXSEuL25vZGVfbW9kdWxlcy9wb3N0Y3NzLWxvYWRlci9kaXN0L2Nqcy5qcz8/Y2xvbmVkUnVsZVNldC0xNTYxLnVzZVsyXSEuL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvaW5kZXguanM/P3J1bGVTZXRbMF0udXNlWzBdIS4vY2xpZW50L2NvbXBvbmVudC90dWkvc3JjL2NvbXBvbmVudHMvZmlsdGVycy9NdWx0aVNlbGVjdENoZWNrYm94RmlsdGVyLnZ1ZT92dWUmdHlwZT1zdHlsZSZpbmRleD0wJmlkPTZjOTQzN2U2Jmxhbmc9c2NzcyAqKiohXHJcbiAgXFwqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXHJcbi50dWktbXVsdGlTZWxlY3RDaGVja2JveEZpbHRlciB7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG4gIGdhcDogdmFyKC0tZ2FwLTIpO1xyXG5cclxuICAmX19pdGVtcyB7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxuICAgIGZsZXgtZ3JvdzogMTtcclxuICAgIGdhcDogdmFyKC0tZ2FwLTQpIDA7XHJcbiAgICB3aGl0ZS1zcGFjZTogbm9ybWFsO1xyXG4gIH1cclxufVxyXG5cclxuQG1lZGlhIChtaW4td2lkdGg6ICR0dWktc2NyZWVuLXhzKSB7XHJcbiAgLnR1aS1tdWx0aVNlbGVjdENoZWNrYm94RmlsdGVyIHtcclxuICAgICZfX2l0ZW1zIHtcclxuICAgICAgJi0taGFzQ29sdW1ucyB7XHJcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcclxuICAgICAgICBmbGV4LXdyYXA6IHdyYXA7XHJcbiAgICAgICAgZ2FwOiB2YXIoLS1nYXAtNCk7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgICYtaXRlbSB7XHJcbiAgICAgICAgJi0tdHdvQ29sdW1uIHtcclxuICAgICAgICAgIHdpZHRoOiA0NyU7XHJcbiAgICAgICAgICBvdmVyZmxvdy13cmFwOiBicmVhay13b3JkO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuLyohKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiEqXFxcclxuICAhKioqIGNzcyAuL2NsaWVudC90b29saW5nL3dlYnBhY2svY3NzX3Jhd19sb2FkZXIuanM/P2Nsb25lZFJ1bGVTZXQtMTU2MS51c2VbMV0hLi9ub2RlX21vZHVsZXMvcG9zdGNzcy1sb2FkZXIvZGlzdC9janMuanM/P2Nsb25lZFJ1bGVTZXQtMTU2MS51c2VbMl0hLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2luZGV4LmpzPz9ydWxlU2V0WzBdLnVzZVswXSEuL2NsaWVudC9jb21wb25lbnQvdHVpL3NyYy9jb21wb25lbnRzL2ZpbHRlcnMvTXVsdGlTZWxlY3RGaWx0ZXIudnVlP3Z1ZSZ0eXBlPXN0eWxlJmluZGV4PTAmaWQ9YWM0MjA0MmMmbGFuZz1zY3NzICoqKiFcclxuICBcXCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXHJcbi50dWktbXVsdGlTZWxlY3RGaWx0ZXIge1xyXG4gICYgPiAqICsgKiB7XHJcbiAgICBtYXJnaW4tdG9wOiB2YXIoLS1nYXAtMSk7XHJcbiAgfVxyXG5cclxuICAmX19jb2xsYXBzaWJsZSB7XHJcbiAgICBtYXJnaW46IDA7XHJcblxyXG4gICAgJi1jb2xsYXBzZWQge1xyXG4gICAgICAmID4gKiB7XHJcbiAgICAgICAgbWFyZ2luLXRvcDogdmFyKC0tZ2FwLTEpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgJi10b2dnbGUge1xyXG4gICAgICBtYXJnaW4tbGVmdDogdmFyKC0tZ2FwLTEpO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuLyohKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiohKlxcXHJcbiAgISoqKiBjc3MgLi9jbGllbnQvdG9vbGluZy93ZWJwYWNrL2Nzc19yYXdfbG9hZGVyLmpzPz9jbG9uZWRSdWxlU2V0LTE1NjEudXNlWzFdIS4vbm9kZV9tb2R1bGVzL3Bvc3Rjc3MtbG9hZGVyL2Rpc3QvY2pzLmpzPz9jbG9uZWRSdWxlU2V0LTE1NjEudXNlWzJdIS4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9pbmRleC5qcz8/cnVsZVNldFswXS51c2VbMF0hLi9jbGllbnQvY29tcG9uZW50L3R1aS9zcmMvY29tcG9uZW50cy9maWx0ZXJzL1NlYXJjaEZpbHRlci52dWU/dnVlJnR5cGU9c3R5bGUmaW5kZXg9MCZpZD02MjE5Yjg1MyZsYW5nPXNjc3MgKioqIVxyXG4gIFxcKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXHJcbi50dWktc2VhcmNoRmlsdGVyIHtcclxuICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBmbGV4LWRpcmVjdGlvbjogcm93O1xyXG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcblxyXG4gIGlucHV0LnR1aS1mb3JtSW5wdXQge1xyXG4gICAgZmxleC1ncm93OiAwO1xyXG4gIH1cclxuXHJcbiAgLnR1aS1mb3JtTGFiZWwge1xyXG4gICAgbWFyZ2luOiBhdXRvIHZhcigtLWdhcC0zKSBhdXRvIDA7XHJcbiAgfVxyXG5cclxuICAmX19ncm91cCB7XHJcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgZmxleC1ncm93OiAxO1xyXG4gICAgbWFyZ2luLXRvcDogMDtcclxuICAgIG1hcmdpbi1ib3R0b206IGF1dG87XHJcblxyXG4gICAgJi0tc3RhY2tlZCB7XHJcbiAgICAgIG1hcmdpbi10b3A6IHZhcigtLWdhcC0xKTtcclxuICAgIH1cclxuXHJcbiAgICAmLWljb24ge1xyXG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAgIGxlZnQ6IHZhcigtLWdhcC0yKTtcclxuICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgICAgaGVpZ2h0OiAxMDAlO1xyXG4gICAgICBjb2xvcjogdmFyKC0tZmlsdGVyLXNlYXJjaC1pY29uLWNvbG9yKTtcclxuXHJcbiAgICAgIC5mYS1zZWFyY2gge1xyXG4gICAgICAgIG1hcmdpbjogYXV0byAwO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgJi1jbGVhckNvbnRhaW5lciB7XHJcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgcmlnaHQ6IDA7XHJcbiAgICAgIGhlaWdodDogMTAwJTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gICZfX3NlYXJjaCB7XHJcbiAgICAvKiBkaXNhYmxlIHRoZSBkZWZhdWx0IGNsZWFyICh4KSBhY3Rpb24gaW4gSUUqL1xyXG4gICAgJjo6LW1zLWNsZWFyIHtcclxuICAgICAgZGlzcGxheTogbm9uZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gICZfX3JlbW92ZUljb24ge1xyXG4gICAgY29sb3I6IHZhcigtLWZpbHRlci1zZWFyY2gtY2xlYXItaWNvbi1jb2xvcik7XHJcbiAgfVxyXG5cclxuICAmLS1zdGFja2VkIHtcclxuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XHJcbiAgICBhbGlnbi1pdGVtczogc3RyZXRjaDtcclxuXHJcbiAgICAudHVpLWZvcm1MYWJlbCB7XHJcbiAgICAgIG1hcmdpbjogdmFyKC0tZ2FwLTEpIDA7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAmLS1iYXJGaWx0ZXIge1xyXG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxuICAgIGdhcDogdmFyKC0tZ2FwLTEpO1xyXG4gICAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7XHJcbiAgICBtYXJnaW4tdG9wOiBhdXRvO1xyXG4gIH1cclxufVxyXG5cclxuLyohKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiohKlxcXHJcbiAgISoqKiBjc3MgLi9jbGllbnQvdG9vbGluZy93ZWJwYWNrL2Nzc19yYXdfbG9hZGVyLmpzPz9jbG9uZWRSdWxlU2V0LTE1NjEudXNlWzFdIS4vbm9kZV9tb2R1bGVzL3Bvc3Rjc3MtbG9hZGVyL2Rpc3QvY2pzLmpzPz9jbG9uZWRSdWxlU2V0LTE1NjEudXNlWzJdIS4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9pbmRleC5qcz8/cnVsZVNldFswXS51c2VbMF0hLi9jbGllbnQvY29tcG9uZW50L3R1aS9zcmMvY29tcG9uZW50cy9maWx0ZXJzL1NlbGVjdEZpbHRlci52dWU/dnVlJnR5cGU9c3R5bGUmaW5kZXg9MCZpZD0xNjliMjJiMiZsYW5nPXNjc3MgKioqIVxyXG4gIFxcKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXHJcbi50dWktc2VsZWN0RmlsdGVyIHtcclxuICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBmbGV4LWRpcmVjdGlvbjogcm93O1xyXG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcblxyXG4gIC50dWktZm9ybUxhYmVsIHtcclxuICAgIG1hcmdpbjogYXV0byB2YXIoLS1nYXAtMykgYXV0byAwO1xyXG4gIH1cclxuXHJcbiAgLnR1aS1zZWxlY3Qge1xyXG4gICAgd2lkdGg6IGF1dG87XHJcbiAgICBtYXgtd2lkdGg6IDI1MHB4O1xyXG4gIH1cclxuXHJcbiAgJi0tc3RhY2tlZCB7XHJcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG4gICAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7XHJcblxyXG4gICAgLnR1aS1mb3JtTGFiZWwge1xyXG4gICAgICBtYXJnaW46IHZhcigtLWdhcC0xKSAwIDA7XHJcbiAgICB9XHJcblxyXG4gICAgLnR1aS1zZWxlY3Qge1xyXG4gICAgICBtYXgtd2lkdGg6IGluaXRpYWw7XHJcbiAgICAgIG1hcmdpbi10b3A6IHZhcigtLWdhcC0xKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gICYtLWJhckZpbHRlciB7XHJcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG4gICAgZ2FwOiB2YXIoLS1nYXAtMSk7XHJcbiAgICBhbGlnbi1pdGVtczogc3RyZXRjaDtcclxuICAgIG1heC13aWR0aDogMjUwcHg7XHJcbiAgICBtYXJnaW4tdG9wOiBhdXRvO1xyXG4gIH1cclxuXHJcbiAgJi0tYmFyRmlsdGVyJi0tc3RhY2tlZCB7XHJcbiAgICBtYXgtd2lkdGg6IGluaXRpYWw7XHJcbiAgfVxyXG59XHJcblxyXG4vKiEqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiohKlxcXHJcbiAgISoqKiBjc3MgLi9jbGllbnQvdG9vbGluZy93ZWJwYWNrL2Nzc19yYXdfbG9hZGVyLmpzPz9jbG9uZWRSdWxlU2V0LTE1NjEudXNlWzFdIS4vbm9kZV9tb2R1bGVzL3Bvc3Rjc3MtbG9hZGVyL2Rpc3QvY2pzLmpzPz9jbG9uZWRSdWxlU2V0LTE1NjEudXNlWzJdIS4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9pbmRleC5qcz8/cnVsZVNldFswXS51c2VbMF0hLi9jbGllbnQvY29tcG9uZW50L3R1aS9zcmMvY29tcG9uZW50cy9maWx0ZXJzL1NvcnRCYXIudnVlP3Z1ZSZ0eXBlPXN0eWxlJmluZGV4PTAmaWQ9NDBkYzRiNWMmbGFuZz1zY3NzICoqKiFcclxuICBcXCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cclxuLnR1aS1zb3J0QmFyIHtcclxuICBkaXNwbGF5OiBmbGV4O1xyXG4gIGZsZXgtZmxvdzogcm93IHdyYXA7XHJcbiAgZ2FwOiB2YXIoLS1nYXAtMykgdmFyKC0tZ2FwLTYpO1xyXG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xyXG5cclxuICAmX19zdGFydCB7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgZ2FwOiB2YXIoLS1nYXAtMik7XHJcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gIH1cclxufVxyXG5cclxuLyohKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiEqXFxcclxuICAhKioqIGNzcyAuL2NsaWVudC90b29saW5nL3dlYnBhY2svY3NzX3Jhd19sb2FkZXIuanM/P2Nsb25lZFJ1bGVTZXQtMTU2MS51c2VbMV0hLi9ub2RlX21vZHVsZXMvcG9zdGNzcy1sb2FkZXIvZGlzdC9janMuanM/P2Nsb25lZFJ1bGVTZXQtMTU2MS51c2VbMl0hLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2luZGV4LmpzPz9ydWxlU2V0WzBdLnVzZVswXSEuL2NsaWVudC9jb21wb25lbnQvdHVpL3NyYy9jb21wb25lbnRzL2Zvcm0vQ2hlY2tib3gudnVlP3Z1ZSZ0eXBlPXN0eWxlJmluZGV4PTAmaWQ9NjY1NjlmN2YmbGFuZz1zY3NzICoqKiFcclxuICBcXCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXHJcbjpyb290IHtcclxuICAvKiBTaXplIG9mIGNoZWNrYm94Ki9cclxuICAtLWZvcm0tY2hlY2tib3gtc2l6ZTogdmFyKC0tZm9ybS1pbnB1dC1mb250LXNpemUpO1xyXG4gIC0tZm9ybS1jaGVja2JveC1zaXplLWxhcmdlOiBjYWxjKHZhcigtLWZvcm0taW5wdXQtZm9udC1zaXplKSAqIDEuMzMzKTtcclxuICAtLWNoZWNrYm94LWNoZWNrLXdpZHRoOiAje3JlbS1weCgyKX07XHJcbn1cclxuXHJcbi50dWktY2hlY2tib3gge1xyXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICBkaXNwbGF5OiBmbGV4O1xyXG4gIG1pbi1oZWlnaHQ6IGNhbGModmFyKC0tZm9ybS1jaGVja2JveC1zaXplKSArIDJweCk7XHJcblxyXG4gICYtLWxhcmdlIHtcclxuICAgIG1pbi1oZWlnaHQ6IGNhbGModmFyKC0tZm9ybS1jaGVja2JveC1zaXplLWxhcmdlKSArIDJweCk7XHJcbiAgfVxyXG5cclxuICAmX19pbnB1dCB7XHJcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICBvcGFjaXR5OiAwO1xyXG4gIH1cclxuXHJcbiAgJl9fbGFiZWwge1xyXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgbWFyZ2luOiAwO1xyXG4gICAgcGFkZGluZy1sZWZ0OiBjYWxjKHZhcigtLWZvcm0tY2hlY2tib3gtc2l6ZSkgKiAxLjUpO1xyXG4gICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcclxuICAgIGZvbnQtc2l6ZTogdmFyKC0tZm9ybS1pbnB1dC1mb250LXNpemUpO1xyXG4gICAgbGluZS1oZWlnaHQ6IDE7XHJcbiAgICBvdmVyZmxvdy13cmFwOiBicmVhay13b3JkO1xyXG5cclxuICAgIC50dWktY2hlY2tib3gtLWxhcmdlICYge1xyXG4gICAgICBwYWRkaW5nLWxlZnQ6IGNhbGModmFyKC0tZm9ybS1jaGVja2JveC1zaXplLWxhcmdlKSAqIDEuNSk7XHJcbiAgICB9XHJcblxyXG4gICAgJi0tbm9PZmZzZXQge1xyXG4gICAgICBwYWRkaW5nLWxlZnQ6IHZhcigtLWZvcm0tY2hlY2tib3gtc2l6ZSk7XHJcbiAgICAgIC50dWktY2hlY2tib3gtLWxhcmdlICYge1xyXG4gICAgICAgIHBhZGRpbmctbGVmdDogdmFyKC0tZm9ybS1jaGVja2JveC1zaXplLWxhcmdlKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgICY6OmJlZm9yZSB7XHJcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgdG9wOiAwO1xyXG4gICAgICBsZWZ0OiAwO1xyXG4gICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgICAgd2lkdGg6IHZhcigtLWZvcm0tY2hlY2tib3gtc2l6ZSk7XHJcbiAgICAgIGhlaWdodDogdmFyKC0tZm9ybS1jaGVja2JveC1zaXplKTtcclxuICAgICAgbWFyZ2luLXRvcDogMXB4O1xyXG4gICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1mb3JtLWNoZWNrYm94LWJnLWNvbG9yKTtcclxuICAgICAgYm9yZGVyOiB2YXIoLS1mb3JtLWlucHV0LWJvcmRlci1zaXplKSBzb2xpZFxyXG4gICAgICAgIHZhcigtLWZvcm0tY2hlY2tib3gtYm9yZGVyLWNvbG9yKTtcclxuICAgICAgYm9yZGVyLXJhZGl1czogdmFyKC0tZm9ybS1pbnB1dC1ib3JkZXItcmFkaXVzKTtcclxuICAgICAgdHJhbnNpdGlvbjogYm9yZGVyIHZhcigtLXRyYW5zaXRpb24tZm9ybS1mdW5jdGlvbilcclxuICAgICAgICAgIHZhcigtLXRyYW5zaXRpb24tZm9ybS1kdXJhdGlvbiksXHJcbiAgICAgICAgYm94LXNoYWRvdyB2YXIoLS10cmFuc2l0aW9uLWZvcm0tZnVuY3Rpb24pXHJcbiAgICAgICAgICB2YXIoLS10cmFuc2l0aW9uLWZvcm0tZHVyYXRpb24pO1xyXG4gICAgICBjb250ZW50OiAnJztcclxuICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XHJcblxyXG4gICAgICAudHVpLWNoZWNrYm94LS1sYXJnZSAmIHtcclxuICAgICAgICB3aWR0aDogdmFyKC0tZm9ybS1jaGVja2JveC1zaXplLWxhcmdlKTtcclxuICAgICAgICBoZWlnaHQ6IHZhcigtLWZvcm0tY2hlY2tib3gtc2l6ZS1sYXJnZSk7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIC50dWktY29udGV4dEludmFsaWQgJiB7XHJcbiAgICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1mb3JtLWlucHV0LWJvcmRlci1jb2xvci1pbnZhbGlkKTtcclxuICAgICAgICBib3gtc2hhZG93OiB2YXIoLS1zaGFkb3ctbm9uZSksIHZhcigtLWZvcm0taW5wdXQtc2hhZG93LWludmFsaWQpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAmX19pbnB1dDpkaXNhYmxlZCB+ICZfX2xhYmVsIHtcclxuICAgIGNvbG9yOiB2YXIoLS1mb3JtLWlucHV0LXRleHQtY29sb3ItZGlzYWJsZWQpO1xyXG4gIH1cclxuXHJcbiAgJl9faW5wdXQ6ZGlzYWJsZWQgfiAmX19sYWJlbC0tZGlzYWJsZWRSZWFkYWJsZSB7XHJcbiAgICBjb2xvcjogdmFyKC0tZm9ybS1pbnB1dC10ZXh0LWNvbG9yKTtcclxuICB9XHJcblxyXG4gICZfX2lucHV0OmZvY3VzLXZpc2libGUgfiAmX19sYWJlbDo6YmVmb3JlIHtcclxuICAgIEBpbmNsdWRlIHR1aS1mb2N1cygpO1xyXG4gICAgYm9yZGVyOiB2YXIoLS1mb3JtLWlucHV0LWJvcmRlci1zaXplKSBzb2xpZFxyXG4gICAgICB2YXIoLS1mb3JtLWNoZWNrYm94LWJvcmRlci1jb2xvci1mb2N1cyk7XHJcbiAgICBib3gtc2hhZG93OiB2YXIoLS1mb3JtLWlucHV0LXNoYWRvdy1mb2N1cyk7XHJcblxyXG4gICAgLnR1aS1jb250ZXh0SW52YWxpZCAmIHtcclxuICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1mb3JtLWlucHV0LWJvcmRlci1jb2xvci1pbnZhbGlkKTtcclxuICAgICAgb3V0bGluZS1jb2xvcjogdmFyKC0tZm9ybS1pbnB1dC1ib3JkZXItY29sb3ItaW52YWxpZCk7XHJcbiAgICAgIGJveC1zaGFkb3c6IHZhcigtLXNoYWRvdy1ub25lKSwgdmFyKC0tZm9ybS1pbnB1dC1zaGFkb3ctaW52YWxpZC1mb2N1cyk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAmX19pbnB1dDpkaXNhYmxlZDpjaGVja2VkIH4gJl9fbGFiZWw6OmJlZm9yZSxcclxuICAmX19pbnB1dDpkaXNhYmxlZCB+ICZfX2xhYmVsOjpiZWZvcmUge1xyXG4gICAgYmFja2dyb3VuZDogdmFyKC0tZm9ybS1jaGVja2JveC1iZy1jb2xvci1kaXNhYmxlZCk7XHJcbiAgICBib3JkZXI6IHZhcigtLWZvcm0taW5wdXQtYm9yZGVyLXNpemUpIHNvbGlkO1xyXG4gICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1mb3JtLWNoZWNrYm94LWJvcmRlci1jb2xvci1kaXNhYmxlZCk7XHJcbiAgICBib3gtc2hhZG93OiBub25lO1xyXG4gIH1cclxuXHJcbiAgJl9faW5wdXQgfiAmX19sYWJlbDo6YWZ0ZXIge1xyXG4gICAgLyogY29uc3RydWN0IGEgY2hlY2sgbWFyayBvdXQgb2YgdHdvIHNpZGVzIG9mIGEgcm90YXRlZCBib3gqL1xyXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgdG9wOiBjYWxjKDAuMzUgKiB2YXIoLS1mb3JtLWNoZWNrYm94LXNpemUpKTtcclxuICAgIGxlZnQ6IGNhbGMoMC4yMSAqIHZhcigtLWZvcm0tY2hlY2tib3gtc2l6ZSkpO1xyXG4gICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICB3aWR0aDogY2FsYygwLjYgKiB2YXIoLS1mb3JtLWNoZWNrYm94LXNpemUpKTtcclxuICAgIGhlaWdodDogY2FsYygwLjM1ICogdmFyKC0tZm9ybS1jaGVja2JveC1zaXplKSk7XHJcbiAgICBib3JkZXItY29sb3I6IHZhcigtLWZvcm0tY2hlY2tib3gtY2hlY2stY29sb3IpO1xyXG4gICAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcclxuICAgIC8qIXJ0bDppZ25vcmUqL1xyXG4gICAgYm9yZGVyLXdpZHRoOiAwIDAgdmFyKC0tY2hlY2tib3gtY2hlY2std2lkdGgpIHZhcigtLWNoZWNrYm94LWNoZWNrLXdpZHRoKTtcclxuICAgIHRyYW5zZm9ybTogcm90YXRlKC00NWRlZyk7XHJcbiAgICBvcGFjaXR5OiAwO1xyXG4gICAgdHJhbnNpdGlvbjogb3BhY2l0eSB2YXIoLS10cmFuc2l0aW9uLWZvcm0tZnVuY3Rpb24pXHJcbiAgICAgIHZhcigtLXRyYW5zaXRpb24tZm9ybS1kdXJhdGlvbik7XHJcbiAgICBjb250ZW50OiAnJztcclxuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xyXG5cclxuICAgIC50dWktY2hlY2tib3gtLWxhcmdlICYge1xyXG4gICAgICB0b3A6IGNhbGMoMC4zICogdmFyKC0tZm9ybS1jaGVja2JveC1zaXplLWxhcmdlKSk7XHJcbiAgICAgIGxlZnQ6IGNhbGMoMC4yMiAqIHZhcigtLWZvcm0tY2hlY2tib3gtc2l6ZS1sYXJnZSkpO1xyXG4gICAgICB3aWR0aDogY2FsYygwLjYgKiB2YXIoLS1mb3JtLWNoZWNrYm94LXNpemUtbGFyZ2UpKTtcclxuICAgICAgaGVpZ2h0OiBjYWxjKDAuMzIgKiB2YXIoLS1mb3JtLWNoZWNrYm94LXNpemUtbGFyZ2UpKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gICZfX2lucHV0OmRpc2FibGVkOmNoZWNrZWQgfiAmX19sYWJlbDo6YWZ0ZXIsXHJcbiAgJl9faW5wdXQ6ZGlzYWJsZWQgfiAmX19sYWJlbDo6YWZ0ZXIge1xyXG4gICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1mb3JtLWNoZWNrYm94LWNoZWNrLWNvbG9yLWRpc2FibGVkKTtcclxuICB9XHJcblxyXG4gICZfX2lucHV0OmNoZWNrZWQgfiAmX19sYWJlbDo6YmVmb3JlIHtcclxuICAgIGJhY2tncm91bmQ6IHZhcigtLWZvcm0tY2hlY2tib3gtYmctY29sb3ItYWN0aXZlKTtcclxuICAgIGJvcmRlci1jb2xvcjogdmFyKC0tZm9ybS1jaGVja2JveC1ib3JkZXItY29sb3ItYWN0aXZlKTtcclxuICB9XHJcblxyXG4gICZfX2lucHV0OmNoZWNrZWQgfiAmX19sYWJlbDo6YWZ0ZXIge1xyXG4gICAgb3BhY2l0eTogMTtcclxuICB9XHJcbn1cclxuXHJcbkBtZWRpYSBwcmludCB7XHJcbiAgLnR1aS1jaGVja2JveCB7XHJcbiAgICAmX19pbnB1dDpjaGVja2VkIH4gJl9fbGFiZWw6OmJlZm9yZSB7XHJcbiAgICAgIC13ZWJraXQtcHJpbnQtY29sb3ItYWRqdXN0OiBleGFjdDtcclxuICAgICAgICAgICAgICBwcmludC1jb2xvci1hZGp1c3Q6IGV4YWN0O1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyogSUUxMSAmIEVkZ2Ugc3VwcG9ydCovXHJcbiAgLmllLFxyXG4gIC5tc2VkZ2Uge1xyXG4gICAgLnR1aS1jaGVja2JveCB7XHJcbiAgICAgICZfX2lucHV0OmNoZWNrZWQgfiAudHVpLWNoZWNrYm94X19sYWJlbDo6YmVmb3JlIHtcclxuICAgICAgICBib3JkZXI6IHNvbGlkIHZhcigtLWZvcm0tY2hlY2tib3gtYmctY29sb3ItYWN0aXZlKTtcclxuICAgICAgICBib3JkZXItd2lkdGg6IDAgdmFyKC0tZm9ybS1jaGVja2JveC1zaXplKSAwIDA7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbi8qISoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiohKlxcXHJcbiAgISoqKiBjc3MgLi9jbGllbnQvdG9vbGluZy93ZWJwYWNrL2Nzc19yYXdfbG9hZGVyLmpzPz9jbG9uZWRSdWxlU2V0LTE1NjEudXNlWzFdIS4vbm9kZV9tb2R1bGVzL3Bvc3Rjc3MtbG9hZGVyL2Rpc3QvY2pzLmpzPz9jbG9uZWRSdWxlU2V0LTE1NjEudXNlWzJdIS4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9pbmRleC5qcz8/cnVsZVNldFswXS51c2VbMF0hLi9jbGllbnQvY29tcG9uZW50L3R1aS9zcmMvY29tcG9uZW50cy9mb3JtL0NoZWNrYm94QnV0dG9uLnZ1ZT92dWUmdHlwZT1zdHlsZSZpbmRleD0wJmlkPTAxN2UzMDkxJmxhbmc9c2NzcyAqKiohXHJcbiAgXFwqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xyXG4udHVpLWNoZWNrYm94QnV0dG9uIHtcclxuICAkYmxvY2s6ICN7Jn07XHJcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gIGRpc3BsYXk6IGZsZXg7XHJcblxyXG4gICZfX2lucHV0IHtcclxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgIG9wYWNpdHk6IDA7XHJcbiAgfVxyXG5cclxuICAmX19sYWJlbCB7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgZmxleC1ncm93OiAxO1xyXG4gICAgbWFyZ2luOiAwO1xyXG4gICAgcGFkZGluZzogdmFyKC0tZ2FwLTEpO1xyXG4gICAgY29sb3I6IHZhcigtLWJ0bi1jaGVja2JveC10ZXh0LWNvbG9yKTtcclxuICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XHJcbiAgICBjdXJzb3I6IHBvaW50ZXI7XHJcblxyXG4gICAgJjpob3ZlciB7XHJcbiAgICAgIGNvbG9yOiB2YXIoLS1idG4tY2hlY2tib3gtdGV4dC1jb2xvci1mb2N1cyk7XHJcbiAgICAgIGJhY2tncm91bmQ6IHZhcigtLWJ0bi1jaGVja2JveC1iZy1jb2xvci1ob3Zlcik7XHJcbiAgICB9XHJcblxyXG4gICAgJjphY3RpdmU6aG92ZXIsXHJcbiAgICAmOmFjdGl2ZSB7XHJcbiAgICAgIGNvbG9yOiB2YXIoLS1idG4tY2hlY2tib3gtdGV4dC1jb2xvci1hY3RpdmUpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgJl9fZGVzZWxlY3RJY29uIHtcclxuICAgIG1hcmdpbjogYXV0byAwIGF1dG8gYXV0bztcclxuICAgIGNvbG9yOiB2YXIoLS1idG4tY2hlY2tib3gtdGV4dC1jb2xvci1zZWxlY3RlZCk7XHJcbiAgICB2aXNpYmlsaXR5OiBoaWRkZW47XHJcbiAgfVxyXG5cclxuICAmX19pbnB1dDpjaGVja2VkIH4gJl9fbGFiZWwge1xyXG4gICAgY29sb3I6IHZhcigtLWJ0bi1jaGVja2JveC10ZXh0LWNvbG9yLXNlbGVjdGVkKTtcclxuICAgIGJhY2tncm91bmQ6IHZhcigtLWJ0bi1jaGVja2JveC1iZy1jb2xvci1zZWxlY3RlZCk7XHJcblxyXG4gICAgI3skYmxvY2t9X19kZXNlbGVjdEljb24ge1xyXG4gICAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xyXG4gICAgfVxyXG5cclxuICAgICY6aG92ZXIge1xyXG4gICAgICBjb2xvcjogdmFyKC0tYnRuLWNoZWNrYm94LXRleHQtY29sb3ItZm9jdXMpO1xyXG4gICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1idG4tY2hlY2tib3gtYmctY29sb3ItaG92ZXIpO1xyXG5cclxuICAgICAgI3skYmxvY2t9X19kZXNlbGVjdEljb24ge1xyXG4gICAgICAgIGNvbG9yOiB2YXIoLS1idG4tY2hlY2tib3gtdGV4dC1jb2xvci1mb2N1cyk7XHJcbiAgICAgICAgdmlzaWJpbGl0eTogdmlzaWJsZTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgICY6YWN0aXZlOmhvdmVyLFxyXG4gICAgJjphY3RpdmUge1xyXG4gICAgICBjb2xvcjogdmFyKC0tYnRuLWNoZWNrYm94LXRleHQtY29sb3ItYWN0aXZlKTtcclxuICAgICAgYmFja2dyb3VuZDogdmFyKC0tYnRuLWNoZWNrYm94LWJnLWNvbG9yLWhvdmVyKTtcclxuXHJcbiAgICAgICN7JGJsb2NrfV9fZGVzZWxlY3RJY29uIHtcclxuICAgICAgICBjb2xvcjogdmFyKC0tYnRuLWNoZWNrYm94LXRleHQtY29sb3ItYWN0aXZlKTtcclxuICAgICAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAmX19pbnB1dDpmb2N1cy12aXNpYmxlIH4gJl9fbGFiZWwge1xyXG4gICAgQGluY2x1ZGUgdHVpLWZvY3VzKCk7XHJcbiAgfVxyXG5cclxuICAmX19pbnB1dDpmb2N1cy12aXNpYmxlOmNoZWNrZWQgfiAmX19sYWJlbCB7XHJcbiAgICBAaW5jbHVkZSB0dWktZm9jdXMoKTtcclxuXHJcbiAgICAjeyRibG9ja31fX2Rlc2VsZWN0SWNvbiB7XHJcbiAgICAgIGNvbG9yOiB2YXIoLS1idG4tY2hlY2tib3gtdGV4dC1jb2xvci1zZWxlY3RlZCk7XHJcbiAgICAgIHZpc2liaWxpdHk6IHZpc2libGU7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG4vKiEqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiohKlxcXHJcbiAgISoqKiBjc3MgLi9jbGllbnQvdG9vbGluZy93ZWJwYWNrL2Nzc19yYXdfbG9hZGVyLmpzPz9jbG9uZWRSdWxlU2V0LTE1NjEudXNlWzFdIS4vbm9kZV9tb2R1bGVzL3Bvc3Rjc3MtbG9hZGVyL2Rpc3QvY2pzLmpzPz9jbG9uZWRSdWxlU2V0LTE1NjEudXNlWzJdIS4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9pbmRleC5qcz8/cnVsZVNldFswXS51c2VbMF0hLi9jbGllbnQvY29tcG9uZW50L3R1aS9zcmMvY29tcG9uZW50cy9mb3JtL0NoZWNrYm94R3JvdXAudnVlP3Z1ZSZ0eXBlPXN0eWxlJmluZGV4PTAmaWQ9MDlmZjdjZjAmbGFuZz1zY3NzICoqKiFcclxuICBcXCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cclxuOnJvb3Qge1xyXG4gIC0tZm9ybS1jaGVja2JveC1ncm91cC1wYWRkaW5nOiB2YXIoLS1nYXAtMik7XHJcbiAgLS1mb3JtLWNoZWNrYm94LWdyb3VwLXNwYWNpbmctdjogdmFyKC0tZ2FwLTQpO1xyXG4gIC0tZm9ybS1jaGVja2JveC1ncm91cC1zcGFjaW5nLWg6IHZhcigtLWdhcC00KTtcclxufVxyXG5cclxuLnR1aS1jaGVja2JveEdyb3VwIHtcclxuICBkaXNwbGF5OiBmbGV4O1xyXG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XHJcbiAgcGFkZGluZzogdmFyKC0tZm9ybS1jaGVja2JveC1ncm91cC1wYWRkaW5nKSAwO1xyXG5cclxuICBAaW5jbHVkZSB0dWktc3RhY2stdmVydGljYWwodmFyKC0tZm9ybS1jaGVja2JveC1ncm91cC1zcGFjaW5nLXYpKTtcclxufVxyXG5cclxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogJHR1aS1zY3JlZW4tc20pIHtcclxuICAudHVpLWNoZWNrYm94R3JvdXAtLWhvcml6b250YWwge1xyXG4gICAgZmxleC1kaXJlY3Rpb246IHJvdztcclxuICAgIGZsZXgtd3JhcDogd3JhcDtcclxuICAgIC8qIHN0eWxlbGludC1kaXNhYmxlIGxlbmd0aC16ZXJvLW5vLXVuaXQqL1xyXG4gICAgLyogcHJldHRpZXItaWdub3JlKi9cclxuICAgIG1hcmdpbi10b3A6IGNhbGMoMHB4IC0gdmFyKC0tZm9ybS1jaGVja2JveC1ncm91cC1zcGFjaW5nLXYpICsgdmFyKC0tZm9ybS1jaGVja2JveC1ncm91cC1wYWRkaW5nKSk7XHJcbiAgICBwYWRkaW5nLXRvcDogMDtcclxuXHJcbiAgICAmID4gKiB7XHJcbiAgICAgIG1hcmdpbi10b3A6IHZhcigtLWZvcm0tY2hlY2tib3gtZ3JvdXAtc3BhY2luZy12KTtcclxuICAgICAgbWFyZ2luLXJpZ2h0OiB2YXIoLS1mb3JtLWNoZWNrYm94LWdyb3VwLXNwYWNpbmctaCk7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG4vKiEqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiEqXFxcclxuICAhKioqIGNzcyAuL2NsaWVudC90b29saW5nL3dlYnBhY2svY3NzX3Jhd19sb2FkZXIuanM/P2Nsb25lZFJ1bGVTZXQtMTU2MS51c2VbMV0hLi9ub2RlX21vZHVsZXMvcG9zdGNzcy1sb2FkZXIvZGlzdC9janMuanM/P2Nsb25lZFJ1bGVTZXQtMTU2MS51c2VbMl0hLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2luZGV4LmpzPz9ydWxlU2V0WzBdLnVzZVswXSEuL2NsaWVudC9jb21wb25lbnQvdHVpL3NyYy9jb21wb25lbnRzL2Zvcm0vRGF0ZVNlbGVjdG9yLnZ1ZT92dWUmdHlwZT1zdHlsZSZpbmRleD0wJmlkPTYyMDc3MzJlJmxhbmc9c2NzcyAqKiohXHJcbiAgXFwqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cclxuLnR1aS1kYXRlU2VsZWN0b3Ige1xyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbiAgZmxleC1mbG93OiBjb2x1bW47XHJcbiAgZ2FwOiB2YXIoLS1nYXAtMik7XHJcbiAgbWF4LXdpZHRoOiByZW0tcHgoMzUwKTtcclxuICBmb250LXNpemU6IHZhcigtLWZvcm0taW5wdXQtZm9udC1zaXplKTtcclxuXHJcbiAgJl9fZGF0ZSB7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgZ2FwOiB2YXIoLS1nYXAtMik7XHJcblxyXG4gICAgLyogc2V0IHJhdGlvIGFuZCBpbnRyaW5zaWMgd2lkdGggZm9yIGVhY2ggZmllbGQqL1xyXG5cclxuICAgICYtZGF5IHtcclxuICAgICAgZmxleDogNjtcclxuICAgICAgd2lkdGg6IGNhbGModmFyKC0tZ2FwLTEwKSArIDEuNWVtKTtcclxuICAgIH1cclxuXHJcbiAgICAmLW1vbnRoIHtcclxuICAgICAgZmxleDogMTI7XHJcbiAgICAgIHdpZHRoOiBjYWxjKHZhcigtLWdhcC0xMCkgKyA2ZW0pO1xyXG4gICAgfVxyXG5cclxuICAgICYteWVhciB7XHJcbiAgICAgIGZsZXg6IDg7XHJcbiAgICAgIHdpZHRoOiBjYWxjKHZhcigtLWdhcC0xMCkgKyAzZW0pO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuLyohKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqISpcXFxyXG4gICEqKiogY3NzIC4vY2xpZW50L3Rvb2xpbmcvd2VicGFjay9jc3NfcmF3X2xvYWRlci5qcz8/Y2xvbmVkUnVsZVNldC0xNTYxLnVzZVsxXSEuL25vZGVfbW9kdWxlcy9wb3N0Y3NzLWxvYWRlci9kaXN0L2Nqcy5qcz8/Y2xvbmVkUnVsZVNldC0xNTYxLnVzZVsyXSEuL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvaW5kZXguanM/P3J1bGVTZXRbMF0udXNlWzBdIS4vY2xpZW50L2NvbXBvbmVudC90dWkvc3JjL2NvbXBvbmVudHMvZm9ybS9GaWVsZEVycm9yLnZ1ZT92dWUmdHlwZT1zdHlsZSZpbmRleD0wJmlkPTJiM2NlYjJjJmxhbmc9c2NzcyAqKiohXHJcbiAgXFwqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXHJcbi50dWktZm9ybUZpZWxkRXJyb3Ige1xyXG4gIC8qIG9mZnNldCB0aGUgZXh0cmEgcmVkIHNoYWRvdyBvbiBpbnZhbGlkIGVsZW1lbnRzICsgd2Ugd2FudCB0aGUgZXJyb3IqL1xyXG4gIC8qIG1lc3NhZ2UgdG8gYmUgc3BhY2VkIDFweCBhd2F5Ki9cclxuICBtYXJnaW4tdG9wOiBjYWxjKHZhcigtLWZvcm0taW5wdXQtaW52YWxpZC1zaGFkb3ctc2l6ZSkgKyAxcHgpO1xyXG5cclxuICAmX19pbm5lciB7XHJcbiAgICBAaW5jbHVkZSBmb250KGJvZHktc20pO1xyXG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XHJcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAgcGFkZGluZzogcmVtLXB4KDYpIHJlbS1weCg4KTtcclxuICAgIGNvbG9yOiB2YXIoLS1mb3JtLWVycm9yLXRleHQtY29sb3IpO1xyXG4gICAgYmFja2dyb3VuZDogdmFyKC0tZm9ybS1lcnJvci1iZy1jb2xvcik7XHJcbiAgfVxyXG5cclxuICAmX19kaXNtaXNzIHtcclxuICAgIG1hcmdpbi1sZWZ0OiB2YXIoLS1nYXAtMSk7XHJcbiAgICBwYWRkaW5nOiAwO1xyXG4gICAgY29sb3I6IGluaGVyaXQ7XHJcbiAgICBvcGFjaXR5OiAwLjc7XHJcblxyXG4gICAgJjpob3ZlcjphY3RpdmUsXHJcbiAgICAmOmFjdGl2ZSxcclxuICAgICY6aG92ZXIsXHJcbiAgICAmOmZvY3VzIHtcclxuICAgICAgY29sb3I6IGluaGVyaXQ7XHJcbiAgICAgIG9wYWNpdHk6IDE7XHJcbiAgICB9XHJcblxyXG4gICAgJi1pY29uIHtcclxuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgICB0b3A6IC0xcHg7XHJcbiAgICAgIEBpbmNsdWRlIGZvbnQoYm9keS1zbSk7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG4vKiEqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiohKlxcXHJcbiAgISoqKiBjc3MgLi9jbGllbnQvdG9vbGluZy93ZWJwYWNrL2Nzc19yYXdfbG9hZGVyLmpzPz9jbG9uZWRSdWxlU2V0LTE1NjEudXNlWzFdIS4vbm9kZV9tb2R1bGVzL3Bvc3Rjc3MtbG9hZGVyL2Rpc3QvY2pzLmpzPz9jbG9uZWRSdWxlU2V0LTE1NjEudXNlWzJdIS4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9pbmRleC5qcz8/cnVsZVNldFswXS51c2VbMF0hLi9jbGllbnQvY29tcG9uZW50L3R1aS9zcmMvY29tcG9uZW50cy9mb3JtL0ZpZWxkR3JvdXAudnVlP3Z1ZSZ0eXBlPXN0eWxlJmluZGV4PTAmaWQ9N2U1ODliNjEmbGFuZz1zY3NzICoqKiFcclxuICBcXCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cclxuLnR1aS1mb3JtRmllbGRHcm91cCB7XHJcbiAgZmxleC1ncm93OiAxO1xyXG4gIHdpZHRoOiAxMDAlO1xyXG4gIG1pbi13aWR0aDogMDtcclxufVxyXG5cclxuLyohKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiEqXFxcclxuICAhKioqIGNzcyAuL2NsaWVudC90b29saW5nL3dlYnBhY2svY3NzX3Jhd19sb2FkZXIuanM/P2Nsb25lZFJ1bGVTZXQtMTU2MS51c2VbMV0hLi9ub2RlX21vZHVsZXMvcG9zdGNzcy1sb2FkZXIvZGlzdC9janMuanM/P2Nsb25lZFJ1bGVTZXQtMTU2MS51c2VbMl0hLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2luZGV4LmpzPz9ydWxlU2V0WzBdLnVzZVswXSEuL2NsaWVudC9jb21wb25lbnQvdHVpL3NyYy9jb21wb25lbnRzL2Zvcm0vRmllbGRzZXQudnVlP3Z1ZSZ0eXBlPXN0eWxlJmluZGV4PTAmaWQ9MzhkZGViMzgmbGFuZz1zY3NzICoqKiFcclxuICBcXCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXHJcbi50dWktZmllbGRzZXQge1xyXG4gIG1pbi13aWR0aDogMDtcclxuICBtYXJnaW46IDA7XHJcbiAgcGFkZGluZzogMDtcclxuICBib3JkZXI6IDA7XHJcblxyXG4gICZfX2xlZ2VuZCB7XHJcbiAgICBkaXNwbGF5OiBibG9jaztcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgbWFyZ2luOiAwO1xyXG4gICAgcGFkZGluZzogMDtcclxuICAgIGNvbG9yOiB2YXIoLS1mb3JtLXRleHQtY29sb3IpO1xyXG4gICAgZm9udC1zaXplOiBmb250LXNpemUtcHgoMTgpO1xyXG4gICAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7XHJcbiAgICBib3JkZXI6IG5vbmU7XHJcbiAgfVxyXG5cclxuICAmLS1oaWRkZW4ge1xyXG4gICAgQGluY2x1ZGUgc3Itb25seSgpO1xyXG4gIH1cclxufVxyXG5cclxuLyohKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiEqXFxcclxuICAhKioqIGNzcyAuL2NsaWVudC90b29saW5nL3dlYnBhY2svY3NzX3Jhd19sb2FkZXIuanM/P2Nsb25lZFJ1bGVTZXQtMTU2MS51c2VbMV0hLi9ub2RlX21vZHVsZXMvcG9zdGNzcy1sb2FkZXIvZGlzdC9janMuanM/P2Nsb25lZFJ1bGVTZXQtMTU2MS51c2VbMl0hLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2luZGV4LmpzPz9ydWxlU2V0WzBdLnVzZVswXSEuL2NsaWVudC9jb21wb25lbnQvdHVpL3NyYy9jb21wb25lbnRzL2Zvcm0vRmlsdGVyRmllbGRzZXQudnVlP3Z1ZSZ0eXBlPXN0eWxlJmluZGV4PTAmaWQ9NTMwM2FhMDgmbGFuZz1zY3NzICoqKiFcclxuICBcXCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXHJcbi50dWktZmlsdGVyRmllbGRzZXQge1xyXG4gIG1pbi13aWR0aDogMDtcclxuICBtYXJnaW46IDA7XHJcbiAgcGFkZGluZzogMDtcclxuICBib3JkZXI6IDA7XHJcblxyXG4gICZfX2NvbnRlbnQge1xyXG4gICAgbWFyZ2luLXRvcDogdmFyKC0tZ2FwLTIpO1xyXG4gIH1cclxufVxyXG5cclxuLyohKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqISpcXFxyXG4gICEqKiogY3NzIC4vY2xpZW50L3Rvb2xpbmcvd2VicGFjay9jc3NfcmF3X2xvYWRlci5qcz8/Y2xvbmVkUnVsZVNldC0xNTYxLnVzZVsxXSEuL25vZGVfbW9kdWxlcy9wb3N0Y3NzLWxvYWRlci9kaXN0L2Nqcy5qcz8/Y2xvbmVkUnVsZVNldC0xNTYxLnVzZVsyXSEuL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvaW5kZXguanM/P3J1bGVTZXRbMF0udXNlWzBdIS4vY2xpZW50L2NvbXBvbmVudC90dWkvc3JjL2NvbXBvbmVudHMvZm9ybS9Gb3JtLnZ1ZT92dWUmdHlwZT1zdHlsZSZpbmRleD0wJmlkPTYzYmZjYzAwJmxhbmc9c2NzcyAqKiohXHJcbiAgXFwqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXHJcbi50dWktZm9ybSB7XHJcbiAgQGluY2x1ZGUgdHVpLXN0YWNrLXZlcnRpY2FsKHZhcigtLWdhcC04KSk7XHJcbn1cclxuXHJcbi8qISoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiEqXFxcclxuICAhKioqIGNzcyAuL2NsaWVudC90b29saW5nL3dlYnBhY2svY3NzX3Jhd19sb2FkZXIuanM/P2Nsb25lZFJ1bGVTZXQtMTU2MS51c2VbMV0hLi9ub2RlX21vZHVsZXMvcG9zdGNzcy1sb2FkZXIvZGlzdC9janMuanM/P2Nsb25lZFJ1bGVTZXQtMTU2MS51c2VbMl0hLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2luZGV4LmpzPz9ydWxlU2V0WzBdLnVzZVswXSEuL2NsaWVudC9jb21wb25lbnQvdHVpL3NyYy9jb21wb25lbnRzL2Zvcm0vRm9ybVJvdy52dWU/dnVlJnR5cGU9c3R5bGUmaW5kZXg9MCZpZD02ZTI1MDZlYSZsYW5nPXNjc3MgKioqIVxyXG4gIFxcKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xyXG4udHVpLWZvcm1Sb3cge1xyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbiAgZmxleC1mbG93OiBjb2x1bW47XHJcblxyXG4gICYgPiAmX19kZXNjIHtcclxuICAgIG1pbi13aWR0aDogMDtcclxuICAgIHBhZGRpbmctdG9wOiB2YXIoLS1nYXAtMSk7XHJcbiAgICBwYWRkaW5nLXJpZ2h0OiB2YXIoLS1nYXAtMik7XHJcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xyXG4gICAgb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDtcclxuICB9XHJcblxyXG4gICYgPiAmX19hY3Rpb24ge1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIG1heC13aWR0aDogcmVtLXB4KDcxMik7XHJcblxyXG4gICAgJi0taXNTdGFja2VkIHtcclxuICAgICAgZGlzcGxheTogYmxvY2s7XHJcblxyXG4gICAgICBAaW5jbHVkZSB0dWktc3RhY2stdmVydGljYWwodmFyKC0tZ2FwLTIpKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gICYtLWZ1bGxXaWR0aCA+ICZfX2FjdGlvbiB7XHJcbiAgICBtYXgtd2lkdGg6IG5vbmU7XHJcbiAgfVxyXG59XHJcblxyXG4udHVpLWZvcm0tLXZlcnRpY2FsLFxyXG4udHVpLWZvcm1Sb3ctLXZlcnRpY2FsLFxyXG4udHVpLWZvcm1Sb3ctLWVtcHR5RGVzYyB7XHJcbiAgJiA+IC50dWktZm9ybVJvd19fZGVzYyB7XHJcbiAgICBwYWRkaW5nOiAwO1xyXG4gIH1cclxufVxyXG5cclxuLnR1aS1mb3JtLS12ZXJ0aWNhbCxcclxuLnR1aS1mb3JtUm93LS12ZXJ0aWNhbCB7XHJcbiAgLnR1aS1mb3JtUm93X19hY3Rpb24ge1xyXG4gICAgbWFyZ2luLXRvcDogdmFyKC0tZ2FwLTEpO1xyXG4gIH1cclxufVxyXG5cclxuLnR1aS1mb3JtUm93LS1lbXB0eURlc2Mge1xyXG4gIC50dWktZm9ybVJvd19fYWN0aW9uIHtcclxuICAgIG1hcmdpbi10b3A6IDA7XHJcbiAgfVxyXG59XHJcblxyXG4udHVpLWZvcm0tLWhvcml6b250YWwgLnR1aS1mb3JtUm93Om5vdCgudHVpLWZvcm1Sb3ctLXZlcnRpY2FsKSB7XHJcbiAgQGluY2x1ZGUgdHVpLWxheW91dC1zaWRlYmFyKFxyXG4gICAgJHNpZGUtd2lkdGg6IHJlbS1weCgyMjApLFxyXG4gICAgJGNvbnRlbnQtbWluLXdpZHRoOiA2MCUsXHJcbiAgICAkZ3V0dGVyOiB2YXIoLS1nYXAtMSksXHJcbiAgICAkc2lkZWJhci1zZWxlY3RvcjogJy50dWktZm9ybVJvd19fZGVzYycsXHJcbiAgICAkY29udGVudC1zZWxlY3RvcjogJy50dWktZm9ybVJvd19fYWN0aW9uJ1xyXG4gICk7XHJcblxyXG4gICYgPiAudHVpLWZvcm1Sb3dfX2Rlc2Mge1xyXG4gICAgcGFkZGluZy10b3A6IHR1aS1pbnB1dC12LXBhZGRpbmctYm9yZGVybGVzcygpO1xyXG4gIH1cclxuXHJcbiAgJi50dWktZm9ybVJvdy0tY29udGVudFR5cGUtb3RoZXIgPiAudHVpLWZvcm1Sb3dfX2FjdGlvbiB7XHJcbiAgICBwYWRkaW5nLXRvcDogdHVpLWlucHV0LXYtcGFkZGluZy1ib3JkZXJsZXNzKCk7XHJcbiAgfVxyXG59XHJcblxyXG4vKiEqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiEqXFxcclxuICAhKioqIGNzcyAuL2NsaWVudC90b29saW5nL3dlYnBhY2svY3NzX3Jhd19sb2FkZXIuanM/P2Nsb25lZFJ1bGVTZXQtMTU2MS51c2VbMV0hLi9ub2RlX21vZHVsZXMvcG9zdGNzcy1sb2FkZXIvZGlzdC9janMuanM/P2Nsb25lZFJ1bGVTZXQtMTU2MS51c2VbMl0hLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2luZGV4LmpzPz9ydWxlU2V0WzBdLnVzZVswXSEuL2NsaWVudC9jb21wb25lbnQvdHVpL3NyYy9jb21wb25lbnRzL2Zvcm0vRm9ybVJvd0RlZmF1bHRzLnZ1ZT92dWUmdHlwZT1zdHlsZSZpbmRleD0wJmlkPTU2Njk2MjVjJmxhbmc9c2NzcyAqKiohXHJcbiAgXFwqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cclxuLnR1aS1mb3JtUm93X19kZWZhdWx0cyB7XHJcbiAgY29sb3I6IHZhcigtLWZvcm0tZGVmYXVsdHMtdGV4dC1jb2xvcik7XHJcbiAgQGluY2x1ZGUgZm9udChib2R5LXNtKTtcclxufVxyXG5cclxuLyohKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiEqXFxcclxuICAhKioqIGNzcyAuL2NsaWVudC90b29saW5nL3dlYnBhY2svY3NzX3Jhd19sb2FkZXIuanM/P2Nsb25lZFJ1bGVTZXQtMTU2MS51c2VbMV0hLi9ub2RlX21vZHVsZXMvcG9zdGNzcy1sb2FkZXIvZGlzdC9janMuanM/P2Nsb25lZFJ1bGVTZXQtMTU2MS51c2VbMl0hLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2luZGV4LmpzPz9ydWxlU2V0WzBdLnVzZVswXSEuL2NsaWVudC9jb21wb25lbnQvdHVpL3NyYy9jb21wb25lbnRzL2Zvcm0vRm9ybVJvd0RldGFpbHMudnVlP3Z1ZSZ0eXBlPXN0eWxlJmluZGV4PTAmaWQ9NTkzZGU3MjgmbGFuZz1zY3NzICoqKiFcclxuICBcXCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXHJcbi50dWktZm9ybVJvd19fZGV0YWlscyB7XHJcbiAgY29sb3I6IHZhcigtLWZvcm0tZGV0YWlscy10ZXh0LWNvbG9yKTtcclxuICBAaW5jbHVkZSBmb250KGJvZHktc20pO1xyXG59XHJcblxyXG4vKiEqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiEqXFxcclxuICAhKioqIGNzcyAuL2NsaWVudC90b29saW5nL3dlYnBhY2svY3NzX3Jhd19sb2FkZXIuanM/P2Nsb25lZFJ1bGVTZXQtMTU2MS51c2VbMV0hLi9ub2RlX21vZHVsZXMvcG9zdGNzcy1sb2FkZXIvZGlzdC9janMuanM/P2Nsb25lZFJ1bGVTZXQtMTU2MS51c2VbMl0hLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2luZGV4LmpzPz9ydWxlU2V0WzBdLnVzZVswXSEuL2NsaWVudC9jb21wb25lbnQvdHVpL3NyYy9jb21wb25lbnRzL2Zvcm0vRm9ybVJvd1N0YWNrLnZ1ZT92dWUmdHlwZT1zdHlsZSZpbmRleD0wJmlkPTI3ZGFjMDI0Jmxhbmc9c2NzcyAqKiohXHJcbiAgXFwqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cclxuLnR1aS1mb3JtUm93U3RhY2sge1xyXG4gIEBpbmNsdWRlIHR1aS1zdGFjay12ZXJ0aWNhbCh2YXIoLS1nYXAtOCkpO1xyXG5cclxuICAmLS1zcGFjaW5nIHtcclxuICAgICYtbGFyZ2Uge1xyXG4gICAgICBAaW5jbHVkZSB0dWktc3RhY2stdmVydGljYWwodmFyKC0tZ2FwLTgpKTtcclxuICAgIH1cclxuICAgICYtbWVkaXVtIHtcclxuICAgICAgQGluY2x1ZGUgdHVpLXN0YWNrLXZlcnRpY2FsKHZhcigtLWdhcC02KSk7XHJcbiAgICB9XHJcbiAgICAmLXNtYWxsIHtcclxuICAgICAgQGluY2x1ZGUgdHVpLXN0YWNrLXZlcnRpY2FsKHZhcigtLWdhcC00KSk7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG4vKiEqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqISpcXFxyXG4gICEqKiogY3NzIC4vY2xpZW50L3Rvb2xpbmcvd2VicGFjay9jc3NfcmF3X2xvYWRlci5qcz8/Y2xvbmVkUnVsZVNldC0xNTYxLnVzZVsxXSEuL25vZGVfbW9kdWxlcy9wb3N0Y3NzLWxvYWRlci9kaXN0L2Nqcy5qcz8/Y2xvbmVkUnVsZVNldC0xNTYxLnVzZVsyXSEuL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvaW5kZXguanM/P3J1bGVTZXRbMF0udXNlWzBdIS4vY2xpZW50L2NvbXBvbmVudC90dWkvc3JjL2NvbXBvbmVudHMvZm9ybS9IZWxwSWNvbi52dWU/dnVlJnR5cGU9c3R5bGUmaW5kZXg9MCZpZD02YzBkZDc5NiZsYW5nPXNjc3MgKioqIVxyXG4gIFxcKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cclxuLnR1aS1mb3JtSGVscEljb24ge1xyXG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuXHJcbiAgJl9faWNvbiB7XHJcbiAgICBwYWRkaW5nOiAwO1xyXG4gICAgY29sb3I6IHZhcigtLWNvbG9yLXN0YXRlKTtcclxuICB9XHJcblxyXG4gICZfX2Rlc2Mge1xyXG4gICAgLyogYXJpYS1kZXNjcmliZWRieSBzdGlsbCB3b3JrcyBldmVuIGlmIHRoZSB0YXJnZXQgZWxlbWVudCBpcyBkaXNwbGF5OiBub25lKi9cclxuICAgIC8qIGh0dHBzOi8vZGV2ZWxvcGVyLnBhY2llbGxvZ3JvdXAuY29tL2Jsb2cvMjAxNS8wNS9zaG9ydC1ub3RlLW9uLWFyaWEtbGFiZWxsZWRieS1hbmQtYXJpYS1kZXNjcmliZWRieS8qL1xyXG4gICAgZGlzcGxheTogbm9uZTtcclxuICB9XHJcbn1cclxuXHJcbi8qISoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiohKlxcXHJcbiAgISoqKiBjc3MgLi9jbGllbnQvdG9vbGluZy93ZWJwYWNrL2Nzc19yYXdfbG9hZGVyLmpzPz9jbG9uZWRSdWxlU2V0LTE1NjEudXNlWzFdIS4vbm9kZV9tb2R1bGVzL3Bvc3Rjc3MtbG9hZGVyL2Rpc3QvY2pzLmpzPz9jbG9uZWRSdWxlU2V0LTE1NjEudXNlWzJdIS4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9pbmRleC5qcz8/cnVsZVNldFswXS51c2VbMF0hLi9jbGllbnQvY29tcG9uZW50L3R1aS9zcmMvY29tcG9uZW50cy9mb3JtL0ltYWdlVXBsb2FkLnZ1ZT92dWUmdHlwZT1zdHlsZSZpbmRleD0wJmlkPTNkZDY4YWIwJmxhbmc9c2NzcyAqKiohXHJcbiAgXFwqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xyXG4udHVpLWZvcm1JbWFnZVVwbG9hZCB7XHJcbiAgY29sb3I6IHZhcigtLWZvcm0taW5wdXQtdGV4dC1jb2xvcik7XHJcbiAgZm9udC1zaXplOiB2YXIoLS1mb3JtLWlucHV0LWZvbnQtc2l6ZSk7XHJcbiAgbGluZS1oZWlnaHQ6IDE7XHJcbiAgYmFja2dyb3VuZDogdmFyKC0tZm9ybS1pbnB1dC1iZy1jb2xvcik7XHJcblxyXG4gICZfX2FjdGlvbnMge1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIHBhZGRpbmc6IHZhcigtLWdhcC0yKTtcclxuICAgIGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLW5ldXRyYWwtMyk7XHJcbiAgICBib3JkZXItY29sb3I6IHZhcigtLWZvcm0taW5wdXQtYm9yZGVyLWNvbG9yKTtcclxuICAgIGJvcmRlci10b3A6IHZhcigtLWZvcm0taW5wdXQtYm9yZGVyLXNpemUpIHNvbGlkO1xyXG4gICAgYm9yZGVyLXJpZ2h0OiB2YXIoLS1mb3JtLWlucHV0LWJvcmRlci1zaXplKSBzb2xpZDtcclxuICAgIGJvcmRlci1sZWZ0OiB2YXIoLS1mb3JtLWlucHV0LWJvcmRlci1zaXplKSBzb2xpZDtcclxuICB9XHJcbiAgJl9fZGVsZXRlQnV0dG9uIHtcclxuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xyXG4gIH1cclxuICAmX19maWxlYXJlYSB7XHJcbiAgICBwYWRkaW5nOiB2YXIoLS1nYXAtMik7XHJcbiAgICBib3JkZXI6IHZhcigtLWZvcm0taW5wdXQtYm9yZGVyLXNpemUpIHNvbGlkO1xyXG4gICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1mb3JtLWlucHV0LWJvcmRlci1jb2xvcik7XHJcblxyXG4gICAgLnR1aS1mb3JtSW1hZ2VVcGxvYWQtLWhpZ2hsaWdodCAmIHtcclxuICAgICAgYmFja2dyb3VuZDogdmFyKC0tZm9ybS1pbnB1dC1iZy1jb2xvci1mb2N1cyk7XHJcbiAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tZm9ybS1pbnB1dC1ib3JkZXItY29sb3ItZm9jdXMpO1xyXG4gICAgICBvdXRsaW5lOiBub25lO1xyXG4gICAgICBib3gtc2hhZG93OiB2YXIoLS1mb3JtLWlucHV0LXNoYWRvdy1mb2N1cyk7XHJcbiAgICB9XHJcblxyXG4gICAgLnR1aS1mb3JtSW1hZ2VVcGxvYWQtLWlzRXJyb3IgJiB7XHJcbiAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tZm9ybS1pbnB1dC1ib3JkZXItY29sb3ItaW52YWxpZCk7XHJcbiAgICAgIGJveC1zaGFkb3c6IHZhcigtLWZvcm0taW5wdXQtc2hhZG93LWludmFsaWQpO1xyXG4gICAgfVxyXG4gIH1cclxuICAmX19kaXNwbGF5IHtcclxuICAgIC50dWktcmVzcG9uc2l2ZUltYWdlIHtcclxuICAgICAgbWF4LWhlaWdodDogcmVtLXB4KDI1MCk7XHJcbiAgICB9XHJcbiAgfVxyXG4gICZfX3Byb2dyZXNzIHtcclxuICAgIHBhZGRpbmc6IHZhcigtLWdhcC0yKTtcclxuICB9XHJcbn1cclxuXHJcbi8qISoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiohKlxcXHJcbiAgISoqKiBjc3MgLi9jbGllbnQvdG9vbGluZy93ZWJwYWNrL2Nzc19yYXdfbG9hZGVyLmpzPz9jbG9uZWRSdWxlU2V0LTE1NjEudXNlWzFdIS4vbm9kZV9tb2R1bGVzL3Bvc3Rjc3MtbG9hZGVyL2Rpc3QvY2pzLmpzPz9jbG9uZWRSdWxlU2V0LTE1NjEudXNlWzJdIS4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9pbmRleC5qcz8/cnVsZVNldFswXS51c2VbMF0hLi9jbGllbnQvY29tcG9uZW50L3R1aS9zcmMvY29tcG9uZW50cy9mb3JtL0lucHV0LnZ1ZT92dWUmdHlwZT1zdHlsZSZpbmRleD0wJmlkPTFiMzk2NTg0Jmxhbmc9c2NzcyAqKiohXHJcbiAgXFwqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xyXG4udHVpLWZvcm1JbnB1dCB7XHJcbiAgZGlzcGxheTogYmxvY2s7XHJcbiAgZmxleC1ncm93OiAxO1xyXG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XHJcbiAgd2lkdGg6IDEwMCU7XHJcbiAgbWluLXdpZHRoOiAwO1xyXG4gIGhlaWdodDogdmFyKC0tZm9ybS1pbnB1dC1oZWlnaHQpO1xyXG4gIHBhZGRpbmc6IHR1aS1pbnB1dC12LXBhZGRpbmcoKSB2YXIoLS1nYXAtMyk7XHJcbiAgY29sb3I6IHZhcigtLWZvcm0taW5wdXQtdGV4dC1jb2xvcik7XHJcbiAgZm9udC1zaXplOiB2YXIoLS1mb3JtLWlucHV0LWZvbnQtc2l6ZSk7XHJcbiAgbGluZS1oZWlnaHQ6IHZhcigtLWZvcm0taW5wdXQtbGluZS1oZWlnaHQpO1xyXG4gIGJhY2tncm91bmQ6IHZhcigtLWZvcm0taW5wdXQtYmctY29sb3IpO1xyXG4gIGJvcmRlcjogdmFyKC0tZm9ybS1pbnB1dC1ib3JkZXItc2l6ZSkgc29saWQgdmFyKC0tZm9ybS1pbnB1dC1ib3JkZXItY29sb3IpO1xyXG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLWZvcm0taW5wdXQtYm9yZGVyLXJhZGl1cyk7XHJcblxyXG4gICZbdHlwZT0nc2VhcmNoJ10ge1xyXG4gICAgYm9yZGVyLXJhZGl1czogdmFyKC0tZm9ybS1pbnB1dC1ib3JkZXItcmFkaXVzKTtcclxuICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcclxuICAgICAgICAgICAgYXBwZWFyYW5jZTogbm9uZTtcclxuICB9XHJcblxyXG4gIEBpbmNsdWRlIHR1aS1jaGFyLWxlbmd0aC1jbGFzc2VzKCk7XHJcblxyXG4gICY6OnBsYWNlaG9sZGVyIHtcclxuICAgIGNvbG9yOiB2YXIoLS1mb3JtLWlucHV0LXRleHQtcGxhY2Vob2xkZXItY29sb3IpO1xyXG4gIH1cclxuXHJcbiAgLnR1aS1jb250ZXh0SW52YWxpZCAmIHtcclxuICAgIGJvcmRlci1jb2xvcjogdmFyKC0tZm9ybS1pbnB1dC1ib3JkZXItY29sb3ItaW52YWxpZCk7XHJcbiAgICBib3gtc2hhZG93OiB2YXIoLS1mb3JtLWlucHV0LXNoYWRvdy1pbnZhbGlkKTtcclxuICB9XHJcblxyXG4gICYtLXNpemUtbGFyZ2Uge1xyXG4gICAgaGVpZ2h0OiB2YXIoLS1mb3JtLWlucHV0LWhlaWdodC1sYXJnZSk7XHJcbiAgICAvKiBwcmV0dGllci1pZ25vcmUgKi9cclxuICAgIHBhZGRpbmc6IGNhbGMoKHZhcigtLWZvcm0taW5wdXQtaGVpZ2h0LWxhcmdlKSAtIDFlbSAtICh2YXIoLS1mb3JtLWlucHV0LWJvcmRlci1zaXplKSAqIDIpKSAvIDIpO1xyXG4gICAgZm9udC1zaXplOiB2YXIoLS1mb3JtLWlucHV0LWZvbnQtc2l6ZS1sZyk7XHJcbiAgfVxyXG5cclxuICAmOmZvY3VzIHtcclxuICAgIGJhY2tncm91bmQ6IHZhcigtLWZvcm0taW5wdXQtYmctY29sb3ItZm9jdXMpO1xyXG4gICAgYm9yZGVyOiB2YXIoLS1mb3JtLWlucHV0LWJvcmRlci1zaXplKSBzb2xpZFxyXG4gICAgICB2YXIoLS1mb3JtLWlucHV0LWJvcmRlci1jb2xvci1mb2N1cyk7XHJcbiAgICBvdXRsaW5lOiBub25lO1xyXG4gICAgYm94LXNoYWRvdzogdmFyKC0tZm9ybS1pbnB1dC1zaGFkb3ctZm9jdXMpO1xyXG4gICAgQGluY2x1ZGUgdHVpLWZvY3VzKCk7XHJcblxyXG4gICAgLnR1aS1jb250ZXh0SW52YWxpZCAmIHtcclxuICAgICAgYmFja2dyb3VuZDogdmFyKC0tZm9ybS1pbnB1dC1iZy1jb2xvci1pbnZhbGlkLWZvY3VzKTtcclxuICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1mb3JtLWlucHV0LWJvcmRlci1jb2xvci1pbnZhbGlkKTtcclxuICAgICAgb3V0bGluZS1jb2xvcjogdmFyKC0tZm9ybS1pbnB1dC1ib3JkZXItY29sb3ItaW52YWxpZCk7XHJcbiAgICAgIGJveC1zaGFkb3c6IHZhcigtLWZvcm0taW5wdXQtc2hhZG93LWludmFsaWQtZm9jdXMpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgJi0tcHJlSWNvbiB7XHJcbiAgICBwYWRkaW5nLWxlZnQ6IHZhcigtLWdhcC04KTtcclxuICB9XHJcblxyXG4gICYtLXBvc3RJY29uIHtcclxuICAgIHBhZGRpbmctcmlnaHQ6IHZhcigtLWdhcC04KTtcclxuICB9XHJcblxyXG4gICZbcmVhZG9ubHldIHtcclxuICAgIGNvbG9yOiB2YXIoLS1mb3JtLWlucHV0LXRleHQtY29sb3IpO1xyXG4gICAgYmFja2dyb3VuZDogdmFyKC0tZm9ybS1pbnB1dC1iZy1jb2xvcik7XHJcbiAgICBib3JkZXItY29sb3I6IHZhcigtLWZvcm0taW5wdXQtYm9yZGVyLWNvbG9yKTtcclxuXHJcbiAgICAmOjpwbGFjZWhvbGRlciB7XHJcbiAgICAgIGNvbG9yOiB2YXIoLS1mb3JtLWlucHV0LXRleHQtcGxhY2Vob2xkZXItY29sb3IpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgJltkaXNhYmxlZF0ge1xyXG4gICAgY29sb3I6IHZhcigtLWZvcm0taW5wdXQtdGV4dC1jb2xvci1kaXNhYmxlZCk7XHJcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1mb3JtLWlucHV0LWJnLWNvbG9yLWRpc2FibGVkKTtcclxuICAgIGJvcmRlci1jb2xvcjogdmFyKC0tZm9ybS1pbnB1dC1ib3JkZXItY29sb3ItZGlzYWJsZWQpO1xyXG5cclxuICAgICY6OnBsYWNlaG9sZGVyIHtcclxuICAgICAgY29sb3I6IHZhcigtLWZvcm0taW5wdXQtdGV4dC1jb2xvci1kaXNhYmxlZCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAmLS10cmFuc3BhcmVudCxcclxuICAmLS10cmFuc3BhcmVudDpmb2N1cyxcclxuICAmLS10cmFuc3BhcmVudDpmb2N1cy12aXNpYmxlLFxyXG4gICYtLXRyYW5zcGFyZW50W3JlYWRvbmx5XSxcclxuICAmLS10cmFuc3BhcmVudFtkaXNhYmxlZF0sXHJcbiAgLnR1aS1jb250ZXh0SW52YWxpZCAmLS10cmFuc3BhcmVudCxcclxuICAudHVpLWNvbnRleHRJbnZhbGlkICYtLXRyYW5zcGFyZW50OmZvY3VzIHtcclxuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xyXG4gICAgYm9yZGVyOiBub25lO1xyXG4gICAgYm9yZGVyLXJhZGl1czogMDtcclxuICAgIG91dGxpbmU6IG5vbmU7XHJcbiAgICBib3gtc2hhZG93OiBub25lO1xyXG4gIH1cclxufVxyXG5cclxuLyohKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqISpcXFxyXG4gICEqKiogY3NzIC4vY2xpZW50L3Rvb2xpbmcvd2VicGFjay9jc3NfcmF3X2xvYWRlci5qcz8/Y2xvbmVkUnVsZVNldC0xNTYxLnVzZVsxXSEuL25vZGVfbW9kdWxlcy9wb3N0Y3NzLWxvYWRlci9kaXN0L2Nqcy5qcz8/Y2xvbmVkUnVsZVNldC0xNTYxLnVzZVsyXSEuL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvaW5kZXguanM/P3J1bGVTZXRbMF0udXNlWzBdIS4vY2xpZW50L2NvbXBvbmVudC90dWkvc3JjL2NvbXBvbmVudHMvZm9ybS9JbnB1dENvbG9yLnZ1ZT92dWUmdHlwZT1zdHlsZSZpbmRleD0wJmlkPTcwM2JiNTc1Jmxhbmc9c2NzcyAqKiohXHJcbiAgXFwqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXHJcbi50dWktaW5wdXRDb2xvciB7XHJcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICRjb2xvci1ibG9jay1wYWRkaW5nOiByZW0tcHgoNCk7XHJcblxyXG4gIEBpbmNsdWRlIHR1aS1jaGFyLWxlbmd0aC1jbGFzc2VzKCk7XHJcblxyXG4gIC8qIHZpc3VhbGx5IGhpZGUgdGhlIGNvbG91ciBJbnB1dCBjb250cm9sKi9cclxuICAmICZfX3BpY2tlclt0eXBlPSdjb2xvciddIHtcclxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgIHdpZHRoOiBjYWxjKHZhcigtLWdhcC04KSArIHZhcigtLWdhcC0yKSk7XHJcbiAgICBvcGFjaXR5OiAwO1xyXG5cclxuICAgICZbZGlzYWJsZWRdIHtcclxuICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qIHF1aXRlIGFjdXRlIGJveCBtb2RlbCBhbmQgcG9zaXRpb25pbmcgdmFsdWVzIHRvIG1ha2Ugc3VyZSB0aGV5IHNjYWxlIHdpdGgqL1xyXG4gIC8qIGFzc29jaWF0ZWQgdGV4dCBJbnB1dCB2YWx1ZXMqL1xyXG4gICZfX2NvbG9yQmxvY2sge1xyXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgLyogcHJldHRpZXItaWdub3JlKi9cclxuICAgIHRvcDogY2FsYygjeyRjb2xvci1ibG9jay1wYWRkaW5nfSArIHZhcigtLWZvcm0taW5wdXQtYm9yZGVyLXNpemUpKTtcclxuICAgIGxlZnQ6IGNhbGMoI3skY29sb3ItYmxvY2stcGFkZGluZ30gKyB2YXIoLS1mb3JtLWlucHV0LWJvcmRlci1zaXplKSk7XHJcbiAgICB3aWR0aDogdmFyKC0tZ2FwLTgpO1xyXG4gICAgLyogcHJldHRpZXItaWdub3JlKi9cclxuICAgIGhlaWdodDogY2FsYygxMDAlIC0gI3skY29sb3ItYmxvY2stcGFkZGluZyAqIDJ9IC0gdmFyKC0tZm9ybS1pbnB1dC1ib3JkZXItc2l6ZSkgKiAyKTtcclxuICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLWJvcmRlci1yYWRpdXMtc21hbGwpO1xyXG5cclxuICAgICYtLWRpc2FibGVkIHtcclxuICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gICYgJl9faW5wdXRbdHlwZT0ndGV4dCddIHtcclxuICAgIHBhZGRpbmctbGVmdDogY2FsYyhcclxuICAgICAgdmFyKC0tZ2FwLTgpICsgI3skY29sb3ItYmxvY2stcGFkZGluZyAqIDJ9ICsgdmFyKFxyXG4gICAgICAgICAgLS1mb3JtLWlucHV0LWJvcmRlci1zaXplXHJcbiAgICAgICAgKSArIHZhcigtLWdhcC0xKVxyXG4gICAgKTtcclxuICB9XHJcbn1cclxuXHJcbi8qISoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiEqXFxcclxuICAhKioqIGNzcyAuL2NsaWVudC90b29saW5nL3dlYnBhY2svY3NzX3Jhd19sb2FkZXIuanM/P2Nsb25lZFJ1bGVTZXQtMTU2MS51c2VbMV0hLi9ub2RlX21vZHVsZXMvcG9zdGNzcy1sb2FkZXIvZGlzdC9janMuanM/P2Nsb25lZFJ1bGVTZXQtMTU2MS51c2VbMl0hLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2luZGV4LmpzPz9ydWxlU2V0WzBdLnVzZVswXSEuL2NsaWVudC9jb21wb25lbnQvdHVpL3NyYy9jb21wb25lbnRzL2Zvcm0vSW5wdXRDdXJyZW5jeS52dWU/dnVlJnR5cGU9c3R5bGUmaW5kZXg9MCZpZD03YjE4MWFlZiZsYW5nPXNjc3MgKioqIVxyXG4gIFxcKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xyXG4udHVpLWZvcm1JbnB1dEN1cnJlbmN5IHtcclxuICBkaXNwbGF5OiBmbGV4O1xyXG4gIGZsZXgtZ3JvdzogMTtcclxuICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gIHdpZHRoOiAxMDAlO1xyXG4gIG1pbi13aWR0aDogMDtcclxuXHJcbiAgQGluY2x1ZGUgdHVpLWNoYXItbGVuZ3RoLWNsYXNzZXMoKTtcclxuXHJcbiAgJl9fc3ltYm9sIHtcclxuICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1sYWJlbC13ZWlnaHQpO1xyXG4gICAgZm9udC1zaXplOiB2YXIoLS1mb3JtLWlucHV0LWZvbnQtc2l6ZSk7XHJcblxyXG4gICAgJjpmaXJzdC1jaGlsZCB7XHJcbiAgICAgIG1hcmdpbi1yaWdodDogdmFyKC0tZ2FwLTEpO1xyXG4gICAgfVxyXG5cclxuICAgICY6bGFzdC1jaGlsZCB7XHJcbiAgICAgIG1hcmdpbi1sZWZ0OiB2YXIoLS1nYXAtMSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAmLS1zaXplLWxhcmdlICZfX3N5bWJvbCB7XHJcbiAgICBmb250LXNpemU6IHZhcigtLWZvcm0taW5wdXQtZm9udC1zaXplLWxnKTtcclxuICB9XHJcbn1cclxuXHJcbi8qISoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiEqXFxcclxuICAhKioqIGNzcyAuL2NsaWVudC90b29saW5nL3dlYnBhY2svY3NzX3Jhd19sb2FkZXIuanM/P2Nsb25lZFJ1bGVTZXQtMTU2MS51c2VbMV0hLi9ub2RlX21vZHVsZXMvcG9zdGNzcy1sb2FkZXIvZGlzdC9janMuanM/P2Nsb25lZFJ1bGVTZXQtMTU2MS51c2VbMl0hLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2luZGV4LmpzPz9ydWxlU2V0WzBdLnVzZVswXSEuL2NsaWVudC9jb21wb25lbnQvdHVpL3NyYy9jb21wb25lbnRzL2Zvcm0vSW5wdXRHcm91cC52dWU/dnVlJnR5cGU9c3R5bGUmaW5kZXg9MCZpZD1iYzc2ZTJkZSZsYW5nPXNjc3MgKioqIVxyXG4gIFxcKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xyXG4udHVpLWlucHV0R3JvdXAge1xyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbiAgZmxleC1kaXJlY3Rpb246IHJvdztcclxuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xyXG4gIHdpZHRoOiAxMDAlO1xyXG4gIG1pbi13aWR0aDogMDtcclxuICBoZWlnaHQ6IHZhcigtLWZvcm0taW5wdXQtaGVpZ2h0KTtcclxuICBjb2xvcjogdmFyKC0tZm9ybS1pbnB1dC10ZXh0LWNvbG9yKTtcclxuICBmb250LXNpemU6IHZhcigtLWZvcm0taW5wdXQtZm9udC1zaXplKTtcclxuICBsaW5lLWhlaWdodDogMTtcclxuICBiYWNrZ3JvdW5kOiB2YXIoLS1mb3JtLWlucHV0LWJnLWNvbG9yKTtcclxuICBib3JkZXI6IHZhcigtLWZvcm0taW5wdXQtYm9yZGVyLXNpemUpIHNvbGlkIHZhcigtLWZvcm0taW5wdXQtYm9yZGVyLWNvbG9yKTtcclxuICBib3JkZXItcmFkaXVzOiB2YXIoLS1mb3JtLWlucHV0LWJvcmRlci1yYWRpdXMpO1xyXG5cclxuICBAaW5jbHVkZSB0dWktY2hhci1sZW5ndGgtY2xhc3NlcygpO1xyXG5cclxuICAudHVpLWNvbnRleHRJbnZhbGlkICYge1xyXG4gICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1mb3JtLWlucHV0LWJvcmRlci1jb2xvci1pbnZhbGlkKTtcclxuICAgIGJveC1zaGFkb3c6IHZhcigtLWZvcm0taW5wdXQtc2hhZG93LWludmFsaWQpO1xyXG4gIH1cclxuXHJcbiAgJi0taGFzRm9jdXMge1xyXG4gICAgYmFja2dyb3VuZDogdmFyKC0tZm9ybS1pbnB1dC1iZy1jb2xvci1mb2N1cyk7XHJcbiAgICBib3JkZXI6IHZhcigtLWZvcm0taW5wdXQtYm9yZGVyLXNpemUpIHNvbGlkO1xyXG4gICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1mb3JtLWlucHV0LWJvcmRlci1jb2xvci1mb2N1cyk7XHJcbiAgICBib3gtc2hhZG93OiB2YXIoLS1mb3JtLWlucHV0LXNoYWRvdy1mb2N1cyk7XHJcbiAgICBAaW5jbHVkZSB0dWktZm9jdXMoKTtcclxuXHJcbiAgICAudHVpLWNvbnRleHRJbnZhbGlkICYge1xyXG4gICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1mb3JtLWlucHV0LWJnLWNvbG9yLWludmFsaWQtZm9jdXMpO1xyXG4gICAgICBib3JkZXItY29sb3I6IHZhcigtLWZvcm0taW5wdXQtYm9yZGVyLWNvbG9yLWludmFsaWQpO1xyXG4gICAgICBvdXRsaW5lLWNvbG9yOiB2YXIoLS1mb3JtLWlucHV0LWJvcmRlci1jb2xvci1pbnZhbGlkKTtcclxuICAgICAgYm94LXNoYWRvdzogdmFyKC0tZm9ybS1pbnB1dC1zaGFkb3ctaW52YWxpZC1mb2N1cyk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAmLS1kaXNhYmxlZCB7XHJcbiAgICBjb2xvcjogdmFyKC0tZm9ybS1pbnB1dC10ZXh0LWNvbG9yLWRpc2FibGVkKTtcclxuICAgIGJhY2tncm91bmQ6IHZhcigtLWZvcm0taW5wdXQtYmctY29sb3ItZGlzYWJsZWQpO1xyXG4gICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1mb3JtLWlucHV0LWJvcmRlci1jb2xvci1kaXNhYmxlZCk7XHJcblxyXG4gICAgJjo6cGxhY2Vob2xkZXIge1xyXG4gICAgICBjb2xvcjogdmFyKC0tZm9ybS1pbnB1dC10ZXh0LWNvbG9yLWRpc2FibGVkKTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbi8qISoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiEqXFxcclxuICAhKioqIGNzcyAuL2NsaWVudC90b29saW5nL3dlYnBhY2svY3NzX3Jhd19sb2FkZXIuanM/P2Nsb25lZFJ1bGVTZXQtMTU2MS51c2VbMV0hLi9ub2RlX21vZHVsZXMvcG9zdGNzcy1sb2FkZXIvZGlzdC9janMuanM/P2Nsb25lZFJ1bGVTZXQtMTU2MS51c2VbMl0hLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2luZGV4LmpzPz9ydWxlU2V0WzBdLnVzZVswXSEuL2NsaWVudC9jb21wb25lbnQvdHVpL3NyYy9jb21wb25lbnRzL2Zvcm0vSW5wdXRHcm91cEJ1dHRvbi52dWU/dnVlJnR5cGU9c3R5bGUmaW5kZXg9MCZpZD0zZWE1ZWJiYSZsYW5nPXNjc3MgKioqIVxyXG4gIFxcKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xyXG4udHVpLWlucHV0R3JvdXBCdXR0b24ge1xyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbiAgZmxleC1zaHJpbms6IDA7XHJcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuICBwYWRkaW5nOiAwIHZhcigtLWdhcC0yKTtcclxuICBjb2xvcjogdmFyKC0tY29sb3Itc3RhdGUpO1xyXG4gIGZvbnQtc2l6ZTogdmFyKC0tZm9ybS1pbnB1dC1mb250LXNpemUpO1xyXG4gIGN1cnNvcjogcG9pbnRlcjtcclxuICAtd2Via2l0LXVzZXItc2VsZWN0OiBub25lO1xyXG4gICAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XHJcblxyXG4gICY6Zm9jdXMtdmlzaWJsZSB7XHJcbiAgICBjb2xvcjogdmFyKC0tY29sb3Itc3RhdGUtZm9jdXMpO1xyXG4gICAgQGluY2x1ZGUgdHVpLWZvY3VzKCk7XHJcbiAgICBvdXRsaW5lLW9mZnNldDogY2FsYyhcclxuICAgICAgdmFyKC0tZm9ybS1pbnB1dC1ib3JkZXItc2l6ZSkgKyB2YXIoLS1mb2N1cy1vdXRsaW5lLW9mZnNldClcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICAmOmhvdmVyIHtcclxuICAgIGNvbG9yOiB2YXIoLS1jb2xvci1zdGF0ZS1ob3Zlcik7XHJcbiAgfVxyXG5cclxuICAmOmFjdGl2ZSB7XHJcbiAgICBjb2xvcjogdmFyKC0tY29sb3Itc3RhdGUtYWN0aXZlKTtcclxuICB9XHJcblxyXG4gICZbZGlzYWJsZWRdIHtcclxuICAgIGNvbG9yOiB2YXIoLS1jb2xvci1zdGF0ZS1kaXNhYmxlZCk7XHJcbiAgICBjdXJzb3I6IGRlZmF1bHQ7XHJcbiAgfVxyXG59XHJcblxyXG4vKiEqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiEqXFxcclxuICAhKioqIGNzcyAuL2NsaWVudC90b29saW5nL3dlYnBhY2svY3NzX3Jhd19sb2FkZXIuanM/P2Nsb25lZFJ1bGVTZXQtMTU2MS51c2VbMV0hLi9ub2RlX21vZHVsZXMvcG9zdGNzcy1sb2FkZXIvZGlzdC9janMuanM/P2Nsb25lZFJ1bGVTZXQtMTU2MS51c2VbMl0hLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2luZGV4LmpzPz9ydWxlU2V0WzBdLnVzZVswXSEuL2NsaWVudC9jb21wb25lbnQvdHVpL3NyYy9jb21wb25lbnRzL2Zvcm0vSW5wdXRHcm91cElucHV0LnZ1ZT92dWUmdHlwZT1zdHlsZSZpbmRleD0wJmlkPWM0NmUyNjJlJmxhbmc9c2NzcyAqKiohXHJcbiAgXFwqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cclxuLyogUmVzZXQqL1xyXG4udHVpLWlucHV0R3JvdXBJbnB1dCxcclxuaW5wdXRbdHlwZV0udHVpLWlucHV0R3JvdXBJbnB1dCB7XHJcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gIHdpZHRoOiBhdXRvO1xyXG4gIG1heC13aWR0aDogbm9uZTtcclxuICBoZWlnaHQ6IGF1dG87XHJcbiAgbWF4LWhlaWdodDogbm9uZTtcclxuICBtYXJnaW46IDA7XHJcbiAgcGFkZGluZzogMXB4O1xyXG4gIGNvbG9yOiByZ2IoMCwgMCwgMCk7XHJcbiAgZm9udC1zaXplOiBpbmhlcml0O1xyXG4gIGxpbmUtaGVpZ2h0OiBpbmhlcml0O1xyXG4gIGxldHRlci1zcGFjaW5nOiBub3JtYWw7XHJcbiAgdGV4dC1hbGlnbjogc3RhcnQ7XHJcbiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XHJcbiAgdGV4dC1pbmRlbnQ6IDA7XHJcbiAgdGV4dC1zaGFkb3c6IG5vbmU7XHJcbiAgd29yZC1zcGFjaW5nOiBub3JtYWw7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDI1NSwgMjU1LCAyNTUpO1xyXG4gIGJvcmRlci1jb2xvcjogcmdiKDIxOCwgMjE4LCAyMTgpO1xyXG4gIGJvcmRlci1zdHlsZTogaW5zZXQ7XHJcbiAgYm9yZGVyLXdpZHRoOiAycHg7XHJcbiAgYm9yZGVyLXJhZGl1czogMDtcclxuICBib3JkZXItaW1hZ2Utc291cmNlOiBub25lO1xyXG4gIGJvcmRlci1pbWFnZS1zbGljZTogMTAwJTtcclxuICBib3JkZXItaW1hZ2Utd2lkdGg6IDE7XHJcbiAgYm9yZGVyLWltYWdlLW91dHNldDogMDtcclxuICBib3JkZXItaW1hZ2UtcmVwZWF0OiBzdHJldGNoO1xyXG4gIGJvcmRlci1zcGFjaW5nOiAwO1xyXG4gIGJveC1zaGFkb3c6IG5vbmU7XHJcbiAgY3Vyc29yOiB0ZXh0O1xyXG4gIHRyYW5zaXRpb24tZGVsYXk6IDBzO1xyXG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlO1xyXG4gIHRyYW5zaXRpb24tZHVyYXRpb246IDBzO1xyXG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IGFsbDtcclxuICB0ZXh0LXJlbmRlcmluZzogYXV0bztcclxuXHJcbiAgJltkaXNhYmxlZF0ge1xyXG4gICAgY29sb3I6IHJnYig2MSwgNjgsIDc1KTtcclxuICAgIGJhY2tncm91bmQ6IHJnYigyMTgsIDIxOCwgMjE4KTtcclxuICAgIGN1cnNvcjogZGVmYXVsdDtcclxuICB9XHJcblxyXG4gICY6Zm9jdXMge1xyXG4gICAgYm9yZGVyLWNvbG9yOiByZ2IoMjE4LCAyMTgsIDIxOCk7XHJcbiAgICBvdXRsaW5lLXdpZHRoOiAzcHg7XHJcbiAgICBvdXRsaW5lLXN0eWxlOiBhdXRvO1xyXG4gICAgb3V0bGluZS1jb2xvcjogSGlnaGxpZ2h0O1xyXG4gICAgb3V0bGluZS1jb2xvcjogLXdlYmtpdC1mb2N1cy1yaW5nLWNvbG9yO1xyXG4gICAgb3V0bGluZS1vZmZzZXQ6IC0ycHg7XHJcbiAgICBib3gtc2hhZG93OiBub25lO1xyXG4gICAgLW1vei11c2VyLWZvY3VzOiBub3JtYWw7XHJcbiAgfVxyXG5cclxuICAmOjpwbGFjZWhvbGRlciB7XHJcbiAgICBjb2xvcjogI2E5YTlhOTtcclxuICAgIG9wYWNpdHk6IDE7XHJcbiAgfVxyXG59XHJcblxyXG4udHVpLWlucHV0R3JvdXBJbnB1dCxcclxuaW5wdXRbdHlwZV0udHVpLWlucHV0R3JvdXBJbnB1dCB7XHJcbiAgZGlzcGxheTogYmxvY2s7XHJcbiAgZmxleC1ncm93OiAxO1xyXG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XHJcbiAgbWluLXdpZHRoOiAwO1xyXG4gIHBhZGRpbmc6IDAgdmFyKC0tZ2FwLTIpO1xyXG4gIGNvbG9yOiB2YXIoLS1mb3JtLWlucHV0LXRleHQtY29sb3IpO1xyXG4gIGZvbnQtc2l6ZTogdmFyKC0tZm9ybS1pbnB1dC1mb250LXNpemUpO1xyXG4gIGxpbmUtaGVpZ2h0OiAxO1xyXG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xyXG4gIGJvcmRlcjogbm9uZTtcclxuXHJcbiAgJjo6cGxhY2Vob2xkZXIge1xyXG4gICAgY29sb3I6IHZhcigtLWZvcm0taW5wdXQtdGV4dC1wbGFjZWhvbGRlci1jb2xvcik7XHJcbiAgfVxyXG5cclxuICAmOmZvY3VzIHtcclxuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xyXG4gICAgYm9yZGVyOiBub25lO1xyXG4gICAgb3V0bGluZTogbm9uZTtcclxuICAgIGJveC1zaGFkb3c6IG5vbmU7XHJcbiAgfVxyXG5cclxuICAmW2Rpc2FibGVkXSB7XHJcbiAgICBjb2xvcjogdmFyKC0tZm9ybS1pbnB1dC10ZXh0LWNvbG9yLWRpc2FibGVkKTtcclxuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xyXG4gICAgJjo6cGxhY2Vob2xkZXIge1xyXG4gICAgICBjb2xvcjogdmFyKC0tZm9ybS1pbnB1dC10ZXh0LWNvbG9yLWRpc2FibGVkKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gICZbcmVhZG9ubHldIHtcclxuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xyXG4gIH1cclxuXHJcbiAgJi0tbW9ub3NwYWNlRm9udCB7XHJcbiAgICBmb250LWZhbWlseTogdmFyKC0tZm9udC1mYW1pbHktbW9ub3NwYWNlKTtcclxuICB9XHJcbn1cclxuXHJcbi8qISoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiohKlxcXHJcbiAgISoqKiBjc3MgLi9jbGllbnQvdG9vbGluZy93ZWJwYWNrL2Nzc19yYXdfbG9hZGVyLmpzPz9jbG9uZWRSdWxlU2V0LTE1NjEudXNlWzFdIS4vbm9kZV9tb2R1bGVzL3Bvc3Rjc3MtbG9hZGVyL2Rpc3QvY2pzLmpzPz9jbG9uZWRSdWxlU2V0LTE1NjEudXNlWzJdIS4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9pbmRleC5qcz8/cnVsZVNldFswXS51c2VbMF0hLi9jbGllbnQvY29tcG9uZW50L3R1aS9zcmMvY29tcG9uZW50cy9mb3JtL0lucHV0U2V0LnZ1ZT92dWUmdHlwZT1zdHlsZSZpbmRleD0wJmlkPTc5ZjhhMTc0Jmxhbmc9c2NzcyAqKiohXHJcbiAgXFwqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xyXG5AbWl4aW4gdHVpLWlucHV0LXNldC1zdGFjay1iZWxvdygkbmFtZSwgJHNpemUpIHtcclxuICAmLS1zdGFja0JlbG93LSN7JG5hbWV9ID4gKixcclxuICAvKiBuZWVkIHRvIHNwZWNpZnkgLnR1aS1mb3JtSW5wdXQgaGVyZSB0b28gZm9yIHNwZWNpZmljaXR5IHJlYXNvbnMqL1xyXG4gICYtLXN0YWNrQmVsb3ctI3skbmFtZX0gPiAudHVpLWZvcm1JbnB1dCB7XHJcbiAgICAvKiBUaGlzIHRyaWdnZXJzIHRoZSBjaGlsZHJlbiB0byBzd2l0Y2ggdG8gYmVpbmcgdmVydGljYWxseSBzdGFja2VkIGJlbG93IGEqL1xyXG4gICAgLyogY2VydGFpbiB3aWR0aC4qL1xyXG4gICAgLyogSXQgd29ya3MgbGlrZSB0aGlzOiovXHJcbiAgICAvKiBBYm92ZSB0aGUgc3BlY2lmaWVkIHdpZHRoLCAod2lkdGggLSAxMDAlKSBldmFsdWF0ZXMgdG8gYSBsYXJnZSovXHJcbiAgICAvKiBuZWdhdGl2ZSBmbGV4IGJhc2lzLCBhbmQgaXMgdGhlcmVmb3JlIGlnbm9yZWQuKi9cclxuICAgIC8qIEJlbG93IHRoZSBzcGVjaWZpZWQgd2lkdGgsICh3aWR0aCAtIDEwMCUpIGV2YWx1YXRlcyB0byBhIGxhcmdlKi9cclxuICAgIC8qIHBvc2l0dmUgZmxleCBiYXNpcywgYW5kIGZvcmNlcyBlYWNoIGl0ZW0gdG8gdGFrZSB1cCBpdHMgb3duIGxpbmUuKi9cclxuICAgIC8qIE1hZ2ljISovXHJcbiAgICAvKiBwcmV0dGllci1pZ25vcmUqL1xyXG4gICAgZmxleC1iYXNpczogY2FsYygoI3t0dWktY2hhci1sZW5ndGgoJHNpemUpfSAtIDEwMCUpICogOTk5KTtcclxuICB9XHJcbn1cclxuLnR1aS1pbnB1dFNldCB7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBmbGV4OiAxO1xyXG4gIGdhcDogdmFyKC0taW5wdXQtc2V0LXNwYWNpbmcpO1xyXG5cclxuICBAaW5jbHVkZSB0dWktY2hhci1sZW5ndGgtY2xhc3NlcygpO1xyXG5cclxuICAmLS12IHtcclxuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XHJcbiAgfVxyXG5cclxuICAmLS1oIHtcclxuICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XHJcbiAgICBmbGV4LXdyYXA6IHdyYXA7XHJcbiAgfVxyXG5cclxuICAmID4gLnR1aS1mb3JtTGFiZWwge1xyXG4gICAgcGFkZGluZzogMDtcclxuICB9XHJcblxyXG4gICYgPiB7XHJcbiAgICAvKiByZXBsYWNlZCBpbnB1dCBlbGVtZW50cyBoYXZlIHRoZWlyIHdpZHRoIHNldCB0byAxMDAlIG5vcm1hbGx5IGFzKi9cclxuICAgIC8qIGB3aWR0aDogYXV0b2AgZG9lc24ndCBmaWxsIHRoZSBjb250YWluZXIgbGlrZSBpdCBkb2VzIG9uIGRpdnMqL1xyXG4gICAgI3skdHVpLWlucHV0LXJlcGxhY2VkLXNlbGVjdG9yc30ge1xyXG4gICAgICB3aWR0aDogYXV0bztcclxuICAgIH1cclxuICB9XHJcblxyXG4gICYtLXNwbGl0IHtcclxuICAgICYgPiAqIHtcclxuICAgICAgZmxleC1iYXNpczogMDtcclxuICAgICAgZmxleC1ncm93OiAxO1xyXG4gICAgICB3aWR0aDogYXV0bztcclxuICAgIH1cclxuICB9XHJcblxyXG4gIEBlYWNoICRzaXplIGluICR0dWktY2hhci1sZW5ndGgtc2NhbGUge1xyXG4gICAgQGluY2x1ZGUgdHVpLWlucHV0LXNldC1zdGFjay1iZWxvdygkc2l6ZSwgJHNpemUpO1xyXG4gIH1cclxufVxyXG5cclxuLyohKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiEqXFxcclxuICAhKioqIGNzcyAuL2NsaWVudC90b29saW5nL3dlYnBhY2svY3NzX3Jhd19sb2FkZXIuanM/P2Nsb25lZFJ1bGVTZXQtMTU2MS51c2VbMV0hLi9ub2RlX21vZHVsZXMvcG9zdGNzcy1sb2FkZXIvZGlzdC9janMuanM/P2Nsb25lZFJ1bGVTZXQtMTU2MS51c2VbMl0hLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2luZGV4LmpzPz9ydWxlU2V0WzBdLnVzZVswXSEuL2NsaWVudC9jb21wb25lbnQvdHVpL3NyYy9jb21wb25lbnRzL2Zvcm0vSW5wdXRTZXRDb2wudnVlP3Z1ZSZ0eXBlPXN0eWxlJmluZGV4PTAmaWQ9MzZjNzVmOWMmbGFuZz1zY3NzICoqKiFcclxuICBcXCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXHJcbi50dWktaW5wdXRTZXRDb2wge1xyXG4gIGZsZXgtYmFzaXM6IDA7XHJcbn1cclxuXHJcbi8qISoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiohKlxcXHJcbiAgISoqKiBjc3MgLi9jbGllbnQvdG9vbGluZy93ZWJwYWNrL2Nzc19yYXdfbG9hZGVyLmpzPz9jbG9uZWRSdWxlU2V0LTE1NjEudXNlWzFdIS4vbm9kZV9tb2R1bGVzL3Bvc3Rjc3MtbG9hZGVyL2Rpc3QvY2pzLmpzPz9jbG9uZWRSdWxlU2V0LTE1NjEudXNlWzJdIS4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9pbmRleC5qcz8/cnVsZVNldFswXS51c2VbMF0hLi9jbGllbnQvY29tcG9uZW50L3R1aS9zcmMvY29tcG9uZW50cy9mb3JtL0lucHV0U2l6ZWRUZXh0LnZ1ZT92dWUmdHlwZT1zdHlsZSZpbmRleD0wJmlkPTA0M2RjYTNjJmxhbmc9c2NzcyAqKiohXHJcbiAgXFwqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xyXG4udHVpLWZvcm1JbnB1dFNpemVkVGV4dCB7XHJcbiAgcGFkZGluZzogdHVpLWlucHV0LXYtcGFkZGluZy1ib3JkZXJsZXNzKCkgMDtcclxuICBsaW5lLWhlaWdodDogdmFyKC0tZm9ybS1pbnB1dC1saW5lLWhlaWdodCk7XHJcbn1cclxuXHJcbi8qISoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiohKlxcXHJcbiAgISoqKiBjc3MgLi9jbGllbnQvdG9vbGluZy93ZWJwYWNrL2Nzc19yYXdfbG9hZGVyLmpzPz9jbG9uZWRSdWxlU2V0LTE1NjEudXNlWzFdIS4vbm9kZV9tb2R1bGVzL3Bvc3Rjc3MtbG9hZGVyL2Rpc3QvY2pzLmpzPz9jbG9uZWRSdWxlU2V0LTE1NjEudXNlWzJdIS4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9pbmRleC5qcz8/cnVsZVNldFswXS51c2VbMF0hLi9jbGllbnQvY29tcG9uZW50L3R1aS9zcmMvY29tcG9uZW50cy9mb3JtL0xhYmVsLnZ1ZT92dWUmdHlwZT1zdHlsZSZpbmRleD0wJmlkPTY4NmJjZjY4Jmxhbmc9c2NzcyAqKiohXHJcbiAgXFwqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xyXG4udHVpLWZvcm1MYWJlbCB7XHJcbiAgQGluY2x1ZGUgZm9udChib2R5LCB2YXIoLS1sYWJlbC13ZWlnaHQpKTtcclxuICBtaW4td2lkdGg6IDA7XHJcbiAgbWFyZ2luOiAwO1xyXG4gIHBhZGRpbmc6IDAgdmFyKC0tZ2FwLTEpIDAgMDtcclxuXHJcbiAgbGVnZW5kJiB7XHJcbiAgICB3aWR0aDogYXV0bztcclxuICAgIG1hcmdpbjogMDtcclxuICAgIHBhZGRpbmc6IDAgdmFyKC0tZ2FwLTEpIDAgMDtcclxuICAgIGNvbG9yOiBpbmhlcml0O1xyXG4gICAgYm9yZGVyOiBub25lO1xyXG4gIH1cclxuXHJcbiAgJi0taW5saW5lIHtcclxuICAgIGRpc3BsYXk6IGlubGluZTtcclxuICB9XHJcblxyXG4gICYtLWhpZGRlbiB7XHJcbiAgICBAaW5jbHVkZSBzci1vbmx5KCk7XHJcbiAgfVxyXG5cclxuICAmLS1zdWJmaWVsZCB7XHJcbiAgICBAaW5jbHVkZSBmb250KGJvZHktc20pO1xyXG4gICAgY29sb3I6IHZhcigtLWNvbG9yLW5ldXRyYWwtNik7XHJcbiAgfVxyXG5cclxuICAmX19yZXF1aXJlZCB7XHJcbiAgICBjb2xvcjogdmFyKC0tY29sb3ItcHJvbXB0LWFsZXJ0KTtcclxuICB9XHJcbn1cclxuXHJcbi8qISoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqISpcXFxyXG4gICEqKiogY3NzIC4vY2xpZW50L3Rvb2xpbmcvd2VicGFjay9jc3NfcmF3X2xvYWRlci5qcz8/Y2xvbmVkUnVsZVNldC0xNTYxLnVzZVsxXSEuL25vZGVfbW9kdWxlcy9wb3N0Y3NzLWxvYWRlci9kaXN0L2Nqcy5qcz8/Y2xvbmVkUnVsZVNldC0xNTYxLnVzZVsyXSEuL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvaW5kZXguanM/P3J1bGVTZXRbMF0udXNlWzBdIS4vY2xpZW50L2NvbXBvbmVudC90dWkvc3JjL2NvbXBvbmVudHMvZm9ybS9Ob3RlcGFkTGluZXMudnVlP3Z1ZSZ0eXBlPXN0eWxlJmluZGV4PTAmaWQ9MTgyMDljNWEmbGFuZz1zY3NzICoqKiFcclxuICBcXCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xyXG4udHVpLW5vdGVwYWRMaW5lcyB7XHJcbiAgQGluY2x1ZGUgdHVpLWNoYXItbGVuZ3RoLWNsYXNzZXM7XHJcblxyXG4gICZfX2xpbmUge1xyXG4gICAgaGVpZ2h0OiB2YXIoLS1mb3JtLW5vdGVwYWQtbGluZS1oZWlnaHQpO1xyXG4gICAgYm9yZGVyLWJvdHRvbTogdmFyKC0tZm9ybS1ub3RlcGFkLWxpbmUtYm9yZGVyKTtcclxuICB9XHJcbn1cclxuXHJcbi8qISoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiohKlxcXHJcbiAgISoqKiBjc3MgLi9jbGllbnQvdG9vbGluZy93ZWJwYWNrL2Nzc19yYXdfbG9hZGVyLmpzPz9jbG9uZWRSdWxlU2V0LTE1NjEudXNlWzFdIS4vbm9kZV9tb2R1bGVzL3Bvc3Rjc3MtbG9hZGVyL2Rpc3QvY2pzLmpzPz9jbG9uZWRSdWxlU2V0LTE1NjEudXNlWzJdIS4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9pbmRleC5qcz8/cnVsZVNldFswXS51c2VbMF0hLi9jbGllbnQvY29tcG9uZW50L3R1aS9zcmMvY29tcG9uZW50cy9mb3JtL1JhZGlvLnZ1ZT92dWUmdHlwZT1zdHlsZSZpbmRleD0wJmlkPTUyZDA4OGVmJmxhbmc9c2NzcyAqKiohXHJcbiAgXFwqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xyXG46cm9vdCB7XHJcbiAgLyogU2l6ZSBvZiByYWRpbyBjaXJjbGUqL1xyXG4gIC0tZm9ybS1yYWRpby1zaXplOiAje2ZvbnQtc2l6ZS1weCgxNil9O1xyXG4gIC8qIFNpemUgb2YgcmFkaW8gaW5uZXIgZG90Ki9cclxuICAtLWZvcm0tcmFkaW8tZG90LXNpemU6IGNhbGModmFyKC0tZm9ybS1yYWRpby1zaXplKSAvIDIpO1xyXG4gIC8qIE9mZnNldCB0byBjZW50ZXIgZG90Ki9cclxuICAtLXJhZGlvLWRvdC1vZmZzZXQ6IGNhbGModmFyKC0tZm9ybS1yYWRpby1zaXplKSAvIDQpO1xyXG59XHJcblxyXG4udHVpLXJhZGlvIHtcclxuICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XHJcblxyXG4gICZfX2lucHV0IHtcclxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgIG9wYWNpdHk6IDA7XHJcbiAgfVxyXG5cclxuICAmX19sYWJlbCB7XHJcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICBtYXJnaW46IDA7XHJcbiAgICBwYWRkaW5nLWxlZnQ6IHZhcigtLXJhZGlvLWxhYmVsLW9mZnNldCk7XHJcbiAgICBmb250LXdlaWdodDogbm9ybWFsO1xyXG4gICAgZm9udC1zaXplOiB2YXIoLS1mb3JtLWlucHV0LWZvbnQtc2l6ZSk7XHJcbiAgICBsaW5lLWhlaWdodDogdmFyKC0tZm9ybS1pbnB1dC1saW5lLWhlaWdodCk7XHJcblxyXG4gICAgJjo6YmVmb3JlIHtcclxuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgICB0b3A6IGNhbGMoNTAlIC0gdmFyKC0tZm9ybS1yYWRpby1zaXplKSAvIDIpO1xyXG4gICAgICBsZWZ0OiAwO1xyXG4gICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgICAgd2lkdGg6IHZhcigtLWZvcm0tcmFkaW8tc2l6ZSk7XHJcbiAgICAgIGhlaWdodDogdmFyKC0tZm9ybS1yYWRpby1zaXplKTtcclxuICAgICAgYmFja2dyb3VuZDogdmFyKC0tZm9ybS1yYWRpby1iZy1jb2xvcik7XHJcbiAgICAgIGJvcmRlcjogdmFyKC0tZm9ybS1pbnB1dC1ib3JkZXItc2l6ZSkgc29saWQ7XHJcbiAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tZm9ybS1yYWRpby1ib3JkZXItY29sb3IpO1xyXG4gICAgICBib3JkZXItcmFkaXVzOiA1MCU7XHJcbiAgICAgIHRyYW5zaXRpb246IGJvcmRlciB2YXIoLS10cmFuc2l0aW9uLWZvcm0tZnVuY3Rpb24pXHJcbiAgICAgICAgICB2YXIoLS10cmFuc2l0aW9uLWZvcm0tZHVyYXRpb24pLFxyXG4gICAgICAgIGJveC1zaGFkb3cgdmFyKC0tdHJhbnNpdGlvbi1mb3JtLWZ1bmN0aW9uKVxyXG4gICAgICAgICAgdmFyKC0tdHJhbnNpdGlvbi1mb3JtLWR1cmF0aW9uKTtcclxuICAgICAgY29udGVudDogJyc7XHJcbiAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xyXG5cclxuICAgICAgLnR1aS1jb250ZXh0SW52YWxpZCAmIHtcclxuICAgICAgICBib3JkZXItY29sb3I6IHZhcigtLWZvcm0taW5wdXQtYm9yZGVyLWNvbG9yLWludmFsaWQpO1xyXG4gICAgICAgIGJveC1zaGFkb3c6IHZhcigtLXNoYWRvdy1ub25lKSwgdmFyKC0tZm9ybS1pbnB1dC1zaGFkb3ctaW52YWxpZCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gICZfX2lucHV0OmRpc2FibGVkIH4gJl9fbGFiZWwge1xyXG4gICAgY29sb3I6IHZhcigtLWZvcm0taW5wdXQtdGV4dC1jb2xvci1kaXNhYmxlZCk7XHJcbiAgfVxyXG5cclxuICAmX19pbnB1dDpob3ZlciB+ICZfX2xhYmVsOjpiZWZvcmUge1xyXG4gICAgYmFja2dyb3VuZDogdmFyKC0tZm9ybS1yYWRpby1iZy1jb2xvci1ob3Zlcik7XHJcbiAgfVxyXG5cclxuICAmX19pbnB1dDpmb2N1cy12aXNpYmxlIH4gJl9fbGFiZWw6OmJlZm9yZSB7XHJcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1mb3JtLXJhZGlvLWJnLWNvbG9yLWZvY3VzKTtcclxuICAgIEBpbmNsdWRlIHR1aS1mb2N1cygpO1xyXG5cclxuICAgIC50dWktY29udGV4dEludmFsaWQgJiB7XHJcbiAgICAgIG91dGxpbmUtY29sb3I6IHZhcigtLWZvcm0taW5wdXQtYm9yZGVyLWNvbG9yLWludmFsaWQpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgJl9faW5wdXQ6aG92ZXIgfiAmX19sYWJlbDo6YmVmb3JlLFxyXG4gICZfX2lucHV0OmZvY3VzLXZpc2libGUgfiAmX19sYWJlbDo6YmVmb3JlIHtcclxuICAgIGJvcmRlcjogdmFyKC0tZm9ybS1pbnB1dC1ib3JkZXItc2l6ZSkgc29saWQ7XHJcbiAgICBib3JkZXItY29sb3I6IHZhcigtLWZvcm0tcmFkaW8tYm9yZGVyLWNvbG9yLWZvY3VzKTtcclxuICAgIGJveC1zaGFkb3c6IHZhcigtLWZvcm0taW5wdXQtc2hhZG93LWZvY3VzKTtcclxuXHJcbiAgICAudHVpLWNvbnRleHRJbnZhbGlkICYge1xyXG4gICAgICBib3JkZXItY29sb3I6IHZhcigtLWZvcm0taW5wdXQtYm9yZGVyLWNvbG9yLWludmFsaWQpO1xyXG4gICAgICBib3gtc2hhZG93OiB2YXIoLS1zaGFkb3ctbm9uZSksIHZhcigtLWZvcm0taW5wdXQtc2hhZG93LWludmFsaWQtZm9jdXMpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgJl9faW5wdXQ6YWN0aXZlOmZvY3VzIH4gJl9fbGFiZWw6OmJlZm9yZSxcclxuICAmX19pbnB1dDphY3RpdmU6aG92ZXIgfiAmX19sYWJlbDo6YmVmb3JlLFxyXG4gICZfX2lucHV0OmFjdGl2ZSB+ICZfX2xhYmVsOjpiZWZvcmUge1xyXG4gICAgYmFja2dyb3VuZDogdmFyKC0tZm9ybS1yYWRpby1iZy1jb2xvci1hY3RpdmUpO1xyXG4gICAgYm9yZGVyOiB2YXIoLS1mb3JtLWlucHV0LWJvcmRlci1zaXplKSBzb2xpZDtcclxuICAgIGJvcmRlci1jb2xvcjogdmFyKC0tZm9ybS1yYWRpby1ib3JkZXItY29sb3ItYWN0aXZlKTtcclxuICAgIGJveC1zaGFkb3c6IHZhcigtLWZvcm0taW5wdXQtc2hhZG93LWZvY3VzKTtcclxuXHJcbiAgICAudHVpLWNvbnRleHRJbnZhbGlkICYge1xyXG4gICAgICBib3JkZXItY29sb3I6IHZhcigtLWZvcm0taW5wdXQtYm9yZGVyLWNvbG9yLWludmFsaWQpO1xyXG4gICAgICBib3gtc2hhZG93OiB2YXIoLS1zaGFkb3ctbm9uZSksIHZhcigtLWZvcm0taW5wdXQtc2hhZG93LWludmFsaWQtZm9jdXMpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgJl9faW5wdXQ6ZGlzYWJsZWQ6YWN0aXZlIH4gJl9fbGFiZWw6OmJlZm9yZSxcclxuICAmX19pbnB1dDpkaXNhYmxlZCB+ICZfX2xhYmVsOjpiZWZvcmUge1xyXG4gICAgYmFja2dyb3VuZDogdmFyKC0tZm9ybS1yYWRpby1iZy1jb2xvci1kaXNhYmxlZCk7XHJcbiAgICBib3JkZXI6IHZhcigtLWZvcm0taW5wdXQtYm9yZGVyLXNpemUpIHNvbGlkO1xyXG4gICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1mb3JtLXJhZGlvLWJvcmRlci1jb2xvci1kaXNhYmxlZCk7XHJcbiAgICBib3gtc2hhZG93OiBub25lO1xyXG4gIH1cclxuXHJcbiAgJl9faW5wdXQgfiAmX19sYWJlbDo6YWZ0ZXIge1xyXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgdG9wOiBjYWxjKDUwJSAtIHZhcigtLWZvcm0tcmFkaW8tZG90LXNpemUpIC8gMik7XHJcbiAgICBsZWZ0OiB2YXIoLS1yYWRpby1kb3Qtb2Zmc2V0KTtcclxuICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgd2lkdGg6IHZhcigtLWZvcm0tcmFkaW8tZG90LXNpemUpO1xyXG4gICAgaGVpZ2h0OiB2YXIoLS1mb3JtLXJhZGlvLWRvdC1zaXplKTtcclxuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWZvcm0tcmFkaW8tZG90LWNvbG9yKTtcclxuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcclxuICAgIG9wYWNpdHk6IDA7XHJcbiAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IHZhcigtLXRyYW5zaXRpb24tZm9ybS1mdW5jdGlvbilcclxuICAgICAgdmFyKC0tdHJhbnNpdGlvbi1mb3JtLWR1cmF0aW9uKTtcclxuICAgIGNvbnRlbnQ6ICcnO1xyXG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XHJcbiAgfVxyXG5cclxuICAmX19pbnB1dDpkaXNhYmxlZCB+ICZfX2xhYmVsOjphZnRlciB7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1mb3JtLWlucHV0LXRleHQtY29sb3ItZGlzYWJsZWQpO1xyXG4gIH1cclxuXHJcbiAgJl9faW5wdXQ6Y2hlY2tlZCB+ICZfX2xhYmVsOjphZnRlciB7XHJcbiAgICBvcGFjaXR5OiAxO1xyXG4gIH1cclxufVxyXG5cclxuQG1lZGlhIHByaW50IHtcclxuICAudHVpLXJhZGlvIHtcclxuICAgICZfX2lucHV0IH4gJl9fbGFiZWw6OmFmdGVyIHtcclxuICAgICAgLXdlYmtpdC1wcmludC1jb2xvci1hZGp1c3Q6IGV4YWN0O1xyXG4gICAgICAgICAgICAgIHByaW50LWNvbG9yLWFkanVzdDogZXhhY3Q7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKiBJRTExICYgRWRnZSBzdXBwb3J0Ki9cclxuICAuaWUsXHJcbiAgLm1zZWRnZSB7XHJcbiAgICAudHVpLXJhZGlvIHtcclxuICAgICAgJl9faW5wdXQgfiAudHVpLXJhZGlvX19sYWJlbDo6YWZ0ZXIge1xyXG4gICAgICAgIGJvcmRlcjogNHB4IHNvbGlkIHZhcigtLWZvcm0tcmFkaW8tZG90LWNvbG9yKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuLyohKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqISpcXFxyXG4gICEqKiogY3NzIC4vY2xpZW50L3Rvb2xpbmcvd2VicGFjay9jc3NfcmF3X2xvYWRlci5qcz8/Y2xvbmVkUnVsZVNldC0xNTYxLnVzZVsxXSEuL25vZGVfbW9kdWxlcy9wb3N0Y3NzLWxvYWRlci9kaXN0L2Nqcy5qcz8/Y2xvbmVkUnVsZVNldC0xNTYxLnVzZVsyXSEuL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvaW5kZXguanM/P3J1bGVTZXRbMF0udXNlWzBdIS4vY2xpZW50L2NvbXBvbmVudC90dWkvc3JjL2NvbXBvbmVudHMvZm9ybS9SYWRpb0RhdGVSYW5nZUlucHV0LnZ1ZT92dWUmdHlwZT1zdHlsZSZpbmRleD0wJmlkPTJkNDRmMjJhJmxhbmc9c2NzcyAqKiohXHJcbiAgXFwqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXHJcbi50dWktcmFkaW9EYXRlUmFuZ2VJbnB1dCB7XHJcbiAgZGlzcGxheTogZmxleDtcclxuXHJcbiAgJiA+ICogKyAqIHtcclxuICAgIG1hcmdpbi1sZWZ0OiB2YXIoLS1nYXAtMik7XHJcbiAgfVxyXG5cclxuICAmX19udW1iZXIge1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIHdpZHRoOiByZW0tcHgoNjApO1xyXG4gIH1cclxuXHJcbiAgJl9fdHlwZSB7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgd2lkdGg6IHJlbS1weCgxMjApO1xyXG4gIH1cclxufVxyXG5cclxuLyohKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqISpcXFxyXG4gICEqKiogY3NzIC4vY2xpZW50L3Rvb2xpbmcvd2VicGFjay9jc3NfcmF3X2xvYWRlci5qcz8/Y2xvbmVkUnVsZVNldC0xNTYxLnVzZVsxXSEuL25vZGVfbW9kdWxlcy9wb3N0Y3NzLWxvYWRlci9kaXN0L2Nqcy5qcz8/Y2xvbmVkUnVsZVNldC0xNTYxLnVzZVsyXSEuL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvaW5kZXguanM/P3J1bGVTZXRbMF0udXNlWzBdIS4vY2xpZW50L2NvbXBvbmVudC90dWkvc3JjL2NvbXBvbmVudHMvZm9ybS9SYWRpb0dyb3VwLnZ1ZT92dWUmdHlwZT1zdHlsZSZpbmRleD0wJmlkPTU5NmRmOTgwJmxhbmc9c2NzcyAqKiohXHJcbiAgXFwqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXHJcbi50dWktcmFkaW9Hcm91cCB7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG4gIGdhcDogdmFyKC0tZ2FwLTIpIHZhcigtLWdhcC00KTtcclxuICBwYWRkaW5nOiB0dWktaW5wdXQtdi1wYWRkaW5nLWJvcmRlcmxlc3MoKSAwO1xyXG5cclxuICAmLS1pbnB1dFNpemVkT3B0aW9ucyB7XHJcbiAgICAmID4gKiB7XHJcbiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICAgIG1pbi1oZWlnaHQ6IHZhcigtLWZvcm0taW5wdXQtaGVpZ2h0KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gICYtLW5vUGFkZGluZ1RvcCB7XHJcbiAgICBwYWRkaW5nLXRvcDogMDtcclxuICB9XHJcbn1cclxuXHJcbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6ICR0dWktc2NyZWVuLXNtKSB7XHJcbiAgLnR1aS1yYWRpb0dyb3VwLS1ob3Jpem9udGFsIHtcclxuICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XHJcbiAgICBmbGV4LXdyYXA6IHdyYXA7XHJcbiAgfVxyXG59XHJcblxyXG4vKiEqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiohKlxcXHJcbiAgISoqKiBjc3MgLi9jbGllbnQvdG9vbGluZy93ZWJwYWNrL2Nzc19yYXdfbG9hZGVyLmpzPz9jbG9uZWRSdWxlU2V0LTE1NjEudXNlWzFdIS4vbm9kZV9tb2R1bGVzL3Bvc3Rjc3MtbG9hZGVyL2Rpc3QvY2pzLmpzPz9jbG9uZWRSdWxlU2V0LTE1NjEudXNlWzJdIS4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9pbmRleC5qcz8/cnVsZVNldFswXS51c2VbMF0hLi9jbGllbnQvY29tcG9uZW50L3R1aS9zcmMvY29tcG9uZW50cy9mb3JtL1JhZGlvTnVtYmVySW5wdXQudnVlP3Z1ZSZ0eXBlPXN0eWxlJmluZGV4PTAmaWQ9ZTc1NzVkN2MmbGFuZz1zY3NzICoqKiFcclxuICBcXCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cclxuLnR1aS1yYWRpb051bWJlcklucHV0IHtcclxuICBkaXNwbGF5OiBmbGV4O1xyXG4gIC8qIFVzZSBzYW1lIGluZGVudGF0aW9uIGFzIHJhZGlvIGZvciBuaWNlciB3cmFwcGluZyovXHJcbiAgbWFyZ2luLWxlZnQ6IHZhcigtLXJhZGlvLWxhYmVsLW9mZnNldCk7XHJcblxyXG4gICZfX251bWJlciB7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgd2lkdGg6IHJlbS1weCg2MCk7XHJcbiAgfVxyXG59XHJcblxyXG4vKiEqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqISpcXFxyXG4gICEqKiogY3NzIC4vY2xpZW50L3Rvb2xpbmcvd2VicGFjay9jc3NfcmF3X2xvYWRlci5qcz8/Y2xvbmVkUnVsZVNldC0xNTYxLnVzZVsxXSEuL25vZGVfbW9kdWxlcy9wb3N0Y3NzLWxvYWRlci9kaXN0L2Nqcy5qcz8/Y2xvbmVkUnVsZVNldC0xNTYxLnVzZVsyXSEuL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvaW5kZXguanM/P3J1bGVTZXRbMF0udXNlWzBdIS4vY2xpZW50L2NvbXBvbmVudC90dWkvc3JjL2NvbXBvbmVudHMvZm9ybS9SYWRpb1dpdGhJbnB1dC52dWU/dnVlJnR5cGU9c3R5bGUmaW5kZXg9MCZpZD00MDMyZTJiNiZsYW5nPXNjc3MgKioqIVxyXG4gIFxcKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cclxuLnR1aS1yYWRpb1dpdGhJbnB1dCB7XHJcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XHJcbiAgZmxleC13cmFwOiB3cmFwO1xyXG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcblxyXG4gICYgPiAqICsgKiB7XHJcbiAgICAvKiBVc2Ugc2FtZSBpbmRlbnRhdGlvbiBhcyByYWRpbyBmb3IgbmljZXIgd3JhcHBpbmcqL1xyXG4gICAgbWFyZ2luLWxlZnQ6IHZhcigtLXJhZGlvLWxhYmVsLW9mZnNldCk7XHJcbiAgfVxyXG5cclxuICAmX19yYWRpbyB7XHJcbiAgICBtYXJnaW46IHZhcigtLWdhcC0yKSAwO1xyXG4gIH1cclxufVxyXG5cclxuLyohKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiEqXFxcclxuICAhKioqIGNzcyAuL2NsaWVudC90b29saW5nL3dlYnBhY2svY3NzX3Jhd19sb2FkZXIuanM/P2Nsb25lZFJ1bGVTZXQtMTU2MS51c2VbMV0hLi9ub2RlX21vZHVsZXMvcG9zdGNzcy1sb2FkZXIvZGlzdC9janMuanM/P2Nsb25lZFJ1bGVTZXQtMTU2MS51c2VbMl0hLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2luZGV4LmpzPz9ydWxlU2V0WzBdLnVzZVswXSEuL2NsaWVudC9jb21wb25lbnQvdHVpL3NyYy9jb21wb25lbnRzL2Zvcm0vUmFuZ2UudnVlP3Z1ZSZ0eXBlPXN0eWxlJmluZGV4PTAmaWQ9NWZkODNkMzEmbGFuZz1zY3NzICoqKiFcclxuICBcXCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXHJcbi50dWktcmFuZ2Uge1xyXG4gIGZsZXg6IGF1dG87XHJcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxuXHJcbiAgJl9fbGFiZWxzIHtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XHJcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XHJcbiAgICBtYXJnaW4tYm90dG9tOiB2YXIoLS1nYXAtMSk7XHJcbiAgfVxyXG5cclxuICAmX19sb3dMYWJlbCxcclxuICAmX19oaWdoTGFiZWwge1xyXG4gICAgQGluY2x1ZGUgZm9udChib2R5LXNtKTtcclxuICAgIGZsZXgtYmFzaXM6IDQwJTtcclxuICAgIGNvbG9yOiB2YXIoLS1jb2xvci1uZXV0cmFsLTYpO1xyXG4gIH1cclxuXHJcbiAgJl9fbG93TGFiZWwge1xyXG4gICAgdGV4dC1hbGlnbjogbGVmdDtcclxuICB9XHJcblxyXG4gICZfX2hpZ2hMYWJlbCB7XHJcbiAgICB0ZXh0LWFsaWduOiByaWdodDtcclxuICB9XHJcblxyXG4gICZfX2lucHV0IHtcclxuICAgIGhlaWdodDogdmFyKC0tZm9ybS1yYW5nZS1oZWlnaHQpO1xyXG4gICAgcGFkZGluZzogMDtcclxuICAgIG91dGxpbmU6IG5vbmU7XHJcbiAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XHJcblxyXG4gICAgJjpkaXNhYmxlZCB7XHJcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xyXG4gICAgfVxyXG5cclxuICAgICY6Zm9jdXMtdmlzaWJsZSB7XHJcbiAgICAgIEBpbmNsdWRlIHR1aS1mb2N1cygpO1xyXG4gICAgfVxyXG4gICAgJjo6LW1vei1mb2N1cy1vdXRlciB7XHJcbiAgICAgIGJvcmRlcjogMDtcclxuICAgIH1cclxuXHJcbiAgICAvKiBUcmFjayBzdHlsZXMgKi9cclxuICAgICY6Oi13ZWJraXQtc2xpZGVyLXJ1bm5hYmxlLXRyYWNrIHtcclxuICAgICAgQGluY2x1ZGUgdHVpLXJhbmdlLXRyYWNrKCk7XHJcbiAgICB9XHJcbiAgICAmOmZvY3VzOjotd2Via2l0LXNsaWRlci1ydW5uYWJsZS10cmFjayB7XHJcbiAgICAgIGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLW5ldXRyYWwtNCk7XHJcbiAgICAgIC13ZWJraXQtcHJpbnQtY29sb3ItYWRqdXN0OiBleGFjdDtcclxuICAgICAgICAgICAgICBwcmludC1jb2xvci1hZGp1c3Q6IGV4YWN0O1xyXG4gICAgfVxyXG4gICAgJjo6LW1vei1yYW5nZS10cmFjayB7XHJcbiAgICAgIEBpbmNsdWRlIHR1aS1yYW5nZS10cmFjaygpO1xyXG4gICAgfVxyXG4gICAgJjo6LW1zLXRyYWNrIHtcclxuICAgICAgQGluY2x1ZGUgdHVpLXJhbmdlLXRyYWNrKCk7XHJcbiAgICAgIGNvbG9yOiB0cmFuc3BhcmVudDsgLyogUmVtb3ZlIGRlZmF1bHQgdGljayBtYXJrcyAqL1xyXG4gICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsgLyogUmVwbGFjZSBiZyBjb2xvdXIgZnJvbSB0aGUgdHJhY2sgd2l0aCBtcy1maWxsLWxvd2VyIGFuZCBtcy1maWxsLXVwcGVyICovXHJcbiAgICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7IC8qIFRodW1iIGNhbiBub3Qgb3ZlcmxheSB0cmFjayBzbyB3ZSBhZGQgaW52aXNpYmxlIGJvcmRlciAqL1xyXG4gICAgfVxyXG4gICAgJjo6LW1zLWZpbGwtdXBwZXIsXHJcbiAgICAmOjotbXMtZmlsbC1sb3dlciB7XHJcbiAgICAgIGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLW5ldXRyYWwtNCk7XHJcbiAgICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLWJvcmRlci1yYWRpdXMtc21hbGwpO1xyXG4gICAgfVxyXG4gICAgJjpmb2N1czo6LW1zLWZpbGwtdXBwZXIsXHJcbiAgICAmOmZvY3VzOjotbXMtZmlsbC1sb3dlciB7XHJcbiAgICAgIGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLW5ldXRyYWwtNCk7XHJcbiAgICB9XHJcblxyXG4gICAgLyogVGh1bWIgc3R5bGVzICovXHJcbiAgICAmOjotd2Via2l0LXNsaWRlci10aHVtYiB7XHJcbiAgICAgIEBpbmNsdWRlIHR1aS1yYW5nZS10aHVtYigpO1xyXG4gICAgICBtYXJnaW4tdG9wOiB2YXIoLS1mb3JtLXJhbmdlLXRodW1iLW1hcmdpbi10b3ApO1xyXG4gICAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XHJcbiAgICB9XHJcbiAgICAmOjotbW96LXJhbmdlLXRodW1iIHtcclxuICAgICAgQGluY2x1ZGUgdHVpLXJhbmdlLXRodW1iKCk7XHJcbiAgICB9XHJcbiAgICAmOjotbXMtdGh1bWIge1xyXG4gICAgICBAaW5jbHVkZSB0dWktcmFuZ2UtdGh1bWIoKTtcclxuICAgIH1cclxuXHJcbiAgICAmLnR1aS1yYW5nZV9faW5wdXQtLXNlbGVjdGVkIHtcclxuICAgICAgJjo6LXdlYmtpdC1zbGlkZXItdGh1bWIge1xyXG4gICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLXN0YXRlKTtcclxuICAgICAgfVxyXG4gICAgICAmOjotbW96LXJhbmdlLXRodW1iIHtcclxuICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci1zdGF0ZSk7XHJcbiAgICAgIH1cclxuICAgICAgJjo6LW1zLXRodW1iIHtcclxuICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci1zdGF0ZSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAmLnR1aS1yYW5nZV9faW5wdXQtLW5vVGh1bWIge1xyXG4gICAgICAmOjotd2Via2l0LXNsaWRlci10aHVtYiB7XHJcbiAgICAgICAgZGlzcGxheTogbm9uZTtcclxuICAgICAgfVxyXG4gICAgICAmOjotbW96LXJhbmdlLXRodW1iIHtcclxuICAgICAgICAvKiBEaXNwbGF5IG5vbmUgZG9lcyBub3Qgd29yay4qL1xyXG4gICAgICAgIG9wYWNpdHk6IDA7XHJcbiAgICAgIH1cclxuICAgICAgJjo6LW1zLXRodW1iIHtcclxuICAgICAgICBkaXNwbGF5OiBub25lO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG4vKiEqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqISpcXFxyXG4gICEqKiogY3NzIC4vY2xpZW50L3Rvb2xpbmcvd2VicGFjay9jc3NfcmF3X2xvYWRlci5qcz8/Y2xvbmVkUnVsZVNldC0xNTYxLnVzZVsxXSEuL25vZGVfbW9kdWxlcy9wb3N0Y3NzLWxvYWRlci9kaXN0L2Nqcy5qcz8/Y2xvbmVkUnVsZVNldC0xNTYxLnVzZVsyXSEuL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvaW5kZXguanM/P3J1bGVTZXRbMF0udXNlWzBdIS4vY2xpZW50L2NvbXBvbmVudC90dWkvc3JjL2NvbXBvbmVudHMvZm9ybS9SZXBlYXRlci52dWU/dnVlJnR5cGU9c3R5bGUmaW5kZXg9MCZpZD01YWMxNThjNCZsYW5nPXNjc3MgKioqIVxyXG4gIFxcKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cclxuLnR1aS1yZXBlYXRlciB7XHJcbiAgZGlzcGxheTogYmxvY2s7XHJcbiAgZmxleC1ncm93OiAxO1xyXG4gIHdpZHRoOiAxMDAlO1xyXG4gIG1pbi13aWR0aDogMDtcclxuXHJcbiAgJiA+ICogKyAqIHtcclxuICAgIG1hcmdpbi10b3A6IHZhcigtLWdhcC0zKTtcclxuICB9XHJcblxyXG4gICZfX3JvdyxcclxuICAmX19oZWFkZXJSb3cge1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xyXG4gIH1cclxuXHJcbiAgJl9faGVhZGVyUm93ICsgJl9fcm93IHtcclxuICAgIG1hcmdpbi10b3A6IHZhcigtLWdhcC0yKTtcclxuICB9XHJcblxyXG4gICZfX3JvdyArICZfX2FmdGVyUm93IHtcclxuICAgIG1hcmdpbi10b3A6IHZhcigtLWdhcC00KTtcclxuICB9XHJcblxyXG4gICZfX2FmdGVyUm93ICsgJl9fcm93IHtcclxuICAgIG1hcmdpbi10b3A6IHZhcigtLWdhcC04KTtcclxuICB9XHJcblxyXG4gICZfX2FmdGVyUm93ICsgJl9faGVhZGVyUm93IHtcclxuICAgIG1hcmdpbi10b3A6IHZhcigtLWdhcC00KTtcclxuICB9XHJcblxyXG4gICYtLW5vU3BhY2luZyA+ICoge1xyXG4gICAgbWFyZ2luOiAwO1xyXG4gIH1cclxuXHJcbiAgJl9faGVhZGVyUm93ICZfX2RlbGV0ZSB7XHJcbiAgICBoZWlnaHQ6IDFweDtcclxuICAgIG1pbi1oZWlnaHQ6IDFweDtcclxuICAgIG92ZXJmbG93OiBoaWRkZW47XHJcbiAgfVxyXG59XHJcblxyXG4vKiEqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiEqXFxcclxuICAhKioqIGNzcyAuL2NsaWVudC90b29saW5nL3dlYnBhY2svY3NzX3Jhd19sb2FkZXIuanM/P2Nsb25lZFJ1bGVTZXQtMTU2MS51c2VbMV0hLi9ub2RlX21vZHVsZXMvcG9zdGNzcy1sb2FkZXIvZGlzdC9janMuanM/P2Nsb25lZFJ1bGVTZXQtMTU2MS51c2VbMl0hLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2luZGV4LmpzPz9ydWxlU2V0WzBdLnVzZVswXSEuL2NsaWVudC9jb21wb25lbnQvdHVpL3NyYy9jb21wb25lbnRzL2Zvcm0vU2VhcmNoQm94LnZ1ZT92dWUmdHlwZT1zdHlsZSZpbmRleD0wJmlkPWIwZDU3YzEyJmxhbmc9c2NzcyAqKiohXHJcbiAgXFwqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cclxuLnR1aS1zZWFyY2hCb3gge1xyXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICBkaXNwbGF5OiBmbGV4O1xyXG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLWZvcm0taW5wdXQtYm9yZGVyLXJhZGl1cyk7XHJcbiAgaXNvbGF0aW9uOiBpc29sYXRlOyAvKiBjb250YWluIHogaW5kZXhlcyovXHJcblxyXG4gICZfX2lucHV0V3JhcHBlciB7XHJcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgZmxleC1ncm93OiAxO1xyXG4gICAgQGluY2x1ZGUgdHVpLWNoYXItbGVuZ3RoLWNsYXNzZXMoKTtcclxuICB9XHJcblxyXG4gICZfX3NlYXJjaFt0eXBlPSdzZWFyY2gnXSB7XHJcbiAgICBib3JkZXItcmFkaXVzOiAwO1xyXG4gICAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogdmFyKC0tZm9ybS1pbnB1dC1ib3JkZXItcmFkaXVzKTtcclxuICAgIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IHZhcigtLWZvcm0taW5wdXQtYm9yZGVyLXJhZGl1cyk7XHJcblxyXG4gICAgJjpmb2N1cyB7XHJcbiAgICAgIHotaW5kZXg6IDE7XHJcbiAgICB9XHJcbiAgICAvKiBkaXNhYmxlIHRoZSBkZWZhdWx0IGNsZWFyICh4KSBhY3Rpb24gaW4gSUUqL1xyXG4gICAgJjo6LW1zLWNsZWFyIHtcclxuICAgICAgZGlzcGxheTogbm9uZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC50dWktZm9ybUxhYmVsIHtcclxuICAgIG1hcmdpbi1yaWdodDogdmFyKC0tZ2FwLTIpO1xyXG4gIH1cclxuXHJcbiAgJl9fY2xlYXJDb250YWluZXIge1xyXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgcmlnaHQ6IDA7XHJcbiAgICBoZWlnaHQ6IDEwMCU7XHJcbiAgfVxyXG5cclxuICAmX19yZW1vdmVJY29uIHtcclxuICAgIGNvbG9yOiB2YXIoLS1maWx0ZXItc2VhcmNoLWNsZWFyLWljb24tY29sb3IpO1xyXG4gIH1cclxuXHJcbiAgLyogU28gdGhhdCB0aGUgc2VhcmNoIGJ1dHRvbiBtYXRjaGVzIHRoZSBmb3JtYXQgb2YgdGhlIGlucHV0IHRoYXQgaXMgbmV4dCB0byBpdCovXHJcbiAgJl9fYnV0dG9uIHtcclxuICAgIG1hcmdpbi1sZWZ0OiBjYWxjKHZhcigtLWZvcm0taW5wdXQtYm9yZGVyLXNpemUpICogLTEpO1xyXG4gICAgYm9yZGVyLXJhZGl1czogMDtcclxuICAgIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiB2YXIoLS1mb3JtLWlucHV0LWJvcmRlci1yYWRpdXMpO1xyXG4gICAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IHZhcigtLWZvcm0taW5wdXQtYm9yZGVyLXJhZGl1cyk7XHJcblxyXG4gICAgJjpmb2N1cyB7XHJcbiAgICAgIHotaW5kZXg6IDE7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG4vKiEqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiEqXFxcclxuICAhKioqIGNzcyAuL2NsaWVudC90b29saW5nL3dlYnBhY2svY3NzX3Jhd19sb2FkZXIuanM/P2Nsb25lZFJ1bGVTZXQtMTU2MS51c2VbMV0hLi9ub2RlX21vZHVsZXMvcG9zdGNzcy1sb2FkZXIvZGlzdC9janMuanM/P2Nsb25lZFJ1bGVTZXQtMTU2MS51c2VbMl0hLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2luZGV4LmpzPz9ydWxlU2V0WzBdLnVzZVswXSEuL2NsaWVudC9jb21wb25lbnQvdHVpL3NyYy9jb21wb25lbnRzL2Zvcm0vU2VsZWN0LnZ1ZT92dWUmdHlwZT1zdHlsZSZpbmRleD0wJmlkPWIxNjg2NTkwJmxhbmc9c2NzcyAqKiohXHJcbiAgXFwqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cclxuOnJvb3Qge1xyXG4gIC0tc2VsZWN0LWljb24tc2l6ZTogdmFyKC0tZ2FwLTEpO1xyXG59XHJcblxyXG4udHVpLXNlbGVjdCB7XHJcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbiAgZmxleC1ncm93OiAxO1xyXG4gIHdpZHRoOiAxMDAlO1xyXG4gIG1pbi13aWR0aDogMDtcclxuICBoZWlnaHQ6IHZhcigtLWZvcm0taW5wdXQtaGVpZ2h0KTtcclxuICBib3JkZXItcmFkaXVzOiB2YXIoLS1mb3JtLWlucHV0LWJvcmRlci1yYWRpdXMpO1xyXG5cclxuICBAaW5jbHVkZSB0dWktY2hhci1sZW5ndGgtY2xhc3NlcygpO1xyXG5cclxuICAmOjphZnRlciB7XHJcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICB0b3A6IGNhbGMoKHZhcigtLWZvcm0taW5wdXQtaGVpZ2h0KSAtIHZhcigtLXNlbGVjdC1pY29uLXNpemUpKSAvIDIpO1xyXG4gICAgcmlnaHQ6IGNhbGMoKHZhcigtLWZvcm0taW5wdXQtaGVpZ2h0KSAtIHZhcigtLXNlbGVjdC1pY29uLXNpemUpICogMikgLyAyKTtcclxuICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgd2lkdGg6IDA7XHJcbiAgICBoZWlnaHQ6IDA7XHJcbiAgICBib3JkZXI6IHZhcigtLXNlbGVjdC1pY29uLXNpemUpIHNvbGlkIHRyYW5zcGFyZW50O1xyXG4gICAgYm9yZGVyLXRvcC1jb2xvcjogdmFyKC0tZm9ybS1pbnB1dC10ZXh0LWNvbG9yKTtcclxuICAgIGNvbnRlbnQ6ICcnO1xyXG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XHJcbiAgfVxyXG5cclxuICAmLS1kaXNhYmxlZDo6YWZ0ZXIge1xyXG4gICAgYm9yZGVyLXRvcC1jb2xvcjogdmFyKC0tZm9ybS1pbnB1dC10ZXh0LWNvbG9yLWRpc2FibGVkKTtcclxuICB9XHJcblxyXG4gICYtLW11bHRpcGxlOjphZnRlciB7XHJcbiAgICBkaXNwbGF5OiBub25lO1xyXG4gIH1cclxuXHJcbiAgJi0tbGFyZ2Uge1xyXG4gICAgaGVpZ2h0OiB2YXIoLS1mb3JtLWlucHV0LWhlaWdodC1sYXJnZSk7XHJcblxyXG4gICAgJjo6YWZ0ZXIge1xyXG4gICAgICB0b3A6IGNhbGMoKHZhcigtLWZvcm0taW5wdXQtaGVpZ2h0LWxhcmdlKSAtIHZhcigtLXNlbGVjdC1pY29uLXNpemUpKSAvIDIpO1xyXG4gICAgICAvKiBwcmV0dGllci1pZ25vcmUqL1xyXG4gICAgICByaWdodDogY2FsYygodmFyKC0tZm9ybS1pbnB1dC1oZWlnaHQtbGFyZ2UpIC0gdmFyKC0tc2VsZWN0LWljb24tc2l6ZSkgKiAyKSAvIDIpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgJl9faW5wdXQge1xyXG4gICAgZmxleC1ncm93OiAxO1xyXG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgbWluLXdpZHRoOiAwO1xyXG4gICAgcGFkZGluZzogMCB2YXIoLS1nYXAtNykgMCB2YXIoLS1nYXAtMyk7XHJcbiAgICBjb2xvcjogdmFyKC0tZm9ybS1pbnB1dC10ZXh0LWNvbG9yKTtcclxuICAgIGZvbnQtc2l6ZTogdmFyKC0tZm9ybS1pbnB1dC1mb250LXNpemUpO1xyXG4gICAgYmFja2dyb3VuZDogdmFyKC0tZm9ybS1pbnB1dC1iZy1jb2xvcik7XHJcbiAgICBib3JkZXI6IHZhcigtLWZvcm0taW5wdXQtYm9yZGVyLXNpemUpIHNvbGlkO1xyXG4gICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1mb3JtLWlucHV0LWJvcmRlci1jb2xvcik7XHJcbiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1mb3JtLWlucHV0LWJvcmRlci1yYWRpdXMpO1xyXG4gICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xyXG4gICAgICAgICAgICBhcHBlYXJhbmNlOiBub25lO1xyXG5cclxuICAgICZbbXVsdGlwbGVdIHtcclxuICAgICAgaGVpZ2h0OiBhdXRvO1xyXG4gICAgfVxyXG5cclxuICAgICZbZGlzYWJsZWRdIHtcclxuICAgICAgY29sb3I6IHZhcigtLWZvcm0taW5wdXQtdGV4dC1jb2xvci1kaXNhYmxlZCk7XHJcbiAgICAgIGJhY2tncm91bmQ6IHZhcigtLWZvcm0taW5wdXQtYmctY29sb3ItZGlzYWJsZWQpO1xyXG4gICAgICBib3JkZXItY29sb3I6IHZhcigtLWZvcm0taW5wdXQtYm9yZGVyLWNvbG9yLWRpc2FibGVkKTtcclxuICAgIH1cclxuXHJcbiAgICAmOmZvY3VzIHtcclxuICAgICAgYmFja2dyb3VuZDogdmFyKC0tZm9ybS1pbnB1dC1iZy1jb2xvci1mb2N1cyk7XHJcbiAgICAgIGJvcmRlcjogdmFyKC0tZm9ybS1pbnB1dC1ib3JkZXItc2l6ZSkgc29saWQ7XHJcbiAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tZm9ybS1pbnB1dC1ib3JkZXItY29sb3ItZm9jdXMpO1xyXG4gICAgICBib3gtc2hhZG93OiB2YXIoLS1mb3JtLWlucHV0LXNoYWRvdy1mb2N1cyk7XHJcbiAgICAgIEBpbmNsdWRlIHR1aS1mb2N1cygpO1xyXG5cclxuICAgICAgLnR1aS1jb250ZXh0SW52YWxpZCAmIHtcclxuICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1mb3JtLWlucHV0LWJnLWNvbG9yLWludmFsaWQtZm9jdXMpO1xyXG4gICAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tZm9ybS1pbnB1dC1ib3JkZXItY29sb3ItaW52YWxpZCk7XHJcbiAgICAgICAgb3V0bGluZS1jb2xvcjogdmFyKC0tZm9ybS1pbnB1dC1ib3JkZXItY29sb3ItaW52YWxpZCk7XHJcbiAgICAgICAgYm94LXNoYWRvdzogdmFyKC0tZm9ybS1pbnB1dC1zaGFkb3ctaW52YWxpZC1mb2N1cyk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvKiBEcm9wIHNlbGVjdCBvdXRsaW5lKi9cclxuICAgICY6LW1vei1mb2N1c3Jpbmcge1xyXG4gICAgICBjb2xvcjogdHJhbnNwYXJlbnQ7XHJcbiAgICAgIHRleHQtc2hhZG93OiAwIDAgMCAjMDAwO1xyXG4gICAgfVxyXG5cclxuICAgIC8qIGFwcGVhcmFuY2U6IG5vbmU7IGVxdWl2YWxlbnQgZm9yIElFKi9cclxuICAgICY6Oi1tcy1leHBhbmQge1xyXG4gICAgICBkaXNwbGF5OiBub25lO1xyXG4gICAgfVxyXG5cclxuICAgIC8qIHByZXZlbnQgd2VpcmQgc3R5bGluZyBhZnRlciBzZWxlY3RpbmcgdmFsdWUqL1xyXG4gICAgJjo6LW1zLXZhbHVlIHtcclxuICAgICAgY29sb3I6IGluaGVyaXQ7XHJcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xyXG4gICAgfVxyXG5cclxuICAgIC50dWktY29udGV4dEludmFsaWQgJiB7XHJcbiAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tZm9ybS1pbnB1dC1ib3JkZXItY29sb3ItaW52YWxpZCk7XHJcbiAgICAgIGJveC1zaGFkb3c6IHZhcigtLWZvcm0taW5wdXQtc2hhZG93LWludmFsaWQpO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuLyohKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiEqXFxcclxuICAhKioqIGNzcyAuL2NsaWVudC90b29saW5nL3dlYnBhY2svY3NzX3Jhd19sb2FkZXIuanM/P2Nsb25lZFJ1bGVTZXQtMTU2MS51c2VbMV0hLi9ub2RlX21vZHVsZXMvcG9zdGNzcy1sb2FkZXIvZGlzdC9janMuanM/P2Nsb25lZFJ1bGVTZXQtMTU2MS51c2VbMl0hLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2luZGV4LmpzPz9ydWxlU2V0WzBdLnVzZVswXSEuL2NsaWVudC9jb21wb25lbnQvdHVpL3NyYy9jb21wb25lbnRzL2Zvcm0vVGV4dGFyZWEudnVlP3Z1ZSZ0eXBlPXN0eWxlJmluZGV4PTAmaWQ9NTFiNmE3NzYmbGFuZz1zY3NzICoqKiFcclxuICBcXCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXHJcbi50dWktZm9ybVRleHRhcmVhIHtcclxuICBkaXNwbGF5OiBibG9jaztcclxuICBmbGV4LWdyb3c6IDE7XHJcbiAgd2lkdGg6IDEwMCU7XHJcbiAgbWluLXdpZHRoOiAwO1xyXG4gIG1heC13aWR0aDogMTAwJTtcclxuICBtYXgtaGVpZ2h0OiAxMDAlO1xyXG4gIHBhZGRpbmc6IHR1aS1pbnB1dC12LXBhZGRpbmcoKSB2YXIoLS1nYXAtMyk7XHJcbiAgb3ZlcmZsb3c6IGF1dG87XHJcbiAgY29sb3I6IHZhcigtLWZvcm0taW5wdXQtdGV4dC1jb2xvcik7XHJcbiAgZm9udC1zaXplOiB2YXIoLS1mb3JtLWlucHV0LWZvbnQtc2l6ZSk7XHJcbiAgZm9udC1mYW1pbHk6IGluaGVyaXQ7XHJcbiAgbGluZS1oZWlnaHQ6IHZhcigtLWZvcm0taW5wdXQtbGluZS1oZWlnaHQpO1xyXG4gIGJvcmRlcjogdmFyKC0tZm9ybS1pbnB1dC1ib3JkZXItc2l6ZSkgc29saWQgdmFyKC0tZm9ybS1pbnB1dC1ib3JkZXItY29sb3IpO1xyXG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLWZvcm0taW5wdXQtYm9yZGVyLXJhZGl1cyk7XHJcbiAgcmVzaXplOiBub25lO1xyXG5cclxuICBAaW5jbHVkZSB0dWktY2hhci1sZW5ndGgtY2xhc3NlcygpO1xyXG5cclxuICAmOjpwbGFjZWhvbGRlciB7XHJcbiAgICBjb2xvcjogdmFyKC0tZm9ybS1pbnB1dC10ZXh0LXBsYWNlaG9sZGVyLWNvbG9yKTtcclxuICB9XHJcblxyXG4gIC50dWktY29udGV4dEludmFsaWQgJiB7XHJcbiAgICBib3JkZXItY29sb3I6IHZhcigtLWZvcm0taW5wdXQtYm9yZGVyLWNvbG9yLWludmFsaWQpO1xyXG4gICAgYm94LXNoYWRvdzogdmFyKC0tZm9ybS1pbnB1dC1zaGFkb3ctaW52YWxpZCk7XHJcbiAgfVxyXG5cclxuICAmOmZvY3VzIHtcclxuICAgIGJhY2tncm91bmQ6IHZhcigtLWZvcm0taW5wdXQtYmctY29sb3ItZm9jdXMpO1xyXG4gICAgYm9yZGVyOiB2YXIoLS1mb3JtLWlucHV0LWJvcmRlci1zaXplKSBzb2xpZFxyXG4gICAgICB2YXIoLS1mb3JtLWlucHV0LWJvcmRlci1jb2xvci1mb2N1cyk7XHJcbiAgICBib3gtc2hhZG93OiB2YXIoLS1mb3JtLWlucHV0LXNoYWRvdy1mb2N1cyk7XHJcbiAgICBAaW5jbHVkZSB0dWktZm9jdXMoKTtcclxuXHJcbiAgICAudHVpLWNvbnRleHRJbnZhbGlkICYge1xyXG4gICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1mb3JtLWlucHV0LWJnLWNvbG9yLWludmFsaWQtZm9jdXMpO1xyXG4gICAgICBib3JkZXItY29sb3I6IHZhcigtLWZvcm0taW5wdXQtYm9yZGVyLWNvbG9yLWludmFsaWQpO1xyXG4gICAgICBvdXRsaW5lLWNvbG9yOiB2YXIoLS1mb3JtLWlucHV0LWJvcmRlci1jb2xvci1pbnZhbGlkKTtcclxuICAgICAgYm94LXNoYWRvdzogdmFyKC0tZm9ybS1pbnB1dC1zaGFkb3ctaW52YWxpZC1mb2N1cyk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAmW2Rpc2FibGVkXSB7XHJcbiAgICBjb2xvcjogdmFyKC0tZm9ybS1pbnB1dC10ZXh0LWNvbG9yLWRpc2FibGVkKTtcclxuICAgIGJhY2tncm91bmQ6IHZhcigtLWZvcm0taW5wdXQtYmctY29sb3ItZGlzYWJsZWQpO1xyXG4gICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1mb3JtLWlucHV0LWJvcmRlci1jb2xvci1kaXNhYmxlZCk7XHJcblxyXG4gICAgJjo6cGxhY2Vob2xkZXIge1xyXG4gICAgICBjb2xvcjogdmFyKC0tZm9ybS1pbnB1dC10ZXh0LWNvbG9yLWRpc2FibGVkKTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbi8qISoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiEqXFxcclxuICAhKioqIGNzcyAuL2NsaWVudC90b29saW5nL3dlYnBhY2svY3NzX3Jhd19sb2FkZXIuanM/P2Nsb25lZFJ1bGVTZXQtMTU2MS51c2VbMV0hLi9ub2RlX21vZHVsZXMvcG9zdGNzcy1sb2FkZXIvZGlzdC9janMuanM/P2Nsb25lZFJ1bGVTZXQtMTU2MS51c2VbMl0hLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2luZGV4LmpzPz9ydWxlU2V0WzBdLnVzZVswXSEuL2NsaWVudC9jb21wb25lbnQvdHVpL3NyYy9jb21wb25lbnRzL2dyaWQvR3JpZC52dWU/dnVlJnR5cGU9c3R5bGUmaW5kZXg9MCZpZD0xMDViODk4MCZsYW5nPXNjc3MgKioqIVxyXG4gIFxcKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xyXG5AbWl4aW4gZ3JpZC1pdGVtLWdlbmVyYXRlLWd1dHRlcnMoJF9ib3JkZXJUeXBlOiBsZWZ0KSB7XHJcbiAgPiAudHVpLWdyaWQtaXRlbSB7XHJcbiAgICAvKiBiZWNhdXNlIHdlIHVzZSB0cmFuc3BhcmVudCBib3JkZXJzIGZvciBndXR0ZXJzIGJ1dCBkb24ndCB3YW50IHRoYXQqL1xyXG4gICAgLyogY291bnRpbmcgYXMgdmlzaWJsZSBpdGVtIHdpZHRoKi9cclxuICAgIGJveC1zaXppbmc6IGNvbnRlbnQtYm94O1xyXG4gICAgYmFja2dyb3VuZC1jbGlwOiBwYWRkaW5nLWJveDtcclxuICAgIGJvcmRlci0jeyRfYm9yZGVyVHlwZX0tY29sb3I6IHRyYW5zcGFyZW50O1xyXG4gICAgYm9yZGVyLSN7JF9ib3JkZXJUeXBlfS1zdHlsZTogc29saWQ7XHJcbiAgICAvKiBgYm9yZGVyLSN7JF9ib3JkZXJUeXBlfS13aWR0aGAgaXMgc2V0IHVzaW5nIGlubGluZSBzdHlsZXMgdmlhIEdyaWRJdGVtKi9cclxuICB9XHJcbn1cclxuXHJcbi8qIEdyaWQgc3R5bGVzKi9cclxuLnR1aS1ncmlkIHtcclxuICBkaXNwbGF5OiBmbGV4O1xyXG4gIGZsZXgtZ3JvdzogMTsgLyogaW4gY2FzZSBuZXN0ZWQgaW5zaWRlIGEgcGFyZW50IGdyaWQgY2VsbCovXHJcbiAgbWF4LXdpZHRoOiAxMDAlO1xyXG5cclxuICAvKiBtYWluIEdyaWQgbW9kaWZpZXJzIGFwcGxpZWQgYmFzZWQgb24gc3VwcGxpZWQgcHJvcCB2YWx1ZXMqL1xyXG4gICYtLXdyYXBwZWQge1xyXG4gICAgZmxleC13cmFwOiB3cmFwO1xyXG4gIH1cclxuXHJcbiAgLyogY29udGVudC1jb250YWluaW5nIGVsZW1lbnRzKi9cclxuICAmLWl0ZW0ge1xyXG4gICAgZmxleC1ncm93OiAwOyAvKiBieSBkZWZhdWx0IHdlIHdhbnQgaXRlbSBzaXplIHRvIHJlc3BlY3QgdW5pdC1iYXNlZCBjYWxjdWxhdGlvbnMqL1xyXG4gICAgZmxleC1zaHJpbms6IDE7IC8qIGJ5IGRlZmF1bHQgd2Ugd2FudCB0byBhdXRvLWFkanVzdCBmb3IgZ3V0dGVycyovXHJcbiAgICBtaW4td2lkdGg6IDA7IC8qIGFsbG93cyBmbGV4IGl0ZW1zIHRvIHNocmluayBiZWxvdyB0aGVpciBtaW5pbXVtIGNvbnRlbnQgc2l6ZSovXHJcbiAgICBtYXJnaW46IDA7XHJcbiAgICBwYWRkaW5nOiAwO1xyXG5cclxuICAgIC8qIEdyaWQgaXRlbSBtb2RpZmllcnMgYmFzZWQgb24gc3VwcGxpZWQgcHJvcCB2YWx1ZXMqL1xyXG4gICAgJi0tZ3JvdyB7XHJcbiAgICAgIGZsZXgtZ3JvdzogMTtcclxuICAgIH1cclxuICAgICYtLW5vLXNocmluayB7XHJcbiAgICAgIGZsZXgtc2hyaW5rOiAwO1xyXG4gICAgfVxyXG4gICAgJi0tb3ZlcmZsb3cge1xyXG4gICAgICBvdmVyZmxvdzogYXV0bztcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qIGhvcml6b250YWwgZ3JpZCovXHJcbiAgJi0taG9yaXpvbnRhbCB7XHJcbiAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xyXG5cclxuICAgICYtZ2FwIHtcclxuICAgICAgQGluY2x1ZGUgZ3JpZC1pdGVtLWdlbmVyYXRlLWd1dHRlcnMobGVmdCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKiB2ZXJ0aWNhbCBncmlkKi9cclxuICAmLS12ZXJ0aWNhbCB7XHJcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG5cclxuICAgICYtZ2FwIHtcclxuICAgICAgQGluY2x1ZGUgZ3JpZC1pdGVtLWdlbmVyYXRlLWd1dHRlcnModG9wKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gICYtLXdyYXBwZWQtZ2FwIC50dWktZ3JpZC1pdGVtLS13cmFwcGVkIHtcclxuICAgIGJvcmRlci10b3AtY29sb3I6IHRyYW5zcGFyZW50O1xyXG4gICAgYm9yZGVyLXRvcC1zdHlsZTogc29saWQ7XHJcbiAgfVxyXG5cclxuICAvKiBhbGwgemVybyB1bml0IEdyaWRJdGVtcyBzaG91bGQgbm90IHNob3cgYW55IGd1dHRlcnMgb3IgY29udGVudCovXHJcbiAgJi0tdmVydGljYWwsXHJcbiAgJi0taG9yaXpvbnRhbCB7XHJcbiAgICAudHVpLWdyaWQtaXRlbS0tbm8tdW5pdHMge1xyXG4gICAgICBvdmVyZmxvdzogaGlkZGVuO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyogc3dpdGNoIHRvIHN0YWNrZWQgZGlzcGxheSBhdCBhbiBjb250YWluZXItYmFzZWQgcGl4ZWwgd2lkdGggYnJlYWtwb2ludCovXHJcbiAgLyogdmFsdWUgKGNsYXNzIGlzIGNvbmRpdGlvbmFsbHkgYXBwbGllZCBkdXJpbmcgR3JpZCByZW5kZXIoKSkqL1xyXG4gICYtLXN0YWNrZWQge1xyXG4gICAgZGlzcGxheTogYmxvY2s7XHJcblxyXG4gICAgPiAudHVpLWdyaWQtaXRlbSB7XHJcbiAgICAgIGZsZXgtYmFzaXM6IGF1dG87XHJcbiAgICB9XHJcblxyXG4gICAgJi1nYXAge1xyXG4gICAgICBAaW5jbHVkZSBncmlkLWl0ZW0tZ2VuZXJhdGUtZ3V0dGVycyh0b3ApO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgJi0tbGlzdCB7XHJcbiAgICBtYXJnaW46IDA7XHJcbiAgICBwYWRkaW5nOiAwO1xyXG4gICAgbGlzdC1zdHlsZS10eXBlOiBub25lO1xyXG4gIH1cclxufVxyXG5cclxuLyohKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiEqXFxcclxuICAhKioqIGNzcyAuL2NsaWVudC90b29saW5nL3dlYnBhY2svY3NzX3Jhd19sb2FkZXIuanM/P2Nsb25lZFJ1bGVTZXQtMTU2MS51c2VbMV0hLi9ub2RlX21vZHVsZXMvcG9zdGNzcy1sb2FkZXIvZGlzdC9janMuanM/P2Nsb25lZFJ1bGVTZXQtMTU2MS51c2VbMl0hLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2luZGV4LmpzPz9ydWxlU2V0WzBdLnVzZVswXSEuL2NsaWVudC9jb21wb25lbnQvdHVpL3NyYy9jb21wb25lbnRzL2ljb25zL0xvYWRpbmcudnVlP3Z1ZSZ0eXBlPXN0eWxlJmluZGV4PTAmaWQ9MGM4NzI5NTgmbGFuZz1zY3NzICoqKiFcclxuICBcXCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXHJcbi50dWktaWNvbkxvYWRpbmcge1xyXG4gIGFuaW1hdGlvbjogdHVpLWljb25Mb2FkaW5nLXNwaW4gMXMgc3RlcHMoMTIsIGVuZCkgaW5maW5pdGU7XHJcbn1cclxuXHJcbkBrZXlmcmFtZXMgdHVpLWljb25Mb2FkaW5nLXNwaW4ge1xyXG4gIDAlIHtcclxuICAgIHRyYW5zZm9ybTogcm90YXRlKDBkZWcpO1xyXG4gIH1cclxuICAxMDAlIHtcclxuICAgIHRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7XHJcbiAgfVxyXG59XHJcblxyXG4vKiEqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiEqXFxcclxuICAhKioqIGNzcyAuL2NsaWVudC90b29saW5nL3dlYnBhY2svY3NzX3Jhd19sb2FkZXIuanM/P2Nsb25lZFJ1bGVTZXQtMTU2MS51c2VbMV0hLi9ub2RlX21vZHVsZXMvcG9zdGNzcy1sb2FkZXIvZGlzdC9janMuanM/P2Nsb25lZFJ1bGVTZXQtMTU2MS51c2VbMl0hLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2luZGV4LmpzPz9ydWxlU2V0WzBdLnVzZVswXSEuL2NsaWVudC9jb21wb25lbnQvdHVpL3NyYy9jb21wb25lbnRzL2ljb25zL2ltcGxlbWVudGF0aW9uL1N2Z0ljb25XcmFwLnZ1ZT92dWUmdHlwZT1zdHlsZSZpbmRleD0wJmlkPTEyM2QwNzVlJmxhbmc9c2NzcyAqKiohXHJcbiAgXFwqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cclxuLnR1aS1zdmdJY29uIHtcclxuICAvKiBzYW1lIGFzIHRoZSBib290c3RyYXAgaWNvbnMgZGVmYXVsdCBjc3MqL1xyXG4gIC8qIGJldHRlciBhbGlnbm1lbnQgaW4gbW9zdCBjYXNlcyB0aGFuIHZlcnRpY2FsLWFsaWduOiBtaWRkbGUqL1xyXG4gIHZlcnRpY2FsLWFsaWduOiB0ZXh0LWJvdHRvbTtcclxuXHJcbiAgJi0tc2l6ZSB7XHJcbiAgICAmLTEwMCB7XHJcbiAgICAgIGZvbnQtc2l6ZTogY2FsYyh2YXIoLS1pY29uLXNpemUtYmFzZSkgKiAwLjg3NSk7XHJcbiAgICB9XHJcbiAgICAmLTIwMCB7XHJcbiAgICAgIGZvbnQtc2l6ZTogdmFyKC0taWNvbi1zaXplLWJhc2UpO1xyXG4gICAgfVxyXG4gICAgJi0zMDAge1xyXG4gICAgICBmb250LXNpemU6IGNhbGModmFyKC0taWNvbi1zaXplLWJhc2UpICogMS4yNSk7XHJcbiAgICB9XHJcbiAgICAmLTQwMCB7XHJcbiAgICAgIGZvbnQtc2l6ZTogY2FsYyh2YXIoLS1pY29uLXNpemUtYmFzZSkgKiAxLjUpO1xyXG4gICAgfVxyXG4gICAgJi01MDAge1xyXG4gICAgICBmb250LXNpemU6IGNhbGModmFyKC0taWNvbi1zaXplLWJhc2UpICogMS43NSk7XHJcbiAgICB9XHJcbiAgICAmLTYwMCB7XHJcbiAgICAgIGZvbnQtc2l6ZTogY2FsYyh2YXIoLS1pY29uLXNpemUtYmFzZSkgKiAyKTtcclxuICAgIH1cclxuICAgICYtNzAwIHtcclxuICAgICAgZm9udC1zaXplOiBjYWxjKHZhcigtLWljb24tc2l6ZS1iYXNlKSAqIDIuMzc1KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gICYtLXN0YXRlIHtcclxuICAgICYtaW5mbyB7XHJcbiAgICAgIGNvbG9yOiB2YXIoLS1jb2xvci1wcm9tcHQtaW5mbyk7XHJcbiAgICB9XHJcblxyXG4gICAgJi1hbGVydCB7XHJcbiAgICAgIGNvbG9yOiB2YXIoLS1jb2xvci1wcm9tcHQtYWxlcnQpO1xyXG4gICAgfVxyXG5cclxuICAgICYtd2FybmluZyB7XHJcbiAgICAgIGNvbG9yOiB2YXIoLS1jb2xvci1wcm9tcHQtd2FybmluZyk7XHJcbiAgICB9XHJcblxyXG4gICAgJi1zdWNjZXNzIHtcclxuICAgICAgY29sb3I6IHZhcigtLWNvbG9yLXByb21wdC1zdWNjZXNzKTtcclxuICAgIH1cclxuXHJcbiAgICAmLWRpbW1lZCB7XHJcbiAgICAgIGNvbG9yOiB2YXIoLS1jb2xvci1uZXV0cmFsLTYpO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuLmRpci1ydGwgLnR1aS1zdmdJY29uLS1mbGlwUnRsIHtcclxuICB0cmFuc2Zvcm06IHNjYWxlKC0xLCAxKTtcclxufVxyXG5cclxuLyohKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiEqXFxcclxuICAhKioqIGNzcyAuL2NsaWVudC90b29saW5nL3dlYnBhY2svY3NzX3Jhd19sb2FkZXIuanM/P2Nsb25lZFJ1bGVTZXQtMTU2MS51c2VbMV0hLi9ub2RlX21vZHVsZXMvcG9zdGNzcy1sb2FkZXIvZGlzdC9janMuanM/P2Nsb25lZFJ1bGVTZXQtMTU2MS51c2VbMl0hLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2luZGV4LmpzPz9ydWxlU2V0WzBdLnVzZVswXSEuL2NsaWVudC9jb21wb25lbnQvdHVpL3NyYy9jb21wb25lbnRzL2ltYWdlcy9SZXNwb25zaXZlSW1hZ2UudnVlP3Z1ZSZ0eXBlPXN0eWxlJmluZGV4PTAmaWQ9M2Q5NzI0MjImbGFuZz1zY3NzICoqKiFcclxuICBcXCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXHJcbi50dWktcmVzcG9uc2l2ZUltYWdlIHtcclxuICBkaXNwbGF5OiBibG9jaztcclxuICBtYXgtd2lkdGg6IDEwMCU7XHJcbiAgaGVpZ2h0OiBhdXRvO1xyXG5cclxuICAmLS1ncm93IHtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gIH1cclxufVxyXG5cclxuLyohKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqISpcXFxyXG4gICEqKiogY3NzIC4vY2xpZW50L3Rvb2xpbmcvd2VicGFjay9jc3NfcmF3X2xvYWRlci5qcz8/Y2xvbmVkUnVsZVNldC0xNTYxLnVzZVsxXSEuL25vZGVfbW9kdWxlcy9wb3N0Y3NzLWxvYWRlci9kaXN0L2Nqcy5qcz8/Y2xvbmVkUnVsZVNldC0xNTYxLnVzZVsyXSEuL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvaW5kZXguanM/P3J1bGVTZXRbMF0udXNlWzBdIS4vY2xpZW50L2NvbXBvbmVudC90dWkvc3JjL2NvbXBvbmVudHMvanNvbl9lZGl0b3Ivbm9kZXMvQXR0YWNobWVudE5vZGVDb2xsZWN0aW9uLnZ1ZT92dWUmdHlwZT1zdHlsZSZpbmRleD0wJmlkPTQ4YWM3MjJhJmxhbmc9c2NzcyAqKiohXHJcbiAgXFwqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXHJcbi50dWktYXR0YWNobWVudE5vZGVDb2xsZWN0aW9uIHtcclxuICBkaXNwbGF5OiBncmlkO1xyXG4gIGdyaWQtdGVtcGxhdGUtY29sdW1uczogI3t1bnF1b3RlKFxyXG4gICAgICAncmVwZWF0KGF1dG8tZmlsbCwgbWlubWF4KG1pbigxNS42MjVyZW0sIDEwMCUpLCAxZnIpKSdcclxuICAgICl9O1xyXG4gIGdhcDogdmFyKC0tZ2FwLTIpO1xyXG4gIHBhZGRpbmc6IHZhcigtLWdhcC0xKSAwO1xyXG4gIHdoaXRlLXNwYWNlOiBub3JtYWw7XHJcbn1cclxuXHJcbi8qISoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiohKlxcXHJcbiAgISoqKiBjc3MgLi9jbGllbnQvdG9vbGluZy93ZWJwYWNrL2Nzc19yYXdfbG9hZGVyLmpzPz9jbG9uZWRSdWxlU2V0LTE1NjEudXNlWzFdIS4vbm9kZV9tb2R1bGVzL3Bvc3Rjc3MtbG9hZGVyL2Rpc3QvY2pzLmpzPz9jbG9uZWRSdWxlU2V0LTE1NjEudXNlWzJdIS4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9pbmRleC5qcz8/cnVsZVNldFswXS51c2VbMF0hLi9jbGllbnQvY29tcG9uZW50L3R1aS9zcmMvY29tcG9uZW50cy9qc29uX2VkaXRvci9ub2Rlcy9BdWRpb0Jsb2NrLnZ1ZT92dWUmdHlwZT1zdHlsZSZpbmRleD0wJmlkPWM1Zjc4NjAyJmxhbmc9c2NzcyAqKiohXHJcbiAgXFwqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xyXG4udHVpLWF1ZGlvQmxvY2sge1xyXG4gIG1hcmdpbjogdmFyKC0tZ2FwLTgpIDA7XHJcblxyXG4gICZfX2FjdGlvbnNXcmFwcGVyIHtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xyXG4gICAgbWFyZ2luLXRvcDogdmFyKC0tZ2FwLTIpO1xyXG4gIH1cclxuXHJcbiAgJl9fdmlld1RyYW5zY3JpcHQge1xyXG4gICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xyXG4gIH1cclxuXHJcbiAgJl9fdHJhbnNjcmlwdENvbnRlbnQge1xyXG4gICAgaGVpZ2h0OiByZW0tcHgoNjAwKTtcclxuICAgIHdoaXRlLXNwYWNlOiBwcmUtbGluZTtcclxuICB9XHJcbn1cclxuXHJcbi8qISoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqISpcXFxyXG4gICEqKiogY3NzIC4vY2xpZW50L3Rvb2xpbmcvd2VicGFjay9jc3NfcmF3X2xvYWRlci5qcz8/Y2xvbmVkUnVsZVNldC0xNTYxLnVzZVsxXSEuL25vZGVfbW9kdWxlcy9wb3N0Y3NzLWxvYWRlci9kaXN0L2Nqcy5qcz8/Y2xvbmVkUnVsZVNldC0xNTYxLnVzZVsyXSEuL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvaW5kZXguanM/P3J1bGVTZXRbMF0udXNlWzBdIS4vY2xpZW50L2NvbXBvbmVudC90dWkvc3JjL2NvbXBvbmVudHMvanNvbl9lZGl0b3Ivbm9kZXMvRW1vamkudnVlP3Z1ZSZ0eXBlPXN0eWxlJmluZGV4PTAmaWQ9M2JhY2M2NGUmbGFuZz1zY3NzICoqKiFcclxuICBcXCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xyXG4udHVpLWVtb2ppIHtcclxuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgZm9udC1mYW1pbHk6ICdOb3RvIENvbG9yIEVtb2ppJywgJ0FwcGxlIENvbG9yIEVtb2ppJywgJ1NlZ29lIFVJIEVtb2ppJyxcclxuICAgICdTZWdvZSBVSSBTeW1ib2wnLCBUaW1lcywgU3ltYm9sYSwgQWVneXB0dXMsIENvZGUyMDAwLCBDb2RlMjAwMSwgQ29kZTIwMDIsXHJcbiAgICBNdXNpY2EsIHNlcmlmLCBMYXN0UmVzb3J0O1xyXG4gIHdoaXRlLXNwYWNlOiBub3JtYWw7XHJcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xyXG4gIGZvbnQtdmFyaWFudC1lbW9qaTogZW1vamk7XHJcbn1cclxuXHJcbi8qISoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiohKlxcXHJcbiAgISoqKiBjc3MgLi9jbGllbnQvdG9vbGluZy93ZWJwYWNrL2Nzc19yYXdfbG9hZGVyLmpzPz9jbG9uZWRSdWxlU2V0LTE1NjEudXNlWzFdIS4vbm9kZV9tb2R1bGVzL3Bvc3Rjc3MtbG9hZGVyL2Rpc3QvY2pzLmpzPz9jbG9uZWRSdWxlU2V0LTE1NjEudXNlWzJdIS4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9pbmRleC5qcz8/cnVsZVNldFswXS51c2VbMF0hLi9jbGllbnQvY29tcG9uZW50L3R1aS9zcmMvY29tcG9uZW50cy9qc29uX2VkaXRvci9ub2Rlcy9IYXNodGFnLnZ1ZT92dWUmdHlwZT1zdHlsZSZpbmRleD0wJmlkPTZjMThmMmQ0Jmxhbmc9c2NzcyAqKiohXHJcbiAgXFwqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xyXG4udHVpLWhhc2h0YWcge1xyXG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICB3aGl0ZS1zcGFjZTogbm9ybWFsO1xyXG5cclxuICAmX190ZXh0IHtcclxuICAgIGNvbG9yOiB2YXIoLS1jb2xvci1zdGF0ZSk7XHJcblxyXG4gICAgJjpob3ZlciB7XHJcbiAgICAgIC8qIEhvdmVyIHN0YXRlLCBmb3Igbm93IHdlIGtlZXAgdGhlIHNhbWUgY29sb3IuKi9cclxuICAgICAgY29sb3I6IHZhcigtLWNvbG9yLXN0YXRlKTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbi8qISoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiohKlxcXHJcbiAgISoqKiBjc3MgLi9jbGllbnQvdG9vbGluZy93ZWJwYWNrL2Nzc19yYXdfbG9hZGVyLmpzPz9jbG9uZWRSdWxlU2V0LTE1NjEudXNlWzFdIS4vbm9kZV9tb2R1bGVzL3Bvc3Rjc3MtbG9hZGVyL2Rpc3QvY2pzLmpzPz9jbG9uZWRSdWxlU2V0LTE1NjEudXNlWzJdIS4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9pbmRleC5qcz8/cnVsZVNldFswXS51c2VbMF0hLi9jbGllbnQvY29tcG9uZW50L3R1aS9zcmMvY29tcG9uZW50cy9qc29uX2VkaXRvci9ub2Rlcy9JbWFnZUJsb2NrLnZ1ZT92dWUmdHlwZT1zdHlsZSZpbmRleD0wJmlkPTZjMWQ5NTFhJmxhbmc9c2NzcyAqKiohXHJcbiAgXFwqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xyXG4udHVpLWltYWdlQmxvY2sge1xyXG4gIG1hcmdpbjogMCAwIHZhcigtLXBhcmFncmFwaC1nYXApIDA7XHJcblxyXG4gIEBlYWNoICRuYW1lLCAkc2l6ZSBpbiAkdHVpLW1lZGlhLW5hbWVkLXNpemVzIHtcclxuICAgICYtLWRpc3BsYXlTaXplLSN7JG5hbWV9IHtcclxuICAgICAgLyogSUUxMSBkb2VzIG5vdCBzdXBwb3J0IHRoZSByZXNwb25zaXZlIHNpemVzLCBzbyBzcGVjaWZ5IGEgZml4ZWQgZmFsbGJhY2sqL1xyXG4gICAgICB3aWR0aDogbWFwLWdldCgkc2l6ZSwgJ2ZpeGVkJyk7XHJcbiAgICAgIHdpZHRoOiBtYXAtZ2V0KCRzaXplLCAncmVzcG9uc2l2ZScpO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuZmlndXJlID4gLnR1aS1pbWFnZUJsb2NrIHtcclxuICBtYXJnaW4tYm90dG9tOiB2YXIoLS1nYXAtMSk7XHJcbn1cclxuXHJcbi8qISoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiEqXFxcclxuICAhKioqIGNzcyAuL2NsaWVudC90b29saW5nL3dlYnBhY2svY3NzX3Jhd19sb2FkZXIuanM/P2Nsb25lZFJ1bGVTZXQtMTU2MS51c2VbMV0hLi9ub2RlX21vZHVsZXMvcG9zdGNzcy1sb2FkZXIvZGlzdC9janMuanM/P2Nsb25lZFJ1bGVTZXQtMTU2MS51c2VbMl0hLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2luZGV4LmpzPz9ydWxlU2V0WzBdLnVzZVswXSEuL2NsaWVudC9jb21wb25lbnQvdHVpL3NyYy9jb21wb25lbnRzL2pzb25fZWRpdG9yL25vZGVzL0xpbmtCbG9jay52dWU/dnVlJnR5cGU9c3R5bGUmaW5kZXg9MCZpZD0zN2RjYTAzYiZsYW5nPXNjc3MgKioqIVxyXG4gIFxcKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xyXG4udHVpLWxpbmtCbG9jayB7XHJcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbiAgbWF4LXdpZHRoOiByZW0tcHgoMjg2KTtcclxuICBoZWlnaHQ6IGNhbGMoI3tyZW0tcHgoNzYpfSArIDJweCk7XHJcbiAgZm9udC1zaXplOiBmb250LXNpemUtcHgoMTMpO1xyXG4gIGxpbmUtaGVpZ2h0OiAxLjE1O1xyXG4gIHdoaXRlLXNwYWNlOiBub3JtYWw7XHJcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tY2FyZC1ib3JkZXItY29sb3IpO1xyXG4gIGJvcmRlci1yYWRpdXM6IDRweDtcclxuICB0cmFuc2l0aW9uOiBib3gtc2hhZG93IHZhcigtLXRyYW5zaXRpb24tZm9ybS1mdW5jdGlvbilcclxuICAgIHZhcigtLXRyYW5zaXRpb24tZm9ybS1kdXJhdGlvbik7XHJcblxyXG4gICY6aG92ZXIge1xyXG4gICAgYm94LXNoYWRvdzogdmFyKC0tc2hhZG93LTIpO1xyXG4gIH1cclxuXHJcbiAgJl9faW1hZ2Uge1xyXG4gICAgZmxleC1zaHJpbms6IDA7XHJcbiAgICBvcmRlcjogMjtcclxuICAgIHdpZHRoOiByZW0tcHgoNjApO1xyXG4gICAgaGVpZ2h0OiByZW0tcHgoNjApO1xyXG4gICAgbWFyZ2luOiB2YXIoLS1nYXAtMik7XHJcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XHJcbiAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xyXG4gICAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDNweDtcclxuICAgIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAzcHg7XHJcblxyXG4gICAgPiBpbWcge1xyXG4gICAgICB3aWR0aDogMTAwJTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gICZfX3N1bW1hcnkge1xyXG4gICAgZmxleC1ncm93OiAxO1xyXG4gICAgb3JkZXI6IDE7XHJcbiAgICBwYWRkaW5nOiB2YXIoLS1nYXAtMik7XHJcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xyXG4gIH1cclxuXHJcbiAgJl9fc2l0ZSB7XHJcbiAgICBtYXJnaW4tYm90dG9tOiByZW0tcHgoMyk7XHJcbiAgICBmb250LXdlaWdodDogYm9sZDtcclxuICAgIGZvbnQtc2l6ZTogZm9udC1zaXplLXB4KDEyKTtcclxuICAgIGxpbmUtaGVpZ2h0OiAxLjE1O1xyXG4gIH1cclxuXHJcbiAgJl9fdGl0bGUge1xyXG4gICAgbWFyZ2luLWJvdHRvbTogcmVtLXB4KDMpO1xyXG4gICAgY29sb3I6IHZhcigtLWNvbG9yLXN0YXRlKTtcclxuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xyXG4gIH1cclxuXHJcbiAgJl9fZGVzY3JpcHRpb24ge1xyXG4gICAgLyogc2hvdyBhIG1heCBvZiAyIGxpbmVzKi9cclxuICAgIGhlaWdodDogY2FsYygje2ZvbnQtc2l6ZS1weCgxMyl9ICogMiAqIDEuMTUpO1xyXG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcclxuICB9XHJcblxyXG4gICZfX2xpbmtPbmx5IHtcclxuICAgIC8qIHNob3cgYSBtYXggb2YgNCBsaW5lcyovXHJcbiAgICBoZWlnaHQ6IGNhbGMoI3tmb250LXNpemUtcHgoMTMpfSAqIDQgKiAxLjEyKTtcclxuICAgIG1hcmdpbi10b3A6IHJlbS1weCgyKTtcclxuICAgIG92ZXJmbG93OiBoaWRkZW47XHJcbiAgICBjb2xvcjogdmFyKC0tY29sb3Itc3RhdGUpO1xyXG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XHJcbiAgICBmb250LXNpemU6IGZvbnQtc2l6ZS1weCgxMyk7XHJcbiAgICBsaW5lLWhlaWdodDogMS4xNTtcclxuICB9XHJcblxyXG4gICZfX292ZXJsYXlMaW5rIHtcclxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgIGluc2V0OiAtMXB4OyAvKiAtMXB4IHRvIGFjY291bnQgZm9yIGJvcmRlciovXHJcbiAgICBib3JkZXItcmFkaXVzOiBpbmhlcml0O1xyXG4gICAgJjpmb2N1cyB7XHJcbiAgICAgIEBpbmNsdWRlIHR1aS1mb2N1cztcclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbi8qISoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiohKlxcXHJcbiAgISoqKiBjc3MgLi9jbGllbnQvdG9vbGluZy93ZWJwYWNrL2Nzc19yYXdfbG9hZGVyLmpzPz9jbG9uZWRSdWxlU2V0LTE1NjEudXNlWzFdIS4vbm9kZV9tb2R1bGVzL3Bvc3Rjc3MtbG9hZGVyL2Rpc3QvY2pzLmpzPz9jbG9uZWRSdWxlU2V0LTE1NjEudXNlWzJdIS4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9pbmRleC5qcz8/cnVsZVNldFswXS51c2VbMF0hLi9jbGllbnQvY29tcG9uZW50L3R1aS9zcmMvY29tcG9uZW50cy9qc29uX2VkaXRvci9ub2Rlcy9NZW50aW9uLnZ1ZT92dWUmdHlwZT1zdHlsZSZpbmRleD0wJmlkPTFkNWZkNDFjJmxhbmc9c2NzcyAqKiohXHJcbiAgXFwqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xyXG4udHVpLW1lbnRpb24ge1xyXG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICB3aGl0ZS1zcGFjZTogbm9ybWFsO1xyXG5cclxuICAmX19kaXNwbGF5TmFtZSB7XHJcbiAgICBjb2xvcjogdmFyKC0tY29sb3Itc3RhdGUpO1xyXG5cclxuICAgICY6aG92ZXIge1xyXG4gICAgICAvKiBIb3ZlciBzdGF0ZSwgZm9yIG5vdyB3ZSBrZWVwIHRoZSBzYW1lIGNvbG9yLiovXHJcbiAgICAgIGNvbG9yOiB2YXIoLS1jb2xvci1zdGF0ZSk7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG4vKiEqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqISpcXFxyXG4gICEqKiogY3NzIC4vY2xpZW50L3Rvb2xpbmcvd2VicGFjay9jc3NfcmF3X2xvYWRlci5qcz8/Y2xvbmVkUnVsZVNldC0xNTYxLnVzZVsxXSEuL25vZGVfbW9kdWxlcy9wb3N0Y3NzLWxvYWRlci9kaXN0L2Nqcy5qcz8/Y2xvbmVkUnVsZVNldC0xNTYxLnVzZVsyXSEuL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvaW5kZXguanM/P3J1bGVTZXRbMF0udXNlWzBdIS4vY2xpZW50L2NvbXBvbmVudC90dWkvc3JjL2NvbXBvbmVudHMvanNvbl9lZGl0b3Ivbm9kZXMvVmlkZW9CbG9jay52dWU/dnVlJnR5cGU9c3R5bGUmaW5kZXg9MCZpZD1iYjAyYTQwYyZsYW5nPXNjc3MgKioqIVxyXG4gIFxcKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cclxuLnR1aS12aWRlb0Jsb2NrIHtcclxuICBkaXNwbGF5OiBmbGV4O1xyXG4gIHdpZHRoOiAxMDAlO1xyXG4gIG1heC13aWR0aDogdmFyKC0tZW1iZWRkZWQtbWVkaWEtbWF4LXdpZHRoKTtcclxuXHJcbiAgbWFyZ2luOiB2YXIoLS1nYXAtOCkgMDtcclxuXHJcbiAgLnZpZGVvLWpzIC52anMtY29udHJvbCB7XHJcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xyXG4gIH1cclxufVxyXG5cclxuLyogRW5zdXJlIHRoZSBjb250cm9scyBhcmVuJ3QgaW5jb3JyZWN0bHkgcmV2ZXJzZWQgaW4gUlRMKi9cclxuW2Rpcj0ncnRsJ10ge1xyXG4gIC50dWktdmlkZW9CbG9jayB7XHJcbiAgICAudmlkZW8tanMge1xyXG4gICAgICAudmpzLXByb2dyZXNzLWhvbGRlciAudmpzLXBsYXktcHJvZ3Jlc3MsXHJcbiAgICAgIC52anMtcHJvZ3Jlc3MtaG9sZGVyIC52anMtbG9hZC1wcm9ncmVzcyxcclxuICAgICAgLnZqcy1wcm9ncmVzcy1ob2xkZXIgLnZqcy1sb2FkLXByb2dyZXNzIGRpdixcclxuICAgICAgLnZqcy12b2x1bWUtbGV2ZWwge1xyXG4gICAgICAgIC8qIXJ0bDppZ25vcmUqL1xyXG4gICAgICAgIHJpZ2h0OiBhdXRvO1xyXG4gICAgICAgIC8qIXJ0bDppZ25vcmUqL1xyXG4gICAgICAgIGxlZnQ6IDA7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIC52anMtcGxheS1wcm9ncmVzczpiZWZvcmUsXHJcbiAgICAgIC52anMtc2xpZGVyLWhvcml6b250YWwgLnZqcy12b2x1bWUtbGV2ZWw6YmVmb3JlIHtcclxuICAgICAgICAvKiFydGw6aWdub3JlKi9cclxuICAgICAgICByaWdodDogLTAuNWVtO1xyXG4gICAgICAgIC8qIXJ0bDppZ25vcmUqL1xyXG4gICAgICAgIGxlZnQ6IGF1dG87XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbi8qISoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqISpcXFxyXG4gICEqKiogY3NzIC4vY2xpZW50L3Rvb2xpbmcvd2VicGFjay9jc3NfcmF3X2xvYWRlci5qcz8/Y2xvbmVkUnVsZVNldC0xNTYxLnVzZVsxXSEuL25vZGVfbW9kdWxlcy9wb3N0Y3NzLWxvYWRlci9kaXN0L2Nqcy5qcz8/Y2xvbmVkUnVsZVNldC0xNTYxLnVzZVsyXSEuL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvaW5kZXguanM/P3J1bGVTZXRbMF0udXNlWzBdIS4vY2xpZW50L2NvbXBvbmVudC90dWkvc3JjL2NvbXBvbmVudHMvbGF5b3V0cy9MYXlvdXRPbmVDb2x1bW4udnVlP3Z1ZSZ0eXBlPXN0eWxlJmluZGV4PTAmaWQ9YmZmM2UzYzYmbGFuZz1zY3NzICoqKiFcclxuICBcXCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xyXG4udHVpLWxheW91dE9uZUNvbHVtbiB7XHJcbiAgQGluY2x1ZGUgZm9udChib2R5KTtcclxuICBtYXJnaW4tdG9wOiB2YXIoLS1nYXAtMik7XHJcblxyXG4gIEBpbmNsdWRlIHR1aS1zdGFjay12ZXJ0aWNhbCh2YXIoLS1nYXAtNikpO1xyXG5cclxuICAmX19oZWFkaW5nIHtcclxuICAgIEBpbmNsdWRlIHR1aS1zdGFjay12ZXJ0aWNhbCh2YXIoLS1nYXAtMikpO1xyXG5cclxuICAgICYtc3ViIHtcclxuICAgICAgbWFyZ2luLXRvcDogdmFyKC0tZ2FwLTEpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgJi0tZmx1c2gge1xyXG4gICAgbWFyZ2luLXRvcDogdmFyKC0tZ2FwLTEyKTtcclxuICB9XHJcbn1cclxuXHJcbi8qISoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqISpcXFxyXG4gICEqKiogY3NzIC4vY2xpZW50L3Rvb2xpbmcvd2VicGFjay9jc3NfcmF3X2xvYWRlci5qcz8/Y2xvbmVkUnVsZVNldC0xNTYxLnVzZVsxXSEuL25vZGVfbW9kdWxlcy9wb3N0Y3NzLWxvYWRlci9kaXN0L2Nqcy5qcz8/Y2xvbmVkUnVsZVNldC0xNTYxLnVzZVsyXSEuL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvaW5kZXguanM/P3J1bGVTZXRbMF0udXNlWzBdIS4vY2xpZW50L2NvbXBvbmVudC90dWkvc3JjL2NvbXBvbmVudHMvbGF5b3V0cy9QYWdlQmFja0xpbmsudnVlP3Z1ZSZ0eXBlPXN0eWxlJmluZGV4PTAmaWQ9NTdlMDhkNzUmbGFuZz1zY3NzICoqKiFcclxuICBcXCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xyXG4udHVpLXBhZ2VCYWNrTGluayB7XHJcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XHJcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuXHJcbiAgJl9faWNvbiB7XHJcbiAgICBtYXJnaW4tcmlnaHQ6IHZhcigtLWdhcC0xKTtcclxuICAgIC8qIE5lZ2F0aXZlIE9mZnNldCB0byBsZWZ0IGFsaWduIGFycm93IHdpdGggcGFnZSBjb250ZW50Ki9cclxuICAgIG1hcmdpbi1sZWZ0OiAtMC4xOWVtO1xyXG4gIH1cclxufVxyXG5cclxuLyohKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiEqXFxcclxuICAhKioqIGNzcyAuL2NsaWVudC90b29saW5nL3dlYnBhY2svY3NzX3Jhd19sb2FkZXIuanM/P2Nsb25lZFJ1bGVTZXQtMTU2MS51c2VbMV0hLi9ub2RlX21vZHVsZXMvcG9zdGNzcy1sb2FkZXIvZGlzdC9janMuanM/P2Nsb25lZFJ1bGVTZXQtMTU2MS51c2VbMl0hLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2luZGV4LmpzPz9ydWxlU2V0WzBdLnVzZVswXSEuL2NsaWVudC9jb21wb25lbnQvdHVpL3NyYy9jb21wb25lbnRzL2xheW91dHMvUGFnZUhlYWRpbmcudnVlP3Z1ZSZ0eXBlPXN0eWxlJmluZGV4PTAmaWQ9NDc0MjBlM2UmbGFuZz1zY3NzICoqKiFcclxuICBcXCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXHJcbi50dWktcGFnZUhlYWRpbmcge1xyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbiAgZmxleC1kaXJlY3Rpb246IHJvdztcclxuICBmbGV4LXdyYXA6IHdyYXA7XHJcbiAgZ2FwOiB2YXIoLS1nYXAtMyk7XHJcbiAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XHJcblxyXG4gICZfX3RpdGxlIHtcclxuICAgIEBpbmNsdWRlIGZvbnQoaDEpO1xyXG4gICAgZmxleC1ncm93OiAxO1xyXG4gICAgbWluLXdpZHRoOiAwO1xyXG4gICAgbWFyZ2luOiAwO1xyXG4gICAgb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDtcclxuXHJcbiAgICAmLS1zbWFsbCB7XHJcbiAgICAgIEBpbmNsdWRlIGZvbnQoaDIpO1xyXG4gICAgfVxyXG5cclxuICAgICYtLXNtYWxsT25Nb2Ige1xyXG4gICAgICBAaW5jbHVkZSBmb250KGgyKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gICZfX2J1dHRvbnMge1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGZsZXgtc2hyaW5rOiAwO1xyXG4gICAgZmxleC13cmFwOiB3cmFwO1xyXG4gICAgZ2FwOiB2YXIoLS1nYXAtMyk7XHJcbiAgICBtYXgtd2lkdGg6IDEwMCU7XHJcbiAgfVxyXG59XHJcblxyXG5AbWVkaWEgKG1pbi13aWR0aDogJHR1aS1zY3JlZW4tc20pIHtcclxuICAudHVpLXBhZ2VIZWFkaW5nIHtcclxuICAgICZfX2J1dHRvbnMge1xyXG4gICAgICAmID4gKiB7XHJcbiAgICAgICAgbWFyZ2luLXRvcDogMDtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgJl9fdGl0bGUge1xyXG4gICAgICAmLS1zbWFsbE9uTW9iIHtcclxuICAgICAgICBAaW5jbHVkZSBmb250KGgxKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuQG1lZGlhIChtaW4td2lkdGg6ICR0dWktc2NyZWVuLW1kKSB7XHJcbiAgLnR1aS1wYWdlSGVhZGluZyB7XHJcbiAgICBmbGV4LXdyYXA6IG5vd3JhcDtcclxuICB9XHJcbn1cclxuXHJcbi8qISoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiohKlxcXHJcbiAgISoqKiBjc3MgLi9jbGllbnQvdG9vbGluZy93ZWJwYWNrL2Nzc19yYXdfbG9hZGVyLmpzPz9jbG9uZWRSdWxlU2V0LTE1NjEudXNlWzFdIS4vbm9kZV9tb2R1bGVzL3Bvc3Rjc3MtbG9hZGVyL2Rpc3QvY2pzLmpzPz9jbG9uZWRSdWxlU2V0LTE1NjEudXNlWzJdIS4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9pbmRleC5qcz8/cnVsZVNldFswXS51c2VbMF0hLi9jbGllbnQvY29tcG9uZW50L3R1aS9zcmMvY29tcG9uZW50cy9saW5rcy9Ta2lwVG9Db250ZW50LnZ1ZT92dWUmdHlwZT1zdHlsZSZpbmRleD0wJmlkPTE1NGY1NThjJmxhbmc9c2NzcyAqKiohXHJcbiAgXFwqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xyXG4udHVpLXNraXBUb0NvbnRlbnQge1xyXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICB3aWR0aDogMXB4O1xyXG4gIGhlaWdodDogMXB4O1xyXG4gIG1hcmdpbjogLTFweDtcclxuICBwYWRkaW5nOiAwO1xyXG4gIG92ZXJmbG93OiBoaWRkZW47XHJcbiAgYm9yZGVyOiAwO1xyXG4gIGNsaXA6IHJlY3QoMCwgMCwgMCwgMCk7XHJcblxyXG4gICY6Zm9jdXMge1xyXG4gICAgcG9zaXRpb246IHN0YXRpYztcclxuICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgd2lkdGg6IGF1dG87XHJcbiAgICBoZWlnaHQ6IGF1dG87XHJcbiAgfVxyXG59XHJcblxyXG4vKiEqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiohKlxcXHJcbiAgISoqKiBjc3MgLi9jbGllbnQvdG9vbGluZy93ZWJwYWNrL2Nzc19yYXdfbG9hZGVyLmpzPz9jbG9uZWRSdWxlU2V0LTE1NjEudXNlWzFdIS4vbm9kZV9tb2R1bGVzL3Bvc3Rjc3MtbG9hZGVyL2Rpc3QvY2pzLmpzPz9jbG9uZWRSdWxlU2V0LTE1NjEudXNlWzJdIS4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9pbmRleC5qcz8/cnVsZVNldFswXS51c2VbMF0hLi9jbGllbnQvY29tcG9uZW50L3R1aS9zcmMvY29tcG9uZW50cy9sb2FkaW5nL0NvbXBvbmVudExvYWRpbmcudnVlP3Z1ZSZ0eXBlPXN0eWxlJmluZGV4PTAmaWQ9YmZiYmYyMWUmbGFuZz1zY3NzICoqKiFcclxuICBcXCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cclxuLnR1aS1jb21wb25lbnRMb2FkaW5nIHtcclxuICBkaXNwbGF5OiBmbGV4O1xyXG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcbiAgcGFkZGluZzogdmFyKC0tZ2FwLTMpO1xyXG4gIGNvbG9yOiB2YXIoLS1jb2xvci1uZXV0cmFsLTYpO1xyXG59XHJcblxyXG4vKiEqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiEqXFxcclxuICAhKioqIGNzcyAuL2NsaWVudC90b29saW5nL3dlYnBhY2svY3NzX3Jhd19sb2FkZXIuanM/P2Nsb25lZFJ1bGVTZXQtMTU2MS51c2VbMV0hLi9ub2RlX21vZHVsZXMvcG9zdGNzcy1sb2FkZXIvZGlzdC9janMuanM/P2Nsb25lZFJ1bGVTZXQtMTU2MS51c2VbMl0hLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2luZGV4LmpzPz9ydWxlU2V0WzBdLnVzZVswXSEuL2NsaWVudC9jb21wb25lbnQvdHVpL3NyYy9jb21wb25lbnRzL2xvYWRpbmcvTG9hZGVyLnZ1ZT92dWUmdHlwZT1zdHlsZSZpbmRleD0wJmlkPTNjYjhlMDA1Jmxhbmc9c2NzcyAqKiohXHJcbiAgXFwqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cclxuLnR1aS1sb2FkZXIge1xyXG4gICRsb2FkaW5nLWZ1bGxwYWdlOiAjeyZ9LS1mdWxscGFnZTtcclxuXHJcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG5cclxuICAvKiBEb24ndCBzaG93IG5lc3RlZCBsb2FkZXJzKi9cclxuICAmLS1hY3RpdmUgPiAqIC50dWktbG9hZGVyX19vdmVybGF5IHtcclxuICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgfVxyXG5cclxuICAvKiBJZiBubyBzbG90IGNvbnRlbnQgKGUuZy4gaW5pdGlhbCBsb2FkKSovXHJcbiAgJl9fZW1wdHkge1xyXG4gICAgbWluLWhlaWdodDogdmFyKC0tZ2FwLTgpO1xyXG4gIH1cclxuXHJcbiAgJl9fb3ZlcmxheSB7XHJcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICB0b3A6IDA7XHJcbiAgICAvKiFydGw6aWdub3JlKi9cclxuICAgIGxlZnQ6IDA7XHJcbiAgICB3aWR0aDogMTAwJTtcclxuICAgIGhlaWdodDogMTAwJTtcclxuXHJcbiAgICAjeyRsb2FkaW5nLWZ1bGxwYWdlfSAmIHtcclxuICAgICAgcG9zaXRpb246IGZpeGVkO1xyXG4gICAgICB6LWluZGV4OiB2YXIoLS16aW5kZXgtbG9hZGluZy1wYWdlKTtcclxuICAgIH1cclxuXHJcbiAgICAmLXBvc2l0aW9uZXIge1xyXG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xyXG4gICAgICB3aWR0aDogMTAwJTtcclxuICAgICAgaGVpZ2h0OiAxMDAlO1xyXG4gICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci1iYWNrZ3JvdW5kKTtcclxuICAgICAgb3BhY2l0eTogMC44NTtcclxuICAgICAgY29udGVudDogJyc7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAmX19kaXNwbGF5IHtcclxuICAgIHBvc2l0aW9uOiBzdGlja3k7XHJcbiAgICB0b3A6IHZhcigtLWdhcC02KTtcclxuICAgIGJvdHRvbTogdmFyKC0tZ2FwLTYpO1xyXG4gICAgY29sb3I6IHZhcigtLWNvbG9yLW5ldXRyYWwtNik7XHJcbiAgICBmb250LXNpemU6IGZvbnQtc2l6ZS1weCgxNSk7XHJcblxyXG4gICAgLmZhLXNwaW5uZXIge1xyXG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICAgIHRvcDogLTFweDtcclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbi8qISoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqISpcXFxyXG4gICEqKiogY3NzIC4vY2xpZW50L3Rvb2xpbmcvd2VicGFjay9jc3NfcmF3X2xvYWRlci5qcz8/Y2xvbmVkUnVsZVNldC0xNTYxLnVzZVsxXSEuL25vZGVfbW9kdWxlcy9wb3N0Y3NzLWxvYWRlci9kaXN0L2Nqcy5qcz8/Y2xvbmVkUnVsZVNldC0xNTYxLnVzZVsyXSEuL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvaW5kZXguanM/P3J1bGVTZXRbMF0udXNlWzBdIS4vY2xpZW50L2NvbXBvbmVudC90dWkvc3JjL2NvbXBvbmVudHMvbG9hZGluZy9Ta2VsZXRvbkNvbnRlbnQudnVlP3Z1ZSZ0eXBlPXN0eWxlJmluZGV4PTAmaWQ9NmI2NDQ2NmEmbGFuZz1zY3NzICoqKiFcclxuICBcXCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xyXG46cm9vdCB7XHJcbiAgLyogQmFja2dyb3VuZCBjb2xvdXIgb2Ygc2tlbGV0b24gYXJlYSovXHJcbiAgLyogU2hvdWxkIGhhdmUgYXQgbGVhc3QgMzoxIGNvbnRyYXN0IHJhdGlvKi9cclxuICAvKiBodHRwczovL3d3dy53My5vcmcvV0FJL1dDQUcyMS9VbmRlcnN0YW5kaW5nL25vbi10ZXh0LWNvbnRyYXN0Lmh0bWwqL1xyXG4gIC8qIEZ1dHVyZSBvcHRpb24gaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvQ1NTL0BtZWRpYS9wcmVmZXJzLWNvbnRyYXN0Ki9cclxuICAtLXNrZWxldG9uLWNvbnRlbnQtYmFja2dyb3VuZDogIzk0OTQ5NDtcclxuICAvKiBCYWNrZ3JvdW5kIGNvbG91ciBvZiBza2VsZXRvbiBhcmVhIHdoZW4gdW5kZXIgYSBsb2FkaW5nIG92ZXJsYXkqL1xyXG4gIC0tc2tlbGV0b24tY29udGVudC1vdmVybGF5LWJhY2tncm91bmQ6IHZhcigtLWNvbG9yLW5ldXRyYWwtNSk7XHJcbiAgLyogQ29sb3VyIG9mIHNoaW1tZXIqL1xyXG4gIC0tc2tlbGV0b24tY29udGVudC1zaGltbWVyLWNvbG9yOiAjYWFhO1xyXG4gIC8qIENvbG91ciBvZiBzaGltbWVyIHdoZW4gdW5kZXIgYSBsb2FkaW5nIG92ZXJsYXkqL1xyXG4gIC0tc2tlbGV0b24tY29udGVudC1zaGltbWVyLW92ZXJsYXktY29sb3I6ICNlNmU1ZTU7XHJcbiAgLyogQm9yZGVyIHJhZGl1cyBmb3Igc2tlbGV0b24gY29udGVudCovXHJcbiAgLS1za2VsZXRvbi1jb250ZW50LWJvcmRlci1yYWRpdXM6IHZhcigtLWJvcmRlci1yYWRpdXMtc21hbGwpO1xyXG59XHJcblxyXG4udHVpLXNrZWxldG9uQ29udGVudCB7XHJcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxuICB3aWR0aDogMTAwJTtcclxuICBoZWlnaHQ6IDEwMCU7XHJcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcclxuICBiYWNrZ3JvdW5kOiB2YXIoLS1za2VsZXRvbi1jb250ZW50LWJhY2tncm91bmQpO1xyXG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLXNrZWxldG9uLWNvbnRlbnQtYm9yZGVyLXJhZGl1cyk7XHJcblxyXG4gIEBpbmNsdWRlIHR1aS1jaGFyLWxlbmd0aC1jbGFzc2VzKCk7XHJcblxyXG4gICYtLWhhc092ZXJsYXkge1xyXG4gICAgYmFja2dyb3VuZDogdmFyKC0tc2tlbGV0b24tY29udGVudC1vdmVybGF5LWJhY2tncm91bmQpO1xyXG4gIH1cclxuXHJcbiAgJi0tc2hpbW1lciB7XHJcbiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoXHJcbiAgICAgIC01NWRlZyxcclxuICAgICAgdmFyKC0tc2tlbGV0b24tY29udGVudC1iYWNrZ3JvdW5kKSAwJSxcclxuICAgICAgdmFyKC0tc2tlbGV0b24tY29udGVudC1iYWNrZ3JvdW5kKSAzNSUsXHJcbiAgICAgIHZhcigtLXNrZWxldG9uLWNvbnRlbnQtc2hpbW1lci1jb2xvcikgNTAlLFxyXG4gICAgICB2YXIoLS1za2VsZXRvbi1jb250ZW50LWJhY2tncm91bmQpIDU4JSxcclxuICAgICAgdmFyKC0tc2tlbGV0b24tY29udGVudC1iYWNrZ3JvdW5kKSAxMDAlXHJcbiAgICApO1xyXG4gICAgYmFja2dyb3VuZC1zaXplOiAxMDAwcHggMTAwJTtcclxuICAgIGJhY2tncm91bmQtYXR0YWNobWVudDogZml4ZWQ7XHJcbiAgICBhbmltYXRpb246IHR1aS1za2VsZXRvblNoaW1tZXIgM3MgbGluZWFyIGluZmluaXRlO1xyXG5cclxuICAgIEBtZWRpYSAocHJlZmVycy1yZWR1Y2VkLW1vdGlvbikge1xyXG4gICAgICBhbmltYXRpb246IG5vbmU7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBAa2V5ZnJhbWVzIHR1aS1za2VsZXRvblNoaW1tZXIge1xyXG4gICAgMCUge1xyXG4gICAgICAvKiFydGw6aWdub3JlKi9cclxuICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogMCAwO1xyXG4gICAgfVxyXG4gICAgMTAwJSB7XHJcbiAgICAgIC8qIXJ0bDppZ25vcmUqL1xyXG4gICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAxMDAwcHggMDtcclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbi50dWktc2tlbGV0b25Db250ZW50LS1oYXNPdmVybGF5LnR1aS1za2VsZXRvbkNvbnRlbnQtLXNoaW1tZXIge1xyXG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudChcclxuICAgIC01NWRlZyxcclxuICAgIHZhcigtLXNrZWxldG9uLWNvbnRlbnQtb3ZlcmxheS1iYWNrZ3JvdW5kKSAwJSxcclxuICAgIHZhcigtLXNrZWxldG9uLWNvbnRlbnQtb3ZlcmxheS1iYWNrZ3JvdW5kKSAzNSUsXHJcbiAgICB2YXIoLS1za2VsZXRvbi1jb250ZW50LXNoaW1tZXItb3ZlcmxheS1jb2xvcikgNTAlLFxyXG4gICAgdmFyKC0tc2tlbGV0b24tY29udGVudC1vdmVybGF5LWJhY2tncm91bmQpIDU4JSxcclxuICAgIHZhcigtLXNrZWxldG9uLWNvbnRlbnQtb3ZlcmxheS1iYWNrZ3JvdW5kKSAxMDAlXHJcbiAgKTtcclxuICBiYWNrZ3JvdW5kLXNpemU6IDEwMDBweCAxMDAlO1xyXG4gIGJhY2tncm91bmQtYXR0YWNobWVudDogZml4ZWQ7XHJcbn1cclxuXHJcbi8qISoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiEqXFxcclxuICAhKioqIGNzcyAuL2NsaWVudC90b29saW5nL3dlYnBhY2svY3NzX3Jhd19sb2FkZXIuanM/P2Nsb25lZFJ1bGVTZXQtMTU2MS51c2VbMV0hLi9ub2RlX21vZHVsZXMvcG9zdGNzcy1sb2FkZXIvZGlzdC9janMuanM/P2Nsb25lZFJ1bGVTZXQtMTU2MS51c2VbMl0hLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2luZGV4LmpzPz9ydWxlU2V0WzBdLnVzZVswXSEuL2NsaWVudC9jb21wb25lbnQvdHVpL3NyYy9jb21wb25lbnRzL2xvemVuZ2UvTG96ZW5nZS52dWU/dnVlJnR5cGU9c3R5bGUmaW5kZXg9MCZpZD1mYWYxNWMwNCZsYW5nPXNjc3MgKioqIVxyXG4gIFxcKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xyXG4udHVpLWxvemVuZ2Uge1xyXG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xyXG4gIHBhZGRpbmc6IDNweCB2YXIoLS1nYXAtMikgM3B4O1xyXG4gIGNvbG9yOiB2YXIoLS1jb2xvci1uZXV0cmFsLTEpO1xyXG4gIEBpbmNsdWRlIGZvbnQoYm9keS1zbSk7XHJcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XHJcbiAgbGluZS1oZWlnaHQ6IDE7XHJcbiAgYmFja2dyb3VuZDogdmFyKC0tY29sb3ItcHJvbXB0LWluZm8pO1xyXG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLWJvcmRlci1yYWRpdXMtc21hbGwpO1xyXG5cclxuICAmLS1hbGVydCB7XHJcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci1wcm9tcHQtYWxlcnQpO1xyXG4gIH1cclxuXHJcbiAgJi0tc3VjY2VzcyB7XHJcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci1wcm9tcHQtc3VjY2Vzcyk7XHJcbiAgfVxyXG5cclxuICAmLS13YXJuaW5nIHtcclxuICAgIGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLXByb21wdC13YXJuaW5nKTtcclxuICB9XHJcblxyXG4gICYtLW5ldXRyYWwge1xyXG4gICAgYmFja2dyb3VuZDogdmFyKC0tY29sb3ItbmV1dHJhbC02KTtcclxuICB9XHJcbn1cclxuXHJcbi8qISoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqISpcXFxyXG4gICEqKiogY3NzIC4vY2xpZW50L3Rvb2xpbmcvd2VicGFjay9jc3NfcmF3X2xvYWRlci5qcz8/Y2xvbmVkUnVsZVNldC0xNTYxLnVzZVsxXSEuL25vZGVfbW9kdWxlcy9wb3N0Y3NzLWxvYWRlci9kaXN0L2Nqcy5qcz8/Y2xvbmVkUnVsZVNldC0xNTYxLnVzZVsyXSEuL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvaW5kZXguanM/P3J1bGVTZXRbMF0udXNlWzBdIS4vY2xpZW50L2NvbXBvbmVudC90dWkvc3JjL2NvbXBvbmVudHMvbW9kYWwvTW9kYWwudnVlP3Z1ZSZ0eXBlPXN0eWxlJmluZGV4PTAmaWQ9MjUxZTgxYzgmbGFuZz1zY3NzICoqKiFcclxuICBcXCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xyXG4kdHVpLW1vZGFsLXNtYWxsU2l6ZTogNDAwcHggIWRlZmF1bHQ7XHJcbiR0dWktbW9kYWwtbm9ybWFsU2l6ZTogNTYwcHggIWRlZmF1bHQ7XHJcbiR0dWktbW9kYWwtbGFyZ2VTaXplOiA4MDBweCAhZGVmYXVsdDtcclxuJHR1aS1tb2RhbC1zaGVldEJyZWFrcG9pbnQ6IDc2OHB4ICFkZWZhdWx0O1xyXG5cclxuLnR1aS1tb2RhbC13cmFwIHtcclxuICBwb3NpdGlvbjogZml4ZWQ7XHJcbiAgdG9wOiAwO1xyXG4gIGxlZnQ6IDA7XHJcbiAgei1pbmRleDogdmFyKC0temluZGV4LW1vZGFsKTtcclxuICBkaXNwbGF5OiBmbGV4O1xyXG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XHJcbiAgd2lkdGg6IDEwMCU7XHJcbiAgaGVpZ2h0OiAxMDAlO1xyXG4gIG92ZXJmbG93OiBoaWRkZW47XHJcbiAgb3V0bGluZTogbm9uZTtcclxuXHJcbiAgJl9fYmFja2Ryb3Age1xyXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgaW5zZXQ6IDA7XHJcbiAgICBkaXNwbGF5OiBub25lO1xyXG4gIH1cclxuXHJcbiAgJi0tc2hhZGUge1xyXG4gICAgLnR1aS1tb2RhbC13cmFwX19iYWNrZHJvcCB7XHJcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci1iYWNrZHJvcC1zdGFuZGFyZCk7XHJcbiAgICB9XHJcblxyXG4gICAgJi50dWktbW9kYWwtd3JhcC0tdHlwZS1zaGVldCAudHVpLW1vZGFsLXdyYXBfX2JhY2tkcm9wIHtcclxuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItYmFja2Ryb3AtaGVhdnkpO1xyXG4gICAgfVxyXG5cclxuICAgICYudHVpLW1vZGFsLXdyYXAtLWFuaW1hdGVkIHtcclxuICAgICAgLnR1aS1tb2RhbC13cmFwX19iYWNrZHJvcCB7XHJcbiAgICAgICAgb3BhY2l0eTogMDtcclxuICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IHZhcigtLXRyYW5zaXRpb24tbW9kYWwtZnVuY3Rpb24pXHJcbiAgICAgICAgICB2YXIoLS10cmFuc2l0aW9uLW1vZGFsLWR1cmF0aW9uKTtcclxuICAgICAgfVxyXG4gICAgICAmLnR1aS1tb2RhbC13cmFwLS1pbiAudHVpLW1vZGFsLXdyYXBfX2JhY2tkcm9wIHtcclxuICAgICAgICBvcGFjaXR5OiAxO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG4udHVpLW1vZGFsIHtcclxuICBwb3NpdGlvbjogZml4ZWQ7XHJcbiAgdG9wOiAwO1xyXG4gIGxlZnQ6IDA7XHJcbiAgei1pbmRleDogdmFyKC0temluZGV4LW1vZGFsKTtcclxuICBkaXNwbGF5OiBmbGV4O1xyXG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XHJcbiAgd2lkdGg6IDEwMCU7XHJcbiAgaGVpZ2h0OiAxMDAlO1xyXG4gIG92ZXJmbG93OiBoaWRkZW47XHJcbiAgb3V0bGluZTogbm9uZTtcclxuXHJcbiAgJi0tYW5pbWF0ZWQge1xyXG4gICAgLnR1aS1tb2RhbF9faW5uZXIge1xyXG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMTAwdmgpO1xyXG4gICAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gdmFyKC0tdHJhbnNpdGlvbi1tb2RhbC1mdW5jdGlvbilcclxuICAgICAgICAgIHZhcigtLXRyYW5zaXRpb24tbW9kYWwtZHVyYXRpb24pLFxyXG4gICAgICAgIG9wYWNpdHkgdmFyKC0tdHJhbnNpdGlvbi1tb2RhbC1mdW5jdGlvbilcclxuICAgICAgICAgIHZhcigtLXRyYW5zaXRpb24tbW9kYWwtZHVyYXRpb24pO1xyXG4gICAgfVxyXG5cclxuICAgICYudHVpLW1vZGFsLS1pbiAudHVpLW1vZGFsX19pbm5lciB7XHJcbiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gICYtLWVycm9yIHtcclxuICAgIHotaW5kZXg6IHZhcigtLXppbmRleC1lcnJvci1tb2RhbCk7XHJcbiAgfVxyXG5cclxuICAmLnR1aS1tb2RhbC0tdHlwZS1zaGVldCB7XHJcbiAgICAudHVpLW1vZGFsX19pbm5lciB7XHJcbiAgICAgIG92ZXJmbG93OiBhdXRvO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgJi0tc2hhZGUge1xyXG4gICAgJi50dWktbW9kYWwtLWFuaW1hdGVkIHtcclxuICAgICAgJi50dWktbW9kYWwtLWluIHtcclxuICAgICAgICBvcGFjaXR5OiAxO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAmX19wYWQge1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgICBoZWlnaHQ6IDEwMCU7XHJcbiAgICBwYWRkaW5nOiAwO1xyXG4gIH1cclxuXHJcbiAgJl9faW5uZXIge1xyXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XHJcbiAgICB3aWR0aDogMTAwJTtcclxuICAgIGhlaWdodDogMTAwJTtcclxuICAgIG1hcmdpbjogYXV0bztcclxuICAgIGNvbG9yOiB2YXIoLS1jb2xvci10ZXh0KTtcclxuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLWJhY2tncm91bmQpO1xyXG4gICAgYm94LXNoYWRvdzogdmFyKC0tc2hhZG93LTQpO1xyXG4gIH1cclxuXHJcbiAgJl9faGVhZGVyIHtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBmbGV4LXNocmluazogMDtcclxuICB9XHJcblxyXG4gICZfX2Nsb3NlLFxyXG4gICZfX291dHNpZGVDbG9zZSB7XHJcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICB0b3A6IDA7XHJcbiAgICByaWdodDogMDtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBwYWRkaW5nOiB2YXIoLS1nYXAtNCk7XHJcbiAgICBmb250LXNpemU6IGZvbnQtc2l6ZS1weCgxOCk7XHJcbiAgfVxyXG5cclxuICAmX19vdXRzaWRlQ2xvc2Uge1xyXG4gICAgZGlzcGxheTogbm9uZTtcclxuICAgIGNvbG9yOiB2YXIoLS1jb2xvci1iYWNrZHJvcC1jb250cmFzdCk7XHJcbiAgfVxyXG5cclxuICAmX19vdXRzaWRlQ2xvc2U6aG92ZXIsXHJcbiAgJl9fb3V0c2lkZUNsb3NlOmZvY3VzIHtcclxuICAgIGNvbG9yOiB2YXIoLS1jb2xvci1iYWNrZHJvcC1jb250cmFzdCk7XHJcbiAgICBvcGFjaXR5OiAwLjg7XHJcbiAgfVxyXG59XHJcblxyXG4uaGFzLXR1aS1tb2RhbCB7XHJcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcclxufVxyXG5cclxuQG1lZGlhIChtaW4td2lkdGg6ICR0dWktbW9kYWwtc2hlZXRCcmVha3BvaW50KSB7XHJcbiAgLnR1aS1tb2RhbC0tdHlwZS1zaGVldCB7XHJcbiAgICAmLnR1aS1tb2RhbC0tYW5pbWF0ZWQge1xyXG4gICAgICAudHVpLW1vZGFsX19pbm5lciB7XHJcbiAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgwLjkpO1xyXG4gICAgICAgIG9wYWNpdHk6IDA7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgICYudHVpLW1vZGFsLS1pbiAudHVpLW1vZGFsX19pbm5lciB7XHJcbiAgICAgICAgdHJhbnNmb3JtOiBub25lO1xyXG4gICAgICAgIG9wYWNpdHk6IDE7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIC50dWktbW9kYWxfX291dHNpZGVDbG9zZSB7XHJcbiAgICAgICAgb3BhY2l0eTogMDtcclxuICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IHZhcigtLXRyYW5zaXRpb24tbW9kYWwtZnVuY3Rpb24pXHJcbiAgICAgICAgICB2YXIoLS10cmFuc2l0aW9uLW1vZGFsLWR1cmF0aW9uKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgJi50dWktbW9kYWwtLWluIC50dWktbW9kYWxfX291dHNpZGVDbG9zZSB7XHJcbiAgICAgICAgb3BhY2l0eTogMTtcclxuICAgICAgfVxyXG5cclxuICAgICAgJi50dWktbW9kYWwtLWluIC50dWktbW9kYWxfX291dHNpZGVDbG9zZTpob3ZlcixcclxuICAgICAgJi50dWktbW9kYWwtLWluIC50dWktbW9kYWxfX291dHNpZGVDbG9zZTpmb2N1cyB7XHJcbiAgICAgICAgb3BhY2l0eTogMC44O1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLnR1aS1tb2RhbCB7XHJcbiAgICAgICZfX3BhZCB7XHJcbiAgICAgICAgcGFkZGluZzogdmFyKC0tbW9kYWwtc2hlZXQtcGFkZGluZyk7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgICZfX2lubmVyIHtcclxuICAgICAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1tb2RhbC1ib3JkZXItcmFkaXVzKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgJl9fY2xvc2Uge1xyXG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgICZfX291dHNpZGVDbG9zZSB7XHJcbiAgICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuQG1peGluIHR1aS1tb2RhbC1zaXplKCRuYW1lLCAkd2lkdGgpIHtcclxuICBAbWVkaWEgKG1pbi13aWR0aDogKCR3aWR0aCArIDc1cHgpKSB7XHJcbiAgICAudHVpLW1vZGFsLS10eXBlLW5vcm1hbC50dWktbW9kYWwtLXNpemUtI3skbmFtZX0ge1xyXG4gICAgICBvdmVyZmxvdy15OiBhdXRvO1xyXG5cclxuICAgICAgJi50dWktbW9kYWwtLWFsd2F5cy1zY3JvbGwge1xyXG4gICAgICAgIG92ZXJmbG93LXk6IHNjcm9sbDtcclxuICAgICAgfVxyXG5cclxuICAgICAgJi50dWktbW9kYWwtLWFuaW1hdGVkIHtcclxuICAgICAgICAudHVpLW1vZGFsX19pbm5lciB7XHJcbiAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDAuOSk7XHJcbiAgICAgICAgICBvcGFjaXR5OiAwO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgJi50dWktbW9kYWwtLWluIC50dWktbW9kYWxfX2lubmVyIHtcclxuICAgICAgICAgIHRyYW5zZm9ybTogbm9uZTtcclxuICAgICAgICAgIG9wYWNpdHk6IDE7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcblxyXG4gICAgICAvKiBhIHNlcGFyYXRlIF9fcGFkIGVsZW1lbnQgaXMgcmVxdWlyZWQgYXMgZmxleGJveCBjZW50ZXJpbmcgd2l0aCovXHJcbiAgICAgIC8qIGBtYXJnaW4tdG9wL2JvdHRvbTogYXV0bztgIGFuZCBwYWRkaW5nIG9uIHRoZSBwYXJlbnQgYXJlIG5vdCBjb21wYXRpYmxlKi9cclxuICAgICAgLnR1aS1tb2RhbCB7XHJcbiAgICAgICAgJl9fcGFkIHtcclxuICAgICAgICAgIGhlaWdodDogYXV0bztcclxuICAgICAgICAgIG1hcmdpbjogYXV0bztcclxuICAgICAgICAgIHBhZGRpbmc6IHZhcigtLW1vZGFsLWNvbnRhaW5lci1wYWRkaW5nKSAwO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgJl9faW5uZXIge1xyXG4gICAgICAgICAgd2lkdGg6ICR3aWR0aDtcclxuICAgICAgICAgIGhlaWdodDogYXV0bztcclxuICAgICAgICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLW1vZGFsLWJvcmRlci1yYWRpdXMpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgJl9fY2xvc2Uge1xyXG4gICAgICAgICAgZGlzcGxheTogbm9uZTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgICZfX291dHNpZGVDbG9zZSB7XHJcbiAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIEBtZWRpYSAobWluLXdpZHRoOiAoJHdpZHRoIC8gKDMvNCkpKSB7XHJcbiAgICAgIC50dWktbW9kYWwtLXR5cGUtZHJhd2VyLnR1aS1tb2RhbC0tc2l6ZS0jeyRuYW1lfSB7XHJcbiAgICAgICAgJi50dWktbW9kYWwtLWFuaW1hdGVkIHtcclxuICAgICAgICAgIC50dWktbW9kYWxfX2lubmVyIHtcclxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKCR3aWR0aCk7XHJcbiAgICAgICAgICAgIC5kaXItcnRsICYge1xyXG4gICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtJHdpZHRoKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICYudHVpLW1vZGFsLS1pbiAudHVpLW1vZGFsX19pbm5lciB7XHJcbiAgICAgICAgICAgIHRyYW5zZm9ybTogbm9uZTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC50dWktbW9kYWxfX3BhZCB7XHJcbiAgICAgICAgICB3aWR0aDogMTAwJTtcclxuICAgICAgICAgIGhlaWdodDogMTAwJTtcclxuICAgICAgICAgIHBhZGRpbmc6IDA7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAudHVpLW1vZGFsX19pbm5lciB7XHJcbiAgICAgICAgICB3aWR0aDogJHdpZHRoO1xyXG4gICAgICAgICAgaGVpZ2h0OiAxMDAlO1xyXG4gICAgICAgICAgbWFyZ2luOiAwO1xyXG4gICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XHJcbiAgICAgICAgICBib3JkZXItbGVmdDogdmFyKC0tYm9yZGVyLXdpZHRoLXRoaW4pIHNvbGlkIHZhcigtLWNvbG9yLW5ldXRyYWwtNSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAmLnR1aS1tb2RhbC0tc2hhZGUgLnR1aS1tb2RhbF9faW5uZXIge1xyXG4gICAgICAgICAgYm9yZGVyOiBub25lO1xyXG4gICAgICAgICAgYm94LXNoYWRvdzogdmFyKC0tc2hhZG93LTQpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuQGluY2x1ZGUgdHVpLW1vZGFsLXNpemUoJ3NtYWxsJywgJHR1aS1tb2RhbC1zbWFsbFNpemUpO1xyXG5AaW5jbHVkZSB0dWktbW9kYWwtc2l6ZSgnbm9ybWFsJywgJHR1aS1tb2RhbC1ub3JtYWxTaXplKTtcclxuQGluY2x1ZGUgdHVpLW1vZGFsLXNpemUoJ2xhcmdlJywgJHR1aS1tb2RhbC1sYXJnZVNpemUpO1xyXG5cclxuLyohKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqISpcXFxyXG4gICEqKiogY3NzIC4vY2xpZW50L3Rvb2xpbmcvd2VicGFjay9jc3NfcmF3X2xvYWRlci5qcz8/Y2xvbmVkUnVsZVNldC0xNTYxLnVzZVsxXSEuL25vZGVfbW9kdWxlcy9wb3N0Y3NzLWxvYWRlci9kaXN0L2Nqcy5qcz8/Y2xvbmVkUnVsZVNldC0xNTYxLnVzZVsyXSEuL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvaW5kZXguanM/P3J1bGVTZXRbMF0udXNlWzBdIS4vY2xpZW50L2NvbXBvbmVudC90dWkvc3JjL2NvbXBvbmVudHMvbW9kYWwvTW9kYWxDb250ZW50LnZ1ZT92dWUmdHlwZT1zdHlsZSZpbmRleD0wJmlkPWI4N2I3ZDI2Jmxhbmc9c2NzcyAqKiohXHJcbiAgXFwqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXHJcbi50dWktbW9kYWxDb250ZW50IHtcclxuICBAaW5jbHVkZSBmb250KGJvZHkpO1xyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxuICBmbGV4LWdyb3c6IDE7XHJcbiAgbWluLWhlaWdodDogMDtcclxuXHJcbiAgJl9faGVhZGVyIHtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBmbGV4LXNocmluazogMDtcclxuICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xyXG4gICAgcGFkZGluZzogdmFyKC0tbW9kYWwtY29udGVudC1vdXRlci1wYWRkaW5nKTtcclxuICAgIHBhZGRpbmctYm90dG9tOiB2YXIoLS1nYXAtNCk7XHJcbiAgICAmLS1ub0JvdHRvbVBhZGRpbmcge1xyXG4gICAgICBwYWRkaW5nLWJvdHRvbTogMDtcclxuICAgIH1cclxuXHJcbiAgICAmLXRpdGxlIHtcclxuICAgICAgQGluY2x1ZGUgZm9udChoMyk7XHJcbiAgICAgIGZsZXgtZ3JvdzogMTtcclxuICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcclxuICAgICAgZm9udC13ZWlnaHQ6IDUwMDtcclxuXHJcbiAgICAgICYtLXNyb25seSB7XHJcbiAgICAgICAgQGluY2x1ZGUgc3Itb25seSgpO1xyXG4gICAgICB9XHJcblxyXG4gICAgICAmLS1zbWFsbCB7XHJcbiAgICAgICAgQGluY2x1ZGUgZm9udChoNCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAmLWJ1dHRvbnMge1xyXG4gICAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgICBtYXJnaW4tbGVmdDogYXV0bztcclxuICAgIH1cclxuICB9XHJcblxyXG4gICZfX2NvbnRlbnQge1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XHJcbiAgICBmbGV4LWdyb3c6IDE7XHJcbiAgICBtaW4taGVpZ2h0OiAwO1xyXG4gICAgcGFkZGluZzogdmFyKC0tZ2FwLTIpIHZhcigtLW1vZGFsLWNvbnRlbnQtb3V0ZXItcGFkZGluZyk7XHJcbiAgICBvdmVyZmxvdy15OiBhdXRvO1xyXG4gICAgJi0tbm9Ub3BQYWRkaW5nIHtcclxuICAgICAgcGFkZGluZy10b3A6IDA7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAmLS1ub0NvbnRlbnRQYWRkaW5nICZfX2NvbnRlbnQge1xyXG4gICAgcGFkZGluZzogMDtcclxuICB9XHJcblxyXG4gICZfX2Zvb3RlciB7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgZmxleC1zaHJpbms6IDA7XHJcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAgcGFkZGluZzogdmFyKC0tbW9kYWwtY29udGVudC1vdXRlci1wYWRkaW5nKTtcclxuICAgIHBhZGRpbmctdG9wOiB2YXIoLS1nYXAtNCk7XHJcbiAgICAmLWJ1dHRvbnMge1xyXG4gICAgICBtYXJnaW4tbGVmdDogYXV0bztcclxuICAgIH1cclxuICB9XHJcblxyXG4gICYgPiA6bGFzdC1jaGlsZCB7XHJcbiAgICBwYWRkaW5nLWJvdHRvbTogdmFyKC0tbW9kYWwtY29udGVudC1vdXRlci1wYWRkaW5nKTtcclxuICB9XHJcblxyXG4gICYtLW5vQ29udGVudFBhZGRpbmcge1xyXG4gICAgJiA+IDpsYXN0LWNoaWxkIHtcclxuICAgICAgcGFkZGluZy1ib3R0b206IDA7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG4vKiEqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiEqXFxcclxuICAhKioqIGNzcyAuL2NsaWVudC90b29saW5nL3dlYnBhY2svY3NzX3Jhd19sb2FkZXIuanM/P2Nsb25lZFJ1bGVTZXQtMTU2MS51c2VbMV0hLi9ub2RlX21vZHVsZXMvcG9zdGNzcy1sb2FkZXIvZGlzdC9janMuanM/P2Nsb25lZFJ1bGVTZXQtMTU2MS51c2VbMl0hLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2luZGV4LmpzPz9ydWxlU2V0WzBdLnVzZVswXSEuL2NsaWVudC9jb21wb25lbnQvdHVpL3NyYy9jb21wb25lbnRzL21vZGFsL01vZGFsSGVhZGVyQnV0dG9uLnZ1ZT92dWUmdHlwZT1zdHlsZSZpbmRleD0wJmlkPTVlMTQ0ZGRiJmxhbmc9c2NzcyAqKiohXHJcbiAgXFwqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cclxuLnR1aS1tb2RhbEhlYWRlckJ1dHRvbiB7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBmbGV4LXNocmluazogMDtcclxuICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xyXG4gIHdpZHRoOiByZW0tcHgoMjQpO1xyXG4gIGhlaWdodDogcmVtLXB4KDI0KTtcclxuICBjb2xvcjogdmFyKC0tY29sb3ItbmV1dHJhbC02KTtcclxuICBib3JkZXItcmFkaXVzOiB2YXIoLS1ib3JkZXItcmFkaXVzLXNtYWxsKTtcclxuICBjdXJzb3I6IHBvaW50ZXI7XHJcbiAgLXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTtcclxuICAgICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xyXG4gICY6aG92ZXIsXHJcbiAgJjpmb2N1cyxcclxuICAmOmFjdGl2ZSB7XHJcbiAgICBjb2xvcjogdmFyKC0tY29sb3ItbmV1dHJhbC03KTtcclxuICAgIGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLW5ldXRyYWwtMyk7XHJcbiAgfVxyXG4gICY6Zm9jdXMtdmlzaWJsZSB7XHJcbiAgICBAaW5jbHVkZSB0dWktZm9jdXMoKTtcclxuICB9XHJcbn1cclxuXHJcbi8qISoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqISpcXFxyXG4gICEqKiogY3NzIC4vY2xpZW50L3Rvb2xpbmcvd2VicGFjay9jc3NfcmF3X2xvYWRlci5qcz8/Y2xvbmVkUnVsZVNldC0xNTYxLnVzZVsxXSEuL25vZGVfbW9kdWxlcy9wb3N0Y3NzLWxvYWRlci9kaXN0L2Nqcy5qcz8/Y2xvbmVkUnVsZVNldC0xNTYxLnVzZVsyXSEuL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvaW5kZXguanM/P3J1bGVTZXRbMF0udXNlWzBdIS4vY2xpZW50L2NvbXBvbmVudC90dWkvc3JjL2NvbXBvbmVudHMvbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25CYW5uZXIudnVlP3Z1ZSZ0eXBlPXN0eWxlJmluZGV4PTAmaWQ9Yjg3MTJmMDYmbGFuZz1zY3NzICoqKiFcclxuICBcXCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xyXG5AbWl4aW4gdHVpLW5vdGlmaWNhdGlvbi1iYW5uZXItY29sb3IoJG5hbWUsICRjb2xvcikge1xyXG4gIC50dWktbm90aWZpY2F0aW9uQmFubmVyIHtcclxuICAgICYtLSN7JG5hbWV9IHtcclxuICAgICAgYm9yZGVyLWNvbG9yOiAkY29sb3I7XHJcbiAgICB9XHJcblxyXG4gICAgJi0tI3skbmFtZX0gJl9faWNvbiB7XHJcbiAgICAgIGJhY2tncm91bmQ6ICRjb2xvcjtcclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbi50dWktbm90aWZpY2F0aW9uQmFubmVyIHtcclxuICBAaW5jbHVkZSBmb250KGJvZHktc20pO1xyXG5cclxuICBkaXNwbGF5OiBmbGV4O1xyXG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLWJhY2tncm91bmQpO1xyXG4gIGJvcmRlcjogdmFyKC0tYm9yZGVyLXdpZHRoLXRoaW4pIHNvbGlkIHZhcigtLWNvbG9yLXByb21wdC1pbmZvKTtcclxuICBib3JkZXItcmFkaXVzOiB2YXIoLS1ib3JkZXItcmFkaXVzLXNtYWxsKTtcclxuXHJcbiAgJl9faWNvbiB7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgcGFkZGluZzogdmFyKC0tZ2FwLTQpO1xyXG4gICAgY29sb3I6IHZhcigtLWNvbG9yLW5ldXRyYWwtMSk7XHJcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci1wcm9tcHQtaW5mbyk7XHJcbiAgICAvKiAtMXB4IHRvIGF2b2lkIGlzc3VlIHdpdGggcmF6b3IgdGhpbiB3aGl0ZSBsaW5lIGJldHdlZW4gaWNvbiBjb250YWluZXIgYW5kIG5vdGlmaWNhdGlvbiBib3JkZXIqL1xyXG4gICAgLyogcHJldHRpZXItaWdub3JlKi9cclxuICAgIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IGNhbGModmFyKC0tYm9yZGVyLXJhZGl1cy1zbWFsbCkgLSB2YXIoLS1ib3JkZXItd2lkdGgtdGhpbikgLSAxcHgpO1xyXG4gICAgLyogcHJldHRpZXItaWdub3JlKi9cclxuICAgIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IGNhbGModmFyKC0tYm9yZGVyLXJhZGl1cy1zbWFsbCkgLSB2YXIoLS1ib3JkZXItd2lkdGgtdGhpbikgLSAxcHgpO1xyXG4gIH1cclxuXHJcbiAgJl9fYm9keSB7XHJcbiAgICBmbGV4LWdyb3c6IDE7XHJcbiAgfVxyXG5cclxuICAmX19tZXNzYWdlIHtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBmbGV4OiAxO1xyXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgIHBhZGRpbmc6IHZhcigtLWdhcC0zKTtcclxuXHJcbiAgICAmLS1pbmxpbmUge1xyXG4gICAgICBkaXNwbGF5OiBpbmxpbmU7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAmX19kaXNtaXNzIHtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcblxyXG4gICAgJl9idXR0b24ge1xyXG4gICAgICBjb2xvcjogdmFyKC0tY29sb3ItbmV1dHJhbC02KTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbkBpbmNsdWRlIHR1aS1ub3RpZmljYXRpb24tYmFubmVyLWNvbG9yKCdzdWNjZXNzJywgdmFyKC0tY29sb3ItcHJvbXB0LXN1Y2Nlc3MpKTtcclxuQGluY2x1ZGUgdHVpLW5vdGlmaWNhdGlvbi1iYW5uZXItY29sb3IoJ3dhcm5pbmcnLCB2YXIoLS1jb2xvci1wcm9tcHQtd2FybmluZykpO1xyXG5AaW5jbHVkZSB0dWktbm90aWZpY2F0aW9uLWJhbm5lci1jb2xvcignZXJyb3InLCB2YXIoLS1jb2xvci1wcm9tcHQtYWxlcnQpKTtcclxuXHJcbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6ICR0dWktc2NyZWVuLXNtKSB7XHJcbiAgLnR1aS1ub3RpZmljYXRpb25CYW5uZXIge1xyXG4gICAgQGluY2x1ZGUgZm9udChib2R5KTtcclxuXHJcbiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1ib3JkZXItcmFkaXVzLW5vcm1hbCk7XHJcblxyXG4gICAgJl9faWNvbiB7XHJcbiAgICAgIC8qIC0xcHggdG8gYXZvaWQgaXNzdWUgd2l0aCByYXpvciB0aGluIHdoaXRlIGxpbmUgYmV0d2VlbiBpY29uIGNvbnRhaW5lciBhbmQgbm90aWZpY2F0aW9uIGJvcmRlciovXHJcbiAgICAgIC8qIHByZXR0aWVyLWlnbm9yZSovXHJcbiAgICAgIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IGNhbGModmFyKC0tYm9yZGVyLXJhZGl1cy1ub3JtYWwpIC0gdmFyKC0tYm9yZGVyLXdpZHRoLXRoaW4pIC0gMXB4KTtcclxuICAgICAgLyogcHJldHRpZXItaWdub3JlKi9cclxuICAgICAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogY2FsYyh2YXIoLS1ib3JkZXItcmFkaXVzLW5vcm1hbCkgLSB2YXIoLS1ib3JkZXItd2lkdGgtdGhpbikgLSAxcHgpO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuLyohKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiEqXFxcclxuICAhKioqIGNzcyAuL2NsaWVudC90b29saW5nL3dlYnBhY2svY3NzX3Jhd19sb2FkZXIuanM/P2Nsb25lZFJ1bGVTZXQtMTU2MS51c2VbMV0hLi9ub2RlX21vZHVsZXMvcG9zdGNzcy1sb2FkZXIvZGlzdC9janMuanM/P2Nsb25lZFJ1bGVTZXQtMTU2MS51c2VbMl0hLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2luZGV4LmpzPz9ydWxlU2V0WzBdLnVzZVswXSEuL2NsaWVudC9jb21wb25lbnQvdHVpL3NyYy9jb21wb25lbnRzL25vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uVG9hc3QudnVlP3Z1ZSZ0eXBlPXN0eWxlJmluZGV4PTAmaWQ9NTY2Nzk1MzQmbGFuZz1zY3NzICoqKiFcclxuICBcXCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXHJcbkBtaXhpbiB0dWktbm90aWZpY2F0aW9uLXRvYXN0LWNvbG9yKCRuYW1lLCAkY29sb3IpIHtcclxuICAudHVpLW5vdGlmaWNhdGlvblRvYXN0IHtcclxuICAgICYtLSN7JG5hbWV9IHtcclxuICAgICAgYmFja2dyb3VuZDogJGNvbG9yO1xyXG4gICAgfVxyXG5cclxuICAgICYtLSN7JG5hbWV9ICZfX2ljb24ge1xyXG4gICAgICBiYWNrZ3JvdW5kOiAkY29sb3I7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG4udHVpLW5vdGlmaWNhdGlvblRvYXN0IHtcclxuICBAaW5jbHVkZSBmb250KGJvZHktc20pO1xyXG5cclxuICBkaXNwbGF5OiBmbGV4O1xyXG4gIGNvbG9yOiB2YXIoLS10b2FzdC1jb2xvci10ZXh0KTtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci1wcm9tcHQtc3VjY2Vzcyk7XHJcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tYm9yZGVyLXJhZGl1cy1zbWFsbCk7XHJcbiAgYm94LXNoYWRvdzogdmFyKC0tc2hhZG93LTMpO1xyXG5cclxuICAmX19pY29uIHtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAgcGFkZGluZzogdmFyKC0tZ2FwLTQpIDAgdmFyKC0tZ2FwLTQpIHZhcigtLWdhcC00KTtcclxuICAgIGNvbG9yOiB2YXIoLS1jb2xvci1uZXV0cmFsLTEpO1xyXG4gICAgYmFja2dyb3VuZDogdmFyKC0tY29sb3ItcHJvbXB0LXN1Y2Nlc3MpO1xyXG4gICAgLyogLTFweCB0byBhdm9pZCBpc3VlIHdpdGggcmF6b3IgdGhpbiB3aGl0ZSBsaW5lIGJldHdlZW4gaWNvbiBjb250YWluZXIgYW5kIG5vdGlmaWNhdGlvbiBib3JkZXIqL1xyXG4gICAgLyogcHJldHRpZXItaWdub3JlKi9cclxuICAgIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IGNhbGModmFyKC0tYm9yZGVyLXJhZGl1cy1zbWFsbCkgLSB2YXIoLS1ib3JkZXItd2lkdGgtdGhpbikgLSAxcHgpO1xyXG4gICAgLyogcHJldHRpZXItaWdub3JlKi9cclxuICAgIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IGNhbGModmFyKC0tYm9yZGVyLXJhZGl1cy1zbWFsbCkgLSB2YXIoLS1ib3JkZXItd2lkdGgtdGhpbikgLSAxcHgpO1xyXG4gIH1cclxuXHJcbiAgJl9fbWVzc2FnZSB7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgZmxleDogMTtcclxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICBwYWRkaW5nOiB2YXIoLS1nYXAtNCkgdmFyKC0tZ2FwLTIpO1xyXG4gIH1cclxuXHJcbiAgJl9fZGlzbWlzcyB7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG5cclxuICAgICZfYnV0dG9uIHtcclxuICAgICAgY29sb3I6IHZhcigtLWNvbG9yLW5ldXRyYWwtMyk7XHJcblxyXG4gICAgICAmOmhvdmVyIHtcclxuICAgICAgICBjb2xvcjogdmFyKC0tY29sb3ItbmV1dHJhbC0xKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuQGluY2x1ZGUgdHVpLW5vdGlmaWNhdGlvbi10b2FzdC1jb2xvcignZXJyb3InLCB2YXIoLS1jb2xvci1wcm9tcHQtYWxlcnQpKTtcclxuXHJcbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6ICR0dWktc2NyZWVuLXNtKSB7XHJcbiAgLnR1aS1ub3RpZmljYXRpb25Ub2FzdCB7XHJcbiAgICBAaW5jbHVkZSBmb250KGJvZHkpO1xyXG4gICAgY29sb3I6IHZhcigtLXRvYXN0LWNvbG9yLXRleHQpO1xyXG5cclxuICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLWJvcmRlci1yYWRpdXMtbm9ybWFsKTtcclxuXHJcbiAgICAmX19pY29uIHtcclxuICAgICAgLyogLTFweCB0byBhdm9pZCBpc3VlIHdpdGggcmF6b3IgdGhpbiB3aGl0ZSBsaW5lIGJldHdlZW4gaWNvbiBjb250YWluZXIgYW5kIG5vdGlmaWNhdGlvbiBib3JkZXIqL1xyXG4gICAgICAvKiBwcmV0dGllci1pZ25vcmUqL1xyXG4gICAgICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiBjYWxjKHZhcigtLWJvcmRlci1yYWRpdXMtbm9ybWFsKSAtIHZhcigtLWJvcmRlci13aWR0aC10aGluKSAtIDFweCk7XHJcbiAgICAgIC8qIHByZXR0aWVyLWlnbm9yZSovXHJcbiAgICAgIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IGNhbGModmFyKC0tYm9yZGVyLXJhZGl1cy1ub3JtYWwpIC0gdmFyKC0tYm9yZGVyLXdpZHRoLXRoaW4pIC0gMXB4KTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbi8qISoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiohKlxcXHJcbiAgISoqKiBjc3MgLi9jbGllbnQvdG9vbGluZy93ZWJwYWNrL2Nzc19yYXdfbG9hZGVyLmpzPz9jbG9uZWRSdWxlU2V0LTE1NjEudXNlWzFdIS4vbm9kZV9tb2R1bGVzL3Bvc3Rjc3MtbG9hZGVyL2Rpc3QvY2pzLmpzPz9jbG9uZWRSdWxlU2V0LTE1NjEudXNlWzJdIS4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9pbmRleC5qcz8/cnVsZVNldFswXS51c2VbMF0hLi9jbGllbnQvY29tcG9uZW50L3R1aS9zcmMvY29tcG9uZW50cy9ub3RpZmljYXRpb25zL1RvYXN0Q29udGFpbmVyLnZ1ZT92dWUmdHlwZT1zdHlsZSZpbmRleD0wJmlkPTliNzdmZmMwJmxhbmc9c2NzcyAqKiohXHJcbiAgXFwqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xyXG4udHVpLXRvYXN0Q29udGFpbmVyIHtcclxuICBwb3NpdGlvbjogZml4ZWQ7XHJcbiAgdG9wOiB2YXIoLS1nYXAtNik7XHJcbiAgcmlnaHQ6IDA7XHJcbiAgbGVmdDogMDtcclxuICB6LWluZGV4OiB2YXIoLS16aW5kZXgtdG9hc3QpO1xyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XHJcblxyXG4gICZfX2lubmVyIHtcclxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgIGZsZXgtYmFzaXM6IDMwMHB4O1xyXG4gICAgcG9pbnRlci1ldmVudHM6IGF1dG87XHJcbiAgfVxyXG5cclxuICAmX19pdGVtLXRyYW5zaXRpb24ge1xyXG4gICAgJi1lbnRlci1hY3RpdmUsXHJcbiAgICAmLWxlYXZlLWFjdGl2ZSB7XHJcbiAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlLW91dDtcclxuICAgIH1cclxuXHJcbiAgICAmLWVudGVyLFxyXG4gICAgJi1sZWF2ZS10byB7XHJcbiAgICAgIG9wYWNpdHk6IDA7XHJcbiAgICB9XHJcblxyXG4gICAgJi1sZWF2ZS1hY3RpdmUge1xyXG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAgIHJpZ2h0OiAwO1xyXG4gICAgICBsZWZ0OiAwO1xyXG4gICAgICBvcGFjaXR5OiAwO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogJHR1aS1zY3JlZW4tc20pIHtcclxuICAudHVpLXRvYXN0Q29udGFpbmVyIHtcclxuICAgICZfX2lubmVyIHtcclxuICAgICAgZmxleC1iYXNpczogNTAwcHg7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG4vKiEqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiohKlxcXHJcbiAgISoqKiBjc3MgLi9jbGllbnQvdG9vbGluZy93ZWJwYWNrL2Nzc19yYXdfbG9hZGVyLmpzPz9jbG9uZWRSdWxlU2V0LTE1NjEudXNlWzFdIS4vbm9kZV9tb2R1bGVzL3Bvc3Rjc3MtbG9hZGVyL2Rpc3QvY2pzLmpzPz9jbG9uZWRSdWxlU2V0LTE1NjEudXNlWzJdIS4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9pbmRleC5qcz8/cnVsZVNldFswXS51c2VbMF0hLi9jbGllbnQvY29tcG9uZW50L3R1aS9zcmMvY29tcG9uZW50cy9vdmVyZmxvd19jb250YWluZXIvT3ZlcmZsb3dDb250YWluZXIudnVlP3Z1ZSZ0eXBlPXN0eWxlJmluZGV4PTAmaWQ9NjI4NDQxZGEmbGFuZz1zY3NzICoqKiFcclxuICBcXCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cclxuLnR1aS1vdmVyZmxvd0NvbnRhaW5lciB7XHJcbiAgJl9fY29udGFpbmVyIHtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcblxyXG4gICAgPiAqICsgKiB7XHJcbiAgICAgIG1hcmdpbi1sZWZ0OiB2YXIoLS1nYXAtNCk7XHJcblxyXG4gICAgICAudHVpLW92ZXJmbG93Q29udGFpbmVyLS13aWRlICYge1xyXG4gICAgICAgIG1hcmdpbi1sZWZ0OiB2YXIoLS1nYXAtNik7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gICZfX2NvbnRhaW5lckl0ZW0ge1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGZsZXgtYmFzaXM6IDIwMHB4O1xyXG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxuICAgIGZsZXgtZ3JvdzogMTtcclxuICAgIGZsZXgtc2hyaW5rOiAxO1xyXG4gICAgbWluLXdpZHRoOiAxOThweDtcclxuICAgIG1heC13aWR0aDogMjQ4cHg7XHJcblxyXG4gICAgPiAqIHtcclxuICAgICAgZmxleC1ncm93OiAxO1xyXG4gICAgfVxyXG5cclxuICAgICYtLXBvc3Qge1xyXG4gICAgICBjb2xvcjogdmFyKC0tY29sb3Itc3RhdGUpO1xyXG5cclxuICAgICAgLnR1aS1vdmVyZmxvd0NvbnRhaW5lcl9fY29udGFpbmVySXRlbSB7XHJcbiAgICAgICAgJi12aWV3QWxsIHtcclxuICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG4gICAgICAgICAgZmxleC1ncm93OiAxO1xyXG4gICAgICAgICAgbWFyZ2luOiBhdXRvIDA7XHJcbiAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci1uZXV0cmFsLTMpO1xyXG5cclxuICAgICAgICAgICYtLW9ubHkge1xyXG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAyMDBweDtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgICYtdmlld0FsbEljb24ge1xyXG4gICAgICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgICAgICB3aWR0aDogNDhweDtcclxuICAgICAgICAgIGhlaWdodDogNDhweDtcclxuICAgICAgICAgIG1hcmdpbjogYXV0byBhdXRvIDAgYXV0bztcclxuICAgICAgICAgIHBhZGRpbmc6IDEwcHg7XHJcbiAgICAgICAgICBmb250LXNpemU6IGZvbnQtc2l6ZS1weCgyNCk7XHJcbiAgICAgICAgICBib3JkZXI6IHZhcigtLWJvcmRlci13aWR0aC10aGluKSBzb2xpZCB2YXIoLS1jb2xvci1zdGF0ZSk7XHJcbiAgICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAmLXZpZXdBbGxBY3Rpb24ge1xyXG4gICAgICAgICAgbWFyZ2luOiB2YXIoLS1nYXAtMikgMCBhdXRvO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgJi1saW5rIHtcclxuICAgICAgICAgIG91dGxpbmU6IDA7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG4vKiEqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqISpcXFxyXG4gICEqKiogY3NzIC4vY2xpZW50L3Rvb2xpbmcvd2VicGFjay9jc3NfcmF3X2xvYWRlci5qcz8/Y2xvbmVkUnVsZVNldC0xNTYxLnVzZVsxXSEuL25vZGVfbW9kdWxlcy9wb3N0Y3NzLWxvYWRlci9kaXN0L2Nqcy5qcz8/Y2xvbmVkUnVsZVNldC0xNTYxLnVzZVsyXSEuL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvaW5kZXguanM/P3J1bGVTZXRbMF0udXNlWzBdIS4vY2xpZW50L2NvbXBvbmVudC90dWkvc3JjL2NvbXBvbmVudHMvcGFnaW5nL1BhZ2luZy52dWU/dnVlJnR5cGU9c3R5bGUmaW5kZXg9MCZpZD0xMGZiZGRjMCZsYW5nPXNjc3MgKioqIVxyXG4gIFxcKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cclxuLnR1aS1wYWdpbmcge1xyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbiAgZmxleC13cmFwOiB3cmFwO1xyXG5cclxuICAmX19wZXJQYWdlIHtcclxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xyXG4gICAgZmxleC1ncm93OiAxO1xyXG4gICAgZmxleC1zaHJpbms6IDA7XHJcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAgbWFyZ2luOiBhdXRvIDA7XHJcblxyXG4gICAgJi1sYWJlbCB7XHJcbiAgICAgIG1hcmdpbjogYXV0byB2YXIoLS1nYXAtMykgYXV0byAwO1xyXG4gICAgfVxyXG5cclxuICAgICYtc2VsZWN0IHtcclxuICAgICAgZmxleDogcmVtLXB4KDcwKSAwIDA7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAmX19zZWxlY3RvciB7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgZmxleC1zaHJpbms6IDA7XHJcbiAgICBtYXJnaW46IGF1dG8gMDtcclxuXHJcbiAgICAmLW51bWJlciB7XHJcbiAgICAgIG1pbi13aWR0aDogNDBweDtcclxuICAgICAgbWluLWhlaWdodDogNDBweDtcclxuICAgICAgbWFyZ2luOiBhdXRvIDA7XHJcbiAgICAgIHBhZGRpbmc6IHZhcigtLWdhcC00KTtcclxuXHJcbiAgICAgICYtLWN1cnJlbnQge1xyXG4gICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAmX19kaXJlY3Qge1xyXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XHJcbiAgICBmbGV4LXNocmluazogMDtcclxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICBtYXJnaW46IGF1dG8gMDtcclxuICAgIHBhZGRpbmctbGVmdDogdmFyKC0tZ2FwLTQpO1xyXG4gICAgYm9yZGVyLWxlZnQ6IHZhcigtLWJvcmRlci13aWR0aC10aGluKSBzb2xpZCB2YXIoLS1jb2xvci1uZXV0cmFsLTUpO1xyXG5cclxuICAgIC50dWktcGFnaW5nLS1uYXJyb3cgJiB7XHJcbiAgICAgIHBhZGRpbmctbGVmdDogMDtcclxuICAgICAgYm9yZGVyLWxlZnQ6IG5vbmU7XHJcbiAgICB9XHJcblxyXG4gICAgJi1sYWJlbCB7XHJcbiAgICAgIG1hcmdpbjogYXV0byB2YXIoLS1nYXAtMikgYXV0byAwO1xyXG4gICAgfVxyXG5cclxuICAgICYgJi1wYWdlW3R5cGVdIHtcclxuICAgICAgbWFyZ2luOiBhdXRvIHZhcigtLWdhcC0xKSBhdXRvIDA7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAmX19sb2FkaW5nIHtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gIH1cclxufVxyXG5cclxuLyohKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqISpcXFxyXG4gICEqKiogY3NzIC4vY2xpZW50L3Rvb2xpbmcvd2VicGFjay9jc3NfcmF3X2xvYWRlci5qcz8/Y2xvbmVkUnVsZVNldC0xNTYxLnVzZVsxXSEuL25vZGVfbW9kdWxlcy9wb3N0Y3NzLWxvYWRlci9kaXN0L2Nqcy5qcz8/Y2xvbmVkUnVsZVNldC0xNTYxLnVzZVsyXSEuL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvaW5kZXguanM/P3J1bGVTZXRbMF0udXNlWzBdIS4vY2xpZW50L2NvbXBvbmVudC90dWkvc3JjL2NvbXBvbmVudHMvcG9wb3Zlci9Qb3BvdmVyLnZ1ZT92dWUmdHlwZT1zdHlsZSZpbmRleD0wJmlkPTczOGQwOWU4Jmxhbmc9c2NzcyAqKiohXHJcbiAgXFwqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXHJcbi50dWktcG9wb3ZlciB7XHJcbiAgJl9fd3JhcCB7XHJcbiAgICAmLS12YWxpZ24ge1xyXG4gICAgICAmLWNlbnRlciB7XHJcbiAgICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG4vKiEqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiEqXFxcclxuICAhKioqIGNzcyAuL2NsaWVudC90b29saW5nL3dlYnBhY2svY3NzX3Jhd19sb2FkZXIuanM/P2Nsb25lZFJ1bGVTZXQtMTU2MS51c2VbMV0hLi9ub2RlX21vZHVsZXMvcG9zdGNzcy1sb2FkZXIvZGlzdC9janMuanM/P2Nsb25lZFJ1bGVTZXQtMTU2MS51c2VbMl0hLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2luZGV4LmpzPz9ydWxlU2V0WzBdLnVzZVswXSEuL2NsaWVudC9jb21wb25lbnQvdHVpL3NyYy9jb21wb25lbnRzL3BvcG92ZXIvUG9wb3ZlckZyYW1lLnZ1ZT92dWUmdHlwZT1zdHlsZSZpbmRleD0wJmlkPTY2MmI1ZDcxJmxhbmc9c2NzcyAqKiohXHJcbiAgXFwqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cclxuLnR1aS1wb3BvdmVyRnJhbWUge1xyXG4gIEBpbmNsdWRlIGZvbnQoYm9keSk7XHJcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gIG1heC13aWR0aDogMzAwcHg7XHJcbiAgLyogbWFyZ2luIG11c3QgYmUgZXF1YWwgb24gYWxsIDQgc2lkZXMsIGFuZCBtdXN0IG5vdCBjaGFuZ2Ugd2l0aCBwb3NpdGlvbiovXHJcbiAgbWFyZ2luOiAxMHB4O1xyXG4gIHBhZGRpbmc6IHZhcigtLWdhcC00KTtcclxuICBiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci1iYWNrZ3JvdW5kKTtcclxuICBiYWNrZ3JvdW5kLWNsaXA6IHBhZGRpbmctYm94O1xyXG4gIGJveC1zaGFkb3c6IHZhcigtLXNoYWRvdy0zKTtcclxuXHJcbiAgJjo6YmVmb3JlIHtcclxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgIHRvcDogMDtcclxuICAgIGxlZnQ6IDA7XHJcbiAgICB6LWluZGV4OiAtMTtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgaGVpZ2h0OiAxMDAlO1xyXG4gICAgYm94LXNoYWRvdzogMCAwIDAgMXB4IHZhcigtLWNvbG9yLW5ldXRyYWwtNSk7XHJcbiAgICBjb250ZW50OiAnJztcclxuICB9XHJcblxyXG4gICYtLXNpemUtc20ge1xyXG4gICAgd2lkdGg6IDI1MHB4O1xyXG4gICAgbWF4LXdpZHRoOiBub25lO1xyXG4gIH1cclxuXHJcbiAgJi0tc2l6ZS1tZCB7XHJcbiAgICB3aWR0aDogMzAwcHg7XHJcbiAgICBtYXgtd2lkdGg6IG5vbmU7XHJcbiAgfVxyXG5cclxuICAmLS1zaXplLWxnIHtcclxuICAgIHdpZHRoOiA5NXZ3O1xyXG4gICAgbWF4LXdpZHRoOiBub25lO1xyXG5cclxuICAgIEBtZWRpYSAobWluLXdpZHRoOiA2MDBweCkge1xyXG4gICAgICB3aWR0aDogNTYwcHg7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAmLS1zbGltIHtcclxuICAgIHBhZGRpbmc6IHZhcigtLWdhcC0yKTtcclxuICB9XHJcblxyXG4gICZfX2Nsb3NlIHtcclxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgIHRvcDogMDtcclxuICAgIHJpZ2h0OiAwO1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIHBhZGRpbmc6IGNhbGMoI3tyZW0tcHgoMTQpfSAtIDAuMWVtKSBjYWxjKCN7cmVtLXB4KDE0KX0gLSAwLjNlbSk7XHJcbiAgfVxyXG5cclxuICAmX190aXRsZSB7XHJcbiAgICBAaW5jbHVkZSBmb250KGg0KTtcclxuICAgIHBhZGRpbmctdG9wOiB2YXIoLS1nYXAtMik7XHJcbiAgICBwYWRkaW5nLXJpZ2h0OiB2YXIoLS1nYXAtNCk7XHJcbiAgfVxyXG5cclxuICAmX19jb250ZW50IHtcclxuICAgIG1heC1oZWlnaHQ6IDgwdmg7XHJcbiAgICBtYXJnaW4tdG9wOiB2YXIoLS1nYXAtNCk7XHJcbiAgICBwYWRkaW5nOiAwIHZhcigtLWdhcC00KSB2YXIoLS1nYXAtMikgMDtcclxuICAgIG92ZXJmbG93OiBhdXRvO1xyXG5cclxuICAgICYgaW1nIHtcclxuICAgICAgbWF4LXdpZHRoOiAxMDAlO1xyXG4gICAgfVxyXG5cclxuICAgICYtLXNsaW0sXHJcbiAgICAmLS1ub1BhZGRpbmcge1xyXG4gICAgICBwYWRkaW5nOiAwO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgJl9fdGl0bGUgKyAmX19jb250ZW50LFxyXG4gICZfX2NvbnRlbnQtLW5vbkNsb3NhYmxlIHtcclxuICAgIHBhZGRpbmctcmlnaHQ6IDA7XHJcbiAgfVxyXG5cclxuICAmX19idXR0b25zIHtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBmbGV4LXdyYXA6IHdyYXA7XHJcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xyXG4gICAgcGFkZGluZy10b3A6IHZhcigtLWdhcC0xKTtcclxuICAgIHBhZGRpbmctYm90dG9tOiB2YXIoLS1nYXAtMyk7XHJcblxyXG4gICAgPiAqIHtcclxuICAgICAgbWFyZ2luLXRvcDogdmFyKC0tZ2FwLTIpO1xyXG4gICAgfVxyXG5cclxuICAgID4gKiArICoge1xyXG4gICAgICBtYXJnaW4tbGVmdDogdmFyKC0tZ2FwLTQpO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuLyohKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiEqXFxcclxuICAhKioqIGNzcyAuL2NsaWVudC90b29saW5nL3dlYnBhY2svY3NzX3Jhd19sb2FkZXIuanM/P2Nsb25lZFJ1bGVTZXQtMTU2MS51c2VbMV0hLi9ub2RlX21vZHVsZXMvcG9zdGNzcy1sb2FkZXIvZGlzdC9janMuanM/P2Nsb25lZFJ1bGVTZXQtMTU2MS51c2VbMl0hLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2luZGV4LmpzPz9ydWxlU2V0WzBdLnVzZVswXSEuL2NsaWVudC9jb21wb25lbnQvdHVpL3NyYy9jb21wb25lbnRzL3BvcG92ZXIvUG9wb3ZlclBvc2l0aW9uZXIudnVlP3Z1ZSZ0eXBlPXN0eWxlJmluZGV4PTAmaWQ9YjE3YWVhN2MmbGFuZz1zY3NzICoqKiFcclxuICBcXCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXHJcbi50dWktcG9wb3ZlclBvc2l0aW9uZXIge1xyXG4gIC8qIG5vdGU6IHBvc2l0aW9uOiBhYnNvbHV0ZSArIHotaW5kZXggdHJpZ2dlcnMgYSBuZXcgc3RhY2tpbmcgY29udGV4dCovXHJcbiAgLyogdGhpcyBhbGxvd3MgdXMgdG8gZXNjYXBlIGZyb20gb3ZlcmZsb3c6IGhpZGRlbi4qL1xyXG4gIC8qIGJlY2F1c2Ugc3RhY2tpbmcgY29udGV4dHMgY2FuIGJlIG5lc3RlZCwgdGhpcyB3aWxsIHN0aWxsIHdvcmsgY29ycmVjdGx5Ki9cclxuICAvKiBldmVuIGluc2lkZSBtb2RhbHMsIHdoaWNoIGhhdmUgYSBoaWdoZXIgei1pbmRleCovXHJcbiAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gIHRvcDogMDtcclxuICAvKiFydGw6aWdub3JlKi9cclxuICBsZWZ0OiAwO1xyXG4gIHotaW5kZXg6IHZhcigtLXppbmRleC1wb3BvdmVyKTtcclxuICB3aWR0aDogYXV0bztcclxuICBAaW5jbHVkZSBmb250KGJvZHkpO1xyXG5cclxuICAmLS1maXhlZCB7XHJcbiAgICBwb3NpdGlvbjogZml4ZWQ7XHJcbiAgfVxyXG5cclxuICAmLS10cmFuc2l0aW9uLWRlZmF1bHQge1xyXG4gICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjJzO1xyXG4gIH1cclxuXHJcbiAgJi0tdHJhbnNpdGlvbi1kZWZhdWx0LWVudGVyLFxyXG4gICYtLXRyYW5zaXRpb24tZGVmYXVsdC1sZWF2ZS10byB7XHJcbiAgICBvcGFjaXR5OiAwO1xyXG4gIH1cclxuXHJcbiAgJi0tdHJhbnNpdGlvbi1kcm9wZG93biB7XHJcbiAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDBzO1xyXG4gIH1cclxuXHJcbiAgJi0tdHJhbnNpdGlvbi1kcm9wZG93bi1lbnRlcixcclxuICAmLS10cmFuc2l0aW9uLWRyb3Bkb3duLWxlYXZlLXRvIHtcclxuICAgIG9wYWNpdHk6IDA7XHJcbiAgfVxyXG5cclxuICAmLS10cmFuc2l0aW9uLWRyb3Bkb3duLWxlYXZlLXRvIHtcclxuICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4xNXM7XHJcbiAgfVxyXG59XHJcblxyXG4udHVpLW1vZGFsLS1hbmltYXRlZCAudHVpLXBvcG92ZXJQb3NpdGlvbmVyIHtcclxuICBkaXNwbGF5OiBub25lO1xyXG59XHJcbi50dWktbW9kYWwtLWFuaW1hdGVkLnR1aS1tb2RhbC0taW4gLnR1aS1wb3BvdmVyUG9zaXRpb25lciB7XHJcbiAgZGlzcGxheTogYmxvY2s7XHJcbn1cclxuXHJcbi8qISoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiEqXFxcclxuICAhKioqIGNzcyAuL2NsaWVudC90b29saW5nL3dlYnBhY2svY3NzX3Jhd19sb2FkZXIuanM/P2Nsb25lZFJ1bGVTZXQtMTU2MS51c2VbMV0hLi9ub2RlX21vZHVsZXMvcG9zdGNzcy1sb2FkZXIvZGlzdC9janMuanM/P2Nsb25lZFJ1bGVTZXQtMTU2MS51c2VbMl0hLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2luZGV4LmpzPz9ydWxlU2V0WzBdLnVzZVswXSEuL2NsaWVudC9jb21wb25lbnQvdHVpL3NyYy9jb21wb25lbnRzL3BvcG92ZXIvVG9vbHRpcC52dWU/dnVlJnR5cGU9c3R5bGUmaW5kZXg9MCZpZD0yYTYxZTUyYyZsYW5nPXNjc3MgKioqIVxyXG4gIFxcKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xyXG4udHVpLXRvb2x0aXAge1xyXG4gICZfX2JvZHkge1xyXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgd2lkdGg6IC13ZWJraXQtbWF4LWNvbnRlbnQ7XHJcbiAgICB3aWR0aDogbWF4LWNvbnRlbnQ7XHJcbiAgICBtYXgtd2lkdGg6IDgwdnc7XHJcbiAgICBtYXJnaW46IDEwcHg7IC8qIGFycm93IHNpemUqL1xyXG4gICAgcGFkZGluZzogZ2FwKDIpIGdhcCgzKTtcclxuICAgIGNvbG9yOiB2YXIoLS1jb2xvci1uZXV0cmFsLTEpO1xyXG4gICAgb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDtcclxuICAgIGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLW5ldXRyYWwtNyk7XHJcbiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1ib3JkZXItcmFkaXVzLXNtYWxsKTtcclxuXHJcbiAgICAvKiBzd2l0Y2ggd2hlbiAzMDBweCB3b3VsZCBiZSA4MCUgb2YgdGhlIHZpZXdwb3J0ICg4MHZ3KSB0byBhdm9pZCBqdW1wKi9cclxuICAgIEBtZWRpYSAobWluLXdpZHRoOiByZW0tcHgoMzAwIC8gMC44KSkge1xyXG4gICAgICBtYXgtd2lkdGg6IHJlbS1weCgzMDApO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuLyohKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiohKlxcXHJcbiAgISoqKiBjc3MgLi9jbGllbnQvdG9vbGluZy93ZWJwYWNrL2Nzc19yYXdfbG9hZGVyLmpzPz9jbG9uZWRSdWxlU2V0LTE1NjEudXNlWzFdIS4vbm9kZV9tb2R1bGVzL3Bvc3Rjc3MtbG9hZGVyL2Rpc3QvY2pzLmpzPz9jbG9uZWRSdWxlU2V0LTE1NjEudXNlWzJdIS4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9pbmRleC5qcz8/cnVsZVNldFswXS51c2VbMF0hLi9jbGllbnQvY29tcG9uZW50L3R1aS9zcmMvY29tcG9uZW50cy9wcm9maWxlL01pbmlQcm9maWxlQ2FyZC52dWU/dnVlJnR5cGU9c3R5bGUmaW5kZXg9MCZpZD0yZjY0ZGI2ZCZsYW5nPXNjc3MgKioqIVxyXG4gIFxcKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXHJcbi50dWktbWluaVByb2ZpbGVDYXJkIHtcclxuICAvKiBUaGUgcGFyZW50IHdobyB1c2VzIHRoaXMgY2FyZCBkZWNpZGVzIHRoZSB3aWR0aC9oZWlnaHQuKi9cclxuICBkaXNwbGF5OiBmbGV4O1xyXG4gIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xyXG4gIHBhZGRpbmc6IHZhcigtLWdhcC0yKTtcclxuICBvdXRsaW5lOiBub25lO1xyXG5cclxuICAmLS1uby1hdmF0YXIge1xyXG4gICAgcGFkZGluZy1sZWZ0OiB2YXIoLS1nYXAtNCk7XHJcbiAgfVxyXG5cclxuICAmLS1uby1kcm9wZG93biB7XHJcbiAgICBwYWRkaW5nLXJpZ2h0OiB2YXIoLS1nYXAtNCk7XHJcbiAgfVxyXG5cclxuICAmLS1uby1wYWRkaW5nIHtcclxuICAgIC8qIFJlc2V0IHBhZGRpbmcgdG8gemVyby4qL1xyXG4gICAgcGFkZGluZzogMDtcclxuICB9XHJcblxyXG4gICYtLWJvcmRlciB7XHJcbiAgICBib3JkZXI6IHZhcigtLWJvcmRlci13aWR0aC10aGluKSBzb2xpZCB2YXIoLS1jb2xvci1uZXV0cmFsLTUpO1xyXG4gICAgYm9yZGVyLXJhZGl1czogdmFyKC0tYm9yZGVyLXJhZGl1cy1ub3JtYWwpO1xyXG4gIH1cclxuXHJcbiAgJi0taGFzU2hhZG93IHtcclxuICAgIGJveC1zaGFkb3c6IHZhcigtLXNoYWRvdy0yKTtcclxuICB9XHJcblxyXG4gICZfX2F2YXRhciB7XHJcbiAgICBtYXJnaW4tcmlnaHQ6IHZhcigtLWdhcC0yKTtcclxuICB9XHJcblxyXG4gICYtLWhvcml6b250YWwge1xyXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICB9XHJcblxyXG4gICZfX2Rlc2NyaXB0aW9uIHtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBmbGV4OiAxO1xyXG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxuICAgIG92ZXJmbG93OiBoaWRkZW47XHJcblxyXG4gICAgJi0taG9yaXpvbnRhbCB7XHJcbiAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XHJcbiAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcclxuXHJcbiAgICAgICYgPiAqICsgKiB7XHJcbiAgICAgICAgcGFkZGluZy1sZWZ0OiB2YXIoLS1nYXAtNCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAmLS1ob3Jpem9udGFsSXRlbXMtMSB7XHJcbiAgICAgICYgPiAqIHtcclxuICAgICAgICB3aWR0aDogMTAwJTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgICYtLWhvcml6b250YWxJdGVtcy0yIHtcclxuICAgICAgJiA+ICoge1xyXG4gICAgICAgIHdpZHRoOiA1MCU7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAmLS1ob3Jpem9udGFsSXRlbXMtMyB7XHJcbiAgICAgICYgPiAqIHtcclxuICAgICAgICB3aWR0aDogMzMlO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgJi0taG9yaXpvbnRhbEl0ZW1zLTQge1xyXG4gICAgICAmID4gKiB7XHJcbiAgICAgICAgd2lkdGg6IDI1JTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgJl9fcm93IHtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG5cclxuICAgICYtdGV4dCB7XHJcbiAgICAgIEBpbmNsdWRlIGZvbnQoYm9keS1zbSk7XHJcbiAgICAgIG1hcmdpbjogMDtcclxuICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcclxuICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcclxuICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XHJcblxyXG4gICAgICAmLS1ib2xkIHtcclxuICAgICAgICBmb250LXdlaWdodDogYm9sZDtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgICYtbGluayB7XHJcbiAgICAgIEBpbmNsdWRlIGZvbnQoYm9keS1zbSk7XHJcbiAgICAgIG1hcmdpbjogMDtcclxuICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcclxuICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcclxuICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XHJcblxyXG4gICAgICAmLS1ib2xkIHtcclxuICAgICAgICBmb250LXdlaWdodDogYm9sZDtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgICYtLXdpdGhHYXAge1xyXG4gICAgICBtYXJnaW4tYm90dG9tOiB2YXIoLS1nYXAtMSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAmX19kcm9wRG93biB7XHJcbiAgICBtYXJnaW4tbGVmdDogdmFyKC0tZ2FwLTQpO1xyXG4gIH1cclxufVxyXG5cclxuLyohKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiohKlxcXHJcbiAgISoqKiBjc3MgLi9jbGllbnQvdG9vbGluZy93ZWJwYWNrL2Nzc19yYXdfbG9hZGVyLmpzPz9jbG9uZWRSdWxlU2V0LTE1NjEudXNlWzFdIS4vbm9kZV9tb2R1bGVzL3Bvc3Rjc3MtbG9hZGVyL2Rpc3QvY2pzLmpzPz9jbG9uZWRSdWxlU2V0LTE1NjEudXNlWzJdIS4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9pbmRleC5qcz8/cnVsZVNldFswXS51c2VbMF0hLi9jbGllbnQvY29tcG9uZW50L3R1aS9zcmMvY29tcG9uZW50cy9wcm9ncmVzcy9Qcm9ncmVzcy52dWU/dnVlJnR5cGU9c3R5bGUmaW5kZXg9MCZpZD01ZGJhMmNjMCZsYW5nPXNjc3MgKioqIVxyXG4gIFxcKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXHJcbi50dWktcHJvZ3Jlc3Mge1xyXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICBkaXNwbGF5OiBmbGV4O1xyXG4gIGhlaWdodDogcmVtLXB4KDE0KTtcclxuICBmb250LXNpemU6IHJlbS1weCgxMSk7XHJcbiAgbGluZS1oZWlnaHQ6IHJlbS1weCgxNCk7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tcHJvZ3Jlc3MtY29udGFpbmVyLWJnLWNvbG9yKTtcclxuXHJcbiAgJi0tY2hyb21lIHtcclxuICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLXByb2dyZXNzLWJvcmRlci1jb2xvcik7XHJcbiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1nYXAtMik7XHJcbiAgfVxyXG5cclxuICAmLS1zbWFsbCB7XHJcbiAgICBoZWlnaHQ6IHJlbS1weCgxMik7XHJcbiAgICBsaW5lLWhlaWdodDogcmVtLXB4KDEwKTtcclxuICB9XHJcblxyXG4gICYtLXgtc21hbGwge1xyXG4gICAgaGVpZ2h0OiByZW0tcHgoNik7XHJcbiAgfVxyXG5cclxuICAmLS1oaWRlQmFja2dyb3VuZCB7XHJcbiAgICBiYWNrZ3JvdW5kOiBub25lO1xyXG4gIH1cclxuXHJcbiAgJl9fYmFyIHtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tcHJvZ3Jlc3MtdmFsdWUtYmctY29sb3IpO1xyXG4gICAgdHJhbnNpdGlvbjogd2lkdGggdmFyKC0tdHJhbnNpdGlvbi1wcm9ncmVzcy1mdW5jdGlvbilcclxuICAgICAgdmFyKC0tdHJhbnNpdGlvbi1wcm9ncmVzcy1kdXJhdGlvbik7XHJcblxyXG4gICAgLnR1aS1wcm9ncmVzcy0tY2hyb21lICYge1xyXG4gICAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1nYXAtMik7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAmX19sYWJlbCB7XHJcbiAgICBwYWRkaW5nOiAwIHZhcigtLWdhcC0xKTtcclxuICAgIG9wYWNpdHk6IDA7XHJcblxyXG4gICAgJi0taW5zaWRlIHtcclxuICAgICAgY29sb3I6IHZhcigtLXByb2dyZXNzLXZhbHVlLXRleHQtY29sb3IpO1xyXG4gICAgICBvcGFjaXR5OiAxO1xyXG4gICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IHZhcigtLXRyYW5zaXRpb24tcHJvZ3Jlc3MtZnVuY3Rpb24pXHJcbiAgICAgICAgdmFyKC0tdHJhbnNpdGlvbi1wcm9ncmVzcy1kdXJhdGlvbik7XHJcbiAgICB9XHJcbiAgICAmLS1vdXRzaWRlIHtcclxuICAgICAgY29sb3I6IHZhcigtLXByb2dyZXNzLWNvbnRhaW5lci10ZXh0LWNvbG9yKTtcclxuICAgICAgb3BhY2l0eTogMTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gICZfX2RvdCB7XHJcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICB0b3A6IDUwJTtcclxuICAgIHJpZ2h0OiB2YXIoLS1nYXAtMSk7XHJcbiAgICB3aWR0aDogcmVtLXB4KDIuNSk7XHJcbiAgICBoZWlnaHQ6IHJlbS1weCgyLjUpO1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItdGV4dCk7XHJcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XHJcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XHJcbiAgfVxyXG5cclxuICAmLS14LXNtYWxsICZfX2RvdCB7XHJcbiAgICByaWdodDogcmVtLXB4KDIuNSk7XHJcbiAgfVxyXG5cclxuICAmLS14LXNtYWxsJi0tY2hyb21lICZfX2RvdCB7XHJcbiAgICByaWdodDogcmVtLXB4KDEpO1xyXG4gIH1cclxufVxyXG5cclxuLyohKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiEqXFxcclxuICAhKioqIGNzcyAuL2NsaWVudC90b29saW5nL3dlYnBhY2svY3NzX3Jhd19sb2FkZXIuanM/P2Nsb25lZFJ1bGVTZXQtMTU2MS51c2VbMV0hLi9ub2RlX21vZHVsZXMvcG9zdGNzcy1sb2FkZXIvZGlzdC9janMuanM/P2Nsb25lZFJ1bGVTZXQtMTU2MS51c2VbMl0hLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2luZGV4LmpzPz9ydWxlU2V0WzBdLnVzZVswXSEuL2NsaWVudC9jb21wb25lbnQvdHVpL3NyYy9jb21wb25lbnRzL3Byb2dyZXNzdHJhY2tlci9Qcm9ncmVzc1RyYWNrZXIudnVlP3Z1ZSZ0eXBlPXN0eWxlJmluZGV4PTAmaWQ9MzY4MjNjNzgmbGFuZz1zY3NzICoqKiFcclxuICBcXCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXHJcbiRwcm9ncmVzcy10cmFja2VyLWxpbmUtc206IDEwMHB4ICFkZWZhdWx0O1xyXG4kcHJvZ3Jlc3MtdHJhY2tlci1saW5lLW1kOiAyMDBweCAhZGVmYXVsdDtcclxuJHByb2dyZXNzLXRyYWNrZXItbGluZS1sZzogMjUwcHggIWRlZmF1bHQ7XHJcbiRwcm9ncmVzcy10cmFja2VyLWhhbGYtY2lyY2xlOiAxNHB4ICFkZWZhdWx0O1xyXG5cclxuLnR1aS1wcm9ncmVzc1RyYWNrZXJJdGVtcyB7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuICBtYXJnaW46IDA7XHJcbiAgbGlzdC1zdHlsZTogbm9uZTtcclxuXHJcbiAgLyogTGluZSBzdHlsZXMqL1xyXG4gICYgPiAqICsgKiB7XHJcbiAgICAmLnR1aS1wcm9ncmVzc1RyYWNrZXJJdGVtIHtcclxuICAgICAgLnR1aS1wcm9ncmVzc1RyYWNrZXJJdGVtX19jb250ZW50OjpiZWZvcmUge1xyXG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgICB0b3A6ICRwcm9ncmVzcy10cmFja2VyLWhhbGYtY2lyY2xlO1xyXG4gICAgICAgIGxlZnQ6IC01MCU7XHJcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgICAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcclxuICAgICAgICBib3JkZXItd2lkdGg6IHZhcigtLWJvcmRlci13aWR0aC10aGluKSAwIDAgMDtcclxuICAgICAgICBjb250ZW50OiAnJztcclxuICAgICAgfVxyXG5cclxuICAgICAgJi0tcGVuZGluZyB7XHJcbiAgICAgICAgLnR1aS1wcm9ncmVzc1RyYWNrZXJJdGVtX19jb250ZW50OjpiZWZvcmUge1xyXG4gICAgICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1wcm9ncmVzc3RyYWNrZXItY29sb3ItcGVuZGluZyk7XHJcbiAgICAgICAgICBib3JkZXItc3R5bGU6IGRvdHRlZDtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuXHJcbiAgICAgICYtLWNvbXBsZXRlIHtcclxuICAgICAgICAudHVpLXByb2dyZXNzVHJhY2tlckl0ZW1fX2NvbnRlbnQ6OmJlZm9yZSB7XHJcbiAgICAgICAgICB0b3A6ICgkcHJvZ3Jlc3MtdHJhY2tlci1oYWxmLWNpcmNsZSAtIDEpO1xyXG4gICAgICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1wcm9ncmVzc3RyYWNrZXItY29sb3ItY29tcGxldGUpO1xyXG4gICAgICAgICAgYm9yZGVyLXdpZHRoOiB2YXIoLS1ib3JkZXItd2lkdGgtdGhpY2spIDAgMCAwO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG5cclxuICAgICAgJi0tYWNoaWV2ZWQge1xyXG4gICAgICAgIC50dWktcHJvZ3Jlc3NUcmFja2VySXRlbV9fY29udGVudDo6YmVmb3JlIHtcclxuICAgICAgICAgIHRvcDogKCRwcm9ncmVzcy10cmFja2VyLWhhbGYtY2lyY2xlIC0gMSk7XHJcbiAgICAgICAgICBib3JkZXItY29sb3I6IHZhcigtLXByb2dyZXNzdHJhY2tlci1jb2xvci1hY2hpZXZlZCk7XHJcbiAgICAgICAgICBib3JkZXItd2lkdGg6IHZhcigtLWJvcmRlci13aWR0aC10aGljaykgMCAwIDA7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG4gICYtLXZlcnRpY2FsIHtcclxuICAgICYgPiAqICsgKiB7XHJcbiAgICAgICYudHVpLXByb2dyZXNzVHJhY2tlckl0ZW0ge1xyXG4gICAgICAgIC50dWktcHJvZ3Jlc3NUcmFja2VySXRlbV9fY29udGVudDo6YmVmb3JlIHtcclxuICAgICAgICAgIHRvcDogLTUwJTtcclxuICAgICAgICAgIGxlZnQ6ICgkcHJvZ3Jlc3MtdHJhY2tlci1oYWxmLWNpcmNsZSAtIDEpO1xyXG4gICAgICAgICAgd2lkdGg6IDA7XHJcbiAgICAgICAgICBoZWlnaHQ6IDEwMCU7XHJcbiAgICAgICAgICBib3JkZXItd2lkdGg6IDAgMCAwIHZhcigtLWJvcmRlci13aWR0aC10aGljayk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAudHVpLXByb2dyZXNzVHJhY2tlckl0ZW0ge1xyXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgZmxleC1zaHJpbms6IDA7XHJcblxyXG4gICAgJi0tc21hbGwge1xyXG4gICAgICB3aWR0aDogJHByb2dyZXNzLXRyYWNrZXItbGluZS1zbTtcclxuICAgIH1cclxuXHJcbiAgICAmLS1tZWRpdW0ge1xyXG4gICAgICB3aWR0aDogJHByb2dyZXNzLXRyYWNrZXItbGluZS1tZDtcclxuICAgIH1cclxuXHJcbiAgICAmLS1sYXJnZSB7XHJcbiAgICAgIHdpZHRoOiAkcHJvZ3Jlc3MtdHJhY2tlci1saW5lLWxnO1xyXG4gICAgfVxyXG5cclxuICAgICZfX2NvbnRlbnQge1xyXG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XHJcbiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgfVxyXG5cclxuICAgICZfX2xhYmVsIHtcclxuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgICB3aWR0aDogMTAwJTtcclxuICAgICAgbWFyZ2luOiAwIGF1dG87XHJcbiAgICAgIHBhZGRpbmc6IHZhcigtLWdhcC0yKTtcclxuICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG5cclxuICAgICAgJi1jdXJyZW50IHtcclxuICAgICAgICAudHVpLWJ0biB7XHJcbiAgICAgICAgICBjb2xvcjogdmFyKC0tY29sb3Itc3RhdGUtYWN0aXZlKTtcclxuICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgICZfX3N0YXR1cyxcclxuICAgICZfX3RhcmdldCB7XHJcbiAgICAgIEBpbmNsdWRlIHNyLW9ubHkoKTtcclxuICAgIH1cclxuXHJcbiAgICAvKiBTcGFjaW5nIGFmdGVyIGZvciBvdmVyZmxvdyBkZXRlY3RvciovXHJcbiAgICA6bGFzdC1jaGlsZCB7XHJcbiAgICAgICYtLXNtYWxsIHtcclxuICAgICAgICB3aWR0aDogKCRwcm9ncmVzcy10cmFja2VyLWxpbmUtc20gKiAyKTtcclxuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkcHJvZ3Jlc3MtdHJhY2tlci1saW5lLXNtO1xyXG4gICAgICB9XHJcblxyXG4gICAgICAmLS1tZWRpdW0ge1xyXG4gICAgICAgIHdpZHRoOiAoJHByb2dyZXNzLXRyYWNrZXItbGluZS1tZCAqIDIpO1xyXG4gICAgICAgIHBhZGRpbmctcmlnaHQ6ICRwcm9ncmVzcy10cmFja2VyLWxpbmUtbWQ7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgICYtLWxhcmdlIHtcclxuICAgICAgICB3aWR0aDogKCRwcm9ncmVzcy10cmFja2VyLWxpbmUtbGcgKiAyKTtcclxuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkcHJvZ3Jlc3MtdHJhY2tlci1saW5lLWxnO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAmLS12ZXJ0aWNhbCB7XHJcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG5cclxuICAgIC50dWktcHJvZ3Jlc3NUcmFja2VySXRlbSB7XHJcbiAgICAgIHdpZHRoOiBhdXRvO1xyXG4gICAgICBoZWlnaHQ6IDgwcHg7XHJcblxyXG4gICAgICAmX19jb250ZW50IHtcclxuICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xyXG4gICAgICAgIGhlaWdodDogMTAwJTtcclxuICAgICAgfVxyXG5cclxuICAgICAgJl9fbGFiZWwge1xyXG4gICAgICAgIG1hcmdpbjogMDtcclxuICAgICAgICBwYWRkaW5nOiB2YXIoLS1nYXAtMSkgdmFyKC0tZ2FwLTIpO1xyXG4gICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbi8qISoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiohKlxcXHJcbiAgISoqKiBjc3MgLi9jbGllbnQvdG9vbGluZy93ZWJwYWNrL2Nzc19yYXdfbG9hZGVyLmpzPz9jbG9uZWRSdWxlU2V0LTE1NjEudXNlWzFdIS4vbm9kZV9tb2R1bGVzL3Bvc3Rjc3MtbG9hZGVyL2Rpc3QvY2pzLmpzPz9jbG9uZWRSdWxlU2V0LTE1NjEudXNlWzJdIS4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9pbmRleC5qcz8/cnVsZVNldFswXS51c2VbMF0hLi9jbGllbnQvY29tcG9uZW50L3R1aS9zcmMvY29tcG9uZW50cy9wcm9ncmVzc3RyYWNrZXIvUHJvZ3Jlc3NUcmFja2VyQnV0dG9uLnZ1ZT92dWUmdHlwZT1zdHlsZSZpbmRleD0wJmlkPWY1MTcyMjZjJmxhbmc9c2NzcyAqKiohXHJcbiAgXFwqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xyXG4udHVpLXByb2dyZXNzVHJhY2tlckJ1dHRvbiB7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBnYXA6IHZhcigtLWdhcC0yKTtcclxuICBqdXN0aWZ5LWNvbnRlbnQ6IHN0YXJ0O1xyXG4gIHdpZHRoOiAxMDAlO1xyXG4gIHBhZGRpbmc6IHZhcigtLWdhcC0yKTtcclxuICBjb2xvcjogdmFyKC0tY29sb3Itc3RhdGUpO1xyXG4gIGxpbmUtaGVpZ2h0OiB2YXIoLS1mb250LWJvZHktbGluZS1oZWlnaHQpO1xyXG4gIHRleHQtYWxpZ246IGxlZnQ7XHJcbiAgb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDtcclxuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcclxuICBib3JkZXI6IG5vbmU7XHJcblxyXG4gICY6Zm9jdXMtdmlzaWJsZSB7XHJcbiAgICBAaW5jbHVkZSB0dWktZm9jdXM7XHJcbiAgfVxyXG5cclxuICAmOmhvdmVyIHtcclxuICAgIGNvbG9yOiB2YXIoLS1jb2xvci1zdGF0ZSk7XHJcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci1zdGF0ZS1oaWdobGlnaHQtbmV1dHJhbCk7XHJcbiAgfVxyXG5cclxuICAmLS1zZWxlY3RlZCB7XHJcbiAgICBjb2xvcjogdmFyKC0tY29sb3ItbmV1dHJhbC0xKTtcclxuICAgIGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLXN0YXRlLWFjdGl2ZSk7XHJcbiAgICBib3JkZXItY29sb3I6IHZhcigtLWNvbG9yLW5ldXRyYWwtMyk7XHJcblxyXG4gICAgJjpob3ZlcixcclxuICAgICY6Zm9jdXMge1xyXG4gICAgICBjb2xvcjogdmFyKC0tY29sb3ItbmV1dHJhbC0xKTtcclxuICAgICAgYmFja2dyb3VuZDogdmFyKC0tY29sb3Itc3RhdGUtYWN0aXZlKTtcclxuICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1jb2xvci1uZXV0cmFsLTMpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgJl9fcmVxdWlyZWQge1xyXG4gICAgY29sb3I6IHZhcigtLWNvbG9yLXByb21wdC1hbGVydCk7XHJcblxyXG4gICAgJi0tc2VsZWN0ZWQge1xyXG4gICAgICBjb2xvcjogdmFyKC0tY29sb3ItbmV1dHJhbC0xKTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbi8qISoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiohKlxcXHJcbiAgISoqKiBjc3MgLi9jbGllbnQvdG9vbGluZy93ZWJwYWNrL2Nzc19yYXdfbG9hZGVyLmpzPz9jbG9uZWRSdWxlU2V0LTE1NjEudXNlWzFdIS4vbm9kZV9tb2R1bGVzL3Bvc3Rjc3MtbG9hZGVyL2Rpc3QvY2pzLmpzPz9jbG9uZWRSdWxlU2V0LTE1NjEudXNlWzJdIS4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9pbmRleC5qcz8/cnVsZVNldFswXS51c2VbMF0hLi9jbGllbnQvY29tcG9uZW50L3R1aS9zcmMvY29tcG9uZW50cy9wcm9ncmVzc3RyYWNrZXIvUHJvZ3Jlc3NUcmFja2VyQ2lyY2xlLnZ1ZT92dWUmdHlwZT1zdHlsZSZpbmRleD0wJmlkPTJkZGYwNTY4Jmxhbmc9c2NzcyAqKiohXHJcbiAgXFwqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xyXG4udHVpLXByb2dyZXNzVHJhY2tlckNpcmNsZSB7XHJcbiAgJHBlbmRpbmc6ICN7Jn0tLXBlbmRpbmc7XHJcbiAgJGNvbXBsZXRlOiAjeyZ9LS1jb21wbGV0ZTtcclxuICAkYWNoaWV2ZWQ6ICN7Jn0tLWFjaGlldmVkO1xyXG4gICR0YXJnZXQ6ICN7Jn0tLXRhcmdldDtcclxuXHJcbiAgJl9fb3V0ZXIge1xyXG4gICAgei1pbmRleDogMjtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBmbGV4LXNocmluazogMDtcclxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuICAgIHdpZHRoOiBjYWxjKHZhcigtLWdhcC03KSArIDFweCk7XHJcbiAgICBoZWlnaHQ6IGNhbGModmFyKC0tZ2FwLTcpICsgMXB4KTtcclxuICAgIGJvcmRlcjogdmFyKC0tYm9yZGVyLXdpZHRoLW5vcm1hbCkgdHJhbnNwYXJlbnQgZG90dGVkO1xyXG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xyXG5cclxuICAgIC8qIFBlbmRpbmcgdGFyZ2V0Ki9cclxuICAgICYjeyRwZW5kaW5nfSYjeyR0YXJnZXR9IHtcclxuICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1wcm9ncmVzc3RyYWNrZXItY29sb3ItcGVuZGluZyk7XHJcbiAgICB9XHJcblxyXG4gICAgLyogQWNoaWV2ZWQgdGFyZ2V0Ki9cclxuICAgICYjeyR0YXJnZXR9JiN7JGFjaGlldmVkfSB7XHJcbiAgICAgIGJhY2tncm91bmQ6IHZhcigtLXByb2dyZXNzdHJhY2tlci1jb250YWluZXItYmctY29sb3IpO1xyXG4gICAgICBib3JkZXItY29sb3I6IHZhcigtLXByb2dyZXNzdHJhY2tlci1jb2xvci1hY2hpZXZlZCk7XHJcbiAgICAgIGJvcmRlci1zdHlsZTogc29saWQ7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAmX19taWRkbGUge1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuICAgIHdpZHRoOiBjYWxjKHZhcigtLWdhcC00KSArIDFweCk7XHJcbiAgICBoZWlnaHQ6IGNhbGModmFyKC0tZ2FwLTQpICsgMXB4KTtcclxuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xyXG4gICAgYm9yZGVyOiB2YXIoLS1ib3JkZXItd2lkdGgtdGhpbikgc29saWQgdHJhbnNwYXJlbnQ7XHJcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XHJcbiAgICAtd2Via2l0LXByaW50LWNvbG9yLWFkanVzdDogZXhhY3Q7XHJcbiAgICAgICAgICAgIHByaW50LWNvbG9yLWFkanVzdDogZXhhY3Q7XHJcblxyXG4gICAgLyogUGVuZGluZyovXHJcbiAgICAjeyRwZW5kaW5nfSAmIHtcclxuICAgICAgYmFja2dyb3VuZDogdmFyKC0tcHJvZ3Jlc3N0cmFja2VyLWNvbG9yLXBlbmRpbmcpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qIFBlbmRpbmcgdGFyZ2V0Ki9cclxuICAgICN7JHBlbmRpbmd9I3skdGFyZ2V0fSAmIHtcclxuICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XHJcbiAgICB9XHJcblxyXG4gICAgLyogQ29tcGxldGUqL1xyXG4gICAgI3skY29tcGxldGV9ICYge1xyXG4gICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1wcm9ncmVzc3RyYWNrZXItY29sb3ItY29tcGxldGUpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qIEFjaGlldmVkKi9cclxuICAgICN7JGFjaGlldmVkfSAmIHtcclxuICAgICAgYmFja2dyb3VuZDogdmFyKC0tcHJvZ3Jlc3N0cmFja2VyLWNvbG9yLWFjaGlldmVkKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gICZfX2lubmVyIHtcclxuICAgIHdpZHRoOiBjYWxjKHZhcigtLWdhcC0yKSArIDFweCk7XHJcbiAgICBoZWlnaHQ6IGNhbGModmFyKC0tZ2FwLTIpICsgMXB4KTtcclxuICAgIGJhY2tncm91bmQ6IHZhcigtLXByb2dyZXNzdHJhY2tlci1jb250YWluZXItYmctY29sb3IpO1xyXG4gICAgYm9yZGVyOiB2YXIoLS1ib3JkZXItd2lkdGgtdGhpbikgc29saWRcclxuICAgICAgdmFyKC0tcHJvZ3Jlc3N0cmFja2VyLWNvbnRhaW5lci1iZy1jb2xvcik7XHJcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XHJcblxyXG4gICAgLyogUGVuZGluZyovXHJcbiAgICAjeyRwZW5kaW5nfSAmIHtcclxuICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1wcm9ncmVzc3RyYWNrZXItY29udGFpbmVyLWJnLWNvbG9yKTtcclxuICAgIH1cclxuXHJcbiAgICAvKiBQZW5kaW5nIHRhcmdldCovXHJcbiAgICAjeyRwZW5kaW5nfSN7JHRhcmdldH0gJiB7XHJcbiAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tcHJvZ3Jlc3N0cmFja2VyLWNvbG9yLXBlbmRpbmcpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qIEFjaGlldmVkKi9cclxuICAgICN7JGFjaGlldmVkfSAmIHtcclxuICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1wcm9ncmVzc3RyYWNrZXItY29udGFpbmVyLWJnLWNvbG9yKTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuLmllLFxyXG4ubXNlZGdlIHtcclxuICAudHVpLXByb2dyZXNzVHJhY2tlckNpcmNsZS0tYWNoaWV2ZWQge1xyXG4gICAgLnR1aS1wcm9ncmVzc1RyYWNrZXJDaXJjbGUge1xyXG4gICAgICAmX19taWRkbGUge1xyXG4gICAgICAgIGJvcmRlcjogdmFyKC0tZ2FwLTEpIHNvbGlkIHZhcigtLXByb2dyZXNzdHJhY2tlci1jb2xvci1hY2hpZXZlZCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIC50dWktcHJvZ3Jlc3NUcmFja2VyQ2lyY2xlLS1jb21wbGV0ZSB7XHJcbiAgICAudHVpLXByb2dyZXNzVHJhY2tlckNpcmNsZSB7XHJcbiAgICAgICZfX21pZGRsZSB7XHJcbiAgICAgICAgYm9yZGVyOiB2YXIoLS1nYXAtMSkgc29saWQgdmFyKC0tcHJvZ3Jlc3N0cmFja2VyLWNvbG9yLWNvbXBsZXRlKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuLyohKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiEqXFxcclxuICAhKioqIGNzcyAuL2NsaWVudC90b29saW5nL3dlYnBhY2svY3NzX3Jhd19sb2FkZXIuanM/P2Nsb25lZFJ1bGVTZXQtMTU2MS51c2VbMV0hLi9ub2RlX21vZHVsZXMvcG9zdGNzcy1sb2FkZXIvZGlzdC9janMuanM/P2Nsb25lZFJ1bGVTZXQtMTU2MS51c2VbMl0hLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2luZGV4LmpzPz9ydWxlU2V0WzBdLnVzZVswXSEuL2NsaWVudC9jb21wb25lbnQvdHVpL3NyYy9jb21wb25lbnRzL3Byb2dyZXNzdHJhY2tlci9Qcm9ncmVzc1RyYWNrZXJOYXYudnVlP3Z1ZSZ0eXBlPXN0eWxlJmluZGV4PTAmaWQ9OTJiOTU3OGEmbGFuZz1zY3NzICoqKiFcclxuICBcXCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXHJcbi50dWktcHJvZ3Jlc3NUcmFja2VyTmF2X19pdGVtcyB7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuICBtYXJnaW46IDA7XHJcbiAgbGlzdC1zdHlsZTogbm9uZTtcclxuXHJcbiAgLnR1aS1wcm9ncmVzc1RyYWNrZXJOYXYtLXZlcnRpY2FsICYge1xyXG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxuICB9XHJcbn1cclxuXHJcbi8qISoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiEqXFxcclxuICAhKioqIGNzcyAuL2NsaWVudC90b29saW5nL3dlYnBhY2svY3NzX3Jhd19sb2FkZXIuanM/P2Nsb25lZFJ1bGVTZXQtMTU2MS51c2VbMV0hLi9ub2RlX21vZHVsZXMvcG9zdGNzcy1sb2FkZXIvZGlzdC9janMuanM/P2Nsb25lZFJ1bGVTZXQtMTU2MS51c2VbMl0hLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2luZGV4LmpzPz9ydWxlU2V0WzBdLnVzZVswXSEuL2NsaWVudC9jb21wb25lbnQvdHVpL3NyYy9jb21wb25lbnRzL3Byb2dyZXNzdHJhY2tlci9Qcm9ncmVzc1RyYWNrZXJOYXZDaXJjbGVBY2hpZXZlbWVudC52dWU/dnVlJnR5cGU9c3R5bGUmaW5kZXg9MCZpZD03MjgwOWJmNCZsYW5nPXNjc3MgKioqIVxyXG4gIFxcKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xyXG4udHVpLXByb2dyZXNzVHJhY2tlck5hdkNpcmNsZUFjaGlldmVtZW50IHtcclxuICAvKiBzdGF0ZXMqL1xyXG4gICRwZW5kaW5nOiAjeyZ9LS1wZW5kaW5nO1xyXG4gICRjb21wbGV0ZTogI3smfS0tY29tcGxldGU7XHJcbiAgJGFjaGlldmVkOiAjeyZ9LS1hY2hpZXZlZDtcclxuICAkdGFyZ2V0OiAjeyZ9LS10YXJnZXQ7XHJcbiAgJGN1cnJlbnQ6ICN7Jn0tLWN1cnJlbnQ7XHJcblxyXG4gICZfX291dGVyIHtcclxuICAgIHotaW5kZXg6IDI7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgZmxleC1zaHJpbms6IDA7XHJcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcbiAgICB3aWR0aDogdmFyKC0tcHJvZ3Jlc3N0cmFja2VyLWZ1bGwtbWFya2VyLXNpemUpO1xyXG4gICAgaGVpZ2h0OiB2YXIoLS1wcm9ncmVzc3RyYWNrZXItZnVsbC1tYXJrZXItc2l6ZSk7XHJcbiAgICBib3JkZXI6IHZhcigtLWJvcmRlci13aWR0aC1ub3JtYWwpIHRyYW5zcGFyZW50IGRvdHRlZDtcclxuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcclxuXHJcbiAgICAvKipcclxuICAgICAqIHN0YXRlc1xyXG4gICAgICoqL1xyXG4gICAgJiN7JHBlbmRpbmd9JiN7JHRhcmdldH0ge1xyXG4gICAgICBib3JkZXItY29sb3I6IHZhcigtLXByb2dyZXNzdHJhY2tlci1jb2xvci1wZW5kaW5nKTtcclxuICAgIH1cclxuXHJcbiAgICAmI3skdGFyZ2V0fSYjeyRhY2hpZXZlZH0ge1xyXG4gICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1wcm9ncmVzc3RyYWNrZXItY29udGFpbmVyLWJnLWNvbG9yKTtcclxuICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1wcm9ncmVzc3RyYWNrZXItY29sb3ItYWNoaWV2ZWQpO1xyXG4gICAgICBib3JkZXItc3R5bGU6IHNvbGlkO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgJl9fbWlkZGxlIHtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcbiAgICB3aWR0aDogY2FsYyhcclxuICAgICAgY2FsYyh2YXIoLS1wcm9ncmVzc3RyYWNrZXItZnVsbC1tYXJrZXItc2l6ZSkgLyAyKSArIHZhcigtLWdhcC0xKVxyXG4gICAgKTtcclxuICAgIGhlaWdodDogY2FsYyhcclxuICAgICAgY2FsYyh2YXIoLS1wcm9ncmVzc3RyYWNrZXItZnVsbC1tYXJrZXItc2l6ZSkgLyAyKSArIHZhcigtLWdhcC0xKVxyXG4gICAgKTtcclxuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xyXG4gICAgYm9yZGVyOiB2YXIoLS1ib3JkZXItd2lkdGgtdGhpbikgc29saWQgdHJhbnNwYXJlbnQ7XHJcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XHJcbiAgICAtd2Via2l0LXByaW50LWNvbG9yLWFkanVzdDogZXhhY3Q7XHJcbiAgICAgICAgICAgIHByaW50LWNvbG9yLWFkanVzdDogZXhhY3Q7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBzdGF0ZXNcclxuICAgICAqKi9cclxuICAgICN7JHBlbmRpbmd9ICYge1xyXG4gICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1wcm9ncmVzc3RyYWNrZXItY29sb3ItcGVuZGluZyk7XHJcbiAgICB9XHJcblxyXG4gICAgI3skcGVuZGluZ30jeyR0YXJnZXR9ICYge1xyXG4gICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcclxuICAgIH1cclxuXHJcbiAgICAjeyRjb21wbGV0ZX0gJiB7XHJcbiAgICAgIGJhY2tncm91bmQ6IHZhcigtLXByb2dyZXNzdHJhY2tlci1jb2xvci1jb21wbGV0ZSk7XHJcbiAgICB9XHJcblxyXG4gICAgI3skYWNoaWV2ZWR9ICYge1xyXG4gICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1wcm9ncmVzc3RyYWNrZXItY29sb3ItYWNoaWV2ZWQpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgJl9faW5uZXIge1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICB3aWR0aDogY2FsYyhcclxuICAgICAgY2FsYyh2YXIoLS1wcm9ncmVzc3RyYWNrZXItZnVsbC1tYXJrZXItc2l6ZSkgLyA0KSArXHJcbiAgICAgICAgdmFyKC0tYm9yZGVyLXdpZHRoLXRoaW4pXHJcbiAgICApO1xyXG4gICAgaGVpZ2h0OiBjYWxjKFxyXG4gICAgICBjYWxjKHZhcigtLXByb2dyZXNzdHJhY2tlci1mdWxsLW1hcmtlci1zaXplKSAvIDQpICtcclxuICAgICAgICB2YXIoLS1ib3JkZXItd2lkdGgtdGhpbilcclxuICAgICk7XHJcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1wcm9ncmVzc3RyYWNrZXItY29udGFpbmVyLWJnLWNvbG9yKTtcclxuICAgIGJvcmRlcjogdmFyKC0tYm9yZGVyLXdpZHRoLXRoaW4pIHNvbGlkXHJcbiAgICAgIHZhcigtLXByb2dyZXNzdHJhY2tlci1jb250YWluZXItYmctY29sb3IpO1xyXG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogc3RhdGVzXHJcbiAgICAgKiovXHJcbiAgICAjeyRwZW5kaW5nfSAmIHtcclxuICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1wcm9ncmVzc3RyYWNrZXItY29udGFpbmVyLWJnLWNvbG9yKTtcclxuICAgIH1cclxuXHJcbiAgICAjeyRwZW5kaW5nfSN7JHRhcmdldH0gJiB7XHJcbiAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tcHJvZ3Jlc3N0cmFja2VyLWNvbG9yLXBlbmRpbmcpO1xyXG4gICAgfVxyXG5cclxuICAgICN7JGFjaGlldmVkfSAmIHtcclxuICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1wcm9ncmVzc3RyYWNrZXItY29udGFpbmVyLWJnLWNvbG9yKTtcclxuICAgIH1cclxuICB9XHJcbiAgJl9fbGFiZWwge1xyXG4gICAgQGluY2x1ZGUgc3Itb25seSgpO1xyXG4gIH1cclxufVxyXG4uaWUsXHJcbi5tc2VkZ2Uge1xyXG4gIC50dWktcHJvZ3Jlc3NUcmFja2VyQ2lyY2xlLS1hY2hpZXZlZCB7XHJcbiAgICAudHVpLXByb2dyZXNzVHJhY2tlckNpcmNsZSB7XHJcbiAgICAgICZfX21pZGRsZSB7XHJcbiAgICAgICAgYm9yZGVyOiB2YXIoLS1nYXAtMSkgc29saWQgdmFyKC0tcHJvZ3Jlc3N0cmFja2VyLWNvbG9yLWFjaGlldmVkKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLnR1aS1wcm9ncmVzc1RyYWNrZXJDaXJjbGUtLWNvbXBsZXRlIHtcclxuICAgIC50dWktcHJvZ3Jlc3NUcmFja2VyQ2lyY2xlIHtcclxuICAgICAgJl9fbWlkZGxlIHtcclxuICAgICAgICBib3JkZXI6IHZhcigtLWdhcC0xKSBzb2xpZCB2YXIoLS1wcm9ncmVzc3RyYWNrZXItY29sb3ItY29tcGxldGUpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG4vKiEqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiohKlxcXHJcbiAgISoqKiBjc3MgLi9jbGllbnQvdG9vbGluZy93ZWJwYWNrL2Nzc19yYXdfbG9hZGVyLmpzPz9jbG9uZWRSdWxlU2V0LTE1NjEudXNlWzFdIS4vbm9kZV9tb2R1bGVzL3Bvc3Rjc3MtbG9hZGVyL2Rpc3QvY2pzLmpzPz9jbG9uZWRSdWxlU2V0LTE1NjEudXNlWzJdIS4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9pbmRleC5qcz8/cnVsZVNldFswXS51c2VbMF0hLi9jbGllbnQvY29tcG9uZW50L3R1aS9zcmMvY29tcG9uZW50cy9wcm9ncmVzc3RyYWNrZXIvUHJvZ3Jlc3NUcmFja2VyTmF2Q2lyY2xlV29ya2Zsb3cudnVlP3Z1ZSZ0eXBlPXN0eWxlJmluZGV4PTAmaWQ9MGFiZDMwNGEmbGFuZz1zY3NzICoqKiFcclxuICBcXCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cclxuLnR1aS1wcm9ncmVzc1RyYWNrZXJOYXZDaXJjbGVXb3JrZmxvdyB7XHJcbiAgLyogc3RhdGVzKi9cclxuICAkcmVhZHk6ICN7Jn0tLXJlYWR5O1xyXG4gICRsb2NrZWQ6ICN7Jn0tLWxvY2tlZDtcclxuICAkb3B0aW9uYWw6ICN7Jn0tLW9wdGlvbmFsO1xyXG4gICRzZWxlY3RlZDogI3smfS0tc2VsZWN0ZWQ7XHJcbiAgJGRvbmU6ICN7Jn0tLWRvbmU7XHJcbiAgJGludmFsaWQ6ICN7Jn0tLWludmFsaWQ7XHJcbiAgJHZpZXctb25seTogI3smfS0tdmlldy1vbmx5O1xyXG4gICRoaWRkZW46ICN7Jn0tLWhpZGRlbjtcclxuXHJcbiAgJl9fb3V0ZXIge1xyXG4gICAgei1pbmRleDogMjtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBmbGV4LXNocmluazogMDtcclxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuICAgIHdpZHRoOiB2YXIoLS1wcm9ncmVzc3RyYWNrZXItZnVsbC1tYXJrZXItc2l6ZSk7XHJcbiAgICBoZWlnaHQ6IHZhcigtLXByb2dyZXNzdHJhY2tlci1mdWxsLW1hcmtlci1zaXplKTtcclxuICAgIGJvcmRlcjogdmFyKC0tYm9yZGVyLXdpZHRoLW5vcm1hbCkgdHJhbnNwYXJlbnQgbm9uZTtcclxuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcclxuXHJcbiAgICAvKipcclxuICAgICAqIHN0YXRlc1xyXG4gICAgICoqL1xyXG5cclxuICAgICYjeyRzZWxlY3RlZH0ge1xyXG4gICAgICBib3JkZXItY29sb3I6IHZhcigtLXByb2dyZXNzdHJhY2tlci1jb2xvci1zZWxlY3RlZCk7XHJcbiAgICAgIGJvcmRlci1zdHlsZTogc29saWQ7XHJcbiAgICB9XHJcblxyXG4gICAgJiN7JHJlYWR5fSB7XHJcbiAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tcHJvZ3Jlc3N0cmFja2VyLWNvbG9yLXJlYWR5KTtcclxuICAgIH1cclxuXHJcbiAgICAmI3skbG9ja2VkfSB7XHJcbiAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tcHJvZ3Jlc3N0cmFja2VyLWNvbG9yLWxvY2tlZCk7XHJcbiAgICB9XHJcblxyXG4gICAgJiN7JGRvbmV9IHtcclxuICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1wcm9ncmVzc3RyYWNrZXItY29sb3ItZG9uZSk7XHJcbiAgICB9XHJcblxyXG4gICAgJiN7JG9wdGlvbmFsfSB7XHJcbiAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tcHJvZ3Jlc3N0cmFja2VyLWNvbG9yLW9wdGlvbmFsKTtcclxuICAgIH1cclxuXHJcbiAgICAmI3skaW52YWxpZH0ge1xyXG4gICAgICBib3JkZXItY29sb3I6IHZhcigtLXByb2dyZXNzdHJhY2tlci1jb2xvci1pbnZhbGlkKTtcclxuICAgIH1cclxuXHJcbiAgICAmI3skaGlkZGVufSB7XHJcbiAgICAgIGJvcmRlci1zdHlsZTogbm9uZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gICZfX21pZGRsZSB7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xyXG4gICAgd2lkdGg6IGNhbGModmFyKC0tcHJvZ3Jlc3N0cmFja2VyLWZ1bGwtbWFya2VyLXNpemUpIC0gdmFyKC0tZ2FwLTIpKTtcclxuICAgIGhlaWdodDogY2FsYyh2YXIoLS1wcm9ncmVzc3RyYWNrZXItZnVsbC1tYXJrZXItc2l6ZSkgLSB2YXIoLS1nYXAtMikpO1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XHJcbiAgICBib3JkZXI6IHZhcigtLWJvcmRlci13aWR0aC10aGluKSBub25lIHRyYW5zcGFyZW50O1xyXG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogc3RhdGVzXHJcbiAgICAgKiovXHJcblxyXG4gICAgI3skc2VsZWN0ZWR9ICYge1xyXG4gICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1wcm9ncmVzc3RyYWNrZXItY29sb3Itc2VsZWN0ZWQpO1xyXG4gICAgICBib3JkZXItY29sb3I6IHZhcigtLXByb2dyZXNzdHJhY2tlci1jb2xvci1zZWxlY3RlZCk7XHJcbiAgICB9XHJcblxyXG4gICAgI3skcmVhZHl9ICYge1xyXG4gICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1wcm9ncmVzc3RyYWNrZXItY29sb3ItcmVhZHktLWludmVyc2UpO1xyXG4gICAgICBib3JkZXItY29sb3I6IHZhcigtLXByb2dyZXNzdHJhY2tlci1jb2xvci1yZWFkeSk7XHJcbiAgICAgIGJvcmRlci1zdHlsZTogc29saWQ7XHJcbiAgICB9XHJcblxyXG4gICAgI3skbG9ja2VkfSAmIHtcclxuICAgICAgYmFja2dyb3VuZDogdmFyKC0tcHJvZ3Jlc3N0cmFja2VyLWNvbG9yLWxvY2tlZC0taW52ZXJzZSk7XHJcbiAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tcHJvZ3Jlc3N0cmFja2VyLWNvbG9yLWxvY2tlZCk7XHJcbiAgICAgIGJvcmRlci1zdHlsZTogc29saWQ7XHJcbiAgICB9XHJcblxyXG4gICAgI3skZG9uZX0gJiB7XHJcbiAgICAgIGJhY2tncm91bmQ6IHZhcigtLXByb2dyZXNzdHJhY2tlci1jb2xvci1kb25lKTtcclxuICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1wcm9ncmVzc3RyYWNrZXItY29sb3ItZG9uZSk7XHJcbiAgICB9XHJcblxyXG4gICAgI3skb3B0aW9uYWx9ICYge1xyXG4gICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1wcm9ncmVzc3RyYWNrZXItY29sb3Itb3B0aW9uYWwtLWludmVyc2UpO1xyXG4gICAgICBib3JkZXItY29sb3I6IHZhcigtLXByb2dyZXNzdHJhY2tlci1jb2xvci1vcHRpb25hbCk7XHJcbiAgICAgIGJvcmRlci1zdHlsZTogZGFzaGVkO1xyXG4gICAgfVxyXG5cclxuICAgICN7JGludmFsaWR9ICYge1xyXG4gICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1wcm9ncmVzc3RyYWNrZXItY29sb3ItaW52YWxpZCk7XHJcbiAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tcHJvZ3Jlc3N0cmFja2VyLWNvbG9yLWludmFsaWQpO1xyXG4gICAgfVxyXG5cclxuICAgICN7JHZpZXctb25seX0gJiB7XHJcbiAgICAgIGJhY2tncm91bmQ6IHZhcigtLXByb2dyZXNzdHJhY2tlci1jb2xvci12aWV3LW9ubHktLWludmVyc2UpO1xyXG4gICAgICBib3JkZXItY29sb3I6IHZhcigtLXByb2dyZXNzdHJhY2tlci1jb2xvci12aWV3LW9ubHkpO1xyXG4gICAgICBib3JkZXItc3R5bGU6IHNvbGlkO1xyXG4gICAgfVxyXG5cclxuICAgICN7JGhpZGRlbn0gJiB7XHJcbiAgICAgIGJhY2tncm91bmQ6IHZhcigtLXByb2dyZXNzdHJhY2tlci1jb2xvci1oaWRkZW4tLWludmVyc2UpO1xyXG4gICAgICBib3JkZXItY29sb3I6IHZhcigtLXByb2dyZXNzdHJhY2tlci1jb2xvci1oaWRkZW4tLWludmVyc2UpO1xyXG4gICAgfVxyXG5cclxuICAgICN7JHJlYWR5fSN7JHNlbGVjdGVkfSAmIHtcclxuICAgICAgYmFja2dyb3VuZDogdmFyKC0tcHJvZ3Jlc3N0cmFja2VyLWNvbG9yLXJlYWR5KTtcclxuICAgIH1cclxuXHJcbiAgICAjeyRsb2NrZWR9I3skc2VsZWN0ZWR9ICYge1xyXG4gICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1wcm9ncmVzc3RyYWNrZXItY29sb3ItbG9ja2VkKTtcclxuICAgIH1cclxuXHJcbiAgICAjeyRkb25lfSN7JHNlbGVjdGVkfSAmIHtcclxuICAgICAgYmFja2dyb3VuZDogdmFyKC0tcHJvZ3Jlc3N0cmFja2VyLWNvbG9yLWRvbmUpO1xyXG4gICAgfVxyXG5cclxuICAgICN7JG9wdGlvbmFsfSN7JHNlbGVjdGVkfSAmIHtcclxuICAgICAgYmFja2dyb3VuZDogdmFyKC0tcHJvZ3Jlc3N0cmFja2VyLWNvbG9yLW9wdGlvbmFsKTtcclxuICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1wcm9ncmVzc3RyYWNrZXItY29udGFpbmVyLWJnLWNvbG9yKTtcclxuICAgICAgYm9yZGVyLXN0eWxlOiBkYXNoZWQ7XHJcbiAgICB9XHJcblxyXG4gICAgI3skdmlldy1vbmx5fSN7JHNlbGVjdGVkfSAmIHtcclxuICAgICAgYmFja2dyb3VuZDogdmFyKC0tcHJvZ3Jlc3N0cmFja2VyLWNvbG9yLXZpZXctb25seSk7XHJcbiAgICB9XHJcblxyXG4gICAgI3skaGlkZGVufSN7JHNlbGVjdGVkfSAmIHtcclxuICAgICAgYmFja2dyb3VuZDogdmFyKC0tcHJvZ3Jlc3N0cmFja2VyLWNvbG9yLWhpZGRlbi0taW52ZXJzZSk7XHJcbiAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tcHJvZ3Jlc3N0cmFja2VyLWNvbG9yLWhpZGRlbi0taW52ZXJzZSk7XHJcbiAgICB9XHJcblxyXG4gICAgI3skaW52YWxpZH0jeyRzZWxlY3RlZH0gJiB7XHJcbiAgICAgIGJhY2tncm91bmQ6IHZhcigtLXByb2dyZXNzdHJhY2tlci1jb2xvci1pbnZhbGlkKTtcclxuICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1wcm9ncmVzc3RyYWNrZXItY29sb3ItaW52YWxpZCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAmX19pbm5lciB7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xyXG4gICAgd2lkdGg6IHZhcigtLWdhcC01KTtcclxuICAgIGhlaWdodDogdmFyKC0tZ2FwLTUpO1xyXG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogc3RhdGVzXHJcbiAgICAgKiovXHJcblxyXG4gICAgI3skc2VsZWN0ZWR9ICYge1xyXG4gICAgICBjb2xvcjogdmFyKC0tcHJvZ3Jlc3N0cmFja2VyLWNvbG9yLXNlbGVjdGVkLS1pbnZlcnNlKTtcclxuICAgIH1cclxuXHJcbiAgICAjeyRyZWFkeX0gJiB7XHJcbiAgICAgIGNvbG9yOiB2YXIoLS1wcm9ncmVzc3RyYWNrZXItY29sb3ItcmVhZHkpO1xyXG4gICAgfVxyXG5cclxuICAgICN7JGxvY2tlZH0gJiB7XHJcbiAgICAgIGNvbG9yOiB2YXIoLS1wcm9ncmVzc3RyYWNrZXItY29sb3ItbG9ja2VkKTtcclxuICAgIH1cclxuXHJcbiAgICAjeyRkb25lfSAmIHtcclxuICAgICAgY29sb3I6IHZhcigtLXByb2dyZXNzdHJhY2tlci1jb2xvci1kb25lLS1pbnZlcnNlKTtcclxuICAgIH1cclxuXHJcbiAgICAjeyRvcHRpb25hbH0gJiB7XHJcbiAgICAgIGNvbG9yOiB2YXIoLS1wcm9ncmVzc3RyYWNrZXItY29sb3Itb3B0aW9uYWwpO1xyXG4gICAgfVxyXG5cclxuICAgICN7JGludmFsaWR9ICYge1xyXG4gICAgICBjb2xvcjogdmFyKC0tcHJvZ3Jlc3N0cmFja2VyLWNvbG9yLWludmFsaWQtLWludmVyc2UpO1xyXG4gICAgfVxyXG5cclxuICAgICN7JHZpZXctb25seX0gJiB7XHJcbiAgICAgIGNvbG9yOiB2YXIoLS1wcm9ncmVzc3RyYWNrZXItY29sb3Itdmlldy1vbmx5KTtcclxuICAgIH1cclxuXHJcbiAgICAjeyRoaWRkZW59ICYge1xyXG4gICAgICBjb2xvcjogdmFyKC0tcHJvZ3Jlc3N0cmFja2VyLWNvbG9yLWhpZGRlbik7XHJcbiAgICB9XHJcblxyXG4gICAgI3skcmVhZHl9I3skc2VsZWN0ZWR9ICYge1xyXG4gICAgICBjb2xvcjogdmFyKC0tcHJvZ3Jlc3N0cmFja2VyLWNvbG9yLXJlYWR5LS1pbnZlcnNlKTtcclxuICAgIH1cclxuXHJcbiAgICAjeyRsb2NrZWR9I3skc2VsZWN0ZWR9ICYge1xyXG4gICAgICBjb2xvcjogdmFyKC0tcHJvZ3Jlc3N0cmFja2VyLWNvbG9yLWxvY2tlZC0taW52ZXJzZSk7XHJcbiAgICB9XHJcblxyXG4gICAgI3skZG9uZX0jeyRzZWxlY3RlZH0gJiB7XHJcbiAgICAgIGNvbG9yOiB2YXIoLS1wcm9ncmVzc3RyYWNrZXItY29sb3ItZG9uZS0taW52ZXJzZSk7XHJcbiAgICB9XHJcblxyXG4gICAgI3skb3B0aW9uYWx9I3skc2VsZWN0ZWR9ICYge1xyXG4gICAgICBjb2xvcjogdmFyKC0tcHJvZ3Jlc3N0cmFja2VyLWNvbG9yLW9wdGlvbmFsLS1pbnZlcnNlKTtcclxuICAgIH1cclxuXHJcbiAgICAjeyR2aWV3LW9ubHl9I3skc2VsZWN0ZWR9ICYge1xyXG4gICAgICBjb2xvcjogdmFyKC0tcHJvZ3Jlc3N0cmFja2VyLWNvbG9yLXZpZXctb25seS0taW52ZXJzZSk7XHJcbiAgICB9XHJcblxyXG4gICAgI3skaGlkZGVufSN7JHNlbGVjdGVkfSAmIHtcclxuICAgICAgY29sb3I6IHZhcigtLXByb2dyZXNzdHJhY2tlci1jb2xvci1oaWRkZW4pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgJl9faWNvbi0tbG9ja2VkIHtcclxuICAgIHdpZHRoOiByZW0tcHgoMTIpO1xyXG4gICAgaGVpZ2h0OiByZW0tcHgoMTIpO1xyXG4gICAgbWFyZ2luLWJvdHRvbTogMnB4O1xyXG4gIH1cclxuXHJcbiAgJl9faWNvbi0tZG9uZSB7XHJcbiAgICB3aWR0aDogcmVtLXB4KDE2KTtcclxuICAgIGhlaWdodDogcmVtLXB4KDE2KTtcclxuICAgIG1hcmdpbi10b3A6IDJweDtcclxuICB9XHJcblxyXG4gICZfX2ljb24tLWludmFsaWQge1xyXG4gICAgd2lkdGg6IHJlbS1weCgxNCk7XHJcbiAgICBoZWlnaHQ6IHJlbS1weCgxNCk7XHJcbiAgICBtYXJnaW4tYm90dG9tOiAzcHg7XHJcbiAgfVxyXG5cclxuICAmX19pY29uLS1oaWRkZW4ge1xyXG4gICAgd2lkdGg6IHJlbS1weCgyMCk7XHJcbiAgICBoZWlnaHQ6IHJlbS1weCgyMCk7XHJcbiAgfVxyXG5cclxuICAmX19sYWJlbCB7XHJcbiAgICBAaW5jbHVkZSBzci1vbmx5KCk7XHJcbiAgfVxyXG59XHJcblxyXG4vKiEqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiEqXFxcclxuICAhKioqIGNzcyAuL2NsaWVudC90b29saW5nL3dlYnBhY2svY3NzX3Jhd19sb2FkZXIuanM/P2Nsb25lZFJ1bGVTZXQtMTU2MS51c2VbMV0hLi9ub2RlX21vZHVsZXMvcG9zdGNzcy1sb2FkZXIvZGlzdC9janMuanM/P2Nsb25lZFJ1bGVTZXQtMTU2MS51c2VbMl0hLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2luZGV4LmpzPz9ydWxlU2V0WzBdLnVzZVswXSEuL2NsaWVudC9jb21wb25lbnQvdHVpL3NyYy9jb21wb25lbnRzL3Byb2dyZXNzdHJhY2tlci9Qcm9ncmVzc1RyYWNrZXJOYXZJdGVtLnZ1ZT92dWUmdHlwZT1zdHlsZSZpbmRleD0wJmlkPTdmNzQyZjI0Jmxhbmc9c2NzcyAqKiohXHJcbiAgXFwqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cclxuJHByb2dyZXNzVHJhY2tlci1oYWxmLW1hcmtlci1zaXplOiBjYWxjKFxyXG4gIHZhcigtLXByb2dyZXNzdHJhY2tlci1mdWxsLW1hcmtlci1zaXplKSAvIDJcclxuKSAhZGVmYXVsdDtcclxuXHJcbi8qKlxyXG4gICogQ29ubmVjdG9yIGxpbmVzXHJcbiAgKiovXHJcbi50dWktcHJvZ3Jlc3NUcmFja2VyTmF2X19pdGVtQ29udGVudFdyYXBwZXI6YmVmb3JlIHtcclxuICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgZGlzcGxheTogYmxvY2s7XHJcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1wcm9ncmVzc3RyYWNrZXItY29sb3ItcGVuZGluZyk7XHJcbiAgYm9yZGVyLXN0eWxlOiBkb3R0ZWQ7XHJcbiAgY29udGVudDogJyc7XHJcblxyXG4gIC50dWktcHJvZ3Jlc3NUcmFja2VyTmF2LS12ZXJ0aWNhbCAmIHtcclxuICAgIHRvcDogY2FsYyhcclxuICAgICAgdmFyKC0tcHJvZ3Jlc3N0cmFja2VyLWZ1bGwtbWFya2VyLXNpemUpICsgdmFyKC0tYm9yZGVyLXdpZHRoLW5vcm1hbClcclxuICAgICk7XHJcbiAgICAvKiBuZXN0ZWQgY2FsYygpIHdpbGwgZ2V0IGJvdGNoZWQgYnkgUlRMQ1NTIHByb2Nlc3NpbmcgaWYgaXQgaXMgYnJva2VuIGRvd24gb250byBtdWx0aXBsZSBsaW5lcyAqL1xyXG4gICAgLyogcHJldHRpZXItaWdub3JlICovXHJcbiAgICBsZWZ0OiBjYWxjKCAjeyRwcm9ncmVzc1RyYWNrZXItaGFsZi1tYXJrZXItc2l6ZX0gLSBjYWxjKHZhcigtLWJvcmRlci13aWR0aC1ub3JtYWwpIC8gMikgKTtcclxuICAgIHdpZHRoOiB2YXIoLS1ib3JkZXItd2lkdGgtbm9ybWFsKTtcclxuICAgIC8qIHByZXR0aWVyLWlnbm9yZSAqL1xyXG4gICAgaGVpZ2h0OiBjYWxjKCAxMDAlIC0gY2FsYyggdmFyKC0tcHJvZ3Jlc3N0cmFja2VyLWZ1bGwtbWFya2VyLXNpemUpICsgY2FsYyh2YXIoLS1ib3JkZXItd2lkdGgtbm9ybWFsKSAqIDIpICkgKTtcclxuICAgIGJvcmRlci13aWR0aDogMCAwIDAgdmFyKC0tYm9yZGVyLXdpZHRoLW5vcm1hbCk7XHJcbiAgfVxyXG4gIC50dWktcHJvZ3Jlc3NUcmFja2VyTmF2LS1ob3Jpem9udGFsICYge1xyXG4gICAgLyogbmVzdGVkIGNhbGMoKSB3aWxsIGdldCBib3RjaGVkIGJ5IFJUTENTUyBwcm9jZXNzaW5nIGlmIGl0IGlzIGJyb2tlbiBkb3duIG9udG8gbXVsdGlwbGUgbGluZXMgKi9cclxuICAgIC8qIHByZXR0aWVyLWlnbm9yZSAqL1xyXG4gICAgdG9wOiBjYWxjKCAjeyRwcm9ncmVzc1RyYWNrZXItaGFsZi1tYXJrZXItc2l6ZX0gLSBjYWxjKHZhcigtLWJvcmRlci13aWR0aC1ub3JtYWwpIC8gMikgKTtcclxuICAgIC8qIHByZXR0aWVyLWlnbm9yZSAqL1xyXG4gICAgbGVmdDogY2FsYyg1MCUgKyAjeyRwcm9ncmVzc1RyYWNrZXItaGFsZi1tYXJrZXItc2l6ZX0gKyB2YXIoLS1wcm9ncmVzc3RyYWNrZXItY29ubmVjdG9yLWdhcCkgLSB2YXIoLS1ib3JkZXItd2lkdGgtbm9ybWFsKSk7XHJcbiAgICAvKiBwcmV0dGllci1pZ25vcmUgKi9cclxuICAgIHdpZHRoOiBjYWxjKCAxMDAlIC0gY2FsYyggdmFyKC0tcHJvZ3Jlc3N0cmFja2VyLWZ1bGwtbWFya2VyLXNpemUpICsgY2FsYyh2YXIoLS1wcm9ncmVzc3RyYWNrZXItY29ubmVjdG9yLWdhcCkpICsgdmFyKC0tYm9yZGVyLXdpZHRoLW5vcm1hbCkpKTtcclxuICAgIGhlaWdodDogdmFyKC0tYm9yZGVyLXdpZHRoLW5vcm1hbCk7XHJcbiAgICBib3JkZXItd2lkdGg6IHZhcigtLWJvcmRlci13aWR0aC1ub3JtYWwpIDAgMCAwO1xyXG4gIH1cclxufVxyXG5cclxuLyoqXHJcbiAgKiBDb25uZWN0b3IgbGluZSBtb2RpZmllcnNcclxuICAqKi9cclxuLnR1aS1wcm9ncmVzc1RyYWNrZXJOYXZfX2Nvbm5lY3RvciB7XHJcbiAgLyogaXRlbSBzdGF0ZXMgcmVsYXRlZCB0byBBY2hpZXZlbWVudCovXHJcbiAgJi0tcGVuZGluZyB7XHJcbiAgICAvKiB0aGlzIGlzIHRoZSBkZWZhdWx0IHN0YXRlIGlmIG5vIHN0YXRlIEFycmF5IGlzIHBhc3NlZCBpbnRvIHRoZSBpdGVtKi9cclxuICAgIC50dWktcHJvZ3Jlc3NUcmFja2VyTmF2X19pdGVtQ29udGVudFdyYXBwZXI6YmVmb3JlIHtcclxuICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1wcm9ncmVzc3RyYWNrZXItY29sb3ItcGVuZGluZyk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAmLS1jb21wbGV0ZSB7XHJcbiAgICAudHVpLXByb2dyZXNzVHJhY2tlck5hdl9faXRlbUNvbnRlbnRXcmFwcGVyOmJlZm9yZSB7XHJcbiAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tcHJvZ3Jlc3N0cmFja2VyLWNvbG9yLWNvbXBsZXRlKTtcclxuICAgICAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gICYtLWFjaGlldmVkIHtcclxuICAgIC50dWktcHJvZ3Jlc3NUcmFja2VyTmF2X19pdGVtQ29udGVudFdyYXBwZXI6YmVmb3JlIHtcclxuICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1wcm9ncmVzc3RyYWNrZXItY29sb3ItYWNoaWV2ZWQpO1xyXG4gICAgICBib3JkZXItc3R5bGU6IHNvbGlkO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuLyoqXHJcbiAqIEl0ZW1zIGFuZCB0aGVpciBjb250ZW50XHJcbiAqKi9cclxuLnR1aS1wcm9ncmVzc1RyYWNrZXJOYXYge1xyXG4gICZfX2l0ZW0ge1xyXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgZmxleC1zaHJpbms6IDA7XHJcblxyXG4gICAgJjpsYXN0LWNoaWxkIHtcclxuICAgICAgLnR1aS1wcm9ncmVzc1RyYWNrZXJOYXZfX2l0ZW1Db250ZW50V3JhcHBlcjpiZWZvcmUge1xyXG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICogQ29ubmVjdG9yIGdhcCBhZGp1c3RtZW50IGZvciBsYXJnZSBpdGVtIG1hcmtlcnNcclxuICAgICoqL1xyXG4gICAgJi0tc2VsZWN0ZWQsXHJcbiAgICAmLS10YXJnZXQge1xyXG4gICAgICAudHVpLXByb2dyZXNzVHJhY2tlck5hdl9faXRlbUNvbnRlbnRXcmFwcGVyOmFmdGVyIHtcclxuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgICAgLyogbmVzdGVkIGNhbGMoKSB3aWxsIGdldCBib3RjaGVkIGJ5IFJUTENTUyBwcm9jZXNzaW5nIGlmIGl0IGlzIGJyb2tlbiBkb3duIG9udG8gbXVsdGlwbGUgbGluZXMgKi9cclxuICAgICAgICAvKiBwcmV0dGllci1pZ25vcmUgKi9cclxuICAgICAgICB3aWR0aDogY2FsYyggdmFyKC0tcHJvZ3Jlc3N0cmFja2VyLWZ1bGwtbWFya2VyLXNpemUpICsgY2FsYyh2YXIoLS1wcm9ncmVzc3RyYWNrZXItY29ubmVjdG9yLWdhcCkgKiAyKSApO1xyXG4gICAgICAgIC8qIHByZXR0aWVyLWlnbm9yZSAqL1xyXG4gICAgICAgIGhlaWdodDogY2FsYyggdmFyKC0tcHJvZ3Jlc3N0cmFja2VyLWZ1bGwtbWFya2VyLXNpemUpICsgY2FsYyh2YXIoLS1wcm9ncmVzc3RyYWNrZXItY29ubmVjdG9yLWdhcCkgKiAyKSApO1xyXG4gICAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tcHJvZ3Jlc3N0cmFja2VyLWNvbnRhaW5lci1iZy1jb2xvcik7XHJcbiAgICAgICAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcclxuICAgICAgICBib3JkZXItd2lkdGg6IHZhcigtLXByb2dyZXNzdHJhY2tlci1jb25uZWN0b3ItZ2FwKTtcclxuICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7XHJcbiAgICAgICAgY29udGVudDogJyc7XHJcblxyXG4gICAgICAgIC50dWktcHJvZ3Jlc3NUcmFja2VyTmF2LS1ob3Jpem9udGFsICYge1xyXG4gICAgICAgICAgdG9wOiBjYWxjKHZhcigtLXByb2dyZXNzdHJhY2tlci1jb25uZWN0b3ItZ2FwKSAqIC0xKTtcclxuICAgICAgICAgIGxlZnQ6IGNhbGMoXHJcbiAgICAgICAgICAgIDUwJSAtICN7JHByb2dyZXNzVHJhY2tlci1oYWxmLW1hcmtlci1zaXplfSAtIHZhcigtLXByb2dyZXNzdHJhY2tlci1jb25uZWN0b3ItZ2FwKVxyXG4gICAgICAgICAgKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgLnR1aS1wcm9ncmVzc1RyYWNrZXJOYXYtLXZlcnRpY2FsICYge1xyXG4gICAgICAgICAgdG9wOiBjYWxjKHZhcigtLXByb2dyZXNzdHJhY2tlci1jb25uZWN0b3ItZ2FwKSAqIC0xKTtcclxuICAgICAgICAgIGxlZnQ6IGNhbGModmFyKC0tcHJvZ3Jlc3N0cmFja2VyLWNvbm5lY3Rvci1nYXApICogLTEpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgJl9faXRlbUNvbnRlbnRXcmFwcGVyIHtcclxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcblxyXG4gICAgLnR1aS1wcm9ncmVzc1RyYWNrZXJOYXYtLXZlcnRpY2FsICYge1xyXG4gICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xyXG4gICAgICBhbGlnbi1pdGVtczogc3RyZXRjaDtcclxuICAgICAgaGVpZ2h0OiAxMDAlO1xyXG4gICAgfVxyXG4gICAgLnR1aS1wcm9ncmVzc1RyYWNrZXJOYXYtLWhvcml6b250YWwgJiB7XHJcbiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XHJcbiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAmX19pdGVtQ29udGVudCB7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxuXHJcbiAgICAmLS1mdWxsLXdpZHRoIHtcclxuICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICB9XHJcblxyXG4gICAgJi0tb3ZlcmZsb3ctaGlkZGVuIHtcclxuICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcclxuICAgIH1cclxuXHJcbiAgICAudHVpLXByb2dyZXNzVHJhY2tlck5hdi0tdmVydGljYWwgJiB7XHJcbiAgICAgIHBhZGRpbmctbGVmdDogdmFyKC0tZ2FwLTIpO1xyXG5cclxuICAgICAgLyoqXHJcbiAgICAgICogdmFyaWFibGUgd2lkdGggYW5kIGdhcCBzaXplcyBiYXNlZCBvbiBzdXBwbGllZCBwcm9wc1xyXG4gICAgICAqKi9cclxuICAgICAgJi0tZ2FwLXNtYWxsIHtcclxuICAgICAgICBwYWRkaW5nLWJvdHRvbTogdmFyKC0tZ2FwLTIpO1xyXG4gICAgICB9XHJcblxyXG4gICAgICAmLS1nYXAtbWVkaXVtIHtcclxuICAgICAgICBwYWRkaW5nLWJvdHRvbTogdmFyKC0tZ2FwLTUpO1xyXG4gICAgICB9XHJcblxyXG4gICAgICAmLS1nYXAtbGFyZ2Uge1xyXG4gICAgICAgIHBhZGRpbmctYm90dG9tOiB2YXIoLS1nYXAtNyk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAudHVpLXByb2dyZXNzVHJhY2tlck5hdi0taG9yaXpvbnRhbCAmIHtcclxuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuXHJcbiAgICAgIC8qKlxyXG4gICAgICAgICogdmFyaWFibGUgd2lkdGggYW5kIGdhcCBzaXplcyBiYXNlZCBvbiBzdXBwbGllZCBwcm9wc1xyXG4gICAgICAgICoqL1xyXG4gICAgICAmLS1nYXAtc21hbGwge1xyXG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IHZhcigtLXByb2dyZXNzLXRyYWNrZXItaG9yaXpvbnRhbC1nYXAtLXNtYWxsKTtcclxuICAgICAgICBwYWRkaW5nLWxlZnQ6IHZhcigtLXByb2dyZXNzLXRyYWNrZXItaG9yaXpvbnRhbC1nYXAtLXNtYWxsKTtcclxuICAgICAgfVxyXG4gICAgICAmLS1zaXplLXNtYWxsIHtcclxuICAgICAgICB3aWR0aDogdmFyKC0tcHJvZ3Jlc3MtdHJhY2tlci1ob3Jpem9udGFsLXNpemUtLXNtYWxsKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgJi0tZ2FwLW1lZGl1bSB7XHJcbiAgICAgICAgcGFkZGluZy1yaWdodDogdmFyKC0tcHJvZ3Jlc3MtdHJhY2tlci1ob3Jpem9udGFsLWdhcC0tbWVkaXVtKTtcclxuICAgICAgICBwYWRkaW5nLWxlZnQ6IHZhcigtLXByb2dyZXNzLXRyYWNrZXItaG9yaXpvbnRhbC1nYXAtLW1lZGl1bSk7XHJcbiAgICAgIH1cclxuICAgICAgJi0tc2l6ZS1tZWRpdW0ge1xyXG4gICAgICAgIHdpZHRoOiB2YXIoLS1wcm9ncmVzcy10cmFja2VyLWhvcml6b250YWwtc2l6ZS0tbWVkaXVtKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgJi0tZ2FwLWxhcmdlIHtcclxuICAgICAgICBwYWRkaW5nLXJpZ2h0OiB2YXIoLS1wcm9ncmVzcy10cmFja2VyLWhvcml6b250YWwtZ2FwLS1sYXJnZSk7XHJcbiAgICAgICAgcGFkZGluZy1sZWZ0OiB2YXIoLS1wcm9ncmVzcy10cmFja2VyLWhvcml6b250YWwtZ2FwLS1sYXJnZSk7XHJcbiAgICAgIH1cclxuICAgICAgJi0tc2l6ZS1sYXJnZSB7XHJcbiAgICAgICAgd2lkdGg6IHZhcigtLXByb2dyZXNzLXRyYWNrZXItaG9yaXpvbnRhbC1zaXplLS1sYXJnZSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gICZfX2l0ZW1MYWJlbCB7XHJcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICB3aWR0aDogMTAwJTtcclxuICAgIG1hcmdpbjogMDtcclxuICAgIHBhZGRpbmctdG9wOiB2YXIoLS1nYXAtMSk7XHJcbiAgICBwYWRkaW5nLWJvdHRvbTogdmFyKC0tZ2FwLTEpO1xyXG5cclxuICAgIC50dWktcHJvZ3Jlc3NUcmFja2VyTmF2LS1ob3Jpem9udGFsICYge1xyXG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICB9XHJcblxyXG4gICAgJi0tY3VycmVudCB7XHJcbiAgICAgIC50dWktYnRuIHtcclxuICAgICAgICBjb2xvcjogdmFyKC0tY29sb3Itc3RhdGUtYWN0aXZlKTtcclxuICAgICAgICBmb250LXdlaWdodDogYm9sZDtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgJl9faXRlbVN0YXR1cyB7XHJcbiAgICBAaW5jbHVkZSBzci1vbmx5KCk7XHJcbiAgfVxyXG59XHJcblxyXG4vKiEqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiEqXFxcclxuICAhKioqIGNzcyAuL2NsaWVudC90b29saW5nL3dlYnBhY2svY3NzX3Jhd19sb2FkZXIuanM/P2Nsb25lZFJ1bGVTZXQtMTU2MS51c2VbMV0hLi9ub2RlX21vZHVsZXMvcG9zdGNzcy1sb2FkZXIvZGlzdC9janMuanM/P2Nsb25lZFJ1bGVTZXQtMTU2MS51c2VbMl0hLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2luZGV4LmpzPz9ydWxlU2V0WzBdLnVzZVswXSEuL2NsaWVudC9jb21wb25lbnQvdHVpL3NyYy9jb21wb25lbnRzL3NldHRpbmdzX25hdmlnYXRpb24vU2V0dGluZ3NOYXZpZ2F0aW9uLnZ1ZT92dWUmdHlwZT1zdHlsZSZpbmRleD0wJmlkPTllNzcxM2Q2Jmxhbmc9c2NzcyAqKiohXHJcbiAgXFwqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cclxuOnJvb3Qge1xyXG4gIC0tc2V0dGluZ3MtbmF2aWdhdGlvbi1zcGFjaW5nOiB2YXIoLS1nYXAtMik7XHJcbiAgLS1zZXR0aW5ncy1uYXZpZ2F0aW9uLXRyZWUtd2lkdGg6IDM0MHB4O1xyXG59XHJcblxyXG4vKiEqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiohKlxcXHJcbiAgISoqKiBjc3MgLi9jbGllbnQvdG9vbGluZy93ZWJwYWNrL2Nzc19yYXdfbG9hZGVyLmpzPz9jbG9uZWRSdWxlU2V0LTE1NjEudXNlWzFdIS4vbm9kZV9tb2R1bGVzL3Bvc3Rjc3MtbG9hZGVyL2Rpc3QvY2pzLmpzPz9jbG9uZWRSdWxlU2V0LTE1NjEudXNlWzJdIS4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9pbmRleC5qcz8/cnVsZVNldFswXS51c2VbMF0hLi9jbGllbnQvY29tcG9uZW50L3R1aS9zcmMvY29tcG9uZW50cy9zZXR0aW5nc19uYXZpZ2F0aW9uL1NldHRpbmdzTmF2aWdhdGlvblRyZWUudnVlP3Z1ZSZ0eXBlPXN0eWxlJmluZGV4PTAmaWQ9YTk0MzZmNWEmbGFuZz1zY3NzICoqKiFcclxuICBcXCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cclxuLnR1aS1zZXR0aW5nc05hdmlnYXRpb25UcmVlIHtcclxuICAtd2Via2l0LWh5cGhlbnM6IG5vbmU7XHJcbiAgICAgICAgICBoeXBoZW5zOiBub25lO1xyXG5cclxuICAmX19zZXR0aW5nc0l0ZW0ge1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgICBjb2xvcjogdmFyKC0tY29sb3ItbmV1dHJhbC02KTtcclxuICB9XHJcblxyXG4gICZfX2xhYmVsIHtcclxuICAgIHBhZGRpbmc6IHZhcigtLWdhcC0yKSB2YXIoLS1nYXAtNCk7XHJcbiAgICBsaW5lLWhlaWdodDogMS40O1xyXG4gICAgY3Vyc29yOiBkZWZhdWx0O1xyXG4gIH1cclxufVxyXG5cclxuLyohKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiEqXFxcclxuICAhKioqIGNzcyAuL2NsaWVudC90b29saW5nL3dlYnBhY2svY3NzX3Jhd19sb2FkZXIuanM/P2Nsb25lZFJ1bGVTZXQtMTU2MS51c2VbMV0hLi9ub2RlX21vZHVsZXMvcG9zdGNzcy1sb2FkZXIvZGlzdC9janMuanM/P2Nsb25lZFJ1bGVTZXQtMTU2MS51c2VbMl0hLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2luZGV4LmpzPz9ydWxlU2V0WzBdLnVzZVswXSEuL2NsaWVudC9jb21wb25lbnQvdHVpL3NyYy9jb21wb25lbnRzL3NpZGVwYW5lbC9TaWRlUGFuZWwudnVlP3Z1ZSZ0eXBlPXN0eWxlJmluZGV4PTAmaWQ9MzlhZjRmYmMmbGFuZz1zY3NzICoqKiFcclxuICBcXCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXHJcbjpyb290IHtcclxuICAtLXR1aS1zaWRlcGFuZWwtYnV0dG9uLXdpZHRoOiAzMHB4O1xyXG4gIC0tdHVpLXNpZGVwYW5lbC1idXR0b24taGVpZ2h0OiA2NnB4O1xyXG4gIC0tdHVpLXNpZGVwYW5lbC1ib3JkZXItd2lkdGg6IDFweDtcclxufVxyXG5cclxuLnR1aS1zaWRlUGFuZWwge1xyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxuXHJcbiAgJi0tZGlzcGxheUNocm9tZSB7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XHJcbiAgICBoZWlnaHQ6IDEwMCU7XHJcbiAgfVxyXG5cclxuICAvKiBpbm5lciBjb250ZW50IGFsaWdubWVudCovXHJcbiAgJi0tcnRsLFxyXG4gIC5kaXItcnRsIC50dWktc2lkZVBhbmVsLS1sdHIgJiB7XHJcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xyXG4gIH1cclxuICAmLS1sdHIsXHJcbiAgLmRpci1ydGwgLnR1aS1zaWRlUGFuZWwtLXJ0bCAmIHtcclxuICAgIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcclxuICB9XHJcblxyXG4gICYtLXN0aWNreSB7XHJcbiAgICBwb3NpdGlvbjogc3RpY2t5O1xyXG4gICAgdG9wOiAwO1xyXG4gICAgbWF4LWhlaWdodDogMTAwdmg7XHJcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xyXG4gIH1cclxuXHJcbiAgJi0tc3RpY2t5Ji0tY2xvc2VkIHtcclxuICAgIG92ZXJmbG93OiB2aXNpYmxlO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQSB3cmFwcGVyIGZvciBjb250ZW50IGNvbnRhaW5lciwgd2hpY2ggaGVscHMgd2l0aCB0cmFuc2l0aW9ucyBvbiB3aWR0aFxyXG4gICAqIHdoaWxlIG92ZXJmbG93aW5nIGNvbnRlbnQgaXMgc3RpbGwgdmlzaWJsZSwgYW5kIHByb3ZpZGluZyB3aGl0ZXNwYWNlXHJcbiAgICogYmV0d2VlbiBjb250ZW50IGFuZCB0aGUgZWRnZXMgb2YgdGhlIFNpZGVQYW5lbFxyXG4gICAqKi9cclxuICAmX19pbm5lciB7XHJcbiAgICAudHVpLXNpZGVQYW5lbC0tZGlzcGxheUNocm9tZSAmIHtcclxuICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxuICAgICAgZmxleC1ncm93OiAxO1xyXG4gICAgICBmbGV4LXNocmluazogMTtcclxuICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLW5ldXRyYWwtMyk7XHJcbiAgICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLWJvcmRlci1yYWRpdXMtY3VydmVkKTtcclxuICAgIH1cclxuXHJcbiAgICAudHVpLXNpZGVQYW5lbC0tZmx1c2ggJiB7XHJcbiAgICAgIGJvcmRlci10b3A6IG5vbmU7XHJcbiAgICAgIGJvcmRlci1ib3R0b206IG5vbmU7XHJcbiAgICB9XHJcblxyXG4gICAgLnR1aS1zaWRlUGFuZWwtLW9wZW4udHVpLXNpZGVQYW5lbC0tb3ZlcmZsb3dzICYge1xyXG4gICAgICBvdmVyZmxvdy15OiBhdXRvO1xyXG4gICAgfVxyXG5cclxuICAgIC50dWktc2lkZVBhbmVsLS1jbG9zZWQgJiB7XHJcbiAgICAgIG1heC13aWR0aDogMXB4O1xyXG4gICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xyXG4gICAgICBwYWRkaW5nLWxlZnQ6IDA7XHJcbiAgICAgIGJvcmRlci1sZWZ0OiAwO1xyXG4gICAgfVxyXG5cclxuICAgIC8qIHdlIGhhdmUgdG8gY3V0IG9mZiBvdmVyZmxvdyBkdXJpbmcgdGhlc2Ugc3RhdGVzIG90aGVyd2lzZSB3ZSdsbCBidW1wKi9cclxuICAgIC8qIHBhZ2Ugc2Nyb2xsYmFycywgb3IgYSBjb250YWluaW5nIGVsZW1lbnQgc2Nyb2xsYmFycyovXHJcbiAgICAudHVpLXNpZGVQYW5lbC0tY2xvc2VkICYsXHJcbiAgICAudHVpLXNpZGVQYW5lbC0tY2xvc2luZyAmLFxyXG4gICAgLnR1aS1zaWRlUGFuZWwtLW9wZW5pbmcgJiB7XHJcbiAgICAgIG92ZXJmbG93OiBoaWRkZW47XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBUcmFuc2l0aW9uZWQgY29udGFpbmVyIGZvciBhcmJpdHJhcnkgU2lkZVBhbmVsIGNvbnRlbnRcclxuICAgKiovXHJcbiAgJl9fY29udGVudCB7XHJcbiAgICAudHVpLXNpZGVQYW5lbC0tZGlzcGxheUNocm9tZSAmIHtcclxuICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxuICAgICAgZmxleC1ncm93OiAxO1xyXG4gICAgICBvdmVyZmxvdzogaGlkZGVuO1xyXG4gICAgfVxyXG5cclxuICAgIC50dWktc2lkZVBhbmVsLS1jbG9zZWQgJixcclxuICAgIC50dWktc2lkZVBhbmVsLS1jbG9zaW5nICYge1xyXG4gICAgICBvcGFjaXR5OiAwO1xyXG4gICAgfVxyXG5cclxuICAgIC50dWktc2lkZVBhbmVsLS1jbG9zZWQgJiB7XHJcbiAgICAgIGhlaWdodDogMDtcclxuICAgICAgdmlzaWJpbGl0eTogaGlkZGVuO1xyXG4gICAgfVxyXG5cclxuICAgIC50dWktc2lkZVBhbmVsLS1vcGVuICYsXHJcbiAgICAudHVpLXNpZGVQYW5lbC0tb3BlbmluZyAmIHtcclxuICAgICAgb3BhY2l0eTogMTtcclxuICAgIH1cclxuXHJcbiAgICAudHVpLXNpZGVQYW5lbC0tYW5pbWF0ZWQgJiB7XHJcbiAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgdmFyKC0tdHJhbnNpdGlvbi1zaWRlcGFuZWwtY29udGVudC1kdXJhdGlvbilcclxuICAgICAgICB2YXIoLS10cmFuc2l0aW9uLXNpZGVwYW5lbC1jb250ZW50LWZ1bmN0aW9uKTtcclxuICAgIH1cclxuXHJcbiAgICAudHVpLXNpZGVQYW5lbC0tb3Blbi50dWktc2lkZVBhbmVsLS1vdmVyZmxvd3MgJiB7XHJcbiAgICAgIG92ZXJmbG93LXk6IGF1dG87XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG4vKiEqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqISpcXFxyXG4gICEqKiogY3NzIC4vY2xpZW50L3Rvb2xpbmcvd2VicGFjay9jc3NfcmF3X2xvYWRlci5qcz8/Y2xvbmVkUnVsZVNldC0xNTYxLnVzZVsxXSEuL25vZGVfbW9kdWxlcy9wb3N0Y3NzLWxvYWRlci9kaXN0L2Nqcy5qcz8/Y2xvbmVkUnVsZVNldC0xNTYxLnVzZVsyXSEuL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvaW5kZXguanM/P3J1bGVTZXRbMF0udXNlWzBdIS4vY2xpZW50L2NvbXBvbmVudC90dWkvc3JjL2NvbXBvbmVudHMvc2lkZXBhbmVsL1NpZGVQYW5lbE5hdi52dWU/dnVlJnR5cGU9c3R5bGUmaW5kZXg9MCZpZD01MTE4NGE3NyZsYW5nPXNjc3MgKioqIVxyXG4gIFxcKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cclxuLnR1aS1zaWRlUGFuZWxOYXYge1xyXG4gIHBhZGRpbmc6IHZhcigtLWdhcC00KSAwO1xyXG4gIGJhY2tncm91bmQ6IHZhcigtLXNpZGUtcGFuZWwtbmF2LWJnLWNvbG9yKTtcclxuXHJcbiAgJiA+ICogKyAqIHtcclxuICAgIG1hcmdpbi10b3A6IHZhcigtLWdhcC03KTtcclxuICB9XHJcbn1cclxuXHJcbi8qISoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqISpcXFxyXG4gICEqKiogY3NzIC4vY2xpZW50L3Rvb2xpbmcvd2VicGFjay9jc3NfcmF3X2xvYWRlci5qcz8/Y2xvbmVkUnVsZVNldC0xNTYxLnVzZVsxXSEuL25vZGVfbW9kdWxlcy9wb3N0Y3NzLWxvYWRlci9kaXN0L2Nqcy5qcz8/Y2xvbmVkUnVsZVNldC0xNTYxLnVzZVsyXSEuL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvaW5kZXguanM/P3J1bGVTZXRbMF0udXNlWzBdIS4vY2xpZW50L2NvbXBvbmVudC90dWkvc3JjL2NvbXBvbmVudHMvc2lkZXBhbmVsL1NpZGVQYW5lbE5hdkJ1dHRvbkl0ZW0udnVlP3Z1ZSZ0eXBlPXN0eWxlJmluZGV4PTAmaWQ9NzhkMGZlYmMmbGFuZz1zY3NzICoqKiFcclxuICBcXCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xyXG4udHVpLXNpZGVQYW5lbE5hdkJ1dHRvbkl0ZW0ge1xyXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICBkaXNwbGF5OiBmbGV4O1xyXG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgY29sb3I6IHZhcigtLXNpZGUtcGFuZWwtbmF2LWl0ZW0tdGV4dC1jb2xvcik7XHJcbiAgYmFja2dyb3VuZDogdmFyKC0tc2lkZS1wYW5lbC1uYXYtaXRlbS1iZy1jb2xvcik7XHJcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1zaWRlLXBhbmVsLW5hdi1pdGVtLWJvcmRlci1jb2xvcik7XHJcblxyXG4gIC8qIEl0ZW0gbGkqL1xyXG4gICYudHVpLWZvY3VzV2l0aGluLFxyXG4gICY6aG92ZXIge1xyXG4gICAgY29sb3I6IHZhcigtLXNpZGUtcGFuZWwtbmF2LWl0ZW0tdGV4dC1jb2xvci1mb2N1cyk7XHJcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1zaWRlLXBhbmVsLW5hdi1pdGVtLWJnLWNvbG9yLWZvY3VzKTtcclxuICAgIGJvcmRlci1jb2xvcjogdmFyKC0tc2lkZS1wYW5lbC1uYXYtaXRlbS1ib3JkZXItY29sb3ItZm9jdXMpO1xyXG4gIH1cclxuXHJcbiAgJl9fc2lkZSB7XHJcbiAgICBtYXJnaW4tbGVmdDogYXV0bztcclxuICAgIHBhZGRpbmctcmlnaHQ6IHZhcigtLWdhcC00KTtcclxuICB9XHJcblxyXG4gICZfX25vdGlmaWNhdGlvbkRvdCB7XHJcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAvKiBUaGUgc2FtZSBhcyBwYWRkaW5nIGxlZnQgb2YgYWN0aW9pbiBwbHVzIGFub3RoZXIgdHVpLWdhcC00IHRvIG1ha2Ugc3VyZSB0aGVyZSBpcyBhIHBhZGRpbmcgYmV0d2VlbiovXHJcbiAgICAvKiB0aGUgYWN0aW9uIGxpbmsgYW5kIHRoZSBkb3QuKi9cclxuICAgIHdpZHRoOiB2YXIoLS1zaWRlcGFuZWwtbmF2aWdhdGlvbi1pdGVtLXBhZGRpbmctbGVmdCk7XHJcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcclxuXHJcbiAgICAmLWlubmVyIHtcclxuICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgIHdpZHRoOiByZW0tcHgoNik7XHJcbiAgICAgIGhlaWdodDogcmVtLXB4KDYpO1xyXG4gICAgICBtYXJnaW4tbGVmdDogdmFyKC0tZ2FwLTMpO1xyXG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci1wcm9tcHQtYWxlcnQpO1xyXG4gICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyogSXRlbSBsaW5rKi9cclxuICAmX19hY3Rpb24ge1xyXG4gICAgZmxleC1ncm93OiAxO1xyXG4gICAganVzdGlmeS1jb250ZW50OiBzdGFydDtcclxuICAgIHBhZGRpbmc6IHZhcigtLWdhcC0yKSB2YXIoLS1nYXAtNCk7XHJcbiAgICBwYWRkaW5nLWxlZnQ6IHZhcigtLXNpZGVwYW5lbC1uYXZpZ2F0aW9uLWl0ZW0tcGFkZGluZy1sZWZ0KTtcclxuICAgIGNvbG9yOiBpbmhlcml0O1xyXG4gICAgdGV4dC1hbGlnbjogbGVmdDtcclxuICAgIC1tcy13b3JkLWJyZWFrOiBicmVhay1hbGw7XHJcbiAgICB3b3JkLWJyZWFrOiBicmVhay13b3JkO1xyXG5cclxuICAgICY6aG92ZXIsXHJcbiAgICAmOmZvY3VzLFxyXG4gICAgJjpmb2N1czpob3ZlciB7XHJcbiAgICAgIGNvbG9yOiBpbmhlcml0O1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgJi0tYWN0aXZlIHtcclxuICAgIGNvbG9yOiB2YXIoLS1zaWRlLXBhbmVsLW5hdi1pdGVtLXRleHQtY29sb3Itc2VsZWN0ZWQpO1xyXG4gICAgYmFja2dyb3VuZDogdmFyKC0tc2lkZS1wYW5lbC1uYXYtaXRlbS1iZy1jb2xvci1zZWxlY3RlZCk7XHJcbiAgICBib3JkZXItY29sb3I6IHZhcigtLXNpZGUtcGFuZWwtbmF2LWl0ZW0tYm9yZGVyLWNvbG9yLXNlbGVjdGVkKTtcclxuXHJcbiAgICAmLnR1aS1mb2N1c1dpdGhpbixcclxuICAgICY6aG92ZXIge1xyXG4gICAgICBjb2xvcjogdmFyKC0tc2lkZS1wYW5lbC1uYXYtaXRlbS10ZXh0LWNvbG9yLXNlbGVjdGVkKTtcclxuICAgICAgYmFja2dyb3VuZDogdmFyKC0tc2lkZS1wYW5lbC1uYXYtaXRlbS1iZy1jb2xvci1zZWxlY3RlZCk7XHJcbiAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tc2lkZS1wYW5lbC1uYXYtaXRlbS1ib3JkZXItY29sb3Itc2VsZWN0ZWQpO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuLyohKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqISpcXFxyXG4gICEqKiogY3NzIC4vY2xpZW50L3Rvb2xpbmcvd2VicGFjay9jc3NfcmF3X2xvYWRlci5qcz8/Y2xvbmVkUnVsZVNldC0xNTYxLnVzZVsxXSEuL25vZGVfbW9kdWxlcy9wb3N0Y3NzLWxvYWRlci9kaXN0L2Nqcy5qcz8/Y2xvbmVkUnVsZVNldC0xNTYxLnVzZVsyXSEuL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvaW5kZXguanM/P3J1bGVTZXRbMF0udXNlWzBdIS4vY2xpZW50L2NvbXBvbmVudC90dWkvc3JjL2NvbXBvbmVudHMvc2lkZXBhbmVsL1NpZGVQYW5lbE5hdkdyb3VwLnZ1ZT92dWUmdHlwZT1zdHlsZSZpbmRleD0wJmlkPTZlZTllY2Y4Jmxhbmc9c2NzcyAqKiohXHJcbiAgXFwqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXHJcbi50dWktc2lkZVBhbmVsTmF2R3JvdXAge1xyXG4gICYgPiAqICsgKiB7XHJcbiAgICBtYXJnaW4tdG9wOiB2YXIoLS1nYXAtMik7XHJcbiAgfVxyXG5cclxuICAmX19oZWFkaW5nIHtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAgcGFkZGluZzogMCB2YXIoLS1nYXAtNCk7XHJcbiAgICBwYWRkaW5nLWxlZnQ6IHZhcigtLXNpZGVwYW5lbC1uYXZpZ2F0aW9uLWl0ZW0tcGFkZGluZy1sZWZ0KTtcclxuXHJcbiAgICAmLXRpdGxlIHtcclxuICAgICAgQGluY2x1ZGUgZm9udChoNCk7XHJcbiAgICAgIG1hcmdpbjogMDtcclxuICAgIH1cclxuXHJcbiAgICAmLXNpZGUge1xyXG4gICAgICBtYXJnaW4tbGVmdDogYXV0bztcclxuICAgICAgcGFkZGluZy1sZWZ0OiB2YXIoLS1nYXAtMik7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAmX19pdGVtcyB7XHJcbiAgICBtYXJnaW4tbGVmdDogMDtcclxuICAgIGxpc3Qtc3R5bGU6IG5vbmU7XHJcbiAgfVxyXG59XHJcblxyXG4vKiEqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiohKlxcXHJcbiAgISoqKiBjc3MgLi9jbGllbnQvdG9vbGluZy93ZWJwYWNrL2Nzc19yYXdfbG9hZGVyLmpzPz9jbG9uZWRSdWxlU2V0LTE1NjEudXNlWzFdIS4vbm9kZV9tb2R1bGVzL3Bvc3Rjc3MtbG9hZGVyL2Rpc3QvY2pzLmpzPz9jbG9uZWRSdWxlU2V0LTE1NjEudXNlWzJdIS4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9pbmRleC5qcz8/cnVsZVNldFswXS51c2VbMF0hLi9jbGllbnQvY29tcG9uZW50L3R1aS9zcmMvY29tcG9uZW50cy9zaWRlcGFuZWwvU2lkZVBhbmVsTmF2TGlua0l0ZW0udnVlP3Z1ZSZ0eXBlPXN0eWxlJmluZGV4PTAmaWQ9NGM3OGY5NzgmbGFuZz1zY3NzICoqKiFcclxuICBcXCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cclxuLnR1aS1zaWRlUGFuZWxOYXZMaW5rSXRlbSB7XHJcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICBjb2xvcjogdmFyKC0tc2lkZS1wYW5lbC1uYXYtaXRlbS10ZXh0LWNvbG9yKTtcclxuICBiYWNrZ3JvdW5kOiB2YXIoLS1zaWRlLXBhbmVsLW5hdi1pdGVtLWJnLWNvbG9yKTtcclxuICBib3JkZXItY29sb3I6IHZhcigtLXNpZGUtcGFuZWwtbmF2LWl0ZW0tYm9yZGVyLWNvbG9yKTtcclxuXHJcbiAgLyogSXRlbSBsaSovXHJcbiAgJi50dWktZm9jdXNXaXRoaW4sXHJcbiAgJjpob3ZlciB7XHJcbiAgICBjb2xvcjogdmFyKC0tc2lkZS1wYW5lbC1uYXYtaXRlbS10ZXh0LWNvbG9yLWZvY3VzKTtcclxuICAgIGJhY2tncm91bmQ6IHZhcigtLXNpZGUtcGFuZWwtbmF2LWl0ZW0tYmctY29sb3ItZm9jdXMpO1xyXG4gICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1zaWRlLXBhbmVsLW5hdi1pdGVtLWJvcmRlci1jb2xvci1mb2N1cyk7XHJcbiAgfVxyXG5cclxuICAmX19zaWRlIHtcclxuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xyXG4gICAgcGFkZGluZy1yaWdodDogdmFyKC0tZ2FwLTQpO1xyXG4gIH1cclxuXHJcbiAgJl9fbm90aWZpY2F0aW9uRG90IHtcclxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgIC8qIFRoZSBzYW1lIGFzIHBhZGRpbmcgbGVmdCBvZiBhY3Rpb2luIHBsdXMgYW5vdGhlciB0dWktZ2FwLTQgdG8gbWFrZSBzdXJlIHRoZXJlIGlzIGEgcGFkZGluZyBiZXR3ZWVuKi9cclxuICAgIC8qIHRoZSBhY3Rpb24gbGluayBhbmQgdGhlIGRvdC4qL1xyXG4gICAgd2lkdGg6IHZhcigtLXNpZGVwYW5lbC1uYXZpZ2F0aW9uLWl0ZW0tcGFkZGluZy1sZWZ0KTtcclxuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xyXG5cclxuICAgICYtaW5uZXIge1xyXG4gICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgICAgd2lkdGg6IHJlbS1weCg2KTtcclxuICAgICAgaGVpZ2h0OiByZW0tcHgoNik7XHJcbiAgICAgIG1hcmdpbi1sZWZ0OiB2YXIoLS1nYXAtMyk7XHJcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLXByb21wdC1hbGVydCk7XHJcbiAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKiBJdGVtIGxpbmsqL1xyXG4gICZfX2FjdGlvbiB7XHJcbiAgICBmbGV4LWdyb3c6IDE7XHJcbiAgICBwYWRkaW5nOiB2YXIoLS1nYXAtMikgdmFyKC0tZ2FwLTQpO1xyXG4gICAgcGFkZGluZy1sZWZ0OiB2YXIoLS1zaWRlcGFuZWwtbmF2aWdhdGlvbi1pdGVtLXBhZGRpbmctbGVmdCk7XHJcbiAgICBjb2xvcjogaW5oZXJpdDtcclxuICAgIGxpbmUtaGVpZ2h0OiAxO1xyXG4gICAgLW1zLXdvcmQtYnJlYWs6IGJyZWFrLWFsbDtcclxuICAgIHdvcmQtYnJlYWs6IGJyZWFrLXdvcmQ7XHJcblxyXG4gICAgJjpob3ZlcixcclxuICAgICY6Zm9jdXMsXHJcbiAgICAmOmZvY3VzOmhvdmVyIHtcclxuICAgICAgY29sb3I6IGluaGVyaXQ7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAmLS1hY3RpdmUge1xyXG4gICAgY29sb3I6IHZhcigtLXNpZGUtcGFuZWwtbmF2LWl0ZW0tdGV4dC1jb2xvci1zZWxlY3RlZCk7XHJcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1zaWRlLXBhbmVsLW5hdi1pdGVtLWJnLWNvbG9yLXNlbGVjdGVkKTtcclxuICAgIGJvcmRlci1jb2xvcjogdmFyKC0tc2lkZS1wYW5lbC1uYXYtaXRlbS1ib3JkZXItY29sb3Itc2VsZWN0ZWQpO1xyXG5cclxuICAgICYudHVpLWZvY3VzV2l0aGluLFxyXG4gICAgJjpob3ZlciB7XHJcbiAgICAgIGNvbG9yOiB2YXIoLS1zaWRlLXBhbmVsLW5hdi1pdGVtLXRleHQtY29sb3Itc2VsZWN0ZWQpO1xyXG4gICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1zaWRlLXBhbmVsLW5hdi1pdGVtLWJnLWNvbG9yLXNlbGVjdGVkKTtcclxuICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1zaWRlLXBhbmVsLW5hdi1pdGVtLWJvcmRlci1jb2xvci1zZWxlY3RlZCk7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG4vKiEqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiEqXFxcclxuICAhKioqIGNzcyAuL2NsaWVudC90b29saW5nL3dlYnBhY2svY3NzX3Jhd19sb2FkZXIuanM/P2Nsb25lZFJ1bGVTZXQtMTU2MS51c2VbMV0hLi9ub2RlX21vZHVsZXMvcG9zdGNzcy1sb2FkZXIvZGlzdC9janMuanM/P2Nsb25lZFJ1bGVTZXQtMTU2MS51c2VbMl0hLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2luZGV4LmpzPz9ydWxlU2V0WzBdLnVzZVswXSEuL2NsaWVudC9jb21wb25lbnQvdHVpL3NyYy9jb21wb25lbnRzL3RhYnMvVGFiQmFyLnZ1ZT92dWUmdHlwZT1zdHlsZSZpbmRleD0wJmlkPTVhZGZlZjAwJmxhbmc9c2NzcyAqKiohXHJcbiAgXFwqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cclxuOnJvb3Qge1xyXG4gIC0tdGFiLWJvcmRlci13aWR0aDogMXB4O1xyXG4gIC8qIFRhYiBpbm5lciBob3Jpem9udGFsIHBhZGRpbmcqL1xyXG4gIC0tdGFiLWgtcGFkZGluZzogdmFyKC0tZ2FwLTQpO1xyXG4gIC8qIFRhYiBpbm5lciB2ZXJ0aWNhbCBwYWRkaW5nKi9cclxuICAtLXRhYi12LXBhZGRpbmc6IHZhcigtLWdhcC0yKTtcclxuICAvKiBTaXplIG9mIEhpZ2hsaWdodCovXHJcbiAgLS10YWItaGlnaGxpZ2h0LWhlaWdodDogdmFyKC0tZ2FwLTEpO1xyXG4gIC8qIEFkZCBleHRyYSBzcGFjaW5nIGZvciBkcm9wIHNoYWRvdyB0byBiZSBkaXNwbGF5ZWQqL1xyXG4gIC0tdGFiLXNoYWRvdy1vZmZzZXQ6IHZhcigtLWdhcC0zKTtcclxuICAvKiBUYWIgc21hbGwgdmVyc2lvbiBpbm5lciBob3Jpem9udGFsIHBhZGRpbmcqL1xyXG4gIC0tdGFiLXNtYWxsLWgtcGFkZGluZzogdmFyKC0tZ2FwLTQpO1xyXG4gIC8qIFRhYiBzbWFsbCB2ZXJzaW9uIGlubmVyIHZlcnRpY2FsIHBhZGRpbmcqL1xyXG4gIC0tdGFiLXNtYWxsLXYtcGFkZGluZzogdmFyKC0tZ2FwLTIpO1xyXG59XHJcblxyXG4udHVpLXRhYkJhciB7XHJcbiAgJG1vZC1ob3Jpem9udGFsOiAjeyZ9LS1ob3Jpem9udGFsO1xyXG4gICRtb2QtdmVydGljYWw6ICN7Jn0tLXZlcnRpY2FsO1xyXG5cclxuICBkaXNwbGF5OiBmbGV4O1xyXG4gIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcclxuICBtYXJnaW46IDA7XHJcbiAgcGFkZGluZzogMDtcclxuXHJcbiAgJi0taG9yaXpvbnRhbCB7XHJcbiAgICBib3JkZXItYm90dG9tOiB2YXIoLS10YWItYm9yZGVyLXdpZHRoKSBzb2xpZDtcclxuICAgIGJvcmRlci1ib3R0b20tY29sb3I6IHZhcigtLXRhYnMtYm9yZGVyLWNvbG9yKTtcclxuICB9XHJcblxyXG4gICYtLXZlcnRpY2FsIHtcclxuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XHJcbiAgICBhbGlnbi1pdGVtczogc3RyZXRjaDtcclxuICAgIGJvcmRlci1yaWdodDogdmFyKC0tdGFiLWJvcmRlci13aWR0aCkgc29saWQ7XHJcbiAgICBib3JkZXItcmlnaHQtY29sb3I6IHZhcigtLXRhYnMtYm9yZGVyLWNvbG9yKTtcclxuICB9XHJcblxyXG4gICZfX3RhYiB7XHJcbiAgICBkaXNwbGF5OiBibG9jaztcclxuICAgIG92ZXJmbG93OiBoaWRkZW47XHJcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcclxuXHJcbiAgICAjeyRtb2QtaG9yaXpvbnRhbH0gJiB7XHJcbiAgICAgIG1hcmdpbjogY2FsYyh2YXIoLS10YWItc2hhZG93LW9mZnNldCkgKiAtMSk7XHJcbiAgICAgIG1hcmdpbi1ib3R0b206IGNhbGModmFyKC0tdGFiLWJvcmRlci13aWR0aCkgKiAtMSk7XHJcbiAgICAgIHBhZGRpbmc6IHZhcigtLXRhYi1zaGFkb3ctb2Zmc2V0KTtcclxuICAgICAgcGFkZGluZy1ib3R0b206IHZhcigtLXRhYi1ib3JkZXItd2lkdGgpO1xyXG4gICAgfVxyXG5cclxuICAgICN7JG1vZC12ZXJ0aWNhbH0gJiB7XHJcbiAgICAgIG1heC13aWR0aDogMjIwcHg7XHJcbiAgICAgIG1hcmdpbi1yaWdodDogY2FsYyh2YXIoLS10YWItYm9yZGVyLXdpZHRoKSAqIC0xKTtcclxuICAgICAgbWFyZ2luLWJvdHRvbTogY2FsYyh2YXIoLS10YWItc2hhZG93LW9mZnNldCkgKiAtMSk7XHJcbiAgICAgIHBhZGRpbmctcmlnaHQ6IHZhcigtLXRhYi1ib3JkZXItd2lkdGgpO1xyXG4gICAgICBwYWRkaW5nLWJvdHRvbTogdmFyKC0tdGFiLXNoYWRvdy1vZmZzZXQpO1xyXG4gICAgfVxyXG5cclxuICAgICYtLWhpZGRlbiB7XHJcbiAgICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBhJl9fbGluayB7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgcGFkZGluZzogdmFyKC0tdGFiLXYtcGFkZGluZykgdmFyKC0tdGFiLWgtcGFkZGluZyk7XHJcbiAgICBjb2xvcjogdmFyKC0tdGFicy10ZXh0LWNvbG9yKTtcclxuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcclxuXHJcbiAgICBib3JkZXI6IHZhcigtLXRhYi1ib3JkZXItd2lkdGgpIHNvbGlkO1xyXG4gICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDtcclxuXHJcbiAgICBwb2ludGVyLWV2ZW50czogYXV0bztcclxuXHJcbiAgICAmOmhvdmVyIHtcclxuICAgICAgY29sb3I6IHZhcigtLXRhYnMtdGV4dC1jb2xvci1mb2N1cyk7XHJcbiAgICAgIGJhY2tncm91bmQ6IHZhcigtLXRhYnMtYmctY29sb3ItZm9jdXMpO1xyXG4gICAgfVxyXG5cclxuICAgICY6Zm9jdXMtdmlzaWJsZSB7XHJcbiAgICAgIGNvbG9yOiB2YXIoLS10YWJzLXRleHQtY29sb3ItZm9jdXMpO1xyXG4gICAgICBiYWNrZ3JvdW5kOiB2YXIoLS10YWJzLWJnLWNvbG9yLWZvY3VzKTtcclxuICAgICAgb3V0bGluZTogMnB4IHNvbGlkIHZhcigtLWNvbG9yLXN0YXRlLWZvY3VzKTtcclxuICAgICAgb3V0bGluZS1vZmZzZXQ6IGNhbGMoKHZhcigtLXRhYi1ib3JkZXItd2lkdGgpICsgNHB4KSAqIC0xKTtcclxuICAgIH1cclxuXHJcbiAgICAmOmFjdGl2ZSxcclxuICAgICY6YWN0aXZlOmZvY3VzLFxyXG4gICAgJjphY3RpdmU6aG92ZXIge1xyXG4gICAgICBjb2xvcjogdmFyKC0tdGFicy10ZXh0LWNvbG9yLWFjdGl2ZSk7XHJcbiAgICAgIG91dGxpbmU6IG5vbmU7XHJcbiAgICB9XHJcblxyXG4gICAgI3skbW9kLWhvcml6b250YWx9ICYge1xyXG4gICAgICBtYXJnaW4tdG9wOiB2YXIoLS10YWItaGlnaGxpZ2h0LWhlaWdodCk7XHJcbiAgICAgIC8qIG92ZXJsYXAgZWRnZXMgdG8gYXZvaWQgZG91YmxlIGJvcmRlciovXHJcbiAgICAgIG1hcmdpbi1yaWdodDogY2FsYyh2YXIoLS10YWItYm9yZGVyLXdpZHRoKSAqIC0xKTtcclxuICAgICAgYm9yZGVyLWJvdHRvbTogbm9uZTtcclxuICAgIH1cclxuXHJcbiAgICAjeyRtb2QtdmVydGljYWx9ICYge1xyXG4gICAgICAvKiBvdmVybGFwIGVkZ2VzIHRvIGF2b2lkIGRvdWJsZSBib3JkZXIqL1xyXG4gICAgICBtYXJnaW4tYm90dG9tOiBjYWxjKHZhcigtLXRhYi1ib3JkZXItd2lkdGgpICogLTEpO1xyXG4gICAgICBtYXJnaW4tbGVmdDogdmFyKC0tdGFiLWhpZ2hsaWdodC1oZWlnaHQpO1xyXG4gICAgICBib3JkZXItcmlnaHQ6IG5vbmU7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAmX190YWItLWRpc2FibGVkIGEmX19saW5rIHtcclxuICAgIGNvbG9yOiB2YXIoLS10YWJzLXRleHQtY29sb3ItZGlzYWJsZWQpO1xyXG4gICAgY3Vyc29yOiBkZWZhdWx0O1xyXG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XHJcbiAgfVxyXG5cclxuICAmX190YWItLWFjdGl2ZSBhJl9fbGluayB7XHJcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICBjb2xvcjogdmFyKC0tdGFicy10ZXh0LWNvbG9yLXNlbGVjdGVkKTtcclxuICAgIGJhY2tncm91bmQ6IHZhcigtLXRhYnMtYmctY29sb3Itc2VsZWN0ZWQpO1xyXG5cclxuICAgICN7JG1vZC1ob3Jpem9udGFsfSAmIHtcclxuICAgICAgdG9wOiB2YXIoLS10YWItYm9yZGVyLXdpZHRoKTtcclxuICAgICAgcGFkZGluZy10b3A6IGNhbGModmFyKC0tdGFiLXYtcGFkZGluZykgLSB2YXIoLS10YWItYm9yZGVyLXdpZHRoKSk7XHJcbiAgICAgIHBhZGRpbmctYm90dG9tOiBjYWxjKHZhcigtLXRhYi12LXBhZGRpbmcpICsgdmFyKC0tdGFiLWJvcmRlci13aWR0aCkpO1xyXG4gICAgICBib3JkZXItY29sb3I6IHZhcigtLXRhYnMtYm9yZGVyLWNvbG9yKTtcclxuICAgICAgYm94LXNoYWRvdzogdmFyKC0tc2hhZG93LTMpO1xyXG4gICAgfVxyXG5cclxuICAgICN7JG1vZC12ZXJ0aWNhbH0gJiB7XHJcbiAgICAgIGxlZnQ6IHZhcigtLXRhYi1ib3JkZXItd2lkdGgpO1xyXG4gICAgICBwYWRkaW5nLXJpZ2h0OiBjYWxjKHZhcigtLXRhYi12LXBhZGRpbmcpICsgdmFyKC0tdGFiLWJvcmRlci13aWR0aCkpO1xyXG4gICAgICBwYWRkaW5nLWxlZnQ6IGNhbGModmFyKC0tdGFiLWgtcGFkZGluZykgLSB2YXIoLS10YWItYm9yZGVyLXdpZHRoKSk7XHJcbiAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tdGFicy1ib3JkZXItY29sb3IpO1xyXG4gICAgICBib3gtc2hhZG93OiB2YXIoLS1zaGFkb3ctMik7XHJcbiAgICB9XHJcblxyXG4gICAgJjo6YWZ0ZXIge1xyXG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAgIGJhY2tncm91bmQ6IHZhcigtLXRhYnMtc2VsZWN0ZWQtYmFyLWNvbG9yKTtcclxuICAgICAgY29udGVudDogJyc7XHJcblxyXG4gICAgICAjeyRtb2QtaG9yaXpvbnRhbH0gJiB7XHJcbiAgICAgICAgdG9wOiBjYWxjKHZhcigtLXRhYi1oaWdobGlnaHQtaGVpZ2h0KSAqIC0xKTtcclxuICAgICAgICByaWdodDogMDtcclxuICAgICAgICBsZWZ0OiBjYWxjKHZhcigtLXRhYi1ib3JkZXItd2lkdGgpICogLTEpO1xyXG4gICAgICAgIHdpZHRoOiBjYWxjKDEwMCUgKyAodmFyKC0tdGFiLWJvcmRlci13aWR0aCkgKiAyKSk7XHJcbiAgICAgICAgaGVpZ2h0OiB2YXIoLS10YWItaGlnaGxpZ2h0LWhlaWdodCk7XHJcbiAgICAgICAgYm9yZGVyLXJhZGl1czogdmFyKC0tYm9yZGVyLXJhZGl1cy1zbWFsbCkgdmFyKC0tYm9yZGVyLXJhZGl1cy1zbWFsbCkgMCAwO1xyXG4gICAgICB9XHJcblxyXG4gICAgICAjeyRtb2QtdmVydGljYWx9ICYge1xyXG4gICAgICAgIHRvcDogY2FsYyh2YXIoLS10YWItYm9yZGVyLXdpZHRoKSAqIC0xKTtcclxuICAgICAgICBib3R0b206IDA7XHJcbiAgICAgICAgbGVmdDogY2FsYyh2YXIoLS10YWItaGlnaGxpZ2h0LWhlaWdodCkgKiAtMSk7XHJcbiAgICAgICAgd2lkdGg6IHZhcigtLXRhYi1oaWdobGlnaHQtaGVpZ2h0KTtcclxuICAgICAgICBoZWlnaHQ6IGNhbGMoMTAwJSArICh2YXIoLS10YWItYm9yZGVyLXdpZHRoKSAqIDIpKTtcclxuICAgICAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1ib3JkZXItcmFkaXVzLXNtYWxsKSAwIDAgdmFyKC0tYm9yZGVyLXJhZGl1cy1zbWFsbCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gICZfX3RhYkxhYmVsIHtcclxuICAgIG92ZXJmbG93OiBoaWRkZW47XHJcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xyXG4gICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XHJcbiAgfVxyXG5cclxuICAmX190YWJMYWJlbEV4dHJhIHtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAgbWFyZ2luLWxlZnQ6IHZhcigtLWdhcC0yKTtcclxuICB9XHJcblxyXG4gICZfX3NlbGVjdG9yIHtcclxuICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gIH1cclxufVxyXG5cclxuLnR1aS10YWJCYXIge1xyXG4gICRtb2QtaG9yaXpvbnRhbDogI3smfS0taG9yaXpvbnRhbDtcclxuICAkYmxvY2s6ICN7Jn07XHJcblxyXG4gIC8qIFNtYWxsIHRhYiovXHJcbiAgJl9fdGFiLS1zbWFsbCB7XHJcbiAgICAjeyRtb2QtaG9yaXpvbnRhbH0gJiB7XHJcbiAgICAgICN7JGJsb2NrfV9fbGluayB7XHJcbiAgICAgICAgQGluY2x1ZGUgZm9udChib2R5LXNtKTtcclxuICAgICAgICBwYWRkaW5nOiB2YXIoLS10YWItc21hbGwtdi1wYWRkaW5nKSB2YXIoLS10YWItc21hbGwtaC1wYWRkaW5nKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyogQWN0aXZlIHNtYWxsIHRhYiovXHJcbiAgJl9fdGFiLS1hY3RpdmUmX190YWItLXNtYWxsIHtcclxuICAgICN7JG1vZC1ob3Jpem9udGFsfSAmIHtcclxuICAgICAgI3skYmxvY2t9X19saW5rIHtcclxuICAgICAgICBwYWRkaW5nLXRvcDogY2FsYyh2YXIoLS10YWItc21hbGwtdi1wYWRkaW5nKSAtIHZhcigtLXRhYi1ib3JkZXItd2lkdGgpKTtcclxuICAgICAgICAvKiBwcmV0dGllci1pZ25vcmUqL1xyXG4gICAgICAgIHBhZGRpbmctYm90dG9tOiBjYWxjKHZhcigtLXRhYi1zbWFsbC12LXBhZGRpbmcpICsgdmFyKC0tdGFiLWJvcmRlci13aWR0aCkpO1xyXG4gICAgICAgIGNvbG9yOiB2YXIoLS10YWJzLXRleHQtY29sb3Itc2VsZWN0ZWQpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKiBEaXNhYmxlZCBzbWFsbCB0YWIqL1xyXG4gICZfX3RhYi0tZGlzYWJsZWQmX190YWItLXNtYWxsIHtcclxuICAgICN7JG1vZC1ob3Jpem9udGFsfSAmIHtcclxuICAgICAgI3skYmxvY2t9X19saW5rIHtcclxuICAgICAgICBjb2xvcjogdmFyKC0tdGFicy10ZXh0LWNvbG9yLWRpc2FibGVkKTtcclxuICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XHJcbiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbi8qISoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiEqXFxcclxuICAhKioqIGNzcyAuL2NsaWVudC90b29saW5nL3dlYnBhY2svY3NzX3Jhd19sb2FkZXIuanM/P2Nsb25lZFJ1bGVTZXQtMTU2MS51c2VbMV0hLi9ub2RlX21vZHVsZXMvcG9zdGNzcy1sb2FkZXIvZGlzdC9janMuanM/P2Nsb25lZFJ1bGVTZXQtMTU2MS51c2VbMl0hLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2luZGV4LmpzPz9ydWxlU2V0WzBdLnVzZVswXSEuL2NsaWVudC9jb21wb25lbnQvdHVpL3NyYy9jb21wb25lbnRzL3RhYnMvVGFicy52dWU/dnVlJnR5cGU9c3R5bGUmaW5kZXg9MCZpZD1mMDdkYzM4MCZsYW5nPXNjc3MgKioqIVxyXG4gIFxcKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xyXG4udHVpLXRhYnMge1xyXG4gICRtb2QtZmlsbDogI3smfS0tZmlsbDtcclxuICAkbW9kLWhvcml6b250YWw6ICN7Jn0tLWhvcml6b250YWw7XHJcbiAgJG1vZC12ZXJ0aWNhbDogI3smfS0tdmVydGljYWw7XHJcblxyXG4gICYtLWZpbGwge1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XHJcbiAgICBmbGV4LWdyb3c6IDE7XHJcbiAgICBoZWlnaHQ6IDEwMCU7XHJcbiAgfVxyXG5cclxuICAmLS12ZXJ0aWNhbCB7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgZmxleC1kaXJlY3Rpb246IHJvdztcclxuICB9XHJcblxyXG4gICN7JG1vZC1maWxsfSA+ICZfX3BhbmVscyB7XHJcbiAgICBmbGV4LWdyb3c6IDE7XHJcbiAgICBtaW4taGVpZ2h0OiAwO1xyXG5cclxuICAgID4gLnR1aS10YWJDb250ZW50IHtcclxuICAgICAgaGVpZ2h0OiAxMDAlO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuLnR1aS10YWJDb250ZW50IHtcclxuICAudHVpLXRhYnMtLWhvcml6b250YWwgJiB7XHJcbiAgICBwYWRkaW5nLXRvcDogdmFyKC0tZ2FwLTQpO1xyXG4gIH1cclxuXHJcbiAgLnR1aS10YWJzLS1ob3Jpem9udGFsLnR1aS10YWJzLS1jb250ZW50U3BhY2luZy1sYXJnZSAmIHtcclxuICAgIHBhZGRpbmctdG9wOiB2YXIoLS1nYXAtOCk7XHJcbiAgfVxyXG5cclxuICAudHVpLXRhYnMtLXZlcnRpY2FsICYge1xyXG4gICAgcGFkZGluZy1sZWZ0OiB2YXIoLS1nYXAtNCk7XHJcbiAgfVxyXG5cclxuICAudHVpLXRhYnMtLXZlcnRpY2FsLnR1aS10YWJzLS1jb250ZW50U3BhY2luZy1sYXJnZSAmIHtcclxuICAgIHBhZGRpbmctbGVmdDogdmFyKC0tZ2FwLTgpO1xyXG4gIH1cclxufVxyXG5cclxuLyohKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiEqXFxcclxuICAhKioqIGNzcyAuL2NsaWVudC90b29saW5nL3dlYnBhY2svY3NzX3Jhd19sb2FkZXIuanM/P2Nsb25lZFJ1bGVTZXQtMTU2MS51c2VbMV0hLi9ub2RlX21vZHVsZXMvcG9zdGNzcy1sb2FkZXIvZGlzdC9janMuanM/P2Nsb25lZFJ1bGVTZXQtMTU2MS51c2VbMl0hLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2luZGV4LmpzPz9ydWxlU2V0WzBdLnVzZVswXSEuL2NsaWVudC9jb21wb25lbnQvdHVpL3NyYy9jb21wb25lbnRzL3RhZy9UYWcudnVlP3Z1ZSZ0eXBlPXN0eWxlJmluZGV4PTAmaWQ9NTc0YmVkMTQmbGFuZz1zY3NzICoqKiFcclxuICBcXCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXHJcbi50dWktdGFnIHtcclxuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcclxuICBmbGV4LXNocmluazogMDtcclxuICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gIGhlaWdodDogdmFyKC0tdGFnLWhlaWdodCk7XHJcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS10YWctYmctY29sb3IpO1xyXG4gIGJvcmRlcjogdmFyKC0tYm9yZGVyLXdpZHRoLXRoaW4pIHNvbGlkIHZhcigtLXRhZy1ib3JkZXItY29sb3IpO1xyXG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLXRhZy1ib3JkZXItcmFkaXVzKTtcclxuXHJcbiAgJi0tbm9Cb3JkZXIge1xyXG4gICAgYm9yZGVyOiBub25lO1xyXG4gIH1cclxuXHJcbiAgJi0tbGFyZ2Uge1xyXG4gICAgaGVpZ2h0OiBhdXRvO1xyXG4gICAgYm9yZGVyLXJhZGl1czogMTAwcHg7IC8qIHN1aXRhYmx5IGxhcmdlIHRvIG1ha2UgaXQgcm91bmRlZCovXHJcbiAgfVxyXG5cclxuICAmLS1ib2xkIHtcclxuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xyXG4gIH1cclxuXHJcbiAgJl9fY29udGVudCB7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgcGFkZGluZzogMCB2YXIoLS1nYXAtMik7XHJcbiAgICBmb250LXNpemU6IGZvbnQtc2l6ZS1weCgxMyk7XHJcbiAgfVxyXG5cclxuICAmLS1sYXJnZSAmX19jb250ZW50IHtcclxuICAgIHBhZGRpbmc6IHZhcigtLWdhcC0yKSB2YXIoLS1nYXAtMyk7XHJcbiAgICBmb250LXNpemU6IGZvbnQtc2l6ZS1weCgxNSk7XHJcbiAgfVxyXG5cclxuICAmLS13aXRoQnV0dG9uICZfX2NvbnRlbnQge1xyXG4gICAgcGFkZGluZy1yaWdodDogMDtcclxuICAgIGNvbG9yOiB2YXIoLS10YWctYnV0dG9uLWNvbG9yKTtcclxuICB9XHJcblxyXG4gICZfX2NvbnRlbnRMYWJlbCB7XHJcbiAgICBwYWRkaW5nLXJpZ2h0OiB2YXIoLS1nYXAtMSk7XHJcbiAgICBmb250LXdlaWdodDogbm9ybWFsO1xyXG4gIH1cclxuXHJcbiAgJi0tcHJpbWFyeSB7XHJcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3Itc3RhdGUpO1xyXG4gIH1cclxuXHJcbiAgJi0tcHJpbWFyeSAmX19jb250ZW50IHtcclxuICAgIGNvbG9yOiB2YXIoLS1jb2xvci1uZXV0cmFsLTEpO1xyXG4gIH1cclxufVxyXG5cclxuLyohKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiohKlxcXHJcbiAgISoqKiBjc3MgLi9jbGllbnQvdG9vbGluZy93ZWJwYWNrL2Nzc19yYXdfbG9hZGVyLmpzPz9jbG9uZWRSdWxlU2V0LTE1NjEudXNlWzFdIS4vbm9kZV9tb2R1bGVzL3Bvc3Rjc3MtbG9hZGVyL2Rpc3QvY2pzLmpzPz9jbG9uZWRSdWxlU2V0LTE1NjEudXNlWzJdIS4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9pbmRleC5qcz8/cnVsZVNldFswXS51c2VbMF0hLi9jbGllbnQvY29tcG9uZW50L3R1aS9zcmMvY29tcG9uZW50cy90YWcvVGFnTGlzdC52dWU/dnVlJnR5cGU9c3R5bGUmaW5kZXg9MCZpZD0xNmRmMDAzNCZsYW5nPXNjc3MgKioqIVxyXG4gIFxcKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXHJcbi50dWktdGFnTGlzdCB7XHJcbiAgJGlubmVyLWhlaWdodDogY2FsYyhcclxuICAgIHZhcigtLWZvcm0taW5wdXQtaGVpZ2h0KSAtICh2YXIoLS1mb3JtLWlucHV0LWJvcmRlci1zaXplKSAqIDIpXHJcbiAgKTtcclxuICBkaXNwbGF5OiBmbGV4O1xyXG4gIG1pbi13aWR0aDogcmVtLXB4KDIzMCk7XHJcbiAgbWluLWhlaWdodDogdmFyKC0tZm9ybS1pbnB1dC1oZWlnaHQpO1xyXG4gIGNvbG9yOiB2YXIoLS1mb3JtLWlucHV0LXRleHQtY29sb3IpO1xyXG4gIGZvbnQtc2l6ZTogdmFyKC0tZm9ybS1pbnB1dC1mb250LXNpemUpO1xyXG4gIGJhY2tncm91bmQ6IHZhcigtLWZvcm0taW5wdXQtYmctY29sb3IpO1xyXG4gIGJvcmRlcjogdmFyKC0tZm9ybS1pbnB1dC1ib3JkZXItc2l6ZSkgc29saWQgdmFyKC0tZm9ybS1pbnB1dC1ib3JkZXItY29sb3IpO1xyXG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLWZvcm0taW5wdXQtYm9yZGVyLXJhZGl1cyk7XHJcblxyXG4gIC50dWktY29udGV4dEludmFsaWQgJiB7XHJcbiAgICBib3JkZXItY29sb3I6IHZhcigtLWZvcm0taW5wdXQtYm9yZGVyLWNvbG9yLWludmFsaWQpO1xyXG4gICAgYm94LXNoYWRvdzogdmFyKC0tZm9ybS1pbnB1dC1zaGFkb3ctaW52YWxpZCk7XHJcbiAgfVxyXG5cclxuICAmLS1oYXNGb2N1cyB7XHJcbiAgICBAaW5jbHVkZSB0dWktZm9jdXM7XHJcblxyXG4gICAgLnR1aS1jb250ZXh0SW52YWxpZCAmIHtcclxuICAgICAgYmFja2dyb3VuZDogdmFyKC0tZm9ybS1pbnB1dC1iZy1jb2xvci1pbnZhbGlkLWZvY3VzKTtcclxuICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1mb3JtLWlucHV0LWJvcmRlci1jb2xvci1pbnZhbGlkKTtcclxuICAgICAgb3V0bGluZS1jb2xvcjogdmFyKC0tZm9ybS1pbnB1dC1ib3JkZXItY29sb3ItaW52YWxpZCk7XHJcbiAgICAgIGJveC1zaGFkb3c6IHZhcigtLWZvcm0taW5wdXQtc2hhZG93LWludmFsaWQtZm9jdXMpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgJl9fdGFncyB7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgZmxleDogYXV0bztcclxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICBtaW4td2lkdGg6IDA7XHJcbiAgfVxyXG5cclxuICAmX190YWdJdGVtcyB7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgZmxleC1ncm93OiAxO1xyXG4gICAgZ2FwOiB2YXIoLS1nYXAtMSk7XHJcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAgbWluLXdpZHRoOiAwO1xyXG4gICAgcGFkZGluZzogY2FsYygoI3skaW5uZXItaGVpZ2h0fSAtIHZhcigtLXRhZy1oZWlnaHQpKSAvIDIpIHZhcigtLWdhcC0yKTtcclxuXHJcbiAgICAmLS1vcGVuIHtcclxuICAgICAgZmxleC13cmFwOiB3cmFwO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgJl9fdGFnSXRlbSB7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgZmxleC1zaHJpbms6IDA7XHJcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gIH1cclxuXHJcbiAgJl9fc3VmZml4IHtcclxuICAgIEBpbmNsdWRlIGZvbnQoYm9keS1zbSk7XHJcbiAgICBmbGV4LXNocmluazogMDtcclxuICAgIHBhZGRpbmctcmlnaHQ6IHZhcigtLWdhcC0yKTtcclxuICAgIHBhZGRpbmctbGVmdDogdmFyKC0tZ2FwLTEpO1xyXG4gICAgY29sb3I6IHZhcigtLWNvbG9yLXN0YXRlKTtcclxuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XHJcbiAgICAmOmhvdmVyIHtcclxuICAgICAgY3Vyc29yOiBwb2ludGVyO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgJl9faW5wdXQge1xyXG4gICAgZmxleC1ncm93OiAxO1xyXG4gICAgaGVpZ2h0OiB2YXIoLS10YWctaGVpZ2h0KTtcclxuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xyXG4gICAgYm9yZGVyOiBub25lO1xyXG4gICAgJjpmb2N1cyB7XHJcbiAgICAgIG91dGxpbmU6IG5vbmU7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAmX19leHBhbmRBcnJvdyB7XHJcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICB3aWR0aDogJGlubmVyLWhlaWdodDtcclxuICAgIGhlaWdodDogJGlubmVyLWhlaWdodDtcclxuICAgIGJhY2tncm91bmQ6IG5vbmU7XHJcbiAgICBib3JkZXI6IG5vbmU7XHJcblxyXG4gICAgJjo6YWZ0ZXIge1xyXG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAgIHRvcDogY2FsYygoI3skaW5uZXItaGVpZ2h0fSAtIHZhcigtLXNlbGVjdC1pY29uLXNpemUpKSAvIDIpO1xyXG4gICAgICByaWdodDogY2FsYygoI3skaW5uZXItaGVpZ2h0fSAtIHZhcigtLXNlbGVjdC1pY29uLXNpemUpICogMikgLyAyKTtcclxuICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgIHdpZHRoOiAwO1xyXG4gICAgICBoZWlnaHQ6IDA7XHJcbiAgICAgIGJvcmRlcjogdmFyKC0tc2VsZWN0LWljb24tc2l6ZSkgc29saWQgdHJhbnNwYXJlbnQ7XHJcbiAgICAgIGJvcmRlci10b3AtY29sb3I6IHZhcigtLWZvcm0taW5wdXQtdGV4dC1jb2xvcik7XHJcbiAgICAgIGNvbnRlbnQ6ICcnO1xyXG4gICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gICZfX2NhcmV0IHtcclxuICAgIGZpbGw6IHZhcigtLWNvbG9yLW5ldXRyYWwtNyk7XHJcbiAgfVxyXG5cclxuICAmX19sb2FkaW5nIHtcclxuICAgIG1hcmdpbjogdmFyKC0tZ2FwLTQpO1xyXG4gIH1cclxufVxyXG5cclxuLyohKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiohKlxcXHJcbiAgISoqKiBjc3MgLi9jbGllbnQvdG9vbGluZy93ZWJwYWNrL2Nzc19yYXdfbG9hZGVyLmpzPz9jbG9uZWRSdWxlU2V0LTE1NjEudXNlWzFdIS4vbm9kZV9tb2R1bGVzL3Bvc3Rjc3MtbG9hZGVyL2Rpc3QvY2pzLmpzPz9jbG9uZWRSdWxlU2V0LTE1NjEudXNlWzJdIS4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9pbmRleC5qcz8/cnVsZVNldFswXS51c2VbMF0hLi9jbGllbnQvY29tcG9uZW50L3R1aS9zcmMvY29tcG9uZW50cy90aGVtZV9zZXR0aW5ncy9TZXR0aW5nc0Zvcm1CcmFuZC52dWU/dnVlJnR5cGU9c3R5bGUmaW5kZXg9MCZpZD1iNmIxOTE2ZSZsYW5nPXNjc3MgKioqIVxyXG4gIFxcKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXHJcbi50dWktc2V0dGluZ3NGb3JtQnJhbmRfX3Rlc3RFbWFpbEluZm9CdXR0b24ge1xyXG4gIGFsaWduLXNlbGY6IGNlbnRlcjtcclxufVxyXG5cclxuLyohKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiEqXFxcclxuICAhKioqIGNzcyAuL2NsaWVudC90b29saW5nL3dlYnBhY2svY3NzX3Jhd19sb2FkZXIuanM/P2Nsb25lZFJ1bGVTZXQtMTU2MS51c2VbMV0hLi9ub2RlX21vZHVsZXMvcG9zdGNzcy1sb2FkZXIvZGlzdC9janMuanM/P2Nsb25lZFJ1bGVTZXQtMTU2MS51c2VbMl0hLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2luZGV4LmpzPz9ydWxlU2V0WzBdLnVzZVswXSEuL2NsaWVudC9jb21wb25lbnQvdHVpL3NyYy9jb21wb25lbnRzL3RvZ2dsZS9Ub2dnbGVCdXR0b24udnVlP3Z1ZSZ0eXBlPXN0eWxlJmluZGV4PTAmaWQ9NzdhMGU5MTImbGFuZz1zY3NzICoqKiFcclxuICBcXCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXHJcbi50dWktdG9nZ2xlQnRuIHtcclxuICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gIGZsZXgtc2hyaW5rOiAwO1xyXG4gIG1pbi13aWR0aDogdmFyKC0tZ2FwLTEyKTtcclxuICBtYXgtd2lkdGg6IDEwMCU7XHJcbiAgaGVpZ2h0OiB2YXIoLS1mb3JtLWlucHV0LWhlaWdodCk7XHJcbiAgcGFkZGluZzogMCB2YXIoLS1nYXAtMik7XHJcbiAgY29sb3I6IHZhcigtLXRvZ2dsZS1idG4tdGV4dC1jb2xvcik7XHJcbiAgZm9udC1zaXplOiB2YXIoLS1mb3JtLWlucHV0LWZvbnQtc2l6ZSk7XHJcbiAgbGluZS1oZWlnaHQ6IDEuMjtcclxuICBiYWNrZ3JvdW5kOiB2YXIoLS10b2dnbGUtYnRuLWJnLWNvbG9yKTtcclxuICBib3JkZXI6IG5vbmU7XHJcbiAgYm9yZGVyLXJhZGl1czogY2FsYyh2YXIoLS1idG4tcmFkaXVzKSAtIDFweCk7XHJcblxyXG4gICY6Zm9jdXMsXHJcbiAgJjphY3RpdmU6Zm9jdXMge1xyXG4gICAgY29sb3I6IHZhcigtLXRvZ2dsZS1idG4tdGV4dC1jb2xvcik7XHJcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XHJcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS10b2dnbGUtYnRuLWJnLWNvbG9yKTtcclxuICAgIG91dGxpbmU6IG5vbmU7XHJcbiAgICBib3gtc2hhZG93OiBub25lO1xyXG4gIH1cclxuXHJcbiAgJjpob3ZlciB7XHJcbiAgICBjb2xvcjogdmFyKC0tdG9nZ2xlLWJ0bi10ZXh0LWNvbG9yLWZvY3VzKTtcclxuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcclxuICAgIGJhY2tncm91bmQ6IHZhcigtLXRvZ2dsZS1idG4tYmctY29sb3ItZm9jdXMpO1xyXG4gICAgYm94LXNoYWRvdzogbm9uZTtcclxuICB9XHJcblxyXG4gICY6YWN0aXZlLFxyXG4gICY6YWN0aXZlOmZvY3VzLFxyXG4gICY6YWN0aXZlOmhvdmVyIHtcclxuICAgIGNvbG9yOiB2YXIoLS10b2dnbGUtYnRuLXRleHQtY29sb3ItYWN0aXZlKTtcclxuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcclxuICAgIGJhY2tncm91bmQ6IHZhcigtLXRvZ2dsZS1idG4tYmctY29sb3ItYWN0aXZlKTtcclxuICAgIGJvcmRlcjogbm9uZTtcclxuICAgIGJveC1zaGFkb3c6IG5vbmU7XHJcbiAgfVxyXG5cclxuICAmOmZvY3VzLXZpc2libGUge1xyXG4gICAgb3V0bGluZTogMnB4IHNvbGlkIHZhcigtLXRvZ2dsZS1idG4tdGV4dC1jb2xvci1hY3RpdmUpO1xyXG4gICAgb3V0bGluZS1vZmZzZXQ6IC0zcHg7XHJcbiAgfVxyXG5cclxuICAmW2Rpc2FibGVkXSB7XHJcbiAgICBjb2xvcjogdmFyKC0tdG9nZ2xlLWJ0bi10ZXh0LWNvbG9yLWRpc2FibGVkKTtcclxuICAgIGJhY2tncm91bmQ6IHZhcigtLXRvZ2dsZS1idG4tYmctY29sb3ItZGlzYWJsZWQpO1xyXG4gICAgY3Vyc29yOiBkZWZhdWx0O1xyXG5cclxuICAgICY6Zm9jdXMsXHJcbiAgICAmOmhvdmVyLFxyXG4gICAgJjphY3RpdmUsXHJcbiAgICAmOmFjdGl2ZTpmb2N1cyxcclxuICAgICY6YWN0aXZlOmhvdmVyIHtcclxuICAgICAgY29sb3I6IHZhcigtLXRvZ2dsZS1idG4tdGV4dC1jb2xvci1kaXNhYmxlZCk7XHJcbiAgICAgIGJhY2tncm91bmQ6IHZhcigtLXRvZ2dsZS1idG4tYmctY29sb3ItZGlzYWJsZWQpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgJi0tc2VsZWN0ZWQge1xyXG4gICAgY3Vyc29yOiBkZWZhdWx0O1xyXG5cclxuICAgICYsXHJcbiAgICAmOmZvY3VzLFxyXG4gICAgJjpob3ZlcixcclxuICAgICY6YWN0aXZlLFxyXG4gICAgJjphY3RpdmU6Zm9jdXMsXHJcbiAgICAmOmFjdGl2ZTpob3ZlciB7XHJcbiAgICAgIGNvbG9yOiB2YXIoLS10b2dnbGUtYnRuLXRleHQtY29sb3Itc2VsZWN0ZWQpO1xyXG4gICAgICBiYWNrZ3JvdW5kOiB2YXIoLS10b2dnbGUtYnRuLWJnLWNvbG9yLXNlbGVjdGVkKTtcclxuICAgIH1cclxuXHJcbiAgICAmOmZvY3VzIHtcclxuICAgICAgb3V0bGluZTogbm9uZTtcclxuICAgIH1cclxuXHJcbiAgICAmOmZvY3VzLXZpc2libGUge1xyXG4gICAgICBvdXRsaW5lOiAycHggc29saWQgdmFyKC0tdG9nZ2xlLWJ0bi10ZXh0LWNvbG9yLXNlbGVjdGVkKTtcclxuICAgICAgb3V0bGluZS1vZmZzZXQ6IC0zcHg7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAmW2Rpc2FibGVkXSYtLXNlbGVjdGVkIHtcclxuICAgIGNvbG9yOiB2YXIoLS10b2dnbGUtYnRuLXRleHQtY29sb3Itc2VsZWN0ZWQpO1xyXG4gICAgYmFja2dyb3VuZDogdmFyKC0tdG9nZ2xlLWJ0bi1iZy1jb2xvci1zZWxlY3RlZCk7XHJcblxyXG4gICAgJjpmb2N1cyxcclxuICAgICY6aG92ZXIsXHJcbiAgICAmOmFjdGl2ZSxcclxuICAgICY6YWN0aXZlOmZvY3VzLFxyXG4gICAgJjphY3RpdmU6aG92ZXIge1xyXG4gICAgICBjb2xvcjogdmFyKC0tdG9nZ2xlLWJ0bi10ZXh0LWNvbG9yLXNlbGVjdGVkKTtcclxuICAgICAgYmFja2dyb3VuZDogdmFyKC0tdG9nZ2xlLWJ0bi1iZy1jb2xvci1zZWxlY3RlZCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAmLS1oYXNUZXh0IHtcclxuICAgIG1pbi13aWR0aDogNzBweDtcclxuXHJcbiAgICAudHVpLXRvZ2dsZUJ0bl9faWNvbiB7XHJcbiAgICAgIGZvbnQtc2l6ZTogZm9udC1zaXplLXB4KDE0KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gICYtLWxhcmdlIHtcclxuICAgIG1pbi13aWR0aDogcmVtLXB4KDEwMCk7XHJcbiAgICBtaW4taGVpZ2h0OiByZW0tcHgoNDYpO1xyXG5cclxuICAgIC50dWktdG9nZ2xlQnRuX19jb250ZW50IHtcclxuICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxuXHJcbiAgICAgICYgPiAqICsgKiB7XHJcbiAgICAgICAgbWFyZ2luLXRvcDogdmFyKC0tZ2FwLTEpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAmX19jb250ZW50IHtcclxuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xyXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICB9XHJcblxyXG4gICZfX2ljb24ge1xyXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgdG9wOiAxcHg7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgZmxleC1zaHJpbms6IDA7XHJcbiAgICBmb250LXNpemU6IGZvbnQtc2l6ZS1weCgxNSk7XHJcbiAgfVxyXG5cclxuICAmX190ZXh0IHtcclxuICAgIHBhZGRpbmc6IDAgdmFyKC0tZ2FwLTEpO1xyXG4gIH1cclxufVxyXG5cclxuLyohKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiEqXFxcclxuICAhKioqIGNzcyAuL2NsaWVudC90b29saW5nL3dlYnBhY2svY3NzX3Jhd19sb2FkZXIuanM/P2Nsb25lZFJ1bGVTZXQtMTU2MS51c2VbMV0hLi9ub2RlX21vZHVsZXMvcG9zdGNzcy1sb2FkZXIvZGlzdC9janMuanM/P2Nsb25lZFJ1bGVTZXQtMTU2MS51c2VbMl0hLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2luZGV4LmpzPz9ydWxlU2V0WzBdLnVzZVswXSEuL2NsaWVudC9jb21wb25lbnQvdHVpL3NyYy9jb21wb25lbnRzL3RvZ2dsZS9Ub2dnbGVTZXQudnVlP3Z1ZSZ0eXBlPXN0eWxlJmluZGV4PTAmaWQ9MDBhMDlhYjImbGFuZz1zY3NzICoqKiFcclxuICBcXCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXHJcbi50dWktdG9nZ2xlU2V0IHtcclxuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcclxuICBtYXgtd2lkdGg6IDEwMCU7XHJcbiAgcGFkZGluZzogMXB4O1xyXG4gIGJhY2tncm91bmQ6IHZhcigtLXRvZ2dsZS1iZy1jb2xvcik7XHJcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tYnRuLXJhZGl1cyk7XHJcblxyXG4gICYtLWRpc2FibGVkIHtcclxuICAgIG9wYWNpdHk6IDAuNDtcclxuICB9XHJcblxyXG4gICYtLXNlbGVjdCB7XHJcbiAgICB3aWR0aDogMTAwJTtcclxuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xyXG4gIH1cclxuXHJcbiAgJi0tbGFyZ2Uge1xyXG4gICAgcGFkZGluZzogMnB4O1xyXG4gIH1cclxufVxyXG5cclxuLyohKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiEqXFxcclxuICAhKioqIGNzcyAuL2NsaWVudC90b29saW5nL3dlYnBhY2svY3NzX3Jhd19sb2FkZXIuanM/P2Nsb25lZFJ1bGVTZXQtMTU2MS51c2VbMV0hLi9ub2RlX21vZHVsZXMvcG9zdGNzcy1sb2FkZXIvZGlzdC9janMuanM/P2Nsb25lZFJ1bGVTZXQtMTU2MS51c2VbMl0hLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2luZGV4LmpzPz9ydWxlU2V0WzBdLnVzZVswXSEuL2NsaWVudC9jb21wb25lbnQvdHVpL3NyYy9jb21wb25lbnRzL3RvZ2dsZS9Ub2dnbGVTd2l0Y2gudnVlP3Z1ZSZ0eXBlPXN0eWxlJmluZGV4PTAmaWQ9NGQ4ZWE4MTQmbGFuZz1zY3NzICoqKiFcclxuICBcXCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXHJcbi50dWktdG9nZ2xlU3dpdGNoIHtcclxuICBkaXNwbGF5OiBmbGV4O1xyXG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcblxyXG4gICZfX2J0biB7XHJcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgICBwYWRkaW5nOiAwO1xyXG4gICAgY29sb3I6IHZhcigtLWZvcm0tdG9nZ2xlLWNvbG9yKTtcclxuICAgIGxpbmUtaGVpZ2h0OiAxO1xyXG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XHJcbiAgICBib3JkZXI6IG5vbmU7XHJcblxyXG4gICAgJjpmb2N1cyxcclxuICAgICY6YWN0aXZlOmZvY3VzIHtcclxuICAgICAgY29sb3I6IHZhcigtLWZvcm0tdG9nZ2xlLWNvbG9yKTtcclxuICAgICAgb3V0bGluZTogbm9uZTtcclxuICAgIH1cclxuXHJcbiAgICAmOmhvdmVyIHtcclxuICAgICAgY29sb3I6IHZhcigtLWZvcm0tdG9nZ2xlLWNvbG9yKTtcclxuICAgIH1cclxuXHJcbiAgICAmW2Rpc2FibGVkXSB7XHJcbiAgICAgIGNvbG9yOiBpbml0aWFsO1xyXG4gICAgICAmOmhvdmVyIHtcclxuICAgICAgICBjb2xvcjogaW5pdGlhbDtcclxuICAgICAgfVxyXG4gICAgICAmOmhvdmVyLFxyXG4gICAgICAmOmFjdGl2ZTpob3ZlciB7XHJcbiAgICAgICAgY29sb3I6IGluaXRpYWw7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAmLXRleHQge1xyXG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKiB0b2dnbGUgc2l6ZSBhbmQgc2hhcGUqL1xyXG4gICZfX3VpIHtcclxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgIHdpZHRoOiB2YXIoLS1mb3JtLXRvZ2dsZS1jb250YWluZXItd2lkdGgpO1xyXG4gICAgbWFyZ2luLWxlZnQ6IHZhcigtLWZvcm0tdG9nZ2xlLXRleHQtb2Zmc2V0KTtcclxuICAgIC8qIHByZXR0aWVyLWlnbm9yZSovXHJcbiAgICBwYWRkaW5nOiBjYWxjKHZhcigtLWZvcm0tdG9nZ2xlLWZvY3VzLWdhcCkgKyB2YXIoLS1mb3JtLXRvZ2dsZS1mb2N1cy1ib3JkZXIpKTtcclxuXHJcbiAgICAmLS10b2dnbGVPbmx5IHtcclxuICAgICAgbWFyZ2luLWxlZnQ6IGNhbGMoXHJcbiAgICAgICAgLTEgKiAodmFyKC0tZm9ybS10b2dnbGUtZm9jdXMtZ2FwKSArIHZhcigtLWZvcm0tdG9nZ2xlLWZvY3VzLWJvcmRlcikpXHJcbiAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgLyogdGhlIHRvZ2dsZSBiYWNrZ3JvdW5kKi9cclxuICAgICY6YmVmb3JlIHtcclxuICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgIGhlaWdodDogdmFyKC0tZm9ybS10b2dnbGUtY29udGFpbmVyLWhlaWdodCk7XHJcbiAgICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLWZvcm0tdG9nZ2xlLWNvbnRhaW5lci1yYWRpdXMpO1xyXG4gICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIHZhcigtLXRyYW5zaXRpb24tYnV0dG9uLWR1cmF0aW9uKVxyXG4gICAgICAgICAgdmFyKC0tdHJhbnNpdGlvbi1idXR0b24tZnVuY3Rpb24pLFxyXG4gICAgICAgIGJvcmRlci1jb2xvciB2YXIoLS10cmFuc2l0aW9uLWJ1dHRvbi1kdXJhdGlvbilcclxuICAgICAgICAgIHZhcigtLXRyYW5zaXRpb24tYnV0dG9uLWZ1bmN0aW9uKTtcclxuICAgICAgY29udGVudDogJyc7XHJcblxyXG4gICAgICAudHVpLWNvbnRleHRJbnZhbGlkICYge1xyXG4gICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDJweCB2YXIoLS1mb3JtLWlucHV0LWJvcmRlci1jb2xvci1pbnZhbGlkKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8qIHRoZSB0b2dnbGUgZG90Ki9cclxuICAgICY6YWZ0ZXIge1xyXG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAgIC8qIHByZXR0aWVyLWlnbm9yZSovXHJcbiAgICAgIHRvcDogY2FsYyh2YXIoLS1mb3JtLXRvZ2dsZS1kb3Qtb2Zmc2V0KSArIGNhbGModmFyKC0tZm9ybS10b2dnbGUtZm9jdXMtZ2FwKSArIHZhcigtLWZvcm0tdG9nZ2xlLWZvY3VzLWJvcmRlcikpKTtcclxuICAgICAgLyogcHJldHRpZXItaWdub3JlKi9cclxuICAgICAgbGVmdDogY2FsYyh2YXIoLS1mb3JtLXRvZ2dsZS1kb3Qtb2Zmc2V0KSArIGNhbGModmFyKC0tZm9ybS10b2dnbGUtZm9jdXMtZ2FwKSArIHZhcigtLWZvcm0tdG9nZ2xlLWZvY3VzLWJvcmRlcikpKTtcclxuICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgIHdpZHRoOiB2YXIoLS1mb3JtLXRvZ2dsZS1kb3Qtc2l6ZSk7XHJcbiAgICAgIGhlaWdodDogdmFyKC0tZm9ybS10b2dnbGUtZG90LXNpemUpO1xyXG4gICAgICBib3JkZXItcmFkaXVzOiA1MCU7XHJcbiAgICAgIGJveC1zaGFkb3c6IHZhcigtLXNoYWRvdy0yKTtcclxuICAgICAgY29udGVudDogJyc7XHJcbiAgICB9XHJcblxyXG4gICAgJjpob3ZlcixcclxuICAgICY6Zm9jdXMge1xyXG4gICAgICBjdXJzb3I6IHBvaW50ZXI7XHJcbiAgICB9XHJcblxyXG4gICAgLyogdG9nZ2xlZCBvZmYqL1xyXG5cclxuICAgIC8qIHRoZSB0b2dnbGUgYmFja2dyb3VuZCovXHJcbiAgICAmOmJlZm9yZSB7XHJcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWZvcm0tdG9nZ2xlLW9mZi1iZy1jb2xvcik7XHJcbiAgICAgIGJvcmRlcjogdmFyKC0tZm9ybS1pbnB1dC1ib3JkZXItc2l6ZSkgc29saWQ7XHJcbiAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tZm9ybS10b2dnbGUtYm9yZGVyLWNvbG9yKTtcclxuICAgIH1cclxuXHJcbiAgICAvKiB0aGUgdG9nZ2xlIGRvdCovXHJcbiAgICAmOmFmdGVyIHtcclxuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tZm9ybS10b2dnbGUtZG90LWNvbG9yKTtcclxuICAgIH1cclxuXHJcbiAgICAmOmhvdmVyLFxyXG4gICAgJjpmb2N1cyB7XHJcbiAgICAgICY6YmVmb3JlIHtcclxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1mb3JtLXRvZ2dsZS1vZmYtYmctY29sb3ItaG92ZXItZm9jdXMpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgJltkYXRhLWRpc2FibGVkXSB7XHJcbiAgICAgIGN1cnNvcjogZGVmYXVsdDtcclxuICAgICAgJjpiZWZvcmUge1xyXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWZvcm0tdG9nZ2xlLW9mZi1iZy1jb2xvci1kaXNhYmxlZCk7XHJcbiAgICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1mb3JtLXRvZ2dsZS1ib3JkZXItY29sb3ItZGlzYWJsZWQpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKiB0b2dnbGVkIG9mZiwgdmlhIHRoZSBidXR0b24qL1xyXG4gICZfX2J0biB7XHJcbiAgICAmOmhvdmVyLFxyXG4gICAgJjpmb2N1cyB7XHJcbiAgICAgIH4gLnR1aS10b2dnbGVTd2l0Y2hfX3VpIHtcclxuICAgICAgICBwYWRkaW5nOiB2YXIoLS1mb3JtLXRvZ2dsZS1mb2N1cy1nYXApO1xyXG4gICAgICAgIGJvcmRlcjogdmFyKC0tZm9ybS10b2dnbGUtZm9jdXMtYm9yZGVyKSBzb2xpZCB0cmFuc3BhcmVudDtcclxuICAgICAgICAvKiBwcmV0dGllci1pZ25vcmUqL1xyXG4gICAgICAgIGJvcmRlci1yYWRpdXM6IGNhbGMoY2FsYyh2YXIoLS1mb3JtLXRvZ2dsZS1jb250YWluZXItcmFkaXVzKSArIHZhcigtLWZvcm0tdG9nZ2xlLWZvY3VzLWdhcCkpICsgdmFyKC0tZm9ybS10b2dnbGUtZm9jdXMtYm9yZGVyKSk7XHJcblxyXG4gICAgICAgICY6YWZ0ZXIge1xyXG4gICAgICAgICAgLyogcHJldHRpZXItaWdub3JlKi9cclxuICAgICAgICAgIHRvcDogY2FsYyh2YXIoLS1mb3JtLXRvZ2dsZS1kb3Qtb2Zmc2V0KSArIHZhcigtLWZvcm0tdG9nZ2xlLWZvY3VzLWdhcCkpO1xyXG4gICAgICAgICAgLyogcHJldHRpZXItaWdub3JlKi9cclxuICAgICAgICAgIGxlZnQ6IGNhbGModmFyKC0tZm9ybS10b2dnbGUtZG90LW9mZnNldCkgKyB2YXIoLS1mb3JtLXRvZ2dsZS1mb2N1cy1nYXApKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAmOmZvY3VzIH4gLnR1aS10b2dnbGVTd2l0Y2hfX3VpIHtcclxuICAgICAgYm9yZGVyOiB2YXIoLS1mb3JtLXRvZ2dsZS1mb2N1cy1ib3JkZXIpIHNvbGlkIHZhcigtLWNvbG9yLXN0YXRlKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qIHRvZ2dsZWQgb24qL1xyXG4gICZfX2J0blthcmlhLXByZXNzZWRdIH4gJl9fdWkge1xyXG4gICAgLyogdGhlIGRvdCovXHJcbiAgICAmOmFmdGVyIHtcclxuICAgICAgLyogcHJldHRpZXItaWdub3JlKi9cclxuICAgICAgcmlnaHQ6IGNhbGModmFyKC0tZm9ybS10b2dnbGUtZG90LW9mZnNldCkgKyBjYWxjKHZhcigtLWZvcm0tdG9nZ2xlLWZvY3VzLWdhcCkgKyB2YXIoLS1mb3JtLXRvZ2dsZS1mb2N1cy1ib3JkZXIpKSk7XHJcbiAgICAgIGxlZnQ6IGF1dG87XHJcbiAgICB9XHJcblxyXG4gICAgLyogdGhlIHRvZ2dsZSBiYWNrZ3JvdW5kKi9cclxuICAgICY6YmVmb3JlIHtcclxuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tZm9ybS10b2dnbGUtb24tYmctY29sb3IpO1xyXG4gICAgICBib3JkZXItY29sb3I6IHZhcigtLWZvcm0tdG9nZ2xlLW9uLWJvcmRlci1jb2xvcik7XHJcbiAgICB9XHJcblxyXG4gICAgJjpob3ZlcixcclxuICAgICY6Zm9jdXMge1xyXG4gICAgICAmOmJlZm9yZSB7XHJcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tZm9ybS10b2dnbGUtb24tYmctY29sb3ItaG92ZXItZm9jdXMpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICAmW2RhdGEtZGlzYWJsZWRdIHtcclxuICAgICAgJjpiZWZvcmUge1xyXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWZvcm0tdG9nZ2xlLW9uLWJnLWNvbG9yLWRpc2FibGVkKTtcclxuICAgICAgICBib3JkZXItY29sb3I6IHZhcigtLWZvcm0tdG9nZ2xlLWJvcmRlci1jb2xvci1kaXNhYmxlZCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qIHRvZ2dsZWQgb24sIHZpYSB0aGUgYnV0dG9uKi9cclxuICAmX19idG5bYXJpYS1wcmVzc2VkXSB7XHJcbiAgICAmOmhvdmVyLFxyXG4gICAgJjpmb2N1cyB7XHJcbiAgICAgIH4gLnR1aS10b2dnbGVTd2l0Y2hfX3VpIHtcclxuICAgICAgICAmOmFmdGVyIHtcclxuICAgICAgICAgIC8qIHByZXR0aWVyLWlnbm9yZSovXHJcbiAgICAgICAgICByaWdodDogY2FsYyh2YXIoLS1mb3JtLXRvZ2dsZS1kb3Qtb2Zmc2V0KSArIHZhcigtLWZvcm0tdG9nZ2xlLWZvY3VzLWdhcCkpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyogdG9nZ2xlIG9uIHRoZSBsZWZ0LCB0ZXh0IG9uIHRoZSByaWdodCovXHJcbiAgJi0tbGVmdCB7XHJcbiAgICAudHVpLXRvZ2dsZVN3aXRjaF9fdWkge1xyXG4gICAgICBvcmRlcjogMTtcclxuICAgICAgbWFyZ2luLXJpZ2h0OiB2YXIoLS1mb3JtLXRvZ2dsZS10ZXh0LW9mZnNldCk7XHJcbiAgICAgIG1hcmdpbi1sZWZ0OiAwO1xyXG4gICAgfVxyXG5cclxuICAgIC50dWktdG9nZ2xlU3dpdGNoX19idG4ge1xyXG4gICAgICBvcmRlcjogMjtcclxuICAgIH1cclxuXHJcbiAgICAudHVpLXRvZ2dsZVN3aXRjaF9faWNvbiB7XHJcbiAgICAgIG9yZGVyOiAzO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuLyohKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqISpcXFxyXG4gICEqKiogY3NzIC4vY2xpZW50L3Rvb2xpbmcvd2VicGFjay9jc3NfcmF3X2xvYWRlci5qcz8/Y2xvbmVkUnVsZVNldC0xNTYxLnVzZVsxXSEuL25vZGVfbW9kdWxlcy9wb3N0Y3NzLWxvYWRlci9kaXN0L2Nqcy5qcz8/Y2xvbmVkUnVsZVNldC0xNTYxLnVzZVsyXSEuL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvaW5kZXguanM/P3J1bGVTZXRbMF0udXNlWzBdIS4vY2xpZW50L2NvbXBvbmVudC90dWkvc3JjL2NvbXBvbmVudHMvdHJlZS9UcmVlLnZ1ZT92dWUmdHlwZT1zdHlsZSZpbmRleD0wJmlkPTE2NGI5YjgwJmxhbmc9c2NzcyAqKiohXHJcbiAgXFwqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXHJcbi50dWktdHJlZSB7XHJcbiAgbGlzdC1zdHlsZTogbm9uZTtcclxufVxyXG5cclxuLyohKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiEqXFxcclxuICAhKioqIGNzcyAuL2NsaWVudC90b29saW5nL3dlYnBhY2svY3NzX3Jhd19sb2FkZXIuanM/P2Nsb25lZFJ1bGVTZXQtMTU2MS51c2VbMV0hLi9ub2RlX21vZHVsZXMvcG9zdGNzcy1sb2FkZXIvZGlzdC9janMuanM/P2Nsb25lZFJ1bGVTZXQtMTU2MS51c2VbMl0hLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2luZGV4LmpzPz9ydWxlU2V0WzBdLnVzZVswXSEuL2NsaWVudC9jb21wb25lbnQvdHVpL3NyYy9jb21wb25lbnRzL3RyZWUvVHJlZU5vZGUudnVlP3Z1ZSZ0eXBlPXN0eWxlJmluZGV4PTAmaWQ9MjhlNTVmNjImbGFuZz1zY3NzICoqKiFcclxuICBcXCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXHJcbi50dWktdHJlZU5vZGUge1xyXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICB3aWR0aDogMTAwJTtcclxuICAmLS10b3Age1xyXG4gICAgcGFkZGluZzogdmFyKC0tZ2FwLTEpIDA7XHJcbiAgfVxyXG5cclxuICAmOm5vdCgmLS10b3ApIHtcclxuICAgIHBhZGRpbmctbGVmdDogdmFyKC0tZ2FwLTYpO1xyXG4gIH1cclxuXHJcbiAgJi0tc2VwYXJhdG9yIHtcclxuICAgICY6YWZ0ZXIge1xyXG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAgIGJvdHRvbTogMDtcclxuICAgICAgbGVmdDogMDtcclxuICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgIGJvcmRlci1ib3R0b206IHZhcigtLWJvcmRlci13aWR0aC10aGluKSBzb2xpZCB2YXIoLS1jb2xvci1uZXV0cmFsLTUpO1xyXG4gICAgICBjb250ZW50OiAnJztcclxuICAgIH1cclxuICB9XHJcblxyXG4gICZfX3RyaWdnZXIge1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICBwYWRkaW5nOiAwIHZhcigtLWdhcC0xKTtcclxuICB9XHJcblxyXG4gICZfX2JhciB7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgICBtaW4td2lkdGg6IDA7XHJcblxyXG4gICAgJi1idG4ge1xyXG4gICAgICBmbGV4LWdyb3c6IDE7XHJcbiAgICAgIGxpbmUtaGVpZ2h0OiAxLjI7XHJcbiAgICAgIHRleHQtYWxpZ246IGxlZnQ7XHJcbiAgICAgIC1tcy13b3JkLWJyZWFrOiBicmVhay1hbGw7XHJcbiAgICAgIHdvcmQtYnJlYWs6IGJyZWFrLXdvcmQ7XHJcbiAgICB9XHJcblxyXG4gICAgJi1sYWJlbCxcclxuICAgICYtbGluayB7XHJcbiAgICAgIGZsZXgtZ3JvdzogMTtcclxuICAgICAgbWFyZ2luOiAwO1xyXG4gICAgICAtbXMtd29yZC1icmVhazogYnJlYWstYWxsO1xyXG4gICAgICB3b3JkLWJyZWFrOiBicmVhay13b3JkO1xyXG4gICAgICAtd2Via2l0LWh5cGhlbnM6IG5vbmU7XHJcbiAgICAgICAgICAgICAgaHlwaGVuczogbm9uZTtcclxuICAgIH1cclxuXHJcbiAgICAmLWxhYmVsIHtcclxuICAgICAgQGluY2x1ZGUgZm9udChib2R5KTtcclxuICAgIH1cclxuXHJcbiAgICAmLWxpbmsge1xyXG4gICAgICAmOmZvY3VzLFxyXG4gICAgICAmOmhvdmVyIHtcclxuICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAmLXNpZGUge1xyXG4gICAgICBmbGV4LXNocmluazogMDtcclxuICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAmX19jaGlsZCB7XHJcbiAgICBtYXJnaW46IDA7XHJcbiAgICBwYWRkaW5nLXRvcDogdmFyKC0tZ2FwLTIpO1xyXG4gICAgbGlzdC1zdHlsZTogbm9uZTtcclxuICB9XHJcblxyXG4gICYtLW5vUGFkZGluZyB7XHJcbiAgICBwYWRkaW5nOiAwO1xyXG4gICAgLnR1aS10cmVlTm9kZV9fY2hpbGQge1xyXG4gICAgICBwYWRkaW5nOiAwO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuLyohKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiohKlxcXHJcbiAgISoqKiBjc3MgLi9jbGllbnQvdG9vbGluZy93ZWJwYWNrL2Nzc19yYXdfbG9hZGVyLmpzPz9jbG9uZWRSdWxlU2V0LTE1NjEudXNlWzFdIS4vbm9kZV9tb2R1bGVzL3Bvc3Rjc3MtbG9hZGVyL2Rpc3QvY2pzLmpzPz9jbG9uZWRSdWxlU2V0LTE1NjEudXNlWzJdIS4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9pbmRleC5qcz8/cnVsZVNldFswXS51c2VbMF0hLi9jbGllbnQvY29tcG9uZW50L3R1aS9zcmMvY29tcG9uZW50cy90cmVldmlldy9UcmVlVmlldy52dWU/dnVlJnR5cGU9c3R5bGUmaW5kZXg9MCZpZD1iYTY1NzMwMCZsYW5nPXNjc3MgKioqIVxyXG4gIFxcKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXHJcbi50dWktdHJlZVZpZXcge1xyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxuICBnYXA6IHZhcigtLWJvcmRlci13aWR0aC1ub3JtYWwpO1xyXG4gIG1hcmdpbi1sZWZ0OiAwO1xyXG59XHJcblxyXG4vKiEqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiohKlxcXHJcbiAgISoqKiBjc3MgLi9jbGllbnQvdG9vbGluZy93ZWJwYWNrL2Nzc19yYXdfbG9hZGVyLmpzPz9jbG9uZWRSdWxlU2V0LTE1NjEudXNlWzFdIS4vbm9kZV9tb2R1bGVzL3Bvc3Rjc3MtbG9hZGVyL2Rpc3QvY2pzLmpzPz9jbG9uZWRSdWxlU2V0LTE1NjEudXNlWzJdIS4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9pbmRleC5qcz8/cnVsZVNldFswXS51c2VbMF0hLi9jbGllbnQvY29tcG9uZW50L3R1aS9zcmMvY29tcG9uZW50cy90cmVldmlldy9UcmVlVmlld05vZGUudnVlP3Z1ZSZ0eXBlPXN0eWxlJmluZGV4PTAmaWQ9N2E5NzU4YmMmbGFuZz1zY3NzICoqKiFcclxuICBcXCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cclxuLnR1aS10cmVlVmlld05vZGUge1xyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxuICBnYXA6IHZhcigtLWJvcmRlci13aWR0aC1ub3JtYWwpO1xyXG4gIGxpc3Qtc3R5bGU6IG5vbmU7XHJcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tYm9yZGVyLXJhZGl1cy1zbWFsbCk7XHJcblxyXG4gICY6Zm9jdXMtdmlzaWJsZSB7XHJcbiAgICBAaW5jbHVkZSB0dWktZm9jdXMoKTtcclxuICB9XHJcblxyXG4gICZfX2l0ZW0ge1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGdhcDogZ2FwKDEpO1xyXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgIG1pbi1oZWlnaHQ6IHJlbS1weCgzMik7XHJcbiAgICBwYWRkaW5nOiBnYXAoMSkgZ2FwKDIpIGdhcCgxKSBnYXAoOSk7XHJcbiAgICBvdmVyZmxvdy13cmFwOiBhbnl3aGVyZTtcclxuICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLWJvcmRlci1yYWRpdXMtc21hbGwpO1xyXG4gICAgLXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTtcclxuICAgICAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XHJcblxyXG4gICAgJjpob3ZlciB7XHJcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLW5ldXRyYWwtMyk7XHJcbiAgICB9XHJcblxyXG4gICAgJi0tc2VsZWN0YWJsZSB7XHJcbiAgICAgIGN1cnNvcjogcG9pbnRlcjtcclxuICAgIH1cclxuXHJcbiAgICAmLS1oYXNDaGlsZHJlbiB7XHJcbiAgICAgIHBhZGRpbmc6IGdhcCgxKSBnYXAoMikgZ2FwKDEpIGdhcCgyKTtcclxuICAgICAgY3Vyc29yOiBwb2ludGVyO1xyXG4gICAgfVxyXG5cclxuICAgICYtLXNlbGVjdGVkIHtcclxuICAgICAgY29sb3I6IHZhcigtLWNvbG9yLW5ldXRyYWwtMSk7XHJcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLXN0YXRlKTtcclxuXHJcbiAgICAgICY6aG92ZXIge1xyXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLXN0YXRlKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgICYtY2hpbGRyZW4ge1xyXG4gICAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG4gICAgICBnYXA6IHZhcigtLWJvcmRlci13aWR0aC1ub3JtYWwpO1xyXG4gICAgICBtYXJnaW4tbGVmdDogZ2FwKDQpO1xyXG4gICAgfVxyXG5cclxuICAgICYtaWNvbiB7XHJcbiAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xyXG4gICAgfVxyXG5cclxuICAgICYtdG9nZ2xlIHtcclxuICAgICAgYWxpZ24tc2VsZjogc3RhcnQ7XHJcbiAgICAgIG1pbi13aWR0aDogcmVtLXB4KDI0KTtcclxuICAgICAgbWluLWhlaWdodDogcmVtLXB4KDI0KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gICZfX2l0ZW0tLXNlbGVjdGVkICZfX2l0ZW0tdG9nZ2xlIHtcclxuICAgIGNvbG9yOiB2YXIoLS1jb2xvci1uZXV0cmFsLTEpO1xyXG4gIH1cclxufVxyXG5cclxuLyohKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiohKlxcXHJcbiAgISoqKiBjc3MgLi9jbGllbnQvdG9vbGluZy93ZWJwYWNrL2Nzc19yYXdfbG9hZGVyLmpzPz9jbG9uZWRSdWxlU2V0LTE1NjEudXNlWzFdIS4vbm9kZV9tb2R1bGVzL3Bvc3Rjc3MtbG9hZGVyL2Rpc3QvY2pzLmpzPz9jbG9uZWRSdWxlU2V0LTE1NjEudXNlWzJdIS4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9pbmRleC5qcz8/cnVsZVNldFswXS51c2VbMF0hLi9jbGllbnQvY29tcG9uZW50L3R1aS9zcmMvY29tcG9uZW50cy91bmlmb3JtL0Zvcm1GaWVsZC52dWU/dnVlJnR5cGU9c3R5bGUmaW5kZXg9MCZpZD0zMmNmNTBlOCZsYW5nPXNjc3MgKioqIVxyXG4gIFxcKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXHJcbi50dWktZm9ybUZpZWxkIHtcclxuICBmbGV4LWdyb3c6IDE7XHJcbiAgd2lkdGg6IDEwMCU7XHJcbiAgbWluLXdpZHRoOiAwO1xyXG5cclxuICBAaW5jbHVkZSB0dWktY2hhci1sZW5ndGgtY2xhc3NlcygpO1xyXG59XHJcblxyXG4vKiEqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiEqXFxcclxuICAhKioqIGNzcyAuL2NsaWVudC90b29saW5nL3dlYnBhY2svY3NzX3Jhd19sb2FkZXIuanM/P2Nsb25lZFJ1bGVTZXQtMTU2MS51c2VbMV0hLi9ub2RlX21vZHVsZXMvcG9zdGNzcy1sb2FkZXIvZGlzdC9janMuanM/P2Nsb25lZFJ1bGVTZXQtMTU2MS51c2VbMl0hLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2luZGV4LmpzPz9ydWxlU2V0WzBdLnVzZVswXSEuL2NsaWVudC9jb21wb25lbnQvdHVpL3NyYy9wYWdlcy9UaGVtZVNldHRpbmdzLnZ1ZT92dWUmdHlwZT1zdHlsZSZpbmRleD0wJmlkPTgwMzRkYTMyJmxhbmc9c2NzcyAqKiohXHJcbiAgXFwqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cclxuLnR1aS10aGVtZVNldHRpbmdzIHtcclxuICAmX19jb250ZW50IHtcclxuICAgIG1hcmdpbi10b3A6IHZhcigtLWdhcC04KTtcclxuICB9XHJcblxyXG4gICZfX2Zvcm1zIHtcclxuICAgIEBpbmNsdWRlIHR1aS1zdGFjay12ZXJ0aWNhbCh2YXIoLS1nYXAtOCkpO1xyXG4gIH1cclxufVxyXG5cclxuLyohKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiEqXFxcclxuICAhKioqIGNzcyAuL2NsaWVudC90b29saW5nL3dlYnBhY2svY3NzX3Jhd19sb2FkZXIuanM/P2Nsb25lZFJ1bGVTZXQtMTU2MS51c2VbMV0hLi9ub2RlX21vZHVsZXMvcG9zdGNzcy1sb2FkZXIvZGlzdC9janMuanM/P2Nsb25lZFJ1bGVTZXQtMTU2MS51c2VbMl0hLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2luZGV4LmpzPz9ydWxlU2V0WzBdLnVzZVswXSEuL2NsaWVudC9jb21wb25lbnQvdHVpL3NyYy9wYWdlcy9UaGVtZVRlbmFudHMudnVlP3Z1ZSZ0eXBlPXN0eWxlJmluZGV4PTAmaWQ9OWVkMDQwMTYmbGFuZz1zY3NzICoqKiFcclxuICBcXCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXHJcbi50dWktdGhlbWVUZW5hbnRzIHtcclxuICAmX19jb250ZW50IHtcclxuICAgIG1hcmdpbi10b3A6IHZhcigtLWdhcC04KTtcclxuICB9XHJcblxyXG4gICZfX3NlY3Rpb24gKyAmX19zZWN0aW9uIHtcclxuICAgIG1hcmdpbi10b3A6IHZhcigtLWdhcC0xMik7XHJcbiAgfVxyXG5cclxuICAmX19zZWN0aW9uIHtcclxuICAgIEBpbmNsdWRlIHR1aS1zdGFjay12ZXJ0aWNhbCh2YXIoLS1nYXAtNCkpO1xyXG4gIH1cclxufVxyXG5cclxuIiwiLyohKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqISpcXFxuICAhKioqIGNzcyAuL2NsaWVudC90b29saW5nL3dlYnBhY2svY3NzX3Jhd19sb2FkZXIuanM/P3J1bGVTZXRbMV0ucnVsZXNbMF0udXNlWzFdIS4vbm9kZV9tb2R1bGVzL3Bvc3Rjc3MtbG9hZGVyL2Rpc3QvY2pzLmpzPz9ydWxlU2V0WzFdLnJ1bGVzWzBdLnVzZVsyXSEuL2NsaWVudC9jb21wb25lbnQvdHVpL3NyYy9nbG9iYWxfc3R5bGVzL3N0eWxlcy90eXBvZ3JhcGh5LnNjc3MgKioqIVxuICBcXCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIFRvdGFyYSBFbnRlcnByaXNlIEV4dGVuc2lvbnMuKi9cbi8qKi9cbi8qIENvcHlyaWdodCAoQykgMjAyNCBvbndhcmRzIFRvdGFyYSBMZWFybmluZyBTb2x1dGlvbnMgTFREKi9cbi8qKi9cbi8qIFRvdGFyYSBFbnRlcnByaXNlIEV4dGVuc2lvbnMgaXMgcHJvdmlkZWQgb25seSB0byBUb3RhcmEqL1xuLyogTGVhcm5pbmcgU29sdXRpb25zIExURCdzIGN1c3RvbWVycyBhbmQgcGFydG5lcnMsIHB1cnN1YW50IHRvKi9cbi8qIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZiBhIHNlcGFyYXRlIGFncmVlbWVudCB3aXRoIFRvdGFyYSovXG4vKiBMZWFybmluZyBTb2x1dGlvbnMgTFREIG9yIGl0cyBhZmZpbGlhdGUuKi9cbi8qKi9cbi8qIElmIHlvdSBkbyBub3QgaGF2ZSBhbiBhZ3JlZW1lbnQgd2l0aCBUb3RhcmEgTGVhcm5pbmcgU29sdXRpb25zKi9cbi8qIExURCwgeW91IG1heSBub3QgYWNjZXNzLCB1c2UsIG1vZGlmeSwgb3IgZGlzdHJpYnV0ZSB0aGlzIHNvZnR3YXJlLiovXG4vKiBQbGVhc2UgY29udGFjdCBbbGljZW5zaW5nQHRvdGFyYS5jb21dIGZvciBtb3JlIGluZm9ybWF0aW9uLiovXG4vKiovXG4vKiBAYXV0aG9yIFNpbW9uIENoZXN0ZXIgPHNpbW9uLmNoZXN0ZXJAdG90YXJhLmNvbT4qL1xuLyogQG1vZHVsZSB0dWkqL1xuXG5oMSxcbi5oMSB7XG4gIEBpbmNsdWRlIGZvbnQoaDEpO1xuICBtYXJnaW46IHZhcigtLWdhcC00KSAwIHZhcigtLWdhcC01KTtcbn1cblxuaDIsXG4uaDIge1xuICBAaW5jbHVkZSBmb250KGgyKTtcbiAgbWFyZ2luOiB2YXIoLS1nYXAtNCkgMCB2YXIoLS1nYXAtNSk7XG59XG5cbmgzLFxuLmgzIHtcbiAgQGluY2x1ZGUgZm9udChoMyk7XG4gIG1hcmdpbjogdmFyKC0tZ2FwLTQpIDAgdmFyKC0tZ2FwLTQpO1xufVxuXG5oNCxcbi5oNCB7XG4gIEBpbmNsdWRlIGZvbnQoaDQpO1xuICBtYXJnaW46IHZhcigtLWdhcC00KSAwIHZhcigtLWdhcC00KTtcbn1cblxuaDUsXG4uaDUge1xuICBAaW5jbHVkZSBmb250KGg1KTtcbiAgbWFyZ2luOiB2YXIoLS1nYXAtNCkgMCB2YXIoLS1nYXAtMik7XG59XG5cbmg2LFxuLmg2IHtcbiAgQGluY2x1ZGUgZm9udChoNik7XG4gIG1hcmdpbjogdmFyKC0tZ2FwLTQpIDAgdmFyKC0tZ2FwLTIpO1xuICBjb2xvcjogdmFyKC0tY29sb3ItdGV4dC1oaW50KTtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbn1cblxuQGVhY2ggJGZvbnRcbiAgaW4gKFxuICAgIGgxXG4gICAgICBoMlxuICAgICAgaDNcbiAgICAgIGg0XG4gICAgICBoNVxuICAgICAgaDZcbiAgICAgIGRpc3BsYXktbGdcbiAgICAgIGRpc3BsYXktbWRcbiAgICAgIGRpc3BsYXktc21cbiAgICAgIGRpc3BsYXkteHNcbiAgICAgIGJvZHkteGxcbiAgICAgIGJvZHktbGdcbiAgICAgIGJvZHlcbiAgICAgIGJvZHktc21cbiAgICAgIGJvZHkteHNcbiAgKVxue1xuICAudGV4dC0jeyRmb250fSB7XG4gICAgQGluY2x1ZGUgZm9udCgkZm9udCk7XG4gIH1cbn1cblxuIiwiLyohKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiohKlxcXG4gICEqKiogY3NzIC4vY2xpZW50L3Rvb2xpbmcvd2VicGFjay9jc3NfcmF3X2xvYWRlci5qcz8/cnVsZVNldFsxXS5ydWxlc1swXS51c2VbMV0hLi9ub2RlX21vZHVsZXMvcG9zdGNzcy1sb2FkZXIvZGlzdC9janMuanM/P3J1bGVTZXRbMV0ucnVsZXNbMF0udXNlWzJdIS4vY2xpZW50L2NvbXBvbmVudC90dWkvc3JjL2dsb2JhbF9zdHlsZXMvc3R5bGVzL3JpY2gtY29udGVudC5zY3NzICoqKiFcbiAgXFwqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIFRvdGFyYSBFbnRlcnByaXNlIEV4dGVuc2lvbnMuKi9cbi8qKi9cbi8qIENvcHlyaWdodCAoQykgMjAyNCBvbndhcmRzIFRvdGFyYSBMZWFybmluZyBTb2x1dGlvbnMgTFREKi9cbi8qKi9cbi8qIFRvdGFyYSBFbnRlcnByaXNlIEV4dGVuc2lvbnMgaXMgcHJvdmlkZWQgb25seSB0byBUb3RhcmEqL1xuLyogTGVhcm5pbmcgU29sdXRpb25zIExURCdzIGN1c3RvbWVycyBhbmQgcGFydG5lcnMsIHB1cnN1YW50IHRvKi9cbi8qIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZiBhIHNlcGFyYXRlIGFncmVlbWVudCB3aXRoIFRvdGFyYSovXG4vKiBMZWFybmluZyBTb2x1dGlvbnMgTFREIG9yIGl0cyBhZmZpbGlhdGUuKi9cbi8qKi9cbi8qIElmIHlvdSBkbyBub3QgaGF2ZSBhbiBhZ3JlZW1lbnQgd2l0aCBUb3RhcmEgTGVhcm5pbmcgU29sdXRpb25zKi9cbi8qIExURCwgeW91IG1heSBub3QgYWNjZXNzLCB1c2UsIG1vZGlmeSwgb3IgZGlzdHJpYnV0ZSB0aGlzIHNvZnR3YXJlLiovXG4vKiBQbGVhc2UgY29udGFjdCBbbGljZW5zaW5nQHRvdGFyYS5jb21dIGZvciBtb3JlIGluZm9ybWF0aW9uLiovXG4vKiovXG4vKiBAYXV0aG9yIFNpbW9uIENoZXN0ZXIgPHNpbW9uLmNoZXN0ZXJAdG90YXJhLmNvbT4qL1xuLyogQG1vZHVsZSB0dWkqL1xuXG4vKiByZW5kZXJlZCBlZGl0b3IgY29udGVudCovXG4udHVpLXJlbmRlcmVkIHtcbiAgQGluY2x1ZGUgZm9udChib2R5KTtcbiAgd29yZC1icmVhazogYnJlYWstd29yZDtcblxuICAmX19ibG9jayB7XG4gICAgbWFyZ2luLWJvdHRvbTogdmFyKC0tcGFyYWdyYXBoLWdhcCk7XG4gIH1cblxuICAmX19lbWJlZENvbnRhaW5lciB7XG4gICAgbWF4LXdpZHRoOiB2YXIoLS1lbWJlZGRlZC1tZWRpYS1tYXgtd2lkdGgpO1xuICB9XG59XG5cbiIsIi8qISoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiohKlxcXG4gICEqKiogY3NzIC4vY2xpZW50L3Rvb2xpbmcvd2VicGFjay9jc3NfcmF3X2xvYWRlci5qcz8/cnVsZVNldFsxXS5ydWxlc1swXS51c2VbMV0hLi9ub2RlX21vZHVsZXMvcG9zdGNzcy1sb2FkZXIvZGlzdC9janMuanM/P3J1bGVTZXRbMV0ucnVsZXNbMF0udXNlWzJdIS4vY2xpZW50L2NvbXBvbmVudC90dWkvc3JjL2dsb2JhbF9zdHlsZXMvc3R5bGVzL2ljb25zLnNjc3MgKioqIVxuICBcXCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBUaGlzIGZpbGUgaXMgcGFydCBvZiBUb3RhcmEgRW50ZXJwcmlzZSBFeHRlbnNpb25zLiovXG4vKiovXG4vKiBDb3B5cmlnaHQgKEMpIDIwMjQgb253YXJkcyBUb3RhcmEgTGVhcm5pbmcgU29sdXRpb25zIExURCovXG4vKiovXG4vKiBUb3RhcmEgRW50ZXJwcmlzZSBFeHRlbnNpb25zIGlzIHByb3ZpZGVkIG9ubHkgdG8gVG90YXJhKi9cbi8qIExlYXJuaW5nIFNvbHV0aW9ucyBMVEQncyBjdXN0b21lcnMgYW5kIHBhcnRuZXJzLCBwdXJzdWFudCB0byovXG4vKiB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgb2YgYSBzZXBhcmF0ZSBhZ3JlZW1lbnQgd2l0aCBUb3RhcmEqL1xuLyogTGVhcm5pbmcgU29sdXRpb25zIExURCBvciBpdHMgYWZmaWxpYXRlLiovXG4vKiovXG4vKiBJZiB5b3UgZG8gbm90IGhhdmUgYW4gYWdyZWVtZW50IHdpdGggVG90YXJhIExlYXJuaW5nIFNvbHV0aW9ucyovXG4vKiBMVEQsIHlvdSBtYXkgbm90IGFjY2VzcywgdXNlLCBtb2RpZnksIG9yIGRpc3RyaWJ1dGUgdGhpcyBzb2Z0d2FyZS4qL1xuLyogUGxlYXNlIGNvbnRhY3QgW2xpY2Vuc2luZ0B0b3RhcmEuY29tXSBmb3IgbW9yZSBpbmZvcm1hdGlvbi4qL1xuLyoqL1xuLyogQGF1dGhvciBTaW1vbiBDaGVzdGVyIDxzaW1vbi5jaGVzdGVyQHRvdGFyYS5jb20+Ki9cbi8qIEBtb2R1bGUgdHVpKi9cblxuLyogQ29sb3Igc3RhdGUgZm9yIHRoZSBpY29ucy4qL1xuLnR1aS1pY29uIHtcbiAgJi0tZGlzYWJsZWQge1xuICAgIGNvbG9yOiB2YXIoLS1jb2xvci1uZXV0cmFsLTIpO1xuICB9XG5cbiAgJi0tYWN0aW9uIHtcbiAgICBjb2xvcjogdmFyKC0tY29sb3Itc3RhdGUpO1xuICB9XG5cbiAgJi0taW5mbyB7XG4gICAgY29sb3I6IHZhcigtLWNvbG9yLXByb21wdC1pbmZvKTtcbiAgfVxuXG4gICYtLWFsZXJ0IHtcbiAgICBjb2xvcjogdmFyKC0tY29sb3ItcHJvbXB0LWFsZXJ0KTtcbiAgfVxuXG4gICYtLXdhcm5pbmcge1xuICAgIGNvbG9yOiB2YXIoLS1jb2xvci1wcm9tcHQtd2FybmluZyk7XG4gIH1cblxuICAmLS1zdWNjZXNzIHtcbiAgICBjb2xvcjogdmFyKC0tY29sb3ItcHJvbXB0LXN1Y2Nlc3MpO1xuICB9XG5cbiAgJi0tZGltbWVkIHtcbiAgICBjb2xvcjogdmFyKC0tY29sb3ItbmV1dHJhbC02KTtcbiAgfVxufVxuXG4iXX0= */