-
Notifications
You must be signed in to change notification settings - Fork 2
/
4196.e2d63d7e.iframe.bundle.js
2 lines (2 loc) · 149 KB
/
4196.e2d63d7e.iframe.bundle.js
1
2
"use strict";(self.webpackChunkblockly_mooc=self.webpackChunkblockly_mooc||[]).push([[4196],{"./src/geographyConstants.js":(__unused_webpack_module,exports,__webpack_require__)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.STATE_CODES=exports.STATES=exports.COUNTRIES=void 0;var _sharedConstants=__webpack_require__("./generated-scripts/sharedConstants.ts");exports.STATE_CODES=Object.keys(_sharedConstants.UsStates).sort(),exports.STATES=["","Alabama","Alaska","Arizona","Arkansas","California","Colorado","Connecticut","Washington DC","Delaware","Florida","Georgia","Hawaii","Idaho","Illinois","Indiana","Iowa","Kansas","Kentucky","Louisiana","Maine","Maryland","Massachusetts","Michigan","Minnesota","Mississippi","Missouri","Montana","Nebraska","Nevada","New Hampshire","New Jersey","New Mexico","New York","North Carolina","North Dakota","Ohio","Oklahoma","Oregon","Pennsylvania","Rhode Island","South Carolina","South Dakota","Tennessee","Texas","Utah","Vermont","Virginia","Washington","West Virginia","Wisconsin","Wyoming"],exports.COUNTRIES=[{label:"AD",value:"Andorra"},{label:"AE",value:"United Arab Emirates"},{label:"AF",value:"Afghanistan"},{label:"AG",value:"Antigua and Barbuda"},{label:"AI",value:"Anguilla"},{label:"AL",value:"Albania"},{label:"AM",value:"Armenia"},{label:"AO",value:"Angola"},{label:"AQ",value:"Antarctica"},{label:"AR",value:"Argentina"},{label:"AS",value:"American Samoa"},{label:"AT",value:"Austria"},{label:"AU",value:"Australia"},{label:"AW",value:"Aruba"},{label:"AX",value:"Åland Islands"},{label:"AZ",value:"Azerbaijan"},{label:"BA",value:"Bosnia and Herzegovina"},{label:"BB",value:"Barbados"},{label:"BD",value:"Bangladesh"},{label:"BE",value:"Belgium"},{label:"BF",value:"Burkina Faso"},{label:"BG",value:"Bulgaria"},{label:"BH",value:"Bahrain"},{label:"BI",value:"Burundi"},{label:"BJ",value:"Benin"},{label:"BL",value:"Saint Barthélemy"},{label:"BM",value:"Bermuda"},{label:"BN",value:"Brunei"},{label:"BO",value:"Plurinational State of Bolivia"},{label:"BQ",value:"Bonaire"},{label:"BR",value:"Brazil"},{label:"BS",value:"Bahamas"},{label:"BT",value:"Bhutan"},{label:"BV",value:"Bouvet Island"},{label:"BW",value:"Botswana"},{label:"BY",value:"Belarus"},{label:"BZ",value:"Belize"},{label:"CA",value:"Canada"},{label:"CC",value:"Cocos (Keeling) Islands"},{label:"CD",value:"Democratic Republic of Congo"},{label:"CF",value:"Central African Republic"},{label:"CG",value:"Congo"},{label:"CH",value:"Switzerland"},{label:"CI",value:"Côte d'Ivoire"},{label:"CK",value:"Cook Islands"},{label:"CL",value:"Chile"},{label:"CM",value:"Cameroon"},{label:"CN",value:"China"},{label:"CO",value:"Colombia"},{label:"CR",value:"Costa Rica"},{label:"CU",value:"Cuba"},{label:"CV",value:"Cape Verde"},{label:"CW",value:"Curaçao"},{label:"CX",value:"Christmas Island"},{label:"CY",value:"Cyprus"},{label:"CZ",value:"Czech Republic"},{label:"DE",value:"Germany"},{label:"DJ",value:"Djibouti"},{label:"DK",value:"Denmark"},{label:"DM",value:"Dominica"},{label:"DO",value:"Dominican Republic"},{label:"DZ",value:"Algeria"},{label:"EC",value:"Ecuador"},{label:"EE",value:"Estonia"},{label:"EG",value:"Egypt"},{label:"EH",value:"Western Sahara"},{label:"ER",value:"Eritrea"},{label:"ES",value:"Spain"},{label:"ET",value:"Ethiopia"},{label:"FI",value:"Finland"},{label:"FJ",value:"Fiji"},{label:"FK",value:"Falkland Islands (Malvinas)"},{label:"FM",value:"Micronesia"},{label:"FO",value:"Faroe Islands"},{label:"FR",value:"France"},{label:"GA",value:"Gabon"},{label:"GB",value:"United Kingdom"},{label:"GD",value:"Grenada"},{label:"GE",value:"Georgia"},{label:"GF",value:"French Guiana"},{label:"GG",value:"Guernsey"},{label:"GH",value:"Ghana"},{label:"GI",value:"Gibraltar"},{label:"GL",value:"Greenland"},{label:"GM",value:"Gambia"},{label:"GN",value:"Guinea"},{label:"GP",value:"Guadeloupe"},{label:"GQ",value:"Equatorial Guinea"},{label:"GR",value:"Greece"},{label:"GS",value:"South Georgia and the South Sandwich Islands"},{label:"GT",value:"Guatemala"},{label:"GU",value:"Guam"},{label:"GW",value:"Guinea-Bissau"},{label:"GY",value:"Guyana"},{label:"HK",value:"Hong Kong"},{label:"HM",value:"Heard Island and McDonald Islands"},{label:"HN",value:"Honduras"},{label:"HR",value:"Croatia"},{label:"HT",value:"Haiti"},{label:"HU",value:"Hungary"},{label:"ID",value:"Indonesia"},{label:"IE",value:"Ireland"},{label:"IL",value:"Israel"},{label:"IM",value:"Isle of Man"},{label:"IN",value:"India"},{label:"IO",value:"British Indian Ocean Territory"},{label:"IQ",value:"Iraq"},{label:"IR",value:"Islamic Republic of Iran"},{label:"IS",value:"Iceland"},{label:"IT",value:"Italy"},{label:"JE",value:"Jersey"},{label:"JM",value:"Jamaica"},{label:"JO",value:"Jordan"},{label:"JP",value:"Japan"},{label:"KE",value:"Kenya"},{label:"KG",value:"Kyrgyzstan"},{label:"KH",value:"Cambodia"},{label:"KI",value:"Kiribati"},{label:"KM",value:"Comoros"},{label:"KN",value:"Saint Kitts and Nevis"},{label:"KP",value:"Democratic People's Republic of Korea"},{label:"KR",value:"Republic of Korea"},{label:"KW",value:"Kuwait"},{label:"KY",value:"Cayman Islands"},{label:"KZ",value:"Kazakhstan"},{label:"LA",value:"Lao People's Democratic Republic"},{label:"LB",value:"Lebanon"},{label:"LC",value:"Saint Lucia"},{label:"LI",value:"Liechtenstein"},{label:"LK",value:"Sri Lanka"},{label:"LR",value:"Liberia"},{label:"LS",value:"Lesotho"},{label:"LT",value:"Lithuania"},{label:"LU",value:"Luxembourg"},{label:"LV",value:"Latvia"},{label:"LY",value:"Libya"},{label:"MA",value:"Morocco"},{label:"MC",value:"Monaco"},{label:"MD",value:"Moldova"},{label:"ME",value:"Montenegro"},{label:"MG",value:"Madagascar"},{label:"MH",value:"Marshall Islands"},{label:"MK",value:"Republic of Macedonia"},{label:"ML",value:"Mali"},{label:"MM",value:"Myanmar"},{label:"MN",value:"Mongolia"},{label:"MO",value:"Macao"},{label:"MP",value:"Northern Mariana Islands"},{label:"MQ",value:"Martinique"},{label:"MR",value:"Mauritania"},{label:"MS",value:"Montserrat"},{label:"MT",value:"Malta"},{label:"MU",value:"Mauritius"},{label:"MV",value:"Maldives"},{label:"MW",value:"Malawi"},{label:"MX",value:"Mexico"},{label:"MY",value:"Malaysia"},{label:"MZ",value:"Mozambique"},{label:"NA",value:"Namibia"},{label:"NC",value:"New Caledonia"},{label:"NE",value:"Niger"},{label:"NF",value:"Norfolk Island"},{label:"NG",value:"Nigeria"},{label:"NI",value:"Nicaragua"},{label:"NL",value:"Netherlands"},{label:"NO",value:"Norway"},{label:"NP",value:"Nepal"},{label:"NR",value:"Nauru"},{label:"NU",value:"Niue"},{label:"NZ",value:"New Zealand"},{label:"OM",value:"Oman"},{label:"PA",value:"Panama"},{label:"PE",value:"Peru"},{label:"PF",value:"French Polynesia"},{label:"PG",value:"Papua New Guinea"},{label:"PH",value:"Philippines"},{label:"PK",value:"Pakistan"},{label:"PL",value:"Poland"},{label:"PM",value:"Saint Pierre and Miquelon"},{label:"PN",value:"Pitcairn"},{label:"PR",value:"Puerto Rico"},{label:"PS",value:"Palestine"},{label:"PT",value:"Portugal"},{label:"PW",value:"Palau"},{label:"PY",value:"Paraguay"},{label:"QA",value:"Qatar"},{label:"RE",value:"Réunion"},{label:"RO",value:"Romania"},{label:"RS",value:"Serbia"},{label:"RU",value:"Russian Federation"},{label:"RW",value:"Rwanda"},{label:"SA",value:"Saudi Arabia"},{label:"SB",value:"Solomon Islands"},{label:"SC",value:"Seychelles"},{label:"SD",value:"Sudan"},{label:"SE",value:"Sweden"},{label:"SG",value:"Singapore"},{label:"SI",value:"Slovenia"},{label:"SJ",value:"Svalbard and Jan Mayen"},{label:"SK",value:"Slovakia"},{label:"SL",value:"Sierra Leone"},{label:"SM",value:"San Marino"},{label:"SN",value:"Senegal"},{label:"SO",value:"Somalia"},{label:"SR",value:"Suriname"},{label:"SS",value:"South Sudan"},{label:"ST",value:"Sao Tome and Principe"},{label:"SV",value:"El Salvador"},{label:"SX",value:"Sint Maarten (Dutch part)"},{label:"SY",value:"Syrian Arab Republic"},{label:"SZ",value:"Swaziland"},{label:"TC",value:"Turks and Caicos Islands"},{label:"TD",value:"Chad"},{label:"TG",value:"Togo"},{label:"TH",value:"Thailand"},{label:"TJ",value:"Tajikistan"},{label:"TK",value:"Tokelau"},{label:"TL",value:"Timor-Leste"},{label:"TM",value:"Turkmenistan"},{label:"TN",value:"Tunisia"},{label:"TO",value:"Tonga"},{label:"TR",value:"Turkey"},{label:"TT",value:"Trinidad and Tobago"},{label:"TV",value:"Tuvalu"},{label:"TW",value:"Taiwan"},{label:"TZ",value:"Tanzania"},{label:"UA",value:"Ukraine"},{label:"UG",value:"Uganda"},{label:"US",value:"United States"},{label:"UY",value:"Uruguay"},{label:"UZ",value:"Uzbekistan"},{label:"VA",value:"Holy See (Vatican City State)"},{label:"VC",value:"Saint Vincent and the Grenadines"},{label:"VE",value:"Bolivarian Republic of Venezuela"},{label:"VG",value:"Virgin Islands, British"},{label:"VI",value:"Virgin Islands, U.S."},{label:"VN",value:"Viet Nam"},{label:"VU",value:"Vanuatu"},{label:"WF",value:"Wallis and Futuna"},{label:"WS",value:"Samoa"},{label:"XK",value:"Kosovo"},{label:"YE",value:"Yemen"},{label:"YT",value:"Mayotte"},{label:"ZA",value:"South Africa"},{label:"ZM",value:"Zambia"},{label:"ZW",value:"Zimbabwe"}].sort((function(a,b){return a.value.localeCompare(b.value)}))},"./src/templates/SchoolDataInputs.jsx":(module,exports,__webpack_require__)=>{function _typeof(o){return _typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(o){return typeof o}:function(o){return o&&"function"==typeof Symbol&&o.constructor===Symbol&&o!==Symbol.prototype?"symbol":typeof o},_typeof(o)}Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=SchoolDataInputs;var _classnames=_interopRequireDefault(__webpack_require__("./node_modules/classnames/index.js")),_propTypes=_interopRequireDefault(__webpack_require__("./node_modules/prop-types/index.js")),_react=function _interopRequireWildcard(e,r){if(!r&&e&&e.__esModule)return e;if(null===e||"object"!=_typeof(e)&&"function"!=typeof e)return{default:e};var t=_getRequireWildcardCache(r);if(t&&t.has(e))return t.get(e);var n={__proto__:null},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var u in e)if("default"!==u&&{}.hasOwnProperty.call(e,u)){var i=a?Object.getOwnPropertyDescriptor(e,u):null;i&&(i.get||i.set)?Object.defineProperty(n,u,i):n[u]=e[u]}return n.default=e,t&&t.set(e,n),n}(__webpack_require__("./node_modules/react/index.js")),_button=__webpack_require__("./src/componentLibrary/button/index.ts"),_dropdown=__webpack_require__("./src/componentLibrary/dropdown/index.ts"),_typography=__webpack_require__("./src/componentLibrary/typography/index.ts"),_signUpFlowConstants=__webpack_require__("./src/signUpFlow/signUpFlowConstants.tsx"),_SchoolNameInput=_interopRequireDefault(__webpack_require__("./src/templates/SchoolNameInput.jsx")),_SchoolZipSearch=_interopRequireDefault(__webpack_require__("./src/templates/SchoolZipSearch.jsx")),_sharedConstants=__webpack_require__("./generated-scripts/sharedConstants.ts"),_locale=_interopRequireDefault(__webpack_require__("./src/util/locale-do-not-import.js")),_getCountriesUsFirst=__webpack_require__("./src/schoolInfo/utils/getCountriesUsFirst.ts"),_schoolAssociationModule=_interopRequireDefault(__webpack_require__("./src/templates/school-association.module.scss"));function _getRequireWildcardCache(e){if("function"!=typeof WeakMap)return null;var r=new WeakMap,t=new WeakMap;return(_getRequireWildcardCache=function _getRequireWildcardCache(e){return e?t:r})(e)}function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function _toConsumableArray(r){return function _arrayWithoutHoles(r){if(Array.isArray(r))return _arrayLikeToArray(r)}(r)||function _iterableToArray(r){if("undefined"!=typeof Symbol&&null!=r[Symbol.iterator]||null!=r["@@iterator"])return Array.from(r)}(r)||function _unsupportedIterableToArray(r,a){if(r){if("string"==typeof r)return _arrayLikeToArray(r,a);var t={}.toString.call(r).slice(8,-1);return"Object"===t&&r.constructor&&(t=r.constructor.name),"Map"===t||"Set"===t?Array.from(r):"Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t)?_arrayLikeToArray(r,a):void 0}}(r)||function _nonIterableSpread(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function _arrayLikeToArray(r,a){(null==a||a>r.length)&&(a=r.length);for(var e=0,n=Array(a);e<a;e++)n[e]=r[e];return n}var SEARCH_DEFAULTS=[{value:_sharedConstants.NonSchoolOptions.CLICK_TO_ADD,text:_locale.default.schoolClickToAdd()},{value:_sharedConstants.NonSchoolOptions.NO_SCHOOL_SETTING,text:_locale.default.noSchoolSetting()}],COUNTRIES_US_FIRST=(0,_getCountriesUsFirst.getCountriesUsFirst)();function SchoolDataInputs(_ref){var schoolId=_ref.schoolId,country=_ref.country,schoolName=_ref.schoolName,schoolZip=_ref.schoolZip,schoolsList=_ref.schoolsList,setSchoolId=_ref.setSchoolId,setCountry=_ref.setCountry,setSchoolName=_ref.setSchoolName,setSchoolZip=_ref.setSchoolZip,usIp=_ref.usIp,_ref$includeHeaders=_ref.includeHeaders,includeHeaders=void 0===_ref$includeHeaders||_ref$includeHeaders,_ref$fieldNames=_ref.fieldNames,fieldNames=void 0===_ref$fieldNames?{country:"user[school_info_attributes][country]",ncesSchoolId:"user[school_info_attributes][school_id]",schoolName:"user[school_info_attributes][school_name]",schoolZip:"user[school_info_attributes][school_zip]",schoolType:"user[school_info_attributes][school_type]"}:_ref$fieldNames,countryIsUS=(0,_react.useMemo)((function(){return country===_signUpFlowConstants.US_COUNTRY_CODE}),[country]),countryIsSelectedOrUsIpFalse=(0,_react.useMemo)((function(){return country&&country!==_signUpFlowConstants.SELECT_COUNTRY||!1===usIp}),[country,usIp]),inputManually=(0,_react.useMemo)((function(){return schoolId===_sharedConstants.NonSchoolOptions.CLICK_TO_ADD}),[schoolId]),showNoSchoolSettingButton=(0,_react.useMemo)((function(){return schoolId!==_sharedConstants.NonSchoolOptions.NO_SCHOOL_SETTING}),[schoolId]),schoolZipIsValid=(0,_react.useMemo)((function(){return _signUpFlowConstants.ZIP_REGEX.test(schoolZip)}),[schoolZip]),schoolSelectOptions=(0,_react.useMemo)((function(){return[{value:_sharedConstants.NonSchoolOptions.SELECT_A_SCHOOL,text:_locale.default.selectASchool()}].concat(_toConsumableArray(schoolsList))}),[schoolsList]),handleSchoolChange=function handleSchoolChange(id){setSchoolId(id)},labelClassName=schoolZipIsValid?"":_schoolAssociationModule.default.disabledLabel;return _react.default.createElement("div",{className:_schoolAssociationModule.default.schoolAssociationWrapper},includeHeaders&&_react.default.createElement("div",{className:_schoolAssociationModule.default.headerContainer},_react.default.createElement(_typography.Heading2,null,_locale.default.censusHeading()),_react.default.createElement(_typography.BodyTwoText,null,_locale.default.schoolInfoInterstitialTitle())),_react.default.createElement("div",{className:_schoolAssociationModule.default.inputContainer},_react.default.createElement(_dropdown.SimpleDropdown,{id:"uitest-country-dropdown",className:_schoolAssociationModule.default.dropdown,name:fieldNames.country,labelText:_locale.default.whatCountry(),items:COUNTRIES_US_FIRST,selectedValue:country,onChange:function onChange(e){return function handleCountryChange(c){setCountry(c)}(e.target.value)},dropdownTextThickness:"thin"}),countryIsUS&&_react.default.createElement("div",null,_react.default.createElement(_SchoolZipSearch.default,{fieldNames:{schoolZip:fieldNames.schoolZip,ncesSchoolId:fieldNames.ncesSchoolId,schoolName:fieldNames.schoolName},schoolId,setSchoolId,schoolZip,setSchoolZip,schoolsList})),!countryIsUS&&countryIsSelectedOrUsIpFalse&&_react.default.createElement(_SchoolNameInput.default,{fieldNames:{schoolName:fieldNames.schoolName},schoolName,setSchoolName}),countryIsUS&&!inputManually&&_react.default.createElement("div",null,_react.default.createElement(_dropdown.SimpleDropdown,{id:"uitest-school-dropdown",disabled:!schoolZipIsValid,name:fieldNames.ncesSchoolId,className:(0,_classnames.default)(labelClassName,_schoolAssociationModule.default.dropdown),labelText:_locale.default.selectYourSchool(),itemGroups:[{label:_locale.default.schools(),groupItems:schoolSelectOptions},{label:_locale.default.additionalOptions(),groupItems:SEARCH_DEFAULTS}],selectedValue:schoolId,onChange:function onChange(e){return handleSchoolChange(e.target.value)},dropdownTextThickness:"thin"}),showNoSchoolSettingButton&&_react.default.createElement(_button.Button,{text:_locale.default.noSchoolSetting(),disabled:!schoolZipIsValid,color:"purple",type:"tertiary",size:"s",onClick:function onClick(e){e.preventDefault(),handleSchoolChange(_sharedConstants.NonSchoolOptions.NO_SCHOOL_SETTING)}})),countryIsUS&&inputManually&&_react.default.createElement("div",null,_react.default.createElement(_SchoolNameInput.default,{fieldNames:{schoolName:fieldNames.schoolName},schoolName,setSchoolName}),_react.default.createElement(_button.Button,{text:_locale.default.returnToResults(),color:"purple",type:"tertiary",size:"s",onClick:function onClick(){handleSchoolChange(_sharedConstants.NonSchoolOptions.SELECT_A_SCHOOL)}}))),schoolId===_sharedConstants.NonSchoolOptions.NO_SCHOOL_SETTING&&_react.default.createElement("input",{hidden:!0,readOnly:!0,name:fieldNames.schoolType,value:_sharedConstants.NonSchoolOptions.NO_SCHOOL_SETTING}))}SchoolDataInputs.propTypes={includeHeaders:_propTypes.default.bool,fieldNames:_propTypes.default.object,schoolId:_propTypes.default.string.isRequired,country:_propTypes.default.string.isRequired,schoolName:_propTypes.default.string.isRequired,schoolZip:_propTypes.default.string.isRequired,schoolsList:_propTypes.default.arrayOf(_propTypes.default.shape({value:_propTypes.default.string,text:_propTypes.default.string})).isRequired,usIp:_propTypes.default.bool,setSchoolId:_propTypes.default.func.isRequired,setCountry:_propTypes.default.func.isRequired,setSchoolName:_propTypes.default.func.isRequired,setSchoolZip:_propTypes.default.func.isRequired},module.exports=exports.default},"./src/templates/SchoolNameInput.jsx":(module,exports,__webpack_require__)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=SchoolNameInput;var _propTypes=_interopRequireDefault(__webpack_require__("./node_modules/prop-types/index.js")),_react=_interopRequireDefault(__webpack_require__("./node_modules/react/index.js")),_TextField=_interopRequireDefault(__webpack_require__("./src/componentLibrary/textField/TextField.tsx")),_locale=_interopRequireDefault(__webpack_require__("./src/util/locale-do-not-import.js"));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function SchoolNameInput(_ref){var fieldNames=_ref.fieldNames,schoolName=_ref.schoolName,setSchoolName=_ref.setSchoolName;return _react.default.createElement(_TextField.default,{name:fieldNames.schoolName,label:_locale.default.schoolOrganizationQuestion(),onChange:function onChange(e){return function handleSchoolNameChange(name){setSchoolName(name)}(e.target.value)},value:schoolName})}SchoolNameInput.propTypes={fieldNames:_propTypes.default.object,schoolName:_propTypes.default.string,setSchoolName:_propTypes.default.func},module.exports=exports.default},"./src/templates/SchoolZipSearch.jsx":(module,exports,__webpack_require__)=>{function _typeof(o){return _typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(o){return typeof o}:function(o){return o&&"function"==typeof Symbol&&o.constructor===Symbol&&o!==Symbol.prototype?"symbol":typeof o},_typeof(o)}Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=SchoolZipSearch;var _propTypes=_interopRequireDefault(__webpack_require__("./node_modules/prop-types/index.js")),_react=function _interopRequireWildcard(e,r){if(!r&&e&&e.__esModule)return e;if(null===e||"object"!=_typeof(e)&&"function"!=typeof e)return{default:e};var t=_getRequireWildcardCache(r);if(t&&t.has(e))return t.get(e);var n={__proto__:null},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var u in e)if("default"!==u&&{}.hasOwnProperty.call(e,u)){var i=a?Object.getOwnPropertyDescriptor(e,u):null;i&&(i.get||i.set)?Object.defineProperty(n,u,i):n[u]=e[u]}return n.default=e,t&&t.set(e,n),n}(__webpack_require__("./node_modules/react/index.js")),_TextField=_interopRequireDefault(__webpack_require__("./src/componentLibrary/textField/TextField.tsx")),_typography=__webpack_require__("./src/componentLibrary/typography/index.ts"),_signUpFlowConstants=__webpack_require__("./src/signUpFlow/signUpFlowConstants.tsx"),_locale=_interopRequireDefault(__webpack_require__("./src/util/locale-do-not-import.js")),_schoolAssociationModule=_interopRequireDefault(__webpack_require__("./src/templates/school-association.module.scss"));function _getRequireWildcardCache(e){if("function"!=typeof WeakMap)return null;var r=new WeakMap,t=new WeakMap;return(_getRequireWildcardCache=function _getRequireWildcardCache(e){return e?t:r})(e)}function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function SchoolZipSearch(_ref){var fieldNames=_ref.fieldNames,schoolZip=_ref.schoolZip,setSchoolZip=_ref.setSchoolZip,schoolZipIsValid=(0,_react.useMemo)((function(){return _signUpFlowConstants.ZIP_REGEX.test(schoolZip)}),[schoolZip]);return _react.default.createElement("div",{className:_schoolAssociationModule.default.inputContainer},_react.default.createElement("label",null,_react.default.createElement(_TextField.default,{id:"uitest-school-zip",name:fieldNames.schoolZip,label:_locale.default.enterYourSchoolZip(),onChange:function onChange(e){return function handleZipChange(zip){setSchoolZip(zip)}(e.target.value)},value:schoolZip,placeholder:"00000"}),schoolZip&&!schoolZipIsValid&&_react.default.createElement(_typography.BodyThreeText,{className:_schoolAssociationModule.default.errorMessage},_locale.default.zipInvalidMessage())))}SchoolZipSearch.propTypes={fieldNames:_propTypes.default.object,schoolZip:_propTypes.default.string,setSchoolZip:_propTypes.default.func},module.exports=exports.default},"./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].use[1]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[4].use[2]!./src/templates/school-association.module.scss":(module,__webpack_exports__,__webpack_require__)=>{__webpack_require__.d(__webpack_exports__,{A:()=>__WEBPACK_DEFAULT_EXPORT__});var _node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("./node_modules/css-loader/dist/runtime/sourceMaps.js"),_node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default=__webpack_require__.n(_node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0__),_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js"),___CSS_LOADER_EXPORT___=__webpack_require__.n(_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__)()(_node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default());___CSS_LOADER_EXPORT___.push([module.id,".UpfbuqzcAhKzLKdYeCSO{text-align:center;display:grid}.UpfbuqzcAhKzLKdYeCSO h2{margin-bottom:.25rem}.UpfbuqzcAhKzLKdYeCSO p{margin-bottom:.375rem}.UpfbuqzcAhKzLKdYeCSO label{width:100%;margin-bottom:0}.UpfbuqzcAhKzLKdYeCSO input,.UpfbuqzcAhKzLKdYeCSO .o6rCIWElvQCpGcbhB3_9>div{width:100%}.UpfbuqzcAhKzLKdYeCSO button{border:0;padding-inline:0}.UpfbuqzcAhKzLKdYeCSO button:hover{background:none !important;text-decoration:underline !important}.UpfbuqzcAhKzLKdYeCSO .c22BrwkkCbFdCoxAp02N{margin-block:.4375rem 0;color:#e5311a}.RcZfhaO6rTA_ObbK2i9V{margin-bottom:1.75rem}.dOlWlUnqinAdSAX9Wk_V{justify-self:center;text-align:start;width:400px;display:flex;flex-direction:column;gap:1.125rem}.YbSyUZwSOsJ8zCjIaIc6 span{color:#bec2c7 !important}","",{version:3,sources:["webpack://./src/templates/school-association.module.scss","webpack://./../shared/css/color.scss"],names:[],mappings:"AAGA,sBACE,iBAAA,CACA,YAAA,CAEA,yBACE,oBAAA,CAGF,wBACE,qBAAA,CAGF,4BACE,UAAA,CACA,eAAA,CAGF,4EAEE,UAAA,CAGF,6BACE,QAAA,CACA,gBAAA,CAEA,mCACE,0BAAA,CACA,oCAAA,CAIJ,4CACE,uBAAA,CACA,aCmLiB,CD/KrB,sBACE,qBAAA,CAGF,sBACE,mBAAA,CACA,gBAAA,CACA,WAAA,CACA,YAAA,CACA,qBAAA,CACA,YAAA,CAIA,2BACE,wBAAA",sourcesContent:["@import 'color.scss';\n@import 'font.scss';\n\n.schoolAssociationWrapper {\n text-align: center;\n display: grid;\n\n h2 {\n margin-bottom: 0.25rem;\n }\n\n p {\n margin-bottom: 0.375rem;\n }\n\n label {\n width: 100%;\n margin-bottom: 0;\n }\n\n input,\n .dropdown > div {\n width: 100%;\n }\n\n button {\n border: 0;\n padding-inline: 0;\n\n &:hover {\n background: none !important;\n text-decoration: underline !important;\n }\n }\n\n .errorMessage {\n margin-block: 0.4375rem 0;\n color: $light_negative_500;\n }\n}\n\n.headerContainer {\n margin-bottom: 1.75rem;\n}\n\n.inputContainer {\n justify-self: center;\n text-align: start;\n width: 400px;\n display: flex;\n flex-direction: column;\n gap: 1.125rem;\n}\n\n.disabledLabel {\n span {\n color: $light_gray_300 !important;\n }\n}\n","// colors from https://www.dropbox.com/s/ycjiwt8vxlmv2ih/Code.org_stylesheet_v2_09.05.13.pdf\n\n// Please keep this file simple; it should only contain color definitions\n// and aliases. Variables defined in this file are exported to\n// apps/src/util/color.js during the apps build process.\n\n$black: #000;\n$background_black: #121416;\n$dark_gray: #2D3139;\n$darkest_gray: #292F36;\n$dark_slate_gray: #282c34;\n$darkest_slate_gray: #25292d;\n$dark_charcoal: #4d575f;\n$charcoal: #5b6770;\n$light_gray: #949ca2;\n$lighter_gray: #c6cacd;\n$lightest_gray: #e7e8ea;\n$background_gray: #f2f2f2;\n$dimgray: #696969;\n$white: #fff;\n$default_blue: #3670b3;\n\n$dark_teal: #0094a3;\n$teal: #0093a4;\n$applab_button_teal: #1abc9c;\n$light_teal: #59cad3;\n$lightish_teal: #80d6de;\n$lighter_teal: #a6e3e8;\n$lightest_teal: #d9f3f5;\n$ai_rubric_cyan: #3cfff8;\n\n$purple: #8c52ba;\n$light_purple: #a69bc1;\n$lighter_purple: #cfc9de;\n$lightest_purple: #ebe8f1;\n\n$cyan: #0094ca;\n$light_cyan: #59b9dc;\n$lighter_cyan: #a6daed;\n$lightest_cyan: #d9eff7;\n$almost_white_cyan: #f5fcff;\n\n$orange: #ffa400;\n$light_orange: #ffc459;\n$lighter_orange: #ffe0a6;\n$lightest_orange: #fff2d9;\n$dark_orange: #ff8600;\n\n$green: #b9bf15;\n$light_green: #d1d567;\n$lighter_green: #e7e9ad;\n$lightest_green: #f5f5dc;\n$highlight_green: #8afc9b;\n\n$yellow: #ffb81d;\n$light_yellow: #ffdb74;\n$lighter_yellow: #ffebb5;\n$lightest_yellow: #fff7df;\n\n$goldenrod: #daa520;\n\n$header_text: $white;\n$bkgnd_color: $teal;\n$inset_color: $lighter_gray;\n$dark_color: $purple;\n$hdr_color: $purple;\n\n// Some extra colors.\n$red: #c00;\n$lightest_red: #fcc;\n$dark_red: #d62911;\n$realgreen: #008000;\n$realyellow: #ff0;\n$mustardyellow: #efcd1c;\n$twitter_blue: #00aced;\n$facebook_blue: #3b5998;\n$linkedin_blue: #0077B5;\n$dark_blue: #00647f;\n$blockly_flyout_gray: #ddd;\n$default_text: #333;\n$border_gray: #bbb;\n$border_light_gray: #d8d8d8;\n$table_header: #ececec;\n$table_light_row: #fcfcfc;\n$table_dark_row: #f4f4f4;\n\n// Progress colors.\n$level_submitted: $purple;\n$level_perfect: rgb(14, 190, 14);\n$level_passed: rgb(159, 212, 159);\n$level_attempted: $realyellow;\n$level_not_tried: #fefefe;\n$level_current: $orange;\n$level_review_rejected: $red;\n$level_review_accepted: rgb(11, 142, 11); // TODO: $level_passed;\n$assessment: $cyan;\n$workspace_running_background: #e5e5e5;\n\n// Experimental Sprite Lab validation colors.\n$dark_purple: #682A77;\n$bright_green: #0ebe0e;\n$neon_pink: #e9118f;\n\n// Links (used in apps).\n$link_color: #0596ce;\n\n// Shadow.\n$shadow: rgba(0, 0, 0, 0.3);\n\n// Colors that are taken from bootstrap, and not necessarily part of our core theme.\n$bootstrap_button_blue: #337ab7;\n$bootstrap_button_red: #d9534f;\n$bootstrap_error_background: #f2dede;\n$bootstrap_error_text: #b94a48;\n$bootstrap_v3_error_text: #a94442;\n$bootstrap_error_border: #ebccd1;\n$bootstrap_warning_background: #fcf8e3;\n$bootstrap_warning_text: #c09853;\n$bootstrap_warning_border: #faebcc;\n$bootstrap_border_color: #cccccc;\n$bootstrap_success_background: #dff0d8;\n$bootstrap_success_text: #468847;\n$bootstrap_success_border: #d6e9c6;\n\n// Colors taken from droplet, not part of our core theme.\n$droplet_light_green: #d3e965;\n$droplet_blue: #64b5f6;\n$droplet_bright_blue: #19c3e1;\n$droplet_yellow: #fff176;\n$droplet_orange: #ffb74d;\n$droplet_red: #f78183;\n$droplet_cyan: #4dd0e1;\n$droplet_pink: #f57ac6;\n$droplet_purple: #bb77c7;\n$droplet_green: #68d995;\n$droplet_white: $white;\n\n// Oceans: deep blue background.\n$oceans_deep_blue: rgb(2, 0, 28);\n\n// Dark theme background (used by default in Music Lab)\n$dark_black: #121212;\n\n// ===----===----===---- Phase 1 Colors: ----===----===----===\n// Brand\n$brand_primary_light: #E0F8F9;\n$brand_primary_default: #009EB0;\n$brand_primary_dark: #007785;\n\n$brand_secondary_light: #E0D1EC;\n$brand_secondary_default: #8C52BA;\n$brand_secondary_dark: #6C468A;\n\n$brand_accent_default: #ED6060;\n\n$brand_teal_5: #DFF2F4;\n\n//Product\n$product_affirmative_default: #3EA33E;\n\n$product_negative_light: #FDEBE9;\n$product_negative_default: #E5311A;\n$product_negative_dark: #AA2513;\n\n$product_caution_default: #F9CB28;\n\n$product_information_default: #007ACC;\n\n// Neutral\n$neutral_white: #FFFFFF;\n$neutral_light: #F7F8FA;\n$neutral_gray10: #EAEBEB;\n$neutral_dark10: #EAECEF;\n$neutral_dark20: #D1D4D8;\n$neutral_dark30: #BEC2C7;\n$neutral_dark40: #ABB0B6;\n$neutral_dark50: #989EA5;\n$neutral_dark60: #858C94;\n$neutral_dark70: #727A83;\n$neutral_dark80: #5F6872;\n$neutral_dark90: #4C5661;\n$neutral_dark: #292F36;\n\n//Brands\n$google_brand_color: #0F9D58;\n$microsoft_brand_color: #FFB900;\n$facebook_brand_color: #3B5998;\n$clever_brand_color: #1464FF;\n\n// ===----===----===---- Design system colors: ----===----===----===\n\n$light_primary_100: #BFE4E8;\n$light_primary_500: #0093A4;\n$light_primary_700: #007785;\n\n$light_secondary_100: #E2D4EE;\n$light_secondary_500: #8C52BA;\n$light_secondary_700: #6C468A;\n\n$light_gray_50: #F7F8FA;\n$light_gray_100: #EAECEF;\n$light_gray_200: #D1D4D8;\n$light_gray_300: #BEC2C7;\n$light_gray_400: #ABB0B6;\n$light_gray_500: #989EA5;\n$light_gray_600: #858C94;\n$light_gray_700: #727A83;\n$light_gray_800: #5F6872;\n$light_gray_900: #4C5661;\n$light_gray_950: #394450;\n\n$light_affirmative_100: #E2F1E2;\n$light_affirmative_500: #3EA33E;\n$light_affirmative_700: #2D742D;\n\n$light_negative_100: #FBE0DD;\n$light_negative_500: #E5311A;\n$light_negative_700: #B24949;\n\n$light_caution_100: #FEF7DF;\n$light_caution_500: #F9CB28;\n$light_caution_700: #C7A220;\n\n$light_accent_100: #FAD7D7;\n$light_accent_500: #ED6060;\n$light_accent_700: #D84C4C;\n\n$light_aqua_100: #CEFFFD;\n$light_aqua_500: #3CFFF8;\n$light_aqua_700: #30CCC6;\n\n$light_orange_100: #FFEDCC;\n$light_orange_500: #FFA400;\n$light_orange_700: #CC8300;\n\n$light_info_100: #DCEFFB;\n$light_info_500: #1892E3;\n$light_info_700: #1375B6;\n\n$light_white: #FFFFFF;\n\n$light_black: #292F36;\n\n$light_black_opacity_90: rgba(41, 47, 54, 0.90);\n$light_black_opacity-80: rgba(41, 47, 54, 0.80);\n$light_black_opacity-70: rgba(41, 47, 54, 0.70);\n$light_black_opacity-60: rgba(41, 47, 54, 0.60);\n$light_black_opacity-50: rgba(41, 47, 54, 0.50);\n$light_black_opacity-40: rgba(41, 47, 54, 0.40);\n$light_black_opacity-30: rgba(41, 47, 54, 0.30);\n$light_black_opacity-20: rgba(41, 47, 54, 0.20);\n$light_black_opacity-10: rgba(41, 47, 54, 0.10);\n"],sourceRoot:""}]),___CSS_LOADER_EXPORT___.locals={schoolAssociationWrapper:"UpfbuqzcAhKzLKdYeCSO",dropdown:"o6rCIWElvQCpGcbhB3_9",errorMessage:"c22BrwkkCbFdCoxAp02N",headerContainer:"RcZfhaO6rTA_ObbK2i9V",inputContainer:"dOlWlUnqinAdSAX9Wk_V",disabledLabel:"YbSyUZwSOsJ8zCjIaIc6"};const __WEBPACK_DEFAULT_EXPORT__=___CSS_LOADER_EXPORT___},"./src/templates/school-association.module.scss":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{__webpack_require__.r(__webpack_exports__),__webpack_require__.d(__webpack_exports__,{default:()=>__WEBPACK_DEFAULT_EXPORT__});var _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js"),_node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0___default=__webpack_require__.n(_node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0__),_node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__("./node_modules/style-loader/dist/runtime/styleDomAPI.js"),_node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1___default=__webpack_require__.n(_node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1__),_node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2__=__webpack_require__("./node_modules/style-loader/dist/runtime/insertBySelector.js"),_node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2___default=__webpack_require__.n(_node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2__),_node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3__=__webpack_require__("./node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js"),_node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3___default=__webpack_require__.n(_node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3__),_node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4__=__webpack_require__("./node_modules/style-loader/dist/runtime/insertStyleElement.js"),_node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4___default=__webpack_require__.n(_node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4__),_node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5__=__webpack_require__("./node_modules/style-loader/dist/runtime/styleTagTransform.js"),_node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5___default=__webpack_require__.n(_node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5__),_node_modules_css_loader_dist_cjs_js_ruleSet_1_rules_4_use_1_node_modules_sass_loader_dist_cjs_js_ruleSet_1_rules_4_use_2_school_association_module_scss__WEBPACK_IMPORTED_MODULE_6__=__webpack_require__("./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].use[1]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[4].use[2]!./src/templates/school-association.module.scss"),options={};options.styleTagTransform=_node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5___default(),options.setAttributes=_node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3___default(),options.insert=_node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2___default().bind(null,"head"),options.domAPI=_node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1___default(),options.insertStyleElement=_node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4___default();_node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0___default()(_node_modules_css_loader_dist_cjs_js_ruleSet_1_rules_4_use_1_node_modules_sass_loader_dist_cjs_js_ruleSet_1_rules_4_use_2_school_association_module_scss__WEBPACK_IMPORTED_MODULE_6__.A,options);const __WEBPACK_DEFAULT_EXPORT__=_node_modules_css_loader_dist_cjs_js_ruleSet_1_rules_4_use_1_node_modules_sass_loader_dist_cjs_js_ruleSet_1_rules_4_use_2_school_association_module_scss__WEBPACK_IMPORTED_MODULE_6__.A&&_node_modules_css_loader_dist_cjs_js_ruleSet_1_rules_4_use_1_node_modules_sass_loader_dist_cjs_js_ruleSet_1_rules_4_use_2_school_association_module_scss__WEBPACK_IMPORTED_MODULE_6__.A.locals?_node_modules_css_loader_dist_cjs_js_ruleSet_1_rules_4_use_1_node_modules_sass_loader_dist_cjs_js_ruleSet_1_rules_4_use_2_school_association_module_scss__WEBPACK_IMPORTED_MODULE_6__.A.locals:void 0},"./src/schoolInfo/hooks/useSchoolInfo.tsx":function(__unused_webpack_module,exports,__webpack_require__){var __assign=this&&this.__assign||function(){return __assign=Object.assign||function(t){for(var s,i=1,n=arguments.length;i<n;i++)for(var p in s=arguments[i])Object.prototype.hasOwnProperty.call(s,p)&&(t[p]=s[p]);return t},__assign.apply(this,arguments)},__read=this&&this.__read||function(o,n){var m="function"==typeof Symbol&&o[Symbol.iterator];if(!m)return o;var r,e,i=m.call(o),ar=[];try{for(;(void 0===n||n-- >0)&&!(r=i.next()).done;)ar.push(r.value)}catch(error){e={error}}finally{try{r&&!r.done&&(m=i.return)&&m.call(i)}finally{if(e)throw e.error}}return ar},__importDefault=this&&this.__importDefault||function(mod){return mod&&mod.__esModule?mod:{default:mod}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.useSchoolInfo=useSchoolInfo;var react_1=__webpack_require__("./node_modules/react/index.js"),AnalyticsConstants_1=__webpack_require__("./src/metrics/AnalyticsConstants.js"),AnalyticsReporter_1=__importDefault(__webpack_require__("./src/metrics/AnalyticsReporter.js")),signUpFlowConstants_1=__webpack_require__("./src/signUpFlow/signUpFlowConstants.tsx"),sharedConstants_1=__webpack_require__("./generated-scripts/sharedConstants.ts"),constructSchoolOption_1=__webpack_require__("./src/schoolInfo/utils/constructSchoolOption.ts"),fetchSchools_1=__webpack_require__("./src/schoolInfo/utils/fetchSchools.ts");function useSchoolInfo(initialState){var mounted=(0,react_1.useRef)(!1),detectedCountry=(0,react_1.useMemo)((function(){return initialState.country||sessionStorage.getItem(signUpFlowConstants_1.SCHOOL_COUNTRY_SESSION_KEY)||(initialState.usIp?signUpFlowConstants_1.US_COUNTRY_CODE:signUpFlowConstants_1.SELECT_COUNTRY)}),[initialState.country,initialState.usIp]),detectedSchoolId=(0,react_1.useMemo)((function(){return initialState.schoolType===sharedConstants_1.NonSchoolOptions.NO_SCHOOL_SETTING?sharedConstants_1.NonSchoolOptions.NO_SCHOOL_SETTING:!initialState.schoolId&&initialState.schoolName&&initialState.schoolZip?sharedConstants_1.NonSchoolOptions.CLICK_TO_ADD:initialState.schoolId||sessionStorage.getItem(signUpFlowConstants_1.SCHOOL_ID_SESSION_KEY)||sharedConstants_1.NonSchoolOptions.SELECT_A_SCHOOL}),[initialState.schoolId,initialState.schoolType,initialState.schoolName,initialState.schoolZip]),detectedZip=(0,react_1.useMemo)((function(){return initialState.schoolZip||sessionStorage.getItem(signUpFlowConstants_1.SCHOOL_ZIP_SESSION_KEY)||""}),[initialState.schoolZip]),detectedSchoolName=(0,react_1.useMemo)((function(){return initialState.schoolId?"":initialState.schoolName||sessionStorage.getItem(signUpFlowConstants_1.SCHOOL_NAME_SESSION_KEY)||""}),[initialState.schoolName,initialState.schoolId]),_a=__read((0,react_1.useState)({country:detectedCountry,schoolId:detectedSchoolId,schoolZip:detectedZip,schoolName:detectedSchoolName}),2),state=_a[0],setState=_a[1],_b=__read((0,react_1.useState)([]),2),schoolsList=_b[0],setSchoolsList=_b[1],fetchSchools=(0,react_1.useCallback)((function(zip,callback){(0,fetchSchools_1.fetchSchools)(zip,callback)}),[]),handleSessionStorage=function(key,value){sessionStorage.getItem(key)!==value&&sessionStorage.setItem(key,value)},country=state.country,schoolId=state.schoolId,schoolZip=state.schoolZip,schoolName=state.schoolName;return(0,react_1.useEffect)((function(){handleSessionStorage(signUpFlowConstants_1.SCHOOL_COUNTRY_SESSION_KEY,country)}),[country]),(0,react_1.useEffect)((function(){if(!signUpFlowConstants_1.ZIP_REGEX.test(schoolZip))return handleSessionStorage(signUpFlowConstants_1.SCHOOL_ZIP_SESSION_KEY,""),void setSchoolsList([]);handleSessionStorage(signUpFlowConstants_1.SCHOOL_ZIP_SESSION_KEY,schoolZip),fetchSchools(schoolZip,(function(data){if(mounted.current){var schools=data.map(constructSchoolOption_1.constructSchoolOption).sort((function(a,b){return a.text.localeCompare(b.text)}));setSchoolsList(schools)}}))}),[schoolZip,fetchSchools]),(0,react_1.useEffect)((function(){handleSessionStorage(signUpFlowConstants_1.SCHOOL_ID_SESSION_KEY,schoolId)}),[schoolId]),(0,react_1.useEffect)((function(){handleSessionStorage(signUpFlowConstants_1.SCHOOL_NAME_SESSION_KEY,schoolName)}),[schoolName]),(0,react_1.useEffect)((function(){return mounted.current=!0,function(){mounted.current=!1}}),[]),{schoolId,country,schoolName,schoolZip,schoolsList,usIp:initialState.usIp,setSchoolId:function(value){value===sharedConstants_1.NonSchoolOptions.NO_SCHOOL_SETTING?AnalyticsReporter_1.default.sendEvent(AnalyticsConstants_1.EVENTS.DO_NOT_TEACH_AT_SCHOOL_CLICKED,{},AnalyticsConstants_1.PLATFORMS.BOTH):value===sharedConstants_1.NonSchoolOptions.CLICK_TO_ADD?AnalyticsReporter_1.default.sendEvent(AnalyticsConstants_1.EVENTS.ADD_MANUALLY_CLICKED,{},AnalyticsConstants_1.PLATFORMS.BOTH):AnalyticsReporter_1.default.sendEvent(AnalyticsConstants_1.EVENTS.SCHOOL_SELECTED_FROM_LIST,{"nces Id":value},AnalyticsConstants_1.PLATFORMS.BOTH),setState((function(prevState){return __assign(__assign({},prevState),{schoolId:value})}))},setCountry:function(value){AnalyticsReporter_1.default.sendEvent(AnalyticsConstants_1.EVENTS.COUNTRY_SELECTED,{country:value},AnalyticsConstants_1.PLATFORMS.BOTH),setState((function(prevState){return __assign(__assign({},prevState),{country:value})}))},setSchoolName:function(value){setState((function(prevState){return __assign(__assign({},prevState),{schoolName:value})}))},setSchoolZip:function(value){signUpFlowConstants_1.ZIP_REGEX.test(value)&&AnalyticsReporter_1.default.sendEvent(AnalyticsConstants_1.EVENTS.ZIP_CODE_ENTERED,{zip:value},AnalyticsConstants_1.PLATFORMS.BOTH),setState((function(prevState){return __assign(__assign({},prevState),{schoolZip:value})}))},reset:function(){setState({country:detectedCountry,schoolId:detectedSchoolId,schoolZip:detectedZip,schoolName:detectedSchoolName})}}}try{useSchoolInfo.displayName="useSchoolInfo",useSchoolInfo.__docgenInfo={description:"",displayName:"useSchoolInfo",props:{schoolId:{defaultValue:null,description:"",name:"schoolId",required:!1,type:{name:"string"}},country:{defaultValue:null,description:"",name:"country",required:!1,type:{name:"string"}},schoolName:{defaultValue:null,description:"",name:"schoolName",required:!1,type:{name:"string"}},schoolZip:{defaultValue:null,description:"",name:"schoolZip",required:!1,type:{name:"string"}},schoolType:{defaultValue:null,description:"",name:"schoolType",required:!1,type:{name:"string"}},usIp:{defaultValue:null,description:"",name:"usIp",required:!1,type:{name:"boolean"}}}},"undefined"!=typeof STORYBOOK_REACT_CLASSES&&(STORYBOOK_REACT_CLASSES["src/schoolInfo/hooks/useSchoolInfo.tsx#useSchoolInfo"]={docgenInfo:useSchoolInfo.__docgenInfo,name:"useSchoolInfo",path:"src/schoolInfo/hooks/useSchoolInfo.tsx#useSchoolInfo"})}catch(__react_docgen_typescript_loader_error){}},"./src/schoolInfo/utils/buildSchoolData.ts":(__unused_webpack_module,exports,__webpack_require__)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.buildSchoolData=function buildSchoolData(_a){var schoolId=_a.schoolId,country=_a.country,schoolName=_a.schoolName,schoolZip=_a.schoolZip;if(country===signUpFlowConstants_1.US_COUNTRY_CODE&&schoolId&&!Object.values(sharedConstants_1.NonSchoolOptions).some((function(option){return schoolId===option})))return{user:{school_info_attributes:{school_id:schoolId}}};if(country===signUpFlowConstants_1.US_COUNTRY_CODE&&schoolId===sharedConstants_1.NonSchoolOptions.NO_SCHOOL_SETTING)return{user:{school_info_attributes:{country,school_type:sharedConstants_1.NonSchoolOptions.NO_SCHOOL_SETTING,zip:schoolZip}}};if(country&&country!==signUpFlowConstants_1.SELECT_COUNTRY)return{user:{school_info_attributes:{country,school_name:schoolName,zip:country===signUpFlowConstants_1.US_COUNTRY_CODE?schoolZip:void 0}}}};var signUpFlowConstants_1=__webpack_require__("./src/signUpFlow/signUpFlowConstants.tsx"),sharedConstants_1=__webpack_require__("./generated-scripts/sharedConstants.ts")},"./src/schoolInfo/utils/constructSchoolOption.ts":(__unused_webpack_module,exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.constructSchoolOption=function constructSchoolOption(school){return{value:school.nces_id.toString(),text:school.name}}},"./src/schoolInfo/utils/fetchSchools.ts":function(__unused_webpack_module,exports,__webpack_require__){var __awaiter=this&&this.__awaiter||function(thisArg,_arguments,P,generator){return new(P||(P=Promise))((function(resolve,reject){function fulfilled(value){try{step(generator.next(value))}catch(e){reject(e)}}function rejected(value){try{step(generator.throw(value))}catch(e){reject(e)}}function step(result){result.done?resolve(result.value):function adopt(value){return value instanceof P?value:new P((function(resolve){resolve(value)}))}(result.value).then(fulfilled,rejected)}step((generator=generator.apply(thisArg,_arguments||[])).next())}))},__generator=this&&this.__generator||function(thisArg,body){var f,y,t,g,_={label:0,sent:function(){if(1&t[0])throw t[1];return t[1]},trys:[],ops:[]};return g={next:verb(0),throw:verb(1),return:verb(2)},"function"==typeof Symbol&&(g[Symbol.iterator]=function(){return this}),g;function verb(n){return function(v){return function step(op){if(f)throw new TypeError("Generator is already executing.");for(;g&&(g=0,op[0]&&(_=0)),_;)try{if(f=1,y&&(t=2&op[0]?y.return:op[0]?y.throw||((t=y.return)&&t.call(y),0):y.next)&&!(t=t.call(y,op[1])).done)return t;switch(y=0,t&&(op=[2&op[0],t.value]),op[0]){case 0:case 1:t=op;break;case 4:return _.label++,{value:op[1],done:!1};case 5:_.label++,y=op[1],op=[0];continue;case 7:op=_.ops.pop(),_.trys.pop();continue;default:if(!(t=_.trys,(t=t.length>0&&t[t.length-1])||6!==op[0]&&2!==op[0])){_=0;continue}if(3===op[0]&&(!t||op[1]>t[0]&&op[1]<t[3])){_.label=op[1];break}if(6===op[0]&&_.label<t[1]){_.label=t[1],t=op;break}if(t&&_.label<t[2]){_.label=t[2],_.ops.push(op);break}t[2]&&_.ops.pop(),_.trys.pop();continue}op=body.call(thisArg,_)}catch(e){op=[6,e],y=0}finally{f=t=0}if(5&op[0])throw op[1];return{value:op[0]?op[1]:void 0,done:!0}}([n,v])}}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.fetchSchools=function fetchSchools(zip,callback){return __awaiter(this,void 0,void 0,(function(){var searchUrl,response,data;return __generator(this,(function(_a){switch(_a.label){case 0:return searchUrl="".concat(signUpFlowConstants_1.SCHOOL_ZIP_SEARCH_URL).concat(zip),[4,fetch(searchUrl,{headers:{"X-Requested-With":"XMLHttpRequest"}})];case 1:if(!(response=_a.sent()).ok)throw new Error("Zip code search for schools failed");return[4,response.json()];case 2:return data=_a.sent(),callback(data),[2]}}))}))};var signUpFlowConstants_1=__webpack_require__("./src/signUpFlow/signUpFlowConstants.tsx")},"./src/schoolInfo/utils/getCountriesUsFirst.ts":function(__unused_webpack_module,exports,__webpack_require__){var __values=this&&this.__values||function(o){var s="function"==typeof Symbol&&Symbol.iterator,m=s&&o[s],i=0;if(m)return m.call(o);if(o&&"number"==typeof o.length)return{next:function(){return o&&i>=o.length&&(o=void 0),{value:o&&o[i++],done:!o}}};throw new TypeError(s?"Object is not iterable.":"Symbol.iterator is not defined.")},__importDefault=this&&this.__importDefault||function(mod){return mod&&mod.__esModule?mod:{default:mod}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.getCountriesUsFirst=function getCountriesUsFirst(){var e_1,_a,countries=[{value:signUpFlowConstants_1.SELECT_COUNTRY,text:locale_1.default.selectCountry()},{value:signUpFlowConstants_1.US_COUNTRY_CODE,text:locale_1.default.unitedStates()}],nonUsCountries=geographyConstants_1.COUNTRIES.filter((function(item){return item.label!==signUpFlowConstants_1.US_COUNTRY_CODE}));try{for(var nonUsCountries_1=__values(nonUsCountries),nonUsCountries_1_1=nonUsCountries_1.next();!nonUsCountries_1_1.done;nonUsCountries_1_1=nonUsCountries_1.next()){var nonUsCountry=nonUsCountries_1_1.value;countries.push({value:nonUsCountry.label,text:nonUsCountry.value})}}catch(e_1_1){e_1={error:e_1_1}}finally{try{nonUsCountries_1_1&&!nonUsCountries_1_1.done&&(_a=nonUsCountries_1.return)&&_a.call(nonUsCountries_1)}finally{if(e_1)throw e_1.error}}return countries};var geographyConstants_1=__webpack_require__("./src/geographyConstants.js"),signUpFlowConstants_1=__webpack_require__("./src/signUpFlow/signUpFlowConstants.tsx"),locale_1=__importDefault(__webpack_require__("./src/util/locale-do-not-import.js"))},"./src/schoolInfo/utils/schoolInfoInvalid.ts":(__unused_webpack_module,exports,__webpack_require__)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.schoolInfoInvalid=function schoolInfoInvalid(_a){var country=_a.country,schoolName=_a.schoolName,schoolZip=_a.schoolZip,schoolId=_a.schoolId,schoolsList=_a.schoolsList;if(!country||country===signUpFlowConstants_1.SELECT_COUNTRY)return!0;if(country!==signUpFlowConstants_1.US_COUNTRY_CODE)return!schoolName;if(!Boolean(schoolZip))return!0;if(schoolId===sharedConstants_1.NonSchoolOptions.SELECT_A_SCHOOL)return!0;if(schoolId===sharedConstants_1.NonSchoolOptions.NO_SCHOOL_SETTING)return!1;if(schoolId===sharedConstants_1.NonSchoolOptions.CLICK_TO_ADD)return!schoolName;if(schoolId&&schoolsList.some((function(_a){var value=_a.value;return schoolId===value})))return!1;return!0};var signUpFlowConstants_1=__webpack_require__("./src/signUpFlow/signUpFlowConstants.tsx"),sharedConstants_1=__webpack_require__("./generated-scripts/sharedConstants.ts")},"./src/schoolInfo/utils/updateSchoolInfo.ts":function(__unused_webpack_module,exports,__webpack_require__){var __awaiter=this&&this.__awaiter||function(thisArg,_arguments,P,generator){return new(P||(P=Promise))((function(resolve,reject){function fulfilled(value){try{step(generator.next(value))}catch(e){reject(e)}}function rejected(value){try{step(generator.throw(value))}catch(e){reject(e)}}function step(result){result.done?resolve(result.value):function adopt(value){return value instanceof P?value:new P((function(resolve){resolve(value)}))}(result.value).then(fulfilled,rejected)}step((generator=generator.apply(thisArg,_arguments||[])).next())}))},__generator=this&&this.__generator||function(thisArg,body){var f,y,t,g,_={label:0,sent:function(){if(1&t[0])throw t[1];return t[1]},trys:[],ops:[]};return g={next:verb(0),throw:verb(1),return:verb(2)},"function"==typeof Symbol&&(g[Symbol.iterator]=function(){return this}),g;function verb(n){return function(v){return function step(op){if(f)throw new TypeError("Generator is already executing.");for(;g&&(g=0,op[0]&&(_=0)),_;)try{if(f=1,y&&(t=2&op[0]?y.return:op[0]?y.throw||((t=y.return)&&t.call(y),0):y.next)&&!(t=t.call(y,op[1])).done)return t;switch(y=0,t&&(op=[2&op[0],t.value]),op[0]){case 0:case 1:t=op;break;case 4:return _.label++,{value:op[1],done:!1};case 5:_.label++,y=op[1],op=[0];continue;case 7:op=_.ops.pop(),_.trys.pop();continue;default:if(!(t=_.trys,(t=t.length>0&&t[t.length-1])||6!==op[0]&&2!==op[0])){_=0;continue}if(3===op[0]&&(!t||op[1]>t[0]&&op[1]<t[3])){_.label=op[1];break}if(6===op[0]&&_.label<t[1]){_.label=t[1],t=op;break}if(t&&_.label<t[2]){_.label=t[2],_.ops.push(op);break}t[2]&&_.ops.pop(),_.trys.pop();continue}op=body.call(thisArg,_)}catch(e){op=[6,e],y=0}finally{f=t=0}if(5&op[0])throw op[1];return{value:op[0]?op[1]:void 0,done:!0}}([n,v])}}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.updateSchoolInfo=function updateSchoolInfo(_a){return __awaiter(this,arguments,void 0,(function(_b){var schoolData,_c,_d,_e,_f,_g,schoolId=_b.schoolId,country=_b.country,schoolName=_b.schoolName,schoolZip=_b.schoolZip;return __generator(this,(function(_h){switch(_h.label){case 0:return(schoolData=(0,buildSchoolData_1.buildSchoolData)({schoolId,country,schoolName,schoolZip}))?(_c=fetch,_d=["/api/v1/user_school_infos"],_f={method:"PATCH"},_g={"Content-Type":"application/json"},_e="X-CSRF-Token",[4,(0,AuthenticityTokenStore_1.getAuthenticityToken)()]):[2];case 1:return[4,_c.apply(void 0,_d.concat([(_f.headers=(_g[_e]=_h.sent(),_g),_f.body=JSON.stringify(schoolData),_f)]))];case 2:if(!_h.sent().ok)throw new Error("School info update failed");return[2]}}))}))};var AuthenticityTokenStore_1=__webpack_require__("./src/util/AuthenticityTokenStore.ts"),buildSchoolData_1=__webpack_require__("./src/schoolInfo/utils/buildSchoolData.ts")},"./src/signUpFlow/signUpFlowConstants.tsx":function(__unused_webpack_module,exports){var __read=this&&this.__read||function(o,n){var m="function"==typeof Symbol&&o[Symbol.iterator];if(!m)return o;var r,e,i=m.call(o),ar=[];try{for(;(void 0===n||n-- >0)&&!(r=i.next()).done;)ar.push(r.value)}catch(error){e={error}}finally{try{r&&!r.done&&(m=i.return)&&m.call(i)}finally{if(e)throw e.error}}return ar},__spreadArray=this&&this.__spreadArray||function(to,from,pack){if(pack||2===arguments.length)for(var ar,i=0,l=from.length;i<l;i++)!ar&&i in from||(ar||(ar=Array.prototype.slice.call(from,0,i)),ar[i]=from[i]);return to.concat(ar||Array.prototype.slice.call(from))};Object.defineProperty(exports,"__esModule",{value:!0}),exports.SCHOOL_ZIP_SEARCH_URL=exports.SELECT_COUNTRY=exports.ZIP_REGEX=exports.US_COUNTRY_CODE=exports.NEW_SIGN_UP_USER_TYPE=exports.clearSignUpSessionStorage=exports.USER_RETURN_TO_SESSION_KEY=exports.OAUTH_LOGIN_TYPE_SESSION_KEY=exports.EMAIL_SESSION_KEY=exports.SCHOOL_COUNTRY_SESSION_KEY=exports.SCHOOL_NAME_SESSION_KEY=exports.SCHOOL_ZIP_SESSION_KEY=exports.SCHOOL_ID_SESSION_KEY=exports.ACCOUNT_TYPE_SESSION_KEY=void 0,exports.ACCOUNT_TYPE_SESSION_KEY="accountType",exports.SCHOOL_ID_SESSION_KEY="schoolId",exports.SCHOOL_ZIP_SESSION_KEY="schoolZip",exports.SCHOOL_NAME_SESSION_KEY="schoolName",exports.SCHOOL_COUNTRY_SESSION_KEY="schoolCountry",exports.EMAIL_SESSION_KEY="email",exports.OAUTH_LOGIN_TYPE_SESSION_KEY="oauthType",exports.USER_RETURN_TO_SESSION_KEY="userReturnTo";var clearSignUpSessionStorage=function(isTeacher){var fieldsToClear=[exports.ACCOUNT_TYPE_SESSION_KEY,exports.EMAIL_SESSION_KEY,exports.OAUTH_LOGIN_TYPE_SESSION_KEY,exports.USER_RETURN_TO_SESSION_KEY];if(isTeacher){var schoolFields=[exports.SCHOOL_ID_SESSION_KEY,exports.SCHOOL_ZIP_SESSION_KEY,exports.SCHOOL_NAME_SESSION_KEY,exports.SCHOOL_COUNTRY_SESSION_KEY];fieldsToClear.push.apply(fieldsToClear,__spreadArray([],__read(schoolFields),!1))}fieldsToClear.forEach((function(field){sessionStorage.removeItem(field)}))};exports.clearSignUpSessionStorage=clearSignUpSessionStorage,exports.NEW_SIGN_UP_USER_TYPE="new_sign_up_user_type",exports.US_COUNTRY_CODE="US",exports.ZIP_REGEX=new RegExp(/(^\d{5}$)/),exports.SELECT_COUNTRY="selectCountry",exports.SCHOOL_ZIP_SEARCH_URL="/dashboardapi/v1/schoolzipsearch/";try{clearSignUpSessionStorage.displayName="clearSignUpSessionStorage",clearSignUpSessionStorage.__docgenInfo={description:"",displayName:"clearSignUpSessionStorage",props:{}},"undefined"!=typeof STORYBOOK_REACT_CLASSES&&(STORYBOOK_REACT_CLASSES["src/signUpFlow/signUpFlowConstants.tsx#clearSignUpSessionStorage"]={docgenInfo:clearSignUpSessionStorage.__docgenInfo,name:"clearSignUpSessionStorage",path:"src/signUpFlow/signUpFlowConstants.tsx#clearSignUpSessionStorage"})}catch(__react_docgen_typescript_loader_error){}},"./src/util/AuthenticityTokenStore.ts":function(__unused_webpack_module,exports){var __awaiter=this&&this.__awaiter||function(thisArg,_arguments,P,generator){return new(P||(P=Promise))((function(resolve,reject){function fulfilled(value){try{step(generator.next(value))}catch(e){reject(e)}}function rejected(value){try{step(generator.throw(value))}catch(e){reject(e)}}function step(result){result.done?resolve(result.value):function adopt(value){return value instanceof P?value:new P((function(resolve){resolve(value)}))}(result.value).then(fulfilled,rejected)}step((generator=generator.apply(thisArg,_arguments||[])).next())}))},__generator=this&&this.__generator||function(thisArg,body){var f,y,t,g,_={label:0,sent:function(){if(1&t[0])throw t[1];return t[1]},trys:[],ops:[]};return g={next:verb(0),throw:verb(1),return:verb(2)},"function"==typeof Symbol&&(g[Symbol.iterator]=function(){return this}),g;function verb(n){return function(v){return function step(op){if(f)throw new TypeError("Generator is already executing.");for(;g&&(g=0,op[0]&&(_=0)),_;)try{if(f=1,y&&(t=2&op[0]?y.return:op[0]?y.throw||((t=y.return)&&t.call(y),0):y.next)&&!(t=t.call(y,op[1])).done)return t;switch(y=0,t&&(op=[2&op[0],t.value]),op[0]){case 0:case 1:t=op;break;case 4:return _.label++,{value:op[1],done:!1};case 5:_.label++,y=op[1],op=[0];continue;case 7:op=_.ops.pop(),_.trys.pop();continue;default:if(!(t=_.trys,(t=t.length>0&&t[t.length-1])||6!==op[0]&&2!==op[0])){_=0;continue}if(3===op[0]&&(!t||op[1]>t[0]&&op[1]<t[3])){_.label=op[1];break}if(6===op[0]&&_.label<t[1]){_.label=t[1],t=op;break}if(t&&_.label<t[2]){_.label=t[2],_.ops.push(op);break}t[2]&&_.ops.pop(),_.trys.pop();continue}op=body.call(thisArg,_)}catch(e){op=[6,e],y=0}finally{f=t=0}if(5&op[0])throw op[1];return{value:op[0]?op[1]:void 0,done:!0}}([n,v])}}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.AUTHENTICITY_TOKEN_HEADER=void 0,exports.getAuthenticityToken=function getAuthenticityToken(){return __awaiter(this,void 0,Promise,(function(){var token;return __generator(this,(function(_a){switch(_a.label){case 0:return null!==authenticityToken?[2,authenticityToken]:[4,refreshToken()];case 1:return token=_a.sent(),[2,authenticityToken=token]}}))}))};var authenticityToken=null;function refreshToken(){return __awaiter(this,void 0,Promise,(function(){var tokenContainer,response,token;return __generator(this,(function(_a){switch(_a.label){case 0:return(tokenContainer=document.querySelector('meta[name="csrf-token"]'))&&tokenContainer.content?[2,tokenContainer.content]:[4,fetch("/get_token")];case 1:if(response=_a.sent(),null===(token=response.headers.get("csrf-token")))throw new Error("Could not retrieve CSRF token");return[2,token]}}))}))}exports.AUTHENTICITY_TOKEN_HEADER="X-CSRF-TOKEN"}}]);
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNDE5Ni42OThmYjlkYi5pZnJhbWUuYnVuZGxlLmpzIiwibWFwcGluZ3MiOiJzU0FBQSxJQUFBQSxpQkFBQUMsb0JBQUEsMENBRXdCQyxRQUFBQSxZQUFHQyxPQUFPQyxLQUFLQyxpQkFBQUEsVUFBVUMsT0FFOUJKLFFBQUFBLE9BQUcsQ0FDcEIsR0FDQSxVQUNBLFNBQ0EsVUFDQSxXQUNBLGFBQ0EsV0FDQSxjQUNBLGdCQUNBLFdBQ0EsVUFDQSxVQUNBLFNBQ0EsUUFDQSxXQUNBLFVBQ0EsT0FDQSxTQUNBLFdBQ0EsWUFDQSxRQUNBLFdBQ0EsZ0JBQ0EsV0FDQSxZQUNBLGNBQ0EsV0FDQSxVQUNBLFdBQ0EsU0FDQSxnQkFDQSxhQUNBLGFBQ0EsV0FDQSxpQkFDQSxlQUNBLE9BQ0EsV0FDQSxTQUNBLGVBQ0EsZUFDQSxpQkFDQSxlQUNBLFlBQ0EsUUFDQSxPQUNBLFVBQ0EsV0FDQSxhQUNBLGdCQUNBLFlBQ0EsV0FJb0JBLFFBQUFBLFVBQUcsQ0FDdkIsQ0FBQ0ssTUFBTyxLQUFNQyxNQUFPLFdBQ3JCLENBQUNELE1BQU8sS0FBTUMsTUFBTyx3QkFDckIsQ0FBQ0QsTUFBTyxLQUFNQyxNQUFPLGVBQ3JCLENBQUNELE1BQU8sS0FBTUMsTUFBTyx1QkFDckIsQ0FBQ0QsTUFBTyxLQUFNQyxNQUFPLFlBQ3JCLENBQUNELE1BQU8sS0FBTUMsTUFBTyxXQUNyQixDQUFDRCxNQUFPLEtBQU1DLE1BQU8sV0FDckIsQ0FBQ0QsTUFBTyxLQUFNQyxNQUFPLFVBQ3JCLENBQUNELE1BQU8sS0FBTUMsTUFBTyxjQUNyQixDQUFDRCxNQUFPLEtBQU1DLE1BQU8sYUFDckIsQ0FBQ0QsTUFBTyxLQUFNQyxNQUFPLGtCQUNyQixDQUFDRCxNQUFPLEtBQU1DLE1BQU8sV0FDckIsQ0FBQ0QsTUFBTyxLQUFNQyxNQUFPLGFBQ3JCLENBQUNELE1BQU8sS0FBTUMsTUFBTyxTQUNyQixDQUFDRCxNQUFPLEtBQU1DLE1BQU8saUJBQ3JCLENBQUNELE1BQU8sS0FBTUMsTUFBTyxjQUNyQixDQUFDRCxNQUFPLEtBQU1DLE1BQU8sMEJBQ3JCLENBQUNELE1BQU8sS0FBTUMsTUFBTyxZQUNyQixDQUFDRCxNQUFPLEtBQU1DLE1BQU8sY0FDckIsQ0FBQ0QsTUFBTyxLQUFNQyxNQUFPLFdBQ3JCLENBQUNELE1BQU8sS0FBTUMsTUFBTyxnQkFDckIsQ0FBQ0QsTUFBTyxLQUFNQyxNQUFPLFlBQ3JCLENBQUNELE1BQU8sS0FBTUMsTUFBTyxXQUNyQixDQUFDRCxNQUFPLEtBQU1DLE1BQU8sV0FDckIsQ0FBQ0QsTUFBTyxLQUFNQyxNQUFPLFNBQ3JCLENBQUNELE1BQU8sS0FBTUMsTUFBTyxvQkFDckIsQ0FBQ0QsTUFBTyxLQUFNQyxNQUFPLFdBQ3JCLENBQUNELE1BQU8sS0FBTUMsTUFBTyxVQUNyQixDQUFDRCxNQUFPLEtBQU1DLE1BQU8sa0NBQ3JCLENBQUNELE1BQU8sS0FBTUMsTUFBTyxXQUNyQixDQUFDRCxNQUFPLEtBQU1DLE1BQU8sVUFDckIsQ0FBQ0QsTUFBTyxLQUFNQyxNQUFPLFdBQ3JCLENBQUNELE1BQU8sS0FBTUMsTUFBTyxVQUNyQixDQUFDRCxNQUFPLEtBQU1DLE1BQU8saUJBQ3JCLENBQUNELE1BQU8sS0FBTUMsTUFBTyxZQUNyQixDQUFDRCxNQUFPLEtBQU1DLE1BQU8sV0FDckIsQ0FBQ0QsTUFBTyxLQUFNQyxNQUFPLFVBQ3JCLENBQUNELE1BQU8sS0FBTUMsTUFBTyxVQUNyQixDQUFDRCxNQUFPLEtBQU1DLE1BQU8sMkJBQ3JCLENBQUNELE1BQU8sS0FBTUMsTUFBTyxnQ0FDckIsQ0FBQ0QsTUFBTyxLQUFNQyxNQUFPLDRCQUNyQixDQUFDRCxNQUFPLEtBQU1DLE1BQU8sU0FDckIsQ0FBQ0QsTUFBTyxLQUFNQyxNQUFPLGVBQ3JCLENBQUNELE1BQU8sS0FBTUMsTUFBTyxpQkFDckIsQ0FBQ0QsTUFBTyxLQUFNQyxNQUFPLGdCQUNyQixDQUFDRCxNQUFPLEtBQU1DLE1BQU8sU0FDckIsQ0FBQ0QsTUFBTyxLQUFNQyxNQUFPLFlBQ3JCLENBQUNELE1BQU8sS0FBTUMsTUFBTyxTQUNyQixDQUFDRCxNQUFPLEtBQU1DLE1BQU8sWUFDckIsQ0FBQ0QsTUFBTyxLQUFNQyxNQUFPLGNBQ3JCLENBQUNELE1BQU8sS0FBTUMsTUFBTyxRQUNyQixDQUFDRCxNQUFPLEtBQU1DLE1BQU8sY0FDckIsQ0FBQ0QsTUFBTyxLQUFNQyxNQUFPLFdBQ3JCLENBQUNELE1BQU8sS0FBTUMsTUFBTyxvQkFDckIsQ0FBQ0QsTUFBTyxLQUFNQyxNQUFPLFVBQ3JCLENBQUNELE1BQU8sS0FBTUMsTUFBTyxrQkFDckIsQ0FBQ0QsTUFBTyxLQUFNQyxNQUFPLFdBQ3JCLENBQUNELE1BQU8sS0FBTUMsTUFBTyxZQUNyQixDQUFDRCxNQUFPLEtBQU1DLE1BQU8sV0FDckIsQ0FBQ0QsTUFBTyxLQUFNQyxNQUFPLFlBQ3JCLENBQUNELE1BQU8sS0FBTUMsTUFBTyxzQkFDckIsQ0FBQ0QsTUFBTyxLQUFNQyxNQUFPLFdBQ3JCLENBQUNELE1BQU8sS0FBTUMsTUFBTyxXQUNyQixDQUFDRCxNQUFPLEtBQU1DLE1BQU8sV0FDckIsQ0FBQ0QsTUFBTyxLQUFNQyxNQUFPLFNBQ3JCLENBQUNELE1BQU8sS0FBTUMsTUFBTyxrQkFDckIsQ0FBQ0QsTUFBTyxLQUFNQyxNQUFPLFdBQ3JCLENBQUNELE1BQU8sS0FBTUMsTUFBTyxTQUNyQixDQUFDRCxNQUFPLEtBQU1DLE1BQU8sWUFDckIsQ0FBQ0QsTUFBTyxLQUFNQyxNQUFPLFdBQ3JCLENBQUNELE1BQU8sS0FBTUMsTUFBTyxRQUNyQixDQUFDRCxNQUFPLEtBQU1DLE1BQU8sK0JBQ3JCLENBQUNELE1BQU8sS0FBTUMsTUFBTyxjQUNyQixDQUFDRCxNQUFPLEtBQU1DLE1BQU8saUJBQ3JCLENBQUNELE1BQU8sS0FBTUMsTUFBTyxVQUNyQixDQUFDRCxNQUFPLEtBQU1DLE1BQU8sU0FDckIsQ0FBQ0QsTUFBTyxLQUFNQyxNQUFPLGtCQUNyQixDQUFDRCxNQUFPLEtBQU1DLE1BQU8sV0FDckIsQ0FBQ0QsTUFBTyxLQUFNQyxNQUFPLFdBQ3JCLENBQUNELE1BQU8sS0FBTUMsTUFBTyxpQkFDckIsQ0FBQ0QsTUFBTyxLQUFNQyxNQUFPLFlBQ3JCLENBQUNELE1BQU8sS0FBTUMsTUFBTyxTQUNyQixDQUFDRCxNQUFPLEtBQU1DLE1BQU8sYUFDckIsQ0FBQ0QsTUFBTyxLQUFNQyxNQUFPLGFBQ3JCLENBQUNELE1BQU8sS0FBTUMsTUFBTyxVQUNyQixDQUFDRCxNQUFPLEtBQU1DLE1BQU8sVUFDckIsQ0FBQ0QsTUFBTyxLQUFNQyxNQUFPLGNBQ3JCLENBQUNELE1BQU8sS0FBTUMsTUFBTyxxQkFDckIsQ0FBQ0QsTUFBTyxLQUFNQyxNQUFPLFVBQ3JCLENBQUNELE1BQU8sS0FBTUMsTUFBTyxnREFDckIsQ0FBQ0QsTUFBTyxLQUFNQyxNQUFPLGFBQ3JCLENBQUNELE1BQU8sS0FBTUMsTUFBTyxRQUNyQixDQUFDRCxNQUFPLEtBQU1DLE1BQU8saUJBQ3JCLENBQUNELE1BQU8sS0FBTUMsTUFBTyxVQUNyQixDQUFDRCxNQUFPLEtBQU1DLE1BQU8sYUFDckIsQ0FBQ0QsTUFBTyxLQUFNQyxNQUFPLHFDQUNyQixDQUFDRCxNQUFPLEtBQU1DLE1BQU8sWUFDckIsQ0FBQ0QsTUFBTyxLQUFNQyxNQUFPLFdBQ3JCLENBQUNELE1BQU8sS0FBTUMsTUFBTyxTQUNyQixDQUFDRCxNQUFPLEtBQU1DLE1BQU8sV0FDckIsQ0FBQ0QsTUFBTyxLQUFNQyxNQUFPLGFBQ3JCLENBQUNELE1BQU8sS0FBTUMsTUFBTyxXQUNyQixDQUFDRCxNQUFPLEtBQU1DLE1BQU8sVUFDckIsQ0FBQ0QsTUFBTyxLQUFNQyxNQUFPLGVBQ3JCLENBQUNELE1BQU8sS0FBTUMsTUFBTyxTQUNyQixDQUFDRCxNQUFPLEtBQU1DLE1BQU8sa0NBQ3JCLENBQUNELE1BQU8sS0FBTUMsTUFBTyxRQUNyQixDQUFDRCxNQUFPLEtBQU1DLE1BQU8sNEJBQ3JCLENBQUNELE1BQU8sS0FBTUMsTUFBTyxXQUNyQixDQUFDRCxNQUFPLEtBQU1DLE1BQU8sU0FDckIsQ0FBQ0QsTUFBTyxLQUFNQyxNQUFPLFVBQ3JCLENBQUNELE1BQU8sS0FBTUMsTUFBTyxXQUNyQixDQUFDRCxNQUFPLEtBQU1DLE1BQU8sVUFDckIsQ0FBQ0QsTUFBTyxLQUFNQyxNQUFPLFNBQ3JCLENBQUNELE1BQU8sS0FBTUMsTUFBTyxTQUNyQixDQUFDRCxNQUFPLEtBQU1DLE1BQU8sY0FDckIsQ0FBQ0QsTUFBTyxLQUFNQyxNQUFPLFlBQ3JCLENBQUNELE1BQU8sS0FBTUMsTUFBTyxZQUNyQixDQUFDRCxNQUFPLEtBQU1DLE1BQU8sV0FDckIsQ0FBQ0QsTUFBTyxLQUFNQyxNQUFPLHlCQUNyQixDQUFDRCxNQUFPLEtBQU1DLE1BQU8seUNBQ3JCLENBQUNELE1BQU8sS0FBTUMsTUFBTyxxQkFDckIsQ0FBQ0QsTUFBTyxLQUFNQyxNQUFPLFVBQ3JCLENBQUNELE1BQU8sS0FBTUMsTUFBTyxrQkFDckIsQ0FBQ0QsTUFBTyxLQUFNQyxNQUFPLGNBQ3JCLENBQUNELE1BQU8sS0FBTUMsTUFBTyxvQ0FDckIsQ0FBQ0QsTUFBTyxLQUFNQyxNQUFPLFdBQ3JCLENBQUNELE1BQU8sS0FBTUMsTUFBTyxlQUNyQixDQUFDRCxNQUFPLEtBQU1DLE1BQU8saUJBQ3JCLENBQUNELE1BQU8sS0FBTUMsTUFBTyxhQUNyQixDQUFDRCxNQUFPLEtBQU1DLE1BQU8sV0FDckIsQ0FBQ0QsTUFBTyxLQUFNQyxNQUFPLFdBQ3JCLENBQUNELE1BQU8sS0FBTUMsTUFBTyxhQUNyQixDQUFDRCxNQUFPLEtBQU1DLE1BQU8sY0FDckIsQ0FBQ0QsTUFBTyxLQUFNQyxNQUFPLFVBQ3JCLENBQUNELE1BQU8sS0FBTUMsTUFBTyxTQUNyQixDQUFDRCxNQUFPLEtBQU1DLE1BQU8sV0FDckIsQ0FBQ0QsTUFBTyxLQUFNQyxNQUFPLFVBQ3JCLENBQUNELE1BQU8sS0FBTUMsTUFBTyxXQUNyQixDQUFDRCxNQUFPLEtBQU1DLE1BQU8sY0FDckIsQ0FBQ0QsTUFBTyxLQUFNQyxNQUFPLGNBQ3JCLENBQUNELE1BQU8sS0FBTUMsTUFBTyxvQkFDckIsQ0FBQ0QsTUFBTyxLQUFNQyxNQUFPLHlCQUNyQixDQUFDRCxNQUFPLEtBQU1DLE1BQU8sUUFDckIsQ0FBQ0QsTUFBTyxLQUFNQyxNQUFPLFdBQ3JCLENBQUNELE1BQU8sS0FBTUMsTUFBTyxZQUNyQixDQUFDRCxNQUFPLEtBQU1DLE1BQU8sU0FDckIsQ0FBQ0QsTUFBTyxLQUFNQyxNQUFPLDRCQUNyQixDQUFDRCxNQUFPLEtBQU1DLE1BQU8sY0FDckIsQ0FBQ0QsTUFBTyxLQUFNQyxNQUFPLGNBQ3JCLENBQUNELE1BQU8sS0FBTUMsTUFBTyxjQUNyQixDQUFDRCxNQUFPLEtBQU1DLE1BQU8sU0FDckIsQ0FBQ0QsTUFBTyxLQUFNQyxNQUFPLGFBQ3JCLENBQUNELE1BQU8sS0FBTUMsTUFBTyxZQUNyQixDQUFDRCxNQUFPLEtBQU1DLE1BQU8sVUFDckIsQ0FBQ0QsTUFBTyxLQUFNQyxNQUFPLFVBQ3JCLENBQUNELE1BQU8sS0FBTUMsTUFBTyxZQUNyQixDQUFDRCxNQUFPLEtBQU1DLE1BQU8sY0FDckIsQ0FBQ0QsTUFBTyxLQUFNQyxNQUFPLFdBQ3JCLENBQUNELE1BQU8sS0FBTUMsTUFBTyxpQkFDckIsQ0FBQ0QsTUFBTyxLQUFNQyxNQUFPLFNBQ3JCLENBQUNELE1BQU8sS0FBTUMsTUFBTyxrQkFDckIsQ0FBQ0QsTUFBTyxLQUFNQyxNQUFPLFdBQ3JCLENBQUNELE1BQU8sS0FBTUMsTUFBTyxhQUNyQixDQUFDRCxNQUFPLEtBQU1DLE1BQU8sZUFDckIsQ0FBQ0QsTUFBTyxLQUFNQyxNQUFPLFVBQ3JCLENBQUNELE1BQU8sS0FBTUMsTUFBTyxTQUNyQixDQUFDRCxNQUFPLEtBQU1DLE1BQU8sU0FDckIsQ0FBQ0QsTUFBTyxLQUFNQyxNQUFPLFFBQ3JCLENBQUNELE1BQU8sS0FBTUMsTUFBTyxlQUNyQixDQUFDRCxNQUFPLEtBQU1DLE1BQU8sUUFDckIsQ0FBQ0QsTUFBTyxLQUFNQyxNQUFPLFVBQ3JCLENBQUNELE1BQU8sS0FBTUMsTUFBTyxRQUNyQixDQUFDRCxNQUFPLEtBQU1DLE1BQU8sb0JBQ3JCLENBQUNELE1BQU8sS0FBTUMsTUFBTyxvQkFDckIsQ0FBQ0QsTUFBTyxLQUFNQyxNQUFPLGVBQ3JCLENBQUNELE1BQU8sS0FBTUMsTUFBTyxZQUNyQixDQUFDRCxNQUFPLEtBQU1DLE1BQU8sVUFDckIsQ0FBQ0QsTUFBTyxLQUFNQyxNQUFPLDZCQUNyQixDQUFDRCxNQUFPLEtBQU1DLE1BQU8sWUFDckIsQ0FBQ0QsTUFBTyxLQUFNQyxNQUFPLGVBQ3JCLENBQUNELE1BQU8sS0FBTUMsTUFBTyxhQUNyQixDQUFDRCxNQUFPLEtBQU1DLE1BQU8sWUFDckIsQ0FBQ0QsTUFBTyxLQUFNQyxNQUFPLFNBQ3JCLENBQUNELE1BQU8sS0FBTUMsTUFBTyxZQUNyQixDQUFDRCxNQUFPLEtBQU1DLE1BQU8sU0FDckIsQ0FBQ0QsTUFBTyxLQUFNQyxNQUFPLFdBQ3JCLENBQUNELE1BQU8sS0FBTUMsTUFBTyxXQUNyQixDQUFDRCxNQUFPLEtBQU1DLE1BQU8sVUFDckIsQ0FBQ0QsTUFBTyxLQUFNQyxNQUFPLHNCQUNyQixDQUFDRCxNQUFPLEtBQU1DLE1BQU8sVUFDckIsQ0FBQ0QsTUFBTyxLQUFNQyxNQUFPLGdCQUNyQixDQUFDRCxNQUFPLEtBQU1DLE1BQU8sbUJBQ3JCLENBQUNELE1BQU8sS0FBTUMsTUFBTyxjQUNyQixDQUFDRCxNQUFPLEtBQU1DLE1BQU8sU0FDckIsQ0FBQ0QsTUFBTyxLQUFNQyxNQUFPLFVBQ3JCLENBQUNELE1BQU8sS0FBTUMsTUFBTyxhQUNyQixDQUFDRCxNQUFPLEtBQU1DLE1BQU8sWUFDckIsQ0FBQ0QsTUFBTyxLQUFNQyxNQUFPLDBCQUNyQixDQUFDRCxNQUFPLEtBQU1DLE1BQU8sWUFDckIsQ0FBQ0QsTUFBTyxLQUFNQyxNQUFPLGdCQUNyQixDQUFDRCxNQUFPLEtBQU1DLE1BQU8sY0FDckIsQ0FBQ0QsTUFBTyxLQUFNQyxNQUFPLFdBQ3JCLENBQUNELE1BQU8sS0FBTUMsTUFBTyxXQUNyQixDQUFDRCxNQUFPLEtBQU1DLE1BQU8sWUFDckIsQ0FBQ0QsTUFBTyxLQUFNQyxNQUFPLGVBQ3JCLENBQUNELE1BQU8sS0FBTUMsTUFBTyx5QkFDckIsQ0FBQ0QsTUFBTyxL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QUEwQixPQUF0QkMsa0JBQ0ssQ0FBUCxFQUFPQSxtQkFHSyxHQUFNQyxnQixPQUVwQixPQUZNQyxNQUFRLFVBRVAsQ0FBUCxFQURBRixrQkFBb0JFLE8sUUFSdEIsSUFBSUYsa0JBQW1DLEtBWXZDLFNBQWVDLGUsNkJBQWdCRixTQUFPLFcsZ0dBTXBDLE9BSk1JLGVBQWlCQyxTQUFTQyxjQUM5Qiw2QkFHb0JGLGVBQWVHLFFBQzVCLENBQVAsRUFBT0gsZUFBZUcsU0FJUCxHQUFNM0MsTUFBTSxlLE9BRTdCLEdBRk1FLFNBQVcsVUFFSCxRQURScUMsTUFBUXJDLFNBQVNELFFBQVEvTSxJQUFJLGVBRWpDLE1BQU0sSUFBSWtOLE1BQU0saUNBRWxCLE1BQU8sQ0FBUCxFQUFPbUMsTyxPQUlJLFFBQUFLLDBCQUE0QixjIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vYmxvY2tseS1tb29jLy4vc3JjL2dlb2dyYXBoeUNvbnN0YW50cy5qcyIsIndlYnBhY2s6Ly9ibG9ja2x5LW1vb2MvLi9zcmMvdGVtcGxhdGVzL1NjaG9vbERhdGFJbnB1dHMuanN4Iiwid2VicGFjazovL2Jsb2NrbHktbW9vYy8uL3NyYy90ZW1wbGF0ZXMvU2Nob29sTmFtZUlucHV0LmpzeCIsIndlYnBhY2s6Ly9ibG9ja2x5LW1vb2MvLi9zcmMvdGVtcGxhdGVzL1NjaG9vbFppcFNlYXJjaC5qc3giLCJ3ZWJwYWNrOi8vYmxvY2tseS1tb29jLy4vc3JjL3RlbXBsYXRlcy9zY2hvb2wtYXNzb2NpYXRpb24ubW9kdWxlLnNjc3MiLCJ3ZWJwYWNrOi8vYmxvY2tseS1tb29jLy4vc3JjL3RlbXBsYXRlcy9zY2hvb2wtYXNzb2NpYXRpb24ubW9kdWxlLnNjc3M/OTZlYiIsIndlYnBhY2s6Ly9ibG9ja2x5LW1vb2MvLi9zcmMvc2Nob29sSW5mby9ob29rcy91c2VTY2hvb2xJbmZvLnRzeCIsIndlYnBhY2s6Ly9ibG9ja2x5LW1vb2MvLi9zcmMvc2Nob29sSW5mby91dGlscy9idWlsZFNjaG9vbERhdGEudHMiLCJ3ZWJwYWNrOi8vYmxvY2tseS1tb29jLy4vc3JjL3NjaG9vbEluZm8vdXRpbHMvY29uc3RydWN0U2Nob29sT3B0aW9uLnRzIiwid2VicGFjazovL2Jsb2NrbHktbW9vYy8uL3NyYy9zY2hvb2xJbmZvL3V0aWxzL2ZldGNoU2Nob29scy50cyIsIndlYnBhY2s6Ly9ibG9ja2x5LW1vb2MvLi9zcmMvc2Nob29sSW5mby91dGlscy9nZXRDb3VudHJpZXNVc0ZpcnN0LnRzIiwid2VicGFjazovL2Jsb2NrbHktbW9vYy8uL3NyYy9zY2hvb2xJbmZvL3V0aWxzL3NjaG9vbEluZm9JbnZhbGlkLnRzIiwid2VicGFjazovL2Jsb2NrbHktbW9vYy8uL3NyYy9zY2hvb2xJbmZvL3V0aWxzL3VwZGF0ZVNjaG9vbEluZm8udHMiLCJ3ZWJwYWNrOi8vYmxvY2tseS1tb29jLy4vc3JjL3NpZ25VcEZsb3cvc2lnblVwRmxvd0NvbnN0YW50cy50c3giLCJ3ZWJwYWNrOi8vYmxvY2tseS1tb29jLy4vc3JjL3V0aWwvQXV0aGVudGljaXR5VG9rZW5TdG9yZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1VzU3RhdGVzfSBmcm9tICdAY2RvL2dlbmVyYXRlZC1zY3JpcHRzL3NoYXJlZENvbnN0YW50cyc7XG5cbmV4cG9ydCBjb25zdCBTVEFURV9DT0RFUyA9IE9iamVjdC5rZXlzKFVzU3RhdGVzKS5zb3J0KCk7XG5cbmV4cG9ydCBjb25zdCBTVEFURVMgPSBbXG4gICcnLFxuICAnQWxhYmFtYScsXG4gICdBbGFza2EnLFxuICAnQXJpem9uYScsXG4gICdBcmthbnNhcycsXG4gICdDYWxpZm9ybmlhJyxcbiAgJ0NvbG9yYWRvJyxcbiAgJ0Nvbm5lY3RpY3V0JyxcbiAgJ1dhc2hpbmd0b24gREMnLFxuICAnRGVsYXdhcmUnLFxuICAnRmxvcmlkYScsXG4gICdHZW9yZ2lhJyxcbiAgJ0hhd2FpaScsXG4gICdJZGFobycsXG4gICdJbGxpbm9pcycsXG4gICdJbmRpYW5hJyxcbiAgJ0lvd2EnLFxuICAnS2Fuc2FzJyxcbiAgJ0tlbnR1Y2t5JyxcbiAgJ0xvdWlzaWFuYScsXG4gICdNYWluZScsXG4gICdNYXJ5bGFuZCcsXG4gICdNYXNzYWNodXNldHRzJyxcbiAgJ01pY2hpZ2FuJyxcbiAgJ01pbm5lc290YScsXG4gICdNaXNzaXNzaXBwaScsXG4gICdNaXNzb3VyaScsXG4gICdNb250YW5hJyxcbiAgJ05lYnJhc2thJyxcbiAgJ05ldmFkYScsXG4gICdOZXcgSGFtcHNoaXJlJyxcbiAgJ05ldyBKZXJzZXknLFxuICAnTmV3IE1leGljbycsXG4gICdOZXcgWW9yaycsXG4gICdOb3J0aCBDYXJvbGluYScsXG4gICdOb3J0aCBEYWtvdGEnLFxuICAnT2hpbycsXG4gICdPa2xhaG9tYScsXG4gICdPcmVnb24nLFxuICAnUGVubnN5bHZhbmlhJyxcbiAgJ1Job2RlIElzbGFuZCcsXG4gICdTb3V0aCBDYXJvbGluYScsXG4gICdTb3V0aCBEYWtvdGEnLFxuICAnVGVubmVzc2VlJyxcbiAgJ1RleGFzJyxcbiAgJ1V0YWgnLFxuICAnVmVybW9udCcsXG4gICdWaXJnaW5pYScsXG4gICdXYXNoaW5ndG9uJyxcbiAgJ1dlc3QgVmlyZ2luaWEnLFxuICAnV2lzY29uc2luJyxcbiAgJ1d5b21pbmcnLFxuXTtcblxuLy8gTm90ZSB0aGF0IHRoaXMgYXJyYXkgaXMgcmV0dXJuZWQgc29ydGVkIGJ5IGNvdW50cnkgbmFtZSwgbm90IGFiYnJldmlhdGlvbi5cbmV4cG9ydCBjb25zdCBDT1VOVFJJRVMgPSBbXG4gIHtsYWJlbDogJ0FEJywgdmFsdWU6ICdBbmRvcnJhJ30sXG4gIHtsYWJlbDogJ0FFJywgdmFsdWU6ICdVbml0ZWQgQXJhYiBFbWlyYXRlcyd9LFxuICB7bGFiZWw6ICdBRicsIHZhbHVlOiAnQWZnaGFuaXN0YW4nfSxcbiAge2xhYmVsOiAnQUcnLCB2YWx1ZTogJ0FudGlndWEgYW5kIEJhcmJ1ZGEnfSxcbiAge2xhYmVsOiAnQUknLCB2YWx1ZTogJ0FuZ3VpbGxhJ30sXG4gIHtsYWJlbDogJ0FMJywgdmFsdWU6ICdBbGJhbmlhJ30sXG4gIHtsYWJlbDogJ0FNJywgdmFsdWU6ICdBcm1lbmlhJ30sXG4gIHtsYWJlbDogJ0FPJywgdmFsdWU6ICdBbmdvbGEnfSxcbiAge2xhYmVsOiAnQVEnLCB2YWx1ZTogJ0FudGFyY3RpY2EnfSxcbiAge2xhYmVsOiAnQVInLCB2YWx1ZTogJ0FyZ2VudGluYSd9LFxuICB7bGFiZWw6ICdBUycsIHZhbHVlOiAnQW1lcmljYW4gU2Ftb2EnfSxcbiAge2xhYmVsOiAnQVQnLCB2YWx1ZTogJ0F1c3RyaWEnfSxcbiAge2xhYmVsOiAnQVUnLCB2YWx1ZTogJ0F1c3RyYWxpYSd9LFxuICB7bGFiZWw6ICdBVycsIHZhbHVlOiAnQXJ1YmEnfSxcbiAge2xhYmVsOiAnQVgnLCB2YWx1ZTogJ8OFbGFuZCBJc2xhbmRzJ30sXG4gIHtsYWJlbDogJ0FaJywgdmFsdWU6ICdBemVyYmFpamFuJ30sXG4gIHtsYWJlbDogJ0JBJywgdmFsdWU6ICdCb3NuaWEgYW5kIEhlcnplZ292aW5hJ30sXG4gIHtsYWJlbDogJ0JCJywgdmFsdWU6ICdCYXJiYWRvcyd9LFxuICB7bGFiZWw6ICdCRCcsIHZhbHVlOiAnQmFuZ2xhZGVzaCd9LFxuICB7bGFiZWw6ICdCRScsIHZhbHVlOiAnQmVsZ2l1bSd9LFxuICB7bGFiZWw6ICdCRicsIHZhbHVlOiAnQnVya2luYSBGYXNvJ30sXG4gIHtsYWJlbDogJ0JHJywgdmFsdWU6ICdCdWxnYXJpYSd9LFxuICB7bGFiZWw6ICdCSCcsIHZhbHVlOiAnQmFocmFpbid9LFxuICB7bGFiZWw6ICdCSScsIHZhbHVlOiAnQnVydW5kaSd9LFxuICB7bGFiZWw6ICdCSicsIHZhbHVlOiAnQmVuaW4nfSxcbiAge2xhYmVsOiAnQkwnLCB2YWx1ZTogJ1NhaW50IEJhcnRow6lsZW15J30sXG4gIHtsYWJlbDogJ0JNJywgdmFsdWU6ICdCZXJtdWRhJ30sXG4gIHtsYWJlbDogJ0JOJywgdmFsdWU6ICdCcnVuZWknfSxcbiAge2xhYmVsOiAnQk8nLCB2YWx1ZTogJ1BsdXJpbmF0aW9uYWwgU3RhdGUgb2YgQm9saXZpYSd9LFxuICB7bGFiZWw6ICdCUScsIHZhbHVlOiAnQm9uYWlyZSd9LFxuICB7bGFiZWw6ICdCUicsIHZhbHVlOiAnQnJhemlsJ30sXG4gIHtsYWJlbDogJ0JTJywgdmFsdWU6ICdCYWhhbWFzJ30sXG4gIHtsYWJlbDogJ0JUJywgdmFsdWU6ICdCaHV0YW4nfSxcbiAge2xhYmVsOiAnQlYnLCB2YWx1ZTogJ0JvdXZldCBJc2xhbmQnfSxcbiAge2xhYmVsOiAnQlcnLCB2YWx1ZTogJ0JvdHN3YW5hJ30sXG4gIHtsYWJlbDogJ0JZJywgdmFsdWU6ICdCZWxhcnVzJ30sXG4gIHtsYWJlbDogJ0JaJywgdmFsdWU6ICdCZWxpemUnfSxcbiAge2xhYmVsOiAnQ0EnLCB2YWx1ZTogJ0NhbmFkYSd9LFxuICB7bGFiZWw6ICdDQycsIHZhbHVlOiAnQ29jb3MgKEtlZWxpbmcpIElzbGFuZHMnfSxcbiAge2xhYmVsOiAnQ0QnLCB2YWx1ZTogJ0RlbW9jcmF0aWMgUmVwdWJsaWMgb2YgQ29uZ28nfSxcbiAge2xhYmVsOiAnQ0YnLCB2YWx1ZTogJ0NlbnRyYWwgQWZyaWNhbiBSZXB1YmxpYyd9LFxuICB7bGFiZWw6ICdDRycsIHZhbHVlOiAnQ29uZ28nfSxcbiAge2xhYmVsOiAnQ0gnLCB2YWx1ZTogJ1N3aXR6ZXJsYW5kJ30sXG4gIHtsYWJlbDogJ0NJJywgdmFsdWU6IFwiQ8O0dGUgZCdJdm9pcmVcIn0sXG4gIHtsYWJlbDogJ0NLJywgdmFsdWU6ICdDb29rIElzbGFuZHMnfSxcbiAge2xhYmVsOiAnQ0wnLCB2YWx1ZTogJ0NoaWxlJ30sXG4gIHtsYWJlbDogJ0NNJywgdmFsdWU6ICdDYW1lcm9vbid9LFxuICB7bGFiZWw6ICdDTicsIHZhbHVlOiAnQ2hpbmEnfSxcbiAge2xhYmVsOiAnQ08nLCB2YWx1ZTogJ0NvbG9tYmlhJ30sXG4gIHtsYWJlbDogJ0NSJywgdmFsdWU6ICdDb3N0YSBSaWNhJ30sXG4gIHtsYWJlbDogJ0NVJywgdmFsdWU6ICdDdWJhJ30sXG4gIHtsYWJlbDogJ0NWJywgdmFsdWU6ICdDYXBlIFZlcmRlJ30sXG4gIHtsYWJlbDogJ0NXJywgdmFsdWU6ICdDdXJhw6dhbyd9LFxuICB7bGFiZWw6ICdDWCcsIHZhbHVlOiAnQ2hyaXN0bWFzIElzbGFuZCd9LFxuICB7bGFiZWw6ICdDWScsIHZhbHVlOiAnQ3lwcnVzJ30sXG4gIHtsYWJlbDogJ0NaJywgdmFsdWU6ICdDemVjaCBSZXB1YmxpYyd9LFxuICB7bGFiZWw6ICdERScsIHZhbHVlOiAnR2VybWFueSd9LFxuICB7bGFiZWw6ICdESicsIHZhbHVlOiAnRGppYm91dGknfSxcbiAge2xhYmVsOiAnREsnLCB2YWx1ZTogJ0Rlbm1hcmsnfSxcbiAge2xhYmVsOiAnRE0nLCB2YWx1ZTogJ0RvbWluaWNhJ30sXG4gIHtsYWJlbDogJ0RPJywgdmFsdWU6ICdEb21pbmljYW4gUmVwdWJsaWMnfSxcbiAge2xhYmVsOiAnRFonLCB2YWx1ZTogJ0FsZ2VyaWEnfSxcbiAge2xhYmVsOiAnRUMnLCB2YWx1ZTogJ0VjdWFkb3InfSxcbiAge2xhYmVsOiAnRUUnLCB2YWx1ZTogJ0VzdG9uaWEnfSxcbiAge2xhYmVsOiAnRUcnLCB2YWx1ZTogJ0VneXB0J30sXG4gIHtsYWJlbDogJ0VIJywgdmFsdWU6ICdXZXN0ZXJuIFNhaGFyYSd9LFxuICB7bGFiZWw6ICdFUicsIHZhbHVlOiAnRXJpdHJlYSd9LFxuICB7bGFiZWw6ICdFUycsIHZhbHVlOiAnU3BhaW4nfSxcbiAge2xhYmVsOiAnRVQnLCB2YWx1ZTogJ0V0aGlvcGlhJ30sXG4gIHtsYWJlbDogJ0ZJJywgdmFsdWU6ICdGaW5sYW5kJ30sXG4gIHtsYWJlbDogJ0ZKJywgdmFsdWU6ICdGaWppJ30sXG4gIHtsYWJlbDogJ0ZLJywgdmFsdWU6ICdGYWxrbGFuZCBJc2xhbmRzIChNYWx2aW5hcyknfSxcbiAge2xhYmVsOiAnRk0nLCB2YWx1ZTogJ01pY3JvbmVzaWEnfSxcbiAge2xhYmVsOiAnRk8nLCB2YWx1ZTogJ0Zhcm9lIElzbGFuZHMnfSxcbiAge2xhYmVsOiAnRlInLCB2YWx1ZTogJ0ZyYW5jZSd9LFxuICB7bGFiZWw6ICdHQScsIHZhbHVlOiAnR2Fib24nfSxcbiAge2xhYmVsOiAnR0InLCB2YWx1ZTogJ1VuaXRlZCBLaW5nZG9tJ30sXG4gIHtsYWJlbDogJ0dEJywgdmFsdWU6ICdHcmVuYWRhJ30sXG4gIHtsYWJlbDogJ0dFJywgdmFsdWU6ICdHZW9yZ2lhJ30sXG4gIHtsYWJlbDogJ0dGJywgdmFsdWU6ICdGcmVuY2ggR3VpYW5hJ30sXG4gIHtsYWJlbDogJ0dHJywgdmFsdWU6ICdHdWVybnNleSd9LFxuICB7bGFiZWw6ICdHSCcsIHZhbHVlOiAnR2hhbmEnfSxcbiAge2xhYmVsOiAnR0knLCB2YWx1ZTogJ0dpYnJhbHRhcid9LFxuICB7bGFiZWw6ICdHTCcsIHZhbHVlOiAnR3JlZW5sYW5kJ30sXG4gIHtsYWJlbDogJ0dNJywgdmFsdWU6ICdHYW1iaWEnfSxcbiAge2xhYmVsOiAnR04nLCB2YWx1ZTogJ0d1aW5lYSd9LFxuICB7bGFiZWw6ICdHUCcsIHZhbHVlOiAnR3VhZGVsb3VwZSd9LFxuICB7bGFiZWw6ICdHUScsIHZhbHVlOiAnRXF1YXRvcmlhbCBHdWluZWEnfSxcbiAge2xhYmVsOiAnR1InLCB2YWx1ZTogJ0dyZWVjZSd9LFxuICB7bGFiZWw6ICdHUycsIHZhbHVlOiAnU291dGggR2VvcmdpYSBhbmQgdGhlIFNvdXRoIFNhbmR3aWNoIElzbGFuZHMnfSxcbiAge2xhYmVsOiAnR1QnLCB2YWx1ZTogJ0d1YXRlbWFsYSd9LFxuICB7bGFiZWw6ICdHVScsIHZhbHVlOiAnR3VhbSd9LFxuICB7bGFiZWw6ICdHVycsIHZhbHVlOiAnR3VpbmVhLUJpc3NhdSd9LFxuICB7bGFiZWw6ICdHWScsIHZhbHVlOiAnR3V5YW5hJ30sXG4gIHtsYWJlbDogJ0hLJywgdmFsdWU6ICdIb25nIEtvbmcnfSxcbiAge2xhYmVsOiAnSE0nLCB2YWx1ZTogJ0hlYXJkIElzbGFuZCBhbmQgTWNEb25hbGQgSXNsYW5kcyd9LFxuICB7bGFiZWw6ICdITicsIHZhbHVlOiAnSG9uZHVyYXMnfSxcbiAge2xhYmVsOiAnSFInLCB2YWx1ZTogJ0Nyb2F0aWEnfSxcbiAge2xhYmVsOiAnSFQnLCB2YWx1ZTogJ0hhaXRpJ30sXG4gIHtsYWJlbDogJ0hVJywgdmFsdWU6ICdIdW5nYXJ5J30sXG4gIHtsYWJlbDogJ0lEJywgdmFsdWU6ICdJbmRvbmVzaWEnfSxcbiAge2xhYmVsOiAnSUUnLCB2YWx1ZTogJ0lyZWxhbmQnfSxcbiAge2xhYmVsOiAnSUwnLCB2YWx1ZTogJ0lzcmFlbCd9LFxuICB7bGFiZWw6ICdJTScsIHZhbHVlOiAnSXNsZSBvZiBNYW4nfSxcbiAge2xhYmVsOiAnSU4nLCB2YWx1ZTogJ0luZGlhJ30sXG4gIHtsYWJlbDogJ0lPJywgdmFsdWU6ICdCcml0aXNoIEluZGlhbiBPY2VhbiBUZXJyaXRvcnknfSxcbiAge2xhYmVsOiAnSVEnLCB2YWx1ZTogJ0lyYXEnfSxcbiAge2xhYmVsOiAnSVInLCB2YWx1ZTogJ0lzbGFtaWMgUmVwdWJsaWMgb2YgSXJhbid9LFxuICB7bGFiZWw6ICdJUycsIHZhbHVlOiAnSWNlbGFuZCd9LFxuICB7bGFiZWw6ICdJVCcsIHZhbHVlOiAnSXRhbHknfSxcbiAge2xhYmVsOiAnSkUnLCB2YWx1ZTogJ0plcnNleSd9LFxuICB7bGFiZWw6ICdKTScsIHZhbHVlOiAnSmFtYWljYSd9LFxuICB7bGFiZWw6ICdKTycsIHZhbHVlOiAnSm9yZGFuJ30sXG4gIHtsYWJlbDogJ0pQJywgdmFsdWU6ICdKYXBhbid9LFxuICB7bGFiZWw6ICdLRScsIHZhbHVlOiAnS2VueWEnfSxcbiAge2xhYmVsOiAnS0cnLCB2YWx1ZTogJ0t5cmd5enN0YW4nfSxcbiAge2xhYmVsOiAnS0gnLCB2YWx1ZTogJ0NhbWJvZGlhJ30sXG4gIHtsYWJlbDogJ0tJJywgdmFsdWU6ICdLaXJpYmF0aSd9LFxuICB7bGFiZWw6ICdLTScsIHZhbHVlOiAnQ29tb3Jvcyd9LFxuICB7bGFiZWw6ICdLTicsIHZhbHVlOiAnU2FpbnQgS2l0dHMgYW5kIE5ldmlzJ30sXG4gIHtsYWJlbDogJ0tQJywgdmFsdWU6IFwiRGVtb2NyYXRpYyBQZW9wbGUncyBSZXB1YmxpYyBvZiBLb3JlYVwifSxcbiAge2xhYmVsOiAnS1InLCB2YWx1ZTogJ1JlcHVibGljIG9mIEtvcmVhJ30sXG4gIHtsYWJlbDogJ0tXJywgdmFsdWU6ICdLdXdhaXQnfSxcbiAge2xhYmVsOiAnS1knLCB2YWx1ZTogJ0NheW1hbiBJc2xhbmRzJ30sXG4gIHtsYWJlbDogJ0taJywgdmFsdWU6ICdLYXpha2hzdGFuJ30sXG4gIHtsYWJlbDogJ0xBJywgdmFsdWU6IFwiTGFvIFBlb3BsZSdzIERlbW9jcmF0aWMgUmVwdWJsaWNcIn0sXG4gIHtsYWJlbDogJ0xCJywgdmFsdWU6ICdMZWJhbm9uJ30sXG4gIHtsYWJlbDogJ0xDJywgdmFsdWU6ICdTYWludCBMdWNpYSd9LFxuICB7bGFiZWw6ICdMSScsIHZhbHVlOiAnTGllY2h0ZW5zdGVpbid9LFxuICB7bGFiZWw6ICdMSycsIHZhbHVlOiAnU3JpIExhbmthJ30sXG4gIHtsYWJlbDogJ0xSJywgdmFsdWU6ICdMaWJlcmlhJ30sXG4gIHtsYWJlbDogJ0xTJywgdmFsdWU6ICdMZXNvdGhvJ30sXG4gIHtsYWJlbDogJ0xUJywgdmFsdWU6ICdMaXRodWFuaWEnfSxcbiAge2xhYmVsOiAnTFUnLCB2YWx1ZTogJ0x1eGVtYm91cmcnfSxcbiAge2xhYmVsOiAnTFYnLCB2YWx1ZTogJ0xhdHZpYSd9LFxuICB7bGFiZWw6ICdMWScsIHZhbHVlOiAnTGlieWEnfSxcbiAge2xhYmVsOiAnTUEnLCB2YWx1ZTogJ01vcm9jY28nfSxcbiAge2xhYmVsOiAnTUMnLCB2YWx1ZTogJ01vbmFjbyd9LFxuICB7bGFiZWw6ICdNRCcsIHZhbHVlOiAnTW9sZG92YSd9LFxuICB7bGFiZWw6ICdNRScsIHZhbHVlOiAnTW9udGVuZWdybyd9LFxuICB7bGFiZWw6ICdNRycsIHZhbHVlOiAnTWFkYWdhc2Nhcid9LFxuICB7bGFiZWw6ICdNSCcsIHZhbHVlOiAnTWFyc2hhbGwgSXNsYW5kcyd9LFxuICB7bGFiZWw6ICdNSycsIHZhbHVlOiAnUmVwdWJsaWMgb2YgTWFjZWRvbmlhJ30sXG4gIHtsYWJlbDogJ01MJywgdmFsdWU6ICdNYWxpJ30sXG4gIHtsYWJlbDogJ01NJywgdmFsdWU6ICdNeWFubWFyJ30sXG4gIHtsYWJlbDogJ01OJywgdmFsdWU6ICdNb25nb2xpYSd9LFxuICB7bGFiZWw6ICdNTycsIHZhbHVlOiAnTWFjYW8nfSxcbiAge2xhYmVsOiAnTVAnLCB2YWx1ZTogJ05vcnRoZXJuIE1hcmlhbmEgSXNsYW5kcyd9LFxuICB7bGFiZWw6ICdNUScsIHZhbHVlOiAnTWFydGluaXF1ZSd9LFxuICB7bGFiZWw6ICdNUicsIHZhbHVlOiAnTWF1cml0YW5pYSd9LFxuICB7bGFiZWw6ICdNUycsIHZhbHVlOiAnTW9udHNlcnJhdCd9LFxuICB7bGFiZWw6ICdNVCcsIHZhbHVlOiAnTWFsdGEnfSxcbiAge2xhYmVsOiAnTVUnLCB2YWx1ZTogJ01hdXJpdGl1cyd9LFxuICB7bGFiZWw6ICdNVicsIHZhbHVlOiAnTWFsZGl2ZXMnfSxcbiAge2xhYmVsOiAnTVcnLCB2YWx1ZTogJ01hbGF3aSd9LFxuICB7bGFiZWw6ICdNWCcsIHZhbHVlOiAnTWV4aWNvJ30sXG4gIHtsYWJlbDogJ01ZJywgdmFsdWU6ICdNYWxheXNpYSd9LFxuICB7bGFiZWw6ICdNWicsIHZhbHVlOiAnTW96YW1iaXF1ZSd9LFxuICB7bGFiZWw6ICdOQScsIHZhbHVlOiAnTmFtaWJpYSd9LFxuICB7bGFiZWw6ICdOQycsIHZhbHVlOiAnTmV3IENhbGVkb25pYSd9LFxuICB7bGFiZWw6ICdORScsIHZhbHVlOiAnTmlnZXInfSxcbiAge2xhYmVsOiAnTkYnLCB2YWx1ZTogJ05vcmZvbGsgSXNsYW5kJ30sXG4gIHtsYWJlbDogJ05HJywgdmFsdWU6ICdOaWdlcmlhJ30sXG4gIHtsYWJlbDogJ05JJywgdmFsdWU6ICdOaWNhcmFndWEnfSxcbiAge2xhYmVsOiAnTkwnLCB2YWx1ZTogJ05ldGhlcmxhbmRzJ30sXG4gIHtsYWJlbDogJ05PJywgdmFsdWU6ICdOb3J3YXknfSxcbiAge2xhYmVsOiAnTlAnLCB2YWx1ZTogJ05lcGFsJ30sXG4gIHtsYWJlbDogJ05SJywgdmFsdWU6ICdOYXVydSd9LFxuICB7bGFiZWw6ICdOVScsIHZhbHVlOiAnTml1ZSd9LFxuICB7bGFiZWw6ICdOWicsIHZhbHVlOiAnTmV3IFplYWxhbmQnfSxcbiAge2xhYmVsOiAnT00nLCB2YWx1ZTogJ09tYW4nfSxcbiAge2xhYmVsOiAnUEEnLCB2YWx1ZTogJ1BhbmFtYSd9LFxuICB7bGFiZWw6ICdQRScsIHZhbHVlOiAnUGVydSd9LFxuICB7bGFiZWw6ICdQRicsIHZhbHVlOiAnRnJlbmNoIFBvbHluZXNpYSd9LFxuICB7bGFiZWw6ICdQRycsIHZhbHVlOiAnUGFwdWEgTmV3IEd1aW5lYSd9LFxuICB7bGFiZWw6ICdQSCcsIHZhbHVlOiAnUGhpbGlwcGluZXMnfSxcbiAge2xhYmVsOiAnUEsnLCB2YWx1ZTogJ1Bha2lzdGFuJ30sXG4gIHtsYWJlbDogJ1BMJywgdmFsdWU6ICdQb2xhbmQnfSxcbiAge2xhYmVsOiAnUE0nLCB2YWx1ZTogJ1NhaW50IFBpZXJyZSBhbmQgTWlxdWVsb24nfSxcbiAge2xhYmVsOiAnUE4nLCB2YWx1ZTogJ1BpdGNhaXJuJ30sXG4gIHtsYWJlbDogJ1BSJywgdmFsdWU6ICdQdWVydG8gUmljbyd9LFxuICB7bGFiZWw6ICdQUycsIHZhbHVlOiAnUGFsZXN0aW5lJ30sXG4gIHtsYWJlbDogJ1BUJywgdmFsdWU6ICdQb3J0dWdhbCd9LFxuICB7bGFiZWw6ICdQVycsIHZhbHVlOiAnUGFsYXUnfSxcbiAge2xhYmVsOiAnUFknLCB2YWx1ZTogJ1BhcmFndWF5J30sXG4gIHtsYWJlbDogJ1FBJywgdmFsdWU6ICdRYXRhcid9LFxuICB7bGFiZWw6ICdSRScsIHZhbHVlOiAnUsOpdW5pb24nfSxcbiAge2xhYmVsOiAnUk8nLCB2YWx1ZTogJ1JvbWFuaWEnfSxcbiAge2xhYmVsOiAnUlMnLCB2YWx1ZTogJ1NlcmJpYSd9LFxuICB7bGFiZWw6ICdSVScsIHZhbHVlOiAnUnVzc2lhbiBGZWRlcmF0aW9uJ30sXG4gIHtsYWJlbDogJ1JXJywgdmFsdWU6ICdSd2FuZGEnfSxcbiAge2xhYmVsOiAnU0EnLCB2YWx1ZTogJ1NhdWRpIEFyYWJpYSd9LFxuICB7bGFiZWw6ICdTQicsIHZhbHVlOiAnU29sb21vbiBJc2xhbmRzJ30sXG4gIHtsYWJlbDogJ1NDJywgdmFsdWU6ICdTZXljaGVsbGVzJ30sXG4gIHtsYWJlbDogJ1NEJywgdmFsdWU6ICdTdWRhbid9LFxuICB7bGFiZWw6ICdTRScsIHZhbHVlOiAnU3dlZGVuJ30sXG4gIHtsYWJlbDogJ1NHJywgdmFsdWU6ICdTaW5nYXBvcmUnfSxcbiAge2xhYmVsOiAnU0knLCB2YWx1ZTogJ1Nsb3ZlbmlhJ30sXG4gIHtsYWJlbDogJ1NKJywgdmFsdWU6ICdTdmFsYmFyZCBhbmQgSmFuIE1heWVuJ30sXG4gIHtsYWJlbDogJ1NLJywgdmFsdWU6ICdTbG92YWtpYSd9LFxuICB7bGFiZWw6ICdTTCcsIHZhbHVlOiAnU2llcnJhIExlb25lJ30sXG4gIHtsYWJlbDogJ1NNJywgdmFsdWU6ICdTYW4gTWFyaW5vJ30sXG4gIHtsYWJlbDogJ1NOJywgdmFsdWU6ICdTZW5lZ2FsJ30sXG4gIHtsYWJlbDogJ1NPJywgdmFsdWU6ICdTb21hbGlhJ30sXG4gIHtsYWJlbDogJ1NSJywgdmFsdWU6ICdTdXJpbmFtZSd9LFxuICB7bGFiZWw6ICdTUycsIHZhbHVlOiAnU291dGggU3VkYW4nfSxcbiAge2xhYmVsOiAnU1QnLCB2YWx1ZTogJ1NhbyBUb21lIGFuZCBQcmluY2lwZSd9LFxuICB7bGFiZWw6ICdTVicsIHZhbHVlOiAnRWwgU2FsdmFkb3InfSxcbiAge2xhYmVsOiAnU1gnLCB2YWx1ZTogJ1NpbnQgTWFhcnRlbiAoRHV0Y2ggcGFydCknfSxcbiAge2xhYmVsOiAnU1knLCB2YWx1ZTogJ1N5cmlhbiBBcmFiIFJlcHVibGljJ30sXG4gIHtsYWJlbDogJ1NaJywgdmFsdWU6ICdTd2F6aWxhbmQnfSxcbiAge2xhYmVsOiAnVEMnLCB2YWx1ZTogJ1R1cmtzIGFuZCBDYWljb3MgSXNsYW5kcyd9LFxuICB7bGFiZWw6ICdURCcsIHZhbHVlOiAnQ2hhZCd9LFxuICB7bGFiZWw6ICdURycsIHZhbHVlOiAnVG9nbyd9LFxuICB7bGFiZWw6ICdUSCcsIHZhbHVlOiAnVGhhaWxhbmQnfSxcbiAge2xhYmVsOiAnVEonLCB2YWx1ZTogJ1RhamlraXN0YW4nfSxcbiAge2xhYmVsOiAnVEsnLCB2YWx1ZTogJ1Rva2VsYXUnfSxcbiAge2xhYmVsOiAnVEwnLCB2YWx1ZTogJ1RpbW9yLUxlc3RlJ30sXG4gIHtsYWJlbDogJ1RNJywgdmFsdWU6ICdUdXJrbWVuaXN0YW4nfSxcbiAge2xhYmVsOiAnVE4nLCB2YWx1ZTogJ1R1bmlzaWEnfSxcbiAge2xhYmVsOiAnVE8nLCB2YWx1ZTogJ1RvbmdhJ30sXG4gIHtsYWJlbDogJ1RSJywgdmFsdWU6ICdUdXJrZXknfSxcbiAge2xhYmVsOiAnVFQnLCB2YWx1ZTogJ1RyaW5pZGFkIGFuZCBUb2JhZ28nfSxcbiAge2xhYmVsOiAnVFYnLCB2YWx1ZTogJ1R1dmFsdSd9LFxuICB7bGFiZWw6ICdUVycsIHZhbHVlOiAnVGFpd2FuJ30sXG4gIHtsYWJlbDogJ1RaJywgdmFsdWU6ICdUYW56YW5pYSd9LFxuICB7bGFiZWw6ICdVQScsIHZhbHVlOiAnVWtyYWluZSd9LFxuICB7bGFiZWw6ICdVRycsIHZhbHVlOiAnVWdhbmRhJ30sXG4gIHtsYWJlbDogJ1VTJywgdmFsdWU6ICdVbml0ZWQgU3RhdGVzJ30sXG4gIHtsYWJlbDogJ1VZJywgdmFsdWU6ICdVcnVndWF5J30sXG4gIHtsYWJlbDogJ1VaJywgdmFsdWU6ICdVemJla2lzdGFuJ30sXG4gIHtsYWJlbDogJ1ZBJywgdmFsdWU6ICdIb2x5IFNlZSAoVmF0aWNhbiBDaXR5IFN0YXRlKSd9LFxuICB7bGFiZWw6ICdWQycsIHZhbHVlOiAnU2FpbnQgVmluY2VudCBhbmQgdGhlIEdyZW5hZGluZXMnfSxcbiAge2xhYmVsOiAnVkUnLCB2YWx1ZTogJ0JvbGl2YXJpYW4gUmVwdWJsaWMgb2YgVmVuZXp1ZWxhJ30sXG4gIHtsYWJlbDogJ1ZHJywgdmFsdWU6ICdWaXJnaW4gSXNsYW5kcywgQnJpdGlzaCd9LFxuICB7bGFiZWw6ICdWSScsIHZhbHVlOiAnVmlyZ2luIElzbGFuZHMsIFUuUy4nfSxcbiAge2xhYmVsOiAnVk4nLCB2YWx1ZTogJ1ZpZXQgTmFtJ30sXG4gIHtsYWJlbDogJ1ZVJywgdmFsdWU6ICdWYW51YXR1J30sXG4gIHtsYWJlbDogJ1dGJywgdmFsdWU6ICdXYWxsaXMgYW5kIEZ1dHVuYSd9LFxuICB7bGFiZWw6ICdXUycsIHZhbHVlOiAnU2Ftb2EnfSxcbiAge2xhYmVsOiAnWEsnLCB2YWx1ZTogJ0tvc292byd9LFxuICB7bGFiZWw6ICdZRScsIHZhbHVlOiAnWWVtZW4nfSxcbiAge2xhYmVsOiAnWVQnLCB2YWx1ZTogJ01heW90dGUnfSxcbiAge2xhYmVsOiAnWkEnLCB2YWx1ZTogJ1NvdXRoIEFmcmljYSd9LFxuICB7bGFiZWw6ICdaTScsIHZhbHVlOiAnWmFtYmlhJ30sXG4gIHtsYWJlbDogJ1pXJywgdmFsdWU6ICdaaW1iYWJ3ZSd9LFxuXS5zb3J0KChhLCBiKSA9PiBhLnZhbHVlLmxvY2FsZUNvbXBhcmUoYi52YWx1ZSkpO1xuIiwiaW1wb3J0IGNsYXNzTmFtZXMgZnJvbSAnY2xhc3NuYW1lcyc7XG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gJ3Byb3AtdHlwZXMnO1xuaW1wb3J0IFJlYWN0LCB7dXNlTWVtb30gZnJvbSAncmVhY3QnO1xuXG5pbXBvcnQge0J1dHRvbn0gZnJvbSAnQGNkby9hcHBzL2NvbXBvbmVudExpYnJhcnkvYnV0dG9uJztcbmltcG9ydCB7U2ltcGxlRHJvcGRvd259IGZyb20gJ0BjZG8vYXBwcy9jb21wb25lbnRMaWJyYXJ5L2Ryb3Bkb3duJztcbmltcG9ydCB7Qm9keVR3b1RleHQsIEhlYWRpbmcyfSBmcm9tICdAY2RvL2FwcHMvY29tcG9uZW50TGlicmFyeS90eXBvZ3JhcGh5JztcbmltcG9ydCB7XG4gIFNFTEVDVF9DT1VOVFJZLFxuICBVU19DT1VOVFJZX0NPREUsXG4gIFpJUF9SRUdFWCxcbn0gZnJvbSAnQGNkby9hcHBzL3NpZ25VcEZsb3cvc2lnblVwRmxvd0NvbnN0YW50cyc7XG5pbXBvcnQgU2Nob29sTmFtZUlucHV0IGZyb20gJ0BjZG8vYXBwcy90ZW1wbGF0ZXMvU2Nob29sTmFtZUlucHV0JztcbmltcG9ydCBTY2hvb2xaaXBTZWFyY2ggZnJvbSAnQGNkby9hcHBzL3RlbXBsYXRlcy9TY2hvb2xaaXBTZWFyY2gnO1xuaW1wb3J0IHtOb25TY2hvb2xPcHRpb25zfSBmcm9tICdAY2RvL2dlbmVyYXRlZC1zY3JpcHRzL3NoYXJlZENvbnN0YW50cyc7XG5pbXBvcnQgaTE4biBmcm9tICdAY2RvL2xvY2FsZSc7XG5cbmltcG9ydCB7Z2V0Q291bnRyaWVzVXNGaXJzdH0gZnJvbSAnLi4vc2Nob29sSW5mby91dGlscy9nZXRDb3VudHJpZXNVc0ZpcnN0JztcblxuaW1wb3J0IHN0eWxlIGZyb20gJy4vc2Nob29sLWFzc29jaWF0aW9uLm1vZHVsZS5zY3NzJztcblxuY29uc3QgU0VBUkNIX0RFRkFVTFRTID0gW1xuICB7dmFsdWU6IE5vblNjaG9vbE9wdGlvbnMuQ0xJQ0tfVE9fQURELCB0ZXh0OiBpMThuLnNjaG9vbENsaWNrVG9BZGQoKX0sXG4gIHt2YWx1ZTogTm9uU2Nob29sT3B0aW9ucy5OT19TQ0hPT0xfU0VUVElORywgdGV4dDogaTE4bi5ub1NjaG9vbFNldHRpbmcoKX0sXG5dO1xuXG5jb25zdCBDT1VOVFJJRVNfVVNfRklSU1QgPSBnZXRDb3VudHJpZXNVc0ZpcnN0KCk7XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIFNjaG9vbERhdGFJbnB1dHMoe1xuICBzY2hvb2xJZCxcbiAgY291bnRyeSxcbiAgc2Nob29sTmFtZSxcbiAgc2Nob29sWmlwLFxuICBzY2hvb2xzTGlzdCxcbiAgc2V0U2Nob29sSWQsXG4gIHNldENvdW50cnksXG4gIHNldFNjaG9vbE5hbWUsXG4gIHNldFNjaG9vbFppcCxcbiAgdXNJcCxcbiAgaW5jbHVkZUhlYWRlcnMgPSB0cnVlLFxuICBmaWVsZE5hbWVzID0ge1xuICAgIGNvdW50cnk6ICd1c2VyW3NjaG9vbF9pbmZvX2F0dHJpYnV0ZXNdW2NvdW50cnldJyxcbiAgICBuY2VzU2Nob29sSWQ6ICd1c2VyW3NjaG9vbF9pbmZvX2F0dHJpYnV0ZXNdW3NjaG9vbF9pZF0nLFxuICAgIHNjaG9vbE5hbWU6ICd1c2VyW3NjaG9vbF9pbmZvX2F0dHJpYnV0ZXNdW3NjaG9vbF9uYW1lXScsXG4gICAgc2Nob29sWmlwOiAndXNlcltzY2hvb2xfaW5mb19hdHRyaWJ1dGVzXVtzY2hvb2xfemlwXScsXG4gICAgc2Nob29sVHlwZTogJ3VzZXJbc2Nob29sX2luZm9fYXR0cmlidXRlc11bc2Nob29sX3R5cGVdJyxcbiAgfSxcbn0pIHtcbiAgLy8gV2UgZG9uJ3Qgd2FudCB0byBkaXNwbGF5IGFueSBmaWVsZHMgdG8gc3RhcnQgdGhhdCB3b24ndCBldmVudHVhbGx5IGJlXG4gIC8vIG5lY2Vzc2FyeSwgc28gdXBkYXRpbmcgYW55IHRpbWUgY291bnRyeSBjaGFuZ2VzXG4gIGNvbnN0IGNvdW50cnlJc1VTID0gdXNlTWVtbygoKSA9PiBjb3VudHJ5ID09PSBVU19DT1VOVFJZX0NPREUsIFtjb3VudHJ5XSk7XG5cbiAgY29uc3QgY291bnRyeUlzU2VsZWN0ZWRPclVzSXBGYWxzZSA9IHVzZU1lbW8oXG4gICAgKCkgPT4gKGNvdW50cnkgJiYgY291bnRyeSAhPT0gU0VMRUNUX0NPVU5UUlkpIHx8IHVzSXAgPT09IGZhbHNlLFxuICAgIFtjb3VudHJ5LCB1c0lwXVxuICApO1xuXG4gIGNvbnN0IGlucHV0TWFudWFsbHkgPSB1c2VNZW1vKFxuICAgICgpID0+IHNjaG9vbElkID09PSBOb25TY2hvb2xPcHRpb25zLkNMSUNLX1RPX0FERCxcbiAgICBbc2Nob29sSWRdXG4gICk7XG5cbiAgY29uc3Qgc2hvd05vU2Nob29sU2V0dGluZ0J1dHRvbiA9IHVzZU1lbW8oXG4gICAgKCkgPT4gc2Nob29sSWQgIT09IE5vblNjaG9vbE9wdGlvbnMuTk9fU0NIT09MX1NFVFRJTkcsXG4gICAgW3NjaG9vbElkXVxuICApO1xuXG4gIGNvbnN0IHNjaG9vbFppcElzVmFsaWQgPSB1c2VNZW1vKFxuICAgICgpID0+IFpJUF9SRUdFWC50ZXN0KHNjaG9vbFppcCksXG4gICAgW3NjaG9vbFppcF1cbiAgKTtcblxuICBjb25zdCBzY2hvb2xTZWxlY3RPcHRpb25zID0gdXNlTWVtbyhcbiAgICAoKSA9PiBbXG4gICAgICB7dmFsdWU6IE5vblNjaG9vbE9wdGlvbnMuU0VMRUNUX0FfU0NIT09MLCB0ZXh0OiBpMThuLnNlbGVjdEFTY2hvb2woKX0sXG4gICAgICAuLi5zY2hvb2xzTGlzdCxcbiAgICBdLFxuICAgIFtzY2hvb2xzTGlzdF1cbiAgKTtcblxuICBjb25zdCBoYW5kbGVDb3VudHJ5Q2hhbmdlID0gYyA9PiB7XG4gICAgc2V0Q291bnRyeShjKTtcbiAgfTtcblxuICBjb25zdCBoYW5kbGVTY2hvb2xDaGFuZ2UgPSBpZCA9PiB7XG4gICAgc2V0U2Nob29sSWQoaWQpO1xuICB9O1xuXG4gIGNvbnN0IGxhYmVsQ2xhc3NOYW1lID0gc2Nob29sWmlwSXNWYWxpZCA/ICcnIDogc3R5bGUuZGlzYWJsZWRMYWJlbDtcblxuICByZXR1cm4gKFxuICAgIDxkaXYgY2xhc3NOYW1lPXtzdHlsZS5zY2hvb2xBc3NvY2lhdGlvbldyYXBwZXJ9PlxuICAgICAge2luY2x1ZGVIZWFkZXJzICYmIChcbiAgICAgICAgPGRpdiBjbGFzc05hbWU9e3N0eWxlLmhlYWRlckNvbnRhaW5lcn0+XG4gICAgICAgICAgPEhlYWRpbmcyPntpMThuLmNlbnN1c0hlYWRpbmcoKX08L0hlYWRpbmcyPlxuICAgICAgICAgIDxCb2R5VHdvVGV4dD57aTE4bi5zY2hvb2xJbmZvSW50ZXJzdGl0aWFsVGl0bGUoKX08L0JvZHlUd29UZXh0PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICl9XG4gICAgICA8ZGl2IGNsYXNzTmFtZT17c3R5bGUuaW5wdXRDb250YWluZXJ9PlxuICAgICAgICA8U2ltcGxlRHJvcGRvd25cbiAgICAgICAgICBpZD1cInVpdGVzdC1jb3VudHJ5LWRyb3Bkb3duXCJcbiAgICAgICAgICBjbGFzc05hbWU9e3N0eWxlLmRyb3Bkb3dufVxuICAgICAgICAgIG5hbWU9e2ZpZWxkTmFtZXMuY291bnRyeX1cbiAgICAgICAgICBsYWJlbFRleHQ9e2kxOG4ud2hhdENvdW50cnkoKX1cbiAgICAgICAgICBpdGVtcz17Q09VTlRSSUVTX1VTX0ZJUlNUfVxuICAgICAgICAgIHNlbGVjdGVkVmFsdWU9e2NvdW50cnl9XG4gICAgICAgICAgb25DaGFuZ2U9e2UgPT4gaGFuZGxlQ291bnRyeUNoYW5nZShlLnRhcmdldC52YWx1ZSl9XG4gICAgICAgICAgZHJvcGRvd25UZXh0VGhpY2tuZXNzPVwidGhpblwiXG4gICAgICAgIC8+XG4gICAgICAgIHtjb3VudHJ5SXNVUyAmJiAoXG4gICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgIDxTY2hvb2xaaXBTZWFyY2hcbiAgICAgICAgICAgICAgZmllbGROYW1lcz17e1xuICAgICAgICAgICAgICAgIHNjaG9vbFppcDogZmllbGROYW1lcy5zY2hvb2xaaXAsXG4gICAgICAgICAgICAgICAgbmNlc1NjaG9vbElkOiBmaWVsZE5hbWVzLm5jZXNTY2hvb2xJZCxcbiAgICAgICAgICAgICAgICBzY2hvb2xOYW1lOiBmaWVsZE5hbWVzLnNjaG9vbE5hbWUsXG4gICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgIHNjaG9vbElkPXtzY2hvb2xJZH1cbiAgICAgICAgICAgICAgc2V0U2Nob29sSWQ9e3NldFNjaG9vbElkfVxuICAgICAgICAgICAgICBzY2hvb2xaaXA9e3NjaG9vbFppcH1cbiAgICAgICAgICAgICAgc2V0U2Nob29sWmlwPXtzZXRTY2hvb2xaaXB9XG4gICAgICAgICAgICAgIHNjaG9vbHNMaXN0PXtzY2hvb2xzTGlzdH1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICl9XG4gICAgICAgIHshY291bnRyeUlzVVMgJiYgY291bnRyeUlzU2VsZWN0ZWRPclVzSXBGYWxzZSAmJiAoXG4gICAgICAgICAgPFNjaG9vbE5hbWVJbnB1dFxuICAgICAgICAgICAgZmllbGROYW1lcz17e1xuICAgICAgICAgICAgICBzY2hvb2xOYW1lOiBmaWVsZE5hbWVzLnNjaG9vbE5hbWUsXG4gICAgICAgICAgICB9fVxuICAgICAgICAgICAgc2Nob29sTmFtZT17c2Nob29sTmFtZX1cbiAgICAgICAgICAgIHNldFNjaG9vbE5hbWU9e3NldFNjaG9vbE5hbWV9XG4gICAgICAgICAgLz5cbiAgICAgICAgKX1cbiAgICAgICAge2NvdW50cnlJc1VTICYmICFpbnB1dE1hbnVhbGx5ICYmIChcbiAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgPFNpbXBsZURyb3Bkb3duXG4gICAgICAgICAgICAgIGlkPVwidWl0ZXN0LXNjaG9vbC1kcm9wZG93blwiXG4gICAgICAgICAgICAgIGRpc2FibGVkPXshc2Nob29sWmlwSXNWYWxpZH1cbiAgICAgICAgICAgICAgbmFtZT17ZmllbGROYW1lcy5uY2VzU2Nob29sSWR9XG4gICAgICAgICAgICAgIGNsYXNzTmFtZT17Y2xhc3NOYW1lcyhsYWJlbENsYXNzTmFtZSwgc3R5bGUuZHJvcGRvd24pfVxuICAgICAgICAgICAgICBsYWJlbFRleHQ9e2kxOG4uc2VsZWN0WW91clNjaG9vbCgpfVxuICAgICAgICAgICAgICBpdGVtR3JvdXBzPXtbXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgbGFiZWw6IGkxOG4uc2Nob29scygpLFxuICAgICAgICAgICAgICAgICAgZ3JvdXBJdGVtczogc2Nob29sU2VsZWN0T3B0aW9ucyxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgIGxhYmVsOiBpMThuLmFkZGl0aW9uYWxPcHRpb25zKCksXG4gICAgICAgICAgICAgICAgICBncm91cEl0ZW1zOiBTRUFSQ0hfREVGQVVMVFMsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXX1cbiAgICAgICAgICAgICAgc2VsZWN0ZWRWYWx1ZT17c2Nob29sSWR9XG4gICAgICAgICAgICAgIG9uQ2hhbmdlPXtlID0+IGhhbmRsZVNjaG9vbENoYW5nZShlLnRhcmdldC52YWx1ZSl9XG4gICAgICAgICAgICAgIGRyb3Bkb3duVGV4dFRoaWNrbmVzcz1cInRoaW5cIlxuICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIHtzaG93Tm9TY2hvb2xTZXR0aW5nQnV0dG9uICYmIChcbiAgICAgICAgICAgICAgPEJ1dHRvblxuICAgICAgICAgICAgICAgIHRleHQ9e2kxOG4ubm9TY2hvb2xTZXR0aW5nKCl9XG4gICAgICAgICAgICAgICAgZGlzYWJsZWQ9eyFzY2hvb2xaaXBJc1ZhbGlkfVxuICAgICAgICAgICAgICAgIGNvbG9yPXsncHVycGxlJ31cbiAgICAgICAgICAgICAgICB0eXBlPXsndGVydGlhcnknfVxuICAgICAgICAgICAgICAgIHNpemU9eydzJ31cbiAgICAgICAgICAgICAgICBvbkNsaWNrPXtlID0+IHtcbiAgICAgICAgICAgICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgICAgIGhhbmRsZVNjaG9vbENoYW5nZShOb25TY2hvb2xPcHRpb25zLk5PX1NDSE9PTF9TRVRUSU5HKTtcbiAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgKX1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgKX1cbiAgICAgICAge2NvdW50cnlJc1VTICYmIGlucHV0TWFudWFsbHkgJiYgKFxuICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICA8U2Nob29sTmFtZUlucHV0XG4gICAgICAgICAgICAgIGZpZWxkTmFtZXM9e3tzY2hvb2xOYW1lOiBmaWVsZE5hbWVzLnNjaG9vbE5hbWV9fVxuICAgICAgICAgICAgICBzY2hvb2xOYW1lPXtzY2hvb2xOYW1lfVxuICAgICAgICAgICAgICBzZXRTY2hvb2xOYW1lPXtzZXRTY2hvb2xOYW1lfVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDxCdXR0b25cbiAgICAgICAgICAgICAgdGV4dD17aTE4bi5yZXR1cm5Ub1Jlc3VsdHMoKX1cbiAgICAgICAgICAgICAgY29sb3I9eydwdXJwbGUnfVxuICAgICAgICAgICAgICB0eXBlPXsndGVydGlhcnknfVxuICAgICAgICAgICAgICBzaXplPXsncyd9XG4gICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcbiAgICAgICAgICAgICAgICBoYW5kbGVTY2hvb2xDaGFuZ2UoTm9uU2Nob29sT3B0aW9ucy5TRUxFQ1RfQV9TQ0hPT0wpO1xuICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgKX1cbiAgICAgIDwvZGl2PlxuICAgICAgey8qIGhpZGRlbiBmaWVsZHMgYXJlIG5lZWRlZCB3aGVuIGZvcm0gaXMgc3VibWl0dGVkIGluIF9maW5pc2hfc2lnbl91cC5qcyBcbiAgICAgIGluIG9yZGVyIHRvIHBhc3MgdGhlIGRlZmF1bHQgc2Nob29sVHlwZSB3aGVuIHRoZSB1c2VyIGRvZXMgXG4gICAgICBub3QgdGVhY2ggaW4gYSBzY2hvb2wgc2V0dGluZyAqL31cbiAgICAgIHtzY2hvb2xJZCA9PT0gTm9uU2Nob29sT3B0aW9ucy5OT19TQ0hPT0xfU0VUVElORyAmJiAoXG4gICAgICAgIDxpbnB1dFxuICAgICAgICAgIGhpZGRlblxuICAgICAgICAgIHJlYWRPbmx5XG4gICAgICAgICAgbmFtZT17ZmllbGROYW1lcy5zY2hvb2xUeXBlfVxuICAgICAgICAgIHZhbHVlPXtOb25TY2hvb2xPcHRpb25zLk5PX1NDSE9PTF9TRVRUSU5HfVxuICAgICAgICAvPlxuICAgICAgKX1cbiAgICA8L2Rpdj5cbiAgKTtcbn1cblxuU2Nob29sRGF0YUlucHV0cy5wcm9wVHlwZXMgPSB7XG4gIGluY2x1ZGVIZWFkZXJzOiBQcm9wVHlwZXMuYm9vbCxcbiAgZmllbGROYW1lczogUHJvcFR5cGVzLm9iamVjdCxcbiAgc2Nob29sSWQ6IFByb3BUeXBlcy5zdHJpbmcuaXNSZXF1aXJlZCxcbiAgY291bnRyeTogUHJvcFR5cGVzLnN0cmluZy5pc1JlcXVpcmVkLFxuICBzY2hvb2xOYW1lOiBQcm9wVHlwZXMuc3RyaW5nLmlzUmVxdWlyZWQsXG4gIHNjaG9vbFppcDogUHJvcFR5cGVzLnN0cmluZy5pc1JlcXVpcmVkLFxuICBzY2hvb2xzTGlzdDogUHJvcFR5cGVzLmFycmF5T2YoXG4gICAgUHJvcFR5cGVzLnNoYXBlKHt2YWx1ZTogUHJvcFR5cGVzLnN0cmluZywgdGV4dDogUHJvcFR5cGVzLnN0cmluZ30pXG4gICkuaXNSZXF1aXJlZCxcbiAgdXNJcDogUHJvcFR5cGVzLmJvb2wsXG4gIHNldFNjaG9vbElkOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICBzZXRDb3VudHJ5OiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICBzZXRTY2hvb2xOYW1lOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICBzZXRTY2hvb2xaaXA6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG59O1xuIiwiaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5cbmltcG9ydCBUZXh0RmllbGQgZnJvbSAnQGNkby9hcHBzL2NvbXBvbmVudExpYnJhcnkvdGV4dEZpZWxkL1RleHRGaWVsZCc7XG5pbXBvcnQgaTE4biBmcm9tICdAY2RvL2xvY2FsZSc7XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIFNjaG9vbE5hbWVJbnB1dCh7XG4gIGZpZWxkTmFtZXMsXG4gIHNjaG9vbE5hbWUsXG4gIHNldFNjaG9vbE5hbWUsXG59KSB7XG4gIGNvbnN0IGhhbmRsZVNjaG9vbE5hbWVDaGFuZ2UgPSBuYW1lID0+IHtcbiAgICBzZXRTY2hvb2xOYW1lKG5hbWUpO1xuICB9O1xuXG4gIHJldHVybiAoXG4gICAgPFRleHRGaWVsZFxuICAgICAgbmFtZT17ZmllbGROYW1lcy5zY2hvb2xOYW1lfVxuICAgICAgbGFiZWw9e2kxOG4uc2Nob29sT3JnYW5pemF0aW9uUXVlc3Rpb24oKX1cbiAgICAgIG9uQ2hhbmdlPXtlID0+IGhhbmRsZVNjaG9vbE5hbWVDaGFuZ2UoZS50YXJnZXQudmFsdWUpfVxuICAgICAgdmFsdWU9e3NjaG9vbE5hbWV9XG4gICAgLz5cbiAgKTtcbn1cblxuU2Nob29sTmFtZUlucHV0LnByb3BUeXBlcyA9IHtcbiAgZmllbGROYW1lczogUHJvcFR5cGVzLm9iamVjdCxcbiAgc2Nob29sTmFtZTogUHJvcFR5cGVzLnN0cmluZyxcbiAgc2V0U2Nob29sTmFtZTogUHJvcFR5cGVzLmZ1bmMsXG59O1xuIiwiaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCBSZWFjdCwge3VzZU1lbW99IGZyb20gJ3JlYWN0JztcblxuaW1wb3J0IFRleHRGaWVsZCBmcm9tICdAY2RvL2FwcHMvY29tcG9uZW50TGlicmFyeS90ZXh0RmllbGQvVGV4dEZpZWxkJztcbmltcG9ydCB7Qm9keVRocmVlVGV4dH0gZnJvbSAnQGNkby9hcHBzL2NvbXBvbmVudExpYnJhcnkvdHlwb2dyYXBoeSc7XG5pbXBvcnQge1pJUF9SRUdFWH0gZnJvbSAnQGNkby9hcHBzL3NpZ25VcEZsb3cvc2lnblVwRmxvd0NvbnN0YW50cyc7XG5pbXBvcnQgaTE4biBmcm9tICdAY2RvL2xvY2FsZSc7XG5cbmltcG9ydCBzdHlsZSBmcm9tICcuL3NjaG9vbC1hc3NvY2lhdGlvbi5tb2R1bGUuc2Nzcyc7XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIFNjaG9vbFppcFNlYXJjaCh7ZmllbGROYW1lcywgc2Nob29sWmlwLCBzZXRTY2hvb2xaaXB9KSB7XG4gIGNvbnN0IHNjaG9vbFppcElzVmFsaWQgPSB1c2VNZW1vKFxuICAgICgpID0+IFpJUF9SRUdFWC50ZXN0KHNjaG9vbFppcCksXG4gICAgW3NjaG9vbFppcF1cbiAgKTtcblxuICBjb25zdCBoYW5kbGVaaXBDaGFuZ2UgPSB6aXAgPT4ge1xuICAgIHNldFNjaG9vbFppcCh6aXApO1xuICB9O1xuXG4gIHJldHVybiAoXG4gICAgPGRpdiBjbGFzc05hbWU9e3N0eWxlLmlucHV0Q29udGFpbmVyfT5cbiAgICAgIDxsYWJlbD5cbiAgICAgICAgPFRleHRGaWVsZFxuICAgICAgICAgIGlkPVwidWl0ZXN0LXNjaG9vbC16aXBcIlxuICAgICAgICAgIG5hbWU9e2ZpZWxkTmFtZXMuc2Nob29sWmlwfVxuICAgICAgICAgIGxhYmVsPXtpMThuLmVudGVyWW91clNjaG9vbFppcCgpfVxuICAgICAgICAgIG9uQ2hhbmdlPXtlID0+IGhhbmRsZVppcENoYW5nZShlLnRhcmdldC52YWx1ZSl9XG4gICAgICAgICAgdmFsdWU9e3NjaG9vbFppcH1cbiAgICAgICAgICBwbGFjZWhvbGRlcj1cIjAwMDAwXCJcbiAgICAgICAgLz5cbiAgICAgICAge3NjaG9vbFppcCAmJiAhc2Nob29sWmlwSXNWYWxpZCAmJiAoXG4gICAgICAgICAgPEJvZHlUaHJlZVRleHQgY2xhc3NOYW1lPXtzdHlsZS5lcnJvck1lc3NhZ2V9PlxuICAgICAgICAgICAge2kxOG4uemlwSW52YWxpZE1lc3NhZ2UoKX1cbiAgICAgICAgICA8L0JvZHlUaHJlZVRleHQ+XG4gICAgICAgICl9XG4gICAgICA8L2xhYmVsPlxuICAgIDwvZGl2PlxuICApO1xufVxuXG5TY2hvb2xaaXBTZWFyY2gucHJvcFR5cGVzID0ge1xuICBmaWVsZE5hbWVzOiBQcm9wVHlwZXMub2JqZWN0LFxuICBzY2hvb2xaaXA6IFByb3BUeXBlcy5zdHJpbmcsXG4gIHNldFNjaG9vbFppcDogUHJvcFR5cGVzLmZ1bmMsXG59O1xuIiwiLy8gSW1wb3J0c1xuaW1wb3J0IF9fX0NTU19MT0FERVJfQVBJX1NPVVJDRU1BUF9JTVBPUlRfX18gZnJvbSBcIi4uLy4uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvcnVudGltZS9zb3VyY2VNYXBzLmpzXCI7XG5pbXBvcnQgX19fQ1NTX0xPQURFUl9BUElfSU1QT1JUX19fIGZyb20gXCIuLi8uLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L3J1bnRpbWUvYXBpLmpzXCI7XG52YXIgX19fQ1NTX0xPQURFUl9FWFBPUlRfX18gPSBfX19DU1NfTE9BREVSX0FQSV9JTVBPUlRfX18oX19fQ1NTX0xPQURFUl9BUElfU09VUkNFTUFQX0lNUE9SVF9fXyk7XG4vLyBNb2R1bGVcbl9fX0NTU19MT0FERVJfRVhQT1JUX19fLnB1c2goW21vZHVsZS5pZCwgXCIuVXBmYnVxemNBaEt6TEtkWWVDU097dGV4dC1hbGlnbjpjZW50ZXI7ZGlzcGxheTpncmlkfS5VcGZidXF6Y0FoS3pMS2RZZUNTTyBoMnttYXJnaW4tYm90dG9tOi4yNXJlbX0uVXBmYnVxemNBaEt6TEtkWWVDU08gcHttYXJnaW4tYm90dG9tOi4zNzVyZW19LlVwZmJ1cXpjQWhLekxLZFllQ1NPIGxhYmVse3dpZHRoOjEwMCU7bWFyZ2luLWJvdHRvbTowfS5VcGZidXF6Y0FoS3pMS2RZZUNTTyBpbnB1dCwuVXBmYnVxemNBaEt6TEtkWWVDU08gLm82ckNJV0VsdlFDcEdjYmhCM185PmRpdnt3aWR0aDoxMDAlfS5VcGZidXF6Y0FoS3pMS2RZZUNTTyBidXR0b257Ym9yZGVyOjA7cGFkZGluZy1pbmxpbmU6MH0uVXBmYnVxemNBaEt6TEtkWWVDU08gYnV0dG9uOmhvdmVye2JhY2tncm91bmQ6bm9uZSAhaW1wb3J0YW50O3RleHQtZGVjb3JhdGlvbjp1bmRlcmxpbmUgIWltcG9ydGFudH0uVXBmYnVxemNBaEt6TEtkWWVDU08gLmMyMkJyd2trQ2JGZENveEFwMDJOe21hcmdpbi1ibG9jazouNDM3NXJlbSAwO2NvbG9yOiNlNTMxMWF9LlJjWmZoYU82clRBX09iYksyaTlWe21hcmdpbi1ib3R0b206MS43NXJlbX0uZE9sV2xVbnFpbkFkU0FYOVdrX1Z7anVzdGlmeS1zZWxmOmNlbnRlcjt0ZXh0LWFsaWduOnN0YXJ0O3dpZHRoOjQwMHB4O2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47Z2FwOjEuMTI1cmVtfS5ZYlN5VVp3U09zSjh6Q2pJYUljNiBzcGFue2NvbG9yOiNiZWMyYzcgIWltcG9ydGFudH1cIiwgXCJcIix7XCJ2ZXJzaW9uXCI6MyxcInNvdXJjZXNcIjpbXCJ3ZWJwYWNrOi8vLi9zcmMvdGVtcGxhdGVzL3NjaG9vbC1hc3NvY2lhdGlvbi5tb2R1bGUuc2Nzc1wiLFwid2VicGFjazovLy4vLi4vc2hhcmVkL2Nzcy9jb2xvci5zY3NzXCJdLFwibmFtZXNcIjpbXSxcIm1hcHBpbmdzXCI6XCJBQUdBLHNCQUNFLGlCQUFBLENBQ0EsWUFBQSxDQUVBLHlCQUNFLG9CQUFBLENBR0Ysd0JBQ0UscUJBQUEsQ0FHRiw0QkFDRSxVQUFBLENBQ0EsZUFBQSxDQUdGLDRFQUVFLFVBQUEsQ0FHRiw2QkFDRSxRQUFBLENBQ0EsZ0JBQUEsQ0FFQSxtQ0FDRSwwQkFBQSxDQUNBLG9DQUFBLENBSUosNENBQ0UsdUJBQUEsQ0FDQSxhQ21MaUIsQ0QvS3JCLHNCQUNFLHFCQUFBLENBR0Ysc0JBQ0UsbUJBQUEsQ0FDQSxnQkFBQSxDQUNBLFdBQUEsQ0FDQSxZQUFBLENBQ0EscUJBQUEsQ0FDQSxZQUFBLENBSUEsMkJBQ0Usd0JBQUFcIixcInNvdXJjZXNDb250ZW50XCI6W1wiQGltcG9ydCAnY29sb3Iuc2Nzcyc7XFxuQGltcG9ydCAnZm9udC5zY3NzJztcXG5cXG4uc2Nob29sQXNzb2NpYXRpb25XcmFwcGVyIHtcXG4gIHRleHQtYWxpZ246IGNlbnRlcjtcXG4gIGRpc3BsYXk6IGdyaWQ7XFxuXFxuICBoMiB7XFxuICAgIG1hcmdpbi1ib3R0b206IDAuMjVyZW07XFxuICB9XFxuXFxuICBwIHtcXG4gICAgbWFyZ2luLWJvdHRvbTogMC4zNzVyZW07XFxuICB9XFxuXFxuICBsYWJlbCB7XFxuICAgIHdpZHRoOiAxMDAlO1xcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xcbiAgfVxcblxcbiAgaW5wdXQsXFxuICAuZHJvcGRvd24gPiBkaXYge1xcbiAgICB3aWR0aDogMTAwJTtcXG4gIH1cXG5cXG4gIGJ1dHRvbiB7XFxuICAgIGJvcmRlcjogMDtcXG4gICAgcGFkZGluZy1pbmxpbmU6IDA7XFxuXFxuICAgICY6aG92ZXIge1xcbiAgICAgIGJhY2tncm91bmQ6IG5vbmUgIWltcG9ydGFudDtcXG4gICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZSAhaW1wb3J0YW50O1xcbiAgICB9XFxuICB9XFxuXFxuICAuZXJyb3JNZXNzYWdlIHtcXG4gICAgbWFyZ2luLWJsb2NrOiAwLjQzNzVyZW0gMDtcXG4gICAgY29sb3I6ICRsaWdodF9uZWdhdGl2ZV81MDA7XFxuICB9XFxufVxcblxcbi5oZWFkZXJDb250YWluZXIge1xcbiAgbWFyZ2luLWJvdHRvbTogMS43NXJlbTtcXG59XFxuXFxuLmlucHV0Q29udGFpbmVyIHtcXG4gIGp1c3RpZnktc2VsZjogY2VudGVyO1xcbiAgdGV4dC1hbGlnbjogc3RhcnQ7XFxuICB3aWR0aDogNDAwcHg7XFxuICBkaXNwbGF5OiBmbGV4O1xcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcXG4gIGdhcDogMS4xMjVyZW07XFxufVxcblxcbi5kaXNhYmxlZExhYmVsIHtcXG4gIHNwYW4ge1xcbiAgICBjb2xvcjogJGxpZ2h0X2dyYXlfMzAwICFpbXBvcnRhbnQ7XFxuICB9XFxufVxcblwiLFwiLy8gY29sb3JzIGZyb20gaHR0cHM6Ly93d3cuZHJvcGJveC5jb20vcy95Y2ppd3Q4dnhsbXYyaWgvQ29kZS5vcmdfc3R5bGVzaGVldF92Ml8wOS4wNS4xMy5wZGZcXG5cXG4vLyBQbGVhc2Uga2VlcCB0aGlzIGZpbGUgc2ltcGxlOyBpdCBzaG91bGQgb25seSBjb250YWluIGNvbG9yIGRlZmluaXRpb25zXFxuLy8gICBhbmQgYWxpYXNlcy4gIFZhcmlhYmxlcyBkZWZpbmVkIGluIHRoaXMgZmlsZSBhcmUgZXhwb3J0ZWQgdG9cXG4vLyAgIGFwcHMvc3JjL3V0aWwvY29sb3IuanMgZHVyaW5nIHRoZSBhcHBzIGJ1aWxkIHByb2Nlc3MuXFxuXFxuJGJsYWNrOiAjMDAwO1xcbiRiYWNrZ3JvdW5kX2JsYWNrOiAjMTIxNDE2O1xcbiRkYXJrX2dyYXk6ICMyRDMxMzk7XFxuJGRhcmtlc3RfZ3JheTogIzI5MkYzNjtcXG4kZGFya19zbGF0ZV9ncmF5OiAjMjgyYzM0O1xcbiRkYXJrZXN0X3NsYXRlX2dyYXk6ICMyNTI5MmQ7XFxuJGRhcmtfY2hhcmNvYWw6ICM0ZDU3NWY7XFxuJGNoYXJjb2FsOiAjNWI2NzcwO1xcbiRsaWdodF9ncmF5OiAjOTQ5Y2EyO1xcbiRsaWdodGVyX2dyYXk6ICNjNmNhY2Q7XFxuJGxpZ2h0ZXN0X2dyYXk6ICNlN2U4ZWE7XFxuJGJhY2tncm91bmRfZ3JheTogI2YyZjJmMjtcXG4kZGltZ3JheTogIzY5Njk2OTtcXG4kd2hpdGU6ICNmZmY7XFxuJGRlZmF1bHRfYmx1ZTogIzM2NzBiMztcXG5cXG4kZGFya190ZWFsOiAjMDA5NGEzO1xcbiR0ZWFsOiAjMDA5M2E0O1xcbiRhcHBsYWJfYnV0dG9uX3RlYWw6ICMxYWJjOWM7XFxuJGxpZ2h0X3RlYWw6ICM1OWNhZDM7XFxuJGxpZ2h0aXNoX3RlYWw6ICM4MGQ2ZGU7XFxuJGxpZ2h0ZXJfdGVhbDogI2E2ZTNlODtcXG4kbGlnaHRlc3RfdGVhbDogI2Q5ZjNmNTtcXG4kYWlfcnVicmljX2N5YW46ICMzY2ZmZjg7XFxuXFxuJHB1cnBsZTogIzhjNTJiYTtcXG4kbGlnaHRfcHVycGxlOiAjYTY5YmMxO1xcbiRsaWdodGVyX3B1cnBsZTogI2NmYzlkZTtcXG4kbGlnaHRlc3RfcHVycGxlOiAjZWJlOGYxO1xcblxcbiRjeWFuOiAjMDA5NGNhO1xcbiRsaWdodF9jeWFuOiAjNTliOWRjO1xcbiRsaWdodGVyX2N5YW46ICNhNmRhZWQ7XFxuJGxpZ2h0ZXN0X2N5YW46ICNkOWVmZjc7XFxuJGFsbW9zdF93aGl0ZV9jeWFuOiAjZjVmY2ZmO1xcblxcbiRvcmFuZ2U6ICNmZmE0MDA7XFxuJGxpZ2h0X29yYW5nZTogI2ZmYzQ1OTtcXG4kbGlnaHRlcl9vcmFuZ2U6ICNmZmUwYTY7XFxuJGxpZ2h0ZXN0X29yYW5nZTogI2ZmZjJkOTtcXG4kZGFya19vcmFuZ2U6ICNmZjg2MDA7XFxuXFxuJGdyZWVuOiAjYjliZjE1O1xcbiRsaWdodF9ncmVlbjogI2QxZDU2NztcXG4kbGlnaHRlcl9ncmVlbjogI2U3ZTlhZDtcXG4kbGlnaHRlc3RfZ3JlZW46ICNmNWY1ZGM7XFxuJGhpZ2hsaWdodF9ncmVlbjogIzhhZmM5YjtcXG5cXG4keWVsbG93OiAjZmZiODFkO1xcbiRsaWdodF95ZWxsb3c6ICNmZmRiNzQ7XFxuJGxpZ2h0ZXJfeWVsbG93OiAjZmZlYmI1O1xcbiRsaWdodGVzdF95ZWxsb3c6ICNmZmY3ZGY7XFxuXFxuJGdvbGRlbnJvZDogI2RhYTUyMDtcXG5cXG4kaGVhZGVyX3RleHQ6ICR3aGl0ZTtcXG4kYmtnbmRfY29sb3I6ICR0ZWFsO1xcbiRpbnNldF9jb2xvcjogJGxpZ2h0ZXJfZ3JheTtcXG4kZGFya19jb2xvcjogJHB1cnBsZTtcXG4kaGRyX2NvbG9yOiAkcHVycGxlO1xcblxcbi8vIFNvbWUgZXh0cmEgY29sb3JzLlxcbiRyZWQ6ICNjMDA7XFxuJGxpZ2h0ZXN0X3JlZDogI2ZjYztcXG4kZGFya19yZWQ6ICNkNjI5MTE7XFxuJHJlYWxncmVlbjogIzAwODAwMDtcXG4kcmVhbHllbGxvdzogI2ZmMDtcXG4kbXVzdGFyZHllbGxvdzogI2VmY2QxYztcXG4kdHdpdHRlcl9ibHVlOiAjMDBhY2VkO1xcbiRmYWNlYm9va19ibHVlOiAjM2I1OTk4O1xcbiRsaW5rZWRpbl9ibHVlOiAjMDA3N0I1O1xcbiRkYXJrX2JsdWU6ICMwMDY0N2Y7XFxuJGJsb2NrbHlfZmx5b3V0X2dyYXk6ICNkZGQ7XFxuJGRlZmF1bHRfdGV4dDogIzMzMztcXG4kYm9yZGVyX2dyYXk6ICNiYmI7XFxuJGJvcmRlcl9saWdodF9ncmF5OiAjZDhkOGQ4O1xcbiR0YWJsZV9oZWFkZXI6ICNlY2VjZWM7XFxuJHRhYmxlX2xpZ2h0X3JvdzogI2ZjZmNmYztcXG4kdGFibGVfZGFya19yb3c6ICNmNGY0ZjQ7XFxuXFxuLy8gUHJvZ3Jlc3MgY29sb3JzLlxcbiRsZXZlbF9zdWJtaXR0ZWQ6ICRwdXJwbGU7XFxuJGxldmVsX3BlcmZlY3Q6IHJnYigxNCwgMTkwLCAxNCk7XFxuJGxldmVsX3Bhc3NlZDogcmdiKDE1OSwgMjEyLCAxNTkpO1xcbiRsZXZlbF9hdHRlbXB0ZWQ6ICRyZWFseWVsbG93O1xcbiRsZXZlbF9ub3RfdHJpZWQ6ICNmZWZlZmU7XFxuJGxldmVsX2N1cnJlbnQ6ICRvcmFuZ2U7XFxuJGxldmVsX3Jldmlld19yZWplY3RlZDogJHJlZDtcXG4kbGV2ZWxfcmV2aWV3X2FjY2VwdGVkOiByZ2IoMTEsIDE0MiwgMTEpOyAvLyBUT0RPOiAkbGV2ZWxfcGFzc2VkO1xcbiRhc3Nlc3NtZW50OiAkY3lhbjtcXG4kd29ya3NwYWNlX3J1bm5pbmdfYmFja2dyb3VuZDogI2U1ZTVlNTtcXG5cXG4vLyBFeHBlcmltZW50YWwgU3ByaXRlIExhYiB2YWxpZGF0aW9uIGNvbG9ycy5cXG4kZGFya19wdXJwbGU6ICM2ODJBNzc7XFxuJGJyaWdodF9ncmVlbjogIzBlYmUwZTtcXG4kbmVvbl9waW5rOiAjZTkxMThmO1xcblxcbi8vIExpbmtzICh1c2VkIGluIGFwcHMpLlxcbiRsaW5rX2NvbG9yOiAjMDU5NmNlO1xcblxcbi8vIFNoYWRvdy5cXG4kc2hhZG93OiByZ2JhKDAsIDAsIDAsIDAuMyk7XFxuXFxuLy8gQ29sb3JzIHRoYXQgYXJlIHRha2VuIGZyb20gYm9vdHN0cmFwLCBhbmQgbm90IG5lY2Vzc2FyaWx5IHBhcnQgb2Ygb3VyIGNvcmUgdGhlbWUuXFxuJGJvb3RzdHJhcF9idXR0b25fYmx1ZTogIzMzN2FiNztcXG4kYm9vdHN0cmFwX2J1dHRvbl9yZWQ6ICNkOTUzNGY7XFxuJGJvb3RzdHJhcF9lcnJvcl9iYWNrZ3JvdW5kOiAjZjJkZWRlO1xcbiRib290c3RyYXBfZXJyb3JfdGV4dDogI2I5NGE0ODtcXG4kYm9vdHN0cmFwX3YzX2Vycm9yX3RleHQ6ICNhOTQ0NDI7XFxuJGJvb3RzdHJhcF9lcnJvcl9ib3JkZXI6ICNlYmNjZDE7XFxuJGJvb3RzdHJhcF93YXJuaW5nX2JhY2tncm91bmQ6ICNmY2Y4ZTM7XFxuJGJvb3RzdHJhcF93YXJuaW5nX3RleHQ6ICNjMDk4NTM7XFxuJGJvb3RzdHJhcF93YXJuaW5nX2JvcmRlcjogI2ZhZWJjYztcXG4kYm9vdHN0cmFwX2JvcmRlcl9jb2xvcjogI2NjY2NjYztcXG4kYm9vdHN0cmFwX3N1Y2Nlc3NfYmFja2dyb3VuZDogI2RmZjBkODtcXG4kYm9vdHN0cmFwX3N1Y2Nlc3NfdGV4dDogIzQ2ODg0NztcXG4kYm9vdHN0cmFwX3N1Y2Nlc3NfYm9yZGVyOiAjZDZlOWM2O1xcblxcbi8vIENvbG9ycyB0YWtlbiBmcm9tIGRyb3BsZXQsIG5vdCBwYXJ0IG9mIG91ciBjb3JlIHRoZW1lLlxcbiRkcm9wbGV0X2xpZ2h0X2dyZWVuOiAjZDNlOTY1O1xcbiRkcm9wbGV0X2JsdWU6ICM2NGI1ZjY7XFxuJGRyb3BsZXRfYnJpZ2h0X2JsdWU6ICMxOWMzZTE7XFxuJGRyb3BsZXRfeWVsbG93OiAjZmZmMTc2O1xcbiRkcm9wbGV0X29yYW5nZTogI2ZmYjc0ZDtcXG4kZHJvcGxldF9yZWQ6ICNmNzgxODM7XFxuJGRyb3BsZXRfY3lhbjogIzRkZDBlMTtcXG4kZHJvcGxldF9waW5rOiAjZjU3YWM2O1xcbiRkcm9wbGV0X3B1cnBsZTogI2JiNzdjNztcXG4kZHJvcGxldF9ncmVlbjogIzY4ZDk5NTtcXG4kZHJvcGxldF93aGl0ZTogJHdoaXRlO1xcblxcbi8vIE9jZWFuczogZGVlcCBibHVlIGJhY2tncm91bmQuXFxuJG9jZWFuc19kZWVwX2JsdWU6IHJnYigyLCAwLCAyOCk7XFxuXFxuLy8gRGFyayB0aGVtZSBiYWNrZ3JvdW5kICh1c2VkIGJ5IGRlZmF1bHQgaW4gTXVzaWMgTGFiKVxcbiRkYXJrX2JsYWNrOiAjMTIxMjEyO1xcblxcbi8vID09PS0tLS09PT0tLS0tPT09LS0tLSBQaGFzZSAxIENvbG9yczogLS0tLT09PS0tLS09PT0tLS0tPT09XFxuLy8gQnJhbmRcXG4kYnJhbmRfcHJpbWFyeV9saWdodDogI0UwRjhGOTtcXG4kYnJhbmRfcHJpbWFyeV9kZWZhdWx0OiAjMDA5RUIwO1xcbiRicmFuZF9wcmltYXJ5X2Rhcms6ICMwMDc3ODU7XFxuXFxuJGJyYW5kX3NlY29uZGFyeV9saWdodDogI0UwRDFFQztcXG4kYnJhbmRfc2Vjb25kYXJ5X2RlZmF1bHQ6ICM4QzUyQkE7XFxuJGJyYW5kX3NlY29uZGFyeV9kYXJrOiAjNkM0NjhBO1xcblxcbiRicmFuZF9hY2NlbnRfZGVmYXVsdDogI0VENjA2MDtcXG5cXG4kYnJhbmRfdGVhbF81OiAjREZGMkY0O1xcblxcbi8vUHJvZHVjdFxcbiRwcm9kdWN0X2FmZmlybWF0aXZlX2RlZmF1bHQ6ICMzRUEzM0U7XFxuXFxuJHByb2R1Y3RfbmVnYXRpdmVfbGlnaHQ6ICNGREVCRTk7XFxuJHByb2R1Y3RfbmVnYXRpdmVfZGVmYXVsdDogI0U1MzExQTtcXG4kcHJvZHVjdF9uZWdhdGl2ZV9kYXJrOiAjQUEyNTEzO1xcblxcbiRwcm9kdWN0X2NhdXRpb25fZGVmYXVsdDogI0Y5Q0IyODtcXG5cXG4kcHJvZHVjdF9pbmZvcm1hdGlvbl9kZWZhdWx0OiAjMDA3QUNDO1xcblxcbi8vIE5ldXRyYWxcXG4kbmV1dHJhbF93aGl0ZTogI0ZGRkZGRjtcXG4kbmV1dHJhbF9saWdodDogI0Y3RjhGQTtcXG4kbmV1dHJhbF9ncmF5MTA6ICNFQUVCRUI7XFxuJG5ldXRyYWxfZGFyazEwOiAjRUFFQ0VGO1xcbiRuZXV0cmFsX2RhcmsyMDogI0QxRDREODtcXG4kbmV1dHJhbF9kYXJrMzA6ICNCRUMyQzc7XFxuJG5ldXRyYWxfZGFyazQwOiAjQUJCMEI2O1xcbiRuZXV0cmFsX2Rhcms1MDogIzk4OUVBNTtcXG4kbmV1dHJhbF9kYXJrNjA6ICM4NThDOTQ7XFxuJG5ldXRyYWxfZGFyazcwOiAjNzI3QTgzO1xcbiRuZXV0cmFsX2Rhcms4MDogIzVGNjg3MjtcXG4kbmV1dHJhbF9kYXJrOTA6ICM0QzU2NjE7XFxuJG5ldXRyYWxfZGFyazogIzI5MkYzNjtcXG5cXG4vL0JyYW5kc1xcbiRnb29nbGVfYnJhbmRfY29sb3I6ICMwRjlENTg7XFxuJG1pY3Jvc29mdF9icmFuZF9jb2xvcjogI0ZGQjkwMDtcXG4kZmFjZWJvb2tfYnJhbmRfY29sb3I6ICMzQjU5OTg7XFxuJGNsZXZlcl9icmFuZF9jb2xvcjogIzE0NjRGRjtcXG5cXG4vLyA9PT0tLS0tPT09LS0tLT09PS0tLS0gRGVzaWduIHN5c3RlbSBjb2xvcnM6IC0tLS09PT0tLS0tPT09LS0tLT09PVxcblxcbiRsaWdodF9wcmltYXJ5XzEwMDogI0JGRTRFODtcXG4kbGlnaHRfcHJpbWFyeV81MDA6ICMwMDkzQTQ7XFxuJGxpZ2h0X3ByaW1hcnlfNzAwOiAjMDA3Nzg1O1xcblxcbiRsaWdodF9zZWNvbmRhcnlfMTAwOiAjRTJENEVFO1xcbiRsaWdodF9zZWNvbmRhcnlfNTAwOiAjOEM1MkJBO1xcbiRsaWdodF9zZWNvbmRhcnlfNzAwOiAjNkM0NjhBO1xcblxcbiRsaWdodF9ncmF5XzUwOiAjRjdGOEZBO1xcbiRsaWdodF9ncmF5XzEwMDogI0VBRUNFRjtcXG4kbGlnaHRfZ3JheV8yMDA6ICNEMUQ0RDg7XFxuJGxpZ2h0X2dyYXlfMzAwOiAjQkVDMkM3O1xcbiRsaWdodF9ncmF5XzQwMDogI0FCQjBCNjtcXG4kbGlnaHRfZ3JheV81MDA6ICM5ODlFQTU7XFxuJGxpZ2h0X2dyYXlfNjAwOiAjODU4Qzk0O1xcbiRsaWdodF9ncmF5XzcwMDogIzcyN0E4MztcXG4kbGlnaHRfZ3JheV84MDA6ICM1RjY4NzI7XFxuJGxpZ2h0X2dyYXlfOTAwOiAjNEM1NjYxO1xcbiRsaWdodF9ncmF5Xzk1MDogIzM5NDQ1MDtcXG5cXG4kbGlnaHRfYWZmaXJtYXRpdmVfMTAwOiAjRTJGMUUyO1xcbiRsaWdodF9hZmZpcm1hdGl2ZV81MDA6ICMzRUEzM0U7XFxuJGxpZ2h0X2FmZmlybWF0aXZlXzcwMDogIzJENzQyRDtcXG5cXG4kbGlnaHRfbmVnYXRpdmVfMTAwOiAjRkJFMEREO1xcbiRsaWdodF9uZWdhdGl2ZV81MDA6ICNFNTMxMUE7XFxuJGxpZ2h0X25lZ2F0aXZlXzcwMDogI0IyNDk0OTtcXG5cXG4kbGlnaHRfY2F1dGlvbl8xMDA6ICNGRUY3REY7XFxuJGxpZ2h0X2NhdXRpb25fNTAwOiAjRjlDQjI4O1xcbiRsaWdodF9jYXV0aW9uXzcwMDogI0M3QTIyMDtcXG5cXG4kbGlnaHRfYWNjZW50XzEwMDogI0ZBRDdENztcXG4kbGlnaHRfYWNjZW50XzUwMDogI0VENjA2MDtcXG4kbGlnaHRfYWNjZW50XzcwMDogI0Q4NEM0QztcXG5cXG4kbGlnaHRfYXF1YV8xMDA6ICNDRUZGRkQ7XFxuJGxpZ2h0X2FxdWFfNTAwOiAjM0NGRkY4O1xcbiRsaWdodF9hcXVhXzcwMDogIzMwQ0NDNjtcXG5cXG4kbGlnaHRfb3JhbmdlXzEwMDogI0ZGRURDQztcXG4kbGlnaHRfb3JhbmdlXzUwMDogI0ZGQTQwMDtcXG4kbGlnaHRfb3JhbmdlXzcwMDogI0NDODMwMDtcXG5cXG4kbGlnaHRfaW5mb18xMDA6ICNEQ0VGRkI7XFxuJGxpZ2h0X2luZm9fNTAwOiAjMTg5MkUzO1xcbiRsaWdodF9pbmZvXzcwMDogIzEzNzVCNjtcXG5cXG4kbGlnaHRfd2hpdGU6ICNGRkZGRkY7XFxuXFxuJGxpZ2h0X2JsYWNrOiAjMjkyRjM2O1xcblxcbiRsaWdodF9ibGFja19vcGFjaXR5XzkwOiByZ2JhKDQxLCA0NywgNTQsIDAuOTApO1xcbiRsaWdodF9ibGFja19vcGFjaXR5LTgwOiByZ2JhKDQxLCA0NywgNTQsIDAuODApO1xcbiRsaWdodF9ibGFja19vcGFjaXR5LTcwOiByZ2JhKDQxLCA0NywgNTQsIDAuNzApO1xcbiRsaWdodF9ibGFja19vcGFjaXR5LTYwOiByZ2JhKDQxLCA0NywgNTQsIDAuNjApO1xcbiRsaWdodF9ibGFja19vcGFjaXR5LTUwOiByZ2JhKDQxLCA0NywgNTQsIDAuNTApO1xcbiRsaWdodF9ibGFja19vcGFjaXR5LTQwOiByZ2JhKDQxLCA0NywgNTQsIDAuNDApO1xcbiRsaWdodF9ibGFja19vcGFjaXR5LTMwOiByZ2JhKDQxLCA0NywgNTQsIDAuMzApO1xcbiRsaWdodF9ibGFja19vcGFjaXR5LTIwOiByZ2JhKDQxLCA0NywgNTQsIDAuMjApO1xcbiRsaWdodF9ibGFja19vcGFjaXR5LTEwOiByZ2JhKDQxLCA0NywgNTQsIDAuMTApO1xcblwiXSxcInNvdXJjZVJvb3RcIjpcIlwifV0pO1xuLy8gRXhwb3J0c1xuX19fQ1NTX0xPQURFUl9FWFBPUlRfX18ubG9jYWxzID0ge1xuXHRcInNjaG9vbEFzc29jaWF0aW9uV3JhcHBlclwiOiBcIlVwZmJ1cXpjQWhLekxLZFllQ1NPXCIsXG5cdFwiZHJvcGRvd25cIjogXCJvNnJDSVdFbHZRQ3BHY2JoQjNfOVwiLFxuXHRcImVycm9yTWVzc2FnZVwiOiBcImMyMkJyd2trQ2JGZENveEFwMDJOXCIsXG5cdFwiaGVhZGVyQ29udGFpbmVyXCI6IFwiUmNaZmhhTzZyVEFfT2JiSzJpOVZcIixcblx0XCJpbnB1dENvbnRhaW5lclwiOiBcImRPbFdsVW5xaW5BZFNBWDlXa19WXCIsXG5cdFwiZGlzYWJsZWRMYWJlbFwiOiBcIlliU3lVWndTT3NKOHpDaklhSWM2XCJcbn07XG5leHBvcnQgZGVmYXVsdCBfX19DU1NfTE9BREVSX0VYUE9SVF9fXztcbiIsIlxuICAgICAgaW1wb3J0IEFQSSBmcm9tIFwiIS4uLy4uL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvZGlzdC9ydW50aW1lL2luamVjdFN0eWxlc0ludG9TdHlsZVRhZy5qc1wiO1xuICAgICAgaW1wb3J0IGRvbUFQSSBmcm9tIFwiIS4uLy4uL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvZGlzdC9ydW50aW1lL3N0eWxlRG9tQVBJLmpzXCI7XG4gICAgICBpbXBvcnQgaW5zZXJ0Rm4gZnJvbSBcIiEuLi8uLi9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2Rpc3QvcnVudGltZS9pbnNlcnRCeVNlbGVjdG9yLmpzXCI7XG4gICAgICBpbXBvcnQgc2V0QXR0cmlidXRlcyBmcm9tIFwiIS4uLy4uL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvZGlzdC9ydW50aW1lL3NldEF0dHJpYnV0ZXNXaXRob3V0QXR0cmlidXRlcy5qc1wiO1xuICAgICAgaW1wb3J0IGluc2VydFN0eWxlRWxlbWVudCBmcm9tIFwiIS4uLy4uL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvZGlzdC9ydW50aW1lL2luc2VydFN0eWxlRWxlbWVudC5qc1wiO1xuICAgICAgaW1wb3J0IHN0eWxlVGFnVHJhbnNmb3JtRm4gZnJvbSBcIiEuLi8uLi9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2Rpc3QvcnVudGltZS9zdHlsZVRhZ1RyYW5zZm9ybS5qc1wiO1xuICAgICAgaW1wb3J0IGNvbnRlbnQsICogYXMgbmFtZWRFeHBvcnQgZnJvbSBcIiEhLi4vLi4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9janMuanM/P3J1bGVTZXRbMV0ucnVsZXNbNF0udXNlWzFdIS4uLy4uL25vZGVfbW9kdWxlcy9zYXNzLWxvYWRlci9kaXN0L2Nqcy5qcz8/cnVsZVNldFsxXS5ydWxlc1s0XS51c2VbMl0hLi9zY2hvb2wtYXNzb2NpYXRpb24ubW9kdWxlLnNjc3NcIjtcbiAgICAgIFxuICAgICAgXG5cbnZhciBvcHRpb25zID0ge307XG5cbm9wdGlvbnMuc3R5bGVUYWdUcmFuc2Zvcm0gPSBzdHlsZVRhZ1RyYW5zZm9ybUZuO1xub3B0aW9ucy5zZXRBdHRyaWJ1dGVzID0gc2V0QXR0cmlidXRlcztcblxuICAgICAgb3B0aW9ucy5pbnNlcnQgPSBpbnNlcnRGbi5iaW5kKG51bGwsIFwiaGVhZFwiKTtcbiAgICBcbm9wdGlvbnMuZG9tQVBJID0gZG9tQVBJO1xub3B0aW9ucy5pbnNlcnRTdHlsZUVsZW1lbnQgPSBpbnNlcnRTdHlsZUVsZW1lbnQ7XG5cbnZhciB1cGRhdGUgPSBBUEkoY29udGVudCwgb3B0aW9ucyk7XG5cblxuXG5leHBvcnQgKiBmcm9tIFwiISEuLi8uLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L2Nqcy5qcz8/cnVsZVNldFsxXS5ydWxlc1s0XS51c2VbMV0hLi4vLi4vbm9kZV9tb2R1bGVzL3Nhc3MtbG9hZGVyL2Rpc3QvY2pzLmpzPz9ydWxlU2V0WzFdLnJ1bGVzWzRdLnVzZVsyXSEuL3NjaG9vbC1hc3NvY2lhdGlvbi5tb2R1bGUuc2Nzc1wiO1xuICAgICAgIGV4cG9ydCBkZWZhdWx0IGNvbnRlbnQgJiYgY29udGVudC5sb2NhbHMgPyBjb250ZW50LmxvY2FscyA6IHVuZGVmaW5lZDtcbiIsImltcG9ydCB7dXNlQ2FsbGJhY2ssIHVzZUVmZmVjdCwgdXNlTWVtbywgdXNlUmVmLCB1c2VTdGF0ZX0gZnJvbSAncmVhY3QnO1xuXG5pbXBvcnQge0VWRU5UUywgUExBVEZPUk1TfSBmcm9tICdAY2RvL2FwcHMvbWV0cmljcy9BbmFseXRpY3NDb25zdGFudHMnO1xuaW1wb3J0IGFuYWx5dGljc1JlcG9ydGVyIGZyb20gJ0BjZG8vYXBwcy9tZXRyaWNzL0FuYWx5dGljc1JlcG9ydGVyJztcbmltcG9ydCB7XG4gIFNDSE9PTF9DT1VOVFJZX1NFU1NJT05fS0VZLFxuICBTQ0hPT0xfSURfU0VTU0lPTl9LRVksXG4gIFNDSE9PTF9OQU1FX1NFU1NJT05fS0VZLFxuICBTQ0hPT0xfWklQX1NFU1NJT05fS0VZLFxuICBTRUxFQ1RfQ09VTlRSWSxcbiAgVVNfQ09VTlRSWV9DT0RFLFxuICBaSVBfUkVHRVgsXG59IGZyb20gJ0BjZG8vYXBwcy9zaWduVXBGbG93L3NpZ25VcEZsb3dDb25zdGFudHMnO1xuaW1wb3J0IHtOb25TY2hvb2xPcHRpb25zfSBmcm9tICdAY2RvL2dlbmVyYXRlZC1zY3JpcHRzL3NoYXJlZENvbnN0YW50cyc7XG5cbmltcG9ydCB7U2Nob29sRHJvcGRvd25PcHRpb24sIFNjaG9vbEluZm9Jbml0aWFsU3RhdGV9IGZyb20gJy4uL3R5cGVzJztcbmltcG9ydCB7Y29uc3RydWN0U2Nob29sT3B0aW9ufSBmcm9tICcuLi91dGlscy9jb25zdHJ1Y3RTY2hvb2xPcHRpb24nO1xuaW1wb3J0IHtmZXRjaFNjaG9vbHMgYXMgZmV0Y2hTY2hvb2xzQVBJfSBmcm9tICcuLi91dGlscy9mZXRjaFNjaG9vbHMnO1xuXG5leHBvcnQgZnVuY3Rpb24gdXNlU2Nob29sSW5mbyhpbml0aWFsU3RhdGU6IFNjaG9vbEluZm9Jbml0aWFsU3RhdGUpIHtcbiAgY29uc3QgbW91bnRlZCA9IHVzZVJlZihmYWxzZSk7XG5cbiAgLy8gTWVtb2l6ZWQgaW5pdGlhbCB2YWx1ZXNcbiAgY29uc3QgZGV0ZWN0ZWRDb3VudHJ5ID0gdXNlTWVtbyhcbiAgICAoKSA9PlxuICAgICAgaW5pdGlhbFN0YXRlLmNvdW50cnkgfHxcbiAgICAgIHNlc3Npb25TdG9yYWdlLmdldEl0ZW0oU0NIT09MX0NPVU5UUllfU0VTU0lPTl9LRVkpIHx8XG4gICAgICAoaW5pdGlhbFN0YXRlLnVzSXAgPyBVU19DT1VOVFJZX0NPREUgOiBTRUxFQ1RfQ09VTlRSWSksXG4gICAgW2luaXRpYWxTdGF0ZS5jb3VudHJ5LCBpbml0aWFsU3RhdGUudXNJcF1cbiAgKTtcblxuICBjb25zdCBkZXRlY3RlZFNjaG9vbElkID0gdXNlTWVtbygoKSA9PiB7XG4gICAgaWYgKGluaXRpYWxTdGF0ZS5zY2hvb2xUeXBlID09PSBOb25TY2hvb2xPcHRpb25zLk5PX1NDSE9PTF9TRVRUSU5HKSB7XG4gICAgICByZXR1cm4gTm9uU2Nob29sT3B0aW9ucy5OT19TQ0hPT0xfU0VUVElORztcbiAgICB9XG4gICAgaWYgKFxuICAgICAgIWluaXRpYWxTdGF0ZS5zY2hvb2xJZCAmJlxuICAgICAgaW5pdGlhbFN0YXRlLnNjaG9vbE5hbWUgJiZcbiAgICAgIGluaXRpYWxTdGF0ZS5zY2hvb2xaaXBcbiAgICApIHtcbiAgICAgIHJldHVybiBOb25TY2hvb2xPcHRpb25zLkNMSUNLX1RPX0FERDtcbiAgICB9XG4gICAgcmV0dXJuIChcbiAgICAgIGluaXRpYWxTdGF0ZS5zY2hvb2xJZCB8fFxuICAgICAgc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbShTQ0hPT0xfSURfU0VTU0lPTl9LRVkpIHx8XG4gICAgICBOb25TY2hvb2xPcHRpb25zLlNFTEVDVF9BX1NDSE9PTFxuICAgICk7XG4gIH0sIFtcbiAgICBpbml0aWFsU3RhdGUuc2Nob29sSWQsXG4gICAgaW5pdGlhbFN0YXRlLnNjaG9vbFR5cGUsXG4gICAgaW5pdGlhbFN0YXRlLnNjaG9vbE5hbWUsXG4gICAgaW5pdGlhbFN0YXRlLnNjaG9vbFppcCxcbiAgXSk7XG5cbiAgY29uc3QgZGV0ZWN0ZWRaaXAgPSB1c2VNZW1vKFxuICAgICgpID0+XG4gICAgICBpbml0aWFsU3RhdGUuc2Nob29sWmlwIHx8XG4gICAgICBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKFNDSE9PTF9aSVBfU0VTU0lPTl9LRVkpIHx8XG4gICAgICAnJyxcbiAgICBbaW5pdGlhbFN0YXRlLnNjaG9vbFppcF1cbiAgKTtcblxuICBjb25zdCBkZXRlY3RlZFNjaG9vbE5hbWUgPSB1c2VNZW1vKFxuICAgICgpID0+XG4gICAgICBpbml0aWFsU3RhdGUuc2Nob29sSWRcbiAgICAgICAgPyAnJ1xuICAgICAgICA6IGluaXRpYWxTdGF0ZS5zY2hvb2xOYW1lIHx8XG4gICAgICAgICAgc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbShTQ0hPT0xfTkFNRV9TRVNTSU9OX0tFWSkgfHxcbiAgICAgICAgICAnJyxcbiAgICBbaW5pdGlhbFN0YXRlLnNjaG9vbE5hbWUsIGluaXRpYWxTdGF0ZS5zY2hvb2xJZF1cbiAgKTtcblxuICBjb25zdCBbc3RhdGUsIHNldFN0YXRlXSA9IHVzZVN0YXRlPHtcbiAgICBjb3VudHJ5OiBzdHJpbmc7XG4gICAgc2Nob29sSWQ6IHN0cmluZztcbiAgICBzY2hvb2xaaXA6IHN0cmluZztcbiAgICBzY2hvb2xOYW1lOiBzdHJpbmc7XG4gIH0+KHtcbiAgICBjb3VudHJ5OiBkZXRlY3RlZENvdW50cnksXG4gICAgc2Nob29sSWQ6IGRldGVjdGVkU2Nob29sSWQsXG4gICAgc2Nob29sWmlwOiBkZXRlY3RlZFppcCxcbiAgICBzY2hvb2xOYW1lOiBkZXRlY3RlZFNjaG9vbE5hbWUsXG4gIH0pO1xuICBjb25zdCBbc2Nob29sc0xpc3QsIHNldFNjaG9vbHNMaXN0XSA9IHVzZVN0YXRlPFNjaG9vbERyb3Bkb3duT3B0aW9uW10+KFtdKTtcblxuICAvLyBTdGF0ZSBob29rc1xuICBjb25zdCBzZXRDb3VudHJ5ID0gKHZhbHVlOiBzdHJpbmcpID0+IHtcbiAgICBhbmFseXRpY3NSZXBvcnRlci5zZW5kRXZlbnQoXG4gICAgICBFVkVOVFMuQ09VTlRSWV9TRUxFQ1RFRCxcbiAgICAgIHtjb3VudHJ5OiB2YWx1ZX0sXG4gICAgICBQTEFURk9STVMuQk9USFxuICAgICk7XG4gICAgc2V0U3RhdGUocHJldlN0YXRlID0+ICh7XG4gICAgICAuLi5wcmV2U3RhdGUsXG4gICAgICBjb3VudHJ5OiB2YWx1ZSxcbiAgICB9KSk7XG4gIH07XG5cbiAgY29uc3Qgc2V0U2Nob29sSWQgPSAodmFsdWU6IHN0cmluZykgPT4ge1xuICAgIGlmICh2YWx1ZSA9PT0gTm9uU2Nob29sT3B0aW9ucy5OT19TQ0hPT0xfU0VUVElORykge1xuICAgICAgYW5hbHl0aWNzUmVwb3J0ZXIuc2VuZEV2ZW50KFxuICAgICAgICBFVkVOVFMuRE9fTk9UX1RFQUNIX0FUX1NDSE9PTF9DTElDS0VELFxuICAgICAgICB7fSxcbiAgICAgICAgUExBVEZPUk1TLkJPVEhcbiAgICAgICk7XG4gICAgfSBlbHNlIGlmICh2YWx1ZSA9PT0gTm9uU2Nob29sT3B0aW9ucy5DTElDS19UT19BREQpIHtcbiAgICAgIGFuYWx5dGljc1JlcG9ydGVyLnNlbmRFdmVudChcbiAgICAgICAgRVZFTlRTLkFERF9NQU5VQUxMWV9DTElDS0VELFxuICAgICAgICB7fSxcbiAgICAgICAgUExBVEZPUk1TLkJPVEhcbiAgICAgICk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGFuYWx5dGljc1JlcG9ydGVyLnNlbmRFdmVudChcbiAgICAgICAgRVZFTlRTLlNDSE9PTF9TRUxFQ1RFRF9GUk9NX0xJU1QsXG4gICAgICAgIHtcbiAgICAgICAgICAnbmNlcyBJZCc6IHZhbHVlLFxuICAgICAgICB9LFxuICAgICAgICBQTEFURk9STVMuQk9USFxuICAgICAgKTtcbiAgICB9XG4gICAgc2V0U3RhdGUocHJldlN0YXRlID0+ICh7XG4gICAgICAuLi5wcmV2U3RhdGUsXG4gICAgICBzY2hvb2xJZDogdmFsdWUsXG4gICAgfSkpO1xuICB9O1xuXG4gIGNvbnN0IHNldFNjaG9vbFppcCA9ICh2YWx1ZTogc3RyaW5nKSA9PiB7XG4gICAgaWYgKFpJUF9SRUdFWC50ZXN0KHZhbHVlKSkge1xuICAgICAgYW5hbHl0aWNzUmVwb3J0ZXIuc2VuZEV2ZW50KFxuICAgICAgICBFVkVOVFMuWklQX0NPREVfRU5URVJFRCxcbiAgICAgICAge3ppcDogdmFsdWV9LFxuICAgICAgICBQTEFURk9STVMuQk9USFxuICAgICAgKTtcbiAgICB9XG5cbiAgICBzZXRTdGF0ZShwcmV2U3RhdGUgPT4gKHtcbiAgICAgIC4uLnByZXZTdGF0ZSxcbiAgICAgIHNjaG9vbFppcDogdmFsdWUsXG4gICAgfSkpO1xuICB9O1xuXG4gIGNvbnN0IHNldFNjaG9vbE5hbWUgPSAodmFsdWU6IHN0cmluZykgPT4ge1xuICAgIHNldFN0YXRlKHByZXZTdGF0ZSA9PiAoe1xuICAgICAgLi4ucHJldlN0YXRlLFxuICAgICAgc2Nob29sTmFtZTogdmFsdWUsXG4gICAgfSkpO1xuICB9O1xuXG4gIGNvbnN0IHJlc2V0ID0gKCkgPT4ge1xuICAgIHNldFN0YXRlKHtcbiAgICAgIGNvdW50cnk6IGRldGVjdGVkQ291bnRyeSxcbiAgICAgIHNjaG9vbElkOiBkZXRlY3RlZFNjaG9vbElkLFxuICAgICAgc2Nob29sWmlwOiBkZXRlY3RlZFppcCxcbiAgICAgIHNjaG9vbE5hbWU6IGRldGVjdGVkU2Nob29sTmFtZSxcbiAgICB9KTtcbiAgfTtcblxuICAvLyBNZW1vaXplZCBmZXRjaFNjaG9vbHMgZnVuY3Rpb24gdXNpbmcgdXNlQ2FsbGJhY2tcbiAgY29uc3QgZmV0Y2hTY2hvb2xzID0gdXNlQ2FsbGJhY2soXG4gICAgKFxuICAgICAgemlwOiBzdHJpbmcsXG4gICAgICBjYWxsYmFjazogKGRhdGE6IHtuY2VzX2lkOiBudW1iZXI7IG5hbWU6IHN0cmluZ31bXSkgPT4gdm9pZFxuICAgICkgPT4ge1xuICAgICAgZmV0Y2hTY2hvb2xzQVBJKHppcCwgY2FsbGJhY2spO1xuICAgIH0sXG4gICAgW11cbiAgKTtcblxuICBjb25zdCBoYW5kbGVTZXNzaW9uU3RvcmFnZSA9IChrZXk6IHN0cmluZywgdmFsdWU6IHN0cmluZykgPT4ge1xuICAgIGlmIChzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKGtleSkgIT09IHZhbHVlKSB7XG4gICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKGtleSwgdmFsdWUpO1xuICAgIH1cbiAgfTtcblxuICBjb25zdCB7Y291bnRyeSwgc2Nob29sSWQsIHNjaG9vbFppcCwgc2Nob29sTmFtZX0gPSBzdGF0ZTtcblxuICAvLyBIYW5kbGUgY291bnRyeSBjaGFuZ2VzXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaGFuZGxlU2Vzc2lvblN0b3JhZ2UoU0NIT09MX0NPVU5UUllfU0VTU0lPTl9LRVksIGNvdW50cnkpO1xuICB9LCBbY291bnRyeV0pO1xuXG4gIC8vIEhhbmRsZSBzY2hvb2xaaXAgY2hhbmdlc1xuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmICghWklQX1JFR0VYLnRlc3Qoc2Nob29sWmlwKSkge1xuICAgICAgaGFuZGxlU2Vzc2lvblN0b3JhZ2UoU0NIT09MX1pJUF9TRVNTSU9OX0tFWSwgJycpO1xuICAgICAgc2V0U2Nob29sc0xpc3QoW10pO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGhhbmRsZVNlc3Npb25TdG9yYWdlKFNDSE9PTF9aSVBfU0VTU0lPTl9LRVksIHNjaG9vbFppcCk7XG5cbiAgICBmZXRjaFNjaG9vbHMoc2Nob29sWmlwLCBkYXRhID0+IHtcbiAgICAgIGlmICghbW91bnRlZC5jdXJyZW50KSByZXR1cm47XG5cbiAgICAgIGNvbnN0IHNjaG9vbHMgPSBkYXRhXG4gICAgICAgIC5tYXAoY29uc3RydWN0U2Nob29sT3B0aW9uKVxuICAgICAgICAuc29ydCgoYSwgYikgPT4gYS50ZXh0LmxvY2FsZUNvbXBhcmUoYi50ZXh0KSk7XG5cbiAgICAgIHNldFNjaG9vbHNMaXN0KHNjaG9vbHMpO1xuICAgIH0pO1xuICB9LCBbc2Nob29sWmlwLCBmZXRjaFNjaG9vbHNdKTtcblxuICAvLyBIYW5kbGUgc2Nob29sSWQgY2hhbmdlc1xuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGhhbmRsZVNlc3Npb25TdG9yYWdlKFNDSE9PTF9JRF9TRVNTSU9OX0tFWSwgc2Nob29sSWQpO1xuICB9LCBbc2Nob29sSWRdKTtcblxuICAvLyBIYW5kbGUgc2Nob29sTmFtZSBjaGFuZ2VzXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaGFuZGxlU2Vzc2lvblN0b3JhZ2UoU0NIT09MX05BTUVfU0VTU0lPTl9LRVksIHNjaG9vbE5hbWUpO1xuICB9LCBbc2Nob29sTmFtZV0pO1xuXG4gIC8vIE1hbmFnZSBtb3VudGVkIHN0YXRlXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgbW91bnRlZC5jdXJyZW50ID0gdHJ1ZTtcbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgbW91bnRlZC5jdXJyZW50ID0gZmFsc2U7XG4gICAgfTtcbiAgfSwgW10pO1xuXG4gIHJldHVybiB7XG4gICAgc2Nob29sSWQsXG4gICAgY291bnRyeSxcbiAgICBzY2hvb2xOYW1lLFxuICAgIHNjaG9vbFppcCxcbiAgICBzY2hvb2xzTGlzdCxcbiAgICB1c0lwOiBpbml0aWFsU3RhdGUudXNJcCxcbiAgICBzZXRTY2hvb2xJZCxcbiAgICBzZXRDb3VudHJ5LFxuICAgIHNldFNjaG9vbE5hbWUsXG4gICAgc2V0U2Nob29sWmlwLFxuICAgIHJlc2V0LFxuICB9O1xufVxuIiwiaW1wb3J0IHtcbiAgU0VMRUNUX0NPVU5UUlksXG4gIFVTX0NPVU5UUllfQ09ERSxcbn0gZnJvbSAnQGNkby9hcHBzL3NpZ25VcEZsb3cvc2lnblVwRmxvd0NvbnN0YW50cyc7XG5pbXBvcnQge05vblNjaG9vbE9wdGlvbnN9IGZyb20gJ0BjZG8vZ2VuZXJhdGVkLXNjcmlwdHMvc2hhcmVkQ29uc3RhbnRzJztcblxuaW1wb3J0IHtTY2hvb2xJbmZvUmVxdWVzdH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgZnVuY3Rpb24gYnVpbGRTY2hvb2xEYXRhKHtcbiAgc2Nob29sSWQsXG4gIGNvdW50cnksXG4gIHNjaG9vbE5hbWUsXG4gIHNjaG9vbFppcCxcbn06IHtcbiAgc2Nob29sSWQ6IHN0cmluZztcbiAgY291bnRyeTogc3RyaW5nO1xuICBzY2hvb2xOYW1lOiBzdHJpbmc7XG4gIHNjaG9vbFppcDogc3RyaW5nO1xufSk6IFNjaG9vbEluZm9SZXF1ZXN0IHwgdW5kZWZpbmVkIHtcbiAgLy8gSWYgd2UgaGF2ZSBhbiBOQ0VTIGlkLCBfb25seV8gc2VuZCB0aGF0IC0gZXZlcnl0aGluZyBlbHNlIHdpbGwgYmVcbiAgLy8gYmFja2ZpbGxlZCBieSByZWNvcmRzIG9uIHRoZSBzZXJ2ZXIuXG4gIGlmIChcbiAgICBjb3VudHJ5ID09PSBVU19DT1VOVFJZX0NPREUgJiZcbiAgICBzY2hvb2xJZCAmJlxuICAgICFPYmplY3QudmFsdWVzKE5vblNjaG9vbE9wdGlvbnMpLnNvbWUob3B0aW9uID0+IHNjaG9vbElkID09PSBvcHRpb24pXG4gICkge1xuICAgIHJldHVybiB7XG4gICAgICB1c2VyOiB7XG4gICAgICAgIHNjaG9vbF9pbmZvX2F0dHJpYnV0ZXM6IHtcbiAgICAgICAgICBzY2hvb2xfaWQ6IHNjaG9vbElkLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICB9O1xuICB9XG5cbiAgaWYgKFxuICAgIGNvdW50cnkgPT09IFVTX0NPVU5UUllfQ09ERSAmJlxuICAgIHNjaG9vbElkID09PSBOb25TY2hvb2xPcHRpb25zLk5PX1NDSE9PTF9TRVRUSU5HXG4gICkge1xuICAgIHJldHVybiB7XG4gICAgICB1c2VyOiB7XG4gICAgICAgIHNjaG9vbF9pbmZvX2F0dHJpYnV0ZXM6IHtcbiAgICAgICAgICBjb3VudHJ5LFxuICAgICAgICAgIHNjaG9vbF90eXBlOiBOb25TY2hvb2xPcHRpb25zLk5PX1NDSE9PTF9TRVRUSU5HLFxuICAgICAgICAgIHppcDogc2Nob29sWmlwLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICB9O1xuICB9XG5cbiAgaWYgKGNvdW50cnkgJiYgY291bnRyeSAhPT0gU0VMRUNUX0NPVU5UUlkpIHtcbiAgICByZXR1cm4ge1xuICAgICAgdXNlcjoge1xuICAgICAgICBzY2hvb2xfaW5mb19hdHRyaWJ1dGVzOiB7XG4gICAgICAgICAgY291bnRyeSxcbiAgICAgICAgICBzY2hvb2xfbmFtZTogc2Nob29sTmFtZSxcbiAgICAgICAgICB6aXA6IGNvdW50cnkgPT09IFVTX0NPVU5UUllfQ09ERSA/IHNjaG9vbFppcCA6IHVuZGVmaW5lZCxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfTtcbiAgfVxufVxuIiwiaW1wb3J0IHtTY2hvb2xEcm9wZG93bk9wdGlvbn0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgZnVuY3Rpb24gY29uc3RydWN0U2Nob29sT3B0aW9uKHNjaG9vbDoge1xuICBuY2VzX2lkOiBudW1iZXI7XG4gIG5hbWU6IHN0cmluZztcbn0pOiBTY2hvb2xEcm9wZG93bk9wdGlvbiB7XG4gIHJldHVybiB7XG4gICAgdmFsdWU6IHNjaG9vbC5uY2VzX2lkLnRvU3RyaW5nKCksXG4gICAgdGV4dDogc2Nob29sLm5hbWUsXG4gIH07XG59XG4iLCJpbXBvcnQge1NDSE9PTF9aSVBfU0VBUkNIX1VSTH0gZnJvbSAnQGNkby9hcHBzL3NpZ25VcEZsb3cvc2lnblVwRmxvd0NvbnN0YW50cyc7XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBmZXRjaFNjaG9vbHMoXG4gIHppcDogc3RyaW5nLFxuICBjYWxsYmFjazogKGRhdGE6IHtuY2VzX2lkOiBudW1iZXI7IG5hbWU6IHN0cmluZ31bXSkgPT4gdm9pZFxuKSB7XG4gIGNvbnN0IHNlYXJjaFVybCA9IGAke1NDSE9PTF9aSVBfU0VBUkNIX1VSTH0ke3ppcH1gO1xuICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGZldGNoKHNlYXJjaFVybCwge1xuICAgIGhlYWRlcnM6IHsnWC1SZXF1ZXN0ZWQtV2l0aCc6ICdYTUxIdHRwUmVxdWVzdCd9LFxuICB9KTtcbiAgaWYgKCFyZXNwb25zZS5vaykge1xuICAgIHRocm93IG5ldyBFcnJvcignWmlwIGNvZGUgc2VhcmNoIGZvciBzY2hvb2xzIGZhaWxlZCcpO1xuICB9XG4gIGNvbnN0IGRhdGEgPSBhd2FpdCByZXNwb25zZS5qc29uKCk7XG5cbiAgY2FsbGJhY2soZGF0YSk7XG59XG4iLCJpbXBvcnQge0NPVU5UUklFU30gZnJvbSAnQGNkby9hcHBzL2dlb2dyYXBoeUNvbnN0YW50cyc7XG5pbXBvcnQge1xuICBTRUxFQ1RfQ09VTlRSWSxcbiAgVVNfQ09VTlRSWV9DT0RFLFxufSBmcm9tICdAY2RvL2FwcHMvc2lnblVwRmxvdy9zaWduVXBGbG93Q29uc3RhbnRzJztcbmltcG9ydCBpMThuIGZyb20gJ0BjZG8vbG9jYWxlJztcblxuZXhwb3J0IGZ1bmN0aW9uIGdldENvdW50cmllc1VzRmlyc3QoKSB7XG4gIC8vIEFkZCAnU2VsZWN0IGEgY291bnRyeScgYW5kICdVbml0ZWQgU3RhdGVzJyB0byB0aGUgdG9wIG9mIHRoZSBjb3VudHJ5IGxpc3RcbiAgY29uc3QgY291bnRyaWVzID0gW1xuICAgIHt2YWx1ZTogU0VMRUNUX0NPVU5UUlksIHRleHQ6IGkxOG4uc2VsZWN0Q291bnRyeSgpfSxcbiAgICB7dmFsdWU6IFVTX0NPVU5UUllfQ09ERSwgdGV4dDogaTE4bi51bml0ZWRTdGF0ZXMoKX0sXG4gIF07XG5cbiAgLy8gUHVsbCBpbiB0aGUgcmVzdCBvZiB0aGUgY291bnRyaWVzIGFmdGVyL2JlbG93XG4gIGNvbnN0IG5vblVzQ291bnRyaWVzID0gQ09VTlRSSUVTLmZpbHRlcihcbiAgICBpdGVtID0+IGl0ZW0ubGFiZWwgIT09IFVTX0NPVU5UUllfQ09ERVxuICApO1xuXG4gIGZvciAoY29uc3Qgbm9uVXNDb3VudHJ5IG9mIG5vblVzQ291bnRyaWVzKSB7XG4gICAgY291bnRyaWVzLnB1c2goe3ZhbHVlOiBub25Vc0NvdW50cnkubGFiZWwsIHRleHQ6IG5vblVzQ291bnRyeS52YWx1ZX0pO1xuICB9XG4gIHJldHVybiBjb3VudHJpZXM7XG59XG4iLCJpbXBvcnQge1xuICBTRUxFQ1RfQ09VTlRSWSxcbiAgVVNfQ09VTlRSWV9DT0RFLFxufSBmcm9tICdAY2RvL2FwcHMvc2lnblVwRmxvdy9zaWduVXBGbG93Q29uc3RhbnRzJztcbmltcG9ydCB7Tm9uU2Nob29sT3B0aW9uc30gZnJvbSAnQGNkby9nZW5lcmF0ZWQtc2NyaXB0cy9zaGFyZWRDb25zdGFudHMnO1xuXG5pbXBvcnQge1NjaG9vbERyb3Bkb3duT3B0aW9ufSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBmdW5jdGlvbiBzY2hvb2xJbmZvSW52YWxpZCh7XG4gIGNvdW50cnksXG4gIHNjaG9vbE5hbWUsXG4gIHNjaG9vbFppcCxcbiAgc2Nob29sSWQsXG4gIHNjaG9vbHNMaXN0LFxufToge1xuICBzY2hvb2xJZDogc3RyaW5nO1xuICBjb3VudHJ5OiBzdHJpbmc7XG4gIHNjaG9vbE5hbWU6IHN0cmluZztcbiAgc2Nob29sWmlwOiBzdHJpbmc7XG4gIHNjaG9vbHNMaXN0OiBTY2hvb2xEcm9wZG93bk9wdGlvbltdO1xufSk6IGJvb2xlYW4ge1xuICBjb25zdCBjb3VudHJ5RXhpc3RzID0gY291bnRyeSAmJiBjb3VudHJ5ICE9PSBTRUxFQ1RfQ09VTlRSWTtcblxuICBpZiAoIWNvdW50cnlFeGlzdHMpIHtcbiAgICAvLyBkaXNhYmxlZCBpZiBjb3VudHJ5IGlzIG5vdCBzZWxlY3RlZFxuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgLy8gZm9yIG5vbi1VUyBjb3VudHJpZXNcbiAgaWYgKGNvdW50cnkgIT09IFVTX0NPVU5UUllfQ09ERSkge1xuICAgIC8vIGRpc2FibGUgdHJ1ZSBpZiBubyBzY2hvb2wvb3JnYW5pemF0aW9uIG5hbWVcbiAgICByZXR1cm4gIXNjaG9vbE5hbWU7XG4gIH1cblxuICAvLyBmb3IgVVMgY291bnRyeVxuICAvLyBtdXN0IGhhdmUgemlwIGNvZGUgdG8gZW5hYmxlIHNjaG9vbCBsaXN0IGRyb3Bkb3duIHdoZXJlIGNsaWNrIHRvIGFkZCBhbmQgbm9uIHNjaG9vbCBzZXR0aW5nIGFyZSBzZWxlY3RhYmxlXG4gIGNvbnN0IGhhc1ppcCA9IEJvb2xlYW4oc2Nob29sWmlwKTtcbiAgaWYgKCFoYXNaaXApIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuICAvLyBkaXNhYmxlIHRydWUgaWYgc2Nob29sIGlzIG5vdCBzZWxlY3RlZFxuICBpZiAoc2Nob29sSWQgPT09IE5vblNjaG9vbE9wdGlvbnMuU0VMRUNUX0FfU0NIT09MKSB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cbiAgLy8gZm9yIG5vbiBzY2hvb2wgc2V0dGluZ3MsIGRvbid0IGRpc2FibGVcbiAgaWYgKHNjaG9vbElkID09PSBOb25TY2hvb2xPcHRpb25zLk5PX1NDSE9PTF9TRVRUSU5HKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG4gIC8vIGlmIHNjaG9vbCBub3QgaW4gbGlzdCwgZGlzYWJsZSB0cnVlIGlmIG5vIG5hbWVcbiAgaWYgKHNjaG9vbElkID09PSBOb25TY2hvb2xPcHRpb25zLkNMSUNLX1RPX0FERCkge1xuICAgIHJldHVybiAhc2Nob29sTmFtZTtcbiAgfVxuXG4gIC8vIGlmIHNjaG9vbElkIGV4aXN0cywgZG9uJ3QgZGlzYWJsZSB1bmxlc3Mgc2VsZWN0ZWQgc2Nob29sIGlzIG5vdCBpbiB0aGUgc2Nob29scyBsaXN0XG4gIGlmIChzY2hvb2xJZCAmJiBzY2hvb2xzTGlzdC5zb21lKCh7dmFsdWV9KSA9PiBzY2hvb2xJZCA9PT0gdmFsdWUpKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG4gIC8vIGRpc2FibGUgYnkgZGVmYXVsdFxuICByZXR1cm4gdHJ1ZTtcbn1cbiIsImltcG9ydCB7Z2V0QXV0aGVudGljaXR5VG9rZW59IGZyb20gJ0BjZG8vYXBwcy91dGlsL0F1dGhlbnRpY2l0eVRva2VuU3RvcmUnO1xuXG5pbXBvcnQge2J1aWxkU2Nob29sRGF0YX0gZnJvbSAnLi9idWlsZFNjaG9vbERhdGEnO1xuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gdXBkYXRlU2Nob29sSW5mbyh7XG4gIHNjaG9vbElkLFxuICBjb3VudHJ5LFxuICBzY2hvb2xOYW1lLFxuICBzY2hvb2xaaXAsXG59OiB7XG4gIHNjaG9vbElkOiBzdHJpbmc7XG4gIGNvdW50cnk6IHN0cmluZztcbiAgc2Nob29sTmFtZTogc3RyaW5nO1xuICBzY2hvb2xaaXA6IHN0cmluZztcbn0pIHtcbiAgY29uc3Qgc2Nob29sRGF0YSA9IGJ1aWxkU2Nob29sRGF0YSh7XG4gICAgc2Nob29sSWQsXG4gICAgY291bnRyeSxcbiAgICBzY2hvb2xOYW1lLFxuICAgIHNjaG9vbFppcCxcbiAgfSk7XG4gIGlmICghc2Nob29sRGF0YSkge1xuICAgIHJldHVybjtcbiAgfVxuICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGZldGNoKCcvYXBpL3YxL3VzZXJfc2Nob29sX2luZm9zJywge1xuICAgIG1ldGhvZDogJ1BBVENIJyxcbiAgICBoZWFkZXJzOiB7XG4gICAgICAnQ29udGVudC1UeXBlJzogJ2FwcGxpY2F0aW9uL2pzb24nLFxuICAgICAgJ1gtQ1NSRi1Ub2tlbic6IGF3YWl0IGdldEF1dGhlbnRpY2l0eVRva2VuKCksXG4gICAgfSxcbiAgICBib2R5OiBKU09OLnN0cmluZ2lmeShzY2hvb2xEYXRhKSxcbiAgfSk7XG5cbiAgaWYgKCFyZXNwb25zZS5vaykge1xuICAgIHRocm93IG5ldyBFcnJvcignU2Nob29sIGluZm8gdXBkYXRlIGZhaWxlZCcpO1xuICB9XG59XG4iLCIvLyBzZXNzaW9uIHN0b3JhZ2Uga2V5c1xuZXhwb3J0IGNvbnN0IEFDQ09VTlRfVFlQRV9TRVNTSU9OX0tFWSA9ICdhY2NvdW50VHlwZSc7XG5leHBvcnQgY29uc3QgU0NIT09MX0lEX1NFU1NJT05fS0VZID0gJ3NjaG9vbElkJztcbmV4cG9ydCBjb25zdCBTQ0hPT0xfWklQX1NFU1NJT05fS0VZID0gJ3NjaG9vbFppcCc7XG5leHBvcnQgY29uc3QgU0NIT09MX05BTUVfU0VTU0lPTl9LRVkgPSAnc2Nob29sTmFtZSc7XG5leHBvcnQgY29uc3QgU0NIT09MX0NPVU5UUllfU0VTU0lPTl9LRVkgPSAnc2Nob29sQ291bnRyeSc7XG5leHBvcnQgY29uc3QgRU1BSUxfU0VTU0lPTl9LRVkgPSAnZW1haWwnO1xuZXhwb3J0IGNvbnN0IE9BVVRIX0xPR0lOX1RZUEVfU0VTU0lPTl9LRVkgPSAnb2F1dGhUeXBlJztcbmV4cG9ydCBjb25zdCBVU0VSX1JFVFVSTl9UT19TRVNTSU9OX0tFWSA9ICd1c2VyUmV0dXJuVG8nO1xuXG5leHBvcnQgY29uc3QgY2xlYXJTaWduVXBTZXNzaW9uU3RvcmFnZSA9IChpc1RlYWNoZXI6IGJvb2xlYW4pID0+IHtcbiAgY29uc3QgZmllbGRzVG9DbGVhciA9IFtcbiAgICBBQ0NPVU5UX1RZUEVfU0VTU0lPTl9LRVksXG4gICAgRU1BSUxfU0VTU0lPTl9LRVksXG4gICAgT0FVVEhfTE9HSU5fVFlQRV9TRVNTSU9OX0tFWSxcbiAgICBVU0VSX1JFVFVSTl9UT19TRVNTSU9OX0tFWSxcbiAgXTtcbiAgaWYgKGlzVGVhY2hlcikge1xuICAgIGNvbnN0IHNjaG9vbEZpZWxkcyA9IFtcbiAgICAgIFNDSE9PTF9JRF9TRVNTSU9OX0tFWSxcbiAgICAgIFNDSE9PTF9aSVBfU0VTU0lPTl9LRVksXG4gICAgICBTQ0hPT0xfTkFNRV9TRVNTSU9OX0tFWSxcbiAgICAgIFNDSE9PTF9DT1VOVFJZX1NFU1NJT05fS0VZLFxuICAgIF07XG4gICAgZmllbGRzVG9DbGVhci5wdXNoKC4uLnNjaG9vbEZpZWxkcyk7XG4gIH1cblxuICBmaWVsZHNUb0NsZWFyLmZvckVhY2goZmllbGQgPT4ge1xuICAgIHNlc3Npb25TdG9yYWdlLnJlbW92ZUl0ZW0oZmllbGQpO1xuICB9KTtcbn07XG5cbi8vIHVzZXIgdHlwZSBjb29raWVcbmV4cG9ydCBjb25zdCBORVdfU0lHTl9VUF9VU0VSX1RZUEUgPSAnbmV3X3NpZ25fdXBfdXNlcl90eXBlJztcblxuLy8gc2Nob29sIGFzc29jaWF0aW9uXG5leHBvcnQgY29uc3QgVVNfQ09VTlRSWV9DT0RFID0gJ1VTJztcbmV4cG9ydCBjb25zdCBaSVBfUkVHRVggPSBuZXcgUmVnRXhwKC8oXlxcZHs1fSQpLyk7XG5leHBvcnQgY29uc3QgU0VMRUNUX0NPVU5UUlkgPSAnc2VsZWN0Q291bnRyeSc7XG5leHBvcnQgY29uc3QgU0NIT09MX1pJUF9TRUFSQ0hfVVJMID0gJy9kYXNoYm9hcmRhcGkvdjEvc2Nob29semlwc2VhcmNoLyc7XG4iLCIvKipcbiAqIEEgdXRpbGl0eSBmb3IgcmV0cmlldmluZyB0aGUgUmFpbHMgYXV0aGVudGljaXR5IHRva2VuLCBuZWVkZWQgZm9yIGNlcnRhaW5cbiAqIHJlcXVlc3RzIG1hZGUgdG8gZGFzaGJvYXJkLiBPbiBzb21lIHBhZ2VzLCB0aGlzIGlzIHBhc3NlZCBkb3duIGFzIHBhcnQgb2YgdGhlXG4gKiBET00sIGJ1dCBpbiBvdGhlcnMsIGl0IG1heSBuZWVkIHRvIGJlIHJldHJpZXZlZCBieSBhIHNlcGFyYXRlIEFKQVggcmVxdWVzdC5cbiAqL1xuXG5sZXQgYXV0aGVudGljaXR5VG9rZW46IHN0cmluZyB8IG51bGwgPSBudWxsO1xuXG5hc3luYyBmdW5jdGlvbiBnZXRBdXRoZW50aWNpdHlUb2tlbigpOiBQcm9taXNlPHN0cmluZz4ge1xuICBpZiAoYXV0aGVudGljaXR5VG9rZW4gIT09IG51bGwpIHtcbiAgICByZXR1cm4gYXV0aGVudGljaXR5VG9rZW47XG4gIH1cblxuICBjb25zdCB0b2tlbiA9IGF3YWl0IHJlZnJlc2hUb2tlbigpO1xuICBhdXRoZW50aWNpdHlUb2tlbiA9IHRva2VuO1xuICByZXR1cm4gYXV0aGVudGljaXR5VG9rZW47XG59XG5cbmFzeW5jIGZ1bmN0aW9uIHJlZnJlc2hUb2tlbigpOiBQcm9taXNlPHN0cmluZz4ge1xuICAvLyBSZXRyaWV2ZSB0b2tlbiBmcm9tIERPTSBpZiBwcmVzZW50XG4gIGNvbnN0IHRva2VuQ29udGFpbmVyID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcjxIVE1MTWV0YUVsZW1lbnQ+KFxuICAgICdtZXRhW25hbWU9XCJjc3JmLXRva2VuXCJdJ1xuICApO1xuXG4gIGlmICh0b2tlbkNvbnRhaW5lciAmJiB0b2tlbkNvbnRhaW5lci5jb250ZW50KSB7XG4gICAgcmV0dXJuIHRva2VuQ29udGFpbmVyLmNvbnRlbnQ7XG4gIH1cblxuICAvLyBSZXF1ZXN0IGEgdG9rZW4gZnJvbSBkYXNoYm9hcmRcbiAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBmZXRjaCgnL2dldF90b2tlbicpO1xuICBjb25zdCB0b2tlbiA9IHJlc3BvbnNlLmhlYWRlcnMuZ2V0KCdjc3JmLXRva2VuJyk7XG4gIGlmICh0b2tlbiA9PT0gbnVsbCkge1xuICAgIHRocm93IG5ldyBFcnJvcignQ291bGQgbm90IHJldHJpZXZlIENTUkYgdG9rZW4nKTtcbiAgfVxuICByZXR1cm4gdG9rZW47XG59XG5cbmV4cG9ydCB7Z2V0QXV0aGVudGljaXR5VG9rZW59O1xuZXhwb3J0IGNvbnN0IEFVVEhFTlRJQ0lUWV9UT0tFTl9IRUFERVIgPSAnWC1DU1JGLVRPS0VOJztcbiJdLCJuYW1lcyI6WyJfc2hhcmVkQ29uc3RhbnRzIiwicmVxdWlyZSIsImV4cG9ydHMiLCJPYmplY3QiLCJrZXlzIiwiVXNTdGF0ZXMiLCJzb3J0IiwibGFiZWwiLCJ2YWx1ZSIsImEiLCJiIiwibG9jYWxlQ29tcGFyZSIsIl9jbGFzc25hbWVzIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsIl9wcm9wVHlwZXMiLCJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsImUiLCJyIiwiX19lc01vZHVsZSIsIl90eXBlb2YiLCJ0IiwiX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlIiwiaGFzIiwiZ2V0IiwibiIsIl9fcHJvdG9fXyIsImRlZmluZVByb3BlcnR5IiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwidSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsImkiLCJzZXQiLCJfYnV0dG9uIiwiX2Ryb3Bkb3duIiwiX3R5cG9ncmFwaHkiLCJfc2lnblVwRmxvd0NvbnN0YW50cyIsIl9TY2hvb2xOYW1lSW5wdXQiLCJfU2Nob29sWmlwU2VhcmNoIiwiX2xvY2FsZSIsIl9nZXRDb3VudHJpZXNVc0ZpcnN0IiwiX3NjaG9vbEFzc29jaWF0aW9uTW9kdWxlIiwiV2Vha01hcCIsIl90b0NvbnN1bWFibGVBcnJheSIsIl9hcnJheVdpdGhvdXRIb2xlcyIsIkFycmF5IiwiaXNBcnJheSIsIl9hcnJheUxpa2VUb0FycmF5IiwiX2l0ZXJhYmxlVG9BcnJheSIsIlN5bWJvbCIsIml0ZXJhdG9yIiwiZnJvbSIsIl91bnN1cHBvcnRlZEl0ZXJhYmxlVG9BcnJheSIsInRvU3RyaW5nIiwic2xpY2UiLCJjb25zdHJ1Y3RvciIsIm5hbWUiLCJ0ZXN0IiwiX25vbkl0ZXJhYmxlU3ByZWFkIiwiVHlwZUVycm9yIiwibGVuZ3RoIiwiU0VBUkNIX0RFRkFVTFRTIiwiTm9uU2Nob29sT3B0aW9ucyIsIkNMSUNLX1RPX0FERCIsInRleHQiLCJpMThuIiwic2Nob29sQ2xpY2tUb0FkZCIsIk5PX1NDSE9PTF9TRVRUSU5HIiwibm9TY2hvb2xTZXR0aW5nIiwiQ09VTlRSSUVTX1VTX0ZJUlNUIiwiZ2V0Q291bnRyaWVzVXNGaXJzdCIsIlNjaG9vbERhdGFJbnB1dHMiLCJfcmVmIiwic2Nob29sSWQiLCJjb3VudHJ5Iiwic2Nob29sTmFtZSIsInNjaG9vbFppcCIsInNjaG9vbHNMaXN0Iiwic2V0U2Nob29sSWQiLCJzZXRDb3VudHJ5Iiwic2V0U2Nob29sTmFtZSIsInNldFNjaG9vbFppcCIsInVzSXAiLCJfcmVmJGluY2x1ZGVIZWFkZXJzIiwiaW5jbHVkZUhlYWRlcnMiLCJfcmVmJGZpZWxkTmFtZXMiLCJmaWVsZE5hbWVzIiwibmNlc1NjaG9vbElkIiwic2Nob29sVHlwZSIsImNvdW50cnlJc1VTIiwidXNlTWVtbyIsIlVTX0NPVU5UUllfQ09ERSIsImNvdW50cnlJc1NlbGVjdGVkT3JVc0lwRmFsc2UiLCJTRUxFQ1RfQ09VTlRSWSIsImlucHV0TWFudWFsbHkiLCJzaG93Tm9TY2hvb2xTZXR0aW5nQnV0dG9uIiwic2Nob29sWmlwSXNWYWxpZCIsIlpJUF9SRUdFWCIsInNjaG9vbFNlbGVjdE9wdGlvbnMiLCJTRUxFQ1RfQV9TQ0hPT0wiLCJzZWxlY3RBU2Nob29sIiwiY29uY2F0IiwiaGFuZGxlU2Nob29sQ2hhbmdlIiwiaWQiLCJsYWJlbENsYXNzTmFtZSIsInN0eWxlIiwiZGlzYWJsZWRMYWJlbCIsImNyZWF0ZUVsZW1lbnQiLCJjbGFzc05hbWUiLCJzY2hvb2xBc3NvY2lhdGlvbldyYXBwZXIiLCJoZWFkZXJDb250YWluZXIiLCJIZWFkaW5nMiIsImNlbnN1c0hlYWRpbmciLCJCb2R5VHdvVGV4dCIsInNjaG9vbEluZm9JbnRlcnN0aXRpYWxUaXRsZSIsImlucHV0Q29udGFpbmVyIiwiU2ltcGxlRHJvcGRvd24iLCJkcm9wZG93biIsImxhYmVsVGV4dCIsIndoYXRDb3VudHJ5IiwiaXRlbXMiLCJzZWxlY3RlZFZhbHVlIiwib25DaGFuZ2UiLCJoYW5kbGVDb3VudHJ5Q2hhbmdlIiwiYyIsInRhcmdldCIsImRyb3Bkb3duVGV4dFRoaWNrbmVzcyIsImRpc2FibGVkIiwiY2xhc3NOYW1lcyIsInNlbGVjdFlvdXJTY2hvb2wiLCJpdGVtR3JvdXBzIiwic2Nob29scyIsImdyb3VwSXRlbXMiLCJhZGRpdGlvbmFsT3B0aW9ucyIsIkJ1dHRvbiIsImNvbG9yIiwidHlwZSIsInNpemUiLCJvbkNsaWNrIiwicHJldmVudERlZmF1bHQiLCJyZXR1cm5Ub1Jlc3VsdHMiLCJoaWRkZW4iLCJyZWFkT25seSIsInByb3BUeXBlcyIsIlByb3BUeXBlcyIsImJvb2wiLCJvYmplY3QiLCJzdHJpbmciLCJpc1JlcXVpcmVkIiwiYXJyYXlPZiIsInNoYXBlIiwiZnVuYyIsIm1vZHVsZSIsImRlZmF1bHQiLCJfVGV4dEZpZWxkIiwiU2Nob29sTmFtZUlucHV0Iiwic2Nob29sT3JnYW5pemF0aW9uUXVlc3Rpb24iLCJoYW5kbGVTY2hvb2xOYW1lQ2hhbmdlIiwiU2Nob29sWmlwU2VhcmNoIiwiZW50ZXJZb3VyU2Nob29sWmlwIiwiaGFuZGxlWmlwQ2hhbmdlIiwiemlwIiwicGxhY2Vob2xkZXIiLCJCb2R5VGhyZWVUZXh0IiwiZXJyb3JNZXNzYWdlIiwiemlwSW52YWxpZE1lc3NhZ2UiLCJfX19DU1NfTE9BREVSX0VYUE9SVF9fXyIsInB1c2giLCJsb2NhbHMiLCJvcHRpb25zIiwic3R5bGVUYWdUcmFuc2Zvcm0iLCJzZXRBdHRyaWJ1dGVzIiwiaW5zZXJ0IiwiZG9tQVBJIiwiaW5zZXJ0U3R5bGVFbGVtZW50IiwidW5kZWZpbmVkIiwidXNlU2Nob29sSW5mbyIsImluaXRpYWxTdGF0ZSIsIm1vdW50ZWQiLCJ1c2VSZWYiLCJkZXRlY3RlZENvdW50cnkiLCJzZXNzaW9uU3RvcmFnZSIsImdldEl0ZW0iLCJTQ0hPT0xfQ09VTlRSWV9TRVNTSU9OX0tFWSIsImRldGVjdGVkU2Nob29sSWQiLCJTQ0hPT0xfSURfU0VTU0lPTl9LRVkiLCJkZXRlY3RlZFppcCIsIlNDSE9PTF9aSVBfU0VTU0lPTl9LRVkiLCJkZXRlY3RlZFNjaG9vbE5hbWUiLCJTQ0hPT0xfTkFNRV9TRVNTSU9OX0tFWSIsInVzZVN0YXRlIiwic3RhdGUiLCJzZXRTdGF0ZSIsInNldFNjaG9vbHNMaXN0IiwiZmV0Y2hTY2hvb2xzIiwidXNlQ2FsbGJhY2siLCJjYWxsYmFjayIsImhhbmRsZVNlc3Npb25TdG9yYWdlIiwia2V5Iiwic2V0SXRlbSIsInVzZUVmZmVjdCIsImRhdGEiLCJjdXJyZW50IiwibWFwIiwiY29uc3RydWN0U2Nob29sT3B0aW9uIiwic2VuZEV2ZW50IiwiRVZFTlRTIiwiRE9fTk9UX1RFQUNIX0FUX1NDSE9PTF9DTElDS0VEIiwiUExBVEZPUk1TIiwiQk9USCIsIkFERF9NQU5VQUxMWV9DTElDS0VEIiwiU0NIT09MX1NFTEVDVEVEX0ZST01fTElTVCIsInByZXZTdGF0ZSIsIkNPVU5UUllfU0VMRUNURUQiLCJaSVBfQ09ERV9FTlRFUkVEIiwicmVzZXQiLCJidWlsZFNjaG9vbERhdGEiLCJ2YWx1ZXMiLCJzb21lIiwib3B0aW9uIiwidXNlciIsInNjaG9vbF9pbmZvX2F0dHJpYnV0ZXMiLCJzY2hvb2xfaWQiLCJzY2hvb2xfdHlwZSIsInNjaG9vbF9uYW1lIiwic2Nob29sIiwibmNlc19pZCIsInNlYXJjaFVybCIsIlNDSE9PTF9aSVBfU0VBUkNIX1VSTCIsImZldGNoIiwiaGVhZGVycyIsInJlc3BvbnNlIiwib2siLCJFcnJvciIsImpzb24iLCJjb3VudHJpZXMiLCJzZWxlY3RDb3VudHJ5IiwidW5pdGVkU3RhdGVzIiwibm9uVXNDb3VudHJpZXMiLCJDT1VOVFJJRVMiLCJmaWx0ZXIiLCJpdGVtIiwibm9uVXNDb3VudHJ5Iiwic2Nob29sSW5mb0ludmFsaWQiLCJCb29sZWFuIiwidXBkYXRlU2Nob29sSW5mbyIsInNjaG9vbERhdGEiLCJtZXRob2QiLCJnZXRBdXRoZW50aWNpdHlUb2tlbiIsImJvZHkiLCJKU09OIiwic3RyaW5naWZ5IiwiQUNDT1VOVF9UWVBFX1NFU1NJT05fS0VZIiwiRU1BSUxfU0VTU0lPTl9LRVkiLCJPQVVUSF9MT0dJTl9UWVBFX1NFU1NJT05fS0VZIiwiVVNFUl9SRVRVUk5fVE9fU0VTU0lPTl9LRVkiLCJjbGVhclNpZ25VcFNlc3Npb25TdG9yYWdlIiwiaXNUZWFjaGVyIiwiZmllbGRzVG9DbGVhciIsInNjaG9vbEZpZWxkcyIsImZvckVhY2giLCJmaWVsZCIsInJlbW92ZUl0ZW0iLCJORVdfU0lHTl9VUF9VU0VSX1RZUEUiLCJSZWdFeHAiLCJQcm9taXNlIiwiYXV0aGVudGljaXR5VG9rZW4iLCJyZWZyZXNoVG9rZW4iLCJ0b2tlbiIsInRva2VuQ29udGFpbmVyIiwiZG9jdW1lbnQiLCJxdWVyeVNlbGVjdG9yIiwiY29udGVudCIsIkFVVEhFTlRJQ0lUWV9UT0tFTl9IRUFERVIiXSwic291cmNlUm9vdCI6IiJ9