From 8c1acffdc236e13f8178362bcaac7bfb44457060 Mon Sep 17 00:00:00 2001 From: Jeremy Zilar Date: Tue, 7 Nov 2017 20:36:49 -0500 Subject: [PATCH 01/15] Fixing content that was never converted to markdown --- .../how-to-get-your-open-data-on-data-gov.md | 958 ++++++------------ 1 file changed, 313 insertions(+), 645 deletions(-) diff --git a/content/resources/how-to-get-your-open-data-on-data-gov.md b/content/resources/how-to-get-your-open-data-on-data-gov.md index f957823981..27807da766 100644 --- a/content/resources/how-to-get-your-open-data-on-data-gov.md +++ b/content/resources/how-to-get-your-open-data-on-data-gov.md @@ -1,8 +1,8 @@ --- url: /resources/how-to-get-your-open-data-on-data-gov/ date: 2014-12-10 2:53:55 -0400 -title: How to Get Your Open Data on Data.gov -summary: Data.gov is the central clearinghouse for open data from the United States federal government. It also provides access to many local government and non-federal open data resources. Find out below how federal, federal geospatial, and non-federal data is funneled to Data.gov and how you can get your data federated on Data.gov for greater discoverability and +title: 'How to Get Your Open Data on Data.gov' +summary: 'Find out below how federal, federal geospatial, and non-federal data is funneled to Data.gov and how you can get your data federated on Data.gov for greater discoverability and and impact.' authors: - pashlock --- @@ -12,7 +12,7 @@ Data.gov is the central clearinghouse for open data from the United States feder This guide is primarily for the [Open Data Points of Contact](https://project-open-data.cio.gov/points-of-contact/) (POC) at each agency. If you would like to add data to Data.gov and you are not the POC for your agency, please contact your POC. If your agency has no POC listed, please continue reading and [contact Data.gov](https://www.data.gov/contact) for assistance. * [**Overview**](#overview "Overview") - * [**Step 1: Organize your open data for the Data.gov Pipeline**](#step-1 "Step 1: Organize your open data for the Data.gov Pipeline") + * [**Step 1: Organize your open data for the Data.gov Pipeline**](#step-1-organize-your-open-data-for-the-data-gov-pipeline "Step 1: Organize your open data for the Data.gov Pipeline") * [**Federal Data with Project Open Data**](#federal-data-with-project-open-data "Federal Data with Project Open Data") * [**Federal Geospatial Data**](#federal-geospatial-data "Federal Geospatial Data") * [**Non-Federal Data**](#non-federal-data "Non-Federal Data") @@ -20,650 +20,318 @@ This guide is primarily for the [Open Data Points of Contact](https://project-op * [**Resources & Tools**](#resources-tools "Resources & Tools") * [**Frequently Asked Questions**](#faq "Frequently Asked Questions") -

- Overview -

+## Overview Data.gov is primarily a federal open government data site. However, state, local, and tribal governments can also publish metadata describing their open data resources on Data.gov for greater discoverability. Data.gov does not host data directly (with a few exceptions), but rather aggregates metadata about open data resources in one centralized location. Once an open data source meets the necessary format and metadata requirements, the Data.gov team can harvest the metadata directly, synchronizing that source’s metadata on Data.gov as often as every 24 hours. **Background** -From 2009-2013, agency updates to the Data.gov catalog were not automated. Federal agencies submitted metadata for individual datasets to Data.gov through a central Dataset Management System (DMS). At present, pursuant to the Federal [Open Data Policy](https://project-open-data.cio.gov/policy-memo/) discussed in more detail below, all metadata is added to Data.gov through the federated “harvest” model.

- -

- Dataset Updates -

- -

- Additions, updates, and deletions occur through a Harvest Source rather than within Data.gov directly. Data.gov synchronizes those changes through a daily Harvest Job.

- -

- Federated Metadata Harvest Architecture -

- -

- {{< legacy-img src="/2014/12/harvest-diagram-departmentwide-gis-separate.png" alt="federated harvest architecture diagram" >}} -

- -

- Step 1. Organize your open data for the Data.gov Pipeline -

- -

- Getting your data source ready for harvesting by the Data.gov catalog depends on your data source type: -

- -
    -
  1. - Federal Data with Project Open Data (non-geospatial): The most common source is the Public Data Listing as required by the Federal Open Data Policy. -
  2. -
  3. - Federal Geospatial Data: Federal maps, images, GIS products, and other location-based data resources. -
  4. -
  5. - Non-federal Data: Non-federal government sources are not covered by the Federal Open Data Policy, but can be included in the Data.gov catalog voluntarily.
- -

- The steps for all three types of data sources are described in detail below. -

- -

- Federal Data with Project Open Data -

- -

- Project Open Data is the name of the implementation guidance and associated resources for the Federal Open Data Policy, OMB M-13-13. This policy requires all Federal CFO-Act agencies to publish a Public Data Listing, provided as a data.json file, using the standard Project Open Data metadata schema. Non-CFO-Act agencies are not covered by this policy, but the process for including their data on Data.gov is the same.

- -

- Project Open Data requires agencies to list and describe all agency data in the Public Data Listing. If a dataset is not public or restricted access, the metadata for that dataset is still included in the Public Data Listing, but any portion of the metadata that cannot be made public is redacted. The full, unredacted version of the metadata is provided in the Enterprise Data Inventory which is submitted to OMB and not made public. -

- -

- Agencies must provide a human readable Public Data Listing at agency.gov/data and a machine readable listing, as a standalone JSON file on the agency’s website at agency.gov/data.json. This data.json file is what gets harvested to the Data.gov catalog.

- -

- Federal agencies that do not have a platform to inventory their metadata can make use of a free service hosted by Data.gov called inventory.data.gov (see the }}">separate guide). Contact the Data.gov team via email if you’re interested in using this service.

- -

- You can find more information about what is required by the policy in the Data Catalog Requirements for Project Open Data, but the requirements relevant to Data.gov are outlined here:

- -
    -
  1. - Open Data Policy Requirements -
  2. -
  3. - All CFO-Act agencies must provide an Enterprise Data Inventory and Public Data Listing in accordance with the Project Open Data metadata schema for the purposes of measuring compliance with OMB’s M-13-13
  4. - -
  5. - Required: Enterprise Data Inventory provided to OMB MAX -
  6. -
  7. - Required: Public Data Listing at: https://________.gov/data.json -
- -

- An update to the Project Open Data Metadata Schema, Version 1.1 was released on November 6, 2014. -

- -

- The Data.gov catalog supports version 1.1 as of December 2, 2014. -

- -

- When an agency is ready for Data.gov to harvest their data.json for the first time, they should notify Data.gov via email and the Data.gov team will create a new Data.gov harvest source for their data.json. The Data.gov team is available to assist agencies in generating the Public Data Listing data.json file and provide tools that may help agencies prepare their data listings.

- -

- Federal data only
There should be one single harvest source per agency. If a federal agency aggregates data from non-federal sources, they must ensure the agency’s data.json includes data produced by the agency only. Data.gov harvests all metadata directly from publishers including many non-federal sources and works to prevent dataset duplication through intermediaries. It is also important to remember that OMB assesses an agency’s data.json file under the assumption it is comprised of data exclusively from that agency.

- -

- Transitioning to data.json
When an agency transitions to data.json harvesting for the first time, any existing data on the Data.gov catalog is archived. Data.gov will also provide an export of the existing metadata on Data.gov and note whether any of these datasets were associated with a Data.gov Topic. -

- -

- Replacing datasets
When replacing any dataset in your data.json file it is important to maintain same title and identifier associated with the dataset to ensure consistent discoverability of that dataset going forward. When replacing datasets in your data.json harvest source, using the same identifier will ensure that the URL for the dataset on Data.gov stays the same keeping cited links working and reinforcing the open data principle of permanence. It should be noted, however, that when replacing datasets on Data.gov with a brand new harvest source (see Transitioning to data.json above) that using the same identifier or title may not retain the same URL.

- -

- Recovering deleted datasets
After a dataset has been deleted from Data.gov (i.e., the agency posted an updated data.json file that does not include a particular dataset), there is a grace period of up to 24 hours where it can be easily restored by working with the Data.gov team. -

- -

- Error log reports
Every time the data.json is harvested, an error log is generated that identifies any issues that occurred during the harvest process. If requested, an agency point of contact can receive a daily harvest report with this error log via email. -

- -

- Federal Geospatial Data -

- -

- Background -

- -

- Several federal agencies maintain and manage geospatial data and geographic information systems (GIS). The documentation of geospatial data is subject to authorities pre-dating the Open Data Policy. are required to develop metadata as outlined in Executive Order 12906 and OMB Circular A-16, revised (2002) to support the National Spatial Data Infrastructure (NSDI). The Federal Geographic Data Committee (FGDC) is the interagency group responsible for facilitating these federal activities and collaboration with non-federal organizations on geospatial data efforts. The FGDC has endorsed several geospatial metadata standards, as directed by OMB Circular A-119,including the Content Standard for Digital Geospatial Metadata (CSDGM), ISO 19115:2003 Geographic Information – Metadata and several related ISO geospatial standards. Since ISO 19115 and the associated standards are voluntary consensus standards (vs. federally-authored) and endorsed by the FGDC, federal agencies are encouraged to transition to ISO metadata as their agencies are able to do so. While the selection of appropriate standards is dependent on the nature of your metadata collection and publication process, ISO metadata should be considered an option now. For more information, see the FGDC website.

- -

- In the past, geospatial metadata records were maintained and discoverable via separate catalogs and tools, including Geospatial One Stop. In 2013, these sources were merged so that Data.gov (specifically catalog.data.gov) indexes both geospatial and non-geospatial metadata in one place. -

- -

- Metadata for geospatial datasets in catalog.data.gov is also made available in GeoPlatform.gov. GeoPlatform.gov provides access and management of geospatial resources through common geospatial data, services, and applications contributed and administered by trusted sources and hosted on shared infrastructure for use by federal agencies, agency partners, and the public. Geospatial metadata is made available to GeoPlatform.gov from the metadata harvested by catalog.data.gov and is displayed on GeoPlatform.gov via an application programming interface (API) on catalog.data.gov. In other words, the datasets discoverable on GeoPlatform.gov are from the geospatial metadata collected by the catalog using the following API call:

- -

- http://catalog.data.gov/api/3/action/package_search?q=metadata_type:geospatial -

- -

- The majority of open government datasets have some relationship to spatial data (e.g. jurisdiction, address). For the purposes of this document and learning how data gets published in Data.gov, “geospatial data” here specifically refers to spatial data that has historically been included as part of the Federal Geographic Data Committee and GeoPlatform.gov and utilizes robust geospatial metadata standards such as the the suite of ISO standards or the FGDC’s Content Standard for Digital Geospatial Metadata (CSDGM).These geospatial metadata standards are needed to properly display data and utilize the spatial functionality on GeoPlatform.gov.

- -

- Getting geospatial metadata into Data.gov -

- -

- Federal agencies that manage geospatial data should make their geospatial metadata holdings available to Data.gov using a consolidated geospatial harvest source, preferably one single CSW endpoint for the entire agency. For example, all offices and bureaus within the Department of Interior would make their metadata available through one consolidated CSW covering all of the Department of the Interior. (Non-geospatial metadata should be provided separately. See section 3 below.) -

- -

- While a CSW endpoint and traditional geospatial metadata standards are needed for GeoPlatform.gov and Data.gov to consume the data, the Project Open Data (M-13-13) policy still requires metadata for the agency’s geospatial datasets to be provided within the Enterprise Data Inventory data.json file submitted to OMB with the Project Open Data metadata. -

- -

- In order to facilitate these requirements, the FGDC and Data.gov have developed a mapping of elements between the Project Open Data metadata schema v1.1 and the geospatial metadata standards including FGDC CSDGM, ISO 19115:2003, and ISO 19115-1:2014. This crosswalk enables federal agencies with geospatial data to more efficiently meet both metadata requirements. -

- -

- For agencies that provide geospatial data to GeoPlatform.gov and Data.gov, the following harvest sources must be provided: -

- -
    -
  1. - Open Data Policy Requirements

    All CFO-Act agencies must provide an Enterprise Data Inventory in accordance with the Project Open Data metadata schema (see Federal Data with Project Open Data above). This includes geospatial and non-spatial data.

    Required: Enterprise Data Inventory provided to OMB MAX
- -
    -
  1. - Geospatial Harvest Source — Public Data Listing Requirements (for GeoPlatform.gov and Data.gov)To be successfully harvested by GeoPlatform.gov and Data.gov, all geospatial data should be provided via one Catalog Service for the Web (CSW) endpoint.
    Required: A CSW endpoint, e.g.: https://data.doi.gov/csw?service=CSW&version=2.0.2&request=GetCapabilities
- -
    -
  1. - Data without a Geospatial Harvest Source — Public Data Listing Requirements (for GeoPlatform.gov and Data.gov) Lastly, to prevent duplication on Data.gov, all agencies that provide a CSW geospatial harvest source to GeoPlatform.gov and Data.gov should create an additional JSON file (called /data-nonspatial-harvest.json) to include all datasets that are not available via the consolidated Geospatial Harvest Source.
    Required: Datasets without a Geospatial Harvest Source for the Public Data Listing at:
    https://________.gov/data-nonspatial-harvest.json
- -

- Datasets Displayed on GeoPlatform.gov -

- -

- All datasets included in the CSW will be displayed on GeoPlatform.gov. Datasets included in data-nonspatial-harvest.json will only be displayed on Data.gov, but not GeoPlatform.gov unless the datasets are specially tagged for inclusion there. -

- -

- If an agency has a geospatial dataset in the data-nonspatial-harvest.json that should be part of GeoPlatform.gov, but is not included in the CSW harvest source, or if an agency has geospatial holdings and is only able to provide a data.json file and not the CSW, it should denote the geospatial dataset using “geospatial” as a value within the “theme” field. For example: “theme”: [“geospatial”]

- -

- Non-Federal Data -

- -

- Data.gov incorporates data sources from state, local, and tribal governments. Non-federal sources are not covered by the Federal Open Data Policy, but can be included in the Data.gov catalog voluntarily. Depending on your local government open data platform, you may already have a harvest source that is Data.gov-ready, or it could take a little more work. Either way, the Data.gov team is available to answer questions about these requirements. For non-federal data to be connected to Data.gov, the following items are required: -

- -
    -
  1. - A Data Harvest Source
    Some open data catalog platforms already have a Data.gov harvest source built in (see these examples from Socrata and ArcGIS Open Data), but it is possible to set up a harvest source with any data management system (see this CKAN example). The metadata required from non-federal sources does not include the USG noted fields and additional fields can be left out on a case-by-case basis. To learn more about metadata best practices and validators, check out the }}>Resources and Tools below.
    Required: A Harvest Source at: https://________.gov/data.json, e.g. https://data.brla.gov/data.json
- -
    -
  1. - A Terms of Use URL
    A publicly accessible Terms of Use (or Data Policy) URL or similar information in order to make it clear to Data.gov users when they are viewing datasets that are not covered by federal statutory and regulatory requirements.
    Required: A Terms of Use URL, e.g. https://data.brla.gov/terms-of-service
- -

- Once you have coordinated with Data.gov on these two items, automated nightly updates to Data.gov can be set up very quickly. Non-federal organizations can provide the necessary information through the form. -

- -

- Step 2. Coordinate with Data.gov -

- -

- Contact the Data.gov team -

- -

- Contact the Data.gov team via email to let them know you’d like to get started. Please include a link to your metadata in the data.json format (see Step 1: Organize your open data for the Data.gov Pipeline) or let us know if you have questions about how to create a data.json file from your current database along with any relevant links.

- -

- Connecting the pipes -

- -

- The Data.gov team will create a new Harvest Source that will automatically collect information about your datasets and update Data.gov whenever changes are made on your data catalog. Depending on your platform, creating this harvester might just be the push of a button or it could take a little more work, but the team will walk you through it either way.

- -

- Creating Harvest Sources -

- -

- For federal agencies with only a data.json and for non-federal entities without geospatial harvest sources, contacting the Data.gov team to create the new harvest source is recommended. -

- -

- If you are geospatial data publisher and there is a need for you to directly create a harvest source instead of a consolidated CSW endpoint as indicated above, please follow the steps outlined in the section below: -

- -

- Creating a Metadata Publishing Account and Harvesting your Metadata to catalog.data.gov -

- -

- In order to create a harvest source, you will need to have a login account through the OMB MAX authentication service. -

- -

- Go to catalog.data.gov and click on “Login” at the bottom of the page. You will be sent to OMB MAX. Log in to OMB MAX using your OMB MAX credentials. Two-factor authentication (2FA) is now required for Data.gov access, so enable 2FA through the instructions on the OMB MAX log in page. You can add a device by clicking on “Manage SMS 2-Factor Devices” under your profile settings. This is not necessary if you use your PIV/CAC card to log in to MAX; it is already considered 2FA.

- -

- After you have logged in to OMB MAX, email us to let us know that you have completed the initial login. In the email provide the organization name and access permission (Admin or Editor) that is required. We will then associate requested permissions to your account.

- -

- (If you manage a non-federal geospatial harvest source, follow the instructions (2.5 MB PDF) from GeoPlatform.gov to obtain access to OMB MAX.) -

- -

- Once your Data.gov account is created, and your permissions are in place, you can log in and follow the steps below to create your harvest source: -

- -
    -
  1. - Navigate to http://catalog.data.gov
  2. - -
  3. - Scroll to the bottom of the page and click the “Login” link -
  4. -
  5. - Log in using OMB MAX. -
  6. -
  7. - Navigate to http://catalog.data.gov/harvest
  8. - -
  9. - Click the “Add Harvest Source” button -
  10. -
  11. - Enter information into the fields provided on the page. They include the following fields:
      -
    • - CKAN -
    • -
    • - Data.json -
    • -
    • - CSW Server -
    • -
    • - Web Accessible Folder (WAF) -
    • -
    • - Single spatial metadata document -
    • -
    • - Geoportal Server -
    • -
    • - Web Accessible Folder (WAF) Homogeneous Collection -
    • -
    • - Z39.50 -
    • -
    • - ArcGIS Rest API -
    • -
    - -
      -
    • - Autodetect -
    • -
    • - ISO 19115 Metadata (ISO 19139 XSD) -
    • -
    • - FGDC Minimal Validation -
    • -
    • - FGDC CSDGM Version 2.0, 1998 (FGDC-STD-001-1998) -
    • -
    • - FGDC CSDGM Biological Data Profile (FGDC-STD-001.1-1999) -
    • -
    • - FGDC CSDGM Metadata Profile for Shoreline Data (FGDC-STD-001.2-2001) -
    • -
    • - FGDC Extensions for Remote Sensing (FGDC-STD-012-2002) -
    • -
    - -
      -
    1. - URL – The harvest source URL that contains your data -
    2. -
    3. - Title – The title for your harvest source. This title is the name that will be displayed as the access link for the harvest source on Catalog.data.gov -
    4. -
    5. - Description – A summary of the data provided by your harvest source -
    6. -
    7. - Source Type – The format of the data provided by your harvest source (Note: Some data formats will undergo validation. You will be able to select the validation schema for your data after selecting the Source Type.) Data formats that are supported include: -
    8. -
    9. - Update Frequency – How often you want your data to be harvested -
    10. -
    11. - Validation: For Geospatial data below validation formats are available, please choose the validation that is applicable for the metadata you are harvesting. -
    12. -
    13. - Dataset Visibility – You can display the dataset to the public or have it remain only visible to your organization members -
    14. -
    15. - Organization – Select your organization in this field to associate your harvest source to it. -
    16. -
    -
  12. - -
  13. - Once you have entered all of your information, click the “Save” button to create your harvest source. -
- -

- Once your harvest source is created, the Harvest Source page will display. To test your new harvest source, click on the “Admin” button, then click on the “Reharvest” button when it displays. The harvesting process should take few minutes to hours based on the number of datasets on the source. Once the harvesting is complete, a job report will be provided that will display any errors that have occurred, if any, during the harvesting process. -

- -

- Testing -

- -

- The Data.gov team will test to ensure the harvester works properly. If anything seems wrong, the team will help you configure your data catalog so that Data.gov can collect your datasets without any errors. -

- -

- For harvest sources that are directly setup by data publishers, the job report will display any errors that have occurred for review and resolution at the source, if you have any questions on the errors, please email the Data.gov team. -

- -

- Live within 24 hours! -

- -

- Once the harvester has been tested successfully, Data.gov will start automatically consuming information about your datasets and all the basic details of your datasets will be available on Data.gov with links to the source and your open data policy. -

- -

- Resources & Tools -

- -

- Resources -

- - - -

- Testing Tools -

- - - -

- Frequently Asked Questions -

- - - -

- General -

- -

- What is “open data” for purposes of Data.gov federation? -

- -

- Open data for the purposes of Data.gov federation is US government data that is public, accessible, described, reusable, complete, timely, and managed post-release. Read more about these principles on Project Open Data.

- -

- What entities are eligible for federation on Data.gov? -

- -

- Non-federal governments (state, local, tribal) can federate to the Data.gov catalog by meeting the requirements discussed in the Non-federal format section. The Data.gov catalog does contain metadata for some datasets produced by non-government sources (some international organizations, academic institutions) under the authorities of the FGDC or when a federal agency has included the non-government data as its own dataset for Information Quality Act purposes. -

- -

- What steps are required to have my government entity federated onto Data.gov? -

- -

- To have your government’s open data federated onto Data.gov, you must: 1. Organize your open data for the Data.gov Pipeline by complying with format and standardized metadata requirements, and 2. Coordinate with Data.gov to establish a harvest point for automatic daily updates. -

- -

- Does my government entity need to have an existing open data catalog to be added to Data.gov? -

- -

- Data.gov is agnostic about whether you have to have an open data catalog of any type to be included on to Data.gov. You simply need to have the metadata of your open data sets organized in a centralized /data.json file in accordance with the required specifications. -

- -

- If our site is a CKAN instance, do we still need data.json and/or data-nonspatial-harvest.json? -

- -

- Yes — you need both. -

- -

- What if you have a .Net Web service already? Does that work? -

- -

- For the open data policy and harvesting on to Data.gov, it needs to be a JSON formatted file. -

- -

- Federal Data with Project Open Data -

- -

- Are there checks in place/planned to verify that the referenced data sources/services are indeed available over time? -

- -

- The Project Open Data dashboard at labs.data.gov/dashboard provides more detailed information on the agency datasets on Data.gov. For instance, if a dataset is no longer maintained and becomes a broken link, that will be noted on the dashboard. As a result, required updates will be more easily identified and addressed. -

- -

- I saw two admirable example data.json files: http://www.gsa.gov/data.json and http://www.nist.gov/data.json. Are there more to survey? -

- -

- Check out the Project Open Data Dashboard or your favorite agency’s website /data.json -

- -

- What is Open Data listserv? -

- -

- The Open Data listserv is a listserv with over 800 .gov email addresses of people working on open data issues in the federal government. It is a simple way to reach the broad audience of people in federal government working on open data. Anyone with a .gov email can email the listserv with “subscribe open-data” in the body of the message. -

- -

- How do you find your Data.gov federal agency point of contact? -

- -

- Find your agency on the Open Data Points of Contact list. If your agency isn’t listed, contact Data.gov and ask. -

- -

- Federal Geospatial Data -

- -

- What does CSW stand for? (re: CSW endpoint) -

- -

- CSW stands for Catalog Service for the Web — You can read more at http://geoplatform.gov/csw-resources -

- -

- Is a CSW endpoint required if you have geospatial data, or is the data.json sufficient? And should data-nonspatial-harvest.json just contain a subset of data.json? -

- -

- Good question! 1. You need both. 2. Yes, correct. -

- -

- So geospatial data developers will have to produce two separate metadata records for the life of the program? -

- -

- Geospatial data developers should manage their metadata as ISO. Using an XSLT and other tools the ISO metadata can be served in multiple formats including HTML and the Project Open Data JSON. There is no need to manage multiple copies of the metadata simply to publish in multiple formats. -

- -

- Can geospatial data also be harvested through a WAF? -

- -

- Yes, but using the new harvesting model, the preferred harvest source is a consolidated agency-wide CSW. -

- -

- For geospatial data, can you delete a harvest source? -

- -

- Yes, but agencies are expected to provide a consolidated harvest source for their entire agency. Individual upstream harvest sources should be managed within each agency. -

- -

- What is the native metadata format in data.gov? Is it ISO? for Geo and non-geo? -

- -

- Geospatial metadata on Data.gov is converted to ISO if it’s not already provided as ISO. If the metadata is provided to Data.gov in CSDGM format, the source CSDGM metadata record will be available to users, along with the converted ISO metadata record. The common metadata format across Data.gov is a data model specific to CKAN, but all metadata is also available as DCAT RDF and Schema.org microdata. Data.gov is looking into providing other common metadata schemas across the site including the current Project Open Data schema which is a profile of DCAT using JSON-LD. -

- -

- Seems an easy approach for the system to check for the geographic extent metadata element to identify geospatial data. Can this be expedited? Better for one solution that works for all then the temp theme keyword solution that requires work from all. -

- -

- This has been suggested in the past, but it was decided that simply providing geospatial extent would not serve as an accurate indicator for whether something should be included as part of geoplatform.gov. You can see the discussion at https://github.com/project-open-data/project-open-data.github.io/issues/303

- -

- Do I understand correctly that you are going to automate CSDGM/ISO to JSON transform and add the auto-detect for geographic information? If so, why not wait for these solutions versus having all metadata producers to dedicate such effort to a temporary fixes (create two records and add ‘geospatial’ theme keyword)? -

- -

- Data.gov does not and will not be providing any transformations from CSDGM/ISO to Project Open Data JSON nor will it be relying on those transformations for data.gov’s purposes. However, as part of the OMB policy, all metadata will need to be provided as JSON including metadata that is currently provided as CSDGM/ISO. Data.gov does help maintain the CKAN extension for generating Project Open Data JSON (ckanext-datajson) and this can be used to provide automated conversion from CSDGM/ISO metadata. We are working to coordinate with geospatial agencies interested in using this extension. -

- -

- Can you tell us the source of the CSDGM validation schema that is currently being used to validate records being harvested by data.gov? We are having some problems understanding why certain records are ‘failing’ validation, and the data.gov harvest report error messages are very difficult to decipher in many cases, even by experienced metadata creators. -

- -

- The metadata is not validated as CSDGM. It is converted to ISO 19115 then validated against the ISO 19115 schema. CSDGM metadata is transformed to ISO using the following XSLT: https://github.com/GSA/ckanext-geodatagov/blob/master/conversiontool/fgdc2iso/fgdcrse2iso19115-2.xslt

- -

- What if I need help getting my geospatial metadata into Data.gov and GeoPlatform.gov? -

- -

- The FGDC has assistance available if you email USGS.gov. They will also coordinate with the Data.gov team to help address your issue if needed. If you have specific metadata questions, contact FGDC via email. -

- -

- Non-federal Data -

- -

- What are the advantages of federating my local government’s open data to Data.gov? -

- -

- Federating your local open government data on Data.gov makes it more discoverable by Data.gov visitors as well as folks using search engines powered by schema.org. It also makes it easier for people to discover similar datasets across different levels of government, e.g., a citizen can find data about her location from city, state, and federal sources in one place. -

- -

- If non-federal data is being shared through Data.gov, is there someone that can help validate that the posted data policy/terms of use are in compliance? -

- -

- We make sure that non-federal sources have terms of use/data policies so that we can make it clear to end users that those datasets are governed by the terms of use/data policies of the non-federal entity (state, city, county, etc.) and not the federal policies.

- -

- Can you address data repositories that are federally funded but not hosted at the agency itself? Can they be harvested directly by data.gov? -

- -

- Yes. -

- -

- If non-federal metadata is shared with the NSGIC GIS Inventory, is it then harvested by data.gov? -

- -

- Yes, the NSGIC GIS Inventory (GISI)is a Data.gov registered harvest sources. -

\ No newline at end of file +From 2009-2013, agency updates to the Data.gov catalog were not automated. Federal agencies submitted metadata for individual datasets to Data.gov through a central Dataset Management System (DMS). At present, pursuant to the Federal [Open Data Policy](https://project-open-data.cio.gov/policy-memo/) discussed in more detail below, all metadata is added to Data.gov through the federated “harvest” model.

+ +**Dataset Updates** +Additions, updates, and deletions occur through a _Harvest Source_ rather than within Data.gov directly. Data.gov synchronizes those changes through a daily _Harvest Job_. + +**Federated Metadata Harvest Architecture** + +{{< legacy-img src="/2014/12/harvest-diagram-departmentwide-gis-separate.png" alt="federated harvest architecture diagram" >}} + +## Step 1. Organize your open data for the Data.gov Pipeline + +Getting your data source ready for harvesting by the Data.gov catalog depends on your data source type: + +1. **Federal Data with Project Open Data (non-geospatial):** The most common source is the Public Data Listing as required by the Federal Open Data Policy. +2. **Federal Geospatial Data:** Federal maps, images, GIS products, and other location-based data resources. +3. **Non-federal Data:** Non-federal government sources are not covered by the Federal Open Data Policy, but can be included in the Data.gov catalog voluntarily. + +The steps for all three types of data sources are described in detail below. + +### Federal Data with Project Open Data + +[Project Open Data](https://project-open-data.cio.gov/) is the name of the implementation guidance and associated resources for the [Federal Open Data Policy, OMB M-13-13](https://project-open-data.cio.gov/policy-memo/). This policy requires all [Federal CFO-Act agencies](http://www.gpo.gov/fdsys/pkg/USCODE-2011-title31/html/USCODE-2011-title31-subtitleI-chap9-sec901.htm) to publish a [Public Data Listing](https://project-open-data.cio.gov/catalog/), provided as a [data.json file](https://project-open-data.cio.gov/catalog/#machine-readable-format), using the standard [Project Open Data metadata schema](https://project-open-data.cio.gov/v1.1/schema/). Non-CFO-Act agencies are not covered by this policy, but the process for including their data on Data.gov is the same. + +Project Open Data requires agencies to list and describe all agency data in the Public Data Listing. If a dataset is not public or restricted access, the metadata for that dataset is still included in the Public Data Listing, but any portion of the metadata that cannot be made public is redacted. The full, unredacted version of the metadata is provided in the Enterprise Data Inventory which is submitted to OMB and not made public. + +Agencies must provide a human readable Public Data Listing at _agency.gov/_data and a machine readable listing, as a standalone JSON file on the agency’s website at _agency.gov_/data.json. This data.json file is what gets harvested to the Data.gov catalog. + +Federal agencies that do not have a platform to inventory their metadata can make use of a free service hosted by Data.gov called inventory.data.gov (see the [}}">separate guide)]({{< link ). Contact the Data.gov team via email if you’re interested in using this service. + +You can find more information about what is required by the policy in the [Data Catalog Requirements](https://project-open-data.cio.gov/catalog/) for Project Open Data, but the requirements relevant to Data.gov are outlined here: + +1. **Open Data Policy Requirements** +2. All CFO-Act agencies must provide an Enterprise Data Inventory and Public Data Listing in accordance with the [Project Open Data metadata schema](https://project-open-data.cio.gov/v1.1/schema/) for the purposes of measuring compliance with OMB’s M-13-13 +3. **Required:** Enterprise Data Inventory provided to OMB MAX +4. **Required:** Public Data Listing at: _https://________.gov/data.json_ + +**_An update to the Project Open Data Metadata Schema,_** [**_Version 1.1_**](https://project-open-data.cio.gov/v1.1/schema/) **_was released on November 6, 2014._** + +The Data.gov catalog supports version 1.1 as of December 2, 2014. + +When an agency is ready for Data.gov to harvest their data.json for the first time, they should notify Data.gov via [email](mailto:datagovhelp@gsa.gov) and the Data.gov team will create a new Data.gov harvest source for their data.json. The Data.gov team is available to assist agencies in generating the Public Data Listing data.json file and provide tools that may help agencies prepare their data listings. + +**Federal data only** +There should be one single harvest source per agency. If a federal agency aggregates data from non-federal sources, they must ensure the agency’s data.json includes data produced by the agency only. Data.gov harvests all metadata directly from publishers including many non-federal sources and works to prevent dataset duplication through intermediaries. It is also important to remember that OMB assesses an agency’s data.json file under the assumption it is comprised of data exclusively from that agency. + +**Transitioning to data.json** +When an agency transitions to data.json harvesting for the first time, any existing data on the Data.gov catalog is archived. Data.gov will also provide an export of the existing metadata on Data.gov and note whether any of these datasets were associated with a Data.gov Topic. + +**Replacing datasets** +When replacing any dataset in your data.json file it is important to maintain same title and identifier associated with the dataset to ensure consistent discoverability of that dataset going forward. When replacing datasets in your data.json harvest source, using the same identifier will ensure that the URL for the dataset on Data.gov stays the same keeping cited links working and reinforcing the open data principle of [permanence](https://opengovdata.io/2014/permanence-trust-provenance/). It should be noted, however, that when replacing datasets on Data.gov with a brand new harvest source (see _Transitioning to data.json_ above) that using the same identifier or title may not retain the same URL. + +**Recovering deleted datasets** +After a dataset has been deleted from Data.gov (i.e., the agency posted an updated data.json file that does not include a particular dataset), there is a grace period of up to 24 hours where it can be easily restored by working with the Data.gov team. + +**Error log reports** +Every time the data.json is harvested, an error log is generated that identifies any issues that occurred during the harvest process. If requested, an agency point of contact can receive a daily harvest report with this error log via email. + +### Federal Geospatial Data + +**Background** + +Several federal agencies maintain and manage geospatial data and geographic information systems (GIS). The documentation of geospatial data is subject to authorities pre-dating the Open Data Policy. are required to develop metadata as outlined in [Executive Order 12906](http://www.archives.gov/federal-register/executive-orders/pdf/12906.pdf) and [OMB Circular A-16, revised (2002)](https://obamawhitehouse.archives.gov/omb/circulars_a016_rev/) to support the National Spatial Data Infrastructure (NSDI). The Federal Geographic Data Committee (FGDC) is the interagency group responsible for facilitating these federal activities and collaboration with non-federal organizations on geospatial data efforts. The FGDC has endorsed several geospatial metadata standards, as directed by [OMB Circular A-119](https://obamawhitehouse.archives.gov/omb/circulars_a119/),including the Content Standard for Digital Geospatial Metadata ([CSDGM](http://www.fgdc.gov/metadata/csdgm)), [ISO 19115:2003 Geographic Information – Metadata](http://www.fgdc.gov/metadata/geospatial-metadata-standards) and several related ISO geospatial standards. Since ISO 19115 and the associated standards are voluntary consensus standards (vs. federally-authored) and endorsed by the FGDC, federal agencies are encouraged to transition to ISO metadata as their agencies are able to do so. While the selection of appropriate standards is dependent on the nature of your metadata collection and publication process, ISO metadata should be considered an option now. For more information, [see the FGDC website](https://www.fgdc.gov/metadata). + +In the past, geospatial metadata records were maintained and discoverable via separate catalogs and tools, including Geospatial One Stop. In 2013, these sources were merged so that Data.gov (specifically catalog.data.gov) indexes both geospatial and non-geospatial metadata in one place. + +Metadata for geospatial datasets in [catalog.data.gov](http://catalog.data.gov/dataset) is also made available in [GeoPlatform.gov](http://www.geoplatform.gov/). GeoPlatform.gov provides access and management of geospatial resources through common geospatial data, services, and applications contributed and administered by trusted sources and hosted on shared infrastructure for use by federal agencies, agency partners, and the public. Geospatial metadata is made available to GeoPlatform.gov from the metadata harvested by catalog.data.gov and is displayed on GeoPlatform.gov via an application programming interface (API) on catalog.data.gov. In other words, the datasets discoverable on GeoPlatform.gov are from the geospatial metadata collected by the catalog using the following API call: + +http://catalog.data.gov/api/3/action/package_search?q=metadata_type:geospatial + +The majority of open government datasets have some relationship to spatial data (e.g. jurisdiction, address). For the purposes of this document and learning how data gets published in Data.gov, “geospatial data” here specifically refers to spatial data that has historically been included as part of the Federal Geographic Data Committee and GeoPlatform.gov and utilizes robust geospatial metadata standards such as the the suite of ISO standards or the FGDC’s Content Standard for Digital Geospatial Metadata ([CSDGM](http://www.fgdc.gov/metadata/csdgm)).These geospatial metadata standards are needed to properly display data and utilize the spatial functionality on GeoPlatform.gov. + +**Getting geospatial metadata into Data.gov** + +Federal agencies that manage geospatial data should make their geospatial metadata holdings available to Data.gov using a consolidated geospatial harvest source, preferably one single CSW endpoint for the entire agency. For example, all offices and bureaus within the Department of Interior would make their metadata available through one consolidated CSW covering all of the Department of the Interior. (Non-geospatial metadata should be provided separately. See section 3 below.) + +While a CSW endpoint and traditional geospatial metadata standards are needed for GeoPlatform.gov and Data.gov to consume the data, the Project Open Data (M-13-13) policy still requires metadata for the agency’s geospatial datasets to be provided within the Enterprise Data Inventory data.json file submitted to OMB with the Project Open Data metadata. + +In order to facilitate these requirements, the FGDC and Data.gov have developed a [mapping of elements](https://project-open-data.cio.gov/v1.1/metadata-resources/#crosswalks-for-geospatial-metadata) between the Project Open Data metadata schema v1.1 and the geospatial metadata standards including FGDC CSDGM, ISO 19115:2003, and ISO 19115-1:2014. This crosswalk enables federal agencies with geospatial data to more efficiently meet both metadata requirements. + +For agencies that provide geospatial data to GeoPlatform.gov and Data.gov, the following harvest sources must be provided: + +1. **Open Data Policy Requirements** + All CFO-Act agencies must provide an Enterprise Data Inventory in accordance with the Project Open Data metadata schema (see _Federal Data with Project Open Data above_). This includes geospatial **_and_** non-spatial data. + **Required: Enterprise Data Inventory provided to OMB MAX** + +1. **Geospatial Harvest Source — Public Data Listing Requirements** _(for GeoPlatform.gov and Data.gov)_To be successfully harvested by GeoPlatform.gov and Data.gov, all geospatial data should be provided via one [Catalog Service for the Web (CSW)](https://www.geoplatform.gov/csw-resources) endpoint.Required: A CSW endpoint, e.g.: [_https://data.doi.gov/csw?service=CSW&version=2.0.2&request=GetCapabilities_](https://data.doi.gov/csw?service=CSW&version=2.0.2&request=GetCapabilities) + +1. **Data without a Geospatial Harvest Source — Public Data Listing Requirements** _(for GeoPlatform.gov and Data.gov)_ Lastly, to prevent duplication on Data.gov, all agencies that provide a CSW geospatial harvest source to GeoPlatform.gov and Data.gov should create an additional JSON file (called /_data-nonspatial-harvest.json) _to include all datasets that are **not** available via the consolidated Geospatial Harvest Source.**Required:** Datasets without a Geospatial Harvest Source for the Public Data Listing at: _https://________.gov/data-nonspatial-harvest.json_ + +**Datasets Displayed on GeoPlatform.gov** + +All datasets included in the CSW will be displayed on GeoPlatform.gov. Datasets included in data-nonspatial-harvest.json will only be displayed on Data.gov, but not GeoPlatform.gov unless the datasets are specially tagged for inclusion there. + +If an agency has a geospatial dataset in the data-nonspatial-harvest.json that should be part of GeoPlatform.gov, but is not included in the CSW harvest source, or if an agency has geospatial holdings and is only able to provide a data.json file and not the CSW, it should denote the geospatial dataset using “geospatial” as a value within the “theme” field. For example:_ “theme”: [“geospatial”]_ + +### Non-Federal Data + +Data.gov incorporates data sources from state, local, and tribal governments. Non-federal sources are not covered by the Federal Open Data Policy, but can be included in the Data.gov catalog voluntarily. Depending on your local government open data platform, you may already have a harvest source that is Data.gov-ready, or it could take a little more work. Either way, the Data.gov team is available to answer questions about these requirements. For non-federal data to be connected to Data.gov, the following items are required: + +1. **A Data Harvest Source** + Some open data catalog platforms already have a Data.gov harvest source built in (see these examples from [Socrata](https://nycopendata.socrata.com/data.json) and [ArcGIS Open Data](http://opendata.dc.gov/data.json)), but it is possible to set up a harvest source with any data management system (see [this CKAN example](https://www.opendataphilly.org/data.json)). The metadata required from non-federal sources does not include the [USG noted fields](https://project-open-data.cio.gov/v1.1/schema/#USG-note) and additional fields can be left out on a case-by-case basis. To learn more about metadata best practices and validators, check out the [}}>Resources and Tools]({{<) below.**Required:** A Harvest Source at: _https://________.gov/data.json, e.g. __https://data.brla.gov/data.json_ + +1. **A Terms of Use URL** + A publicly accessible Terms of Use (or Data Policy) URL or similar information in order to make it clear to Data.gov users when they are viewing datasets that are not covered by federal statutory and regulatory requirements. + **Required:** A Terms of Use URL, e.g._ https://data.brla.gov/terms-of-service_ + +Once you have coordinated with Data.gov on these two items, automated nightly updates to Data.gov can be set up very quickly. Non-federal organizations can provide the necessary information through [the form](http://www.data.gov/local/add). + +## Step 2. Coordinate with Data.gov + +**Contact the Data.gov team** + +Contact the Data.gov team via email to let them know you’d like to get started. Please include a link to your metadata in the data.json format (see _Step 1: Organize your open data for the Data.gov Pipeline_) or let us know if you have questions about how to create a data.json file from your current database along with any relevant links. + +**Connecting the pipes** + +The Data.gov team will create a new [Harvest Source](https://www.data.gov/developers/harvesting) that will automatically collect information about your datasets and update Data.gov whenever changes are made on your data catalog. Depending on your platform, creating this harvester might just be the push of a button or it could take a little more work, but the team will walk you through it either way. + +**Creating Harvest Sources** + +For federal agencies with only a data.json and for non-federal entities without geospatial harvest sources, contacting the Data.gov team to create the new harvest source is recommended. + +If you are geospatial data publisher and there is a need for you to directly create a harvest source instead of a consolidated CSW endpoint as indicated above, please follow the steps outlined in the section below: + +**Creating a Metadata Publishing Account and Harvesting your Metadata to catalog.data.gov** + +In order to create a harvest source, you will need to have a login account through the OMB MAX authentication service. + +Go to catalog.data.gov and click on “Login” at the bottom of the page. You will be sent to OMB MAX. [Log in to OMB MAX](https://catalog.data.gov/user/login) using your OMB MAX credentials. Two-factor authentication (2FA) is now required for Data.gov access, so enable 2FA through the instructions on the OMB MAX log in page. You can add a device by clicking on “Manage SMS 2-Factor Devices” under your profile settings. This is not necessary if you use your PIV/CAC card to log in to MAX; it is already considered 2FA. + +After you have logged in to OMB MAX, [email us](mailto:datagov@gsa.gov) to let us know that you have completed the initial login. In the email provide the organization name and access permission (Admin or Editor) that is required. We will then associate requested permissions to your account. + +_**(If you manage a non-federal geospatial harvest source, follow the [instructions](https://cms.geoplatform.gov/sites/default/files/document_library/Non-Federal_Geospatial_OMB_MAX_Registration_and_Catalog_Data_gov_Account.pdf) (2.5 MB PDF) from GeoPlatform.gov to obtain access to OMB MAX.)**_ + +Once your Data.gov account is created, and your permissions are in place, you can log in and follow the steps below to create your harvest source: + +1. Navigate to [http://catalog.data.gov](http://catalog.data.gov/) +2. Scroll to the bottom of the page and click the “Login” link +3. [Log in using OMB MAX](https://catalog.data.gov/user/login). +4. Navigate to [http://catalog.data.gov/harvest](http://catalog.data.gov/harvest) +5. Click the “Add Harvest Source” button +6. Enter information into the fields provided on the page. They include the following fields: + * CKAN + * Data.json + * CSW Server + * Web Accessible Folder (WAF) + * Single spatial metadata document + * Geoportal Server + * Web Accessible Folder (WAF) Homogeneous Collection + * Z39.50 + * ArcGIS Rest API + * Autodetect + * ISO 19115 Metadata (ISO 19139 XSD) + * FGDC Minimal Validation + * FGDC CSDGM Version 2.0, 1998 (FGDC-STD-001-1998) + * FGDC CSDGM Biological Data Profile (FGDC-STD-001.1-1999) + * FGDC CSDGM Metadata Profile for Shoreline Data (FGDC-STD-001.2-2001) + * FGDC Extensions for Remote Sensing (FGDC-STD-012-2002) + 1. URL – The harvest source URL that contains your data + 2. Title – The title for your harvest source. This title is the name that will be displayed as the access link for the harvest source on Catalog.data.gov + 3. Description – A summary of the data provided by your harvest source + 4. Source Type – The format of the data provided by your harvest source (Note: Some data formats will undergo validation. You will be able to select the validation schema for your data after selecting the Source Type.) Data formats that are supported include: + 5. Update Frequency – How often you want your data to be harvested + 6. Validation: For Geospatial data below validation formats are available, please choose the validation that is applicable for the metadata you are harvesting. + 7. Dataset Visibility – You can display the dataset to the public or have it remain only visible to your organization members + 8. Organization – Select your organization in this field to associate your harvest source to it. +7. Once you have entered all of your information, click the “Save” button to create your harvest source. + +Once your harvest source is created, the Harvest Source page will display. To test your new harvest source, click on the “Admin” button, then click on the “Reharvest” button when it displays. The harvesting process should take few minutes to hours based on the number of datasets on the source. Once the harvesting is complete, a job report will be provided that will display any errors that have occurred, if any, during the harvesting process. + +**Testing** + +The Data.gov team will test to ensure the harvester works properly. If anything seems wrong, the team will help you configure your data catalog so that Data.gov can collect your datasets without any errors. + +For harvest sources that are directly setup by data publishers, the job report will display any errors that have occurred for review and resolution at the source, if you have any questions on the errors, please [email the Data.gov team](mailto:datagovhelp@gsa.gov). + +**Live within 24 hours!** + +Once the harvester has been tested successfully, Data.gov will start automatically consuming information about your datasets and all the basic details of your datasets will be available on Data.gov with links to the source and your open data policy. + +## Resources & Tools + +### Resources + +* Continually updated Federal Open Data Policy guidance and technical standards, commonly referred to as [Project Open Data](http://project-open-data.github.io/) +* Federal Open Data Policy Memo, [OMB M-13-13](https://www.whitehouse.gov/sites/whitehouse.gov/files/omb/memoranda/2013/m-13-13.pdf) +* [FGDC geospatial metadata information](http://www.fgdc.gov/metadata) +* [GeoPlatform.gov initiative](http://www.fgdc.gov/initiatives/geospatial-platform) +* [Catalog.Data.gov CKAN Publisher Tutorial to facilitate GeoPlatform Geospatial Data Discovery](http://www.geoplatform.gov/sites/default/files/document_library/catalog_data_gov_publishing_tutorial.pdf) +* Metadata Recommendations Supporting Data Discovery and Use in Data.gov and GeoPlatform.gov (_add link when documented is updated at https://cms.geoplatform.gov/sites/default/files/document_library_) + +### Testing Tools + +* [Project Op](https://www.data.gov/labs/)[en Data Dashboard](http://labs.data.gov/dashboard/offices): A dashboard to track the progress of agencies implementing Project Open Data on a quarterly basis +* [Project Open Data data.json Validator](http://labs.data.gov/dashboard/validate): A validator for v1.0 and v1.1 of the Project Open Data Metadata Schema +* Project Open Data Converters: A [converter](http://labs.data.gov/dashboard/datagov/csv_to_json) to transform CSV files into JSON as defined by the Project Open Data Metadata Schema and an [export API](http://labs.data.gov/dashboard/export) to export from the CKAN API and transform the metadata into JSON as defined by the Project Open Data Metadata Schema +* [Project Open Data Changeset Preview](http://labs.data.gov/dashboard/changeset) — Agencies can use the Project Open Data Dashboard [changeset tool](http://labs.data.gov/dashboard/changeset) to compare their data.json file to data that currently exists on Data.gov to see what will be replaced, added, or removed. +* Agencies can test the process of harvesting their data.json by [requesting access to Data.gov’s test harvester](https://github.com/GSA/data.gov/wiki/Guide-to-creating-an-account-for-and-using-the-test-harvester). + +## Frequently Asked Questions + +* **[General](#faq-general)** +* **[Federal Data with Project Open Data](#faq-data)** +* **[Federal Geospatial](#faq-geospatial)** +* **[Non-federal](#faq-non-federal)** + +### General + +**What is “open data” for purposes of Data.gov federation?** + +Open data for the purposes of Data.gov federation is US government data that is_ public, accessible, described, reusable, complete, timely_, and_ managed post-release_. Read more about these principles on [Project Open Data](http://project-open-data.github.io/principles/). + +**What entities are eligible for federation on Data.gov?** + +Non-federal governments (state, local, tribal) can federate to the Data.gov catalog by meeting the requirements discussed in the Non-federal format section. The Data.gov catalog does contain metadata for some datasets produced by non-government sources (some international organizations, academic institutions) under the authorities of the FGDC or when a federal agency has included the non-government data as its own dataset for Information Quality Act purposes. + +**What steps are required to have my government entity federated onto Data.gov?** + +To have your government’s open data federated onto Data.gov, you must: 1. Organize your open data for the Data.gov Pipeline by complying with format and standardized metadata requirements, and 2. Coordinate with Data.gov to establish a harvest point for automatic daily updates. + +**Does my government entity need to have an existing open data catalog to be added to Data.gov?** + +Data.gov is agnostic about whether you have to have an open data catalog of any type to be included on to Data.gov. You simply need to have the metadata of your open data sets organized in a centralized /data.json file in accordance with the required specifications. + +**If our site is a CKAN instance, do we still need data.json and/or data-nonspatial-harvest.json?** + +Yes — you need both. + +**What if you have a .Net Web service already? Does that work?** + +For the open data policy and harvesting on to Data.gov, it needs to be a JSON formatted file. + +### Federal Data with Project Open Data + +**Are there checks in place/planned to verify that the referenced data sources/services are indeed available over time?** + +The Project Open Data dashboard at labs.data.gov/dashboard provides more detailed information on the agency datasets on Data.gov. For instance, if a dataset is no longer maintained and becomes a broken link, that will be noted on the dashboard. As a result, required updates will be more easily identified and addressed. + +**I saw two admirable example data.json files: http://www.gsa.gov/data.json and http://www.nist.gov/data.json. Are there more to survey?** + +Check out the [Project Open Data Dashboard](http://labs.data.gov/dashboard/offices) or your favorite agency’s website /data.json + +**What is Open Data listserv?** + +The Open Data listserv is a listserv with over 800 .gov email addresses of people working on open data issues in the federal government. It is a simple way to reach the broad audience of people in federal government working on open data. Anyone with a .gov email can [email the listserv](mailto:listserv@listserv.gsa.gov) with “subscribe open-data” in the body of the message. + +**How do you find your Data.gov federal agency point of contact?** + +Find your agency on the [Open Data Points of Contact list](https://project-open-data.cio.gov/points-of-contact/). If your agency isn’t listed, [contact Data.gov](http://data.gov/contact) and ask. + +### Federal Geospatial Data + +**What does CSW stand for? (re: CSW endpoint)** + +CSW stands for Catalog Service for the Web — You can read more at [http://geoplatform.gov/csw-resources](http://geoplatform.gov/csw-resources) + +**Is a CSW endpoint required if you have geospatial data, or is the data.json sufficient? And should data-nonspatial-harvest.json just contain a subset of data.json?** + +Good question! 1. You need both. 2. Yes, correct. + +**So geospatial data developers will have to produce two separate metadata records for the life of the program?** + +Geospatial data developers should manage their metadata as ISO. Using an XSLT and other tools the ISO metadata can be served in multiple formats including HTML and the Project Open Data JSON. There is no need to manage multiple copies of the metadata simply to publish in multiple formats. + +**Can geospatial data also be harvested through a WAF?** + +Yes, but using the new harvesting model, the preferred harvest source is a consolidated agency-wide CSW. + +**For geospatial data, can you delete a harvest source?** + +Yes, but agencies are expected to provide a consolidated harvest source for their entire agency. Individual upstream harvest sources should be managed within each agency. + +**What is the native metadata format in data.gov? Is it ISO? for Geo and non-geo?** + +Geospatial metadata on Data.gov is converted to ISO if it’s not already provided as ISO. If the metadata is provided to Data.gov in CSDGM format, the source CSDGM metadata record will be available to users, along with the converted ISO metadata record. The common metadata format across Data.gov is a data model specific to CKAN, but all metadata is also available as DCAT RDF and Schema.org microdata. Data.gov is looking into providing other common metadata schemas across the site including the current Project Open Data schema which is a profile of DCAT using JSON-LD. + +**Seems an easy approach for the system to check for the geographic extent metadata element to identify geospatial data. Can this be expedited? Better for one solution that works for all then the temp theme keyword solution that requires work from all.** + +This has been suggested in the past, but it was decided that simply providing geospatial extent would not serve as an accurate indicator for whether something should be included as part of geoplatform.gov. You can see the discussion at [https://github.com/project-open-data/project-open-data.github.io/issues/303](https://github.com/project-open-data/project-open-data.github.io/issues/303) + +**Do I understand correctly that you are going to automate CSDGM/ISO to JSON transform and add the auto-detect for geographic information? If so, why not wait for these solutions versus having all metadata producers to dedicate such effort to a temporary fixes (create two records and add ‘geospatial’ theme keyword)?** + +Data.gov does not and will not be providing any transformations from CSDGM/ISO to Project Open Data JSON nor will it be relying on those transformations for data.gov’s purposes. However, as part of the OMB policy, all metadata will need to be provided as JSON including metadata that is currently provided as CSDGM/ISO. Data.gov does help maintain the CKAN extension for generating Project Open Data JSON (ckanext-datajson) and this can be used to provide automated conversion from CSDGM/ISO metadata. We are working to coordinate with geospatial agencies interested in using this extension. + +**Can you tell us the source of the CSDGM validation schema that is currently being used to validate records being harvested by data.gov? We are having some problems understanding why certain records are ‘failing’ validation, and the data.gov harvest report error messages are very difficult to decipher in many cases, even by experienced metadata creators.** + +The metadata is not validated as CSDGM. It is converted to ISO 19115 then validated against the ISO 19115 schema. CSDGM metadata is transformed to ISO using the following XSLT: [https://github.com/GSA/ckanext-geodatagov/blob/master/conversiontool/fgdc2iso/fgdcrse2iso19115-2.xslt](https://github.com/GSA/ckanext-geodatagov/blob/master/conversiontool/fgdc2iso/fgdcrse2iso19115-2.xslt) + +**What if I need help getting my geospatial metadata into Data.gov and GeoPlatform.gov?** + +The FGDC has assistance available if you [email USGS.gov](mailto:geodata@usgs.gov). They will also coordinate with the Data.gov team to help address your issue if needed. If you have specific metadata questions, [contact FGDC via email](mailto:fgdc@fgdc.gov). + +### Non-federal Data + +**What are the advantages of federating my local government’s open data to Data.gov?** + +Federating your local open government data on Data.gov makes it more discoverable by Data.gov visitors as well as folks using search engines powered by schema.org. It also makes it easier for people to discover similar datasets across different levels of government, e.g., a citizen can find data about her location from city, state, and federal sources in one place. + +**If non-federal data is being shared through Data.gov, is there someone that can help validate that the posted data policy/terms of use are in compliance?** + +We make sure that non-federal sources have terms of use/data policies so that we can make it clear to end users that those datasets are governed by the terms of use/data policies of the non-federal entity (state, city, county, etc.) and not the federal policies. + +**Can you address data repositories that are federally funded but not hosted at the agency itself? Can they be harvested directly by data.gov?** + +Yes. + +**If non-federal metadata is shared with the NSGIC GIS Inventory, is it then harvested by data.gov?** + +Yes, the NSGIC GIS Inventory (GISI)is a Data.gov registered harvest sources. From 911724cfe59c3e87b4cd370e0fe5afed3884c8a9 Mon Sep 17 00:00:00 2001 From: Jeremy Zilar Date: Tue, 7 Nov 2017 20:40:28 -0500 Subject: [PATCH 02/15] Fixing content that was not converted to markdown --- content/resources/inventory-data-gov-guide.md | 941 ++++++------------ 1 file changed, 320 insertions(+), 621 deletions(-) diff --git a/content/resources/inventory-data-gov-guide.md b/content/resources/inventory-data-gov-guide.md index 88eaf14348..46292f2952 100644 --- a/content/resources/inventory-data-gov-guide.md +++ b/content/resources/inventory-data-gov-guide.md @@ -9,7 +9,7 @@ authors: * [Introduction](#introduction) * [Features](#features) - * [Using inventory.data.gov](#using-inventory-data-gov) + * [Using inventory.data.gov](#using-inventory-data-gov) * [Creating a User Account](#creating-user-account) * [Using inventory.data.gov to manage datasets](#manage-datasets) * [Adding a Dataset](#add-dataset) @@ -18,623 +18,322 @@ authors: * [Dataset Hosting](#dataset-hosting) * [Webinar on inventory.data.gov](#webinar) -

- Introduction -

- -[Inventory.data.gov
](http://inventory.data.gov/) is a data management tool established in 2013 by the Data.gov Program Management Office (PMO) in what is now the Technology Transformation Service of the U.S. General Services Administration (GSA). Inventory.data.gov supports the implementation of the 2013 Federal [Open Data Policy](http://www.whitehouse.gov/sites/default/files/omb/memoranda/2013/m-13-13.pdf) (M-13-13) by providing all of the relevant metadata fields and export formats required for agencies to have their data harvested by Data.gov and to comply with the Federal Open Data Policy. Inventory.data.gov is not required to be used by all agencies, but rather offered in order to assist agencies that do not have another solution for creating and maintaining data inventories.

- -

- The platform is primarily used to generate two different data.json files for each agency, one representing the Unredacted Inventory / Enterprise Data Inventory (EDI) that contains unredacted datasets and another representing the Redacted Inventory / Public Data Listing (PDL) that contains datasets with redactions as agency indicated. The Unredacted Inventory/EDI file is a comprehensive inventory for an agency. This file is sent directly to omb.max.gov and not publicly accessed. The Redacted Inventory/PDL file (often referred to as data.json) is made public and is posted on agency.gov/data.json and harvested by the Data.gov catalog. -

- -

- The Data.gov catalog is based on CKAN (Comprehensive Knowledge Archive Network), an open source technology that powers many government open data sites. Inventory.data.gov is a separate instance of CKAN hosted at GSA on the same infrastructure as the Data.gov catalog. To avoid confusion, neither site should simply be referred to as the “CKAN site”, but instead by the full URL.

- -

- This guide describes the features available through inventory.data.gov and provides instructions for agencies interested in using inventory.data.gov for dataset management. At the current level of usage, Data.gov/GSA has been able to provide inventory.data.gov to interested agencies at no cost. This could change in the future with expanded usage and services.

- -

- Inventory.data.gov as a dataset management system requires a user account and is not publicly accessible (with the exception of a few datasets that are hosted on inventory.data.gov, discussed in more detail below). Inventory.data.gov allows the registered users to manage the datasets for their agency only. -

- -

- Features -

- -

- Inventory.data.gov provides the following features for dataset management/Open Data Policy compliance purposes: -

- - - -

- Using inventory.data.gov -

- -

- Once an agency has consulted with the Data.gov PMO and has decided to use inventory.data.gov for dataset management, the next steps are: -

- -
    -
  1. - Setting up an “organization” on inventory.data.govFirst, the agency should decide how they want to present their structure within inventory.data.gov. An agency could make the “organization” the entire agency (for example, make the entire Department of Veterans Affairs one “organization). In that case, everyone with a user account associated to VA on inventory.data.gov would be able to view, add, edit or delete datasets for all of VA within inventory.data.gov. An agency could create an “organization” for sub-agencies, for instance creating an organization for the Farm Service Agency and all the other units of the Department of Agriculture. In that scenario, a user account for Farm Service Agency could view, add, edit or delete datasets for the Farm Service Agency only.The Data.gov PMO will set up organizations in the manner requested by the agency.
- -
    -
  1. - Migrating existing datasets to inventory.data.govMost agencies have already created data inventories pursuant to the Open Data Policy. To begin using inventory.data.gov to manage the datasets, the Data.gov team will migrate the existing data listings to inventory.data.gov so that agencies can start editing from the current versions. For agencies that do not have data inventories under the Open Data Policy, but do have datasets listed in the current Data.gov catalog from the old Dataset Management System, the Data.gov PMO can migrate these old listings into inventory.data.gov for the agencies to update. -
  2. -
- -
    -
  1. - Creating user accounts for the agency representatives who will be using inventory.data.gov to manage the agency datasets.Inventory.data.gov, for dataset management purposes, is not publicly accessible. Users must have accounts on the system. There are three levels of accounts for any “organization” on inventory.data.gov: Administrator, Editor, and Member. For dataset management, agency users will either have an Administrator or Editor account. Agencies should appoint at least one Administrator. Administrators can add additional members from that agency (organization), including additional Administrators.Agencies should nominate the Administrator(s). The Data.gov PMO will create these accounts and ensure that the Administrators are familiar with the process of adding additional Administrators and Members for their agency (organization).
- -

- Creating a User Account -

- -

- Logins to use inventory.data.gov are integrated with OMB MAX login. You should log in to OMB MAX using your OMB MAX credentials on your first use of inventory.data.gov.

- -

- Two-factor authentication (2FA) is now required, so enable 2FA through the instructions on the OMB MAX login page. You can add a device by clicking on “Manage SMS 2-Factor Devices” under your profile settings. This is not necessary if you use your PIV/CAC card to log in to MAX; it is already considered 2FA.

- -

- {{< legacy-img src="/2015/01/600-Data.gov-page-MAX-Login.png" alt="Screen shot of MAX login page" >}} -

- -

- After you have logged in to OMB MAX, email us to let us know you have completed the initial login, in the email provide the organization name and access permission (Admin or Editor) required. We will then associate requested permissions to your account. On subsequent logins to inventory.data.gov (through OMB MAX), you should be able to use inventory.data.gov to manage metadata without further assistance.

- -

- Using inventory.data.gov to manage datasets -

- -

- Once you have an account as an Editor or Administrator for your agency (Organization), you can use inventory.data.gov to add or edit datasets for your Organization. -

- -

- Once you log in, you’ll see an activity page showing your recent activity on inventory.data.gov. -

- -

- {{< legacy-img src="/2015/01/600-x-376-recent-activity.jpg" alt="Screen capture of recent activity list" >}} -

- -

- The main tabs you will be using are “Datasets” and “Organizations.” -

- -

- Datasets: -

- -

- {{< legacy-img src="/2015/01/600-x-336-datasets.jpg" alt="Screen capture of Datasets tab" >}} -

- -

- Organizations: -

- -

- {{< legacy-img src="/2015/01/600-x-347-organizations.jpg" alt="Screen capture of Organizations tab" >}} -

- -

- When you click on the “Organizations” tab, you’ll go to the main Organizations page that lists all the Organizations in inventory.data.gov. To find your Organization, you can search for it in the search bar on the page. -

- -

- When you click on your Organization, all the datasets for the Organization will be displayed. -

- -

- There’s an Admin button on the upper right for Administrators. By clicking on it, you get the main information about the Organization, including a tab for “Members.” -

- -

- Clicking on “Members” brings up all the Members of the Organization who can add and edit datasets. Clicking on the Add Members button gives you the option of adding an existing user of inventory.data.gov to your Organization. Before you can add Members to your organization, the new Member has to complete initial log in on inventory.data.gov using the OMB MAX, 2FA or PIV authentication.

- -

- {{< legacy-img src="/2015/01/600-x-376-three-levels-of-access.jpg" alt="Screen capture showing access levels" >}} -

- -

- There are three levels of access. Member is read only access. Editor allows you to add and edit datasets. Admin can perform the same actions as an Editor and also add members to the Organization. -

- -

- Adding a Dataset -

- -

- Click on the Dataset tab. -

- -

- Then click on Add a Dataset. That takes you to the Create Dataset page. -

- -

- The Create Dataset page features the metadata following the Project Open Data metadata schema version 1.1. -

- -

- {{< legacy-img src="/2015/01/600-x-376-Adding-a-Dataset.jpg" alt="Screen capture for Adding a Dataset" >}} -

- -

- There are examples displayed in each field, and there is also pop-up help information for each field. Full details are on the Project Open Data page. Fields marked by the red asterisk are required.

- -

- There is validation for each field, so if you try to skip a required field or enter improper formats for a particular field, you’ll get an error message when you try to add the dataset. -

- -

- Entering Metadata -

- -

- Enter the Title for the dataset, as you would like the Title to be displayed.

- -

- The URL for the dataset will be generated automatically based on the Title. -

- -

- Enter the Description for the dataset as a summary about the dataset.

- -

- Enter the Keywords for the dataset. Your dataset will be included when a Data.gov user searches for those keywords.

- -

- Modified/Last Update – most recent date on which the dataset was changed, updated or modified -

- -

- For Publisher, enter the name of your agency. Use the Add sub-agency button to enter a sub-agency to more specifically identify the source of the dataset. These additional sub-agency fields are optional.

- -

- Access Level: Choose public, restricted public, or non-public. All type of “Access Level” datasets are now included in both Redacted Inventory (PDL) and Unredacted Inventory (EDI), The redaction feature is not available for public datasets, but is available for restricted public and non-public datasets. In editing metadata for restricted public and non-public datasets, the applicable individual fields can be fully or partially redacted.

- -

- See the Redaction and Partial Redaction feature for more information.

- -

- Bureau Code/Program Code. These are required fields following specific formats. Your agency POC should have this information. See the Project Open Data page for more information about these fields.

- -

- Contact Name/Email. Enter the name and email information for the contact for this dataset. Questions about this dataset will be referred to the contact listed. -

- -

- There are several Required If Applicable fields that are optional. Example text is provided in each field. -

- -

- {{< legacy-img src="/2015/10/579-x-276-common-core-metadata.jpg" alt="Screen capture of Required-if-applicable common core metadata" >}} -

- -

- Rights. You have the option to enter a short explanation for why the value in the Access Level field was selected here.

- -

- Meets Agency Data Quality. This field shows if the dataset meets your agency’s data quality standards if any apply. -

- -

- Please note that in the License field, if applicable, the URL for the license should be provided.

- -

- Spatial. If the dataset is about a specific location, enter that information in this field. -

- -

- Temporal. If the dataset covers a specific date range, enter that information following the format provided. -

- -

- Theme. Enter words for themes or categories. This supports search and faceted viewing of datasets. -

- -

- Data Dictionary. If there is a data dictionary or schema for the dataset, provide the URL here. -

- -

- Described by Type. Choose the data dictionary type from the formats listed. -

- -

- Accrual Periodicity (Frequency). Choose the frequency from the options listed. -

- -

- Conforms to (Data Standard). If there is an applicable data standard, enter the URL here. -

- -

- Landing Page (Homepage URL). If there is a landing page/home page associated with the dataset, enter the URL here. -

- -

- Language. The default language for datasets is English. If the dataset is presented in another language, select it here. -

- -

- Primary IT Investment UII. If there is IT Unique Investment Identifier associated with the dataset, enter it here. -

- -

- References (Related Documents). URLs for additional related resources can be entered here. Multiple URLs can be entered separated by commas. -

- -

- Issued (Release Date). Enter the release date in the date format provided. -

- -

- System of Records. If there is a Privacy Act System of Records Notice (SORN) associated with the dataset, enter the URL for the published SORN here. -

- -

- The last two fields are to indicate if this dataset is part of a collection or if you want to designate this dataset as the “parent” of a collection. -

- -

- Is parent. Yes or No. If you want to make this dataset the “parent” of a collection, choose yes. Otherwise choose no. -

- -

- {{< legacy-img src="/2015/01/600-x-130-parent-options.jpg" alt="Screen capture of parent fields" >}} -

- -

- Note that once you make a dataset a “parent” dataset, it cannot be a “child” dataset, or part of another collection of datasets. After a dataset is selected as parent, this dataset will be available for the subsequent datasets in this organization to choose a parent dataset (for isPartOf) -

- -

- If you chose No and made the dataset a non-parent dataset, you would then be able to choose in the next field (Parent dataset) – the datasets that you want to make this dataset as part of a collection, note that this field is optional and can be left empty if you would like the dataset to be an independent dataset.

- -

- Once you are finished entering the metadata, hit Next: Add Data on the bottom right.

- -

- {{< legacy-img src="/2015/01/251-x-83-Next-Add-Data-button.jpg" alt="Screen capture of Next: Add Data button" >}} -

- -

- You are then taken to another screen with more fields about accessing the dataset. -

- -

- For most inventory.data.gov users, the dataset is actually hosted on the agency.gov site, so you will hit the “Link to a file” radio button and provide the URL. If you would like to provide a link to API, choose the “Link to an API” radio button, provide the URL, and enter the value “API” in the format field, to provide a web page URL where dataset information is available user the radio button option “Access URL.” -

- -

- {{< legacy-img src="/2015/10/600-x-512-add-a-new-resource-dataset.jpg" alt="Screen cap of Add a New Resource screen." >}} -

- -

- Provide a description of the dataset.

- -

- Media type. Choose the relevant format. -

- -

- Format. Type in the format in this field. (API value for “Link to API” option) -

- -

- Draft Feature -

- -

- While creating datasets in inventory.data.gov, users can set the “Publishing Status” value as “Draft,” which indicates that the dataset is still being worked on or reviewed. Any dataset saved with “Draft” status will not be included in the generated Redacted/Unredacted data.json files. The draft feature allows users to enter preliminary data and finalize the dataset at a later point by changing the “Publishing Status” value to “Published.” -

- -

- {{< legacy-img src="/2015/01/unnamed-1.jpg" alt="unnamed-1" >}} -

- -

- Clone Feature -

- -

- Users can create a clone of a particular dataset by clicking on the “Clone” button displayed on the top right of the dataset page. The Clone feature is useful if you are entering lots of datasets manually, and most of the metadata like Bureau Code, Program Code, Publisher Name, Contact Name etc. is the same for all of them. -

- -

- After you click on the Clone button, make sure to correct the Dataset title and Unique Identifier at a minimum on the cloned dataset, and review all the other field values to make sure they are correct before updating the dataset. -

- -

- Please note that resources like the CSV file uploaded or linked to the original dataset will not be cloned as it is expected that resources will be different for the cloned datasets. Resources need to be entered manually for the cloned datasets. -

- -

- {{< legacy-img src="/2015/01/unnamed-2.jpg" alt="unnamed-2" >}} -

- -

- Exporting Data.json -

- -

- Once you have finished entering and editing the metadata for your organization, you are ready to export the datasets to generate the data.json files which comply with Project Open Data Schema 1.1 version. This is done from the main Organization page, by clicking on your agency Organization icon on the left or by clicking on your agency Organization name on the top of the page. -

- -

- There are three choices at the top. -

- -

- {{< legacy-img src="/2015/01/600-x-162-exporting-data-json.jpg" alt="Screen capture of button choices" >}} -

- -

- The Redacted Inventory button (formerly labeled Public Data Listing) will give you the redacted inventory of all of the datasets from your organization. This is the listing that you will post on your agency.gov/data.json and will be harvested by the Data.gov catalog to populate your organization’s listing in Data.gov catalog. -

- -

- The Unredacted Inventory (formerly labeled Enterprise Data Inventory) button will give you a file of all of your organization’s datasets without any redactions. This is the file that is submitted to OMB and is not publicly shared unless an agency has made the decision to share it. -

- -

- The Export Drafts button will export all datasets that are currently in “draft” status to a file. -

- -

- The process for each is the same. Depending on your browser, clicking the button will either give you a prompt to open or save the file or it will be downloaded automatically. -

- -

- {{< legacy-img src="/2015/10/600-x-453-GSA-153-datasets-found.jpg" alt="Screen capture of 153 datasets found for GSA" >}} -

- -

- The file that is delivered is a zip file. It contains both the data.json and (if errors were found) an errorlog.txt and errors.json file. -

- - - - - -
- It is very important to make sure that all datasets were successfully exported when downloading the Unredacted (EDI) or Redacted (PDL) data.json file. This can be done by checking to make sure that an errorlog.txt file was not included in the zip file. If there are errors in the errorlog.txt file, those need to be reviewed and resolved before posting the Redacted (PDL) data.json file in the agency.gov/data.json location. This is critical. Ignoring this step can potentially remove datasets from data.gov since they will no longer be present in the data.json file.
Metadata that is directly entered into inventory.data.gov will be validated when the information is first entered, however some invalid metadata may have been imported directly into inventory.data.gov and will not be checked until this final export. The data.gov team is aware that this is not very user friendly or streamlined way of indicating which datasets need to be fixed and is in the process of improving inventory.data.gov so that these errors can be viewed directly on the inventory.data.gov website rather than as a separate log file. However, for now it is very important to review this file as explained earlier. -
- -

- The errorlog.txt will describe the datasets that did not validate against the Project Open Data Schema as needed to be included in the data.json file. If there were no errors encountered in creating the data.json, then errorlog.txt file will not appear in the zip file. -

- -

- {{< legacy-img src="/2015/01/600-x-326-error-log-location.jpg" alt="Screen capture of error log location" >}} -

- -

- {{< legacy-img src="/2015/01/600-x-391-error-log.jpg" alt="Screen capture of error log" >}} -

- -

- The error log indicates the type of problem, the dataset ID, and the dataset title, so that you can find the problematic dataset in inventory.data.gov and fix the problem. Search for the dataset, choose Edit, and make the required changes. -

- -

- Once you fix the errors, go back to the Organization page and re-download the Redacted Inventory (PDL) or Unredacted Inventory (EDI) datasets, and you should get a zip file with just the data.json and no error log. -

- -

- For the Unredacted Inventory (EDI), the data.json file can be submitted to OMB Max. For the Redacted Inventory (PDL), the data.json will need to be posted on the agency’s website at agency.gov/data.json in order to be harvested by the Data.gov catalog. If the data.json is being posted on the agency.gov website for the first time, please contact the Data.gov team via email to set the harvest source on catalog.data.gov.

- -

- Automating data.json downloads by agencies -

- -

- Rather than log in to inventory.data.gov and manually click the buttons to download the Redacted Inventory (PDL) and Unredacted Inventory (EDI) files, it is possible to use the API and your API key in order to automate the process of adding the data.json file to the agency website. -

- -

- Here’s what the request would look like using the curl-like tool httpie

- -

- Redacted Inventory (PDL) -

- -

- http -v POST https://inventory.data.gov/organization/[organization-id]/redacted.json Authorization:xxx-your-api-key-xxx Content-Type:application/x-www-form-urlencoded Cookie:auth_tkt=foo -

- -

- Unredacted Inventory (EDI) -

- -

- http -v POST https://inventory.data.gov/organization/[organization-id]/unredacted.json Authorization:xxx-your-api-key-xxx Content-Type:application/x-www-form-urlencoded Cookie:auth_tkt=foo -

- -

- You’d need to replace xxx-your-api-key-xxx with your actual API key which you can get in the bottom of the left sidebar of your user account, e.g. https://inventory.data.gov/user/[username] -

- -

- The above process downloads the Redacted.zip file containing the data.json and errorlog.txt. If there are any errors, you should review and correct them. When you reach a point where there is no errorlog.txt file, you can upload the data.json file to the agency.gov/data.json public data listing for data.gov catalog harvesting purposes. It is recommended that you manually review and upload the data.json file a few times, before completely automating the entire process to ensure there are no errors that might be excluding datasets from the data.json file (potentially removing existing datasets from data.gov). -

- -

- {{< legacy-img src="/2015/01/600-x-376-Dataset-Hosting.jpg" alt="Screen capture of dataset hosting" >}} -

- -

- Dataset Hosting -

- -

- The primary use of inventory.data.gov is to provide a dataset management system for agencies that need a tool to meet the requirements of the Open Data Policy. It is a separate instance of CKAN and requires a user account and password.

- -

- Data.gov uses inventory.data.gov for a second purpose. From 2011-2014, Data.gov featured data hosting using the Socrata platform at explore.data.gov. About a dozen agencies used explore.data.gov to host their datasets directly on Data.gov. At the conclusion of the Socrata task order in 2014, several agencies indicated a continuing need for hosting capability for these datasets (approximately 100). To accommodate these agencies, the Data.gov PMO migrated the datasets previously hosted at explore.data.gov to a hosting capability using the CKAN DataStore extension, on the CKAN instance at inventory.data.gov. As a result, the access URLs for this small number of datasets begin with inventory.data.gov and are publicly accessible without needing a user account.

- -

- For the time being, the Data.gov PMO will continue to provide this hosting capability on inventory.data.gov while it remains small scale and does not require significant additional Data.gov resources.

- -

- Webinar on inventory.data.gov -

- -

- Data.gov, working with DigitalGov University, presented a webinar for agencies interested in using inventory on December 16, 2014. For more information, consult the recording of the webinar.

- -

- [youtube=http://www.youtube.com/watch?v=ciLYjDsF4lo&w=600] -

- -

- Here are some questions and answers raised during the webinar: -

- -
    -
  1. - If your agency already has an admin listed, do you need their approval to be appointed as an admin? -
  2. -
- -

- If someone at your agency already has an admin account on inventory.data.gov, that person can grant you an admin account. There are no limits on how many admin accounts an agency can have. -

- -
    -
  1. - Who do we email to request our organization be created? -
  2. -
- -

- Contact the DataGov team via email.

- -
    -
  1. - Who should I contact to get my organization approved/created? -
  2. -
- -

- When you contact the Data.gov team (see contact info above) about using inventory.data.gov, we can create the organization for you. -

- -
    -
  1. - For the record to be identified as geospatial, does “geospatial” go in Theme (Category) -
  2. -
- -

- Yes. That designation also ensures that record is included in geoplatform.gov. -

- -
    -
  1. - Is there a way to import an existing data.json into inventory.data.gov? -
  2. -
- -

- For importing existing data.json, please contact the Data.gov team and we will work with you to migrate into inventory.data.gov. -

- -
    -
  1. - How do we know our agency POC? -
  2. -
- -

- For Data.gov/Open Data Policy purposes, if you don’t know your agency’s POC, contact the Data.gov team and we will connect you. You can also find your agency POC at https://project-open-data.cio.gov/points-of-contact/ -

- -
    -
  1. - How does this work with Data.gov? -
  2. -
- -

- Inventory.data.gov is a separate system from the Data.gov catalog, using the same technology as the catalog (CKAN) to provide a service that agencies can use to create and maintain data inventories that are ultimately harvested by the Data.gov catalog from agency.gov/data.json -

- -
    -
  1. - Can we add custom core metadata fields? -
  2. -
- -

- Yes, but not through the user interface on inventory.data.gov currently. Please contact the Data.gov team if you have this situation. -

- -
    -
  1. - Does search works only on dataset name and description or the actual content as well? -
  2. -
- -

- Search does not cover the actual content. -

- -
    -
  1. - What is the difference between public and restricted-public? -
  2. -
- -

- See the “access level” field in Project Open Data: The degree to which this dataset could be made publicly-available, regardless of whether it has been made available. Choices: public (Data asset is or could be made publicly available to all without restrictions), restricted public (Data asset is available under certain use restrictions), or non-public (Data asset is not available to members of the public).

- -
    -
  1. - Can you clarify the difference between central and inventory CKAN? It seems like many datasets are using the datastore feature on inventory.data.gov – is this no longer the policy and inventory is mainly for creating data.json files? -
  2. -
- -

- “Central CKAN” was a term used in 2014 to refer to what we call inventory.data.gov – it is one and the same. This webinar focused on the primary purpose of inventory.data.gov – to provide a dataset management system to help agencies create and maintain their data inventories and arrive at a data.json. We do use inventory.data.gov for a second purpose – to host a small number of datasets for agencies that needed a hosting capability at the conclusion of the Socrata platform contract that Data.gov had until July 2014. -

- -
    -
  1. - If inventory.data.gov is not intended for geospatial metadata, what system is? Geoplatform.gov? If we have standards-compliant (ISO, FGDC, etc.) metadata already published, can we import these metadata fields? Or must we enter them manually? -
  2. -
- -

- Inventory.data.gov in its current form is not designed to handle geospatial metadata. As discussed in our harvesting }}">documentation, Data.gov continues to harvest geospatial datasets directly from geospatial harvest sources. Agencies should have the remainder of their agencies in a “non-geospatial” data.json that the Data.gov catalog can harvest.

- -
    -
  1. - So the system does not push errors to you; you have to search for them? -
  2. -
- -

- When you are ready to export your agency’s datasets to data.json and hit the button on inventory.data.gov, you will be prompted to download a zip file containing the data.json. If there are errors, the zip file will also contain an error log containing information about the datasets with errors. We are working on improving validation within inventory.data.gov so that more errors are identified as you are adding and editing datasets, before you reach the export stage. -

\ No newline at end of file +## Introduction + +[Inventory.data.gov](http://inventory.data.gov/) is a data management tool established in 2013 by the Data.gov Program Management Office (PMO) in what is now the Technology Transformation Service of the U.S. General Services Administration (GSA). Inventory.data.gov supports the implementation of the 2013 Federal [Open Data Policy](http://www.whitehouse.gov/sites/default/files/omb/memoranda/2013/m-13-13.pdf) (M-13-13) by providing all of the relevant metadata fields and export formats required for agencies to have their data harvested by Data.gov and to comply with the Federal Open Data Policy. Inventory.data.gov is not required to be used by all agencies, but rather offered in order to assist agencies that do not have another solution for creating and maintaining data inventories.

+ +The platform is primarily used to generate two different data.json files for each agency, one representing the Unredacted Inventory / Enterprise Data Inventory (EDI) that contains unredacted datasets and another representing the Redacted Inventory / Public Data Listing (PDL) that contains datasets with redactions as agency indicated. The Unredacted Inventory/EDI file is a comprehensive inventory for an agency. This file is sent directly to omb.max.gov and not publicly accessed. The Redacted Inventory/PDL file (often referred to as data.json) is made public and is posted on agency.gov/data.json and harvested by the Data.gov catalog. + +[The Data.gov catalog](http://catalog.data.gov/) is based on [CKAN](http://ckan.org/) (Comprehensive Knowledge Archive Network), an open source technology that powers many government open data sites. [Inventory.data.gov](http://inventory.data.gov/) is a separate instance of CKAN hosted at GSA on the same infrastructure as the Data.gov catalog. To avoid confusion, neither site should simply be referred to as the “CKAN site”, but instead by the full URL. + +This guide describes the features available through inventory.data.gov and provides instructions for agencies interested in using inventory.data.gov for dataset management. At the current level of usage, Data.gov/GSA has been able to provide inventory.data.gov to interested agencies at no cost. This could change in the future with expanded usage and services. + +Inventory.data.gov as a dataset management system requires a user account and is not publicly accessible (with the exception of a few datasets that are hosted on inventory.data.gov, discussed in more detail below). Inventory.data.gov allows the registered users to manage the datasets for their agency only. + +## Features + +Inventory.data.gov provides the following features for dataset management/Open Data Policy compliance purposes: + +* Existing data.json and enterprise data inventory metadata can be imported directly into inventory.data.gov. +* User group organizations can be created either for an entire agency or for individual bureaus so that users and permissions can be managed and delegated as needed by the agency +* A platform to manage public/non-public datasets: create new entries, modify existing ones, and delete any datasets as needed +* Unredacted Inventory / Enterprise Data Inventory (EDI) and Redacted Inventory / Public Data Listing (PDL) functionality exports the successfully validated datasets in the form of a data.json file complying to the POD Schema 1.1 version. Error records are provided in a log file for review and resolution by agency users. + +## Using inventory.data.gov + +Once an agency has consulted with the Data.gov PMO and has decided to use inventory.data.gov for dataset management, the next steps are: + +1. Setting up an “organization” on inventory.data.govFirst, the agency should decide how they want to present their structure within inventory.data.gov. An agency could make the “organization” the entire agency (for example, make the entire Department of Veterans Affairs one “organization). In that case, everyone with a user account associated to VA on inventory.data.gov would be able to view, add, edit or delete datasets for all of VA within inventory.data.gov. An agency could create an “organization” for sub-agencies, for instance creating an organization for the Farm Service Agency and all the other units of the Department of Agriculture. In that scenario, a user account for Farm Service Agency could view, add, edit or delete datasets for the Farm Service Agency only.The Data.gov PMO will set up organizations in the manner requested by the agency. + +1. Migrating existing datasets to inventory.data.govMost agencies have already created data inventories pursuant to the Open Data Policy. To begin using inventory.data.gov to manage the datasets, the Data.gov team will migrate the existing data listings to inventory.data.gov so that agencies can start editing from the current versions. For agencies that do not have data inventories under the Open Data Policy, but do have datasets listed in the current Data.gov catalog from the old Dataset Management System, the Data.gov PMO can migrate these old listings into inventory.data.gov for the agencies to update. + +1. Creating user accounts for the agency representatives who will be using inventory.data.gov to manage the agency datasets.Inventory.data.gov, for dataset management purposes, is not publicly accessible. Users must have accounts on the system. There are three levels of accounts for any “organization” on inventory.data.gov: Administrator, Editor, and Member. For dataset management, agency users will either have an Administrator or Editor account. Agencies should appoint at least one Administrator. Administrators can add additional members from that agency (organization), including additional Administrators.Agencies should nominate the Administrator(s). The Data.gov PMO will create these accounts and ensure that the Administrators are familiar with the process of adding additional Administrators and Members for their agency (organization). + +### Creating a User Account + +Logins to use inventory.data.gov are integrated with [OMB MAX login](https://login.max.gov/cas/login?service=https%3A%2F%2Fmax.gov%2Fmaxportal%2Fsa%2Flogin.action%3Bjsessionid%3D994E6FE4CC968B89D599672C9F9DDAAE). You should log in to OMB MAX using your OMB MAX credentials on your first use of inventory.data.gov. + +Two-factor authentication (2FA) is now required, so enable 2FA through the instructions on the [OMB MAX login](https://login.max.gov/cas/login?service=https%3A%2F%2Fmax.gov%2Fmaxportal%2Fsa%2Flogin.action%3Bjsessionid%3D994E6FE4CC968B89D599672C9F9DDAAE) page. You can add a device by clicking on “Manage SMS 2-Factor Devices” under your profile settings. This is not necessary if you use your PIV/CAC card to log in to MAX; it is already considered 2FA. + +{{< legacy-img src="/2015/01/600-Data.gov-page-MAX-Login.png" alt="Screen shot of MAX login page" >}} + +After you have logged in to OMB MAX, [email us](mailto:datagov@gsa.gov) to let us know you have completed the initial login, in the email provide the organization name and access permission (Admin or Editor) required. We will then associate requested permissions to your account. On subsequent logins to inventory.data.gov (through OMB MAX), you should be able to use inventory.data.gov to manage metadata without further assistance. + +### Using inventory.data.gov to manage datasets + +Once you have an account as an Editor or Administrator for your agency (Organization), you can use inventory.data.gov to add or edit datasets for your Organization. + +Once you log in, you’ll see an activity page showing your recent activity on inventory.data.gov. + +{{< legacy-img src="/2015/01/600-x-376-recent-activity.jpg" alt="Screen capture of recent activity list" >}} + +The main tabs you will be using are “Datasets” and “Organizations.” + +Datasets: + +{{< legacy-img src="/2015/01/600-x-336-datasets.jpg" alt="Screen capture of Datasets tab" >}} + +Organizations: + +{{< legacy-img src="/2015/01/600-x-347-organizations.jpg" alt="Screen capture of Organizations tab" >}} + +When you click on the “Organizations” tab, you’ll go to the main Organizations page that lists all the Organizations in inventory.data.gov. To find your Organization, you can search for it in the search bar on the page. + +When you click on your Organization, all the datasets for the Organization will be displayed. + +There’s an Admin button on the upper right for Administrators. By clicking on it, you get the main information about the Organization, including a tab for “Members.” + +Clicking on “Members” brings up all the Members of the Organization who can add and edit datasets. Clicking on the Add Members button gives you the option of adding an existing user of inventory.data.gov to your Organization. Before you can add Members to your organization, the new Member has to complete initial log in on inventory.data.gov using the OMB MAX, 2FA or PIV authentication. + +{{< legacy-img src="/2015/01/600-x-376-three-levels-of-access.jpg" alt="Screen capture showing access levels" >}} + +There are three levels of access. Member is read only access. Editor allows you to add and edit datasets. Admin can perform the same actions as an Editor and also add members to the Organization. + +### Adding a Dataset + +Click on the Dataset tab. + +Then click on Add a Dataset. That takes you to the Create Dataset page. + +The Create Dataset page features the metadata following the [Project Open Data](https://project-open-data.cio.gov/v1.1/schema/) metadata schema version 1.1. + +{{< legacy-img src="/2015/01/600-x-376-Adding-a-Dataset.jpg" alt="Screen capture for Adding a Dataset" >}} + +There are examples displayed in each field, and there is also pop-up help information for each field. Full details are on the [Project Open Data](https://project-open-data.cio.gov/v1.1/schema/) page. Fields marked by the red asterisk are required. + +There is validation for each field, so if you try to skip a required field or enter improper formats for a particular field, you’ll get an error message when you try to add the dataset. + +**Entering Metadata** + +Enter the **Title** for the dataset, as you would like the Title to be displayed. + +The URL for the dataset will be generated automatically based on the Title. + +Enter the **Description** for the dataset as a summary about the dataset. + +Enter the **Keywords** for the dataset. Your dataset will be included when a Data.gov user searches for those keywords. + +**Modified/Last Update** – most recent date on which the dataset was changed, updated or modified + +For **Publisher**, enter the name of your agency. Use the Add sub-agency button to enter a sub-agency to more specifically identify the source of the dataset. These additional sub-agency fields are optional. + +**Access Level**: Choose public, restricted public, or non-public. All type of “Access Level” datasets are now included in both Redacted Inventory (PDL) and Unredacted Inventory (EDI), The redaction feature is not available for public datasets, but is available for restricted public and non-public datasets. In editing metadata for restricted public and non-public datasets, the applicable individual fields can be fully or partially redacted. + +See the [Redaction and Partial Redaction feature](https://github.com/GSA/data.gov/wiki/Intentory.data.gov-User-Guide-for-Redaction-and-Partial-Redaction-Feature) for more information. + +**Bureau Code/Program Code**. These are required fields following specific formats. Your agency POC should have this information. See the [Project Open Data](https://project-open-data.cio.gov/v1.1/schema/) page for more information about these fields. + +**Contact Name/Email**. Enter the name and email information for the contact for this dataset. Questions about this dataset will be referred to the contact listed. + +There are several Required If Applicable fields that are optional. Example text is provided in each field. + +{{< legacy-img src="/2015/10/579-x-276-common-core-metadata.jpg" alt="Screen capture of Required-if-applicable common core metadata" >}} + +**Rights**. You have the option to enter a short explanation for why the value in the **Access Level** field was selected here. + +**Meets Agency Data Quality**. This field shows if the dataset meets your agency’s data quality standards if any apply. + +Please note that in the **License** field, if applicable, the URL for the license should be provided. + +**Spatial**. If the dataset is about a specific location, enter that information in this field. + +**Temporal**. If the dataset covers a specific date range, enter that information following the format provided. + +**Theme**. Enter words for themes or categories. This supports search and faceted viewing of datasets. + +**Data Dictionary**. If there is a data dictionary or schema for the dataset, provide the URL here. + +**Described by Type**. Choose the data dictionary type from the formats listed. + +**Accrual Periodicity (Frequency)**. Choose the frequency from the options listed. + +**Conforms to (Data Standard)**. If there is an applicable data standard, enter the URL here. + +**Landing Page (Homepage URL)**. If there is a landing page/home page associated with the dataset, enter the URL here. + +**Language**. The default language for datasets is English. If the dataset is presented in another language, select it here. + +**Primary IT Investment UII.** If there is IT Unique Investment Identifier associated with the dataset, enter it here. + +**References (Related Documents)**. URLs for additional related resources can be entered here. Multiple URLs can be entered separated by commas. + +**Issued (Release Date)**. Enter the release date in the date format provided. + +**System of Records.** If there is a Privacy Act System of Records Notice (SORN) associated with the dataset, enter the URL for the published SORN here. + +The last two fields are to indicate if this dataset is part of a collection or if you want to designate this dataset as the “parent” of a collection. + +**Is parent**. Yes or No. If you want to make this dataset the “parent” of a collection, choose yes. Otherwise choose no. + +{{< legacy-img src="/2015/01/600-x-130-parent-options.jpg" alt="Screen capture of parent fields" >}} + +Note that once you make a dataset a “parent” dataset, it cannot be a “child” dataset, or part of another collection of datasets. After a dataset is selected as parent, this dataset will be available for the subsequent datasets in this organization to choose a parent dataset (for isPartOf) + +If you chose No and made the dataset a non-parent dataset, you would then be able to choose in the next field (**Parent dataset**) – the datasets that you want to make this dataset as part of a collection, note that this field is optional and can be left empty if you would like the dataset to be an independent dataset. + +Once you are finished entering the metadata, hit **Next: Add Data** on the bottom right. + +{{< legacy-img src="/2015/01/251-x-83-Next-Add-Data-button.jpg" alt="Screen capture of Next: Add Data button" >}} + +You are then taken to another screen with more fields about accessing the dataset. + +For most inventory.data.gov users, the dataset is actually hosted on the agency.gov site, so you will hit the “Link to a file” radio button and provide the URL. If you would like to provide a link to API, choose the “Link to an API” radio button, provide the URL, and enter the value “API” in the format field, to provide a web page URL where dataset information is available user the radio button option “Access URL.” + +{{< legacy-img src="/2015/10/600-x-512-add-a-new-resource-dataset.jpg" alt="Screen cap of Add a New Resource screen." >}} + +Provide a **description** of the dataset. + +**Media type**. Choose the relevant format. + +**Format**. Type in the format in this field. (API value for “Link to API” option) + +### Draft Feature + +While creating datasets in [inventory.data.gov](http://inventory.data.gov/), users can set the “Publishing Status” value as “Draft,” which indicates that the dataset is still being worked on or reviewed. Any dataset saved with “Draft” status will not be included in the generated Redacted/Unredacted data.json files. The draft feature allows users to enter preliminary data and finalize the dataset at a later point by changing the “Publishing Status” value to “Published.” + +{{< legacy-img src="/2015/01/unnamed-1.jpg" alt="unnamed-1" >}} + +### Clone Feature + +Users can create a clone of a particular dataset by clicking on the “Clone” button displayed on the top right of the dataset page. The Clone feature is useful if you are entering lots of datasets manually, and most of the metadata like Bureau Code, Program Code, Publisher Name, Contact Name etc. is the same for all of them. + +After you click on the Clone button, make sure to correct the Dataset title and Unique Identifier at a minimum on the cloned dataset, and review all the other field values to make sure they are correct before updating the dataset. + +Please note that resources like the CSV file uploaded or linked to the original dataset will not be cloned as it is expected that resources will be different for the cloned datasets. Resources need to be entered manually for the cloned datasets. + +{{< legacy-img src="/2015/01/unnamed-2.jpg" alt="unnamed-2" >}} + +### Exporting Data.json + +Once you have finished entering and editing the metadata for your organization, you are ready to export the datasets to generate the data.json files which comply with Project Open Data Schema 1.1 version. This is done from the main Organization page, by clicking on your agency Organization icon on the left or by clicking on your agency Organization name on the top of the page. + +There are three choices at the top. + +{{< legacy-img src="/2015/01/600-x-162-exporting-data-json.jpg" alt="Screen capture of button choices" >}} + +The Redacted Inventory button (formerly labeled Public Data Listing) will give you the redacted inventory of all of the datasets from your organization. This is the listing that you will post on your agency.gov/data.json and will be harvested by the Data.gov catalog to populate your organization’s listing in Data.gov catalog. + +The Unredacted Inventory (formerly labeled Enterprise Data Inventory) button will give you a file of all of your organization’s datasets without any redactions. This is the file that is submitted to OMB and is not publicly shared unless an agency has made the decision to share it. + +The Export Drafts button will export all datasets that are currently in “draft” status to a file. + +The process for each is the same. Depending on your browser, clicking the button will either give you a prompt to open or save the file or it will be downloaded automatically. + +{{< legacy-img src="/2015/10/600-x-453-GSA-153-datasets-found.jpg" alt="Screen capture of 153 datasets found for GSA" >}} + +The file that is delivered is a zip file. It contains both the data.json and (if errors were found) an errorlog.txt and errors.json file. + + + + + + + + + + + + + +
It is very important to make sure that all datasets were successfully exported when downloading the Unredacted (EDI) or Redacted (PDL) data.json file. This can be done by checking to make sure that an errorlog.txt file was not included in the zip file. If there are errors in the errorlog.txt file, those need to be reviewed and resolved before posting the Redacted (PDL) data.json file in the agency.gov/data.json location. This is critical. Ignoring this step can potentially remove datasets from data.gov since they will no longer be present in the data.json file. +Metadata that is directly entered into inventory.data.gov will be validated when the information is first entered, however some invalid metadata may have been imported directly into inventory.data.gov and will not be checked until this final export. The data.gov team is aware that this is not very user friendly or streamlined way of indicating which datasets need to be fixed and is in the process of improving inventory.data.gov so that these errors can be viewed directly on the inventory.data.gov website rather than as a separate log file. However, for now it is very important to review this file as explained earlier.
+ +The errorlog.txt will describe the datasets that did not validate against the Project Open Data Schema as needed to be included in the data.json file. If there were no errors encountered in creating the data.json, then errorlog.txt file will not appear in the zip file. + +{{< legacy-img src="/2015/01/600-x-326-error-log-location.jpg" alt="Screen capture of error log location" >}} + +{{< legacy-img src="/2015/01/600-x-391-error-log.jpg" alt="Screen capture of error log" >}} + +The error log indicates the type of problem, the dataset ID, and the dataset title, so that you can find the problematic dataset in inventory.data.gov and fix the problem. Search for the dataset, choose Edit, and make the required changes. + +Once you fix the errors, go back to the Organization page and re-download the Redacted Inventory (PDL) or Unredacted Inventory (EDI) datasets, and you should get a zip file with just the data.json and no error log. + +For the Unredacted Inventory (EDI), the data.json file can be submitted to OMB Max. For the Redacted Inventory (PDL), the data.json will need to be posted on the agency’s website at agency.gov/data.json in order to be harvested by the Data.gov catalog. If the data.json is being posted on the agency.gov website for the first time, please contact the Data.gov team via [email](mailto:datagov@gsa.gov) to set the harvest source on catalog.data.gov. + +### Automating data.json downloads by agencies + +Rather than log in to inventory.data.gov and manually click the buttons to download the Redacted Inventory (PDL) and Unredacted Inventory (EDI) files, it is possible to use the API and your API key in order to automate the process of adding the data.json file to the agency website. + +Here’s what the request would look like using the curl-like tool [httpie](http://www.httpie.org/) + +Redacted Inventory (PDL) + +http -v POST https://inventory.data.gov/organization/[organization-id]/redacted.json Authorization:xxx-your-api-key-xxx Content-Type:application/x-www-form-urlencoded Cookie:auth_tkt=foo + +Unredacted Inventory (EDI) + +http -v POST https://inventory.data.gov/organization/[organization-id]/unredacted.json Authorization:xxx-your-api-key-xxx Content-Type:application/x-www-form-urlencoded Cookie:auth_tkt=foo + +You’d need to replace xxx-your-api-key-xxx with your actual API key which you can get in the bottom of the left sidebar of your user account, e.g. https://inventory.data.gov/user/[username] + +The above process downloads the Redacted.zip file containing the data.json and errorlog.txt. If there are any errors, you should review and correct them. When you reach a point where there is no errorlog.txt file, you can upload the data.json file to the agency.gov/data.json public data listing for data.gov catalog harvesting purposes. It is recommended that you manually review and upload the data.json file a few times, before completely automating the entire process to ensure there are no errors that might be excluding datasets from the data.json file (potentially removing existing datasets from data.gov). + +{{< legacy-img src="/2015/01/600-x-376-Dataset-Hosting.jpg" alt="Screen capture of dataset hosting" >}} + +### Dataset Hosting + +The primary use of [inventory.data.gov](http://inventory.data.gov/) is to provide a dataset management system for agencies that need a tool to meet the requirements of the Open Data Policy. It is a separate instance of CKAN and requires a user account and password. + +Data.gov uses [inventory.data.gov](http://inventory.data.gov/) for a second purpose. From 2011-2014, Data.gov featured data hosting using the Socrata platform at [explore.data.gov](http://explore.data.gov/). About a dozen agencies used [explore.data.gov](http://explore.data.gov/) to host their datasets directly on Data.gov. At the conclusion of the Socrata task order in 2014, several agencies indicated a continuing need for hosting capability for these datasets (approximately 100). To accommodate these agencies, the Data.gov PMO migrated the datasets previously hosted at [explore.data.gov](http://explore.data.gov/) to a hosting capability using the CKAN [DataStore](http://docs.ckan.org/en/ckan-2.2/datastore.html) extension, on the CKAN instance at [inventory.data.gov](http://inventory.data.gov/). As a result, the access URLs for this small number of datasets begin with [inventory.data.gov](http://inventory.data.gov/) and are publicly accessible without needing a user account. + +For the time being, the Data.gov PMO will continue to provide this hosting capability on [inventory.data.gov](http://inventory.data.gov/) while it remains small scale and does not require significant additional Data.gov resources. + +## Webinar on inventory.data.gov + +Data.gov, working with DigitalGov University, presented a webinar for agencies interested in using inventory on December 16, 2014\. For more information, consult the recording of the [webinar](http://youtu.be/ciLYjDsF4lo). + +[youtube=http://www.youtube.com/watch?v=ciLYjDsF4lo&w=600] + +Here are some questions and answers raised during the webinar: + +1. If your agency already has an admin listed, do you need their approval to be appointed as an admin? + +If someone at your agency already has an admin account on inventory.data.gov, that person can grant you an admin account. There are no limits on how many admin accounts an agency can have. + +1. Who do we email to request our organization be created? + +Contact the DataGov team via email. + +1. Who should I contact to get my organization approved/created? + +When you contact the Data.gov team (see contact info above) about using inventory.data.gov, we can create the organization for you. + +1. For the record to be identified as geospatial, does “geospatial” go in Theme (Category) + +Yes. That designation also ensures that record is included in geoplatform.gov. + +1. Is there a way to import an existing data.json into inventory.data.gov? + +For importing existing data.json, please contact the Data.gov team and we will work with you to migrate into inventory.data.gov. + +1. How do we know our agency POC? + +For Data.gov/Open Data Policy purposes, if you don’t know your agency’s POC, contact the Data.gov team and we will connect you. You can also find your agency POC at https://project-open-data.cio.gov/points-of-contact/ + +1. How does this work with Data.gov? + +Inventory.data.gov is a separate system from the Data.gov catalog, using the same technology as the catalog (CKAN) to provide a service that agencies can use to create and maintain data inventories that are ultimately harvested by the Data.gov catalog from agency.gov/data.json + +1. Can we add custom core metadata fields? + +Yes, but not through the user interface on inventory.data.gov currently. Please contact the Data.gov team if you have this situation. + +1. Does search works only on dataset name and description or the actual content as well? + +Search does not cover the actual content. + +1. What is the difference between public and restricted-public? + +See the “access level” field in [Project Open Data](https://project-open-data.cio.gov/v1.1/schema/): The degree to which this dataset could be made publicly-available, regardless of whether it has been made available. Choices: public (Data asset is or could be made publicly available to all without restrictions), restricted public (Data asset is available under certain use restrictions), or non-public (Data asset is not available to members of the public). + +1. Can you clarify the difference between central and inventory CKAN? It seems like many datasets are using the datastore feature on inventory.data.gov – is this no longer the policy and inventory is mainly for creating data.json files? + +“Central CKAN” was a term used in 2014 to refer to what we call inventory.data.gov – it is one and the same. This webinar focused on the primary purpose of inventory.data.gov – to provide a dataset management system to help agencies create and maintain their data inventories and arrive at a data.json. We do use inventory.data.gov for a second purpose – to host a small number of datasets for agencies that needed a hosting capability at the conclusion of the Socrata platform contract that Data.gov had until July 2014. + +1. If inventory.data.gov is not intended for geospatial metadata, what system is? Geoplatform.gov? If we have standards-compliant (ISO, FGDC, etc.) metadata already published, can we import these metadata fields? Or must we enter them manually? + +Inventory.data.gov in its current form is not designed to handle geospatial metadata. As discussed in our harvesting [}}">documentation]({{< link ), Data.gov continues to harvest geospatial datasets directly from geospatial harvest sources. Agencies should have the remainder of their agencies in a “non-geospatial” data.json that the Data.gov catalog can harvest. + +1. So the system does not push errors to you; you have to search for them? + +When you are ready to export your agency’s datasets to data.json and hit the button on inventory.data.gov, you will be prompted to download a zip file containing the data.json. If there are errors, the zip file will also contain an error log containing information about the datasets with errors. We are working on improving validation within inventory.data.gov so that more errors are identified as you are adding and editing datasets, before you reach the export stage. From 7e7f9650807d881e6e0896e27b47180a69226476 Mon Sep 17 00:00:00 2001 From: Jeremy Zilar Date: Tue, 7 Nov 2017 20:47:35 -0500 Subject: [PATCH 03/15] Fixing rendering error with links --- content/resources/how-to-get-your-open-data-on-data-gov.md | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/content/resources/how-to-get-your-open-data-on-data-gov.md b/content/resources/how-to-get-your-open-data-on-data-gov.md index 27807da766..7b44744a26 100644 --- a/content/resources/how-to-get-your-open-data-on-data-gov.md +++ b/content/resources/how-to-get-your-open-data-on-data-gov.md @@ -53,7 +53,7 @@ Project Open Data requires agencies to list and describe all agency data in the Agencies must provide a human readable Public Data Listing at _agency.gov/_data and a machine readable listing, as a standalone JSON file on the agency’s website at _agency.gov_/data.json. This data.json file is what gets harvested to the Data.gov catalog. -Federal agencies that do not have a platform to inventory their metadata can make use of a free service hosted by Data.gov called inventory.data.gov (see the [}}">separate guide)]({{< link ). Contact the Data.gov team via email if you’re interested in using this service. +Federal agencies that do not have a platform to inventory their metadata can make use of a free service hosted by Data.gov called inventory.data.gov (see the separate guide). Contact the Data.gov team via email if you’re interested in using this service. You can find more information about what is required by the policy in the [Data Catalog Requirements](https://project-open-data.cio.gov/catalog/) for Project Open Data, but the requirements relevant to Data.gov are outlined here: @@ -126,9 +126,8 @@ If an agency has a geospatial dataset in the data-nonspatial-harvest.json that s Data.gov incorporates data sources from state, local, and tribal governments. Non-federal sources are not covered by the Federal Open Data Policy, but can be included in the Data.gov catalog voluntarily. Depending on your local government open data platform, you may already have a harvest source that is Data.gov-ready, or it could take a little more work. Either way, the Data.gov team is available to answer questions about these requirements. For non-federal data to be connected to Data.gov, the following items are required: 1. **A Data Harvest Source** - Some open data catalog platforms already have a Data.gov harvest source built in (see these examples from [Socrata](https://nycopendata.socrata.com/data.json) and [ArcGIS Open Data](http://opendata.dc.gov/data.json)), but it is possible to set up a harvest source with any data management system (see [this CKAN example](https://www.opendataphilly.org/data.json)). The metadata required from non-federal sources does not include the [USG noted fields](https://project-open-data.cio.gov/v1.1/schema/#USG-note) and additional fields can be left out on a case-by-case basis. To learn more about metadata best practices and validators, check out the [}}>Resources and Tools]({{<) below.**Required:** A Harvest Source at: _https://________.gov/data.json, e.g. __https://data.brla.gov/data.json_ - -1. **A Terms of Use URL** + Some open data catalog platforms already have a Data.gov harvest source built in (see these examples from [Socrata](https://nycopendata.socrata.com/data.json) and [ArcGIS Open Data](http://opendata.dc.gov/data.json)), but it is possible to set up a harvest source with any data management system (see [this CKAN example](https://www.opendataphilly.org/data.json)). The metadata required from non-federal sources does not include the [USG noted fields](https://project-open-data.cio.gov/v1.1/schema/#USG-note) and additional fields can be left out on a case-by-case basis. To learn more about metadata best practices and validators, check out the Resources and Tools below. **Required:** A Harvest Source at: _https://________.gov/data.json, e.g. __https://data.brla.gov/data.json_ +2. **A Terms of Use URL** A publicly accessible Terms of Use (or Data Policy) URL or similar information in order to make it clear to Data.gov users when they are viewing datasets that are not covered by federal statutory and regulatory requirements. **Required:** A Terms of Use URL, e.g._ https://data.brla.gov/terms-of-service_ From 61faf5897780eae0e9e56bec04f74f46f46a91ab Mon Sep 17 00:00:00 2001 From: Jeremy Zilar Date: Tue, 7 Nov 2017 20:51:29 -0500 Subject: [PATCH 04/15] Fixing rendering error --- content/resources/inventory-data-gov-guide.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/resources/inventory-data-gov-guide.md b/content/resources/inventory-data-gov-guide.md index 46292f2952..33d171db06 100644 --- a/content/resources/inventory-data-gov-guide.md +++ b/content/resources/inventory-data-gov-guide.md @@ -332,7 +332,7 @@ See the “access level” field in [Project Open Data](https://project-open-dat 1. If inventory.data.gov is not intended for geospatial metadata, what system is? Geoplatform.gov? If we have standards-compliant (ISO, FGDC, etc.) metadata already published, can we import these metadata fields? Or must we enter them manually? -Inventory.data.gov in its current form is not designed to handle geospatial metadata. As discussed in our harvesting [}}">documentation]({{< link ), Data.gov continues to harvest geospatial datasets directly from geospatial harvest sources. Agencies should have the remainder of their agencies in a “non-geospatial” data.json that the Data.gov catalog can harvest. +Inventory.data.gov in its current form is not designed to handle geospatial metadata. As discussed in our harvesting documentation, Data.gov continues to harvest geospatial datasets directly from geospatial harvest sources. Agencies should have the remainder of their agencies in a “non-geospatial” data.json that the Data.gov catalog can harvest. 1. So the system does not push errors to you; you have to search for them? From 1428f0c360b96cacd692c57a0323b9028380fe50 Mon Sep 17 00:00:00 2001 From: Jeremy Zilar Date: Tue, 7 Nov 2017 22:30:01 -0500 Subject: [PATCH 05/15] updated anchor links --- content/resources/how-to-get-your-open-data-on-data-gov.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/content/resources/how-to-get-your-open-data-on-data-gov.md b/content/resources/how-to-get-your-open-data-on-data-gov.md index 7b44744a26..c436155f16 100644 --- a/content/resources/how-to-get-your-open-data-on-data-gov.md +++ b/content/resources/how-to-get-your-open-data-on-data-gov.md @@ -16,9 +16,9 @@ This guide is primarily for the [Open Data Points of Contact](https://project-op * [**Federal Data with Project Open Data**](#federal-data-with-project-open-data "Federal Data with Project Open Data") * [**Federal Geospatial Data**](#federal-geospatial-data "Federal Geospatial Data") * [**Non-Federal Data**](#non-federal-data "Non-Federal Data") - * [**Step 2: Coordinate with Data.gov**](#step-2 "Step 2: Coordinate with Data.gov") + * [**Step 2: Coordinate with Data.gov**](#step-2-coordinate-with-data-gov "Step 2: Coordinate with Data.gov") * [**Resources & Tools**](#resources-tools "Resources & Tools") - * [**Frequently Asked Questions**](#faq "Frequently Asked Questions") + * [**Frequently Asked Questions**](#frequently-asked-questions "Frequently Asked Questions") ## Overview From 069fdbec1ef66aa2a6fe6edae421af7b022a1b61 Mon Sep 17 00:00:00 2001 From: "Dan O. Williams" Date: Wed, 8 Nov 2017 09:26:36 -0800 Subject: [PATCH 06/15] Scope uswds to a `.uswds` class --- .../layouts/partials/usa-banner.html | 2 +- themes/digital.gov/src/sass/_dg-base.scss | 38 +++++ .../digital.gov/src/sass/_dg-normalize.scss | 148 +++++++++--------- themes/digital.gov/src/sass/dg-uswds.scss | 4 +- .../static/lib/uswds/css/dg-uswds.min.css | 4 +- 5 files changed, 117 insertions(+), 79 deletions(-) create mode 100644 themes/digital.gov/src/sass/_dg-base.scss diff --git a/themes/digital.gov/layouts/partials/usa-banner.html b/themes/digital.gov/layouts/partials/usa-banner.html index f34513f9da..f6a924c802 100644 --- a/themes/digital.gov/layouts/partials/usa-banner.html +++ b/themes/digital.gov/layouts/partials/usa-banner.html @@ -1,6 +1,6 @@ {{ $uswds_img_path := "lib/uswds/img"}} -
+
diff --git a/themes/digital.gov/src/sass/_dg-base.scss b/themes/digital.gov/src/sass/_dg-base.scss new file mode 100644 index 0000000000..7e44601431 --- /dev/null +++ b/themes/digital.gov/src/sass/_dg-base.scss @@ -0,0 +1,38 @@ +@if $scope-uswds == true { + // Apply a natural box layout model to all elements, but allowing components + // to change + + .uswds { + box-sizing: border-box; + } + + .uswds *, + .uswds *::before, + .uswds *::after { + box-sizing: inherit; + } + + .uswds body, + body.uswds { + background-color: $color-white; + overflow-x: hidden; + } + + // Hack for clearfixes + .lt-ie9 { + * { + filter: none !important; /* stylelint-disable-line declaration-no-important */ + } + } + + // for IE < 11, see: + // + [hidden] { + display: none !important; /* stylelint-disable-line declaration-no-important */ + } + + .uswds *:focus, + .usa-focus { + @include focus; + } +} diff --git a/themes/digital.gov/src/sass/_dg-normalize.scss b/themes/digital.gov/src/sass/_dg-normalize.scss index fd63990aa3..8e15805f81 100644 --- a/themes/digital.gov/src/sass/_dg-normalize.scss +++ b/themes/digital.gov/src/sass/_dg-normalize.scss @@ -1,4 +1,4 @@ -@if $scope-normalize == false { +@if $scope-uswds == false { html { font-family: sans-serif; /* 1 */ -ms-text-size-adjust: 100%; /* 2 */ @@ -216,68 +216,68 @@ padding: 0; } } @else { - .normalize html, html.normalize { + .uswds html, html.uswds { font-family: sans-serif; /* 1 */ -ms-text-size-adjust: 100%; /* 2 */ -webkit-text-size-adjust: 100%; /* 2 */ } - .normalize body, body.normalize { + .uswds body, body.uswds { margin: 0; } - .normalize article, article.normalize, - .normalize aside, aside.normalize, - .normalize details, details.normalize, - .normalize figcaption, figcaption.normalize, - .normalize figure, figure.normalize, - .normalize footer, footer.normalize, - .normalize header, header.normalize, - .normalize hgroup, hgroup.normalize, - .normalize main, main.normalize, - .normalize menu, menu.normalize, - .normalize nav, nav.normalize, - .normalize section, section.normalize, - .normalize summary, summary.normalize { + .uswds article, article.uswds, + .uswds aside, aside.uswds, + .uswds details, details.uswds, + .uswds figcaption, figcaption.uswds, + .uswds figure, figure.uswds, + .uswds footer, footer.uswds, + .uswds header, header.uswds, + .uswds hgroup, hgroup.uswds, + .uswds main, main.uswds, + .uswds menu, menu.uswds, + .uswds nav, nav.uswds, + .uswds section, section.uswds, + .uswds summary, summary.uswds { display: block; } - .normalize audio, audio.normalize, - .normalize canvas, canvas.normalize, - .normalize progress, progress.normalize, - .normalize video, video.normalize { + .uswds audio, audio.uswds, + .uswds canvas, canvas.uswds, + .uswds progress, progress.uswds, + .uswds video, video.uswds { display: inline-block; /* 1 */ vertical-align: baseline; /* 2 */ } - .normalize audio:not([controls]), audio:not([controls]).normalize { + .uswds audio:not([controls]), audio:not([controls]).uswds { display: none; height: 0; } - .normalize [hidden], [hidden].normalize, - .normalize template, template.normalize { + .uswds [hidden], [hidden].uswds, + .uswds template, template.uswds { display: none; } - .normalize a, a.normalize { + .uswds a, a.uswds { background-color: transparent; } - .normalize a:active, a:active.normalize, - .normalize a:hover, a:hover.normalize { + .uswds a:active, a:active.uswds, + .uswds a:hover, a:hover.uswds { outline: 0; } - .normalize abbr[title], abbr[title].normalize { + .uswds abbr[title], abbr[title].uswds { border-bottom: 1px dotted; } - .normalize b, b.normalize, - .normalize strong, strong.normalize { + .uswds b, b.uswds, + .uswds strong, strong.uswds { font-weight: bold; } - .normalize dfn, dfn.normalize { + .uswds dfn, dfn.uswds { font-style: italic; } @@ -286,149 +286,149 @@ margin: 0.67em 0; } - .normalize mark, mark.normalize { + .uswds mark, mark.uswds { background: #ff0; color: #000; } - .normalize small, small.normalize { + .uswds small, small.uswds { font-size: 80%; } - .normalize sub, sub.normalize, - .normalize sup, sup.normalize { + .uswds sub, sub.uswds, + .uswds sup, sup.uswds { font-size: 75%; line-height: 0; position: relative; vertical-align: baseline; } - .normalize sup, sup.normalize { + .uswds sup, sup.uswds { top: -0.5em; } - .normalize sub, sub.normalize { + .uswds sub, sub.uswds { bottom: -0.25em; } - .normalize img, img.normalize { + .uswds img, img.uswds { border: 0; } - .normalize svg:not(:root), svg:not(:root).normalize { + .uswds svg:not(:root), svg:not(:root).uswds { overflow: hidden; } - .normalize figure, figure.normalize { + .uswds figure, figure.uswds { margin: 1em 40px; } - .normalize hr, hr.normalize { + .uswds hr, hr.uswds { box-sizing: content-box; height: 0; } - .normalize pre, pre.normalize { + .uswds pre, pre.uswds { overflow: auto; } - .normalize code, code.normalize, - .normalize kbd, kbd.normalize, - .normalize pre, pre.normalize, - .normalize samp, samp.normalize { + .uswds code, code.uswds, + .uswds kbd, kbd.uswds, + .uswds pre, pre.uswds, + .uswds samp, samp.uswds { font-family: monospace, monospace; font-size: 1em; } - .normalize button, button.normalize, - .normalize input, input.normalize, - .normalize optgroup, optgroup.normalize, - .normalize select, select.normalize, - .normalize textarea, textarea.normalize { + .uswds button, button.uswds, + .uswds input, input.uswds, + .uswds optgroup, optgroup.uswds, + .uswds select, select.uswds, + .uswds textarea, textarea.uswds { color: inherit; /* 1 */ font: inherit; /* 2 */ margin: 0; /* 3 */ } - .normalize button, button.normalize { + .uswds button, button.uswds { overflow: visible; } - .normalize button, button.normalize, - .normalize select, select.normalize { + .uswds button, button.uswds, + .uswds select, select.uswds { text-transform: none; } - .normalize button, button.normalize, + .uswds button, button.uswds, html input[type="button"], /* 1 */ - .normalize input[type="reset"], input[type="reset"].normalize, - .normalize input[type="submit"], input[type="submit"].normalize { + .uswds input[type="reset"], input[type="reset"].uswds, + .uswds input[type="submit"], input[type="submit"].uswds { -webkit-appearance: button; /* 2 */ cursor: pointer; /* 3 */ } - .normalize button[disabled], button[disabled].normalize, + .uswds button[disabled], button[disabled].uswds, html input[disabled] { cursor: default; } - .normalize button::-moz-focus-inner, button::-moz-focus-inner.normalize, - .normalize input::-moz-focus-inner, input::-moz-focus-inner.normalize { + .uswds button::-moz-focus-inner, button::-moz-focus-inner.uswds, + .uswds input::-moz-focus-inner, input::-moz-focus-inner.uswds { border: 0; padding: 0; } - .normalize input, input.normalize { + .uswds input, input.uswds { line-height: normal; } - .normalize input[type="checkbox"], input[type="checkbox"].normalize, - .normalize input[type="radio"], input[type="radio"].normalize { + .uswds input[type="checkbox"], input[type="checkbox"].uswds, + .uswds input[type="radio"], input[type="radio"].uswds { box-sizing: border-box; /* 1 */ padding: 0; /* 2 */ } - .normalize input[type="number"]::-webkit-inner-spin-button, input[type="number"]::-webkit-inner-spin-button.normalize, - .normalize input[type="number"]::-webkit-outer-spin-button, input[type="number"]::-webkit-outer-spin-button.normalize { + .uswds input[type="number"]::-webkit-inner-spin-button, input[type="number"]::-webkit-inner-spin-button.uswds, + .uswds input[type="number"]::-webkit-outer-spin-button, input[type="number"]::-webkit-outer-spin-button.uswds { height: auto; } - .normalize input[type="search"], input[type="search"].normalize { + .uswds input[type="search"], input[type="search"].uswds { -webkit-appearance: textfield; /* 1 */ box-sizing: content-box; /* 2 */ } - .normalize input[type="search"]::-webkit-search-cancel-button, input[type="search"]::-webkit-search-cancel-button.normalize, - .normalize input[type="search"]::-webkit-search-decoration, input[type="search"]::-webkit-search-decoration.normalize { + .uswds input[type="search"]::-webkit-search-cancel-button, input[type="search"]::-webkit-search-cancel-button.uswds, + .uswds input[type="search"]::-webkit-search-decoration, input[type="search"]::-webkit-search-decoration.uswds { -webkit-appearance: none; } - .normalize fieldset, fieldset.normalize { + .uswds fieldset, fieldset.uswds { border: 1px solid #c0c0c0; margin: 0 2px; padding: 0.35em 0.625em 0.75em; } - .normalize legend, legend.normalize { + .uswds legend, legend.uswds { border: 0; /* 1 */ padding: 0; /* 2 */ } - .normalize textarea, textarea.normalize { + .uswds textarea, textarea.uswds { overflow: auto; } - .normalize optgroup, optgroup.normalize { + .uswds optgroup, optgroup.uswds { font-weight: bold; } - .normalize table, table.normalize { + .uswds table, table.uswds { border-collapse: collapse; border-spacing: 0; } - .normalize td, td.normalize, - .normalize th, th.normalize { + .uswds td, td.uswds, + .uswds th, th.uswds { padding: 0; } } diff --git a/themes/digital.gov/src/sass/dg-uswds.scss b/themes/digital.gov/src/sass/dg-uswds.scss index 2181c00b12..e0db4545bd 100644 --- a/themes/digital.gov/src/sass/dg-uswds.scss +++ b/themes/digital.gov/src/sass/dg-uswds.scss @@ -1,7 +1,7 @@ // USWDS SASS variable overrides go here, before we import USWDS itself. $border-box-sizing: false; -$scope-normalize: true; +$scope-uswds: true; @import 'dg-variables'; @@ -20,7 +20,7 @@ $scope-normalize: true; @import 'core/fonts'; @import 'core/grid'; @import 'core/utilities'; -@import 'core/base'; +@import 'dg-base'; // Elements -------------- // // Styles basic HTML elements diff --git a/themes/digital.gov/static/lib/uswds/css/dg-uswds.min.css b/themes/digital.gov/static/lib/uswds/css/dg-uswds.min.css index 83c9143bfd..4633d4b2ab 100644 --- a/themes/digital.gov/static/lib/uswds/css/dg-uswds.min.css +++ b/themes/digital.gov/static/lib/uswds/css/dg-uswds.min.css @@ -1,2 +1,2 @@ -/*! uswds @version */.normalize html,html.normalize{font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}.normalize body,body.normalize{margin:0}.normalize article,.normalize aside,.normalize details,.normalize figcaption,.normalize figure,.normalize footer,.normalize header,.normalize hgroup,.normalize main,.normalize menu,.normalize nav,.normalize section,.normalize summary,article.normalize,aside.normalize,details.normalize,figcaption.normalize,figure.normalize,footer.normalize,header.normalize,hgroup.normalize,main.normalize,menu.normalize,nav.normalize,section.normalize,summary.normalize{display:block}.normalize audio,.normalize canvas,.normalize progress,.normalize video,audio.normalize,canvas.normalize,progress.normalize,video.normalize{display:inline-block;vertical-align:baseline}.normalize audio:not([controls]),audio:not([controls]).normalize{display:none;height:0}.normalize [hidden],.normalize template,[hidden].normalize,template.normalize{display:none}.normalize a,a.normalize{background-color:transparent}.normalize a:active,.normalize a:hover,a:active.normalize,a:hover.normalize{outline:0}.normalize abbr[title],abbr[title].normalize{border-bottom:1px dotted}.normalize b,.normalize strong,b.normalize,strong.normalize{font-weight:700}.normalize dfn,dfn.normalize{font-style:italic}h1{font-size:2em;margin:.67em 0}.normalize mark,mark.normalize{background:#ff0;color:#000}.normalize small,small.normalize{font-size:80%}.normalize sub,.normalize sup,sub.normalize,sup.normalize{font-size:75%;line-height:0;position:relative;vertical-align:baseline}.normalize sup,sup.normalize{top:-.5em}.normalize sub,sub.normalize{bottom:-.25em}.normalize img,img.normalize{border:0}.normalize svg:not(:root),svg:not(:root).normalize{overflow:hidden}.normalize figure,figure.normalize{margin:1em 40px}.normalize hr,hr.normalize{box-sizing:content-box;height:0}.normalize pre,pre.normalize{overflow:auto}.normalize code,.normalize kbd,.normalize pre,.normalize samp,code.normalize,kbd.normalize,pre.normalize,samp.normalize{font-family:monospace,monospace;font-size:1em}.normalize button,.normalize input,.normalize optgroup,.normalize select,.normalize textarea,button.normalize,input.normalize,optgroup.normalize,select.normalize,textarea.normalize{color:inherit;font:inherit;margin:0}.normalize button,button.normalize{overflow:visible}.normalize button,.normalize select,button.normalize,select.normalize{text-transform:none}.normalize button,.normalize input[type=reset],.normalize input[type=submit],button.normalize,html input[type=button],input[type=reset].normalize,input[type=submit].normalize{-webkit-appearance:button;cursor:pointer}.normalize button[disabled],button[disabled].normalize,html input[disabled]{cursor:default}.normalize button::-moz-focus-inner,.normalize input::-moz-focus-inner,button::-moz-focus-inner.normalize,input::-moz-focus-inner.normalize{border:0;padding:0}.normalize input,input.normalize{line-height:normal}.normalize input[type=checkbox],.normalize input[type=radio],input[type=checkbox].normalize,input[type=radio].normalize{box-sizing:border-box;padding:0}.normalize input[type=number]::-webkit-inner-spin-button,.normalize input[type=number]::-webkit-outer-spin-button,input[type=number]::-webkit-inner-spin-button.normalize,input[type=number]::-webkit-outer-spin-button.normalize{height:auto}.normalize input[type=search],input[type=search].normalize{-webkit-appearance:textfield;box-sizing:content-box}.normalize input[type=search]::-webkit-search-cancel-button,.normalize input[type=search]::-webkit-search-decoration,input[type=search]::-webkit-search-cancel-button.normalize,input[type=search]::-webkit-search-decoration.normalize{-webkit-appearance:none}.normalize fieldset,fieldset.normalize{border:1px solid silver;margin:0 2px;padding:.35em .625em .75em}.normalize legend,legend.normalize{border:0;padding:0}.normalize textarea,textarea.normalize{overflow:auto}.normalize optgroup,optgroup.normalize{font-weight:700}.normalize table,table.normalize{border-collapse:collapse;border-spacing:0}.normalize td,.normalize th,td.normalize,th.normalize{padding:0}@font-face{font-family:Source Sans Pro;font-style:normal;font-weight:300;src:url(../fonts/sourcesanspro-light-webfont.eot?#iefix) format("embedded-opentype"),url(../fonts/sourcesanspro-light-webfont.woff2) format("woff2"),url(../fonts/sourcesanspro-light-webfont.woff) format("woff"),url(../fonts/sourcesanspro-light-webfont.ttf) format("truetype")}@font-face{font-family:Source Sans Pro;font-style:normal;font-weight:400;src:url(../fonts/sourcesanspro-regular-webfont.eot?#iefix) format("embedded-opentype"),url(../fonts/sourcesanspro-regular-webfont.woff2) format("woff2"),url(../fonts/sourcesanspro-regular-webfont.woff) format("woff"),url(../fonts/sourcesanspro-regular-webfont.ttf) format("truetype")}@font-face{font-family:Source Sans Pro;font-style:italic;font-weight:400;src:url(../fonts/sourcesanspro-italic-webfont.eot?#iefix) format("embedded-opentype"),url(../fonts/sourcesanspro-italic-webfont.woff2) format("woff2"),url(../fonts/sourcesanspro-italic-webfont.woff) format("woff"),url(../fonts/sourcesanspro-italic-webfont.ttf) format("truetype")}@font-face{font-family:Source Sans Pro;font-style:normal;font-weight:700;src:url(../fonts/sourcesanspro-bold-webfont.eot?#iefix) format("embedded-opentype"),url(../fonts/sourcesanspro-bold-webfont.woff2) format("woff2"),url(../fonts/sourcesanspro-bold-webfont.woff) format("woff"),url(../fonts/sourcesanspro-bold-webfont.ttf) format("truetype")}@font-face{font-family:Merriweather;font-style:normal;font-weight:300;src:url(../fonts/merriweather-light-webfont.eot?#iefix) format("embedded-opentype"),url(../fonts/merriweather-light-webfont.woff2) format("woff2"),url(../fonts/merriweather-light-webfont.woff) format("woff"),url(../fonts/merriweather-light-webfont.ttf) format("truetype")}@font-face{font-family:Merriweather;font-style:normal;font-weight:400;src:url(../fonts/merriweather-regular-webfont.eot?#iefix) format("embedded-opentype"),url(../fonts/merriweather-regular-webfont.woff2) format("woff2"),url(../fonts/merriweather-regular-webfont.woff) format("woff"),url(../fonts/merriweather-regular-webfont.ttf) format("truetype")}@font-face{font-family:Merriweather;font-style:italic;font-weight:400;src:url(../fonts/merriweather-italic-webfont.eot?#iefix) format("embedded-opentype"),url(../fonts/merriweather-italic-webfont.woff2) format("woff2"),url(../fonts/merriweather-italic-webfont.woff) format("woff"),url(../fonts/merriweather-italic-webfont.ttf) format("truetype")}@font-face{font-family:Merriweather;font-style:normal;font-weight:700;src:url(../fonts/merriweather-bold-webfont.eot?#iefix) format("embedded-opentype"),url(../fonts/merriweather-bold-webfont.woff2) format("woff2"),url(../fonts/merriweather-bold-webfont.woff) format("woff"),url(../fonts/merriweather-bold-webfont.ttf) format("truetype")}.usa-grid,.usa-grid-full{max-width:1200px;margin-left:auto;margin-right:auto;max-width:960px}.usa-grid-full:after,.usa-grid:after{clear:both;content:"";display:block}.usa-grid{padding-right:1rem;padding-left:1rem}@media screen and (min-width:801px){.usa-grid{padding-right:1.875rem;padding-left:1.875rem}}.usa-grid-full{padding:0}@media screen and (min-width:801px){.usa-width-one-whole{float:left;display:block;margin-right:4.82916%;width:100%}.usa-width-one-whole:last-child{margin-right:0}.usa-width-one-half{float:left;display:block;margin-right:4.82916%;width:47.58542%}.usa-width-one-half:last-child{margin-right:0}.usa-width-one-third{float:left;display:block;margin-right:4.82916%;width:30.11389%}.usa-width-one-third:last-child{margin-right:0}.usa-width-two-thirds{float:left;display:block;margin-right:4.82916%;width:65.05695%}.usa-width-two-thirds:last-child{margin-right:0}.usa-width-one-fourth{float:left;display:block;margin-right:4.82916%;width:47.58542%}.usa-width-one-fourth:last-child{margin-right:0}.usa-width-one-fourth:nth-child(2n){margin-right:0}.usa-width-three-fourths{float:left;display:block;margin-right:4.82916%;width:100%}.usa-width-three-fourths:last-child{margin-right:0}.usa-width-one-sixth{float:left;display:block;margin-right:4.82916%;width:30.11389%}.usa-width-one-sixth:last-child{margin-right:0}.usa-width-one-sixth:nth-child(3n){margin-right:0}.usa-width-five-sixths{float:left;display:block;margin-right:4.82916%;width:65.05695%}.usa-width-five-sixths:last-child{margin-right:0}.usa-width-one-twelfth{float:left;display:block;margin-right:4.82916%;width:30.11389%}.usa-width-one-twelfth:last-child{margin-right:0}.usa-width-one-twelfth:nth-child(3n){margin-right:0}.usa-width-five-twelfths{float:left;display:block;margin-right:4.82916%;width:30.11389%}.usa-width-five-twelfths:last-child{margin-right:0}.usa-width-seven-twelfths{float:left;display:block;margin-right:4.82916%;width:65.05695%}.usa-width-seven-twelfths:last-child{margin-right:0}}@media screen and (min-width:1025px){.usa-width-one-whole{float:left;display:block;margin-right:2.35765%;width:100%}.usa-width-one-whole:last-child{margin-right:0}.usa-width-one-half{float:left;display:block;margin-right:2.35765%;width:48.82117%}.usa-width-one-half:last-child{margin-right:0}.usa-width-one-third{float:left;display:block;margin-right:2.35765%;width:31.76157%}.usa-width-one-third:last-child{margin-right:0}.usa-width-two-thirds{float:left;display:block;margin-right:2.35765%;width:65.88078%}.usa-width-two-thirds:last-child{margin-right:0}.usa-width-one-fourth{float:left;display:block;margin-right:2.35765%;width:23.23176%}.usa-width-one-fourth:last-child{margin-right:0}.usa-width-one-fourth:nth-child(2n){float:left;display:block;margin-right:2.35765%;width:23.23176%}.usa-width-one-fourth:nth-child(2n):last-child{margin-right:0}.usa-width-one-fourth:nth-child(4n){margin-right:0}.usa-width-three-fourths{float:left;display:block;margin-right:2.35765%;width:74.41059%}.usa-width-three-fourths:last-child{margin-right:0}.usa-width-one-sixth{float:left;display:block;margin-right:2.35765%;width:14.70196%}.usa-width-one-sixth:last-child{margin-right:0}.usa-width-one-sixth:nth-child(3n){float:left;display:block;margin-right:2.35765%;width:14.70196%}.usa-width-one-sixth:nth-child(3n):last-child{margin-right:0}.usa-width-one-sixth:nth-child(6n){margin-right:0}.usa-width-five-sixths{float:left;display:block;margin-right:2.35765%;width:82.94039%}.usa-width-five-sixths:last-child{margin-right:0}.usa-width-one-twelfth{float:left;display:block;margin-right:2.35765%;width:6.17215%}.usa-width-one-twelfth:last-child{margin-right:0}.usa-width-one-twelfth:nth-child(3n){float:left;display:block;margin-right:2.35765%;width:6.17215%}.usa-width-one-twelfth:nth-child(3n):last-child{margin-right:0}.usa-width-one-twelfth:nth-child(12n){margin-right:0}.usa-width-five-twelfths{float:left;display:block;margin-right:2.35765%;width:40.29137%}.usa-width-five-twelfths:last-child{margin-right:0}.usa-width-seven-twelfths{float:left;display:block;margin-right:2.35765%;width:57.35098%}.usa-width-seven-twelfths:last-child{margin-right:0}}.usa-end-row{margin-right:0}.usa-offset-one-twelfth{margin-left:8.5298%}.usa-offset-one-sixth{margin-left:17.05961%}.usa-offset-one-fourth{margin-left:25.58941%}.usa-offset-one-third{margin-left:34.11922%}.usa-offset-five-twelfths{margin-left:42.64902%}.usa-offset-one-half{margin-left:51.17883%}.usa-offset-seven-twelfths{margin-left:59.70863%}.usa-offset-two-thirds{margin-left:68.23843%}.usa-offset-three-fourths{margin-left:76.76824%}.usa-offset-five-sixths{margin-left:85.29804%}.usa-offset-eleven-twelfths{margin-left:93.82785%}.usa-sr-only{position:absolute;left:-999em}html{box-sizing:border-box}*,:after,:before{box-sizing:inherit}body{background-color:#fff;overflow-x:hidden}.lt-ie9 *{-webkit-filter:none!important;filter:none!important}[hidden]{display:none!important}.usa-focus,:focus{outline:2px dotted #aeb0b5;outline-offset:3px}.usa-button,.usa-button-primary,.usa-button-primary:visited,.usa-button:visited{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;margin-top:.5em;margin-right:.5em;margin-bottom:.5em;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:#0071bc;border:0;border-radius:5px;color:#fff;cursor:pointer;display:inline-block;font-family:Trebuchet,Tahoma,sans-serif;font-size:1.0625rem;font-weight:700;line-height:1;padding:1rem 2rem;text-align:center;text-decoration:none;width:100%}@media screen and (min-width:481px){.usa-button,.usa-button-primary,.usa-button-primary:visited,.usa-button:visited{width:auto}}.usa-button-primary.usa-button-hover,.usa-button-primary:hover,.usa-button-primary:visited.usa-button-hover,.usa-button-primary:visited:hover,.usa-button.usa-button-hover,.usa-button:hover,.usa-button:visited.usa-button-hover,.usa-button:visited:hover{background-color:#205493;border-bottom:0;color:#fff;text-decoration:none}.usa-button-primary.usa-button-active,.usa-button-primary:active,.usa-button-primary:visited.usa-button-active,.usa-button-primary:visited:active,.usa-button.usa-button-active,.usa-button:active,.usa-button:visited.usa-button-active,.usa-button:visited:active{background-color:#112e51}.usa-button-primary.usa-button-primary-alt,.usa-button-primary:visited.usa-button-primary-alt,.usa-button.usa-button-primary-alt,.usa-button:visited.usa-button-primary-alt{background-color:#02bfe7;color:#212121}.usa-button-primary.usa-button-primary-alt.usa-button-hover,.usa-button-primary.usa-button-primary-alt:hover,.usa-button-primary:visited.usa-button-primary-alt.usa-button-hover,.usa-button-primary:visited.usa-button-primary-alt:hover,.usa-button.usa-button-primary-alt.usa-button-hover,.usa-button.usa-button-primary-alt:hover,.usa-button:visited.usa-button-primary-alt.usa-button-hover,.usa-button:visited.usa-button-primary-alt:hover{background-color:#00a6d2}.usa-button-primary.usa-button-primary-alt.usa-button-active,.usa-button-primary.usa-button-primary-alt:active,.usa-button-primary:visited.usa-button-primary-alt.usa-button-active,.usa-button-primary:visited.usa-button-primary-alt:active,.usa-button.usa-button-primary-alt.usa-button-active,.usa-button.usa-button-primary-alt:active,.usa-button:visited.usa-button-primary-alt.usa-button-active,.usa-button:visited.usa-button-primary-alt:active{background-color:#046b99;color:#fff}.usa-button-primary.usa-button-secondary,.usa-button-primary:visited.usa-button-secondary,.usa-button.usa-button-secondary,.usa-button:visited.usa-button-secondary{background-color:#fff;box-shadow:inset 0 0 0 2px #0071bc;color:#0071bc}.usa-button-primary.usa-button-secondary.usa-button-hover,.usa-button-primary.usa-button-secondary:hover,.usa-button-primary:visited.usa-button-secondary.usa-button-hover,.usa-button-primary:visited.usa-button-secondary:hover,.usa-button.usa-button-secondary.usa-button-hover,.usa-button.usa-button-secondary:hover,.usa-button:visited.usa-button-secondary.usa-button-hover,.usa-button:visited.usa-button-secondary:hover{box-shadow:inset 0 0 0 2px #205493;color:#205493}.usa-button-primary.usa-button-secondary.usa-button-active,.usa-button-primary.usa-button-secondary:active,.usa-button-primary:visited.usa-button-secondary.usa-button-active,.usa-button-primary:visited.usa-button-secondary:active,.usa-button.usa-button-secondary.usa-button-active,.usa-button.usa-button-secondary:active,.usa-button:visited.usa-button-secondary.usa-button-active,.usa-button:visited.usa-button-secondary:active{box-shadow:inset 0 0 0 2px #112e51;color:#112e51}.usa-button-primary.usa-button-outline-inverse,.usa-button-primary.usa-button-secondary-inverse,.usa-button-primary:visited.usa-button-outline-inverse,.usa-button-primary:visited.usa-button-secondary-inverse,.usa-button.usa-button-outline-inverse,.usa-button.usa-button-secondary-inverse,.usa-button:visited.usa-button-outline-inverse,.usa-button:visited.usa-button-secondary-inverse{background:transparent;box-shadow:inset 0 0 0 2px #fff;color:#fff}.usa-button-primary.usa-button-outline-inverse.usa-button-hover,.usa-button-primary.usa-button-outline-inverse:hover,.usa-button-primary.usa-button-secondary-inverse.usa-button-hover,.usa-button-primary.usa-button-secondary-inverse:hover,.usa-button-primary:visited.usa-button-outline-inverse.usa-button-hover,.usa-button-primary:visited.usa-button-outline-inverse:hover,.usa-button-primary:visited.usa-button-secondary-inverse.usa-button-hover,.usa-button-primary:visited.usa-button-secondary-inverse:hover,.usa-button.usa-button-outline-inverse.usa-button-hover,.usa-button.usa-button-outline-inverse:hover,.usa-button.usa-button-secondary-inverse.usa-button-hover,.usa-button.usa-button-secondary-inverse:hover,.usa-button:visited.usa-button-outline-inverse.usa-button-hover,.usa-button:visited.usa-button-outline-inverse:hover,.usa-button:visited.usa-button-secondary-inverse.usa-button-hover,.usa-button:visited.usa-button-secondary-inverse:hover{box-shadow:inset 0 0 0 2px #d6d7d9;color:#d6d7d9}.usa-button-primary.usa-button-outline-inverse.usa-button-active,.usa-button-primary.usa-button-outline-inverse:active,.usa-button-primary.usa-button-secondary-inverse.usa-button-active,.usa-button-primary.usa-button-secondary-inverse:active,.usa-button-primary:visited.usa-button-outline-inverse.usa-button-active,.usa-button-primary:visited.usa-button-outline-inverse:active,.usa-button-primary:visited.usa-button-secondary-inverse.usa-button-active,.usa-button-primary:visited.usa-button-secondary-inverse:active,.usa-button.usa-button-outline-inverse.usa-button-active,.usa-button.usa-button-outline-inverse:active,.usa-button.usa-button-secondary-inverse.usa-button-active,.usa-button.usa-button-secondary-inverse:active,.usa-button:visited.usa-button-outline-inverse.usa-button-active,.usa-button:visited.usa-button-outline-inverse:active,.usa-button:visited.usa-button-secondary-inverse.usa-button-active,.usa-button:visited.usa-button-secondary-inverse:active{box-shadow:inset 0 0 0 2px #aeb0b5;color:#d6d7d9}.usa-button-primary.usa-button-gray,.usa-button-primary:visited.usa-button-gray,.usa-button.usa-button-gray,.usa-button:visited.usa-button-gray{background-color:#5b616b}.usa-button-primary.usa-button-gray.usa-button-hover,.usa-button-primary.usa-button-gray:hover,.usa-button-primary:visited.usa-button-gray.usa-button-hover,.usa-button-primary:visited.usa-button-gray:hover,.usa-button.usa-button-gray.usa-button-hover,.usa-button.usa-button-gray:hover,.usa-button:visited.usa-button-gray.usa-button-hover,.usa-button:visited.usa-button-gray:hover{background-color:#323a45}.usa-button-primary.usa-button-gray.usa-button-active,.usa-button-primary.usa-button-gray:active,.usa-button-primary:visited.usa-button-gray.usa-button-active,.usa-button-primary:visited.usa-button-gray:active,.usa-button.usa-button-gray.usa-button-active,.usa-button.usa-button-gray:active,.usa-button:visited.usa-button-gray.usa-button-active,.usa-button:visited.usa-button-gray:active{background-color:#212121}.usa-button-primary.usa-button-red,.usa-button-primary:visited.usa-button-red,.usa-button.usa-button-red,.usa-button:visited.usa-button-red{background-color:#e31c3d}.usa-button-primary.usa-button-red.usa-button-hover,.usa-button-primary.usa-button-red:hover,.usa-button-primary:visited.usa-button-red.usa-button-hover,.usa-button-primary:visited.usa-button-red:hover,.usa-button.usa-button-red.usa-button-hover,.usa-button.usa-button-red:hover,.usa-button:visited.usa-button-red.usa-button-hover,.usa-button:visited.usa-button-red:hover{background-color:#cd2026}.usa-button-primary.usa-button-red.usa-button-active,.usa-button-primary.usa-button-red:active,.usa-button-primary:visited.usa-button-red.usa-button-active,.usa-button-primary:visited.usa-button-red:active,.usa-button.usa-button-red.usa-button-active,.usa-button.usa-button-red:active,.usa-button:visited.usa-button-red.usa-button-active,.usa-button:visited.usa-button-red:active{background-color:#981b1e}.usa-button-primary.usa-button-big,.usa-button-primary:visited.usa-button-big,.usa-button.usa-button-big,.usa-button:visited.usa-button-big{font-size:1.9rem;padding:1.5rem 3rem}.usa-button-primary:disabled,.usa-button-primary:visited:disabled,.usa-button:disabled,.usa-button:visited:disabled{background-color:#d6d7d9;pointer-events:none}.usa-button-primary:disabled.usa-button-active,.usa-button-primary:disabled.usa-button-hover,.usa-button-primary:disabled.usa-focus,.usa-button-primary:disabled:active,.usa-button-primary:disabled:focus,.usa-button-primary:disabled:hover,.usa-button-primary:visited:disabled.usa-button-active,.usa-button-primary:visited:disabled.usa-button-hover,.usa-button-primary:visited:disabled.usa-focus,.usa-button-primary:visited:disabled:active,.usa-button-primary:visited:disabled:focus,.usa-button-primary:visited:disabled:hover,.usa-button:disabled.usa-button-active,.usa-button:disabled.usa-button-hover,.usa-button:disabled.usa-focus,.usa-button:disabled:active,.usa-button:disabled:focus,.usa-button:disabled:hover,.usa-button:visited:disabled.usa-button-active,.usa-button:visited:disabled.usa-button-hover,.usa-button:visited:disabled.usa-focus,.usa-button:visited:disabled:active,.usa-button:visited:disabled:focus,.usa-button:visited:disabled:hover{background-color:#d6d7d9;border:0;box-shadow:none}.usa-button-disabled{background-color:#d6d7d9;pointer-events:none}.usa-button-disabled.usa-button-active,.usa-button-disabled.usa-button-hover,.usa-button-disabled.usa-focus,.usa-button-disabled:active,.usa-button-disabled:focus,.usa-button-disabled:hover{background-color:#d6d7d9;border:0;box-shadow:none}.usa-button-outline-inverse:disabled,.usa-button-secondary-disabled,.usa-button-secondary-inverse-disabled,.usa-button-secondary-inverse:disabled,.usa-button-secondary:disabled{box-shadow:inset 0 0 0 2px #d6d7d9;pointer-events:none;color:#d6d7d9}.usa-button-outline-inverse:disabled.usa-button-active,.usa-button-outline-inverse:disabled.usa-button-hover,.usa-button-outline-inverse:disabled.usa-focus,.usa-button-outline-inverse:disabled:active,.usa-button-outline-inverse:disabled:focus,.usa-button-outline-inverse:disabled:hover,.usa-button-secondary-disabled.usa-button-active,.usa-button-secondary-disabled.usa-button-hover,.usa-button-secondary-disabled.usa-focus,.usa-button-secondary-disabled:active,.usa-button-secondary-disabled:focus,.usa-button-secondary-disabled:hover,.usa-button-secondary-inverse-disabled.usa-button-active,.usa-button-secondary-inverse-disabled.usa-button-hover,.usa-button-secondary-inverse-disabled.usa-focus,.usa-button-secondary-inverse-disabled:active,.usa-button-secondary-inverse-disabled:focus,.usa-button-secondary-inverse-disabled:hover,.usa-button-secondary-inverse:disabled.usa-button-active,.usa-button-secondary-inverse:disabled.usa-button-hover,.usa-button-secondary-inverse:disabled.usa-focus,.usa-button-secondary-inverse:disabled:active,.usa-button-secondary-inverse:disabled:focus,.usa-button-secondary-inverse:disabled:hover,.usa-button-secondary:disabled.usa-button-active,.usa-button-secondary:disabled.usa-button-hover,.usa-button-secondary:disabled.usa-focus,.usa-button-secondary:disabled:active,.usa-button-secondary:disabled:focus,.usa-button-secondary:disabled:hover{background-color:#fff;border:0}.usa-button-secondary:disabled,html .usa-button-secondary-disabled{background-color:#fff}.usa-button-secondary-inverse:disabled,html .usa-button-secondary-inverse-disabled{background-color:transparent;color:#5b616b;box-shadow:inset 0 0 0 2px #5b616b}.usa-button-unstyled{background-color:transparent;border:0;border-radius:0;font-weight:400;margin:0;padding:0;text-align:left;-webkit-font-smoothing:auto}.usa-button-unstyled:hover{background-color:transparent}.usa-accordion,.usa-accordion-bordered{margin-top:0;margin-bottom:0;list-style-type:none;padding-left:0;color:#212121;margin:0;padding:0;width:100%}.usa-accordion-bordered>li,.usa-accordion>li{margin-bottom:0}.usa-accordion-bordered>ul li ul,.usa-accordion>ul li ul{list-style:disc}.usa-accordion-bordered>ul li ul>li>ul,.usa-accordion>ul li ul>li>ul{list-style:circle}.usa-accordion-bordered>ul li ul>li>ul>li>ul,.usa-accordion>ul li ul>li>ul>li>ul{list-style:square}.usa-accordion+.usa-accordion,.usa-accordion+.usa-accordion-bordered,.usa-accordion-bordered+.usa-accordion,.usa-accordion-bordered+.usa-accordion-bordered{margin-top:1rem}.usa-accordion-bordered>ul,.usa-accordion>ul{margin-top:0;margin-bottom:0;list-style-type:none;padding-left:0;color:#212121;margin:0;padding:0;width:100%}.usa-accordion-bordered>ul>li,.usa-accordion>ul>li{margin-bottom:0}.usa-accordion-bordered>ul>li,.usa-accordion>ul>li{background-color:#f1f1f1;font-family:Trebuchet,Tahoma,sans-serif;list-style:none;margin-bottom:.5rem;width:100%}.usa-accordion-bordered>ul button,.usa-accordion>ul button{background-color:transparent;border:0;border-radius:0;font-weight:400;padding:0;text-align:left;-webkit-font-smoothing:auto;background-color:#f1f1f1;background-image:url(../img/minus.png);background-image:url(../img/minus.svg);background-position:right 2rem center;background-repeat:no-repeat;background-size:1.5rem;color:#212121;cursor:pointer;display:inline-block;font-family:Trebuchet,Tahoma,sans-serif;font-weight:700;margin:0;padding:1.5rem 5.5rem 1.5rem 2rem;width:100%}.usa-accordion-bordered>ul button:hover,.usa-accordion>ul button:hover{background-color:transparent}.usa-accordion-bordered>ul button:hover,.usa-accordion>ul button:hover{background-color:#d6d7d9;color:#212121}.usa-accordion-bordered>ul button h1,.usa-accordion-bordered>ul button h2,.usa-accordion-bordered>ul button h3,.usa-accordion-bordered>ul button h4,.usa-accordion-bordered>ul button h5,.usa-accordion-bordered>ul button h6,.usa-accordion>ul button h1,.usa-accordion>ul button h2,.usa-accordion>ul button h3,.usa-accordion>ul button h4,.usa-accordion>ul button h5,.usa-accordion>ul button h6{margin:0}.usa-accordion-bordered>ul [aria-expanded=false],.usa-accordion>ul [aria-expanded=false]{background-image:url(../img/plus.png);background-image:url(../img/plus.svg);background-repeat:no-repeat;background-size:1.5rem}.usa-accordion-bordered>li,.usa-accordion>li{background-color:#f1f1f1;font-family:Trebuchet,Tahoma,sans-serif;list-style:none;margin-bottom:.5rem;width:100%}.usa-accordion-bordered .usa-accordion-content{border-bottom:3px solid #f1f1f1;border-left:3px solid #f1f1f1;border-right:3px solid #f1f1f1}.usa-accordion-content{background-color:#fff;overflow:auto;padding:1.5rem 2rem}.usa-accordion-content>:first-child{margin-top:0}.usa-accordion-content>:last-child{margin-bottom:0}.usa-accordion-content:not([aria-hidden]){position:absolute;left:-999em}.usa-accordion-content[aria-hidden=true]{display:none}.usa-accordion-button{background-color:transparent;border:0;border-radius:0;font-weight:400;padding:0;text-align:left;-webkit-font-smoothing:auto;background-color:#f1f1f1;background-image:url(../img/minus.png);background-image:url(../img/minus.svg);background-position:right 2rem center;background-repeat:no-repeat;background-size:1.5rem;color:#212121;cursor:pointer;display:inline-block;font-family:Trebuchet,Tahoma,sans-serif;font-weight:700;margin:0;padding:1.5rem 5.5rem 1.5rem 2rem;width:100%}.usa-accordion-button:hover{background-color:transparent}.usa-accordion-button:hover{background-color:#d6d7d9;color:#212121}.usa-accordion-button h1,.usa-accordion-button h2,.usa-accordion-button h3,.usa-accordion-button h4,.usa-accordion-button h5,.usa-accordion-button h6{margin:0}.usa-accordion-button[aria-expanded=false]{background-image:url(../img/plus.png);background-image:url(../img/plus.svg);background-repeat:no-repeat;background-size:1.5rem}.usa-banner{background-color:#f1f1f1;padding-bottom:.4375rem}@media screen and (min-width:481px){.usa-banner{font-size:.8125rem;padding-bottom:0}}.usa-banner-content{padding:1.25rem 1rem 3px;background-color:transparent;font-size:.9375rem;width:100%}@media screen and (min-width:801px){.usa-banner-content{padding-bottom:1.4375rem;padding-top:2.5rem}}@media screen and (min-width:951px){.usa-banner-content{padding-right:1.875rem;padding-left:1.875rem}}.usa-banner-content p:first-child{margin-top:.625rem}@media screen and (min-width:801px){.usa-banner-content p:first-child{margin-top:0}}.usa-banner-inner{max-width:1200px;margin-left:auto;margin-right:auto;padding-right:1rem;padding-left:1rem;max-width:960px}.usa-banner-inner:after{clear:both;content:"";display:block}@media screen and (min-width:951px){.usa-banner-inner{padding-right:1.875rem;padding-left:1.875rem}}.usa-banner-header{padding-top:.34375rem;padding-bottom:.34375rem;font-size:.75rem;font-weight:400}@media screen and (min-width:481px){.usa-banner-header{padding-top:0;padding-bottom:0}}.usa-banner-header p{margin-top:0;margin-bottom:0;display:inline;overflow:hidden;vertical-align:middle}@media screen and (min-width:481px){.usa-banner-header p{margin-top:2px;margin-bottom:2px;display:inline-block}}.usa-banner-header img{margin-top:.625rem}@media screen and (min-width:481px){.usa-banner-header img{margin-right:.4375rem;width:1.25rem}}.usa-banner-header-expanded{-webkit-box-align:center;-ms-flex-align:center;align-items:center;border-bottom:1px solid #aeb0b5;display:-webkit-box;display:-ms-flexbox;display:flex;font-size:.9375rem;min-height:3.5rem;padding-right:1.875rem}@media screen and (min-width:481px){.usa-banner-header-expanded{border-bottom:none;display:block;font-size:.75rem;font-weight:400;min-height:0;padding-right:0}}.usa-banner-header-expanded>.usa-banner-inner{margin-left:0}@media screen and (min-width:481px){.usa-banner-header-expanded>.usa-banner-inner{margin-left:auto}}.usa-banner-header-expanded img{margin-right:1.5rem}@media screen and (min-width:481px){.usa-banner-header-expanded img{margin-right:.4375rem}}.usa-banner-header-expanded p{line-height:1.3;vertical-align:top}@media screen and (min-width:481px){.usa-banner-header-expanded p{line-height:1.5;vertical-align:middle}}.usa-banner-button{background-color:transparent;border:0;border-radius:0;font-weight:400;margin:0;padding:0;text-align:left;-webkit-font-smoothing:auto;padding-top:.8125rem;padding-left:3rem;background-position-x:right;color:#0071bc;display:block;font-size:.75rem;height:2.6875rem;left:0;position:absolute;text-decoration:underline;top:0;width:100%}.usa-banner-button:hover{background-color:transparent}@media screen and (min-width:481px){.usa-banner-button{padding-top:0;padding-left:0;display:inline;height:auto;margin-left:3px;position:relative;vertical-align:middle;width:auto}}.usa-banner-button:hover{color:#205493;text-decoration:underline}.usa-banner-button[aria-expanded=false]{background-image:none}.usa-banner-button[aria-expanded=false]:after{background-image:url(../img/angle-arrow-down-primary.png);background-image:url(../img/angle-arrow-down-primary.svg);background-size:100%;content:"";display:inline-block;height:.625rem;width:.625rem;margin-left:0}.usa-banner-button[aria-expanded=false]:hover:after{background-image:url(../img/angle-arrow-down-primary-hover.png);background-image:url(../img/angle-arrow-down-primary-hover.svg)}.usa-banner-button[aria-expanded=false]:after{background-position-y:1px}.usa-banner-button[aria-expanded=true]{background-image:none;height:3.5rem}.usa-banner-button[aria-expanded=true]:after{background-image:url(../img/close.png);background-image:url(../img/close.svg);background-size:100%;content:"";display:inline-block;height:.8125rem;width:.8125rem;margin-left:0}@media screen and (min-width:481px){.usa-banner-button[aria-expanded=true]{height:auto;padding:0;position:relative}.usa-banner-button[aria-expanded=true]:after{background-image:url(../img/angle-arrow-up-primary.png);background-image:url(../img/angle-arrow-up-primary.svg);background-size:100%;content:"";display:inline-block;height:.625rem;width:.625rem;margin-left:0}.usa-banner-button[aria-expanded=true]:hover:after{background-image:url(../img/angle-arrow-up-primary-hover.png);background-image:url(../img/angle-arrow-up-primary-hover.svg)}.usa-banner-button[aria-expanded=true]:after{background-position-y:1px}}.usa-banner-button[aria-expanded=true]:after{position:absolute;right:.9375rem;top:1.34375rem}@media screen and (min-width:481px){.usa-banner-button[aria-expanded=true]:after{position:static}}.usa-banner-button[aria-expanded=true] .usa-banner-button-text{display:none}@media screen and (min-width:481px){.usa-banner-button[aria-expanded=true] .usa-banner-button-text{display:inline}}.usa-banner-icon{width:2.375rem}.usa-button,.usa-button-primary,.usa-button-primary:visited,.usa-button:visited{padding:.625rem 1.25rem}.usa-banner{position:relative}@media screen and (min-width:801px){.usa-banner-inner{padding:0 calc(2% + 8px);width:96%}}@media screen and (min-width:1025px){.usa-banner-inner{margin:0 auto;padding:0 .5rem;width:960px}}@media screen and (min-width:801px){.usa-banner-content{padding-left:calc(2% + 8px);padding-right:calc(2% + 8px);width:96%}}@media screen and (min-width:1025px){.usa-banner-content{padding-left:.5rem;padding-right:.5rem;width:960px}}.usa-banner-header{font-size:.625rem}@media screen and (min-width:481px){.usa-banner-header{font-size:.75rem;padding:0 0 3px}}.usa-banner-header img{display:block;float:left;margin-right:.625rem;margin-top:0;vertical-align:middle;width:1.5rem}@media screen and (min-width:481px){.usa-banner-header img{display:inline-block;float:none;margin-right:.625rem;width:1.25rem}}.usa-banner-header p{top:1px;left:-2px;display:block;line-height:1.15;position:relative}@media screen and (min-width:481px){.usa-banner-header p{position:relative;top:auto;left:auto;display:inline;line-height:1;overflow:visible;margin:0}}.usa-banner-header-expanded img{margin-right:.625rem}.usa-accordion-button[aria-expanded=false],.usa-accordion-button[aria-expanded=true]{background-size:.9375rem}.usa-accordion-button[aria-expanded=false]:after,.usa-accordion-button[aria-expanded=true]:after{height:.625rem;width:.625rem}@media screen and (min-width:481px){.usa-accordion-button[aria-expanded=false],.usa-accordion-button[aria-expanded=true]{top:1px;padding-left:4px}}.usa-media_block-img{float:left;margin-right:1rem}.usa-media_block-body{overflow:hidden} -/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImRnLXVzd2RzLnNjc3MiLCJfZGctbm9ybWFsaXplLnNjc3MiLCIuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdXN3ZHMvZGlzdC9zY3NzL2xpYi9jc3MzL19mb250LWZhY2Uuc2NzcyIsIi4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy91c3dkcy9kaXN0L3Njc3MvY29yZS9fZm9udHMuc2NzcyIsIi4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy91c3dkcy9kaXN0L3Njc3MvbGliL2hlbHBlcnMvX2ZvbnQtc291cmNlLWRlY2xhcmF0aW9uLnNjc3MiLCIuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdXN3ZHMvZGlzdC9zY3NzL2NvcmUvX2dyaWQuc2NzcyIsIi4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy91c3dkcy9kaXN0L3Njc3MvbGliL2dyaWQvX291dGVyLWNvbnRhaW5lci5zY3NzIiwiLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Vzd2RzL2Rpc3Qvc2Nzcy9saWIvc2V0dGluZ3MvX2dyaWQuc2NzcyIsIl9kZy12YXJpYWJsZXMuc2NzcyIsIi4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy91c3dkcy9kaXN0L3Njc3MvbGliL21peGlucy9fY2xlYXJmaXguc2NzcyIsIi4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy91c3dkcy9kaXN0L3Njc3MvbGliL2hlbHBlcnMvX2RpcmVjdGlvbmFsLXZhbHVlcy5zY3NzIiwiX2RnLWZ1bmN0aW9ucy5zY3NzIiwiLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Vzd2RzL2Rpc3Qvc2Nzcy9saWIvZ3JpZC9fbWVkaWEuc2NzcyIsIi4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy91c3dkcy9kaXN0L3Njc3MvbGliL2dyaWQvX3NwYW4tY29sdW1ucy5zY3NzIiwiLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Vzd2RzL2Rpc3Qvc2Nzcy9saWIvZ3JpZC9fcHJpdmF0ZS5zY3NzIiwiLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Vzd2RzL2Rpc3Qvc2Nzcy9saWIvZ3JpZC9fb21lZ2Euc2NzcyIsIi4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy91c3dkcy9kaXN0L3Njc3MvbGliL2dyaWQvX3NoaWZ0LnNjc3MiLCIuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdXN3ZHMvZGlzdC9zY3NzL2NvcmUvX3V0aWxpdGllcy5zY3NzIiwiLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Vzd2RzL2Rpc3Qvc2Nzcy9jb3JlL19iYXNlLnNjc3MiLCIuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdXN3ZHMvZGlzdC9zY3NzL2NvcmUvX3ZhcmlhYmxlcy5zY3NzIiwiZGctdXN3ZHMuY3NzIiwiX2RnLWJ1dHRvbnMuc2NzcyIsIi4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy91c3dkcy9kaXN0L3Njc3MvY29tcG9uZW50cy9fYWNjb3JkaW9ucy5zY3NzIiwiX2RnLWJhbm5lci5zY3NzIiwiX2RnLXVzd2RzLW92ZXJyaWRlcy5zY3NzIiwiLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Vzd2RzL2Rpc3Qvc2Nzcy9saWIvYWRkb25zL19wb3NpdGlvbi5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQVNBLHFCQUFxQixBQ2lObkIsK0JBQ0UsdUJBQXVCLEFBQ3ZCLDBCQUEwQixBQUMxQiw2QkFBOEIsQ0FDL0IsQUFDRCwrQkFDRSxRQUFTLENBQ1YsQUFFRCx1Y0FhRSxhQUFjLENBQ2YsQUFFRCw0SUFJRSxxQkFBcUIsQUFDckIsdUJBQXdCLENBQ3pCLEFBRUQsaUVBQ0UsYUFBYSxBQUNiLFFBQVMsQ0FDVixBQUVELDhFQUVFLFlBQWEsQ0FDZCxBQUVELHlCQUNFLDRCQUE2QixDQUM5QixBQUVELDRFQUVFLFNBQVUsQ0FDWCxBQUVELDZDQUNFLHdCQUF5QixDQUMxQixBQUVELDREQUVFLGVBQWlCLENBQ2xCLEFBRUQsNkJBQ0UsaUJBQWtCLENBQ25CLEFBRUQsR0FDRSxjQUFjLEFBQ2QsY0FBZ0IsQ0FDakIsQUFFRCwrQkFDRSxnQkFBZ0IsQUFDaEIsVUFBVyxDQUNaLEFBRUQsaUNBQ0UsYUFBYyxDQUNmLEFBRUQsMERBRUUsY0FBYyxBQUNkLGNBQWMsQUFDZCxrQkFBa0IsQUFDbEIsdUJBQXdCLENBQ3pCLEFBRUQsNkJBQ0UsU0FBVyxDQUNaLEFBRUQsNkJBQ0UsYUFBZSxDQUNoQixBQUVELDZCQUNFLFFBQVMsQ0FDVixBQUVELG1EQUNFLGVBQWdCLENBQ2pCLEFBRUQsbUNBQ0UsZUFBZ0IsQ0FDakIsQUFFRCwyQkFDRSx1QkFBdUIsQUFDdkIsUUFBUyxDQUNWLEFBRUQsNkJBQ0UsYUFBYyxDQUNmLEFBRUQsd0hBSUUsZ0NBQWlDLEFBQ2pDLGFBQWMsQ0FDZixBQUVELHFMQUtFLGNBQWMsQUFDZCxhQUFhLEFBQ2IsUUFBUyxDQUNWLEFBRUQsbUNBQ0UsZ0JBQWlCLENBQ2xCLEFBRUQsc0VBRUUsbUJBQW9CLENBQ3JCLEFBRUQsK0tBSUUsMEJBQTBCLEFBQzFCLGNBQWUsQ0FDaEIsQUFFRCw0RUFFRSxjQUFlLENBQ2hCLEFBRUQsNElBRUUsU0FBUyxBQUNULFNBQVUsQ0FDWCxBQUVELGlDQUNFLGtCQUFtQixDQUNwQixBQUVELHdIQUVFLHNCQUFzQixBQUN0QixTQUFVLENBQ1gsQUFFRCxrT0FFRSxXQUFZLENBQ2IsQUFFRCwyREFDRSw2QkFBNkIsQUFDN0Isc0JBQXVCLENBQ3hCLEFBRUQsd09BRUUsdUJBQXdCLENBQ3pCLEFBRUQsdUNBQ0Usd0JBQXlCLEFBQ3pCLGFBQWEsQUFDYiwwQkFBOEIsQ0FDL0IsQUFFRCxtQ0FDRSxTQUFTLEFBQ1QsU0FBVSxDQUNYLEFBRUQsdUNBQ0UsYUFBYyxDQUNmLEFBRUQsdUNBQ0UsZUFBaUIsQ0FDbEIsQUFFRCxpQ0FDRSx5QkFBeUIsQUFDekIsZ0JBQWlCLENBQ2xCLEFBRUQsc0RBRUUsU0FBVSxDQUNYLEFDdGFELFdBQ0UsNEJDVGUsQURVZixrQkNQSSxBRFFKLGdCQ1RDLEFEV0QsbVJFUzZDLENBQUEsQUZkL0MsV0FDRSw0QkNEZSxBREVmLGtCQ0NJLEFEQUosZ0JDREMsQURHRCwyUkVTNkMsQ0FBQSxBRmQvQyxXQUNFLDRCQ09lLEFETmYsa0JDU0ksQURSSixnQkNPQyxBRExELHVSRVM2QyxDQUFBLEFGZC9DLFdBQ0UsNEJDZWUsQURkZixrQkNpQkksQURoQkosZ0JDZUMsQURiRCwrUUVTNkMsQ0FBQSxBRmQvQyxXQUNFLHlCQ3VCWSxBRHRCWixrQkN5QkksQUR4QkosZ0JDdUJDLEFEckJELCtRRVM2QyxDQUFBLEFGZC9DLFdBQ0UseUJDK0JZLEFEOUJaLGtCQ2lDSSxBRGhDSixnQkMrQkMsQUQ3QkQsdVJFUzZDLENBQUEsQUZkL0MsV0FDRSx5QkN1Q1ksQUR0Q1osa0JDeUNJLEFEeENKLGdCQ3VDQyxBRHJDRCxtUkVTNkMsQ0FBQSxBRmQvQyxXQUNFLHlCQytDWSxBRDlDWixrQkNpREksQURoREosZ0JDK0NDLEFEN0NELDJRRVM2QyxDQUFBLEFDdkJqRCx5QkMyQkUsaUJDSmdCLEFETWQsaUJBQVUsQUFDVixrQkFBVyxBRDNCYixlRzhJNkIsQ0g3STlCLEFJY0MscUNBQ0UsV0FBVyxBQUNYLFdBQVcsQUFDWCxhQUFjLENBQ2YsQUpoQkgsVUt3RTBCLG1CQzlFZixBRG1GZSxpQkNuRmYsQ05ZVixBTzZDRyxvQ1BuREosVUt3RTBCLHVCQzlFZixBRG1GZSxxQkNuRmYsQ05ZVixDQUFBLEFBRUQsZUFDRSxTQUFVLENBQ1gsQU9xRUcsb0NQakVGLHFCUThDRSxXQUFPLEFBR0wsY0FBYyxBQWVkLHNCQ3RFMEMsQUR1RTFDLFVDNUV5QyxDVGE1QyxBUWlFRyxnQ0FDRSxjQUE4QixDQUMvQixBUmpFTCxvQlEwQ0UsV0FBTyxBQUdMLGNBQWMsQUFlZCxzQkN0RTBDLEFEdUUxQyxlQzVFeUMsQ1RpQjVDLEFRNkRHLCtCQUNFLGNBQThCLENBQy9CLEFSN0RMLHFCUXNDRSxXQUFPLEFBR0wsY0FBYyxBQWVkLHNCQ3RFMEMsQUR1RTFDLGVDNUV5QyxDVHFCNUMsQVF5REcsZ0NBQ0UsY0FBOEIsQ0FDL0IsQVJ6REwsc0JRa0NFLFdBQU8sQUFHTCxjQUFjLEFBZWQsc0JDdEUwQyxBRHVFMUMsZUM1RXlDLENUeUI1QyxBUXFERyxpQ0FDRSxjQUE4QixDQUMvQixBUnJETCxzQlE4QkUsV0FBTyxBQUdMLGNBQWMsQUFlZCxzQkN0RTBDLEFEdUUxQyxlQzVFeUMsQ1RpQzVDLEFRNkNHLGlDQUNFLGNBQThCLENBQy9CLEFSckRMLG9DQUlJLGNBQWUsQ0FDaEIsQUFHSCx5QlFzQkUsV0FBTyxBQUdMLGNBQWMsQUFlZCxzQkN0RTBDLEFEdUUxQyxVQzVFeUMsQ1RxQzVDLEFReUNHLG9DQUNFLGNBQThCLENBQy9CLEFSekNMLHFCUWtCRSxXQUFPLEFBR0wsY0FBYyxBQWVkLHNCQ3RFMEMsQUR1RTFDLGVDNUV5QyxDVDZDNUMsQVFpQ0csZ0NBQ0UsY0FBOEIsQ0FDL0IsQVJ6Q0wsbUNBSUksY0FBZSxDQUNoQixBQUdILHVCUVVFLFdBQU8sQUFHTCxjQUFjLEFBZWQsc0JDdEUwQyxBRHVFMUMsZUM1RXlDLENUaUQ1QyxBUTZCRyxrQ0FDRSxjQUE4QixDQUMvQixBUjdCTCx1QlFNRSxXQUFPLEFBR0wsY0FBYyxBQWVkLHNCQ3RFMEMsQUR1RTFDLGVDNUV5QyxDVHlENUMsQVFxQkcsa0NBQ0UsY0FBOEIsQ0FDL0IsQVI3QkwscUNBSUksY0FBZSxDQUNoQixBQUdILHlCUUZFLFdBQU8sQUFHTCxjQUFjLEFBZWQsc0JDdEUwQyxBRHVFMUMsZUM1RXlDLENUNkQ1QyxBUWlCRyxvQ0FDRSxjQUE4QixDQUMvQixBUmpCTCwwQlFORSxXQUFPLEFBR0wsY0FBYyxBQWVkLHNCQ3RFMEMsQUR1RTFDLGVDNUV5QyxDVGlFNUMsQVFhRyxxQ0FDRSxjQUE4QixDQUMvQixDQUFBLEFESkgscUNQUEYscUJRWkUsV0FBTyxBQUdMLGNBQWMsQUFlZCxzQkN0RTBDLEFEdUUxQyxVQzVFeUMsQ1R1RTVDLEFRT0csZ0NBQ0UsY0FBOEIsQ0FDL0IsQVJQTCxvQlFoQkUsV0FBTyxBQUdMLGNBQWMsQUFlZCxzQkN0RTBDLEFEdUUxQyxlQzVFeUMsQ1QyRTVDLEFRR0csK0JBQ0UsY0FBOEIsQ0FDL0IsQVJITCxxQlFwQkUsV0FBTyxBQUdMLGNBQWMsQUFlZCxzQkN0RTBDLEFEdUUxQyxlQzVFeUMsQ1QrRTVDLEFRREcsZ0NBQ0UsY0FBOEIsQ0FDL0IsQVJDTCxzQlF4QkUsV0FBTyxBQUdMLGNBQWMsQUFlZCxzQkN0RTBDLEFEdUUxQyxlQzVFeUMsQ1RtRjVDLEFRTEcsaUNBQ0UsY0FBOEIsQ0FDL0IsQVJLTCxzQlE1QkUsV0FBTyxBQUdMLGNBQWMsQUFlZCxzQkN0RTBDLEFEdUUxQyxlQzVFeUMsQ1QrRjVDLEFRakJHLGlDQUNFLGNBQThCLENBQy9CLEFSS0wsb0NRNUJFLFdBQU8sQUFHTCxjQUFjLEFBZWQsc0JDdEUwQyxBRHVFMUMsZUM1RXlDLENUMEYxQyxBUVpDLCtDQUNFLGNBQThCLENBQy9CLEFSS0wsb0NBUUksY0FBZSxDQUNoQixBQUdILHlCUXhDRSxXQUFPLEFBR0wsY0FBYyxBQWVkLHNCQ3RFMEMsQUR1RTFDLGVDNUV5QyxDVG1HNUMsQVFyQkcsb0NBQ0UsY0FBOEIsQ0FDL0IsQVJxQkwscUJRNUNFLFdBQU8sQUFHTCxjQUFjLEFBZWQsc0JDdEUwQyxBRHVFMUMsZUM1RXlDLENUK0c1QyxBUWpDRyxnQ0FDRSxjQUE4QixDQUMvQixBUnFCTCxtQ1E1Q0UsV0FBTyxBQUdMLGNBQWMsQUFlZCxzQkN0RTBDLEFEdUUxQyxlQzVFeUMsQ1QwRzFDLEFRNUJDLDhDQUNFLGNBQThCLENBQy9CLEFScUJMLG1DQVFJLGNBQWUsQ0FDaEIsQUFHSCx1QlF4REUsV0FBTyxBQUdMLGNBQWMsQUFlZCxzQkN0RTBDLEFEdUUxQyxlQzVFeUMsQ1RtSDVDLEFRckNHLGtDQUNFLGNBQThCLENBQy9CLEFScUNMLHVCUTVERSxXQUFPLEFBR0wsY0FBYyxBQWVkLHNCQ3RFMEMsQUR1RTFDLGNDNUV5QyxDVCtINUMsQVFqREcsa0NBQ0UsY0FBOEIsQ0FDL0IsQVJxQ0wscUNRNURFLFdBQU8sQUFHTCxjQUFjLEFBZWQsc0JDdEUwQyxBRHVFMUMsY0M1RXlDLENUMEgxQyxBUTVDQyxnREFDRSxjQUE4QixDQUMvQixBUnFDTCxzQ0FRSSxjQUFlLENBQ2hCLEFBR0gseUJReEVFLFdBQU8sQUFHTCxjQUFjLEFBZWQsc0JDdEUwQyxBRHVFMUMsZUM1RXlDLENUbUk1QyxBUXJERyxvQ0FDRSxjQUE4QixDQUMvQixBUnFETCwwQlE1RUUsV0FBTyxBQUdMLGNBQWMsQUFlZCxzQkN0RTBDLEFEdUUxQyxlQzVFeUMsQ1R1STVDLEFRekRHLHFDQUNFLGNBQThCLENBQy9CLENBQUEsQVI2RFAsYVVoR00sY0FBOEIsQ1ZrR25DLEFBR0Qsd0JXL0dFLG1CQUE0SCxDWGlIN0gsQUFFRCxzQlduSEUscUJBQTRILENYcUg3SCxBQUVELHVCV3ZIRSxxQkFBNEgsQ1h5SDdILEFBRUQsc0JXM0hFLHFCQUE0SCxDWDZIN0gsQUFFRCwwQlcvSEUscUJBQTRILENYaUk3SCxBQUVELHFCV25JRSxxQkFBNEgsQ1hxSTdILEFBRUQsMkJXdklFLHFCQUE0SCxDWHlJN0gsQUFFRCx1QlczSUUscUJBQTRILENYNkk3SCxBQUVELDBCVy9JRSxxQkFBNEgsQ1hpSjdILEFBRUQsd0JXbkpFLHFCQUE0SCxDWHFKN0gsQUFFRCw0Qld2SkUscUJBQTRILENYeUo3SCxBWXBJRCxhQWJFLGtCQUFrQixBQUNsQixXQUFZLENBY2IsQUNqRUQsS0FDRSxxQkFBc0IsQ0FDdkIsQUFFRCxpQkFHRSxrQkFBbUIsQ0FDcEIsQUFFRCxLQUNFLHNCQ3FDa0MsQURwQ2xDLGlCQUFrQixDQUNuQixBQUdELFVBRUksOEJBQXVCLEFBQXZCLHFCQUF1QixDQUN4QixBRTRlSCxTRnRlRSxzQkFBd0IsQ0FDekIsQUFFRCxrQkRTRSwyQkVrQmtDLEFGakJsQyxrQkVzRzJCLENEN0c1QixBR1RELGdGSm1FRSxrQ0FBa0MsQUFDbEMsbUNBQW1DLEFQbkJiLGdCV3RDRCxBWDJDRyxrQlczQ0csQVhxREgsbUJXckRTLEFBQ2pDLHdCQUFnQixBQUFoQixxQkFBZ0IsQUFBaEIsZ0JBQWdCLEFBQ2hCLHlCRkhrQyxBRUlsQyxTQUFTLEFBQ1Qsa0JGb0cyQixBRW5HM0IsV0ZVa0MsQUVUbEMsZUFBZSxBQUNmLHFCQUFxQixBQUNyQix3Q2JUK0MsQWFVL0Msb0JWNUNTLEFVNkNULGdCRmR1QixBRWV2QixjQUFjLEFBQ2Qsa0JBQWtCLEFBQ2xCLGtCQUFrQixBQUNsQixxQkFBcUIsQUFDckIsVUFBVyxDQTRHWixBSmpIQyxvQ0lyQkYsZ0ZBNkJJLFVBQVcsQ0F5R2QsQ0FBQSxBQXRJRCw0UEFrQ0kseUJGdkJnQyxBRXdCaEMsZ0JBQWdCLEFBQ2hCLFdGVmdDLEFFV2hDLG9CQUFxQixDQUN0QixBQXRDSCxvUUEwQ0ksd0JGOUJnQyxDRStCakMsQUEzQ0gsNEtBOENJLHlCRmhDZ0MsQUVpQ2hDLGFGbkJnQyxDRStCakMsQUEzREgsb2JBbURNLHdCRnBDOEIsQ0VxQy9CLEFBcERMLDRiQXdETSx5QkZ4QzhCLEFFeUM5QixVRi9COEIsQ0VnQy9CLEFBMURMLG9LQThESSxzQkZwQ2dDLEFFcUNoQyxtQ0ZyRGdDLEFFc0RoQyxhRnREZ0MsQ0VtRWpDLEFBN0VILG9hQW9FTSxtQ0Z6RDhCLEFFMEQ5QixhRjFEOEIsQ0UyRC9CLEFBdEVMLDRhQTBFTSxtQ0Y5RDhCLEFFK0Q5QixhRi9EOEIsQ0VnRS9CLEFBNUVMLGdZQWlGSSx1QkFBdUIsQUFDdkIsZ0NGeERnQyxBRXlEaEMsVUZ6RGdDLENFc0VqQyxBQWhHSCx3N0JBdUZNLG1DRnJEOEIsQUVzRDlCLGFGdEQ4QixDRXVEL0IsQUF6RkwsdzhCQTZGTSxtQ0Y1RDhCLEFFNkQ5QixhRjVEOEIsQ0U2RC9CLEFBL0ZMLGdKQW1HSSx3QkZwRWdDLENFK0VqQyxBQTlHSCw0WEF1R00sd0JGekU4QixDRTBFL0IsQUF4R0wsb1lBNEdNLHdCRmhGOEIsQ0VpRi9CLEFBN0dMLDRJQWlISSx3QkY3RmdDLENFd0dqQyxBQTVISCxvWEFxSE0sd0JGaEc4QixDRWlHL0IsQUF0SEwsNFhBMEhNLHdCRnBHOEIsQ0VxRy9CLEFBM0hMLDRJQStISSxpQkFBaUIsQUFDakIsbUJBQW9CLENBQ3JCLEFBaklILG9IQWhCRSx5QkZrRGtDLEFFakRsQyxtQkFBb0IsQ0FvSm5CLEFBbEpELHc3QkFNRSx5QkZ5Q2dDLEFFeENoQyxTQUFTLEFBQ1QsZUFBZ0IsQ0FDakIsQUE2SUgscUJBekpFLHlCRmtEa0MsQUVqRGxDLG1CQUFvQixDQTJKckIsQUF6SkMsOExBTUUseUJGeUNnQyxBRXhDaEMsU0FBUyxBQUNULGVBQWdCLENBQ2pCLEFBa0pILGlMQUtFLG1DRmpIa0MsQUVrSGxDLG9CQUFvQixBQUNwQixhRm5Ia0MsQ0U4SG5DLEFBbEJELHMyQ0FlSSxzQkZuSWdDLEFFb0loQyxRQUFTLENBQ1YsQUFHSCxtRUFFRSxxQkYxSWtDLENFMkluQyxBQUVELG1GQUVFLDZCQUE2QixBQUM3QixjRjNJa0MsQUU0SWxDLGtDRjVJa0MsQ0U2SW5DLEFBaUJELHFCQWRFLDZCQUE2QixBQUM3QixTQUFTLEFBQ1QsZ0JBQWdCLEFBQ2hCLGdCRjVLdUIsQUU2S3ZCLFNBQVMsQUFDVCxVQUFVLEFBQ1YsZ0JBQWdCLEFBQ2hCLDJCQUE0QixDQVM3QixBQVBDLDJCQUNFLDRCQUE2QixDQUM5QixBQ3BJSCx1Q1pMd0IsYUF0Q0gsQUErQ0ssZ0JBL0NMLEFPNENuQixxQkFBcUIsQUFDckIsZUFBZSxBS3JFZixjSHlDa0MsQUd4Q2xDLFNBQVMsQUFDVCxVQUFVLEFBQ1YsVUFBVyxDQWtHWixBTDlCRyw2Q0FDQSxlQUFnQixDQUNqQixBS2pCTyx5REFDTixlQUFnQixDQU9qQixBQU5RLHFFQUNMLGlCQUFrQixDQUluQixBQUhRLGlGQUNMLGlCQUFrQixDQUNuQixBQUtQLDRKQU9JLGVIaUVnQixDR2hFakIsQUFSSCw2Q1pMd0IsYUF0Q0gsQUErQ0ssZ0JBL0NMLEFPNENuQixxQkFBcUIsQUFDckIsZUFBZSxBS3JFZixjSHlDa0MsQUd4Q2xDLFNBQVMsQUFDVCxVQUFVLEFBQ1YsVUFBVyxDQTRGVixBTHhCQyxtREFDQSxlQUFnQixDQUNqQixBS05ILG1EQTVERSx5Qkh5Q2tDLEFHeENsQyx3Q2RlK0MsQWNkL0MsZ0JBQWdCLEFBQ2hCLG9CSGdJc0IsQUcvSHRCLFVBQVcsQ0F5RVIsQUFqQkwsMkREeUhFLDZCQUE2QixBQUM3QixTQUFTLEFBQ1QsZ0JBQWdCLEFBQ2hCLGdCRjVLdUIsQUU4S3ZCLFVBQVUsQUFDVixnQkFBZ0IsQUFDaEIsNEJBQTRCLEFDbEw1Qix5QkgrQmtDLEFHOUJsQyx1Q0FBaUQsQUFDakQsdUNBQWlELEFBQ2pELHNDQUE0QyxBQUM1Qyw0QkFBNEIsQUFDNUIsdUJIc0h1QixBR3JIdkIsY0hrQmtDLEFHakJsQyxlQUFlLEFBQ2YscUJBQXFCLEFBQ3JCLHdDZEgrQyxBY0kvQyxnQkhQdUIsQUdRdkIsU0FBUyxBQUNULGtDSGdIbUIsQUcvR25CLFVBQVcsQ0EyRFIsQUF0QkwsdUVEbUlJLDRCQUE2QixDQUM5QixBQ3BJSCx1RUFsQ0kseUJIY2dDLEFHYmhDLGFIT2dDLENHTmpDLEFBRUQsc1lBTUUsUUFBUyxDQUNWLEFBdUJILHlGQWxCRSxzQ0FBZ0QsQUFDaEQsc0NBQWdELEFBQ2hELDRCQUE0QixBQUM1QixzQkh3RnVCLENHOUNwQixBQTNCTCw2Q0E1REUseUJIeUNrQyxBR3hDbEMsd0NkZStDLEFjZC9DLGdCQUFnQixBQUNoQixvQkhnSXNCLEFHL0h0QixVQUFXLENBd0ZWLEFBSUgsK0NBRUksZ0NIekRnQyxBRzBEaEMsOEJIMURnQyxBRzJEaEMsOEJIM0RnQyxDRzREakMsQUFHSCx1QkFDRSxzQkh6RWtDLEFHMEVsQyxjQUFjLEFBQ2QsbUJIMkJtQixDR1pwQixBQWxCRCxvQ0FNSSxZQUFhLENBQ2QsQUFQSCxtQ0FVSSxlQUFnQixDQUNqQixBQVhILDBDTHRFRSxrQkFBa0IsQUFDbEIsV0FBWSxDS29GWCxBTGxFRCx5Q0FDRSxZQUFhLENBQ2QsQUtxRUgsc0JEeURFLDZCQUE2QixBQUM3QixTQUFTLEFBQ1QsZ0JBQWdCLEFBQ2hCLGdCRjVLdUIsQUU4S3ZCLFVBQVUsQUFDVixnQkFBZ0IsQUFDaEIsNEJBQTRCLEFDbEw1Qix5QkgrQmtDLEFHOUJsQyx1Q0FBaUQsQUFDakQsdUNBQWlELEFBQ2pELHNDQUE0QyxBQUM1Qyw0QkFBNEIsQUFDNUIsdUJIc0h1QixBR3JIdkIsY0hrQmtDLEFHakJsQyxlQUFlLEFBQ2YscUJBQXFCLEFBQ3JCLHdDZEgrQyxBY0kvQyxnQkhQdUIsQUdRdkIsU0FBUyxBQUNULGtDSGdIbUIsQUcvR25CLFVBQVcsQ0F1R1osQURnRUMsNEJBQ0UsNEJBQTZCLENBQzlCLEFDdktELDRCQUNFLHlCSGNnQyxBR2JoQyxhSE9nQyxDR05qQyxBQUVELHNKQU1FLFFBQVMsQ0FDVixBQTJGSCwyQ0F0RkUsc0NBQWdELEFBQ2hELHNDQUFnRCxBQUNoRCw0QkFBNEIsQUFDNUIsc0JId0Z1QixDR0h4QixBQ3JKRCxZQUNFLHlCSjJEa0MsQUkxRGxDLHVCWkRTLENZT1YsQU5zQ0Msb0NNOUNGLFlBS0ksbUJaSk8sQVlLUCxnQkFBaUIsQ0FFcEIsQ0FBQSxBQUVELG9CYjZFMEIseUJDdEZmLEFZV1QsNkJBQTZCLEFBQzdCLG1CWlpTLEFZY1QsVUFBVyxDQW9CWixBTldDLG9DTXBDRixvQkFRSSx5QlpqQk8sQVlrQlAsa0JabEJPLENZa0NWLENBQUEsQU5XQyxvQ01wQ0Ysb0JicUUwQix1QkM5RWYsQURtRmUscUJDbkZmLENZa0NWLENBQUEsQUF6QkQsa0NBa0JNLGtCWjNCSyxDWWdDTixBTmFILG9DTXBDRixrQ0FxQlEsWUFBYSxDQUVoQixDQUFBLEFBSUwsa0JqQlRFLGlCQ0pnQixBRE1kLGlCQUFVLEFBQ1Ysa0JBQVcsQUlnRFcsbUJDOUVmLEFEbUZlLGtCQ25GZixBWXVDVCxlZjBHNkIsQ2VyRzlCLEFkMUJDLHdCQUNFLFdBQVcsQUFDWCxXQUFXLEFBQ1gsYUFBYyxDQUNmLEFRdUJELG9DTVRGLGtCYjBDMEIsdUJDOUVmLEFEbUZlLHFCQ25GZixDWTRDVixDQUFBLEFBRUQsbUJiMkJ3QixzQkN6RWIsQURrRmUseUJDbEZmLEFZZ0RULGlCWmhEUyxBWWlEVCxlSm5CdUIsQ0lnRHhCLEFOakNDLG9DTUNGLG1CYjJCd0IsY0F0Q0gsQUErQ0ssZ0JBL0NMLENhMkNwQixDQUFBLEFBaENELHFCYjJCd0IsYUF0Q0gsQUErQ0ssZ0JBL0NMLEFhc0JqQixlQUFlLEFBQ2YsZ0JBQWdCLEFBQ2hCLHFCQUFzQixDQU12QixBTnBCRCxvQ01DRixxQmIyQndCLGVhWEMsQWJvQkMsa0JhcEJELEFBQ25CLG9CQUFxQixDQUV4QixDQUFBLEFBbkJILHVCQXdCSSxrQlp0RU8sQ1k2RVIsQU5oQ0Qsb0NNQ0YsdUJBNEJNLHNCWjFFSyxBWTJFTCxhWjNFSyxDWTZFUixDQUFBLEFBR0gsNEJBQ0UseUJBQW1CLEFBQW5CLHNCQUFtQixBQUFuQixtQkFBbUIsQUFDbkIsZ0NKekJrQyxBSTBCbEMsb0JBQWEsQUFBYixvQkFBYSxBQUFiLGFBQWEsQUFDYixtQlpwRlMsQVlxRlQsa0JackZTLEFZc0ZULHNCWnRGUyxDWTBIVixBTjdFQyxvQ01tQ0YsNEJBU0ksbUJBQW1CLEFBQ25CLGNBQWMsQUFDZCxpQlozRk8sQVk0RlAsZ0JKOURxQixBSStEckIsYUFBYSxBQUNiLGVBQWdCLENBNEJuQixDQUFBLEFBMUNELDhDQWtCSSxhQUFjLENBS2YsQU4xREQsb0NNbUNGLDhDQXFCTSxnQkFBaUIsQ0FFcEIsQ0FBQSxBQXZCSCxnQ0EwQkksbUJaMUdPLENZK0dSLEFObEVELG9DTW1DRixnQ0E2Qk0scUJaN0dLLENZK0dSLENBQUEsQUEvQkgsOEJBa0NJLGdCSjNGcUIsQUk0RnJCLGtCQUFtQixDQU1wQixBTjVFRCxvQ01tQ0YsOEJBc0NNLGdCSmhHbUIsQUlpR25CLHFCQUFzQixDQUV6QixDQUFBLEFBR0gsbUJGMkVFLDZCQUE2QixBQUM3QixTQUFTLEFBQ1QsZ0JBQWdCLEFBQ2hCLGdCRjVLdUIsQUU2S3ZCLFNBQVMsQUFDVCxVQUFVLEFBQ1YsZ0JBQWdCLEFBQ2hCLDRCQUE0QixBWHJJTixxQkN6RWIsQUR5RmUsa0JDekZmLEFZK0hULDRCQUE0QixBQUM1QixjSjlGa0MsQUkrRmxDLGNBQWMsQUFDZCxpQlpsSVMsQVltSVQsaUJabklTLEFZb0lULE9BQU8sQUFDUCxrQkFBa0IsQUFDbEIsMEJBQTBCLEFBQzFCLE1BQU0sQUFDTixVQUFXLENBOERaLEFGVUMseUJBQ0UsNEJBQTZCLENBQzlCLEFKcktELG9DTStFRixtQmJuRHdCLGNBdENILEFBc0RLLGVBbkRMLEFhdUdqQixlQUFlLEFBQ2YsWUFBZSxBQUNmLGdCQUFnQixBQUNoQixrQkFBa0IsQUFDbEIsc0JBQXNCLEFBQ3RCLFVBQWMsQ0FvRGpCLENBQUEsQUExRUQseUJBMkJJLGNKcEhnQyxBSXFIaEMseUJBQTBCLENBQzNCLEFBN0JILHdDQWlDSSxxQkFBc0IsQ0FLdkIsQU5mRCw4Q0FDRSwwREFBb0QsQUFDcEQsMERBQW9ELEFBQ3BELHFCQUFxQixBQUNyQixXQUFXLEFBQ1gscUJBQXFCLEFBQ3JCLGVOekpPLEFNMEpQLGNOMUpPLEFNOEpMLGFNRmtFLENOT3JFLEFBR0Msb0RBQ0UsZ0VBQTBELEFBQzFELCtEQUEwRCxDQUMzRCxBTTdDTCw4Q0FvQ00seUJBQTBCLENBQzNCLEFBckNMLHVDQTBDSSxzQkFBc0IsQUFDdEIsYVp2S08sQ1lxTVIsQU5sREQsNkNBQ0UsdUNBQW9ELEFBQ3BELHVDQUFvRCxBQUNwRCxxQkFBcUIsQUFDckIsV0FBVyxBQUNYLHFCQUFxQixBQUNyQixnQk56Sk8sQU0wSlAsZU4xSk8sQU04SkwsYU1PK0MsQ05GbEQsQUF0SEQsb0NNK0VGLHVDQStDTSxZQUFlLEFBQ2YsVUFBVSxBQUNWLGlCQUFrQixDQXdCckIsQU5sREQsNkNBQ0Usd0RBQW9ELEFBQ3BELHdEQUFvRCxBQUNwRCxxQkFBcUIsQUFDckIsV0FBVyxBQUNYLHFCQUFxQixBQUNyQixlTnpKTyxBTTBKUCxjTjFKTyxBTThKTCxhTVlrRSxDTlByRSxBQUdDLG1EQUNFLDhEQUEwRCxBQUMxRCw2REFBMEQsQ0FDM0QsQU03Q0wsNkNBb0RRLHlCQUEwQixDQUMzQixDQUFBLEFBckRQLDZDQXlETSxrQkFBa0IsQUFDbEIsZVp0TEssQVl1TEwsY1p2TEssQ1k0TE4sQU4vSUgsb0NNK0VGLDZDQThEUSxlQUFnQixDQUVuQixDQUFBLEFBaEVMLCtEQW1FTSxZQUFhLENBS2QsQU52Skgsb0NNK0VGLCtEQXNFUSxjQUFlLENBRWxCLENBQUEsQUFJTCxpQkFDRSxjWnpNUyxDWTBNVixBQzNNRCxnRkFJRSx1QmJIUyxDYUlWLEFBRUQsWUFDRSxpQkFBa0IsQ0FDbkIsQVBxQ0Msb0NPbkNGLGtCQUVJLHlCQUF5QixBQUN6QixTQUFVLENBT2IsQ0FBQSxBUHlCQyxxQ09uQ0Ysa0JBTUksY0FBYyxBQUNkLGdCYmpCTyxBYWtCUCxXQUFZLENBRWYsQ0FBQSxBUHlCQyxvQ092QkYsb0JBRUksNEJBQTRCLEFBQzVCLDZCQUE2QixBQUM3QixTQUFVLENBT2IsQ0FBQSxBUFlDLHFDT3ZCRixvQkFPSSxtQmI3Qk8sQWE4QlAsb0JiOUJPLEFhK0JQLFdBQVksQ0FFZixDQUFBLEFBRUQsbUJBQ0UsaUJicENTLENhMEVWLEFQN0JDLG9DT1ZGLG1CQUdJLGlCYnRDTyxBRDRGUCxlY3JEd0IsQ0FtQzNCLENBQUEsQUF2Q0QsdUJBT0ksY0FBYyxBQUNkLFdBQVcsQUFDWCxxQmI1Q08sQWE2Q1AsYUFBYSxBQUNiLHNCQUFzQixBQUN0QixZYi9DTyxDYXVEUixBUFZELG9DT1ZGLHVCQWVNLHFCQUFxQixBQUNyQixXQUFXLEFBQ1gscUJicERLLEFhcURMLGFickRLLENhdURSLENBQUEsQUFwQkgscUJDUU0sUURjbUIsQUNkbkIsVURja0MsQUFDcEMsY0FBYyxBQUNkLGlCQUFpQixBQUNqQixpQkFBa0IsQ0FRbkIsQVB2QkQsb0NPVkYscUJDSUUsa0JBWnFCLEFBZ0JqQixTRG1Cc0IsQUNuQnRCLFVEbUJxQyxBQUNyQyxlQUFlLEFBQ2YsY0FBYyxBQUNkLGlCQUFpQixBQUNqQixRQUFTLENBRVosQ0FBQSxBQUNELGdDQUVJLG9CYnZFSyxDYXdFTixBQUlMLHFGQUVFLHdCYjlFUyxDYXVGVixBQVhELGlHQUlJLGViaEZPLEFhaUZQLGFiakZPLENha0ZSLEFQckNELG9DTytCRixxRkFRSSxRQUFRLEFBQ1IsZ0JBQWlCLENBRXBCLENBQUEsQUFHQyxxQkFDRSxXQUFXLEFBQ1gsaUJBQWtCLENBQ25CLEFBQ0Qsc0JBQ0UsZUFBZ0IsQ0FDakIiLCJmaWxlIjoiZGctdXN3ZHMubWluLmNzcyIsInNvdXJjZXNDb250ZW50IjpbIi8vIFVTV0RTIFNBU1MgdmFyaWFibGUgb3ZlcnJpZGVzIGdvIGhlcmUsIGJlZm9yZSB3ZSBpbXBvcnQgVVNXRFMgaXRzZWxmLlxuXG4kYm9yZGVyLWJveC1zaXppbmc6IGZhbHNlO1xuJHNjb3BlLW5vcm1hbGl6ZTogdHJ1ZTtcblxuQGltcG9ydCAnZGctdmFyaWFibGVzJztcblxuLy8gQ29weSBpbXBvcnRzIGZyb20gVVNXRFMgbW9kdWxlIHRvIGNvbnRyb2wgaW1wb3J0c1xuXG4vKiEgdXN3ZHMgQHZlcnNpb24gKi9cblxuXG4vLyBWZW5kb3IgLS0tLS0tLS0tLS0tLS0gLy9cbkBpbXBvcnQgJ2xpYi9ib3VyYm9uJztcbkBpbXBvcnQgJ2xpYi9uZWF0JztcbkBpbXBvcnQgJ2RnLW5vcm1hbGl6ZSc7XG5cbi8vIENvcmUgLS0tLS0tLS0tLS0tLS0gLy9cbkBpbXBvcnQgJ2NvcmUvdmFyaWFibGVzJztcbkBpbXBvcnQgJ2NvcmUvZm9udHMnO1xuQGltcG9ydCAnY29yZS9ncmlkJztcbkBpbXBvcnQgJ2NvcmUvdXRpbGl0aWVzJztcbkBpbXBvcnQgJ2NvcmUvYmFzZSc7XG5cbi8vIEVsZW1lbnRzIC0tLS0tLS0tLS0tLS0tIC8vXG4vLyBTdHlsZXMgYmFzaWMgSFRNTCBlbGVtZW50c1xuQGltcG9ydCAnZGctYnV0dG9ucyc7XG4vKlxuQGltcG9ydCAnZWxlbWVudHMvZW1iZWQnO1xuQGltcG9ydCAnZWxlbWVudHMvZmlndXJlJztcbkBpbXBvcnQgJ2VsZW1lbnRzL2lucHV0cyc7XG5AaW1wb3J0ICdlbGVtZW50cy9sYWJlbHMnO1xuQGltcG9ydCAnZWxlbWVudHMvbGlzdCc7XG5AaW1wb3J0ICdlbGVtZW50cy90YWJsZSc7XG5AaW1wb3J0ICdlbGVtZW50cy90eXBvZ3JhcGh5JztcblxuLy8gQ29tcG9uZW50cyAtLS0tLS0tLS0tLS0tLSAvL1xuKi9cbkBpbXBvcnQgJ2NvbXBvbmVudHMvYWNjb3JkaW9ucyc7XG4vKlxuQGltcG9ydCAnY29tcG9uZW50cy9hbGVydHMnO1xuKi9cbkBpbXBvcnQgJ2RnLWJhbm5lcic7XG4vKlxuQGltcG9ydCAnY29tcG9uZW50cy9mb290ZXInO1xuQGltcG9ydCAnY29tcG9uZW50cy9mb3Jtcyc7XG5AaW1wb3J0ICdjb21wb25lbnRzL2dyYXBoaWMtbGlzdCc7XG5AaW1wb3J0ICdjb21wb25lbnRzL2hlYWRlcic7XG5AaW1wb3J0ICdjb21wb25lbnRzL2hlcm8nO1xuQGltcG9ydCAnY29tcG9uZW50cy9sYXlvdXQnO1xuQGltcG9ydCAnY29tcG9uZW50cy9tZWRpYS1ibG9jayc7XG5AaW1wb3J0ICdjb21wb25lbnRzL25hdmlnYXRpb24nO1xuQGltcG9ydCAnY29tcG9uZW50cy9zZWFyY2gnO1xuQGltcG9ydCAnY29tcG9uZW50cy9zZWN0aW9uJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvc2lkZW5hdic7XG5AaW1wb3J0ICdjb21wb25lbnRzL3NraXBuYXYnO1xuKi9cblxuLy8gTmV3IGN1c3RvbSBDU1MgcnVsZXMgY2FuIGdvIGhlcmUuXG5cbkBpbXBvcnQgJ2RnLXVzd2RzLW92ZXJyaWRlcyc7XG4iLCJAaWYgJHNjb3BlLW5vcm1hbGl6ZSA9PSBmYWxzZSB7XG4gIGh0bWwge1xuICAgIGZvbnQtZmFtaWx5OiBzYW5zLXNlcmlmOyAvKiAxICovXG4gICAgLW1zLXRleHQtc2l6ZS1hZGp1c3Q6IDEwMCU7IC8qIDIgKi9cbiAgICAtd2Via2l0LXRleHQtc2l6ZS1hZGp1c3Q6IDEwMCU7IC8qIDIgKi9cbiAgfVxuXG4gIGJvZHkge1xuICAgIG1hcmdpbjogMDtcbiAgfVxuXG4gIGFydGljbGUsXG4gIGFzaWRlLFxuICBkZXRhaWxzLFxuICBmaWdjYXB0aW9uLFxuICBmaWd1cmUsXG4gIGZvb3RlcixcbiAgaGVhZGVyLFxuICBoZ3JvdXAsXG4gIG1haW4sXG4gIG1lbnUsXG4gIG5hdixcbiAgc2VjdGlvbixcbiAgc3VtbWFyeSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gIH1cblxuICBhdWRpbyxcbiAgY2FudmFzLFxuICBwcm9ncmVzcyxcbiAgdmlkZW8ge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsgLyogMSAqL1xuICAgIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTsgLyogMiAqL1xuICB9XG5cbiAgYXVkaW86bm90KFtjb250cm9sc10pIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICAgIGhlaWdodDogMDtcbiAgfVxuXG4gIFtoaWRkZW5dLFxuICB0ZW1wbGF0ZSB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxuXG4gIGEge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICB9XG5cbiAgYTphY3RpdmUsXG4gIGE6aG92ZXIge1xuICAgIG91dGxpbmU6IDA7XG4gIH1cblxuICBhYmJyW3RpdGxlXSB7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IGRvdHRlZDtcbiAgfVxuXG4gIGIsXG4gIHN0cm9uZyB7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIH1cblxuICBkZm4ge1xuICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgfVxuXG4gIGgxIHtcbiAgICBmb250LXNpemU6IDJlbTtcbiAgICBtYXJnaW46IDAuNjdlbSAwO1xuICB9XG5cbiAgbWFyayB7XG4gICAgYmFja2dyb3VuZDogI2ZmMDtcbiAgICBjb2xvcjogIzAwMDtcbiAgfVxuXG4gIHNtYWxsIHtcbiAgICBmb250LXNpemU6IDgwJTtcbiAgfVxuXG4gIHN1YixcbiAgc3VwIHtcbiAgICBmb250LXNpemU6IDc1JTtcbiAgICBsaW5lLWhlaWdodDogMDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xuICB9XG5cbiAgc3VwIHtcbiAgICB0b3A6IC0wLjVlbTtcbiAgfVxuXG4gIHN1YiB7XG4gICAgYm90dG9tOiAtMC4yNWVtO1xuICB9XG5cbiAgaW1nIHtcbiAgICBib3JkZXI6IDA7XG4gIH1cblxuICBzdmc6bm90KDpyb290KSB7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgfVxuXG4gIGZpZ3VyZSB7XG4gICAgbWFyZ2luOiAxZW0gNDBweDtcbiAgfVxuXG4gIGhyIHtcbiAgICBib3gtc2l6aW5nOiBjb250ZW50LWJveDtcbiAgICBoZWlnaHQ6IDA7XG4gIH1cblxuICBwcmUge1xuICAgIG92ZXJmbG93OiBhdXRvO1xuICB9XG5cbiAgY29kZSxcbiAga2JkLFxuICBwcmUsXG4gIHNhbXAge1xuICAgIGZvbnQtZmFtaWx5OiBtb25vc3BhY2UsIG1vbm9zcGFjZTtcbiAgICBmb250LXNpemU6IDFlbTtcbiAgfVxuXG4gIGJ1dHRvbixcbiAgaW5wdXQsXG4gIG9wdGdyb3VwLFxuICBzZWxlY3QsXG4gIHRleHRhcmVhIHtcbiAgICBjb2xvcjogaW5oZXJpdDsgLyogMSAqL1xuICAgIGZvbnQ6IGluaGVyaXQ7IC8qIDIgKi9cbiAgICBtYXJnaW46IDA7IC8qIDMgKi9cbiAgfVxuXG4gIGJ1dHRvbiB7XG4gICAgb3ZlcmZsb3c6IHZpc2libGU7XG4gIH1cblxuICBidXR0b24sXG4gIHNlbGVjdCB7XG4gICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gIH1cblxuICBidXR0b24sXG4gIGh0bWwgaW5wdXRbdHlwZT1cImJ1dHRvblwiXSwgLyogMSAqL1xuICBpbnB1dFt0eXBlPVwicmVzZXRcIl0sXG4gIGlucHV0W3R5cGU9XCJzdWJtaXRcIl0ge1xuICAgIC13ZWJraXQtYXBwZWFyYW5jZTogYnV0dG9uOyAvKiAyICovXG4gICAgY3Vyc29yOiBwb2ludGVyOyAvKiAzICovXG4gIH1cblxuICBidXR0b25bZGlzYWJsZWRdLFxuICBodG1sIGlucHV0W2Rpc2FibGVkXSB7XG4gICAgY3Vyc29yOiBkZWZhdWx0O1xuICB9XG5cbiAgYnV0dG9uOjotbW96LWZvY3VzLWlubmVyLFxuICBpbnB1dDo6LW1vei1mb2N1cy1pbm5lciB7XG4gICAgYm9yZGVyOiAwO1xuICAgIHBhZGRpbmc6IDA7XG4gIH1cblxuICBpbnB1dCB7XG4gICAgbGluZS1oZWlnaHQ6IG5vcm1hbDtcbiAgfVxuXG4gIGlucHV0W3R5cGU9XCJjaGVja2JveFwiXSxcbiAgaW5wdXRbdHlwZT1cInJhZGlvXCJdIHtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OyAvKiAxICovXG4gICAgcGFkZGluZzogMDsgLyogMiAqL1xuICB9XG5cbiAgaW5wdXRbdHlwZT1cIm51bWJlclwiXTo6LXdlYmtpdC1pbm5lci1zcGluLWJ1dHRvbixcbiAgaW5wdXRbdHlwZT1cIm51bWJlclwiXTo6LXdlYmtpdC1vdXRlci1zcGluLWJ1dHRvbiB7XG4gICAgaGVpZ2h0OiBhdXRvO1xuICB9XG5cbiAgaW5wdXRbdHlwZT1cInNlYXJjaFwiXSB7XG4gICAgLXdlYmtpdC1hcHBlYXJhbmNlOiB0ZXh0ZmllbGQ7IC8qIDEgKi9cbiAgICBib3gtc2l6aW5nOiBjb250ZW50LWJveDsgLyogMiAqL1xuICB9XG5cbiAgaW5wdXRbdHlwZT1cInNlYXJjaFwiXTo6LXdlYmtpdC1zZWFyY2gtY2FuY2VsLWJ1dHRvbixcbiAgaW5wdXRbdHlwZT1cInNlYXJjaFwiXTo6LXdlYmtpdC1zZWFyY2gtZGVjb3JhdGlvbiB7XG4gICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuICB9XG5cbiAgZmllbGRzZXQge1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNjMGMwYzA7XG4gICAgbWFyZ2luOiAwIDJweDtcbiAgICBwYWRkaW5nOiAwLjM1ZW0gMC42MjVlbSAwLjc1ZW07XG4gIH1cblxuICBsZWdlbmQge1xuICAgIGJvcmRlcjogMDsgLyogMSAqL1xuICAgIHBhZGRpbmc6IDA7IC8qIDIgKi9cbiAgfVxuXG4gIHRleHRhcmVhIHtcbiAgICBvdmVyZmxvdzogYXV0bztcbiAgfVxuXG4gIG9wdGdyb3VwIHtcbiAgICBmb250LXdlaWdodDogYm9sZDtcbiAgfVxuXG4gIHRhYmxlIHtcbiAgICBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlO1xuICAgIGJvcmRlci1zcGFjaW5nOiAwO1xuICB9XG5cbiAgdGQsXG4gIHRoIHtcbiAgICBwYWRkaW5nOiAwO1xuICB9XG59IEBlbHNlIHtcbiAgLm5vcm1hbGl6ZSBodG1sLCBodG1sLm5vcm1hbGl6ZSB7XG4gICAgZm9udC1mYW1pbHk6IHNhbnMtc2VyaWY7IC8qIDEgKi9cbiAgICAtbXMtdGV4dC1zaXplLWFkanVzdDogMTAwJTsgLyogMiAqL1xuICAgIC13ZWJraXQtdGV4dC1zaXplLWFkanVzdDogMTAwJTsgLyogMiAqL1xuICB9XG4gIC5ub3JtYWxpemUgYm9keSwgYm9keS5ub3JtYWxpemUge1xuICAgIG1hcmdpbjogMDtcbiAgfVxuXG4gIC5ub3JtYWxpemUgYXJ0aWNsZSwgYXJ0aWNsZS5ub3JtYWxpemUsXG4gIC5ub3JtYWxpemUgYXNpZGUsIGFzaWRlLm5vcm1hbGl6ZSxcbiAgLm5vcm1hbGl6ZSBkZXRhaWxzLCBkZXRhaWxzLm5vcm1hbGl6ZSxcbiAgLm5vcm1hbGl6ZSBmaWdjYXB0aW9uLCBmaWdjYXB0aW9uLm5vcm1hbGl6ZSxcbiAgLm5vcm1hbGl6ZSBmaWd1cmUsIGZpZ3VyZS5ub3JtYWxpemUsXG4gIC5ub3JtYWxpemUgZm9vdGVyLCBmb290ZXIubm9ybWFsaXplLFxuICAubm9ybWFsaXplIGhlYWRlciwgaGVhZGVyLm5vcm1hbGl6ZSxcbiAgLm5vcm1hbGl6ZSBoZ3JvdXAsIGhncm91cC5ub3JtYWxpemUsXG4gIC5ub3JtYWxpemUgbWFpbiwgbWFpbi5ub3JtYWxpemUsXG4gIC5ub3JtYWxpemUgbWVudSwgbWVudS5ub3JtYWxpemUsXG4gIC5ub3JtYWxpemUgbmF2LCBuYXYubm9ybWFsaXplLFxuICAubm9ybWFsaXplIHNlY3Rpb24sIHNlY3Rpb24ubm9ybWFsaXplLFxuICAubm9ybWFsaXplIHN1bW1hcnksIHN1bW1hcnkubm9ybWFsaXplIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgfVxuXG4gIC5ub3JtYWxpemUgYXVkaW8sIGF1ZGlvLm5vcm1hbGl6ZSxcbiAgLm5vcm1hbGl6ZSBjYW52YXMsIGNhbnZhcy5ub3JtYWxpemUsXG4gIC5ub3JtYWxpemUgcHJvZ3Jlc3MsIHByb2dyZXNzLm5vcm1hbGl6ZSxcbiAgLm5vcm1hbGl6ZSB2aWRlbywgdmlkZW8ubm9ybWFsaXplIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IC8qIDEgKi9cbiAgICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7IC8qIDIgKi9cbiAgfVxuXG4gIC5ub3JtYWxpemUgYXVkaW86bm90KFtjb250cm9sc10pLCBhdWRpbzpub3QoW2NvbnRyb2xzXSkubm9ybWFsaXplIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICAgIGhlaWdodDogMDtcbiAgfVxuXG4gIC5ub3JtYWxpemUgW2hpZGRlbl0sIFtoaWRkZW5dLm5vcm1hbGl6ZSxcbiAgLm5vcm1hbGl6ZSB0ZW1wbGF0ZSwgdGVtcGxhdGUubm9ybWFsaXplIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG5cbiAgLm5vcm1hbGl6ZSBhLCBhLm5vcm1hbGl6ZSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIH1cblxuICAubm9ybWFsaXplIGE6YWN0aXZlLCBhOmFjdGl2ZS5ub3JtYWxpemUsXG4gIC5ub3JtYWxpemUgYTpob3ZlciwgYTpob3Zlci5ub3JtYWxpemUge1xuICAgIG91dGxpbmU6IDA7XG4gIH1cblxuICAubm9ybWFsaXplIGFiYnJbdGl0bGVdLCBhYmJyW3RpdGxlXS5ub3JtYWxpemUge1xuICAgIGJvcmRlci1ib3R0b206IDFweCBkb3R0ZWQ7XG4gIH1cblxuICAubm9ybWFsaXplIGIsIGIubm9ybWFsaXplLFxuICAubm9ybWFsaXplIHN0cm9uZywgc3Ryb25nLm5vcm1hbGl6ZSB7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIH1cblxuICAubm9ybWFsaXplIGRmbiwgZGZuLm5vcm1hbGl6ZSB7XG4gICAgZm9udC1zdHlsZTogaXRhbGljO1xuICB9XG5cbiAgaDEge1xuICAgIGZvbnQtc2l6ZTogMmVtO1xuICAgIG1hcmdpbjogMC42N2VtIDA7XG4gIH1cblxuICAubm9ybWFsaXplIG1hcmssIG1hcmsubm9ybWFsaXplIHtcbiAgICBiYWNrZ3JvdW5kOiAjZmYwO1xuICAgIGNvbG9yOiAjMDAwO1xuICB9XG5cbiAgLm5vcm1hbGl6ZSBzbWFsbCwgc21hbGwubm9ybWFsaXplIHtcbiAgICBmb250LXNpemU6IDgwJTtcbiAgfVxuXG4gIC5ub3JtYWxpemUgc3ViLCBzdWIubm9ybWFsaXplLFxuICAubm9ybWFsaXplIHN1cCwgc3VwLm5vcm1hbGl6ZSB7XG4gICAgZm9udC1zaXplOiA3NSU7XG4gICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcbiAgfVxuXG4gIC5ub3JtYWxpemUgc3VwLCBzdXAubm9ybWFsaXplIHtcbiAgICB0b3A6IC0wLjVlbTtcbiAgfVxuXG4gIC5ub3JtYWxpemUgc3ViLCBzdWIubm9ybWFsaXplIHtcbiAgICBib3R0b206IC0wLjI1ZW07XG4gIH1cblxuICAubm9ybWFsaXplIGltZywgaW1nLm5vcm1hbGl6ZSB7XG4gICAgYm9yZGVyOiAwO1xuICB9XG5cbiAgLm5vcm1hbGl6ZSBzdmc6bm90KDpyb290KSwgc3ZnOm5vdCg6cm9vdCkubm9ybWFsaXplIHtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICB9XG5cbiAgLm5vcm1hbGl6ZSBmaWd1cmUsIGZpZ3VyZS5ub3JtYWxpemUge1xuICAgIG1hcmdpbjogMWVtIDQwcHg7XG4gIH1cblxuICAubm9ybWFsaXplIGhyLCBoci5ub3JtYWxpemUge1xuICAgIGJveC1zaXppbmc6IGNvbnRlbnQtYm94O1xuICAgIGhlaWdodDogMDtcbiAgfVxuXG4gIC5ub3JtYWxpemUgcHJlLCBwcmUubm9ybWFsaXplIHtcbiAgICBvdmVyZmxvdzogYXV0bztcbiAgfVxuXG4gIC5ub3JtYWxpemUgY29kZSwgY29kZS5ub3JtYWxpemUsXG4gIC5ub3JtYWxpemUga2JkLCBrYmQubm9ybWFsaXplLFxuICAubm9ybWFsaXplIHByZSwgcHJlLm5vcm1hbGl6ZSxcbiAgLm5vcm1hbGl6ZSBzYW1wLCBzYW1wLm5vcm1hbGl6ZSB7XG4gICAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZSwgbW9ub3NwYWNlO1xuICAgIGZvbnQtc2l6ZTogMWVtO1xuICB9XG5cbiAgLm5vcm1hbGl6ZSBidXR0b24sIGJ1dHRvbi5ub3JtYWxpemUsXG4gIC5ub3JtYWxpemUgaW5wdXQsIGlucHV0Lm5vcm1hbGl6ZSxcbiAgLm5vcm1hbGl6ZSBvcHRncm91cCwgb3B0Z3JvdXAubm9ybWFsaXplLFxuICAubm9ybWFsaXplIHNlbGVjdCwgc2VsZWN0Lm5vcm1hbGl6ZSxcbiAgLm5vcm1hbGl6ZSB0ZXh0YXJlYSwgdGV4dGFyZWEubm9ybWFsaXplIHtcbiAgICBjb2xvcjogaW5oZXJpdDsgLyogMSAqL1xuICAgIGZvbnQ6IGluaGVyaXQ7IC8qIDIgKi9cbiAgICBtYXJnaW46IDA7IC8qIDMgKi9cbiAgfVxuXG4gIC5ub3JtYWxpemUgYnV0dG9uLCBidXR0b24ubm9ybWFsaXplIHtcbiAgICBvdmVyZmxvdzogdmlzaWJsZTtcbiAgfVxuXG4gIC5ub3JtYWxpemUgYnV0dG9uLCBidXR0b24ubm9ybWFsaXplLFxuICAubm9ybWFsaXplIHNlbGVjdCwgc2VsZWN0Lm5vcm1hbGl6ZSB7XG4gICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gIH1cblxuICAubm9ybWFsaXplIGJ1dHRvbiwgYnV0dG9uLm5vcm1hbGl6ZSxcbiAgaHRtbCBpbnB1dFt0eXBlPVwiYnV0dG9uXCJdLCAvKiAxICovXG4gIC5ub3JtYWxpemUgaW5wdXRbdHlwZT1cInJlc2V0XCJdLCBpbnB1dFt0eXBlPVwicmVzZXRcIl0ubm9ybWFsaXplLFxuICAubm9ybWFsaXplIGlucHV0W3R5cGU9XCJzdWJtaXRcIl0sIGlucHV0W3R5cGU9XCJzdWJtaXRcIl0ubm9ybWFsaXplIHtcbiAgICAtd2Via2l0LWFwcGVhcmFuY2U6IGJ1dHRvbjsgLyogMiAqL1xuICAgIGN1cnNvcjogcG9pbnRlcjsgLyogMyAqL1xuICB9XG5cbiAgLm5vcm1hbGl6ZSBidXR0b25bZGlzYWJsZWRdLCBidXR0b25bZGlzYWJsZWRdLm5vcm1hbGl6ZSxcbiAgaHRtbCBpbnB1dFtkaXNhYmxlZF0ge1xuICAgIGN1cnNvcjogZGVmYXVsdDtcbiAgfVxuXG4gIC5ub3JtYWxpemUgYnV0dG9uOjotbW96LWZvY3VzLWlubmVyLCBidXR0b246Oi1tb3otZm9jdXMtaW5uZXIubm9ybWFsaXplLFxuICAubm9ybWFsaXplIGlucHV0OjotbW96LWZvY3VzLWlubmVyLCBpbnB1dDo6LW1vei1mb2N1cy1pbm5lci5ub3JtYWxpemUge1xuICAgIGJvcmRlcjogMDtcbiAgICBwYWRkaW5nOiAwO1xuICB9XG5cbiAgLm5vcm1hbGl6ZSBpbnB1dCwgaW5wdXQubm9ybWFsaXplIHtcbiAgICBsaW5lLWhlaWdodDogbm9ybWFsO1xuICB9XG5cbiAgLm5vcm1hbGl6ZSBpbnB1dFt0eXBlPVwiY2hlY2tib3hcIl0sIGlucHV0W3R5cGU9XCJjaGVja2JveFwiXS5ub3JtYWxpemUsXG4gIC5ub3JtYWxpemUgaW5wdXRbdHlwZT1cInJhZGlvXCJdLCBpbnB1dFt0eXBlPVwicmFkaW9cIl0ubm9ybWFsaXplIHtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OyAvKiAxICovXG4gICAgcGFkZGluZzogMDsgLyogMiAqL1xuICB9XG5cbiAgLm5vcm1hbGl6ZSBpbnB1dFt0eXBlPVwibnVtYmVyXCJdOjotd2Via2l0LWlubmVyLXNwaW4tYnV0dG9uLCBpbnB1dFt0eXBlPVwibnVtYmVyXCJdOjotd2Via2l0LWlubmVyLXNwaW4tYnV0dG9uLm5vcm1hbGl6ZSxcbiAgLm5vcm1hbGl6ZSBpbnB1dFt0eXBlPVwibnVtYmVyXCJdOjotd2Via2l0LW91dGVyLXNwaW4tYnV0dG9uLCBpbnB1dFt0eXBlPVwibnVtYmVyXCJdOjotd2Via2l0LW91dGVyLXNwaW4tYnV0dG9uLm5vcm1hbGl6ZSB7XG4gICAgaGVpZ2h0OiBhdXRvO1xuICB9XG5cbiAgLm5vcm1hbGl6ZSBpbnB1dFt0eXBlPVwic2VhcmNoXCJdLCBpbnB1dFt0eXBlPVwic2VhcmNoXCJdLm5vcm1hbGl6ZSB7XG4gICAgLXdlYmtpdC1hcHBlYXJhbmNlOiB0ZXh0ZmllbGQ7IC8qIDEgKi9cbiAgICBib3gtc2l6aW5nOiBjb250ZW50LWJveDsgLyogMiAqL1xuICB9XG5cbiAgLm5vcm1hbGl6ZSBpbnB1dFt0eXBlPVwic2VhcmNoXCJdOjotd2Via2l0LXNlYXJjaC1jYW5jZWwtYnV0dG9uLCBpbnB1dFt0eXBlPVwic2VhcmNoXCJdOjotd2Via2l0LXNlYXJjaC1jYW5jZWwtYnV0dG9uLm5vcm1hbGl6ZSxcbiAgLm5vcm1hbGl6ZSBpbnB1dFt0eXBlPVwic2VhcmNoXCJdOjotd2Via2l0LXNlYXJjaC1kZWNvcmF0aW9uLCBpbnB1dFt0eXBlPVwic2VhcmNoXCJdOjotd2Via2l0LXNlYXJjaC1kZWNvcmF0aW9uLm5vcm1hbGl6ZSB7XG4gICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuICB9XG5cbiAgLm5vcm1hbGl6ZSBmaWVsZHNldCwgZmllbGRzZXQubm9ybWFsaXplIHtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjYzBjMGMwO1xuICAgIG1hcmdpbjogMCAycHg7XG4gICAgcGFkZGluZzogMC4zNWVtIDAuNjI1ZW0gMC43NWVtO1xuICB9XG5cbiAgLm5vcm1hbGl6ZSBsZWdlbmQsIGxlZ2VuZC5ub3JtYWxpemUge1xuICAgIGJvcmRlcjogMDsgLyogMSAqL1xuICAgIHBhZGRpbmc6IDA7IC8qIDIgKi9cbiAgfVxuXG4gIC5ub3JtYWxpemUgdGV4dGFyZWEsIHRleHRhcmVhLm5vcm1hbGl6ZSB7XG4gICAgb3ZlcmZsb3c6IGF1dG87XG4gIH1cblxuICAubm9ybWFsaXplIG9wdGdyb3VwLCBvcHRncm91cC5ub3JtYWxpemUge1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICB9XG5cbiAgLm5vcm1hbGl6ZSB0YWJsZSwgdGFibGUubm9ybWFsaXplIHtcbiAgICBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlO1xuICAgIGJvcmRlci1zcGFjaW5nOiAwO1xuICB9XG5cbiAgLm5vcm1hbGl6ZSB0ZCwgdGQubm9ybWFsaXplLFxuICAubm9ybWFsaXplIHRoLCB0aC5ub3JtYWxpemUge1xuICAgIHBhZGRpbmc6IDA7XG4gIH1cbn1cbiIsIkBtaXhpbiBmb250LWZhY2UoXG4gICRmb250LWZhbWlseSxcbiAgJGZpbGUtcGF0aCxcbiAgJHdlaWdodDogbm9ybWFsLFxuICAkc3R5bGU6IG5vcm1hbCxcbiAgJGFzc2V0LXBpcGVsaW5lOiAkYXNzZXQtcGlwZWxpbmUsXG4gICRmaWxlLWZvcm1hdHM6IGVvdCB3b2ZmMiB3b2ZmIHR0ZiBzdmcpIHtcblxuICAkZm9udC11cmwtcHJlZml4OiBmb250LXVybC1wcmVmaXhlcigkYXNzZXQtcGlwZWxpbmUpO1xuXG4gIEBmb250LWZhY2Uge1xuICAgIGZvbnQtZmFtaWx5OiAkZm9udC1mYW1pbHk7XG4gICAgZm9udC1zdHlsZTogJHN0eWxlO1xuICAgIGZvbnQtd2VpZ2h0OiAkd2VpZ2h0O1xuXG4gICAgc3JjOiBmb250LXNvdXJjZS1kZWNsYXJhdGlvbihcbiAgICAgICRmb250LWZhbWlseSxcbiAgICAgICRmaWxlLXBhdGgsXG4gICAgICAkYXNzZXQtcGlwZWxpbmUsXG4gICAgICAkZmlsZS1mb3JtYXRzLFxuICAgICAgJGZvbnQtdXJsLXByZWZpeFxuICAgICk7XG4gIH1cbn1cbiIsIi8qIHN0eWxlbGludC1kaXNhYmxlIGF0LXJ1bGUtZW1wdHktbGluZS1iZWZvcmUgKi9cbkBpbmNsdWRlIGZvbnQtZmFjZShcbiAgJ1NvdXJjZSBTYW5zIFBybycsXG4gICcjeyRmb250LXBhdGh9L3NvdXJjZXNhbnNwcm8tbGlnaHQtd2ViZm9udCcsXG4gIDMwMCxcbiAgbm9ybWFsLFxuICAkZmlsZS1mb3JtYXRzOiBlb3Qgd29mZjIgd29mZiB0dGZcbik7XG5cbkBpbmNsdWRlIGZvbnQtZmFjZShcbiAgJ1NvdXJjZSBTYW5zIFBybycsXG4gICcjeyRmb250LXBhdGh9L3NvdXJjZXNhbnNwcm8tcmVndWxhci13ZWJmb250JyxcbiAgNDAwLFxuICBub3JtYWwsXG4gICRmaWxlLWZvcm1hdHM6IGVvdCB3b2ZmMiB3b2ZmIHR0ZlxuKTtcblxuQGluY2x1ZGUgZm9udC1mYWNlKFxuICAnU291cmNlIFNhbnMgUHJvJyxcbiAgJyN7JGZvbnQtcGF0aH0vc291cmNlc2Fuc3Byby1pdGFsaWMtd2ViZm9udCcsXG4gIDQwMCxcbiAgaXRhbGljLFxuICAkZmlsZS1mb3JtYXRzOiBlb3Qgd29mZjIgd29mZiB0dGZcbik7XG5cbkBpbmNsdWRlIGZvbnQtZmFjZShcbiAgJ1NvdXJjZSBTYW5zIFBybycsXG4gICcjeyRmb250LXBhdGh9L3NvdXJjZXNhbnNwcm8tYm9sZC13ZWJmb250JyxcbiAgNzAwLFxuICBub3JtYWwsXG4gICRmaWxlLWZvcm1hdHM6IGVvdCB3b2ZmMiB3b2ZmIHR0ZlxuKTtcblxuQGluY2x1ZGUgZm9udC1mYWNlKFxuICAnTWVycml3ZWF0aGVyJyxcbiAgJyN7JGZvbnQtcGF0aH0vbWVycml3ZWF0aGVyLWxpZ2h0LXdlYmZvbnQnLFxuICAzMDAsXG4gIG5vcm1hbCxcbiAgJGZpbGUtZm9ybWF0czogZW90IHdvZmYyIHdvZmYgdHRmXG4pO1xuXG5AaW5jbHVkZSBmb250LWZhY2UoXG4gICdNZXJyaXdlYXRoZXInLFxuICAnI3skZm9udC1wYXRofS9tZXJyaXdlYXRoZXItcmVndWxhci13ZWJmb250JyxcbiAgNDAwLFxuICBub3JtYWwsXG4gICRmaWxlLWZvcm1hdHM6IGVvdCB3b2ZmMiB3b2ZmIHR0ZlxuKTtcblxuQGluY2x1ZGUgZm9udC1mYWNlKFxuICAnTWVycml3ZWF0aGVyJyxcbiAgJyN7JGZvbnQtcGF0aH0vbWVycml3ZWF0aGVyLWl0YWxpYy13ZWJmb250JyxcbiAgNDAwLFxuICBpdGFsaWMsXG4gICRmaWxlLWZvcm1hdHM6IGVvdCB3b2ZmMiB3b2ZmIHR0ZlxuKTtcblxuQGluY2x1ZGUgZm9udC1mYWNlKFxuICAnTWVycml3ZWF0aGVyJyxcbiAgJyN7JGZvbnQtcGF0aH0vbWVycml3ZWF0aGVyLWJvbGQtd2ViZm9udCcsXG4gIDcwMCxcbiAgbm9ybWFsLFxuICAkZmlsZS1mb3JtYXRzOiBlb3Qgd29mZjIgd29mZiB0dGZcbik7XG4vKiBzdHlsZWxpbnQtZW5hYmxlICovXG4iLCIvLyBVc2VkIGZvciBjcmVhdGluZyB0aGUgc291cmNlIHN0cmluZyBmb3IgZm9udHMgdXNpbmcgQGZvbnQtZmFjZVxuLy8gUmVmZXJlbmNlOiBodHRwOi8vZ29vLmdsL1J1MWJLUFxuXG5AZnVuY3Rpb24gZm9udC11cmwtcHJlZml4ZXIoJGFzc2V0LXBpcGVsaW5lKSB7XG4gIEBpZiAkYXNzZXQtcGlwZWxpbmUgPT0gdHJ1ZSB7XG4gICAgQHJldHVybiBmb250LXVybDtcbiAgfSBAZWxzZSB7XG4gICAgQHJldHVybiB1cmw7XG4gIH1cbn1cblxuQGZ1bmN0aW9uIGZvbnQtc291cmNlLWRlY2xhcmF0aW9uKFxuICAkZm9udC1mYW1pbHksXG4gICRmaWxlLXBhdGgsXG4gICRhc3NldC1waXBlbGluZSxcbiAgJGZpbGUtZm9ybWF0cyxcbiAgJGZvbnQtdXJsKSB7XG5cbiAgJHNyYzogKCk7XG5cbiAgJGZvcm1hdHMtbWFwOiAoXG4gICAgZW90OiAgIFwiI3skZmlsZS1wYXRofS5lb3Q/I2llZml4XCIgZm9ybWF0KFwiZW1iZWRkZWQtb3BlbnR5cGVcIiksXG4gICAgd29mZjI6IFwiI3skZmlsZS1wYXRofS53b2ZmMlwiIGZvcm1hdChcIndvZmYyXCIpLFxuICAgIHdvZmY6ICBcIiN7JGZpbGUtcGF0aH0ud29mZlwiIGZvcm1hdChcIndvZmZcIiksXG4gICAgdHRmOiAgIFwiI3skZmlsZS1wYXRofS50dGZcIiBmb3JtYXQoXCJ0cnVldHlwZVwiKSxcbiAgICBzdmc6ICAgXCIjeyRmaWxlLXBhdGh9LnN2ZyMjeyRmb250LWZhbWlseX1cIiBmb3JtYXQoXCJzdmdcIilcbiAgKTtcblxuICBAZWFjaCAka2V5LCAkdmFsdWVzIGluICRmb3JtYXRzLW1hcCB7XG4gICAgQGlmIGNvbnRhaW5zKCRmaWxlLWZvcm1hdHMsICRrZXkpIHtcbiAgICAgICRmaWxlLXBhdGg6IG50aCgkdmFsdWVzLCAxKTtcbiAgICAgICRmb250LWZvcm1hdDogbnRoKCR2YWx1ZXMsIDIpO1xuXG4gICAgICBAaWYgJGFzc2V0LXBpcGVsaW5lID09IHRydWUge1xuICAgICAgICAkc3JjOiBhcHBlbmQoJHNyYywgZm9udC11cmwoJGZpbGUtcGF0aCkgJGZvbnQtZm9ybWF0LCBjb21tYSk7XG4gICAgICB9IEBlbHNlIHtcbiAgICAgICAgJHNyYzogYXBwZW5kKCRzcmMsIHVybCgkZmlsZS1wYXRoKSAkZm9udC1mb3JtYXQsIGNvbW1hKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBAcmV0dXJuICRzcmM7XG59XG4iLCIvLyBHcmlkIGNvbnRhaW5lclxuLnVzYS1ncmlkLFxuLnVzYS1ncmlkLWZ1bGwge1xuICBAaW5jbHVkZSBvdXRlci1jb250YWluZXIoKTtcbiAgbWF4LXdpZHRoOiAkc2l0ZS1tYXgtd2lkdGg7XG59XG5cbi51c2EtZ3JpZCB7XG4gIEBpbmNsdWRlIHBhZGRpbmcobnVsbCAkc2l0ZS1tYXJnaW5zLW1vYmlsZSk7XG5cbiAgQGluY2x1ZGUgbWVkaWEoJG1lZGl1bS1zY3JlZW4pIHtcbiAgICBAaW5jbHVkZSBwYWRkaW5nKG51bGwgJHNpdGUtbWFyZ2lucyk7XG4gIH1cbn1cblxuLnVzYS1ncmlkLWZ1bGwge1xuICBwYWRkaW5nOiAwO1xufVxuXG4vLyBHcmlkIGl0ZW1zXG5AaW5jbHVkZSBtZWRpYSgkbWVkaXVtKSB7XG4gIC51c2Etd2lkdGgtb25lLXdob2xlIHtcbiAgICBAaW5jbHVkZSBzcGFuLWNvbHVtbnMoNik7XG4gIH1cblxuICAudXNhLXdpZHRoLW9uZS1oYWxmIHtcbiAgICBAaW5jbHVkZSBzcGFuLWNvbHVtbnMoMyk7XG4gIH1cblxuICAudXNhLXdpZHRoLW9uZS10aGlyZCB7XG4gICAgQGluY2x1ZGUgc3Bhbi1jb2x1bW5zKDIpO1xuICB9XG5cbiAgLnVzYS13aWR0aC10d28tdGhpcmRzIHtcbiAgICBAaW5jbHVkZSBzcGFuLWNvbHVtbnMoNCk7XG4gIH1cblxuICAudXNhLXdpZHRoLW9uZS1mb3VydGgge1xuICAgIEBpbmNsdWRlIHNwYW4tY29sdW1ucygzKTtcblxuICAgICY6bnRoLWNoaWxkKDJuKSB7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgfVxuICB9XG5cbiAgLnVzYS13aWR0aC10aHJlZS1mb3VydGhzIHtcbiAgICBAaW5jbHVkZSBzcGFuLWNvbHVtbnMoNik7XG4gIH1cblxuICAudXNhLXdpZHRoLW9uZS1zaXh0aCB7XG4gICAgQGluY2x1ZGUgc3Bhbi1jb2x1bW5zKDIpO1xuXG4gICAgJjpudGgtY2hpbGQoM24pIHtcbiAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICB9XG4gIH1cblxuICAudXNhLXdpZHRoLWZpdmUtc2l4dGhzIHtcbiAgICBAaW5jbHVkZSBzcGFuLWNvbHVtbnMoNCk7XG4gIH1cblxuICAudXNhLXdpZHRoLW9uZS10d2VsZnRoIHtcbiAgICBAaW5jbHVkZSBzcGFuLWNvbHVtbnMoMik7XG5cbiAgICAmOm50aC1jaGlsZCgzbikge1xuICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgIH1cbiAgfVxuXG4gIC51c2Etd2lkdGgtZml2ZS10d2VsZnRocyB7XG4gICAgQGluY2x1ZGUgc3Bhbi1jb2x1bW5zKDIpO1xuICB9XG5cbiAgLnVzYS13aWR0aC1zZXZlbi10d2VsZnRocyB7XG4gICAgQGluY2x1ZGUgc3Bhbi1jb2x1bW5zKDQpO1xuICB9XG59XG5cbkBpbmNsdWRlIG1lZGlhKCRsYXJnZSkge1xuICAudXNhLXdpZHRoLW9uZS13aG9sZSB7XG4gICAgQGluY2x1ZGUgc3Bhbi1jb2x1bW5zKDEyKTtcbiAgfVxuXG4gIC51c2Etd2lkdGgtb25lLWhhbGYge1xuICAgIEBpbmNsdWRlIHNwYW4tY29sdW1ucyg2KTtcbiAgfVxuXG4gIC51c2Etd2lkdGgtb25lLXRoaXJkIHtcbiAgICBAaW5jbHVkZSBzcGFuLWNvbHVtbnMoNCk7XG4gIH1cblxuICAudXNhLXdpZHRoLXR3by10aGlyZHMge1xuICAgIEBpbmNsdWRlIHNwYW4tY29sdW1ucyg4KTtcbiAgfVxuXG4gIC51c2Etd2lkdGgtb25lLWZvdXJ0aCB7XG4gICAgQGluY2x1ZGUgc3Bhbi1jb2x1bW5zKDMpO1xuXG4gICAgJjpudGgtY2hpbGQoMm4pIHtcbiAgICAgIEBpbmNsdWRlIHNwYW4tY29sdW1ucygzKTtcbiAgICB9XG5cbiAgICAmOm50aC1jaGlsZCg0bikge1xuICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgIH1cbiAgfVxuXG4gIC51c2Etd2lkdGgtdGhyZWUtZm91cnRocyB7XG4gICAgQGluY2x1ZGUgc3Bhbi1jb2x1bW5zKDkpO1xuICB9XG5cbiAgLnVzYS13aWR0aC1vbmUtc2l4dGgge1xuICAgIEBpbmNsdWRlIHNwYW4tY29sdW1ucygyKTtcblxuICAgICY6bnRoLWNoaWxkKDNuKSB7XG4gICAgICBAaW5jbHVkZSBzcGFuLWNvbHVtbnMoMik7XG4gICAgfVxuXG4gICAgJjpudGgtY2hpbGQoNm4pIHtcbiAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICB9XG4gIH1cblxuICAudXNhLXdpZHRoLWZpdmUtc2l4dGhzIHtcbiAgICBAaW5jbHVkZSBzcGFuLWNvbHVtbnMoMTApO1xuICB9XG5cbiAgLnVzYS13aWR0aC1vbmUtdHdlbGZ0aCB7XG4gICAgQGluY2x1ZGUgc3Bhbi1jb2x1bW5zKDEpO1xuXG4gICAgJjpudGgtY2hpbGQoM24pIHtcbiAgICAgIEBpbmNsdWRlIHNwYW4tY29sdW1ucygxKTtcbiAgICB9XG5cbiAgICAmOm50aC1jaGlsZCgxMm4pIHtcbiAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICB9XG4gIH1cblxuICAudXNhLXdpZHRoLWZpdmUtdHdlbGZ0aHMge1xuICAgIEBpbmNsdWRlIHNwYW4tY29sdW1ucyg1KTtcbiAgfVxuXG4gIC51c2Etd2lkdGgtc2V2ZW4tdHdlbGZ0aHMge1xuICAgIEBpbmNsdWRlIHNwYW4tY29sdW1ucyg3KTtcbiAgfVxufVxuXG4vLyBTcGVjaWZpZXMgZW5kIG9mIGEgcm93LlxuLy8gUmVxdWlyZWQgaWYgZ3JpZC1ib3ggY29udGFpbnMgbXVsdGlwbGUgcm93cy5cbi8vIFJlcXVpcmVkIGlmIGJyb3dzZXIgZG9lcyBub3Qgc3VwcG9ydCA6bGFzdC1jaGlsZFxuLnVzYS1lbmQtcm93IHtcbiAgQGluY2x1ZGUgb21lZ2EoKTtcbn1cblxuLy8gR3JpZCBPZmZzZXRzXG4udXNhLW9mZnNldC1vbmUtdHdlbGZ0aCB7XG4gIEBpbmNsdWRlIHNoaWZ0KDEgb2YgMTIpO1xufVxuXG4udXNhLW9mZnNldC1vbmUtc2l4dGgge1xuICBAaW5jbHVkZSBzaGlmdCgyIG9mIDEyKTtcbn1cblxuLnVzYS1vZmZzZXQtb25lLWZvdXJ0aCB7XG4gIEBpbmNsdWRlIHNoaWZ0KDMgb2YgMTIpO1xufVxuXG4udXNhLW9mZnNldC1vbmUtdGhpcmQge1xuICBAaW5jbHVkZSBzaGlmdCg0IG9mIDEyKTtcbn1cblxuLnVzYS1vZmZzZXQtZml2ZS10d2VsZnRocyB7XG4gIEBpbmNsdWRlIHNoaWZ0KDUgb2YgMTIpO1xufVxuXG4udXNhLW9mZnNldC1vbmUtaGFsZiB7XG4gIEBpbmNsdWRlIHNoaWZ0KDYgb2YgMTIpO1xufVxuXG4udXNhLW9mZnNldC1zZXZlbi10d2VsZnRocyB7XG4gIEBpbmNsdWRlIHNoaWZ0KDcgb2YgMTIpO1xufVxuXG4udXNhLW9mZnNldC10d28tdGhpcmRzIHtcbiAgQGluY2x1ZGUgc2hpZnQoOCBvZiAxMik7XG59XG5cbi51c2Etb2Zmc2V0LXRocmVlLWZvdXJ0aHMge1xuICBAaW5jbHVkZSBzaGlmdCg5IG9mIDEyKTtcbn1cblxuLnVzYS1vZmZzZXQtZml2ZS1zaXh0aHMge1xuICBAaW5jbHVkZSBzaGlmdCgxMCBvZiAxMik7XG59XG5cbi51c2Etb2Zmc2V0LWVsZXZlbi10d2VsZnRocyB7XG4gIEBpbmNsdWRlIHNoaWZ0KDExIG9mIDEyKTtcbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIE1ha2VzIGFuIGVsZW1lbnQgYSBvdXRlciBjb250YWluZXIgYnkgY2VudGVyaW5nIGl0IGluIHRoZSB2aWV3cG9ydCwgY2xlYXJpbmcgaXRzIGZsb2F0cywgYW5kIHNldHRpbmcgaXRzIGBtYXgtd2lkdGhgLlxuLy8vIEFsdGhvdWdoIG9wdGlvbmFsLCB1c2luZyBgb3V0ZXItY29udGFpbmVyYCBpcyByZWNvbW1lbmRlZC4gVGhlIG1peGluIGNhbiBiZSBjYWxsZWQgb24gbW9yZSB0aGFuIG9uZSBlbGVtZW50IHBlciBwYWdlLCBhcyBsb25nIGFzIHRoZXkgYXJlIG5vdCBuZXN0ZWQuXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlciBbdW5pdF19ICRsb2NhbC1tYXgtd2lkdGggWyRtYXgtd2lkdGhdXG4vLy8gICBNYXggd2lkdGggdG8gYmUgYXBwbGllZCB0byB0aGUgZWxlbWVudC4gQ2FuIGJlIGEgcGVyY2VudGFnZSBvciBhIG1lYXN1cmUuXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2Vcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgQGluY2x1ZGUgb3V0ZXItY29udGFpbmVyKDEwMCUpO1xuLy8vICAgfVxuLy8vXG4vLy8gQGV4YW1wbGUgY3NzIC0gQ1NTIE91dHB1dFxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBtYXgtd2lkdGg6IDEwMCU7XG4vLy8gICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuLy8vICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4vLy8gICB9XG4vLy9cbi8vLyAgIC5lbGVtZW50OjphZnRlciB7XG4vLy8gICAgIGNsZWFyOiBib3RoO1xuLy8vICAgICBjb250ZW50OiBcIlwiO1xuLy8vICAgICBkaXNwbGF5OiB0YWJsZTtcbi8vLyAgIH1cblxuQG1peGluIG91dGVyLWNvbnRhaW5lcigkbG9jYWwtbWF4LXdpZHRoOiAkbWF4LXdpZHRoKSB7XG4gIEBpbmNsdWRlIGNsZWFyZml4O1xuICBtYXgtd2lkdGg6ICRsb2NhbC1tYXgtd2lkdGg7XG4gIG1hcmdpbjoge1xuICAgIGxlZnQ6IGF1dG87XG4gICAgcmlnaHQ6IGF1dG87XG4gIH1cbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIFNldHMgdGhlIHJlbGF0aXZlIHdpZHRoIG9mIGEgc2luZ2xlIGdyaWQgY29sdW1uLiBUaGUgdW5pdCB1c2VkIHNob3VsZCBiZSB0aGUgc2FtZSBvbmUgdXNlZCB0byBkZWZpbmUgYCRndXR0ZXJgLiBTZXQgd2l0aCBhIGAhZ2xvYmFsYCBmbGFnLlxuLy8vXG4vLy8gQHR5cGUgTnVtYmVyIChVbml0KVxuXG4kY29sdW1uOiA0LjIzNThlbSAhZGVmYXVsdDtcblxuLy8vIFNldHMgdGhlIHJlbGF0aXZlIHdpZHRoIG9mIGEgc2luZ2xlIGdyaWQgZ3V0dGVyLiBUaGUgdW5pdCB1c2VkIHNob3VsZCBiZSB0aGUgc2FtZSBvbmUgdXNlZCB0byBkZWZpbmUgYCRjb2x1bW5gLiBTZXQgd2l0aCB0aGUgYCFnbG9iYWxgIGZsYWcuXG4vLy9cbi8vLyBAdHlwZSBOdW1iZXIgKFVuaXQpXG5cbiRndXR0ZXI6IDEuNjE4ZW0gIWRlZmF1bHQ7XG5cbi8vLyBTZXRzIHRoZSB0b3RhbCBudW1iZXIgb2YgY29sdW1ucyBpbiB0aGUgZ3JpZC4gSXRzIHZhbHVlIGNhbiBiZSBvdmVycmlkZGVuIGluc2lkZSBhIG1lZGlhIHF1ZXJ5IHVzaW5nIHRoZSBgbWVkaWEoKWAgbWl4aW4uIFNldCB3aXRoIHRoZSBgIWdsb2JhbGAgZmxhZy5cbi8vL1xuLy8vIEB0eXBlIE51bWJlciAoVW5pdGxlc3MpXG5cbiRncmlkLWNvbHVtbnM6IDEyICFkZWZhdWx0O1xuXG4vLy8gU2V0cyB0aGUgbWF4LXdpZHRoIHByb3BlcnR5IG9mIHRoZSBlbGVtZW50IHRoYXQgaW5jbHVkZXMgYG91dGVyLWNvbnRhaW5lcigpYC4gU2V0IHdpdGggdGhlIGAhZ2xvYmFsYCBmbGFnLlxuLy8vXG4vLy8gQHR5cGUgTnVtYmVyIChVbml0KVxuLy8vXG4kbWF4LXdpZHRoOiAxMjAwcHggIWRlZmF1bHQ7XG5cbi8vLyBXaGVuIHNldCB0byB0cnVlLCBpdCBzZXRzIHRoZSBib3gtc2l6aW5nIHByb3BlcnR5IG9mIGFsbCBlbGVtZW50cyB0byBgYm9yZGVyLWJveGAuIFNldCB3aXRoIGEgYCFnbG9iYWxgIGZsYWcuXG4vLy9cbi8vLyBAdHlwZSBCb29sXG4vLy9cbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XG4vLy8gICBodG1sIHtcbi8vLyAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsgfVxuLy8vXG4vLy8gICAqLCAqOjphZnRlciwgKjo6YmVmb3JlIHtcbi8vLyAgICAgYm94LXNpemluZzogaW5oZXJpdDtcbi8vLyAgIH1cblxuJGJvcmRlci1ib3gtc2l6aW5nOiB0cnVlICFkZWZhdWx0O1xuXG4vLy8gU2V0cyB0aGUgZGVmYXVsdCBbbWVkaWEgZmVhdHVyZV0oaHR0cDovL3d3dy53My5vcmcvVFIvY3NzMy1tZWRpYXF1ZXJpZXMvI21lZGlhKSB0aGF0IGBtZWRpYSgpYCBhbmQgYG5ldy1icmVha3BvaW50KClgIHJldmVydCB0byB3aGVuIG9ubHkgYSBicmVha3BvaW50IHZhbHVlIGlzIHBhc3NlZC4gU2V0IHdpdGggYSBgIWdsb2JhbGAgZmxhZy5cbi8vL1xuLy8vIEB0eXBlIFN0cmluZ1xuXG4kZGVmYXVsdC1mZWF0dXJlOiBtaW4td2lkdGg7IC8vIERlZmF1bHQgQG1lZGlhIGZlYXR1cmUgZm9yIHRoZSBicmVha3BvaW50KCkgbWl4aW5cblxuLy8vU2V0cyB0aGUgZGVmYXVsdCBsYXlvdXQgZGlyZWN0aW9uIG9mIHRoZSBncmlkLiBDYW4gYmUgYExUUmAgb3IgYFJUTGAuIFNldCB3aXRoIGEgYCFnbG9iYWxgIGZsYWcuXG4vLy9cbi8vL0B0eXBlIFN0cmluZ1xuXG4kZGVmYXVsdC1sYXlvdXQtZGlyZWN0aW9uOiBMVFIgIWRlZmF1bHQ7XG4iLCIkYmFzZS1yZW06IDE2cHg7IC8vIGEgbmV3IHZhbHVlIGRpc3RpbmN0IGZyb20gVVNXRFMgc3RhdGljIHZhcjtcbiRzYW5zLW5vcm1hbGl6ZS1tdWx0aXBsaWVyOiAxLjA7IC8vIG11bHRpcGxpZXIgZm9yIHRyZWJ1Y2hldDsgdGFraW5nIFNvdXJjZSBTYW5zIGFzIDEuMFxuXG5AaW1wb3J0ICdkZy1mdW5jdGlvbnMnO1xuXG4vLyBUeXBvZ3JhcGh5XG4vLyBSZW1vdmluZyB0aGUgZnJvbSAkZW0tYmFzZSBzbyB3ZSBhcmUgbm90IGluaGVyaXRpbmcgdGhhdFxuLy8gdmFsdWUgZnJvbSBCb3VyYm9uLlxuLy8kZW0tYmFzZTogICAgICAgICAgICAgIDEwcHg7XG4kYmFzZS1mb250LXNpemUtcHg6ICAgICAgMTdweDtcbiRzbWFsbC1mb250LXNpemUtcHg6ICAgICAxNHB4O1xuJGxlYWQtZm9udC1zaXplLXB4OiAgICAgIDIwcHg7XG4kdGl0bGUtZm9udC1zaXplLXB4OiAgICAgNTJweDtcbiRoMS1mb250LXNpemUtcHg6ICAgICAgICA0MHB4O1xuJGgyLWZvbnQtc2l6ZS1weDogICAgICAgIDMwcHg7XG4kaDMtZm9udC1zaXplLXB4OiAgICAgICAgMjBweDtcbiRoNC1mb250LXNpemUtcHg6ICAgICAgICAxN3B4O1xuJGg1LWZvbnQtc2l6ZS1weDogICAgICAgIDE1cHg7XG4kaDYtZm9udC1zaXplLXB4OiAgICAgICAgMTNweDtcblxuXG4kYmFzZS1mb250LXNpemU6ICAgICAgc2l6ZSgkYmFzZS1mb250LXNpemUtcHgpO1xuJHNtYWxsLWZvbnQtc2l6ZTogICAgIHNpemUoJHNtYWxsLWZvbnQtc2l6ZS1weCk7XG4kbGVhZC1mb250LXNpemU6ICAgICAgc2l6ZSgkbGVhZC1mb250LXNpemUtcHgpO1xuJHRpdGxlLWZvbnQtc2l6ZTogICAgIHNpemUoJHRpdGxlLWZvbnQtc2l6ZS1weCk7XG4kaDEtZm9udC1zaXplOiAgICAgICAgc2l6ZSgkaDEtZm9udC1zaXplLXB4KTtcbiRoMi1mb250LXNpemU6ICAgICAgICBzaXplKCRoMi1mb250LXNpemUtcHgpO1xuJGgzLWZvbnQtc2l6ZTogICAgICAgIHNpemUoJGgzLWZvbnQtc2l6ZS1weCk7XG4kaDQtZm9udC1zaXplOiAgICAgICAgc2l6ZSgkaDQtZm9udC1zaXplLXB4KTtcbiRoNS1mb250LXNpemU6ICAgICAgICBzaXplKCRoNS1mb250LXNpemUtcHgpO1xuJGg2LWZvbnQtc2l6ZTogICAgICAgIHNpemUoJGg2LWZvbnQtc2l6ZS1weCk7XG4vLyAkYmFzZS1saW5lLWhlaWdodDogICAgMS41O1xuLy8gJGhlYWRpbmctbGluZS1oZWlnaHQ6IDEuMztcbi8vICRsZWFkLWxpbmUtaGVpZ2h0OiAgICAxLjc7XG5cbiRmb250LXNhbnM6ICAgICAgICAgICBUcmVidWNoZXQsVGFob21hLHNhbnMtc2VyaWY7XG4vLyAkZm9udC1zZXJpZjogICAgICAgICAgJ01lcnJpd2VhdGhlcicsICRnZW9yZ2lhO1xuXG4vLyBUT0RPIHRoZXNlIHNob3VsZCBiZSBjYWxsZWQgZm9udC13ZWlnaHQtJHt9XG4vLyAkZm9udC1ub3JtYWw6ICAgICAgICAgNDAwO1xuLy8gJGZvbnQtYm9sZDogICAgICAgICAgIDcwMDtcblxuLy8gQ29sb3Jcbi8vICRjb2xvci1ibHVlOiAgICAgICAgICAgICAgICAgIzAwNzFiYztcbi8vICRjb2xvci1ibHVlLWRhcmtlcjogICAgICAgICAgIzIwNTQ5Mztcbi8vICRjb2xvci1ibHVlLWRhcmtlc3Q6ICAgICAgICAgIzExMmU1MTtcblxuLy8gJGNvbG9yLWFxdWE6ICAgICAgICAgICAgICAgICAjMDJiZmU3O1xuLy8gJGNvbG9yLWFxdWEtZGFyazogICAgICAgICAgICAjMDBhNmQyO1xuLy8gJGNvbG9yLWFxdWEtZGFya2VzdDogICAgICAgICAjMDQ2Yjk5O1xuLy8gJGNvbG9yLWFxdWEtbGlnaHQ6ICAgICAgICAgICAjOWJkYWYxO1xuLy8gJGNvbG9yLWFxdWEtbGlnaHRlc3Q6ICAgICAgICAjZTFmM2Y4O1xuXG4vLyAkY29sb3ItcmVkOiAgICAgICAgICAgICAgICAgICNlMzFjM2Q7XG4vLyAkY29sb3ItcmVkLWRhcms6ICAgICAgICAgICAgICNjZDIwMjY7XG4vLyAkY29sb3ItcmVkLWRhcmtlc3Q6ICAgICAgICAgICM5ODFiMWU7XG4vLyAkY29sb3ItcmVkLWxpZ2h0OiAgICAgICAgICAgICNlNTkzOTM7XG4vLyAkY29sb3ItcmVkLWxpZ2h0ZXN0OiAgICAgICAgICNmOWRlZGU7XG5cbi8vICRjb2xvci13aGl0ZTogICAgICAgICAgICAgICAgI2ZmZmZmZjtcbi8vICRjb2xvci1ibGFjazogICAgICAgICAgICAgICAgIzAwMDAwMDtcbi8vICRjb2xvci1ibGFjay1saWdodDogICAgICAgICAgIzIxMjEyMTtcblxuLy8gJGNvbG9yLWdyYXktZGFyazogICAgICAgICAgICAjMzIzYTQ1O1xuLy8gJGNvbG9yLWdyYXk6ICAgICAgICAgICAgICAgICAjNWI2MTZiO1xuLy8gJGNvbG9yLWdyYXktbWVkaXVtOiAgICAgICAgICAjNzU3NTc1O1xuLy8gJGNvbG9yLWdyYXktbGlnaHQ6ICAgICAgICAgICAjYWViMGI1O1xuLy8gJGNvbG9yLWdyYXktbGlnaHRlcjogICAgICAgICAjZDZkN2Q5O1xuLy8gJGNvbG9yLWdyYXktbGlnaHRlc3Q6ICAgICAgICAjZjFmMWYxO1xuXG4vLyAkY29sb3ItZ3JheS13YXJtLWRhcms6ICAgICAgICM0OTQ0NDA7XG4vLyAkY29sb3ItZ3JheS13YXJtLWxpZ2h0OiAgICAgICNlNGUyZTA7XG4vLyAkY29sb3ItZ3JheS1jb29sLWxpZ2h0OiAgICAgICNkY2U0ZWY7XG5cbi8vICRjb2xvci1nb2xkOiAgICAgICAgICAgICAgICAgI2ZkYjgxZTtcbi8vICRjb2xvci1nb2xkLWxpZ2h0OiAgICAgICAgICAgI2Y5YzY0Mjtcbi8vICRjb2xvci1nb2xkLWxpZ2h0ZXI6ICAgICAgICAgI2ZhZDk4MDtcbi8vICRjb2xvci1nb2xkLWxpZ2h0ZXN0OiAgICAgICAgI2ZmZjFkMjtcblxuLy8gJGNvbG9yLWdyZWVuOiAgICAgICAgICAgICAgICAjMmU4NTQwO1xuLy8gJGNvbG9yLWdyZWVuLWxpZ2h0OiAgICAgICAgICAjNGFhNTY0O1xuLy8gJGNvbG9yLWdyZWVuLWxpZ2h0ZXI6ICAgICAgICAjOTRiZmEyO1xuLy8gJGNvbG9yLWdyZWVuLWxpZ2h0ZXN0OiAgICAgICAjZTdmNGU0O1xuXG4vLyAkY29sb3ItY29vbC1ibHVlOiAgICAgICAgICAgICMyMDU0OTM7XG4vLyAkY29sb3ItY29vbC1ibHVlLWxpZ2h0OiAgICAgICM0NzczYWE7XG4vLyAkY29sb3ItY29vbC1ibHVlLWxpZ2h0ZXI6ICAgICM4YmE2Y2E7XG4vLyAkY29sb3ItY29vbC1ibHVlLWxpZ2h0ZXN0OiAgICNkY2U0ZWY7XG5cbi8vICRjb2xvci1wdXJwbGU6ICAgICAgICAgICAgICAgIzRjMmM5MjtcblxuLy8gRnVuY3Rpb25hbCBjb2xvcnNcbi8vICRjb2xvci1wcmltYXJ5OiAgICAgICAgICAgICAgJGNvbG9yLWJsdWU7XG4vLyAkY29sb3ItcHJpbWFyeS1kYXJrZXI6ICAgICAgICRjb2xvci1ibHVlLWRhcmtlcjtcbi8vICRjb2xvci1wcmltYXJ5LWRhcmtlc3Q6ICAgICAgJGNvbG9yLWJsdWUtZGFya2VzdDtcblxuLy8gJGNvbG9yLXByaW1hcnktYWx0OiAgICAgICAgICAkY29sb3ItYXF1YTtcbi8vICRjb2xvci1wcmltYXJ5LWFsdC1kYXJrOiAgICAgJGNvbG9yLWFxdWEtZGFyaztcbi8vICRjb2xvci1wcmltYXJ5LWFsdC1kYXJrZXN0OiAgJGNvbG9yLWFxdWEtZGFya2VzdDtcbi8vICRjb2xvci1wcmltYXJ5LWFsdC1saWdodDogICAgJGNvbG9yLWFxdWEtbGlnaHQ7XG4vLyAkY29sb3ItcHJpbWFyeS1hbHQtbGlnaHRlc3Q6ICRjb2xvci1hcXVhLWxpZ2h0ZXN0O1xuXG4vLyAkY29sb3Itc2Vjb25kYXJ5OiAgICAgICAgICAgICRjb2xvci1yZWQ7XG4vLyAkY29sb3Itc2Vjb25kYXJ5LWRhcms6ICAgICAgICRjb2xvci1yZWQtZGFyaztcbi8vICRjb2xvci1zZWNvbmRhcnktZGFya2VzdDogICAgJGNvbG9yLXJlZC1kYXJrZXN0O1xuLy8gJGNvbG9yLXNlY29uZGFyeS1saWdodDogICAgICAkY29sb3ItcmVkLWxpZ2h0O1xuLy8gJGNvbG9yLXNlY29uZGFyeS1saWdodGVzdDogICAkY29sb3ItcmVkLWxpZ2h0ZXN0O1xuXG4vLyAkY29sb3ItYmFzZTogICAgICAgICAgICAgICAgICRjb2xvci1ibGFjay1saWdodDtcbi8vICRjb2xvci1mb2N1czogICAgICAgICAgICAgICAgJGNvbG9yLWdyYXktbGlnaHQ7XG4vLyAkY29sb3ItdmlzaXRlZDogICAgICAgICAgICAgICRjb2xvci1wdXJwbGU7XG5cbi8vICRjb2xvci1zaGFkb3c6ICAgICAgICAgICAgICAgcmdiYSgjMDAwLCAwLjMpO1xuLy8gJGNvbG9yLXRyYW5zcGFyZW50OiAgICAgICAgICByZ2JhKCMwMDAsIDApO1xuXG4vLyBNb2JpbGUgRmlyc3QgQnJlYWtwb2ludHNcbi8vICRzbWFsbC1zY3JlZW46ICA0ODFweDtcbiRtZWRpdW0tc2NyZWVuOiA4MDFweDtcbiRsYXJnZS1zY3JlZW46ICAxMDI1cHg7XG5cbi8vIEdyaWQgY29sdW1uIGNvdW50cyBieSBzY3JlZW4gc2l6ZVxuLy8gJGdyaWQtY29sdW1ucy1zbWFsbDogMTtcbi8vICRncmlkLWNvbHVtbnMtbWVkaXVtOiA2O1xuLy8gJGdyaWQtY29sdW1ucy1sYXJnZTogMTI7XG5cbi8vIEBtZWRpYSBzaW5nbGUta2V5d29yZCBoZWxwZXJzXG4vLyAkc21hbGw6IG5ldy1icmVha3BvaW50KG1pbi13aWR0aCAkc21hbGwtc2NyZWVuICRncmlkLWNvbHVtbnMtc21hbGwpO1xuLy8gJG1lZGl1bTogbmV3LWJyZWFrcG9pbnQobWluLXdpZHRoICRtZWRpdW0tc2NyZWVuICRncmlkLWNvbHVtbnMtbWVkaXVtKTtcbi8vICRsYXJnZTogbmV3LWJyZWFrcG9pbnQobWluLXdpZHRoICRsYXJnZS1zY3JlZW4gJGdyaWQtY29sdW1ucy1sYXJnZSk7XG5cbi8vIFJlbGF0aXZlIGZvbnQgYW5kIGltYWdlIGZpbGUgcGF0aHNcbi8vICRmb250LXBhdGg6ICAgJy4uL2ZvbnRzJztcbi8vICRpbWFnZS1wYXRoOiAgJy4uL2ltZyc7XG5cbi8vIFNldCAkYXNzZXQtcGlwZWxpbmUgdG8gdHJ1ZSBpZiB5b3UncmUgdXNpbmcgdGhlIFJhaWxzIEFzc2V0IFBpcGVsaW5lXG4vLyAkYXNzZXQtcGlwZWxpbmU6ICAgICAgZmFsc2U7XG5cbi8vIE1hZ2ljIE51bWJlcnNcbiR0ZXh0LW1heC13aWR0aC1weDogICAgICAgICAgNTMwcHg7XG4kbGVhZC1tYXgtd2lkdGgtcHg6ICAgICAgICAgIDc3MHB4O1xuJHNpdGUtbWFyZ2lucy1weDogICAgICAgICAgICAzMHB4O1xuJHNpdGUtbWFyZ2lucy1tb2JpbGUtcHg6ICAgICAxNnB4O1xuJGlucHV0LW1heC13aWR0aC1weDogICAgICAgICA0NjBweDtcblxuJHRleHQtbWF4LXdpZHRoOiAgICAgICAgICBzaXplKCR0ZXh0LW1heC13aWR0aC1weCk7XG4kbGVhZC1tYXgtd2lkdGg6ICAgICAgICAgIHNpemUoJGxlYWQtbWF4LXdpZHRoLXB4KTtcbiRzaXRlLW1heC13aWR0aDogICAgICAgICAgOTYwcHg7XG4kc2l0ZS1tYXJnaW5zOiAgICAgICAgICAgIHNpemUoJHNpdGUtbWFyZ2lucy1weCk7XG4kc2l0ZS1tYXJnaW5zLW1vYmlsZTogICAgIHNpemUoJHNpdGUtbWFyZ2lucy1tb2JpbGUtcHgpO1xuLy8gJGFydGljbGUtbWF4LXdpZHRoOiAgICAgICA2MDBweDtcbiRpbnB1dC1tYXgtd2lkdGg6ICAgICAgICAgc2l6ZSgkaW5wdXQtbWF4LXdpZHRoLXB4KTtcbi8vICRsYWJlbC1ib3JkZXItcmFkaXVzOiAgICAgMnB4O1xuLy8gJGNoZWNrYm94LWJvcmRlci1yYWRpdXM6ICAycHg7XG4vLyAkYm9yZGVyLXJhZGl1czogICAgICAgICAgIDNweDtcbi8vICRidXR0b24tYm9yZGVyLXJhZGl1czogICAgNXB4O1xuLy8gJGJveC1zaGFkb3c6ICAgICAgICAgICAgICAwIDAgMnB4ICRjb2xvci1zaGFkb3c7XG4vLyAkZm9jdXMtb3V0bGluZTogICAgICAgICAgIDJweCBkb3R0ZWQgJGNvbG9yLWdyYXktbGlnaHQ7XG4vLyAkZm9jdXMtc3BhY2luZzogICAgICAgICAgIDNweDtcbi8vICRuYXYtd2lkdGg6ICAgICAgICAgICAgICAgOTUxcHg7XG5cbi8vIDQ0IHggNDQgcGl4ZWxzIGhpdCB0YXJnZXQgZm9sbG93aW5nIEFwcGxlIGlPUyBIdW1hbiBJbnRlcmZhY2Vcbi8vIEd1aWRlbGluZXNcbi8vICRoaXQtYXJlYTogNC40cmVtO1xuXG4vLyAkc3BhY2luZy14LXNtYWxsOiAwLjVyZW07XG4vLyAkc3BhY2luZy1zbWFsbDogMXJlbTtcbi8vICRzcGFjaW5nLW1kLXNtYWxsOiAxLjVyZW07XG4vLyAkc3BhY2luZy1tZWRpdW06IDJyZW07XG4vLyAkc3BhY2luZy1sYXJnZTogM3JlbTtcbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIFByb3ZpZGVzIGFuIGVhc3kgd2F5IHRvIGluY2x1ZGUgYSBjbGVhcmZpeCBmb3IgY29udGFpbmluZyBmbG9hdHMuXG4vLy9cbi8vLyBAbGluayBodHRwOi8vZ29vLmdsL3lQNWhpWlxuLy8vXG4vLy8gQGV4YW1wbGUgc2Nzc1xuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBAaW5jbHVkZSBjbGVhcmZpeDtcbi8vLyAgIH1cbi8vL1xuLy8vIEBleGFtcGxlIGNzc1xuLy8vICAgLmVsZW1lbnQ6OmFmdGVyIHtcbi8vLyAgICAgY2xlYXI6IGJvdGg7XG4vLy8gICAgIGNvbnRlbnQ6IFwiXCI7XG4vLy8gICAgIGRpc3BsYXk6IGJsb2NrO1xuLy8vICAgfVxuXG5AbWl4aW4gY2xlYXJmaXgge1xuICAmOjphZnRlciB7XG4gICAgY2xlYXI6IGJvdGg7XG4gICAgY29udGVudDogXCJcIjtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgfVxufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gRGlyZWN0aW9uYWwtcHJvcGVydHkgbWl4aW5zIGFyZSBzaG9ydGhhbmRzIGZvciB3cml0aW5nIHByb3BlcnRpZXMgbGlrZSB0aGUgZm9sbG93aW5nXG4vLy9cbi8vLyBAaWdub3JlIFlvdSBjYW4gYWxzbyB1c2UgYGZhbHNlYCBpbnN0ZWFkIG9mIGBudWxsYC5cbi8vL1xuLy8vIEBwYXJhbSB7TGlzdH0gJHZhbHNcbi8vLyAgIExpc3Qgb2YgZGlyZWN0aW9uYWwgdmFsdWVzXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2Vcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgQGluY2x1ZGUgYm9yZGVyLXN0eWxlKGRvdHRlZCBudWxsKTtcbi8vLyAgICAgQGluY2x1ZGUgbWFyZ2luKG51bGwgMCAxMHB4KTtcbi8vLyAgIH1cbi8vL1xuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgYm9yZGVyLWJvdHRvbS1zdHlsZTogZG90dGVkO1xuLy8vICAgICBib3JkZXItdG9wLXN0eWxlOiBkb3R0ZWQ7XG4vLy8gICAgIG1hcmdpbi1ib3R0b206IDEwcHg7XG4vLy8gICAgIG1hcmdpbi1sZWZ0OiAwO1xuLy8vICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4vLy8gICB9XG4vLy9cbi8vLyBAcmVxdWlyZSB7ZnVuY3Rpb259IGNvbnRhaW5zLWZhbHN5XG4vLy9cbi8vLyBAcmV0dXJuIHtMaXN0fVxuXG5AZnVuY3Rpb24gY29sbGFwc2UtZGlyZWN0aW9uYWxzKCR2YWxzKSB7XG4gICRvdXRwdXQ6IG51bGw7XG5cbiAgJGE6IG50aCgkdmFscywgMSk7XG4gICRiOiBpZihsZW5ndGgoJHZhbHMpIDwgMiwgJGEsIG50aCgkdmFscywgMikpO1xuICAkYzogaWYobGVuZ3RoKCR2YWxzKSA8IDMsICRhLCBudGgoJHZhbHMsIDMpKTtcbiAgJGQ6IGlmKGxlbmd0aCgkdmFscykgPCAyLCAkYSwgbnRoKCR2YWxzLCBpZihsZW5ndGgoJHZhbHMpIDwgNCwgMiwgNCkpKTtcblxuICBAaWYgJGEgPT0gMCB7ICRhOiAwOyB9XG4gIEBpZiAkYiA9PSAwIHsgJGI6IDA7IH1cbiAgQGlmICRjID09IDAgeyAkYzogMDsgfVxuICBAaWYgJGQgPT0gMCB7ICRkOiAwOyB9XG5cbiAgQGlmICRhID09ICRiIGFuZCAkYSA9PSAkYyBhbmQgJGEgPT0gJGQgeyAkb3V0cHV0OiAkYTsgICAgICAgICAgfVxuICBAZWxzZSBpZiAkYSA9PSAkYyBhbmQgJGIgPT0gJGQgICAgICAgICB7ICRvdXRwdXQ6ICRhICRiOyAgICAgICB9XG4gIEBlbHNlIGlmICRiID09ICRkICAgICAgICAgICAgICAgICAgICAgIHsgJG91dHB1dDogJGEgJGIgJGM7ICAgIH1cbiAgQGVsc2UgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyAkb3V0cHV0OiAkYSAkYiAkYyAkZDsgfVxuXG4gIEByZXR1cm4gJG91dHB1dDtcbn1cblxuLy8vIE91dHB1dCBkaXJlY3Rpb25hbCBwcm9wZXJ0aWVzLCBmb3IgaW5zdGFuY2UgYG1hcmdpbmAuXG4vLy9cbi8vLyBAYWNjZXNzIHByaXZhdGVcbi8vL1xuLy8vIEBwYXJhbSB7U3RyaW5nfSAkcHJlXG4vLy8gICBQcmVmaXggdG8gdXNlXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRzdWZcbi8vLyAgIFN1ZmZpeCB0byB1c2Vcbi8vLyBAcGFyYW0ge0xpc3R9ICR2YWxzXG4vLy8gICBMaXN0IG9mIHZhbHVlc1xuLy8vXG4vLy8gQHJlcXVpcmUge2Z1bmN0aW9ufSBjb2xsYXBzZS1kaXJlY3Rpb25hbHNcbi8vLyBAcmVxdWlyZSB7ZnVuY3Rpb259IGNvbnRhaW5zLWZhbHN5XG5cbkBtaXhpbiBkaXJlY3Rpb25hbC1wcm9wZXJ0eSgkcHJlLCAkc3VmLCAkdmFscykge1xuICAvLyBQcm9wZXJ0eSBOYW1lc1xuICAkdG9wOiAgICAkcHJlICsgXCItdG9wXCIgICAgKyBpZigkc3VmLCBcIi0jeyRzdWZ9XCIsIFwiXCIpO1xuICAkYm90dG9tOiAkcHJlICsgXCItYm90dG9tXCIgKyBpZigkc3VmLCBcIi0jeyRzdWZ9XCIsIFwiXCIpO1xuICAkbGVmdDogICAkcHJlICsgXCItbGVmdFwiICAgKyBpZigkc3VmLCBcIi0jeyRzdWZ9XCIsIFwiXCIpO1xuICAkcmlnaHQ6ICAkcHJlICsgXCItcmlnaHRcIiAgKyBpZigkc3VmLCBcIi0jeyRzdWZ9XCIsIFwiXCIpO1xuICAkYWxsOiAgICAkcHJlICsgICAgICAgICAgICAgaWYoJHN1ZiwgXCItI3skc3VmfVwiLCBcIlwiKTtcblxuICAkdmFsczogY29sbGFwc2UtZGlyZWN0aW9uYWxzKCR2YWxzKTtcblxuICBAaWYgY29udGFpbnMtZmFsc3koJHZhbHMpIHtcbiAgICBAaWYgbnRoKCR2YWxzLCAxKSB7ICN7JHRvcH06IG50aCgkdmFscywgMSk7IH1cblxuICAgIEBpZiBsZW5ndGgoJHZhbHMpID09IDEge1xuICAgICAgQGlmIG50aCgkdmFscywgMSkgeyAjeyRyaWdodH06IG50aCgkdmFscywgMSk7IH1cbiAgICB9IEBlbHNlIHtcbiAgICAgIEBpZiBudGgoJHZhbHMsIDIpIHsgI3skcmlnaHR9OiBudGgoJHZhbHMsIDIpOyB9XG4gICAgfVxuXG4gICAgQGlmIGxlbmd0aCgkdmFscykgPT0gMiB7XG4gICAgICBAaWYgbnRoKCR2YWxzLCAxKSB7ICN7JGJvdHRvbX06IG50aCgkdmFscywgMSk7IH1cbiAgICAgIEBpZiBudGgoJHZhbHMsIDIpIHsgI3skbGVmdH06ICAgbnRoKCR2YWxzLCAyKTsgfVxuICAgIH0gQGVsc2UgaWYgbGVuZ3RoKCR2YWxzKSA9PSAzIHtcbiAgICAgIEBpZiBudGgoJHZhbHMsIDMpIHsgI3skYm90dG9tfTogbnRoKCR2YWxzLCAzKTsgfVxuICAgICAgQGlmIG50aCgkdmFscywgMikgeyAjeyRsZWZ0fTogICBudGgoJHZhbHMsIDIpOyB9XG4gICAgfSBAZWxzZSBpZiBsZW5ndGgoJHZhbHMpID09IDQge1xuICAgICAgQGlmIG50aCgkdmFscywgMykgeyAjeyRib3R0b219OiBudGgoJHZhbHMsIDMpOyB9XG4gICAgICBAaWYgbnRoKCR2YWxzLCA0KSB7ICN7JGxlZnR9OiAgIG50aCgkdmFscywgNCk7IH1cbiAgICB9XG4gIH0gQGVsc2Uge1xuICAgICN7JGFsbH06ICR2YWxzO1xuICB9XG59XG4iLCJAZnVuY3Rpb24gc2l6ZSgkcGl4ZWxzKXtcbiAgJHB4VG9SZW06ICN7KCRwaXhlbHMgLyAkYmFzZS1yZW0pfXJlbTtcbiAgQHJldHVybiAkcHhUb1JlbTtcbn1cblxuQGZ1bmN0aW9uIHNpemUtc2FucygkcGl4ZWxzKXtcbiAgJG5vcm1hbGl6ZWRTYW5zOiAjeygkcGl4ZWxzIC8gJGJhc2UtcmVtKSAqICRzYW5zLW5vcm1hbGl6ZS1tdWx0aXBsaWVyfXJlbTtcbiAgQHJldHVybiAkbm9ybWFsaXplZFNhbnM7XG59XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBPdXRwdXRzIGEgbWVkaWEtcXVlcnkgYmxvY2sgd2l0aCBhbiBvcHRpb25hbCBncmlkIGNvbnRleHQgKHRoZSB0b3RhbCBudW1iZXIgb2YgY29sdW1ucyB1c2VkIGluIHRoZSBncmlkKS5cbi8vL1xuLy8vIEBwYXJhbSB7TGlzdH0gJHF1ZXJ5XG4vLy8gICBBIGxpc3Qgb2YgbWVkaWEgcXVlcnkgZmVhdHVyZXMgYW5kIHZhbHVlcywgd2hlcmUgZWFjaCBgJGZlYXR1cmVgIHNob3VsZCBoYXZlIGEgY29ycmVzcG9uZGluZyBgJHZhbHVlYC5cbi8vLyAgIEZvciBhIGxpc3Qgb2YgdmFsaWQgdmFsdWVzIGZvciBgJGZlYXR1cmVgLCBjbGljayBbaGVyZV0oaHR0cDovL3d3dy53My5vcmcvVFIvY3NzMy1tZWRpYXF1ZXJpZXMvI21lZGlhMSkuXG4vLy9cbi8vLyAgIElmIHRoZXJlIGlzIG9ubHkgYSBzaW5nbGUgYCR2YWx1ZWAgaW4gYCRxdWVyeWAsIGAkZGVmYXVsdC1mZWF0dXJlYCBpcyBnb2luZyB0byBiZSB1c2VkLlxuLy8vXG4vLy8gICBUaGUgbnVtYmVyIG9mIHRvdGFsIGNvbHVtbnMgaW4gdGhlIGdyaWQgY2FuIGJlIHNldCBieSBwYXNzaW5nIGAkY29sdW1uc2AgYXQgdGhlIGVuZCBvZiB0aGUgbGlzdCAob3ZlcnJpZGVzIGAkdG90YWwtY29sdW1uc2ApLlxuLy8vXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlciAodW5pdGxlc3MpfSAkdG90YWwtY29sdW1ucyBbJGdyaWQtY29sdW1uc11cbi8vLyAgIC0gTnVtYmVyIG9mIGNvbHVtbnMgdG8gdXNlIGluIHRoZSBuZXcgZ3JpZCBjb250ZXh0LiBDYW4gYmUgc2V0IGFzIGEgc2hvcnRoYW5kIGluIHRoZSBmaXJzdCBwYXJhbWV0ZXIuXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2Vcbi8vLyAgIC5yZXNwb25zaXZlLWVsZW1lbnQge1xuLy8vICAgICAgQGluY2x1ZGUgbWVkaWEoNzY5cHgpIHtcbi8vLyAgICAgICAgQGluY2x1ZGUgc3Bhbi1jb2x1bW5zKDYpO1xuLy8vICAgICAgfVxuLy8vICAgfVxuLy8vXG4vLy8gIC5uZXctY29udGV4dC1lbGVtZW50IHtcbi8vLyAgICBAaW5jbHVkZSBtZWRpYShtaW4td2lkdGggMzIwcHggbWF4LXdpZHRoIDQ4MHB4LCA2KSB7XG4vLy8gICAgICBAaW5jbHVkZSBzcGFuLWNvbHVtbnMoNik7XG4vLy8gICAgfVxuLy8vICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XG4vLy8gIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDc2OXB4KSB7XG4vLy8gICAgLnJlc3BvbnNpdmUtZWxlbWVudCB7XG4vLy8gICAgICBkaXNwbGF5OiBibG9jaztcbi8vLyAgICAgIGZsb2F0OiBsZWZ0O1xuLy8vICAgICAgbWFyZ2luLXJpZ2h0OiAyLjM1NzY1JTtcbi8vLyAgICAgIHdpZHRoOiA0OC44MjExNyU7XG4vLy8gICAgfVxuLy8vXG4vLy8gICAgLnJlc3BvbnNpdmUtZWxlbWVudDpsYXN0LWNoaWxkIHtcbi8vLyAgICAgIG1hcmdpbi1yaWdodDogMDtcbi8vLyAgICB9XG4vLy8gIH1cbi8vL1xuLy8vICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAzMjBweCkgYW5kIChtYXgtd2lkdGg6IDQ4MHB4KSB7XG4vLy8gICAgLm5ldy1jb250ZXh0LWVsZW1lbnQge1xuLy8vICAgICAgZGlzcGxheTogYmxvY2s7XG4vLy8gICAgICBmbG9hdDogbGVmdDtcbi8vLyAgICAgIG1hcmdpbi1yaWdodDogNC44MjkxNiU7XG4vLy8gICAgICB3aWR0aDogMTAwJTtcbi8vLyAgICB9XG4vLy9cbi8vLyAgICAubmV3LWNvbnRleHQtZWxlbWVudDpsYXN0LWNoaWxkIHtcbi8vLyAgICAgIG1hcmdpbi1yaWdodDogMDtcbi8vLyAgICB9XG4vLy8gIH1cblxuQG1peGluIG1lZGlhKCRxdWVyeTogJGZlYXR1cmUgJHZhbHVlICRjb2x1bW5zLCAkdG90YWwtY29sdW1uczogJGdyaWQtY29sdW1ucykge1xuICBAaWYgbGVuZ3RoKCRxdWVyeSkgPT0gMSB7XG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKCRkZWZhdWx0LWZlYXR1cmU6IG50aCgkcXVlcnksIDEpKSB7XG4gICAgICAkZGVmYXVsdC1ncmlkLWNvbHVtbnM6ICRncmlkLWNvbHVtbnM7XG4gICAgICAkZ3JpZC1jb2x1bW5zOiAkdG90YWwtY29sdW1ucyAhZ2xvYmFsO1xuICAgICAgQGNvbnRlbnQ7XG4gICAgICAkZ3JpZC1jb2x1bW5zOiAkZGVmYXVsdC1ncmlkLWNvbHVtbnMgIWdsb2JhbDtcbiAgICB9XG4gIH0gQGVsc2Uge1xuICAgICRsb29wLXRvOiBsZW5ndGgoJHF1ZXJ5KTtcbiAgICAkbWVkaWEtcXVlcnk6IFwic2NyZWVuIGFuZCBcIjtcbiAgICAkZGVmYXVsdC1ncmlkLWNvbHVtbnM6ICRncmlkLWNvbHVtbnM7XG4gICAgJGdyaWQtY29sdW1uczogJHRvdGFsLWNvbHVtbnMgIWdsb2JhbDtcblxuICAgIEBpZiBpcy1ub3QoaXMtZXZlbihsZW5ndGgoJHF1ZXJ5KSkpIHtcbiAgICAgICRncmlkLWNvbHVtbnM6IG50aCgkcXVlcnksICRsb29wLXRvKSAhZ2xvYmFsO1xuICAgICAgJGxvb3AtdG86ICRsb29wLXRvIC0gMTtcbiAgICB9XG5cbiAgICAkaTogMTtcbiAgICBAd2hpbGUgJGkgPD0gJGxvb3AtdG8ge1xuICAgICAgJG1lZGlhLXF1ZXJ5OiAkbWVkaWEtcXVlcnkgKyBcIihcIiArIG50aCgkcXVlcnksICRpKSArIFwiOiBcIiArIG50aCgkcXVlcnksICRpICsgMSkgKyBcIikgXCI7XG5cbiAgICAgIEBpZiAoJGkgKyAxKSAhPSAkbG9vcC10byB7XG4gICAgICAgICRtZWRpYS1xdWVyeTogJG1lZGlhLXF1ZXJ5ICsgXCJhbmQgXCI7XG4gICAgICB9XG5cbiAgICAgICRpOiAkaSArIDI7XG4gICAgfVxuXG4gICAgQG1lZGlhICN7JG1lZGlhLXF1ZXJ5fSB7XG4gICAgICBAY29udGVudDtcbiAgICAgICRncmlkLWNvbHVtbnM6ICRkZWZhdWx0LWdyaWQtY29sdW1ucyAhZ2xvYmFsO1xuICAgIH1cbiAgfVxufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gU3BlY2lmaWVzIHRoZSBudW1iZXIgb2YgY29sdW1ucyBhbiBlbGVtZW50IHNob3VsZCBzcGFuLiBJZiB0aGUgc2VsZWN0b3IgaXMgbmVzdGVkIHRoZSBudW1iZXIgb2YgY29sdW1ucyBvZiBpdHMgcGFyZW50IGVsZW1lbnQgc2hvdWxkIGJlIHBhc3NlZCBhcyBhbiBhcmd1bWVudCBhcyB3ZWxsLlxuLy8vXG4vLy8gQHBhcmFtIHtMaXN0fSAkc3BhblxuLy8vICAgQSBsaXN0IGNvbnRhaW5pbmcgYCRjb2x1bW5zYCwgdGhlIHVuaXRsZXNzIG51bWJlciBvZiBjb2x1bW5zIHRoZSBlbGVtZW50IHNwYW5zIChyZXF1aXJlZCksIGFuZCBgJGNvbnRhaW5lci1jb2x1bW5zYCwgdGhlIG51bWJlciBvZiBjb2x1bW5zIHRoZSBwYXJlbnQgZWxlbWVudCBzcGFucyAob3B0aW9uYWwpLlxuLy8vXG4vLy8gICBJZiBvbmx5IG9uZSB2YWx1ZSBpcyBwYXNzZWQsIGl0IGlzIGFzc3VtZWQgdGhhdCBpdCdzIGAkY29sdW1uc2AgYW5kIHRoYXQgdGhhdCBgJGNvbnRhaW5lci1jb2x1bW5zYCBpcyBlcXVhbCB0byBgJGdyaWQtY29sdW1uc2AsIHRoZSB0b3RhbCBudW1iZXIgb2YgY29sdW1ucyBpbiB0aGUgZ3JpZC5cbi8vL1xuLy8vICAgVGhlIHZhbHVlcyBjYW4gYmUgc2VwYXJhdGVkIHdpdGggYW55IHN0cmluZyBzdWNoIGFzIGBvZmAsIGAvYCwgZXRjLlxuLy8vXG4vLy8gICBgJGNvbHVtbnNgIGFsc28gYWNjZXB0cyBkZWNpbWFscyBmb3Igd2hlbiBpdCdzIG5lY2Vzc2FyeSB0byBicmVhayBvdXQgb2YgdGhlIHN0YW5kYXJkIGdyaWQuIEUuZy4gUGFzc2luZyBgMi40YCBpbiBhIHN0YW5kYXJkIDEyIGNvbHVtbiBncmlkIHdpbGwgZGl2aWRlIHRoZSByb3cgaW50byA1IGNvbHVtbnMuXG4vLy9cbi8vLyBAcGFyYW0ge1N0cmluZ30gJGRpc3BsYXkgW2Jsb2NrXVxuLy8vICAgU2V0cyB0aGUgZGlzcGxheSBwcm9wZXJ0eSBvZiB0aGUgZWxlbWVudC4gQnkgZGVmYXVsdCBpdCBzZXRzIHRoZSBkaXNwbGF5IHByb3BlcnR5IG9mIHRoZSBlbGVtZW50IHRvIGBibG9ja2AuXG4vLy9cbi8vLyAgIElmIHBhc3NlZCBgYmxvY2stY29sbGFwc2VgLCBpdCBhbHNvIHJlbW92ZXMgdGhlIG1hcmdpbiBndXR0ZXIgYnkgYWRkaW5nIGl0IHRvIHRoZSBlbGVtZW50IHdpZHRoLlxuLy8vXG4vLy8gICBJZiBwYXNzZWQgYHRhYmxlYCwgaXQgc2V0cyB0aGUgZGlzcGxheSBwcm9wZXJ0eSB0byBgdGFibGUtY2VsbGAgYW5kIGNhbGN1bGF0ZXMgdGhlIHdpZHRoIG9mIHRoZSBlbGVtZW50IHdpdGhvdXQgdGFraW5nIGd1dHRlcnMgaW50byBjb25zaWRlcmF0aW9uLiBUaGUgcmVzdWx0IGRvZXMgbm90IGFsaWduIHdpdGggdGhlIGJsb2NrLWJhc2VkIGdyaWQuXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2Vcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgQGluY2x1ZGUgc3Bhbi1jb2x1bW5zKDYpO1xuLy8vXG4vLy8gICAgLm5lc3RlZC1lbGVtZW50IHtcbi8vLyAgICAgIEBpbmNsdWRlIHNwYW4tY29sdW1ucygyIG9mIDYpO1xuLy8vICAgIH1cbi8vLyAgfVxuLy8vXG4vLy8gQGV4YW1wbGUgY3NzIC0gQ1NTIE91dHB1dFxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBkaXNwbGF5OiBibG9jaztcbi8vLyAgICAgZmxvYXQ6IGxlZnQ7XG4vLy8gICAgIG1hcmdpbi1yaWdodDogMi4zNTc2NSU7XG4vLy8gICAgIHdpZHRoOiA0OC44MjExNyU7XG4vLy8gICB9XG4vLy9cbi8vLyAgIC5lbGVtZW50Omxhc3QtY2hpbGQge1xuLy8vICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4vLy8gICB9XG4vLy9cbi8vLyAgIC5lbGVtZW50IC5uZXN0ZWQtZWxlbWVudCB7XG4vLy8gICAgIGRpc3BsYXk6IGJsb2NrO1xuLy8vICAgICBmbG9hdDogbGVmdDtcbi8vLyAgICAgbWFyZ2luLXJpZ2h0OiA0LjgyOTE2JTtcbi8vLyAgICAgd2lkdGg6IDMwLjExMzg5JTtcbi8vLyAgIH1cbi8vL1xuLy8vICAgLmVsZW1lbnQgLm5lc3RlZC1lbGVtZW50Omxhc3QtY2hpbGQge1xuLy8vICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4vLy8gICB9XG5cbkBtaXhpbiBzcGFuLWNvbHVtbnMoJHNwYW46ICRjb2x1bW5zIG9mICRjb250YWluZXItY29sdW1ucywgJGRpc3BsYXk6IGJsb2NrKSB7XG4gICRjb2x1bW5zOiBudGgoJHNwYW4sIDEpO1xuICAkY29udGFpbmVyLWNvbHVtbnM6IGNvbnRhaW5lci1zcGFuKCRzcGFuKTtcblxuICAkcGFyZW50LWNvbHVtbnM6IGdldC1wYXJlbnQtY29sdW1ucygkY29udGFpbmVyLWNvbHVtbnMpICFnbG9iYWw7XG5cbiAgJGRpcmVjdGlvbjogZ2V0LWRpcmVjdGlvbigkbGF5b3V0LWRpcmVjdGlvbiwgJGRlZmF1bHQtbGF5b3V0LWRpcmVjdGlvbik7XG4gICRvcHBvc2l0ZS1kaXJlY3Rpb246IGdldC1vcHBvc2l0ZS1kaXJlY3Rpb24oJGRpcmVjdGlvbik7XG5cbiAgJGRpc3BsYXktdGFibGU6IGlzLWRpc3BsYXktdGFibGUoJGNvbnRhaW5lci1kaXNwbGF5LXRhYmxlLCAkZGlzcGxheSk7XG5cbiAgQGlmICRkaXNwbGF5LXRhYmxlICB7XG4gICAgZGlzcGxheTogdGFibGUtY2VsbDtcbiAgICB3aWR0aDogcGVyY2VudGFnZSgkY29sdW1ucyAvICRjb250YWluZXItY29sdW1ucyk7XG4gIH0gQGVsc2Uge1xuICAgIGZsb2F0OiAjeyRvcHBvc2l0ZS1kaXJlY3Rpb259O1xuXG4gICAgQGlmICRkaXNwbGF5ICE9IG5vLWRpc3BsYXkge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgfVxuXG4gICAgQGlmICRkaXNwbGF5ID09IGNvbGxhcHNlIHtcbiAgICAgIEBpbmNsdWRlIC1uZWF0LXdhcm4oXCJUaGUgJ2NvbGxhcHNlJyBhcmd1bWVudCB3aWxsIGJlIGRlcHJlY2F0ZWQuIFVzZSAnYmxvY2stY29sbGFwc2UnIGluc3RlYWQuXCIpO1xuICAgIH1cblxuICAgIEBpZiAkZGlzcGxheSA9PSBjb2xsYXBzZSBvciAkZGlzcGxheSA9PSBibG9jay1jb2xsYXBzZSB7XG4gICAgICB3aWR0aDogZmxleC1ncmlkKCRjb2x1bW5zLCAkY29udGFpbmVyLWNvbHVtbnMpICsgZmxleC1ndXR0ZXIoJGNvbnRhaW5lci1jb2x1bW5zKTtcblxuICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgd2lkdGg6IGZsZXgtZ3JpZCgkY29sdW1ucywgJGNvbnRhaW5lci1jb2x1bW5zKTtcbiAgICAgIH1cblxuICAgIH0gQGVsc2Uge1xuICAgICAgbWFyZ2luLSN7JGRpcmVjdGlvbn06IGZsZXgtZ3V0dGVyKCRjb250YWluZXItY29sdW1ucyk7XG4gICAgICB3aWR0aDogZmxleC1ncmlkKCRjb2x1bW5zLCAkY29udGFpbmVyLWNvbHVtbnMpO1xuXG4gICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICBtYXJnaW4tI3skZGlyZWN0aW9ufTogMDtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIiRwYXJlbnQtY29sdW1uczogJGdyaWQtY29sdW1ucyAhZGVmYXVsdDtcbiRmZy1jb2x1bW46ICRjb2x1bW47XG4kZmctZ3V0dGVyOiAkZ3V0dGVyO1xuJGZnLW1heC1jb2x1bW5zOiAkZ3JpZC1jb2x1bW5zO1xuJGNvbnRhaW5lci1kaXNwbGF5LXRhYmxlOiBmYWxzZSAhZGVmYXVsdDtcbiRsYXlvdXQtZGlyZWN0aW9uOiBMVFIgIWRlZmF1bHQ7XG5cbkBmdW5jdGlvbiBmbGV4LWdyaWQoJGNvbHVtbnMsICRjb250YWluZXItY29sdW1uczogJGZnLW1heC1jb2x1bW5zKSB7XG4gICR3aWR0aDogJGNvbHVtbnMgKiAkZmctY29sdW1uICsgKCRjb2x1bW5zIC0gMSkgKiAkZmctZ3V0dGVyO1xuICAkY29udGFpbmVyLXdpZHRoOiAkY29udGFpbmVyLWNvbHVtbnMgKiAkZmctY29sdW1uICsgKCRjb250YWluZXItY29sdW1ucyAtIDEpICogJGZnLWd1dHRlcjtcbiAgQHJldHVybiBwZXJjZW50YWdlKCR3aWR0aCAvICRjb250YWluZXItd2lkdGgpO1xufVxuXG5AZnVuY3Rpb24gZmxleC1ndXR0ZXIoJGNvbnRhaW5lci1jb2x1bW5zOiAkZmctbWF4LWNvbHVtbnMsICRndXR0ZXI6ICRmZy1ndXR0ZXIpIHtcbiAgJGNvbnRhaW5lci13aWR0aDogJGNvbnRhaW5lci1jb2x1bW5zICogJGZnLWNvbHVtbiArICgkY29udGFpbmVyLWNvbHVtbnMgLSAxKSAqICRmZy1ndXR0ZXI7XG4gIEByZXR1cm4gcGVyY2VudGFnZSgkZ3V0dGVyIC8gJGNvbnRhaW5lci13aWR0aCk7XG59XG5cbkBmdW5jdGlvbiBncmlkLXdpZHRoKCRuKSB7XG4gIEByZXR1cm4gJG4gKiAkZ3ctY29sdW1uICsgKCRuIC0gMSkgKiAkZ3ctZ3V0dGVyO1xufVxuXG5AZnVuY3Rpb24gZ2V0LXBhcmVudC1jb2x1bW5zKCRjb2x1bW5zKSB7XG4gIEBpZiAkY29sdW1ucyAhPSAkZ3JpZC1jb2x1bW5zIHtcbiAgICAkcGFyZW50LWNvbHVtbnM6ICRjb2x1bW5zICFnbG9iYWw7XG4gIH0gQGVsc2Uge1xuICAgICRwYXJlbnQtY29sdW1uczogJGdyaWQtY29sdW1ucyAhZ2xvYmFsO1xuICB9XG5cbiAgQHJldHVybiAkcGFyZW50LWNvbHVtbnM7XG59XG5cbkBmdW5jdGlvbiBpcy1kaXNwbGF5LXRhYmxlKCRjb250YWluZXItaXMtZGlzcGxheS10YWJsZSwgJGRpc3BsYXkpIHtcbiAgQHJldHVybiAkY29udGFpbmVyLWlzLWRpc3BsYXktdGFibGUgPT0gdHJ1ZSBvciAkZGlzcGxheSA9PSB0YWJsZTtcbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIFJlbW92ZXMgdGhlIGVsZW1lbnQncyBndXR0ZXIgbWFyZ2luLCByZWdhcmRsZXNzIG9mIGl0cyBwb3NpdGlvbiBpbiB0aGUgZ3JpZCBoaWVyYXJjaHkgb3IgZGlzcGxheSBwcm9wZXJ0eS4gSXQgY2FuIHRhcmdldCBhIHNwZWNpZmljIGVsZW1lbnQsIG9yIGV2ZXJ5IGBudGgtY2hpbGRgIG9jY3VycmVuY2UuIFdvcmtzIG9ubHkgd2l0aCBgYmxvY2tgIGxheW91dHMuXG4vLy9cbi8vLyBAcGFyYW0ge0xpc3R9ICRxdWVyeSBbYmxvY2tdXG4vLy8gICBMaXN0IG9mIGFyZ3VtZW50cy4gU3VwcG9ydGVkIGFyZ3VtZW50cyBhcmUgYG50aC1jaGlsZGAgc2VsZWN0b3JzICh0YXJnZXRzIGEgc3BlY2lmaWMgcHNldWRvIGVsZW1lbnQpIGFuZCBgYXV0b2AgKHRhcmdldHMgYGxhc3QtY2hpbGRgKS5cbi8vL1xuLy8vICAgV2hlbiBwYXNzZWQgYW4gYG50aC1jaGlsZGAgYXJndW1lbnQgb2YgdHlwZSBgKm5gIHdpdGggYGJsb2NrYCBkaXNwbGF5LCB0aGUgb21lZ2EgbWl4aW4gYXV0b21hdGljYWxseSBhZGRzIGEgY2xlYXIgdG8gdGhlIGAqbisxYCB0aCBlbGVtZW50LiBOb3RlIHRoYXQgY29tcG9zaXRlIGFyZ3VtZW50cyBzdWNoIGFzIGAybisxYCBkbyBub3Qgc3VwcG9ydCB0aGlzIGZlYXR1cmUuXG4vLy9cbi8vLyAgICoqRGVwcmVjYXRpb24gd2FybmluZyoqOiBUaGUgb21lZ2EgbWl4aW4gd2lsbCBubyBsb25nZXIgdGFrZSBhIGAkZGlyZWN0aW9uYCBhcmd1bWVudC4gVG8gY2hhbmdlIHRoZSBsYXlvdXQgZGlyZWN0aW9uLCB1c2UgYHJvdygkZGlyZWN0aW9uKWAgb3Igc2V0IGAkZGVmYXVsdC1sYXlvdXQtZGlyZWN0aW9uYCBpbnN0ZWFkLlxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIEBpbmNsdWRlIG9tZWdhO1xuLy8vICAgfVxuLy8vXG4vLy8gICAubnRoLWVsZW1lbnQge1xuLy8vICAgICBAaW5jbHVkZSBvbWVnYSg0bik7XG4vLy8gICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIG1hcmdpbi1yaWdodDogMDtcbi8vLyAgIH1cbi8vL1xuLy8vICAgLm50aC1lbGVtZW50Om50aC1jaGlsZCg0bikge1xuLy8vICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4vLy8gICB9XG4vLy9cbi8vLyAgIC5udGgtZWxlbWVudDpudGgtY2hpbGQoNG4rMSkge1xuLy8vICAgICBjbGVhcjogbGVmdDtcbi8vLyAgIH1cblxuQG1peGluIG9tZWdhKCRxdWVyeTogYmxvY2ssICRkaXJlY3Rpb246IGRlZmF1bHQpIHtcbiAgJHRhYmxlOiBiZWxvbmdzLXRvKHRhYmxlLCAkcXVlcnkpO1xuICAkYXV0bzogYmVsb25ncy10byhhdXRvLCAkcXVlcnkpO1xuXG4gIEBpZiAkZGlyZWN0aW9uICE9IGRlZmF1bHQge1xuICAgIEBpbmNsdWRlIC1uZWF0LXdhcm4oXCJUaGUgb21lZ2EgbWl4aW4gd2lsbCBubyBsb25nZXIgdGFrZSBhICRkaXJlY3Rpb24gYXJndW1lbnQuIFRvIGNoYW5nZSB0aGUgbGF5b3V0IGRpcmVjdGlvbiwgdXNlIHRoZSBkaXJlY3Rpb24oKXsuLi59IG1peGluLlwiKTtcbiAgfSBAZWxzZSB7XG4gICAgJGRpcmVjdGlvbjogZ2V0LWRpcmVjdGlvbigkbGF5b3V0LWRpcmVjdGlvbiwgJGRlZmF1bHQtbGF5b3V0LWRpcmVjdGlvbik7XG4gIH1cblxuICBAaWYgJHRhYmxlIHtcbiAgICBAaW5jbHVkZSAtbmVhdC13YXJuKFwiVGhlIG9tZWdhIG1peGluIG5vIGxvbmdlciByZW1vdmVzIHBhZGRpbmcgaW4gdGFibGUgbGF5b3V0cy5cIik7XG4gIH1cblxuICBAaWYgbGVuZ3RoKCRxdWVyeSkgPT0gMSB7XG4gICAgQGlmICRhdXRvIHtcbiAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgIG1hcmdpbi0jeyRkaXJlY3Rpb259OiAwO1xuICAgICAgfVxuICAgIH1cblxuICAgIEBlbHNlIGlmIGNvbnRhaW5zLWRpc3BsYXktdmFsdWUoJHF1ZXJ5KSBhbmQgJHRhYmxlID09IGZhbHNlIHtcbiAgICAgIG1hcmdpbi0jeyRkaXJlY3Rpb259OiAwO1xuICAgIH1cblxuICAgIEBlbHNlIHtcbiAgICAgIEBpbmNsdWRlIG50aC1jaGlsZCgkcXVlcnksICRkaXJlY3Rpb24pO1xuICAgIH1cbiAgfSBAZWxzZSBpZiBsZW5ndGgoJHF1ZXJ5KSA9PSAyIHtcbiAgICBAaWYgJGF1dG8ge1xuICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgbWFyZ2luLSN7JGRpcmVjdGlvbn06IDA7XG4gICAgICB9XG4gICAgfSBAZWxzZSB7XG4gICAgICBAaW5jbHVkZSBudGgtY2hpbGQobnRoKCRxdWVyeSwgMSksICRkaXJlY3Rpb24pO1xuICAgIH1cbiAgfSBAZWxzZSB7XG4gICAgQGluY2x1ZGUgLW5lYXQtd2FybihcIlRvbyBtYW55IGFyZ3VtZW50cyBwYXNzZWQgdG8gdGhlIG9tZWdhKCkgbWl4aW4uXCIpO1xuICB9XG59XG5cbkBtaXhpbiBudGgtY2hpbGQoJHF1ZXJ5LCAkZGlyZWN0aW9uKSB7XG4gICRvcHBvc2l0ZS1kaXJlY3Rpb246IGdldC1vcHBvc2l0ZS1kaXJlY3Rpb24oJGRpcmVjdGlvbik7XG5cbiAgJjpudGgtY2hpbGQoI3skcXVlcnl9KSB7XG4gICAgbWFyZ2luLSN7JGRpcmVjdGlvbn06IDA7XG4gIH1cblxuICBAaWYgdHlwZS1vZigkcXVlcnkpID09IG51bWJlciBhbmQgdW5pdCgkcXVlcnkpID09IFwiblwiIHtcbiAgICAmOm50aC1jaGlsZCgjeyRxdWVyeX0rMSkge1xuICAgICAgY2xlYXI6ICRvcHBvc2l0ZS1kaXJlY3Rpb247XG4gICAgfVxuICB9XG59XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBUcmFuc2xhdGVzIGFuIGVsZW1lbnQgaG9yaXpvbnRhbGx5IGJ5IGEgbnVtYmVyIG9mIGNvbHVtbnMuIFBvc2l0aXZlIGFyZ3VtZW50cyBzaGlmdCB0aGUgZWxlbWVudCB0byB0aGUgYWN0aXZlIGxheW91dCBkaXJlY3Rpb24sIHdoaWxlIG5lZ2F0aXZlIG9uZXMgc2hpZnQgaXQgdG8gdGhlIG9wcG9zaXRlIGRpcmVjdGlvbi5cbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyICh1bml0bGVzcyl9ICRuLWNvbHVtbnMgWzFdXG4vLy8gICBOdW1iZXIgb2YgY29sdW1ucyBieSB3aGljaCB0aGUgZWxlbWVudCBzaGlmdHMuXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2Vcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgQGluY2x1ZGUgc2hpZnQoLTMpO1xuLy8vICAgfVxuLy8vXG4vLy8gQGV4YW1wbGUgY3NzIC0gQ1NTIG91dHB1dFxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBtYXJnaW4tbGVmdDogLTI1LjU4OTQxJTtcbi8vLyAgIH1cblxuQG1peGluIHNoaWZ0KCRuLWNvbHVtbnM6IDEpIHtcbiAgQGluY2x1ZGUgc2hpZnQtaW4tY29udGV4dCgkbi1jb2x1bW5zKTtcbn1cblxuLy8vIFRyYW5zbGF0ZXMgYW4gZWxlbWVudCBob3Jpem9udGFsbHkgYnkgYSBudW1iZXIgb2YgY29sdW1ucywgaW4gYSBzcGVjaWZpYyBuZXN0aW5nIGNvbnRleHQuXG4vLy9cbi8vLyBAcGFyYW0ge0xpc3R9ICRzaGlmdFxuLy8vICAgQSBsaXN0IGNvbnRhaW5pbmcgdGhlIG51bWJlciBvZiBjb2x1bW5zIHRvIHNoaWZ0IChgJGNvbHVtbnNgKSBhbmQgdGhlIG51bWJlciBvZiBjb2x1bW5zIG9mIHRoZSBwYXJlbnQgZWxlbWVudCAoYCRjb250YWluZXItY29sdW1uc2ApLlxuLy8vXG4vLy8gICBUaGUgdHdvIHZhbHVlcyBjYW4gYmUgc2VwYXJhdGVkIHdpdGggYW55IHN0cmluZyBzdWNoIGFzIGBvZmAsIGAvYCwgZXRjLlxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIEBpbmNsdWRlIHNoaWZ0KC0zIG9mIDYpO1xuLy8vICAgfVxuLy8vXG4vLy8gQGV4YW1wbGUgY3NzIC0gQ1NTIG91dHB1dFxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBtYXJnaW4tbGVmdDogLTUyLjQxNDU4JTtcbi8vLyAgIH1cblxuQG1peGluIHNoaWZ0LWluLWNvbnRleHQoJHNoaWZ0OiAkY29sdW1ucyBvZiAkY29udGFpbmVyLWNvbHVtbnMpIHtcbiAgJG4tY29sdW1uczogbnRoKCRzaGlmdCwgMSk7XG4gICRwYXJlbnQtY29sdW1uczogY29udGFpbmVyLXNoaWZ0KCRzaGlmdCkgIWdsb2JhbDtcblxuICAkZGlyZWN0aW9uOiBnZXQtZGlyZWN0aW9uKCRsYXlvdXQtZGlyZWN0aW9uLCAkZGVmYXVsdC1sYXlvdXQtZGlyZWN0aW9uKTtcbiAgJG9wcG9zaXRlLWRpcmVjdGlvbjogZ2V0LW9wcG9zaXRlLWRpcmVjdGlvbigkZGlyZWN0aW9uKTtcblxuICBtYXJnaW4tI3skb3Bwb3NpdGUtZGlyZWN0aW9ufTogJG4tY29sdW1ucyAqIGZsZXgtZ3JpZCgxLCAkcGFyZW50LWNvbHVtbnMpICsgJG4tY29sdW1ucyAqIGZsZXgtZ3V0dGVyKCRwYXJlbnQtY29sdW1ucyk7XG5cbiAgLy8gUmVzZXQgbmVzdGluZyBjb250ZXh0XG4gICRwYXJlbnQtY29sdW1uczogJGdyaWQtY29sdW1ucyAhZ2xvYmFsO1xufVxuIiwiLy8gSGVhZGluZyBtaXhpbnNcbkBtaXhpbiB0aXRsZSB7XG4gIGZvbnQtc2l6ZTogJHRpdGxlLWZvbnQtc2l6ZTtcbiAgZm9udC13ZWlnaHQ6ICRmb250LWJvbGQ7XG59XG5cbkBtaXhpbiBoMSB7XG4gIGZvbnQtc2l6ZTogJGgxLWZvbnQtc2l6ZTtcbiAgZm9udC13ZWlnaHQ6ICRmb250LWJvbGQ7XG59XG5cbkBtaXhpbiBoMiB7XG4gIGZvbnQtc2l6ZTogJGgyLWZvbnQtc2l6ZTtcbiAgZm9udC13ZWlnaHQ6ICRmb250LWJvbGQ7XG59XG5cbkBtaXhpbiBoMyB7XG4gIGZvbnQtc2l6ZTogJGgzLWZvbnQtc2l6ZTtcbiAgZm9udC13ZWlnaHQ6ICRmb250LWJvbGQ7XG59XG5cbkBtaXhpbiBoNCB7XG4gIGZvbnQtc2l6ZTogJGg0LWZvbnQtc2l6ZTtcbiAgZm9udC13ZWlnaHQ6ICRmb250LWJvbGQ7XG59XG5cbkBtaXhpbiBoNSB7XG4gIGZvbnQtc2l6ZTogJGg1LWZvbnQtc2l6ZTtcbiAgZm9udC13ZWlnaHQ6ICRmb250LWJvbGQ7XG59XG5cbkBtaXhpbiBoNiB7XG4gIGZvbnQtc2l6ZTogJGg2LWZvbnQtc2l6ZTtcbiAgZm9udC13ZWlnaHQ6ICRmb250LW5vcm1hbDtcbiAgbGluZS1oZWlnaHQ6ICRiYXNlLWxpbmUtaGVpZ2h0O1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xufVxuXG4vLyBGb2N1cyBzdGF0ZSBtaXhpblxuQG1peGluIGZvY3VzIHtcbiAgb3V0bGluZTogJGZvY3VzLW91dGxpbmU7XG4gIG91dGxpbmUtb2Zmc2V0OiAkZm9jdXMtc3BhY2luZztcbn1cblxuLy8gTW9iaWxlLWZpcnN0IG1lZGlhIHF1ZXJ5IGhlbHBlclxuQG1peGluIG1lZGlhKCRicCkge1xuICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAjeyRicH0pIHtcbiAgICBAY29udGVudDtcbiAgfVxufVxuXG4vLyBTY3JlZW4gcmVhZGVyIG9ubHkgaGVscGVyXG5AbWl4aW4gc3Itb25seSgpIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiAtOTk5ZW07XG59XG5cbi8vIFRoaXMgXCJuZWdhdGVzXCIgdGhlIHNyLW9ubHkoKSBoZWxwZXI7IHVzZWZ1bCBpZlxuLy8gd2Ugd2FudCB0aGUgZGVmYXVsdCBzdGF0ZSBvZiBzb21ldGhpbmcgdG8gYmVcbi8vIGZvciBzY3JlZW4gcmVhZGVycyBvbmx5LCBidXQgd2Ugd2FudCB0byBmb3JjZVxuLy8gaXQgdG8gc2hvdyBmb3Igc2lnaHRlZCB1c2VycyB1bmRlciBtb3JlIHNwZWNpZmljXG4vLyBjb25kaXRpb25zLlxuQG1peGluIG5vdC1zci1vbmx5KCkge1xuICBwb3NpdGlvbjogc3RhdGljO1xufVxuXG4udXNhLXNyLW9ubHkge1xuICBAaW5jbHVkZSBzci1vbmx5KCk7XG59XG5cbi8vIEFyaWEgaGlkZGVuIGhlbHBlclxuQG1peGluIGFjY2Vzc2libHktaGlkZGVuKCkge1xuICAmW2FyaWEtaGlkZGVuPXRydWVdIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG59XG5cbi8vIFVuc3R5bGVkIGxpc3QgaGVscGVyXG5AbWl4aW4gdW5zdHlsZWQtbGlzdCgpIHtcbiAgQGluY2x1ZGUgbWFyZ2luKDAgbnVsbCk7XG4gIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTtcbiAgcGFkZGluZy1sZWZ0OiAwO1xuXG4gID4gbGkge1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gIH1cbn1cblxuLy8gRm9udCBzbW9vdGhpbmcgbWl4aW5cbi8vIE9ubHkgdXNlIGZvciBsaWdodCB0ZXh0IG9uIGRhcmsgYmFja2dyb3VuZFxuLy8gVE9ETzogUmVtb3ZlIGFmdGVyIGFkZGluZyBQb3N0Q1NTXG5AbWl4aW4gZm9udC1zbW9vdGhpbmcge1xuICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xuICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbn1cblxuLy8gQ29udGVudCBzaXplIGhlbHBlcnNcbkBtaXhpbiBhbGxvdy1sYXlvdXQtY2xhc3NlcyB7XG4gIEBpbmNsdWRlIG1hcmdpbihudWxsIGF1dG8pO1xuXG4gICYud2lkdGgtb25lLWhhbGYge1xuICAgIEBpbmNsdWRlIG1lZGlhKCRtZWRpdW0tc2NyZWVuKSB7XG4gICAgICB3aWR0aDogNTAlO1xuICAgIH1cbiAgfVxuXG4gICYud2lkdGgtb25lLXRoaXJkIHtcbiAgICBAaW5jbHVkZSBtZWRpYSgkbWVkaXVtLXNjcmVlbikge1xuICAgICAgd2lkdGg6IDMzJTtcbiAgICB9XG4gIH1cblxuICAmLndpZHRoLXR3by10aGlyZHMge1xuICAgIEBpbmNsdWRlIG1lZGlhKCRtZWRpdW0tc2NyZWVuKSB7XG4gICAgICB3aWR0aDogNjclO1xuICAgIH1cbiAgfVxuXG4gICYud2lkdGgtb25lLWZvdXJ0aCB7XG4gICAgQGluY2x1ZGUgbWVkaWEoJG1lZGl1bS1zY3JlZW4pIHtcbiAgICAgIHdpZHRoOiAyNSU7XG4gICAgfVxuICB9XG5cbiAgJi53aWR0aC10aHJlZS1mb3VydGhzIHtcbiAgICBAaW5jbHVkZSBtZWRpYSgkbWVkaXVtLXNjcmVlbikge1xuICAgICAgd2lkdGg6IDc1JTtcbiAgICB9XG4gIH1cblxuICAmLmFsaWduLWxlZnQge1xuICAgIEBpbmNsdWRlIG1lZGlhKCRtZWRpdW0tc2NyZWVuKSB7XG4gICAgICBmbG9hdDogbGVmdDtcbiAgICAgIG1hcmdpbi1yaWdodDogMmVtO1xuICAgICAgbWFyZ2luLXRvcDogMC41ZW07XG4gICAgfVxuICB9XG5cbiAgJi5hbGlnbi1yaWdodCB7XG4gICAgQGluY2x1ZGUgbWVkaWEoJG1lZGl1bS1zY3JlZW4pIHtcbiAgICAgIGZsb2F0OiByaWdodDtcbiAgICAgIG1hcmdpbi1sZWZ0OiAyZW07XG4gICAgICBtYXJnaW4tdG9wOiAwLjVlbTtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIGRpc3BsYXktaWNvbigkaWNvbiwgJGRpcmVjdGlvbiwgJHNpemUsICRtYXJnaW4sICRob3Zlcikge1xuICAmOjojeyRkaXJlY3Rpb259IHtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJyN7JGltYWdlLXBhdGh9LyN7JGljb259LnBuZycpO1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnI3skaW1hZ2UtcGF0aH0vI3skaWNvbn0uc3ZnJyk7XG4gICAgYmFja2dyb3VuZC1zaXplOiAxMDAlO1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBoZWlnaHQ6ICRzaXplO1xuICAgIHdpZHRoOiAkc2l6ZTtcblxuICAgIC8qIHN0eWxlbGludC1kaXNhYmxlIGJsb2NrLWNsb3NpbmctYnJhY2UtbmV3bGluZS1hZnRlciwgYXQtcnVsZS1lbXB0eS1saW5lLWJlZm9yZSAqL1xuICAgIEBpZiAkZGlyZWN0aW9uID09ICdhZnRlcicge1xuICAgICAgbWFyZ2luLWxlZnQ6ICRtYXJnaW47XG4gICAgfSBAZWxzZSB7XG4gICAgICBtYXJnaW4tcmlnaHQ6ICRtYXJnaW47XG4gICAgfVxuICAgIC8qIHN0eWxlbGludC1lbmFibGUgKi9cbiAgfVxuXG4gIEBpZiAkaG92ZXIgPT0gJ2hvdmVyJyB7XG4gICAgJjpob3Zlcjo6I3skZGlyZWN0aW9ufSB7XG4gICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJyN7JGltYWdlLXBhdGh9LyN7JGljb259LWhvdmVyLnBuZycpO1xuICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCcjeyRpbWFnZS1wYXRofS8jeyRpY29ufS1ob3Zlci5zdmcnKTtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIHVzYS1zaWRlbmF2LWxpc3Qge1xuICBAaW5jbHVkZSB1bnN0eWxlZC1saXN0KCk7XG5cbiAgPiBsaSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRjb2xvci1ncmF5O1xuICAgIGZvbnQtc2l6ZTogJGg0LWZvbnQtc2l6ZTtcblxuICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgYm9yZGVyLXRvcDogbm9uZTtcbiAgICB9XG4gIH1cblxuICBhIHtcbiAgICBib3JkZXI6IG5vbmU7XG4gICAgY29sb3I6ICRjb2xvci1iYXNlO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGZvbnQtZmFtaWx5OiAkZm9udC1zYW5zO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjM7XG4gICAgcGFkZGluZzogMC44NXJlbSAxcmVtIDAuODVyZW0gMS44cmVtO1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcblxuICAgICY6aG92ZXIge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yLWdyYXktbGlnaHRlc3Q7XG4gICAgICBjb2xvcjogJGNvbG9yLXByaW1hcnk7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgfVxuXG4gICAgJjpmb2N1cyB7XG4gICAgICBvdXRsaW5lLW9mZnNldDogMDtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIHotaW5kZXg6IDE7XG4gICAgfVxuXG4gICAgJi51c2EtY3VycmVudCB7IC8qIHN0eWxlbGludC1kaXNhYmxlLWxpbmUgc2VsZWN0b3Itbm8tcXVhbGlmeWluZy10eXBlICovXG4gICAgICBib3JkZXItbGVmdDogMC40cmVtIHNvbGlkICRjb2xvci1wcmltYXJ5O1xuICAgICAgY29sb3I6ICRjb2xvci1wcmltYXJ5O1xuICAgICAgZm9udC13ZWlnaHQ6ICRmb250LWJvbGQ7XG4gICAgICBwYWRkaW5nLWxlZnQ6IDEuNHJlbTtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIHVzYS1zaWRlbmF2LXN1Ymxpc3Qge1xuICBAaW5jbHVkZSB1bnN0eWxlZC1saXN0KCk7XG4gIG1hcmdpbjogMDtcbiAgd2lkdGg6IDEwMCU7XG5cbiAgbGkge1xuICAgIGJvcmRlcjogbm9uZTtcbiAgICBmb250LXNpemU6ICRoNS1mb250LXNpemU7XG4gIH1cblxuICBhIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDIuOHJlbTtcbiAgICBsaW5lLWhlaWdodDogJGhlYWRpbmctbGluZS1oZWlnaHQ7XG5cbiAgICAmOmhvdmVyLFxuICAgICYudXNhLWN1cnJlbnQgeyAvKiBzdHlsZWxpbnQtZGlzYWJsZS1saW5lIHNlbGVjdG9yLW5vLXF1YWxpZnlpbmctdHlwZSAqL1xuICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgcGFkZGluZy1sZWZ0OiAyLjhyZW07XG4gICAgfVxuICB9XG5cbiAgLnVzYS1zaWRlbmF2LXN1Yl9saXN0IHtcbiAgICBhIHtcbiAgICAgIHBhZGRpbmctbGVmdDogMy44cmVtO1xuXG4gICAgICAmOmZvY3VzIHtcbiAgICAgICAgb3V0bGluZS1vZmZzZXQ6IDA7XG4gICAgICB9XG5cbiAgICAgICY6aG92ZXIge1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDMuOHJlbTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIi8vIEFwcGx5IGEgbmF0dXJhbCBib3ggbGF5b3V0IG1vZGVsIHRvIGFsbCBlbGVtZW50cywgYnV0IGFsbG93aW5nIGNvbXBvbmVudHMgdG9cbi8vIGNoYW5nZVxuXG5odG1sIHtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbn1cblxuKixcbio6OmJlZm9yZSxcbio6OmFmdGVyIHtcbiAgYm94LXNpemluZzogaW5oZXJpdDtcbn1cblxuYm9keSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICRjb2xvci13aGl0ZTtcbiAgb3ZlcmZsb3cteDogaGlkZGVuO1xufVxuXG4vLyBIYWNrIGZvciBjbGVhcmZpeGVzXG4ubHQtaWU5IHtcbiAgKiB7XG4gICAgZmlsdGVyOiBub25lICFpbXBvcnRhbnQ7IC8qIHN0eWxlbGludC1kaXNhYmxlLWxpbmUgZGVjbGFyYXRpb24tbm8taW1wb3J0YW50ICovXG4gIH1cbn1cblxuLy8gZm9yIElFIDwgMTEsIHNlZTpcbi8vIDxodHRwOi8vY2FuaXVzZS5jb20vI2ZlYXQ9aGlkZGVuPlxuW2hpZGRlbl0ge1xuICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IC8qIHN0eWxlbGludC1kaXNhYmxlLWxpbmUgZGVjbGFyYXRpb24tbm8taW1wb3J0YW50ICovXG59XG5cbio6Zm9jdXMsXG4udXNhLWZvY3VzIHtcbiAgQGluY2x1ZGUgZm9jdXM7XG59XG4iLCIvLyBUaGVzZSB2YXJpYWJsZXMgZHJpdmUgYWxtb3N0IGV2ZXJ5IGFzcGVjdCBvZiB0aGUgVS5TLiBXZWIgRGVzaWduXG4vLyBzeXN0ZW0uIEV2ZXJ5IHZhcmlhYmxlIGlzIGRlY2xhcmVkIGFzICFkZWZhdWx0IHNvIHRoYXQgaXQgY2FuIGJlXG4vLyBvdmVycmlkZGVuIGJ5IGEgcHJldmlvdXMgaW1wb3J0LlxuLy9cbi8vIFhYWCBEbyBub3QgbW9kaWZ5IHRoaXMgZmlsZSFcbi8vXG4vLyBJZiB5b3Ugd2FudCB0byBvdmVycmlkZSBhIHZhcmlhYmxlLCBzZXQgdGhhdCB2YXJpYWJsZSBpbiBvbmUgb2YgeW91clxuLy8gb3duIHBhcnRpYWxzLCB0aGVuIEBpbXBvcnQgJ3twYXRoL3RvL3Vzd2RzL31jb3JlL3ZhcmlhYmxlcycuXG5cbi8vIFR5cG9ncmFwaHlcbi8vIFJlbW92aW5nIHRoZSAhZGVmYXVsdCBmcm9tICRlbS1iYXNlIHNvIHdlIGFyZSBub3QgaW5oZXJpdGluZyB0aGF0XG4vLyB2YWx1ZSBmcm9tIEJvdXJib24uXG4kZW0tYmFzZTogICAgICAgICAgICAgMTBweDtcbiRiYXNlLWZvbnQtc2l6ZTogICAgICAxLjdyZW0gIWRlZmF1bHQ7XG4kc21hbGwtZm9udC1zaXplOiAgICAgMS40cmVtICFkZWZhdWx0O1xuJGxlYWQtZm9udC1zaXplOiAgICAgIDJyZW0gIWRlZmF1bHQ7XG4kdGl0bGUtZm9udC1zaXplOiAgICAgNS4ycmVtICFkZWZhdWx0O1xuJGgxLWZvbnQtc2l6ZTogICAgICAgIDRyZW0gIWRlZmF1bHQ7XG4kaDItZm9udC1zaXplOiAgICAgICAgM3JlbSAhZGVmYXVsdDtcbiRoMy1mb250LXNpemU6ICAgICAgICAycmVtICFkZWZhdWx0O1xuJGg0LWZvbnQtc2l6ZTogICAgICAgIDEuN3JlbSAhZGVmYXVsdDtcbiRoNS1mb250LXNpemU6ICAgICAgICAxLjVyZW0gIWRlZmF1bHQ7XG4kaDYtZm9udC1zaXplOiAgICAgICAgMS4zcmVtICFkZWZhdWx0O1xuJGJhc2UtbGluZS1oZWlnaHQ6ICAgIDEuNSAhZGVmYXVsdDtcbiRoZWFkaW5nLWxpbmUtaGVpZ2h0OiAxLjMgIWRlZmF1bHQ7XG4kbGVhZC1saW5lLWhlaWdodDogICAgMS43ICFkZWZhdWx0O1xuXG4kZm9udC1zYW5zOiAgICAgICAgICAgJ1NvdXJjZSBTYW5zIFBybycsICRoZWx2ZXRpY2EgIWRlZmF1bHQ7XG4kZm9udC1zZXJpZjogICAgICAgICAgJ01lcnJpd2VhdGhlcicsICRnZW9yZ2lhICFkZWZhdWx0O1xuXG4vLyBUT0RPIHRoZXNlIHNob3VsZCBiZSBjYWxsZWQgZm9udC13ZWlnaHQtJHt9XG4kZm9udC1ub3JtYWw6ICAgICAgICAgNDAwICFkZWZhdWx0O1xuJGZvbnQtYm9sZDogICAgICAgICAgIDcwMCAhZGVmYXVsdDtcblxuLy8gQ29sb3JcbiRjb2xvci1ibHVlOiAgICAgICAgICAgICAgICAgIzAwNzFiYyAhZGVmYXVsdDtcbiRjb2xvci1ibHVlLWRhcmtlcjogICAgICAgICAgIzIwNTQ5MyAhZGVmYXVsdDtcbiRjb2xvci1ibHVlLWRhcmtlc3Q6ICAgICAgICAgIzExMmU1MSAhZGVmYXVsdDtcblxuJGNvbG9yLWFxdWE6ICAgICAgICAgICAgICAgICAjMDJiZmU3ICFkZWZhdWx0O1xuJGNvbG9yLWFxdWEtZGFyazogICAgICAgICAgICAjMDBhNmQyICFkZWZhdWx0O1xuJGNvbG9yLWFxdWEtZGFya2VzdDogICAgICAgICAjMDQ2Yjk5ICFkZWZhdWx0O1xuJGNvbG9yLWFxdWEtbGlnaHQ6ICAgICAgICAgICAjOWJkYWYxICFkZWZhdWx0O1xuJGNvbG9yLWFxdWEtbGlnaHRlc3Q6ICAgICAgICAjZTFmM2Y4ICFkZWZhdWx0O1xuXG4kY29sb3ItcmVkOiAgICAgICAgICAgICAgICAgICNlMzFjM2QgIWRlZmF1bHQ7XG4kY29sb3ItcmVkLWRhcms6ICAgICAgICAgICAgICNjZDIwMjYgIWRlZmF1bHQ7XG4kY29sb3ItcmVkLWRhcmtlc3Q6ICAgICAgICAgICM5ODFiMWUgIWRlZmF1bHQ7XG4kY29sb3ItcmVkLWxpZ2h0OiAgICAgICAgICAgICNlNTkzOTMgIWRlZmF1bHQ7XG4kY29sb3ItcmVkLWxpZ2h0ZXN0OiAgICAgICAgICNmOWRlZGUgIWRlZmF1bHQ7XG5cbiRjb2xvci13aGl0ZTogICAgICAgICAgICAgICAgI2ZmZmZmZiAhZGVmYXVsdDtcbiRjb2xvci1ibGFjazogICAgICAgICAgICAgICAgIzAwMDAwMCAhZGVmYXVsdDtcbiRjb2xvci1ibGFjay1saWdodDogICAgICAgICAgIzIxMjEyMSAhZGVmYXVsdDtcblxuJGNvbG9yLWdyYXktZGFyazogICAgICAgICAgICAjMzIzYTQ1ICFkZWZhdWx0O1xuJGNvbG9yLWdyYXk6ICAgICAgICAgICAgICAgICAjNWI2MTZiICFkZWZhdWx0O1xuJGNvbG9yLWdyYXktbWVkaXVtOiAgICAgICAgICAjNzU3NTc1ICFkZWZhdWx0O1xuJGNvbG9yLWdyYXktbGlnaHQ6ICAgICAgICAgICAjYWViMGI1ICFkZWZhdWx0O1xuJGNvbG9yLWdyYXktbGlnaHRlcjogICAgICAgICAjZDZkN2Q5ICFkZWZhdWx0O1xuJGNvbG9yLWdyYXktbGlnaHRlc3Q6ICAgICAgICAjZjFmMWYxICFkZWZhdWx0O1xuXG4kY29sb3ItZ3JheS13YXJtLWRhcms6ICAgICAgICM0OTQ0NDAgIWRlZmF1bHQ7XG4kY29sb3ItZ3JheS13YXJtLWxpZ2h0OiAgICAgICNlNGUyZTAgIWRlZmF1bHQ7XG4kY29sb3ItZ3JheS1jb29sLWxpZ2h0OiAgICAgICNkY2U0ZWYgIWRlZmF1bHQ7XG5cbiRjb2xvci1nb2xkOiAgICAgICAgICAgICAgICAgI2ZkYjgxZSAhZGVmYXVsdDtcbiRjb2xvci1nb2xkLWxpZ2h0OiAgICAgICAgICAgI2Y5YzY0MiAhZGVmYXVsdDtcbiRjb2xvci1nb2xkLWxpZ2h0ZXI6ICAgICAgICAgI2ZhZDk4MCAhZGVmYXVsdDtcbiRjb2xvci1nb2xkLWxpZ2h0ZXN0OiAgICAgICAgI2ZmZjFkMiAhZGVmYXVsdDtcblxuJGNvbG9yLWdyZWVuOiAgICAgICAgICAgICAgICAjMmU4NTQwICFkZWZhdWx0O1xuJGNvbG9yLWdyZWVuLWxpZ2h0OiAgICAgICAgICAjNGFhNTY0ICFkZWZhdWx0O1xuJGNvbG9yLWdyZWVuLWxpZ2h0ZXI6ICAgICAgICAjOTRiZmEyICFkZWZhdWx0O1xuJGNvbG9yLWdyZWVuLWxpZ2h0ZXN0OiAgICAgICAjZTdmNGU0ICFkZWZhdWx0O1xuXG4kY29sb3ItY29vbC1ibHVlOiAgICAgICAgICAgICMyMDU0OTMgIWRlZmF1bHQ7XG4kY29sb3ItY29vbC1ibHVlLWxpZ2h0OiAgICAgICM0NzczYWEgIWRlZmF1bHQ7XG4kY29sb3ItY29vbC1ibHVlLWxpZ2h0ZXI6ICAgICM4YmE2Y2EgIWRlZmF1bHQ7XG4kY29sb3ItY29vbC1ibHVlLWxpZ2h0ZXN0OiAgICNkY2U0ZWYgIWRlZmF1bHQ7XG5cbiRjb2xvci1wdXJwbGU6ICAgICAgICAgICAgICAgIzRjMmM5MiAhZGVmYXVsdDtcblxuLy8gRnVuY3Rpb25hbCBjb2xvcnNcbiRjb2xvci1wcmltYXJ5OiAgICAgICAgICAgICAgJGNvbG9yLWJsdWUgIWRlZmF1bHQ7XG4kY29sb3ItcHJpbWFyeS1kYXJrZXI6ICAgICAgICRjb2xvci1ibHVlLWRhcmtlciAhZGVmYXVsdDtcbiRjb2xvci1wcmltYXJ5LWRhcmtlc3Q6ICAgICAgJGNvbG9yLWJsdWUtZGFya2VzdCAhZGVmYXVsdDtcblxuJGNvbG9yLXByaW1hcnktYWx0OiAgICAgICAgICAkY29sb3ItYXF1YSAhZGVmYXVsdDtcbiRjb2xvci1wcmltYXJ5LWFsdC1kYXJrOiAgICAgJGNvbG9yLWFxdWEtZGFyayAhZGVmYXVsdDtcbiRjb2xvci1wcmltYXJ5LWFsdC1kYXJrZXN0OiAgJGNvbG9yLWFxdWEtZGFya2VzdCAhZGVmYXVsdDtcbiRjb2xvci1wcmltYXJ5LWFsdC1saWdodDogICAgJGNvbG9yLWFxdWEtbGlnaHQgIWRlZmF1bHQ7XG4kY29sb3ItcHJpbWFyeS1hbHQtbGlnaHRlc3Q6ICRjb2xvci1hcXVhLWxpZ2h0ZXN0ICFkZWZhdWx0O1xuXG4kY29sb3Itc2Vjb25kYXJ5OiAgICAgICAgICAgICRjb2xvci1yZWQgIWRlZmF1bHQ7XG4kY29sb3Itc2Vjb25kYXJ5LWRhcms6ICAgICAgICRjb2xvci1yZWQtZGFyayAhZGVmYXVsdDtcbiRjb2xvci1zZWNvbmRhcnktZGFya2VzdDogICAgJGNvbG9yLXJlZC1kYXJrZXN0ICFkZWZhdWx0O1xuJGNvbG9yLXNlY29uZGFyeS1saWdodDogICAgICAkY29sb3ItcmVkLWxpZ2h0ICFkZWZhdWx0O1xuJGNvbG9yLXNlY29uZGFyeS1saWdodGVzdDogICAkY29sb3ItcmVkLWxpZ2h0ZXN0ICFkZWZhdWx0O1xuXG4kY29sb3ItYmFzZTogICAgICAgICAgICAgICAgICRjb2xvci1ibGFjay1saWdodCAhZGVmYXVsdDtcbiRjb2xvci1mb2N1czogICAgICAgICAgICAgICAgJGNvbG9yLWdyYXktbGlnaHQgIWRlZmF1bHQ7XG4kY29sb3ItdmlzaXRlZDogICAgICAgICAgICAgICRjb2xvci1wdXJwbGUgIWRlZmF1bHQ7XG5cbiRjb2xvci1zaGFkb3c6ICAgICAgICAgICAgICAgcmdiYSgjMDAwLCAwLjMpICFkZWZhdWx0O1xuJGNvbG9yLXRyYW5zcGFyZW50OiAgICAgICAgICByZ2JhKCMwMDAsIDApICFkZWZhdWx0O1xuXG4vLyBNb2JpbGUgRmlyc3QgQnJlYWtwb2ludHNcbiRzbWFsbC1zY3JlZW46ICA0ODFweCAhZGVmYXVsdDtcbiRtZWRpdW0tc2NyZWVuOiA2MDBweCAhZGVmYXVsdDtcbiRsYXJnZS1zY3JlZW46ICAxMjAxcHggIWRlZmF1bHQ7XG5cbi8vIEdyaWQgY29sdW1uIGNvdW50cyBieSBzY3JlZW4gc2l6ZVxuJGdyaWQtY29sdW1ucy1zbWFsbDogMSAhZGVmYXVsdDtcbiRncmlkLWNvbHVtbnMtbWVkaXVtOiA2ICFkZWZhdWx0O1xuJGdyaWQtY29sdW1ucy1sYXJnZTogMTIgIWRlZmF1bHQ7XG5cbi8vIEBtZWRpYSBzaW5nbGUta2V5d29yZCBoZWxwZXJzXG4kc21hbGw6IG5ldy1icmVha3BvaW50KG1pbi13aWR0aCAkc21hbGwtc2NyZWVuICRncmlkLWNvbHVtbnMtc21hbGwpICFkZWZhdWx0O1xuJG1lZGl1bTogbmV3LWJyZWFrcG9pbnQobWluLXdpZHRoICRtZWRpdW0tc2NyZWVuICRncmlkLWNvbHVtbnMtbWVkaXVtKSAhZGVmYXVsdDtcbiRsYXJnZTogbmV3LWJyZWFrcG9pbnQobWluLXdpZHRoICRsYXJnZS1zY3JlZW4gJGdyaWQtY29sdW1ucy1sYXJnZSkgIWRlZmF1bHQ7XG5cbi8vIFJlbGF0aXZlIGZvbnQgYW5kIGltYWdlIGZpbGUgcGF0aHNcbiRmb250LXBhdGg6ICAgJy4uL2ZvbnRzJyAhZGVmYXVsdDtcbiRpbWFnZS1wYXRoOiAgJy4uL2ltZycgIWRlZmF1bHQ7XG5cbi8vIFNldCAkYXNzZXQtcGlwZWxpbmUgdG8gdHJ1ZSBpZiB5b3UncmUgdXNpbmcgdGhlIFJhaWxzIEFzc2V0IFBpcGVsaW5lXG4kYXNzZXQtcGlwZWxpbmU6ICAgICAgZmFsc2UgIWRlZmF1bHQ7XG5cbi8vIE1hZ2ljIE51bWJlcnNcbiR0ZXh0LW1heC13aWR0aDogICAgICAgICAgNjZjaCAhZGVmYXVsdDsgLy8gNjYgY2hhcmFjdGVycyBwZXIgbGluZVxuJGxlYWQtbWF4LXdpZHRoOiAgICAgICAgICA3N3JlbSAhZGVmYXVsdDtcbiRzaXRlLW1heC13aWR0aDogICAgICAgICAgMTA0MHB4ICFkZWZhdWx0O1xuJHNpdGUtbWFyZ2luczogICAgICAgICAgICAzcmVtICFkZWZhdWx0O1xuJHNpdGUtbWFyZ2lucy1tb2JpbGU6ICAgICAxLjVyZW0gIWRlZmF1bHQ7XG4kYXJ0aWNsZS1tYXgtd2lkdGg6ICAgICAgIDYwMHB4ICFkZWZhdWx0O1xuJGlucHV0LW1heC13aWR0aDogICAgICAgICA0NnJlbSAhZGVmYXVsdDtcbiRsYWJlbC1ib3JkZXItcmFkaXVzOiAgICAgMnB4ICFkZWZhdWx0O1xuJGNoZWNrYm94LWJvcmRlci1yYWRpdXM6ICAycHggIWRlZmF1bHQ7XG4kYm9yZGVyLXJhZGl1czogICAgICAgICAgIDNweCAhZGVmYXVsdDtcbiRidXR0b24tYm9yZGVyLXJhZGl1czogICAgNXB4ICFkZWZhdWx0O1xuJGJveC1zaGFkb3c6ICAgICAgICAgICAgICAwIDAgMnB4ICRjb2xvci1zaGFkb3cgIWRlZmF1bHQ7XG4kZm9jdXMtb3V0bGluZTogICAgICAgICAgIDJweCBkb3R0ZWQgJGNvbG9yLWdyYXktbGlnaHQ7XG4kZm9jdXMtc3BhY2luZzogICAgICAgICAgIDNweDtcbiRuYXYtd2lkdGg6ICAgICAgICAgICAgICAgOTUxcHggIWRlZmF1bHQ7XG5cbi8vIDQ0IHggNDQgcGl4ZWxzIGhpdCB0YXJnZXQgZm9sbG93aW5nIEFwcGxlIGlPUyBIdW1hbiBJbnRlcmZhY2Vcbi8vIEd1aWRlbGluZXNcbiRoaXQtYXJlYTogNC40cmVtICFkZWZhdWx0O1xuXG4kc3BhY2luZy14LXNtYWxsOiAwLjVyZW07XG4kc3BhY2luZy1zbWFsbDogMXJlbTtcbiRzcGFjaW5nLW1kLXNtYWxsOiAxLjVyZW07XG4kc3BhY2luZy1tZWRpdW06IDJyZW07XG4kc3BhY2luZy1sYXJnZTogM3JlbTtcbiIsIi8qISB1c3dkcyBAdmVyc2lvbiAqL1xuLm5vcm1hbGl6ZSBodG1sLCBodG1sLm5vcm1hbGl6ZSB7XG4gIGZvbnQtZmFtaWx5OiBzYW5zLXNlcmlmO1xuICAvKiAxICovXG4gIC1tcy10ZXh0LXNpemUtYWRqdXN0OiAxMDAlO1xuICAvKiAyICovXG4gIC13ZWJraXQtdGV4dC1zaXplLWFkanVzdDogMTAwJTtcbiAgLyogMiAqLyB9XG5cbi5ub3JtYWxpemUgYm9keSwgYm9keS5ub3JtYWxpemUge1xuICBtYXJnaW46IDA7IH1cblxuLm5vcm1hbGl6ZSBhcnRpY2xlLCBhcnRpY2xlLm5vcm1hbGl6ZSxcbi5ub3JtYWxpemUgYXNpZGUsIGFzaWRlLm5vcm1hbGl6ZSxcbi5ub3JtYWxpemUgZGV0YWlscywgZGV0YWlscy5ub3JtYWxpemUsXG4ubm9ybWFsaXplIGZpZ2NhcHRpb24sIGZpZ2NhcHRpb24ubm9ybWFsaXplLFxuLm5vcm1hbGl6ZSBmaWd1cmUsIGZpZ3VyZS5ub3JtYWxpemUsXG4ubm9ybWFsaXplIGZvb3RlciwgZm9vdGVyLm5vcm1hbGl6ZSxcbi5ub3JtYWxpemUgaGVhZGVyLCBoZWFkZXIubm9ybWFsaXplLFxuLm5vcm1hbGl6ZSBoZ3JvdXAsIGhncm91cC5ub3JtYWxpemUsXG4ubm9ybWFsaXplIG1haW4sIG1haW4ubm9ybWFsaXplLFxuLm5vcm1hbGl6ZSBtZW51LCBtZW51Lm5vcm1hbGl6ZSxcbi5ub3JtYWxpemUgbmF2LCBuYXYubm9ybWFsaXplLFxuLm5vcm1hbGl6ZSBzZWN0aW9uLCBzZWN0aW9uLm5vcm1hbGl6ZSxcbi5ub3JtYWxpemUgc3VtbWFyeSwgc3VtbWFyeS5ub3JtYWxpemUge1xuICBkaXNwbGF5OiBibG9jazsgfVxuXG4ubm9ybWFsaXplIGF1ZGlvLCBhdWRpby5ub3JtYWxpemUsXG4ubm9ybWFsaXplIGNhbnZhcywgY2FudmFzLm5vcm1hbGl6ZSxcbi5ub3JtYWxpemUgcHJvZ3Jlc3MsIHByb2dyZXNzLm5vcm1hbGl6ZSxcbi5ub3JtYWxpemUgdmlkZW8sIHZpZGVvLm5vcm1hbGl6ZSB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgLyogMSAqL1xuICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG4gIC8qIDIgKi8gfVxuXG4ubm9ybWFsaXplIGF1ZGlvOm5vdChbY29udHJvbHNdKSwgYXVkaW86bm90KFtjb250cm9sc10pLm5vcm1hbGl6ZSB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIGhlaWdodDogMDsgfVxuXG4ubm9ybWFsaXplIFtoaWRkZW5dLCBbaGlkZGVuXS5ub3JtYWxpemUsXG4ubm9ybWFsaXplIHRlbXBsYXRlLCB0ZW1wbGF0ZS5ub3JtYWxpemUge1xuICBkaXNwbGF5OiBub25lOyB9XG5cbi5ub3JtYWxpemUgYSwgYS5ub3JtYWxpemUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDsgfVxuXG4ubm9ybWFsaXplIGE6YWN0aXZlLCBhOmFjdGl2ZS5ub3JtYWxpemUsXG4ubm9ybWFsaXplIGE6aG92ZXIsIGE6aG92ZXIubm9ybWFsaXplIHtcbiAgb3V0bGluZTogMDsgfVxuXG4ubm9ybWFsaXplIGFiYnJbdGl0bGVdLCBhYmJyW3RpdGxlXS5ub3JtYWxpemUge1xuICBib3JkZXItYm90dG9tOiAxcHggZG90dGVkOyB9XG5cbi5ub3JtYWxpemUgYiwgYi5ub3JtYWxpemUsXG4ubm9ybWFsaXplIHN0cm9uZywgc3Ryb25nLm5vcm1hbGl6ZSB7XG4gIGZvbnQtd2VpZ2h0OiBib2xkOyB9XG5cbi5ub3JtYWxpemUgZGZuLCBkZm4ubm9ybWFsaXplIHtcbiAgZm9udC1zdHlsZTogaXRhbGljOyB9XG5cbmgxIHtcbiAgZm9udC1zaXplOiAyZW07XG4gIG1hcmdpbjogMC42N2VtIDA7IH1cblxuLm5vcm1hbGl6ZSBtYXJrLCBtYXJrLm5vcm1hbGl6ZSB7XG4gIGJhY2tncm91bmQ6ICNmZjA7XG4gIGNvbG9yOiAjMDAwOyB9XG5cbi5ub3JtYWxpemUgc21hbGwsIHNtYWxsLm5vcm1hbGl6ZSB7XG4gIGZvbnQtc2l6ZTogODAlOyB9XG5cbi5ub3JtYWxpemUgc3ViLCBzdWIubm9ybWFsaXplLFxuLm5vcm1hbGl6ZSBzdXAsIHN1cC5ub3JtYWxpemUge1xuICBmb250LXNpemU6IDc1JTtcbiAgbGluZS1oZWlnaHQ6IDA7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lOyB9XG5cbi5ub3JtYWxpemUgc3VwLCBzdXAubm9ybWFsaXplIHtcbiAgdG9wOiAtMC41ZW07IH1cblxuLm5vcm1hbGl6ZSBzdWIsIHN1Yi5ub3JtYWxpemUge1xuICBib3R0b206IC0wLjI1ZW07IH1cblxuLm5vcm1hbGl6ZSBpbWcsIGltZy5ub3JtYWxpemUge1xuICBib3JkZXI6IDA7IH1cblxuLm5vcm1hbGl6ZSBzdmc6bm90KDpyb290KSwgc3ZnOm5vdCg6cm9vdCkubm9ybWFsaXplIHtcbiAgb3ZlcmZsb3c6IGhpZGRlbjsgfVxuXG4ubm9ybWFsaXplIGZpZ3VyZSwgZmlndXJlLm5vcm1hbGl6ZSB7XG4gIG1hcmdpbjogMWVtIDQwcHg7IH1cblxuLm5vcm1hbGl6ZSBociwgaHIubm9ybWFsaXplIHtcbiAgYm94LXNpemluZzogY29udGVudC1ib3g7XG4gIGhlaWdodDogMDsgfVxuXG4ubm9ybWFsaXplIHByZSwgcHJlLm5vcm1hbGl6ZSB7XG4gIG92ZXJmbG93OiBhdXRvOyB9XG5cbi5ub3JtYWxpemUgY29kZSwgY29kZS5ub3JtYWxpemUsXG4ubm9ybWFsaXplIGtiZCwga2JkLm5vcm1hbGl6ZSxcbi5ub3JtYWxpemUgcHJlLCBwcmUubm9ybWFsaXplLFxuLm5vcm1hbGl6ZSBzYW1wLCBzYW1wLm5vcm1hbGl6ZSB7XG4gIGZvbnQtZmFtaWx5OiBtb25vc3BhY2UsIG1vbm9zcGFjZTtcbiAgZm9udC1zaXplOiAxZW07IH1cblxuLm5vcm1hbGl6ZSBidXR0b24sIGJ1dHRvbi5ub3JtYWxpemUsXG4ubm9ybWFsaXplIGlucHV0LCBpbnB1dC5ub3JtYWxpemUsXG4ubm9ybWFsaXplIG9wdGdyb3VwLCBvcHRncm91cC5ub3JtYWxpemUsXG4ubm9ybWFsaXplIHNlbGVjdCwgc2VsZWN0Lm5vcm1hbGl6ZSxcbi5ub3JtYWxpemUgdGV4dGFyZWEsIHRleHRhcmVhLm5vcm1hbGl6ZSB7XG4gIGNvbG9yOiBpbmhlcml0O1xuICAvKiAxICovXG4gIGZvbnQ6IGluaGVyaXQ7XG4gIC8qIDIgKi9cbiAgbWFyZ2luOiAwO1xuICAvKiAzICovIH1cblxuLm5vcm1hbGl6ZSBidXR0b24sIGJ1dHRvbi5ub3JtYWxpemUge1xuICBvdmVyZmxvdzogdmlzaWJsZTsgfVxuXG4ubm9ybWFsaXplIGJ1dHRvbiwgYnV0dG9uLm5vcm1hbGl6ZSxcbi5ub3JtYWxpemUgc2VsZWN0LCBzZWxlY3Qubm9ybWFsaXplIHtcbiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7IH1cblxuLm5vcm1hbGl6ZSBidXR0b24sIGJ1dHRvbi5ub3JtYWxpemUsXG5odG1sIGlucHV0W3R5cGU9XCJidXR0b25cIl0sXG4ubm9ybWFsaXplIGlucHV0W3R5cGU9XCJyZXNldFwiXSwgaW5wdXRbdHlwZT1cInJlc2V0XCJdLm5vcm1hbGl6ZSxcbi5ub3JtYWxpemUgaW5wdXRbdHlwZT1cInN1Ym1pdFwiXSwgaW5wdXRbdHlwZT1cInN1Ym1pdFwiXS5ub3JtYWxpemUge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IGJ1dHRvbjtcbiAgLyogMiAqL1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIC8qIDMgKi8gfVxuXG4ubm9ybWFsaXplIGJ1dHRvbltkaXNhYmxlZF0sIGJ1dHRvbltkaXNhYmxlZF0ubm9ybWFsaXplLFxuaHRtbCBpbnB1dFtkaXNhYmxlZF0ge1xuICBjdXJzb3I6IGRlZmF1bHQ7IH1cblxuLm5vcm1hbGl6ZSBidXR0b246Oi1tb3otZm9jdXMtaW5uZXIsIGJ1dHRvbjo6LW1vei1mb2N1cy1pbm5lci5ub3JtYWxpemUsXG4ubm9ybWFsaXplIGlucHV0OjotbW96LWZvY3VzLWlubmVyLCBpbnB1dDo6LW1vei1mb2N1cy1pbm5lci5ub3JtYWxpemUge1xuICBib3JkZXI6IDA7XG4gIHBhZGRpbmc6IDA7IH1cblxuLm5vcm1hbGl6ZSBpbnB1dCwgaW5wdXQubm9ybWFsaXplIHtcbiAgbGluZS1oZWlnaHQ6IG5vcm1hbDsgfVxuXG4ubm9ybWFsaXplIGlucHV0W3R5cGU9XCJjaGVja2JveFwiXSwgaW5wdXRbdHlwZT1cImNoZWNrYm94XCJdLm5vcm1hbGl6ZSxcbi5ub3JtYWxpemUgaW5wdXRbdHlwZT1cInJhZGlvXCJdLCBpbnB1dFt0eXBlPVwicmFkaW9cIl0ubm9ybWFsaXplIHtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgLyogMSAqL1xuICBwYWRkaW5nOiAwO1xuICAvKiAyICovIH1cblxuLm5vcm1hbGl6ZSBpbnB1dFt0eXBlPVwibnVtYmVyXCJdOjotd2Via2l0LWlubmVyLXNwaW4tYnV0dG9uLCBpbnB1dFt0eXBlPVwibnVtYmVyXCJdOjotd2Via2l0LWlubmVyLXNwaW4tYnV0dG9uLm5vcm1hbGl6ZSxcbi5ub3JtYWxpemUgaW5wdXRbdHlwZT1cIm51bWJlclwiXTo6LXdlYmtpdC1vdXRlci1zcGluLWJ1dHRvbiwgaW5wdXRbdHlwZT1cIm51bWJlclwiXTo6LXdlYmtpdC1vdXRlci1zcGluLWJ1dHRvbi5ub3JtYWxpemUge1xuICBoZWlnaHQ6IGF1dG87IH1cblxuLm5vcm1hbGl6ZSBpbnB1dFt0eXBlPVwic2VhcmNoXCJdLCBpbnB1dFt0eXBlPVwic2VhcmNoXCJdLm5vcm1hbGl6ZSB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogdGV4dGZpZWxkO1xuICAvKiAxICovXG4gIGJveC1zaXppbmc6IGNvbnRlbnQtYm94O1xuICAvKiAyICovIH1cblxuLm5vcm1hbGl6ZSBpbnB1dFt0eXBlPVwic2VhcmNoXCJdOjotd2Via2l0LXNlYXJjaC1jYW5jZWwtYnV0dG9uLCBpbnB1dFt0eXBlPVwic2VhcmNoXCJdOjotd2Via2l0LXNlYXJjaC1jYW5jZWwtYnV0dG9uLm5vcm1hbGl6ZSxcbi5ub3JtYWxpemUgaW5wdXRbdHlwZT1cInNlYXJjaFwiXTo6LXdlYmtpdC1zZWFyY2gtZGVjb3JhdGlvbiwgaW5wdXRbdHlwZT1cInNlYXJjaFwiXTo6LXdlYmtpdC1zZWFyY2gtZGVjb3JhdGlvbi5ub3JtYWxpemUge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7IH1cblxuLm5vcm1hbGl6ZSBmaWVsZHNldCwgZmllbGRzZXQubm9ybWFsaXplIHtcbiAgYm9yZGVyOiAxcHggc29saWQgI2MwYzBjMDtcbiAgbWFyZ2luOiAwIDJweDtcbiAgcGFkZGluZzogMC4zNWVtIDAuNjI1ZW0gMC43NWVtOyB9XG5cbi5ub3JtYWxpemUgbGVnZW5kLCBsZWdlbmQubm9ybWFsaXplIHtcbiAgYm9yZGVyOiAwO1xuICAvKiAxICovXG4gIHBhZGRpbmc6IDA7XG4gIC8qIDIgKi8gfVxuXG4ubm9ybWFsaXplIHRleHRhcmVhLCB0ZXh0YXJlYS5ub3JtYWxpemUge1xuICBvdmVyZmxvdzogYXV0bzsgfVxuXG4ubm9ybWFsaXplIG9wdGdyb3VwLCBvcHRncm91cC5ub3JtYWxpemUge1xuICBmb250LXdlaWdodDogYm9sZDsgfVxuXG4ubm9ybWFsaXplIHRhYmxlLCB0YWJsZS5ub3JtYWxpemUge1xuICBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlO1xuICBib3JkZXItc3BhY2luZzogMDsgfVxuXG4ubm9ybWFsaXplIHRkLCB0ZC5ub3JtYWxpemUsXG4ubm9ybWFsaXplIHRoLCB0aC5ub3JtYWxpemUge1xuICBwYWRkaW5nOiAwOyB9XG5cbi8qIHN0eWxlbGludC1kaXNhYmxlIGF0LXJ1bGUtZW1wdHktbGluZS1iZWZvcmUgKi9cbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogXCJTb3VyY2UgU2FucyBQcm9cIjtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LXdlaWdodDogMzAwO1xuICBzcmM6IHVybChcIi4uL2ZvbnRzL3NvdXJjZXNhbnNwcm8tbGlnaHQtd2ViZm9udC5lb3Q/I2llZml4XCIpIGZvcm1hdChcImVtYmVkZGVkLW9wZW50eXBlXCIpLCB1cmwoXCIuLi9mb250cy9zb3VyY2VzYW5zcHJvLWxpZ2h0LXdlYmZvbnQud29mZjJcIikgZm9ybWF0KFwid29mZjJcIiksIHVybChcIi4uL2ZvbnRzL3NvdXJjZXNhbnNwcm8tbGlnaHQtd2ViZm9udC53b2ZmXCIpIGZvcm1hdChcIndvZmZcIiksIHVybChcIi4uL2ZvbnRzL3NvdXJjZXNhbnNwcm8tbGlnaHQtd2ViZm9udC50dGZcIikgZm9ybWF0KFwidHJ1ZXR5cGVcIik7IH1cblxuQGZvbnQtZmFjZSB7XG4gIGZvbnQtZmFtaWx5OiBcIlNvdXJjZSBTYW5zIFByb1wiO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIHNyYzogdXJsKFwiLi4vZm9udHMvc291cmNlc2Fuc3Byby1yZWd1bGFyLXdlYmZvbnQuZW90PyNpZWZpeFwiKSBmb3JtYXQoXCJlbWJlZGRlZC1vcGVudHlwZVwiKSwgdXJsKFwiLi4vZm9udHMvc291cmNlc2Fuc3Byby1yZWd1bGFyLXdlYmZvbnQud29mZjJcIikgZm9ybWF0KFwid29mZjJcIiksIHVybChcIi4uL2ZvbnRzL3NvdXJjZXNhbnNwcm8tcmVndWxhci13ZWJmb250LndvZmZcIikgZm9ybWF0KFwid29mZlwiKSwgdXJsKFwiLi4vZm9udHMvc291cmNlc2Fuc3Byby1yZWd1bGFyLXdlYmZvbnQudHRmXCIpIGZvcm1hdChcInRydWV0eXBlXCIpOyB9XG5cbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogXCJTb3VyY2UgU2FucyBQcm9cIjtcbiAgZm9udC1zdHlsZTogaXRhbGljO1xuICBmb250LXdlaWdodDogNDAwO1xuICBzcmM6IHVybChcIi4uL2ZvbnRzL3NvdXJjZXNhbnNwcm8taXRhbGljLXdlYmZvbnQuZW90PyNpZWZpeFwiKSBmb3JtYXQoXCJlbWJlZGRlZC1vcGVudHlwZVwiKSwgdXJsKFwiLi4vZm9udHMvc291cmNlc2Fuc3Byby1pdGFsaWMtd2ViZm9udC53b2ZmMlwiKSBmb3JtYXQoXCJ3b2ZmMlwiKSwgdXJsKFwiLi4vZm9udHMvc291cmNlc2Fuc3Byby1pdGFsaWMtd2ViZm9udC53b2ZmXCIpIGZvcm1hdChcIndvZmZcIiksIHVybChcIi4uL2ZvbnRzL3NvdXJjZXNhbnNwcm8taXRhbGljLXdlYmZvbnQudHRmXCIpIGZvcm1hdChcInRydWV0eXBlXCIpOyB9XG5cbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogXCJTb3VyY2UgU2FucyBQcm9cIjtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LXdlaWdodDogNzAwO1xuICBzcmM6IHVybChcIi4uL2ZvbnRzL3NvdXJjZXNhbnNwcm8tYm9sZC13ZWJmb250LmVvdD8jaWVmaXhcIikgZm9ybWF0KFwiZW1iZWRkZWQtb3BlbnR5cGVcIiksIHVybChcIi4uL2ZvbnRzL3NvdXJjZXNhbnNwcm8tYm9sZC13ZWJmb250LndvZmYyXCIpIGZvcm1hdChcIndvZmYyXCIpLCB1cmwoXCIuLi9mb250cy9zb3VyY2VzYW5zcHJvLWJvbGQtd2ViZm9udC53b2ZmXCIpIGZvcm1hdChcIndvZmZcIiksIHVybChcIi4uL2ZvbnRzL3NvdXJjZXNhbnNwcm8tYm9sZC13ZWJmb250LnR0ZlwiKSBmb3JtYXQoXCJ0cnVldHlwZVwiKTsgfVxuXG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6IFwiTWVycml3ZWF0aGVyXCI7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC13ZWlnaHQ6IDMwMDtcbiAgc3JjOiB1cmwoXCIuLi9mb250cy9tZXJyaXdlYXRoZXItbGlnaHQtd2ViZm9udC5lb3Q/I2llZml4XCIpIGZvcm1hdChcImVtYmVkZGVkLW9wZW50eXBlXCIpLCB1cmwoXCIuLi9mb250cy9tZXJyaXdlYXRoZXItbGlnaHQtd2ViZm9udC53b2ZmMlwiKSBmb3JtYXQoXCJ3b2ZmMlwiKSwgdXJsKFwiLi4vZm9udHMvbWVycml3ZWF0aGVyLWxpZ2h0LXdlYmZvbnQud29mZlwiKSBmb3JtYXQoXCJ3b2ZmXCIpLCB1cmwoXCIuLi9mb250cy9tZXJyaXdlYXRoZXItbGlnaHQtd2ViZm9udC50dGZcIikgZm9ybWF0KFwidHJ1ZXR5cGVcIik7IH1cblxuQGZvbnQtZmFjZSB7XG4gIGZvbnQtZmFtaWx5OiBcIk1lcnJpd2VhdGhlclwiO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIHNyYzogdXJsKFwiLi4vZm9udHMvbWVycml3ZWF0aGVyLXJlZ3VsYXItd2ViZm9udC5lb3Q/I2llZml4XCIpIGZvcm1hdChcImVtYmVkZGVkLW9wZW50eXBlXCIpLCB1cmwoXCIuLi9mb250cy9tZXJyaXdlYXRoZXItcmVndWxhci13ZWJmb250LndvZmYyXCIpIGZvcm1hdChcIndvZmYyXCIpLCB1cmwoXCIuLi9mb250cy9tZXJyaXdlYXRoZXItcmVndWxhci13ZWJmb250LndvZmZcIikgZm9ybWF0KFwid29mZlwiKSwgdXJsKFwiLi4vZm9udHMvbWVycml3ZWF0aGVyLXJlZ3VsYXItd2ViZm9udC50dGZcIikgZm9ybWF0KFwidHJ1ZXR5cGVcIik7IH1cblxuQGZvbnQtZmFjZSB7XG4gIGZvbnQtZmFtaWx5OiBcIk1lcnJpd2VhdGhlclwiO1xuICBmb250LXN0eWxlOiBpdGFsaWM7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIHNyYzogdXJsKFwiLi4vZm9udHMvbWVycml3ZWF0aGVyLWl0YWxpYy13ZWJmb250LmVvdD8jaWVmaXhcIikgZm9ybWF0KFwiZW1iZWRkZWQtb3BlbnR5cGVcIiksIHVybChcIi4uL2ZvbnRzL21lcnJpd2VhdGhlci1pdGFsaWMtd2ViZm9udC53b2ZmMlwiKSBmb3JtYXQoXCJ3b2ZmMlwiKSwgdXJsKFwiLi4vZm9udHMvbWVycml3ZWF0aGVyLWl0YWxpYy13ZWJmb250LndvZmZcIikgZm9ybWF0KFwid29mZlwiKSwgdXJsKFwiLi4vZm9udHMvbWVycml3ZWF0aGVyLWl0YWxpYy13ZWJmb250LnR0ZlwiKSBmb3JtYXQoXCJ0cnVldHlwZVwiKTsgfVxuXG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6IFwiTWVycml3ZWF0aGVyXCI7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgc3JjOiB1cmwoXCIuLi9mb250cy9tZXJyaXdlYXRoZXItYm9sZC13ZWJmb250LmVvdD8jaWVmaXhcIikgZm9ybWF0KFwiZW1iZWRkZWQtb3BlbnR5cGVcIiksIHVybChcIi4uL2ZvbnRzL21lcnJpd2VhdGhlci1ib2xkLXdlYmZvbnQud29mZjJcIikgZm9ybWF0KFwid29mZjJcIiksIHVybChcIi4uL2ZvbnRzL21lcnJpd2VhdGhlci1ib2xkLXdlYmZvbnQud29mZlwiKSBmb3JtYXQoXCJ3b2ZmXCIpLCB1cmwoXCIuLi9mb250cy9tZXJyaXdlYXRoZXItYm9sZC13ZWJmb250LnR0ZlwiKSBmb3JtYXQoXCJ0cnVldHlwZVwiKTsgfVxuXG4vKiBzdHlsZWxpbnQtZW5hYmxlICovXG4udXNhLWdyaWQsXG4udXNhLWdyaWQtZnVsbCB7XG4gIG1heC13aWR0aDogMTIwMHB4O1xuICBtYXJnaW4tbGVmdDogYXV0bztcbiAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICBtYXgtd2lkdGg6IDk2MHB4OyB9XG4gIC51c2EtZ3JpZDo6YWZ0ZXIsXG4gIC51c2EtZ3JpZC1mdWxsOjphZnRlciB7XG4gICAgY2xlYXI6IGJvdGg7XG4gICAgY29udGVudDogXCJcIjtcbiAgICBkaXNwbGF5OiBibG9jazsgfVxuXG4udXNhLWdyaWQge1xuICBwYWRkaW5nLXJpZ2h0OiAxcmVtO1xuICBwYWRkaW5nLWxlZnQ6IDFyZW07IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogODAxcHgpIHtcbiAgICAudXNhLWdyaWQge1xuICAgICAgcGFkZGluZy1yaWdodDogMS44NzVyZW07XG4gICAgICBwYWRkaW5nLWxlZnQ6IDEuODc1cmVtOyB9IH1cblxuLnVzYS1ncmlkLWZ1bGwge1xuICBwYWRkaW5nOiAwOyB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDgwMXB4KSB7XG4gIC51c2Etd2lkdGgtb25lLXdob2xlIHtcbiAgICBmbG9hdDogbGVmdDtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBtYXJnaW4tcmlnaHQ6IDQuODI5MTYlO1xuICAgIHdpZHRoOiAxMDAlOyB9XG4gICAgLnVzYS13aWR0aC1vbmUtd2hvbGU6bGFzdC1jaGlsZCB7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDA7IH1cbiAgLnVzYS13aWR0aC1vbmUtaGFsZiB7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgbWFyZ2luLXJpZ2h0OiA0LjgyOTE2JTtcbiAgICB3aWR0aDogNDcuNTg1NDIlOyB9XG4gICAgLnVzYS13aWR0aC1vbmUtaGFsZjpsYXN0LWNoaWxkIHtcbiAgICAgIG1hcmdpbi1yaWdodDogMDsgfVxuICAudXNhLXdpZHRoLW9uZS10aGlyZCB7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgbWFyZ2luLXJpZ2h0OiA0LjgyOTE2JTtcbiAgICB3aWR0aDogMzAuMTEzODklOyB9XG4gICAgLnVzYS13aWR0aC1vbmUtdGhpcmQ6bGFzdC1jaGlsZCB7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDA7IH1cbiAgLnVzYS13aWR0aC10d28tdGhpcmRzIHtcbiAgICBmbG9hdDogbGVmdDtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBtYXJnaW4tcmlnaHQ6IDQuODI5MTYlO1xuICAgIHdpZHRoOiA2NS4wNTY5NSU7IH1cbiAgICAudXNhLXdpZHRoLXR3by10aGlyZHM6bGFzdC1jaGlsZCB7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDA7IH1cbiAgLnVzYS13aWR0aC1vbmUtZm91cnRoIHtcbiAgICBmbG9hdDogbGVmdDtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBtYXJnaW4tcmlnaHQ6IDQuODI5MTYlO1xuICAgIHdpZHRoOiA0Ny41ODU0MiU7IH1cbiAgICAudXNhLXdpZHRoLW9uZS1mb3VydGg6bGFzdC1jaGlsZCB7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDA7IH1cbiAgICAudXNhLXdpZHRoLW9uZS1mb3VydGg6bnRoLWNoaWxkKDJuKSB7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDA7IH1cbiAgLnVzYS13aWR0aC10aHJlZS1mb3VydGhzIHtcbiAgICBmbG9hdDogbGVmdDtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBtYXJnaW4tcmlnaHQ6IDQuODI5MTYlO1xuICAgIHdpZHRoOiAxMDAlOyB9XG4gICAgLnVzYS13aWR0aC10aHJlZS1mb3VydGhzOmxhc3QtY2hpbGQge1xuICAgICAgbWFyZ2luLXJpZ2h0OiAwOyB9XG4gIC51c2Etd2lkdGgtb25lLXNpeHRoIHtcbiAgICBmbG9hdDogbGVmdDtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBtYXJnaW4tcmlnaHQ6IDQuODI5MTYlO1xuICAgIHdpZHRoOiAzMC4xMTM4OSU7IH1cbiAgICAudXNhLXdpZHRoLW9uZS1zaXh0aDpsYXN0LWNoaWxkIHtcbiAgICAgIG1hcmdpbi1yaWdodDogMDsgfVxuICAgIC51c2Etd2lkdGgtb25lLXNpeHRoOm50aC1jaGlsZCgzbikge1xuICAgICAgbWFyZ2luLXJpZ2h0OiAwOyB9XG4gIC51c2Etd2lkdGgtZml2ZS1zaXh0aHMge1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIG1hcmdpbi1yaWdodDogNC44MjkxNiU7XG4gICAgd2lkdGg6IDY1LjA1Njk1JTsgfVxuICAgIC51c2Etd2lkdGgtZml2ZS1zaXh0aHM6bGFzdC1jaGlsZCB7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDA7IH1cbiAgLnVzYS13aWR0aC1vbmUtdHdlbGZ0aCB7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgbWFyZ2luLXJpZ2h0OiA0LjgyOTE2JTtcbiAgICB3aWR0aDogMzAuMTEzODklOyB9XG4gICAgLnVzYS13aWR0aC1vbmUtdHdlbGZ0aDpsYXN0LWNoaWxkIHtcbiAgICAgIG1hcmdpbi1yaWdodDogMDsgfVxuICAgIC51c2Etd2lkdGgtb25lLXR3ZWxmdGg6bnRoLWNoaWxkKDNuKSB7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDA7IH1cbiAgLnVzYS13aWR0aC1maXZlLXR3ZWxmdGhzIHtcbiAgICBmbG9hdDogbGVmdDtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBtYXJnaW4tcmlnaHQ6IDQuODI5MTYlO1xuICAgIHdpZHRoOiAzMC4xMTM4OSU7IH1cbiAgICAudXNhLXdpZHRoLWZpdmUtdHdlbGZ0aHM6bGFzdC1jaGlsZCB7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDA7IH1cbiAgLnVzYS13aWR0aC1zZXZlbi10d2VsZnRocyB7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgbWFyZ2luLXJpZ2h0OiA0LjgyOTE2JTtcbiAgICB3aWR0aDogNjUuMDU2OTUlOyB9XG4gICAgLnVzYS13aWR0aC1zZXZlbi10d2VsZnRoczpsYXN0LWNoaWxkIHtcbiAgICAgIG1hcmdpbi1yaWdodDogMDsgfSB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDEwMjVweCkge1xuICAudXNhLXdpZHRoLW9uZS13aG9sZSB7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgbWFyZ2luLXJpZ2h0OiAyLjM1NzY1JTtcbiAgICB3aWR0aDogMTAwJTsgfVxuICAgIC51c2Etd2lkdGgtb25lLXdob2xlOmxhc3QtY2hpbGQge1xuICAgICAgbWFyZ2luLXJpZ2h0OiAwOyB9XG4gIC51c2Etd2lkdGgtb25lLWhhbGYge1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIG1hcmdpbi1yaWdodDogMi4zNTc2NSU7XG4gICAgd2lkdGg6IDQ4LjgyMTE3JTsgfVxuICAgIC51c2Etd2lkdGgtb25lLWhhbGY6bGFzdC1jaGlsZCB7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDA7IH1cbiAgLnVzYS13aWR0aC1vbmUtdGhpcmQge1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIG1hcmdpbi1yaWdodDogMi4zNTc2NSU7XG4gICAgd2lkdGg6IDMxLjc2MTU3JTsgfVxuICAgIC51c2Etd2lkdGgtb25lLXRoaXJkOmxhc3QtY2hpbGQge1xuICAgICAgbWFyZ2luLXJpZ2h0OiAwOyB9XG4gIC51c2Etd2lkdGgtdHdvLXRoaXJkcyB7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgbWFyZ2luLXJpZ2h0OiAyLjM1NzY1JTtcbiAgICB3aWR0aDogNjUuODgwNzglOyB9XG4gICAgLnVzYS13aWR0aC10d28tdGhpcmRzOmxhc3QtY2hpbGQge1xuICAgICAgbWFyZ2luLXJpZ2h0OiAwOyB9XG4gIC51c2Etd2lkdGgtb25lLWZvdXJ0aCB7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgbWFyZ2luLXJpZ2h0OiAyLjM1NzY1JTtcbiAgICB3aWR0aDogMjMuMjMxNzYlOyB9XG4gICAgLnVzYS13aWR0aC1vbmUtZm91cnRoOmxhc3QtY2hpbGQge1xuICAgICAgbWFyZ2luLXJpZ2h0OiAwOyB9XG4gICAgLnVzYS13aWR0aC1vbmUtZm91cnRoOm50aC1jaGlsZCgybikge1xuICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIG1hcmdpbi1yaWdodDogMi4zNTc2NSU7XG4gICAgICB3aWR0aDogMjMuMjMxNzYlOyB9XG4gICAgICAudXNhLXdpZHRoLW9uZS1mb3VydGg6bnRoLWNoaWxkKDJuKTpsYXN0LWNoaWxkIHtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAwOyB9XG4gICAgLnVzYS13aWR0aC1vbmUtZm91cnRoOm50aC1jaGlsZCg0bikge1xuICAgICAgbWFyZ2luLXJpZ2h0OiAwOyB9XG4gIC51c2Etd2lkdGgtdGhyZWUtZm91cnRocyB7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgbWFyZ2luLXJpZ2h0OiAyLjM1NzY1JTtcbiAgICB3aWR0aDogNzQuNDEwNTklOyB9XG4gICAgLnVzYS13aWR0aC10aHJlZS1mb3VydGhzOmxhc3QtY2hpbGQge1xuICAgICAgbWFyZ2luLXJpZ2h0OiAwOyB9XG4gIC51c2Etd2lkdGgtb25lLXNpeHRoIHtcbiAgICBmbG9hdDogbGVmdDtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBtYXJnaW4tcmlnaHQ6IDIuMzU3NjUlO1xuICAgIHdpZHRoOiAxNC43MDE5NiU7IH1cbiAgICAudXNhLXdpZHRoLW9uZS1zaXh0aDpsYXN0LWNoaWxkIHtcbiAgICAgIG1hcmdpbi1yaWdodDogMDsgfVxuICAgIC51c2Etd2lkdGgtb25lLXNpeHRoOm50aC1jaGlsZCgzbikge1xuICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIG1hcmdpbi1yaWdodDogMi4zNTc2NSU7XG4gICAgICB3aWR0aDogMTQuNzAxOTYlOyB9XG4gICAgICAudXNhLXdpZHRoLW9uZS1zaXh0aDpudGgtY2hpbGQoM24pOmxhc3QtY2hpbGQge1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7IH1cbiAgICAudXNhLXdpZHRoLW9uZS1zaXh0aDpudGgtY2hpbGQoNm4pIHtcbiAgICAgIG1hcmdpbi1yaWdodDogMDsgfVxuICAudXNhLXdpZHRoLWZpdmUtc2l4dGhzIHtcbiAgICBmbG9hdDogbGVmdDtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBtYXJnaW4tcmlnaHQ6IDIuMzU3NjUlO1xuICAgIHdpZHRoOiA4Mi45NDAzOSU7IH1cbiAgICAudXNhLXdpZHRoLWZpdmUtc2l4dGhzOmxhc3QtY2hpbGQge1xuICAgICAgbWFyZ2luLXJpZ2h0OiAwOyB9XG4gIC51c2Etd2lkdGgtb25lLXR3ZWxmdGgge1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIG1hcmdpbi1yaWdodDogMi4zNTc2NSU7XG4gICAgd2lkdGg6IDYuMTcyMTUlOyB9XG4gICAgLnVzYS13aWR0aC1vbmUtdHdlbGZ0aDpsYXN0LWNoaWxkIHtcbiAgICAgIG1hcmdpbi1yaWdodDogMDsgfVxuICAgIC51c2Etd2lkdGgtb25lLXR3ZWxmdGg6bnRoLWNoaWxkKDNuKSB7XG4gICAgICBmbG9hdDogbGVmdDtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgbWFyZ2luLXJpZ2h0OiAyLjM1NzY1JTtcbiAgICAgIHdpZHRoOiA2LjE3MjE1JTsgfVxuICAgICAgLnVzYS13aWR0aC1vbmUtdHdlbGZ0aDpudGgtY2hpbGQoM24pOmxhc3QtY2hpbGQge1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7IH1cbiAgICAudXNhLXdpZHRoLW9uZS10d2VsZnRoOm50aC1jaGlsZCgxMm4pIHtcbiAgICAgIG1hcmdpbi1yaWdodDogMDsgfVxuICAudXNhLXdpZHRoLWZpdmUtdHdlbGZ0aHMge1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIG1hcmdpbi1yaWdodDogMi4zNTc2NSU7XG4gICAgd2lkdGg6IDQwLjI5MTM3JTsgfVxuICAgIC51c2Etd2lkdGgtZml2ZS10d2VsZnRoczpsYXN0LWNoaWxkIHtcbiAgICAgIG1hcmdpbi1yaWdodDogMDsgfVxuICAudXNhLXdpZHRoLXNldmVuLXR3ZWxmdGhzIHtcbiAgICBmbG9hdDogbGVmdDtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBtYXJnaW4tcmlnaHQ6IDIuMzU3NjUlO1xuICAgIHdpZHRoOiA1Ny4zNTA5OCU7IH1cbiAgICAudXNhLXdpZHRoLXNldmVuLXR3ZWxmdGhzOmxhc3QtY2hpbGQge1xuICAgICAgbWFyZ2luLXJpZ2h0OiAwOyB9IH1cblxuLnVzYS1lbmQtcm93IHtcbiAgbWFyZ2luLXJpZ2h0OiAwOyB9XG5cbi51c2Etb2Zmc2V0LW9uZS10d2VsZnRoIHtcbiAgbWFyZ2luLWxlZnQ6IDguNTI5OCU7IH1cblxuLnVzYS1vZmZzZXQtb25lLXNpeHRoIHtcbiAgbWFyZ2luLWxlZnQ6IDE3LjA1OTYxJTsgfVxuXG4udXNhLW9mZnNldC1vbmUtZm91cnRoIHtcbiAgbWFyZ2luLWxlZnQ6IDI1LjU4OTQxJTsgfVxuXG4udXNhLW9mZnNldC1vbmUtdGhpcmQge1xuICBtYXJnaW4tbGVmdDogMzQuMTE5MjIlOyB9XG5cbi51c2Etb2Zmc2V0LWZpdmUtdHdlbGZ0aHMge1xuICBtYXJnaW4tbGVmdDogNDIuNjQ5MDIlOyB9XG5cbi51c2Etb2Zmc2V0LW9uZS1oYWxmIHtcbiAgbWFyZ2luLWxlZnQ6IDUxLjE3ODgzJTsgfVxuXG4udXNhLW9mZnNldC1zZXZlbi10d2VsZnRocyB7XG4gIG1hcmdpbi1sZWZ0OiA1OS43MDg2MyU7IH1cblxuLnVzYS1vZmZzZXQtdHdvLXRoaXJkcyB7XG4gIG1hcmdpbi1sZWZ0OiA2OC4yMzg0MyU7IH1cblxuLnVzYS1vZmZzZXQtdGhyZWUtZm91cnRocyB7XG4gIG1hcmdpbi1sZWZ0OiA3Ni43NjgyNCU7IH1cblxuLnVzYS1vZmZzZXQtZml2ZS1zaXh0aHMge1xuICBtYXJnaW4tbGVmdDogODUuMjk4MDQlOyB9XG5cbi51c2Etb2Zmc2V0LWVsZXZlbi10d2VsZnRocyB7XG4gIG1hcmdpbi1sZWZ0OiA5My44Mjc4NSU7IH1cblxuLnVzYS1zci1vbmx5IHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiAtOTk5ZW07IH1cblxuaHRtbCB7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7IH1cblxuKixcbio6OmJlZm9yZSxcbio6OmFmdGVyIHtcbiAgYm94LXNpemluZzogaW5oZXJpdDsgfVxuXG5ib2R5IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZjtcbiAgb3ZlcmZsb3cteDogaGlkZGVuOyB9XG5cbi5sdC1pZTkgKiB7XG4gIGZpbHRlcjogbm9uZSAhaW1wb3J0YW50O1xuICAvKiBzdHlsZWxpbnQtZGlzYWJsZS1saW5lIGRlY2xhcmF0aW9uLW5vLWltcG9ydGFudCAqLyB9XG5cbltoaWRkZW5dIHtcbiAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICAvKiBzdHlsZWxpbnQtZGlzYWJsZS1saW5lIGRlY2xhcmF0aW9uLW5vLWltcG9ydGFudCAqLyB9XG5cbio6Zm9jdXMsXG4udXNhLWZvY3VzIHtcbiAgb3V0bGluZTogMnB4IGRvdHRlZCAjYWViMGI1O1xuICBvdXRsaW5lLW9mZnNldDogM3B4OyB9XG5cbi8qIHN0eWxlbGludC1kaXNhYmxlIHNlbGVjdG9yLW5vLXF1YWxpZnlpbmctdHlwZSAqL1xuLnVzYS1idXR0b24sXG4udXNhLWJ1dHRvbi1wcmltYXJ5LFxuLnVzYS1idXR0b246dmlzaXRlZCxcbi51c2EtYnV0dG9uLXByaW1hcnk6dmlzaXRlZCB7XG4gIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XG4gIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuICBtYXJnaW4tdG9wOiAwLjVlbTtcbiAgbWFyZ2luLXJpZ2h0OiAwLjVlbTtcbiAgbWFyZ2luLWJvdHRvbTogMC41ZW07XG4gIGFwcGVhcmFuY2U6IG5vbmU7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMDcxYmM7XG4gIGJvcmRlcjogMDtcbiAgYm9yZGVyLXJhZGl1czogNXB4O1xuICBjb2xvcjogI2ZmZmZmZjtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGZvbnQtZmFtaWx5OiBUcmVidWNoZXQsIFRhaG9tYSwgc2Fucy1zZXJpZjtcbiAgZm9udC1zaXplOiAxLjA2MjVyZW07XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICBwYWRkaW5nOiAxcmVtIDJyZW07XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICB3aWR0aDogMTAwJTsgfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0ODFweCkge1xuICAgIC51c2EtYnV0dG9uLFxuICAgIC51c2EtYnV0dG9uLXByaW1hcnksXG4gICAgLnVzYS1idXR0b246dmlzaXRlZCxcbiAgICAudXNhLWJ1dHRvbi1wcmltYXJ5OnZpc2l0ZWQge1xuICAgICAgd2lkdGg6IGF1dG87IH0gfVxuICAudXNhLWJ1dHRvbjpob3ZlciwgLnVzYS1idXR0b24udXNhLWJ1dHRvbi1ob3ZlcixcbiAgLnVzYS1idXR0b24tcHJpbWFyeTpob3ZlcixcbiAgLnVzYS1idXR0b24tcHJpbWFyeS51c2EtYnV0dG9uLWhvdmVyLFxuICAudXNhLWJ1dHRvbjp2aXNpdGVkOmhvdmVyLFxuICAudXNhLWJ1dHRvbjp2aXNpdGVkLnVzYS1idXR0b24taG92ZXIsXG4gIC51c2EtYnV0dG9uLXByaW1hcnk6dmlzaXRlZDpob3ZlcixcbiAgLnVzYS1idXR0b24tcHJpbWFyeTp2aXNpdGVkLnVzYS1idXR0b24taG92ZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICMyMDU0OTM7XG4gICAgYm9yZGVyLWJvdHRvbTogMDtcbiAgICBjb2xvcjogI2ZmZmZmZjtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7IH1cbiAgLnVzYS1idXR0b246YWN0aXZlLCAudXNhLWJ1dHRvbi51c2EtYnV0dG9uLWFjdGl2ZSxcbiAgLnVzYS1idXR0b24tcHJpbWFyeTphY3RpdmUsXG4gIC51c2EtYnV0dG9uLXByaW1hcnkudXNhLWJ1dHRvbi1hY3RpdmUsXG4gIC51c2EtYnV0dG9uOnZpc2l0ZWQ6YWN0aXZlLFxuICAudXNhLWJ1dHRvbjp2aXNpdGVkLnVzYS1idXR0b24tYWN0aXZlLFxuICAudXNhLWJ1dHRvbi1wcmltYXJ5OnZpc2l0ZWQ6YWN0aXZlLFxuICAudXNhLWJ1dHRvbi1wcmltYXJ5OnZpc2l0ZWQudXNhLWJ1dHRvbi1hY3RpdmUge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICMxMTJlNTE7IH1cbiAgLnVzYS1idXR0b24udXNhLWJ1dHRvbi1wcmltYXJ5LWFsdCxcbiAgLnVzYS1idXR0b24tcHJpbWFyeS51c2EtYnV0dG9uLXByaW1hcnktYWx0LFxuICAudXNhLWJ1dHRvbjp2aXNpdGVkLnVzYS1idXR0b24tcHJpbWFyeS1hbHQsXG4gIC51c2EtYnV0dG9uLXByaW1hcnk6dmlzaXRlZC51c2EtYnV0dG9uLXByaW1hcnktYWx0IHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDJiZmU3O1xuICAgIGNvbG9yOiAjMjEyMTIxOyB9XG4gICAgLnVzYS1idXR0b24udXNhLWJ1dHRvbi1wcmltYXJ5LWFsdDpob3ZlciwgLnVzYS1idXR0b24udXNhLWJ1dHRvbi1wcmltYXJ5LWFsdC51c2EtYnV0dG9uLWhvdmVyLFxuICAgIC51c2EtYnV0dG9uLXByaW1hcnkudXNhLWJ1dHRvbi1wcmltYXJ5LWFsdDpob3ZlcixcbiAgICAudXNhLWJ1dHRvbi1wcmltYXJ5LnVzYS1idXR0b24tcHJpbWFyeS1hbHQudXNhLWJ1dHRvbi1ob3ZlcixcbiAgICAudXNhLWJ1dHRvbjp2aXNpdGVkLnVzYS1idXR0b24tcHJpbWFyeS1hbHQ6aG92ZXIsXG4gICAgLnVzYS1idXR0b246dmlzaXRlZC51c2EtYnV0dG9uLXByaW1hcnktYWx0LnVzYS1idXR0b24taG92ZXIsXG4gICAgLnVzYS1idXR0b24tcHJpbWFyeTp2aXNpdGVkLnVzYS1idXR0b24tcHJpbWFyeS1hbHQ6aG92ZXIsXG4gICAgLnVzYS1idXR0b24tcHJpbWFyeTp2aXNpdGVkLnVzYS1idXR0b24tcHJpbWFyeS1hbHQudXNhLWJ1dHRvbi1ob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDBhNmQyOyB9XG4gICAgLnVzYS1idXR0b24udXNhLWJ1dHRvbi1wcmltYXJ5LWFsdDphY3RpdmUsIC51c2EtYnV0dG9uLnVzYS1idXR0b24tcHJpbWFyeS1hbHQudXNhLWJ1dHRvbi1hY3RpdmUsXG4gICAgLnVzYS1idXR0b24tcHJpbWFyeS51c2EtYnV0dG9uLXByaW1hcnktYWx0OmFjdGl2ZSxcbiAgICAudXNhLWJ1dHRvbi1wcmltYXJ5LnVzYS1idXR0b24tcHJpbWFyeS1hbHQudXNhLWJ1dHRvbi1hY3RpdmUsXG4gICAgLnVzYS1idXR0b246dmlzaXRlZC51c2EtYnV0dG9uLXByaW1hcnktYWx0OmFjdGl2ZSxcbiAgICAudXNhLWJ1dHRvbjp2aXNpdGVkLnVzYS1idXR0b24tcHJpbWFyeS1hbHQudXNhLWJ1dHRvbi1hY3RpdmUsXG4gICAgLnVzYS1idXR0b24tcHJpbWFyeTp2aXNpdGVkLnVzYS1idXR0b24tcHJpbWFyeS1hbHQ6YWN0aXZlLFxuICAgIC51c2EtYnV0dG9uLXByaW1hcnk6dmlzaXRlZC51c2EtYnV0dG9uLXByaW1hcnktYWx0LnVzYS1idXR0b24tYWN0aXZlIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICMwNDZiOTk7XG4gICAgICBjb2xvcjogI2ZmZmZmZjsgfVxuICAudXNhLWJ1dHRvbi51c2EtYnV0dG9uLXNlY29uZGFyeSxcbiAgLnVzYS1idXR0b24tcHJpbWFyeS51c2EtYnV0dG9uLXNlY29uZGFyeSxcbiAgLnVzYS1idXR0b246dmlzaXRlZC51c2EtYnV0dG9uLXNlY29uZGFyeSxcbiAgLnVzYS1idXR0b24tcHJpbWFyeTp2aXNpdGVkLnVzYS1idXR0b24tc2Vjb25kYXJ5IHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmO1xuICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMCAwIDJweCAjMDA3MWJjO1xuICAgIGNvbG9yOiAjMDA3MWJjOyB9XG4gICAgLnVzYS1idXR0b24udXNhLWJ1dHRvbi1zZWNvbmRhcnk6aG92ZXIsIC51c2EtYnV0dG9uLnVzYS1idXR0b24tc2Vjb25kYXJ5LnVzYS1idXR0b24taG92ZXIsXG4gICAgLnVzYS1idXR0b24tcHJpbWFyeS51c2EtYnV0dG9uLXNlY29uZGFyeTpob3ZlcixcbiAgICAudXNhLWJ1dHRvbi1wcmltYXJ5LnVzYS1idXR0b24tc2Vjb25kYXJ5LnVzYS1idXR0b24taG92ZXIsXG4gICAgLnVzYS1idXR0b246dmlzaXRlZC51c2EtYnV0dG9uLXNlY29uZGFyeTpob3ZlcixcbiAgICAudXNhLWJ1dHRvbjp2aXNpdGVkLnVzYS1idXR0b24tc2Vjb25kYXJ5LnVzYS1idXR0b24taG92ZXIsXG4gICAgLnVzYS1idXR0b24tcHJpbWFyeTp2aXNpdGVkLnVzYS1idXR0b24tc2Vjb25kYXJ5OmhvdmVyLFxuICAgIC51c2EtYnV0dG9uLXByaW1hcnk6dmlzaXRlZC51c2EtYnV0dG9uLXNlY29uZGFyeS51c2EtYnV0dG9uLWhvdmVyIHtcbiAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMCAwIDJweCAjMjA1NDkzO1xuICAgICAgY29sb3I6ICMyMDU0OTM7IH1cbiAgICAudXNhLWJ1dHRvbi51c2EtYnV0dG9uLXNlY29uZGFyeTphY3RpdmUsIC51c2EtYnV0dG9uLnVzYS1idXR0b24tc2Vjb25kYXJ5LnVzYS1idXR0b24tYWN0aXZlLFxuICAgIC51c2EtYnV0dG9uLXByaW1hcnkudXNhLWJ1dHRvbi1zZWNvbmRhcnk6YWN0aXZlLFxuICAgIC51c2EtYnV0dG9uLXByaW1hcnkudXNhLWJ1dHRvbi1zZWNvbmRhcnkudXNhLWJ1dHRvbi1hY3RpdmUsXG4gICAgLnVzYS1idXR0b246dmlzaXRlZC51c2EtYnV0dG9uLXNlY29uZGFyeTphY3RpdmUsXG4gICAgLnVzYS1idXR0b246dmlzaXRlZC51c2EtYnV0dG9uLXNlY29uZGFyeS51c2EtYnV0dG9uLWFjdGl2ZSxcbiAgICAudXNhLWJ1dHRvbi1wcmltYXJ5OnZpc2l0ZWQudXNhLWJ1dHRvbi1zZWNvbmRhcnk6YWN0aXZlLFxuICAgIC51c2EtYnV0dG9uLXByaW1hcnk6dmlzaXRlZC51c2EtYnV0dG9uLXNlY29uZGFyeS51c2EtYnV0dG9uLWFjdGl2ZSB7XG4gICAgICBib3gtc2hhZG93OiBpbnNldCAwIDAgMCAycHggIzExMmU1MTtcbiAgICAgIGNvbG9yOiAjMTEyZTUxOyB9XG4gIC51c2EtYnV0dG9uLnVzYS1idXR0b24tc2Vjb25kYXJ5LWludmVyc2UsIC51c2EtYnV0dG9uLnVzYS1idXR0b24tb3V0bGluZS1pbnZlcnNlLFxuICAudXNhLWJ1dHRvbi1wcmltYXJ5LnVzYS1idXR0b24tc2Vjb25kYXJ5LWludmVyc2UsXG4gIC51c2EtYnV0dG9uLXByaW1hcnkudXNhLWJ1dHRvbi1vdXRsaW5lLWludmVyc2UsXG4gIC51c2EtYnV0dG9uOnZpc2l0ZWQudXNhLWJ1dHRvbi1zZWNvbmRhcnktaW52ZXJzZSxcbiAgLnVzYS1idXR0b246dmlzaXRlZC51c2EtYnV0dG9uLW91dGxpbmUtaW52ZXJzZSxcbiAgLnVzYS1idXR0b24tcHJpbWFyeTp2aXNpdGVkLnVzYS1idXR0b24tc2Vjb25kYXJ5LWludmVyc2UsXG4gIC51c2EtYnV0dG9uLXByaW1hcnk6dmlzaXRlZC51c2EtYnV0dG9uLW91dGxpbmUtaW52ZXJzZSB7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgYm94LXNoYWRvdzogaW5zZXQgMCAwIDAgMnB4ICNmZmZmZmY7XG4gICAgY29sb3I6ICNmZmZmZmY7IH1cbiAgICAudXNhLWJ1dHRvbi51c2EtYnV0dG9uLXNlY29uZGFyeS1pbnZlcnNlOmhvdmVyLCAudXNhLWJ1dHRvbi51c2EtYnV0dG9uLXNlY29uZGFyeS1pbnZlcnNlLnVzYS1idXR0b24taG92ZXIsIC51c2EtYnV0dG9uLnVzYS1idXR0b24tb3V0bGluZS1pbnZlcnNlOmhvdmVyLCAudXNhLWJ1dHRvbi51c2EtYnV0dG9uLW91dGxpbmUtaW52ZXJzZS51c2EtYnV0dG9uLWhvdmVyLFxuICAgIC51c2EtYnV0dG9uLXByaW1hcnkudXNhLWJ1dHRvbi1zZWNvbmRhcnktaW52ZXJzZTpob3ZlcixcbiAgICAudXNhLWJ1dHRvbi1wcmltYXJ5LnVzYS1idXR0b24tc2Vjb25kYXJ5LWludmVyc2UudXNhLWJ1dHRvbi1ob3ZlcixcbiAgICAudXNhLWJ1dHRvbi1wcmltYXJ5LnVzYS1idXR0b24tb3V0bGluZS1pbnZlcnNlOmhvdmVyLFxuICAgIC51c2EtYnV0dG9uLXByaW1hcnkudXNhLWJ1dHRvbi1vdXRsaW5lLWludmVyc2UudXNhLWJ1dHRvbi1ob3ZlcixcbiAgICAudXNhLWJ1dHRvbjp2aXNpdGVkLnVzYS1idXR0b24tc2Vjb25kYXJ5LWludmVyc2U6aG92ZXIsXG4gICAgLnVzYS1idXR0b246dmlzaXRlZC51c2EtYnV0dG9uLXNlY29uZGFyeS1pbnZlcnNlLnVzYS1idXR0b24taG92ZXIsXG4gICAgLnVzYS1idXR0b246dmlzaXRlZC51c2EtYnV0dG9uLW91dGxpbmUtaW52ZXJzZTpob3ZlcixcbiAgICAudXNhLWJ1dHRvbjp2aXNpdGVkLnVzYS1idXR0b24tb3V0bGluZS1pbnZlcnNlLnVzYS1idXR0b24taG92ZXIsXG4gICAgLnVzYS1idXR0b24tcHJpbWFyeTp2aXNpdGVkLnVzYS1idXR0b24tc2Vjb25kYXJ5LWludmVyc2U6aG92ZXIsXG4gICAgLnVzYS1idXR0b24tcHJpbWFyeTp2aXNpdGVkLnVzYS1idXR0b24tc2Vjb25kYXJ5LWludmVyc2UudXNhLWJ1dHRvbi1ob3ZlcixcbiAgICAudXNhLWJ1dHRvbi1wcmltYXJ5OnZpc2l0ZWQudXNhLWJ1dHRvbi1vdXRsaW5lLWludmVyc2U6aG92ZXIsXG4gICAgLnVzYS1idXR0b24tcHJpbWFyeTp2aXNpdGVkLnVzYS1idXR0b24tb3V0bGluZS1pbnZlcnNlLnVzYS1idXR0b24taG92ZXIge1xuICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAwIDAgMnB4ICNkNmQ3ZDk7XG4gICAgICBjb2xvcjogI2Q2ZDdkOTsgfVxuICAgIC51c2EtYnV0dG9uLnVzYS1idXR0b24tc2Vjb25kYXJ5LWludmVyc2U6YWN0aXZlLCAudXNhLWJ1dHRvbi51c2EtYnV0dG9uLXNlY29uZGFyeS1pbnZlcnNlLnVzYS1idXR0b24tYWN0aXZlLCAudXNhLWJ1dHRvbi51c2EtYnV0dG9uLW91dGxpbmUtaW52ZXJzZTphY3RpdmUsIC51c2EtYnV0dG9uLnVzYS1idXR0b24tb3V0bGluZS1pbnZlcnNlLnVzYS1idXR0b24tYWN0aXZlLFxuICAgIC51c2EtYnV0dG9uLXByaW1hcnkudXNhLWJ1dHRvbi1zZWNvbmRhcnktaW52ZXJzZTphY3RpdmUsXG4gICAgLnVzYS1idXR0b24tcHJpbWFyeS51c2EtYnV0dG9uLXNlY29uZGFyeS1pbnZlcnNlLnVzYS1idXR0b24tYWN0aXZlLFxuICAgIC51c2EtYnV0dG9uLXByaW1hcnkudXNhLWJ1dHRvbi1vdXRsaW5lLWludmVyc2U6YWN0aXZlLFxuICAgIC51c2EtYnV0dG9uLXByaW1hcnkudXNhLWJ1dHRvbi1vdXRsaW5lLWludmVyc2UudXNhLWJ1dHRvbi1hY3RpdmUsXG4gICAgLnVzYS1idXR0b246dmlzaXRlZC51c2EtYnV0dG9uLXNlY29uZGFyeS1pbnZlcnNlOmFjdGl2ZSxcbiAgICAudXNhLWJ1dHRvbjp2aXNpdGVkLnVzYS1idXR0b24tc2Vjb25kYXJ5LWludmVyc2UudXNhLWJ1dHRvbi1hY3RpdmUsXG4gICAgLnVzYS1idXR0b246dmlzaXRlZC51c2EtYnV0dG9uLW91dGxpbmUtaW52ZXJzZTphY3RpdmUsXG4gICAgLnVzYS1idXR0b246dmlzaXRlZC51c2EtYnV0dG9uLW91dGxpbmUtaW52ZXJzZS51c2EtYnV0dG9uLWFjdGl2ZSxcbiAgICAudXNhLWJ1dHRvbi1wcmltYXJ5OnZpc2l0ZWQudXNhLWJ1dHRvbi1zZWNvbmRhcnktaW52ZXJzZTphY3RpdmUsXG4gICAgLnVzYS1idXR0b24tcHJpbWFyeTp2aXNpdGVkLnVzYS1idXR0b24tc2Vjb25kYXJ5LWludmVyc2UudXNhLWJ1dHRvbi1hY3RpdmUsXG4gICAgLnVzYS1idXR0b24tcHJpbWFyeTp2aXNpdGVkLnVzYS1idXR0b24tb3V0bGluZS1pbnZlcnNlOmFjdGl2ZSxcbiAgICAudXNhLWJ1dHRvbi1wcmltYXJ5OnZpc2l0ZWQudXNhLWJ1dHRvbi1vdXRsaW5lLWludmVyc2UudXNhLWJ1dHRvbi1hY3RpdmUge1xuICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAwIDAgMnB4ICNhZWIwYjU7XG4gICAgICBjb2xvcjogI2Q2ZDdkOTsgfVxuICAudXNhLWJ1dHRvbi51c2EtYnV0dG9uLWdyYXksXG4gIC51c2EtYnV0dG9uLXByaW1hcnkudXNhLWJ1dHRvbi1ncmF5LFxuICAudXNhLWJ1dHRvbjp2aXNpdGVkLnVzYS1idXR0b24tZ3JheSxcbiAgLnVzYS1idXR0b24tcHJpbWFyeTp2aXNpdGVkLnVzYS1idXR0b24tZ3JheSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzViNjE2YjsgfVxuICAgIC51c2EtYnV0dG9uLnVzYS1idXR0b24tZ3JheTpob3ZlciwgLnVzYS1idXR0b24udXNhLWJ1dHRvbi1ncmF5LnVzYS1idXR0b24taG92ZXIsXG4gICAgLnVzYS1idXR0b24tcHJpbWFyeS51c2EtYnV0dG9uLWdyYXk6aG92ZXIsXG4gICAgLnVzYS1idXR0b24tcHJpbWFyeS51c2EtYnV0dG9uLWdyYXkudXNhLWJ1dHRvbi1ob3ZlcixcbiAgICAudXNhLWJ1dHRvbjp2aXNpdGVkLnVzYS1idXR0b24tZ3JheTpob3ZlcixcbiAgICAudXNhLWJ1dHRvbjp2aXNpdGVkLnVzYS1idXR0b24tZ3JheS51c2EtYnV0dG9uLWhvdmVyLFxuICAgIC51c2EtYnV0dG9uLXByaW1hcnk6dmlzaXRlZC51c2EtYnV0dG9uLWdyYXk6aG92ZXIsXG4gICAgLnVzYS1idXR0b24tcHJpbWFyeTp2aXNpdGVkLnVzYS1idXR0b24tZ3JheS51c2EtYnV0dG9uLWhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICMzMjNhNDU7IH1cbiAgICAudXNhLWJ1dHRvbi51c2EtYnV0dG9uLWdyYXk6YWN0aXZlLCAudXNhLWJ1dHRvbi51c2EtYnV0dG9uLWdyYXkudXNhLWJ1dHRvbi1hY3RpdmUsXG4gICAgLnVzYS1idXR0b24tcHJpbWFyeS51c2EtYnV0dG9uLWdyYXk6YWN0aXZlLFxuICAgIC51c2EtYnV0dG9uLXByaW1hcnkudXNhLWJ1dHRvbi1ncmF5LnVzYS1idXR0b24tYWN0aXZlLFxuICAgIC51c2EtYnV0dG9uOnZpc2l0ZWQudXNhLWJ1dHRvbi1ncmF5OmFjdGl2ZSxcbiAgICAudXNhLWJ1dHRvbjp2aXNpdGVkLnVzYS1idXR0b24tZ3JheS51c2EtYnV0dG9uLWFjdGl2ZSxcbiAgICAudXNhLWJ1dHRvbi1wcmltYXJ5OnZpc2l0ZWQudXNhLWJ1dHRvbi1ncmF5OmFjdGl2ZSxcbiAgICAudXNhLWJ1dHRvbi1wcmltYXJ5OnZpc2l0ZWQudXNhLWJ1dHRvbi1ncmF5LnVzYS1idXR0b24tYWN0aXZlIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICMyMTIxMjE7IH1cbiAgLnVzYS1idXR0b24udXNhLWJ1dHRvbi1yZWQsXG4gIC51c2EtYnV0dG9uLXByaW1hcnkudXNhLWJ1dHRvbi1yZWQsXG4gIC51c2EtYnV0dG9uOnZpc2l0ZWQudXNhLWJ1dHRvbi1yZWQsXG4gIC51c2EtYnV0dG9uLXByaW1hcnk6dmlzaXRlZC51c2EtYnV0dG9uLXJlZCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2UzMWMzZDsgfVxuICAgIC51c2EtYnV0dG9uLnVzYS1idXR0b24tcmVkOmhvdmVyLCAudXNhLWJ1dHRvbi51c2EtYnV0dG9uLXJlZC51c2EtYnV0dG9uLWhvdmVyLFxuICAgIC51c2EtYnV0dG9uLXByaW1hcnkudXNhLWJ1dHRvbi1yZWQ6aG92ZXIsXG4gICAgLnVzYS1idXR0b24tcHJpbWFyeS51c2EtYnV0dG9uLXJlZC51c2EtYnV0dG9uLWhvdmVyLFxuICAgIC51c2EtYnV0dG9uOnZpc2l0ZWQudXNhLWJ1dHRvbi1yZWQ6aG92ZXIsXG4gICAgLnVzYS1idXR0b246dmlzaXRlZC51c2EtYnV0dG9uLXJlZC51c2EtYnV0dG9uLWhvdmVyLFxuICAgIC51c2EtYnV0dG9uLXByaW1hcnk6dmlzaXRlZC51c2EtYnV0dG9uLXJlZDpob3ZlcixcbiAgICAudXNhLWJ1dHRvbi1wcmltYXJ5OnZpc2l0ZWQudXNhLWJ1dHRvbi1yZWQudXNhLWJ1dHRvbi1ob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjY2QyMDI2OyB9XG4gICAgLnVzYS1idXR0b24udXNhLWJ1dHRvbi1yZWQ6YWN0aXZlLCAudXNhLWJ1dHRvbi51c2EtYnV0dG9uLXJlZC51c2EtYnV0dG9uLWFjdGl2ZSxcbiAgICAudXNhLWJ1dHRvbi1wcmltYXJ5LnVzYS1idXR0b24tcmVkOmFjdGl2ZSxcbiAgICAudXNhLWJ1dHRvbi1wcmltYXJ5LnVzYS1idXR0b24tcmVkLnVzYS1idXR0b24tYWN0aXZlLFxuICAgIC51c2EtYnV0dG9uOnZpc2l0ZWQudXNhLWJ1dHRvbi1yZWQ6YWN0aXZlLFxuICAgIC51c2EtYnV0dG9uOnZpc2l0ZWQudXNhLWJ1dHRvbi1yZWQudXNhLWJ1dHRvbi1hY3RpdmUsXG4gICAgLnVzYS1idXR0b24tcHJpbWFyeTp2aXNpdGVkLnVzYS1idXR0b24tcmVkOmFjdGl2ZSxcbiAgICAudXNhLWJ1dHRvbi1wcmltYXJ5OnZpc2l0ZWQudXNhLWJ1dHRvbi1yZWQudXNhLWJ1dHRvbi1hY3RpdmUge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzk4MWIxZTsgfVxuICAudXNhLWJ1dHRvbi51c2EtYnV0dG9uLWJpZyxcbiAgLnVzYS1idXR0b24tcHJpbWFyeS51c2EtYnV0dG9uLWJpZyxcbiAgLnVzYS1idXR0b246dmlzaXRlZC51c2EtYnV0dG9uLWJpZyxcbiAgLnVzYS1idXR0b24tcHJpbWFyeTp2aXNpdGVkLnVzYS1idXR0b24tYmlnIHtcbiAgICBmb250LXNpemU6IDEuOXJlbTtcbiAgICBwYWRkaW5nOiAxLjVyZW0gM3JlbTsgfVxuICAudXNhLWJ1dHRvbjpkaXNhYmxlZCxcbiAgLnVzYS1idXR0b24tcHJpbWFyeTpkaXNhYmxlZCxcbiAgLnVzYS1idXR0b246dmlzaXRlZDpkaXNhYmxlZCxcbiAgLnVzYS1idXR0b24tcHJpbWFyeTp2aXNpdGVkOmRpc2FibGVkIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZDZkN2Q5O1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lOyB9XG4gICAgLnVzYS1idXR0b246ZGlzYWJsZWQ6aG92ZXIsIC51c2EtYnV0dG9uOmRpc2FibGVkLnVzYS1idXR0b24taG92ZXIsIC51c2EtYnV0dG9uOmRpc2FibGVkOmFjdGl2ZSwgLnVzYS1idXR0b246ZGlzYWJsZWQudXNhLWJ1dHRvbi1hY3RpdmUsIC51c2EtYnV0dG9uOmRpc2FibGVkOmZvY3VzLCAudXNhLWJ1dHRvbjpkaXNhYmxlZC51c2EtZm9jdXMsXG4gICAgLnVzYS1idXR0b24tcHJpbWFyeTpkaXNhYmxlZDpob3ZlcixcbiAgICAudXNhLWJ1dHRvbi1wcmltYXJ5OmRpc2FibGVkLnVzYS1idXR0b24taG92ZXIsXG4gICAgLnVzYS1idXR0b24tcHJpbWFyeTpkaXNhYmxlZDphY3RpdmUsXG4gICAgLnVzYS1idXR0b24tcHJpbWFyeTpkaXNhYmxlZC51c2EtYnV0dG9uLWFjdGl2ZSxcbiAgICAudXNhLWJ1dHRvbi1wcmltYXJ5OmRpc2FibGVkOmZvY3VzLFxuICAgIC51c2EtYnV0dG9uLXByaW1hcnk6ZGlzYWJsZWQudXNhLWZvY3VzLFxuICAgIC51c2EtYnV0dG9uOnZpc2l0ZWQ6ZGlzYWJsZWQ6aG92ZXIsXG4gICAgLnVzYS1idXR0b246dmlzaXRlZDpkaXNhYmxlZC51c2EtYnV0dG9uLWhvdmVyLFxuICAgIC51c2EtYnV0dG9uOnZpc2l0ZWQ6ZGlzYWJsZWQ6YWN0aXZlLFxuICAgIC51c2EtYnV0dG9uOnZpc2l0ZWQ6ZGlzYWJsZWQudXNhLWJ1dHRvbi1hY3RpdmUsXG4gICAgLnVzYS1idXR0b246dmlzaXRlZDpkaXNhYmxlZDpmb2N1cyxcbiAgICAudXNhLWJ1dHRvbjp2aXNpdGVkOmRpc2FibGVkLnVzYS1mb2N1cyxcbiAgICAudXNhLWJ1dHRvbi1wcmltYXJ5OnZpc2l0ZWQ6ZGlzYWJsZWQ6aG92ZXIsXG4gICAgLnVzYS1idXR0b24tcHJpbWFyeTp2aXNpdGVkOmRpc2FibGVkLnVzYS1idXR0b24taG92ZXIsXG4gICAgLnVzYS1idXR0b24tcHJpbWFyeTp2aXNpdGVkOmRpc2FibGVkOmFjdGl2ZSxcbiAgICAudXNhLWJ1dHRvbi1wcmltYXJ5OnZpc2l0ZWQ6ZGlzYWJsZWQudXNhLWJ1dHRvbi1hY3RpdmUsXG4gICAgLnVzYS1idXR0b24tcHJpbWFyeTp2aXNpdGVkOmRpc2FibGVkOmZvY3VzLFxuICAgIC51c2EtYnV0dG9uLXByaW1hcnk6dmlzaXRlZDpkaXNhYmxlZC51c2EtZm9jdXMge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2Q2ZDdkOTtcbiAgICAgIGJvcmRlcjogMDtcbiAgICAgIGJveC1zaGFkb3c6IG5vbmU7IH1cblxuLyogc3R5bGVsaW50LWRpc2FibGUgKi9cbi51c2EtYnV0dG9uLWRpc2FibGVkIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Q2ZDdkOTtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7IH1cbiAgLnVzYS1idXR0b24tZGlzYWJsZWQ6aG92ZXIsIC51c2EtYnV0dG9uLWRpc2FibGVkLnVzYS1idXR0b24taG92ZXIsIC51c2EtYnV0dG9uLWRpc2FibGVkOmFjdGl2ZSwgLnVzYS1idXR0b24tZGlzYWJsZWQudXNhLWJ1dHRvbi1hY3RpdmUsIC51c2EtYnV0dG9uLWRpc2FibGVkOmZvY3VzLCAudXNhLWJ1dHRvbi1kaXNhYmxlZC51c2EtZm9jdXMge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNkNmQ3ZDk7XG4gICAgYm9yZGVyOiAwO1xuICAgIGJveC1zaGFkb3c6IG5vbmU7IH1cblxuLnVzYS1idXR0b24tc2Vjb25kYXJ5LWRpc2FibGVkLFxuLnVzYS1idXR0b24tc2Vjb25kYXJ5LWludmVyc2UtZGlzYWJsZWQsXG4udXNhLWJ1dHRvbi1zZWNvbmRhcnk6ZGlzYWJsZWQsXG4udXNhLWJ1dHRvbi1zZWNvbmRhcnktaW52ZXJzZTpkaXNhYmxlZCxcbi51c2EtYnV0dG9uLW91dGxpbmUtaW52ZXJzZTpkaXNhYmxlZCB7XG4gIGJveC1zaGFkb3c6IGluc2V0IDAgMCAwIDJweCAjZDZkN2Q5O1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgY29sb3I6ICNkNmQ3ZDk7IH1cbiAgLnVzYS1idXR0b24tc2Vjb25kYXJ5LWRpc2FibGVkOmhvdmVyLCAudXNhLWJ1dHRvbi1zZWNvbmRhcnktZGlzYWJsZWQudXNhLWJ1dHRvbi1ob3ZlciwgLnVzYS1idXR0b24tc2Vjb25kYXJ5LWRpc2FibGVkOmFjdGl2ZSwgLnVzYS1idXR0b24tc2Vjb25kYXJ5LWRpc2FibGVkLnVzYS1idXR0b24tYWN0aXZlLCAudXNhLWJ1dHRvbi1zZWNvbmRhcnktZGlzYWJsZWQ6Zm9jdXMsIC51c2EtYnV0dG9uLXNlY29uZGFyeS1kaXNhYmxlZC51c2EtZm9jdXMsXG4gIC51c2EtYnV0dG9uLXNlY29uZGFyeS1pbnZlcnNlLWRpc2FibGVkOmhvdmVyLFxuICAudXNhLWJ1dHRvbi1zZWNvbmRhcnktaW52ZXJzZS1kaXNhYmxlZC51c2EtYnV0dG9uLWhvdmVyLFxuICAudXNhLWJ1dHRvbi1zZWNvbmRhcnktaW52ZXJzZS1kaXNhYmxlZDphY3RpdmUsXG4gIC51c2EtYnV0dG9uLXNlY29uZGFyeS1pbnZlcnNlLWRpc2FibGVkLnVzYS1idXR0b24tYWN0aXZlLFxuICAudXNhLWJ1dHRvbi1zZWNvbmRhcnktaW52ZXJzZS1kaXNhYmxlZDpmb2N1cyxcbiAgLnVzYS1idXR0b24tc2Vjb25kYXJ5LWludmVyc2UtZGlzYWJsZWQudXNhLWZvY3VzLFxuICAudXNhLWJ1dHRvbi1zZWNvbmRhcnk6ZGlzYWJsZWQ6aG92ZXIsXG4gIC51c2EtYnV0dG9uLXNlY29uZGFyeTpkaXNhYmxlZC51c2EtYnV0dG9uLWhvdmVyLFxuICAudXNhLWJ1dHRvbi1zZWNvbmRhcnk6ZGlzYWJsZWQ6YWN0aXZlLFxuICAudXNhLWJ1dHRvbi1zZWNvbmRhcnk6ZGlzYWJsZWQudXNhLWJ1dHRvbi1hY3RpdmUsXG4gIC51c2EtYnV0dG9uLXNlY29uZGFyeTpkaXNhYmxlZDpmb2N1cyxcbiAgLnVzYS1idXR0b24tc2Vjb25kYXJ5OmRpc2FibGVkLnVzYS1mb2N1cyxcbiAgLnVzYS1idXR0b24tc2Vjb25kYXJ5LWludmVyc2U6ZGlzYWJsZWQ6aG92ZXIsXG4gIC51c2EtYnV0dG9uLXNlY29uZGFyeS1pbnZlcnNlOmRpc2FibGVkLnVzYS1idXR0b24taG92ZXIsXG4gIC51c2EtYnV0dG9uLXNlY29uZGFyeS1pbnZlcnNlOmRpc2FibGVkOmFjdGl2ZSxcbiAgLnVzYS1idXR0b24tc2Vjb25kYXJ5LWludmVyc2U6ZGlzYWJsZWQudXNhLWJ1dHRvbi1hY3RpdmUsXG4gIC51c2EtYnV0dG9uLXNlY29uZGFyeS1pbnZlcnNlOmRpc2FibGVkOmZvY3VzLFxuICAudXNhLWJ1dHRvbi1zZWNvbmRhcnktaW52ZXJzZTpkaXNhYmxlZC51c2EtZm9jdXMsXG4gIC51c2EtYnV0dG9uLW91dGxpbmUtaW52ZXJzZTpkaXNhYmxlZDpob3ZlcixcbiAgLnVzYS1idXR0b24tb3V0bGluZS1pbnZlcnNlOmRpc2FibGVkLnVzYS1idXR0b24taG92ZXIsXG4gIC51c2EtYnV0dG9uLW91dGxpbmUtaW52ZXJzZTpkaXNhYmxlZDphY3RpdmUsXG4gIC51c2EtYnV0dG9uLW91dGxpbmUtaW52ZXJzZTpkaXNhYmxlZC51c2EtYnV0dG9uLWFjdGl2ZSxcbiAgLnVzYS1idXR0b24tb3V0bGluZS1pbnZlcnNlOmRpc2FibGVkOmZvY3VzLFxuICAudXNhLWJ1dHRvbi1vdXRsaW5lLWludmVyc2U6ZGlzYWJsZWQudXNhLWZvY3VzIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmO1xuICAgIGJvcmRlcjogMDsgfVxuXG5odG1sIC51c2EtYnV0dG9uLXNlY29uZGFyeS1kaXNhYmxlZCxcbi51c2EtYnV0dG9uLXNlY29uZGFyeTpkaXNhYmxlZCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7IH1cblxuaHRtbCAudXNhLWJ1dHRvbi1zZWNvbmRhcnktaW52ZXJzZS1kaXNhYmxlZCxcbi51c2EtYnV0dG9uLXNlY29uZGFyeS1pbnZlcnNlOmRpc2FibGVkIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGNvbG9yOiAjNWI2MTZiO1xuICBib3gtc2hhZG93OiBpbnNldCAwIDAgMCAycHggIzViNjE2YjsgfVxuXG4udXNhLWJ1dHRvbi11bnN0eWxlZCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICBib3JkZXI6IDA7XG4gIGJvcmRlci1yYWRpdXM6IDA7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMDtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgLXdlYmtpdC1mb250LXNtb290aGluZzogYXV0bzsgfVxuICAudXNhLWJ1dHRvbi11bnN0eWxlZDpob3ZlciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7IH1cblxuLypcbkBpbXBvcnQgJ2VsZW1lbnRzL2VtYmVkJztcbkBpbXBvcnQgJ2VsZW1lbnRzL2ZpZ3VyZSc7XG5AaW1wb3J0ICdlbGVtZW50cy9pbnB1dHMnO1xuQGltcG9ydCAnZWxlbWVudHMvbGFiZWxzJztcbkBpbXBvcnQgJ2VsZW1lbnRzL2xpc3QnO1xuQGltcG9ydCAnZWxlbWVudHMvdGFibGUnO1xuQGltcG9ydCAnZWxlbWVudHMvdHlwb2dyYXBoeSc7XG5cbi8vIENvbXBvbmVudHMgLS0tLS0tLS0tLS0tLS0gLy9cbiovXG4udXNhLWFjY29yZGlvbixcbi51c2EtYWNjb3JkaW9uLWJvcmRlcmVkIHtcbiAgbWFyZ2luLXRvcDogMDtcbiAgbWFyZ2luLWJvdHRvbTogMDtcbiAgbGlzdC1zdHlsZS10eXBlOiBub25lO1xuICBwYWRkaW5nLWxlZnQ6IDA7XG4gIGNvbG9yOiAjMjEyMTIxO1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDA7XG4gIHdpZHRoOiAxMDAlOyB9XG4gIC51c2EtYWNjb3JkaW9uID4gbGksXG4gIC51c2EtYWNjb3JkaW9uLWJvcmRlcmVkID4gbGkge1xuICAgIG1hcmdpbi1ib3R0b206IDA7IH1cbiAgLnVzYS1hY2NvcmRpb24gPiB1bCBsaSB1bCxcbiAgLnVzYS1hY2NvcmRpb24tYm9yZGVyZWQgPiB1bCBsaSB1bCB7XG4gICAgbGlzdC1zdHlsZTogZGlzYzsgfVxuICAgIC51c2EtYWNjb3JkaW9uID4gdWwgbGkgdWwgPiBsaSA+IHVsLFxuICAgIC51c2EtYWNjb3JkaW9uLWJvcmRlcmVkID4gdWwgbGkgdWwgPiBsaSA+IHVsIHtcbiAgICAgIGxpc3Qtc3R5bGU6IGNpcmNsZTsgfVxuICAgICAgLnVzYS1hY2NvcmRpb24gPiB1bCBsaSB1bCA+IGxpID4gdWwgPiBsaSA+IHVsLFxuICAgICAgLnVzYS1hY2NvcmRpb24tYm9yZGVyZWQgPiB1bCBsaSB1bCA+IGxpID4gdWwgPiBsaSA+IHVsIHtcbiAgICAgICAgbGlzdC1zdHlsZTogc3F1YXJlOyB9XG4gIC51c2EtYWNjb3JkaW9uICsgLnVzYS1hY2NvcmRpb24sXG4gIC51c2EtYWNjb3JkaW9uICsgLnVzYS1hY2NvcmRpb24tYm9yZGVyZWQsXG4gIC51c2EtYWNjb3JkaW9uLWJvcmRlcmVkICsgLnVzYS1hY2NvcmRpb24sXG4gIC51c2EtYWNjb3JkaW9uLWJvcmRlcmVkICsgLnVzYS1hY2NvcmRpb24tYm9yZGVyZWQge1xuICAgIG1hcmdpbi10b3A6IDFyZW07IH1cbiAgLnVzYS1hY2NvcmRpb24gPiB1bCxcbiAgLnVzYS1hY2NvcmRpb24tYm9yZGVyZWQgPiB1bCB7XG4gICAgbWFyZ2luLXRvcDogMDtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTtcbiAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgY29sb3I6ICMyMTIxMjE7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgd2lkdGg6IDEwMCU7IH1cbiAgICAudXNhLWFjY29yZGlvbiA+IHVsID4gbGksXG4gICAgLnVzYS1hY2NvcmRpb24tYm9yZGVyZWQgPiB1bCA+IGxpIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDA7IH1cbiAgICAudXNhLWFjY29yZGlvbiA+IHVsID4gbGksXG4gICAgLnVzYS1hY2NvcmRpb24tYm9yZGVyZWQgPiB1bCA+IGxpIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmMWYxZjE7XG4gICAgICBmb250LWZhbWlseTogVHJlYnVjaGV0LCBUYWhvbWEsIHNhbnMtc2VyaWY7XG4gICAgICBsaXN0LXN0eWxlOiBub25lO1xuICAgICAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xuICAgICAgd2lkdGg6IDEwMCU7IH1cbiAgICAudXNhLWFjY29yZGlvbiA+IHVsIGJ1dHRvbixcbiAgICAudXNhLWFjY29yZGlvbi1ib3JkZXJlZCA+IHVsIGJ1dHRvbiB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgIGJvcmRlcjogMDtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICBmb250LXdlaWdodDogNDAwO1xuICAgICAgbWFyZ2luOiAwO1xuICAgICAgcGFkZGluZzogMDtcbiAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhdXRvO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2YxZjFmMTtcbiAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChcIi4uL2ltZy9taW51cy5wbmdcIik7XG4gICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCIuLi9pbWcvbWludXMuc3ZnXCIpO1xuICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogcmlnaHQgMnJlbSBjZW50ZXI7XG4gICAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgICAgYmFja2dyb3VuZC1zaXplOiAxLjVyZW07XG4gICAgICBjb2xvcjogIzIxMjEyMTtcbiAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgIGZvbnQtZmFtaWx5OiBUcmVidWNoZXQsIFRhaG9tYSwgc2Fucy1zZXJpZjtcbiAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgICBtYXJnaW46IDA7XG4gICAgICBwYWRkaW5nOiAxLjVyZW0gNS41cmVtIDEuNXJlbSAycmVtO1xuICAgICAgd2lkdGg6IDEwMCU7IH1cbiAgICAgIC51c2EtYWNjb3JkaW9uID4gdWwgYnV0dG9uOmhvdmVyLFxuICAgICAgLnVzYS1hY2NvcmRpb24tYm9yZGVyZWQgPiB1bCBidXR0b246aG92ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDsgfVxuICAgICAgLnVzYS1hY2NvcmRpb24gPiB1bCBidXR0b246aG92ZXIsXG4gICAgICAudXNhLWFjY29yZGlvbi1ib3JkZXJlZCA+IHVsIGJ1dHRvbjpob3ZlciB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNkNmQ3ZDk7XG4gICAgICAgIGNvbG9yOiAjMjEyMTIxOyB9XG4gICAgICAudXNhLWFjY29yZGlvbiA+IHVsIGJ1dHRvbiBoMSxcbiAgICAgIC51c2EtYWNjb3JkaW9uID4gdWwgYnV0dG9uIGgyLFxuICAgICAgLnVzYS1hY2NvcmRpb24gPiB1bCBidXR0b24gaDMsXG4gICAgICAudXNhLWFjY29yZGlvbiA+IHVsIGJ1dHRvbiBoNCxcbiAgICAgIC51c2EtYWNjb3JkaW9uID4gdWwgYnV0dG9uIGg1LFxuICAgICAgLnVzYS1hY2NvcmRpb24gPiB1bCBidXR0b24gaDYsXG4gICAgICAudXNhLWFjY29yZGlvbi1ib3JkZXJlZCA+IHVsIGJ1dHRvbiBoMSxcbiAgICAgIC51c2EtYWNjb3JkaW9uLWJvcmRlcmVkID4gdWwgYnV0dG9uIGgyLFxuICAgICAgLnVzYS1hY2NvcmRpb24tYm9yZGVyZWQgPiB1bCBidXR0b24gaDMsXG4gICAgICAudXNhLWFjY29yZGlvbi1ib3JkZXJlZCA+IHVsIGJ1dHRvbiBoNCxcbiAgICAgIC51c2EtYWNjb3JkaW9uLWJvcmRlcmVkID4gdWwgYnV0dG9uIGg1LFxuICAgICAgLnVzYS1hY2NvcmRpb24tYm9yZGVyZWQgPiB1bCBidXR0b24gaDYge1xuICAgICAgICBtYXJnaW46IDA7IH1cbiAgICAudXNhLWFjY29yZGlvbiA+IHVsIFthcmlhLWV4cGFuZGVkPWZhbHNlXSxcbiAgICAudXNhLWFjY29yZGlvbi1ib3JkZXJlZCA+IHVsIFthcmlhLWV4cGFuZGVkPWZhbHNlXSB7XG4gICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCIuLi9pbWcvcGx1cy5wbmdcIik7XG4gICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCIuLi9pbWcvcGx1cy5zdmdcIik7XG4gICAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgICAgYmFja2dyb3VuZC1zaXplOiAxLjVyZW07IH1cbiAgLnVzYS1hY2NvcmRpb24gPiBsaSxcbiAgLnVzYS1hY2NvcmRpb24tYm9yZGVyZWQgPiBsaSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2YxZjFmMTtcbiAgICBmb250LWZhbWlseTogVHJlYnVjaGV0LCBUYWhvbWEsIHNhbnMtc2VyaWY7XG4gICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG4gICAgd2lkdGg6IDEwMCU7IH1cblxuLnVzYS1hY2NvcmRpb24tYm9yZGVyZWQgLnVzYS1hY2NvcmRpb24tY29udGVudCB7XG4gIGJvcmRlci1ib3R0b206IDNweCBzb2xpZCAjZjFmMWYxO1xuICBib3JkZXItbGVmdDogM3B4IHNvbGlkICNmMWYxZjE7XG4gIGJvcmRlci1yaWdodDogM3B4IHNvbGlkICNmMWYxZjE7IH1cblxuLnVzYS1hY2NvcmRpb24tY29udGVudCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7XG4gIG92ZXJmbG93OiBhdXRvO1xuICBwYWRkaW5nOiAxLjVyZW0gMnJlbTsgfVxuICAudXNhLWFjY29yZGlvbi1jb250ZW50ID4gKjpmaXJzdC1jaGlsZCB7XG4gICAgbWFyZ2luLXRvcDogMDsgfVxuICAudXNhLWFjY29yZGlvbi1jb250ZW50ID4gKjpsYXN0LWNoaWxkIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwOyB9XG4gIC51c2EtYWNjb3JkaW9uLWNvbnRlbnQ6bm90KFthcmlhLWhpZGRlbl0pIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgbGVmdDogLTk5OWVtOyB9XG4gIC51c2EtYWNjb3JkaW9uLWNvbnRlbnRbYXJpYS1oaWRkZW49dHJ1ZV0ge1xuICAgIGRpc3BsYXk6IG5vbmU7IH1cblxuLnVzYS1hY2NvcmRpb24tYnV0dG9uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGJvcmRlcjogMDtcbiAgYm9yZGVyLXJhZGl1czogMDtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwO1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhdXRvO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjFmMWYxO1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCIuLi9pbWcvbWludXMucG5nXCIpO1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCIuLi9pbWcvbWludXMuc3ZnXCIpO1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiByaWdodCAycmVtIGNlbnRlcjtcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgYmFja2dyb3VuZC1zaXplOiAxLjVyZW07XG4gIGNvbG9yOiAjMjEyMTIxO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgZm9udC1mYW1pbHk6IFRyZWJ1Y2hldCwgVGFob21hLCBzYW5zLXNlcmlmO1xuICBmb250LXdlaWdodDogNzAwO1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDEuNXJlbSA1LjVyZW0gMS41cmVtIDJyZW07XG4gIHdpZHRoOiAxMDAlOyB9XG4gIC51c2EtYWNjb3JkaW9uLWJ1dHRvbjpob3ZlciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7IH1cbiAgLnVzYS1hY2NvcmRpb24tYnV0dG9uOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZDZkN2Q5O1xuICAgIGNvbG9yOiAjMjEyMTIxOyB9XG4gIC51c2EtYWNjb3JkaW9uLWJ1dHRvbiBoMSxcbiAgLnVzYS1hY2NvcmRpb24tYnV0dG9uIGgyLFxuICAudXNhLWFjY29yZGlvbi1idXR0b24gaDMsXG4gIC51c2EtYWNjb3JkaW9uLWJ1dHRvbiBoNCxcbiAgLnVzYS1hY2NvcmRpb24tYnV0dG9uIGg1LFxuICAudXNhLWFjY29yZGlvbi1idXR0b24gaDYge1xuICAgIG1hcmdpbjogMDsgfVxuXG4udXNhLWFjY29yZGlvbi1idXR0b25bYXJpYS1leHBhbmRlZD1mYWxzZV0ge1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCIuLi9pbWcvcGx1cy5wbmdcIik7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybChcIi4uL2ltZy9wbHVzLnN2Z1wiKTtcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgYmFja2dyb3VuZC1zaXplOiAxLjVyZW07IH1cblxuLypcbkBpbXBvcnQgJ2NvbXBvbmVudHMvYWxlcnRzJztcbiovXG4udXNhLWJhbm5lciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmMWYxZjE7XG4gIHBhZGRpbmctYm90dG9tOiAwLjQzNzVyZW07IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDgxcHgpIHtcbiAgICAudXNhLWJhbm5lciB7XG4gICAgICBmb250LXNpemU6IDAuODEyNXJlbTtcbiAgICAgIHBhZGRpbmctYm90dG9tOiAwOyB9IH1cblxuLnVzYS1iYW5uZXItY29udGVudCB7XG4gIHBhZGRpbmctcmlnaHQ6IDFyZW07XG4gIHBhZGRpbmctYm90dG9tOiAzcHg7XG4gIHBhZGRpbmctbGVmdDogMXJlbTtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGZvbnQtc2l6ZTogMC45Mzc1cmVtO1xuICBwYWRkaW5nLXRvcDogMS4yNXJlbTtcbiAgd2lkdGg6IDEwMCU7IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogODAxcHgpIHtcbiAgICAudXNhLWJhbm5lci1jb250ZW50IHtcbiAgICAgIHBhZGRpbmctYm90dG9tOiAxLjQzNzVyZW07XG4gICAgICBwYWRkaW5nLXRvcDogMi41cmVtOyB9IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogOTUxcHgpIHtcbiAgICAudXNhLWJhbm5lci1jb250ZW50IHtcbiAgICAgIHBhZGRpbmctcmlnaHQ6IDEuODc1cmVtO1xuICAgICAgcGFkZGluZy1sZWZ0OiAxLjg3NXJlbTsgfSB9XG4gIC51c2EtYmFubmVyLWNvbnRlbnQgcDpmaXJzdC1jaGlsZCB7XG4gICAgbWFyZ2luLXRvcDogMC42MjVyZW07IH1cbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA4MDFweCkge1xuICAgICAgLnVzYS1iYW5uZXItY29udGVudCBwOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgbWFyZ2luLXRvcDogMDsgfSB9XG5cbi51c2EtYmFubmVyLWlubmVyIHtcbiAgbWF4LXdpZHRoOiAxMjAwcHg7XG4gIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gIHBhZGRpbmctcmlnaHQ6IDFyZW07XG4gIHBhZGRpbmctbGVmdDogMXJlbTtcbiAgbWF4LXdpZHRoOiA5NjBweDsgfVxuICAudXNhLWJhbm5lci1pbm5lcjo6YWZ0ZXIge1xuICAgIGNsZWFyOiBib3RoO1xuICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgZGlzcGxheTogYmxvY2s7IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogOTUxcHgpIHtcbiAgICAudXNhLWJhbm5lci1pbm5lciB7XG4gICAgICBwYWRkaW5nLXJpZ2h0OiAxLjg3NXJlbTtcbiAgICAgIHBhZGRpbmctbGVmdDogMS44NzVyZW07IH0gfVxuXG4udXNhLWJhbm5lci1oZWFkZXIge1xuICBwYWRkaW5nLXRvcDogMC4zNDM3NXJlbTtcbiAgcGFkZGluZy1ib3R0b206IDAuMzQzNzVyZW07XG4gIGZvbnQtc2l6ZTogMC43NXJlbTtcbiAgZm9udC13ZWlnaHQ6IDQwMDsgfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0ODFweCkge1xuICAgIC51c2EtYmFubmVyLWhlYWRlciB7XG4gICAgICBwYWRkaW5nLXRvcDogMDtcbiAgICAgIHBhZGRpbmctYm90dG9tOiAwOyB9IH1cbiAgLnVzYS1iYW5uZXItaGVhZGVyIHAge1xuICAgIG1hcmdpbi10b3A6IDA7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICBkaXNwbGF5OiBpbmxpbmU7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOyB9XG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDgxcHgpIHtcbiAgICAgIC51c2EtYmFubmVyLWhlYWRlciBwIHtcbiAgICAgICAgbWFyZ2luLXRvcDogMnB4O1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAycHg7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsgfSB9XG4gIC51c2EtYmFubmVyLWhlYWRlciBpbWcge1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIG1hcmdpbi1yaWdodDogMC42MjVyZW07XG4gICAgbWFyZ2luLXRvcDogMC42MjVyZW07XG4gICAgd2lkdGg6IDEuNXJlbTsgfVxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQ4MXB4KSB7XG4gICAgICAudXNhLWJhbm5lci1oZWFkZXIgaW1nIHtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjQzNzVyZW07XG4gICAgICAgIHdpZHRoOiAxLjI1cmVtOyB9IH1cblxuLnVzYS1iYW5uZXItaGVhZGVyLWV4cGFuZGVkIHtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNhZWIwYjU7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZvbnQtc2l6ZTogMC45Mzc1cmVtO1xuICBtaW4taGVpZ2h0OiAzLjVyZW07XG4gIHBhZGRpbmctcmlnaHQ6IDEuODc1cmVtOyB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQ4MXB4KSB7XG4gICAgLnVzYS1iYW5uZXItaGVhZGVyLWV4cGFuZGVkIHtcbiAgICAgIGJvcmRlci1ib3R0b206IG5vbmU7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIGZvbnQtc2l6ZTogMC43NXJlbTtcbiAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gICAgICBtaW4taGVpZ2h0OiAwO1xuICAgICAgcGFkZGluZy1yaWdodDogMDsgfSB9XG4gIC51c2EtYmFubmVyLWhlYWRlci1leHBhbmRlZCA+IC51c2EtYmFubmVyLWlubmVyIHtcbiAgICBtYXJnaW4tbGVmdDogMDsgfVxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQ4MXB4KSB7XG4gICAgICAudXNhLWJhbm5lci1oZWFkZXItZXhwYW5kZWQgPiAudXNhLWJhbm5lci1pbm5lciB7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvOyB9IH1cbiAgLnVzYS1iYW5uZXItaGVhZGVyLWV4cGFuZGVkIGltZyB7XG4gICAgbWFyZ2luLXJpZ2h0OiAxLjVyZW07IH1cbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0ODFweCkge1xuICAgICAgLnVzYS1iYW5uZXItaGVhZGVyLWV4cGFuZGVkIGltZyB7XG4gICAgICAgIG1hcmdpbi1yaWdodDogMC40Mzc1cmVtOyB9IH1cbiAgLnVzYS1iYW5uZXItaGVhZGVyLWV4cGFuZGVkIHAge1xuICAgIGxpbmUtaGVpZ2h0OiAxLjM7XG4gICAgdmVydGljYWwtYWxpZ246IHRvcDsgfVxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQ4MXB4KSB7XG4gICAgICAudXNhLWJhbm5lci1oZWFkZXItZXhwYW5kZWQgcCB7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxLjU7XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7IH0gfVxuXG4udXNhLWJhbm5lci1idXR0b24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgYm9yZGVyOiAwO1xuICBib3JkZXItcmFkaXVzOiAwO1xuICBmb250LXdlaWdodDogNDAwO1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDA7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG4gIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGF1dG87XG4gIHBhZGRpbmctdG9wOiAwLjgxMjVyZW07XG4gIHBhZGRpbmctbGVmdDogM3JlbTtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbi14OiByaWdodDtcbiAgY29sb3I6ICMwMDcxYmM7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBmb250LXNpemU6IDAuNzVyZW07XG4gIGhlaWdodDogMi42ODc1cmVtO1xuICBsZWZ0OiAwO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICB0b3A6IDA7XG4gIHdpZHRoOiAxMDAlOyB9XG4gIC51c2EtYmFubmVyLWJ1dHRvbjpob3ZlciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDgxcHgpIHtcbiAgICAudXNhLWJhbm5lci1idXR0b24ge1xuICAgICAgcGFkZGluZy10b3A6IDA7XG4gICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICAvKiBzdHlsZWxpbnQtZGlzYWJsZSBkZWNsYXJhdGlvbi1ibG9jay1uby1pZ25vcmVkLXByb3BlcnRpZXMgKi9cbiAgICAgIGRpc3BsYXk6IGlubGluZTtcbiAgICAgIGhlaWdodDogaW5pdGlhbDtcbiAgICAgIG1hcmdpbi1sZWZ0OiAzcHg7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgd2lkdGg6IGluaXRpYWw7XG4gICAgICAvKiBzdHlsZWxpbnQtZW5hYmxlICovIH0gfVxuICAudXNhLWJhbm5lci1idXR0b246aG92ZXIge1xuICAgIGNvbG9yOiAjMjA1NDkzO1xuICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lOyB9XG4gIC51c2EtYmFubmVyLWJ1dHRvblthcmlhLWV4cGFuZGVkPWZhbHNlXSB7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogbm9uZTsgfVxuICAgIC51c2EtYmFubmVyLWJ1dHRvblthcmlhLWV4cGFuZGVkPWZhbHNlXTo6YWZ0ZXIge1xuICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiLi4vaW1nL2FuZ2xlLWFycm93LWRvd24tcHJpbWFyeS5wbmdcIik7XG4gICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCIuLi9pbWcvYW5nbGUtYXJyb3ctZG93bi1wcmltYXJ5LnN2Z1wiKTtcbiAgICAgIGJhY2tncm91bmQtc2l6ZTogMTAwJTtcbiAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgaGVpZ2h0OiAwLjYyNXJlbTtcbiAgICAgIHdpZHRoOiAwLjYyNXJlbTtcbiAgICAgIC8qIHN0eWxlbGludC1kaXNhYmxlIGJsb2NrLWNsb3NpbmctYnJhY2UtbmV3bGluZS1hZnRlciwgYXQtcnVsZS1lbXB0eS1saW5lLWJlZm9yZSAqL1xuICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAvKiBzdHlsZWxpbnQtZW5hYmxlICovIH1cbiAgICAudXNhLWJhbm5lci1idXR0b25bYXJpYS1leHBhbmRlZD1mYWxzZV06aG92ZXI6OmFmdGVyIHtcbiAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChcIi4uL2ltZy9hbmdsZS1hcnJvdy1kb3duLXByaW1hcnktaG92ZXIucG5nXCIpO1xuICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiLi4vaW1nL2FuZ2xlLWFycm93LWRvd24tcHJpbWFyeS1ob3Zlci5zdmdcIik7IH1cbiAgICAudXNhLWJhbm5lci1idXR0b25bYXJpYS1leHBhbmRlZD1mYWxzZV06OmFmdGVyIHtcbiAgICAgIGJhY2tncm91bmQtcG9zaXRpb24teTogMXB4OyB9XG4gIC51c2EtYmFubmVyLWJ1dHRvblthcmlhLWV4cGFuZGVkPXRydWVdIHtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiBub25lO1xuICAgIGhlaWdodDogMy41cmVtOyB9XG4gICAgLnVzYS1iYW5uZXItYnV0dG9uW2FyaWEtZXhwYW5kZWQ9dHJ1ZV06OmFmdGVyIHtcbiAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChcIi4uL2ltZy9jbG9zZS5wbmdcIik7XG4gICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCIuLi9pbWcvY2xvc2Uuc3ZnXCIpO1xuICAgICAgYmFja2dyb3VuZC1zaXplOiAxMDAlO1xuICAgICAgY29udGVudDogJyc7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICBoZWlnaHQ6IDAuODEyNXJlbTtcbiAgICAgIHdpZHRoOiAwLjgxMjVyZW07XG4gICAgICAvKiBzdHlsZWxpbnQtZGlzYWJsZSBibG9jay1jbG9zaW5nLWJyYWNlLW5ld2xpbmUtYWZ0ZXIsIGF0LXJ1bGUtZW1wdHktbGluZS1iZWZvcmUgKi9cbiAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgLyogc3R5bGVsaW50LWVuYWJsZSAqLyB9XG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDgxcHgpIHtcbiAgICAgIC51c2EtYmFubmVyLWJ1dHRvblthcmlhLWV4cGFuZGVkPXRydWVdIHtcbiAgICAgICAgaGVpZ2h0OiBpbml0aWFsO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7IH1cbiAgICAgICAgLnVzYS1iYW5uZXItYnV0dG9uW2FyaWEtZXhwYW5kZWQ9dHJ1ZV06OmFmdGVyIHtcbiAgICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCIuLi9pbWcvYW5nbGUtYXJyb3ctdXAtcHJpbWFyeS5wbmdcIik7XG4gICAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiLi4vaW1nL2FuZ2xlLWFycm93LXVwLXByaW1hcnkuc3ZnXCIpO1xuICAgICAgICAgIGJhY2tncm91bmQtc2l6ZTogMTAwJTtcbiAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgaGVpZ2h0OiAwLjYyNXJlbTtcbiAgICAgICAgICB3aWR0aDogMC42MjVyZW07XG4gICAgICAgICAgLyogc3R5bGVsaW50LWRpc2FibGUgYmxvY2stY2xvc2luZy1icmFjZS1uZXdsaW5lLWFmdGVyLCBhdC1ydWxlLWVtcHR5LWxpbmUtYmVmb3JlICovXG4gICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgLyogc3R5bGVsaW50LWVuYWJsZSAqLyB9XG4gICAgICAgIC51c2EtYmFubmVyLWJ1dHRvblthcmlhLWV4cGFuZGVkPXRydWVdOmhvdmVyOjphZnRlciB7XG4gICAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiLi4vaW1nL2FuZ2xlLWFycm93LXVwLXByaW1hcnktaG92ZXIucG5nXCIpO1xuICAgICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChcIi4uL2ltZy9hbmdsZS1hcnJvdy11cC1wcmltYXJ5LWhvdmVyLnN2Z1wiKTsgfVxuICAgICAgICAudXNhLWJhbm5lci1idXR0b25bYXJpYS1leHBhbmRlZD10cnVlXTo6YWZ0ZXIge1xuICAgICAgICAgIGJhY2tncm91bmQtcG9zaXRpb24teTogMXB4OyB9IH1cbiAgICAudXNhLWJhbm5lci1idXR0b25bYXJpYS1leHBhbmRlZD10cnVlXTo6YWZ0ZXIge1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgcmlnaHQ6IDAuOTM3NXJlbTtcbiAgICAgIHRvcDogMS4zNDM3NXJlbTsgfVxuICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDgxcHgpIHtcbiAgICAgICAgLnVzYS1iYW5uZXItYnV0dG9uW2FyaWEtZXhwYW5kZWQ9dHJ1ZV06OmFmdGVyIHtcbiAgICAgICAgICBwb3NpdGlvbjogc3RhdGljOyB9IH1cbiAgICAudXNhLWJhbm5lci1idXR0b25bYXJpYS1leHBhbmRlZD10cnVlXSAudXNhLWJhbm5lci1idXR0b24tdGV4dCB7XG4gICAgICBkaXNwbGF5OiBub25lOyB9XG4gICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0ODFweCkge1xuICAgICAgICAudXNhLWJhbm5lci1idXR0b25bYXJpYS1leHBhbmRlZD10cnVlXSAudXNhLWJhbm5lci1idXR0b24tdGV4dCB7XG4gICAgICAgICAgZGlzcGxheTogaW5saW5lOyB9IH1cblxuLnVzYS1iYW5uZXItaWNvbiB7XG4gIHdpZHRoOiAyLjM3NXJlbTsgfVxuXG4vKlxuQGltcG9ydCAnY29tcG9uZW50cy9mb290ZXInO1xuQGltcG9ydCAnY29tcG9uZW50cy9mb3Jtcyc7XG5AaW1wb3J0ICdjb21wb25lbnRzL2dyYXBoaWMtbGlzdCc7XG5AaW1wb3J0ICdjb21wb25lbnRzL2hlYWRlcic7XG5AaW1wb3J0ICdjb21wb25lbnRzL2hlcm8nO1xuQGltcG9ydCAnY29tcG9uZW50cy9sYXlvdXQnO1xuQGltcG9ydCAnY29tcG9uZW50cy9tZWRpYS1ibG9jayc7XG5AaW1wb3J0ICdjb21wb25lbnRzL25hdmlnYXRpb24nO1xuQGltcG9ydCAnY29tcG9uZW50cy9zZWFyY2gnO1xuQGltcG9ydCAnY29tcG9uZW50cy9zZWN0aW9uJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvc2lkZW5hdic7XG5AaW1wb3J0ICdjb21wb25lbnRzL3NraXBuYXYnO1xuKi9cbi51c2EtYnV0dG9uLFxuLnVzYS1idXR0b24tcHJpbWFyeSxcbi51c2EtYnV0dG9uOnZpc2l0ZWQsXG4udXNhLWJ1dHRvbi1wcmltYXJ5OnZpc2l0ZWQge1xuICBwYWRkaW5nOiAwLjYyNXJlbSAxLjI1cmVtOyB9XG5cbi51c2EtYmFubmVyIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlOyB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDgwMXB4KSB7XG4gIC51c2EtYmFubmVyLWlubmVyIHtcbiAgICBwYWRkaW5nOiAwIGNhbGMoMiUgKyA4cHgpO1xuICAgIHdpZHRoOiA5NiU7IH0gfVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAxMDI1cHgpIHtcbiAgLnVzYS1iYW5uZXItaW5uZXIge1xuICAgIG1hcmdpbjogMCBhdXRvO1xuICAgIHBhZGRpbmc6IDAgMC41cmVtO1xuICAgIHdpZHRoOiA5NjBweDsgfSB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDgwMXB4KSB7XG4gIC51c2EtYmFubmVyLWNvbnRlbnQge1xuICAgIHBhZGRpbmctbGVmdDogY2FsYygyJSArIDhweCk7XG4gICAgcGFkZGluZy1yaWdodDogY2FsYygyJSArIDhweCk7XG4gICAgd2lkdGg6IDk2JTsgfSB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDEwMjVweCkge1xuICAudXNhLWJhbm5lci1jb250ZW50IHtcbiAgICBwYWRkaW5nLWxlZnQ6IDAuNXJlbTtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwLjVyZW07XG4gICAgd2lkdGg6IDk2MHB4OyB9IH1cblxuLnVzYS1iYW5uZXItaGVhZGVyIHtcbiAgZm9udC1zaXplOiAwLjYyNXJlbTsgfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0ODFweCkge1xuICAgIC51c2EtYmFubmVyLWhlYWRlciB7XG4gICAgICBmb250LXNpemU6IDAuNzVyZW07XG4gICAgICBwYWRkaW5nOiAwIDAgM3B4OyB9IH1cbiAgLnVzYS1iYW5uZXItaGVhZGVyIGltZyB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgbWFyZ2luLXJpZ2h0OiAwLjYyNXJlbTtcbiAgICBtYXJnaW4tdG9wOiAwO1xuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgd2lkdGg6IDEuNXJlbTsgfVxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQ4MXB4KSB7XG4gICAgICAudXNhLWJhbm5lci1oZWFkZXIgaW1nIHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBmbG9hdDogbm9uZTtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjYyNXJlbTtcbiAgICAgICAgd2lkdGg6IDEuMjVyZW07IH0gfVxuICAudXNhLWJhbm5lci1oZWFkZXIgcCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHRvcDogMXB4O1xuICAgIGxlZnQ6IC0ycHg7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgbGluZS1oZWlnaHQ6IDEuMTU7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlOyB9XG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDgxcHgpIHtcbiAgICAgIC51c2EtYmFubmVyLWhlYWRlciBwIHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB0b3A6IGF1dG87XG4gICAgICAgIGxlZnQ6IGF1dG87XG4gICAgICAgIGRpc3BsYXk6IGlubGluZTtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgICAgIG92ZXJmbG93OiB2aXNpYmxlO1xuICAgICAgICBtYXJnaW46IDA7IH0gfVxuICAudXNhLWJhbm5lci1oZWFkZXItZXhwYW5kZWQgaW1nIHtcbiAgICBtYXJnaW4tcmlnaHQ6IDAuNjI1cmVtOyB9XG5cbi51c2EtYWNjb3JkaW9uLWJ1dHRvblthcmlhLWV4cGFuZGVkPWZhbHNlXSxcbi51c2EtYWNjb3JkaW9uLWJ1dHRvblthcmlhLWV4cGFuZGVkPXRydWVdIHtcbiAgYmFja2dyb3VuZC1zaXplOiAwLjkzNzVyZW07IH1cbiAgLnVzYS1hY2NvcmRpb24tYnV0dG9uW2FyaWEtZXhwYW5kZWQ9ZmFsc2VdOmFmdGVyLFxuICAudXNhLWFjY29yZGlvbi1idXR0b25bYXJpYS1leHBhbmRlZD10cnVlXTphZnRlciB7XG4gICAgaGVpZ2h0OiAwLjYyNXJlbTtcbiAgICB3aWR0aDogMC42MjVyZW07IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDgxcHgpIHtcbiAgICAudXNhLWFjY29yZGlvbi1idXR0b25bYXJpYS1leHBhbmRlZD1mYWxzZV0sXG4gICAgLnVzYS1hY2NvcmRpb24tYnV0dG9uW2FyaWEtZXhwYW5kZWQ9dHJ1ZV0ge1xuICAgICAgdG9wOiAxcHg7XG4gICAgICBwYWRkaW5nLWxlZnQ6IDRweDsgfSB9XG5cbi51c2EtbWVkaWFfYmxvY2staW1nIHtcbiAgZmxvYXQ6IGxlZnQ7XG4gIG1hcmdpbi1yaWdodDogMXJlbTsgfVxuXG4udXNhLW1lZGlhX2Jsb2NrLWJvZHkge1xuICBvdmVyZmxvdzogaGlkZGVuOyB9XG4iLCIvLyBCdXR0b25zIHZhcmlhYmxlc1xuXG4kYnV0dG9uLXN0cm9rZTogaW5zZXQgMCAwIDAgMnB4O1xuXG4vLyBCdXR0b25zXG5cbi8vIFRoaXMgbWl4aW4gaXMgb25seSBuZWVkZWQgdW50aWwgd2UgZnVsbHkgcmVtb3ZlIHRoZVxuLy8gZGVwcmVjYXRlZCB1c2EtYnV0dG9uLWRpc2FibGVkIHN0eWxlLlxuQG1peGluIGRpc2FibGVkZXNxdWUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3ItZ3JheS1saWdodGVyO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcblxuICAmOmhvdmVyLFxuICAmLnVzYS1idXR0b24taG92ZXIsXG4gICY6YWN0aXZlLFxuICAmLnVzYS1idXR0b24tYWN0aXZlLFxuICAmOmZvY3VzLFxuICAmLnVzYS1mb2N1cyB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yLWdyYXktbGlnaHRlcjtcbiAgICBib3JkZXI6IDA7XG4gICAgYm94LXNoYWRvdzogbm9uZTtcbiAgfVxufVxuXG4vKiBzdHlsZWxpbnQtZGlzYWJsZSBzZWxlY3Rvci1uby1xdWFsaWZ5aW5nLXR5cGUgKi9cbi51c2EtYnV0dG9uLFxuLnVzYS1idXR0b24tcHJpbWFyeSxcbi51c2EtYnV0dG9uOnZpc2l0ZWQsXG4udXNhLWJ1dHRvbi1wcmltYXJ5OnZpc2l0ZWQge1xuLy8gcmVtb3ZlIGFsbCBiYXNlIGVsZW1lbnQgc3R5bGluZ1xuLy8gYnV0dG9uLFxuLy8gW3R5cGU9YnV0dG9uXSxcbi8vIFt0eXBlPXN1Ym1pdF0sXG4vLyBbdHlwZT1yZXNldF0sXG4vLyBbdHlwZT1pbWFnZV1cbiAgQGluY2x1ZGUgZm9udC1zbW9vdGhpbmc7XG4gIEBpbmNsdWRlIG1hcmdpbigwLjVlbSAwLjVlbSAwLjVlbSBudWxsKTtcbiAgYXBwZWFyYW5jZTogbm9uZTtcbiAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yLXByaW1hcnk7XG4gIGJvcmRlcjogMDtcbiAgYm9yZGVyLXJhZGl1czogJGJ1dHRvbi1ib3JkZXItcmFkaXVzO1xuICBjb2xvcjogJGNvbG9yLXdoaXRlO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgZm9udC1mYW1pbHk6ICRmb250LXNhbnM7XG4gIGZvbnQtc2l6ZTogJGJhc2UtZm9udC1zaXplO1xuICBmb250LXdlaWdodDogJGZvbnQtYm9sZDtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIHBhZGRpbmc6IDFyZW0gMnJlbTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIHdpZHRoOiAxMDAlO1xuXG4gIEBpbmNsdWRlIG1lZGlhKCRzbWFsbC1zY3JlZW4pIHtcbiAgICB3aWR0aDogYXV0bztcbiAgfVxuXG4gICY6aG92ZXIsXG4gICYudXNhLWJ1dHRvbi1ob3ZlciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yLXByaW1hcnktZGFya2VyO1xuICAgIGJvcmRlci1ib3R0b206IDA7XG4gICAgY29sb3I6ICRjb2xvci13aGl0ZTtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIH1cblxuICAmOmFjdGl2ZSxcbiAgJi51c2EtYnV0dG9uLWFjdGl2ZSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yLXByaW1hcnktZGFya2VzdDtcbiAgfVxuXG4gICYudXNhLWJ1dHRvbi1wcmltYXJ5LWFsdCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yLXByaW1hcnktYWx0O1xuICAgIGNvbG9yOiAkY29sb3ItYmFzZTtcblxuICAgICY6aG92ZXIsXG4gICAgJi51c2EtYnV0dG9uLWhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvci1wcmltYXJ5LWFsdC1kYXJrO1xuICAgIH1cblxuICAgICY6YWN0aXZlLFxuICAgICYudXNhLWJ1dHRvbi1hY3RpdmUge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yLXByaW1hcnktYWx0LWRhcmtlc3Q7XG4gICAgICBjb2xvcjogJGNvbG9yLXdoaXRlO1xuICAgIH1cbiAgfVxuXG4gICYudXNhLWJ1dHRvbi1zZWNvbmRhcnkge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvci13aGl0ZTtcbiAgICBib3gtc2hhZG93OiAkYnV0dG9uLXN0cm9rZSAkY29sb3ItcHJpbWFyeTtcbiAgICBjb2xvcjogJGNvbG9yLXByaW1hcnk7XG5cbiAgICAmOmhvdmVyLFxuICAgICYudXNhLWJ1dHRvbi1ob3ZlciB7XG4gICAgICBib3gtc2hhZG93OiAkYnV0dG9uLXN0cm9rZSAkY29sb3ItcHJpbWFyeS1kYXJrZXI7XG4gICAgICBjb2xvcjogJGNvbG9yLXByaW1hcnktZGFya2VyO1xuICAgIH1cblxuICAgICY6YWN0aXZlLFxuICAgICYudXNhLWJ1dHRvbi1hY3RpdmUge1xuICAgICAgYm94LXNoYWRvdzogJGJ1dHRvbi1zdHJva2UgJGNvbG9yLXByaW1hcnktZGFya2VzdDtcbiAgICAgIGNvbG9yOiAkY29sb3ItcHJpbWFyeS1kYXJrZXN0O1xuICAgIH1cbiAgfVxuXG4gICYudXNhLWJ1dHRvbi1zZWNvbmRhcnktaW52ZXJzZSxcbiAgJi51c2EtYnV0dG9uLW91dGxpbmUtaW52ZXJzZSB7ICAgIC8vIE91dGxpbmUgaW52ZXJzZSB0byBiZSBkZXByZWNhdGVkIGluIDIuMFxuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgIGJveC1zaGFkb3c6ICRidXR0b24tc3Ryb2tlICRjb2xvci13aGl0ZTtcbiAgICBjb2xvcjogJGNvbG9yLXdoaXRlO1xuXG4gICAgJjpob3ZlcixcbiAgICAmLnVzYS1idXR0b24taG92ZXIge1xuICAgICAgYm94LXNoYWRvdzogJGJ1dHRvbi1zdHJva2UgJGNvbG9yLWdyYXktbGlnaHRlcjtcbiAgICAgIGNvbG9yOiAkY29sb3ItZ3JheS1saWdodGVyO1xuICAgIH1cblxuICAgICY6YWN0aXZlLFxuICAgICYudXNhLWJ1dHRvbi1hY3RpdmUge1xuICAgICAgYm94LXNoYWRvdzogJGJ1dHRvbi1zdHJva2UgJGNvbG9yLWdyYXktbGlnaHQ7XG4gICAgICBjb2xvcjogJGNvbG9yLWdyYXktbGlnaHRlcjtcbiAgICB9XG4gIH1cblxuICAmLnVzYS1idXR0b24tZ3JheSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yLWdyYXk7XG5cbiAgICAmOmhvdmVyLFxuICAgICYudXNhLWJ1dHRvbi1ob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3ItZ3JheS1kYXJrO1xuICAgIH1cblxuICAgICY6YWN0aXZlLFxuICAgICYudXNhLWJ1dHRvbi1hY3RpdmUge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yLWJhc2U7XG4gICAgfVxuICB9XG5cbiAgJi51c2EtYnV0dG9uLXJlZCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yLXNlY29uZGFyeTtcblxuICAgICY6aG92ZXIsXG4gICAgJi51c2EtYnV0dG9uLWhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvci1zZWNvbmRhcnktZGFyaztcbiAgICB9XG5cbiAgICAmOmFjdGl2ZSxcbiAgICAmLnVzYS1idXR0b24tYWN0aXZlIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvci1zZWNvbmRhcnktZGFya2VzdDtcbiAgICB9XG4gIH1cblxuICAmLnVzYS1idXR0b24tYmlnIHtcbiAgICBmb250LXNpemU6IDEuOXJlbTtcbiAgICBwYWRkaW5nOiAxLjVyZW0gM3JlbTtcbiAgfVxuXG4gICY6ZGlzYWJsZWQge1xuICAgIEBpbmNsdWRlIGRpc2FibGVkZXNxdWU7XG4gIH1cbn1cbi8qIHN0eWxlbGludC1kaXNhYmxlICovXG5cbi51c2EtYnV0dG9uLWRpc2FibGVkICAvLyBEZXByZWNhdGVkXG57XG4gIEBpbmNsdWRlIGRpc2FibGVkZXNxdWVcbn1cblxuLnVzYS1idXR0b24tc2Vjb25kYXJ5LWRpc2FibGVkLCAgICAgICAgICAvLyBEZXByZWNhdGVkXG4udXNhLWJ1dHRvbi1zZWNvbmRhcnktaW52ZXJzZS1kaXNhYmxlZCwgIC8vIERlcHJlY2F0ZWRcbi51c2EtYnV0dG9uLXNlY29uZGFyeTpkaXNhYmxlZCxcbi51c2EtYnV0dG9uLXNlY29uZGFyeS1pbnZlcnNlOmRpc2FibGVkLFxuLnVzYS1idXR0b24tb3V0bGluZS1pbnZlcnNlOmRpc2FibGVkIHsgICAvLyBPdXRsaW5lIGludmVyc2UgdG8gYmUgZGVwcmVjYXRlZCBpbiAyLjBcbiAgYm94LXNoYWRvdzogJGJ1dHRvbi1zdHJva2UgJGNvbG9yLWdyYXktbGlnaHRlcjtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIGNvbG9yOiAkY29sb3ItZ3JheS1saWdodGVyO1xuXG4gICY6aG92ZXIsXG4gICYudXNhLWJ1dHRvbi1ob3ZlcixcbiAgJjphY3RpdmUsXG4gICYudXNhLWJ1dHRvbi1hY3RpdmUsXG4gICY6Zm9jdXMsXG4gICYudXNhLWZvY3VzIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3Itd2hpdGU7XG4gICAgYm9yZGVyOiAwO1xuICB9XG59XG5cbmh0bWwgLnVzYS1idXR0b24tc2Vjb25kYXJ5LWRpc2FibGVkLCAgICAgICAgICAvLyBEZXByZWNhdGVkXG4udXNhLWJ1dHRvbi1zZWNvbmRhcnk6ZGlzYWJsZWQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3Itd2hpdGU7XG59XG5cbmh0bWwgLnVzYS1idXR0b24tc2Vjb25kYXJ5LWludmVyc2UtZGlzYWJsZWQsICAvLyBEZXByZWNhdGVkXG4udXNhLWJ1dHRvbi1zZWNvbmRhcnktaW52ZXJzZTpkaXNhYmxlZCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICBjb2xvcjogJGNvbG9yLWdyYXk7XG4gIGJveC1zaGFkb3c6ICRidXR0b24tc3Ryb2tlICRjb2xvci1ncmF5O1xufVxuXG5AbWl4aW4gYnV0dG9uLXVuc3R5bGVkIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGJvcmRlcjogMDtcbiAgYm9yZGVyLXJhZGl1czogMDtcbiAgZm9udC13ZWlnaHQ6ICRmb250LW5vcm1hbDtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwO1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhdXRvO1xuXG4gICY6aG92ZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICB9XG59XG5cbi51c2EtYnV0dG9uLXVuc3R5bGVkIHtcbiAgQGluY2x1ZGUgYnV0dG9uLXVuc3R5bGVkO1xufVxuIiwiLy8gVmFyaWFibGVzXG5cbiRhY2NvcmRpb24tYm9yZGVyOiAzcHggc29saWQgJGNvbG9yLWdyYXktbGlnaHRlc3Q7XG5cbi8vIEFjY29yZGlvbiBTdHlsZXNcblxuJGljb24tc2l6ZTogJHNwYWNpbmctbWQtc21hbGw7XG4kaC1wYWRkaW5nOiAkc3BhY2luZy1tZWRpdW07XG4kdi1wYWRkaW5nOiAkc3BhY2luZy1tZC1zbWFsbDtcblxuQG1peGluIGFjY29yZGlvbi1saXN0LXN0eWxlcyB7XG4gIEBpbmNsdWRlIHVuc3R5bGVkLWxpc3Q7XG4gIGNvbG9yOiAkY29sb3ItYmFzZTtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwO1xuICB3aWR0aDogMTAwJTtcbn1cblxuQG1peGluIGFjY29yZGlvbi1saXN0LWl0ZW0tc3R5bGVzIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yLWdyYXktbGlnaHRlc3Q7XG4gIGZvbnQtZmFtaWx5OiAkZm9udC1zYW5zO1xuICBsaXN0LXN0eWxlOiBub25lO1xuICBtYXJnaW4tYm90dG9tOiAkc3BhY2luZy14LXNtYWxsO1xuICB3aWR0aDogMTAwJTtcbn1cblxuLy8gc2Nzcy1saW50OmRpc2FibGUgUHJvcGVydHlDb3VudFxuQG1peGluIGFjY29yZGlvbi1idXR0b24tc3R5bGVzIHtcbiAgQGluY2x1ZGUgYnV0dG9uLXVuc3R5bGVkO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3ItZ3JheS1saWdodGVzdDtcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCcjeyRpbWFnZS1wYXRofS9taW51cy5wbmcnKTtcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCcjeyRpbWFnZS1wYXRofS9taW51cy5zdmcnKTtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogcmlnaHQgJGgtcGFkZGluZyBjZW50ZXI7XG4gIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gIGJhY2tncm91bmQtc2l6ZTogJGljb24tc2l6ZTtcbiAgY29sb3I6ICRjb2xvci1iYXNlO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgZm9udC1mYW1pbHk6ICRmb250LXNhbnM7XG4gIGZvbnQtd2VpZ2h0OiAkZm9udC1ib2xkO1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6ICR2LXBhZGRpbmcgKCRoLXBhZGRpbmcgKiAyICsgJGljb24tc2l6ZSkgJHYtcGFkZGluZyAkaC1wYWRkaW5nO1xuICB3aWR0aDogMTAwJTtcblxuICAmOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3ItZ3JheS1saWdodGVyO1xuICAgIGNvbG9yOiAkY29sb3ItYmFzZTtcbiAgfVxuXG4gIGgxLFxuICBoMixcbiAgaDMsXG4gIGg0LFxuICBoNSxcbiAgaDYge1xuICAgIG1hcmdpbjogMDtcbiAgfVxufVxuLy8gc2Nzcy1saW50OmVuYWJsZSBQcm9wZXJ0eUNvdW50XG5cbkBtaXhpbiBhY2NvcmRpb24tYnV0dG9uLXVub3BlbmVkLXN0eWxlcyB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnI3skaW1hZ2UtcGF0aH0vcGx1cy5wbmcnKTtcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCcjeyRpbWFnZS1wYXRofS9wbHVzLnN2ZycpO1xuICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICBiYWNrZ3JvdW5kLXNpemU6ICRpY29uLXNpemU7XG59XG5cbkBtaXhpbiBhY2NvcmRpb24tbmVzdGVkLWxpc3Qge1xuICA+IHVsIGxpIHVsIHtcbiAgICBsaXN0LXN0eWxlOiBkaXNjO1xuICAgID4gbGkgPiB1bCB7XG4gICAgICBsaXN0LXN0eWxlOiBjaXJjbGU7XG4gICAgICA+IGxpID4gdWwge1xuICAgICAgICBsaXN0LXN0eWxlOiBzcXVhcmU7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi51c2EtYWNjb3JkaW9uLFxuLnVzYS1hY2NvcmRpb24tYm9yZGVyZWQge1xuICBAaW5jbHVkZSBhY2NvcmRpb24tbGlzdC1zdHlsZXM7XG4gIEBpbmNsdWRlIGFjY29yZGlvbi1uZXN0ZWQtbGlzdDtcblxuICArIC51c2EtYWNjb3JkaW9uLFxuICArIC51c2EtYWNjb3JkaW9uLWJvcmRlcmVkIHtcbiAgICBtYXJnaW4tdG9wOiAkc3BhY2luZy1zbWFsbDtcbiAgfVxuXG4gIC8vIFRPRE8gZGVwcmVjYXRlZCBydWxlc2V0IGJhc2VkIG9uIG9sZCBhY2NvcmRpb24uXG4gID4gdWwge1xuICAgIEBpbmNsdWRlIGFjY29yZGlvbi1saXN0LXN0eWxlcztcblxuICAgIC8vIFRPRE8gZGVwcmVjYXRlZCBydWxlc2V0IGJhc2VkIG9uIG9sZCBhY2NvcmRpb24uXG4gICAgPiBsaSB7XG4gICAgICBAaW5jbHVkZSBhY2NvcmRpb24tbGlzdC1pdGVtLXN0eWxlcztcbiAgICB9XG5cbiAgICAvLyBUT0RPIGRlcHJlY2F0ZWQgcnVsZXNldCBiYXNlZCBvbiBvbGQgYWNjb3JkaW9uLlxuICAgIGJ1dHRvbiB7XG4gICAgICBAaW5jbHVkZSBhY2NvcmRpb24tYnV0dG9uLXN0eWxlcztcbiAgICB9XG5cbiAgICAvLyBUT0RPIGRlcHJlY2F0ZWQgcnVsZXNldCBiYXNlZCBvbiBvbGQgYWNjb3JkaW9uLlxuICAgIFthcmlhLWV4cGFuZGVkPWZhbHNlXSB7XG4gICAgICBAaW5jbHVkZSBhY2NvcmRpb24tYnV0dG9uLXVub3BlbmVkLXN0eWxlcztcbiAgICB9XG4gIH1cblxuICA+IGxpIHtcbiAgICBAaW5jbHVkZSBhY2NvcmRpb24tbGlzdC1pdGVtLXN0eWxlcztcbiAgfVxuXG59XG5cbi51c2EtYWNjb3JkaW9uLWJvcmRlcmVkIHtcbiAgLnVzYS1hY2NvcmRpb24tY29udGVudCB7XG4gICAgYm9yZGVyLWJvdHRvbTogJGFjY29yZGlvbi1ib3JkZXI7XG4gICAgYm9yZGVyLWxlZnQ6ICRhY2NvcmRpb24tYm9yZGVyO1xuICAgIGJvcmRlci1yaWdodDogJGFjY29yZGlvbi1ib3JkZXI7XG4gIH1cbn1cblxuLnVzYS1hY2NvcmRpb24tY29udGVudCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICRjb2xvci13aGl0ZTtcbiAgb3ZlcmZsb3c6IGF1dG87XG4gIHBhZGRpbmc6ICRzcGFjaW5nLW1kLXNtYWxsICRzcGFjaW5nLW1lZGl1bTtcblxuICA+ICo6Zmlyc3QtY2hpbGQge1xuICAgIG1hcmdpbi10b3A6IDA7XG4gIH1cblxuICA+ICo6bGFzdC1jaGlsZCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgfVxuXG4gICY6bm90KFthcmlhLWhpZGRlbl0pIHtcbiAgICBAaW5jbHVkZSBzci1vbmx5KCk7XG4gIH1cblxuICBAaW5jbHVkZSBhY2Nlc3NpYmx5LWhpZGRlbigpO1xufVxuXG4udXNhLWFjY29yZGlvbi1idXR0b24ge1xuICBAaW5jbHVkZSBhY2NvcmRpb24tYnV0dG9uLXN0eWxlcztcbn1cblxuLnVzYS1hY2NvcmRpb24tYnV0dG9uW2FyaWEtZXhwYW5kZWQ9ZmFsc2VdIHtcbiAgQGluY2x1ZGUgYWNjb3JkaW9uLWJ1dHRvbi11bm9wZW5lZC1zdHlsZXM7XG59XG4iLCIudXNhLWJhbm5lciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICRjb2xvci1ncmF5LWxpZ2h0ZXN0O1xuICBwYWRkaW5nLWJvdHRvbTogc2l6ZSg3cHgpO1xuXG4gIEBpbmNsdWRlIG1lZGlhKCRzbWFsbC1zY3JlZW4pIHtcbiAgICBmb250LXNpemU6ICRoNi1mb250LXNpemU7XG4gICAgcGFkZGluZy1ib3R0b206IDA7XG4gIH1cbn1cblxuLnVzYS1iYW5uZXItY29udGVudCB7XG4gIEBpbmNsdWRlIHBhZGRpbmcobnVsbCAkc2l0ZS1tYXJnaW5zLW1vYmlsZSAzcHggJHNpdGUtbWFyZ2lucy1tb2JpbGUpO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgZm9udC1zaXplOiAkaDUtZm9udC1zaXplO1xuICBwYWRkaW5nLXRvcDogc2l6ZSgyMHB4KTtcbiAgd2lkdGg6IDEwMCU7XG5cbiAgQGluY2x1ZGUgbWVkaWEoJG1lZGl1bS1zY3JlZW4pIHtcbiAgICBwYWRkaW5nLWJvdHRvbTogc2l6ZSgyM3B4KTtcbiAgICBwYWRkaW5nLXRvcDogc2l6ZSg0MHB4KTtcbiAgfVxuXG4gIEBpbmNsdWRlIG1lZGlhKCRuYXYtd2lkdGgpIHtcbiAgICBAaW5jbHVkZSBwYWRkaW5nKG51bGwgJHNpdGUtbWFyZ2lucyk7XG4gIH1cblxuICBwIHtcbiAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgIG1hcmdpbi10b3A6IHNpemUoMTBweCk7XG5cbiAgICAgIEBpbmNsdWRlIG1lZGlhKCRtZWRpdW0tc2NyZWVuKSB7XG4gICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi51c2EtYmFubmVyLWlubmVyIHtcbiAgQGluY2x1ZGUgb3V0ZXItY29udGFpbmVyKCk7XG4gIEBpbmNsdWRlIHBhZGRpbmcobnVsbCAkc2l0ZS1tYXJnaW5zLW1vYmlsZSk7XG4gIG1heC13aWR0aDogJHNpdGUtbWF4LXdpZHRoO1xuXG4gIEBpbmNsdWRlIG1lZGlhKCRuYXYtd2lkdGgpIHtcbiAgICBAaW5jbHVkZSBwYWRkaW5nKG51bGwgJHNpdGUtbWFyZ2lucyk7XG4gIH1cbn1cblxuLnVzYS1iYW5uZXItaGVhZGVyIHtcbiAgQGluY2x1ZGUgcGFkZGluZyhzaXplKDUuNXB4KSBudWxsKTtcbiAgZm9udC1zaXplOiBzaXplKDEycHgpO1xuICBmb250LXdlaWdodDogJGZvbnQtbm9ybWFsO1xuXG4gIEBpbmNsdWRlIG1lZGlhKCRzbWFsbC1zY3JlZW4pIHtcbiAgICBAaW5jbHVkZSBwYWRkaW5nKDAgbnVsbCk7XG4gIH1cblxuICBwIHtcbiAgICBAaW5jbHVkZSBtYXJnaW4oMCBudWxsKTtcbiAgICBkaXNwbGF5OiBpbmxpbmU7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuXG4gICAgQGluY2x1ZGUgbWVkaWEoJHNtYWxsLXNjcmVlbikge1xuICAgICAgQGluY2x1ZGUgbWFyZ2luKDJweCBudWxsKTtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICB9XG4gIH1cblxuICBpbWcge1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIG1hcmdpbi1yaWdodDogc2l6ZSgxMHB4KTtcbiAgICBtYXJnaW4tdG9wOiBzaXplKDEwcHgpO1xuICAgIHdpZHRoOiBzaXplKDI0cHgpO1xuXG4gICAgQGluY2x1ZGUgbWVkaWEoJHNtYWxsLXNjcmVlbikge1xuICAgICAgbWFyZ2luLXJpZ2h0OiBzaXplKDdweCk7XG4gICAgICB3aWR0aDogc2l6ZSgyMHB4KTtcbiAgICB9XG4gIH1cbn1cblxuLnVzYS1iYW5uZXItaGVhZGVyLWV4cGFuZGVkIHtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRjb2xvci1ncmF5LWxpZ2h0O1xuICBkaXNwbGF5OiBmbGV4O1xuICBmb250LXNpemU6ICRoNS1mb250LXNpemU7XG4gIG1pbi1oZWlnaHQ6IHNpemUoNTZweCk7XG4gIHBhZGRpbmctcmlnaHQ6IHNpemUoMzBweCk7XG5cbiAgQGluY2x1ZGUgbWVkaWEoJHNtYWxsLXNjcmVlbikge1xuICAgIGJvcmRlci1ib3R0b206IG5vbmU7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgZm9udC1zaXplOiBzaXplKDEycHgpO1xuICAgIGZvbnQtd2VpZ2h0OiAkZm9udC1ub3JtYWw7XG4gICAgbWluLWhlaWdodDogMDtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICB9XG5cbiAgPiAudXNhLWJhbm5lci1pbm5lciB7XG4gICAgbWFyZ2luLWxlZnQ6IDA7XG5cbiAgICBAaW5jbHVkZSBtZWRpYSgkc21hbGwtc2NyZWVuKSB7XG4gICAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICB9XG4gIH1cblxuICBpbWcge1xuICAgIG1hcmdpbi1yaWdodDogc2l6ZSgyNHB4KTtcblxuICAgIEBpbmNsdWRlIG1lZGlhKCRzbWFsbC1zY3JlZW4pIHtcbiAgICAgIG1hcmdpbi1yaWdodDogc2l6ZSg3cHgpO1xuICAgIH1cbiAgfVxuXG4gIHAge1xuICAgIGxpbmUtaGVpZ2h0OiAkaGVhZGluZy1saW5lLWhlaWdodDtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuXG4gICAgQGluY2x1ZGUgbWVkaWEoJHNtYWxsLXNjcmVlbikge1xuICAgICAgbGluZS1oZWlnaHQ6ICRiYXNlLWxpbmUtaGVpZ2h0O1xuICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICB9XG4gIH1cbn1cblxuLnVzYS1iYW5uZXItYnV0dG9uIHtcbiAgQGluY2x1ZGUgYnV0dG9uLXVuc3R5bGVkO1xuICBAaW5jbHVkZSBwYWRkaW5nKHNpemUoMTNweCkgbnVsbCBudWxsIHNpemUoNDhweCkpO1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uLXg6IHJpZ2h0O1xuICBjb2xvcjogJGNvbG9yLXByaW1hcnk7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBmb250LXNpemU6IHNpemUoMTJweCk7XG4gIGhlaWdodDogc2l6ZSg0M3B4KTtcbiAgbGVmdDogMDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgdG9wOiAwO1xuICB3aWR0aDogMTAwJTtcblxuICBAaW5jbHVkZSBtZWRpYSgkc21hbGwtc2NyZWVuKSB7XG4gICAgQGluY2x1ZGUgcGFkZGluZygwIG51bGwgbnVsbCAwKTtcbiAgICAvKiBzdHlsZWxpbnQtZGlzYWJsZSBkZWNsYXJhdGlvbi1ibG9jay1uby1pZ25vcmVkLXByb3BlcnRpZXMgKi9cbiAgICBkaXNwbGF5OiBpbmxpbmU7XG4gICAgaGVpZ2h0OiBpbml0aWFsO1xuICAgIG1hcmdpbi1sZWZ0OiAzcHg7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgd2lkdGg6IGluaXRpYWw7XG4gICAgLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuICB9XG5cbiAgJjpob3ZlciB7XG4gICAgY29sb3I6ICRjb2xvci1wcmltYXJ5LWRhcmtlcjtcbiAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgfVxuXG4gICZbYXJpYS1leHBhbmRlZD1mYWxzZV0ge1xuICAgIEBpbmNsdWRlIGRpc3BsYXktaWNvbihhbmdsZS1hcnJvdy1kb3duLXByaW1hcnksIGFmdGVyLCBzaXplKDEwcHgpLCAwLCBob3Zlcik7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogbm9uZTtcblxuICAgICY6OmFmdGVyIHtcbiAgICAgIGJhY2tncm91bmQtcG9zaXRpb24teTogMXB4O1xuICAgIH1cbiAgfVxuXG4gICZbYXJpYS1leHBhbmRlZD10cnVlXSB7XG4gICAgQGluY2x1ZGUgZGlzcGxheS1pY29uKGNsb3NlLCBhZnRlciwgc2l6ZSgxM3B4KSwgMCwgbm8taG92ZXIpO1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IG5vbmU7XG4gICAgaGVpZ2h0OiBzaXplKDU2cHgpO1xuXG4gICAgQGluY2x1ZGUgbWVkaWEoJHNtYWxsLXNjcmVlbikge1xuICAgICAgQGluY2x1ZGUgZGlzcGxheS1pY29uKGFuZ2xlLWFycm93LXVwLXByaW1hcnksIGFmdGVyLCBzaXplKDEwcHgpLCAwLCBob3Zlcik7XG4gICAgICBoZWlnaHQ6IGluaXRpYWw7XG4gICAgICBwYWRkaW5nOiAwO1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAmOjphZnRlciB7XG4gICAgICAgIGJhY2tncm91bmQtcG9zaXRpb24teTogMXB4O1xuICAgICAgfVxuICAgIH1cblxuICAgICY6OmFmdGVyIHtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHJpZ2h0OiBzaXplKDE1cHgpO1xuICAgICAgdG9wOiBzaXplKDIxLjVweCk7XG5cbiAgICAgIEBpbmNsdWRlIG1lZGlhKCRzbWFsbC1zY3JlZW4pIHtcbiAgICAgICAgcG9zaXRpb246IHN0YXRpYztcbiAgICAgIH1cbiAgICB9XG5cbiAgICAudXNhLWJhbm5lci1idXR0b24tdGV4dCB7XG4gICAgICBkaXNwbGF5OiBub25lO1xuXG4gICAgICBAaW5jbHVkZSBtZWRpYSgkc21hbGwtc2NyZWVuKSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLnVzYS1iYW5uZXItaWNvbiB7XG4gIHdpZHRoOiBzaXplKDM4cHgpO1xufVxuIiwiLnVzYS1idXR0b24sXG4udXNhLWJ1dHRvbi1wcmltYXJ5LFxuLnVzYS1idXR0b246dmlzaXRlZCxcbi51c2EtYnV0dG9uLXByaW1hcnk6dmlzaXRlZCB7XG4gIHBhZGRpbmc6IHNpemUoMTBweCkgc2l6ZSgyMHB4KTtcbn1cblxuLnVzYS1iYW5uZXIge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbi51c2EtYmFubmVyLWlubmVyIHtcbiAgQGluY2x1ZGUgbWVkaWEoJG1lZGl1bS1zY3JlZW4pIHtcbiAgICBwYWRkaW5nOiAwIGNhbGMoMiUgKyA4cHgpO1xuICAgIHdpZHRoOiA5NiU7XG4gIH1cbiAgQGluY2x1ZGUgbWVkaWEoJGxhcmdlLXNjcmVlbikge1xuICAgIG1hcmdpbjogMCBhdXRvO1xuICAgIHBhZGRpbmc6IDAgc2l6ZSg4cHgpO1xuICAgIHdpZHRoOiA5NjBweDtcbiAgfVxufVxuXG4udXNhLWJhbm5lci1jb250ZW50IHtcbiAgQGluY2x1ZGUgbWVkaWEoJG1lZGl1bS1zY3JlZW4pIHtcbiAgICBwYWRkaW5nLWxlZnQ6IGNhbGMoMiUgKyA4cHgpO1xuICAgIHBhZGRpbmctcmlnaHQ6IGNhbGMoMiUgKyA4cHgpO1xuICAgIHdpZHRoOiA5NiU7XG4gIH1cbiAgQGluY2x1ZGUgbWVkaWEoJGxhcmdlLXNjcmVlbikge1xuICAgIHBhZGRpbmctbGVmdDogc2l6ZSg4cHgpO1xuICAgIHBhZGRpbmctcmlnaHQ6IHNpemUoOHB4KTtcbiAgICB3aWR0aDogOTYwcHg7XG4gIH1cbn1cblxuLnVzYS1iYW5uZXItaGVhZGVyIHtcbiAgZm9udC1zaXplOiBzaXplKDEwcHgpO1xuICBAaW5jbHVkZSBtZWRpYSgkc21hbGwtc2NyZWVuKSB7XG4gICAgZm9udC1zaXplOiBzaXplKDEycHgpO1xuICAgIEBpbmNsdWRlIHBhZGRpbmcoMCAwIDNweCAwKTtcbiAgfVxuICBpbWcge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIG1hcmdpbi1yaWdodDogc2l6ZSgxMHB4KTtcbiAgICBtYXJnaW4tdG9wOiAwO1xuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgd2lkdGg6IHNpemUoMjRweCk7XG5cbiAgICBAaW5jbHVkZSBtZWRpYSgkc21hbGwtc2NyZWVuKSB7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICBmbG9hdDogbm9uZTtcbiAgICAgIG1hcmdpbi1yaWdodDogc2l6ZSgxMHB4KTtcbiAgICAgIHdpZHRoOiBzaXplKDIwcHgpO1xuICAgIH1cbiAgfVxuICBwIHtcbiAgICBAaW5jbHVkZSBwb3NpdGlvbigxcHggbnVsbCBudWxsIC0ycHgpO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjE1O1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBAaW5jbHVkZSBtZWRpYSgkc21hbGwtc2NyZWVuKSB7XG4gICAgICBAaW5jbHVkZSBwb3NpdGlvbihhdXRvIG51bGwgbnVsbCBhdXRvKTtcbiAgICAgIGRpc3BsYXk6IGlubGluZTtcbiAgICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgICAgb3ZlcmZsb3c6IHZpc2libGU7XG4gICAgICBtYXJnaW46IDA7XG4gICAgfVxuICB9XG4gICYtZXhwYW5kZWQge1xuICAgIGltZyB7XG4gICAgICBtYXJnaW4tcmlnaHQ6IHNpemUoMTBweCk7XG4gICAgfVxuICB9XG59XG5cbi51c2EtYWNjb3JkaW9uLWJ1dHRvblthcmlhLWV4cGFuZGVkPWZhbHNlXSxcbi51c2EtYWNjb3JkaW9uLWJ1dHRvblthcmlhLWV4cGFuZGVkPXRydWVdIHtcbiAgYmFja2dyb3VuZC1zaXplOiBzaXplKDE1cHgpO1xuICAmOmFmdGVyIHtcbiAgICBoZWlnaHQ6IHNpemUoMTBweCk7XG4gICAgd2lkdGg6IHNpemUoMTBweCk7XG4gIH1cbiAgQGluY2x1ZGUgbWVkaWEoJHNtYWxsLXNjcmVlbikge1xuICAgIHRvcDogMXB4O1xuICAgIHBhZGRpbmctbGVmdDogNHB4O1xuICB9XG59XG5cbi51c2EtbWVkaWFfYmxvY2sge1xuICAmLWltZyB7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgbWFyZ2luLXJpZ2h0OiAxcmVtO1xuICB9XG4gICYtYm9keSB7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgfVxufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gUHJvdmlkZXMgYSBxdWljayBtZXRob2QgZm9yIHNldHRpbmcgYW4gZWxlbWVudOKAmXMgcG9zaXRpb24uIFVzZSBhIGBudWxsYCB2YWx1ZSB0byDigJxza2lw4oCdIGEgc2lkZS5cbi8vL1xuLy8vIEBwYXJhbSB7UG9zaXRpb259ICRwb3NpdGlvbiBbcmVsYXRpdmVdXG4vLy8gICBBIENTUyBwb3NpdGlvbiB2YWx1ZVxuLy8vXG4vLy8gQHBhcmFtIHtBcmdsaXN0fSAkY29vcmRpbmF0ZXMgW251bGwgbnVsbCBudWxsIG51bGxdXG4vLy8gICBMaXN0IG9mIHZhbHVlcyB0aGF0IGNvcnJlc3BvbmQgdG8gdGhlIDQtdmFsdWUgc3ludGF4IGZvciB0aGUgZWRnZXMgb2YgYSBib3hcbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBAaW5jbHVkZSBwb3NpdGlvbihhYnNvbHV0ZSwgMCBudWxsIG51bGwgMTBlbSk7XG4vLy8gICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIGxlZnQ6IDEwZW07XG4vLy8gICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbi8vLyAgICAgdG9wOiAwO1xuLy8vICAgfVxuLy8vXG4vLy8gQHJlcXVpcmUge2Z1bmN0aW9ufSBpcy1sZW5ndGhcbi8vLyBAcmVxdWlyZSB7ZnVuY3Rpb259IHVucGFja1xuXG5AbWl4aW4gcG9zaXRpb24oJHBvc2l0aW9uOiByZWxhdGl2ZSwgJGNvb3JkaW5hdGVzOiBudWxsIG51bGwgbnVsbCBudWxsKSB7XG4gIEBpZiB0eXBlLW9mKCRwb3NpdGlvbikgPT0gbGlzdCB7XG4gICAgJGNvb3JkaW5hdGVzOiAkcG9zaXRpb247XG4gICAgJHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgfVxuXG4gICRjb29yZGluYXRlczogdW5wYWNrKCRjb29yZGluYXRlcyk7XG5cbiAgJG9mZnNldHM6IChcbiAgICB0b3A6ICAgIG50aCgkY29vcmRpbmF0ZXMsIDEpLFxuICAgIHJpZ2h0OiAgbnRoKCRjb29yZGluYXRlcywgMiksXG4gICAgYm90dG9tOiBudGgoJGNvb3JkaW5hdGVzLCAzKSxcbiAgICBsZWZ0OiAgIG50aCgkY29vcmRpbmF0ZXMsIDQpXG4gICk7XG5cbiAgcG9zaXRpb246ICRwb3NpdGlvbjtcblxuICBAZWFjaCAkb2Zmc2V0LCAkdmFsdWUgaW4gJG9mZnNldHMge1xuICAgIEBpZiBpcy1sZW5ndGgoJHZhbHVlKSB7XG4gICAgICAjeyRvZmZzZXR9OiAkdmFsdWU7XG4gICAgfVxuICB9XG59XG4iXX0= */ +/*! uswds @version */.uswds html,html.uswds{font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}.uswds body,body.uswds{margin:0}.uswds article,.uswds aside,.uswds details,.uswds figcaption,.uswds figure,.uswds footer,.uswds header,.uswds hgroup,.uswds main,.uswds menu,.uswds nav,.uswds section,.uswds summary,article.uswds,aside.uswds,details.uswds,figcaption.uswds,figure.uswds,footer.uswds,header.uswds,hgroup.uswds,main.uswds,menu.uswds,nav.uswds,section.uswds,summary.uswds{display:block}.uswds audio,.uswds canvas,.uswds progress,.uswds video,audio.uswds,canvas.uswds,progress.uswds,video.uswds{display:inline-block;vertical-align:baseline}.uswds audio:not([controls]),audio:not([controls]).uswds{display:none;height:0}.uswds [hidden],.uswds template,[hidden].uswds,template.uswds{display:none}.uswds a,a.uswds{background-color:transparent}.uswds a:active,.uswds a:hover,a:active.uswds,a:hover.uswds{outline:0}.uswds abbr[title],abbr[title].uswds{border-bottom:1px dotted}.uswds b,.uswds strong,b.uswds,strong.uswds{font-weight:700}.uswds dfn,dfn.uswds{font-style:italic}h1{font-size:2em;margin:.67em 0}.uswds mark,mark.uswds{background:#ff0;color:#000}.uswds small,small.uswds{font-size:80%}.uswds sub,.uswds sup,sub.uswds,sup.uswds{font-size:75%;line-height:0;position:relative;vertical-align:baseline}.uswds sup,sup.uswds{top:-.5em}.uswds sub,sub.uswds{bottom:-.25em}.uswds img,img.uswds{border:0}.uswds svg:not(:root),svg:not(:root).uswds{overflow:hidden}.uswds figure,figure.uswds{margin:1em 40px}.uswds hr,hr.uswds{box-sizing:content-box;height:0}.uswds pre,pre.uswds{overflow:auto}.uswds code,.uswds kbd,.uswds pre,.uswds samp,code.uswds,kbd.uswds,pre.uswds,samp.uswds{font-family:monospace,monospace;font-size:1em}.uswds button,.uswds input,.uswds optgroup,.uswds select,.uswds textarea,button.uswds,input.uswds,optgroup.uswds,select.uswds,textarea.uswds{color:inherit;font:inherit;margin:0}.uswds button,button.uswds{overflow:visible}.uswds button,.uswds select,button.uswds,select.uswds{text-transform:none}.uswds button,.uswds input[type=reset],.uswds input[type=submit],button.uswds,html input[type=button],input[type=reset].uswds,input[type=submit].uswds{-webkit-appearance:button;cursor:pointer}.uswds button[disabled],button[disabled].uswds,html input[disabled]{cursor:default}.uswds button::-moz-focus-inner,.uswds input::-moz-focus-inner,button::-moz-focus-inner.uswds,input::-moz-focus-inner.uswds{border:0;padding:0}.uswds input,input.uswds{line-height:normal}.uswds input[type=checkbox],.uswds input[type=radio],input[type=checkbox].uswds,input[type=radio].uswds{box-sizing:border-box;padding:0}.uswds input[type=number]::-webkit-inner-spin-button,.uswds input[type=number]::-webkit-outer-spin-button,input[type=number]::-webkit-inner-spin-button.uswds,input[type=number]::-webkit-outer-spin-button.uswds{height:auto}.uswds input[type=search],input[type=search].uswds{-webkit-appearance:textfield;box-sizing:content-box}.uswds input[type=search]::-webkit-search-cancel-button,.uswds input[type=search]::-webkit-search-decoration,input[type=search]::-webkit-search-cancel-button.uswds,input[type=search]::-webkit-search-decoration.uswds{-webkit-appearance:none}.uswds fieldset,fieldset.uswds{border:1px solid silver;margin:0 2px;padding:.35em .625em .75em}.uswds legend,legend.uswds{border:0;padding:0}.uswds textarea,textarea.uswds{overflow:auto}.uswds optgroup,optgroup.uswds{font-weight:700}.uswds table,table.uswds{border-collapse:collapse;border-spacing:0}.uswds td,.uswds th,td.uswds,th.uswds{padding:0}@font-face{font-family:Source Sans Pro;font-style:normal;font-weight:300;src:url(../fonts/sourcesanspro-light-webfont.eot?#iefix) format("embedded-opentype"),url(../fonts/sourcesanspro-light-webfont.woff2) format("woff2"),url(../fonts/sourcesanspro-light-webfont.woff) format("woff"),url(../fonts/sourcesanspro-light-webfont.ttf) format("truetype")}@font-face{font-family:Source Sans Pro;font-style:normal;font-weight:400;src:url(../fonts/sourcesanspro-regular-webfont.eot?#iefix) format("embedded-opentype"),url(../fonts/sourcesanspro-regular-webfont.woff2) format("woff2"),url(../fonts/sourcesanspro-regular-webfont.woff) format("woff"),url(../fonts/sourcesanspro-regular-webfont.ttf) format("truetype")}@font-face{font-family:Source Sans Pro;font-style:italic;font-weight:400;src:url(../fonts/sourcesanspro-italic-webfont.eot?#iefix) format("embedded-opentype"),url(../fonts/sourcesanspro-italic-webfont.woff2) format("woff2"),url(../fonts/sourcesanspro-italic-webfont.woff) format("woff"),url(../fonts/sourcesanspro-italic-webfont.ttf) format("truetype")}@font-face{font-family:Source Sans Pro;font-style:normal;font-weight:700;src:url(../fonts/sourcesanspro-bold-webfont.eot?#iefix) format("embedded-opentype"),url(../fonts/sourcesanspro-bold-webfont.woff2) format("woff2"),url(../fonts/sourcesanspro-bold-webfont.woff) format("woff"),url(../fonts/sourcesanspro-bold-webfont.ttf) format("truetype")}@font-face{font-family:Merriweather;font-style:normal;font-weight:300;src:url(../fonts/merriweather-light-webfont.eot?#iefix) format("embedded-opentype"),url(../fonts/merriweather-light-webfont.woff2) format("woff2"),url(../fonts/merriweather-light-webfont.woff) format("woff"),url(../fonts/merriweather-light-webfont.ttf) format("truetype")}@font-face{font-family:Merriweather;font-style:normal;font-weight:400;src:url(../fonts/merriweather-regular-webfont.eot?#iefix) format("embedded-opentype"),url(../fonts/merriweather-regular-webfont.woff2) format("woff2"),url(../fonts/merriweather-regular-webfont.woff) format("woff"),url(../fonts/merriweather-regular-webfont.ttf) format("truetype")}@font-face{font-family:Merriweather;font-style:italic;font-weight:400;src:url(../fonts/merriweather-italic-webfont.eot?#iefix) format("embedded-opentype"),url(../fonts/merriweather-italic-webfont.woff2) format("woff2"),url(../fonts/merriweather-italic-webfont.woff) format("woff"),url(../fonts/merriweather-italic-webfont.ttf) format("truetype")}@font-face{font-family:Merriweather;font-style:normal;font-weight:700;src:url(../fonts/merriweather-bold-webfont.eot?#iefix) format("embedded-opentype"),url(../fonts/merriweather-bold-webfont.woff2) format("woff2"),url(../fonts/merriweather-bold-webfont.woff) format("woff"),url(../fonts/merriweather-bold-webfont.ttf) format("truetype")}.usa-grid,.usa-grid-full{max-width:1200px;margin-left:auto;margin-right:auto;max-width:960px}.usa-grid-full:after,.usa-grid:after{clear:both;content:"";display:block}.usa-grid{padding-right:1rem;padding-left:1rem}@media screen and (min-width:801px){.usa-grid{padding-right:1.875rem;padding-left:1.875rem}}.usa-grid-full{padding:0}@media screen and (min-width:801px){.usa-width-one-whole{float:left;display:block;margin-right:4.82916%;width:100%}.usa-width-one-whole:last-child{margin-right:0}.usa-width-one-half{float:left;display:block;margin-right:4.82916%;width:47.58542%}.usa-width-one-half:last-child{margin-right:0}.usa-width-one-third{float:left;display:block;margin-right:4.82916%;width:30.11389%}.usa-width-one-third:last-child{margin-right:0}.usa-width-two-thirds{float:left;display:block;margin-right:4.82916%;width:65.05695%}.usa-width-two-thirds:last-child{margin-right:0}.usa-width-one-fourth{float:left;display:block;margin-right:4.82916%;width:47.58542%}.usa-width-one-fourth:last-child{margin-right:0}.usa-width-one-fourth:nth-child(2n){margin-right:0}.usa-width-three-fourths{float:left;display:block;margin-right:4.82916%;width:100%}.usa-width-three-fourths:last-child{margin-right:0}.usa-width-one-sixth{float:left;display:block;margin-right:4.82916%;width:30.11389%}.usa-width-one-sixth:last-child{margin-right:0}.usa-width-one-sixth:nth-child(3n){margin-right:0}.usa-width-five-sixths{float:left;display:block;margin-right:4.82916%;width:65.05695%}.usa-width-five-sixths:last-child{margin-right:0}.usa-width-one-twelfth{float:left;display:block;margin-right:4.82916%;width:30.11389%}.usa-width-one-twelfth:last-child{margin-right:0}.usa-width-one-twelfth:nth-child(3n){margin-right:0}.usa-width-five-twelfths{float:left;display:block;margin-right:4.82916%;width:30.11389%}.usa-width-five-twelfths:last-child{margin-right:0}.usa-width-seven-twelfths{float:left;display:block;margin-right:4.82916%;width:65.05695%}.usa-width-seven-twelfths:last-child{margin-right:0}}@media screen and (min-width:1025px){.usa-width-one-whole{float:left;display:block;margin-right:2.35765%;width:100%}.usa-width-one-whole:last-child{margin-right:0}.usa-width-one-half{float:left;display:block;margin-right:2.35765%;width:48.82117%}.usa-width-one-half:last-child{margin-right:0}.usa-width-one-third{float:left;display:block;margin-right:2.35765%;width:31.76157%}.usa-width-one-third:last-child{margin-right:0}.usa-width-two-thirds{float:left;display:block;margin-right:2.35765%;width:65.88078%}.usa-width-two-thirds:last-child{margin-right:0}.usa-width-one-fourth{float:left;display:block;margin-right:2.35765%;width:23.23176%}.usa-width-one-fourth:last-child{margin-right:0}.usa-width-one-fourth:nth-child(2n){float:left;display:block;margin-right:2.35765%;width:23.23176%}.usa-width-one-fourth:nth-child(2n):last-child{margin-right:0}.usa-width-one-fourth:nth-child(4n){margin-right:0}.usa-width-three-fourths{float:left;display:block;margin-right:2.35765%;width:74.41059%}.usa-width-three-fourths:last-child{margin-right:0}.usa-width-one-sixth{float:left;display:block;margin-right:2.35765%;width:14.70196%}.usa-width-one-sixth:last-child{margin-right:0}.usa-width-one-sixth:nth-child(3n){float:left;display:block;margin-right:2.35765%;width:14.70196%}.usa-width-one-sixth:nth-child(3n):last-child{margin-right:0}.usa-width-one-sixth:nth-child(6n){margin-right:0}.usa-width-five-sixths{float:left;display:block;margin-right:2.35765%;width:82.94039%}.usa-width-five-sixths:last-child{margin-right:0}.usa-width-one-twelfth{float:left;display:block;margin-right:2.35765%;width:6.17215%}.usa-width-one-twelfth:last-child{margin-right:0}.usa-width-one-twelfth:nth-child(3n){float:left;display:block;margin-right:2.35765%;width:6.17215%}.usa-width-one-twelfth:nth-child(3n):last-child{margin-right:0}.usa-width-one-twelfth:nth-child(12n){margin-right:0}.usa-width-five-twelfths{float:left;display:block;margin-right:2.35765%;width:40.29137%}.usa-width-five-twelfths:last-child{margin-right:0}.usa-width-seven-twelfths{float:left;display:block;margin-right:2.35765%;width:57.35098%}.usa-width-seven-twelfths:last-child{margin-right:0}}.usa-end-row{margin-right:0}.usa-offset-one-twelfth{margin-left:8.5298%}.usa-offset-one-sixth{margin-left:17.05961%}.usa-offset-one-fourth{margin-left:25.58941%}.usa-offset-one-third{margin-left:34.11922%}.usa-offset-five-twelfths{margin-left:42.64902%}.usa-offset-one-half{margin-left:51.17883%}.usa-offset-seven-twelfths{margin-left:59.70863%}.usa-offset-two-thirds{margin-left:68.23843%}.usa-offset-three-fourths{margin-left:76.76824%}.usa-offset-five-sixths{margin-left:85.29804%}.usa-offset-eleven-twelfths{margin-left:93.82785%}.usa-sr-only{position:absolute;left:-999em}.uswds{box-sizing:border-box}.uswds *,.uswds :after,.uswds :before{box-sizing:inherit}.uswds body,body.uswds{background-color:#fff;overflow-x:hidden}.lt-ie9 *{-webkit-filter:none!important;filter:none!important}[hidden]{display:none!important}.usa-focus,.uswds :focus{outline:2px dotted #aeb0b5;outline-offset:3px}.usa-button,.usa-button-primary,.usa-button-primary:visited,.usa-button:visited{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;margin-top:.5em;margin-right:.5em;margin-bottom:.5em;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:#0071bc;border:0;border-radius:5px;color:#fff;cursor:pointer;display:inline-block;font-family:Trebuchet,Tahoma,sans-serif;font-size:1.0625rem;font-weight:700;line-height:1;padding:1rem 2rem;text-align:center;text-decoration:none;width:100%}@media screen and (min-width:481px){.usa-button,.usa-button-primary,.usa-button-primary:visited,.usa-button:visited{width:auto}}.usa-button-primary.usa-button-hover,.usa-button-primary:hover,.usa-button-primary:visited.usa-button-hover,.usa-button-primary:visited:hover,.usa-button.usa-button-hover,.usa-button:hover,.usa-button:visited.usa-button-hover,.usa-button:visited:hover{background-color:#205493;border-bottom:0;color:#fff;text-decoration:none}.usa-button-primary.usa-button-active,.usa-button-primary:active,.usa-button-primary:visited.usa-button-active,.usa-button-primary:visited:active,.usa-button.usa-button-active,.usa-button:active,.usa-button:visited.usa-button-active,.usa-button:visited:active{background-color:#112e51}.usa-button-primary.usa-button-primary-alt,.usa-button-primary:visited.usa-button-primary-alt,.usa-button.usa-button-primary-alt,.usa-button:visited.usa-button-primary-alt{background-color:#02bfe7;color:#212121}.usa-button-primary.usa-button-primary-alt.usa-button-hover,.usa-button-primary.usa-button-primary-alt:hover,.usa-button-primary:visited.usa-button-primary-alt.usa-button-hover,.usa-button-primary:visited.usa-button-primary-alt:hover,.usa-button.usa-button-primary-alt.usa-button-hover,.usa-button.usa-button-primary-alt:hover,.usa-button:visited.usa-button-primary-alt.usa-button-hover,.usa-button:visited.usa-button-primary-alt:hover{background-color:#00a6d2}.usa-button-primary.usa-button-primary-alt.usa-button-active,.usa-button-primary.usa-button-primary-alt:active,.usa-button-primary:visited.usa-button-primary-alt.usa-button-active,.usa-button-primary:visited.usa-button-primary-alt:active,.usa-button.usa-button-primary-alt.usa-button-active,.usa-button.usa-button-primary-alt:active,.usa-button:visited.usa-button-primary-alt.usa-button-active,.usa-button:visited.usa-button-primary-alt:active{background-color:#046b99;color:#fff}.usa-button-primary.usa-button-secondary,.usa-button-primary:visited.usa-button-secondary,.usa-button.usa-button-secondary,.usa-button:visited.usa-button-secondary{background-color:#fff;box-shadow:inset 0 0 0 2px #0071bc;color:#0071bc}.usa-button-primary.usa-button-secondary.usa-button-hover,.usa-button-primary.usa-button-secondary:hover,.usa-button-primary:visited.usa-button-secondary.usa-button-hover,.usa-button-primary:visited.usa-button-secondary:hover,.usa-button.usa-button-secondary.usa-button-hover,.usa-button.usa-button-secondary:hover,.usa-button:visited.usa-button-secondary.usa-button-hover,.usa-button:visited.usa-button-secondary:hover{box-shadow:inset 0 0 0 2px #205493;color:#205493}.usa-button-primary.usa-button-secondary.usa-button-active,.usa-button-primary.usa-button-secondary:active,.usa-button-primary:visited.usa-button-secondary.usa-button-active,.usa-button-primary:visited.usa-button-secondary:active,.usa-button.usa-button-secondary.usa-button-active,.usa-button.usa-button-secondary:active,.usa-button:visited.usa-button-secondary.usa-button-active,.usa-button:visited.usa-button-secondary:active{box-shadow:inset 0 0 0 2px #112e51;color:#112e51}.usa-button-primary.usa-button-outline-inverse,.usa-button-primary.usa-button-secondary-inverse,.usa-button-primary:visited.usa-button-outline-inverse,.usa-button-primary:visited.usa-button-secondary-inverse,.usa-button.usa-button-outline-inverse,.usa-button.usa-button-secondary-inverse,.usa-button:visited.usa-button-outline-inverse,.usa-button:visited.usa-button-secondary-inverse{background:transparent;box-shadow:inset 0 0 0 2px #fff;color:#fff}.usa-button-primary.usa-button-outline-inverse.usa-button-hover,.usa-button-primary.usa-button-outline-inverse:hover,.usa-button-primary.usa-button-secondary-inverse.usa-button-hover,.usa-button-primary.usa-button-secondary-inverse:hover,.usa-button-primary:visited.usa-button-outline-inverse.usa-button-hover,.usa-button-primary:visited.usa-button-outline-inverse:hover,.usa-button-primary:visited.usa-button-secondary-inverse.usa-button-hover,.usa-button-primary:visited.usa-button-secondary-inverse:hover,.usa-button.usa-button-outline-inverse.usa-button-hover,.usa-button.usa-button-outline-inverse:hover,.usa-button.usa-button-secondary-inverse.usa-button-hover,.usa-button.usa-button-secondary-inverse:hover,.usa-button:visited.usa-button-outline-inverse.usa-button-hover,.usa-button:visited.usa-button-outline-inverse:hover,.usa-button:visited.usa-button-secondary-inverse.usa-button-hover,.usa-button:visited.usa-button-secondary-inverse:hover{box-shadow:inset 0 0 0 2px #d6d7d9;color:#d6d7d9}.usa-button-primary.usa-button-outline-inverse.usa-button-active,.usa-button-primary.usa-button-outline-inverse:active,.usa-button-primary.usa-button-secondary-inverse.usa-button-active,.usa-button-primary.usa-button-secondary-inverse:active,.usa-button-primary:visited.usa-button-outline-inverse.usa-button-active,.usa-button-primary:visited.usa-button-outline-inverse:active,.usa-button-primary:visited.usa-button-secondary-inverse.usa-button-active,.usa-button-primary:visited.usa-button-secondary-inverse:active,.usa-button.usa-button-outline-inverse.usa-button-active,.usa-button.usa-button-outline-inverse:active,.usa-button.usa-button-secondary-inverse.usa-button-active,.usa-button.usa-button-secondary-inverse:active,.usa-button:visited.usa-button-outline-inverse.usa-button-active,.usa-button:visited.usa-button-outline-inverse:active,.usa-button:visited.usa-button-secondary-inverse.usa-button-active,.usa-button:visited.usa-button-secondary-inverse:active{box-shadow:inset 0 0 0 2px #aeb0b5;color:#d6d7d9}.usa-button-primary.usa-button-gray,.usa-button-primary:visited.usa-button-gray,.usa-button.usa-button-gray,.usa-button:visited.usa-button-gray{background-color:#5b616b}.usa-button-primary.usa-button-gray.usa-button-hover,.usa-button-primary.usa-button-gray:hover,.usa-button-primary:visited.usa-button-gray.usa-button-hover,.usa-button-primary:visited.usa-button-gray:hover,.usa-button.usa-button-gray.usa-button-hover,.usa-button.usa-button-gray:hover,.usa-button:visited.usa-button-gray.usa-button-hover,.usa-button:visited.usa-button-gray:hover{background-color:#323a45}.usa-button-primary.usa-button-gray.usa-button-active,.usa-button-primary.usa-button-gray:active,.usa-button-primary:visited.usa-button-gray.usa-button-active,.usa-button-primary:visited.usa-button-gray:active,.usa-button.usa-button-gray.usa-button-active,.usa-button.usa-button-gray:active,.usa-button:visited.usa-button-gray.usa-button-active,.usa-button:visited.usa-button-gray:active{background-color:#212121}.usa-button-primary.usa-button-red,.usa-button-primary:visited.usa-button-red,.usa-button.usa-button-red,.usa-button:visited.usa-button-red{background-color:#e31c3d}.usa-button-primary.usa-button-red.usa-button-hover,.usa-button-primary.usa-button-red:hover,.usa-button-primary:visited.usa-button-red.usa-button-hover,.usa-button-primary:visited.usa-button-red:hover,.usa-button.usa-button-red.usa-button-hover,.usa-button.usa-button-red:hover,.usa-button:visited.usa-button-red.usa-button-hover,.usa-button:visited.usa-button-red:hover{background-color:#cd2026}.usa-button-primary.usa-button-red.usa-button-active,.usa-button-primary.usa-button-red:active,.usa-button-primary:visited.usa-button-red.usa-button-active,.usa-button-primary:visited.usa-button-red:active,.usa-button.usa-button-red.usa-button-active,.usa-button.usa-button-red:active,.usa-button:visited.usa-button-red.usa-button-active,.usa-button:visited.usa-button-red:active{background-color:#981b1e}.usa-button-primary.usa-button-big,.usa-button-primary:visited.usa-button-big,.usa-button.usa-button-big,.usa-button:visited.usa-button-big{font-size:1.9rem;padding:1.5rem 3rem}.usa-button-primary:disabled,.usa-button-primary:visited:disabled,.usa-button:disabled,.usa-button:visited:disabled{background-color:#d6d7d9;pointer-events:none}.usa-button-primary:disabled.usa-button-active,.usa-button-primary:disabled.usa-button-hover,.usa-button-primary:disabled.usa-focus,.usa-button-primary:disabled:active,.usa-button-primary:disabled:focus,.usa-button-primary:disabled:hover,.usa-button-primary:visited:disabled.usa-button-active,.usa-button-primary:visited:disabled.usa-button-hover,.usa-button-primary:visited:disabled.usa-focus,.usa-button-primary:visited:disabled:active,.usa-button-primary:visited:disabled:focus,.usa-button-primary:visited:disabled:hover,.usa-button:disabled.usa-button-active,.usa-button:disabled.usa-button-hover,.usa-button:disabled.usa-focus,.usa-button:disabled:active,.usa-button:disabled:focus,.usa-button:disabled:hover,.usa-button:visited:disabled.usa-button-active,.usa-button:visited:disabled.usa-button-hover,.usa-button:visited:disabled.usa-focus,.usa-button:visited:disabled:active,.usa-button:visited:disabled:focus,.usa-button:visited:disabled:hover{background-color:#d6d7d9;border:0;box-shadow:none}.usa-button-disabled{background-color:#d6d7d9;pointer-events:none}.usa-button-disabled.usa-button-active,.usa-button-disabled.usa-button-hover,.usa-button-disabled.usa-focus,.usa-button-disabled:active,.usa-button-disabled:focus,.usa-button-disabled:hover{background-color:#d6d7d9;border:0;box-shadow:none}.usa-button-outline-inverse:disabled,.usa-button-secondary-disabled,.usa-button-secondary-inverse-disabled,.usa-button-secondary-inverse:disabled,.usa-button-secondary:disabled{box-shadow:inset 0 0 0 2px #d6d7d9;pointer-events:none;color:#d6d7d9}.usa-button-outline-inverse:disabled.usa-button-active,.usa-button-outline-inverse:disabled.usa-button-hover,.usa-button-outline-inverse:disabled.usa-focus,.usa-button-outline-inverse:disabled:active,.usa-button-outline-inverse:disabled:focus,.usa-button-outline-inverse:disabled:hover,.usa-button-secondary-disabled.usa-button-active,.usa-button-secondary-disabled.usa-button-hover,.usa-button-secondary-disabled.usa-focus,.usa-button-secondary-disabled:active,.usa-button-secondary-disabled:focus,.usa-button-secondary-disabled:hover,.usa-button-secondary-inverse-disabled.usa-button-active,.usa-button-secondary-inverse-disabled.usa-button-hover,.usa-button-secondary-inverse-disabled.usa-focus,.usa-button-secondary-inverse-disabled:active,.usa-button-secondary-inverse-disabled:focus,.usa-button-secondary-inverse-disabled:hover,.usa-button-secondary-inverse:disabled.usa-button-active,.usa-button-secondary-inverse:disabled.usa-button-hover,.usa-button-secondary-inverse:disabled.usa-focus,.usa-button-secondary-inverse:disabled:active,.usa-button-secondary-inverse:disabled:focus,.usa-button-secondary-inverse:disabled:hover,.usa-button-secondary:disabled.usa-button-active,.usa-button-secondary:disabled.usa-button-hover,.usa-button-secondary:disabled.usa-focus,.usa-button-secondary:disabled:active,.usa-button-secondary:disabled:focus,.usa-button-secondary:disabled:hover{background-color:#fff;border:0}.usa-button-secondary:disabled,html .usa-button-secondary-disabled{background-color:#fff}.usa-button-secondary-inverse:disabled,html .usa-button-secondary-inverse-disabled{background-color:transparent;color:#5b616b;box-shadow:inset 0 0 0 2px #5b616b}.usa-button-unstyled{background-color:transparent;border:0;border-radius:0;font-weight:400;margin:0;padding:0;text-align:left;-webkit-font-smoothing:auto}.usa-button-unstyled:hover{background-color:transparent}.usa-accordion,.usa-accordion-bordered{margin-top:0;margin-bottom:0;list-style-type:none;padding-left:0;color:#212121;margin:0;padding:0;width:100%}.usa-accordion-bordered>li,.usa-accordion>li{margin-bottom:0}.usa-accordion-bordered>ul li ul,.usa-accordion>ul li ul{list-style:disc}.usa-accordion-bordered>ul li ul>li>ul,.usa-accordion>ul li ul>li>ul{list-style:circle}.usa-accordion-bordered>ul li ul>li>ul>li>ul,.usa-accordion>ul li ul>li>ul>li>ul{list-style:square}.usa-accordion+.usa-accordion,.usa-accordion+.usa-accordion-bordered,.usa-accordion-bordered+.usa-accordion,.usa-accordion-bordered+.usa-accordion-bordered{margin-top:1rem}.usa-accordion-bordered>ul,.usa-accordion>ul{margin-top:0;margin-bottom:0;list-style-type:none;padding-left:0;color:#212121;margin:0;padding:0;width:100%}.usa-accordion-bordered>ul>li,.usa-accordion>ul>li{margin-bottom:0}.usa-accordion-bordered>ul>li,.usa-accordion>ul>li{background-color:#f1f1f1;font-family:Trebuchet,Tahoma,sans-serif;list-style:none;margin-bottom:.5rem;width:100%}.usa-accordion-bordered>ul button,.usa-accordion>ul button{background-color:transparent;border:0;border-radius:0;font-weight:400;padding:0;text-align:left;-webkit-font-smoothing:auto;background-color:#f1f1f1;background-image:url(../img/minus.png);background-image:url(../img/minus.svg);background-position:right 2rem center;background-repeat:no-repeat;background-size:1.5rem;color:#212121;cursor:pointer;display:inline-block;font-family:Trebuchet,Tahoma,sans-serif;font-weight:700;margin:0;padding:1.5rem 5.5rem 1.5rem 2rem;width:100%}.usa-accordion-bordered>ul button:hover,.usa-accordion>ul button:hover{background-color:transparent}.usa-accordion-bordered>ul button:hover,.usa-accordion>ul button:hover{background-color:#d6d7d9;color:#212121}.usa-accordion-bordered>ul button h1,.usa-accordion-bordered>ul button h2,.usa-accordion-bordered>ul button h3,.usa-accordion-bordered>ul button h4,.usa-accordion-bordered>ul button h5,.usa-accordion-bordered>ul button h6,.usa-accordion>ul button h1,.usa-accordion>ul button h2,.usa-accordion>ul button h3,.usa-accordion>ul button h4,.usa-accordion>ul button h5,.usa-accordion>ul button h6{margin:0}.usa-accordion-bordered>ul [aria-expanded=false],.usa-accordion>ul [aria-expanded=false]{background-image:url(../img/plus.png);background-image:url(../img/plus.svg);background-repeat:no-repeat;background-size:1.5rem}.usa-accordion-bordered>li,.usa-accordion>li{background-color:#f1f1f1;font-family:Trebuchet,Tahoma,sans-serif;list-style:none;margin-bottom:.5rem;width:100%}.usa-accordion-bordered .usa-accordion-content{border-bottom:3px solid #f1f1f1;border-left:3px solid #f1f1f1;border-right:3px solid #f1f1f1}.usa-accordion-content{background-color:#fff;overflow:auto;padding:1.5rem 2rem}.usa-accordion-content>:first-child{margin-top:0}.usa-accordion-content>:last-child{margin-bottom:0}.usa-accordion-content:not([aria-hidden]){position:absolute;left:-999em}.usa-accordion-content[aria-hidden=true]{display:none}.usa-accordion-button{background-color:transparent;border:0;border-radius:0;font-weight:400;padding:0;text-align:left;-webkit-font-smoothing:auto;background-color:#f1f1f1;background-image:url(../img/minus.png);background-image:url(../img/minus.svg);background-position:right 2rem center;background-repeat:no-repeat;background-size:1.5rem;color:#212121;cursor:pointer;display:inline-block;font-family:Trebuchet,Tahoma,sans-serif;font-weight:700;margin:0;padding:1.5rem 5.5rem 1.5rem 2rem;width:100%}.usa-accordion-button:hover{background-color:transparent}.usa-accordion-button:hover{background-color:#d6d7d9;color:#212121}.usa-accordion-button h1,.usa-accordion-button h2,.usa-accordion-button h3,.usa-accordion-button h4,.usa-accordion-button h5,.usa-accordion-button h6{margin:0}.usa-accordion-button[aria-expanded=false]{background-image:url(../img/plus.png);background-image:url(../img/plus.svg);background-repeat:no-repeat;background-size:1.5rem}.usa-banner{background-color:#f1f1f1;padding-bottom:.4375rem}@media screen and (min-width:481px){.usa-banner{font-size:.8125rem;padding-bottom:0}}.usa-banner-content{padding:1.25rem 1rem 3px;background-color:transparent;font-size:.9375rem;width:100%}@media screen and (min-width:801px){.usa-banner-content{padding-bottom:1.4375rem;padding-top:2.5rem}}@media screen and (min-width:951px){.usa-banner-content{padding-right:1.875rem;padding-left:1.875rem}}.usa-banner-content p:first-child{margin-top:.625rem}@media screen and (min-width:801px){.usa-banner-content p:first-child{margin-top:0}}.usa-banner-inner{max-width:1200px;margin-left:auto;margin-right:auto;padding-right:1rem;padding-left:1rem;max-width:960px}.usa-banner-inner:after{clear:both;content:"";display:block}@media screen and (min-width:951px){.usa-banner-inner{padding-right:1.875rem;padding-left:1.875rem}}.usa-banner-header{padding-top:.34375rem;padding-bottom:.34375rem;font-size:.75rem;font-weight:400}@media screen and (min-width:481px){.usa-banner-header{padding-top:0;padding-bottom:0}}.usa-banner-header p{margin-top:0;margin-bottom:0;display:inline;overflow:hidden;vertical-align:middle}@media screen and (min-width:481px){.usa-banner-header p{margin-top:2px;margin-bottom:2px;display:inline-block}}.usa-banner-header img{margin-top:.625rem}@media screen and (min-width:481px){.usa-banner-header img{margin-right:.4375rem;width:1.25rem}}.usa-banner-header-expanded{-webkit-box-align:center;-ms-flex-align:center;align-items:center;border-bottom:1px solid #aeb0b5;display:-webkit-box;display:-ms-flexbox;display:flex;font-size:.9375rem;min-height:3.5rem;padding-right:1.875rem}@media screen and (min-width:481px){.usa-banner-header-expanded{border-bottom:none;display:block;font-size:.75rem;font-weight:400;min-height:0;padding-right:0}}.usa-banner-header-expanded>.usa-banner-inner{margin-left:0}@media screen and (min-width:481px){.usa-banner-header-expanded>.usa-banner-inner{margin-left:auto}}.usa-banner-header-expanded img{margin-right:1.5rem}@media screen and (min-width:481px){.usa-banner-header-expanded img{margin-right:.4375rem}}.usa-banner-header-expanded p{line-height:1.3;vertical-align:top}@media screen and (min-width:481px){.usa-banner-header-expanded p{line-height:1.5;vertical-align:middle}}.usa-banner-button{background-color:transparent;border:0;border-radius:0;font-weight:400;margin:0;padding:0;text-align:left;-webkit-font-smoothing:auto;padding-top:.8125rem;padding-left:3rem;background-position-x:right;color:#0071bc;display:block;font-size:.75rem;height:2.6875rem;left:0;position:absolute;text-decoration:underline;top:0;width:100%}.usa-banner-button:hover{background-color:transparent}@media screen and (min-width:481px){.usa-banner-button{padding-top:0;padding-left:0;display:inline;height:auto;margin-left:3px;position:relative;vertical-align:middle;width:auto}}.usa-banner-button:hover{color:#205493;text-decoration:underline}.usa-banner-button[aria-expanded=false]{background-image:none}.usa-banner-button[aria-expanded=false]:after{background-image:url(../img/angle-arrow-down-primary.png);background-image:url(../img/angle-arrow-down-primary.svg);background-size:100%;content:"";display:inline-block;height:.625rem;width:.625rem;margin-left:0}.usa-banner-button[aria-expanded=false]:hover:after{background-image:url(../img/angle-arrow-down-primary-hover.png);background-image:url(../img/angle-arrow-down-primary-hover.svg)}.usa-banner-button[aria-expanded=false]:after{background-position-y:1px}.usa-banner-button[aria-expanded=true]{background-image:none;height:3.5rem}.usa-banner-button[aria-expanded=true]:after{background-image:url(../img/close.png);background-image:url(../img/close.svg);background-size:100%;content:"";display:inline-block;height:.8125rem;width:.8125rem;margin-left:0}@media screen and (min-width:481px){.usa-banner-button[aria-expanded=true]{height:auto;padding:0;position:relative}.usa-banner-button[aria-expanded=true]:after{background-image:url(../img/angle-arrow-up-primary.png);background-image:url(../img/angle-arrow-up-primary.svg);background-size:100%;content:"";display:inline-block;height:.625rem;width:.625rem;margin-left:0}.usa-banner-button[aria-expanded=true]:hover:after{background-image:url(../img/angle-arrow-up-primary-hover.png);background-image:url(../img/angle-arrow-up-primary-hover.svg)}.usa-banner-button[aria-expanded=true]:after{background-position-y:1px}}.usa-banner-button[aria-expanded=true]:after{position:absolute;right:.9375rem;top:1.34375rem}@media screen and (min-width:481px){.usa-banner-button[aria-expanded=true]:after{position:static}}.usa-banner-button[aria-expanded=true] .usa-banner-button-text{display:none}@media screen and (min-width:481px){.usa-banner-button[aria-expanded=true] .usa-banner-button-text{display:inline}}.usa-banner-icon{width:2.375rem}.usa-button,.usa-button-primary,.usa-button-primary:visited,.usa-button:visited{padding:.625rem 1.25rem}.usa-banner{position:relative}@media screen and (min-width:801px){.usa-banner-inner{padding:0 calc(2% + 8px);width:96%}}@media screen and (min-width:1025px){.usa-banner-inner{margin:0 auto;padding:0 .5rem;width:960px}}@media screen and (min-width:801px){.usa-banner-content{padding-left:calc(2% + 8px);padding-right:calc(2% + 8px);width:96%}}@media screen and (min-width:1025px){.usa-banner-content{padding-left:.5rem;padding-right:.5rem;width:960px}}.usa-banner-header{font-size:.625rem}@media screen and (min-width:481px){.usa-banner-header{font-size:.75rem;padding:0 0 3px}}.usa-banner-header img{display:block;float:left;margin-right:.625rem;margin-top:0;vertical-align:middle;width:1.5rem}@media screen and (min-width:481px){.usa-banner-header img{display:inline-block;float:none;margin-right:.625rem;width:1.25rem}}.usa-banner-header p{top:1px;left:-2px;display:block;line-height:1.15;position:relative}@media screen and (min-width:481px){.usa-banner-header p{position:relative;top:auto;left:auto;display:inline;line-height:1;overflow:visible;margin:0}}.usa-banner-header-expanded img{margin-right:.625rem}.usa-accordion-button[aria-expanded=false],.usa-accordion-button[aria-expanded=true]{background-size:.9375rem}.usa-accordion-button[aria-expanded=false]:after,.usa-accordion-button[aria-expanded=true]:after{height:.625rem;width:.625rem}@media screen and (min-width:481px){.usa-accordion-button[aria-expanded=false],.usa-accordion-button[aria-expanded=true]{top:1px;padding-left:4px}}.usa-media_block-img{float:left;margin-right:1rem}.usa-media_block-body{overflow:hidden} +/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImRnLXVzd2RzLnNjc3MiLCJfZGctbm9ybWFsaXplLnNjc3MiLCIuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdXN3ZHMvZGlzdC9zY3NzL2xpYi9jc3MzL19mb250LWZhY2Uuc2NzcyIsIi4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy91c3dkcy9kaXN0L3Njc3MvY29yZS9fZm9udHMuc2NzcyIsIi4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy91c3dkcy9kaXN0L3Njc3MvbGliL2hlbHBlcnMvX2ZvbnQtc291cmNlLWRlY2xhcmF0aW9uLnNjc3MiLCIuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdXN3ZHMvZGlzdC9zY3NzL2NvcmUvX2dyaWQuc2NzcyIsIi4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy91c3dkcy9kaXN0L3Njc3MvbGliL2dyaWQvX291dGVyLWNvbnRhaW5lci5zY3NzIiwiLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Vzd2RzL2Rpc3Qvc2Nzcy9saWIvc2V0dGluZ3MvX2dyaWQuc2NzcyIsIl9kZy12YXJpYWJsZXMuc2NzcyIsIi4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy91c3dkcy9kaXN0L3Njc3MvbGliL21peGlucy9fY2xlYXJmaXguc2NzcyIsIi4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy91c3dkcy9kaXN0L3Njc3MvbGliL2hlbHBlcnMvX2RpcmVjdGlvbmFsLXZhbHVlcy5zY3NzIiwiX2RnLWZ1bmN0aW9ucy5zY3NzIiwiLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Vzd2RzL2Rpc3Qvc2Nzcy9saWIvZ3JpZC9fbWVkaWEuc2NzcyIsIi4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy91c3dkcy9kaXN0L3Njc3MvbGliL2dyaWQvX3NwYW4tY29sdW1ucy5zY3NzIiwiLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Vzd2RzL2Rpc3Qvc2Nzcy9saWIvZ3JpZC9fcHJpdmF0ZS5zY3NzIiwiLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Vzd2RzL2Rpc3Qvc2Nzcy9saWIvZ3JpZC9fb21lZ2Euc2NzcyIsIi4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy91c3dkcy9kaXN0L3Njc3MvbGliL2dyaWQvX3NoaWZ0LnNjc3MiLCIuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdXN3ZHMvZGlzdC9zY3NzL2NvcmUvX3V0aWxpdGllcy5zY3NzIiwiX2RnLWJhc2Uuc2NzcyIsIi4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy91c3dkcy9kaXN0L3Njc3MvY29yZS9fdmFyaWFibGVzLnNjc3MiLCJkZy11c3dkcy5jc3MiLCJfZGctYnV0dG9ucy5zY3NzIiwiLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Vzd2RzL2Rpc3Qvc2Nzcy9jb21wb25lbnRzL19hY2NvcmRpb25zLnNjc3MiLCJfZGctYmFubmVyLnNjc3MiLCJfZGctdXN3ZHMtb3ZlcnJpZGVzLnNjc3MiLCIuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdXN3ZHMvZGlzdC9zY3NzL2xpYi9hZGRvbnMvX3Bvc2l0aW9uLnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBU0EscUJBQXFCLEFDaU5uQix1QkFDRSx1QkFBdUIsQUFDdkIsMEJBQTBCLEFBQzFCLDZCQUE4QixDQUMvQixBQUNELHVCQUNFLFFBQVMsQ0FDVixBQUVELCtWQWFFLGFBQWMsQ0FDZixBQUVELDRHQUlFLHFCQUFxQixBQUNyQix1QkFBd0IsQ0FDekIsQUFFRCx5REFDRSxhQUFhLEFBQ2IsUUFBUyxDQUNWLEFBRUQsOERBRUUsWUFBYSxDQUNkLEFBRUQsaUJBQ0UsNEJBQTZCLENBQzlCLEFBRUQsNERBRUUsU0FBVSxDQUNYLEFBRUQscUNBQ0Usd0JBQXlCLENBQzFCLEFBRUQsNENBRUUsZUFBaUIsQ0FDbEIsQUFFRCxxQkFDRSxpQkFBa0IsQ0FDbkIsQUFFRCxHQUNFLGNBQWMsQUFDZCxjQUFnQixDQUNqQixBQUVELHVCQUNFLGdCQUFnQixBQUNoQixVQUFXLENBQ1osQUFFRCx5QkFDRSxhQUFjLENBQ2YsQUFFRCwwQ0FFRSxjQUFjLEFBQ2QsY0FBYyxBQUNkLGtCQUFrQixBQUNsQix1QkFBd0IsQ0FDekIsQUFFRCxxQkFDRSxTQUFXLENBQ1osQUFFRCxxQkFDRSxhQUFlLENBQ2hCLEFBRUQscUJBQ0UsUUFBUyxDQUNWLEFBRUQsMkNBQ0UsZUFBZ0IsQ0FDakIsQUFFRCwyQkFDRSxlQUFnQixDQUNqQixBQUVELG1CQUNFLHVCQUF1QixBQUN2QixRQUFTLENBQ1YsQUFFRCxxQkFDRSxhQUFjLENBQ2YsQUFFRCx3RkFJRSxnQ0FBaUMsQUFDakMsYUFBYyxDQUNmLEFBRUQsNklBS0UsY0FBYyxBQUNkLGFBQWEsQUFDYixRQUFTLENBQ1YsQUFFRCwyQkFDRSxnQkFBaUIsQ0FDbEIsQUFFRCxzREFFRSxtQkFBb0IsQ0FDckIsQUFFRCx1SkFJRSwwQkFBMEIsQUFDMUIsY0FBZSxDQUNoQixBQUVELG9FQUVFLGNBQWUsQ0FDaEIsQUFFRCw0SEFFRSxTQUFTLEFBQ1QsU0FBVSxDQUNYLEFBRUQseUJBQ0Usa0JBQW1CLENBQ3BCLEFBRUQsd0dBRUUsc0JBQXNCLEFBQ3RCLFNBQVUsQ0FDWCxBQUVELGtOQUVFLFdBQVksQ0FDYixBQUVELG1EQUNFLDZCQUE2QixBQUM3QixzQkFBdUIsQ0FDeEIsQUFFRCx3TkFFRSx1QkFBd0IsQ0FDekIsQUFFRCwrQkFDRSx3QkFBeUIsQUFDekIsYUFBYSxBQUNiLDBCQUE4QixDQUMvQixBQUVELDJCQUNFLFNBQVMsQUFDVCxTQUFVLENBQ1gsQUFFRCwrQkFDRSxhQUFjLENBQ2YsQUFFRCwrQkFDRSxlQUFpQixDQUNsQixBQUVELHlCQUNFLHlCQUF5QixBQUN6QixnQkFBaUIsQ0FDbEIsQUFFRCxzQ0FFRSxTQUFVLENBQ1gsQUN0YUQsV0FDRSw0QkNUZSxBRFVmLGtCQ1BJLEFEUUosZ0JDVEMsQURXRCxtUkVTNkMsQ0FBQSxBRmQvQyxXQUNFLDRCQ0RlLEFERWYsa0JDQ0ksQURBSixnQkNEQyxBREdELDJSRVM2QyxDQUFBLEFGZC9DLFdBQ0UsNEJDT2UsQUROZixrQkNTSSxBRFJKLGdCQ09DLEFETEQsdVJFUzZDLENBQUEsQUZkL0MsV0FDRSw0QkNlZSxBRGRmLGtCQ2lCSSxBRGhCSixnQkNlQyxBRGJELCtRRVM2QyxDQUFBLEFGZC9DLFdBQ0UseUJDdUJZLEFEdEJaLGtCQ3lCSSxBRHhCSixnQkN1QkMsQURyQkQsK1FFUzZDLENBQUEsQUZkL0MsV0FDRSx5QkMrQlksQUQ5Qlosa0JDaUNJLEFEaENKLGdCQytCQyxBRDdCRCx1UkVTNkMsQ0FBQSxBRmQvQyxXQUNFLHlCQ3VDWSxBRHRDWixrQkN5Q0ksQUR4Q0osZ0JDdUNDLEFEckNELG1SRVM2QyxDQUFBLEFGZC9DLFdBQ0UseUJDK0NZLEFEOUNaLGtCQ2lESSxBRGhESixnQkMrQ0MsQUQ3Q0QsMlFFUzZDLENBQUEsQUN2QmpELHlCQzJCRSxpQkNKZ0IsQURNZCxpQkFBVSxBQUNWLGtCQUFXLEFEM0JiLGVHOEk2QixDSDdJOUIsQUljQyxxQ0FDRSxXQUFXLEFBQ1gsV0FBVyxBQUNYLGFBQWMsQ0FDZixBSmhCSCxVS3dFMEIsbUJDOUVmLEFEbUZlLGlCQ25GZixDTllWLEFPNkNHLG9DUG5ESixVS3dFMEIsdUJDOUVmLEFEbUZlLHFCQ25GZixDTllWLENBQUEsQUFFRCxlQUNFLFNBQVUsQ0FDWCxBT3FFRyxvQ1BqRUYscUJROENFLFdBQU8sQUFHTCxjQUFjLEFBZWQsc0JDdEUwQyxBRHVFMUMsVUM1RXlDLENUYTVDLEFRaUVHLGdDQUNFLGNBQThCLENBQy9CLEFSakVMLG9CUTBDRSxXQUFPLEFBR0wsY0FBYyxBQWVkLHNCQ3RFMEMsQUR1RTFDLGVDNUV5QyxDVGlCNUMsQVE2REcsK0JBQ0UsY0FBOEIsQ0FDL0IsQVI3REwscUJRc0NFLFdBQU8sQUFHTCxjQUFjLEFBZWQsc0JDdEUwQyxBRHVFMUMsZUM1RXlDLENUcUI1QyxBUXlERyxnQ0FDRSxjQUE4QixDQUMvQixBUnpETCxzQlFrQ0UsV0FBTyxBQUdMLGNBQWMsQUFlZCxzQkN0RTBDLEFEdUUxQyxlQzVFeUMsQ1R5QjVDLEFRcURHLGlDQUNFLGNBQThCLENBQy9CLEFSckRMLHNCUThCRSxXQUFPLEFBR0wsY0FBYyxBQWVkLHNCQ3RFMEMsQUR1RTFDLGVDNUV5QyxDVGlDNUMsQVE2Q0csaUNBQ0UsY0FBOEIsQ0FDL0IsQVJyREwsb0NBSUksY0FBZSxDQUNoQixBQUdILHlCUXNCRSxXQUFPLEFBR0wsY0FBYyxBQWVkLHNCQ3RFMEMsQUR1RTFDLFVDNUV5QyxDVHFDNUMsQVF5Q0csb0NBQ0UsY0FBOEIsQ0FDL0IsQVJ6Q0wscUJRa0JFLFdBQU8sQUFHTCxjQUFjLEFBZWQsc0JDdEUwQyxBRHVFMUMsZUM1RXlDLENUNkM1QyxBUWlDRyxnQ0FDRSxjQUE4QixDQUMvQixBUnpDTCxtQ0FJSSxjQUFlLENBQ2hCLEFBR0gsdUJRVUUsV0FBTyxBQUdMLGNBQWMsQUFlZCxzQkN0RTBDLEFEdUUxQyxlQzVFeUMsQ1RpRDVDLEFRNkJHLGtDQUNFLGNBQThCLENBQy9CLEFSN0JMLHVCUU1FLFdBQU8sQUFHTCxjQUFjLEFBZWQsc0JDdEUwQyxBRHVFMUMsZUM1RXlDLENUeUQ1QyxBUXFCRyxrQ0FDRSxjQUE4QixDQUMvQixBUjdCTCxxQ0FJSSxjQUFlLENBQ2hCLEFBR0gseUJRRkUsV0FBTyxBQUdMLGNBQWMsQUFlZCxzQkN0RTBDLEFEdUUxQyxlQzVFeUMsQ1Q2RDVDLEFRaUJHLG9DQUNFLGNBQThCLENBQy9CLEFSakJMLDBCUU5FLFdBQU8sQUFHTCxjQUFjLEFBZWQsc0JDdEUwQyxBRHVFMUMsZUM1RXlDLENUaUU1QyxBUWFHLHFDQUNFLGNBQThCLENBQy9CLENBQUEsQURKSCxxQ1BQRixxQlFaRSxXQUFPLEFBR0wsY0FBYyxBQWVkLHNCQ3RFMEMsQUR1RTFDLFVDNUV5QyxDVHVFNUMsQVFPRyxnQ0FDRSxjQUE4QixDQUMvQixBUlBMLG9CUWhCRSxXQUFPLEFBR0wsY0FBYyxBQWVkLHNCQ3RFMEMsQUR1RTFDLGVDNUV5QyxDVDJFNUMsQVFHRywrQkFDRSxjQUE4QixDQUMvQixBUkhMLHFCUXBCRSxXQUFPLEFBR0wsY0FBYyxBQWVkLHNCQ3RFMEMsQUR1RTFDLGVDNUV5QyxDVCtFNUMsQVFERyxnQ0FDRSxjQUE4QixDQUMvQixBUkNMLHNCUXhCRSxXQUFPLEFBR0wsY0FBYyxBQWVkLHNCQ3RFMEMsQUR1RTFDLGVDNUV5QyxDVG1GNUMsQVFMRyxpQ0FDRSxjQUE4QixDQUMvQixBUktMLHNCUTVCRSxXQUFPLEFBR0wsY0FBYyxBQWVkLHNCQ3RFMEMsQUR1RTFDLGVDNUV5QyxDVCtGNUMsQVFqQkcsaUNBQ0UsY0FBOEIsQ0FDL0IsQVJLTCxvQ1E1QkUsV0FBTyxBQUdMLGNBQWMsQUFlZCxzQkN0RTBDLEFEdUUxQyxlQzVFeUMsQ1QwRjFDLEFRWkMsK0NBQ0UsY0FBOEIsQ0FDL0IsQVJLTCxvQ0FRSSxjQUFlLENBQ2hCLEFBR0gseUJReENFLFdBQU8sQUFHTCxjQUFjLEFBZWQsc0JDdEUwQyxBRHVFMUMsZUM1RXlDLENUbUc1QyxBUXJCRyxvQ0FDRSxjQUE4QixDQUMvQixBUnFCTCxxQlE1Q0UsV0FBTyxBQUdMLGNBQWMsQUFlZCxzQkN0RTBDLEFEdUUxQyxlQzVFeUMsQ1QrRzVDLEFRakNHLGdDQUNFLGNBQThCLENBQy9CLEFScUJMLG1DUTVDRSxXQUFPLEFBR0wsY0FBYyxBQWVkLHNCQ3RFMEMsQUR1RTFDLGVDNUV5QyxDVDBHMUMsQVE1QkMsOENBQ0UsY0FBOEIsQ0FDL0IsQVJxQkwsbUNBUUksY0FBZSxDQUNoQixBQUdILHVCUXhERSxXQUFPLEFBR0wsY0FBYyxBQWVkLHNCQ3RFMEMsQUR1RTFDLGVDNUV5QyxDVG1INUMsQVFyQ0csa0NBQ0UsY0FBOEIsQ0FDL0IsQVJxQ0wsdUJRNURFLFdBQU8sQUFHTCxjQUFjLEFBZWQsc0JDdEUwQyxBRHVFMUMsY0M1RXlDLENUK0g1QyxBUWpERyxrQ0FDRSxjQUE4QixDQUMvQixBUnFDTCxxQ1E1REUsV0FBTyxBQUdMLGNBQWMsQUFlZCxzQkN0RTBDLEFEdUUxQyxjQzVFeUMsQ1QwSDFDLEFRNUNDLGdEQUNFLGNBQThCLENBQy9CLEFScUNMLHNDQVFJLGNBQWUsQ0FDaEIsQUFHSCx5QlF4RUUsV0FBTyxBQUdMLGNBQWMsQUFlZCxzQkN0RTBDLEFEdUUxQyxlQzVFeUMsQ1RtSTVDLEFRckRHLG9DQUNFLGNBQThCLENBQy9CLEFScURMLDBCUTVFRSxXQUFPLEFBR0wsY0FBYyxBQWVkLHNCQ3RFMEMsQUR1RTFDLGVDNUV5QyxDVHVJNUMsQVF6REcscUNBQ0UsY0FBOEIsQ0FDL0IsQ0FBQSxBUjZEUCxhVWhHTSxjQUE4QixDVmtHbkMsQUFHRCx3QlcvR0UsbUJBQTRILENYaUg3SCxBQUVELHNCV25IRSxxQkFBNEgsQ1hxSDdILEFBRUQsdUJXdkhFLHFCQUE0SCxDWHlIN0gsQUFFRCxzQlczSEUscUJBQTRILENYNkg3SCxBQUVELDBCVy9IRSxxQkFBNEgsQ1hpSTdILEFBRUQscUJXbklFLHFCQUE0SCxDWHFJN0gsQUFFRCwyQld2SUUscUJBQTRILENYeUk3SCxBQUVELHVCVzNJRSxxQkFBNEgsQ1g2STdILEFBRUQsMEJXL0lFLHFCQUE0SCxDWGlKN0gsQUFFRCx3QlduSkUscUJBQTRILENYcUo3SCxBQUVELDRCV3ZKRSxxQkFBNEgsQ1h5SjdILEFZcElELGFBYkUsa0JBQWtCLEFBQ2xCLFdBQVksQ0FjYixBQ2hFQyxPQUNFLHFCQUFzQixDQUN2QixBQUVELHNDQUdFLGtCQUFtQixDQUNwQixBQUVELHVCQUVFLHNCQ21DZ0MsQURsQ2hDLGlCQUFrQixDQUNuQixBQUdELFVBRUksOEJBQXVCLEFBQXZCLHFCQUF1QixDQUN4QixBRTJlTCxTRnJlSSxzQkFBd0IsQ0FDekIsQUFFRCx5QkRPQSwyQkVrQmtDLEFGakJsQyxrQkVzRzJCLENEM0cxQixBR1hILGdGSm1FRSxrQ0FBa0MsQUFDbEMsbUNBQW1DLEFQbkJiLGdCV3RDRCxBWDJDRyxrQlczQ0csQVhxREgsbUJXckRTLEFBQ2pDLHdCQUFnQixBQUFoQixxQkFBZ0IsQUFBaEIsZ0JBQWdCLEFBQ2hCLHlCRkhrQyxBRUlsQyxTQUFTLEFBQ1Qsa0JGb0cyQixBRW5HM0IsV0ZVa0MsQUVUbEMsZUFBZSxBQUNmLHFCQUFxQixBQUNyQix3Q2JUK0MsQWFVL0Msb0JWNUNTLEFVNkNULGdCRmR1QixBRWV2QixjQUFjLEFBQ2Qsa0JBQWtCLEFBQ2xCLGtCQUFrQixBQUNsQixxQkFBcUIsQUFDckIsVUFBVyxDQTRHWixBSmpIQyxvQ0lyQkYsZ0ZBNkJJLFVBQVcsQ0F5R2QsQ0FBQSxBQXRJRCw0UEFrQ0kseUJGdkJnQyxBRXdCaEMsZ0JBQWdCLEFBQ2hCLFdGVmdDLEFFV2hDLG9CQUFxQixDQUN0QixBQXRDSCxvUUEwQ0ksd0JGOUJnQyxDRStCakMsQUEzQ0gsNEtBOENJLHlCRmhDZ0MsQUVpQ2hDLGFGbkJnQyxDRStCakMsQUEzREgsb2JBbURNLHdCRnBDOEIsQ0VxQy9CLEFBcERMLDRiQXdETSx5QkZ4QzhCLEFFeUM5QixVRi9COEIsQ0VnQy9CLEFBMURMLG9LQThESSxzQkZwQ2dDLEFFcUNoQyxtQ0ZyRGdDLEFFc0RoQyxhRnREZ0MsQ0VtRWpDLEFBN0VILG9hQW9FTSxtQ0Z6RDhCLEFFMEQ5QixhRjFEOEIsQ0UyRC9CLEFBdEVMLDRhQTBFTSxtQ0Y5RDhCLEFFK0Q5QixhRi9EOEIsQ0VnRS9CLEFBNUVMLGdZQWlGSSx1QkFBdUIsQUFDdkIsZ0NGeERnQyxBRXlEaEMsVUZ6RGdDLENFc0VqQyxBQWhHSCx3N0JBdUZNLG1DRnJEOEIsQUVzRDlCLGFGdEQ4QixDRXVEL0IsQUF6RkwsdzhCQTZGTSxtQ0Y1RDhCLEFFNkQ5QixhRjVEOEIsQ0U2RC9CLEFBL0ZMLGdKQW1HSSx3QkZwRWdDLENFK0VqQyxBQTlHSCw0WEF1R00sd0JGekU4QixDRTBFL0IsQUF4R0wsb1lBNEdNLHdCRmhGOEIsQ0VpRi9CLEFBN0dMLDRJQWlISSx3QkY3RmdDLENFd0dqQyxBQTVISCxvWEFxSE0sd0JGaEc4QixDRWlHL0IsQUF0SEwsNFhBMEhNLHdCRnBHOEIsQ0VxRy9CLEFBM0hMLDRJQStISSxpQkFBaUIsQUFDakIsbUJBQW9CLENBQ3JCLEFBaklILG9IQWhCRSx5QkZrRGtDLEFFakRsQyxtQkFBb0IsQ0FvSm5CLEFBbEpELHc3QkFNRSx5QkZ5Q2dDLEFFeENoQyxTQUFTLEFBQ1QsZUFBZ0IsQ0FDakIsQUE2SUgscUJBekpFLHlCRmtEa0MsQUVqRGxDLG1CQUFvQixDQTJKckIsQUF6SkMsOExBTUUseUJGeUNnQyxBRXhDaEMsU0FBUyxBQUNULGVBQWdCLENBQ2pCLEFBa0pILGlMQUtFLG1DRmpIa0MsQUVrSGxDLG9CQUFvQixBQUNwQixhRm5Ia0MsQ0U4SG5DLEFBbEJELHMyQ0FlSSxzQkZuSWdDLEFFb0loQyxRQUFTLENBQ1YsQUFHSCxtRUFFRSxxQkYxSWtDLENFMkluQyxBQUVELG1GQUVFLDZCQUE2QixBQUM3QixjRjNJa0MsQUU0SWxDLGtDRjVJa0MsQ0U2SW5DLEFBaUJELHFCQWRFLDZCQUE2QixBQUM3QixTQUFTLEFBQ1QsZ0JBQWdCLEFBQ2hCLGdCRjVLdUIsQUU2S3ZCLFNBQVMsQUFDVCxVQUFVLEFBQ1YsZ0JBQWdCLEFBQ2hCLDJCQUE0QixDQVM3QixBQVBDLDJCQUNFLDRCQUE2QixDQUM5QixBQ3BJSCx1Q1pMd0IsYUF0Q0gsQUErQ0ssZ0JBL0NMLEFPNENuQixxQkFBcUIsQUFDckIsZUFBZSxBS3JFZixjSHlDa0MsQUd4Q2xDLFNBQVMsQUFDVCxVQUFVLEFBQ1YsVUFBVyxDQWtHWixBTDlCRyw2Q0FDQSxlQUFnQixDQUNqQixBS2pCTyx5REFDTixlQUFnQixDQU9qQixBQU5RLHFFQUNMLGlCQUFrQixDQUluQixBQUhRLGlGQUNMLGlCQUFrQixDQUNuQixBQUtQLDRKQU9JLGVIaUVnQixDR2hFakIsQUFSSCw2Q1pMd0IsYUF0Q0gsQUErQ0ssZ0JBL0NMLEFPNENuQixxQkFBcUIsQUFDckIsZUFBZSxBS3JFZixjSHlDa0MsQUd4Q2xDLFNBQVMsQUFDVCxVQUFVLEFBQ1YsVUFBVyxDQTRGVixBTHhCQyxtREFDQSxlQUFnQixDQUNqQixBS05ILG1EQTVERSx5Qkh5Q2tDLEFHeENsQyx3Q2RlK0MsQWNkL0MsZ0JBQWdCLEFBQ2hCLG9CSGdJc0IsQUcvSHRCLFVBQVcsQ0F5RVIsQUFqQkwsMkREeUhFLDZCQUE2QixBQUM3QixTQUFTLEFBQ1QsZ0JBQWdCLEFBQ2hCLGdCRjVLdUIsQUU4S3ZCLFVBQVUsQUFDVixnQkFBZ0IsQUFDaEIsNEJBQTRCLEFDbEw1Qix5QkgrQmtDLEFHOUJsQyx1Q0FBaUQsQUFDakQsdUNBQWlELEFBQ2pELHNDQUE0QyxBQUM1Qyw0QkFBNEIsQUFDNUIsdUJIc0h1QixBR3JIdkIsY0hrQmtDLEFHakJsQyxlQUFlLEFBQ2YscUJBQXFCLEFBQ3JCLHdDZEgrQyxBY0kvQyxnQkhQdUIsQUdRdkIsU0FBUyxBQUNULGtDSGdIbUIsQUcvR25CLFVBQVcsQ0EyRFIsQUF0QkwsdUVEbUlJLDRCQUE2QixDQUM5QixBQ3BJSCx1RUFsQ0kseUJIY2dDLEFHYmhDLGFIT2dDLENHTmpDLEFBRUQsc1lBTUUsUUFBUyxDQUNWLEFBdUJILHlGQWxCRSxzQ0FBZ0QsQUFDaEQsc0NBQWdELEFBQ2hELDRCQUE0QixBQUM1QixzQkh3RnVCLENHOUNwQixBQTNCTCw2Q0E1REUseUJIeUNrQyxBR3hDbEMsd0NkZStDLEFjZC9DLGdCQUFnQixBQUNoQixvQkhnSXNCLEFHL0h0QixVQUFXLENBd0ZWLEFBSUgsK0NBRUksZ0NIekRnQyxBRzBEaEMsOEJIMURnQyxBRzJEaEMsOEJIM0RnQyxDRzREakMsQUFHSCx1QkFDRSxzQkh6RWtDLEFHMEVsQyxjQUFjLEFBQ2QsbUJIMkJtQixDR1pwQixBQWxCRCxvQ0FNSSxZQUFhLENBQ2QsQUFQSCxtQ0FVSSxlQUFnQixDQUNqQixBQVhILDBDTHRFRSxrQkFBa0IsQUFDbEIsV0FBWSxDS29GWCxBTGxFRCx5Q0FDRSxZQUFhLENBQ2QsQUtxRUgsc0JEeURFLDZCQUE2QixBQUM3QixTQUFTLEFBQ1QsZ0JBQWdCLEFBQ2hCLGdCRjVLdUIsQUU4S3ZCLFVBQVUsQUFDVixnQkFBZ0IsQUFDaEIsNEJBQTRCLEFDbEw1Qix5QkgrQmtDLEFHOUJsQyx1Q0FBaUQsQUFDakQsdUNBQWlELEFBQ2pELHNDQUE0QyxBQUM1Qyw0QkFBNEIsQUFDNUIsdUJIc0h1QixBR3JIdkIsY0hrQmtDLEFHakJsQyxlQUFlLEFBQ2YscUJBQXFCLEFBQ3JCLHdDZEgrQyxBY0kvQyxnQkhQdUIsQUdRdkIsU0FBUyxBQUNULGtDSGdIbUIsQUcvR25CLFVBQVcsQ0F1R1osQURnRUMsNEJBQ0UsNEJBQTZCLENBQzlCLEFDdktELDRCQUNFLHlCSGNnQyxBR2JoQyxhSE9nQyxDR05qQyxBQUVELHNKQU1FLFFBQVMsQ0FDVixBQTJGSCwyQ0F0RkUsc0NBQWdELEFBQ2hELHNDQUFnRCxBQUNoRCw0QkFBNEIsQUFDNUIsc0JId0Z1QixDR0h4QixBQ3JKRCxZQUNFLHlCSjJEa0MsQUkxRGxDLHVCWkRTLENZT1YsQU5zQ0Msb0NNOUNGLFlBS0ksbUJaSk8sQVlLUCxnQkFBaUIsQ0FFcEIsQ0FBQSxBQUVELG9CYjZFMEIseUJDdEZmLEFZV1QsNkJBQTZCLEFBQzdCLG1CWlpTLEFZY1QsVUFBVyxDQW9CWixBTldDLG9DTXBDRixvQkFRSSx5QlpqQk8sQVlrQlAsa0JabEJPLENZa0NWLENBQUEsQU5XQyxvQ01wQ0Ysb0JicUUwQix1QkM5RWYsQURtRmUscUJDbkZmLENZa0NWLENBQUEsQUF6QkQsa0NBa0JNLGtCWjNCSyxDWWdDTixBTmFILG9DTXBDRixrQ0FxQlEsWUFBYSxDQUVoQixDQUFBLEFBSUwsa0JqQlRFLGlCQ0pnQixBRE1kLGlCQUFVLEFBQ1Ysa0JBQVcsQUlnRFcsbUJDOUVmLEFEbUZlLGtCQ25GZixBWXVDVCxlZjBHNkIsQ2VyRzlCLEFkMUJDLHdCQUNFLFdBQVcsQUFDWCxXQUFXLEFBQ1gsYUFBYyxDQUNmLEFRdUJELG9DTVRGLGtCYjBDMEIsdUJDOUVmLEFEbUZlLHFCQ25GZixDWTRDVixDQUFBLEFBRUQsbUJiMkJ3QixzQkN6RWIsQURrRmUseUJDbEZmLEFZZ0RULGlCWmhEUyxBWWlEVCxlSm5CdUIsQ0lnRHhCLEFOakNDLG9DTUNGLG1CYjJCd0IsY0F0Q0gsQUErQ0ssZ0JBL0NMLENhMkNwQixDQUFBLEFBaENELHFCYjJCd0IsYUF0Q0gsQUErQ0ssZ0JBL0NMLEFhc0JqQixlQUFlLEFBQ2YsZ0JBQWdCLEFBQ2hCLHFCQUFzQixDQU12QixBTnBCRCxvQ01DRixxQmIyQndCLGVhWEMsQWJvQkMsa0JhcEJELEFBQ25CLG9CQUFxQixDQUV4QixDQUFBLEFBbkJILHVCQXdCSSxrQlp0RU8sQ1k2RVIsQU5oQ0Qsb0NNQ0YsdUJBNEJNLHNCWjFFSyxBWTJFTCxhWjNFSyxDWTZFUixDQUFBLEFBR0gsNEJBQ0UseUJBQW1CLEFBQW5CLHNCQUFtQixBQUFuQixtQkFBbUIsQUFDbkIsZ0NKekJrQyxBSTBCbEMsb0JBQWEsQUFBYixvQkFBYSxBQUFiLGFBQWEsQUFDYixtQlpwRlMsQVlxRlQsa0JackZTLEFZc0ZULHNCWnRGUyxDWTBIVixBTjdFQyxvQ01tQ0YsNEJBU0ksbUJBQW1CLEFBQ25CLGNBQWMsQUFDZCxpQlozRk8sQVk0RlAsZ0JKOURxQixBSStEckIsYUFBYSxBQUNiLGVBQWdCLENBNEJuQixDQUFBLEFBMUNELDhDQWtCSSxhQUFjLENBS2YsQU4xREQsb0NNbUNGLDhDQXFCTSxnQkFBaUIsQ0FFcEIsQ0FBQSxBQXZCSCxnQ0EwQkksbUJaMUdPLENZK0dSLEFObEVELG9DTW1DRixnQ0E2Qk0scUJaN0dLLENZK0dSLENBQUEsQUEvQkgsOEJBa0NJLGdCSjNGcUIsQUk0RnJCLGtCQUFtQixDQU1wQixBTjVFRCxvQ01tQ0YsOEJBc0NNLGdCSmhHbUIsQUlpR25CLHFCQUFzQixDQUV6QixDQUFBLEFBR0gsbUJGMkVFLDZCQUE2QixBQUM3QixTQUFTLEFBQ1QsZ0JBQWdCLEFBQ2hCLGdCRjVLdUIsQUU2S3ZCLFNBQVMsQUFDVCxVQUFVLEFBQ1YsZ0JBQWdCLEFBQ2hCLDRCQUE0QixBWHJJTixxQkN6RWIsQUR5RmUsa0JDekZmLEFZK0hULDRCQUE0QixBQUM1QixjSjlGa0MsQUkrRmxDLGNBQWMsQUFDZCxpQlpsSVMsQVltSVQsaUJabklTLEFZb0lULE9BQU8sQUFDUCxrQkFBa0IsQUFDbEIsMEJBQTBCLEFBQzFCLE1BQU0sQUFDTixVQUFXLENBOERaLEFGVUMseUJBQ0UsNEJBQTZCLENBQzlCLEFKcktELG9DTStFRixtQmJuRHdCLGNBdENILEFBc0RLLGVBbkRMLEFhdUdqQixlQUFlLEFBQ2YsWUFBZSxBQUNmLGdCQUFnQixBQUNoQixrQkFBa0IsQUFDbEIsc0JBQXNCLEFBQ3RCLFVBQWMsQ0FvRGpCLENBQUEsQUExRUQseUJBMkJJLGNKcEhnQyxBSXFIaEMseUJBQTBCLENBQzNCLEFBN0JILHdDQWlDSSxxQkFBc0IsQ0FLdkIsQU5mRCw4Q0FDRSwwREFBb0QsQUFDcEQsMERBQW9ELEFBQ3BELHFCQUFxQixBQUNyQixXQUFXLEFBQ1gscUJBQXFCLEFBQ3JCLGVOekpPLEFNMEpQLGNOMUpPLEFNOEpMLGFNRmtFLENOT3JFLEFBR0Msb0RBQ0UsZ0VBQTBELEFBQzFELCtEQUEwRCxDQUMzRCxBTTdDTCw4Q0FvQ00seUJBQTBCLENBQzNCLEFBckNMLHVDQTBDSSxzQkFBc0IsQUFDdEIsYVp2S08sQ1lxTVIsQU5sREQsNkNBQ0UsdUNBQW9ELEFBQ3BELHVDQUFvRCxBQUNwRCxxQkFBcUIsQUFDckIsV0FBVyxBQUNYLHFCQUFxQixBQUNyQixnQk56Sk8sQU0wSlAsZU4xSk8sQU04SkwsYU1PK0MsQ05GbEQsQUF0SEQsb0NNK0VGLHVDQStDTSxZQUFlLEFBQ2YsVUFBVSxBQUNWLGlCQUFrQixDQXdCckIsQU5sREQsNkNBQ0Usd0RBQW9ELEFBQ3BELHdEQUFvRCxBQUNwRCxxQkFBcUIsQUFDckIsV0FBVyxBQUNYLHFCQUFxQixBQUNyQixlTnpKTyxBTTBKUCxjTjFKTyxBTThKTCxhTVlrRSxDTlByRSxBQUdDLG1EQUNFLDhEQUEwRCxBQUMxRCw2REFBMEQsQ0FDM0QsQU03Q0wsNkNBb0RRLHlCQUEwQixDQUMzQixDQUFBLEFBckRQLDZDQXlETSxrQkFBa0IsQUFDbEIsZVp0TEssQVl1TEwsY1p2TEssQ1k0TE4sQU4vSUgsb0NNK0VGLDZDQThEUSxlQUFnQixDQUVuQixDQUFBLEFBaEVMLCtEQW1FTSxZQUFhLENBS2QsQU52Skgsb0NNK0VGLCtEQXNFUSxjQUFlLENBRWxCLENBQUEsQUFJTCxpQkFDRSxjWnpNUyxDWTBNVixBQzNNRCxnRkFJRSx1QmJIUyxDYUlWLEFBRUQsWUFDRSxpQkFBa0IsQ0FDbkIsQVBxQ0Msb0NPbkNGLGtCQUVJLHlCQUF5QixBQUN6QixTQUFVLENBT2IsQ0FBQSxBUHlCQyxxQ09uQ0Ysa0JBTUksY0FBYyxBQUNkLGdCYmpCTyxBYWtCUCxXQUFZLENBRWYsQ0FBQSxBUHlCQyxvQ092QkYsb0JBRUksNEJBQTRCLEFBQzVCLDZCQUE2QixBQUM3QixTQUFVLENBT2IsQ0FBQSxBUFlDLHFDT3ZCRixvQkFPSSxtQmI3Qk8sQWE4QlAsb0JiOUJPLEFhK0JQLFdBQVksQ0FFZixDQUFBLEFBRUQsbUJBQ0UsaUJicENTLENhMEVWLEFQN0JDLG9DT1ZGLG1CQUdJLGlCYnRDTyxBRDRGUCxlY3JEd0IsQ0FtQzNCLENBQUEsQUF2Q0QsdUJBT0ksY0FBYyxBQUNkLFdBQVcsQUFDWCxxQmI1Q08sQWE2Q1AsYUFBYSxBQUNiLHNCQUFzQixBQUN0QixZYi9DTyxDYXVEUixBUFZELG9DT1ZGLHVCQWVNLHFCQUFxQixBQUNyQixXQUFXLEFBQ1gscUJicERLLEFhcURMLGFickRLLENhdURSLENBQUEsQUFwQkgscUJDUU0sUURjbUIsQUNkbkIsVURja0MsQUFDcEMsY0FBYyxBQUNkLGlCQUFpQixBQUNqQixpQkFBa0IsQ0FRbkIsQVB2QkQsb0NPVkYscUJDSUUsa0JBWnFCLEFBZ0JqQixTRG1Cc0IsQUNuQnRCLFVEbUJxQyxBQUNyQyxlQUFlLEFBQ2YsY0FBYyxBQUNkLGlCQUFpQixBQUNqQixRQUFTLENBRVosQ0FBQSxBQUNELGdDQUVJLG9CYnZFSyxDYXdFTixBQUlMLHFGQUVFLHdCYjlFUyxDYXVGVixBQVhELGlHQUlJLGViaEZPLEFhaUZQLGFiakZPLENha0ZSLEFQckNELG9DTytCRixxRkFRSSxRQUFRLEFBQ1IsZ0JBQWlCLENBRXBCLENBQUEsQUFHQyxxQkFDRSxXQUFXLEFBQ1gsaUJBQWtCLENBQ25CLEFBQ0Qsc0JBQ0UsZUFBZ0IsQ0FDakIiLCJmaWxlIjoiZGctdXN3ZHMubWluLmNzcyIsInNvdXJjZXNDb250ZW50IjpbIi8vIFVTV0RTIFNBU1MgdmFyaWFibGUgb3ZlcnJpZGVzIGdvIGhlcmUsIGJlZm9yZSB3ZSBpbXBvcnQgVVNXRFMgaXRzZWxmLlxuXG4kYm9yZGVyLWJveC1zaXppbmc6IGZhbHNlO1xuJHNjb3BlLXVzd2RzOiB0cnVlO1xuXG5AaW1wb3J0ICdkZy12YXJpYWJsZXMnO1xuXG4vLyBDb3B5IGltcG9ydHMgZnJvbSBVU1dEUyBtb2R1bGUgdG8gY29udHJvbCBpbXBvcnRzXG5cbi8qISB1c3dkcyBAdmVyc2lvbiAqL1xuXG5cbi8vIFZlbmRvciAtLS0tLS0tLS0tLS0tLSAvL1xuQGltcG9ydCAnbGliL2JvdXJib24nO1xuQGltcG9ydCAnbGliL25lYXQnO1xuQGltcG9ydCAnZGctbm9ybWFsaXplJztcblxuLy8gQ29yZSAtLS0tLS0tLS0tLS0tLSAvL1xuQGltcG9ydCAnY29yZS92YXJpYWJsZXMnO1xuQGltcG9ydCAnY29yZS9mb250cyc7XG5AaW1wb3J0ICdjb3JlL2dyaWQnO1xuQGltcG9ydCAnY29yZS91dGlsaXRpZXMnO1xuQGltcG9ydCAnZGctYmFzZSc7XG5cbi8vIEVsZW1lbnRzIC0tLS0tLS0tLS0tLS0tIC8vXG4vLyBTdHlsZXMgYmFzaWMgSFRNTCBlbGVtZW50c1xuQGltcG9ydCAnZGctYnV0dG9ucyc7XG4vKlxuQGltcG9ydCAnZWxlbWVudHMvZW1iZWQnO1xuQGltcG9ydCAnZWxlbWVudHMvZmlndXJlJztcbkBpbXBvcnQgJ2VsZW1lbnRzL2lucHV0cyc7XG5AaW1wb3J0ICdlbGVtZW50cy9sYWJlbHMnO1xuQGltcG9ydCAnZWxlbWVudHMvbGlzdCc7XG5AaW1wb3J0ICdlbGVtZW50cy90YWJsZSc7XG5AaW1wb3J0ICdlbGVtZW50cy90eXBvZ3JhcGh5JztcblxuLy8gQ29tcG9uZW50cyAtLS0tLS0tLS0tLS0tLSAvL1xuKi9cbkBpbXBvcnQgJ2NvbXBvbmVudHMvYWNjb3JkaW9ucyc7XG4vKlxuQGltcG9ydCAnY29tcG9uZW50cy9hbGVydHMnO1xuKi9cbkBpbXBvcnQgJ2RnLWJhbm5lcic7XG4vKlxuQGltcG9ydCAnY29tcG9uZW50cy9mb290ZXInO1xuQGltcG9ydCAnY29tcG9uZW50cy9mb3Jtcyc7XG5AaW1wb3J0ICdjb21wb25lbnRzL2dyYXBoaWMtbGlzdCc7XG5AaW1wb3J0ICdjb21wb25lbnRzL2hlYWRlcic7XG5AaW1wb3J0ICdjb21wb25lbnRzL2hlcm8nO1xuQGltcG9ydCAnY29tcG9uZW50cy9sYXlvdXQnO1xuQGltcG9ydCAnY29tcG9uZW50cy9tZWRpYS1ibG9jayc7XG5AaW1wb3J0ICdjb21wb25lbnRzL25hdmlnYXRpb24nO1xuQGltcG9ydCAnY29tcG9uZW50cy9zZWFyY2gnO1xuQGltcG9ydCAnY29tcG9uZW50cy9zZWN0aW9uJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvc2lkZW5hdic7XG5AaW1wb3J0ICdjb21wb25lbnRzL3NraXBuYXYnO1xuKi9cblxuLy8gTmV3IGN1c3RvbSBDU1MgcnVsZXMgY2FuIGdvIGhlcmUuXG5cbkBpbXBvcnQgJ2RnLXVzd2RzLW92ZXJyaWRlcyc7XG4iLCJAaWYgJHNjb3BlLXVzd2RzID09IGZhbHNlIHtcbiAgaHRtbCB7XG4gICAgZm9udC1mYW1pbHk6IHNhbnMtc2VyaWY7IC8qIDEgKi9cbiAgICAtbXMtdGV4dC1zaXplLWFkanVzdDogMTAwJTsgLyogMiAqL1xuICAgIC13ZWJraXQtdGV4dC1zaXplLWFkanVzdDogMTAwJTsgLyogMiAqL1xuICB9XG5cbiAgYm9keSB7XG4gICAgbWFyZ2luOiAwO1xuICB9XG5cbiAgYXJ0aWNsZSxcbiAgYXNpZGUsXG4gIGRldGFpbHMsXG4gIGZpZ2NhcHRpb24sXG4gIGZpZ3VyZSxcbiAgZm9vdGVyLFxuICBoZWFkZXIsXG4gIGhncm91cCxcbiAgbWFpbixcbiAgbWVudSxcbiAgbmF2LFxuICBzZWN0aW9uLFxuICBzdW1tYXJ5IHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgfVxuXG4gIGF1ZGlvLFxuICBjYW52YXMsXG4gIHByb2dyZXNzLFxuICB2aWRlbyB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrOyAvKiAxICovXG4gICAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lOyAvKiAyICovXG4gIH1cblxuICBhdWRpbzpub3QoW2NvbnRyb2xzXSkge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgaGVpZ2h0OiAwO1xuICB9XG5cbiAgW2hpZGRlbl0sXG4gIHRlbXBsYXRlIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG5cbiAgYSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIH1cblxuICBhOmFjdGl2ZSxcbiAgYTpob3ZlciB7XG4gICAgb3V0bGluZTogMDtcbiAgfVxuXG4gIGFiYnJbdGl0bGVdIHtcbiAgICBib3JkZXItYm90dG9tOiAxcHggZG90dGVkO1xuICB9XG5cbiAgYixcbiAgc3Ryb25nIHtcbiAgICBmb250LXdlaWdodDogYm9sZDtcbiAgfVxuXG4gIGRmbiB7XG4gICAgZm9udC1zdHlsZTogaXRhbGljO1xuICB9XG5cbiAgaDEge1xuICAgIGZvbnQtc2l6ZTogMmVtO1xuICAgIG1hcmdpbjogMC42N2VtIDA7XG4gIH1cblxuICBtYXJrIHtcbiAgICBiYWNrZ3JvdW5kOiAjZmYwO1xuICAgIGNvbG9yOiAjMDAwO1xuICB9XG5cbiAgc21hbGwge1xuICAgIGZvbnQtc2l6ZTogODAlO1xuICB9XG5cbiAgc3ViLFxuICBzdXAge1xuICAgIGZvbnQtc2l6ZTogNzUlO1xuICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG4gIH1cblxuICBzdXAge1xuICAgIHRvcDogLTAuNWVtO1xuICB9XG5cbiAgc3ViIHtcbiAgICBib3R0b206IC0wLjI1ZW07XG4gIH1cblxuICBpbWcge1xuICAgIGJvcmRlcjogMDtcbiAgfVxuXG4gIHN2Zzpub3QoOnJvb3QpIHtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICB9XG5cbiAgZmlndXJlIHtcbiAgICBtYXJnaW46IDFlbSA0MHB4O1xuICB9XG5cbiAgaHIge1xuICAgIGJveC1zaXppbmc6IGNvbnRlbnQtYm94O1xuICAgIGhlaWdodDogMDtcbiAgfVxuXG4gIHByZSB7XG4gICAgb3ZlcmZsb3c6IGF1dG87XG4gIH1cblxuICBjb2RlLFxuICBrYmQsXG4gIHByZSxcbiAgc2FtcCB7XG4gICAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZSwgbW9ub3NwYWNlO1xuICAgIGZvbnQtc2l6ZTogMWVtO1xuICB9XG5cbiAgYnV0dG9uLFxuICBpbnB1dCxcbiAgb3B0Z3JvdXAsXG4gIHNlbGVjdCxcbiAgdGV4dGFyZWEge1xuICAgIGNvbG9yOiBpbmhlcml0OyAvKiAxICovXG4gICAgZm9udDogaW5oZXJpdDsgLyogMiAqL1xuICAgIG1hcmdpbjogMDsgLyogMyAqL1xuICB9XG5cbiAgYnV0dG9uIHtcbiAgICBvdmVyZmxvdzogdmlzaWJsZTtcbiAgfVxuXG4gIGJ1dHRvbixcbiAgc2VsZWN0IHtcbiAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgfVxuXG4gIGJ1dHRvbixcbiAgaHRtbCBpbnB1dFt0eXBlPVwiYnV0dG9uXCJdLCAvKiAxICovXG4gIGlucHV0W3R5cGU9XCJyZXNldFwiXSxcbiAgaW5wdXRbdHlwZT1cInN1Ym1pdFwiXSB7XG4gICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBidXR0b247IC8qIDIgKi9cbiAgICBjdXJzb3I6IHBvaW50ZXI7IC8qIDMgKi9cbiAgfVxuXG4gIGJ1dHRvbltkaXNhYmxlZF0sXG4gIGh0bWwgaW5wdXRbZGlzYWJsZWRdIHtcbiAgICBjdXJzb3I6IGRlZmF1bHQ7XG4gIH1cblxuICBidXR0b246Oi1tb3otZm9jdXMtaW5uZXIsXG4gIGlucHV0OjotbW96LWZvY3VzLWlubmVyIHtcbiAgICBib3JkZXI6IDA7XG4gICAgcGFkZGluZzogMDtcbiAgfVxuXG4gIGlucHV0IHtcbiAgICBsaW5lLWhlaWdodDogbm9ybWFsO1xuICB9XG5cbiAgaW5wdXRbdHlwZT1cImNoZWNrYm94XCJdLFxuICBpbnB1dFt0eXBlPVwicmFkaW9cIl0ge1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7IC8qIDEgKi9cbiAgICBwYWRkaW5nOiAwOyAvKiAyICovXG4gIH1cblxuICBpbnB1dFt0eXBlPVwibnVtYmVyXCJdOjotd2Via2l0LWlubmVyLXNwaW4tYnV0dG9uLFxuICBpbnB1dFt0eXBlPVwibnVtYmVyXCJdOjotd2Via2l0LW91dGVyLXNwaW4tYnV0dG9uIHtcbiAgICBoZWlnaHQ6IGF1dG87XG4gIH1cblxuICBpbnB1dFt0eXBlPVwic2VhcmNoXCJdIHtcbiAgICAtd2Via2l0LWFwcGVhcmFuY2U6IHRleHRmaWVsZDsgLyogMSAqL1xuICAgIGJveC1zaXppbmc6IGNvbnRlbnQtYm94OyAvKiAyICovXG4gIH1cblxuICBpbnB1dFt0eXBlPVwic2VhcmNoXCJdOjotd2Via2l0LXNlYXJjaC1jYW5jZWwtYnV0dG9uLFxuICBpbnB1dFt0eXBlPVwic2VhcmNoXCJdOjotd2Via2l0LXNlYXJjaC1kZWNvcmF0aW9uIHtcbiAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gIH1cblxuICBmaWVsZHNldCB7XG4gICAgYm9yZGVyOiAxcHggc29saWQgI2MwYzBjMDtcbiAgICBtYXJnaW46IDAgMnB4O1xuICAgIHBhZGRpbmc6IDAuMzVlbSAwLjYyNWVtIDAuNzVlbTtcbiAgfVxuXG4gIGxlZ2VuZCB7XG4gICAgYm9yZGVyOiAwOyAvKiAxICovXG4gICAgcGFkZGluZzogMDsgLyogMiAqL1xuICB9XG5cbiAgdGV4dGFyZWEge1xuICAgIG92ZXJmbG93OiBhdXRvO1xuICB9XG5cbiAgb3B0Z3JvdXAge1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICB9XG5cbiAgdGFibGUge1xuICAgIGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7XG4gICAgYm9yZGVyLXNwYWNpbmc6IDA7XG4gIH1cblxuICB0ZCxcbiAgdGgge1xuICAgIHBhZGRpbmc6IDA7XG4gIH1cbn0gQGVsc2Uge1xuICAudXN3ZHMgaHRtbCwgaHRtbC51c3dkcyB7XG4gICAgZm9udC1mYW1pbHk6IHNhbnMtc2VyaWY7IC8qIDEgKi9cbiAgICAtbXMtdGV4dC1zaXplLWFkanVzdDogMTAwJTsgLyogMiAqL1xuICAgIC13ZWJraXQtdGV4dC1zaXplLWFkanVzdDogMTAwJTsgLyogMiAqL1xuICB9XG4gIC51c3dkcyBib2R5LCBib2R5LnVzd2RzIHtcbiAgICBtYXJnaW46IDA7XG4gIH1cblxuICAudXN3ZHMgYXJ0aWNsZSwgYXJ0aWNsZS51c3dkcyxcbiAgLnVzd2RzIGFzaWRlLCBhc2lkZS51c3dkcyxcbiAgLnVzd2RzIGRldGFpbHMsIGRldGFpbHMudXN3ZHMsXG4gIC51c3dkcyBmaWdjYXB0aW9uLCBmaWdjYXB0aW9uLnVzd2RzLFxuICAudXN3ZHMgZmlndXJlLCBmaWd1cmUudXN3ZHMsXG4gIC51c3dkcyBmb290ZXIsIGZvb3Rlci51c3dkcyxcbiAgLnVzd2RzIGhlYWRlciwgaGVhZGVyLnVzd2RzLFxuICAudXN3ZHMgaGdyb3VwLCBoZ3JvdXAudXN3ZHMsXG4gIC51c3dkcyBtYWluLCBtYWluLnVzd2RzLFxuICAudXN3ZHMgbWVudSwgbWVudS51c3dkcyxcbiAgLnVzd2RzIG5hdiwgbmF2LnVzd2RzLFxuICAudXN3ZHMgc2VjdGlvbiwgc2VjdGlvbi51c3dkcyxcbiAgLnVzd2RzIHN1bW1hcnksIHN1bW1hcnkudXN3ZHMge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICB9XG5cbiAgLnVzd2RzIGF1ZGlvLCBhdWRpby51c3dkcyxcbiAgLnVzd2RzIGNhbnZhcywgY2FudmFzLnVzd2RzLFxuICAudXN3ZHMgcHJvZ3Jlc3MsIHByb2dyZXNzLnVzd2RzLFxuICAudXN3ZHMgdmlkZW8sIHZpZGVvLnVzd2RzIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IC8qIDEgKi9cbiAgICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7IC8qIDIgKi9cbiAgfVxuXG4gIC51c3dkcyBhdWRpbzpub3QoW2NvbnRyb2xzXSksIGF1ZGlvOm5vdChbY29udHJvbHNdKS51c3dkcyB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgICBoZWlnaHQ6IDA7XG4gIH1cblxuICAudXN3ZHMgW2hpZGRlbl0sIFtoaWRkZW5dLnVzd2RzLFxuICAudXN3ZHMgdGVtcGxhdGUsIHRlbXBsYXRlLnVzd2RzIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG5cbiAgLnVzd2RzIGEsIGEudXN3ZHMge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICB9XG5cbiAgLnVzd2RzIGE6YWN0aXZlLCBhOmFjdGl2ZS51c3dkcyxcbiAgLnVzd2RzIGE6aG92ZXIsIGE6aG92ZXIudXN3ZHMge1xuICAgIG91dGxpbmU6IDA7XG4gIH1cblxuICAudXN3ZHMgYWJiclt0aXRsZV0sIGFiYnJbdGl0bGVdLnVzd2RzIHtcbiAgICBib3JkZXItYm90dG9tOiAxcHggZG90dGVkO1xuICB9XG5cbiAgLnVzd2RzIGIsIGIudXN3ZHMsXG4gIC51c3dkcyBzdHJvbmcsIHN0cm9uZy51c3dkcyB7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIH1cblxuICAudXN3ZHMgZGZuLCBkZm4udXN3ZHMge1xuICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgfVxuXG4gIGgxIHtcbiAgICBmb250LXNpemU6IDJlbTtcbiAgICBtYXJnaW46IDAuNjdlbSAwO1xuICB9XG5cbiAgLnVzd2RzIG1hcmssIG1hcmsudXN3ZHMge1xuICAgIGJhY2tncm91bmQ6ICNmZjA7XG4gICAgY29sb3I6ICMwMDA7XG4gIH1cblxuICAudXN3ZHMgc21hbGwsIHNtYWxsLnVzd2RzIHtcbiAgICBmb250LXNpemU6IDgwJTtcbiAgfVxuXG4gIC51c3dkcyBzdWIsIHN1Yi51c3dkcyxcbiAgLnVzd2RzIHN1cCwgc3VwLnVzd2RzIHtcbiAgICBmb250LXNpemU6IDc1JTtcbiAgICBsaW5lLWhlaWdodDogMDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xuICB9XG5cbiAgLnVzd2RzIHN1cCwgc3VwLnVzd2RzIHtcbiAgICB0b3A6IC0wLjVlbTtcbiAgfVxuXG4gIC51c3dkcyBzdWIsIHN1Yi51c3dkcyB7XG4gICAgYm90dG9tOiAtMC4yNWVtO1xuICB9XG5cbiAgLnVzd2RzIGltZywgaW1nLnVzd2RzIHtcbiAgICBib3JkZXI6IDA7XG4gIH1cblxuICAudXN3ZHMgc3ZnOm5vdCg6cm9vdCksIHN2Zzpub3QoOnJvb3QpLnVzd2RzIHtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICB9XG5cbiAgLnVzd2RzIGZpZ3VyZSwgZmlndXJlLnVzd2RzIHtcbiAgICBtYXJnaW46IDFlbSA0MHB4O1xuICB9XG5cbiAgLnVzd2RzIGhyLCBoci51c3dkcyB7XG4gICAgYm94LXNpemluZzogY29udGVudC1ib3g7XG4gICAgaGVpZ2h0OiAwO1xuICB9XG5cbiAgLnVzd2RzIHByZSwgcHJlLnVzd2RzIHtcbiAgICBvdmVyZmxvdzogYXV0bztcbiAgfVxuXG4gIC51c3dkcyBjb2RlLCBjb2RlLnVzd2RzLFxuICAudXN3ZHMga2JkLCBrYmQudXN3ZHMsXG4gIC51c3dkcyBwcmUsIHByZS51c3dkcyxcbiAgLnVzd2RzIHNhbXAsIHNhbXAudXN3ZHMge1xuICAgIGZvbnQtZmFtaWx5OiBtb25vc3BhY2UsIG1vbm9zcGFjZTtcbiAgICBmb250LXNpemU6IDFlbTtcbiAgfVxuXG4gIC51c3dkcyBidXR0b24sIGJ1dHRvbi51c3dkcyxcbiAgLnVzd2RzIGlucHV0LCBpbnB1dC51c3dkcyxcbiAgLnVzd2RzIG9wdGdyb3VwLCBvcHRncm91cC51c3dkcyxcbiAgLnVzd2RzIHNlbGVjdCwgc2VsZWN0LnVzd2RzLFxuICAudXN3ZHMgdGV4dGFyZWEsIHRleHRhcmVhLnVzd2RzIHtcbiAgICBjb2xvcjogaW5oZXJpdDsgLyogMSAqL1xuICAgIGZvbnQ6IGluaGVyaXQ7IC8qIDIgKi9cbiAgICBtYXJnaW46IDA7IC8qIDMgKi9cbiAgfVxuXG4gIC51c3dkcyBidXR0b24sIGJ1dHRvbi51c3dkcyB7XG4gICAgb3ZlcmZsb3c6IHZpc2libGU7XG4gIH1cblxuICAudXN3ZHMgYnV0dG9uLCBidXR0b24udXN3ZHMsXG4gIC51c3dkcyBzZWxlY3QsIHNlbGVjdC51c3dkcyB7XG4gICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gIH1cblxuICAudXN3ZHMgYnV0dG9uLCBidXR0b24udXN3ZHMsXG4gIGh0bWwgaW5wdXRbdHlwZT1cImJ1dHRvblwiXSwgLyogMSAqL1xuICAudXN3ZHMgaW5wdXRbdHlwZT1cInJlc2V0XCJdLCBpbnB1dFt0eXBlPVwicmVzZXRcIl0udXN3ZHMsXG4gIC51c3dkcyBpbnB1dFt0eXBlPVwic3VibWl0XCJdLCBpbnB1dFt0eXBlPVwic3VibWl0XCJdLnVzd2RzIHtcbiAgICAtd2Via2l0LWFwcGVhcmFuY2U6IGJ1dHRvbjsgLyogMiAqL1xuICAgIGN1cnNvcjogcG9pbnRlcjsgLyogMyAqL1xuICB9XG5cbiAgLnVzd2RzIGJ1dHRvbltkaXNhYmxlZF0sIGJ1dHRvbltkaXNhYmxlZF0udXN3ZHMsXG4gIGh0bWwgaW5wdXRbZGlzYWJsZWRdIHtcbiAgICBjdXJzb3I6IGRlZmF1bHQ7XG4gIH1cblxuICAudXN3ZHMgYnV0dG9uOjotbW96LWZvY3VzLWlubmVyLCBidXR0b246Oi1tb3otZm9jdXMtaW5uZXIudXN3ZHMsXG4gIC51c3dkcyBpbnB1dDo6LW1vei1mb2N1cy1pbm5lciwgaW5wdXQ6Oi1tb3otZm9jdXMtaW5uZXIudXN3ZHMge1xuICAgIGJvcmRlcjogMDtcbiAgICBwYWRkaW5nOiAwO1xuICB9XG5cbiAgLnVzd2RzIGlucHV0LCBpbnB1dC51c3dkcyB7XG4gICAgbGluZS1oZWlnaHQ6IG5vcm1hbDtcbiAgfVxuXG4gIC51c3dkcyBpbnB1dFt0eXBlPVwiY2hlY2tib3hcIl0sIGlucHV0W3R5cGU9XCJjaGVja2JveFwiXS51c3dkcyxcbiAgLnVzd2RzIGlucHV0W3R5cGU9XCJyYWRpb1wiXSwgaW5wdXRbdHlwZT1cInJhZGlvXCJdLnVzd2RzIHtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OyAvKiAxICovXG4gICAgcGFkZGluZzogMDsgLyogMiAqL1xuICB9XG5cbiAgLnVzd2RzIGlucHV0W3R5cGU9XCJudW1iZXJcIl06Oi13ZWJraXQtaW5uZXItc3Bpbi1idXR0b24sIGlucHV0W3R5cGU9XCJudW1iZXJcIl06Oi13ZWJraXQtaW5uZXItc3Bpbi1idXR0b24udXN3ZHMsXG4gIC51c3dkcyBpbnB1dFt0eXBlPVwibnVtYmVyXCJdOjotd2Via2l0LW91dGVyLXNwaW4tYnV0dG9uLCBpbnB1dFt0eXBlPVwibnVtYmVyXCJdOjotd2Via2l0LW91dGVyLXNwaW4tYnV0dG9uLnVzd2RzIHtcbiAgICBoZWlnaHQ6IGF1dG87XG4gIH1cblxuICAudXN3ZHMgaW5wdXRbdHlwZT1cInNlYXJjaFwiXSwgaW5wdXRbdHlwZT1cInNlYXJjaFwiXS51c3dkcyB7XG4gICAgLXdlYmtpdC1hcHBlYXJhbmNlOiB0ZXh0ZmllbGQ7IC8qIDEgKi9cbiAgICBib3gtc2l6aW5nOiBjb250ZW50LWJveDsgLyogMiAqL1xuICB9XG5cbiAgLnVzd2RzIGlucHV0W3R5cGU9XCJzZWFyY2hcIl06Oi13ZWJraXQtc2VhcmNoLWNhbmNlbC1idXR0b24sIGlucHV0W3R5cGU9XCJzZWFyY2hcIl06Oi13ZWJraXQtc2VhcmNoLWNhbmNlbC1idXR0b24udXN3ZHMsXG4gIC51c3dkcyBpbnB1dFt0eXBlPVwic2VhcmNoXCJdOjotd2Via2l0LXNlYXJjaC1kZWNvcmF0aW9uLCBpbnB1dFt0eXBlPVwic2VhcmNoXCJdOjotd2Via2l0LXNlYXJjaC1kZWNvcmF0aW9uLnVzd2RzIHtcbiAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gIH1cblxuICAudXN3ZHMgZmllbGRzZXQsIGZpZWxkc2V0LnVzd2RzIHtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjYzBjMGMwO1xuICAgIG1hcmdpbjogMCAycHg7XG4gICAgcGFkZGluZzogMC4zNWVtIDAuNjI1ZW0gMC43NWVtO1xuICB9XG5cbiAgLnVzd2RzIGxlZ2VuZCwgbGVnZW5kLnVzd2RzIHtcbiAgICBib3JkZXI6IDA7IC8qIDEgKi9cbiAgICBwYWRkaW5nOiAwOyAvKiAyICovXG4gIH1cblxuICAudXN3ZHMgdGV4dGFyZWEsIHRleHRhcmVhLnVzd2RzIHtcbiAgICBvdmVyZmxvdzogYXV0bztcbiAgfVxuXG4gIC51c3dkcyBvcHRncm91cCwgb3B0Z3JvdXAudXN3ZHMge1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICB9XG5cbiAgLnVzd2RzIHRhYmxlLCB0YWJsZS51c3dkcyB7XG4gICAgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTtcbiAgICBib3JkZXItc3BhY2luZzogMDtcbiAgfVxuXG4gIC51c3dkcyB0ZCwgdGQudXN3ZHMsXG4gIC51c3dkcyB0aCwgdGgudXN3ZHMge1xuICAgIHBhZGRpbmc6IDA7XG4gIH1cbn1cbiIsIkBtaXhpbiBmb250LWZhY2UoXG4gICRmb250LWZhbWlseSxcbiAgJGZpbGUtcGF0aCxcbiAgJHdlaWdodDogbm9ybWFsLFxuICAkc3R5bGU6IG5vcm1hbCxcbiAgJGFzc2V0LXBpcGVsaW5lOiAkYXNzZXQtcGlwZWxpbmUsXG4gICRmaWxlLWZvcm1hdHM6IGVvdCB3b2ZmMiB3b2ZmIHR0ZiBzdmcpIHtcblxuICAkZm9udC11cmwtcHJlZml4OiBmb250LXVybC1wcmVmaXhlcigkYXNzZXQtcGlwZWxpbmUpO1xuXG4gIEBmb250LWZhY2Uge1xuICAgIGZvbnQtZmFtaWx5OiAkZm9udC1mYW1pbHk7XG4gICAgZm9udC1zdHlsZTogJHN0eWxlO1xuICAgIGZvbnQtd2VpZ2h0OiAkd2VpZ2h0O1xuXG4gICAgc3JjOiBmb250LXNvdXJjZS1kZWNsYXJhdGlvbihcbiAgICAgICRmb250LWZhbWlseSxcbiAgICAgICRmaWxlLXBhdGgsXG4gICAgICAkYXNzZXQtcGlwZWxpbmUsXG4gICAgICAkZmlsZS1mb3JtYXRzLFxuICAgICAgJGZvbnQtdXJsLXByZWZpeFxuICAgICk7XG4gIH1cbn1cbiIsIi8qIHN0eWxlbGludC1kaXNhYmxlIGF0LXJ1bGUtZW1wdHktbGluZS1iZWZvcmUgKi9cbkBpbmNsdWRlIGZvbnQtZmFjZShcbiAgJ1NvdXJjZSBTYW5zIFBybycsXG4gICcjeyRmb250LXBhdGh9L3NvdXJjZXNhbnNwcm8tbGlnaHQtd2ViZm9udCcsXG4gIDMwMCxcbiAgbm9ybWFsLFxuICAkZmlsZS1mb3JtYXRzOiBlb3Qgd29mZjIgd29mZiB0dGZcbik7XG5cbkBpbmNsdWRlIGZvbnQtZmFjZShcbiAgJ1NvdXJjZSBTYW5zIFBybycsXG4gICcjeyRmb250LXBhdGh9L3NvdXJjZXNhbnNwcm8tcmVndWxhci13ZWJmb250JyxcbiAgNDAwLFxuICBub3JtYWwsXG4gICRmaWxlLWZvcm1hdHM6IGVvdCB3b2ZmMiB3b2ZmIHR0ZlxuKTtcblxuQGluY2x1ZGUgZm9udC1mYWNlKFxuICAnU291cmNlIFNhbnMgUHJvJyxcbiAgJyN7JGZvbnQtcGF0aH0vc291cmNlc2Fuc3Byby1pdGFsaWMtd2ViZm9udCcsXG4gIDQwMCxcbiAgaXRhbGljLFxuICAkZmlsZS1mb3JtYXRzOiBlb3Qgd29mZjIgd29mZiB0dGZcbik7XG5cbkBpbmNsdWRlIGZvbnQtZmFjZShcbiAgJ1NvdXJjZSBTYW5zIFBybycsXG4gICcjeyRmb250LXBhdGh9L3NvdXJjZXNhbnNwcm8tYm9sZC13ZWJmb250JyxcbiAgNzAwLFxuICBub3JtYWwsXG4gICRmaWxlLWZvcm1hdHM6IGVvdCB3b2ZmMiB3b2ZmIHR0ZlxuKTtcblxuQGluY2x1ZGUgZm9udC1mYWNlKFxuICAnTWVycml3ZWF0aGVyJyxcbiAgJyN7JGZvbnQtcGF0aH0vbWVycml3ZWF0aGVyLWxpZ2h0LXdlYmZvbnQnLFxuICAzMDAsXG4gIG5vcm1hbCxcbiAgJGZpbGUtZm9ybWF0czogZW90IHdvZmYyIHdvZmYgdHRmXG4pO1xuXG5AaW5jbHVkZSBmb250LWZhY2UoXG4gICdNZXJyaXdlYXRoZXInLFxuICAnI3skZm9udC1wYXRofS9tZXJyaXdlYXRoZXItcmVndWxhci13ZWJmb250JyxcbiAgNDAwLFxuICBub3JtYWwsXG4gICRmaWxlLWZvcm1hdHM6IGVvdCB3b2ZmMiB3b2ZmIHR0ZlxuKTtcblxuQGluY2x1ZGUgZm9udC1mYWNlKFxuICAnTWVycml3ZWF0aGVyJyxcbiAgJyN7JGZvbnQtcGF0aH0vbWVycml3ZWF0aGVyLWl0YWxpYy13ZWJmb250JyxcbiAgNDAwLFxuICBpdGFsaWMsXG4gICRmaWxlLWZvcm1hdHM6IGVvdCB3b2ZmMiB3b2ZmIHR0ZlxuKTtcblxuQGluY2x1ZGUgZm9udC1mYWNlKFxuICAnTWVycml3ZWF0aGVyJyxcbiAgJyN7JGZvbnQtcGF0aH0vbWVycml3ZWF0aGVyLWJvbGQtd2ViZm9udCcsXG4gIDcwMCxcbiAgbm9ybWFsLFxuICAkZmlsZS1mb3JtYXRzOiBlb3Qgd29mZjIgd29mZiB0dGZcbik7XG4vKiBzdHlsZWxpbnQtZW5hYmxlICovXG4iLCIvLyBVc2VkIGZvciBjcmVhdGluZyB0aGUgc291cmNlIHN0cmluZyBmb3IgZm9udHMgdXNpbmcgQGZvbnQtZmFjZVxuLy8gUmVmZXJlbmNlOiBodHRwOi8vZ29vLmdsL1J1MWJLUFxuXG5AZnVuY3Rpb24gZm9udC11cmwtcHJlZml4ZXIoJGFzc2V0LXBpcGVsaW5lKSB7XG4gIEBpZiAkYXNzZXQtcGlwZWxpbmUgPT0gdHJ1ZSB7XG4gICAgQHJldHVybiBmb250LXVybDtcbiAgfSBAZWxzZSB7XG4gICAgQHJldHVybiB1cmw7XG4gIH1cbn1cblxuQGZ1bmN0aW9uIGZvbnQtc291cmNlLWRlY2xhcmF0aW9uKFxuICAkZm9udC1mYW1pbHksXG4gICRmaWxlLXBhdGgsXG4gICRhc3NldC1waXBlbGluZSxcbiAgJGZpbGUtZm9ybWF0cyxcbiAgJGZvbnQtdXJsKSB7XG5cbiAgJHNyYzogKCk7XG5cbiAgJGZvcm1hdHMtbWFwOiAoXG4gICAgZW90OiAgIFwiI3skZmlsZS1wYXRofS5lb3Q/I2llZml4XCIgZm9ybWF0KFwiZW1iZWRkZWQtb3BlbnR5cGVcIiksXG4gICAgd29mZjI6IFwiI3skZmlsZS1wYXRofS53b2ZmMlwiIGZvcm1hdChcIndvZmYyXCIpLFxuICAgIHdvZmY6ICBcIiN7JGZpbGUtcGF0aH0ud29mZlwiIGZvcm1hdChcIndvZmZcIiksXG4gICAgdHRmOiAgIFwiI3skZmlsZS1wYXRofS50dGZcIiBmb3JtYXQoXCJ0cnVldHlwZVwiKSxcbiAgICBzdmc6ICAgXCIjeyRmaWxlLXBhdGh9LnN2ZyMjeyRmb250LWZhbWlseX1cIiBmb3JtYXQoXCJzdmdcIilcbiAgKTtcblxuICBAZWFjaCAka2V5LCAkdmFsdWVzIGluICRmb3JtYXRzLW1hcCB7XG4gICAgQGlmIGNvbnRhaW5zKCRmaWxlLWZvcm1hdHMsICRrZXkpIHtcbiAgICAgICRmaWxlLXBhdGg6IG50aCgkdmFsdWVzLCAxKTtcbiAgICAgICRmb250LWZvcm1hdDogbnRoKCR2YWx1ZXMsIDIpO1xuXG4gICAgICBAaWYgJGFzc2V0LXBpcGVsaW5lID09IHRydWUge1xuICAgICAgICAkc3JjOiBhcHBlbmQoJHNyYywgZm9udC11cmwoJGZpbGUtcGF0aCkgJGZvbnQtZm9ybWF0LCBjb21tYSk7XG4gICAgICB9IEBlbHNlIHtcbiAgICAgICAgJHNyYzogYXBwZW5kKCRzcmMsIHVybCgkZmlsZS1wYXRoKSAkZm9udC1mb3JtYXQsIGNvbW1hKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBAcmV0dXJuICRzcmM7XG59XG4iLCIvLyBHcmlkIGNvbnRhaW5lclxuLnVzYS1ncmlkLFxuLnVzYS1ncmlkLWZ1bGwge1xuICBAaW5jbHVkZSBvdXRlci1jb250YWluZXIoKTtcbiAgbWF4LXdpZHRoOiAkc2l0ZS1tYXgtd2lkdGg7XG59XG5cbi51c2EtZ3JpZCB7XG4gIEBpbmNsdWRlIHBhZGRpbmcobnVsbCAkc2l0ZS1tYXJnaW5zLW1vYmlsZSk7XG5cbiAgQGluY2x1ZGUgbWVkaWEoJG1lZGl1bS1zY3JlZW4pIHtcbiAgICBAaW5jbHVkZSBwYWRkaW5nKG51bGwgJHNpdGUtbWFyZ2lucyk7XG4gIH1cbn1cblxuLnVzYS1ncmlkLWZ1bGwge1xuICBwYWRkaW5nOiAwO1xufVxuXG4vLyBHcmlkIGl0ZW1zXG5AaW5jbHVkZSBtZWRpYSgkbWVkaXVtKSB7XG4gIC51c2Etd2lkdGgtb25lLXdob2xlIHtcbiAgICBAaW5jbHVkZSBzcGFuLWNvbHVtbnMoNik7XG4gIH1cblxuICAudXNhLXdpZHRoLW9uZS1oYWxmIHtcbiAgICBAaW5jbHVkZSBzcGFuLWNvbHVtbnMoMyk7XG4gIH1cblxuICAudXNhLXdpZHRoLW9uZS10aGlyZCB7XG4gICAgQGluY2x1ZGUgc3Bhbi1jb2x1bW5zKDIpO1xuICB9XG5cbiAgLnVzYS13aWR0aC10d28tdGhpcmRzIHtcbiAgICBAaW5jbHVkZSBzcGFuLWNvbHVtbnMoNCk7XG4gIH1cblxuICAudXNhLXdpZHRoLW9uZS1mb3VydGgge1xuICAgIEBpbmNsdWRlIHNwYW4tY29sdW1ucygzKTtcblxuICAgICY6bnRoLWNoaWxkKDJuKSB7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgfVxuICB9XG5cbiAgLnVzYS13aWR0aC10aHJlZS1mb3VydGhzIHtcbiAgICBAaW5jbHVkZSBzcGFuLWNvbHVtbnMoNik7XG4gIH1cblxuICAudXNhLXdpZHRoLW9uZS1zaXh0aCB7XG4gICAgQGluY2x1ZGUgc3Bhbi1jb2x1bW5zKDIpO1xuXG4gICAgJjpudGgtY2hpbGQoM24pIHtcbiAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICB9XG4gIH1cblxuICAudXNhLXdpZHRoLWZpdmUtc2l4dGhzIHtcbiAgICBAaW5jbHVkZSBzcGFuLWNvbHVtbnMoNCk7XG4gIH1cblxuICAudXNhLXdpZHRoLW9uZS10d2VsZnRoIHtcbiAgICBAaW5jbHVkZSBzcGFuLWNvbHVtbnMoMik7XG5cbiAgICAmOm50aC1jaGlsZCgzbikge1xuICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgIH1cbiAgfVxuXG4gIC51c2Etd2lkdGgtZml2ZS10d2VsZnRocyB7XG4gICAgQGluY2x1ZGUgc3Bhbi1jb2x1bW5zKDIpO1xuICB9XG5cbiAgLnVzYS13aWR0aC1zZXZlbi10d2VsZnRocyB7XG4gICAgQGluY2x1ZGUgc3Bhbi1jb2x1bW5zKDQpO1xuICB9XG59XG5cbkBpbmNsdWRlIG1lZGlhKCRsYXJnZSkge1xuICAudXNhLXdpZHRoLW9uZS13aG9sZSB7XG4gICAgQGluY2x1ZGUgc3Bhbi1jb2x1bW5zKDEyKTtcbiAgfVxuXG4gIC51c2Etd2lkdGgtb25lLWhhbGYge1xuICAgIEBpbmNsdWRlIHNwYW4tY29sdW1ucyg2KTtcbiAgfVxuXG4gIC51c2Etd2lkdGgtb25lLXRoaXJkIHtcbiAgICBAaW5jbHVkZSBzcGFuLWNvbHVtbnMoNCk7XG4gIH1cblxuICAudXNhLXdpZHRoLXR3by10aGlyZHMge1xuICAgIEBpbmNsdWRlIHNwYW4tY29sdW1ucyg4KTtcbiAgfVxuXG4gIC51c2Etd2lkdGgtb25lLWZvdXJ0aCB7XG4gICAgQGluY2x1ZGUgc3Bhbi1jb2x1bW5zKDMpO1xuXG4gICAgJjpudGgtY2hpbGQoMm4pIHtcbiAgICAgIEBpbmNsdWRlIHNwYW4tY29sdW1ucygzKTtcbiAgICB9XG5cbiAgICAmOm50aC1jaGlsZCg0bikge1xuICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgIH1cbiAgfVxuXG4gIC51c2Etd2lkdGgtdGhyZWUtZm91cnRocyB7XG4gICAgQGluY2x1ZGUgc3Bhbi1jb2x1bW5zKDkpO1xuICB9XG5cbiAgLnVzYS13aWR0aC1vbmUtc2l4dGgge1xuICAgIEBpbmNsdWRlIHNwYW4tY29sdW1ucygyKTtcblxuICAgICY6bnRoLWNoaWxkKDNuKSB7XG4gICAgICBAaW5jbHVkZSBzcGFuLWNvbHVtbnMoMik7XG4gICAgfVxuXG4gICAgJjpudGgtY2hpbGQoNm4pIHtcbiAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICB9XG4gIH1cblxuICAudXNhLXdpZHRoLWZpdmUtc2l4dGhzIHtcbiAgICBAaW5jbHVkZSBzcGFuLWNvbHVtbnMoMTApO1xuICB9XG5cbiAgLnVzYS13aWR0aC1vbmUtdHdlbGZ0aCB7XG4gICAgQGluY2x1ZGUgc3Bhbi1jb2x1bW5zKDEpO1xuXG4gICAgJjpudGgtY2hpbGQoM24pIHtcbiAgICAgIEBpbmNsdWRlIHNwYW4tY29sdW1ucygxKTtcbiAgICB9XG5cbiAgICAmOm50aC1jaGlsZCgxMm4pIHtcbiAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICB9XG4gIH1cblxuICAudXNhLXdpZHRoLWZpdmUtdHdlbGZ0aHMge1xuICAgIEBpbmNsdWRlIHNwYW4tY29sdW1ucyg1KTtcbiAgfVxuXG4gIC51c2Etd2lkdGgtc2V2ZW4tdHdlbGZ0aHMge1xuICAgIEBpbmNsdWRlIHNwYW4tY29sdW1ucyg3KTtcbiAgfVxufVxuXG4vLyBTcGVjaWZpZXMgZW5kIG9mIGEgcm93LlxuLy8gUmVxdWlyZWQgaWYgZ3JpZC1ib3ggY29udGFpbnMgbXVsdGlwbGUgcm93cy5cbi8vIFJlcXVpcmVkIGlmIGJyb3dzZXIgZG9lcyBub3Qgc3VwcG9ydCA6bGFzdC1jaGlsZFxuLnVzYS1lbmQtcm93IHtcbiAgQGluY2x1ZGUgb21lZ2EoKTtcbn1cblxuLy8gR3JpZCBPZmZzZXRzXG4udXNhLW9mZnNldC1vbmUtdHdlbGZ0aCB7XG4gIEBpbmNsdWRlIHNoaWZ0KDEgb2YgMTIpO1xufVxuXG4udXNhLW9mZnNldC1vbmUtc2l4dGgge1xuICBAaW5jbHVkZSBzaGlmdCgyIG9mIDEyKTtcbn1cblxuLnVzYS1vZmZzZXQtb25lLWZvdXJ0aCB7XG4gIEBpbmNsdWRlIHNoaWZ0KDMgb2YgMTIpO1xufVxuXG4udXNhLW9mZnNldC1vbmUtdGhpcmQge1xuICBAaW5jbHVkZSBzaGlmdCg0IG9mIDEyKTtcbn1cblxuLnVzYS1vZmZzZXQtZml2ZS10d2VsZnRocyB7XG4gIEBpbmNsdWRlIHNoaWZ0KDUgb2YgMTIpO1xufVxuXG4udXNhLW9mZnNldC1vbmUtaGFsZiB7XG4gIEBpbmNsdWRlIHNoaWZ0KDYgb2YgMTIpO1xufVxuXG4udXNhLW9mZnNldC1zZXZlbi10d2VsZnRocyB7XG4gIEBpbmNsdWRlIHNoaWZ0KDcgb2YgMTIpO1xufVxuXG4udXNhLW9mZnNldC10d28tdGhpcmRzIHtcbiAgQGluY2x1ZGUgc2hpZnQoOCBvZiAxMik7XG59XG5cbi51c2Etb2Zmc2V0LXRocmVlLWZvdXJ0aHMge1xuICBAaW5jbHVkZSBzaGlmdCg5IG9mIDEyKTtcbn1cblxuLnVzYS1vZmZzZXQtZml2ZS1zaXh0aHMge1xuICBAaW5jbHVkZSBzaGlmdCgxMCBvZiAxMik7XG59XG5cbi51c2Etb2Zmc2V0LWVsZXZlbi10d2VsZnRocyB7XG4gIEBpbmNsdWRlIHNoaWZ0KDExIG9mIDEyKTtcbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIE1ha2VzIGFuIGVsZW1lbnQgYSBvdXRlciBjb250YWluZXIgYnkgY2VudGVyaW5nIGl0IGluIHRoZSB2aWV3cG9ydCwgY2xlYXJpbmcgaXRzIGZsb2F0cywgYW5kIHNldHRpbmcgaXRzIGBtYXgtd2lkdGhgLlxuLy8vIEFsdGhvdWdoIG9wdGlvbmFsLCB1c2luZyBgb3V0ZXItY29udGFpbmVyYCBpcyByZWNvbW1lbmRlZC4gVGhlIG1peGluIGNhbiBiZSBjYWxsZWQgb24gbW9yZSB0aGFuIG9uZSBlbGVtZW50IHBlciBwYWdlLCBhcyBsb25nIGFzIHRoZXkgYXJlIG5vdCBuZXN0ZWQuXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlciBbdW5pdF19ICRsb2NhbC1tYXgtd2lkdGggWyRtYXgtd2lkdGhdXG4vLy8gICBNYXggd2lkdGggdG8gYmUgYXBwbGllZCB0byB0aGUgZWxlbWVudC4gQ2FuIGJlIGEgcGVyY2VudGFnZSBvciBhIG1lYXN1cmUuXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2Vcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgQGluY2x1ZGUgb3V0ZXItY29udGFpbmVyKDEwMCUpO1xuLy8vICAgfVxuLy8vXG4vLy8gQGV4YW1wbGUgY3NzIC0gQ1NTIE91dHB1dFxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBtYXgtd2lkdGg6IDEwMCU7XG4vLy8gICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuLy8vICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4vLy8gICB9XG4vLy9cbi8vLyAgIC5lbGVtZW50OjphZnRlciB7XG4vLy8gICAgIGNsZWFyOiBib3RoO1xuLy8vICAgICBjb250ZW50OiBcIlwiO1xuLy8vICAgICBkaXNwbGF5OiB0YWJsZTtcbi8vLyAgIH1cblxuQG1peGluIG91dGVyLWNvbnRhaW5lcigkbG9jYWwtbWF4LXdpZHRoOiAkbWF4LXdpZHRoKSB7XG4gIEBpbmNsdWRlIGNsZWFyZml4O1xuICBtYXgtd2lkdGg6ICRsb2NhbC1tYXgtd2lkdGg7XG4gIG1hcmdpbjoge1xuICAgIGxlZnQ6IGF1dG87XG4gICAgcmlnaHQ6IGF1dG87XG4gIH1cbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIFNldHMgdGhlIHJlbGF0aXZlIHdpZHRoIG9mIGEgc2luZ2xlIGdyaWQgY29sdW1uLiBUaGUgdW5pdCB1c2VkIHNob3VsZCBiZSB0aGUgc2FtZSBvbmUgdXNlZCB0byBkZWZpbmUgYCRndXR0ZXJgLiBTZXQgd2l0aCBhIGAhZ2xvYmFsYCBmbGFnLlxuLy8vXG4vLy8gQHR5cGUgTnVtYmVyIChVbml0KVxuXG4kY29sdW1uOiA0LjIzNThlbSAhZGVmYXVsdDtcblxuLy8vIFNldHMgdGhlIHJlbGF0aXZlIHdpZHRoIG9mIGEgc2luZ2xlIGdyaWQgZ3V0dGVyLiBUaGUgdW5pdCB1c2VkIHNob3VsZCBiZSB0aGUgc2FtZSBvbmUgdXNlZCB0byBkZWZpbmUgYCRjb2x1bW5gLiBTZXQgd2l0aCB0aGUgYCFnbG9iYWxgIGZsYWcuXG4vLy9cbi8vLyBAdHlwZSBOdW1iZXIgKFVuaXQpXG5cbiRndXR0ZXI6IDEuNjE4ZW0gIWRlZmF1bHQ7XG5cbi8vLyBTZXRzIHRoZSB0b3RhbCBudW1iZXIgb2YgY29sdW1ucyBpbiB0aGUgZ3JpZC4gSXRzIHZhbHVlIGNhbiBiZSBvdmVycmlkZGVuIGluc2lkZSBhIG1lZGlhIHF1ZXJ5IHVzaW5nIHRoZSBgbWVkaWEoKWAgbWl4aW4uIFNldCB3aXRoIHRoZSBgIWdsb2JhbGAgZmxhZy5cbi8vL1xuLy8vIEB0eXBlIE51bWJlciAoVW5pdGxlc3MpXG5cbiRncmlkLWNvbHVtbnM6IDEyICFkZWZhdWx0O1xuXG4vLy8gU2V0cyB0aGUgbWF4LXdpZHRoIHByb3BlcnR5IG9mIHRoZSBlbGVtZW50IHRoYXQgaW5jbHVkZXMgYG91dGVyLWNvbnRhaW5lcigpYC4gU2V0IHdpdGggdGhlIGAhZ2xvYmFsYCBmbGFnLlxuLy8vXG4vLy8gQHR5cGUgTnVtYmVyIChVbml0KVxuLy8vXG4kbWF4LXdpZHRoOiAxMjAwcHggIWRlZmF1bHQ7XG5cbi8vLyBXaGVuIHNldCB0byB0cnVlLCBpdCBzZXRzIHRoZSBib3gtc2l6aW5nIHByb3BlcnR5IG9mIGFsbCBlbGVtZW50cyB0byBgYm9yZGVyLWJveGAuIFNldCB3aXRoIGEgYCFnbG9iYWxgIGZsYWcuXG4vLy9cbi8vLyBAdHlwZSBCb29sXG4vLy9cbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XG4vLy8gICBodG1sIHtcbi8vLyAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsgfVxuLy8vXG4vLy8gICAqLCAqOjphZnRlciwgKjo6YmVmb3JlIHtcbi8vLyAgICAgYm94LXNpemluZzogaW5oZXJpdDtcbi8vLyAgIH1cblxuJGJvcmRlci1ib3gtc2l6aW5nOiB0cnVlICFkZWZhdWx0O1xuXG4vLy8gU2V0cyB0aGUgZGVmYXVsdCBbbWVkaWEgZmVhdHVyZV0oaHR0cDovL3d3dy53My5vcmcvVFIvY3NzMy1tZWRpYXF1ZXJpZXMvI21lZGlhKSB0aGF0IGBtZWRpYSgpYCBhbmQgYG5ldy1icmVha3BvaW50KClgIHJldmVydCB0byB3aGVuIG9ubHkgYSBicmVha3BvaW50IHZhbHVlIGlzIHBhc3NlZC4gU2V0IHdpdGggYSBgIWdsb2JhbGAgZmxhZy5cbi8vL1xuLy8vIEB0eXBlIFN0cmluZ1xuXG4kZGVmYXVsdC1mZWF0dXJlOiBtaW4td2lkdGg7IC8vIERlZmF1bHQgQG1lZGlhIGZlYXR1cmUgZm9yIHRoZSBicmVha3BvaW50KCkgbWl4aW5cblxuLy8vU2V0cyB0aGUgZGVmYXVsdCBsYXlvdXQgZGlyZWN0aW9uIG9mIHRoZSBncmlkLiBDYW4gYmUgYExUUmAgb3IgYFJUTGAuIFNldCB3aXRoIGEgYCFnbG9iYWxgIGZsYWcuXG4vLy9cbi8vL0B0eXBlIFN0cmluZ1xuXG4kZGVmYXVsdC1sYXlvdXQtZGlyZWN0aW9uOiBMVFIgIWRlZmF1bHQ7XG4iLCIkYmFzZS1yZW06IDE2cHg7IC8vIGEgbmV3IHZhbHVlIGRpc3RpbmN0IGZyb20gVVNXRFMgc3RhdGljIHZhcjtcbiRzYW5zLW5vcm1hbGl6ZS1tdWx0aXBsaWVyOiAxLjA7IC8vIG11bHRpcGxpZXIgZm9yIHRyZWJ1Y2hldDsgdGFraW5nIFNvdXJjZSBTYW5zIGFzIDEuMFxuXG5AaW1wb3J0ICdkZy1mdW5jdGlvbnMnO1xuXG4vLyBUeXBvZ3JhcGh5XG4vLyBSZW1vdmluZyB0aGUgZnJvbSAkZW0tYmFzZSBzbyB3ZSBhcmUgbm90IGluaGVyaXRpbmcgdGhhdFxuLy8gdmFsdWUgZnJvbSBCb3VyYm9uLlxuLy8kZW0tYmFzZTogICAgICAgICAgICAgIDEwcHg7XG4kYmFzZS1mb250LXNpemUtcHg6ICAgICAgMTdweDtcbiRzbWFsbC1mb250LXNpemUtcHg6ICAgICAxNHB4O1xuJGxlYWQtZm9udC1zaXplLXB4OiAgICAgIDIwcHg7XG4kdGl0bGUtZm9udC1zaXplLXB4OiAgICAgNTJweDtcbiRoMS1mb250LXNpemUtcHg6ICAgICAgICA0MHB4O1xuJGgyLWZvbnQtc2l6ZS1weDogICAgICAgIDMwcHg7XG4kaDMtZm9udC1zaXplLXB4OiAgICAgICAgMjBweDtcbiRoNC1mb250LXNpemUtcHg6ICAgICAgICAxN3B4O1xuJGg1LWZvbnQtc2l6ZS1weDogICAgICAgIDE1cHg7XG4kaDYtZm9udC1zaXplLXB4OiAgICAgICAgMTNweDtcblxuXG4kYmFzZS1mb250LXNpemU6ICAgICAgc2l6ZSgkYmFzZS1mb250LXNpemUtcHgpO1xuJHNtYWxsLWZvbnQtc2l6ZTogICAgIHNpemUoJHNtYWxsLWZvbnQtc2l6ZS1weCk7XG4kbGVhZC1mb250LXNpemU6ICAgICAgc2l6ZSgkbGVhZC1mb250LXNpemUtcHgpO1xuJHRpdGxlLWZvbnQtc2l6ZTogICAgIHNpemUoJHRpdGxlLWZvbnQtc2l6ZS1weCk7XG4kaDEtZm9udC1zaXplOiAgICAgICAgc2l6ZSgkaDEtZm9udC1zaXplLXB4KTtcbiRoMi1mb250LXNpemU6ICAgICAgICBzaXplKCRoMi1mb250LXNpemUtcHgpO1xuJGgzLWZvbnQtc2l6ZTogICAgICAgIHNpemUoJGgzLWZvbnQtc2l6ZS1weCk7XG4kaDQtZm9udC1zaXplOiAgICAgICAgc2l6ZSgkaDQtZm9udC1zaXplLXB4KTtcbiRoNS1mb250LXNpemU6ICAgICAgICBzaXplKCRoNS1mb250LXNpemUtcHgpO1xuJGg2LWZvbnQtc2l6ZTogICAgICAgIHNpemUoJGg2LWZvbnQtc2l6ZS1weCk7XG4vLyAkYmFzZS1saW5lLWhlaWdodDogICAgMS41O1xuLy8gJGhlYWRpbmctbGluZS1oZWlnaHQ6IDEuMztcbi8vICRsZWFkLWxpbmUtaGVpZ2h0OiAgICAxLjc7XG5cbiRmb250LXNhbnM6ICAgICAgICAgICBUcmVidWNoZXQsVGFob21hLHNhbnMtc2VyaWY7XG4vLyAkZm9udC1zZXJpZjogICAgICAgICAgJ01lcnJpd2VhdGhlcicsICRnZW9yZ2lhO1xuXG4vLyBUT0RPIHRoZXNlIHNob3VsZCBiZSBjYWxsZWQgZm9udC13ZWlnaHQtJHt9XG4vLyAkZm9udC1ub3JtYWw6ICAgICAgICAgNDAwO1xuLy8gJGZvbnQtYm9sZDogICAgICAgICAgIDcwMDtcblxuLy8gQ29sb3Jcbi8vICRjb2xvci1ibHVlOiAgICAgICAgICAgICAgICAgIzAwNzFiYztcbi8vICRjb2xvci1ibHVlLWRhcmtlcjogICAgICAgICAgIzIwNTQ5Mztcbi8vICRjb2xvci1ibHVlLWRhcmtlc3Q6ICAgICAgICAgIzExMmU1MTtcblxuLy8gJGNvbG9yLWFxdWE6ICAgICAgICAgICAgICAgICAjMDJiZmU3O1xuLy8gJGNvbG9yLWFxdWEtZGFyazogICAgICAgICAgICAjMDBhNmQyO1xuLy8gJGNvbG9yLWFxdWEtZGFya2VzdDogICAgICAgICAjMDQ2Yjk5O1xuLy8gJGNvbG9yLWFxdWEtbGlnaHQ6ICAgICAgICAgICAjOWJkYWYxO1xuLy8gJGNvbG9yLWFxdWEtbGlnaHRlc3Q6ICAgICAgICAjZTFmM2Y4O1xuXG4vLyAkY29sb3ItcmVkOiAgICAgICAgICAgICAgICAgICNlMzFjM2Q7XG4vLyAkY29sb3ItcmVkLWRhcms6ICAgICAgICAgICAgICNjZDIwMjY7XG4vLyAkY29sb3ItcmVkLWRhcmtlc3Q6ICAgICAgICAgICM5ODFiMWU7XG4vLyAkY29sb3ItcmVkLWxpZ2h0OiAgICAgICAgICAgICNlNTkzOTM7XG4vLyAkY29sb3ItcmVkLWxpZ2h0ZXN0OiAgICAgICAgICNmOWRlZGU7XG5cbi8vICRjb2xvci13aGl0ZTogICAgICAgICAgICAgICAgI2ZmZmZmZjtcbi8vICRjb2xvci1ibGFjazogICAgICAgICAgICAgICAgIzAwMDAwMDtcbi8vICRjb2xvci1ibGFjay1saWdodDogICAgICAgICAgIzIxMjEyMTtcblxuLy8gJGNvbG9yLWdyYXktZGFyazogICAgICAgICAgICAjMzIzYTQ1O1xuLy8gJGNvbG9yLWdyYXk6ICAgICAgICAgICAgICAgICAjNWI2MTZiO1xuLy8gJGNvbG9yLWdyYXktbWVkaXVtOiAgICAgICAgICAjNzU3NTc1O1xuLy8gJGNvbG9yLWdyYXktbGlnaHQ6ICAgICAgICAgICAjYWViMGI1O1xuLy8gJGNvbG9yLWdyYXktbGlnaHRlcjogICAgICAgICAjZDZkN2Q5O1xuLy8gJGNvbG9yLWdyYXktbGlnaHRlc3Q6ICAgICAgICAjZjFmMWYxO1xuXG4vLyAkY29sb3ItZ3JheS13YXJtLWRhcms6ICAgICAgICM0OTQ0NDA7XG4vLyAkY29sb3ItZ3JheS13YXJtLWxpZ2h0OiAgICAgICNlNGUyZTA7XG4vLyAkY29sb3ItZ3JheS1jb29sLWxpZ2h0OiAgICAgICNkY2U0ZWY7XG5cbi8vICRjb2xvci1nb2xkOiAgICAgICAgICAgICAgICAgI2ZkYjgxZTtcbi8vICRjb2xvci1nb2xkLWxpZ2h0OiAgICAgICAgICAgI2Y5YzY0Mjtcbi8vICRjb2xvci1nb2xkLWxpZ2h0ZXI6ICAgICAgICAgI2ZhZDk4MDtcbi8vICRjb2xvci1nb2xkLWxpZ2h0ZXN0OiAgICAgICAgI2ZmZjFkMjtcblxuLy8gJGNvbG9yLWdyZWVuOiAgICAgICAgICAgICAgICAjMmU4NTQwO1xuLy8gJGNvbG9yLWdyZWVuLWxpZ2h0OiAgICAgICAgICAjNGFhNTY0O1xuLy8gJGNvbG9yLWdyZWVuLWxpZ2h0ZXI6ICAgICAgICAjOTRiZmEyO1xuLy8gJGNvbG9yLWdyZWVuLWxpZ2h0ZXN0OiAgICAgICAjZTdmNGU0O1xuXG4vLyAkY29sb3ItY29vbC1ibHVlOiAgICAgICAgICAgICMyMDU0OTM7XG4vLyAkY29sb3ItY29vbC1ibHVlLWxpZ2h0OiAgICAgICM0NzczYWE7XG4vLyAkY29sb3ItY29vbC1ibHVlLWxpZ2h0ZXI6ICAgICM4YmE2Y2E7XG4vLyAkY29sb3ItY29vbC1ibHVlLWxpZ2h0ZXN0OiAgICNkY2U0ZWY7XG5cbi8vICRjb2xvci1wdXJwbGU6ICAgICAgICAgICAgICAgIzRjMmM5MjtcblxuLy8gRnVuY3Rpb25hbCBjb2xvcnNcbi8vICRjb2xvci1wcmltYXJ5OiAgICAgICAgICAgICAgJGNvbG9yLWJsdWU7XG4vLyAkY29sb3ItcHJpbWFyeS1kYXJrZXI6ICAgICAgICRjb2xvci1ibHVlLWRhcmtlcjtcbi8vICRjb2xvci1wcmltYXJ5LWRhcmtlc3Q6ICAgICAgJGNvbG9yLWJsdWUtZGFya2VzdDtcblxuLy8gJGNvbG9yLXByaW1hcnktYWx0OiAgICAgICAgICAkY29sb3ItYXF1YTtcbi8vICRjb2xvci1wcmltYXJ5LWFsdC1kYXJrOiAgICAgJGNvbG9yLWFxdWEtZGFyaztcbi8vICRjb2xvci1wcmltYXJ5LWFsdC1kYXJrZXN0OiAgJGNvbG9yLWFxdWEtZGFya2VzdDtcbi8vICRjb2xvci1wcmltYXJ5LWFsdC1saWdodDogICAgJGNvbG9yLWFxdWEtbGlnaHQ7XG4vLyAkY29sb3ItcHJpbWFyeS1hbHQtbGlnaHRlc3Q6ICRjb2xvci1hcXVhLWxpZ2h0ZXN0O1xuXG4vLyAkY29sb3Itc2Vjb25kYXJ5OiAgICAgICAgICAgICRjb2xvci1yZWQ7XG4vLyAkY29sb3Itc2Vjb25kYXJ5LWRhcms6ICAgICAgICRjb2xvci1yZWQtZGFyaztcbi8vICRjb2xvci1zZWNvbmRhcnktZGFya2VzdDogICAgJGNvbG9yLXJlZC1kYXJrZXN0O1xuLy8gJGNvbG9yLXNlY29uZGFyeS1saWdodDogICAgICAkY29sb3ItcmVkLWxpZ2h0O1xuLy8gJGNvbG9yLXNlY29uZGFyeS1saWdodGVzdDogICAkY29sb3ItcmVkLWxpZ2h0ZXN0O1xuXG4vLyAkY29sb3ItYmFzZTogICAgICAgICAgICAgICAgICRjb2xvci1ibGFjay1saWdodDtcbi8vICRjb2xvci1mb2N1czogICAgICAgICAgICAgICAgJGNvbG9yLWdyYXktbGlnaHQ7XG4vLyAkY29sb3ItdmlzaXRlZDogICAgICAgICAgICAgICRjb2xvci1wdXJwbGU7XG5cbi8vICRjb2xvci1zaGFkb3c6ICAgICAgICAgICAgICAgcmdiYSgjMDAwLCAwLjMpO1xuLy8gJGNvbG9yLXRyYW5zcGFyZW50OiAgICAgICAgICByZ2JhKCMwMDAsIDApO1xuXG4vLyBNb2JpbGUgRmlyc3QgQnJlYWtwb2ludHNcbi8vICRzbWFsbC1zY3JlZW46ICA0ODFweDtcbiRtZWRpdW0tc2NyZWVuOiA4MDFweDtcbiRsYXJnZS1zY3JlZW46ICAxMDI1cHg7XG5cbi8vIEdyaWQgY29sdW1uIGNvdW50cyBieSBzY3JlZW4gc2l6ZVxuLy8gJGdyaWQtY29sdW1ucy1zbWFsbDogMTtcbi8vICRncmlkLWNvbHVtbnMtbWVkaXVtOiA2O1xuLy8gJGdyaWQtY29sdW1ucy1sYXJnZTogMTI7XG5cbi8vIEBtZWRpYSBzaW5nbGUta2V5d29yZCBoZWxwZXJzXG4vLyAkc21hbGw6IG5ldy1icmVha3BvaW50KG1pbi13aWR0aCAkc21hbGwtc2NyZWVuICRncmlkLWNvbHVtbnMtc21hbGwpO1xuLy8gJG1lZGl1bTogbmV3LWJyZWFrcG9pbnQobWluLXdpZHRoICRtZWRpdW0tc2NyZWVuICRncmlkLWNvbHVtbnMtbWVkaXVtKTtcbi8vICRsYXJnZTogbmV3LWJyZWFrcG9pbnQobWluLXdpZHRoICRsYXJnZS1zY3JlZW4gJGdyaWQtY29sdW1ucy1sYXJnZSk7XG5cbi8vIFJlbGF0aXZlIGZvbnQgYW5kIGltYWdlIGZpbGUgcGF0aHNcbi8vICRmb250LXBhdGg6ICAgJy4uL2ZvbnRzJztcbi8vICRpbWFnZS1wYXRoOiAgJy4uL2ltZyc7XG5cbi8vIFNldCAkYXNzZXQtcGlwZWxpbmUgdG8gdHJ1ZSBpZiB5b3UncmUgdXNpbmcgdGhlIFJhaWxzIEFzc2V0IFBpcGVsaW5lXG4vLyAkYXNzZXQtcGlwZWxpbmU6ICAgICAgZmFsc2U7XG5cbi8vIE1hZ2ljIE51bWJlcnNcbiR0ZXh0LW1heC13aWR0aC1weDogICAgICAgICAgNTMwcHg7XG4kbGVhZC1tYXgtd2lkdGgtcHg6ICAgICAgICAgIDc3MHB4O1xuJHNpdGUtbWFyZ2lucy1weDogICAgICAgICAgICAzMHB4O1xuJHNpdGUtbWFyZ2lucy1tb2JpbGUtcHg6ICAgICAxNnB4O1xuJGlucHV0LW1heC13aWR0aC1weDogICAgICAgICA0NjBweDtcblxuJHRleHQtbWF4LXdpZHRoOiAgICAgICAgICBzaXplKCR0ZXh0LW1heC13aWR0aC1weCk7XG4kbGVhZC1tYXgtd2lkdGg6ICAgICAgICAgIHNpemUoJGxlYWQtbWF4LXdpZHRoLXB4KTtcbiRzaXRlLW1heC13aWR0aDogICAgICAgICAgOTYwcHg7XG4kc2l0ZS1tYXJnaW5zOiAgICAgICAgICAgIHNpemUoJHNpdGUtbWFyZ2lucy1weCk7XG4kc2l0ZS1tYXJnaW5zLW1vYmlsZTogICAgIHNpemUoJHNpdGUtbWFyZ2lucy1tb2JpbGUtcHgpO1xuLy8gJGFydGljbGUtbWF4LXdpZHRoOiAgICAgICA2MDBweDtcbiRpbnB1dC1tYXgtd2lkdGg6ICAgICAgICAgc2l6ZSgkaW5wdXQtbWF4LXdpZHRoLXB4KTtcbi8vICRsYWJlbC1ib3JkZXItcmFkaXVzOiAgICAgMnB4O1xuLy8gJGNoZWNrYm94LWJvcmRlci1yYWRpdXM6ICAycHg7XG4vLyAkYm9yZGVyLXJhZGl1czogICAgICAgICAgIDNweDtcbi8vICRidXR0b24tYm9yZGVyLXJhZGl1czogICAgNXB4O1xuLy8gJGJveC1zaGFkb3c6ICAgICAgICAgICAgICAwIDAgMnB4ICRjb2xvci1zaGFkb3c7XG4vLyAkZm9jdXMtb3V0bGluZTogICAgICAgICAgIDJweCBkb3R0ZWQgJGNvbG9yLWdyYXktbGlnaHQ7XG4vLyAkZm9jdXMtc3BhY2luZzogICAgICAgICAgIDNweDtcbi8vICRuYXYtd2lkdGg6ICAgICAgICAgICAgICAgOTUxcHg7XG5cbi8vIDQ0IHggNDQgcGl4ZWxzIGhpdCB0YXJnZXQgZm9sbG93aW5nIEFwcGxlIGlPUyBIdW1hbiBJbnRlcmZhY2Vcbi8vIEd1aWRlbGluZXNcbi8vICRoaXQtYXJlYTogNC40cmVtO1xuXG4vLyAkc3BhY2luZy14LXNtYWxsOiAwLjVyZW07XG4vLyAkc3BhY2luZy1zbWFsbDogMXJlbTtcbi8vICRzcGFjaW5nLW1kLXNtYWxsOiAxLjVyZW07XG4vLyAkc3BhY2luZy1tZWRpdW06IDJyZW07XG4vLyAkc3BhY2luZy1sYXJnZTogM3JlbTtcbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIFByb3ZpZGVzIGFuIGVhc3kgd2F5IHRvIGluY2x1ZGUgYSBjbGVhcmZpeCBmb3IgY29udGFpbmluZyBmbG9hdHMuXG4vLy9cbi8vLyBAbGluayBodHRwOi8vZ29vLmdsL3lQNWhpWlxuLy8vXG4vLy8gQGV4YW1wbGUgc2Nzc1xuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBAaW5jbHVkZSBjbGVhcmZpeDtcbi8vLyAgIH1cbi8vL1xuLy8vIEBleGFtcGxlIGNzc1xuLy8vICAgLmVsZW1lbnQ6OmFmdGVyIHtcbi8vLyAgICAgY2xlYXI6IGJvdGg7XG4vLy8gICAgIGNvbnRlbnQ6IFwiXCI7XG4vLy8gICAgIGRpc3BsYXk6IGJsb2NrO1xuLy8vICAgfVxuXG5AbWl4aW4gY2xlYXJmaXgge1xuICAmOjphZnRlciB7XG4gICAgY2xlYXI6IGJvdGg7XG4gICAgY29udGVudDogXCJcIjtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgfVxufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gRGlyZWN0aW9uYWwtcHJvcGVydHkgbWl4aW5zIGFyZSBzaG9ydGhhbmRzIGZvciB3cml0aW5nIHByb3BlcnRpZXMgbGlrZSB0aGUgZm9sbG93aW5nXG4vLy9cbi8vLyBAaWdub3JlIFlvdSBjYW4gYWxzbyB1c2UgYGZhbHNlYCBpbnN0ZWFkIG9mIGBudWxsYC5cbi8vL1xuLy8vIEBwYXJhbSB7TGlzdH0gJHZhbHNcbi8vLyAgIExpc3Qgb2YgZGlyZWN0aW9uYWwgdmFsdWVzXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2Vcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgQGluY2x1ZGUgYm9yZGVyLXN0eWxlKGRvdHRlZCBudWxsKTtcbi8vLyAgICAgQGluY2x1ZGUgbWFyZ2luKG51bGwgMCAxMHB4KTtcbi8vLyAgIH1cbi8vL1xuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgYm9yZGVyLWJvdHRvbS1zdHlsZTogZG90dGVkO1xuLy8vICAgICBib3JkZXItdG9wLXN0eWxlOiBkb3R0ZWQ7XG4vLy8gICAgIG1hcmdpbi1ib3R0b206IDEwcHg7XG4vLy8gICAgIG1hcmdpbi1sZWZ0OiAwO1xuLy8vICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4vLy8gICB9XG4vLy9cbi8vLyBAcmVxdWlyZSB7ZnVuY3Rpb259IGNvbnRhaW5zLWZhbHN5XG4vLy9cbi8vLyBAcmV0dXJuIHtMaXN0fVxuXG5AZnVuY3Rpb24gY29sbGFwc2UtZGlyZWN0aW9uYWxzKCR2YWxzKSB7XG4gICRvdXRwdXQ6IG51bGw7XG5cbiAgJGE6IG50aCgkdmFscywgMSk7XG4gICRiOiBpZihsZW5ndGgoJHZhbHMpIDwgMiwgJGEsIG50aCgkdmFscywgMikpO1xuICAkYzogaWYobGVuZ3RoKCR2YWxzKSA8IDMsICRhLCBudGgoJHZhbHMsIDMpKTtcbiAgJGQ6IGlmKGxlbmd0aCgkdmFscykgPCAyLCAkYSwgbnRoKCR2YWxzLCBpZihsZW5ndGgoJHZhbHMpIDwgNCwgMiwgNCkpKTtcblxuICBAaWYgJGEgPT0gMCB7ICRhOiAwOyB9XG4gIEBpZiAkYiA9PSAwIHsgJGI6IDA7IH1cbiAgQGlmICRjID09IDAgeyAkYzogMDsgfVxuICBAaWYgJGQgPT0gMCB7ICRkOiAwOyB9XG5cbiAgQGlmICRhID09ICRiIGFuZCAkYSA9PSAkYyBhbmQgJGEgPT0gJGQgeyAkb3V0cHV0OiAkYTsgICAgICAgICAgfVxuICBAZWxzZSBpZiAkYSA9PSAkYyBhbmQgJGIgPT0gJGQgICAgICAgICB7ICRvdXRwdXQ6ICRhICRiOyAgICAgICB9XG4gIEBlbHNlIGlmICRiID09ICRkICAgICAgICAgICAgICAgICAgICAgIHsgJG91dHB1dDogJGEgJGIgJGM7ICAgIH1cbiAgQGVsc2UgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyAkb3V0cHV0OiAkYSAkYiAkYyAkZDsgfVxuXG4gIEByZXR1cm4gJG91dHB1dDtcbn1cblxuLy8vIE91dHB1dCBkaXJlY3Rpb25hbCBwcm9wZXJ0aWVzLCBmb3IgaW5zdGFuY2UgYG1hcmdpbmAuXG4vLy9cbi8vLyBAYWNjZXNzIHByaXZhdGVcbi8vL1xuLy8vIEBwYXJhbSB7U3RyaW5nfSAkcHJlXG4vLy8gICBQcmVmaXggdG8gdXNlXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRzdWZcbi8vLyAgIFN1ZmZpeCB0byB1c2Vcbi8vLyBAcGFyYW0ge0xpc3R9ICR2YWxzXG4vLy8gICBMaXN0IG9mIHZhbHVlc1xuLy8vXG4vLy8gQHJlcXVpcmUge2Z1bmN0aW9ufSBjb2xsYXBzZS1kaXJlY3Rpb25hbHNcbi8vLyBAcmVxdWlyZSB7ZnVuY3Rpb259IGNvbnRhaW5zLWZhbHN5XG5cbkBtaXhpbiBkaXJlY3Rpb25hbC1wcm9wZXJ0eSgkcHJlLCAkc3VmLCAkdmFscykge1xuICAvLyBQcm9wZXJ0eSBOYW1lc1xuICAkdG9wOiAgICAkcHJlICsgXCItdG9wXCIgICAgKyBpZigkc3VmLCBcIi0jeyRzdWZ9XCIsIFwiXCIpO1xuICAkYm90dG9tOiAkcHJlICsgXCItYm90dG9tXCIgKyBpZigkc3VmLCBcIi0jeyRzdWZ9XCIsIFwiXCIpO1xuICAkbGVmdDogICAkcHJlICsgXCItbGVmdFwiICAgKyBpZigkc3VmLCBcIi0jeyRzdWZ9XCIsIFwiXCIpO1xuICAkcmlnaHQ6ICAkcHJlICsgXCItcmlnaHRcIiAgKyBpZigkc3VmLCBcIi0jeyRzdWZ9XCIsIFwiXCIpO1xuICAkYWxsOiAgICAkcHJlICsgICAgICAgICAgICAgaWYoJHN1ZiwgXCItI3skc3VmfVwiLCBcIlwiKTtcblxuICAkdmFsczogY29sbGFwc2UtZGlyZWN0aW9uYWxzKCR2YWxzKTtcblxuICBAaWYgY29udGFpbnMtZmFsc3koJHZhbHMpIHtcbiAgICBAaWYgbnRoKCR2YWxzLCAxKSB7ICN7JHRvcH06IG50aCgkdmFscywgMSk7IH1cblxuICAgIEBpZiBsZW5ndGgoJHZhbHMpID09IDEge1xuICAgICAgQGlmIG50aCgkdmFscywgMSkgeyAjeyRyaWdodH06IG50aCgkdmFscywgMSk7IH1cbiAgICB9IEBlbHNlIHtcbiAgICAgIEBpZiBudGgoJHZhbHMsIDIpIHsgI3skcmlnaHR9OiBudGgoJHZhbHMsIDIpOyB9XG4gICAgfVxuXG4gICAgQGlmIGxlbmd0aCgkdmFscykgPT0gMiB7XG4gICAgICBAaWYgbnRoKCR2YWxzLCAxKSB7ICN7JGJvdHRvbX06IG50aCgkdmFscywgMSk7IH1cbiAgICAgIEBpZiBudGgoJHZhbHMsIDIpIHsgI3skbGVmdH06ICAgbnRoKCR2YWxzLCAyKTsgfVxuICAgIH0gQGVsc2UgaWYgbGVuZ3RoKCR2YWxzKSA9PSAzIHtcbiAgICAgIEBpZiBudGgoJHZhbHMsIDMpIHsgI3skYm90dG9tfTogbnRoKCR2YWxzLCAzKTsgfVxuICAgICAgQGlmIG50aCgkdmFscywgMikgeyAjeyRsZWZ0fTogICBudGgoJHZhbHMsIDIpOyB9XG4gICAgfSBAZWxzZSBpZiBsZW5ndGgoJHZhbHMpID09IDQge1xuICAgICAgQGlmIG50aCgkdmFscywgMykgeyAjeyRib3R0b219OiBudGgoJHZhbHMsIDMpOyB9XG4gICAgICBAaWYgbnRoKCR2YWxzLCA0KSB7ICN7JGxlZnR9OiAgIG50aCgkdmFscywgNCk7IH1cbiAgICB9XG4gIH0gQGVsc2Uge1xuICAgICN7JGFsbH06ICR2YWxzO1xuICB9XG59XG4iLCJAZnVuY3Rpb24gc2l6ZSgkcGl4ZWxzKXtcbiAgJHB4VG9SZW06ICN7KCRwaXhlbHMgLyAkYmFzZS1yZW0pfXJlbTtcbiAgQHJldHVybiAkcHhUb1JlbTtcbn1cblxuQGZ1bmN0aW9uIHNpemUtc2FucygkcGl4ZWxzKXtcbiAgJG5vcm1hbGl6ZWRTYW5zOiAjeygkcGl4ZWxzIC8gJGJhc2UtcmVtKSAqICRzYW5zLW5vcm1hbGl6ZS1tdWx0aXBsaWVyfXJlbTtcbiAgQHJldHVybiAkbm9ybWFsaXplZFNhbnM7XG59XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBPdXRwdXRzIGEgbWVkaWEtcXVlcnkgYmxvY2sgd2l0aCBhbiBvcHRpb25hbCBncmlkIGNvbnRleHQgKHRoZSB0b3RhbCBudW1iZXIgb2YgY29sdW1ucyB1c2VkIGluIHRoZSBncmlkKS5cbi8vL1xuLy8vIEBwYXJhbSB7TGlzdH0gJHF1ZXJ5XG4vLy8gICBBIGxpc3Qgb2YgbWVkaWEgcXVlcnkgZmVhdHVyZXMgYW5kIHZhbHVlcywgd2hlcmUgZWFjaCBgJGZlYXR1cmVgIHNob3VsZCBoYXZlIGEgY29ycmVzcG9uZGluZyBgJHZhbHVlYC5cbi8vLyAgIEZvciBhIGxpc3Qgb2YgdmFsaWQgdmFsdWVzIGZvciBgJGZlYXR1cmVgLCBjbGljayBbaGVyZV0oaHR0cDovL3d3dy53My5vcmcvVFIvY3NzMy1tZWRpYXF1ZXJpZXMvI21lZGlhMSkuXG4vLy9cbi8vLyAgIElmIHRoZXJlIGlzIG9ubHkgYSBzaW5nbGUgYCR2YWx1ZWAgaW4gYCRxdWVyeWAsIGAkZGVmYXVsdC1mZWF0dXJlYCBpcyBnb2luZyB0byBiZSB1c2VkLlxuLy8vXG4vLy8gICBUaGUgbnVtYmVyIG9mIHRvdGFsIGNvbHVtbnMgaW4gdGhlIGdyaWQgY2FuIGJlIHNldCBieSBwYXNzaW5nIGAkY29sdW1uc2AgYXQgdGhlIGVuZCBvZiB0aGUgbGlzdCAob3ZlcnJpZGVzIGAkdG90YWwtY29sdW1uc2ApLlxuLy8vXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlciAodW5pdGxlc3MpfSAkdG90YWwtY29sdW1ucyBbJGdyaWQtY29sdW1uc11cbi8vLyAgIC0gTnVtYmVyIG9mIGNvbHVtbnMgdG8gdXNlIGluIHRoZSBuZXcgZ3JpZCBjb250ZXh0LiBDYW4gYmUgc2V0IGFzIGEgc2hvcnRoYW5kIGluIHRoZSBmaXJzdCBwYXJhbWV0ZXIuXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2Vcbi8vLyAgIC5yZXNwb25zaXZlLWVsZW1lbnQge1xuLy8vICAgICAgQGluY2x1ZGUgbWVkaWEoNzY5cHgpIHtcbi8vLyAgICAgICAgQGluY2x1ZGUgc3Bhbi1jb2x1bW5zKDYpO1xuLy8vICAgICAgfVxuLy8vICAgfVxuLy8vXG4vLy8gIC5uZXctY29udGV4dC1lbGVtZW50IHtcbi8vLyAgICBAaW5jbHVkZSBtZWRpYShtaW4td2lkdGggMzIwcHggbWF4LXdpZHRoIDQ4MHB4LCA2KSB7XG4vLy8gICAgICBAaW5jbHVkZSBzcGFuLWNvbHVtbnMoNik7XG4vLy8gICAgfVxuLy8vICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XG4vLy8gIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDc2OXB4KSB7XG4vLy8gICAgLnJlc3BvbnNpdmUtZWxlbWVudCB7XG4vLy8gICAgICBkaXNwbGF5OiBibG9jaztcbi8vLyAgICAgIGZsb2F0OiBsZWZ0O1xuLy8vICAgICAgbWFyZ2luLXJpZ2h0OiAyLjM1NzY1JTtcbi8vLyAgICAgIHdpZHRoOiA0OC44MjExNyU7XG4vLy8gICAgfVxuLy8vXG4vLy8gICAgLnJlc3BvbnNpdmUtZWxlbWVudDpsYXN0LWNoaWxkIHtcbi8vLyAgICAgIG1hcmdpbi1yaWdodDogMDtcbi8vLyAgICB9XG4vLy8gIH1cbi8vL1xuLy8vICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAzMjBweCkgYW5kIChtYXgtd2lkdGg6IDQ4MHB4KSB7XG4vLy8gICAgLm5ldy1jb250ZXh0LWVsZW1lbnQge1xuLy8vICAgICAgZGlzcGxheTogYmxvY2s7XG4vLy8gICAgICBmbG9hdDogbGVmdDtcbi8vLyAgICAgIG1hcmdpbi1yaWdodDogNC44MjkxNiU7XG4vLy8gICAgICB3aWR0aDogMTAwJTtcbi8vLyAgICB9XG4vLy9cbi8vLyAgICAubmV3LWNvbnRleHQtZWxlbWVudDpsYXN0LWNoaWxkIHtcbi8vLyAgICAgIG1hcmdpbi1yaWdodDogMDtcbi8vLyAgICB9XG4vLy8gIH1cblxuQG1peGluIG1lZGlhKCRxdWVyeTogJGZlYXR1cmUgJHZhbHVlICRjb2x1bW5zLCAkdG90YWwtY29sdW1uczogJGdyaWQtY29sdW1ucykge1xuICBAaWYgbGVuZ3RoKCRxdWVyeSkgPT0gMSB7XG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKCRkZWZhdWx0LWZlYXR1cmU6IG50aCgkcXVlcnksIDEpKSB7XG4gICAgICAkZGVmYXVsdC1ncmlkLWNvbHVtbnM6ICRncmlkLWNvbHVtbnM7XG4gICAgICAkZ3JpZC1jb2x1bW5zOiAkdG90YWwtY29sdW1ucyAhZ2xvYmFsO1xuICAgICAgQGNvbnRlbnQ7XG4gICAgICAkZ3JpZC1jb2x1bW5zOiAkZGVmYXVsdC1ncmlkLWNvbHVtbnMgIWdsb2JhbDtcbiAgICB9XG4gIH0gQGVsc2Uge1xuICAgICRsb29wLXRvOiBsZW5ndGgoJHF1ZXJ5KTtcbiAgICAkbWVkaWEtcXVlcnk6IFwic2NyZWVuIGFuZCBcIjtcbiAgICAkZGVmYXVsdC1ncmlkLWNvbHVtbnM6ICRncmlkLWNvbHVtbnM7XG4gICAgJGdyaWQtY29sdW1uczogJHRvdGFsLWNvbHVtbnMgIWdsb2JhbDtcblxuICAgIEBpZiBpcy1ub3QoaXMtZXZlbihsZW5ndGgoJHF1ZXJ5KSkpIHtcbiAgICAgICRncmlkLWNvbHVtbnM6IG50aCgkcXVlcnksICRsb29wLXRvKSAhZ2xvYmFsO1xuICAgICAgJGxvb3AtdG86ICRsb29wLXRvIC0gMTtcbiAgICB9XG5cbiAgICAkaTogMTtcbiAgICBAd2hpbGUgJGkgPD0gJGxvb3AtdG8ge1xuICAgICAgJG1lZGlhLXF1ZXJ5OiAkbWVkaWEtcXVlcnkgKyBcIihcIiArIG50aCgkcXVlcnksICRpKSArIFwiOiBcIiArIG50aCgkcXVlcnksICRpICsgMSkgKyBcIikgXCI7XG5cbiAgICAgIEBpZiAoJGkgKyAxKSAhPSAkbG9vcC10byB7XG4gICAgICAgICRtZWRpYS1xdWVyeTogJG1lZGlhLXF1ZXJ5ICsgXCJhbmQgXCI7XG4gICAgICB9XG5cbiAgICAgICRpOiAkaSArIDI7XG4gICAgfVxuXG4gICAgQG1lZGlhICN7JG1lZGlhLXF1ZXJ5fSB7XG4gICAgICBAY29udGVudDtcbiAgICAgICRncmlkLWNvbHVtbnM6ICRkZWZhdWx0LWdyaWQtY29sdW1ucyAhZ2xvYmFsO1xuICAgIH1cbiAgfVxufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gU3BlY2lmaWVzIHRoZSBudW1iZXIgb2YgY29sdW1ucyBhbiBlbGVtZW50IHNob3VsZCBzcGFuLiBJZiB0aGUgc2VsZWN0b3IgaXMgbmVzdGVkIHRoZSBudW1iZXIgb2YgY29sdW1ucyBvZiBpdHMgcGFyZW50IGVsZW1lbnQgc2hvdWxkIGJlIHBhc3NlZCBhcyBhbiBhcmd1bWVudCBhcyB3ZWxsLlxuLy8vXG4vLy8gQHBhcmFtIHtMaXN0fSAkc3BhblxuLy8vICAgQSBsaXN0IGNvbnRhaW5pbmcgYCRjb2x1bW5zYCwgdGhlIHVuaXRsZXNzIG51bWJlciBvZiBjb2x1bW5zIHRoZSBlbGVtZW50IHNwYW5zIChyZXF1aXJlZCksIGFuZCBgJGNvbnRhaW5lci1jb2x1bW5zYCwgdGhlIG51bWJlciBvZiBjb2x1bW5zIHRoZSBwYXJlbnQgZWxlbWVudCBzcGFucyAob3B0aW9uYWwpLlxuLy8vXG4vLy8gICBJZiBvbmx5IG9uZSB2YWx1ZSBpcyBwYXNzZWQsIGl0IGlzIGFzc3VtZWQgdGhhdCBpdCdzIGAkY29sdW1uc2AgYW5kIHRoYXQgdGhhdCBgJGNvbnRhaW5lci1jb2x1bW5zYCBpcyBlcXVhbCB0byBgJGdyaWQtY29sdW1uc2AsIHRoZSB0b3RhbCBudW1iZXIgb2YgY29sdW1ucyBpbiB0aGUgZ3JpZC5cbi8vL1xuLy8vICAgVGhlIHZhbHVlcyBjYW4gYmUgc2VwYXJhdGVkIHdpdGggYW55IHN0cmluZyBzdWNoIGFzIGBvZmAsIGAvYCwgZXRjLlxuLy8vXG4vLy8gICBgJGNvbHVtbnNgIGFsc28gYWNjZXB0cyBkZWNpbWFscyBmb3Igd2hlbiBpdCdzIG5lY2Vzc2FyeSB0byBicmVhayBvdXQgb2YgdGhlIHN0YW5kYXJkIGdyaWQuIEUuZy4gUGFzc2luZyBgMi40YCBpbiBhIHN0YW5kYXJkIDEyIGNvbHVtbiBncmlkIHdpbGwgZGl2aWRlIHRoZSByb3cgaW50byA1IGNvbHVtbnMuXG4vLy9cbi8vLyBAcGFyYW0ge1N0cmluZ30gJGRpc3BsYXkgW2Jsb2NrXVxuLy8vICAgU2V0cyB0aGUgZGlzcGxheSBwcm9wZXJ0eSBvZiB0aGUgZWxlbWVudC4gQnkgZGVmYXVsdCBpdCBzZXRzIHRoZSBkaXNwbGF5IHByb3BlcnR5IG9mIHRoZSBlbGVtZW50IHRvIGBibG9ja2AuXG4vLy9cbi8vLyAgIElmIHBhc3NlZCBgYmxvY2stY29sbGFwc2VgLCBpdCBhbHNvIHJlbW92ZXMgdGhlIG1hcmdpbiBndXR0ZXIgYnkgYWRkaW5nIGl0IHRvIHRoZSBlbGVtZW50IHdpZHRoLlxuLy8vXG4vLy8gICBJZiBwYXNzZWQgYHRhYmxlYCwgaXQgc2V0cyB0aGUgZGlzcGxheSBwcm9wZXJ0eSB0byBgdGFibGUtY2VsbGAgYW5kIGNhbGN1bGF0ZXMgdGhlIHdpZHRoIG9mIHRoZSBlbGVtZW50IHdpdGhvdXQgdGFraW5nIGd1dHRlcnMgaW50byBjb25zaWRlcmF0aW9uLiBUaGUgcmVzdWx0IGRvZXMgbm90IGFsaWduIHdpdGggdGhlIGJsb2NrLWJhc2VkIGdyaWQuXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2Vcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgQGluY2x1ZGUgc3Bhbi1jb2x1bW5zKDYpO1xuLy8vXG4vLy8gICAgLm5lc3RlZC1lbGVtZW50IHtcbi8vLyAgICAgIEBpbmNsdWRlIHNwYW4tY29sdW1ucygyIG9mIDYpO1xuLy8vICAgIH1cbi8vLyAgfVxuLy8vXG4vLy8gQGV4YW1wbGUgY3NzIC0gQ1NTIE91dHB1dFxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBkaXNwbGF5OiBibG9jaztcbi8vLyAgICAgZmxvYXQ6IGxlZnQ7XG4vLy8gICAgIG1hcmdpbi1yaWdodDogMi4zNTc2NSU7XG4vLy8gICAgIHdpZHRoOiA0OC44MjExNyU7XG4vLy8gICB9XG4vLy9cbi8vLyAgIC5lbGVtZW50Omxhc3QtY2hpbGQge1xuLy8vICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4vLy8gICB9XG4vLy9cbi8vLyAgIC5lbGVtZW50IC5uZXN0ZWQtZWxlbWVudCB7XG4vLy8gICAgIGRpc3BsYXk6IGJsb2NrO1xuLy8vICAgICBmbG9hdDogbGVmdDtcbi8vLyAgICAgbWFyZ2luLXJpZ2h0OiA0LjgyOTE2JTtcbi8vLyAgICAgd2lkdGg6IDMwLjExMzg5JTtcbi8vLyAgIH1cbi8vL1xuLy8vICAgLmVsZW1lbnQgLm5lc3RlZC1lbGVtZW50Omxhc3QtY2hpbGQge1xuLy8vICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4vLy8gICB9XG5cbkBtaXhpbiBzcGFuLWNvbHVtbnMoJHNwYW46ICRjb2x1bW5zIG9mICRjb250YWluZXItY29sdW1ucywgJGRpc3BsYXk6IGJsb2NrKSB7XG4gICRjb2x1bW5zOiBudGgoJHNwYW4sIDEpO1xuICAkY29udGFpbmVyLWNvbHVtbnM6IGNvbnRhaW5lci1zcGFuKCRzcGFuKTtcblxuICAkcGFyZW50LWNvbHVtbnM6IGdldC1wYXJlbnQtY29sdW1ucygkY29udGFpbmVyLWNvbHVtbnMpICFnbG9iYWw7XG5cbiAgJGRpcmVjdGlvbjogZ2V0LWRpcmVjdGlvbigkbGF5b3V0LWRpcmVjdGlvbiwgJGRlZmF1bHQtbGF5b3V0LWRpcmVjdGlvbik7XG4gICRvcHBvc2l0ZS1kaXJlY3Rpb246IGdldC1vcHBvc2l0ZS1kaXJlY3Rpb24oJGRpcmVjdGlvbik7XG5cbiAgJGRpc3BsYXktdGFibGU6IGlzLWRpc3BsYXktdGFibGUoJGNvbnRhaW5lci1kaXNwbGF5LXRhYmxlLCAkZGlzcGxheSk7XG5cbiAgQGlmICRkaXNwbGF5LXRhYmxlICB7XG4gICAgZGlzcGxheTogdGFibGUtY2VsbDtcbiAgICB3aWR0aDogcGVyY2VudGFnZSgkY29sdW1ucyAvICRjb250YWluZXItY29sdW1ucyk7XG4gIH0gQGVsc2Uge1xuICAgIGZsb2F0OiAjeyRvcHBvc2l0ZS1kaXJlY3Rpb259O1xuXG4gICAgQGlmICRkaXNwbGF5ICE9IG5vLWRpc3BsYXkge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgfVxuXG4gICAgQGlmICRkaXNwbGF5ID09IGNvbGxhcHNlIHtcbiAgICAgIEBpbmNsdWRlIC1uZWF0LXdhcm4oXCJUaGUgJ2NvbGxhcHNlJyBhcmd1bWVudCB3aWxsIGJlIGRlcHJlY2F0ZWQuIFVzZSAnYmxvY2stY29sbGFwc2UnIGluc3RlYWQuXCIpO1xuICAgIH1cblxuICAgIEBpZiAkZGlzcGxheSA9PSBjb2xsYXBzZSBvciAkZGlzcGxheSA9PSBibG9jay1jb2xsYXBzZSB7XG4gICAgICB3aWR0aDogZmxleC1ncmlkKCRjb2x1bW5zLCAkY29udGFpbmVyLWNvbHVtbnMpICsgZmxleC1ndXR0ZXIoJGNvbnRhaW5lci1jb2x1bW5zKTtcblxuICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgd2lkdGg6IGZsZXgtZ3JpZCgkY29sdW1ucywgJGNvbnRhaW5lci1jb2x1bW5zKTtcbiAgICAgIH1cblxuICAgIH0gQGVsc2Uge1xuICAgICAgbWFyZ2luLSN7JGRpcmVjdGlvbn06IGZsZXgtZ3V0dGVyKCRjb250YWluZXItY29sdW1ucyk7XG4gICAgICB3aWR0aDogZmxleC1ncmlkKCRjb2x1bW5zLCAkY29udGFpbmVyLWNvbHVtbnMpO1xuXG4gICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICBtYXJnaW4tI3skZGlyZWN0aW9ufTogMDtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIiRwYXJlbnQtY29sdW1uczogJGdyaWQtY29sdW1ucyAhZGVmYXVsdDtcbiRmZy1jb2x1bW46ICRjb2x1bW47XG4kZmctZ3V0dGVyOiAkZ3V0dGVyO1xuJGZnLW1heC1jb2x1bW5zOiAkZ3JpZC1jb2x1bW5zO1xuJGNvbnRhaW5lci1kaXNwbGF5LXRhYmxlOiBmYWxzZSAhZGVmYXVsdDtcbiRsYXlvdXQtZGlyZWN0aW9uOiBMVFIgIWRlZmF1bHQ7XG5cbkBmdW5jdGlvbiBmbGV4LWdyaWQoJGNvbHVtbnMsICRjb250YWluZXItY29sdW1uczogJGZnLW1heC1jb2x1bW5zKSB7XG4gICR3aWR0aDogJGNvbHVtbnMgKiAkZmctY29sdW1uICsgKCRjb2x1bW5zIC0gMSkgKiAkZmctZ3V0dGVyO1xuICAkY29udGFpbmVyLXdpZHRoOiAkY29udGFpbmVyLWNvbHVtbnMgKiAkZmctY29sdW1uICsgKCRjb250YWluZXItY29sdW1ucyAtIDEpICogJGZnLWd1dHRlcjtcbiAgQHJldHVybiBwZXJjZW50YWdlKCR3aWR0aCAvICRjb250YWluZXItd2lkdGgpO1xufVxuXG5AZnVuY3Rpb24gZmxleC1ndXR0ZXIoJGNvbnRhaW5lci1jb2x1bW5zOiAkZmctbWF4LWNvbHVtbnMsICRndXR0ZXI6ICRmZy1ndXR0ZXIpIHtcbiAgJGNvbnRhaW5lci13aWR0aDogJGNvbnRhaW5lci1jb2x1bW5zICogJGZnLWNvbHVtbiArICgkY29udGFpbmVyLWNvbHVtbnMgLSAxKSAqICRmZy1ndXR0ZXI7XG4gIEByZXR1cm4gcGVyY2VudGFnZSgkZ3V0dGVyIC8gJGNvbnRhaW5lci13aWR0aCk7XG59XG5cbkBmdW5jdGlvbiBncmlkLXdpZHRoKCRuKSB7XG4gIEByZXR1cm4gJG4gKiAkZ3ctY29sdW1uICsgKCRuIC0gMSkgKiAkZ3ctZ3V0dGVyO1xufVxuXG5AZnVuY3Rpb24gZ2V0LXBhcmVudC1jb2x1bW5zKCRjb2x1bW5zKSB7XG4gIEBpZiAkY29sdW1ucyAhPSAkZ3JpZC1jb2x1bW5zIHtcbiAgICAkcGFyZW50LWNvbHVtbnM6ICRjb2x1bW5zICFnbG9iYWw7XG4gIH0gQGVsc2Uge1xuICAgICRwYXJlbnQtY29sdW1uczogJGdyaWQtY29sdW1ucyAhZ2xvYmFsO1xuICB9XG5cbiAgQHJldHVybiAkcGFyZW50LWNvbHVtbnM7XG59XG5cbkBmdW5jdGlvbiBpcy1kaXNwbGF5LXRhYmxlKCRjb250YWluZXItaXMtZGlzcGxheS10YWJsZSwgJGRpc3BsYXkpIHtcbiAgQHJldHVybiAkY29udGFpbmVyLWlzLWRpc3BsYXktdGFibGUgPT0gdHJ1ZSBvciAkZGlzcGxheSA9PSB0YWJsZTtcbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIFJlbW92ZXMgdGhlIGVsZW1lbnQncyBndXR0ZXIgbWFyZ2luLCByZWdhcmRsZXNzIG9mIGl0cyBwb3NpdGlvbiBpbiB0aGUgZ3JpZCBoaWVyYXJjaHkgb3IgZGlzcGxheSBwcm9wZXJ0eS4gSXQgY2FuIHRhcmdldCBhIHNwZWNpZmljIGVsZW1lbnQsIG9yIGV2ZXJ5IGBudGgtY2hpbGRgIG9jY3VycmVuY2UuIFdvcmtzIG9ubHkgd2l0aCBgYmxvY2tgIGxheW91dHMuXG4vLy9cbi8vLyBAcGFyYW0ge0xpc3R9ICRxdWVyeSBbYmxvY2tdXG4vLy8gICBMaXN0IG9mIGFyZ3VtZW50cy4gU3VwcG9ydGVkIGFyZ3VtZW50cyBhcmUgYG50aC1jaGlsZGAgc2VsZWN0b3JzICh0YXJnZXRzIGEgc3BlY2lmaWMgcHNldWRvIGVsZW1lbnQpIGFuZCBgYXV0b2AgKHRhcmdldHMgYGxhc3QtY2hpbGRgKS5cbi8vL1xuLy8vICAgV2hlbiBwYXNzZWQgYW4gYG50aC1jaGlsZGAgYXJndW1lbnQgb2YgdHlwZSBgKm5gIHdpdGggYGJsb2NrYCBkaXNwbGF5LCB0aGUgb21lZ2EgbWl4aW4gYXV0b21hdGljYWxseSBhZGRzIGEgY2xlYXIgdG8gdGhlIGAqbisxYCB0aCBlbGVtZW50LiBOb3RlIHRoYXQgY29tcG9zaXRlIGFyZ3VtZW50cyBzdWNoIGFzIGAybisxYCBkbyBub3Qgc3VwcG9ydCB0aGlzIGZlYXR1cmUuXG4vLy9cbi8vLyAgICoqRGVwcmVjYXRpb24gd2FybmluZyoqOiBUaGUgb21lZ2EgbWl4aW4gd2lsbCBubyBsb25nZXIgdGFrZSBhIGAkZGlyZWN0aW9uYCBhcmd1bWVudC4gVG8gY2hhbmdlIHRoZSBsYXlvdXQgZGlyZWN0aW9uLCB1c2UgYHJvdygkZGlyZWN0aW9uKWAgb3Igc2V0IGAkZGVmYXVsdC1sYXlvdXQtZGlyZWN0aW9uYCBpbnN0ZWFkLlxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIEBpbmNsdWRlIG9tZWdhO1xuLy8vICAgfVxuLy8vXG4vLy8gICAubnRoLWVsZW1lbnQge1xuLy8vICAgICBAaW5jbHVkZSBvbWVnYSg0bik7XG4vLy8gICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIG1hcmdpbi1yaWdodDogMDtcbi8vLyAgIH1cbi8vL1xuLy8vICAgLm50aC1lbGVtZW50Om50aC1jaGlsZCg0bikge1xuLy8vICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4vLy8gICB9XG4vLy9cbi8vLyAgIC5udGgtZWxlbWVudDpudGgtY2hpbGQoNG4rMSkge1xuLy8vICAgICBjbGVhcjogbGVmdDtcbi8vLyAgIH1cblxuQG1peGluIG9tZWdhKCRxdWVyeTogYmxvY2ssICRkaXJlY3Rpb246IGRlZmF1bHQpIHtcbiAgJHRhYmxlOiBiZWxvbmdzLXRvKHRhYmxlLCAkcXVlcnkpO1xuICAkYXV0bzogYmVsb25ncy10byhhdXRvLCAkcXVlcnkpO1xuXG4gIEBpZiAkZGlyZWN0aW9uICE9IGRlZmF1bHQge1xuICAgIEBpbmNsdWRlIC1uZWF0LXdhcm4oXCJUaGUgb21lZ2EgbWl4aW4gd2lsbCBubyBsb25nZXIgdGFrZSBhICRkaXJlY3Rpb24gYXJndW1lbnQuIFRvIGNoYW5nZSB0aGUgbGF5b3V0IGRpcmVjdGlvbiwgdXNlIHRoZSBkaXJlY3Rpb24oKXsuLi59IG1peGluLlwiKTtcbiAgfSBAZWxzZSB7XG4gICAgJGRpcmVjdGlvbjogZ2V0LWRpcmVjdGlvbigkbGF5b3V0LWRpcmVjdGlvbiwgJGRlZmF1bHQtbGF5b3V0LWRpcmVjdGlvbik7XG4gIH1cblxuICBAaWYgJHRhYmxlIHtcbiAgICBAaW5jbHVkZSAtbmVhdC13YXJuKFwiVGhlIG9tZWdhIG1peGluIG5vIGxvbmdlciByZW1vdmVzIHBhZGRpbmcgaW4gdGFibGUgbGF5b3V0cy5cIik7XG4gIH1cblxuICBAaWYgbGVuZ3RoKCRxdWVyeSkgPT0gMSB7XG4gICAgQGlmICRhdXRvIHtcbiAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgIG1hcmdpbi0jeyRkaXJlY3Rpb259OiAwO1xuICAgICAgfVxuICAgIH1cblxuICAgIEBlbHNlIGlmIGNvbnRhaW5zLWRpc3BsYXktdmFsdWUoJHF1ZXJ5KSBhbmQgJHRhYmxlID09IGZhbHNlIHtcbiAgICAgIG1hcmdpbi0jeyRkaXJlY3Rpb259OiAwO1xuICAgIH1cblxuICAgIEBlbHNlIHtcbiAgICAgIEBpbmNsdWRlIG50aC1jaGlsZCgkcXVlcnksICRkaXJlY3Rpb24pO1xuICAgIH1cbiAgfSBAZWxzZSBpZiBsZW5ndGgoJHF1ZXJ5KSA9PSAyIHtcbiAgICBAaWYgJGF1dG8ge1xuICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgbWFyZ2luLSN7JGRpcmVjdGlvbn06IDA7XG4gICAgICB9XG4gICAgfSBAZWxzZSB7XG4gICAgICBAaW5jbHVkZSBudGgtY2hpbGQobnRoKCRxdWVyeSwgMSksICRkaXJlY3Rpb24pO1xuICAgIH1cbiAgfSBAZWxzZSB7XG4gICAgQGluY2x1ZGUgLW5lYXQtd2FybihcIlRvbyBtYW55IGFyZ3VtZW50cyBwYXNzZWQgdG8gdGhlIG9tZWdhKCkgbWl4aW4uXCIpO1xuICB9XG59XG5cbkBtaXhpbiBudGgtY2hpbGQoJHF1ZXJ5LCAkZGlyZWN0aW9uKSB7XG4gICRvcHBvc2l0ZS1kaXJlY3Rpb246IGdldC1vcHBvc2l0ZS1kaXJlY3Rpb24oJGRpcmVjdGlvbik7XG5cbiAgJjpudGgtY2hpbGQoI3skcXVlcnl9KSB7XG4gICAgbWFyZ2luLSN7JGRpcmVjdGlvbn06IDA7XG4gIH1cblxuICBAaWYgdHlwZS1vZigkcXVlcnkpID09IG51bWJlciBhbmQgdW5pdCgkcXVlcnkpID09IFwiblwiIHtcbiAgICAmOm50aC1jaGlsZCgjeyRxdWVyeX0rMSkge1xuICAgICAgY2xlYXI6ICRvcHBvc2l0ZS1kaXJlY3Rpb247XG4gICAgfVxuICB9XG59XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBUcmFuc2xhdGVzIGFuIGVsZW1lbnQgaG9yaXpvbnRhbGx5IGJ5IGEgbnVtYmVyIG9mIGNvbHVtbnMuIFBvc2l0aXZlIGFyZ3VtZW50cyBzaGlmdCB0aGUgZWxlbWVudCB0byB0aGUgYWN0aXZlIGxheW91dCBkaXJlY3Rpb24sIHdoaWxlIG5lZ2F0aXZlIG9uZXMgc2hpZnQgaXQgdG8gdGhlIG9wcG9zaXRlIGRpcmVjdGlvbi5cbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyICh1bml0bGVzcyl9ICRuLWNvbHVtbnMgWzFdXG4vLy8gICBOdW1iZXIgb2YgY29sdW1ucyBieSB3aGljaCB0aGUgZWxlbWVudCBzaGlmdHMuXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2Vcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgQGluY2x1ZGUgc2hpZnQoLTMpO1xuLy8vICAgfVxuLy8vXG4vLy8gQGV4YW1wbGUgY3NzIC0gQ1NTIG91dHB1dFxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBtYXJnaW4tbGVmdDogLTI1LjU4OTQxJTtcbi8vLyAgIH1cblxuQG1peGluIHNoaWZ0KCRuLWNvbHVtbnM6IDEpIHtcbiAgQGluY2x1ZGUgc2hpZnQtaW4tY29udGV4dCgkbi1jb2x1bW5zKTtcbn1cblxuLy8vIFRyYW5zbGF0ZXMgYW4gZWxlbWVudCBob3Jpem9udGFsbHkgYnkgYSBudW1iZXIgb2YgY29sdW1ucywgaW4gYSBzcGVjaWZpYyBuZXN0aW5nIGNvbnRleHQuXG4vLy9cbi8vLyBAcGFyYW0ge0xpc3R9ICRzaGlmdFxuLy8vICAgQSBsaXN0IGNvbnRhaW5pbmcgdGhlIG51bWJlciBvZiBjb2x1bW5zIHRvIHNoaWZ0IChgJGNvbHVtbnNgKSBhbmQgdGhlIG51bWJlciBvZiBjb2x1bW5zIG9mIHRoZSBwYXJlbnQgZWxlbWVudCAoYCRjb250YWluZXItY29sdW1uc2ApLlxuLy8vXG4vLy8gICBUaGUgdHdvIHZhbHVlcyBjYW4gYmUgc2VwYXJhdGVkIHdpdGggYW55IHN0cmluZyBzdWNoIGFzIGBvZmAsIGAvYCwgZXRjLlxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIEBpbmNsdWRlIHNoaWZ0KC0zIG9mIDYpO1xuLy8vICAgfVxuLy8vXG4vLy8gQGV4YW1wbGUgY3NzIC0gQ1NTIG91dHB1dFxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBtYXJnaW4tbGVmdDogLTUyLjQxNDU4JTtcbi8vLyAgIH1cblxuQG1peGluIHNoaWZ0LWluLWNvbnRleHQoJHNoaWZ0OiAkY29sdW1ucyBvZiAkY29udGFpbmVyLWNvbHVtbnMpIHtcbiAgJG4tY29sdW1uczogbnRoKCRzaGlmdCwgMSk7XG4gICRwYXJlbnQtY29sdW1uczogY29udGFpbmVyLXNoaWZ0KCRzaGlmdCkgIWdsb2JhbDtcblxuICAkZGlyZWN0aW9uOiBnZXQtZGlyZWN0aW9uKCRsYXlvdXQtZGlyZWN0aW9uLCAkZGVmYXVsdC1sYXlvdXQtZGlyZWN0aW9uKTtcbiAgJG9wcG9zaXRlLWRpcmVjdGlvbjogZ2V0LW9wcG9zaXRlLWRpcmVjdGlvbigkZGlyZWN0aW9uKTtcblxuICBtYXJnaW4tI3skb3Bwb3NpdGUtZGlyZWN0aW9ufTogJG4tY29sdW1ucyAqIGZsZXgtZ3JpZCgxLCAkcGFyZW50LWNvbHVtbnMpICsgJG4tY29sdW1ucyAqIGZsZXgtZ3V0dGVyKCRwYXJlbnQtY29sdW1ucyk7XG5cbiAgLy8gUmVzZXQgbmVzdGluZyBjb250ZXh0XG4gICRwYXJlbnQtY29sdW1uczogJGdyaWQtY29sdW1ucyAhZ2xvYmFsO1xufVxuIiwiLy8gSGVhZGluZyBtaXhpbnNcbkBtaXhpbiB0aXRsZSB7XG4gIGZvbnQtc2l6ZTogJHRpdGxlLWZvbnQtc2l6ZTtcbiAgZm9udC13ZWlnaHQ6ICRmb250LWJvbGQ7XG59XG5cbkBtaXhpbiBoMSB7XG4gIGZvbnQtc2l6ZTogJGgxLWZvbnQtc2l6ZTtcbiAgZm9udC13ZWlnaHQ6ICRmb250LWJvbGQ7XG59XG5cbkBtaXhpbiBoMiB7XG4gIGZvbnQtc2l6ZTogJGgyLWZvbnQtc2l6ZTtcbiAgZm9udC13ZWlnaHQ6ICRmb250LWJvbGQ7XG59XG5cbkBtaXhpbiBoMyB7XG4gIGZvbnQtc2l6ZTogJGgzLWZvbnQtc2l6ZTtcbiAgZm9udC13ZWlnaHQ6ICRmb250LWJvbGQ7XG59XG5cbkBtaXhpbiBoNCB7XG4gIGZvbnQtc2l6ZTogJGg0LWZvbnQtc2l6ZTtcbiAgZm9udC13ZWlnaHQ6ICRmb250LWJvbGQ7XG59XG5cbkBtaXhpbiBoNSB7XG4gIGZvbnQtc2l6ZTogJGg1LWZvbnQtc2l6ZTtcbiAgZm9udC13ZWlnaHQ6ICRmb250LWJvbGQ7XG59XG5cbkBtaXhpbiBoNiB7XG4gIGZvbnQtc2l6ZTogJGg2LWZvbnQtc2l6ZTtcbiAgZm9udC13ZWlnaHQ6ICRmb250LW5vcm1hbDtcbiAgbGluZS1oZWlnaHQ6ICRiYXNlLWxpbmUtaGVpZ2h0O1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xufVxuXG4vLyBGb2N1cyBzdGF0ZSBtaXhpblxuQG1peGluIGZvY3VzIHtcbiAgb3V0bGluZTogJGZvY3VzLW91dGxpbmU7XG4gIG91dGxpbmUtb2Zmc2V0OiAkZm9jdXMtc3BhY2luZztcbn1cblxuLy8gTW9iaWxlLWZpcnN0IG1lZGlhIHF1ZXJ5IGhlbHBlclxuQG1peGluIG1lZGlhKCRicCkge1xuICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAjeyRicH0pIHtcbiAgICBAY29udGVudDtcbiAgfVxufVxuXG4vLyBTY3JlZW4gcmVhZGVyIG9ubHkgaGVscGVyXG5AbWl4aW4gc3Itb25seSgpIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiAtOTk5ZW07XG59XG5cbi8vIFRoaXMgXCJuZWdhdGVzXCIgdGhlIHNyLW9ubHkoKSBoZWxwZXI7IHVzZWZ1bCBpZlxuLy8gd2Ugd2FudCB0aGUgZGVmYXVsdCBzdGF0ZSBvZiBzb21ldGhpbmcgdG8gYmVcbi8vIGZvciBzY3JlZW4gcmVhZGVycyBvbmx5LCBidXQgd2Ugd2FudCB0byBmb3JjZVxuLy8gaXQgdG8gc2hvdyBmb3Igc2lnaHRlZCB1c2VycyB1bmRlciBtb3JlIHNwZWNpZmljXG4vLyBjb25kaXRpb25zLlxuQG1peGluIG5vdC1zci1vbmx5KCkge1xuICBwb3NpdGlvbjogc3RhdGljO1xufVxuXG4udXNhLXNyLW9ubHkge1xuICBAaW5jbHVkZSBzci1vbmx5KCk7XG59XG5cbi8vIEFyaWEgaGlkZGVuIGhlbHBlclxuQG1peGluIGFjY2Vzc2libHktaGlkZGVuKCkge1xuICAmW2FyaWEtaGlkZGVuPXRydWVdIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG59XG5cbi8vIFVuc3R5bGVkIGxpc3QgaGVscGVyXG5AbWl4aW4gdW5zdHlsZWQtbGlzdCgpIHtcbiAgQGluY2x1ZGUgbWFyZ2luKDAgbnVsbCk7XG4gIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTtcbiAgcGFkZGluZy1sZWZ0OiAwO1xuXG4gID4gbGkge1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gIH1cbn1cblxuLy8gRm9udCBzbW9vdGhpbmcgbWl4aW5cbi8vIE9ubHkgdXNlIGZvciBsaWdodCB0ZXh0IG9uIGRhcmsgYmFja2dyb3VuZFxuLy8gVE9ETzogUmVtb3ZlIGFmdGVyIGFkZGluZyBQb3N0Q1NTXG5AbWl4aW4gZm9udC1zbW9vdGhpbmcge1xuICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xuICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbn1cblxuLy8gQ29udGVudCBzaXplIGhlbHBlcnNcbkBtaXhpbiBhbGxvdy1sYXlvdXQtY2xhc3NlcyB7XG4gIEBpbmNsdWRlIG1hcmdpbihudWxsIGF1dG8pO1xuXG4gICYud2lkdGgtb25lLWhhbGYge1xuICAgIEBpbmNsdWRlIG1lZGlhKCRtZWRpdW0tc2NyZWVuKSB7XG4gICAgICB3aWR0aDogNTAlO1xuICAgIH1cbiAgfVxuXG4gICYud2lkdGgtb25lLXRoaXJkIHtcbiAgICBAaW5jbHVkZSBtZWRpYSgkbWVkaXVtLXNjcmVlbikge1xuICAgICAgd2lkdGg6IDMzJTtcbiAgICB9XG4gIH1cblxuICAmLndpZHRoLXR3by10aGlyZHMge1xuICAgIEBpbmNsdWRlIG1lZGlhKCRtZWRpdW0tc2NyZWVuKSB7XG4gICAgICB3aWR0aDogNjclO1xuICAgIH1cbiAgfVxuXG4gICYud2lkdGgtb25lLWZvdXJ0aCB7XG4gICAgQGluY2x1ZGUgbWVkaWEoJG1lZGl1bS1zY3JlZW4pIHtcbiAgICAgIHdpZHRoOiAyNSU7XG4gICAgfVxuICB9XG5cbiAgJi53aWR0aC10aHJlZS1mb3VydGhzIHtcbiAgICBAaW5jbHVkZSBtZWRpYSgkbWVkaXVtLXNjcmVlbikge1xuICAgICAgd2lkdGg6IDc1JTtcbiAgICB9XG4gIH1cblxuICAmLmFsaWduLWxlZnQge1xuICAgIEBpbmNsdWRlIG1lZGlhKCRtZWRpdW0tc2NyZWVuKSB7XG4gICAgICBmbG9hdDogbGVmdDtcbiAgICAgIG1hcmdpbi1yaWdodDogMmVtO1xuICAgICAgbWFyZ2luLXRvcDogMC41ZW07XG4gICAgfVxuICB9XG5cbiAgJi5hbGlnbi1yaWdodCB7XG4gICAgQGluY2x1ZGUgbWVkaWEoJG1lZGl1bS1zY3JlZW4pIHtcbiAgICAgIGZsb2F0OiByaWdodDtcbiAgICAgIG1hcmdpbi1sZWZ0OiAyZW07XG4gICAgICBtYXJnaW4tdG9wOiAwLjVlbTtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIGRpc3BsYXktaWNvbigkaWNvbiwgJGRpcmVjdGlvbiwgJHNpemUsICRtYXJnaW4sICRob3Zlcikge1xuICAmOjojeyRkaXJlY3Rpb259IHtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJyN7JGltYWdlLXBhdGh9LyN7JGljb259LnBuZycpO1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnI3skaW1hZ2UtcGF0aH0vI3skaWNvbn0uc3ZnJyk7XG4gICAgYmFja2dyb3VuZC1zaXplOiAxMDAlO1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBoZWlnaHQ6ICRzaXplO1xuICAgIHdpZHRoOiAkc2l6ZTtcblxuICAgIC8qIHN0eWxlbGludC1kaXNhYmxlIGJsb2NrLWNsb3NpbmctYnJhY2UtbmV3bGluZS1hZnRlciwgYXQtcnVsZS1lbXB0eS1saW5lLWJlZm9yZSAqL1xuICAgIEBpZiAkZGlyZWN0aW9uID09ICdhZnRlcicge1xuICAgICAgbWFyZ2luLWxlZnQ6ICRtYXJnaW47XG4gICAgfSBAZWxzZSB7XG4gICAgICBtYXJnaW4tcmlnaHQ6ICRtYXJnaW47XG4gICAgfVxuICAgIC8qIHN0eWxlbGludC1lbmFibGUgKi9cbiAgfVxuXG4gIEBpZiAkaG92ZXIgPT0gJ2hvdmVyJyB7XG4gICAgJjpob3Zlcjo6I3skZGlyZWN0aW9ufSB7XG4gICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJyN7JGltYWdlLXBhdGh9LyN7JGljb259LWhvdmVyLnBuZycpO1xuICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCcjeyRpbWFnZS1wYXRofS8jeyRpY29ufS1ob3Zlci5zdmcnKTtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIHVzYS1zaWRlbmF2LWxpc3Qge1xuICBAaW5jbHVkZSB1bnN0eWxlZC1saXN0KCk7XG5cbiAgPiBsaSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRjb2xvci1ncmF5O1xuICAgIGZvbnQtc2l6ZTogJGg0LWZvbnQtc2l6ZTtcblxuICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgYm9yZGVyLXRvcDogbm9uZTtcbiAgICB9XG4gIH1cblxuICBhIHtcbiAgICBib3JkZXI6IG5vbmU7XG4gICAgY29sb3I6ICRjb2xvci1iYXNlO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGZvbnQtZmFtaWx5OiAkZm9udC1zYW5zO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjM7XG4gICAgcGFkZGluZzogMC44NXJlbSAxcmVtIDAuODVyZW0gMS44cmVtO1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcblxuICAgICY6aG92ZXIge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yLWdyYXktbGlnaHRlc3Q7XG4gICAgICBjb2xvcjogJGNvbG9yLXByaW1hcnk7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgfVxuXG4gICAgJjpmb2N1cyB7XG4gICAgICBvdXRsaW5lLW9mZnNldDogMDtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIHotaW5kZXg6IDE7XG4gICAgfVxuXG4gICAgJi51c2EtY3VycmVudCB7IC8qIHN0eWxlbGludC1kaXNhYmxlLWxpbmUgc2VsZWN0b3Itbm8tcXVhbGlmeWluZy10eXBlICovXG4gICAgICBib3JkZXItbGVmdDogMC40cmVtIHNvbGlkICRjb2xvci1wcmltYXJ5O1xuICAgICAgY29sb3I6ICRjb2xvci1wcmltYXJ5O1xuICAgICAgZm9udC13ZWlnaHQ6ICRmb250LWJvbGQ7XG4gICAgICBwYWRkaW5nLWxlZnQ6IDEuNHJlbTtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIHVzYS1zaWRlbmF2LXN1Ymxpc3Qge1xuICBAaW5jbHVkZSB1bnN0eWxlZC1saXN0KCk7XG4gIG1hcmdpbjogMDtcbiAgd2lkdGg6IDEwMCU7XG5cbiAgbGkge1xuICAgIGJvcmRlcjogbm9uZTtcbiAgICBmb250LXNpemU6ICRoNS1mb250LXNpemU7XG4gIH1cblxuICBhIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDIuOHJlbTtcbiAgICBsaW5lLWhlaWdodDogJGhlYWRpbmctbGluZS1oZWlnaHQ7XG5cbiAgICAmOmhvdmVyLFxuICAgICYudXNhLWN1cnJlbnQgeyAvKiBzdHlsZWxpbnQtZGlzYWJsZS1saW5lIHNlbGVjdG9yLW5vLXF1YWxpZnlpbmctdHlwZSAqL1xuICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgcGFkZGluZy1sZWZ0OiAyLjhyZW07XG4gICAgfVxuICB9XG5cbiAgLnVzYS1zaWRlbmF2LXN1Yl9saXN0IHtcbiAgICBhIHtcbiAgICAgIHBhZGRpbmctbGVmdDogMy44cmVtO1xuXG4gICAgICAmOmZvY3VzIHtcbiAgICAgICAgb3V0bGluZS1vZmZzZXQ6IDA7XG4gICAgICB9XG5cbiAgICAgICY6aG92ZXIge1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDMuOHJlbTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIkBpZiAkc2NvcGUtdXN3ZHMgPT0gdHJ1ZSB7XG4gIC8vIEFwcGx5IGEgbmF0dXJhbCBib3ggbGF5b3V0IG1vZGVsIHRvIGFsbCBlbGVtZW50cywgYnV0IGFsbG93aW5nIGNvbXBvbmVudHNcbiAgLy8gdG8gY2hhbmdlXG5cbiAgLnVzd2RzIHtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICB9XG5cbiAgLnVzd2RzICosXG4gIC51c3dkcyAqOjpiZWZvcmUsXG4gIC51c3dkcyAqOjphZnRlciB7XG4gICAgYm94LXNpemluZzogaW5oZXJpdDtcbiAgfVxuXG4gIC51c3dkcyBib2R5LFxuICBib2R5LnVzd2RzIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3Itd2hpdGU7XG4gICAgb3ZlcmZsb3cteDogaGlkZGVuO1xuICB9XG5cbiAgLy8gSGFjayBmb3IgY2xlYXJmaXhlc1xuICAubHQtaWU5IHtcbiAgICAqIHtcbiAgICAgIGZpbHRlcjogbm9uZSAhaW1wb3J0YW50OyAvKiBzdHlsZWxpbnQtZGlzYWJsZS1saW5lIGRlY2xhcmF0aW9uLW5vLWltcG9ydGFudCAqL1xuICAgIH1cbiAgfVxuXG4gIC8vIGZvciBJRSA8IDExLCBzZWU6XG4gIC8vIDxodHRwOi8vY2FuaXVzZS5jb20vI2ZlYXQ9aGlkZGVuPlxuICBbaGlkZGVuXSB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyAvKiBzdHlsZWxpbnQtZGlzYWJsZS1saW5lIGRlY2xhcmF0aW9uLW5vLWltcG9ydGFudCAqL1xuICB9XG5cbiAgLnVzd2RzICo6Zm9jdXMsXG4gIC51c2EtZm9jdXMge1xuICAgIEBpbmNsdWRlIGZvY3VzO1xuICB9XG59XG4iLCIvLyBUaGVzZSB2YXJpYWJsZXMgZHJpdmUgYWxtb3N0IGV2ZXJ5IGFzcGVjdCBvZiB0aGUgVS5TLiBXZWIgRGVzaWduXG4vLyBzeXN0ZW0uIEV2ZXJ5IHZhcmlhYmxlIGlzIGRlY2xhcmVkIGFzICFkZWZhdWx0IHNvIHRoYXQgaXQgY2FuIGJlXG4vLyBvdmVycmlkZGVuIGJ5IGEgcHJldmlvdXMgaW1wb3J0LlxuLy9cbi8vIFhYWCBEbyBub3QgbW9kaWZ5IHRoaXMgZmlsZSFcbi8vXG4vLyBJZiB5b3Ugd2FudCB0byBvdmVycmlkZSBhIHZhcmlhYmxlLCBzZXQgdGhhdCB2YXJpYWJsZSBpbiBvbmUgb2YgeW91clxuLy8gb3duIHBhcnRpYWxzLCB0aGVuIEBpbXBvcnQgJ3twYXRoL3RvL3Vzd2RzL31jb3JlL3ZhcmlhYmxlcycuXG5cbi8vIFR5cG9ncmFwaHlcbi8vIFJlbW92aW5nIHRoZSAhZGVmYXVsdCBmcm9tICRlbS1iYXNlIHNvIHdlIGFyZSBub3QgaW5oZXJpdGluZyB0aGF0XG4vLyB2YWx1ZSBmcm9tIEJvdXJib24uXG4kZW0tYmFzZTogICAgICAgICAgICAgMTBweDtcbiRiYXNlLWZvbnQtc2l6ZTogICAgICAxLjdyZW0gIWRlZmF1bHQ7XG4kc21hbGwtZm9udC1zaXplOiAgICAgMS40cmVtICFkZWZhdWx0O1xuJGxlYWQtZm9udC1zaXplOiAgICAgIDJyZW0gIWRlZmF1bHQ7XG4kdGl0bGUtZm9udC1zaXplOiAgICAgNS4ycmVtICFkZWZhdWx0O1xuJGgxLWZvbnQtc2l6ZTogICAgICAgIDRyZW0gIWRlZmF1bHQ7XG4kaDItZm9udC1zaXplOiAgICAgICAgM3JlbSAhZGVmYXVsdDtcbiRoMy1mb250LXNpemU6ICAgICAgICAycmVtICFkZWZhdWx0O1xuJGg0LWZvbnQtc2l6ZTogICAgICAgIDEuN3JlbSAhZGVmYXVsdDtcbiRoNS1mb250LXNpemU6ICAgICAgICAxLjVyZW0gIWRlZmF1bHQ7XG4kaDYtZm9udC1zaXplOiAgICAgICAgMS4zcmVtICFkZWZhdWx0O1xuJGJhc2UtbGluZS1oZWlnaHQ6ICAgIDEuNSAhZGVmYXVsdDtcbiRoZWFkaW5nLWxpbmUtaGVpZ2h0OiAxLjMgIWRlZmF1bHQ7XG4kbGVhZC1saW5lLWhlaWdodDogICAgMS43ICFkZWZhdWx0O1xuXG4kZm9udC1zYW5zOiAgICAgICAgICAgJ1NvdXJjZSBTYW5zIFBybycsICRoZWx2ZXRpY2EgIWRlZmF1bHQ7XG4kZm9udC1zZXJpZjogICAgICAgICAgJ01lcnJpd2VhdGhlcicsICRnZW9yZ2lhICFkZWZhdWx0O1xuXG4vLyBUT0RPIHRoZXNlIHNob3VsZCBiZSBjYWxsZWQgZm9udC13ZWlnaHQtJHt9XG4kZm9udC1ub3JtYWw6ICAgICAgICAgNDAwICFkZWZhdWx0O1xuJGZvbnQtYm9sZDogICAgICAgICAgIDcwMCAhZGVmYXVsdDtcblxuLy8gQ29sb3JcbiRjb2xvci1ibHVlOiAgICAgICAgICAgICAgICAgIzAwNzFiYyAhZGVmYXVsdDtcbiRjb2xvci1ibHVlLWRhcmtlcjogICAgICAgICAgIzIwNTQ5MyAhZGVmYXVsdDtcbiRjb2xvci1ibHVlLWRhcmtlc3Q6ICAgICAgICAgIzExMmU1MSAhZGVmYXVsdDtcblxuJGNvbG9yLWFxdWE6ICAgICAgICAgICAgICAgICAjMDJiZmU3ICFkZWZhdWx0O1xuJGNvbG9yLWFxdWEtZGFyazogICAgICAgICAgICAjMDBhNmQyICFkZWZhdWx0O1xuJGNvbG9yLWFxdWEtZGFya2VzdDogICAgICAgICAjMDQ2Yjk5ICFkZWZhdWx0O1xuJGNvbG9yLWFxdWEtbGlnaHQ6ICAgICAgICAgICAjOWJkYWYxICFkZWZhdWx0O1xuJGNvbG9yLWFxdWEtbGlnaHRlc3Q6ICAgICAgICAjZTFmM2Y4ICFkZWZhdWx0O1xuXG4kY29sb3ItcmVkOiAgICAgICAgICAgICAgICAgICNlMzFjM2QgIWRlZmF1bHQ7XG4kY29sb3ItcmVkLWRhcms6ICAgICAgICAgICAgICNjZDIwMjYgIWRlZmF1bHQ7XG4kY29sb3ItcmVkLWRhcmtlc3Q6ICAgICAgICAgICM5ODFiMWUgIWRlZmF1bHQ7XG4kY29sb3ItcmVkLWxpZ2h0OiAgICAgICAgICAgICNlNTkzOTMgIWRlZmF1bHQ7XG4kY29sb3ItcmVkLWxpZ2h0ZXN0OiAgICAgICAgICNmOWRlZGUgIWRlZmF1bHQ7XG5cbiRjb2xvci13aGl0ZTogICAgICAgICAgICAgICAgI2ZmZmZmZiAhZGVmYXVsdDtcbiRjb2xvci1ibGFjazogICAgICAgICAgICAgICAgIzAwMDAwMCAhZGVmYXVsdDtcbiRjb2xvci1ibGFjay1saWdodDogICAgICAgICAgIzIxMjEyMSAhZGVmYXVsdDtcblxuJGNvbG9yLWdyYXktZGFyazogICAgICAgICAgICAjMzIzYTQ1ICFkZWZhdWx0O1xuJGNvbG9yLWdyYXk6ICAgICAgICAgICAgICAgICAjNWI2MTZiICFkZWZhdWx0O1xuJGNvbG9yLWdyYXktbWVkaXVtOiAgICAgICAgICAjNzU3NTc1ICFkZWZhdWx0O1xuJGNvbG9yLWdyYXktbGlnaHQ6ICAgICAgICAgICAjYWViMGI1ICFkZWZhdWx0O1xuJGNvbG9yLWdyYXktbGlnaHRlcjogICAgICAgICAjZDZkN2Q5ICFkZWZhdWx0O1xuJGNvbG9yLWdyYXktbGlnaHRlc3Q6ICAgICAgICAjZjFmMWYxICFkZWZhdWx0O1xuXG4kY29sb3ItZ3JheS13YXJtLWRhcms6ICAgICAgICM0OTQ0NDAgIWRlZmF1bHQ7XG4kY29sb3ItZ3JheS13YXJtLWxpZ2h0OiAgICAgICNlNGUyZTAgIWRlZmF1bHQ7XG4kY29sb3ItZ3JheS1jb29sLWxpZ2h0OiAgICAgICNkY2U0ZWYgIWRlZmF1bHQ7XG5cbiRjb2xvci1nb2xkOiAgICAgICAgICAgICAgICAgI2ZkYjgxZSAhZGVmYXVsdDtcbiRjb2xvci1nb2xkLWxpZ2h0OiAgICAgICAgICAgI2Y5YzY0MiAhZGVmYXVsdDtcbiRjb2xvci1nb2xkLWxpZ2h0ZXI6ICAgICAgICAgI2ZhZDk4MCAhZGVmYXVsdDtcbiRjb2xvci1nb2xkLWxpZ2h0ZXN0OiAgICAgICAgI2ZmZjFkMiAhZGVmYXVsdDtcblxuJGNvbG9yLWdyZWVuOiAgICAgICAgICAgICAgICAjMmU4NTQwICFkZWZhdWx0O1xuJGNvbG9yLWdyZWVuLWxpZ2h0OiAgICAgICAgICAjNGFhNTY0ICFkZWZhdWx0O1xuJGNvbG9yLWdyZWVuLWxpZ2h0ZXI6ICAgICAgICAjOTRiZmEyICFkZWZhdWx0O1xuJGNvbG9yLWdyZWVuLWxpZ2h0ZXN0OiAgICAgICAjZTdmNGU0ICFkZWZhdWx0O1xuXG4kY29sb3ItY29vbC1ibHVlOiAgICAgICAgICAgICMyMDU0OTMgIWRlZmF1bHQ7XG4kY29sb3ItY29vbC1ibHVlLWxpZ2h0OiAgICAgICM0NzczYWEgIWRlZmF1bHQ7XG4kY29sb3ItY29vbC1ibHVlLWxpZ2h0ZXI6ICAgICM4YmE2Y2EgIWRlZmF1bHQ7XG4kY29sb3ItY29vbC1ibHVlLWxpZ2h0ZXN0OiAgICNkY2U0ZWYgIWRlZmF1bHQ7XG5cbiRjb2xvci1wdXJwbGU6ICAgICAgICAgICAgICAgIzRjMmM5MiAhZGVmYXVsdDtcblxuLy8gRnVuY3Rpb25hbCBjb2xvcnNcbiRjb2xvci1wcmltYXJ5OiAgICAgICAgICAgICAgJGNvbG9yLWJsdWUgIWRlZmF1bHQ7XG4kY29sb3ItcHJpbWFyeS1kYXJrZXI6ICAgICAgICRjb2xvci1ibHVlLWRhcmtlciAhZGVmYXVsdDtcbiRjb2xvci1wcmltYXJ5LWRhcmtlc3Q6ICAgICAgJGNvbG9yLWJsdWUtZGFya2VzdCAhZGVmYXVsdDtcblxuJGNvbG9yLXByaW1hcnktYWx0OiAgICAgICAgICAkY29sb3ItYXF1YSAhZGVmYXVsdDtcbiRjb2xvci1wcmltYXJ5LWFsdC1kYXJrOiAgICAgJGNvbG9yLWFxdWEtZGFyayAhZGVmYXVsdDtcbiRjb2xvci1wcmltYXJ5LWFsdC1kYXJrZXN0OiAgJGNvbG9yLWFxdWEtZGFya2VzdCAhZGVmYXVsdDtcbiRjb2xvci1wcmltYXJ5LWFsdC1saWdodDogICAgJGNvbG9yLWFxdWEtbGlnaHQgIWRlZmF1bHQ7XG4kY29sb3ItcHJpbWFyeS1hbHQtbGlnaHRlc3Q6ICRjb2xvci1hcXVhLWxpZ2h0ZXN0ICFkZWZhdWx0O1xuXG4kY29sb3Itc2Vjb25kYXJ5OiAgICAgICAgICAgICRjb2xvci1yZWQgIWRlZmF1bHQ7XG4kY29sb3Itc2Vjb25kYXJ5LWRhcms6ICAgICAgICRjb2xvci1yZWQtZGFyayAhZGVmYXVsdDtcbiRjb2xvci1zZWNvbmRhcnktZGFya2VzdDogICAgJGNvbG9yLXJlZC1kYXJrZXN0ICFkZWZhdWx0O1xuJGNvbG9yLXNlY29uZGFyeS1saWdodDogICAgICAkY29sb3ItcmVkLWxpZ2h0ICFkZWZhdWx0O1xuJGNvbG9yLXNlY29uZGFyeS1saWdodGVzdDogICAkY29sb3ItcmVkLWxpZ2h0ZXN0ICFkZWZhdWx0O1xuXG4kY29sb3ItYmFzZTogICAgICAgICAgICAgICAgICRjb2xvci1ibGFjay1saWdodCAhZGVmYXVsdDtcbiRjb2xvci1mb2N1czogICAgICAgICAgICAgICAgJGNvbG9yLWdyYXktbGlnaHQgIWRlZmF1bHQ7XG4kY29sb3ItdmlzaXRlZDogICAgICAgICAgICAgICRjb2xvci1wdXJwbGUgIWRlZmF1bHQ7XG5cbiRjb2xvci1zaGFkb3c6ICAgICAgICAgICAgICAgcmdiYSgjMDAwLCAwLjMpICFkZWZhdWx0O1xuJGNvbG9yLXRyYW5zcGFyZW50OiAgICAgICAgICByZ2JhKCMwMDAsIDApICFkZWZhdWx0O1xuXG4vLyBNb2JpbGUgRmlyc3QgQnJlYWtwb2ludHNcbiRzbWFsbC1zY3JlZW46ICA0ODFweCAhZGVmYXVsdDtcbiRtZWRpdW0tc2NyZWVuOiA2MDBweCAhZGVmYXVsdDtcbiRsYXJnZS1zY3JlZW46ICAxMjAxcHggIWRlZmF1bHQ7XG5cbi8vIEdyaWQgY29sdW1uIGNvdW50cyBieSBzY3JlZW4gc2l6ZVxuJGdyaWQtY29sdW1ucy1zbWFsbDogMSAhZGVmYXVsdDtcbiRncmlkLWNvbHVtbnMtbWVkaXVtOiA2ICFkZWZhdWx0O1xuJGdyaWQtY29sdW1ucy1sYXJnZTogMTIgIWRlZmF1bHQ7XG5cbi8vIEBtZWRpYSBzaW5nbGUta2V5d29yZCBoZWxwZXJzXG4kc21hbGw6IG5ldy1icmVha3BvaW50KG1pbi13aWR0aCAkc21hbGwtc2NyZWVuICRncmlkLWNvbHVtbnMtc21hbGwpICFkZWZhdWx0O1xuJG1lZGl1bTogbmV3LWJyZWFrcG9pbnQobWluLXdpZHRoICRtZWRpdW0tc2NyZWVuICRncmlkLWNvbHVtbnMtbWVkaXVtKSAhZGVmYXVsdDtcbiRsYXJnZTogbmV3LWJyZWFrcG9pbnQobWluLXdpZHRoICRsYXJnZS1zY3JlZW4gJGdyaWQtY29sdW1ucy1sYXJnZSkgIWRlZmF1bHQ7XG5cbi8vIFJlbGF0aXZlIGZvbnQgYW5kIGltYWdlIGZpbGUgcGF0aHNcbiRmb250LXBhdGg6ICAgJy4uL2ZvbnRzJyAhZGVmYXVsdDtcbiRpbWFnZS1wYXRoOiAgJy4uL2ltZycgIWRlZmF1bHQ7XG5cbi8vIFNldCAkYXNzZXQtcGlwZWxpbmUgdG8gdHJ1ZSBpZiB5b3UncmUgdXNpbmcgdGhlIFJhaWxzIEFzc2V0IFBpcGVsaW5lXG4kYXNzZXQtcGlwZWxpbmU6ICAgICAgZmFsc2UgIWRlZmF1bHQ7XG5cbi8vIE1hZ2ljIE51bWJlcnNcbiR0ZXh0LW1heC13aWR0aDogICAgICAgICAgNjZjaCAhZGVmYXVsdDsgLy8gNjYgY2hhcmFjdGVycyBwZXIgbGluZVxuJGxlYWQtbWF4LXdpZHRoOiAgICAgICAgICA3N3JlbSAhZGVmYXVsdDtcbiRzaXRlLW1heC13aWR0aDogICAgICAgICAgMTA0MHB4ICFkZWZhdWx0O1xuJHNpdGUtbWFyZ2luczogICAgICAgICAgICAzcmVtICFkZWZhdWx0O1xuJHNpdGUtbWFyZ2lucy1tb2JpbGU6ICAgICAxLjVyZW0gIWRlZmF1bHQ7XG4kYXJ0aWNsZS1tYXgtd2lkdGg6ICAgICAgIDYwMHB4ICFkZWZhdWx0O1xuJGlucHV0LW1heC13aWR0aDogICAgICAgICA0NnJlbSAhZGVmYXVsdDtcbiRsYWJlbC1ib3JkZXItcmFkaXVzOiAgICAgMnB4ICFkZWZhdWx0O1xuJGNoZWNrYm94LWJvcmRlci1yYWRpdXM6ICAycHggIWRlZmF1bHQ7XG4kYm9yZGVyLXJhZGl1czogICAgICAgICAgIDNweCAhZGVmYXVsdDtcbiRidXR0b24tYm9yZGVyLXJhZGl1czogICAgNXB4ICFkZWZhdWx0O1xuJGJveC1zaGFkb3c6ICAgICAgICAgICAgICAwIDAgMnB4ICRjb2xvci1zaGFkb3cgIWRlZmF1bHQ7XG4kZm9jdXMtb3V0bGluZTogICAgICAgICAgIDJweCBkb3R0ZWQgJGNvbG9yLWdyYXktbGlnaHQ7XG4kZm9jdXMtc3BhY2luZzogICAgICAgICAgIDNweDtcbiRuYXYtd2lkdGg6ICAgICAgICAgICAgICAgOTUxcHggIWRlZmF1bHQ7XG5cbi8vIDQ0IHggNDQgcGl4ZWxzIGhpdCB0YXJnZXQgZm9sbG93aW5nIEFwcGxlIGlPUyBIdW1hbiBJbnRlcmZhY2Vcbi8vIEd1aWRlbGluZXNcbiRoaXQtYXJlYTogNC40cmVtICFkZWZhdWx0O1xuXG4kc3BhY2luZy14LXNtYWxsOiAwLjVyZW07XG4kc3BhY2luZy1zbWFsbDogMXJlbTtcbiRzcGFjaW5nLW1kLXNtYWxsOiAxLjVyZW07XG4kc3BhY2luZy1tZWRpdW06IDJyZW07XG4kc3BhY2luZy1sYXJnZTogM3JlbTtcbiIsIi8qISB1c3dkcyBAdmVyc2lvbiAqL1xuLnVzd2RzIGh0bWwsIGh0bWwudXN3ZHMge1xuICBmb250LWZhbWlseTogc2Fucy1zZXJpZjtcbiAgLyogMSAqL1xuICAtbXMtdGV4dC1zaXplLWFkanVzdDogMTAwJTtcbiAgLyogMiAqL1xuICAtd2Via2l0LXRleHQtc2l6ZS1hZGp1c3Q6IDEwMCU7XG4gIC8qIDIgKi8gfVxuXG4udXN3ZHMgYm9keSwgYm9keS51c3dkcyB7XG4gIG1hcmdpbjogMDsgfVxuXG4udXN3ZHMgYXJ0aWNsZSwgYXJ0aWNsZS51c3dkcyxcbi51c3dkcyBhc2lkZSwgYXNpZGUudXN3ZHMsXG4udXN3ZHMgZGV0YWlscywgZGV0YWlscy51c3dkcyxcbi51c3dkcyBmaWdjYXB0aW9uLCBmaWdjYXB0aW9uLnVzd2RzLFxuLnVzd2RzIGZpZ3VyZSwgZmlndXJlLnVzd2RzLFxuLnVzd2RzIGZvb3RlciwgZm9vdGVyLnVzd2RzLFxuLnVzd2RzIGhlYWRlciwgaGVhZGVyLnVzd2RzLFxuLnVzd2RzIGhncm91cCwgaGdyb3VwLnVzd2RzLFxuLnVzd2RzIG1haW4sIG1haW4udXN3ZHMsXG4udXN3ZHMgbWVudSwgbWVudS51c3dkcyxcbi51c3dkcyBuYXYsIG5hdi51c3dkcyxcbi51c3dkcyBzZWN0aW9uLCBzZWN0aW9uLnVzd2RzLFxuLnVzd2RzIHN1bW1hcnksIHN1bW1hcnkudXN3ZHMge1xuICBkaXNwbGF5OiBibG9jazsgfVxuXG4udXN3ZHMgYXVkaW8sIGF1ZGlvLnVzd2RzLFxuLnVzd2RzIGNhbnZhcywgY2FudmFzLnVzd2RzLFxuLnVzd2RzIHByb2dyZXNzLCBwcm9ncmVzcy51c3dkcyxcbi51c3dkcyB2aWRlbywgdmlkZW8udXN3ZHMge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIC8qIDEgKi9cbiAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xuICAvKiAyICovIH1cblxuLnVzd2RzIGF1ZGlvOm5vdChbY29udHJvbHNdKSwgYXVkaW86bm90KFtjb250cm9sc10pLnVzd2RzIHtcbiAgZGlzcGxheTogbm9uZTtcbiAgaGVpZ2h0OiAwOyB9XG5cbi51c3dkcyBbaGlkZGVuXSwgW2hpZGRlbl0udXN3ZHMsXG4udXN3ZHMgdGVtcGxhdGUsIHRlbXBsYXRlLnVzd2RzIHtcbiAgZGlzcGxheTogbm9uZTsgfVxuXG4udXN3ZHMgYSwgYS51c3dkcyB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50OyB9XG5cbi51c3dkcyBhOmFjdGl2ZSwgYTphY3RpdmUudXN3ZHMsXG4udXN3ZHMgYTpob3ZlciwgYTpob3Zlci51c3dkcyB7XG4gIG91dGxpbmU6IDA7IH1cblxuLnVzd2RzIGFiYnJbdGl0bGVdLCBhYmJyW3RpdGxlXS51c3dkcyB7XG4gIGJvcmRlci1ib3R0b206IDFweCBkb3R0ZWQ7IH1cblxuLnVzd2RzIGIsIGIudXN3ZHMsXG4udXN3ZHMgc3Ryb25nLCBzdHJvbmcudXN3ZHMge1xuICBmb250LXdlaWdodDogYm9sZDsgfVxuXG4udXN3ZHMgZGZuLCBkZm4udXN3ZHMge1xuICBmb250LXN0eWxlOiBpdGFsaWM7IH1cblxuaDEge1xuICBmb250LXNpemU6IDJlbTtcbiAgbWFyZ2luOiAwLjY3ZW0gMDsgfVxuXG4udXN3ZHMgbWFyaywgbWFyay51c3dkcyB7XG4gIGJhY2tncm91bmQ6ICNmZjA7XG4gIGNvbG9yOiAjMDAwOyB9XG5cbi51c3dkcyBzbWFsbCwgc21hbGwudXN3ZHMge1xuICBmb250LXNpemU6IDgwJTsgfVxuXG4udXN3ZHMgc3ViLCBzdWIudXN3ZHMsXG4udXN3ZHMgc3VwLCBzdXAudXN3ZHMge1xuICBmb250LXNpemU6IDc1JTtcbiAgbGluZS1oZWlnaHQ6IDA7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lOyB9XG5cbi51c3dkcyBzdXAsIHN1cC51c3dkcyB7XG4gIHRvcDogLTAuNWVtOyB9XG5cbi51c3dkcyBzdWIsIHN1Yi51c3dkcyB7XG4gIGJvdHRvbTogLTAuMjVlbTsgfVxuXG4udXN3ZHMgaW1nLCBpbWcudXN3ZHMge1xuICBib3JkZXI6IDA7IH1cblxuLnVzd2RzIHN2Zzpub3QoOnJvb3QpLCBzdmc6bm90KDpyb290KS51c3dkcyB7XG4gIG92ZXJmbG93OiBoaWRkZW47IH1cblxuLnVzd2RzIGZpZ3VyZSwgZmlndXJlLnVzd2RzIHtcbiAgbWFyZ2luOiAxZW0gNDBweDsgfVxuXG4udXN3ZHMgaHIsIGhyLnVzd2RzIHtcbiAgYm94LXNpemluZzogY29udGVudC1ib3g7XG4gIGhlaWdodDogMDsgfVxuXG4udXN3ZHMgcHJlLCBwcmUudXN3ZHMge1xuICBvdmVyZmxvdzogYXV0bzsgfVxuXG4udXN3ZHMgY29kZSwgY29kZS51c3dkcyxcbi51c3dkcyBrYmQsIGtiZC51c3dkcyxcbi51c3dkcyBwcmUsIHByZS51c3dkcyxcbi51c3dkcyBzYW1wLCBzYW1wLnVzd2RzIHtcbiAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZSwgbW9ub3NwYWNlO1xuICBmb250LXNpemU6IDFlbTsgfVxuXG4udXN3ZHMgYnV0dG9uLCBidXR0b24udXN3ZHMsXG4udXN3ZHMgaW5wdXQsIGlucHV0LnVzd2RzLFxuLnVzd2RzIG9wdGdyb3VwLCBvcHRncm91cC51c3dkcyxcbi51c3dkcyBzZWxlY3QsIHNlbGVjdC51c3dkcyxcbi51c3dkcyB0ZXh0YXJlYSwgdGV4dGFyZWEudXN3ZHMge1xuICBjb2xvcjogaW5oZXJpdDtcbiAgLyogMSAqL1xuICBmb250OiBpbmhlcml0O1xuICAvKiAyICovXG4gIG1hcmdpbjogMDtcbiAgLyogMyAqLyB9XG5cbi51c3dkcyBidXR0b24sIGJ1dHRvbi51c3dkcyB7XG4gIG92ZXJmbG93OiB2aXNpYmxlOyB9XG5cbi51c3dkcyBidXR0b24sIGJ1dHRvbi51c3dkcyxcbi51c3dkcyBzZWxlY3QsIHNlbGVjdC51c3dkcyB7XG4gIHRleHQtdHJhbnNmb3JtOiBub25lOyB9XG5cbi51c3dkcyBidXR0b24sIGJ1dHRvbi51c3dkcyxcbmh0bWwgaW5wdXRbdHlwZT1cImJ1dHRvblwiXSxcbi51c3dkcyBpbnB1dFt0eXBlPVwicmVzZXRcIl0sIGlucHV0W3R5cGU9XCJyZXNldFwiXS51c3dkcyxcbi51c3dkcyBpbnB1dFt0eXBlPVwic3VibWl0XCJdLCBpbnB1dFt0eXBlPVwic3VibWl0XCJdLnVzd2RzIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBidXR0b247XG4gIC8qIDIgKi9cbiAgY3Vyc29yOiBwb2ludGVyO1xuICAvKiAzICovIH1cblxuLnVzd2RzIGJ1dHRvbltkaXNhYmxlZF0sIGJ1dHRvbltkaXNhYmxlZF0udXN3ZHMsXG5odG1sIGlucHV0W2Rpc2FibGVkXSB7XG4gIGN1cnNvcjogZGVmYXVsdDsgfVxuXG4udXN3ZHMgYnV0dG9uOjotbW96LWZvY3VzLWlubmVyLCBidXR0b246Oi1tb3otZm9jdXMtaW5uZXIudXN3ZHMsXG4udXN3ZHMgaW5wdXQ6Oi1tb3otZm9jdXMtaW5uZXIsIGlucHV0OjotbW96LWZvY3VzLWlubmVyLnVzd2RzIHtcbiAgYm9yZGVyOiAwO1xuICBwYWRkaW5nOiAwOyB9XG5cbi51c3dkcyBpbnB1dCwgaW5wdXQudXN3ZHMge1xuICBsaW5lLWhlaWdodDogbm9ybWFsOyB9XG5cbi51c3dkcyBpbnB1dFt0eXBlPVwiY2hlY2tib3hcIl0sIGlucHV0W3R5cGU9XCJjaGVja2JveFwiXS51c3dkcyxcbi51c3dkcyBpbnB1dFt0eXBlPVwicmFkaW9cIl0sIGlucHV0W3R5cGU9XCJyYWRpb1wiXS51c3dkcyB7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIC8qIDEgKi9cbiAgcGFkZGluZzogMDtcbiAgLyogMiAqLyB9XG5cbi51c3dkcyBpbnB1dFt0eXBlPVwibnVtYmVyXCJdOjotd2Via2l0LWlubmVyLXNwaW4tYnV0dG9uLCBpbnB1dFt0eXBlPVwibnVtYmVyXCJdOjotd2Via2l0LWlubmVyLXNwaW4tYnV0dG9uLnVzd2RzLFxuLnVzd2RzIGlucHV0W3R5cGU9XCJudW1iZXJcIl06Oi13ZWJraXQtb3V0ZXItc3Bpbi1idXR0b24sIGlucHV0W3R5cGU9XCJudW1iZXJcIl06Oi13ZWJraXQtb3V0ZXItc3Bpbi1idXR0b24udXN3ZHMge1xuICBoZWlnaHQ6IGF1dG87IH1cblxuLnVzd2RzIGlucHV0W3R5cGU9XCJzZWFyY2hcIl0sIGlucHV0W3R5cGU9XCJzZWFyY2hcIl0udXN3ZHMge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IHRleHRmaWVsZDtcbiAgLyogMSAqL1xuICBib3gtc2l6aW5nOiBjb250ZW50LWJveDtcbiAgLyogMiAqLyB9XG5cbi51c3dkcyBpbnB1dFt0eXBlPVwic2VhcmNoXCJdOjotd2Via2l0LXNlYXJjaC1jYW5jZWwtYnV0dG9uLCBpbnB1dFt0eXBlPVwic2VhcmNoXCJdOjotd2Via2l0LXNlYXJjaC1jYW5jZWwtYnV0dG9uLnVzd2RzLFxuLnVzd2RzIGlucHV0W3R5cGU9XCJzZWFyY2hcIl06Oi13ZWJraXQtc2VhcmNoLWRlY29yYXRpb24sIGlucHV0W3R5cGU9XCJzZWFyY2hcIl06Oi13ZWJraXQtc2VhcmNoLWRlY29yYXRpb24udXN3ZHMge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7IH1cblxuLnVzd2RzIGZpZWxkc2V0LCBmaWVsZHNldC51c3dkcyB7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNjMGMwYzA7XG4gIG1hcmdpbjogMCAycHg7XG4gIHBhZGRpbmc6IDAuMzVlbSAwLjYyNWVtIDAuNzVlbTsgfVxuXG4udXN3ZHMgbGVnZW5kLCBsZWdlbmQudXN3ZHMge1xuICBib3JkZXI6IDA7XG4gIC8qIDEgKi9cbiAgcGFkZGluZzogMDtcbiAgLyogMiAqLyB9XG5cbi51c3dkcyB0ZXh0YXJlYSwgdGV4dGFyZWEudXN3ZHMge1xuICBvdmVyZmxvdzogYXV0bzsgfVxuXG4udXN3ZHMgb3B0Z3JvdXAsIG9wdGdyb3VwLnVzd2RzIHtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7IH1cblxuLnVzd2RzIHRhYmxlLCB0YWJsZS51c3dkcyB7XG4gIGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7XG4gIGJvcmRlci1zcGFjaW5nOiAwOyB9XG5cbi51c3dkcyB0ZCwgdGQudXN3ZHMsXG4udXN3ZHMgdGgsIHRoLnVzd2RzIHtcbiAgcGFkZGluZzogMDsgfVxuXG4vKiBzdHlsZWxpbnQtZGlzYWJsZSBhdC1ydWxlLWVtcHR5LWxpbmUtYmVmb3JlICovXG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6IFwiU291cmNlIFNhbnMgUHJvXCI7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC13ZWlnaHQ6IDMwMDtcbiAgc3JjOiB1cmwoXCIuLi9mb250cy9zb3VyY2VzYW5zcHJvLWxpZ2h0LXdlYmZvbnQuZW90PyNpZWZpeFwiKSBmb3JtYXQoXCJlbWJlZGRlZC1vcGVudHlwZVwiKSwgdXJsKFwiLi4vZm9udHMvc291cmNlc2Fuc3Byby1saWdodC13ZWJmb250LndvZmYyXCIpIGZvcm1hdChcIndvZmYyXCIpLCB1cmwoXCIuLi9mb250cy9zb3VyY2VzYW5zcHJvLWxpZ2h0LXdlYmZvbnQud29mZlwiKSBmb3JtYXQoXCJ3b2ZmXCIpLCB1cmwoXCIuLi9mb250cy9zb3VyY2VzYW5zcHJvLWxpZ2h0LXdlYmZvbnQudHRmXCIpIGZvcm1hdChcInRydWV0eXBlXCIpOyB9XG5cbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogXCJTb3VyY2UgU2FucyBQcm9cIjtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LXdlaWdodDogNDAwO1xuICBzcmM6IHVybChcIi4uL2ZvbnRzL3NvdXJjZXNhbnNwcm8tcmVndWxhci13ZWJmb250LmVvdD8jaWVmaXhcIikgZm9ybWF0KFwiZW1iZWRkZWQtb3BlbnR5cGVcIiksIHVybChcIi4uL2ZvbnRzL3NvdXJjZXNhbnNwcm8tcmVndWxhci13ZWJmb250LndvZmYyXCIpIGZvcm1hdChcIndvZmYyXCIpLCB1cmwoXCIuLi9mb250cy9zb3VyY2VzYW5zcHJvLXJlZ3VsYXItd2ViZm9udC53b2ZmXCIpIGZvcm1hdChcIndvZmZcIiksIHVybChcIi4uL2ZvbnRzL3NvdXJjZXNhbnNwcm8tcmVndWxhci13ZWJmb250LnR0ZlwiKSBmb3JtYXQoXCJ0cnVldHlwZVwiKTsgfVxuXG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6IFwiU291cmNlIFNhbnMgUHJvXCI7XG4gIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgc3JjOiB1cmwoXCIuLi9mb250cy9zb3VyY2VzYW5zcHJvLWl0YWxpYy13ZWJmb250LmVvdD8jaWVmaXhcIikgZm9ybWF0KFwiZW1iZWRkZWQtb3BlbnR5cGVcIiksIHVybChcIi4uL2ZvbnRzL3NvdXJjZXNhbnNwcm8taXRhbGljLXdlYmZvbnQud29mZjJcIikgZm9ybWF0KFwid29mZjJcIiksIHVybChcIi4uL2ZvbnRzL3NvdXJjZXNhbnNwcm8taXRhbGljLXdlYmZvbnQud29mZlwiKSBmb3JtYXQoXCJ3b2ZmXCIpLCB1cmwoXCIuLi9mb250cy9zb3VyY2VzYW5zcHJvLWl0YWxpYy13ZWJmb250LnR0ZlwiKSBmb3JtYXQoXCJ0cnVldHlwZVwiKTsgfVxuXG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6IFwiU291cmNlIFNhbnMgUHJvXCI7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgc3JjOiB1cmwoXCIuLi9mb250cy9zb3VyY2VzYW5zcHJvLWJvbGQtd2ViZm9udC5lb3Q/I2llZml4XCIpIGZvcm1hdChcImVtYmVkZGVkLW9wZW50eXBlXCIpLCB1cmwoXCIuLi9mb250cy9zb3VyY2VzYW5zcHJvLWJvbGQtd2ViZm9udC53b2ZmMlwiKSBmb3JtYXQoXCJ3b2ZmMlwiKSwgdXJsKFwiLi4vZm9udHMvc291cmNlc2Fuc3Byby1ib2xkLXdlYmZvbnQud29mZlwiKSBmb3JtYXQoXCJ3b2ZmXCIpLCB1cmwoXCIuLi9mb250cy9zb3VyY2VzYW5zcHJvLWJvbGQtd2ViZm9udC50dGZcIikgZm9ybWF0KFwidHJ1ZXR5cGVcIik7IH1cblxuQGZvbnQtZmFjZSB7XG4gIGZvbnQtZmFtaWx5OiBcIk1lcnJpd2VhdGhlclwiO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtd2VpZ2h0OiAzMDA7XG4gIHNyYzogdXJsKFwiLi4vZm9udHMvbWVycml3ZWF0aGVyLWxpZ2h0LXdlYmZvbnQuZW90PyNpZWZpeFwiKSBmb3JtYXQoXCJlbWJlZGRlZC1vcGVudHlwZVwiKSwgdXJsKFwiLi4vZm9udHMvbWVycml3ZWF0aGVyLWxpZ2h0LXdlYmZvbnQud29mZjJcIikgZm9ybWF0KFwid29mZjJcIiksIHVybChcIi4uL2ZvbnRzL21lcnJpd2VhdGhlci1saWdodC13ZWJmb250LndvZmZcIikgZm9ybWF0KFwid29mZlwiKSwgdXJsKFwiLi4vZm9udHMvbWVycml3ZWF0aGVyLWxpZ2h0LXdlYmZvbnQudHRmXCIpIGZvcm1hdChcInRydWV0eXBlXCIpOyB9XG5cbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogXCJNZXJyaXdlYXRoZXJcIjtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LXdlaWdodDogNDAwO1xuICBzcmM6IHVybChcIi4uL2ZvbnRzL21lcnJpd2VhdGhlci1yZWd1bGFyLXdlYmZvbnQuZW90PyNpZWZpeFwiKSBmb3JtYXQoXCJlbWJlZGRlZC1vcGVudHlwZVwiKSwgdXJsKFwiLi4vZm9udHMvbWVycml3ZWF0aGVyLXJlZ3VsYXItd2ViZm9udC53b2ZmMlwiKSBmb3JtYXQoXCJ3b2ZmMlwiKSwgdXJsKFwiLi4vZm9udHMvbWVycml3ZWF0aGVyLXJlZ3VsYXItd2ViZm9udC53b2ZmXCIpIGZvcm1hdChcIndvZmZcIiksIHVybChcIi4uL2ZvbnRzL21lcnJpd2VhdGhlci1yZWd1bGFyLXdlYmZvbnQudHRmXCIpIGZvcm1hdChcInRydWV0eXBlXCIpOyB9XG5cbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogXCJNZXJyaXdlYXRoZXJcIjtcbiAgZm9udC1zdHlsZTogaXRhbGljO1xuICBmb250LXdlaWdodDogNDAwO1xuICBzcmM6IHVybChcIi4uL2ZvbnRzL21lcnJpd2VhdGhlci1pdGFsaWMtd2ViZm9udC5lb3Q/I2llZml4XCIpIGZvcm1hdChcImVtYmVkZGVkLW9wZW50eXBlXCIpLCB1cmwoXCIuLi9mb250cy9tZXJyaXdlYXRoZXItaXRhbGljLXdlYmZvbnQud29mZjJcIikgZm9ybWF0KFwid29mZjJcIiksIHVybChcIi4uL2ZvbnRzL21lcnJpd2VhdGhlci1pdGFsaWMtd2ViZm9udC53b2ZmXCIpIGZvcm1hdChcIndvZmZcIiksIHVybChcIi4uL2ZvbnRzL21lcnJpd2VhdGhlci1pdGFsaWMtd2ViZm9udC50dGZcIikgZm9ybWF0KFwidHJ1ZXR5cGVcIik7IH1cblxuQGZvbnQtZmFjZSB7XG4gIGZvbnQtZmFtaWx5OiBcIk1lcnJpd2VhdGhlclwiO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG4gIHNyYzogdXJsKFwiLi4vZm9udHMvbWVycml3ZWF0aGVyLWJvbGQtd2ViZm9udC5lb3Q/I2llZml4XCIpIGZvcm1hdChcImVtYmVkZGVkLW9wZW50eXBlXCIpLCB1cmwoXCIuLi9mb250cy9tZXJyaXdlYXRoZXItYm9sZC13ZWJmb250LndvZmYyXCIpIGZvcm1hdChcIndvZmYyXCIpLCB1cmwoXCIuLi9mb250cy9tZXJyaXdlYXRoZXItYm9sZC13ZWJmb250LndvZmZcIikgZm9ybWF0KFwid29mZlwiKSwgdXJsKFwiLi4vZm9udHMvbWVycml3ZWF0aGVyLWJvbGQtd2ViZm9udC50dGZcIikgZm9ybWF0KFwidHJ1ZXR5cGVcIik7IH1cblxuLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuLnVzYS1ncmlkLFxuLnVzYS1ncmlkLWZ1bGwge1xuICBtYXgtd2lkdGg6IDEyMDBweDtcbiAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gIG1hcmdpbi1yaWdodDogYXV0bztcbiAgbWF4LXdpZHRoOiA5NjBweDsgfVxuICAudXNhLWdyaWQ6OmFmdGVyLFxuICAudXNhLWdyaWQtZnVsbDo6YWZ0ZXIge1xuICAgIGNsZWFyOiBib3RoO1xuICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgZGlzcGxheTogYmxvY2s7IH1cblxuLnVzYS1ncmlkIHtcbiAgcGFkZGluZy1yaWdodDogMXJlbTtcbiAgcGFkZGluZy1sZWZ0OiAxcmVtOyB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDgwMXB4KSB7XG4gICAgLnVzYS1ncmlkIHtcbiAgICAgIHBhZGRpbmctcmlnaHQ6IDEuODc1cmVtO1xuICAgICAgcGFkZGluZy1sZWZ0OiAxLjg3NXJlbTsgfSB9XG5cbi51c2EtZ3JpZC1mdWxsIHtcbiAgcGFkZGluZzogMDsgfVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA4MDFweCkge1xuICAudXNhLXdpZHRoLW9uZS13aG9sZSB7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgbWFyZ2luLXJpZ2h0OiA0LjgyOTE2JTtcbiAgICB3aWR0aDogMTAwJTsgfVxuICAgIC51c2Etd2lkdGgtb25lLXdob2xlOmxhc3QtY2hpbGQge1xuICAgICAgbWFyZ2luLXJpZ2h0OiAwOyB9XG4gIC51c2Etd2lkdGgtb25lLWhhbGYge1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIG1hcmdpbi1yaWdodDogNC44MjkxNiU7XG4gICAgd2lkdGg6IDQ3LjU4NTQyJTsgfVxuICAgIC51c2Etd2lkdGgtb25lLWhhbGY6bGFzdC1jaGlsZCB7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDA7IH1cbiAgLnVzYS13aWR0aC1vbmUtdGhpcmQge1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIG1hcmdpbi1yaWdodDogNC44MjkxNiU7XG4gICAgd2lkdGg6IDMwLjExMzg5JTsgfVxuICAgIC51c2Etd2lkdGgtb25lLXRoaXJkOmxhc3QtY2hpbGQge1xuICAgICAgbWFyZ2luLXJpZ2h0OiAwOyB9XG4gIC51c2Etd2lkdGgtdHdvLXRoaXJkcyB7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgbWFyZ2luLXJpZ2h0OiA0LjgyOTE2JTtcbiAgICB3aWR0aDogNjUuMDU2OTUlOyB9XG4gICAgLnVzYS13aWR0aC10d28tdGhpcmRzOmxhc3QtY2hpbGQge1xuICAgICAgbWFyZ2luLXJpZ2h0OiAwOyB9XG4gIC51c2Etd2lkdGgtb25lLWZvdXJ0aCB7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgbWFyZ2luLXJpZ2h0OiA0LjgyOTE2JTtcbiAgICB3aWR0aDogNDcuNTg1NDIlOyB9XG4gICAgLnVzYS13aWR0aC1vbmUtZm91cnRoOmxhc3QtY2hpbGQge1xuICAgICAgbWFyZ2luLXJpZ2h0OiAwOyB9XG4gICAgLnVzYS13aWR0aC1vbmUtZm91cnRoOm50aC1jaGlsZCgybikge1xuICAgICAgbWFyZ2luLXJpZ2h0OiAwOyB9XG4gIC51c2Etd2lkdGgtdGhyZWUtZm91cnRocyB7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgbWFyZ2luLXJpZ2h0OiA0LjgyOTE2JTtcbiAgICB3aWR0aDogMTAwJTsgfVxuICAgIC51c2Etd2lkdGgtdGhyZWUtZm91cnRoczpsYXN0LWNoaWxkIHtcbiAgICAgIG1hcmdpbi1yaWdodDogMDsgfVxuICAudXNhLXdpZHRoLW9uZS1zaXh0aCB7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgbWFyZ2luLXJpZ2h0OiA0LjgyOTE2JTtcbiAgICB3aWR0aDogMzAuMTEzODklOyB9XG4gICAgLnVzYS13aWR0aC1vbmUtc2l4dGg6bGFzdC1jaGlsZCB7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDA7IH1cbiAgICAudXNhLXdpZHRoLW9uZS1zaXh0aDpudGgtY2hpbGQoM24pIHtcbiAgICAgIG1hcmdpbi1yaWdodDogMDsgfVxuICAudXNhLXdpZHRoLWZpdmUtc2l4dGhzIHtcbiAgICBmbG9hdDogbGVmdDtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBtYXJnaW4tcmlnaHQ6IDQuODI5MTYlO1xuICAgIHdpZHRoOiA2NS4wNTY5NSU7IH1cbiAgICAudXNhLXdpZHRoLWZpdmUtc2l4dGhzOmxhc3QtY2hpbGQge1xuICAgICAgbWFyZ2luLXJpZ2h0OiAwOyB9XG4gIC51c2Etd2lkdGgtb25lLXR3ZWxmdGgge1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIG1hcmdpbi1yaWdodDogNC44MjkxNiU7XG4gICAgd2lkdGg6IDMwLjExMzg5JTsgfVxuICAgIC51c2Etd2lkdGgtb25lLXR3ZWxmdGg6bGFzdC1jaGlsZCB7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDA7IH1cbiAgICAudXNhLXdpZHRoLW9uZS10d2VsZnRoOm50aC1jaGlsZCgzbikge1xuICAgICAgbWFyZ2luLXJpZ2h0OiAwOyB9XG4gIC51c2Etd2lkdGgtZml2ZS10d2VsZnRocyB7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgbWFyZ2luLXJpZ2h0OiA0LjgyOTE2JTtcbiAgICB3aWR0aDogMzAuMTEzODklOyB9XG4gICAgLnVzYS13aWR0aC1maXZlLXR3ZWxmdGhzOmxhc3QtY2hpbGQge1xuICAgICAgbWFyZ2luLXJpZ2h0OiAwOyB9XG4gIC51c2Etd2lkdGgtc2V2ZW4tdHdlbGZ0aHMge1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIG1hcmdpbi1yaWdodDogNC44MjkxNiU7XG4gICAgd2lkdGg6IDY1LjA1Njk1JTsgfVxuICAgIC51c2Etd2lkdGgtc2V2ZW4tdHdlbGZ0aHM6bGFzdC1jaGlsZCB7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDA7IH0gfVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAxMDI1cHgpIHtcbiAgLnVzYS13aWR0aC1vbmUtd2hvbGUge1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIG1hcmdpbi1yaWdodDogMi4zNTc2NSU7XG4gICAgd2lkdGg6IDEwMCU7IH1cbiAgICAudXNhLXdpZHRoLW9uZS13aG9sZTpsYXN0LWNoaWxkIHtcbiAgICAgIG1hcmdpbi1yaWdodDogMDsgfVxuICAudXNhLXdpZHRoLW9uZS1oYWxmIHtcbiAgICBmbG9hdDogbGVmdDtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBtYXJnaW4tcmlnaHQ6IDIuMzU3NjUlO1xuICAgIHdpZHRoOiA0OC44MjExNyU7IH1cbiAgICAudXNhLXdpZHRoLW9uZS1oYWxmOmxhc3QtY2hpbGQge1xuICAgICAgbWFyZ2luLXJpZ2h0OiAwOyB9XG4gIC51c2Etd2lkdGgtb25lLXRoaXJkIHtcbiAgICBmbG9hdDogbGVmdDtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBtYXJnaW4tcmlnaHQ6IDIuMzU3NjUlO1xuICAgIHdpZHRoOiAzMS43NjE1NyU7IH1cbiAgICAudXNhLXdpZHRoLW9uZS10aGlyZDpsYXN0LWNoaWxkIHtcbiAgICAgIG1hcmdpbi1yaWdodDogMDsgfVxuICAudXNhLXdpZHRoLXR3by10aGlyZHMge1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIG1hcmdpbi1yaWdodDogMi4zNTc2NSU7XG4gICAgd2lkdGg6IDY1Ljg4MDc4JTsgfVxuICAgIC51c2Etd2lkdGgtdHdvLXRoaXJkczpsYXN0LWNoaWxkIHtcbiAgICAgIG1hcmdpbi1yaWdodDogMDsgfVxuICAudXNhLXdpZHRoLW9uZS1mb3VydGgge1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIG1hcmdpbi1yaWdodDogMi4zNTc2NSU7XG4gICAgd2lkdGg6IDIzLjIzMTc2JTsgfVxuICAgIC51c2Etd2lkdGgtb25lLWZvdXJ0aDpsYXN0LWNoaWxkIHtcbiAgICAgIG1hcmdpbi1yaWdodDogMDsgfVxuICAgIC51c2Etd2lkdGgtb25lLWZvdXJ0aDpudGgtY2hpbGQoMm4pIHtcbiAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDIuMzU3NjUlO1xuICAgICAgd2lkdGg6IDIzLjIzMTc2JTsgfVxuICAgICAgLnVzYS13aWR0aC1vbmUtZm91cnRoOm50aC1jaGlsZCgybik6bGFzdC1jaGlsZCB7XG4gICAgICAgIG1hcmdpbi1yaWdodDogMDsgfVxuICAgIC51c2Etd2lkdGgtb25lLWZvdXJ0aDpudGgtY2hpbGQoNG4pIHtcbiAgICAgIG1hcmdpbi1yaWdodDogMDsgfVxuICAudXNhLXdpZHRoLXRocmVlLWZvdXJ0aHMge1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIG1hcmdpbi1yaWdodDogMi4zNTc2NSU7XG4gICAgd2lkdGg6IDc0LjQxMDU5JTsgfVxuICAgIC51c2Etd2lkdGgtdGhyZWUtZm91cnRoczpsYXN0LWNoaWxkIHtcbiAgICAgIG1hcmdpbi1yaWdodDogMDsgfVxuICAudXNhLXdpZHRoLW9uZS1zaXh0aCB7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgbWFyZ2luLXJpZ2h0OiAyLjM1NzY1JTtcbiAgICB3aWR0aDogMTQuNzAxOTYlOyB9XG4gICAgLnVzYS13aWR0aC1vbmUtc2l4dGg6bGFzdC1jaGlsZCB7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDA7IH1cbiAgICAudXNhLXdpZHRoLW9uZS1zaXh0aDpudGgtY2hpbGQoM24pIHtcbiAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDIuMzU3NjUlO1xuICAgICAgd2lkdGg6IDE0LjcwMTk2JTsgfVxuICAgICAgLnVzYS13aWR0aC1vbmUtc2l4dGg6bnRoLWNoaWxkKDNuKTpsYXN0LWNoaWxkIHtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAwOyB9XG4gICAgLnVzYS13aWR0aC1vbmUtc2l4dGg6bnRoLWNoaWxkKDZuKSB7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDA7IH1cbiAgLnVzYS13aWR0aC1maXZlLXNpeHRocyB7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgbWFyZ2luLXJpZ2h0OiAyLjM1NzY1JTtcbiAgICB3aWR0aDogODIuOTQwMzklOyB9XG4gICAgLnVzYS13aWR0aC1maXZlLXNpeHRoczpsYXN0LWNoaWxkIHtcbiAgICAgIG1hcmdpbi1yaWdodDogMDsgfVxuICAudXNhLXdpZHRoLW9uZS10d2VsZnRoIHtcbiAgICBmbG9hdDogbGVmdDtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBtYXJnaW4tcmlnaHQ6IDIuMzU3NjUlO1xuICAgIHdpZHRoOiA2LjE3MjE1JTsgfVxuICAgIC51c2Etd2lkdGgtb25lLXR3ZWxmdGg6bGFzdC1jaGlsZCB7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDA7IH1cbiAgICAudXNhLXdpZHRoLW9uZS10d2VsZnRoOm50aC1jaGlsZCgzbikge1xuICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIG1hcmdpbi1yaWdodDogMi4zNTc2NSU7XG4gICAgICB3aWR0aDogNi4xNzIxNSU7IH1cbiAgICAgIC51c2Etd2lkdGgtb25lLXR3ZWxmdGg6bnRoLWNoaWxkKDNuKTpsYXN0LWNoaWxkIHtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAwOyB9XG4gICAgLnVzYS13aWR0aC1vbmUtdHdlbGZ0aDpudGgtY2hpbGQoMTJuKSB7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDA7IH1cbiAgLnVzYS13aWR0aC1maXZlLXR3ZWxmdGhzIHtcbiAgICBmbG9hdDogbGVmdDtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBtYXJnaW4tcmlnaHQ6IDIuMzU3NjUlO1xuICAgIHdpZHRoOiA0MC4yOTEzNyU7IH1cbiAgICAudXNhLXdpZHRoLWZpdmUtdHdlbGZ0aHM6bGFzdC1jaGlsZCB7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDA7IH1cbiAgLnVzYS13aWR0aC1zZXZlbi10d2VsZnRocyB7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgbWFyZ2luLXJpZ2h0OiAyLjM1NzY1JTtcbiAgICB3aWR0aDogNTcuMzUwOTglOyB9XG4gICAgLnVzYS13aWR0aC1zZXZlbi10d2VsZnRoczpsYXN0LWNoaWxkIHtcbiAgICAgIG1hcmdpbi1yaWdodDogMDsgfSB9XG5cbi51c2EtZW5kLXJvdyB7XG4gIG1hcmdpbi1yaWdodDogMDsgfVxuXG4udXNhLW9mZnNldC1vbmUtdHdlbGZ0aCB7XG4gIG1hcmdpbi1sZWZ0OiA4LjUyOTglOyB9XG5cbi51c2Etb2Zmc2V0LW9uZS1zaXh0aCB7XG4gIG1hcmdpbi1sZWZ0OiAxNy4wNTk2MSU7IH1cblxuLnVzYS1vZmZzZXQtb25lLWZvdXJ0aCB7XG4gIG1hcmdpbi1sZWZ0OiAyNS41ODk0MSU7IH1cblxuLnVzYS1vZmZzZXQtb25lLXRoaXJkIHtcbiAgbWFyZ2luLWxlZnQ6IDM0LjExOTIyJTsgfVxuXG4udXNhLW9mZnNldC1maXZlLXR3ZWxmdGhzIHtcbiAgbWFyZ2luLWxlZnQ6IDQyLjY0OTAyJTsgfVxuXG4udXNhLW9mZnNldC1vbmUtaGFsZiB7XG4gIG1hcmdpbi1sZWZ0OiA1MS4xNzg4MyU7IH1cblxuLnVzYS1vZmZzZXQtc2V2ZW4tdHdlbGZ0aHMge1xuICBtYXJnaW4tbGVmdDogNTkuNzA4NjMlOyB9XG5cbi51c2Etb2Zmc2V0LXR3by10aGlyZHMge1xuICBtYXJnaW4tbGVmdDogNjguMjM4NDMlOyB9XG5cbi51c2Etb2Zmc2V0LXRocmVlLWZvdXJ0aHMge1xuICBtYXJnaW4tbGVmdDogNzYuNzY4MjQlOyB9XG5cbi51c2Etb2Zmc2V0LWZpdmUtc2l4dGhzIHtcbiAgbWFyZ2luLWxlZnQ6IDg1LjI5ODA0JTsgfVxuXG4udXNhLW9mZnNldC1lbGV2ZW4tdHdlbGZ0aHMge1xuICBtYXJnaW4tbGVmdDogOTMuODI3ODUlOyB9XG5cbi51c2Etc3Itb25seSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbGVmdDogLTk5OWVtOyB9XG5cbi51c3dkcyB7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7IH1cblxuLnVzd2RzICosXG4udXN3ZHMgKjo6YmVmb3JlLFxuLnVzd2RzICo6OmFmdGVyIHtcbiAgYm94LXNpemluZzogaW5oZXJpdDsgfVxuXG4udXN3ZHMgYm9keSxcbmJvZHkudXN3ZHMge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmO1xuICBvdmVyZmxvdy14OiBoaWRkZW47IH1cblxuLmx0LWllOSAqIHtcbiAgZmlsdGVyOiBub25lICFpbXBvcnRhbnQ7XG4gIC8qIHN0eWxlbGludC1kaXNhYmxlLWxpbmUgZGVjbGFyYXRpb24tbm8taW1wb3J0YW50ICovIH1cblxuW2hpZGRlbl0ge1xuICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gIC8qIHN0eWxlbGludC1kaXNhYmxlLWxpbmUgZGVjbGFyYXRpb24tbm8taW1wb3J0YW50ICovIH1cblxuLnVzd2RzICo6Zm9jdXMsXG4udXNhLWZvY3VzIHtcbiAgb3V0bGluZTogMnB4IGRvdHRlZCAjYWViMGI1O1xuICBvdXRsaW5lLW9mZnNldDogM3B4OyB9XG5cbi8qIHN0eWxlbGludC1kaXNhYmxlIHNlbGVjdG9yLW5vLXF1YWxpZnlpbmctdHlwZSAqL1xuLnVzYS1idXR0b24sXG4udXNhLWJ1dHRvbi1wcmltYXJ5LFxuLnVzYS1idXR0b246dmlzaXRlZCxcbi51c2EtYnV0dG9uLXByaW1hcnk6dmlzaXRlZCB7XG4gIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XG4gIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuICBtYXJnaW4tdG9wOiAwLjVlbTtcbiAgbWFyZ2luLXJpZ2h0OiAwLjVlbTtcbiAgbWFyZ2luLWJvdHRvbTogMC41ZW07XG4gIGFwcGVhcmFuY2U6IG5vbmU7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMDcxYmM7XG4gIGJvcmRlcjogMDtcbiAgYm9yZGVyLXJhZGl1czogNXB4O1xuICBjb2xvcjogI2ZmZmZmZjtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGZvbnQtZmFtaWx5OiBUcmVidWNoZXQsIFRhaG9tYSwgc2Fucy1zZXJpZjtcbiAgZm9udC1zaXplOiAxLjA2MjVyZW07XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICBwYWRkaW5nOiAxcmVtIDJyZW07XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICB3aWR0aDogMTAwJTsgfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0ODFweCkge1xuICAgIC51c2EtYnV0dG9uLFxuICAgIC51c2EtYnV0dG9uLXByaW1hcnksXG4gICAgLnVzYS1idXR0b246dmlzaXRlZCxcbiAgICAudXNhLWJ1dHRvbi1wcmltYXJ5OnZpc2l0ZWQge1xuICAgICAgd2lkdGg6IGF1dG87IH0gfVxuICAudXNhLWJ1dHRvbjpob3ZlciwgLnVzYS1idXR0b24udXNhLWJ1dHRvbi1ob3ZlcixcbiAgLnVzYS1idXR0b24tcHJpbWFyeTpob3ZlcixcbiAgLnVzYS1idXR0b24tcHJpbWFyeS51c2EtYnV0dG9uLWhvdmVyLFxuICAudXNhLWJ1dHRvbjp2aXNpdGVkOmhvdmVyLFxuICAudXNhLWJ1dHRvbjp2aXNpdGVkLnVzYS1idXR0b24taG92ZXIsXG4gIC51c2EtYnV0dG9uLXByaW1hcnk6dmlzaXRlZDpob3ZlcixcbiAgLnVzYS1idXR0b24tcHJpbWFyeTp2aXNpdGVkLnVzYS1idXR0b24taG92ZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICMyMDU0OTM7XG4gICAgYm9yZGVyLWJvdHRvbTogMDtcbiAgICBjb2xvcjogI2ZmZmZmZjtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7IH1cbiAgLnVzYS1idXR0b246YWN0aXZlLCAudXNhLWJ1dHRvbi51c2EtYnV0dG9uLWFjdGl2ZSxcbiAgLnVzYS1idXR0b24tcHJpbWFyeTphY3RpdmUsXG4gIC51c2EtYnV0dG9uLXByaW1hcnkudXNhLWJ1dHRvbi1hY3RpdmUsXG4gIC51c2EtYnV0dG9uOnZpc2l0ZWQ6YWN0aXZlLFxuICAudXNhLWJ1dHRvbjp2aXNpdGVkLnVzYS1idXR0b24tYWN0aXZlLFxuICAudXNhLWJ1dHRvbi1wcmltYXJ5OnZpc2l0ZWQ6YWN0aXZlLFxuICAudXNhLWJ1dHRvbi1wcmltYXJ5OnZpc2l0ZWQudXNhLWJ1dHRvbi1hY3RpdmUge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICMxMTJlNTE7IH1cbiAgLnVzYS1idXR0b24udXNhLWJ1dHRvbi1wcmltYXJ5LWFsdCxcbiAgLnVzYS1idXR0b24tcHJpbWFyeS51c2EtYnV0dG9uLXByaW1hcnktYWx0LFxuICAudXNhLWJ1dHRvbjp2aXNpdGVkLnVzYS1idXR0b24tcHJpbWFyeS1hbHQsXG4gIC51c2EtYnV0dG9uLXByaW1hcnk6dmlzaXRlZC51c2EtYnV0dG9uLXByaW1hcnktYWx0IHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDJiZmU3O1xuICAgIGNvbG9yOiAjMjEyMTIxOyB9XG4gICAgLnVzYS1idXR0b24udXNhLWJ1dHRvbi1wcmltYXJ5LWFsdDpob3ZlciwgLnVzYS1idXR0b24udXNhLWJ1dHRvbi1wcmltYXJ5LWFsdC51c2EtYnV0dG9uLWhvdmVyLFxuICAgIC51c2EtYnV0dG9uLXByaW1hcnkudXNhLWJ1dHRvbi1wcmltYXJ5LWFsdDpob3ZlcixcbiAgICAudXNhLWJ1dHRvbi1wcmltYXJ5LnVzYS1idXR0b24tcHJpbWFyeS1hbHQudXNhLWJ1dHRvbi1ob3ZlcixcbiAgICAudXNhLWJ1dHRvbjp2aXNpdGVkLnVzYS1idXR0b24tcHJpbWFyeS1hbHQ6aG92ZXIsXG4gICAgLnVzYS1idXR0b246dmlzaXRlZC51c2EtYnV0dG9uLXByaW1hcnktYWx0LnVzYS1idXR0b24taG92ZXIsXG4gICAgLnVzYS1idXR0b24tcHJpbWFyeTp2aXNpdGVkLnVzYS1idXR0b24tcHJpbWFyeS1hbHQ6aG92ZXIsXG4gICAgLnVzYS1idXR0b24tcHJpbWFyeTp2aXNpdGVkLnVzYS1idXR0b24tcHJpbWFyeS1hbHQudXNhLWJ1dHRvbi1ob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDBhNmQyOyB9XG4gICAgLnVzYS1idXR0b24udXNhLWJ1dHRvbi1wcmltYXJ5LWFsdDphY3RpdmUsIC51c2EtYnV0dG9uLnVzYS1idXR0b24tcHJpbWFyeS1hbHQudXNhLWJ1dHRvbi1hY3RpdmUsXG4gICAgLnVzYS1idXR0b24tcHJpbWFyeS51c2EtYnV0dG9uLXByaW1hcnktYWx0OmFjdGl2ZSxcbiAgICAudXNhLWJ1dHRvbi1wcmltYXJ5LnVzYS1idXR0b24tcHJpbWFyeS1hbHQudXNhLWJ1dHRvbi1hY3RpdmUsXG4gICAgLnVzYS1idXR0b246dmlzaXRlZC51c2EtYnV0dG9uLXByaW1hcnktYWx0OmFjdGl2ZSxcbiAgICAudXNhLWJ1dHRvbjp2aXNpdGVkLnVzYS1idXR0b24tcHJpbWFyeS1hbHQudXNhLWJ1dHRvbi1hY3RpdmUsXG4gICAgLnVzYS1idXR0b24tcHJpbWFyeTp2aXNpdGVkLnVzYS1idXR0b24tcHJpbWFyeS1hbHQ6YWN0aXZlLFxuICAgIC51c2EtYnV0dG9uLXByaW1hcnk6dmlzaXRlZC51c2EtYnV0dG9uLXByaW1hcnktYWx0LnVzYS1idXR0b24tYWN0aXZlIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICMwNDZiOTk7XG4gICAgICBjb2xvcjogI2ZmZmZmZjsgfVxuICAudXNhLWJ1dHRvbi51c2EtYnV0dG9uLXNlY29uZGFyeSxcbiAgLnVzYS1idXR0b24tcHJpbWFyeS51c2EtYnV0dG9uLXNlY29uZGFyeSxcbiAgLnVzYS1idXR0b246dmlzaXRlZC51c2EtYnV0dG9uLXNlY29uZGFyeSxcbiAgLnVzYS1idXR0b24tcHJpbWFyeTp2aXNpdGVkLnVzYS1idXR0b24tc2Vjb25kYXJ5IHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmO1xuICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMCAwIDJweCAjMDA3MWJjO1xuICAgIGNvbG9yOiAjMDA3MWJjOyB9XG4gICAgLnVzYS1idXR0b24udXNhLWJ1dHRvbi1zZWNvbmRhcnk6aG92ZXIsIC51c2EtYnV0dG9uLnVzYS1idXR0b24tc2Vjb25kYXJ5LnVzYS1idXR0b24taG92ZXIsXG4gICAgLnVzYS1idXR0b24tcHJpbWFyeS51c2EtYnV0dG9uLXNlY29uZGFyeTpob3ZlcixcbiAgICAudXNhLWJ1dHRvbi1wcmltYXJ5LnVzYS1idXR0b24tc2Vjb25kYXJ5LnVzYS1idXR0b24taG92ZXIsXG4gICAgLnVzYS1idXR0b246dmlzaXRlZC51c2EtYnV0dG9uLXNlY29uZGFyeTpob3ZlcixcbiAgICAudXNhLWJ1dHRvbjp2aXNpdGVkLnVzYS1idXR0b24tc2Vjb25kYXJ5LnVzYS1idXR0b24taG92ZXIsXG4gICAgLnVzYS1idXR0b24tcHJpbWFyeTp2aXNpdGVkLnVzYS1idXR0b24tc2Vjb25kYXJ5OmhvdmVyLFxuICAgIC51c2EtYnV0dG9uLXByaW1hcnk6dmlzaXRlZC51c2EtYnV0dG9uLXNlY29uZGFyeS51c2EtYnV0dG9uLWhvdmVyIHtcbiAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMCAwIDJweCAjMjA1NDkzO1xuICAgICAgY29sb3I6ICMyMDU0OTM7IH1cbiAgICAudXNhLWJ1dHRvbi51c2EtYnV0dG9uLXNlY29uZGFyeTphY3RpdmUsIC51c2EtYnV0dG9uLnVzYS1idXR0b24tc2Vjb25kYXJ5LnVzYS1idXR0b24tYWN0aXZlLFxuICAgIC51c2EtYnV0dG9uLXByaW1hcnkudXNhLWJ1dHRvbi1zZWNvbmRhcnk6YWN0aXZlLFxuICAgIC51c2EtYnV0dG9uLXByaW1hcnkudXNhLWJ1dHRvbi1zZWNvbmRhcnkudXNhLWJ1dHRvbi1hY3RpdmUsXG4gICAgLnVzYS1idXR0b246dmlzaXRlZC51c2EtYnV0dG9uLXNlY29uZGFyeTphY3RpdmUsXG4gICAgLnVzYS1idXR0b246dmlzaXRlZC51c2EtYnV0dG9uLXNlY29uZGFyeS51c2EtYnV0dG9uLWFjdGl2ZSxcbiAgICAudXNhLWJ1dHRvbi1wcmltYXJ5OnZpc2l0ZWQudXNhLWJ1dHRvbi1zZWNvbmRhcnk6YWN0aXZlLFxuICAgIC51c2EtYnV0dG9uLXByaW1hcnk6dmlzaXRlZC51c2EtYnV0dG9uLXNlY29uZGFyeS51c2EtYnV0dG9uLWFjdGl2ZSB7XG4gICAgICBib3gtc2hhZG93OiBpbnNldCAwIDAgMCAycHggIzExMmU1MTtcbiAgICAgIGNvbG9yOiAjMTEyZTUxOyB9XG4gIC51c2EtYnV0dG9uLnVzYS1idXR0b24tc2Vjb25kYXJ5LWludmVyc2UsIC51c2EtYnV0dG9uLnVzYS1idXR0b24tb3V0bGluZS1pbnZlcnNlLFxuICAudXNhLWJ1dHRvbi1wcmltYXJ5LnVzYS1idXR0b24tc2Vjb25kYXJ5LWludmVyc2UsXG4gIC51c2EtYnV0dG9uLXByaW1hcnkudXNhLWJ1dHRvbi1vdXRsaW5lLWludmVyc2UsXG4gIC51c2EtYnV0dG9uOnZpc2l0ZWQudXNhLWJ1dHRvbi1zZWNvbmRhcnktaW52ZXJzZSxcbiAgLnVzYS1idXR0b246dmlzaXRlZC51c2EtYnV0dG9uLW91dGxpbmUtaW52ZXJzZSxcbiAgLnVzYS1idXR0b24tcHJpbWFyeTp2aXNpdGVkLnVzYS1idXR0b24tc2Vjb25kYXJ5LWludmVyc2UsXG4gIC51c2EtYnV0dG9uLXByaW1hcnk6dmlzaXRlZC51c2EtYnV0dG9uLW91dGxpbmUtaW52ZXJzZSB7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgYm94LXNoYWRvdzogaW5zZXQgMCAwIDAgMnB4ICNmZmZmZmY7XG4gICAgY29sb3I6ICNmZmZmZmY7IH1cbiAgICAudXNhLWJ1dHRvbi51c2EtYnV0dG9uLXNlY29uZGFyeS1pbnZlcnNlOmhvdmVyLCAudXNhLWJ1dHRvbi51c2EtYnV0dG9uLXNlY29uZGFyeS1pbnZlcnNlLnVzYS1idXR0b24taG92ZXIsIC51c2EtYnV0dG9uLnVzYS1idXR0b24tb3V0bGluZS1pbnZlcnNlOmhvdmVyLCAudXNhLWJ1dHRvbi51c2EtYnV0dG9uLW91dGxpbmUtaW52ZXJzZS51c2EtYnV0dG9uLWhvdmVyLFxuICAgIC51c2EtYnV0dG9uLXByaW1hcnkudXNhLWJ1dHRvbi1zZWNvbmRhcnktaW52ZXJzZTpob3ZlcixcbiAgICAudXNhLWJ1dHRvbi1wcmltYXJ5LnVzYS1idXR0b24tc2Vjb25kYXJ5LWludmVyc2UudXNhLWJ1dHRvbi1ob3ZlcixcbiAgICAudXNhLWJ1dHRvbi1wcmltYXJ5LnVzYS1idXR0b24tb3V0bGluZS1pbnZlcnNlOmhvdmVyLFxuICAgIC51c2EtYnV0dG9uLXByaW1hcnkudXNhLWJ1dHRvbi1vdXRsaW5lLWludmVyc2UudXNhLWJ1dHRvbi1ob3ZlcixcbiAgICAudXNhLWJ1dHRvbjp2aXNpdGVkLnVzYS1idXR0b24tc2Vjb25kYXJ5LWludmVyc2U6aG92ZXIsXG4gICAgLnVzYS1idXR0b246dmlzaXRlZC51c2EtYnV0dG9uLXNlY29uZGFyeS1pbnZlcnNlLnVzYS1idXR0b24taG92ZXIsXG4gICAgLnVzYS1idXR0b246dmlzaXRlZC51c2EtYnV0dG9uLW91dGxpbmUtaW52ZXJzZTpob3ZlcixcbiAgICAudXNhLWJ1dHRvbjp2aXNpdGVkLnVzYS1idXR0b24tb3V0bGluZS1pbnZlcnNlLnVzYS1idXR0b24taG92ZXIsXG4gICAgLnVzYS1idXR0b24tcHJpbWFyeTp2aXNpdGVkLnVzYS1idXR0b24tc2Vjb25kYXJ5LWludmVyc2U6aG92ZXIsXG4gICAgLnVzYS1idXR0b24tcHJpbWFyeTp2aXNpdGVkLnVzYS1idXR0b24tc2Vjb25kYXJ5LWludmVyc2UudXNhLWJ1dHRvbi1ob3ZlcixcbiAgICAudXNhLWJ1dHRvbi1wcmltYXJ5OnZpc2l0ZWQudXNhLWJ1dHRvbi1vdXRsaW5lLWludmVyc2U6aG92ZXIsXG4gICAgLnVzYS1idXR0b24tcHJpbWFyeTp2aXNpdGVkLnVzYS1idXR0b24tb3V0bGluZS1pbnZlcnNlLnVzYS1idXR0b24taG92ZXIge1xuICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAwIDAgMnB4ICNkNmQ3ZDk7XG4gICAgICBjb2xvcjogI2Q2ZDdkOTsgfVxuICAgIC51c2EtYnV0dG9uLnVzYS1idXR0b24tc2Vjb25kYXJ5LWludmVyc2U6YWN0aXZlLCAudXNhLWJ1dHRvbi51c2EtYnV0dG9uLXNlY29uZGFyeS1pbnZlcnNlLnVzYS1idXR0b24tYWN0aXZlLCAudXNhLWJ1dHRvbi51c2EtYnV0dG9uLW91dGxpbmUtaW52ZXJzZTphY3RpdmUsIC51c2EtYnV0dG9uLnVzYS1idXR0b24tb3V0bGluZS1pbnZlcnNlLnVzYS1idXR0b24tYWN0aXZlLFxuICAgIC51c2EtYnV0dG9uLXByaW1hcnkudXNhLWJ1dHRvbi1zZWNvbmRhcnktaW52ZXJzZTphY3RpdmUsXG4gICAgLnVzYS1idXR0b24tcHJpbWFyeS51c2EtYnV0dG9uLXNlY29uZGFyeS1pbnZlcnNlLnVzYS1idXR0b24tYWN0aXZlLFxuICAgIC51c2EtYnV0dG9uLXByaW1hcnkudXNhLWJ1dHRvbi1vdXRsaW5lLWludmVyc2U6YWN0aXZlLFxuICAgIC51c2EtYnV0dG9uLXByaW1hcnkudXNhLWJ1dHRvbi1vdXRsaW5lLWludmVyc2UudXNhLWJ1dHRvbi1hY3RpdmUsXG4gICAgLnVzYS1idXR0b246dmlzaXRlZC51c2EtYnV0dG9uLXNlY29uZGFyeS1pbnZlcnNlOmFjdGl2ZSxcbiAgICAudXNhLWJ1dHRvbjp2aXNpdGVkLnVzYS1idXR0b24tc2Vjb25kYXJ5LWludmVyc2UudXNhLWJ1dHRvbi1hY3RpdmUsXG4gICAgLnVzYS1idXR0b246dmlzaXRlZC51c2EtYnV0dG9uLW91dGxpbmUtaW52ZXJzZTphY3RpdmUsXG4gICAgLnVzYS1idXR0b246dmlzaXRlZC51c2EtYnV0dG9uLW91dGxpbmUtaW52ZXJzZS51c2EtYnV0dG9uLWFjdGl2ZSxcbiAgICAudXNhLWJ1dHRvbi1wcmltYXJ5OnZpc2l0ZWQudXNhLWJ1dHRvbi1zZWNvbmRhcnktaW52ZXJzZTphY3RpdmUsXG4gICAgLnVzYS1idXR0b24tcHJpbWFyeTp2aXNpdGVkLnVzYS1idXR0b24tc2Vjb25kYXJ5LWludmVyc2UudXNhLWJ1dHRvbi1hY3RpdmUsXG4gICAgLnVzYS1idXR0b24tcHJpbWFyeTp2aXNpdGVkLnVzYS1idXR0b24tb3V0bGluZS1pbnZlcnNlOmFjdGl2ZSxcbiAgICAudXNhLWJ1dHRvbi1wcmltYXJ5OnZpc2l0ZWQudXNhLWJ1dHRvbi1vdXRsaW5lLWludmVyc2UudXNhLWJ1dHRvbi1hY3RpdmUge1xuICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAwIDAgMnB4ICNhZWIwYjU7XG4gICAgICBjb2xvcjogI2Q2ZDdkOTsgfVxuICAudXNhLWJ1dHRvbi51c2EtYnV0dG9uLWdyYXksXG4gIC51c2EtYnV0dG9uLXByaW1hcnkudXNhLWJ1dHRvbi1ncmF5LFxuICAudXNhLWJ1dHRvbjp2aXNpdGVkLnVzYS1idXR0b24tZ3JheSxcbiAgLnVzYS1idXR0b24tcHJpbWFyeTp2aXNpdGVkLnVzYS1idXR0b24tZ3JheSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzViNjE2YjsgfVxuICAgIC51c2EtYnV0dG9uLnVzYS1idXR0b24tZ3JheTpob3ZlciwgLnVzYS1idXR0b24udXNhLWJ1dHRvbi1ncmF5LnVzYS1idXR0b24taG92ZXIsXG4gICAgLnVzYS1idXR0b24tcHJpbWFyeS51c2EtYnV0dG9uLWdyYXk6aG92ZXIsXG4gICAgLnVzYS1idXR0b24tcHJpbWFyeS51c2EtYnV0dG9uLWdyYXkudXNhLWJ1dHRvbi1ob3ZlcixcbiAgICAudXNhLWJ1dHRvbjp2aXNpdGVkLnVzYS1idXR0b24tZ3JheTpob3ZlcixcbiAgICAudXNhLWJ1dHRvbjp2aXNpdGVkLnVzYS1idXR0b24tZ3JheS51c2EtYnV0dG9uLWhvdmVyLFxuICAgIC51c2EtYnV0dG9uLXByaW1hcnk6dmlzaXRlZC51c2EtYnV0dG9uLWdyYXk6aG92ZXIsXG4gICAgLnVzYS1idXR0b24tcHJpbWFyeTp2aXNpdGVkLnVzYS1idXR0b24tZ3JheS51c2EtYnV0dG9uLWhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICMzMjNhNDU7IH1cbiAgICAudXNhLWJ1dHRvbi51c2EtYnV0dG9uLWdyYXk6YWN0aXZlLCAudXNhLWJ1dHRvbi51c2EtYnV0dG9uLWdyYXkudXNhLWJ1dHRvbi1hY3RpdmUsXG4gICAgLnVzYS1idXR0b24tcHJpbWFyeS51c2EtYnV0dG9uLWdyYXk6YWN0aXZlLFxuICAgIC51c2EtYnV0dG9uLXByaW1hcnkudXNhLWJ1dHRvbi1ncmF5LnVzYS1idXR0b24tYWN0aXZlLFxuICAgIC51c2EtYnV0dG9uOnZpc2l0ZWQudXNhLWJ1dHRvbi1ncmF5OmFjdGl2ZSxcbiAgICAudXNhLWJ1dHRvbjp2aXNpdGVkLnVzYS1idXR0b24tZ3JheS51c2EtYnV0dG9uLWFjdGl2ZSxcbiAgICAudXNhLWJ1dHRvbi1wcmltYXJ5OnZpc2l0ZWQudXNhLWJ1dHRvbi1ncmF5OmFjdGl2ZSxcbiAgICAudXNhLWJ1dHRvbi1wcmltYXJ5OnZpc2l0ZWQudXNhLWJ1dHRvbi1ncmF5LnVzYS1idXR0b24tYWN0aXZlIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICMyMTIxMjE7IH1cbiAgLnVzYS1idXR0b24udXNhLWJ1dHRvbi1yZWQsXG4gIC51c2EtYnV0dG9uLXByaW1hcnkudXNhLWJ1dHRvbi1yZWQsXG4gIC51c2EtYnV0dG9uOnZpc2l0ZWQudXNhLWJ1dHRvbi1yZWQsXG4gIC51c2EtYnV0dG9uLXByaW1hcnk6dmlzaXRlZC51c2EtYnV0dG9uLXJlZCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2UzMWMzZDsgfVxuICAgIC51c2EtYnV0dG9uLnVzYS1idXR0b24tcmVkOmhvdmVyLCAudXNhLWJ1dHRvbi51c2EtYnV0dG9uLXJlZC51c2EtYnV0dG9uLWhvdmVyLFxuICAgIC51c2EtYnV0dG9uLXByaW1hcnkudXNhLWJ1dHRvbi1yZWQ6aG92ZXIsXG4gICAgLnVzYS1idXR0b24tcHJpbWFyeS51c2EtYnV0dG9uLXJlZC51c2EtYnV0dG9uLWhvdmVyLFxuICAgIC51c2EtYnV0dG9uOnZpc2l0ZWQudXNhLWJ1dHRvbi1yZWQ6aG92ZXIsXG4gICAgLnVzYS1idXR0b246dmlzaXRlZC51c2EtYnV0dG9uLXJlZC51c2EtYnV0dG9uLWhvdmVyLFxuICAgIC51c2EtYnV0dG9uLXByaW1hcnk6dmlzaXRlZC51c2EtYnV0dG9uLXJlZDpob3ZlcixcbiAgICAudXNhLWJ1dHRvbi1wcmltYXJ5OnZpc2l0ZWQudXNhLWJ1dHRvbi1yZWQudXNhLWJ1dHRvbi1ob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjY2QyMDI2OyB9XG4gICAgLnVzYS1idXR0b24udXNhLWJ1dHRvbi1yZWQ6YWN0aXZlLCAudXNhLWJ1dHRvbi51c2EtYnV0dG9uLXJlZC51c2EtYnV0dG9uLWFjdGl2ZSxcbiAgICAudXNhLWJ1dHRvbi1wcmltYXJ5LnVzYS1idXR0b24tcmVkOmFjdGl2ZSxcbiAgICAudXNhLWJ1dHRvbi1wcmltYXJ5LnVzYS1idXR0b24tcmVkLnVzYS1idXR0b24tYWN0aXZlLFxuICAgIC51c2EtYnV0dG9uOnZpc2l0ZWQudXNhLWJ1dHRvbi1yZWQ6YWN0aXZlLFxuICAgIC51c2EtYnV0dG9uOnZpc2l0ZWQudXNhLWJ1dHRvbi1yZWQudXNhLWJ1dHRvbi1hY3RpdmUsXG4gICAgLnVzYS1idXR0b24tcHJpbWFyeTp2aXNpdGVkLnVzYS1idXR0b24tcmVkOmFjdGl2ZSxcbiAgICAudXNhLWJ1dHRvbi1wcmltYXJ5OnZpc2l0ZWQudXNhLWJ1dHRvbi1yZWQudXNhLWJ1dHRvbi1hY3RpdmUge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzk4MWIxZTsgfVxuICAudXNhLWJ1dHRvbi51c2EtYnV0dG9uLWJpZyxcbiAgLnVzYS1idXR0b24tcHJpbWFyeS51c2EtYnV0dG9uLWJpZyxcbiAgLnVzYS1idXR0b246dmlzaXRlZC51c2EtYnV0dG9uLWJpZyxcbiAgLnVzYS1idXR0b24tcHJpbWFyeTp2aXNpdGVkLnVzYS1idXR0b24tYmlnIHtcbiAgICBmb250LXNpemU6IDEuOXJlbTtcbiAgICBwYWRkaW5nOiAxLjVyZW0gM3JlbTsgfVxuICAudXNhLWJ1dHRvbjpkaXNhYmxlZCxcbiAgLnVzYS1idXR0b24tcHJpbWFyeTpkaXNhYmxlZCxcbiAgLnVzYS1idXR0b246dmlzaXRlZDpkaXNhYmxlZCxcbiAgLnVzYS1idXR0b24tcHJpbWFyeTp2aXNpdGVkOmRpc2FibGVkIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZDZkN2Q5O1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lOyB9XG4gICAgLnVzYS1idXR0b246ZGlzYWJsZWQ6aG92ZXIsIC51c2EtYnV0dG9uOmRpc2FibGVkLnVzYS1idXR0b24taG92ZXIsIC51c2EtYnV0dG9uOmRpc2FibGVkOmFjdGl2ZSwgLnVzYS1idXR0b246ZGlzYWJsZWQudXNhLWJ1dHRvbi1hY3RpdmUsIC51c2EtYnV0dG9uOmRpc2FibGVkOmZvY3VzLCAudXNhLWJ1dHRvbjpkaXNhYmxlZC51c2EtZm9jdXMsXG4gICAgLnVzYS1idXR0b24tcHJpbWFyeTpkaXNhYmxlZDpob3ZlcixcbiAgICAudXNhLWJ1dHRvbi1wcmltYXJ5OmRpc2FibGVkLnVzYS1idXR0b24taG92ZXIsXG4gICAgLnVzYS1idXR0b24tcHJpbWFyeTpkaXNhYmxlZDphY3RpdmUsXG4gICAgLnVzYS1idXR0b24tcHJpbWFyeTpkaXNhYmxlZC51c2EtYnV0dG9uLWFjdGl2ZSxcbiAgICAudXNhLWJ1dHRvbi1wcmltYXJ5OmRpc2FibGVkOmZvY3VzLFxuICAgIC51c2EtYnV0dG9uLXByaW1hcnk6ZGlzYWJsZWQudXNhLWZvY3VzLFxuICAgIC51c2EtYnV0dG9uOnZpc2l0ZWQ6ZGlzYWJsZWQ6aG92ZXIsXG4gICAgLnVzYS1idXR0b246dmlzaXRlZDpkaXNhYmxlZC51c2EtYnV0dG9uLWhvdmVyLFxuICAgIC51c2EtYnV0dG9uOnZpc2l0ZWQ6ZGlzYWJsZWQ6YWN0aXZlLFxuICAgIC51c2EtYnV0dG9uOnZpc2l0ZWQ6ZGlzYWJsZWQudXNhLWJ1dHRvbi1hY3RpdmUsXG4gICAgLnVzYS1idXR0b246dmlzaXRlZDpkaXNhYmxlZDpmb2N1cyxcbiAgICAudXNhLWJ1dHRvbjp2aXNpdGVkOmRpc2FibGVkLnVzYS1mb2N1cyxcbiAgICAudXNhLWJ1dHRvbi1wcmltYXJ5OnZpc2l0ZWQ6ZGlzYWJsZWQ6aG92ZXIsXG4gICAgLnVzYS1idXR0b24tcHJpbWFyeTp2aXNpdGVkOmRpc2FibGVkLnVzYS1idXR0b24taG92ZXIsXG4gICAgLnVzYS1idXR0b24tcHJpbWFyeTp2aXNpdGVkOmRpc2FibGVkOmFjdGl2ZSxcbiAgICAudXNhLWJ1dHRvbi1wcmltYXJ5OnZpc2l0ZWQ6ZGlzYWJsZWQudXNhLWJ1dHRvbi1hY3RpdmUsXG4gICAgLnVzYS1idXR0b24tcHJpbWFyeTp2aXNpdGVkOmRpc2FibGVkOmZvY3VzLFxuICAgIC51c2EtYnV0dG9uLXByaW1hcnk6dmlzaXRlZDpkaXNhYmxlZC51c2EtZm9jdXMge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2Q2ZDdkOTtcbiAgICAgIGJvcmRlcjogMDtcbiAgICAgIGJveC1zaGFkb3c6IG5vbmU7IH1cblxuLyogc3R5bGVsaW50LWRpc2FibGUgKi9cbi51c2EtYnV0dG9uLWRpc2FibGVkIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Q2ZDdkOTtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7IH1cbiAgLnVzYS1idXR0b24tZGlzYWJsZWQ6aG92ZXIsIC51c2EtYnV0dG9uLWRpc2FibGVkLnVzYS1idXR0b24taG92ZXIsIC51c2EtYnV0dG9uLWRpc2FibGVkOmFjdGl2ZSwgLnVzYS1idXR0b24tZGlzYWJsZWQudXNhLWJ1dHRvbi1hY3RpdmUsIC51c2EtYnV0dG9uLWRpc2FibGVkOmZvY3VzLCAudXNhLWJ1dHRvbi1kaXNhYmxlZC51c2EtZm9jdXMge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNkNmQ3ZDk7XG4gICAgYm9yZGVyOiAwO1xuICAgIGJveC1zaGFkb3c6IG5vbmU7IH1cblxuLnVzYS1idXR0b24tc2Vjb25kYXJ5LWRpc2FibGVkLFxuLnVzYS1idXR0b24tc2Vjb25kYXJ5LWludmVyc2UtZGlzYWJsZWQsXG4udXNhLWJ1dHRvbi1zZWNvbmRhcnk6ZGlzYWJsZWQsXG4udXNhLWJ1dHRvbi1zZWNvbmRhcnktaW52ZXJzZTpkaXNhYmxlZCxcbi51c2EtYnV0dG9uLW91dGxpbmUtaW52ZXJzZTpkaXNhYmxlZCB7XG4gIGJveC1zaGFkb3c6IGluc2V0IDAgMCAwIDJweCAjZDZkN2Q5O1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgY29sb3I6ICNkNmQ3ZDk7IH1cbiAgLnVzYS1idXR0b24tc2Vjb25kYXJ5LWRpc2FibGVkOmhvdmVyLCAudXNhLWJ1dHRvbi1zZWNvbmRhcnktZGlzYWJsZWQudXNhLWJ1dHRvbi1ob3ZlciwgLnVzYS1idXR0b24tc2Vjb25kYXJ5LWRpc2FibGVkOmFjdGl2ZSwgLnVzYS1idXR0b24tc2Vjb25kYXJ5LWRpc2FibGVkLnVzYS1idXR0b24tYWN0aXZlLCAudXNhLWJ1dHRvbi1zZWNvbmRhcnktZGlzYWJsZWQ6Zm9jdXMsIC51c2EtYnV0dG9uLXNlY29uZGFyeS1kaXNhYmxlZC51c2EtZm9jdXMsXG4gIC51c2EtYnV0dG9uLXNlY29uZGFyeS1pbnZlcnNlLWRpc2FibGVkOmhvdmVyLFxuICAudXNhLWJ1dHRvbi1zZWNvbmRhcnktaW52ZXJzZS1kaXNhYmxlZC51c2EtYnV0dG9uLWhvdmVyLFxuICAudXNhLWJ1dHRvbi1zZWNvbmRhcnktaW52ZXJzZS1kaXNhYmxlZDphY3RpdmUsXG4gIC51c2EtYnV0dG9uLXNlY29uZGFyeS1pbnZlcnNlLWRpc2FibGVkLnVzYS1idXR0b24tYWN0aXZlLFxuICAudXNhLWJ1dHRvbi1zZWNvbmRhcnktaW52ZXJzZS1kaXNhYmxlZDpmb2N1cyxcbiAgLnVzYS1idXR0b24tc2Vjb25kYXJ5LWludmVyc2UtZGlzYWJsZWQudXNhLWZvY3VzLFxuICAudXNhLWJ1dHRvbi1zZWNvbmRhcnk6ZGlzYWJsZWQ6aG92ZXIsXG4gIC51c2EtYnV0dG9uLXNlY29uZGFyeTpkaXNhYmxlZC51c2EtYnV0dG9uLWhvdmVyLFxuICAudXNhLWJ1dHRvbi1zZWNvbmRhcnk6ZGlzYWJsZWQ6YWN0aXZlLFxuICAudXNhLWJ1dHRvbi1zZWNvbmRhcnk6ZGlzYWJsZWQudXNhLWJ1dHRvbi1hY3RpdmUsXG4gIC51c2EtYnV0dG9uLXNlY29uZGFyeTpkaXNhYmxlZDpmb2N1cyxcbiAgLnVzYS1idXR0b24tc2Vjb25kYXJ5OmRpc2FibGVkLnVzYS1mb2N1cyxcbiAgLnVzYS1idXR0b24tc2Vjb25kYXJ5LWludmVyc2U6ZGlzYWJsZWQ6aG92ZXIsXG4gIC51c2EtYnV0dG9uLXNlY29uZGFyeS1pbnZlcnNlOmRpc2FibGVkLnVzYS1idXR0b24taG92ZXIsXG4gIC51c2EtYnV0dG9uLXNlY29uZGFyeS1pbnZlcnNlOmRpc2FibGVkOmFjdGl2ZSxcbiAgLnVzYS1idXR0b24tc2Vjb25kYXJ5LWludmVyc2U6ZGlzYWJsZWQudXNhLWJ1dHRvbi1hY3RpdmUsXG4gIC51c2EtYnV0dG9uLXNlY29uZGFyeS1pbnZlcnNlOmRpc2FibGVkOmZvY3VzLFxuICAudXNhLWJ1dHRvbi1zZWNvbmRhcnktaW52ZXJzZTpkaXNhYmxlZC51c2EtZm9jdXMsXG4gIC51c2EtYnV0dG9uLW91dGxpbmUtaW52ZXJzZTpkaXNhYmxlZDpob3ZlcixcbiAgLnVzYS1idXR0b24tb3V0bGluZS1pbnZlcnNlOmRpc2FibGVkLnVzYS1idXR0b24taG92ZXIsXG4gIC51c2EtYnV0dG9uLW91dGxpbmUtaW52ZXJzZTpkaXNhYmxlZDphY3RpdmUsXG4gIC51c2EtYnV0dG9uLW91dGxpbmUtaW52ZXJzZTpkaXNhYmxlZC51c2EtYnV0dG9uLWFjdGl2ZSxcbiAgLnVzYS1idXR0b24tb3V0bGluZS1pbnZlcnNlOmRpc2FibGVkOmZvY3VzLFxuICAudXNhLWJ1dHRvbi1vdXRsaW5lLWludmVyc2U6ZGlzYWJsZWQudXNhLWZvY3VzIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmO1xuICAgIGJvcmRlcjogMDsgfVxuXG5odG1sIC51c2EtYnV0dG9uLXNlY29uZGFyeS1kaXNhYmxlZCxcbi51c2EtYnV0dG9uLXNlY29uZGFyeTpkaXNhYmxlZCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7IH1cblxuaHRtbCAudXNhLWJ1dHRvbi1zZWNvbmRhcnktaW52ZXJzZS1kaXNhYmxlZCxcbi51c2EtYnV0dG9uLXNlY29uZGFyeS1pbnZlcnNlOmRpc2FibGVkIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGNvbG9yOiAjNWI2MTZiO1xuICBib3gtc2hhZG93OiBpbnNldCAwIDAgMCAycHggIzViNjE2YjsgfVxuXG4udXNhLWJ1dHRvbi11bnN0eWxlZCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICBib3JkZXI6IDA7XG4gIGJvcmRlci1yYWRpdXM6IDA7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMDtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgLXdlYmtpdC1mb250LXNtb290aGluZzogYXV0bzsgfVxuICAudXNhLWJ1dHRvbi11bnN0eWxlZDpob3ZlciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7IH1cblxuLypcbkBpbXBvcnQgJ2VsZW1lbnRzL2VtYmVkJztcbkBpbXBvcnQgJ2VsZW1lbnRzL2ZpZ3VyZSc7XG5AaW1wb3J0ICdlbGVtZW50cy9pbnB1dHMnO1xuQGltcG9ydCAnZWxlbWVudHMvbGFiZWxzJztcbkBpbXBvcnQgJ2VsZW1lbnRzL2xpc3QnO1xuQGltcG9ydCAnZWxlbWVudHMvdGFibGUnO1xuQGltcG9ydCAnZWxlbWVudHMvdHlwb2dyYXBoeSc7XG5cbi8vIENvbXBvbmVudHMgLS0tLS0tLS0tLS0tLS0gLy9cbiovXG4udXNhLWFjY29yZGlvbixcbi51c2EtYWNjb3JkaW9uLWJvcmRlcmVkIHtcbiAgbWFyZ2luLXRvcDogMDtcbiAgbWFyZ2luLWJvdHRvbTogMDtcbiAgbGlzdC1zdHlsZS10eXBlOiBub25lO1xuICBwYWRkaW5nLWxlZnQ6IDA7XG4gIGNvbG9yOiAjMjEyMTIxO1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDA7XG4gIHdpZHRoOiAxMDAlOyB9XG4gIC51c2EtYWNjb3JkaW9uID4gbGksXG4gIC51c2EtYWNjb3JkaW9uLWJvcmRlcmVkID4gbGkge1xuICAgIG1hcmdpbi1ib3R0b206IDA7IH1cbiAgLnVzYS1hY2NvcmRpb24gPiB1bCBsaSB1bCxcbiAgLnVzYS1hY2NvcmRpb24tYm9yZGVyZWQgPiB1bCBsaSB1bCB7XG4gICAgbGlzdC1zdHlsZTogZGlzYzsgfVxuICAgIC51c2EtYWNjb3JkaW9uID4gdWwgbGkgdWwgPiBsaSA+IHVsLFxuICAgIC51c2EtYWNjb3JkaW9uLWJvcmRlcmVkID4gdWwgbGkgdWwgPiBsaSA+IHVsIHtcbiAgICAgIGxpc3Qtc3R5bGU6IGNpcmNsZTsgfVxuICAgICAgLnVzYS1hY2NvcmRpb24gPiB1bCBsaSB1bCA+IGxpID4gdWwgPiBsaSA+IHVsLFxuICAgICAgLnVzYS1hY2NvcmRpb24tYm9yZGVyZWQgPiB1bCBsaSB1bCA+IGxpID4gdWwgPiBsaSA+IHVsIHtcbiAgICAgICAgbGlzdC1zdHlsZTogc3F1YXJlOyB9XG4gIC51c2EtYWNjb3JkaW9uICsgLnVzYS1hY2NvcmRpb24sXG4gIC51c2EtYWNjb3JkaW9uICsgLnVzYS1hY2NvcmRpb24tYm9yZGVyZWQsXG4gIC51c2EtYWNjb3JkaW9uLWJvcmRlcmVkICsgLnVzYS1hY2NvcmRpb24sXG4gIC51c2EtYWNjb3JkaW9uLWJvcmRlcmVkICsgLnVzYS1hY2NvcmRpb24tYm9yZGVyZWQge1xuICAgIG1hcmdpbi10b3A6IDFyZW07IH1cbiAgLnVzYS1hY2NvcmRpb24gPiB1bCxcbiAgLnVzYS1hY2NvcmRpb24tYm9yZGVyZWQgPiB1bCB7XG4gICAgbWFyZ2luLXRvcDogMDtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTtcbiAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgY29sb3I6ICMyMTIxMjE7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgd2lkdGg6IDEwMCU7IH1cbiAgICAudXNhLWFjY29yZGlvbiA+IHVsID4gbGksXG4gICAgLnVzYS1hY2NvcmRpb24tYm9yZGVyZWQgPiB1bCA+IGxpIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDA7IH1cbiAgICAudXNhLWFjY29yZGlvbiA+IHVsID4gbGksXG4gICAgLnVzYS1hY2NvcmRpb24tYm9yZGVyZWQgPiB1bCA+IGxpIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmMWYxZjE7XG4gICAgICBmb250LWZhbWlseTogVHJlYnVjaGV0LCBUYWhvbWEsIHNhbnMtc2VyaWY7XG4gICAgICBsaXN0LXN0eWxlOiBub25lO1xuICAgICAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xuICAgICAgd2lkdGg6IDEwMCU7IH1cbiAgICAudXNhLWFjY29yZGlvbiA+IHVsIGJ1dHRvbixcbiAgICAudXNhLWFjY29yZGlvbi1ib3JkZXJlZCA+IHVsIGJ1dHRvbiB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgIGJvcmRlcjogMDtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICBmb250LXdlaWdodDogNDAwO1xuICAgICAgbWFyZ2luOiAwO1xuICAgICAgcGFkZGluZzogMDtcbiAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhdXRvO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2YxZjFmMTtcbiAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChcIi4uL2ltZy9taW51cy5wbmdcIik7XG4gICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCIuLi9pbWcvbWludXMuc3ZnXCIpO1xuICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogcmlnaHQgMnJlbSBjZW50ZXI7XG4gICAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgICAgYmFja2dyb3VuZC1zaXplOiAxLjVyZW07XG4gICAgICBjb2xvcjogIzIxMjEyMTtcbiAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgIGZvbnQtZmFtaWx5OiBUcmVidWNoZXQsIFRhaG9tYSwgc2Fucy1zZXJpZjtcbiAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgICBtYXJnaW46IDA7XG4gICAgICBwYWRkaW5nOiAxLjVyZW0gNS41cmVtIDEuNXJlbSAycmVtO1xuICAgICAgd2lkdGg6IDEwMCU7IH1cbiAgICAgIC51c2EtYWNjb3JkaW9uID4gdWwgYnV0dG9uOmhvdmVyLFxuICAgICAgLnVzYS1hY2NvcmRpb24tYm9yZGVyZWQgPiB1bCBidXR0b246aG92ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDsgfVxuICAgICAgLnVzYS1hY2NvcmRpb24gPiB1bCBidXR0b246aG92ZXIsXG4gICAgICAudXNhLWFjY29yZGlvbi1ib3JkZXJlZCA+IHVsIGJ1dHRvbjpob3ZlciB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNkNmQ3ZDk7XG4gICAgICAgIGNvbG9yOiAjMjEyMTIxOyB9XG4gICAgICAudXNhLWFjY29yZGlvbiA+IHVsIGJ1dHRvbiBoMSxcbiAgICAgIC51c2EtYWNjb3JkaW9uID4gdWwgYnV0dG9uIGgyLFxuICAgICAgLnVzYS1hY2NvcmRpb24gPiB1bCBidXR0b24gaDMsXG4gICAgICAudXNhLWFjY29yZGlvbiA+IHVsIGJ1dHRvbiBoNCxcbiAgICAgIC51c2EtYWNjb3JkaW9uID4gdWwgYnV0dG9uIGg1LFxuICAgICAgLnVzYS1hY2NvcmRpb24gPiB1bCBidXR0b24gaDYsXG4gICAgICAudXNhLWFjY29yZGlvbi1ib3JkZXJlZCA+IHVsIGJ1dHRvbiBoMSxcbiAgICAgIC51c2EtYWNjb3JkaW9uLWJvcmRlcmVkID4gdWwgYnV0dG9uIGgyLFxuICAgICAgLnVzYS1hY2NvcmRpb24tYm9yZGVyZWQgPiB1bCBidXR0b24gaDMsXG4gICAgICAudXNhLWFjY29yZGlvbi1ib3JkZXJlZCA+IHVsIGJ1dHRvbiBoNCxcbiAgICAgIC51c2EtYWNjb3JkaW9uLWJvcmRlcmVkID4gdWwgYnV0dG9uIGg1LFxuICAgICAgLnVzYS1hY2NvcmRpb24tYm9yZGVyZWQgPiB1bCBidXR0b24gaDYge1xuICAgICAgICBtYXJnaW46IDA7IH1cbiAgICAudXNhLWFjY29yZGlvbiA+IHVsIFthcmlhLWV4cGFuZGVkPWZhbHNlXSxcbiAgICAudXNhLWFjY29yZGlvbi1ib3JkZXJlZCA+IHVsIFthcmlhLWV4cGFuZGVkPWZhbHNlXSB7XG4gICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCIuLi9pbWcvcGx1cy5wbmdcIik7XG4gICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCIuLi9pbWcvcGx1cy5zdmdcIik7XG4gICAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgICAgYmFja2dyb3VuZC1zaXplOiAxLjVyZW07IH1cbiAgLnVzYS1hY2NvcmRpb24gPiBsaSxcbiAgLnVzYS1hY2NvcmRpb24tYm9yZGVyZWQgPiBsaSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2YxZjFmMTtcbiAgICBmb250LWZhbWlseTogVHJlYnVjaGV0LCBUYWhvbWEsIHNhbnMtc2VyaWY7XG4gICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG4gICAgd2lkdGg6IDEwMCU7IH1cblxuLnVzYS1hY2NvcmRpb24tYm9yZGVyZWQgLnVzYS1hY2NvcmRpb24tY29udGVudCB7XG4gIGJvcmRlci1ib3R0b206IDNweCBzb2xpZCAjZjFmMWYxO1xuICBib3JkZXItbGVmdDogM3B4IHNvbGlkICNmMWYxZjE7XG4gIGJvcmRlci1yaWdodDogM3B4IHNvbGlkICNmMWYxZjE7IH1cblxuLnVzYS1hY2NvcmRpb24tY29udGVudCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7XG4gIG92ZXJmbG93OiBhdXRvO1xuICBwYWRkaW5nOiAxLjVyZW0gMnJlbTsgfVxuICAudXNhLWFjY29yZGlvbi1jb250ZW50ID4gKjpmaXJzdC1jaGlsZCB7XG4gICAgbWFyZ2luLXRvcDogMDsgfVxuICAudXNhLWFjY29yZGlvbi1jb250ZW50ID4gKjpsYXN0LWNoaWxkIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwOyB9XG4gIC51c2EtYWNjb3JkaW9uLWNvbnRlbnQ6bm90KFthcmlhLWhpZGRlbl0pIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgbGVmdDogLTk5OWVtOyB9XG4gIC51c2EtYWNjb3JkaW9uLWNvbnRlbnRbYXJpYS1oaWRkZW49dHJ1ZV0ge1xuICAgIGRpc3BsYXk6IG5vbmU7IH1cblxuLnVzYS1hY2NvcmRpb24tYnV0dG9uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGJvcmRlcjogMDtcbiAgYm9yZGVyLXJhZGl1czogMDtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwO1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhdXRvO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjFmMWYxO1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCIuLi9pbWcvbWludXMucG5nXCIpO1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCIuLi9pbWcvbWludXMuc3ZnXCIpO1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiByaWdodCAycmVtIGNlbnRlcjtcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgYmFja2dyb3VuZC1zaXplOiAxLjVyZW07XG4gIGNvbG9yOiAjMjEyMTIxO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgZm9udC1mYW1pbHk6IFRyZWJ1Y2hldCwgVGFob21hLCBzYW5zLXNlcmlmO1xuICBmb250LXdlaWdodDogNzAwO1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDEuNXJlbSA1LjVyZW0gMS41cmVtIDJyZW07XG4gIHdpZHRoOiAxMDAlOyB9XG4gIC51c2EtYWNjb3JkaW9uLWJ1dHRvbjpob3ZlciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7IH1cbiAgLnVzYS1hY2NvcmRpb24tYnV0dG9uOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZDZkN2Q5O1xuICAgIGNvbG9yOiAjMjEyMTIxOyB9XG4gIC51c2EtYWNjb3JkaW9uLWJ1dHRvbiBoMSxcbiAgLnVzYS1hY2NvcmRpb24tYnV0dG9uIGgyLFxuICAudXNhLWFjY29yZGlvbi1idXR0b24gaDMsXG4gIC51c2EtYWNjb3JkaW9uLWJ1dHRvbiBoNCxcbiAgLnVzYS1hY2NvcmRpb24tYnV0dG9uIGg1LFxuICAudXNhLWFjY29yZGlvbi1idXR0b24gaDYge1xuICAgIG1hcmdpbjogMDsgfVxuXG4udXNhLWFjY29yZGlvbi1idXR0b25bYXJpYS1leHBhbmRlZD1mYWxzZV0ge1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCIuLi9pbWcvcGx1cy5wbmdcIik7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybChcIi4uL2ltZy9wbHVzLnN2Z1wiKTtcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgYmFja2dyb3VuZC1zaXplOiAxLjVyZW07IH1cblxuLypcbkBpbXBvcnQgJ2NvbXBvbmVudHMvYWxlcnRzJztcbiovXG4udXNhLWJhbm5lciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmMWYxZjE7XG4gIHBhZGRpbmctYm90dG9tOiAwLjQzNzVyZW07IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDgxcHgpIHtcbiAgICAudXNhLWJhbm5lciB7XG4gICAgICBmb250LXNpemU6IDAuODEyNXJlbTtcbiAgICAgIHBhZGRpbmctYm90dG9tOiAwOyB9IH1cblxuLnVzYS1iYW5uZXItY29udGVudCB7XG4gIHBhZGRpbmctcmlnaHQ6IDFyZW07XG4gIHBhZGRpbmctYm90dG9tOiAzcHg7XG4gIHBhZGRpbmctbGVmdDogMXJlbTtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGZvbnQtc2l6ZTogMC45Mzc1cmVtO1xuICBwYWRkaW5nLXRvcDogMS4yNXJlbTtcbiAgd2lkdGg6IDEwMCU7IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogODAxcHgpIHtcbiAgICAudXNhLWJhbm5lci1jb250ZW50IHtcbiAgICAgIHBhZGRpbmctYm90dG9tOiAxLjQzNzVyZW07XG4gICAgICBwYWRkaW5nLXRvcDogMi41cmVtOyB9IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogOTUxcHgpIHtcbiAgICAudXNhLWJhbm5lci1jb250ZW50IHtcbiAgICAgIHBhZGRpbmctcmlnaHQ6IDEuODc1cmVtO1xuICAgICAgcGFkZGluZy1sZWZ0OiAxLjg3NXJlbTsgfSB9XG4gIC51c2EtYmFubmVyLWNvbnRlbnQgcDpmaXJzdC1jaGlsZCB7XG4gICAgbWFyZ2luLXRvcDogMC42MjVyZW07IH1cbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA4MDFweCkge1xuICAgICAgLnVzYS1iYW5uZXItY29udGVudCBwOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgbWFyZ2luLXRvcDogMDsgfSB9XG5cbi51c2EtYmFubmVyLWlubmVyIHtcbiAgbWF4LXdpZHRoOiAxMjAwcHg7XG4gIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gIHBhZGRpbmctcmlnaHQ6IDFyZW07XG4gIHBhZGRpbmctbGVmdDogMXJlbTtcbiAgbWF4LXdpZHRoOiA5NjBweDsgfVxuICAudXNhLWJhbm5lci1pbm5lcjo6YWZ0ZXIge1xuICAgIGNsZWFyOiBib3RoO1xuICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgZGlzcGxheTogYmxvY2s7IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogOTUxcHgpIHtcbiAgICAudXNhLWJhbm5lci1pbm5lciB7XG4gICAgICBwYWRkaW5nLXJpZ2h0OiAxLjg3NXJlbTtcbiAgICAgIHBhZGRpbmctbGVmdDogMS44NzVyZW07IH0gfVxuXG4udXNhLWJhbm5lci1oZWFkZXIge1xuICBwYWRkaW5nLXRvcDogMC4zNDM3NXJlbTtcbiAgcGFkZGluZy1ib3R0b206IDAuMzQzNzVyZW07XG4gIGZvbnQtc2l6ZTogMC43NXJlbTtcbiAgZm9udC13ZWlnaHQ6IDQwMDsgfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0ODFweCkge1xuICAgIC51c2EtYmFubmVyLWhlYWRlciB7XG4gICAgICBwYWRkaW5nLXRvcDogMDtcbiAgICAgIHBhZGRpbmctYm90dG9tOiAwOyB9IH1cbiAgLnVzYS1iYW5uZXItaGVhZGVyIHAge1xuICAgIG1hcmdpbi10b3A6IDA7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICBkaXNwbGF5OiBpbmxpbmU7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOyB9XG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDgxcHgpIHtcbiAgICAgIC51c2EtYmFubmVyLWhlYWRlciBwIHtcbiAgICAgICAgbWFyZ2luLXRvcDogMnB4O1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAycHg7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsgfSB9XG4gIC51c2EtYmFubmVyLWhlYWRlciBpbWcge1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIG1hcmdpbi1yaWdodDogMC42MjVyZW07XG4gICAgbWFyZ2luLXRvcDogMC42MjVyZW07XG4gICAgd2lkdGg6IDEuNXJlbTsgfVxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQ4MXB4KSB7XG4gICAgICAudXNhLWJhbm5lci1oZWFkZXIgaW1nIHtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjQzNzVyZW07XG4gICAgICAgIHdpZHRoOiAxLjI1cmVtOyB9IH1cblxuLnVzYS1iYW5uZXItaGVhZGVyLWV4cGFuZGVkIHtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNhZWIwYjU7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZvbnQtc2l6ZTogMC45Mzc1cmVtO1xuICBtaW4taGVpZ2h0OiAzLjVyZW07XG4gIHBhZGRpbmctcmlnaHQ6IDEuODc1cmVtOyB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQ4MXB4KSB7XG4gICAgLnVzYS1iYW5uZXItaGVhZGVyLWV4cGFuZGVkIHtcbiAgICAgIGJvcmRlci1ib3R0b206IG5vbmU7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIGZvbnQtc2l6ZTogMC43NXJlbTtcbiAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gICAgICBtaW4taGVpZ2h0OiAwO1xuICAgICAgcGFkZGluZy1yaWdodDogMDsgfSB9XG4gIC51c2EtYmFubmVyLWhlYWRlci1leHBhbmRlZCA+IC51c2EtYmFubmVyLWlubmVyIHtcbiAgICBtYXJnaW4tbGVmdDogMDsgfVxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQ4MXB4KSB7XG4gICAgICAudXNhLWJhbm5lci1oZWFkZXItZXhwYW5kZWQgPiAudXNhLWJhbm5lci1pbm5lciB7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvOyB9IH1cbiAgLnVzYS1iYW5uZXItaGVhZGVyLWV4cGFuZGVkIGltZyB7XG4gICAgbWFyZ2luLXJpZ2h0OiAxLjVyZW07IH1cbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0ODFweCkge1xuICAgICAgLnVzYS1iYW5uZXItaGVhZGVyLWV4cGFuZGVkIGltZyB7XG4gICAgICAgIG1hcmdpbi1yaWdodDogMC40Mzc1cmVtOyB9IH1cbiAgLnVzYS1iYW5uZXItaGVhZGVyLWV4cGFuZGVkIHAge1xuICAgIGxpbmUtaGVpZ2h0OiAxLjM7XG4gICAgdmVydGljYWwtYWxpZ246IHRvcDsgfVxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQ4MXB4KSB7XG4gICAgICAudXNhLWJhbm5lci1oZWFkZXItZXhwYW5kZWQgcCB7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxLjU7XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7IH0gfVxuXG4udXNhLWJhbm5lci1idXR0b24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgYm9yZGVyOiAwO1xuICBib3JkZXItcmFkaXVzOiAwO1xuICBmb250LXdlaWdodDogNDAwO1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDA7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG4gIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGF1dG87XG4gIHBhZGRpbmctdG9wOiAwLjgxMjVyZW07XG4gIHBhZGRpbmctbGVmdDogM3JlbTtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbi14OiByaWdodDtcbiAgY29sb3I6ICMwMDcxYmM7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBmb250LXNpemU6IDAuNzVyZW07XG4gIGhlaWdodDogMi42ODc1cmVtO1xuICBsZWZ0OiAwO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICB0b3A6IDA7XG4gIHdpZHRoOiAxMDAlOyB9XG4gIC51c2EtYmFubmVyLWJ1dHRvbjpob3ZlciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDgxcHgpIHtcbiAgICAudXNhLWJhbm5lci1idXR0b24ge1xuICAgICAgcGFkZGluZy10b3A6IDA7XG4gICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICAvKiBzdHlsZWxpbnQtZGlzYWJsZSBkZWNsYXJhdGlvbi1ibG9jay1uby1pZ25vcmVkLXByb3BlcnRpZXMgKi9cbiAgICAgIGRpc3BsYXk6IGlubGluZTtcbiAgICAgIGhlaWdodDogaW5pdGlhbDtcbiAgICAgIG1hcmdpbi1sZWZ0OiAzcHg7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgd2lkdGg6IGluaXRpYWw7XG4gICAgICAvKiBzdHlsZWxpbnQtZW5hYmxlICovIH0gfVxuICAudXNhLWJhbm5lci1idXR0b246aG92ZXIge1xuICAgIGNvbG9yOiAjMjA1NDkzO1xuICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lOyB9XG4gIC51c2EtYmFubmVyLWJ1dHRvblthcmlhLWV4cGFuZGVkPWZhbHNlXSB7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogbm9uZTsgfVxuICAgIC51c2EtYmFubmVyLWJ1dHRvblthcmlhLWV4cGFuZGVkPWZhbHNlXTo6YWZ0ZXIge1xuICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiLi4vaW1nL2FuZ2xlLWFycm93LWRvd24tcHJpbWFyeS5wbmdcIik7XG4gICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCIuLi9pbWcvYW5nbGUtYXJyb3ctZG93bi1wcmltYXJ5LnN2Z1wiKTtcbiAgICAgIGJhY2tncm91bmQtc2l6ZTogMTAwJTtcbiAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgaGVpZ2h0OiAwLjYyNXJlbTtcbiAgICAgIHdpZHRoOiAwLjYyNXJlbTtcbiAgICAgIC8qIHN0eWxlbGludC1kaXNhYmxlIGJsb2NrLWNsb3NpbmctYnJhY2UtbmV3bGluZS1hZnRlciwgYXQtcnVsZS1lbXB0eS1saW5lLWJlZm9yZSAqL1xuICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAvKiBzdHlsZWxpbnQtZW5hYmxlICovIH1cbiAgICAudXNhLWJhbm5lci1idXR0b25bYXJpYS1leHBhbmRlZD1mYWxzZV06aG92ZXI6OmFmdGVyIHtcbiAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChcIi4uL2ltZy9hbmdsZS1hcnJvdy1kb3duLXByaW1hcnktaG92ZXIucG5nXCIpO1xuICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiLi4vaW1nL2FuZ2xlLWFycm93LWRvd24tcHJpbWFyeS1ob3Zlci5zdmdcIik7IH1cbiAgICAudXNhLWJhbm5lci1idXR0b25bYXJpYS1leHBhbmRlZD1mYWxzZV06OmFmdGVyIHtcbiAgICAgIGJhY2tncm91bmQtcG9zaXRpb24teTogMXB4OyB9XG4gIC51c2EtYmFubmVyLWJ1dHRvblthcmlhLWV4cGFuZGVkPXRydWVdIHtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiBub25lO1xuICAgIGhlaWdodDogMy41cmVtOyB9XG4gICAgLnVzYS1iYW5uZXItYnV0dG9uW2FyaWEtZXhwYW5kZWQ9dHJ1ZV06OmFmdGVyIHtcbiAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChcIi4uL2ltZy9jbG9zZS5wbmdcIik7XG4gICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCIuLi9pbWcvY2xvc2Uuc3ZnXCIpO1xuICAgICAgYmFja2dyb3VuZC1zaXplOiAxMDAlO1xuICAgICAgY29udGVudDogJyc7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICBoZWlnaHQ6IDAuODEyNXJlbTtcbiAgICAgIHdpZHRoOiAwLjgxMjVyZW07XG4gICAgICAvKiBzdHlsZWxpbnQtZGlzYWJsZSBibG9jay1jbG9zaW5nLWJyYWNlLW5ld2xpbmUtYWZ0ZXIsIGF0LXJ1bGUtZW1wdHktbGluZS1iZWZvcmUgKi9cbiAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgLyogc3R5bGVsaW50LWVuYWJsZSAqLyB9XG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDgxcHgpIHtcbiAgICAgIC51c2EtYmFubmVyLWJ1dHRvblthcmlhLWV4cGFuZGVkPXRydWVdIHtcbiAgICAgICAgaGVpZ2h0OiBpbml0aWFsO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7IH1cbiAgICAgICAgLnVzYS1iYW5uZXItYnV0dG9uW2FyaWEtZXhwYW5kZWQ9dHJ1ZV06OmFmdGVyIHtcbiAgICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCIuLi9pbWcvYW5nbGUtYXJyb3ctdXAtcHJpbWFyeS5wbmdcIik7XG4gICAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiLi4vaW1nL2FuZ2xlLWFycm93LXVwLXByaW1hcnkuc3ZnXCIpO1xuICAgICAgICAgIGJhY2tncm91bmQtc2l6ZTogMTAwJTtcbiAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgaGVpZ2h0OiAwLjYyNXJlbTtcbiAgICAgICAgICB3aWR0aDogMC42MjVyZW07XG4gICAgICAgICAgLyogc3R5bGVsaW50LWRpc2FibGUgYmxvY2stY2xvc2luZy1icmFjZS1uZXdsaW5lLWFmdGVyLCBhdC1ydWxlLWVtcHR5LWxpbmUtYmVmb3JlICovXG4gICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgLyogc3R5bGVsaW50LWVuYWJsZSAqLyB9XG4gICAgICAgIC51c2EtYmFubmVyLWJ1dHRvblthcmlhLWV4cGFuZGVkPXRydWVdOmhvdmVyOjphZnRlciB7XG4gICAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiLi4vaW1nL2FuZ2xlLWFycm93LXVwLXByaW1hcnktaG92ZXIucG5nXCIpO1xuICAgICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChcIi4uL2ltZy9hbmdsZS1hcnJvdy11cC1wcmltYXJ5LWhvdmVyLnN2Z1wiKTsgfVxuICAgICAgICAudXNhLWJhbm5lci1idXR0b25bYXJpYS1leHBhbmRlZD10cnVlXTo6YWZ0ZXIge1xuICAgICAgICAgIGJhY2tncm91bmQtcG9zaXRpb24teTogMXB4OyB9IH1cbiAgICAudXNhLWJhbm5lci1idXR0b25bYXJpYS1leHBhbmRlZD10cnVlXTo6YWZ0ZXIge1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgcmlnaHQ6IDAuOTM3NXJlbTtcbiAgICAgIHRvcDogMS4zNDM3NXJlbTsgfVxuICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDgxcHgpIHtcbiAgICAgICAgLnVzYS1iYW5uZXItYnV0dG9uW2FyaWEtZXhwYW5kZWQ9dHJ1ZV06OmFmdGVyIHtcbiAgICAgICAgICBwb3NpdGlvbjogc3RhdGljOyB9IH1cbiAgICAudXNhLWJhbm5lci1idXR0b25bYXJpYS1leHBhbmRlZD10cnVlXSAudXNhLWJhbm5lci1idXR0b24tdGV4dCB7XG4gICAgICBkaXNwbGF5OiBub25lOyB9XG4gICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0ODFweCkge1xuICAgICAgICAudXNhLWJhbm5lci1idXR0b25bYXJpYS1leHBhbmRlZD10cnVlXSAudXNhLWJhbm5lci1idXR0b24tdGV4dCB7XG4gICAgICAgICAgZGlzcGxheTogaW5saW5lOyB9IH1cblxuLnVzYS1iYW5uZXItaWNvbiB7XG4gIHdpZHRoOiAyLjM3NXJlbTsgfVxuXG4vKlxuQGltcG9ydCAnY29tcG9uZW50cy9mb290ZXInO1xuQGltcG9ydCAnY29tcG9uZW50cy9mb3Jtcyc7XG5AaW1wb3J0ICdjb21wb25lbnRzL2dyYXBoaWMtbGlzdCc7XG5AaW1wb3J0ICdjb21wb25lbnRzL2hlYWRlcic7XG5AaW1wb3J0ICdjb21wb25lbnRzL2hlcm8nO1xuQGltcG9ydCAnY29tcG9uZW50cy9sYXlvdXQnO1xuQGltcG9ydCAnY29tcG9uZW50cy9tZWRpYS1ibG9jayc7XG5AaW1wb3J0ICdjb21wb25lbnRzL25hdmlnYXRpb24nO1xuQGltcG9ydCAnY29tcG9uZW50cy9zZWFyY2gnO1xuQGltcG9ydCAnY29tcG9uZW50cy9zZWN0aW9uJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvc2lkZW5hdic7XG5AaW1wb3J0ICdjb21wb25lbnRzL3NraXBuYXYnO1xuKi9cbi51c2EtYnV0dG9uLFxuLnVzYS1idXR0b24tcHJpbWFyeSxcbi51c2EtYnV0dG9uOnZpc2l0ZWQsXG4udXNhLWJ1dHRvbi1wcmltYXJ5OnZpc2l0ZWQge1xuICBwYWRkaW5nOiAwLjYyNXJlbSAxLjI1cmVtOyB9XG5cbi51c2EtYmFubmVyIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlOyB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDgwMXB4KSB7XG4gIC51c2EtYmFubmVyLWlubmVyIHtcbiAgICBwYWRkaW5nOiAwIGNhbGMoMiUgKyA4cHgpO1xuICAgIHdpZHRoOiA5NiU7IH0gfVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAxMDI1cHgpIHtcbiAgLnVzYS1iYW5uZXItaW5uZXIge1xuICAgIG1hcmdpbjogMCBhdXRvO1xuICAgIHBhZGRpbmc6IDAgMC41cmVtO1xuICAgIHdpZHRoOiA5NjBweDsgfSB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDgwMXB4KSB7XG4gIC51c2EtYmFubmVyLWNvbnRlbnQge1xuICAgIHBhZGRpbmctbGVmdDogY2FsYygyJSArIDhweCk7XG4gICAgcGFkZGluZy1yaWdodDogY2FsYygyJSArIDhweCk7XG4gICAgd2lkdGg6IDk2JTsgfSB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDEwMjVweCkge1xuICAudXNhLWJhbm5lci1jb250ZW50IHtcbiAgICBwYWRkaW5nLWxlZnQ6IDAuNXJlbTtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwLjVyZW07XG4gICAgd2lkdGg6IDk2MHB4OyB9IH1cblxuLnVzYS1iYW5uZXItaGVhZGVyIHtcbiAgZm9udC1zaXplOiAwLjYyNXJlbTsgfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0ODFweCkge1xuICAgIC51c2EtYmFubmVyLWhlYWRlciB7XG4gICAgICBmb250LXNpemU6IDAuNzVyZW07XG4gICAgICBwYWRkaW5nOiAwIDAgM3B4OyB9IH1cbiAgLnVzYS1iYW5uZXItaGVhZGVyIGltZyB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgbWFyZ2luLXJpZ2h0OiAwLjYyNXJlbTtcbiAgICBtYXJnaW4tdG9wOiAwO1xuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgd2lkdGg6IDEuNXJlbTsgfVxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQ4MXB4KSB7XG4gICAgICAudXNhLWJhbm5lci1oZWFkZXIgaW1nIHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBmbG9hdDogbm9uZTtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjYyNXJlbTtcbiAgICAgICAgd2lkdGg6IDEuMjVyZW07IH0gfVxuICAudXNhLWJhbm5lci1oZWFkZXIgcCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHRvcDogMXB4O1xuICAgIGxlZnQ6IC0ycHg7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgbGluZS1oZWlnaHQ6IDEuMTU7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlOyB9XG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDgxcHgpIHtcbiAgICAgIC51c2EtYmFubmVyLWhlYWRlciBwIHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB0b3A6IGF1dG87XG4gICAgICAgIGxlZnQ6IGF1dG87XG4gICAgICAgIGRpc3BsYXk6IGlubGluZTtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgICAgIG92ZXJmbG93OiB2aXNpYmxlO1xuICAgICAgICBtYXJnaW46IDA7IH0gfVxuICAudXNhLWJhbm5lci1oZWFkZXItZXhwYW5kZWQgaW1nIHtcbiAgICBtYXJnaW4tcmlnaHQ6IDAuNjI1cmVtOyB9XG5cbi51c2EtYWNjb3JkaW9uLWJ1dHRvblthcmlhLWV4cGFuZGVkPWZhbHNlXSxcbi51c2EtYWNjb3JkaW9uLWJ1dHRvblthcmlhLWV4cGFuZGVkPXRydWVdIHtcbiAgYmFja2dyb3VuZC1zaXplOiAwLjkzNzVyZW07IH1cbiAgLnVzYS1hY2NvcmRpb24tYnV0dG9uW2FyaWEtZXhwYW5kZWQ9ZmFsc2VdOmFmdGVyLFxuICAudXNhLWFjY29yZGlvbi1idXR0b25bYXJpYS1leHBhbmRlZD10cnVlXTphZnRlciB7XG4gICAgaGVpZ2h0OiAwLjYyNXJlbTtcbiAgICB3aWR0aDogMC42MjVyZW07IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDgxcHgpIHtcbiAgICAudXNhLWFjY29yZGlvbi1idXR0b25bYXJpYS1leHBhbmRlZD1mYWxzZV0sXG4gICAgLnVzYS1hY2NvcmRpb24tYnV0dG9uW2FyaWEtZXhwYW5kZWQ9dHJ1ZV0ge1xuICAgICAgdG9wOiAxcHg7XG4gICAgICBwYWRkaW5nLWxlZnQ6IDRweDsgfSB9XG5cbi51c2EtbWVkaWFfYmxvY2staW1nIHtcbiAgZmxvYXQ6IGxlZnQ7XG4gIG1hcmdpbi1yaWdodDogMXJlbTsgfVxuXG4udXNhLW1lZGlhX2Jsb2NrLWJvZHkge1xuICBvdmVyZmxvdzogaGlkZGVuOyB9XG4iLCIvLyBCdXR0b25zIHZhcmlhYmxlc1xuXG4kYnV0dG9uLXN0cm9rZTogaW5zZXQgMCAwIDAgMnB4O1xuXG4vLyBCdXR0b25zXG5cbi8vIFRoaXMgbWl4aW4gaXMgb25seSBuZWVkZWQgdW50aWwgd2UgZnVsbHkgcmVtb3ZlIHRoZVxuLy8gZGVwcmVjYXRlZCB1c2EtYnV0dG9uLWRpc2FibGVkIHN0eWxlLlxuQG1peGluIGRpc2FibGVkZXNxdWUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3ItZ3JheS1saWdodGVyO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcblxuICAmOmhvdmVyLFxuICAmLnVzYS1idXR0b24taG92ZXIsXG4gICY6YWN0aXZlLFxuICAmLnVzYS1idXR0b24tYWN0aXZlLFxuICAmOmZvY3VzLFxuICAmLnVzYS1mb2N1cyB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yLWdyYXktbGlnaHRlcjtcbiAgICBib3JkZXI6IDA7XG4gICAgYm94LXNoYWRvdzogbm9uZTtcbiAgfVxufVxuXG4vKiBzdHlsZWxpbnQtZGlzYWJsZSBzZWxlY3Rvci1uby1xdWFsaWZ5aW5nLXR5cGUgKi9cbi51c2EtYnV0dG9uLFxuLnVzYS1idXR0b24tcHJpbWFyeSxcbi51c2EtYnV0dG9uOnZpc2l0ZWQsXG4udXNhLWJ1dHRvbi1wcmltYXJ5OnZpc2l0ZWQge1xuLy8gcmVtb3ZlIGFsbCBiYXNlIGVsZW1lbnQgc3R5bGluZ1xuLy8gYnV0dG9uLFxuLy8gW3R5cGU9YnV0dG9uXSxcbi8vIFt0eXBlPXN1Ym1pdF0sXG4vLyBbdHlwZT1yZXNldF0sXG4vLyBbdHlwZT1pbWFnZV1cbiAgQGluY2x1ZGUgZm9udC1zbW9vdGhpbmc7XG4gIEBpbmNsdWRlIG1hcmdpbigwLjVlbSAwLjVlbSAwLjVlbSBudWxsKTtcbiAgYXBwZWFyYW5jZTogbm9uZTtcbiAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yLXByaW1hcnk7XG4gIGJvcmRlcjogMDtcbiAgYm9yZGVyLXJhZGl1czogJGJ1dHRvbi1ib3JkZXItcmFkaXVzO1xuICBjb2xvcjogJGNvbG9yLXdoaXRlO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgZm9udC1mYW1pbHk6ICRmb250LXNhbnM7XG4gIGZvbnQtc2l6ZTogJGJhc2UtZm9udC1zaXplO1xuICBmb250LXdlaWdodDogJGZvbnQtYm9sZDtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIHBhZGRpbmc6IDFyZW0gMnJlbTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIHdpZHRoOiAxMDAlO1xuXG4gIEBpbmNsdWRlIG1lZGlhKCRzbWFsbC1zY3JlZW4pIHtcbiAgICB3aWR0aDogYXV0bztcbiAgfVxuXG4gICY6aG92ZXIsXG4gICYudXNhLWJ1dHRvbi1ob3ZlciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yLXByaW1hcnktZGFya2VyO1xuICAgIGJvcmRlci1ib3R0b206IDA7XG4gICAgY29sb3I6ICRjb2xvci13aGl0ZTtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIH1cblxuICAmOmFjdGl2ZSxcbiAgJi51c2EtYnV0dG9uLWFjdGl2ZSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yLXByaW1hcnktZGFya2VzdDtcbiAgfVxuXG4gICYudXNhLWJ1dHRvbi1wcmltYXJ5LWFsdCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yLXByaW1hcnktYWx0O1xuICAgIGNvbG9yOiAkY29sb3ItYmFzZTtcblxuICAgICY6aG92ZXIsXG4gICAgJi51c2EtYnV0dG9uLWhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvci1wcmltYXJ5LWFsdC1kYXJrO1xuICAgIH1cblxuICAgICY6YWN0aXZlLFxuICAgICYudXNhLWJ1dHRvbi1hY3RpdmUge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yLXByaW1hcnktYWx0LWRhcmtlc3Q7XG4gICAgICBjb2xvcjogJGNvbG9yLXdoaXRlO1xuICAgIH1cbiAgfVxuXG4gICYudXNhLWJ1dHRvbi1zZWNvbmRhcnkge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvci13aGl0ZTtcbiAgICBib3gtc2hhZG93OiAkYnV0dG9uLXN0cm9rZSAkY29sb3ItcHJpbWFyeTtcbiAgICBjb2xvcjogJGNvbG9yLXByaW1hcnk7XG5cbiAgICAmOmhvdmVyLFxuICAgICYudXNhLWJ1dHRvbi1ob3ZlciB7XG4gICAgICBib3gtc2hhZG93OiAkYnV0dG9uLXN0cm9rZSAkY29sb3ItcHJpbWFyeS1kYXJrZXI7XG4gICAgICBjb2xvcjogJGNvbG9yLXByaW1hcnktZGFya2VyO1xuICAgIH1cblxuICAgICY6YWN0aXZlLFxuICAgICYudXNhLWJ1dHRvbi1hY3RpdmUge1xuICAgICAgYm94LXNoYWRvdzogJGJ1dHRvbi1zdHJva2UgJGNvbG9yLXByaW1hcnktZGFya2VzdDtcbiAgICAgIGNvbG9yOiAkY29sb3ItcHJpbWFyeS1kYXJrZXN0O1xuICAgIH1cbiAgfVxuXG4gICYudXNhLWJ1dHRvbi1zZWNvbmRhcnktaW52ZXJzZSxcbiAgJi51c2EtYnV0dG9uLW91dGxpbmUtaW52ZXJzZSB7ICAgIC8vIE91dGxpbmUgaW52ZXJzZSB0byBiZSBkZXByZWNhdGVkIGluIDIuMFxuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgIGJveC1zaGFkb3c6ICRidXR0b24tc3Ryb2tlICRjb2xvci13aGl0ZTtcbiAgICBjb2xvcjogJGNvbG9yLXdoaXRlO1xuXG4gICAgJjpob3ZlcixcbiAgICAmLnVzYS1idXR0b24taG92ZXIge1xuICAgICAgYm94LXNoYWRvdzogJGJ1dHRvbi1zdHJva2UgJGNvbG9yLWdyYXktbGlnaHRlcjtcbiAgICAgIGNvbG9yOiAkY29sb3ItZ3JheS1saWdodGVyO1xuICAgIH1cblxuICAgICY6YWN0aXZlLFxuICAgICYudXNhLWJ1dHRvbi1hY3RpdmUge1xuICAgICAgYm94LXNoYWRvdzogJGJ1dHRvbi1zdHJva2UgJGNvbG9yLWdyYXktbGlnaHQ7XG4gICAgICBjb2xvcjogJGNvbG9yLWdyYXktbGlnaHRlcjtcbiAgICB9XG4gIH1cblxuICAmLnVzYS1idXR0b24tZ3JheSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yLWdyYXk7XG5cbiAgICAmOmhvdmVyLFxuICAgICYudXNhLWJ1dHRvbi1ob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3ItZ3JheS1kYXJrO1xuICAgIH1cblxuICAgICY6YWN0aXZlLFxuICAgICYudXNhLWJ1dHRvbi1hY3RpdmUge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yLWJhc2U7XG4gICAgfVxuICB9XG5cbiAgJi51c2EtYnV0dG9uLXJlZCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yLXNlY29uZGFyeTtcblxuICAgICY6aG92ZXIsXG4gICAgJi51c2EtYnV0dG9uLWhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvci1zZWNvbmRhcnktZGFyaztcbiAgICB9XG5cbiAgICAmOmFjdGl2ZSxcbiAgICAmLnVzYS1idXR0b24tYWN0aXZlIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvci1zZWNvbmRhcnktZGFya2VzdDtcbiAgICB9XG4gIH1cblxuICAmLnVzYS1idXR0b24tYmlnIHtcbiAgICBmb250LXNpemU6IDEuOXJlbTtcbiAgICBwYWRkaW5nOiAxLjVyZW0gM3JlbTtcbiAgfVxuXG4gICY6ZGlzYWJsZWQge1xuICAgIEBpbmNsdWRlIGRpc2FibGVkZXNxdWU7XG4gIH1cbn1cbi8qIHN0eWxlbGludC1kaXNhYmxlICovXG5cbi51c2EtYnV0dG9uLWRpc2FibGVkICAvLyBEZXByZWNhdGVkXG57XG4gIEBpbmNsdWRlIGRpc2FibGVkZXNxdWVcbn1cblxuLnVzYS1idXR0b24tc2Vjb25kYXJ5LWRpc2FibGVkLCAgICAgICAgICAvLyBEZXByZWNhdGVkXG4udXNhLWJ1dHRvbi1zZWNvbmRhcnktaW52ZXJzZS1kaXNhYmxlZCwgIC8vIERlcHJlY2F0ZWRcbi51c2EtYnV0dG9uLXNlY29uZGFyeTpkaXNhYmxlZCxcbi51c2EtYnV0dG9uLXNlY29uZGFyeS1pbnZlcnNlOmRpc2FibGVkLFxuLnVzYS1idXR0b24tb3V0bGluZS1pbnZlcnNlOmRpc2FibGVkIHsgICAvLyBPdXRsaW5lIGludmVyc2UgdG8gYmUgZGVwcmVjYXRlZCBpbiAyLjBcbiAgYm94LXNoYWRvdzogJGJ1dHRvbi1zdHJva2UgJGNvbG9yLWdyYXktbGlnaHRlcjtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIGNvbG9yOiAkY29sb3ItZ3JheS1saWdodGVyO1xuXG4gICY6aG92ZXIsXG4gICYudXNhLWJ1dHRvbi1ob3ZlcixcbiAgJjphY3RpdmUsXG4gICYudXNhLWJ1dHRvbi1hY3RpdmUsXG4gICY6Zm9jdXMsXG4gICYudXNhLWZvY3VzIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3Itd2hpdGU7XG4gICAgYm9yZGVyOiAwO1xuICB9XG59XG5cbmh0bWwgLnVzYS1idXR0b24tc2Vjb25kYXJ5LWRpc2FibGVkLCAgICAgICAgICAvLyBEZXByZWNhdGVkXG4udXNhLWJ1dHRvbi1zZWNvbmRhcnk6ZGlzYWJsZWQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3Itd2hpdGU7XG59XG5cbmh0bWwgLnVzYS1idXR0b24tc2Vjb25kYXJ5LWludmVyc2UtZGlzYWJsZWQsICAvLyBEZXByZWNhdGVkXG4udXNhLWJ1dHRvbi1zZWNvbmRhcnktaW52ZXJzZTpkaXNhYmxlZCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICBjb2xvcjogJGNvbG9yLWdyYXk7XG4gIGJveC1zaGFkb3c6ICRidXR0b24tc3Ryb2tlICRjb2xvci1ncmF5O1xufVxuXG5AbWl4aW4gYnV0dG9uLXVuc3R5bGVkIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGJvcmRlcjogMDtcbiAgYm9yZGVyLXJhZGl1czogMDtcbiAgZm9udC13ZWlnaHQ6ICRmb250LW5vcm1hbDtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwO1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhdXRvO1xuXG4gICY6aG92ZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICB9XG59XG5cbi51c2EtYnV0dG9uLXVuc3R5bGVkIHtcbiAgQGluY2x1ZGUgYnV0dG9uLXVuc3R5bGVkO1xufVxuIiwiLy8gVmFyaWFibGVzXG5cbiRhY2NvcmRpb24tYm9yZGVyOiAzcHggc29saWQgJGNvbG9yLWdyYXktbGlnaHRlc3Q7XG5cbi8vIEFjY29yZGlvbiBTdHlsZXNcblxuJGljb24tc2l6ZTogJHNwYWNpbmctbWQtc21hbGw7XG4kaC1wYWRkaW5nOiAkc3BhY2luZy1tZWRpdW07XG4kdi1wYWRkaW5nOiAkc3BhY2luZy1tZC1zbWFsbDtcblxuQG1peGluIGFjY29yZGlvbi1saXN0LXN0eWxlcyB7XG4gIEBpbmNsdWRlIHVuc3R5bGVkLWxpc3Q7XG4gIGNvbG9yOiAkY29sb3ItYmFzZTtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwO1xuICB3aWR0aDogMTAwJTtcbn1cblxuQG1peGluIGFjY29yZGlvbi1saXN0LWl0ZW0tc3R5bGVzIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yLWdyYXktbGlnaHRlc3Q7XG4gIGZvbnQtZmFtaWx5OiAkZm9udC1zYW5zO1xuICBsaXN0LXN0eWxlOiBub25lO1xuICBtYXJnaW4tYm90dG9tOiAkc3BhY2luZy14LXNtYWxsO1xuICB3aWR0aDogMTAwJTtcbn1cblxuLy8gc2Nzcy1saW50OmRpc2FibGUgUHJvcGVydHlDb3VudFxuQG1peGluIGFjY29yZGlvbi1idXR0b24tc3R5bGVzIHtcbiAgQGluY2x1ZGUgYnV0dG9uLXVuc3R5bGVkO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3ItZ3JheS1saWdodGVzdDtcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCcjeyRpbWFnZS1wYXRofS9taW51cy5wbmcnKTtcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCcjeyRpbWFnZS1wYXRofS9taW51cy5zdmcnKTtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogcmlnaHQgJGgtcGFkZGluZyBjZW50ZXI7XG4gIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gIGJhY2tncm91bmQtc2l6ZTogJGljb24tc2l6ZTtcbiAgY29sb3I6ICRjb2xvci1iYXNlO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgZm9udC1mYW1pbHk6ICRmb250LXNhbnM7XG4gIGZvbnQtd2VpZ2h0OiAkZm9udC1ib2xkO1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6ICR2LXBhZGRpbmcgKCRoLXBhZGRpbmcgKiAyICsgJGljb24tc2l6ZSkgJHYtcGFkZGluZyAkaC1wYWRkaW5nO1xuICB3aWR0aDogMTAwJTtcblxuICAmOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3ItZ3JheS1saWdodGVyO1xuICAgIGNvbG9yOiAkY29sb3ItYmFzZTtcbiAgfVxuXG4gIGgxLFxuICBoMixcbiAgaDMsXG4gIGg0LFxuICBoNSxcbiAgaDYge1xuICAgIG1hcmdpbjogMDtcbiAgfVxufVxuLy8gc2Nzcy1saW50OmVuYWJsZSBQcm9wZXJ0eUNvdW50XG5cbkBtaXhpbiBhY2NvcmRpb24tYnV0dG9uLXVub3BlbmVkLXN0eWxlcyB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnI3skaW1hZ2UtcGF0aH0vcGx1cy5wbmcnKTtcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCcjeyRpbWFnZS1wYXRofS9wbHVzLnN2ZycpO1xuICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICBiYWNrZ3JvdW5kLXNpemU6ICRpY29uLXNpemU7XG59XG5cbkBtaXhpbiBhY2NvcmRpb24tbmVzdGVkLWxpc3Qge1xuICA+IHVsIGxpIHVsIHtcbiAgICBsaXN0LXN0eWxlOiBkaXNjO1xuICAgID4gbGkgPiB1bCB7XG4gICAgICBsaXN0LXN0eWxlOiBjaXJjbGU7XG4gICAgICA+IGxpID4gdWwge1xuICAgICAgICBsaXN0LXN0eWxlOiBzcXVhcmU7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi51c2EtYWNjb3JkaW9uLFxuLnVzYS1hY2NvcmRpb24tYm9yZGVyZWQge1xuICBAaW5jbHVkZSBhY2NvcmRpb24tbGlzdC1zdHlsZXM7XG4gIEBpbmNsdWRlIGFjY29yZGlvbi1uZXN0ZWQtbGlzdDtcblxuICArIC51c2EtYWNjb3JkaW9uLFxuICArIC51c2EtYWNjb3JkaW9uLWJvcmRlcmVkIHtcbiAgICBtYXJnaW4tdG9wOiAkc3BhY2luZy1zbWFsbDtcbiAgfVxuXG4gIC8vIFRPRE8gZGVwcmVjYXRlZCBydWxlc2V0IGJhc2VkIG9uIG9sZCBhY2NvcmRpb24uXG4gID4gdWwge1xuICAgIEBpbmNsdWRlIGFjY29yZGlvbi1saXN0LXN0eWxlcztcblxuICAgIC8vIFRPRE8gZGVwcmVjYXRlZCBydWxlc2V0IGJhc2VkIG9uIG9sZCBhY2NvcmRpb24uXG4gICAgPiBsaSB7XG4gICAgICBAaW5jbHVkZSBhY2NvcmRpb24tbGlzdC1pdGVtLXN0eWxlcztcbiAgICB9XG5cbiAgICAvLyBUT0RPIGRlcHJlY2F0ZWQgcnVsZXNldCBiYXNlZCBvbiBvbGQgYWNjb3JkaW9uLlxuICAgIGJ1dHRvbiB7XG4gICAgICBAaW5jbHVkZSBhY2NvcmRpb24tYnV0dG9uLXN0eWxlcztcbiAgICB9XG5cbiAgICAvLyBUT0RPIGRlcHJlY2F0ZWQgcnVsZXNldCBiYXNlZCBvbiBvbGQgYWNjb3JkaW9uLlxuICAgIFthcmlhLWV4cGFuZGVkPWZhbHNlXSB7XG4gICAgICBAaW5jbHVkZSBhY2NvcmRpb24tYnV0dG9uLXVub3BlbmVkLXN0eWxlcztcbiAgICB9XG4gIH1cblxuICA+IGxpIHtcbiAgICBAaW5jbHVkZSBhY2NvcmRpb24tbGlzdC1pdGVtLXN0eWxlcztcbiAgfVxuXG59XG5cbi51c2EtYWNjb3JkaW9uLWJvcmRlcmVkIHtcbiAgLnVzYS1hY2NvcmRpb24tY29udGVudCB7XG4gICAgYm9yZGVyLWJvdHRvbTogJGFjY29yZGlvbi1ib3JkZXI7XG4gICAgYm9yZGVyLWxlZnQ6ICRhY2NvcmRpb24tYm9yZGVyO1xuICAgIGJvcmRlci1yaWdodDogJGFjY29yZGlvbi1ib3JkZXI7XG4gIH1cbn1cblxuLnVzYS1hY2NvcmRpb24tY29udGVudCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICRjb2xvci13aGl0ZTtcbiAgb3ZlcmZsb3c6IGF1dG87XG4gIHBhZGRpbmc6ICRzcGFjaW5nLW1kLXNtYWxsICRzcGFjaW5nLW1lZGl1bTtcblxuICA+ICo6Zmlyc3QtY2hpbGQge1xuICAgIG1hcmdpbi10b3A6IDA7XG4gIH1cblxuICA+ICo6bGFzdC1jaGlsZCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgfVxuXG4gICY6bm90KFthcmlhLWhpZGRlbl0pIHtcbiAgICBAaW5jbHVkZSBzci1vbmx5KCk7XG4gIH1cblxuICBAaW5jbHVkZSBhY2Nlc3NpYmx5LWhpZGRlbigpO1xufVxuXG4udXNhLWFjY29yZGlvbi1idXR0b24ge1xuICBAaW5jbHVkZSBhY2NvcmRpb24tYnV0dG9uLXN0eWxlcztcbn1cblxuLnVzYS1hY2NvcmRpb24tYnV0dG9uW2FyaWEtZXhwYW5kZWQ9ZmFsc2VdIHtcbiAgQGluY2x1ZGUgYWNjb3JkaW9uLWJ1dHRvbi11bm9wZW5lZC1zdHlsZXM7XG59XG4iLCIudXNhLWJhbm5lciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICRjb2xvci1ncmF5LWxpZ2h0ZXN0O1xuICBwYWRkaW5nLWJvdHRvbTogc2l6ZSg3cHgpO1xuXG4gIEBpbmNsdWRlIG1lZGlhKCRzbWFsbC1zY3JlZW4pIHtcbiAgICBmb250LXNpemU6ICRoNi1mb250LXNpemU7XG4gICAgcGFkZGluZy1ib3R0b206IDA7XG4gIH1cbn1cblxuLnVzYS1iYW5uZXItY29udGVudCB7XG4gIEBpbmNsdWRlIHBhZGRpbmcobnVsbCAkc2l0ZS1tYXJnaW5zLW1vYmlsZSAzcHggJHNpdGUtbWFyZ2lucy1tb2JpbGUpO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgZm9udC1zaXplOiAkaDUtZm9udC1zaXplO1xuICBwYWRkaW5nLXRvcDogc2l6ZSgyMHB4KTtcbiAgd2lkdGg6IDEwMCU7XG5cbiAgQGluY2x1ZGUgbWVkaWEoJG1lZGl1bS1zY3JlZW4pIHtcbiAgICBwYWRkaW5nLWJvdHRvbTogc2l6ZSgyM3B4KTtcbiAgICBwYWRkaW5nLXRvcDogc2l6ZSg0MHB4KTtcbiAgfVxuXG4gIEBpbmNsdWRlIG1lZGlhKCRuYXYtd2lkdGgpIHtcbiAgICBAaW5jbHVkZSBwYWRkaW5nKG51bGwgJHNpdGUtbWFyZ2lucyk7XG4gIH1cblxuICBwIHtcbiAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgIG1hcmdpbi10b3A6IHNpemUoMTBweCk7XG5cbiAgICAgIEBpbmNsdWRlIG1lZGlhKCRtZWRpdW0tc2NyZWVuKSB7XG4gICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi51c2EtYmFubmVyLWlubmVyIHtcbiAgQGluY2x1ZGUgb3V0ZXItY29udGFpbmVyKCk7XG4gIEBpbmNsdWRlIHBhZGRpbmcobnVsbCAkc2l0ZS1tYXJnaW5zLW1vYmlsZSk7XG4gIG1heC13aWR0aDogJHNpdGUtbWF4LXdpZHRoO1xuXG4gIEBpbmNsdWRlIG1lZGlhKCRuYXYtd2lkdGgpIHtcbiAgICBAaW5jbHVkZSBwYWRkaW5nKG51bGwgJHNpdGUtbWFyZ2lucyk7XG4gIH1cbn1cblxuLnVzYS1iYW5uZXItaGVhZGVyIHtcbiAgQGluY2x1ZGUgcGFkZGluZyhzaXplKDUuNXB4KSBudWxsKTtcbiAgZm9udC1zaXplOiBzaXplKDEycHgpO1xuICBmb250LXdlaWdodDogJGZvbnQtbm9ybWFsO1xuXG4gIEBpbmNsdWRlIG1lZGlhKCRzbWFsbC1zY3JlZW4pIHtcbiAgICBAaW5jbHVkZSBwYWRkaW5nKDAgbnVsbCk7XG4gIH1cblxuICBwIHtcbiAgICBAaW5jbHVkZSBtYXJnaW4oMCBudWxsKTtcbiAgICBkaXNwbGF5OiBpbmxpbmU7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuXG4gICAgQGluY2x1ZGUgbWVkaWEoJHNtYWxsLXNjcmVlbikge1xuICAgICAgQGluY2x1ZGUgbWFyZ2luKDJweCBudWxsKTtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICB9XG4gIH1cblxuICBpbWcge1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIG1hcmdpbi1yaWdodDogc2l6ZSgxMHB4KTtcbiAgICBtYXJnaW4tdG9wOiBzaXplKDEwcHgpO1xuICAgIHdpZHRoOiBzaXplKDI0cHgpO1xuXG4gICAgQGluY2x1ZGUgbWVkaWEoJHNtYWxsLXNjcmVlbikge1xuICAgICAgbWFyZ2luLXJpZ2h0OiBzaXplKDdweCk7XG4gICAgICB3aWR0aDogc2l6ZSgyMHB4KTtcbiAgICB9XG4gIH1cbn1cblxuLnVzYS1iYW5uZXItaGVhZGVyLWV4cGFuZGVkIHtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRjb2xvci1ncmF5LWxpZ2h0O1xuICBkaXNwbGF5OiBmbGV4O1xuICBmb250LXNpemU6ICRoNS1mb250LXNpemU7XG4gIG1pbi1oZWlnaHQ6IHNpemUoNTZweCk7XG4gIHBhZGRpbmctcmlnaHQ6IHNpemUoMzBweCk7XG5cbiAgQGluY2x1ZGUgbWVkaWEoJHNtYWxsLXNjcmVlbikge1xuICAgIGJvcmRlci1ib3R0b206IG5vbmU7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgZm9udC1zaXplOiBzaXplKDEycHgpO1xuICAgIGZvbnQtd2VpZ2h0OiAkZm9udC1ub3JtYWw7XG4gICAgbWluLWhlaWdodDogMDtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICB9XG5cbiAgPiAudXNhLWJhbm5lci1pbm5lciB7XG4gICAgbWFyZ2luLWxlZnQ6IDA7XG5cbiAgICBAaW5jbHVkZSBtZWRpYSgkc21hbGwtc2NyZWVuKSB7XG4gICAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICB9XG4gIH1cblxuICBpbWcge1xuICAgIG1hcmdpbi1yaWdodDogc2l6ZSgyNHB4KTtcblxuICAgIEBpbmNsdWRlIG1lZGlhKCRzbWFsbC1zY3JlZW4pIHtcbiAgICAgIG1hcmdpbi1yaWdodDogc2l6ZSg3cHgpO1xuICAgIH1cbiAgfVxuXG4gIHAge1xuICAgIGxpbmUtaGVpZ2h0OiAkaGVhZGluZy1saW5lLWhlaWdodDtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuXG4gICAgQGluY2x1ZGUgbWVkaWEoJHNtYWxsLXNjcmVlbikge1xuICAgICAgbGluZS1oZWlnaHQ6ICRiYXNlLWxpbmUtaGVpZ2h0O1xuICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICB9XG4gIH1cbn1cblxuLnVzYS1iYW5uZXItYnV0dG9uIHtcbiAgQGluY2x1ZGUgYnV0dG9uLXVuc3R5bGVkO1xuICBAaW5jbHVkZSBwYWRkaW5nKHNpemUoMTNweCkgbnVsbCBudWxsIHNpemUoNDhweCkpO1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uLXg6IHJpZ2h0O1xuICBjb2xvcjogJGNvbG9yLXByaW1hcnk7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBmb250LXNpemU6IHNpemUoMTJweCk7XG4gIGhlaWdodDogc2l6ZSg0M3B4KTtcbiAgbGVmdDogMDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgdG9wOiAwO1xuICB3aWR0aDogMTAwJTtcblxuICBAaW5jbHVkZSBtZWRpYSgkc21hbGwtc2NyZWVuKSB7XG4gICAgQGluY2x1ZGUgcGFkZGluZygwIG51bGwgbnVsbCAwKTtcbiAgICAvKiBzdHlsZWxpbnQtZGlzYWJsZSBkZWNsYXJhdGlvbi1ibG9jay1uby1pZ25vcmVkLXByb3BlcnRpZXMgKi9cbiAgICBkaXNwbGF5OiBpbmxpbmU7XG4gICAgaGVpZ2h0OiBpbml0aWFsO1xuICAgIG1hcmdpbi1sZWZ0OiAzcHg7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgd2lkdGg6IGluaXRpYWw7XG4gICAgLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuICB9XG5cbiAgJjpob3ZlciB7XG4gICAgY29sb3I6ICRjb2xvci1wcmltYXJ5LWRhcmtlcjtcbiAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgfVxuXG4gICZbYXJpYS1leHBhbmRlZD1mYWxzZV0ge1xuICAgIEBpbmNsdWRlIGRpc3BsYXktaWNvbihhbmdsZS1hcnJvdy1kb3duLXByaW1hcnksIGFmdGVyLCBzaXplKDEwcHgpLCAwLCBob3Zlcik7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogbm9uZTtcblxuICAgICY6OmFmdGVyIHtcbiAgICAgIGJhY2tncm91bmQtcG9zaXRpb24teTogMXB4O1xuICAgIH1cbiAgfVxuXG4gICZbYXJpYS1leHBhbmRlZD10cnVlXSB7XG4gICAgQGluY2x1ZGUgZGlzcGxheS1pY29uKGNsb3NlLCBhZnRlciwgc2l6ZSgxM3B4KSwgMCwgbm8taG92ZXIpO1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IG5vbmU7XG4gICAgaGVpZ2h0OiBzaXplKDU2cHgpO1xuXG4gICAgQGluY2x1ZGUgbWVkaWEoJHNtYWxsLXNjcmVlbikge1xuICAgICAgQGluY2x1ZGUgZGlzcGxheS1pY29uKGFuZ2xlLWFycm93LXVwLXByaW1hcnksIGFmdGVyLCBzaXplKDEwcHgpLCAwLCBob3Zlcik7XG4gICAgICBoZWlnaHQ6IGluaXRpYWw7XG4gICAgICBwYWRkaW5nOiAwO1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAmOjphZnRlciB7XG4gICAgICAgIGJhY2tncm91bmQtcG9zaXRpb24teTogMXB4O1xuICAgICAgfVxuICAgIH1cblxuICAgICY6OmFmdGVyIHtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHJpZ2h0OiBzaXplKDE1cHgpO1xuICAgICAgdG9wOiBzaXplKDIxLjVweCk7XG5cbiAgICAgIEBpbmNsdWRlIG1lZGlhKCRzbWFsbC1zY3JlZW4pIHtcbiAgICAgICAgcG9zaXRpb246IHN0YXRpYztcbiAgICAgIH1cbiAgICB9XG5cbiAgICAudXNhLWJhbm5lci1idXR0b24tdGV4dCB7XG4gICAgICBkaXNwbGF5OiBub25lO1xuXG4gICAgICBAaW5jbHVkZSBtZWRpYSgkc21hbGwtc2NyZWVuKSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLnVzYS1iYW5uZXItaWNvbiB7XG4gIHdpZHRoOiBzaXplKDM4cHgpO1xufVxuIiwiLnVzYS1idXR0b24sXG4udXNhLWJ1dHRvbi1wcmltYXJ5LFxuLnVzYS1idXR0b246dmlzaXRlZCxcbi51c2EtYnV0dG9uLXByaW1hcnk6dmlzaXRlZCB7XG4gIHBhZGRpbmc6IHNpemUoMTBweCkgc2l6ZSgyMHB4KTtcbn1cblxuLnVzYS1iYW5uZXIge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbi51c2EtYmFubmVyLWlubmVyIHtcbiAgQGluY2x1ZGUgbWVkaWEoJG1lZGl1bS1zY3JlZW4pIHtcbiAgICBwYWRkaW5nOiAwIGNhbGMoMiUgKyA4cHgpO1xuICAgIHdpZHRoOiA5NiU7XG4gIH1cbiAgQGluY2x1ZGUgbWVkaWEoJGxhcmdlLXNjcmVlbikge1xuICAgIG1hcmdpbjogMCBhdXRvO1xuICAgIHBhZGRpbmc6IDAgc2l6ZSg4cHgpO1xuICAgIHdpZHRoOiA5NjBweDtcbiAgfVxufVxuXG4udXNhLWJhbm5lci1jb250ZW50IHtcbiAgQGluY2x1ZGUgbWVkaWEoJG1lZGl1bS1zY3JlZW4pIHtcbiAgICBwYWRkaW5nLWxlZnQ6IGNhbGMoMiUgKyA4cHgpO1xuICAgIHBhZGRpbmctcmlnaHQ6IGNhbGMoMiUgKyA4cHgpO1xuICAgIHdpZHRoOiA5NiU7XG4gIH1cbiAgQGluY2x1ZGUgbWVkaWEoJGxhcmdlLXNjcmVlbikge1xuICAgIHBhZGRpbmctbGVmdDogc2l6ZSg4cHgpO1xuICAgIHBhZGRpbmctcmlnaHQ6IHNpemUoOHB4KTtcbiAgICB3aWR0aDogOTYwcHg7XG4gIH1cbn1cblxuLnVzYS1iYW5uZXItaGVhZGVyIHtcbiAgZm9udC1zaXplOiBzaXplKDEwcHgpO1xuICBAaW5jbHVkZSBtZWRpYSgkc21hbGwtc2NyZWVuKSB7XG4gICAgZm9udC1zaXplOiBzaXplKDEycHgpO1xuICAgIEBpbmNsdWRlIHBhZGRpbmcoMCAwIDNweCAwKTtcbiAgfVxuICBpbWcge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIG1hcmdpbi1yaWdodDogc2l6ZSgxMHB4KTtcbiAgICBtYXJnaW4tdG9wOiAwO1xuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgd2lkdGg6IHNpemUoMjRweCk7XG5cbiAgICBAaW5jbHVkZSBtZWRpYSgkc21hbGwtc2NyZWVuKSB7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICBmbG9hdDogbm9uZTtcbiAgICAgIG1hcmdpbi1yaWdodDogc2l6ZSgxMHB4KTtcbiAgICAgIHdpZHRoOiBzaXplKDIwcHgpO1xuICAgIH1cbiAgfVxuICBwIHtcbiAgICBAaW5jbHVkZSBwb3NpdGlvbigxcHggbnVsbCBudWxsIC0ycHgpO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjE1O1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBAaW5jbHVkZSBtZWRpYSgkc21hbGwtc2NyZWVuKSB7XG4gICAgICBAaW5jbHVkZSBwb3NpdGlvbihhdXRvIG51bGwgbnVsbCBhdXRvKTtcbiAgICAgIGRpc3BsYXk6IGlubGluZTtcbiAgICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgICAgb3ZlcmZsb3c6IHZpc2libGU7XG4gICAgICBtYXJnaW46IDA7XG4gICAgfVxuICB9XG4gICYtZXhwYW5kZWQge1xuICAgIGltZyB7XG4gICAgICBtYXJnaW4tcmlnaHQ6IHNpemUoMTBweCk7XG4gICAgfVxuICB9XG59XG5cbi51c2EtYWNjb3JkaW9uLWJ1dHRvblthcmlhLWV4cGFuZGVkPWZhbHNlXSxcbi51c2EtYWNjb3JkaW9uLWJ1dHRvblthcmlhLWV4cGFuZGVkPXRydWVdIHtcbiAgYmFja2dyb3VuZC1zaXplOiBzaXplKDE1cHgpO1xuICAmOmFmdGVyIHtcbiAgICBoZWlnaHQ6IHNpemUoMTBweCk7XG4gICAgd2lkdGg6IHNpemUoMTBweCk7XG4gIH1cbiAgQGluY2x1ZGUgbWVkaWEoJHNtYWxsLXNjcmVlbikge1xuICAgIHRvcDogMXB4O1xuICAgIHBhZGRpbmctbGVmdDogNHB4O1xuICB9XG59XG5cbi51c2EtbWVkaWFfYmxvY2sge1xuICAmLWltZyB7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgbWFyZ2luLXJpZ2h0OiAxcmVtO1xuICB9XG4gICYtYm9keSB7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgfVxufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gUHJvdmlkZXMgYSBxdWljayBtZXRob2QgZm9yIHNldHRpbmcgYW4gZWxlbWVudOKAmXMgcG9zaXRpb24uIFVzZSBhIGBudWxsYCB2YWx1ZSB0byDigJxza2lw4oCdIGEgc2lkZS5cbi8vL1xuLy8vIEBwYXJhbSB7UG9zaXRpb259ICRwb3NpdGlvbiBbcmVsYXRpdmVdXG4vLy8gICBBIENTUyBwb3NpdGlvbiB2YWx1ZVxuLy8vXG4vLy8gQHBhcmFtIHtBcmdsaXN0fSAkY29vcmRpbmF0ZXMgW251bGwgbnVsbCBudWxsIG51bGxdXG4vLy8gICBMaXN0IG9mIHZhbHVlcyB0aGF0IGNvcnJlc3BvbmQgdG8gdGhlIDQtdmFsdWUgc3ludGF4IGZvciB0aGUgZWRnZXMgb2YgYSBib3hcbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBAaW5jbHVkZSBwb3NpdGlvbihhYnNvbHV0ZSwgMCBudWxsIG51bGwgMTBlbSk7XG4vLy8gICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIGxlZnQ6IDEwZW07XG4vLy8gICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbi8vLyAgICAgdG9wOiAwO1xuLy8vICAgfVxuLy8vXG4vLy8gQHJlcXVpcmUge2Z1bmN0aW9ufSBpcy1sZW5ndGhcbi8vLyBAcmVxdWlyZSB7ZnVuY3Rpb259IHVucGFja1xuXG5AbWl4aW4gcG9zaXRpb24oJHBvc2l0aW9uOiByZWxhdGl2ZSwgJGNvb3JkaW5hdGVzOiBudWxsIG51bGwgbnVsbCBudWxsKSB7XG4gIEBpZiB0eXBlLW9mKCRwb3NpdGlvbikgPT0gbGlzdCB7XG4gICAgJGNvb3JkaW5hdGVzOiAkcG9zaXRpb247XG4gICAgJHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgfVxuXG4gICRjb29yZGluYXRlczogdW5wYWNrKCRjb29yZGluYXRlcyk7XG5cbiAgJG9mZnNldHM6IChcbiAgICB0b3A6ICAgIG50aCgkY29vcmRpbmF0ZXMsIDEpLFxuICAgIHJpZ2h0OiAgbnRoKCRjb29yZGluYXRlcywgMiksXG4gICAgYm90dG9tOiBudGgoJGNvb3JkaW5hdGVzLCAzKSxcbiAgICBsZWZ0OiAgIG50aCgkY29vcmRpbmF0ZXMsIDQpXG4gICk7XG5cbiAgcG9zaXRpb246ICRwb3NpdGlvbjtcblxuICBAZWFjaCAkb2Zmc2V0LCAkdmFsdWUgaW4gJG9mZnNldHMge1xuICAgIEBpZiBpcy1sZW5ndGgoJHZhbHVlKSB7XG4gICAgICAjeyRvZmZzZXR9OiAkdmFsdWU7XG4gICAgfVxuICB9XG59XG4iXX0= */ From 8163ef46520712cdb175e398316589321b97a32d Mon Sep 17 00:00:00 2001 From: "Dan O. Williams" Date: Wed, 8 Nov 2017 11:25:10 -0800 Subject: [PATCH 07/15] Replace `CDN` links with correct S3 links --- ...wdsourcing-toolkit-for-federal-agencies.md | 4 +-- .../resources/customer-experience-toolkit.md | 28 +++++++++---------- .../resources/digital-governance-policies.md | 2 +- ...-compatible-terms-of-service-agreements.md | 6 ++-- ...erwork-reduction-act-fast-track-process.md | 2 +- content/resources/resources.md | 14 +++++----- content/services/dap.md | 2 +- 7 files changed, 29 insertions(+), 29 deletions(-) diff --git a/content/resources/crowdsourcing-toolkit-for-federal-agencies.md b/content/resources/crowdsourcing-toolkit-for-federal-agencies.md index d412e7f312..b48cb1d3b9 100644 --- a/content/resources/crowdsourcing-toolkit-for-federal-agencies.md +++ b/content/resources/crowdsourcing-toolkit-for-federal-agencies.md @@ -11,8 +11,8 @@ authors: In a challenge, a “seeker” challenges “solvers” to identify a solution to a particular problem, or rewards contestants for accomplishing a goal. The solutions may be: ideas, designs, logos, videos, finished products, digital games, or mobile applications. There are many challenge success stories in government: - * [Challenges Conducted Under America COMPETES Act Authority](CDN/files/2014/02/implementation-federal-prize-authority.pdf) (PDF, 486 KB, 53 pages, March 2012) - * [Success Stories Compiled in Conjunction with the Challenge.gov First Birthday Event](CDN/files/2014/02/agency-stories-challenge-prize-competitions.pdf) (PDF, 544 KB, 16 pages, September 2011) + * [Challenges Conducted Under America COMPETES Act Authority]({{< link "https://s3.amazonaws.com/digitalgov/_legacy-img/2014/02/implementation-federal-prize-authority.pdf" >}}) (PDF, 486 KB, 53 pages, March 2012) + * [Success Stories Compiled in Conjunction with the Challenge.gov First Birthday Event]({{< link "https://s3.amazonaws.com/digitalgov/_legacy-img/2014/02/agency-stories-challenge-prize-competitions.pdf" >}}) (PDF, 544 KB, 16 pages, September 2011) Challenges can offer incentive prizes that are either monetary or non-monetary. Examples of non-monetary prizes can include: diff --git a/content/resources/customer-experience-toolkit.md b/content/resources/customer-experience-toolkit.md index 44b513ea1f..8a25ec512a 100644 --- a/content/resources/customer-experience-toolkit.md +++ b/content/resources/customer-experience-toolkit.md @@ -49,7 +49,7 @@ Make the customer experience a strategic priority for your entire organization. * See what other agencies are doing * [Strategic Plan FY2014-2018](https://www.opm.gov/about-us/budget-performance/strategic-plans/2014-2018-strategic-plan.pdf) and [Mission, Goals and Priorities](https://www.opm.gov/about-us/budget-performance/goals-priorities) – Office of Personnel Management (OPM) * [Vision 2025](https://www.ssa.gov/vision2025/) – Social Security Administration (SSA) - * [myUSCIS Overview](CDN/files/2015/12/DHS-myUSCIS-overview.docx) (Word, 69 kb) – United States Citizenship and Immigration Services (USCIS), Department of Homeland Security (DHS) + * [myUSCIS Overview]({{< link "https://s3.amazonaws.com/digitalgov/_legacy-img/2015/12/DHS-myUSCIS-overview.docx" >}}) (Word, 69 kb) – United States Citizenship and Immigration Services (USCIS), Department of Homeland Security (DHS)

Governance @@ -60,19 +60,19 @@ Designate a single person to be responsible for the customer experience agency-w ### Hire a Chief Customer Officer (CCO) * Focus on collaboration and teamwork - * [Sample Chief Customer Officer position description](CDN/files/2015/12/Position-Description-for-Chief-Customer-Officer_Dec-2015.docx) (Word, 23 kb) – General Services Administration (GSA) - * [Sample CCO performance evaluation criteria](CDN/files/2015/12/CCO-EvaluationTemplate.pdf) (PDF, 82 kb) – GSA + * [Sample Chief Customer Officer position description]({{< link "https://s3.amazonaws.com/digitalgov/_legacy-img/2015/12/Position-Description-for-Chief-Customer-Officer_Dec-2015.docx" >}}) (Word, 23 kb) – General Services Administration (GSA) + * [Sample CCO performance evaluation criteria]({{< link "https://s3.amazonaws.com/digitalgov/_legacy-img/2015/12/CCO-EvaluationTemplate.pdf" >}}) (PDF, 82 kb) – GSA * Empower the CCO to influence change across the entire organization * [Federal Student Aid Customer Experience Journey: A Recap]({{< link "2015-08-14-federal-student-aid-customer-experience-journey-a-recap.md" >}}) ### Stand up a Customer Team * Performance Plans - * [Sample CX Consultant performance plan](CDN/files/2015/12/CX-Consultant-Performance-Plan.xlsx) (Excel, 80 kb) – GSA + * [Sample CX Consultant performance plan]({{< link "https://s3.amazonaws.com/digitalgov/_legacy-img/2015/12/CX-Consultant-Performance-Plan.xlsx" >}}) (Excel, 80 kb) – GSA * Position Descriptions (PDs) * [Sample PDs for Digital Government jobs]({{< link "sample-position-descriptions-for-digital-government-jobs.md" >}}) – incl. usability, design, analytics * Agency examples - * [Customer Service and Public Engagement Directorate (CSPED) overview](CDN/files/2015/12/DHS-Customer-Service-and-Public-Engagement-Directorate-Overview.pptx) (PowerPoint, 2MB) and [Functional Profile](CDN/files/2015/12/DHS-CSPED-Functional-Profile.docx) (Word, 85 kb) – DHS/USCIS + * [Customer Service and Public Engagement Directorate (CSPED) overview]({{< link "https://s3.amazonaws.com/digitalgov/_legacy-img/2015/12/DHS-Customer-Service-and-Public-Engagement-Directorate-Overview.pptx" >}}) (PowerPoint, 2MB) and [Functional Profile]({{< link "https://s3.amazonaws.com/digitalgov/_legacy-img/2015/12/DHS-CSPED-Functional-Profile.docx" >}}) (Word, 85 kb) – DHS/USCIS ### Coordinate delivery of content and services @@ -110,7 +110,7 @@ Publish customer service standards and train all employees so they understand th * Improve the onboarding process for new employees * Develop a “New Employees” section on your intranet to help new hires easily find critical information * Share customer service expectations and stories on your intranet - * [Sample intranet content](CDN/files/2015/12/DHS-USCIS-sample-intranet-content.pptx) (PowerPoint, 688 kb) – DHS/USCIS + * [Sample intranet content]({{< link "https://s3.amazonaws.com/digitalgov/_legacy-img/2015/12/DHS-USCIS-sample-intranet-content.pptx" >}}) (PowerPoint, 688 kb) – DHS/USCIS * Encourage employees to join the [CX Community of Practice]({{< link "customer-experience-community.md" >}}) * [Celebrate Customer Service Week]({{< link "2015-09-11-how-will-you-celebrate-customer-service-week.md" >}}) * Learn from the private sector @@ -119,7 +119,7 @@ Publish customer service standards and train all employees so they understand th **Hold employees accountable** * Include customer service in performance rating criteria - * [Sample performance rating elements](CDN/files/2015/12/GSA-Sample-Critical-Elements.xlsx) (Excel, 23 kb) – GSA + * [Sample performance rating elements]({{< link "https://s3.amazonaws.com/digitalgov/_legacy-img/2015/12/GSA-Sample-Critical-Elements.xlsx" >}}) (Excel, 23 kb) – GSA **Respond to employee concerns** @@ -139,7 +139,7 @@ Systematically collect and analyze customer behavior and feedback to understand ### Clearly identify who you’re serving - * [Guide to Understanding Your Customer](CDN/files/2015/09/Understanding-Your-Customer.pdf) (PDF, 10 MB) + * [Guide to Understanding Your Customer]({{< link "https://s3.amazonaws.com/digitalgov/_legacy-img/2015/09/Understanding-Your-Customer.pdf" >}}) (PDF, 10 MB) * [Getting to Know Your Users: Tips and Tricks from Veterans Affairs]({{< link "2015-05-29-getting-to-know-your-users-tips-and-tricks-from-veterans-affairs.md" >}}) * Spend time in your customers’ shoes * Be a “secret shopper” and interact with your agency from the outside in @@ -150,7 +150,7 @@ Systematically collect and analyze customer behavior and feedback to understand * [Using Personas to Better Understand Customers: USA.gov Case Study]({{< link "2015-04-06-using-personas-to-better-understand-customers-usa-gov-case-study.md" >}}) * Sample personas. * [Veteran’s Affairs Personas](http://www.innovation.va.gov/docs/Voices_Of_Veterans_11_12_4.pdf) (PDF) - * [USDA Personas and Use Cases](CDN/files/2014/01/Marsh-Personas.pdf) (PDF, 567 kb) + * [USDA Personas and Use Cases]({{< link "https://s3.amazonaws.com/digitalgov/_legacy-img/2014/01/Marsh-Personas.pdf" >}}) (PDF, 567 kb) ### Map the entire customer journey @@ -226,7 +226,7 @@ Define a framework for collecting common customer metrics, measures and outcomes ### Determine service levels for top tasks - * [Report of the Citizen Service Levels Interagency Committee](CDN/files/2014/07/Report-of-the-Citizen-Service-Levels-Interagency-Committee-CSLIC-2005.doc) (Word, 233 kb, 2005) – CSLIC + * [Report of the Citizen Service Levels Interagency Committee]({{< link "https://s3.amazonaws.com/digitalgov/_legacy-img/2014/07/Report-of-the-Citizen-Service-Levels-Interagency-Committee-CSLIC-2005.doc" >}}) (Word, 233 kb, 2005) – CSLIC ### Standardize processes @@ -236,12 +236,12 @@ Define a framework for collecting common customer metrics, measures and outcomes * Adopt survey best practices * [Designing a Better Customer Survey](https://www.youtube.com/watch?v=9VxW7mFZUc4&list=PLd9b-GuOJ3nH7xSSjL1XBXPfVqw68BNbW&index=15) – video * [Navigating the Alphabet Soup of Survey Methodologies](http://www.clicktools.com/wp-content/uploads/2015/04/Navigating-the-Alphabet-Soup-of-Survey-Methodologies.pdf) (PDF) – ClickTools - * [Sample CX Question Database](CDN/files/2015/12/sample-CX-question-database.xlsx) (Excel, 87 kb) + * [Sample CX Question Database]({{< link "https://s3.amazonaws.com/digitalgov/_legacy-img/2015/12/sample-CX-question-database.xlsx" >}}) (Excel, 87 kb) * [Likert-Type Scale Response Anchors](https://www.uc.edu/content/dam/uc/sas/docs/Assessment/likert-type%20response%20anchors.pdf) – recommended wording and rating scales for a variety of survey questions * Sample surveys - * [BusinessUSA](CDN/files/2015/12/sample-survey-BusinessUSA.docx) (Word, 29 kb) – Department of Commerce - * [Passports](CDN/files/2015/12/sample-survey-Passports.docx) (Word 75 kb) – State Department - * [USAJOBS](CDN/files/2015/12/sample-survey-USAJOBS.xlsx) (Excel, 76 kb) – OPM + * [BusinessUSA]({{< link "https://s3.amazonaws.com/digitalgov/_legacy-img/2015/12/sample-survey-BusinessUSA.docx" >}}) (Word, 29 kb) – Department of Commerce + * [Passports]({{< link "https://s3.amazonaws.com/digitalgov/_legacy-img/2015/12/sample-survey-Passports.docx" >}}) (Word 75 kb) – State Department + * [USAJOBS]({{< link "https://s3.amazonaws.com/digitalgov/_legacy-img/2015/12/sample-survey-USAJOBS.xlsx" >}}) (Excel, 76 kb) – OPM ### Use shared services diff --git a/content/resources/digital-governance-policies.md b/content/resources/digital-governance-policies.md index 31b2791886..a6bee6a3ef 100644 --- a/content/resources/digital-governance-policies.md +++ b/content/resources/digital-governance-policies.md @@ -18,4 +18,4 @@ Start by using this document to map out a governance plan for your agency. Let u 1. Start a discussion on the **Digital Council listserv** about what you would like to see changed. 2. Edit the page on Github or leave a comment in an Issue: -You can download version 1.1 of the [Digital Governance Policy Outline as a PDF »](CDN/files/2017/05/OutlineDigitalGovernancePolicy.pdf) \ No newline at end of file +You can download version 1.1 of the [Digital Governance Policy Outline as a PDF »]({{< link "https://s3.amazonaws.com/digitalgov/_legacy-img/2017/05/OutlineDigitalGovernancePolicy.pdf" >}}) \ No newline at end of file diff --git a/content/resources/federal-compatible-terms-of-service-agreements.md b/content/resources/federal-compatible-terms-of-service-agreements.md index c75f1213a1..17816fed17 100644 --- a/content/resources/federal-compatible-terms-of-service-agreements.md +++ b/content/resources/federal-compatible-terms-of-service-agreements.md @@ -25,7 +25,7 @@ Federal friendly Terms of Service for distribution agreements have been negotiat ## How to Implement -If you’re a federal employee, follow these steps (or [download our easy step-by-step flowchart](CDN/files/2015/02/DigitalGov-TOS-flowchart_v6-Feb-2-2015.pdf " see our easy step by step flowchart") [PDF, 1 page, 361 KB, February 2015 ]) before setting up an account to use a free digital media tool: +If you’re a federal employee, follow these steps (or [download our easy step-by-step flowchart]({{< link "https://s3.amazonaws.com/digitalgov/_legacy-img/2015/02/DigitalGov-TOS-flowchart_v6-Feb-2-2015.pdf " see our easy step by step flowchart"" >}}) [PDF, 1 page, 361 KB, February 2015 ]) before setting up an account to use a free digital media tool: 1. **Review existing policy**: Review your agency’s social media policy and guidance to be sure you understand requirements to use specific tools, branding, etc. @@ -80,7 +80,7 @@ Negotiations with other providers are ongoing. ## For Social Media Providers -GSA welcomes expressions of interest from providers who want to offer, for the federal government’s consideration, social media products that are free of charge. GSA developed a [model TOS template](CDN/files/2014/01/model-amendment-to-tos-for-g.doc) (MS Word, 55 KB, 5 pages, October 2011) listing the points, issues, and concerns that typically arise in standard Terms of Service and are problematic for federal agencies. This model agreement suggests replacements that would be acceptable to most federal agencies. +GSA welcomes expressions of interest from providers who want to offer, for the federal government’s consideration, social media products that are free of charge. GSA developed a [model TOS template]({{< link "https://s3.amazonaws.com/digitalgov/_legacy-img/2014/01/model-amendment-to-tos-for-g.doc" >}}) (MS Word, 55 KB, 5 pages, October 2011) listing the points, issues, and concerns that typically arise in standard Terms of Service and are problematic for federal agencies. This model agreement suggests replacements that would be acceptable to most federal agencies. If you are such a provider, see the guidance about how to express interest in offering an amended TOS or updating a current one. @@ -90,7 +90,7 @@ Social media providers interested in engaging in Terms of Service discussions wi * Find your agency’s [Social Media Terms of Service Point of Contact]({{< link "agency-points-of-contact-for-federal-compatible-terms-of-service-agreements.md" >}}) * View the list of negotiated [Terms of Service agreements]({{< link "negotiated-terms-of-service-agreements.md" >}}) - * Use the [model TOS template](CDN/files/2014/01/model-amendment-to-tos-for-g.doc) (MS Word, 55 KB, 5 pages, October 2011) + * Use the [model TOS template]({{< link "https://s3.amazonaws.com/digitalgov/_legacy-img/2014/01/model-amendment-to-tos-for-g.doc" >}}) (MS Word, 55 KB, 5 pages, October 2011) * Read about [NASCIO’s revised Terms of Service for Facebook](http://www.nascio.org/newsroom/pressrelease.cfm?id=93) for state and local governments * April 2013 guidance [OMB Memorandum M-13-10](https://www.whitehouse.gov/sites/whitehouse.gov/files/omb/memoranda/2013/m-13-10.pdf) (PDF, 1.2 MB, 17 pages, April 2013) on Antideficiency Act Implications of Certain Online Terms of Service Agreements diff --git a/content/resources/paperwork-reduction-act-fast-track-process.md b/content/resources/paperwork-reduction-act-fast-track-process.md index 8b8943be13..e7a1caa590 100644 --- a/content/resources/paperwork-reduction-act-fast-track-process.md +++ b/content/resources/paperwork-reduction-act-fast-track-process.md @@ -34,7 +34,7 @@ Generally, these service-delivery-focused, voluntary collections fall under the Ask your agency PRA or Privacy Officer, or Counsel’s office, if your survey is eligible for the fast-track process. * [Fast-Track PRA Frequently-Asked Questions](https://obamawhitehouse.archives.gov/sites/default/files/omb/assets/inforeg/pra-faqs.pdf) (PDF, 370 KB, 8 pages, February 2012) - * [Fast Track PRA Submission Short Form](CDN/files/2017/05/fast-track-PRA-submission-short-form-3.doc) (MS Word, 53 KB, 3 pages, February 2012) + * [Fast Track PRA Submission Short Form]({{< link "https://s3.amazonaws.com/digitalgov/_legacy-img/2017/05/fast-track-PRA-submission-short-form-3.doc" >}}) (MS Word, 53 KB, 3 pages, February 2012) ### Traditional PRA Process diff --git a/content/resources/resources.md b/content/resources/resources.md index 811840aa03..bff8bf399a 100644 --- a/content/resources/resources.md +++ b/content/resources/resources.md @@ -64,7 +64,7 @@ authors: * [Government Contact Center Council (G3C)](tmp) * [Contact Center Guidelines]({{< link "contact-center-guidelines.md" >}}) -* [2011 Federal Contact Center Survey, Final Report](CDN/files/2014/07/2011-Federal-Contact-Center-Survey-Final-Report-Sept30th2011-Prepared-for-GSA-OCSIT.pdf) (PDF, 1.52 MB, 54 pages, September 2011) +* [2011 Federal Contact Center Survey, Final Report]({{< link "https://s3.amazonaws.com/digitalgov/_legacy-img/2014/07/2011-Federal-Contact-Center-Survey-Final-Report-Sept30th2011-Prepared-for-GSA-OCSIT.pdf" >}}) (PDF, 1.52 MB, 54 pages, September 2011) ## Crowdsourcing and Citizen Science @@ -77,7 +77,7 @@ authors: * [Customer Experience Toolkit]({{< link "customer-experience-toolkit.md" >}}) * [Government Customer Service Policies & Requirements]({{< link "government-customer-service-policies-requirements-1993-to-present.md" >}}) * [Paperwork Reduction Act Fast Track Process]({{< link "paperwork-reduction-act-fast-track-process.md" >}}) -* [Report of the Citizen Service Levels Interagency Committee CSLIC](CDN/files/2014/07/Report-of-the-Citizen-Service-Levels-Interagency-Committee-CSLIC-2005.doc) (MS Word, 233 kb, 36 pages, 2005) +* [Report of the Citizen Service Levels Interagency Committee CSLIC]({{< link "https://s3.amazonaws.com/digitalgov/_legacy-img/2014/07/Report-of-the-Citizen-Service-Levels-Interagency-Committee-CSLIC-2005.doc" >}}) (MS Word, 233 kb, 36 pages, 2005) ## Design @@ -90,7 +90,7 @@ authors: * [Agency Digital Strategy Pages]({{< link "2012-08-22-agency-digital-strategy-pages.md" >}}) * [Guidelines for Improving Digital Services]({{< link "guidelines-for-improving-digital-services.md" >}}) -* [Putting Citizens First: Transforming Online Government](CDN/files/2013/11/Federal-Web-Managers-White-Paper.pdf) (PDF, 47 kb, 4 pages, November 2008) +* [Putting Citizens First: Transforming Online Government]({{< link "https://s3.amazonaws.com/digitalgov/_legacy-img/2013/11/Federal-Web-Managers-White-Paper.pdf" >}}) (PDF, 47 kb, 4 pages, November 2008) ## Measurement @@ -150,7 +150,7 @@ authors: * [Social Media Metrics for Federal Agencies]({{< link "federal-social-media-analytics-toolkit-hackpad.md" >}}) * [Style Guides by Government Agencies]({{< link "style-guides-by-government-agencies.md" >}}) * [Readiness, Recovery, Response: Social Media Cyber-Vandalism Toolkit]({{< link "readiness-recovery-response-social-media-cyber-vandalism-toolkit.md" >}}) -* [Barriers and Solutions to Implementing Social Media in Government](CDN/files/2013/11/Social-Media-Fed-Govt-Barriers-Potential-Solutions.pdf) (PDF, 55 kb, 4 pages, December 2008) +* [Barriers and Solutions to Implementing Social Media in Government]({{< link "https://s3.amazonaws.com/digitalgov/_legacy-img/2013/11/Social-Media-Fed-Govt-Barriers-Potential-Solutions.pdf" >}}) (PDF, 55 kb, 4 pages, December 2008) ## Terms of Services Agreements @@ -172,8 +172,8 @@ authors: * [Content Management Systems Toolkit]({{< link "2013-10-30-content-management-systems-toolkit.md" >}}) * [Content Management Systems Used by Government Agencies]({{< link "content-management-systems-used-by-government-agencies.md" >}}) * [DigitalGov Search]({{< link "search.md" >}}) -* [Interagency Committee on Government Information (ICGI) – Recommended Policies and Guidelines for Federal Public Websites](CDN/files/2014/07/Recommended-Policies-and-Guidelines-for-Federal-Public-Websites-2004.pdf) (PDF, 607 kb, 92 pages, June 2004) - * [ICGI Report Attachments](CDN/files/2014/07/Report-Attachments-ICGI-Policies-and-Guidelines-for-Federal-Public-Websites-2004-HowToGov.pdf) (PDF, 184 kb, 7 pages, June 2004) - * [ICGI Summary and Background](CDN/files/2014/07/Summary-and-Background-ICGI-Recommendations-for-Federal-Public-Websites-2004-HowToGov.pdf) (PDF, 176 kb, 6 pages, June 2004) +* [Interagency Committee on Government Information (ICGI) – Recommended Policies and Guidelines for Federal Public Websites]({{< link "https://s3.amazonaws.com/digitalgov/_legacy-img/2014/07/Recommended-Policies-and-Guidelines-for-Federal-Public-Websites-2004.pdf" >}}) (PDF, 607 kb, 92 pages, June 2004) + * [ICGI Report Attachments]({{< link "https://s3.amazonaws.com/digitalgov/_legacy-img/2014/07/Report-Attachments-ICGI-Policies-and-Guidelines-for-Federal-Public-Websites-2004-HowToGov.pdf" >}}) (PDF, 184 kb, 7 pages, June 2004) + * [ICGI Summary and Background]({{< link "https://s3.amazonaws.com/digitalgov/_legacy-img/2014/07/Summary-and-Background-ICGI-Recommendations-for-Federal-Public-Websites-2004-HowToGov.pdf" >}}) (PDF, 176 kb, 6 pages, June 2004) * [Office of Management and Budget Policies for Federal Public Websites](https://www.whitehouse.gov/sites/whitehouse.gov/files/omb/memoranda/2005/m05-04.pdf) (PDF, 48 kb, 5 pages, December 2004) * [Style Guides by Government Agencies]({{< link "style-guides-by-government-agencies.md" >}}) diff --git a/content/services/dap.md b/content/services/dap.md index f3031fd8d9..0ae1110893 100644 --- a/content/services/dap.md +++ b/content/services/dap.md @@ -35,7 +35,7 @@ The program consists of: * Delivers broad overviews and in-depth insights that apply to programs across your agency. * Scalable to handle a broad range of .gov sites (large and small). * Allows instantaneous access to a targeted set of critical performance data. - * Meets agency compliance with OMB reporting on the 10 Minimum Common Baseline Performance Metrics for [Milestone 8.2](CDN/files/2012/10/8_2_DGS_Implementation_Instructions_v_final.docx). + * Meets agency compliance with OMB reporting on the 10 Minimum Common Baseline Performance Metrics for [Milestone 8.2]({{< link "https://s3.amazonaws.com/digitalgov/_legacy-img/2012/10/8_2_DGS_Implementation_Instructions_v_final.docx" >}}). * Hosted service by GSA avoids duplication of agencies purchasing the same tool and going through separate procurements. ### Quick, reliable, and secure infrastructure From 498d8ac50111e0be430a59db0afb0e6383bb73fb Mon Sep 17 00:00:00 2001 From: "Dan O. Williams" Date: Wed, 8 Nov 2017 11:28:11 -0800 Subject: [PATCH 08/15] Fix G3C link --- content/resources/resources.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/resources/resources.md b/content/resources/resources.md index bff8bf399a..9d4d121760 100644 --- a/content/resources/resources.md +++ b/content/resources/resources.md @@ -62,7 +62,7 @@ authors: ## Contact Centers -* [Government Contact Center Council (G3C)](tmp) +* [Government Contact Center Council (G3C)]({{< link "communities/government-contact-center-council" >}}) * [Contact Center Guidelines]({{< link "contact-center-guidelines.md" >}}) * [2011 Federal Contact Center Survey, Final Report]({{< link "https://s3.amazonaws.com/digitalgov/_legacy-img/2014/07/2011-Federal-Contact-Center-Survey-Final-Report-Sept30th2011-Prepared-for-GSA-OCSIT.pdf" >}}) (PDF, 1.52 MB, 54 pages, September 2011) From 6f8f4cc2f57b69f4fb7106804c8d29bf42f6857f Mon Sep 17 00:00:00 2001 From: Jeremy Zilar Date: Wed, 8 Nov 2017 16:54:01 -0500 Subject: [PATCH 09/15] cleaning up underscores --- .../how-to-get-your-open-data-on-data-gov.md | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/content/resources/how-to-get-your-open-data-on-data-gov.md b/content/resources/how-to-get-your-open-data-on-data-gov.md index c436155f16..a35e657230 100644 --- a/content/resources/how-to-get-your-open-data-on-data-gov.md +++ b/content/resources/how-to-get-your-open-data-on-data-gov.md @@ -26,7 +26,7 @@ Data.gov is primarily a federal open government data site. However, state, local **Background** -From 2009-2013, agency updates to the Data.gov catalog were not automated. Federal agencies submitted metadata for individual datasets to Data.gov through a central Dataset Management System (DMS). At present, pursuant to the Federal [Open Data Policy](https://project-open-data.cio.gov/policy-memo/) discussed in more detail below, all metadata is added to Data.gov through the federated “harvest” model.

+From 2009-2013, agency updates to the Data.gov catalog were not automated. Federal agencies submitted metadata for individual datasets to Data.gov through a central Dataset Management System (DMS). At present, pursuant to the Federal [Open Data Policy](https://project-open-data.cio.gov/policy-memo/) discussed in more detail below, all metadata is added to Data.gov through the federated “harvest” model. **Dataset Updates** Additions, updates, and deletions occur through a _Harvest Source_ rather than within Data.gov directly. Data.gov synchronizes those changes through a daily _Harvest Job_. @@ -111,25 +111,25 @@ For agencies that provide geospatial data to GeoPlatform.gov and Data.gov, the f All CFO-Act agencies must provide an Enterprise Data Inventory in accordance with the Project Open Data metadata schema (see _Federal Data with Project Open Data above_). This includes geospatial **_and_** non-spatial data. **Required: Enterprise Data Inventory provided to OMB MAX** -1. **Geospatial Harvest Source — Public Data Listing Requirements** _(for GeoPlatform.gov and Data.gov)_To be successfully harvested by GeoPlatform.gov and Data.gov, all geospatial data should be provided via one [Catalog Service for the Web (CSW)](https://www.geoplatform.gov/csw-resources) endpoint.Required: A CSW endpoint, e.g.: [_https://data.doi.gov/csw?service=CSW&version=2.0.2&request=GetCapabilities_](https://data.doi.gov/csw?service=CSW&version=2.0.2&request=GetCapabilities) +1. **Geospatial Harvest Source — Public Data Listing Requirements** _(for GeoPlatform.gov and Data.gov)_ To be successfully harvested by GeoPlatform.gov and Data.gov, all geospatial data should be provided via one [Catalog Service for the Web (CSW)](https://www.geoplatform.gov/csw-resources) endpoint.Required: A CSW endpoint, e.g.: [_https://data.doi.gov/csw?service=CSW&version=2.0.2&request=GetCapabilities_](https://data.doi.gov/csw?service=CSW&version=2.0.2&request=GetCapabilities) -1. **Data without a Geospatial Harvest Source — Public Data Listing Requirements** _(for GeoPlatform.gov and Data.gov)_ Lastly, to prevent duplication on Data.gov, all agencies that provide a CSW geospatial harvest source to GeoPlatform.gov and Data.gov should create an additional JSON file (called /_data-nonspatial-harvest.json) _to include all datasets that are **not** available via the consolidated Geospatial Harvest Source.**Required:** Datasets without a Geospatial Harvest Source for the Public Data Listing at: _https://________.gov/data-nonspatial-harvest.json_ +1. **Data without a Geospatial Harvest Source — Public Data Listing Requirements** _(for GeoPlatform.gov and Data.gov)_ Lastly, to prevent duplication on Data.gov, all agencies that provide a CSW geospatial harvest source to GeoPlatform.gov and Data.gov should create an additional JSON file (called /_data-nonspatial-harvest.json)_ to include all datasets that are **not** available via the consolidated Geospatial Harvest Source.**Required:** Datasets without a Geospatial Harvest Source for the Public Data Listing at: _https://________.gov/data-nonspatial-harvest.json **Datasets Displayed on GeoPlatform.gov** All datasets included in the CSW will be displayed on GeoPlatform.gov. Datasets included in data-nonspatial-harvest.json will only be displayed on Data.gov, but not GeoPlatform.gov unless the datasets are specially tagged for inclusion there. -If an agency has a geospatial dataset in the data-nonspatial-harvest.json that should be part of GeoPlatform.gov, but is not included in the CSW harvest source, or if an agency has geospatial holdings and is only able to provide a data.json file and not the CSW, it should denote the geospatial dataset using “geospatial” as a value within the “theme” field. For example:_ “theme”: [“geospatial”]_ +If an agency has a geospatial dataset in the data-nonspatial-harvest.json that should be part of GeoPlatform.gov, but is not included in the CSW harvest source, or if an agency has geospatial holdings and is only able to provide a data.json file and not the CSW, it should denote the geospatial dataset using “geospatial” as a value within the “theme” field. For example: _“theme”: [“geospatial”]_ ### Non-Federal Data Data.gov incorporates data sources from state, local, and tribal governments. Non-federal sources are not covered by the Federal Open Data Policy, but can be included in the Data.gov catalog voluntarily. Depending on your local government open data platform, you may already have a harvest source that is Data.gov-ready, or it could take a little more work. Either way, the Data.gov team is available to answer questions about these requirements. For non-federal data to be connected to Data.gov, the following items are required: 1. **A Data Harvest Source** - Some open data catalog platforms already have a Data.gov harvest source built in (see these examples from [Socrata](https://nycopendata.socrata.com/data.json) and [ArcGIS Open Data](http://opendata.dc.gov/data.json)), but it is possible to set up a harvest source with any data management system (see [this CKAN example](https://www.opendataphilly.org/data.json)). The metadata required from non-federal sources does not include the [USG noted fields](https://project-open-data.cio.gov/v1.1/schema/#USG-note) and additional fields can be left out on a case-by-case basis. To learn more about metadata best practices and validators, check out the Resources and Tools below. **Required:** A Harvest Source at: _https://________.gov/data.json, e.g. __https://data.brla.gov/data.json_ + Some open data catalog platforms already have a Data.gov harvest source built in (see these examples from [Socrata](https://nycopendata.socrata.com/data.json) and [ArcGIS Open Data](http://opendata.dc.gov/data.json)), but it is possible to set up a harvest source with any data management system (see [this CKAN example](https://www.opendataphilly.org/data.json)). The metadata required from non-federal sources does not include the [USG noted fields](https://project-open-data.cio.gov/v1.1/schema/#USG-note) and additional fields can be left out on a case-by-case basis. To learn more about metadata best practices and validators, check out the Resources and Tools below. **Required:** A Harvest Source at: https://_______.gov/data.json, _e.g. https://data.brla.gov/data.json_ 2. **A Terms of Use URL** A publicly accessible Terms of Use (or Data Policy) URL or similar information in order to make it clear to Data.gov users when they are viewing datasets that are not covered by federal statutory and regulatory requirements. - **Required:** A Terms of Use URL, e.g._ https://data.brla.gov/terms-of-service_ + **Required:** A Terms of Use URL, _e.g. https://data.brla.gov/terms-of-service_ Once you have coordinated with Data.gov on these two items, automated nightly updates to Data.gov can be set up very quickly. Non-federal organizations can provide the necessary information through [the form](http://www.data.gov/local/add). @@ -157,7 +157,7 @@ Go to catalog.data.gov and click on “Login” at the bottom of the page. You w After you have logged in to OMB MAX, [email us](mailto:datagov@gsa.gov) to let us know that you have completed the initial login. In the email provide the organization name and access permission (Admin or Editor) that is required. We will then associate requested permissions to your account. -_**(If you manage a non-federal geospatial harvest source, follow the [instructions](https://cms.geoplatform.gov/sites/default/files/document_library/Non-Federal_Geospatial_OMB_MAX_Registration_and_Catalog_Data_gov_Account.pdf) (2.5 MB PDF) from GeoPlatform.gov to obtain access to OMB MAX.)**_ +**(If you manage a non-federal geospatial harvest source, follow the [instructions](https://cms.geoplatform.gov/sites/default/files/document_library/Non-Federal_Geospatial_OMB_MAX_Registration_and_Catalog_Data_gov_Account.pdf) (2.5 MB PDF) from GeoPlatform.gov to obtain access to OMB MAX.)** Once your Data.gov account is created, and your permissions are in place, you can log in and follow the steps below to create your harvest source: @@ -235,7 +235,7 @@ Once the harvester has been tested successfully, Data.gov will start automatical **What is “open data” for purposes of Data.gov federation?** -Open data for the purposes of Data.gov federation is US government data that is_ public, accessible, described, reusable, complete, timely_, and_ managed post-release_. Read more about these principles on [Project Open Data](http://project-open-data.github.io/principles/). +Open data for the purposes of Data.gov federation is US government data that is _public, accessible, described, reusable, complete, timely_, and _managed post-release_. Read more about these principles on [Project Open Data](http://project-open-data.github.io/principles/). **What entities are eligible for federation on Data.gov?** From 7e47d58cd8e8a01f7392de697546a5424b141682 Mon Sep 17 00:00:00 2001 From: Jeremy Zilar Date: Wed, 8 Nov 2017 21:04:38 -0500 Subject: [PATCH 10/15] editing the
 and  css

---
 .../static/css/enlightened-styles.css         | 714 +++++++++---------
 1 file changed, 363 insertions(+), 351 deletions(-)

diff --git a/themes/digital.gov/static/css/enlightened-styles.css b/themes/digital.gov/static/css/enlightened-styles.css
index 65389063ff..9eaff9b8a5 100644
--- a/themes/digital.gov/static/css/enlightened-styles.css
+++ b/themes/digital.gov/static/css/enlightened-styles.css
@@ -1,4 +1,4 @@
-/*  
+/*
 	Theme Name: WP-Enlightened
 	Theme URI: http://www.solostream.com
 	Description: WP-Enlightened is a responsive and user-friendly theme for WordPress.
@@ -7,7 +7,7 @@
 	Version: 1.0.5
 
 	License: GPL-2.0+
-	License URI: http://www.opensource.org/licenses/gpl-license.php 
+	License URI: http://www.opensource.org/licenses/gpl-license.php
 
 	=============================================================================================================
 	----[ YOU SHOULD NOT CHANGE THIS FILE. Make style changes on the Theme Settings page or on custom.css ]------
@@ -146,9 +146,9 @@ body.No-Background-Pattern { background-image:none; }
 	}
 
 #contentright {
-	width: 31.25% /* 300px based on 960px wide #wrap div */;	
-	float:right;	
-	padding:30px 0;	
+	width: 31.25% /* 300px based on 960px wide #wrap div */;
+	float:right;
+	padding:30px 0;
 	margin: 0;
 	}
 
@@ -166,8 +166,8 @@ body.No-Background-Pattern { background-image:none; }
 	}
 
 #sidebar {
-	width: 100%;	
-	float:none;	
+	width: 100%;
+	float:none;
 	display:block;
 	}
 
@@ -264,7 +264,7 @@ h5,h6,h7 {
 	letter-spacing:-0.02em;
 	}
 
-h3.post-title, 
+h3.post-title,
 h2.post-title,
 h1.post-title {}
 
@@ -355,46 +355,46 @@ a:hover, a:active {
 	color:#000000;
 	}
 
-a.more-link, 
-a.more-link:link, 
+a.more-link,
+a.more-link:link,
 a.more-link:visited  {}
 
-a.more-link:hover, 
+a.more-link:hover,
 a.more-link:active  {}
 
 p.readmore {}
 
-.readmore a.more-link, 
-.readmore a.more-link:link, 
+.readmore a.more-link,
+.readmore a.more-link:link,
 .readmore a.more-link:visited  {}
 
-.readmore a.more-link:hover, 
+.readmore a.more-link:hover,
 .readmore a.more-link:active  {}
 
-#footer a, 
-#footer a:link, 
+#footer a,
+#footer a:link,
 #footer a:visited {
 	color:#ccc;
 	}
 
-#footer a:hover, 
+#footer a:hover,
 #footer a:active {
 	color:#fff;
 	}
 
-.post-title a, 
-.post-title a:link, 
+.post-title a,
+.post-title a:link,
 .post-title a:visited,
-.feat-title a, 
-.feat-title a:link, 
+.feat-title a,
+.feat-title a:link,
 .feat-title a:visited {
 	color:#444;
 	text-decoration:none;
 	}
 
-.post-title a:hover, 
+.post-title a:hover,
 .post-title a:active,
-.feat-title a:hover, 
+.feat-title a:hover,
 .feat-title a:active {
 	color:#000;
 	}
@@ -456,7 +456,7 @@ h3.widget-title a:active,
 #footer-widgets h3.widget-title a:active  {
 	color:#fff;
 	}
-	
+
 /* -------------------[ Images ]------------------- */
 
 .entry img {
@@ -476,12 +476,12 @@ img.alignleft {
 	margin: 0 20px 10px 0px;
         }
 
-img.aligncenter, 
-img.centered, 
-img.center { 
-	display: block; 
-	margin: 0 auto 20px;  
-	float: none; 
+img.aligncenter,
+img.centered,
+img.center {
+	display: block;
+	margin: 0 auto 20px;
+	float: none;
 	clear: both;
         }
 
@@ -586,12 +586,12 @@ img.avatar {
 	margin: 0 auto;
 	}
 
-.single-video iframe,  
-.single-video object,  
+.single-video iframe,
+.single-video object,
 .single-video embed,
 .single-video video,
-.videoembed iframe,  
-.videoembed object,  
+.videoembed iframe,
+.videoembed object,
 .videoembed embed,
 .videoembed video {
 	position: absolute;
@@ -604,8 +604,8 @@ img.avatar {
 
 /* -------------------[ WP 3.6 Updates for Video/Audio Embeds ]------------------- */
 
-iframe,  
-object,  
+iframe,
+object,
 embed,
 video {
 	max-width:100%;
@@ -644,8 +644,8 @@ video,
 	padding-bottom: 40%; /* -- 16:8 Video Size Ratio -- */
 	}
 
-.mapembed iframe,  
-.mapembed object,  
+.mapembed iframe,
+.mapembed object,
 .mapembed embed {
 	position: absolute;
 	top: 0;
@@ -713,18 +713,30 @@ a img, img a {
 	border: none;
 	}
 
+pre{
+	display: block;
+}
+
+pre code{
+	padding: 25px 30px;
+	display: block;
+	white-space: pre;
+	white-space: pre-wrap;       /* css-3 */
+	white-space: -moz-pre-wrap;  /* Mozilla, since 1999 */
+	white-space: -pre-wrap;      /* Opera 4-6 */
+	white-space: -o-pre-wrap;    /* Opera 7 */
+	word-wrap: break-word;       /* Internet Explorer 5.5+ */
+	border-radius: 5px;
+	background-color: rgba(27,31,35,0.05);
+}
 code {
-	font-family: 'Courier New', Courier, Fixed;
-	display:block;
-	clear:both;
-	font-size:12px;
-	line-height:18px;
-	color:#333;
-	padding: 10px 20px;
-	border:1px solid #eeeeee;
-	border-width:1px 0;
-	background:#fafafa;
-	}
+	font-family: Courier, monospace, Fixed;
+	display:inline;
+	color:#222;
+	padding:1px 5px;
+  background-color: rgba(27,31,35,0.07);
+  border-radius: 3px;
+}
 
 hr {
 	border:0;
@@ -738,7 +750,7 @@ hr {
 	}
 
 .navigation {
-	padding: 0; 
+	padding: 0;
 	margin: 0;
 	clear:both;
 	}
@@ -752,7 +764,7 @@ hr {
 	float: right;
 	text-align:right;
 	}
-	
+
 .navigation .alignleft {
 	width:49%;
 	float: left;
@@ -762,7 +774,7 @@ hr {
 .alignright {
 	float: right;
 	}
-	
+
 .alignleft {
 	float: left;
 	}
@@ -771,7 +783,7 @@ hr {
 	display: block;
 	margin-left: auto;
 	margin-right: auto;
-        float: none; 
+        float: none;
         clear: both;
 	}
 
@@ -783,7 +795,7 @@ select,
 input,
 textarea {
 	-webkit-appearance: none;
-	-webkit-border-radius:0; 
+	-webkit-border-radius:0;
 	border-radius:0;
 	font-family:inherit;
 	font-size:inherit;
@@ -948,10 +960,10 @@ form#searchform input[type="button"]:hover {
 	}
 
 /* -------- [ Table ] -------- */
-	
+
 table {
 	border-collapse:collapse !important;
-	margin-bottom: 30px; 
+	margin-bottom: 30px;
 	max-width:100%;
 	border: 1px solid #eeeeee;
 	padding:5px !important;
@@ -968,13 +980,13 @@ table tr {
 table td,
 table th {
 	border: 1px solid #eeeeee;
-	padding: 10px 15px !important; 
+	padding: 10px 15px !important;
 	}
 
 /* -------- [ Calendar Table ] -------- */
-	
+
 table#wp-calendar {
-	margin-bottom: 0px; 
+	margin-bottom: 0px;
 	width:100%;
 	text-align:center;
 	border:1px solid #eeeeee;
@@ -988,7 +1000,7 @@ table#wp-calendar caption {
 table#wp-calendar th {
 	background:#fafafa;
 	border: 1px solid #eeeeee;
-	padding: 5px; 
+	padding: 5px;
 	}
 
 table#wp-calendar tr {
@@ -997,7 +1009,7 @@ table#wp-calendar tr {
 
 table#wp-calendar td {
 	border: 1px solid #eeeeee;
-	padding: 5px; 
+	padding: 5px;
 	}
 
 table#wp-calendar tfoot td {
@@ -1114,11 +1126,11 @@ ol.commentlist li .comment-body {
 	left:-999em;
 	}
 
-.thread-alt { }	
+.thread-alt { }
 
 .thread-even { }
 
-#respond { 
+#respond {
 	clear:both;
 	padding: 20px 0 0;
 	margin: 0 0 20px;
@@ -1146,8 +1158,8 @@ a#cancel-comment-reply-link {
 #commentform textarea {
 	padding:2%;
 	background:#fafafa;
-	border-color: #eeeeee; 
-	border-width:1px; 
+	border-color: #eeeeee;
+	border-width:1px;
 	border-style:solid;
 	width: 75%;
 	}
@@ -1183,11 +1195,11 @@ p.button-submit {
 	border-color:#000;
 	}
 
-a.comment-reply-link, 
-a.comment-reply-link:link, 
-a.comment-reply-link:visited, 
-.reply a, 
-.reply a:link, 
+a.comment-reply-link,
+a.comment-reply-link:link,
+a.comment-reply-link:visited,
+.reply a,
+.reply a:link,
 .reply a:visited {
 	background:#fff;
 	border:1px solid #eee;
@@ -1196,9 +1208,9 @@ a.comment-reply-link:visited,
 	display:inline-block;
 	}
 
-a.comment-reply-link:hover, 
-a.comment-reply-link:active, 
-.reply a:hover, 
+a.comment-reply-link:hover,
+a.comment-reply-link:active,
+.reply a:hover,
 .reply a:active {}
 
 ol.commentlist .comment-body ul,
@@ -1246,39 +1258,39 @@ ol.commentlist .comment-body ol li {
 /* -------------------[ Top Navigation ]------------------- */
 
 #topnav {
-	padding:30px 0 0; 
+	padding:30px 0 0;
 	margin:0 auto;
 	background:#f8f8f8;
 	border-bottom:1px dotted #ddd;
 	}
 
-.sub-menu { 
-	margin:0; 
-	padding:0; 
-	list-style:none; 
+.sub-menu {
+	margin:0;
+	padding:0;
+	list-style:none;
 	}
 
-ul.nav { 
-	margin:0; 
-	padding:0; 
-	list-style:none; 
+ul.nav {
+	margin:0;
+	padding:0;
+	list-style:none;
 	line-height:1;
-	float:left; 
+	float:left;
 	}
 
 ul.nav a  {
-	position:relative; 
-	display:block; 
-	z-index:100; 
-	padding:0 10px; 
-	line-height:40px; 
+	position:relative;
+	display:block;
+	z-index:100;
+	padding:0 10px;
+	line-height:40px;
 	text-decoration:none;
 	color:#666;
 	}
 
-ul.nav li  { 
-	float:left; 
-	width: auto; 
+ul.nav li  {
+	float:left;
+	width: auto;
 	}
 
 ul.nav a:hover {
@@ -1286,17 +1298,17 @@ ul.nav a:hover {
 	}
 
 ul.nav ul  {
-	position: absolute; 
-	display:none; 
+	position: absolute;
+	display:none;
 	z-index:101;
 	margin:0;
-	width: 232px; 
+	width: 232px;
 	border:0;
 	border-top: 1px solid #eee;
 	}
 
 ul.nav ul a  {
-	width:210px; 
+	width:210px;
 	line-height:24px;
 	border: 1px solid #eee;
 	border-top:0;
@@ -1310,38 +1322,38 @@ ul.nav ul a:hover  {
 
 ul.nav ul ul  {
 	border-top: 1px solid #eee;
-	margin: -36px 0 0 231px; 
+	margin: -36px 0 0 231px;
 	}
 
-ul.nav li li { 
+ul.nav li li {
 	margin:0;
 	border:0;
 	display:block;
 	}
 
 ul.nav li:hover,
-ul.nav li.hover  { 
+ul.nav li.hover  {
 	position:static;
 	}
 
-ul.nav li:hover ul ul, 
+ul.nav li:hover ul ul,
 ul.nav li.sfhover ul ul,
-ul.nav li:hover ul ul ul, 
+ul.nav li:hover ul ul ul,
 ul.nav li.sfhover ul ul ul,
-ul.nav li:hover ul ul ul ul, 
-ul.nav li.sfhover ul ul ul ul { 
-	display:none; 
+ul.nav li:hover ul ul ul ul,
+ul.nav li.sfhover ul ul ul ul {
+	display:none;
 	}
 
-ul.nav li:hover ul, 
+ul.nav li:hover ul,
 ul.nav li.sfhover ul,
-ul.nav li li:hover ul, 
+ul.nav li li:hover ul,
 ul.nav li li.sfhover ul,
-ul.nav li li li:hover ul, 
+ul.nav li li li:hover ul,
 ul.nav li li li.sfhover ul,
-ul.nav li li li li:hover ul, 
-ul.nav li li li li.sfhover ul { 
-	display:block; 
+ul.nav li li li li:hover ul,
+ul.nav li li li li.sfhover ul {
+	display:block;
 	}
 
 ul.nav li.current-menu-parent > a,
@@ -1361,40 +1373,40 @@ ul.nav li li.current-menu-parent > a {
 
 #topnav .select-menu,
 #catnav .select-menu-catnav,
-#fixednav .select-menu-fixednav { 
+#fixednav .select-menu-fixednav {
 	display: none;
 	}
 
 .timely .select-menu,
 .timely .select-menu-catnav,
-.timely .select-menu-fixednav { 
+.timely .select-menu-fixednav {
 	display: none !important;
 	}
 
 /* -------------------[ Category Navigation ]------------------- */
 
 #catnav {
-	padding:0; 
+	padding:0;
 	margin:0;
 	}
 
 #catnav ul {
-	margin:0; 
-	padding:0; 
-	list-style:none; 
+	margin:0;
+	padding:0;
+	list-style:none;
 	float:right;
 	}
 
 #catnav li  {
-	float:left; 
+	float:left;
 	width: auto;
 	}
 
 #catnav a  {
-	position:relative; 
-	display:block; 
-	z-index:100; 
-	padding:0 15px; 
+	position:relative;
+	display:block;
+	z-index:100;
+	padding:0 15px;
 	line-height:60px;
 	color:#666;
 	}
@@ -1404,18 +1416,18 @@ ul.nav li li.current-menu-parent > a {
 	}
 
 #catnav ul ul  {
-	position: absolute; 
-	display:none; 
-	width: 241px; 
+	position: absolute;
+	display:none;
+	width: 241px;
 	z-index:101;
 	border-top:1px solid #eee;
 	margin-left:-1px;
 	}
 
 #catnav ul ul a  {
-	width:200px; 
+	width:200px;
 	line-height:20px;
-	padding:10px 20px; 
+	padding:10px 20px;
 	border: 1px solid #eeeeee;
 	border-top:0;
 	background:#fafafa;
@@ -1426,36 +1438,36 @@ ul.nav li li.current-menu-parent > a {
 	}
 
 #catnav ul ul ul  {
-	margin: -42px 0 0 -241px; 
+	margin: -42px 0 0 -241px;
 	}
 
-#catnav li li { 
+#catnav li li {
 	margin:0;
 	border:0;
 	display:block;
 	}
 
 #catnav li:hover,
-#catnav li.hover  { 
+#catnav li.hover  {
 	position:static;
 	}
 
-#catnav li:hover ul ul, 
+#catnav li:hover ul ul,
 #catnav li.sfhover ul ul,
-#catnav li:hover ul ul ul, 
+#catnav li:hover ul ul ul,
 #catnav li.sfhover ul ul ul,
-#catnav li:hover ul ul ul ul, 
+#catnav li:hover ul ul ul ul,
 #catnav li.sfhover ul ul ul ul {
 	display:none;
 	}
 
-#catnav li:hover ul, 
+#catnav li:hover ul,
 #catnav li.sfhover ul,
-#catnav li li:hover ul, 
+#catnav li li:hover ul,
 #catnav li li.sfhover ul,
-#catnav li li li:hover ul, 
+#catnav li li li:hover ul,
 #catnav li li li.sfhover ul,
-#catnav li li li li:hover ul, 
+#catnav li li li li:hover ul,
 #catnav li li li li.sfhover ul {
 	display:block;
 	}
@@ -1474,7 +1486,7 @@ ul.nav li li.current-menu-parent > a {
 	background:#fff;
 	color:#268CBF;
 	line-height:20px;
-	padding:10px 20px; 
+	padding:10px 20px;
 	border: 1px solid #eeeeee;
 	border-top:0;
 	}
@@ -1482,30 +1494,30 @@ ul.nav li li.current-menu-parent > a {
 /* -------------------[ Footer Navigation ]------------------- */
 
 #footnav {
-	padding:0; 
+	padding:0;
 	margin:0;
 	float:right;
 	}
 
 #footnav ul  {
-	list-style-type:none; 
-	padding:0; 
+	list-style-type:none;
+	padding:0;
 	margin:0;
  	}
 
-#footnav ul li  { 
+#footnav ul li  {
 	display:block;
-	float:left; 
-	list-style-type:none; 
+	float:left;
+	list-style-type:none;
 	margin:0;
-	padding:0;  
+	padding:0;
 	}
 
 #footnav ul a,
 #footnav ul a:link,
 #footnav ul a:visited  {
 	display:block;
-	padding:0 5px;  
+	padding:0 5px;
 	margin:0;
 	text-decoration:none;
 	color:#bbb;
@@ -1527,8 +1539,8 @@ ul.nav li li.current-menu-parent > a {
 	z-index: 999;
 	}
 
-.admin-bar #fixednav { 
-	top: 28px !important; 
+.admin-bar #fixednav {
+	top: 28px !important;
 	}
 
 #fixednav .sub-icons {
@@ -1543,24 +1555,24 @@ ul.nav li li.current-menu-parent > a {
 	opacity:0.5;
 	}
 
-ul.fixednav { 
-	margin:0; 
-	padding:0; 
+ul.fixednav {
+	margin:0;
+	padding:0;
 	list-style:none;
 	float:left;
 	}
 
-ul.fixednav li  { 
-	float:left; 
-	width: auto; 
+ul.fixednav li  {
+	float:left;
+	width: auto;
 	}
 
 ul.fixednav a  {
-	position:relative; 
-	display:block; 
-	z-index:100; 
-	padding:0 10px; 
-	line-height:50px; 
+	position:relative;
+	display:block;
+	z-index:100;
+	padding:0 10px;
+	line-height:50px;
 	text-decoration:none;
 	color:#ddd;
 	}
@@ -1570,16 +1582,16 @@ ul.fixednav a:hover {
 	}
 
 ul.fixednav ul  {
-	position: absolute; 
-	display:none; 
+	position: absolute;
+	display:none;
 	z-index:101;
 	margin:0 0 0 -1px;
-	width: 232px; 
+	width: 232px;
 	border:0;
 	}
 
 ul.fixednav ul a  {
-	width:210px; 
+	width:210px;
 	line-height:28px;
 	border: 1px solid #000;
 	border-top:0;
@@ -1591,38 +1603,38 @@ ul.fixednav ul a:hover  {}
 
 ul.fixednav ul ul  {
 	border-top: 1px solid #000;
-	margin: -40px 0 0 231px; 
+	margin: -40px 0 0 231px;
 	}
 
-ul.fixednav li li { 
+ul.fixednav li li {
 	margin:0;
 	border:0;
 	display:block;
 	}
 
 ul.fixednav li:hover,
-ul.fixednav li.hover  { 
+ul.fixednav li.hover  {
 	position:static;
 	}
 
-ul.fixednav li:hover ul ul, 
+ul.fixednav li:hover ul ul,
 ul.fixednav li.sfhover ul ul,
-ul.fixednav li:hover ul ul ul, 
+ul.fixednav li:hover ul ul ul,
 ul.fixednav li.sfhover ul ul ul,
-ul.fixednav li:hover ul ul ul ul, 
-ul.fixednav li.sfhover ul ul ul ul { 
-	display:none; 
+ul.fixednav li:hover ul ul ul ul,
+ul.fixednav li.sfhover ul ul ul ul {
+	display:none;
 	}
 
-ul.fixednav li:hover ul, 
+ul.fixednav li:hover ul,
 ul.fixednav li.sfhover ul,
-ul.fixednav li li:hover ul, 
+ul.fixednav li li:hover ul,
 ul.fixednav li li.sfhover ul,
-ul.fixednav li li li:hover ul, 
+ul.fixednav li li li:hover ul,
 ul.fixednav li li li.sfhover ul,
-ul.fixednav li li li li:hover ul, 
-ul.fixednav li li li li.sfhover ul { 
-	display:block; 
+ul.fixednav li li li li:hover ul,
+ul.fixednav li li li li.sfhover ul {
+	display:block;
 	}
 
 ul.fixednav li.current-menu-parent > a,
@@ -1641,7 +1653,7 @@ ul.fixednav li li.current-menu-parent > a {
 
 /* --------------[ Basic Post Classes ]-------------- */
 
-.post, 
+.post,
 .page.hentry {
 	margin: 0 0 30px;
 	padding:0 0 10px;
@@ -1727,7 +1739,7 @@ p#breadcrumbs {
 	}
 
 p.tags {
-	margin-bottom:25px;  
+	margin-bottom:25px;
 	clear:both;
 	}
 
@@ -1774,7 +1786,7 @@ a.subicon {
 	background-position: 0px 0px;
 	background-repeat: no-repeat;
 	opacity: 0.7;
-	float:left\9; /* IE8 and below */ 
+	float:left\9; /* IE8 and below */
 	}
 
 a.subicon:hover,
@@ -1782,7 +1794,7 @@ a.subicon:active {
 	background-position:0 -40px !important;
   	background-color:#000;
 	opacity: 1 !important;
-	}	
+	}
 
 .subicon.rss { background-image:url(images/rss.png); }
 .subicon.rss:hover { background-color:#ff9900; }
@@ -1840,7 +1852,7 @@ a.subicon:active {
 	position:absolute;
 	z-index:2;
 	top:20px;
-	right:20px;	
+	right:20px;
 	}
 
 .allauthors .auth-icons,
@@ -2039,7 +2051,7 @@ a.subicon:active {
 
 .post-by-2 p.readmore {
 	margin:20px 0 0;
-	}	
+	}
 
 /* -----------[ Home Page Option 3 - Posts Arranged by Category Side-by-Side ( index3 ) ]----------- */
 
@@ -2345,8 +2357,8 @@ a.subicon:active {
 	float:right;
 	}
 
-.sw-sn-c #contentright {	
-	float:left;	
+.sw-sn-c #contentright {
+	float:left;
 	}
 
 .sw-sn-c p.email-form .sub {
@@ -2368,7 +2380,7 @@ a.subicon:active {
 	}
 
 .sw-c-sn #contentright {
-	float:left;	
+	float:left;
 	}
 
 .sw-c-sn #content {
@@ -2503,8 +2515,8 @@ a.subicon:active {
 	border:1px solid #000;
 	}
 
-#archive-tabs .ui-tabs-hide {  
-	display: none;  
+#archive-tabs .ui-tabs-hide {
+	display: none;
 	}
 
 #archive-tabs {
@@ -2659,11 +2671,11 @@ a.subicon:active {
 .flex-control-nav li,
 .flex-direction-nav li,
 .flexslide-custom-controls li {
-	margin: 0; 
-	padding: 0; 
+	margin: 0;
+	padding: 0;
 	list-style-type:none !important;
 	background-image:none;
-	} 
+	}
 
 .flex-pauseplay span {
 	text-transform: capitalize;
@@ -2674,24 +2686,24 @@ a.subicon:active {
 .myflexslider .slides > li,
 .flexslider .slides > li {
 	-webkit-backface-visibility: hidden;
-	display: none; 
+	display: none;
 	}
 
 /* Clearfix for the .slides element */
 
 .slides:after {
-	content: "."; 
-	display: block; 
-	clear: both; 
-	visibility: hidden; 
-	line-height: 0; 
+	content: ".";
+	display: block;
+	clear: both;
+	visibility: hidden;
+	line-height: 0;
 	height: 0;
 	}
- 
+
 html[xmlns] .slides {
 	display: block;
 	}
- 
+
 * html .slides {
 	height: 1%;
 	}
@@ -2706,10 +2718,10 @@ html[xmlns] .slides {
 
 .myflexslider,
 .flexslider {
-	margin: 0; 
+	margin: 0;
 	padding:0;
-	border: 0; 
-	position: relative; 
+	border: 0;
+	position: relative;
 	zoom: 1;
 	}
 
@@ -2724,7 +2736,7 @@ html[xmlns] .slides {
 .slides img.thumbnail {
 	width:100%;
 	max-width:none;
-	height:auto; 
+	height:auto;
 	display: block;
 	margin:0;
 	padding:0;
@@ -2734,9 +2746,9 @@ html[xmlns] .slides {
 .carousel li {}
 
 .flex-viewport {
-	max-height: 2000px; 
-	-webkit-transition: all 1s ease; 
-	-moz-transition: all 1s ease; 
+	max-height: 2000px;
+	-webkit-transition: all 1s ease;
+	-moz-transition: all 1s ease;
 	transition: all 1s ease;
 	}
 
@@ -2761,11 +2773,11 @@ html[xmlns] .slides {
 	overflow: hidden;
 	}
 
-.myflexslider .feature-video iframe,  
-.myflexslider .feature-video object,  
+.myflexslider .feature-video iframe,
+.myflexslider .feature-video object,
 .myflexslider .feature-video embed,
-.flexslider .feature-video iframe,  
-.flexslider .feature-video object,  
+.flexslider .feature-video iframe,
+.flexslider .feature-video object,
 .flexslider .feature-video embed {
 	position: absolute;
 	top: 0;
@@ -2779,23 +2791,23 @@ html[xmlns] .slides {
 .flex-direction-nav {}
 
 .flex-direction-nav a {
-	width: 25px; 
-	height: 25px; 
-	margin: -27px 0 0; 
-	display: block; 
+	width: 25px;
+	height: 25px;
+	margin: -27px 0 0;
+	display: block;
 	background: #fff url(images/bg_direction_nav1.png) no-repeat 0 0;
 	border:1px solid #eeeeee;
-	position:absolute; 
-	top: 50%; 
-	z-index: 10; 
-	cursor: pointer; 
-	text-indent: -999em; 
+	position:absolute;
+	top: 50%;
+	z-index: 10;
+	cursor: pointer;
+	text-indent: -999em;
 	opacity: 1;
 	zoom:1;
 	}
 
 .flex-direction-nav .flex-next {
-	background-position: 100% 0; 
+	background-position: 100% 0;
 	right: 0;
 	}
 
@@ -2812,9 +2824,9 @@ html[xmlns] .slides {
 	opacity: 1.0;
 	}
 
-.myflexslider:hover .flex-next:hover, 
+.myflexslider:hover .flex-next:hover,
 .myflexslider:hover .flex-prev:hover,
-.flexslider:hover .flex-next:hover, 
+.flexslider:hover .flex-next:hover,
 .flexslider:hover .flex-prev:hover {
 	opacity: 1.0;
 	}
@@ -2822,9 +2834,9 @@ html[xmlns] .slides {
 /* --------[ Control Nav ]-------- */
 
 .flex-control-nav {
-	width: 100%; 
-	position: absolute; 
-	bottom: -36px; 
+	width: 100%;
+	position: absolute;
+	bottom: -36px;
 	text-align: center;
 	z-index:5;
 	margin:0;
@@ -2832,48 +2844,48 @@ html[xmlns] .slides {
 	}
 
 .flex-control-nav li {
-	margin: 0; 
-	display: inline-block; 
-	zoom: 1; 
+	margin: 0;
+	display: inline-block;
+	zoom: 1;
 	*display: inline;
 	}
 
 .flex-control-paging li a {
-	margin: 0 2px; 
-	width: 12px; 
-	height: 12px; 
-	display: block; 
-	cursor: pointer; 
+	margin: 0 2px;
+	width: 12px;
+	height: 12px;
+	display: block;
+	cursor: pointer;
 	text-indent: -9999px;
 	border-radius:100%;
 	background:#fff;
 	border:1px solid #ddd;
 	}
 
-.flex-control-paging li a:hover { 
+.flex-control-paging li a:hover {
 	background:#eee;
 	}
 
-.flex-control-paging li a.flex-active { 
+.flex-control-paging li a.flex-active {
 	background:#eee;
 	}
 
 .flex-control-thumbs {
-	margin: 5px 0 0; 
-	position: static; 
+	margin: 5px 0 0;
+	position: static;
 	overflow: hidden;
 	}
 
 .flex-control-thumbs li {
-	width: 25%; 
-	float: left; 
+	width: 25%;
+	float: left;
 	margin: 0;
 	}
 
 .flex-control-thumbs img {
-	width: 100%; 
-	display: block; 
-	opacity: .7; 
+	width: 100%;
+	display: block;
+	opacity: .7;
 	cursor: pointer;
 	}
 
@@ -2882,7 +2894,7 @@ html[xmlns] .slides {
 	}
 
 .flex-control-thumbs .flex-active {
-	opacity: 1; 
+	opacity: 1;
 	cursor: default;
 	}
 
@@ -2916,11 +2928,11 @@ html[xmlns] .slides {
 /* --------[ Thumbnail Navigation Direction Nav ]-------- */
 
 .thumbnav .flex-direction-nav a {
-	margin: -15px 0 0; 
+	margin: -15px 0 0;
 	}
 
 .thumbnav .flex-direction-nav .flex-next {
-	background-position: 100% 0; 
+	background-position: 100% 0;
 	right: 10px;
 	}
 
@@ -2940,7 +2952,7 @@ html[xmlns] .slides {
 	opacity: 1.0;
 	}
 
-.thumbnav .myflexslider:hover .flex-next:hover, 
+.thumbnav .myflexslider:hover .flex-next:hover,
 .thumbnav .myflexslider:hover .flex-prev:hover {
 	opacity: 1.0;
 	}
@@ -3089,19 +3101,19 @@ html[xmlns] .slides {
 	}
 
 .featured.narrow .flex-direction-nav a {
-	width: 40px; 
-	height: 40px; 
-	margin: -40px 0 0; 
-	display: block; 
+	width: 40px;
+	height: 40px;
+	margin: -40px 0 0;
+	display: block;
 	background: #000 url(images/feat-nav-left.png) no-repeat 50% 50%;
 	background-color: rgba(0,0,0,0.9);
 	border:0;
-	position:absolute; 
+	position:absolute;
 	top: 50%;
-	bottom:auto; 
-	z-index: 10; 
-	cursor: pointer; 
-	text-indent: -999em; 
+	bottom:auto;
+	z-index: 10;
+	cursor: pointer;
+	text-indent: -999em;
 	opacity: 0.1;
 	zoom:1;
 	}
@@ -3268,19 +3280,19 @@ html[xmlns] .slides {
 	}
 
 .featured.wide .flex-direction-nav a {
-	width: 40px; 
-	height: 40px; 
-	margin: -40px 0 0; 
-	display: block; 
+	width: 40px;
+	height: 40px;
+	margin: -40px 0 0;
+	display: block;
 	background: #000 url(images/feat-nav-left.png) no-repeat 50% 50%;
 	background-color: rgba(0,0,0,0.9);
 	border:0;
-	position:absolute; 
+	position:absolute;
 	top: 50%;
-	bottom:auto; 
-	z-index: 10; 
-	cursor: pointer; 
-	text-indent: -999em; 
+	bottom:auto;
+	z-index: 10;
+	cursor: pointer;
+	text-indent: -999em;
 	opacity: 0.1;
 	zoom:1;
 	}
@@ -3317,7 +3329,7 @@ html[xmlns] .slides {
 
 /* --------[ Featured Category Slider ]-------- */
 
-.catslide.widget { 
+.catslide.widget {
 	overflow:hidden;
 	}
 
@@ -3440,11 +3452,11 @@ ul.catslide-meta li.catslide-comment {}
 /* --------[ Featured Category Slider Direction Nav ]-------- */
 
 .featured.cat .thumbnav .flex-direction-nav a {
-	width: 17px; 
-	height: 19px; 
+	width: 17px;
+	height: 19px;
 	background: #fafafa url(images/nav-rt-dk.png) no-repeat 50% 50%;
-	margin: 0; 
-	top: 0; 
+	margin: 0;
+	top: 0;
 	opacity:1;
 	border:1px solid #e5e5e5;
 	}
@@ -3468,12 +3480,12 @@ ul.catslide-meta li.catslide-comment {}
 	opacity: 1.0;
 	}
 
-.featured.cat .thumbnav .flex-next:hover, 
+.featured.cat .thumbnav .flex-next:hover,
 .featured.cat .thumbnav .flex-prev:hover {
 	opacity: 1.0;
 	}
 
-/* ---------[ YouTube Videos Widget Slider]--------- */ 
+/* ---------[ YouTube Videos Widget Slider]--------- */
 
 .featured.yt {
 	max-width:100%;
@@ -3719,14 +3731,14 @@ p.yt-vid-title {
 .flextabs-custom-controls,
 .flextabs .slides li,
 .flextabs-custom-controls li {
-	margin: 0; 
-	padding: 0; 
+	margin: 0;
+	padding: 0;
 	list-style:none;
 	background-image:none;
-	} 
+	}
 
 .flextabs {
-	margin: 0; 
+	margin: 0;
 	padding: 0;
 	border:0;
 	}
@@ -3734,25 +3746,25 @@ p.yt-vid-title {
 /* Hide the slides before the JS is loaded. Avoids image jumping */
 
 .flextabs .slides > li {
-	display: none; 
+	display: none;
 	-webkit-backface-visibility: hidden;
-	} 
+	}
 
 /* Clearfix for the .slides element */
 
 .flextabs .slides:after {
-	content: "."; 
-	display: block; 
-	clear: both; 
-	visibility: hidden; 
-	line-height: 0; 
+	content: ".";
+	display: block;
+	clear: both;
+	visibility: hidden;
+	line-height: 0;
 	height: 0;
 	}
- 
+
 html[xmlns] .flextabs .slides {
 	display: block;
 	}
- 
+
 * html .flextabs .slides {
 	height: 1%;
 	}
@@ -3776,7 +3788,7 @@ html[xmlns] .flextabs .slides {
 	}
 
 .flextabs {
-	margin: 0; 
+	margin: 0;
 	padding:0;
 	border: 0;
 	min-height:20px;
@@ -3817,8 +3829,8 @@ html[xmlns] .flextabs .slides {
 	width:25%;
 	}
 
-.flextabs-custom-controls a, 
-.flextabs-custom-controls a:link, 
+.flextabs-custom-controls a,
+.flextabs-custom-controls a:link,
 .flextabs-custom-controls a:visited {
 	border:0;
 	float: left;
@@ -3836,19 +3848,19 @@ html[xmlns] .flextabs .slides {
 	color:#bbb;
 	}
 
-.flextabs-custom-controls .firstab a, 
-.flextabs-custom-controls .firstab a:link, 
+.flextabs-custom-controls .firstab a,
+.flextabs-custom-controls .firstab a:link,
 .flextabs-custom-controls .firstab a:visited {
 	border-left:0 !important;
 	}
 
-.flextabs-custom-controls .lastab a, 
-.flextabs-custom-controls .lastab a:link, 
+.flextabs-custom-controls .lastab a,
+.flextabs-custom-controls .lastab a:link,
 .flextabs-custom-controls .lastab a:visited {
 	border-right:0 !important;
 	}
 
-.flextabs-custom-controls a:hover, 
+.flextabs-custom-controls a:hover,
 .flextabs-custom-controls a:active {
 	color:#268CBF;
 	}
@@ -3954,8 +3966,8 @@ html[xmlns] .flextabs .slides {
 
 #footer-widgets .widget li {}
 
-#footer-widgets .widget .textwidget { 
-	padding:0 
+#footer-widgets .widget .textwidget {
+	padding:0
 	}
 
 .footer-widget1 {
@@ -4011,15 +4023,15 @@ html[xmlns] .flextabs .slides {
 	width:25%;
 	}
 
-.widget.sidetabs .flextabs-custom-controls a, 
-.widget.sidetabs .flextabs-custom-controls a:link, 
+.widget.sidetabs .flextabs-custom-controls a,
+.widget.sidetabs .flextabs-custom-controls a:link,
 .widget.sidetabs .flextabs-custom-controls a:visited {}
 
-.widget.sidetabs .flextabs-custom-controls .firstab a, 
-.widget.sidetabs .flextabs-custom-controls .firstab a:link, 
+.widget.sidetabs .flextabs-custom-controls .firstab a,
+.widget.sidetabs .flextabs-custom-controls .firstab a:link,
 .widget.sidetabs .flextabs-custom-controls .firstab a:visited {}
 
-.widget.sidetabs .flextabs-custom-controls a:hover, 
+.widget.sidetabs .flextabs-custom-controls a:hover,
 .widget.sidetabs .flextabs-custom-controls a:active {}
 
 .widget.sidetabs .flextabs-custom-controls a.flex-active,
@@ -4149,7 +4161,7 @@ html[xmlns] .flextabs .slides {
 /* -------------------[ Banner Ad Widgets ]------------------- */
 
 .widget.banner300,
-.widget.bannerad { 
+.widget.bannerad {
 	padding:0 !important;
 	background:transparent !important;
 	border:0 !important;
@@ -4215,9 +4227,9 @@ html[xmlns] .flextabs .slides {
 
 /* -------------------[ 125x125 Banner Widget ]------------------- */
 
-.banner125 { 
+.banner125 {
 	padding:9px 9px 0 9px;
-	text-align:center; 
+	text-align:center;
 	}
 
 .banner125 .ad {
@@ -4536,7 +4548,7 @@ html[xmlns] .flextabs .slides {
 
 /* ---------[ Portfolio Page Template ]--------- */
 
-#portfolio-container { 
+#portfolio-container {
 	width:100%;
 	overflow:hidden;
 	}
@@ -4545,25 +4557,25 @@ ul#filter {
 	list-style: none;
 	margin: 0 auto;
 	display:block;
-	clear:both; 
-	margin-bottom:30px; 
+	clear:both;
+	margin-bottom:30px;
 	padding:0;
 	text-align:center;
 	}
 
 ul#filter li {
-	background:transparent; 
+	background:transparent;
 	display:inline-block;
 	margin:0;
 	padding: 0;
 	list-style-type:none;
 	}
 
-ul#filter li.cat-intro { 
+ul#filter li.cat-intro {
 	display:none;
 	}
 
-ul#filter a { 
+ul#filter a {
 	padding: 7px 15px 6px;
 	height:24px;
 	line-height:24px;
@@ -4574,13 +4586,13 @@ ul#filter a {
 	}
 
 ul#filter li a:hover,
-ul#filter li.current a { 
+ul#filter li.current a {
 	color: #fff;
 	background:#cc8800;
 	}
 
-ul#portfolio { 
-	list-style: none; 
+ul#portfolio {
+	list-style: none;
 	margin: 0 -1px 0 0;
 	display:block;
 	padding:0;
@@ -4589,10 +4601,10 @@ ul#portfolio {
 	}
 
 ul#portfolio li.post {
-	background:transparent; 
-	display:block; 
+	background:transparent;
+	display:block;
 	float:left;
-	margin: 0 1px 1px 0; 
+	margin: 0 1px 1px 0;
 	padding: 0;
 	width:49.8%;
 	overflow:hidden;
@@ -4608,9 +4620,9 @@ ul#portfolio li.post {
 .portfolio-text {
 	background:#000;
 	padding: 24px 18px 0;
-	position:absolute; 
+	position:absolute;
 	top:0;
-	bottom:0; 
+	bottom:0;
 	left:0;
 	right:0;
 	text-align:center;
@@ -4647,7 +4659,7 @@ ul#portfolio .post-title {
 	}
 
 .fwidth #portfolio .my-excerpt,
-.widget #portfolio .my-excerpt { 
+.widget #portfolio .my-excerpt {
 	height:5em;
 	}
 
@@ -4666,18 +4678,18 @@ ul#portfolio img,
 ul#portfolio img.thumbnail {
 	max-width:none;
 	width:100%;
-	float:none; 
-	border: 0; 
-	display: block; 
-	padding: 0; 
-	background:#fff; 
+	float:none;
+	border: 0;
+	display: block;
+	padding: 0;
+	background:#fff;
 	margin:0 auto;
 	}
 
 /* ---------[ bbPress Mods ]--------- */
 
-#content fieldset.bbp-form, 
-#container fieldset.bbp-form, 
+#content fieldset.bbp-form,
+#container fieldset.bbp-form,
 #wrapper fieldset.bbp-form {
 	border-color:#eeeeee !important;
 	background:#fff;
@@ -5142,21 +5154,21 @@ body.page-template-page-landing-php {
 	margin-bottom:25px;
 	}
 
-.page-template-page-landing-php h1, 
-.page-template-page-landing-php h2, 
-.page-template-page-landing-php h3, 
-.page-template-page-landing-php h4, 
-.page-template-page-landing-php h5, 
+.page-template-page-landing-php h1,
+.page-template-page-landing-php h2,
+.page-template-page-landing-php h3,
+.page-template-page-landing-php h4,
+.page-template-page-landing-php h5,
 .page-template-page-landing-php h6 {
 	font-weight:bold;
 	margin-bottom:25px;
 	}
 
 .page-template-page-landing-php h1 {font-size:36px;letter-spacing:-1px;}
-.page-template-page-landing-php h2 {font-size:32px;letter-spacing:-1px;} 
-.page-template-page-landing-php h3 {font-size:28px;letter-spacing:-1px;} 
+.page-template-page-landing-php h2 {font-size:32px;letter-spacing:-1px;}
+.page-template-page-landing-php h3 {font-size:28px;letter-spacing:-1px;}
 .page-template-page-landing-php h4 {font-size:24px;letter-spacing:-1px;}
-.page-template-page-landing-php h5 {font-size:20px;letter-spacing:-1px;} 
+.page-template-page-landing-php h5 {font-size:20px;letter-spacing:-1px;}
 .page-template-page-landing-php h6 {font-size:16px;letter-spacing:0;}
 
 .page-template-page-landing-php img {
@@ -5221,11 +5233,11 @@ body.page-template-page-landing-php {
 	}
 
 .page-template-page-landing-php blockquote p,
-.page-template-page-landing-php blockquote h1, 
-.page-template-page-landing-php blockquote h2, 
-.page-template-page-landing-php blockquote h3, 
-.page-template-page-landing-php blockquote h4, 
-.page-template-page-landing-php blockquote h5, 
+.page-template-page-landing-php blockquote h1,
+.page-template-page-landing-php blockquote h2,
+.page-template-page-landing-php blockquote h3,
+.page-template-page-landing-php blockquote h4,
+.page-template-page-landing-php blockquote h5,
 .page-template-page-landing-php blockquote h6 {
 	margin-bottom:15px;
 	}
@@ -5305,9 +5317,9 @@ body.page-template-page-landing-php {
 .twocol .entry {
 	background:#000;
 	padding: 24px 24px 0;
-	position:absolute; 
+	position:absolute;
 	top:0;
-	bottom:0; 
+	bottom:0;
 	left:0;
 	right:0;
 	text-align:center;
@@ -5547,7 +5559,7 @@ body.page-template-page-landing-php {
 	margin-bottom:0;
 	}
 
-.header2 #sitetitle {	
+.header2 #sitetitle {
 	margin:0 auto 30px;
 	float:none;
 	clear:both;
@@ -5570,7 +5582,7 @@ body.page-template-page-landing-php {
 	}
 
 .header2 #catnav ul {
-	margin:0 auto; 
+	margin:0 auto;
 	float:none;
 	clear:both;
 	}
@@ -5590,7 +5602,7 @@ body.page-template-page-landing-php {
 	margin-bottom:0;
 	}
 
-.centercatnav #sitetitle {	
+.centercatnav #sitetitle {
 	margin:0 auto 30px;
 	float:none;
 	clear:both;
@@ -5614,7 +5626,7 @@ body.page-template-page-landing-php {
 	}
 
 .centercatnav #catnav ul {
-	margin:0 auto; 
+	margin:0 auto;
 	float:none;
 	clear:both;
 	text-align:center;
@@ -5622,7 +5634,7 @@ body.page-template-page-landing-php {
 	}
 
 .centercatnav #catnav li  {
-	float:none; 
+	float:none;
 	width: auto;
 	display:inline-block;
 	margin-right:-4px;
@@ -5638,21 +5650,21 @@ body.page-template-page-landing-php {
 	}
 
 .centercatnav #catnav ul ul  {
-	margin:0; 
+	margin:0;
 	float:none;
 	clear:both;
 	text-align:center;
 	text-align:left;
-	display:none; 
+	display:none;
 	}
 
-.centercatnav #catnav li:hover ul, 
+.centercatnav #catnav li:hover ul,
 .centercatnav #catnav li.sfhover ul,
-.centercatnav #catnav li li:hover ul, 
+.centercatnav #catnav li li:hover ul,
 .centercatnav #catnav li li.sfhover ul,
-.centercatnav #catnav li li li:hover ul, 
+.centercatnav #catnav li li li:hover ul,
 .centercatnav #catnav li li li.sfhover ul,
-.centercatnav #catnav li li li li:hover ul, 
+.centercatnav #catnav li li li li:hover ul,
 .centercatnav #catnav li li li li.sfhover ul {
 	display:block;
 	}
@@ -5667,14 +5679,14 @@ body.page-template-page-landing-php {
 	}
 
 .centercatnav #catnav li li  {
-	float:none; 
+	float:none;
 	width: auto;
 	display:block;
 	margin:0;
 	}
 
 .centercatnav #catnav ul ul ul  {
-	margin: -42px 0 0 -241px; 
+	margin: -42px 0 0 -241px;
 	}
 
 /* ---------[ Adjustments for Non-Responsive Design ]--------- */
@@ -5684,4 +5696,4 @@ body.page-template-page-landing-php {
 #footer-widgets,
 #topnav {
 	min-width:960px;
-	}
\ No newline at end of file
+	}

From a96b65f942f85819c52f4bf68c17e1c73e0b0e6a Mon Sep 17 00:00:00 2001
From: Jeremy Zilar 
Date: Wed, 8 Nov 2017 21:27:15 -0500
Subject: [PATCH 11/15] cleaning up the copy

---
 .../how-to-get-your-open-data-on-data-gov.md          | 11 ++++++-----
 1 file changed, 6 insertions(+), 5 deletions(-)

diff --git a/content/resources/how-to-get-your-open-data-on-data-gov.md b/content/resources/how-to-get-your-open-data-on-data-gov.md
index a35e657230..c1288d72a1 100644
--- a/content/resources/how-to-get-your-open-data-on-data-gov.md
+++ b/content/resources/how-to-get-your-open-data-on-data-gov.md
@@ -51,7 +51,8 @@ The steps for all three types of data sources are described in detail below.
 
 Project Open Data requires agencies to list and describe all agency data in the Public Data Listing. If a dataset is not public or restricted access, the metadata for that dataset is still included in the Public Data Listing, but any portion of the metadata that cannot be made public is redacted. The full, unredacted version of the metadata is provided in the Enterprise Data Inventory which is submitted to OMB and not made public.
 
-Agencies must provide a human readable Public Data Listing at _agency.gov/_data and a machine readable listing, as a standalone JSON file on the agency’s website at _agency.gov_/data.json. This data.json file is what gets harvested to the Data.gov catalog.
+
+Agencies must provide a human readable Public Data Listing at `agency.gov/data` and a machine readable listing, as a standalone JSON file on the agency’s website at `agency.gov/data.json`. This `data.json` file is what gets harvested to the Data.gov catalog.
 
 Federal agencies that do not have a platform to inventory their metadata can make use of a free service hosted by Data.gov called inventory.data.gov (see the separate guide). Contact the Data.gov team via email if you’re interested in using this service.
 
@@ -60,9 +61,9 @@ You can find more information about what is required by the policy in the [Data
 1.  **Open Data Policy Requirements**
 2.  All CFO-Act agencies must provide an Enterprise Data Inventory and Public Data Listing in accordance with the [Project Open Data metadata schema](https://project-open-data.cio.gov/v1.1/schema/) for the purposes of measuring compliance with OMB’s M-13-13
 3.  **Required:** Enterprise Data Inventory provided to OMB MAX
-4.  **Required:** Public Data Listing at: _https://________.gov/data.json_
+4.  **Required:** Public Data Listing at: `https://________.gov/data.json`
 
-**_An update to the Project Open Data Metadata Schema,_** [**_Version 1.1_**](https://project-open-data.cio.gov/v1.1/schema/) **_was released on November 6, 2014._**
+**An update to the Project Open Data Metadata Schema,** [**_Version 1.1_**](https://project-open-data.cio.gov/v1.1/schema/) **was released on November 6, 2014.**
 
 The Data.gov catalog supports version 1.1 as of December 2, 2014.
 
@@ -113,7 +114,7 @@ For agencies that provide geospatial data to GeoPlatform.gov and Data.gov, the f
 
 1.  **Geospatial Harvest Source — Public Data Listing Requirements** _(for GeoPlatform.gov and Data.gov)_ To be successfully harvested by GeoPlatform.gov and Data.gov, all geospatial data should be provided via one [Catalog Service for the Web (CSW)](https://www.geoplatform.gov/csw-resources) endpoint.Required: A CSW endpoint, e.g.: [_https://data.doi.gov/csw?service=CSW&version=2.0.2&request=GetCapabilities_](https://data.doi.gov/csw?service=CSW&version=2.0.2&request=GetCapabilities)
 
-1.  **Data without a Geospatial Harvest Source — Public Data Listing Requirements** _(for GeoPlatform.gov and Data.gov)_ Lastly, to prevent duplication on Data.gov, all agencies that provide a CSW geospatial harvest source to GeoPlatform.gov and Data.gov should create an additional JSON file (called /_data-nonspatial-harvest.json)_ to include all datasets that are **not** available via the consolidated Geospatial Harvest Source.**Required:** Datasets without a Geospatial Harvest Source for the Public Data Listing at: _https://________.gov/data-nonspatial-harvest.json
+1.  **Data without a Geospatial Harvest Source — Public Data Listing Requirements** _(for GeoPlatform.gov and Data.gov)_ Lastly, to prevent duplication on Data.gov, all agencies that provide a CSW geospatial harvest source to GeoPlatform.gov and Data.gov should create an additional JSON file (called `/_data-nonspatial-harvest.json`)_ to include all datasets that are **not** available via the consolidated Geospatial Harvest Source.**Required:** Datasets without a Geospatial Harvest Source for the Public Data Listing at: `https://________.gov/data-nonspatial-harvest.json`
 
 **Datasets Displayed on GeoPlatform.gov**
 
@@ -126,7 +127,7 @@ If an agency has a geospatial dataset in the data-nonspatial-harvest.json that s
 Data.gov incorporates data sources from state, local, and tribal governments. Non-federal sources are not covered by the Federal Open Data Policy, but can be included in the Data.gov catalog voluntarily. Depending on your local government open data platform, you may already have a harvest source that is Data.gov-ready, or it could take a little more work. Either way, the Data.gov team is available to answer questions about these requirements. For non-federal data to be connected to Data.gov, the following items are required:
 
 1.  **A Data Harvest Source**
-    Some open data catalog platforms already have a Data.gov harvest source built in (see these examples from [Socrata](https://nycopendata.socrata.com/data.json) and [ArcGIS Open Data](http://opendata.dc.gov/data.json)), but it is possible to set up a harvest source with any data management system (see [this CKAN example](https://www.opendataphilly.org/data.json)). The metadata required from non-federal sources does not include the [USG noted fields](https://project-open-data.cio.gov/v1.1/schema/#USG-note) and additional fields can be left out on a case-by-case basis. To learn more about metadata best practices and validators, check out the Resources and Tools below. **Required:** A Harvest Source at: https://_______.gov/data.json, _e.g. https://data.brla.gov/data.json_
+    Some open data catalog platforms already have a Data.gov harvest source built in (see these examples from [Socrata](https://nycopendata.socrata.com/data.json) and [ArcGIS Open Data](http://opendata.dc.gov/data.json)), but it is possible to set up a harvest source with any data management system (see [this CKAN example](https://www.opendataphilly.org/data.json)). The metadata required from non-federal sources does not include the [USG noted fields](https://project-open-data.cio.gov/v1.1/schema/#USG-note) and additional fields can be left out on a case-by-case basis. To learn more about metadata best practices and validators, check out the Resources and Tools below. **Required:** A Harvest Source at: `https://_______.gov/data.json`, e.g. `https://data.brla.gov/data.json`
 2.  **A Terms of Use URL**
     A publicly accessible Terms of Use (or Data Policy) URL or similar information in order to make it clear to Data.gov users when they are viewing datasets that are not covered by federal statutory and regulatory requirements.
     **Required:** A Terms of Use URL, _e.g. https://data.brla.gov/terms-of-service_

From 1123f29505cfc481933cc06b0b977182754f5fa4 Mon Sep 17 00:00:00 2001
From: Jeremy Zilar 
Date: Wed, 8 Nov 2017 21:36:15 -0500
Subject: [PATCH 12/15] removing test file from migration

---
 .../2017/08/2017-08-03-fox-hound-playing.md   | 37 -------------------
 1 file changed, 37 deletions(-)
 delete mode 100644 content/posts/2017/08/2017-08-03-fox-hound-playing.md

diff --git a/content/posts/2017/08/2017-08-03-fox-hound-playing.md b/content/posts/2017/08/2017-08-03-fox-hound-playing.md
deleted file mode 100644
index 6e76b20731..0000000000
--- a/content/posts/2017/08/2017-08-03-fox-hound-playing.md
+++ /dev/null
@@ -1,37 +0,0 @@
----
-slug: fox-hound
-draft: true
-date: 2017-08-03 13:16:21 -0400
-title: 'The Fox and the Hound are Playing'
-summary: 'This is the summary &'
-authors:
-  - jeremyzilar
-
-categories:
-  - Breakfast and Brunch
-  - Technology and Wine
-
-tag:
-  - bacon
-  - eggs
-  - toast
-
-aliases:
-  - /2017/08/03/fox-hound-playing/
----
-
-Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed congue aliquet tincidunt. Cras in libero rhoncus, semper metus eu, finibus nunc.
-
-[link goes here](http://purple.com) woo! 👍
-
-The **cat** and the _dog_.
-
-**Bold text**
-
-Donec egestas felis id turpis sollicitudin blandit vitae quis libero. Ut massa arcu, condimentum vitae laoreet auctor, blandit sit amet enim.
-
-Phasellus ornare rhoncus urna a lacinia. Nullam leo velit, ullamcorper id est ac, consectetur porttitor diam.
-
-_In eu mollis nulla. Aenean molestie, urna non accumsan posuere, libero leo hendrerit ex, at lobortis nisl justo at nisi. Suspendisse potenti. Etiam nibh leo, vulputate sed ligula ac, mattis dictum sapien._
-
-> **Proin eu mi vitae sapien** fringilla consequat. Maecenas vel purus nec mauris dignissim pellentesque. Maecenas lectus eros, posuere id eros ut, luctus suscipit odio.

From 178a34adae3e7b1411fa176139987039982a4475 Mon Sep 17 00:00:00 2001
From: Jeremy Zilar 
Date: Wed, 8 Nov 2017 21:36:32 -0500
Subject: [PATCH 13/15] cleaning up the copy post-migration

---
 content/resources/inventory-data-gov-guide.md | 44 ++++++++++++-------
 1 file changed, 27 insertions(+), 17 deletions(-)

diff --git a/content/resources/inventory-data-gov-guide.md b/content/resources/inventory-data-gov-guide.md
index 33d171db06..2f41954063 100644
--- a/content/resources/inventory-data-gov-guide.md
+++ b/content/resources/inventory-data-gov-guide.md
@@ -7,20 +7,20 @@ authors:
   - pashlock
 ---
 
-  * [Introduction](#introduction)
-  * [Features](#features)
-  * [Using inventory.data.gov](#using-inventory-data-gov)
-      * [Creating a User Account](#creating-user-account)
-      * [Using inventory.data.gov to manage datasets](#manage-datasets)
-      * [Adding a Dataset](#add-dataset)
-      * [Exporting Data.json](#export-data-json)
-      * [Automating data.json downloads by agencies](#automating-data-json-downloads)
-      * [Dataset Hosting](#dataset-hosting)
-  * [Webinar on inventory.data.gov](#webinar)
+* [Introduction](#introduction)
+* [Features](#features)
+* [Using inventory.data.gov](#using-inventory-data-gov)
+    * [Creating a User Account](#creating-user-account)
+    * [Using inventory.data.gov to manage datasets](#manage-datasets)
+    * [Adding a Dataset](#add-dataset)
+    * [Exporting Data.json](#export-data-json)
+    * [Automating data.json downloads by agencies](#automating-data-json-downloads)
+    * [Dataset Hosting](#dataset-hosting)
+* [Webinar on inventory.data.gov](#webinar)
 
 ## Introduction
 
-[Inventory.data.gov](http://inventory.data.gov/) is a data management tool established in 2013 by the Data.gov Program Management Office (PMO) in what is now the Technology Transformation Service of the U.S. General Services Administration (GSA). Inventory.data.gov supports the implementation of the 2013 Federal [Open Data Policy](http://www.whitehouse.gov/sites/default/files/omb/memoranda/2013/m-13-13.pdf) (M-13-13) by providing all of the relevant metadata fields and export formats required for agencies to have their data harvested by Data.gov and to comply with the Federal Open Data Policy. Inventory.data.gov is not required to be used by all agencies, but rather offered in order to assist agencies that do not have another solution for creating and maintaining data inventories.

+[Inventory.data.gov](http://inventory.data.gov/) is a data management tool established in 2013 by the Data.gov Program Management Office (PMO) in what is now the Technology Transformation Service of the U.S. General Services Administration (GSA). Inventory.data.gov supports the implementation of the 2013 Federal [Open Data Policy](http://www.whitehouse.gov/sites/default/files/omb/memoranda/2013/m-13-13.pdf) (M-13-13) by providing all of the relevant metadata fields and export formats required for agencies to have their data harvested by Data.gov and to comply with the Federal Open Data Policy. Inventory.data.gov is not required to be used by all agencies, but rather offered in order to assist agencies that do not have another solution for creating and maintaining data inventories. The platform is primarily used to generate two different data.json files for each agency, one representing the Unredacted Inventory / Enterprise Data Inventory (EDI) that contains unredacted datasets and another representing the Redacted Inventory / Public Data Listing (PDL) that contains datasets with redactions as agency indicated. The Unredacted Inventory/EDI file is a comprehensive inventory for an agency. This file is sent directly to omb.max.gov and not publicly accessed. The Redacted Inventory/PDL file (often referred to as data.json) is made public and is posted on agency.gov/data.json and harvested by the Data.gov catalog. @@ -256,15 +256,25 @@ Rather than log in to inventory.data.gov and manually click the buttons to downl Here’s what the request would look like using the curl-like tool [httpie](http://www.httpie.org/) -Redacted Inventory (PDL) +**Redacted Inventory (PDL)** -http -v POST https://inventory.data.gov/organization/[organization-id]/redacted.json Authorization:xxx-your-api-key-xxx Content-Type:application/x-www-form-urlencoded Cookie:auth_tkt=foo +``` +http -v POST https://inventory.data.gov/organization/[organization-id]/redacted.json +Authorization:xxx-your-api-key-xxx +Content-Type:application/x-www-form-urlencoded +Cookie:auth_tkt=foo +``` -Unredacted Inventory (EDI) +**Unredacted Inventory (EDI)** -http -v POST https://inventory.data.gov/organization/[organization-id]/unredacted.json Authorization:xxx-your-api-key-xxx Content-Type:application/x-www-form-urlencoded Cookie:auth_tkt=foo +``` +http -v POST https://inventory.data.gov/organization/[organization-id]/unredacted.json +Authorization:xxx-your-api-key-xxx +Content-Type:application/x-www-form-urlencoded +Cookie:auth_tkt=foo +``` -You’d need to replace xxx-your-api-key-xxx with your actual API key which you can get in the bottom of the left sidebar of your user account, e.g. https://inventory.data.gov/user/[username] +You’d need to replace `xxx-your-api-key-xxx` with your actual API key which you can get in the bottom of the left sidebar of your user account, e.g. `https://inventory.data.gov/user/[username]` The above process downloads the Redacted.zip file containing the data.json and errorlog.txt. If there are any errors, you should review and correct them. When you reach a point where there is no errorlog.txt file, you can upload the data.json file to the agency.gov/data.json public data listing for data.gov catalog harvesting purposes. It is recommended that you manually review and upload the data.json file a few times, before completely automating the entire process to ensure there are no errors that might be excluding datasets from the data.json file (potentially removing existing datasets from data.gov). @@ -282,7 +292,7 @@ For the time being, the Data.gov PMO will continue to provide this hosting capab Data.gov, working with DigitalGov University, presented a webinar for agencies interested in using inventory on December 16, 2014\. For more information, consult the recording of the [webinar](http://youtu.be/ciLYjDsF4lo). -[youtube=http://www.youtube.com/watch?v=ciLYjDsF4lo&w=600] +{{< youtube "ciLYjDsF4lo" >}} Here are some questions and answers raised during the webinar: From b2927a33e929529de775e3f2be4e6d37edbd4d91 Mon Sep 17 00:00:00 2001 From: Jeremy Zilar Date: Wed, 8 Nov 2017 21:36:49 -0500 Subject: [PATCH 14/15] adjusting the color of text and background --- themes/digital.gov/static/css/enlightened-styles.css | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/themes/digital.gov/static/css/enlightened-styles.css b/themes/digital.gov/static/css/enlightened-styles.css index 9eaff9b8a5..cf790bb69e 100644 --- a/themes/digital.gov/static/css/enlightened-styles.css +++ b/themes/digital.gov/static/css/enlightened-styles.css @@ -732,9 +732,8 @@ pre code{ code { font-family: Courier, monospace, Fixed; display:inline; - color:#222; padding:1px 5px; - background-color: rgba(27,31,35,0.07); + background-color: rgba(27,31,35,0.05); border-radius: 3px; } From 6c51228dd8a718c49d105922e145b52597ade7bd Mon Sep 17 00:00:00 2001 From: Jeremy Zilar Date: Thu, 9 Nov 2017 12:08:11 -0500 Subject: [PATCH 15/15] Underscore edits --- content/resources/how-to-get-your-open-data-on-data-gov.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/content/resources/how-to-get-your-open-data-on-data-gov.md b/content/resources/how-to-get-your-open-data-on-data-gov.md index c1288d72a1..96d08c650c 100644 --- a/content/resources/how-to-get-your-open-data-on-data-gov.md +++ b/content/resources/how-to-get-your-open-data-on-data-gov.md @@ -114,7 +114,7 @@ For agencies that provide geospatial data to GeoPlatform.gov and Data.gov, the f 1. **Geospatial Harvest Source — Public Data Listing Requirements** _(for GeoPlatform.gov and Data.gov)_ To be successfully harvested by GeoPlatform.gov and Data.gov, all geospatial data should be provided via one [Catalog Service for the Web (CSW)](https://www.geoplatform.gov/csw-resources) endpoint.Required: A CSW endpoint, e.g.: [_https://data.doi.gov/csw?service=CSW&version=2.0.2&request=GetCapabilities_](https://data.doi.gov/csw?service=CSW&version=2.0.2&request=GetCapabilities) -1. **Data without a Geospatial Harvest Source — Public Data Listing Requirements** _(for GeoPlatform.gov and Data.gov)_ Lastly, to prevent duplication on Data.gov, all agencies that provide a CSW geospatial harvest source to GeoPlatform.gov and Data.gov should create an additional JSON file (called `/_data-nonspatial-harvest.json`)_ to include all datasets that are **not** available via the consolidated Geospatial Harvest Source.**Required:** Datasets without a Geospatial Harvest Source for the Public Data Listing at: `https://________.gov/data-nonspatial-harvest.json` +1. **Data without a Geospatial Harvest Source — Public Data Listing Requirements** _(for GeoPlatform.gov and Data.gov)_ Lastly, to prevent duplication on Data.gov, all agencies that provide a CSW geospatial harvest source to GeoPlatform.gov and Data.gov should create an additional JSON file (called `/sdata-nonspatial-harvest.json`) to include all datasets that are **not** available via the consolidated Geospatial Harvest Source.**Required:** Datasets without a Geospatial Harvest Source for the Public Data Listing at: `https://________.gov/data-nonspatial-harvest.json` **Datasets Displayed on GeoPlatform.gov** @@ -215,7 +215,7 @@ Once the harvester has been tested successfully, Data.gov will start automatical * [FGDC geospatial metadata information](http://www.fgdc.gov/metadata) * [GeoPlatform.gov initiative](http://www.fgdc.gov/initiatives/geospatial-platform) * [Catalog.Data.gov CKAN Publisher Tutorial to facilitate GeoPlatform Geospatial Data Discovery](http://www.geoplatform.gov/sites/default/files/document_library/catalog_data_gov_publishing_tutorial.pdf) -* Metadata Recommendations Supporting Data Discovery and Use in Data.gov and GeoPlatform.gov (_add link when documented is updated at https://cms.geoplatform.gov/sites/default/files/document_library_) +* Metadata Recommendations Supporting Data Discovery and Use in Data.gov and GeoPlatform.gov _(add link when documented is updated at `https://cms.geoplatform.gov/sites/default/files/document_library`)_ ### Testing Tools